@pepperi-addons/ngx-lib 0.3.15-loader.8 → 0.4.0-angular14.10

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 (1370) hide show
  1. package/address/address.component.d.ts +30 -27
  2. package/address/address.module.d.ts +15 -2
  3. package/address/index.d.ts +5 -0
  4. package/address/public-api.d.ts +2 -2
  5. package/attachment/attachment.component.d.ts +85 -82
  6. package/attachment/attachment.module.d.ts +14 -2
  7. package/attachment/index.d.ts +5 -0
  8. package/attachment/public-api.d.ts +2 -2
  9. package/bread-crumbs/bread-crumbs.component.d.ts +27 -23
  10. package/bread-crumbs/bread-crumbs.model.d.ts +11 -11
  11. package/bread-crumbs/bread-crumbs.module.d.ts +15 -5
  12. package/bread-crumbs/index.d.ts +5 -0
  13. package/bread-crumbs/public-api.d.ts +3 -3
  14. package/button/button.component.d.ts +102 -99
  15. package/button/button.model.d.ts +14 -14
  16. package/button/button.module.d.ts +13 -2
  17. package/button/index.d.ts +5 -0
  18. package/button/public-api.d.ts +3 -3
  19. package/carousel/carousel-item.directive.d.ts +12 -9
  20. package/carousel/carousel.component.d.ts +148 -145
  21. package/carousel/carousel.module.d.ts +8 -2
  22. package/carousel/index.d.ts +5 -0
  23. package/carousel/public-api.d.ts +3 -3
  24. package/checkbox/checkbox.component.d.ts +50 -47
  25. package/checkbox/checkbox.module.d.ts +19 -5
  26. package/checkbox/index.d.ts +5 -0
  27. package/checkbox/public-api.d.ts +2 -2
  28. package/color/color-picker.component.d.ts +57 -54
  29. package/color/color.component.d.ts +30 -27
  30. package/color/color.model.d.ts +1 -1
  31. package/color/color.module.d.ts +26 -5
  32. package/color/index.d.ts +5 -0
  33. package/color/public-api.d.ts +3 -3
  34. package/core/clipboard/clipboard.directive.d.ts +5 -2
  35. package/core/clipboard/clipboard.service.d.ts +5 -2
  36. package/core/clipboard/index.d.ts +1 -1
  37. package/core/clipboard/public-api.d.ts +2 -2
  38. package/core/common/directives/auto-width.directive.d.ts +19 -16
  39. package/core/common/directives/button-blur.directive.d.ts +9 -6
  40. package/core/common/directives/button-loader.directive.d.ts +26 -23
  41. package/core/common/directives/data-qa.directive.d.ts +11 -8
  42. package/core/common/directives/index.d.ts +1 -1
  43. package/core/common/directives/menu-blur.directive.d.ts +10 -7
  44. package/core/common/directives/prevent-multi-click.directive.d.ts +7 -4
  45. package/core/common/directives/print.directive.d.ts +75 -72
  46. package/core/common/directives/public-api.d.ts +7 -7
  47. package/core/common/index.d.ts +1 -1
  48. package/core/common/model/index.d.ts +1 -1
  49. package/core/common/model/papi.model.d.ts +2 -2
  50. package/core/common/model/public-api.d.ts +3 -3
  51. package/core/common/model/utilities.model.d.ts +5 -5
  52. package/core/common/model/wapi.model.d.ts +200 -200
  53. package/core/common/pipes/common-pipes.d.ts +57 -36
  54. package/core/common/pipes/date-ago.pipe.d.ts +11 -8
  55. package/core/common/pipes/index.d.ts +1 -1
  56. package/core/common/pipes/public-api.d.ts +2 -2
  57. package/core/common/public-api.d.ts +4 -4
  58. package/core/common/services/addon.service.d.ts +41 -38
  59. package/core/common/services/color.service.d.ts +51 -48
  60. package/core/common/services/cookie.service.d.ts +53 -50
  61. package/core/common/services/data-convertor.service.d.ts +44 -41
  62. package/core/common/services/file.service.d.ts +27 -24
  63. package/core/common/services/index.d.ts +1 -1
  64. package/core/common/services/jwt-helper.service.d.ts +13 -10
  65. package/core/common/services/public-api.d.ts +11 -11
  66. package/core/common/services/session.service.d.ts +18 -15
  67. package/core/common/services/translate.service.d.ts +12 -9
  68. package/core/common/services/utilities.service.d.ts +36 -33
  69. package/core/common/services/validator.service.d.ts +31 -28
  70. package/core/common/services/window-scrolling.service.d.ts +10 -7
  71. package/core/customization/customization.model.d.ts +264 -264
  72. package/core/customization/customization.service.d.ts +159 -156
  73. package/core/customization/index.d.ts +1 -1
  74. package/core/customization/public-api.d.ts +2 -2
  75. package/core/http/index.d.ts +1 -1
  76. package/core/http/interceptors/error.interceptor.d.ts +8 -5
  77. package/core/http/interceptors/index.d.ts +11 -11
  78. package/core/http/interceptors/loader.interceptor.d.ts +11 -8
  79. package/core/http/interceptors/profiler.interceptor.d.ts +8 -5
  80. package/core/http/public-api.d.ts +2 -2
  81. package/core/http/services/http.service.d.ts +28 -25
  82. package/core/http/services/loader.service.d.ts +13 -10
  83. package/core/index.d.ts +1 -1
  84. package/core/layout/index.d.ts +1 -1
  85. package/core/layout/layout.service.d.ts +36 -33
  86. package/core/layout/public-api.d.ts +2 -2
  87. package/core/layout/rtl.directive.d.ts +21 -16
  88. package/core/portal/attach.directive.d.ts +13 -10
  89. package/core/portal/index.d.ts +1 -1
  90. package/core/portal/portal.service.d.ts +12 -9
  91. package/core/portal/public-api.d.ts +3 -3
  92. package/core/portal/target.directive.d.ts +12 -9
  93. package/core/public-api.d.ts +7 -7
  94. package/core/scroll-to/index.d.ts +1 -1
  95. package/core/scroll-to/public-api.d.ts +1 -1
  96. package/core/scroll-to/scroll-to.service.d.ts +11 -8
  97. package/date/date.component.d.ts +69 -66
  98. package/date/date.model.d.ts +31 -26
  99. package/date/date.module.d.ts +23 -5
  100. package/date/index.d.ts +5 -0
  101. package/date/public-api.d.ts +2 -2
  102. package/dialog/default-dialog.component.d.ts +12 -9
  103. package/dialog/dialog.component.d.ts +13 -10
  104. package/dialog/dialog.model.d.ts +31 -31
  105. package/dialog/dialog.module.d.ts +18 -5
  106. package/dialog/dialog.service.d.ts +27 -24
  107. package/dialog/index.d.ts +5 -0
  108. package/dialog/public-api.d.ts +4 -4
  109. package/draggable-items/draggable-item/draggable-item.component.d.ts +11 -8
  110. package/draggable-items/draggable-items.component.d.ts +36 -33
  111. package/draggable-items/draggable-items.model.d.ts +11 -11
  112. package/draggable-items/draggable-items.module.d.ts +18 -5
  113. package/draggable-items/index.d.ts +5 -0
  114. package/draggable-items/public-api.d.ts +4 -4
  115. package/esm2020/address/address.component.mjs +109 -0
  116. package/esm2020/address/address.module.mjs +54 -0
  117. package/esm2020/address/pepperi-addons-ngx-lib-address.mjs +5 -0
  118. package/esm2020/address/public-api.mjs +6 -0
  119. package/esm2020/attachment/attachment.component.mjs +220 -0
  120. package/esm2020/attachment/attachment.module.mjs +50 -0
  121. package/esm2020/attachment/pepperi-addons-ngx-lib-attachment.mjs +5 -0
  122. package/esm2020/attachment/public-api.mjs +6 -0
  123. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +85 -0
  124. package/esm2020/bread-crumbs/bread-crumbs.model.mjs +7 -0
  125. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +50 -0
  126. package/esm2020/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.mjs +5 -0
  127. package/esm2020/bread-crumbs/public-api.mjs +7 -0
  128. package/esm2020/button/button.component.mjs +138 -0
  129. package/esm2020/button/button.model.mjs +6 -0
  130. package/esm2020/button/button.module.mjs +46 -0
  131. package/esm2020/button/pepperi-addons-ngx-lib-button.mjs +5 -0
  132. package/esm2020/button/public-api.mjs +7 -0
  133. package/esm2020/carousel/carousel-item.directive.mjs +33 -0
  134. package/esm2020/carousel/carousel.component.mjs +745 -0
  135. package/esm2020/carousel/carousel.module.mjs +17 -0
  136. package/esm2020/carousel/pepperi-addons-ngx-lib-carousel.mjs +5 -0
  137. package/esm2020/carousel/public-api.mjs +8 -0
  138. package/esm2020/checkbox/checkbox.component.mjs +168 -0
  139. package/esm2020/checkbox/checkbox.module.mjs +63 -0
  140. package/esm2020/checkbox/pepperi-addons-ngx-lib-checkbox.mjs +5 -0
  141. package/esm2020/checkbox/public-api.mjs +6 -0
  142. package/esm2020/color/color-picker.component.mjs +224 -0
  143. package/esm2020/color/color.component.mjs +90 -0
  144. package/esm2020/color/color.model.mjs +2 -0
  145. package/esm2020/color/color.module.mjs +93 -0
  146. package/esm2020/color/pepperi-addons-ngx-lib-color.mjs +5 -0
  147. package/esm2020/color/public-api.mjs +7 -0
  148. package/esm2020/core/clipboard/clipboard.directive.mjs +24 -0
  149. package/esm2020/core/clipboard/clipboard.service.mjs +14 -0
  150. package/esm2020/core/clipboard/index.mjs +5 -0
  151. package/esm2020/core/clipboard/public-api.mjs +6 -0
  152. package/esm2020/core/common/directives/auto-width.directive.mjs +77 -0
  153. package/esm2020/core/common/directives/button-blur.directive.mjs +24 -0
  154. package/esm2020/core/common/directives/button-loader.directive.mjs +112 -0
  155. package/esm2020/core/common/directives/data-qa.directive.mjs +23 -0
  156. package/esm2020/core/common/directives/index.mjs +5 -0
  157. package/esm2020/core/common/directives/menu-blur.directive.mjs +32 -0
  158. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +27 -0
  159. package/esm2020/core/common/directives/print.directive.mjs +170 -0
  160. package/esm2020/core/common/directives/public-api.mjs +12 -0
  161. package/esm2020/core/common/index.mjs +5 -0
  162. package/esm2020/core/common/model/index.mjs +5 -0
  163. package/esm2020/core/common/model/papi.model.mjs +3 -0
  164. package/esm2020/core/common/model/public-api.mjs +7 -0
  165. package/esm2020/core/common/model/utilities.model.mjs +57 -0
  166. package/esm2020/core/common/model/wapi.model.mjs +156 -0
  167. package/esm2020/core/common/pipes/common-pipes.mjs +167 -0
  168. package/esm2020/core/common/pipes/date-ago.pipe.mjs +46 -0
  169. package/esm2020/core/common/pipes/index.mjs +5 -0
  170. package/esm2020/core/common/pipes/public-api.mjs +6 -0
  171. package/esm2020/core/common/public-api.mjs +8 -0
  172. package/esm2020/core/common/services/addon.service.mjs +148 -0
  173. package/esm2020/core/common/services/color.service.mjs +359 -0
  174. package/esm2020/core/common/services/cookie.service.mjs +153 -0
  175. package/esm2020/core/common/services/data-convertor.service.mjs +119 -0
  176. package/esm2020/core/common/services/file.service.mjs +213 -0
  177. package/esm2020/core/common/services/index.mjs +5 -0
  178. package/esm2020/core/common/services/jwt-helper.service.mjs +106 -0
  179. package/esm2020/core/common/services/public-api.mjs +15 -0
  180. package/esm2020/core/common/services/session.service.mjs +71 -0
  181. package/esm2020/core/common/services/translate.service.mjs +46 -0
  182. package/esm2020/core/common/services/utilities.service.mjs +210 -0
  183. package/esm2020/core/common/services/validator.service.mjs +272 -0
  184. package/esm2020/core/common/services/window-scrolling.service.mjs +36 -0
  185. package/esm2020/core/customization/customization.model.mjs +289 -0
  186. package/esm2020/core/customization/customization.service.mjs +771 -0
  187. package/esm2020/core/customization/index.mjs +5 -0
  188. package/esm2020/core/customization/public-api.mjs +6 -0
  189. package/esm2020/core/http/index.mjs +5 -0
  190. package/esm2020/core/http/interceptors/error.interceptor.mjs +27 -0
  191. package/esm2020/core/http/interceptors/index.mjs +24 -0
  192. package/esm2020/core/http/interceptors/loader.interceptor.mjs +33 -0
  193. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +32 -0
  194. package/esm2020/core/http/public-api.mjs +6 -0
  195. package/esm2020/core/http/services/http.service.mjs +155 -0
  196. package/esm2020/core/http/services/loader.service.mjs +50 -0
  197. package/esm2020/core/index.mjs +5 -0
  198. package/esm2020/core/layout/index.mjs +5 -0
  199. package/esm2020/core/layout/layout.service.mjs +168 -0
  200. package/esm2020/core/layout/public-api.mjs +6 -0
  201. package/esm2020/core/layout/rtl.directive.mjs +44 -0
  202. package/esm2020/core/portal/attach.directive.mjs +27 -0
  203. package/esm2020/core/portal/index.mjs +5 -0
  204. package/esm2020/core/portal/portal.service.mjs +36 -0
  205. package/esm2020/core/portal/public-api.mjs +7 -0
  206. package/esm2020/core/portal/target.directive.mjs +24 -0
  207. package/esm2020/core/public-api.mjs +11 -0
  208. package/esm2020/core/scroll-to/index.mjs +5 -0
  209. package/esm2020/core/scroll-to/public-api.mjs +6 -0
  210. package/esm2020/core/scroll-to/scroll-to.service.mjs +84 -0
  211. package/esm2020/date/date.component.mjs +295 -0
  212. package/esm2020/date/date.model.mjs +54 -0
  213. package/esm2020/date/date.module.mjs +88 -0
  214. package/esm2020/date/pepperi-addons-ngx-lib-date.mjs +5 -0
  215. package/esm2020/date/public-api.mjs +6 -0
  216. package/esm2020/dialog/default-dialog.component.mjs +37 -0
  217. package/esm2020/dialog/dialog.component.mjs +36 -0
  218. package/esm2020/dialog/dialog.model.mjs +33 -0
  219. package/esm2020/dialog/dialog.module.mjs +59 -0
  220. package/esm2020/dialog/dialog.service.mjs +82 -0
  221. package/esm2020/dialog/pepperi-addons-ngx-lib-dialog.mjs +5 -0
  222. package/esm2020/dialog/public-api.mjs +8 -0
  223. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +27 -0
  224. package/esm2020/draggable-items/draggable-items.component.mjs +102 -0
  225. package/esm2020/draggable-items/draggable-items.model.mjs +2 -0
  226. package/esm2020/draggable-items/draggable-items.module.mjs +60 -0
  227. package/esm2020/draggable-items/pepperi-addons-ngx-lib-draggable-items.mjs +5 -0
  228. package/esm2020/draggable-items/public-api.mjs +8 -0
  229. package/esm2020/field-title/field-title.component.mjs +42 -0
  230. package/esm2020/field-title/field-title.module.mjs +47 -0
  231. package/esm2020/field-title/pepperi-addons-ngx-lib-field-title.mjs +5 -0
  232. package/esm2020/field-title/public-api.mjs +6 -0
  233. package/esm2020/files-uploader/files-uploader.component.mjs +241 -0
  234. package/esm2020/files-uploader/files-uploader.module.mjs +79 -0
  235. package/esm2020/files-uploader/pepperi-addons-ngx-lib-files-uploader.mjs +5 -0
  236. package/esm2020/files-uploader/public-api.mjs +6 -0
  237. package/esm2020/form/field-generator.component.mjs +153 -0
  238. package/esm2020/form/form.component.mjs +1218 -0
  239. package/esm2020/form/form.model.mjs +2 -0
  240. package/esm2020/form/form.module.mjs +176 -0
  241. package/esm2020/form/indicators.component.mjs +23 -0
  242. package/esm2020/form/internal-button.component.mjs +184 -0
  243. package/esm2020/form/internal-carusel.component.mjs +117 -0
  244. package/esm2020/form/internal-carusel.service.mjs +32 -0
  245. package/esm2020/form/internal-field-generator.component.mjs +147 -0
  246. package/esm2020/form/internal-form.component.mjs +1214 -0
  247. package/esm2020/form/internal-list.component.mjs +510 -0
  248. package/esm2020/form/internal-menu.component.mjs +66 -0
  249. package/esm2020/form/internal-page.component.mjs +362 -0
  250. package/esm2020/form/internal-page.service.mjs +120 -0
  251. package/esm2020/form/pepperi-addons-ngx-lib-form.mjs +5 -0
  252. package/esm2020/form/public-api.mjs +7 -0
  253. package/esm2020/group-buttons/group-buttons.component.mjs +67 -0
  254. package/esm2020/group-buttons/group-buttons.module.mjs +59 -0
  255. package/esm2020/group-buttons/pepperi-addons-ngx-lib-group-buttons.mjs +5 -0
  256. package/esm2020/group-buttons/public-api.mjs +6 -0
  257. package/esm2020/icon/icon-generated-all.model.mjs +101 -0
  258. package/esm2020/icon/icon-generated.model.mjs +390 -0
  259. package/esm2020/icon/icon-registry.service.mjs +26 -0
  260. package/esm2020/icon/icon.component.mjs +91 -0
  261. package/esm2020/icon/icon.module.mjs +20 -0
  262. package/esm2020/icon/icon.service.mjs +31 -0
  263. package/esm2020/icon/pepperi-addons-ngx-lib-icon.mjs +5 -0
  264. package/esm2020/icon/public-api.mjs +11 -0
  265. package/esm2020/image/image.component.mjs +247 -0
  266. package/esm2020/image/image.module.mjs +74 -0
  267. package/esm2020/image/image.service.mjs +52 -0
  268. package/esm2020/image/pepperi-addons-ngx-lib-image.mjs +5 -0
  269. package/esm2020/image/public-api.mjs +7 -0
  270. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +425 -0
  271. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +138 -0
  272. package/esm2020/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.mjs +5 -0
  273. package/esm2020/images-filmstrip/public-api.mjs +6 -0
  274. package/esm2020/link/link.component.mjs +339 -0
  275. package/esm2020/link/link.module.mjs +80 -0
  276. package/esm2020/link/link.pipes.mjs +18 -0
  277. package/esm2020/link/pepperi-addons-ngx-lib-link.mjs +5 -0
  278. package/esm2020/link/public-api.mjs +6 -0
  279. package/esm2020/list/list-actions.component.mjs +44 -0
  280. package/esm2020/list/list-carousel.component.mjs +107 -0
  281. package/esm2020/list/list-chooser.component.mjs +64 -0
  282. package/esm2020/list/list-pager.component.mjs +120 -0
  283. package/esm2020/list/list-sorting.component.mjs +61 -0
  284. package/esm2020/list/list-total.component.mjs +30 -0
  285. package/esm2020/list/list-views.component.mjs +85 -0
  286. package/esm2020/list/list.component.mjs +1160 -0
  287. package/esm2020/list/list.model.mjs +4 -0
  288. package/esm2020/list/list.module.mjs +144 -0
  289. package/esm2020/list/list.pipes.mjs +47 -0
  290. package/esm2020/list/pepperi-addons-ngx-lib-list.mjs +5 -0
  291. package/esm2020/list/public-api.mjs +15 -0
  292. package/esm2020/list/virtual-scroller.mjs +1071 -0
  293. package/esm2020/menu/menu-item.component.mjs +115 -0
  294. package/esm2020/menu/menu.component.mjs +205 -0
  295. package/esm2020/menu/menu.model.mjs +19 -0
  296. package/esm2020/menu/menu.module.mjs +59 -0
  297. package/esm2020/menu/pepperi-addons-ngx-lib-menu.mjs +5 -0
  298. package/esm2020/menu/public-api.mjs +7 -0
  299. package/esm2020/ngx-lib.module.mjs +158 -0
  300. package/esm2020/page-layout/page-layout.component.mjs +35 -0
  301. package/esm2020/page-layout/page-layout.module.mjs +34 -0
  302. package/esm2020/page-layout/pepperi-addons-ngx-lib-page-layout.mjs +5 -0
  303. package/esm2020/page-layout/public-api.mjs +6 -0
  304. package/esm2020/pepperi-addons-ngx-lib.mjs +5 -0
  305. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +5 -0
  306. package/esm2020/plugin/plugin-proxy.component.mjs +95 -0
  307. package/esm2020/plugin/plugin.model.mjs +2 -0
  308. package/esm2020/plugin/public-api.mjs +6 -0
  309. package/esm2020/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.mjs +5 -0
  310. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +45 -0
  311. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +65 -0
  312. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +95 -0
  313. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +2 -0
  314. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +88 -0
  315. package/esm2020/profile-data-views-list/public-api.mjs +9 -0
  316. package/esm2020/public-api.mjs +6 -0
  317. package/esm2020/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.mjs +5 -0
  318. package/esm2020/quantity-selector/public-api.mjs +6 -0
  319. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +47 -0
  320. package/esm2020/quantity-selector/quantity-selector.component.mjs +511 -0
  321. package/esm2020/quantity-selector/quantity-selector.module.mjs +82 -0
  322. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +23 -0
  323. package/esm2020/query-builder/common/model/field.mjs +2 -0
  324. package/esm2020/query-builder/common/model/filter.mjs +2 -0
  325. package/esm2020/query-builder/common/model/legacy.mjs +2 -0
  326. package/esm2020/query-builder/common/model/operator-unit.mjs +42 -0
  327. package/esm2020/query-builder/common/model/operator.mjs +266 -0
  328. package/esm2020/query-builder/common/model/structure.mjs +2 -0
  329. package/esm2020/query-builder/common/model/type-map.mjs +27 -0
  330. package/esm2020/query-builder/common/model/type.mjs +6 -0
  331. package/esm2020/query-builder/common/services/output-query.service.mjs +114 -0
  332. package/esm2020/query-builder/common/services/query-structure.service.mjs +226 -0
  333. package/esm2020/query-builder/common/services/type-convertor.service.mjs +42 -0
  334. package/esm2020/query-builder/pepperi-addons-ngx-lib-query-builder.mjs +5 -0
  335. package/esm2020/query-builder/public-api.mjs +9 -0
  336. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +125 -0
  337. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +71 -0
  338. package/esm2020/query-builder/query-builder.component.mjs +110 -0
  339. package/esm2020/query-builder/query-builder.module.mjs +59 -0
  340. package/esm2020/query-builder/query-builder.service.mjs +102 -0
  341. package/esm2020/remote-loader/addon-block-loader.component.mjs +84 -0
  342. package/esm2020/remote-loader/addon-block-loader.service.mjs +61 -0
  343. package/esm2020/remote-loader/pepperi-addons-ngx-lib-remote-loader.mjs +5 -0
  344. package/esm2020/remote-loader/public-api.mjs +10 -0
  345. package/esm2020/remote-loader/remote-loader.component.mjs +137 -0
  346. package/esm2020/remote-loader/remote-loader.model.mjs +2 -0
  347. package/esm2020/remote-loader/remote-loader.module.mjs +60 -0
  348. package/esm2020/remote-loader/remote-loader.service.mjs +57 -0
  349. package/esm2020/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.mjs +5 -0
  350. package/esm2020/rich-html-textarea/public-api.mjs +6 -0
  351. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +245 -0
  352. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +95 -0
  353. package/esm2020/search/pepperi-addons-ngx-lib-search.mjs +5 -0
  354. package/esm2020/search/public-api.mjs +7 -0
  355. package/esm2020/search/search.component.mjs +317 -0
  356. package/esm2020/search/search.model.mjs +2 -0
  357. package/esm2020/search/search.module.mjs +70 -0
  358. package/esm2020/select/pepperi-addons-ngx-lib-select.mjs +5 -0
  359. package/esm2020/select/public-api.mjs +6 -0
  360. package/esm2020/select/select.component.mjs +238 -0
  361. package/esm2020/select/select.module.mjs +70 -0
  362. package/esm2020/separator/pepperi-addons-ngx-lib-separator.mjs +5 -0
  363. package/esm2020/separator/public-api.mjs +6 -0
  364. package/esm2020/separator/separator.component.mjs +63 -0
  365. package/esm2020/separator/separator.module.mjs +18 -0
  366. package/esm2020/side-bar/pepperi-addons-ngx-lib-side-bar.mjs +5 -0
  367. package/esm2020/side-bar/public-api.mjs +7 -0
  368. package/esm2020/side-bar/side-bar.component.mjs +138 -0
  369. package/esm2020/side-bar/side-bar.model.mjs +2 -0
  370. package/esm2020/side-bar/side-bar.module.mjs +51 -0
  371. package/esm2020/signature/pepperi-addons-ngx-lib-signature.mjs +5 -0
  372. package/esm2020/signature/public-api.mjs +6 -0
  373. package/esm2020/signature/signature.component.mjs +254 -0
  374. package/esm2020/signature/signature.module.mjs +90 -0
  375. package/esm2020/size-detector/pepperi-addons-ngx-lib-size-detector.mjs +5 -0
  376. package/esm2020/size-detector/public-api.mjs +6 -0
  377. package/esm2020/size-detector/size-detector.component.mjs +92 -0
  378. package/esm2020/size-detector/size-detector.module.mjs +35 -0
  379. package/esm2020/slider/pepperi-addons-ngx-lib-slider.mjs +5 -0
  380. package/esm2020/slider/public-api.mjs +6 -0
  381. package/esm2020/slider/slider.component.mjs +101 -0
  382. package/esm2020/slider/slider.module.mjs +42 -0
  383. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +75 -0
  384. package/esm2020/smart-filters/common/filter-actions.component.mjs +29 -0
  385. package/esm2020/smart-filters/common/model/base-filter-component.mjs +295 -0
  386. package/esm2020/smart-filters/common/model/creator.mjs +76 -0
  387. package/esm2020/smart-filters/common/model/field.mjs +117 -0
  388. package/esm2020/smart-filters/common/model/filter.mjs +2 -0
  389. package/esm2020/smart-filters/common/model/operator.mjs +271 -0
  390. package/esm2020/smart-filters/common/model/type.mjs +2 -0
  391. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +172 -0
  392. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +200 -0
  393. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +116 -0
  394. package/esm2020/smart-filters/pepperi-addons-ngx-lib-smart-filters.mjs +5 -0
  395. package/esm2020/smart-filters/public-api.mjs +19 -0
  396. package/esm2020/smart-filters/smart-filters.component.mjs +141 -0
  397. package/esm2020/smart-filters/smart-filters.module.mjs +158 -0
  398. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +92 -0
  399. package/esm2020/snack-bar/default-snack-bar.component.mjs +29 -0
  400. package/esm2020/snack-bar/pepperi-addons-ngx-lib-snack-bar.mjs +5 -0
  401. package/esm2020/snack-bar/public-api.mjs +8 -0
  402. package/esm2020/snack-bar/snack-bar.component.mjs +26 -0
  403. package/esm2020/snack-bar/snack-bar.model.mjs +7 -0
  404. package/esm2020/snack-bar/snack-bar.module.mjs +63 -0
  405. package/esm2020/snack-bar/snack-bar.service.mjs +60 -0
  406. package/esm2020/textarea/pepperi-addons-ngx-lib-textarea.mjs +5 -0
  407. package/esm2020/textarea/public-api.mjs +6 -0
  408. package/esm2020/textarea/textarea.component.mjs +182 -0
  409. package/esm2020/textarea/textarea.module.mjs +82 -0
  410. package/esm2020/textbox/pepperi-addons-ngx-lib-textbox.mjs +5 -0
  411. package/esm2020/textbox/public-api.mjs +6 -0
  412. package/esm2020/textbox/textbox-validation.directive.mjs +89 -0
  413. package/esm2020/textbox/textbox.component.mjs +442 -0
  414. package/esm2020/textbox/textbox.module.mjs +72 -0
  415. package/esm2020/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.mjs +5 -0
  416. package/esm2020/textbox-icon/public-api.mjs +6 -0
  417. package/esm2020/textbox-icon/textbox-icon.component.mjs +48 -0
  418. package/esm2020/textbox-icon/textbox-icon.module.mjs +64 -0
  419. package/esm2020/top-bar/pepperi-addons-ngx-lib-top-bar.mjs +5 -0
  420. package/esm2020/top-bar/public-api.mjs +7 -0
  421. package/esm2020/top-bar/top-bar.component.mjs +112 -0
  422. package/esm2020/top-bar/top-bar.model.mjs +2 -0
  423. package/esm2020/top-bar/top-bar.module.mjs +62 -0
  424. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +170 -0
  425. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -0
  426. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +277 -0
  427. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -0
  428. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +147 -0
  429. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -0
  430. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +197 -0
  431. package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -0
  432. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +804 -0
  433. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -0
  434. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +237 -0
  435. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -0
  436. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +404 -0
  437. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -0
  438. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +441 -0
  439. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -0
  440. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +242 -0
  441. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -0
  442. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +192 -0
  443. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -0
  444. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +96 -0
  445. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -0
  446. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +326 -0
  447. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -0
  448. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +4204 -0
  449. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -0
  450. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +132 -0
  451. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -0
  452. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +661 -0
  453. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -0
  454. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +374 -0
  455. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -0
  456. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +552 -0
  457. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -0
  458. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +438 -0
  459. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -0
  460. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +2896 -0
  461. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -0
  462. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +391 -0
  463. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -0
  464. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +77 -0
  465. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -0
  466. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +112 -0
  467. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  468. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +289 -0
  469. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -0
  470. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +662 -0
  471. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -0
  472. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +1167 -0
  473. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -0
  474. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +404 -0
  475. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -0
  476. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +344 -0
  477. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -0
  478. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +393 -0
  479. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -0
  480. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +314 -0
  481. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -0
  482. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +89 -0
  483. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +1 -0
  484. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +194 -0
  485. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -0
  486. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +350 -0
  487. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -0
  488. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +134 -0
  489. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -0
  490. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +151 -0
  491. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -0
  492. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +1676 -0
  493. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -0
  494. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +183 -0
  495. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -0
  496. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +271 -0
  497. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -0
  498. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +118 -0
  499. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -0
  500. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +604 -0
  501. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -0
  502. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +180 -0
  503. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -0
  504. package/fesm2015/pepperi-addons-ngx-lib.mjs +4579 -0
  505. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -0
  506. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +170 -0
  507. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -0
  508. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +277 -0
  509. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -0
  510. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +147 -0
  511. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -0
  512. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +197 -0
  513. package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -0
  514. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +800 -0
  515. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -0
  516. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +237 -0
  517. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -0
  518. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +401 -0
  519. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -0
  520. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +437 -0
  521. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -0
  522. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +237 -0
  523. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -0
  524. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +191 -0
  525. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -0
  526. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +96 -0
  527. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -0
  528. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +323 -0
  529. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -0
  530. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +4200 -0
  531. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -0
  532. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +132 -0
  533. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -0
  534. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +659 -0
  535. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -0
  536. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +372 -0
  537. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -0
  538. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +549 -0
  539. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -0
  540. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +438 -0
  541. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -0
  542. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +2882 -0
  543. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -0
  544. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +391 -0
  545. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -0
  546. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +77 -0
  547. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -0
  548. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +106 -0
  549. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  550. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +288 -0
  551. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -0
  552. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +661 -0
  553. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -0
  554. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +1156 -0
  555. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -0
  556. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +393 -0
  557. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -0
  558. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +344 -0
  559. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -0
  560. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +392 -0
  561. package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -0
  562. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +314 -0
  563. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -0
  564. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +89 -0
  565. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs.map +1 -0
  566. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +194 -0
  567. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -0
  568. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +350 -0
  569. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -0
  570. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +134 -0
  571. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -0
  572. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +150 -0
  573. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -0
  574. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +1669 -0
  575. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -0
  576. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +180 -0
  577. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -0
  578. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +270 -0
  579. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -0
  580. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +118 -0
  581. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -0
  582. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +604 -0
  583. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -0
  584. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +179 -0
  585. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -0
  586. package/fesm2020/pepperi-addons-ngx-lib.mjs +4561 -0
  587. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -0
  588. package/field-title/field-title.component.d.ts +14 -11
  589. package/field-title/field-title.module.d.ts +15 -5
  590. package/field-title/index.d.ts +5 -0
  591. package/field-title/public-api.d.ts +2 -2
  592. package/files-uploader/files-uploader.component.d.ts +57 -53
  593. package/files-uploader/files-uploader.module.d.ts +21 -5
  594. package/files-uploader/index.d.ts +5 -0
  595. package/files-uploader/public-api.d.ts +2 -2
  596. package/form/field-generator.component.d.ts +39 -45
  597. package/form/form.component.d.ts +93 -90
  598. package/form/form.model.d.ts +20 -20
  599. package/form/form.module.d.ts +49 -5
  600. package/form/index.d.ts +5 -0
  601. package/form/indicators.component.d.ts +10 -7
  602. package/form/internal-button.component.d.ts +42 -39
  603. package/form/internal-carusel.component.d.ts +39 -38
  604. package/form/internal-carusel.service.d.ts +10 -7
  605. package/form/internal-field-generator.component.d.ts +35 -0
  606. package/form/internal-form.component.d.ts +89 -0
  607. package/form/internal-list.component.d.ts +95 -92
  608. package/form/internal-menu.component.d.ts +19 -16
  609. package/form/internal-page.component.d.ts +73 -72
  610. package/form/internal-page.service.d.ts +22 -19
  611. package/form/public-api.d.ts +3 -3
  612. package/group-buttons/group-buttons.component.d.ts +23 -20
  613. package/group-buttons/group-buttons.module.d.ts +18 -5
  614. package/group-buttons/index.d.ts +5 -0
  615. package/group-buttons/public-api.d.ts +2 -2
  616. package/icon/icon-generated-all.model.d.ts +99 -99
  617. package/icon/icon-generated.model.d.ts +394 -394
  618. package/icon/icon-registry.service.d.ts +9 -6
  619. package/icon/icon.component.d.ts +49 -46
  620. package/icon/icon.module.d.ts +7 -2
  621. package/icon/icon.service.d.ts +13 -10
  622. package/icon/index.d.ts +5 -0
  623. package/icon/public-api.d.ts +6 -6
  624. package/image/image.component.d.ts +66 -63
  625. package/image/image.module.d.ts +20 -5
  626. package/image/image.service.d.ts +14 -11
  627. package/image/index.d.ts +5 -0
  628. package/image/public-api.d.ts +3 -3
  629. package/images-filmstrip/images-filmstrip.component.d.ts +87 -87
  630. package/images-filmstrip/images-filmstrip.module.d.ts +22 -5
  631. package/images-filmstrip/index.d.ts +5 -0
  632. package/images-filmstrip/public-api.d.ts +2 -2
  633. package/index.d.ts +5 -0
  634. package/link/index.d.ts +5 -0
  635. package/link/link.component.d.ts +133 -131
  636. package/link/link.module.d.ts +22 -5
  637. package/link/link.pipes.d.ts +7 -4
  638. package/link/public-api.d.ts +2 -2
  639. package/list/index.d.ts +5 -0
  640. package/list/list-actions.component.d.ts +18 -14
  641. package/list/list-carousel.component.d.ts +40 -36
  642. package/list/list-chooser.component.d.ts +29 -25
  643. package/list/list-pager.component.d.ts +39 -35
  644. package/list/list-sorting.component.d.ts +30 -26
  645. package/list/list-total.component.d.ts +11 -7
  646. package/list/list-views.component.d.ts +35 -31
  647. package/list/list.component.d.ts +164 -161
  648. package/list/list.model.d.ts +31 -31
  649. package/list/list.module.d.ts +34 -5
  650. package/list/list.pipes.d.ts +16 -11
  651. package/list/public-api.d.ts +10 -10
  652. package/list/virtual-scroller.d.ts +183 -176
  653. package/menu/index.d.ts +5 -0
  654. package/menu/menu-item.component.d.ts +28 -25
  655. package/menu/menu.component.d.ts +46 -43
  656. package/menu/menu.model.d.ts +25 -25
  657. package/menu/menu.module.d.ts +18 -5
  658. package/menu/public-api.d.ts +3 -3
  659. package/ngx-lib.module.d.ts +23 -2
  660. package/package.json +353 -20
  661. package/page-layout/index.d.ts +5 -0
  662. package/page-layout/page-layout.component.d.ts +19 -16
  663. package/page-layout/page-layout.module.d.ts +10 -2
  664. package/page-layout/public-api.d.ts +2 -2
  665. package/plugin/index.d.ts +5 -0
  666. package/plugin/plugin-proxy.component.d.ts +25 -0
  667. package/plugin/plugin.model.d.ts +6 -0
  668. package/plugin/public-api.d.ts +2 -0
  669. package/profile-data-views-list/index.d.ts +5 -0
  670. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +18 -15
  671. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +24 -21
  672. package/profile-data-views-list/profile-data-views-list.component.d.ts +35 -32
  673. package/profile-data-views-list/profile-data-views-list.model.d.ts +18 -18
  674. package/profile-data-views-list/profile-data-views-list.module.d.ts +23 -5
  675. package/profile-data-views-list/public-api.d.ts +5 -5
  676. package/public-api.d.ts +2 -2
  677. package/quantity-selector/index.d.ts +5 -0
  678. package/quantity-selector/public-api.d.ts +2 -2
  679. package/quantity-selector/quantity-selector-validation.directive.d.ts +16 -13
  680. package/quantity-selector/quantity-selector.component.d.ts +101 -98
  681. package/quantity-selector/quantity-selector.module.d.ts +23 -5
  682. package/quantity-selector/quantity-selector.pipes.d.ts +7 -4
  683. package/query-builder/common/model/field.d.ts +8 -8
  684. package/query-builder/common/model/filter.d.ts +6 -6
  685. package/query-builder/common/model/legacy.d.ts +29 -29
  686. package/query-builder/common/model/operator-unit.d.ts +13 -13
  687. package/query-builder/common/model/operator.d.ts +21 -21
  688. package/query-builder/common/model/structure.d.ts +4 -4
  689. package/query-builder/common/model/type-map.d.ts +12 -12
  690. package/query-builder/common/model/type.d.ts +4 -4
  691. package/query-builder/common/services/output-query.service.d.ts +47 -44
  692. package/query-builder/common/services/query-structure.service.d.ts +82 -78
  693. package/query-builder/common/services/type-convertor.service.d.ts +13 -10
  694. package/query-builder/index.d.ts +5 -0
  695. package/query-builder/public-api.d.ts +5 -5
  696. package/query-builder/query-builder-item/query-builder-item.component.d.ts +41 -38
  697. package/query-builder/query-builder-section/query-builder-section.component.d.ts +30 -27
  698. package/query-builder/query-builder.component.d.ts +39 -36
  699. package/query-builder/query-builder.module.d.ts +16 -2
  700. package/query-builder/query-builder.service.d.ts +30 -27
  701. package/remote-loader/addon-block-loader.component.d.ts +32 -29
  702. package/remote-loader/addon-block-loader.service.d.ts +16 -13
  703. package/remote-loader/index.d.ts +5 -0
  704. package/remote-loader/public-api.d.ts +6 -6
  705. package/remote-loader/remote-loader.component.d.ts +27 -24
  706. package/remote-loader/remote-loader.model.d.ts +36 -36
  707. package/remote-loader/remote-loader.module.d.ts +13 -2
  708. package/remote-loader/remote-loader.service.d.ts +17 -14
  709. package/rich-html-textarea/index.d.ts +5 -0
  710. package/rich-html-textarea/public-api.d.ts +2 -2
  711. package/rich-html-textarea/rich-html-textarea.component.d.ts +78 -75
  712. package/rich-html-textarea/rich-html-textarea.module.d.ts +25 -5
  713. package/search/index.d.ts +5 -0
  714. package/search/public-api.d.ts +3 -3
  715. package/search/search.component.d.ts +65 -61
  716. package/search/search.model.d.ts +14 -14
  717. package/search/search.module.d.ts +20 -5
  718. package/select/index.d.ts +5 -0
  719. package/select/public-api.d.ts +2 -2
  720. package/select/select.component.d.ts +53 -50
  721. package/select/select.module.d.ts +20 -5
  722. package/separator/index.d.ts +5 -0
  723. package/separator/public-api.d.ts +2 -2
  724. package/separator/separator.component.d.ts +22 -19
  725. package/separator/separator.module.d.ts +8 -2
  726. package/side-bar/index.d.ts +5 -0
  727. package/side-bar/public-api.d.ts +3 -3
  728. package/side-bar/side-bar.component.d.ts +42 -38
  729. package/side-bar/side-bar.model.d.ts +4 -4
  730. package/side-bar/side-bar.module.d.ts +16 -5
  731. package/signature/index.d.ts +5 -0
  732. package/signature/public-api.d.ts +2 -2
  733. package/signature/signature.component.d.ts +68 -65
  734. package/signature/signature.module.d.ts +24 -5
  735. package/size-detector/index.d.ts +5 -0
  736. package/size-detector/public-api.d.ts +2 -2
  737. package/size-detector/size-detector.component.d.ts +29 -26
  738. package/size-detector/size-detector.module.d.ts +11 -2
  739. package/slider/index.d.ts +5 -0
  740. package/slider/public-api.d.ts +2 -2
  741. package/slider/slider.component.d.ts +39 -36
  742. package/slider/slider.module.d.ts +12 -2
  743. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +28 -25
  744. package/smart-filters/common/filter-actions.component.d.ts +12 -9
  745. package/smart-filters/common/model/base-filter-component.d.ts +73 -70
  746. package/smart-filters/common/model/creator.d.ts +6 -6
  747. package/smart-filters/common/model/field.d.ts +69 -69
  748. package/smart-filters/common/model/filter.d.ts +11 -11
  749. package/smart-filters/common/model/operator.d.ts +51 -51
  750. package/smart-filters/common/model/type.d.ts +4 -4
  751. package/smart-filters/date-filter/date-filter.component.d.ts +59 -56
  752. package/smart-filters/index.d.ts +5 -0
  753. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +56 -53
  754. package/smart-filters/number-filter/number-filter.component.d.ts +51 -48
  755. package/smart-filters/public-api.d.ts +14 -14
  756. package/smart-filters/smart-filters.component.d.ts +35 -32
  757. package/smart-filters/smart-filters.module.d.ts +37 -5
  758. package/smart-filters/text-filter/text-filter.component.d.ts +28 -25
  759. package/snack-bar/default-snack-bar.component.d.ts +13 -10
  760. package/snack-bar/index.d.ts +5 -0
  761. package/snack-bar/public-api.d.ts +4 -4
  762. package/snack-bar/snack-bar.component.d.ts +12 -9
  763. package/snack-bar/snack-bar.model.d.ts +8 -8
  764. package/snack-bar/snack-bar.module.d.ts +19 -5
  765. package/snack-bar/snack-bar.service.d.ts +24 -21
  766. package/src/core/style/themes/black-theme.scss +1 -1
  767. package/src/core/style/themes/default-theme.scss +1 -1
  768. package/src/core/style/themes/light-theme.scss +1 -1
  769. package/src/core/style/themes/nature-theme.scss +1 -1
  770. package/textarea/index.d.ts +5 -0
  771. package/textarea/public-api.d.ts +2 -2
  772. package/textarea/textarea.component.d.ts +54 -51
  773. package/textarea/textarea.module.d.ts +23 -5
  774. package/textbox/index.d.ts +5 -0
  775. package/textbox/public-api.d.ts +2 -2
  776. package/textbox/textbox-validation.directive.d.ts +21 -18
  777. package/textbox/textbox.component.d.ts +143 -141
  778. package/textbox/textbox.module.d.ts +22 -5
  779. package/textbox-icon/index.d.ts +5 -0
  780. package/textbox-icon/public-api.d.ts +2 -2
  781. package/textbox-icon/textbox-icon.component.d.ts +13 -10
  782. package/textbox-icon/textbox-icon.module.d.ts +16 -5
  783. package/theming.scss +1 -1
  784. package/top-bar/index.d.ts +5 -0
  785. package/top-bar/public-api.d.ts +3 -3
  786. package/top-bar/top-bar.component.d.ts +39 -36
  787. package/top-bar/top-bar.model.d.ts +4 -4
  788. package/top-bar/top-bar.module.d.ts +18 -5
  789. package/address/package.json +0 -11
  790. package/address/pepperi-addons-ngx-lib-address.d.ts +0 -4
  791. package/address/pepperi-addons-ngx-lib-address.metadata.json +0 -1
  792. package/attachment/package.json +0 -11
  793. package/attachment/pepperi-addons-ngx-lib-attachment.d.ts +0 -4
  794. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +0 -1
  795. package/bread-crumbs/package.json +0 -11
  796. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.d.ts +0 -4
  797. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +0 -1
  798. package/bundles/pepperi-addons-ngx-lib-address.umd.js +0 -145
  799. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +0 -1
  800. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +0 -268
  801. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +0 -1
  802. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +0 -145
  803. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +0 -1
  804. package/bundles/pepperi-addons-ngx-lib-button.umd.js +0 -182
  805. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +0 -1
  806. package/bundles/pepperi-addons-ngx-lib-carousel.umd.js +0 -812
  807. package/bundles/pepperi-addons-ngx-lib-carousel.umd.js.map +0 -1
  808. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +0 -213
  809. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +0 -1
  810. package/bundles/pepperi-addons-ngx-lib-color.umd.js +0 -326
  811. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +0 -1
  812. package/bundles/pepperi-addons-ngx-lib-date.umd.js +0 -698
  813. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +0 -1
  814. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +0 -578
  815. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +0 -1
  816. package/bundles/pepperi-addons-ngx-lib-draggable-items.umd.js +0 -175
  817. package/bundles/pepperi-addons-ngx-lib-draggable-items.umd.js.map +0 -1
  818. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +0 -78
  819. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +0 -1
  820. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +0 -281
  821. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +0 -1
  822. package/bundles/pepperi-addons-ngx-lib-form.umd.js +0 -3401
  823. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +0 -1
  824. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +0 -108
  825. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +0 -1
  826. package/bundles/pepperi-addons-ngx-lib-icon.umd.js +0 -834
  827. package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +0 -1
  828. package/bundles/pepperi-addons-ngx-lib-image.umd.js +0 -372
  829. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +0 -1
  830. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +0 -446
  831. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +0 -1
  832. package/bundles/pepperi-addons-ngx-lib-link.umd.js +0 -412
  833. package/bundles/pepperi-addons-ngx-lib-link.umd.js.map +0 -1
  834. package/bundles/pepperi-addons-ngx-lib-list.umd.js +0 -3274
  835. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +0 -1
  836. package/bundles/pepperi-addons-ngx-lib-menu.umd.js +0 -676
  837. package/bundles/pepperi-addons-ngx-lib-menu.umd.js.map +0 -1
  838. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +0 -81
  839. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js.map +0 -1
  840. package/bundles/pepperi-addons-ngx-lib-profile-data-views-list.umd.js +0 -572
  841. package/bundles/pepperi-addons-ngx-lib-profile-data-views-list.umd.js.map +0 -1
  842. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +0 -959
  843. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +0 -1
  844. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +0 -1250
  845. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +0 -1
  846. package/bundles/pepperi-addons-ngx-lib-remote-loader.umd.js +0 -738
  847. package/bundles/pepperi-addons-ngx-lib-remote-loader.umd.js.map +0 -1
  848. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +0 -296
  849. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +0 -1
  850. package/bundles/pepperi-addons-ngx-lib-search.umd.js +0 -347
  851. package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +0 -1
  852. package/bundles/pepperi-addons-ngx-lib-select.umd.js +0 -598
  853. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +0 -1
  854. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +0 -100
  855. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +0 -1
  856. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +0 -184
  857. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +0 -1
  858. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +0 -307
  859. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +0 -1
  860. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +0 -134
  861. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js.map +0 -1
  862. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +0 -145
  863. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +0 -1
  864. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +0 -2044
  865. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +0 -1
  866. package/bundles/pepperi-addons-ngx-lib-snack-bar.umd.js +0 -202
  867. package/bundles/pepperi-addons-ngx-lib-snack-bar.umd.js.map +0 -1
  868. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +0 -232
  869. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +0 -1
  870. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +0 -101
  871. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js.map +0 -1
  872. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +0 -577
  873. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +0 -1
  874. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +0 -150
  875. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +0 -1
  876. package/bundles/pepperi-addons-ngx-lib.umd.js +0 -5182
  877. package/bundles/pepperi-addons-ngx-lib.umd.js.map +0 -1
  878. package/button/package.json +0 -11
  879. package/button/pepperi-addons-ngx-lib-button.d.ts +0 -4
  880. package/button/pepperi-addons-ngx-lib-button.metadata.json +0 -1
  881. package/carousel/package.json +0 -11
  882. package/carousel/pepperi-addons-ngx-lib-carousel.d.ts +0 -4
  883. package/carousel/pepperi-addons-ngx-lib-carousel.metadata.json +0 -1
  884. package/checkbox/package.json +0 -14
  885. package/checkbox/pepperi-addons-ngx-lib-checkbox.d.ts +0 -4
  886. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +0 -1
  887. package/color/package.json +0 -14
  888. package/color/pepperi-addons-ngx-lib-color.d.ts +0 -5
  889. package/color/pepperi-addons-ngx-lib-color.metadata.json +0 -1
  890. package/date/package.json +0 -18
  891. package/date/pepperi-addons-ngx-lib-date.d.ts +0 -5
  892. package/date/pepperi-addons-ngx-lib-date.metadata.json +0 -1
  893. package/dialog/package.json +0 -15
  894. package/dialog/pepperi-addons-ngx-lib-dialog.d.ts +0 -5
  895. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +0 -1
  896. package/draggable-items/package.json +0 -14
  897. package/draggable-items/pepperi-addons-ngx-lib-draggable-items.d.ts +0 -4
  898. package/draggable-items/pepperi-addons-ngx-lib-draggable-items.metadata.json +0 -1
  899. package/esm2015/address/address.component.js +0 -97
  900. package/esm2015/address/address.module.js +0 -31
  901. package/esm2015/address/pepperi-addons-ngx-lib-address.js +0 -5
  902. package/esm2015/address/public-api.js +0 -6
  903. package/esm2015/attachment/attachment.component.js +0 -209
  904. package/esm2015/attachment/attachment.module.js +0 -29
  905. package/esm2015/attachment/pepperi-addons-ngx-lib-attachment.js +0 -5
  906. package/esm2015/attachment/public-api.js +0 -6
  907. package/esm2015/bread-crumbs/bread-crumbs.component.js +0 -79
  908. package/esm2015/bread-crumbs/bread-crumbs.model.js +0 -7
  909. package/esm2015/bread-crumbs/bread-crumbs.module.js +0 -35
  910. package/esm2015/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.js +0 -5
  911. package/esm2015/bread-crumbs/public-api.js +0 -7
  912. package/esm2015/button/button.component.js +0 -128
  913. package/esm2015/button/button.model.js +0 -6
  914. package/esm2015/button/button.module.js +0 -27
  915. package/esm2015/button/pepperi-addons-ngx-lib-button.js +0 -5
  916. package/esm2015/button/public-api.js +0 -7
  917. package/esm2015/carousel/carousel-item.directive.js +0 -27
  918. package/esm2015/carousel/carousel.component.js +0 -714
  919. package/esm2015/carousel/carousel.module.js +0 -12
  920. package/esm2015/carousel/pepperi-addons-ngx-lib-carousel.js +0 -5
  921. package/esm2015/carousel/public-api.js +0 -8
  922. package/esm2015/checkbox/checkbox.component.js +0 -152
  923. package/esm2015/checkbox/checkbox.module.js +0 -40
  924. package/esm2015/checkbox/pepperi-addons-ngx-lib-checkbox.js +0 -5
  925. package/esm2015/checkbox/public-api.js +0 -6
  926. package/esm2015/color/color-picker.component.js +0 -224
  927. package/esm2015/color/color.component.js +0 -78
  928. package/esm2015/color/color.model.js +0 -2
  929. package/esm2015/color/color.module.js +0 -58
  930. package/esm2015/color/pepperi-addons-ngx-lib-color.js +0 -6
  931. package/esm2015/color/public-api.js +0 -7
  932. package/esm2015/core/clipboard/clipboard.directive.js +0 -20
  933. package/esm2015/core/clipboard/clipboard.service.js +0 -12
  934. package/esm2015/core/clipboard/index.js +0 -5
  935. package/esm2015/core/clipboard/public-api.js +0 -6
  936. package/esm2015/core/common/directives/auto-width.directive.js +0 -78
  937. package/esm2015/core/common/directives/button-blur.directive.js +0 -23
  938. package/esm2015/core/common/directives/button-loader.directive.js +0 -103
  939. package/esm2015/core/common/directives/data-qa.directive.js +0 -23
  940. package/esm2015/core/common/directives/index.js +0 -5
  941. package/esm2015/core/common/directives/menu-blur.directive.js +0 -29
  942. package/esm2015/core/common/directives/prevent-multi-click.directive.js +0 -22
  943. package/esm2015/core/common/directives/print.directive.js +0 -160
  944. package/esm2015/core/common/directives/public-api.js +0 -12
  945. package/esm2015/core/common/index.js +0 -5
  946. package/esm2015/core/common/model/index.js +0 -5
  947. package/esm2015/core/common/model/papi.model.js +0 -3
  948. package/esm2015/core/common/model/public-api.js +0 -7
  949. package/esm2015/core/common/model/utilities.model.js +0 -57
  950. package/esm2015/core/common/model/wapi.model.js +0 -156
  951. package/esm2015/core/common/pipes/common-pipes.js +0 -142
  952. package/esm2015/core/common/pipes/date-ago.pipe.js +0 -45
  953. package/esm2015/core/common/pipes/index.js +0 -5
  954. package/esm2015/core/common/pipes/public-api.js +0 -6
  955. package/esm2015/core/common/public-api.js +0 -8
  956. package/esm2015/core/common/services/addon.service.js +0 -161
  957. package/esm2015/core/common/services/color.service.js +0 -357
  958. package/esm2015/core/common/services/cookie.service.js +0 -148
  959. package/esm2015/core/common/services/data-convertor.service.js +0 -118
  960. package/esm2015/core/common/services/file.service.js +0 -212
  961. package/esm2015/core/common/services/index.js +0 -5
  962. package/esm2015/core/common/services/jwt-helper.service.js +0 -104
  963. package/esm2015/core/common/services/public-api.js +0 -15
  964. package/esm2015/core/common/services/session.service.js +0 -73
  965. package/esm2015/core/common/services/translate.service.js +0 -48
  966. package/esm2015/core/common/services/utilities.service.js +0 -211
  967. package/esm2015/core/common/services/validator.service.js +0 -273
  968. package/esm2015/core/common/services/window-scrolling.service.js +0 -35
  969. package/esm2015/core/customization/customization.model.js +0 -290
  970. package/esm2015/core/customization/customization.service.js +0 -778
  971. package/esm2015/core/customization/index.js +0 -5
  972. package/esm2015/core/customization/public-api.js +0 -6
  973. package/esm2015/core/http/index.js +0 -5
  974. package/esm2015/core/http/interceptors/error.interceptor.js +0 -24
  975. package/esm2015/core/http/interceptors/index.js +0 -24
  976. package/esm2015/core/http/interceptors/loader.interceptor.js +0 -38
  977. package/esm2015/core/http/interceptors/profiler.interceptor.js +0 -29
  978. package/esm2015/core/http/public-api.js +0 -6
  979. package/esm2015/core/http/services/http.service.js +0 -161
  980. package/esm2015/core/http/services/loader.service.js +0 -49
  981. package/esm2015/core/index.js +0 -5
  982. package/esm2015/core/layout/index.js +0 -5
  983. package/esm2015/core/layout/layout.service.js +0 -169
  984. package/esm2015/core/layout/public-api.js +0 -6
  985. package/esm2015/core/layout/rtl.directive.js +0 -47
  986. package/esm2015/core/portal/attach.directive.js +0 -27
  987. package/esm2015/core/portal/index.js +0 -5
  988. package/esm2015/core/portal/portal.service.js +0 -35
  989. package/esm2015/core/portal/public-api.js +0 -7
  990. package/esm2015/core/portal/target.directive.js +0 -24
  991. package/esm2015/core/public-api.js +0 -11
  992. package/esm2015/core/scroll-to/index.js +0 -5
  993. package/esm2015/core/scroll-to/public-api.js +0 -6
  994. package/esm2015/core/scroll-to/scroll-to.service.js +0 -82
  995. package/esm2015/date/date.component.js +0 -252
  996. package/esm2015/date/date.model.js +0 -45
  997. package/esm2015/date/date.module.js +0 -51
  998. package/esm2015/date/pepperi-addons-ngx-lib-date.js +0 -6
  999. package/esm2015/date/public-api.js +0 -6
  1000. package/esm2015/dialog/default-dialog.component.js +0 -32
  1001. package/esm2015/dialog/dialog.component.js +0 -29
  1002. package/esm2015/dialog/dialog.model.js +0 -35
  1003. package/esm2015/dialog/dialog.module.js +0 -40
  1004. package/esm2015/dialog/dialog.service.js +0 -88
  1005. package/esm2015/dialog/pepperi-addons-ngx-lib-dialog.js +0 -6
  1006. package/esm2015/dialog/public-api.js +0 -8
  1007. package/esm2015/draggable-items/draggable-item/draggable-item.component.js +0 -25
  1008. package/esm2015/draggable-items/draggable-items.component.js +0 -92
  1009. package/esm2015/draggable-items/draggable-items.model.js +0 -2
  1010. package/esm2015/draggable-items/draggable-items.module.js +0 -43
  1011. package/esm2015/draggable-items/pepperi-addons-ngx-lib-draggable-items.js +0 -5
  1012. package/esm2015/draggable-items/public-api.js +0 -8
  1013. package/esm2015/field-title/field-title.component.js +0 -32
  1014. package/esm2015/field-title/field-title.module.js +0 -32
  1015. package/esm2015/field-title/pepperi-addons-ngx-lib-field-title.js +0 -5
  1016. package/esm2015/field-title/public-api.js +0 -6
  1017. package/esm2015/files-uploader/files-uploader.component.js +0 -221
  1018. package/esm2015/files-uploader/files-uploader.module.js +0 -50
  1019. package/esm2015/files-uploader/pepperi-addons-ngx-lib-files-uploader.js +0 -5
  1020. package/esm2015/files-uploader/public-api.js +0 -6
  1021. package/esm2015/form/field-generator.component.js +0 -220
  1022. package/esm2015/form/form.component.js +0 -1197
  1023. package/esm2015/form/form.model.js +0 -2
  1024. package/esm2015/form/form.module.js +0 -108
  1025. package/esm2015/form/indicators.component.js +0 -21
  1026. package/esm2015/form/internal-button.component.js +0 -166
  1027. package/esm2015/form/internal-carusel.component.js +0 -116
  1028. package/esm2015/form/internal-carusel.service.js +0 -32
  1029. package/esm2015/form/internal-list.component.js +0 -495
  1030. package/esm2015/form/internal-menu.component.js +0 -55
  1031. package/esm2015/form/internal-page.component.js +0 -351
  1032. package/esm2015/form/internal-page.service.js +0 -121
  1033. package/esm2015/form/pepperi-addons-ngx-lib-form.js +0 -14
  1034. package/esm2015/form/public-api.js +0 -7
  1035. package/esm2015/group-buttons/group-buttons.component.js +0 -58
  1036. package/esm2015/group-buttons/group-buttons.module.js +0 -38
  1037. package/esm2015/group-buttons/pepperi-addons-ngx-lib-group-buttons.js +0 -5
  1038. package/esm2015/group-buttons/public-api.js +0 -6
  1039. package/esm2015/icon/icon-generated-all.model.js +0 -101
  1040. package/esm2015/icon/icon-generated.model.js +0 -390
  1041. package/esm2015/icon/icon-registry.service.js +0 -24
  1042. package/esm2015/icon/icon.component.js +0 -125
  1043. package/esm2015/icon/icon.module.js +0 -15
  1044. package/esm2015/icon/icon.service.js +0 -32
  1045. package/esm2015/icon/pepperi-addons-ngx-lib-icon.js +0 -5
  1046. package/esm2015/icon/public-api.js +0 -11
  1047. package/esm2015/image/image.component.js +0 -229
  1048. package/esm2015/image/image.module.js +0 -49
  1049. package/esm2015/image/image.service.js +0 -57
  1050. package/esm2015/image/pepperi-addons-ngx-lib-image.js +0 -5
  1051. package/esm2015/image/public-api.js +0 -7
  1052. package/esm2015/images-filmstrip/images-filmstrip.component.js +0 -375
  1053. package/esm2015/images-filmstrip/images-filmstrip.module.js +0 -71
  1054. package/esm2015/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.js +0 -5
  1055. package/esm2015/images-filmstrip/public-api.js +0 -6
  1056. package/esm2015/link/link.component.js +0 -316
  1057. package/esm2015/link/link.module.js +0 -51
  1058. package/esm2015/link/link.pipes.js +0 -14
  1059. package/esm2015/link/pepperi-addons-ngx-lib-link.js +0 -6
  1060. package/esm2015/link/public-api.js +0 -6
  1061. package/esm2015/list/list-actions.component.js +0 -36
  1062. package/esm2015/list/list-carousel.component.js +0 -95
  1063. package/esm2015/list/list-chooser.component.js +0 -58
  1064. package/esm2015/list/list-pager.component.js +0 -113
  1065. package/esm2015/list/list-sorting.component.js +0 -55
  1066. package/esm2015/list/list-total.component.js +0 -24
  1067. package/esm2015/list/list-views.component.js +0 -72
  1068. package/esm2015/list/list.component.js +0 -1128
  1069. package/esm2015/list/list.model.js +0 -4
  1070. package/esm2015/list/list.module.js +0 -88
  1071. package/esm2015/list/list.pipes.js +0 -40
  1072. package/esm2015/list/pepperi-addons-ngx-lib-list.js +0 -7
  1073. package/esm2015/list/public-api.js +0 -15
  1074. package/esm2015/list/virtual-scroller.js +0 -1079
  1075. package/esm2015/menu/menu-item.component.js +0 -103
  1076. package/esm2015/menu/menu.component.js +0 -174
  1077. package/esm2015/menu/menu.model.js +0 -19
  1078. package/esm2015/menu/menu.module.js +0 -40
  1079. package/esm2015/menu/pepperi-addons-ngx-lib-menu.js +0 -6
  1080. package/esm2015/menu/public-api.js +0 -7
  1081. package/esm2015/ngx-lib.module.js +0 -94
  1082. package/esm2015/page-layout/page-layout.component.js +0 -42
  1083. package/esm2015/page-layout/page-layout.module.js +0 -21
  1084. package/esm2015/page-layout/pepperi-addons-ngx-lib-page-layout.js +0 -5
  1085. package/esm2015/page-layout/public-api.js +0 -6
  1086. package/esm2015/pepperi-addons-ngx-lib.js +0 -9
  1087. package/esm2015/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.js +0 -5
  1088. package/esm2015/profile-data-views-list/profile-data-view/profile-data-view.component.js +0 -39
  1089. package/esm2015/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.js +0 -60
  1090. package/esm2015/profile-data-views-list/profile-data-views-list.component.js +0 -87
  1091. package/esm2015/profile-data-views-list/profile-data-views-list.model.js +0 -2
  1092. package/esm2015/profile-data-views-list/profile-data-views-list.module.js +0 -57
  1093. package/esm2015/profile-data-views-list/public-api.js +0 -9
  1094. package/esm2015/public-api.js +0 -6
  1095. package/esm2015/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.js +0 -7
  1096. package/esm2015/quantity-selector/public-api.js +0 -6
  1097. package/esm2015/quantity-selector/quantity-selector-validation.directive.js +0 -44
  1098. package/esm2015/quantity-selector/quantity-selector.component.js +0 -473
  1099. package/esm2015/quantity-selector/quantity-selector.module.js +0 -53
  1100. package/esm2015/quantity-selector/quantity-selector.pipes.js +0 -19
  1101. package/esm2015/query-builder/common/model/field.js +0 -2
  1102. package/esm2015/query-builder/common/model/filter.js +0 -2
  1103. package/esm2015/query-builder/common/model/legacy.js +0 -2
  1104. package/esm2015/query-builder/common/model/operator-unit.js +0 -42
  1105. package/esm2015/query-builder/common/model/operator.js +0 -266
  1106. package/esm2015/query-builder/common/model/structure.js +0 -2
  1107. package/esm2015/query-builder/common/model/type-map.js +0 -27
  1108. package/esm2015/query-builder/common/model/type.js +0 -6
  1109. package/esm2015/query-builder/common/services/output-query.service.js +0 -113
  1110. package/esm2015/query-builder/common/services/query-structure.service.js +0 -229
  1111. package/esm2015/query-builder/common/services/type-convertor.service.js +0 -40
  1112. package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +0 -10
  1113. package/esm2015/query-builder/public-api.js +0 -9
  1114. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +0 -118
  1115. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +0 -64
  1116. package/esm2015/query-builder/query-builder.component.js +0 -108
  1117. package/esm2015/query-builder/query-builder.module.js +0 -35
  1118. package/esm2015/query-builder/query-builder.service.js +0 -103
  1119. package/esm2015/remote-loader/addon-block-loader.component.js +0 -78
  1120. package/esm2015/remote-loader/addon-block-loader.service.js +0 -62
  1121. package/esm2015/remote-loader/pepperi-addons-ngx-lib-remote-loader.js +0 -5
  1122. package/esm2015/remote-loader/public-api.js +0 -10
  1123. package/esm2015/remote-loader/remote-loader.component.js +0 -118
  1124. package/esm2015/remote-loader/remote-loader.model.js +0 -2
  1125. package/esm2015/remote-loader/remote-loader.module.js +0 -38
  1126. package/esm2015/remote-loader/remote-loader.service.js +0 -66
  1127. package/esm2015/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.js +0 -5
  1128. package/esm2015/rich-html-textarea/public-api.js +0 -6
  1129. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +0 -220
  1130. package/esm2015/rich-html-textarea/rich-html-textarea.module.js +0 -57
  1131. package/esm2015/search/pepperi-addons-ngx-lib-search.js +0 -5
  1132. package/esm2015/search/public-api.js +0 -7
  1133. package/esm2015/search/search.component.js +0 -274
  1134. package/esm2015/search/search.model.js +0 -2
  1135. package/esm2015/search/search.module.js +0 -45
  1136. package/esm2015/select/pepperi-addons-ngx-lib-select.js +0 -5
  1137. package/esm2015/select/public-api.js +0 -6
  1138. package/esm2015/select/select.component.js +0 -212
  1139. package/esm2015/select/select.module.js +0 -43
  1140. package/esm2015/separator/pepperi-addons-ngx-lib-separator.js +0 -5
  1141. package/esm2015/separator/public-api.js +0 -6
  1142. package/esm2015/separator/separator.component.js +0 -63
  1143. package/esm2015/separator/separator.module.js +0 -13
  1144. package/esm2015/side-bar/pepperi-addons-ngx-lib-side-bar.js +0 -5
  1145. package/esm2015/side-bar/public-api.js +0 -7
  1146. package/esm2015/side-bar/side-bar.component.js +0 -131
  1147. package/esm2015/side-bar/side-bar.model.js +0 -2
  1148. package/esm2015/side-bar/side-bar.module.js +0 -34
  1149. package/esm2015/signature/pepperi-addons-ngx-lib-signature.js +0 -5
  1150. package/esm2015/signature/public-api.js +0 -6
  1151. package/esm2015/signature/signature.component.js +0 -234
  1152. package/esm2015/signature/signature.module.js +0 -55
  1153. package/esm2015/size-detector/pepperi-addons-ngx-lib-size-detector.js +0 -5
  1154. package/esm2015/size-detector/public-api.js +0 -6
  1155. package/esm2015/size-detector/size-detector.component.js +0 -89
  1156. package/esm2015/size-detector/size-detector.module.js +0 -22
  1157. package/esm2015/slider/pepperi-addons-ngx-lib-slider.js +0 -5
  1158. package/esm2015/slider/public-api.js +0 -6
  1159. package/esm2015/slider/slider.component.js +0 -96
  1160. package/esm2015/slider/slider.module.js +0 -25
  1161. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +0 -71
  1162. package/esm2015/smart-filters/common/filter-actions.component.js +0 -26
  1163. package/esm2015/smart-filters/common/model/base-filter-component.js +0 -292
  1164. package/esm2015/smart-filters/common/model/creator.js +0 -76
  1165. package/esm2015/smart-filters/common/model/field.js +0 -117
  1166. package/esm2015/smart-filters/common/model/filter.js +0 -2
  1167. package/esm2015/smart-filters/common/model/operator.js +0 -271
  1168. package/esm2015/smart-filters/common/model/type.js +0 -2
  1169. package/esm2015/smart-filters/date-filter/date-filter.component.js +0 -164
  1170. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +0 -191
  1171. package/esm2015/smart-filters/number-filter/number-filter.component.js +0 -110
  1172. package/esm2015/smart-filters/pepperi-addons-ngx-lib-smart-filters.js +0 -5
  1173. package/esm2015/smart-filters/public-api.js +0 -19
  1174. package/esm2015/smart-filters/smart-filters.component.js +0 -130
  1175. package/esm2015/smart-filters/smart-filters.module.js +0 -91
  1176. package/esm2015/smart-filters/text-filter/text-filter.component.js +0 -86
  1177. package/esm2015/snack-bar/default-snack-bar.component.js +0 -28
  1178. package/esm2015/snack-bar/pepperi-addons-ngx-lib-snack-bar.js +0 -6
  1179. package/esm2015/snack-bar/public-api.js +0 -8
  1180. package/esm2015/snack-bar/snack-bar.component.js +0 -26
  1181. package/esm2015/snack-bar/snack-bar.model.js +0 -7
  1182. package/esm2015/snack-bar/snack-bar.module.js +0 -42
  1183. package/esm2015/snack-bar/snack-bar.service.js +0 -63
  1184. package/esm2015/textarea/pepperi-addons-ngx-lib-textarea.js +0 -5
  1185. package/esm2015/textarea/public-api.js +0 -6
  1186. package/esm2015/textarea/textarea.component.js +0 -161
  1187. package/esm2015/textarea/textarea.module.js +0 -51
  1188. package/esm2015/textbox/pepperi-addons-ngx-lib-textbox.js +0 -6
  1189. package/esm2015/textbox/public-api.js +0 -6
  1190. package/esm2015/textbox/textbox-validation.directive.js +0 -86
  1191. package/esm2015/textbox/textbox.component.js +0 -412
  1192. package/esm2015/textbox/textbox.module.js +0 -45
  1193. package/esm2015/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.js +0 -5
  1194. package/esm2015/textbox-icon/public-api.js +0 -6
  1195. package/esm2015/textbox-icon/textbox-icon.component.js +0 -41
  1196. package/esm2015/textbox-icon/textbox-icon.module.js +0 -47
  1197. package/esm2015/top-bar/pepperi-addons-ngx-lib-top-bar.js +0 -5
  1198. package/esm2015/top-bar/public-api.js +0 -7
  1199. package/esm2015/top-bar/top-bar.component.js +0 -99
  1200. package/esm2015/top-bar/top-bar.model.js +0 -2
  1201. package/esm2015/top-bar/top-bar.module.js +0 -41
  1202. package/fesm2015/pepperi-addons-ngx-lib-address.js +0 -136
  1203. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +0 -1
  1204. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +0 -246
  1205. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +0 -1
  1206. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +0 -128
  1207. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +0 -1
  1208. package/fesm2015/pepperi-addons-ngx-lib-button.js +0 -169
  1209. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +0 -1
  1210. package/fesm2015/pepperi-addons-ngx-lib-carousel.js +0 -760
  1211. package/fesm2015/pepperi-addons-ngx-lib-carousel.js.map +0 -1
  1212. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +0 -200
  1213. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +0 -1
  1214. package/fesm2015/pepperi-addons-ngx-lib-color.js +0 -353
  1215. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +0 -1
  1216. package/fesm2015/pepperi-addons-ngx-lib-date.js +0 -350
  1217. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +0 -1
  1218. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +0 -223
  1219. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +0 -1
  1220. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.js +0 -166
  1221. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.js.map +0 -1
  1222. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +0 -73
  1223. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +0 -1
  1224. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +0 -276
  1225. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +0 -1
  1226. package/fesm2015/pepperi-addons-ngx-lib-form.js +0 -2854
  1227. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +0 -1
  1228. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +0 -104
  1229. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +0 -1
  1230. package/fesm2015/pepperi-addons-ngx-lib-icon.js +0 -688
  1231. package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +0 -1
  1232. package/fesm2015/pepperi-addons-ngx-lib-image.js +0 -337
  1233. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +0 -1
  1234. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +0 -438
  1235. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +0 -1
  1236. package/fesm2015/pepperi-addons-ngx-lib-link.js +0 -384
  1237. package/fesm2015/pepperi-addons-ngx-lib-link.js.map +0 -1
  1238. package/fesm2015/pepperi-addons-ngx-lib-list.js +0 -2770
  1239. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +0 -1
  1240. package/fesm2015/pepperi-addons-ngx-lib-menu.js +0 -338
  1241. package/fesm2015/pepperi-addons-ngx-lib-menu.js.map +0 -1
  1242. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +0 -70
  1243. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js.map +0 -1
  1244. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.js +0 -247
  1245. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.js.map +0 -1
  1246. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +0 -592
  1247. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +0 -1
  1248. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +0 -1128
  1249. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +0 -1
  1250. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.js +0 -358
  1251. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.js.map +0 -1
  1252. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +0 -284
  1253. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +0 -1
  1254. package/fesm2015/pepperi-addons-ngx-lib-search.js +0 -326
  1255. package/fesm2015/pepperi-addons-ngx-lib-search.js.map +0 -1
  1256. package/fesm2015/pepperi-addons-ngx-lib-select.js +0 -263
  1257. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +0 -1
  1258. package/fesm2015/pepperi-addons-ngx-lib-separator.js +0 -85
  1259. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +0 -1
  1260. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +0 -172
  1261. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +0 -1
  1262. package/fesm2015/pepperi-addons-ngx-lib-signature.js +0 -296
  1263. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +0 -1
  1264. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +0 -119
  1265. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js.map +0 -1
  1266. package/fesm2015/pepperi-addons-ngx-lib-slider.js +0 -129
  1267. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +0 -1
  1268. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +0 -1595
  1269. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +0 -1
  1270. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.js +0 -166
  1271. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.js.map +0 -1
  1272. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +0 -219
  1273. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +0 -1
  1274. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +0 -96
  1275. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js.map +0 -1
  1276. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +0 -547
  1277. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +0 -1
  1278. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +0 -146
  1279. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +0 -1
  1280. package/fesm2015/pepperi-addons-ngx-lib.js +0 -4460
  1281. package/fesm2015/pepperi-addons-ngx-lib.js.map +0 -1
  1282. package/field-title/package.json +0 -11
  1283. package/field-title/pepperi-addons-ngx-lib-field-title.d.ts +0 -4
  1284. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +0 -1
  1285. package/files-uploader/package.json +0 -15
  1286. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.d.ts +0 -4
  1287. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +0 -1
  1288. package/form/package.json +0 -15
  1289. package/form/pepperi-addons-ngx-lib-form.d.ts +0 -13
  1290. package/form/pepperi-addons-ngx-lib-form.metadata.json +0 -1
  1291. package/group-buttons/package.json +0 -11
  1292. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.d.ts +0 -4
  1293. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +0 -1
  1294. package/icon/package.json +0 -11
  1295. package/icon/pepperi-addons-ngx-lib-icon.d.ts +0 -4
  1296. package/icon/pepperi-addons-ngx-lib-icon.metadata.json +0 -1
  1297. package/image/package.json +0 -14
  1298. package/image/pepperi-addons-ngx-lib-image.d.ts +0 -4
  1299. package/image/pepperi-addons-ngx-lib-image.metadata.json +0 -1
  1300. package/images-filmstrip/package.json +0 -17
  1301. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.d.ts +0 -4
  1302. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +0 -1
  1303. package/link/package.json +0 -14
  1304. package/link/pepperi-addons-ngx-lib-link.d.ts +0 -5
  1305. package/link/pepperi-addons-ngx-lib-link.metadata.json +0 -1
  1306. package/list/package.json +0 -15
  1307. package/list/pepperi-addons-ngx-lib-list.d.ts +0 -6
  1308. package/list/pepperi-addons-ngx-lib-list.metadata.json +0 -1
  1309. package/menu/package.json +0 -11
  1310. package/menu/pepperi-addons-ngx-lib-menu.d.ts +0 -5
  1311. package/menu/pepperi-addons-ngx-lib-menu.metadata.json +0 -1
  1312. package/page-layout/package.json +0 -11
  1313. package/page-layout/pepperi-addons-ngx-lib-page-layout.d.ts +0 -4
  1314. package/page-layout/pepperi-addons-ngx-lib-page-layout.metadata.json +0 -1
  1315. package/pepperi-addons-ngx-lib.d.ts +0 -8
  1316. package/pepperi-addons-ngx-lib.metadata.json +0 -1
  1317. package/profile-data-views-list/package.json +0 -15
  1318. package/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.d.ts +0 -4
  1319. package/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.metadata.json +0 -1
  1320. package/quantity-selector/package.json +0 -15
  1321. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.d.ts +0 -6
  1322. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +0 -1
  1323. package/query-builder/package.json +0 -14
  1324. package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +0 -9
  1325. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +0 -1
  1326. package/remote-loader/package.json +0 -14
  1327. package/remote-loader/pepperi-addons-ngx-lib-remote-loader.d.ts +0 -4
  1328. package/remote-loader/pepperi-addons-ngx-lib-remote-loader.metadata.json +0 -1
  1329. package/rich-html-textarea/package.json +0 -15
  1330. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.d.ts +0 -4
  1331. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +0 -1
  1332. package/search/package.json +0 -14
  1333. package/search/pepperi-addons-ngx-lib-search.d.ts +0 -4
  1334. package/search/pepperi-addons-ngx-lib-search.metadata.json +0 -1
  1335. package/select/package.json +0 -14
  1336. package/select/pepperi-addons-ngx-lib-select.d.ts +0 -4
  1337. package/select/pepperi-addons-ngx-lib-select.metadata.json +0 -1
  1338. package/separator/package.json +0 -11
  1339. package/separator/pepperi-addons-ngx-lib-separator.d.ts +0 -4
  1340. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +0 -1
  1341. package/side-bar/package.json +0 -11
  1342. package/side-bar/pepperi-addons-ngx-lib-side-bar.d.ts +0 -4
  1343. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +0 -1
  1344. package/signature/package.json +0 -15
  1345. package/signature/pepperi-addons-ngx-lib-signature.d.ts +0 -4
  1346. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +0 -1
  1347. package/size-detector/package.json +0 -14
  1348. package/size-detector/pepperi-addons-ngx-lib-size-detector.d.ts +0 -4
  1349. package/size-detector/pepperi-addons-ngx-lib-size-detector.metadata.json +0 -1
  1350. package/slider/package.json +0 -11
  1351. package/slider/pepperi-addons-ngx-lib-slider.d.ts +0 -4
  1352. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +0 -1
  1353. package/smart-filters/package.json +0 -20
  1354. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.d.ts +0 -4
  1355. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +0 -1
  1356. package/snack-bar/package.json +0 -15
  1357. package/snack-bar/pepperi-addons-ngx-lib-snack-bar.d.ts +0 -5
  1358. package/snack-bar/pepperi-addons-ngx-lib-snack-bar.metadata.json +0 -1
  1359. package/textarea/package.json +0 -14
  1360. package/textarea/pepperi-addons-ngx-lib-textarea.d.ts +0 -4
  1361. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +0 -1
  1362. package/textbox/package.json +0 -14
  1363. package/textbox/pepperi-addons-ngx-lib-textbox.d.ts +0 -5
  1364. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +0 -1
  1365. package/textbox-icon/package.json +0 -11
  1366. package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.d.ts +0 -4
  1367. package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.metadata.json +0 -1
  1368. package/top-bar/package.json +0 -11
  1369. package/top-bar/pepperi-addons-ngx-lib-top-bar.d.ts +0 -4
  1370. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +0 -1
@@ -0,0 +1,4204 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output, Injectable, ViewEncapsulation, ViewChild, ViewContainerRef, TemplateRef, NgModule } from '@angular/core';
3
+ import * as i5 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i3$1 from '@angular/forms';
6
+ import { Validators, ReactiveFormsModule, FormBuilder } from '@angular/forms';
7
+ import { MatCommonModule } from '@angular/material/core';
8
+ import { MatFormFieldModule } from '@angular/material/form-field';
9
+ import * as i4 from '@angular/material/button';
10
+ import { MatButtonModule } from '@angular/material/button';
11
+ import * as i6$1 from '@angular/material/grid-list';
12
+ import { MatGridListModule } from '@angular/material/grid-list';
13
+ import * as i5$1 from '@angular/material/icon';
14
+ import { MatIconModule } from '@angular/material/icon';
15
+ import * as i4$2 from '@angular/material/menu';
16
+ import { MatMenuModule } from '@angular/material/menu';
17
+ import { SignaturePadModule } from 'ngx-signaturepad';
18
+ import * as i1$1 from '@pepperi-addons/ngx-lib';
19
+ import { DEFAULT_HORIZONTAL_ALIGNMENT, X_ALIGNMENT_TYPE, DEFAULT_VERTICAL_ALIGNMENT, Y_ALIGNMENT_TYPE, PepTextboxField, PepSelectField, PepInternalMenuField, FIELD_TYPE, PepQuantitySelectorField, PepSeparatorField, PepInternalButtonField, PepCheckboxField, PepDateField, PepRichHtmlTextareaField, PepTextareaField, PepLinkField, PepImagesField, PepImageField, PepSignatureField, PepAttachmentField, PepInternalCaruselField, PepInternalPageField, PepIndicatorsField, PepAddressField, PepCustomizationService, PepPlaceholderField, PepScreenSizeType, PepNgxLibModule } from '@pepperi-addons/ngx-lib';
20
+ import * as i1 from '@pepperi-addons/ngx-lib/icon';
21
+ import { pepIconSystemBin, pepIconSystemEdit, pepIconSystemMenu, pepIconNumberPlus, pepIconIndicatorDotPlaceholder, PepIconModule } from '@pepperi-addons/ngx-lib/icon';
22
+ import * as i1$2 from '@pepperi-addons/ngx-lib/dialog';
23
+ import { PepDialogData, PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';
24
+ import * as i3$2 from '@pepperi-addons/ngx-lib/address';
25
+ import { PepAddressModule } from '@pepperi-addons/ngx-lib/address';
26
+ import * as i4$3 from '@pepperi-addons/ngx-lib/attachment';
27
+ import { PepAttachmentModule } from '@pepperi-addons/ngx-lib/attachment';
28
+ import * as i4$4 from '@pepperi-addons/ngx-lib/button';
29
+ import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
30
+ import * as i5$3 from '@pepperi-addons/ngx-lib/carousel';
31
+ import { PepCarouselComponent, PepCarouselModule } from '@pepperi-addons/ngx-lib/carousel';
32
+ import * as i5$2 from '@pepperi-addons/ngx-lib/checkbox';
33
+ import { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';
34
+ import * as i6 from '@pepperi-addons/ngx-lib/date';
35
+ import { PepDateModule } from '@pepperi-addons/ngx-lib/date';
36
+ import * as i7$1 from '@pepperi-addons/ngx-lib/image';
37
+ import { PepImageModule } from '@pepperi-addons/ngx-lib/image';
38
+ import * as i8$1 from '@pepperi-addons/ngx-lib/images-filmstrip';
39
+ import { PepImagesFilmstripModule } from '@pepperi-addons/ngx-lib/images-filmstrip';
40
+ import * as i9 from '@pepperi-addons/ngx-lib/quantity-selector';
41
+ import { PepQuantitySelectorComponent, PepQuantitySelectorModule } from '@pepperi-addons/ngx-lib/quantity-selector';
42
+ import * as i10 from '@pepperi-addons/ngx-lib/rich-html-textarea';
43
+ import { PepRichHtmlTextareaModule } from '@pepperi-addons/ngx-lib/rich-html-textarea';
44
+ import * as i11 from '@pepperi-addons/ngx-lib/select';
45
+ import { PepSelectModule } from '@pepperi-addons/ngx-lib/select';
46
+ import * as i12 from '@pepperi-addons/ngx-lib/separator';
47
+ import { PepSeparatorModule } from '@pepperi-addons/ngx-lib/separator';
48
+ import * as i13 from '@pepperi-addons/ngx-lib/signature';
49
+ import { PepSignatureModule } from '@pepperi-addons/ngx-lib/signature';
50
+ import * as i14 from '@pepperi-addons/ngx-lib/textarea';
51
+ import { PepTextareaModule } from '@pepperi-addons/ngx-lib/textarea';
52
+ import * as i15 from '@pepperi-addons/ngx-lib/textbox';
53
+ import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';
54
+ import * as i16 from '@pepperi-addons/ngx-lib/link';
55
+ import { PepLinkModule } from '@pepperi-addons/ngx-lib/link';
56
+ import * as i7 from '@pepperi-addons/ngx-lib/field-title';
57
+ import { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';
58
+ import * as i8 from '@pepperi-addons/ngx-lib/group-buttons';
59
+ import { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';
60
+ import { BehaviorSubject, fromEvent } from 'rxjs';
61
+ import * as i4$1 from '@ngx-translate/core';
62
+ import * as i3 from '@angular/cdk/bidi';
63
+ import { debounceTime } from 'rxjs/operators';
64
+
65
+ class PepIndicatorsComponent {
66
+ constructor() {
67
+ this.controlType = 'indicators';
68
+ this.layoutType = 'table';
69
+ }
70
+ }
71
+ PepIndicatorsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepIndicatorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
72
+ PepIndicatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepIndicatorsComponent, selector: "pep-indicators", inputs: { key: "key", value: "value", layoutType: "layoutType" }, ngImport: i0, template: "<div class=\"indicators-container\" [ngClass]=\"{ 'is-inside-table': layoutType === 'table' }\">\n <ng-container *ngFor=\"let value of value?.split(';')\">\n <pep-icon name=\"indicator_dot_placeholder\" class=\"pull-left flip\" [fill]=\"value\"></pep-icon>\n </ng-container>\n <ng-container *ngIf=\"key != 'ItemIndicatorsWithoutCampaign' && value?.split(';').length < 4\">\n <pep-icon name=\"indicator_dot_placeholder\" class=\"pull-left flip\"></pep-icon>\n </ng-container>\n</div>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.indicators-container{height:2.5rem}.indicators-container pep-icon{height:1rem;width:1rem;margin:.05rem}.indicators-container.is-inside-table{height:1rem;display:flex;justify-content:center;align-items:center}\n", ".indicators-container .svg-icon{fill:hsla(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%),.5)}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepIndicatorsComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'pep-indicators', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"indicators-container\" [ngClass]=\"{ 'is-inside-table': layoutType === 'table' }\">\n <ng-container *ngFor=\"let value of value?.split(';')\">\n <pep-icon name=\"indicator_dot_placeholder\" class=\"pull-left flip\" [fill]=\"value\"></pep-icon>\n </ng-container>\n <ng-container *ngIf=\"key != 'ItemIndicatorsWithoutCampaign' && value?.split(';').length < 4\">\n <pep-icon name=\"indicator_dot_placeholder\" class=\"pull-left flip\"></pep-icon>\n </ng-container>\n</div>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.indicators-container{height:2.5rem}.indicators-container pep-icon{height:1rem;width:1rem;margin:.05rem}.indicators-container.is-inside-table{height:1rem;display:flex;justify-content:center;align-items:center}\n", ".indicators-container .svg-icon{fill:hsla(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%),.5)}\n"] }]
76
+ }], propDecorators: { key: [{
77
+ type: Input
78
+ }], value: [{
79
+ type: Input
80
+ }], layoutType: [{
81
+ type: Input
82
+ }] } });
83
+
84
+ class PepInternalButtonComponent {
85
+ constructor(customizationService, renderer, element) {
86
+ this.customizationService = customizationService;
87
+ this.renderer = renderer;
88
+ this.element = element;
89
+ this.key = '';
90
+ this.value = '';
91
+ this.formattedValue = '';
92
+ this.label = '';
93
+ this.type = 'button';
94
+ this.mandatory = false;
95
+ this.disabled = false;
96
+ this.readonly = false;
97
+ this.xAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;
98
+ this.rowSpan = 1;
99
+ this._visible = true;
100
+ this.controlType = 'button';
101
+ this.form = null;
102
+ this.showTitle = true;
103
+ this.layoutType = 'form';
104
+ this.elementClick = new EventEmitter();
105
+ this.valueChange = new EventEmitter();
106
+ // standAlone = false;
107
+ this.createNewReference = false;
108
+ this.referenceButtons = [
109
+ {
110
+ key: 'action',
111
+ callback: (action) => this.onButtonClicked(action.event),
112
+ },
113
+ {
114
+ key: 'delete',
115
+ callback: (action) => this.remove(),
116
+ classNames: 'caution',
117
+ iconName: pepIconSystemBin.name,
118
+ },
119
+ ];
120
+ }
121
+ set visible(visible) {
122
+ this._visible = visible;
123
+ if (visible) {
124
+ this.renderer.removeClass(this.element.nativeElement, 'hidden-element');
125
+ }
126
+ else {
127
+ this.renderer.addClass(this.element.nativeElement, 'hidden-element');
128
+ }
129
+ }
130
+ get visible() {
131
+ return this._visible;
132
+ }
133
+ ngOnInit() {
134
+ // if (this.form === null) {
135
+ // this.standAlone = true;
136
+ // // this.form = this.customizationService.getDefaultFromGroup(this.key, this.value, this.mandatory, this.readonly, this.disabled);
137
+ // const pepField = new PepInternalButtonField({
138
+ // key: this.key,
139
+ // value: this.value,
140
+ // mandatory: this.mandatory,
141
+ // readonly: this.readonly,
142
+ // disabled: this.disabled,
143
+ // });
144
+ // this.form = this.customizationService.getDefaultFromGroup(pepField);
145
+ // this.formattedValue = this.formattedValue || this.value;
146
+ // this.renderer.addClass(
147
+ // this.element.nativeElement,
148
+ // PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME
149
+ // );
150
+ // }
151
+ }
152
+ ngOnChanges(changes) {
153
+ if (this.type === 'reference') {
154
+ this.createNewReference = this.value.length === 0;
155
+ this.referenceButtons[0].value = this.formattedValue;
156
+ }
157
+ }
158
+ ngOnDestroy() {
159
+ //
160
+ }
161
+ // groupButtonClicked(action: IPepButtonClickEvent): void {
162
+ // if (action.source.key === 'action') {
163
+ // this.onButtonClicked(action.event);
164
+ // } else if (action.source.key === 'delete') {
165
+ // this.remove();
166
+ // }
167
+ // }
168
+ onButtonClicked(event) {
169
+ if (this.type === 'reference') {
170
+ const valueArr = this.value.split('/');
171
+ this.elementClick.emit({
172
+ key: this.key,
173
+ value: valueArr[valueArr.length - 1],
174
+ controlType: this.controlType,
175
+ eventWhich: event.which,
176
+ otherData: this.referenceObjectInternalType,
177
+ });
178
+ }
179
+ else if (this.type === 'button' && true) {
180
+ this.elementClick.emit({
181
+ key: this.key,
182
+ value: this.value,
183
+ controlType: this.controlType,
184
+ eventWhich: event.which,
185
+ });
186
+ }
187
+ else {
188
+ this.elementClick.emit({
189
+ key: this.key,
190
+ controlType: this.controlType,
191
+ eventWhich: event.which,
192
+ });
193
+ }
194
+ }
195
+ hrefFunction(event) {
196
+ if (event.which === 1 /*|| event.which === 2*/) {
197
+ this.onButtonClicked(event);
198
+ }
199
+ }
200
+ openReferenceObjectInternal(event) {
201
+ this.elementClick.emit({
202
+ key: this.key,
203
+ value: this.value,
204
+ controlType: this.controlType,
205
+ eventWhich: event.which,
206
+ otherData: this.referenceObjectInternalType,
207
+ });
208
+ }
209
+ remove() {
210
+ this.value = '';
211
+ this.valueChange.emit(this.value);
212
+ }
213
+ }
214
+ PepInternalButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalButtonComponent, deps: [{ token: i1$1.PepCustomizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
215
+ PepInternalButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalButtonComponent, selector: "pep-internal-button", inputs: { key: "key", value: "value", formattedValue: "formattedValue", label: "label", referenceObjectInternalType: "referenceObjectInternalType", type: "type", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", xAlignment: "xAlignment", rowSpan: "rowSpan", visible: "visible", form: "form", showTitle: "showTitle", layoutType: "layoutType" }, outputs: { elementClick: "elementClick", valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'reference'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <div class=\"pep-button-container reference-button\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngIf=\"createNewReference; then newBlock; else existingBlock\"></ng-container>\n <ng-template #newBlock>\n <button mat-button [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-button md regular\"\n (click)=\"onButtonClicked($event)\" [ngClass]=\"{\n disabled: disabled,\n 'pull-left': xAlignment == 'left',\n 'pull-right': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <span class=\"ellipsis pull-left flip button-title-with-icon\">{{ 'ACTIONS.CREATE_NEW' | translate\n }}</span>\n <mat-icon class=\"pull-right flip\" pepRtlClass>\n <pep-icon name=\"number_plus\" (click)=\"onButtonClicked($event)\">\n </pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #existingBlock>\n <pep-group-buttons [buttons]=\"referenceButtons\" styleType=\"regular\" viewType=\"split\">\n </pep-group-buttons>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'listofobjects'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'button'\">\n <ng-container [ngSwitch]=\"key\">\n <ng-container *ngSwitchCase=\"'ObjectMenu'\">\n <span (click)=\"onButtonClicked($event)\" title=\"{{ key }}\">\n <mat-icon>\n <pep-icon *ngIf=\"key == 'ObjectMenu'\" name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Agents' || 'ContactPersons' || 'Buyers'\">\n <ng-container *ngIf=\"layoutType === 'table'; then tableBlock; else nonTableBlock\">\n </ng-container>\n <ng-template #nonTableBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #tableBlock>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-report-input readonly body-sm\">{{\n formattedValue }}</span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"layoutType === 'form'; then buttonBlock; else linkBlock\">\n </ng-container>\n\n <ng-template #buttonBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: false}\"></ng-container>\n </ng-template>\n <ng-template #linkBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #buttonTemplate let-internal=\"internal\">\n <div class=\"pep-button-container\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n\n <ng-container *ngIf=\"internal; then internalButtonTemplate; else regularButtonTemplate\"></ng-container>\n <ng-template #regularButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"onButtonClicked($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n {{ formattedValue }}\n </button>\n </ng-template>\n\n <ng-template #internalButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"openReferenceObjectInternal($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n <ng-container *ngIf=\"formattedValue == '0' || formattedValue == ''; then newBlock; else existingBlock\">\n </ng-container>\n <ng-template #newBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ 'LIST.SELECT' | translate }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n <ng-template #existingBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ formattedValue }}&nbsp;{{ 'LIST.SELECTED' |\n translate\n }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n </button>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #linkTemplate>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a href=\"{{ value }}\" (mousedown)=\"hrefFunction($event)\" class=\"color-link\">\n <span *ngIf=\"layoutType === 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\"\n class=\"body-sm pep-report-input readonly\">\n {{ formattedValue }}\n </span>\n <span *ngIf=\"layoutType !== 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm pep-card-input\"\n style=\"display: block;\">\n {{ formattedValue }}\n </span>\n </a>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button-container,.pep-button-container{height:-moz-fit-content;height:fit-content}.pepperi-button-container .center-alignment,.pep-button-container .center-alignment{position:absolute;left:50%;transform:translate(-50%)}.pepperi-button-container.reference-button ::ng-deep .split-buttons,.pepperi-button-container.reference-button .split-buttons,.pep-button-container.reference-button ::ng-deep .split-buttons,.pep-button-container.reference-button .split-buttons{float:left}.pepperi-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pepperi-button-container.reference-button .split-buttons button:last-of-type,.pep-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pep-button-container.reference-button .split-buttons button:last-of-type{width:1.5rem;padding:0}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.PepRtlClassDirective, selector: "[pepRtlClass]" }, { kind: "component", type: i1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }, { kind: "component", type: i8.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalButtonComponent, decorators: [{
217
+ type: Component,
218
+ args: [{ selector: 'pep-internal-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'reference'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <div class=\"pep-button-container reference-button\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngIf=\"createNewReference; then newBlock; else existingBlock\"></ng-container>\n <ng-template #newBlock>\n <button mat-button [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-button md regular\"\n (click)=\"onButtonClicked($event)\" [ngClass]=\"{\n disabled: disabled,\n 'pull-left': xAlignment == 'left',\n 'pull-right': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <span class=\"ellipsis pull-left flip button-title-with-icon\">{{ 'ACTIONS.CREATE_NEW' | translate\n }}</span>\n <mat-icon class=\"pull-right flip\" pepRtlClass>\n <pep-icon name=\"number_plus\" (click)=\"onButtonClicked($event)\">\n </pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #existingBlock>\n <pep-group-buttons [buttons]=\"referenceButtons\" styleType=\"regular\" viewType=\"split\">\n </pep-group-buttons>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'listofobjects'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'button'\">\n <ng-container [ngSwitch]=\"key\">\n <ng-container *ngSwitchCase=\"'ObjectMenu'\">\n <span (click)=\"onButtonClicked($event)\" title=\"{{ key }}\">\n <mat-icon>\n <pep-icon *ngIf=\"key == 'ObjectMenu'\" name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Agents' || 'ContactPersons' || 'Buyers'\">\n <ng-container *ngIf=\"layoutType === 'table'; then tableBlock; else nonTableBlock\">\n </ng-container>\n <ng-template #nonTableBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #tableBlock>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-report-input readonly body-sm\">{{\n formattedValue }}</span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"layoutType === 'form'; then buttonBlock; else linkBlock\">\n </ng-container>\n\n <ng-template #buttonBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: false}\"></ng-container>\n </ng-template>\n <ng-template #linkBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #buttonTemplate let-internal=\"internal\">\n <div class=\"pep-button-container\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n\n <ng-container *ngIf=\"internal; then internalButtonTemplate; else regularButtonTemplate\"></ng-container>\n <ng-template #regularButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"onButtonClicked($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n {{ formattedValue }}\n </button>\n </ng-template>\n\n <ng-template #internalButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"openReferenceObjectInternal($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n <ng-container *ngIf=\"formattedValue == '0' || formattedValue == ''; then newBlock; else existingBlock\">\n </ng-container>\n <ng-template #newBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ 'LIST.SELECT' | translate }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n <ng-template #existingBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ formattedValue }}&nbsp;{{ 'LIST.SELECTED' |\n translate\n }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n </button>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #linkTemplate>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a href=\"{{ value }}\" (mousedown)=\"hrefFunction($event)\" class=\"color-link\">\n <span *ngIf=\"layoutType === 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\"\n class=\"body-sm pep-report-input readonly\">\n {{ formattedValue }}\n </span>\n <span *ngIf=\"layoutType !== 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm pep-card-input\"\n style=\"display: block;\">\n {{ formattedValue }}\n </span>\n </a>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button-container,.pep-button-container{height:-moz-fit-content;height:fit-content}.pepperi-button-container .center-alignment,.pep-button-container .center-alignment{position:absolute;left:50%;transform:translate(-50%)}.pepperi-button-container.reference-button ::ng-deep .split-buttons,.pepperi-button-container.reference-button .split-buttons,.pep-button-container.reference-button ::ng-deep .split-buttons,.pep-button-container.reference-button .split-buttons{float:left}.pepperi-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pepperi-button-container.reference-button .split-buttons button:last-of-type,.pep-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pep-button-container.reference-button .split-buttons button:last-of-type{width:1.5rem;padding:0}\n"] }]
219
+ }], ctorParameters: function () { return [{ type: i1$1.PepCustomizationService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { key: [{
220
+ type: Input
221
+ }], value: [{
222
+ type: Input
223
+ }], formattedValue: [{
224
+ type: Input
225
+ }], label: [{
226
+ type: Input
227
+ }], referenceObjectInternalType: [{
228
+ type: Input
229
+ }], type: [{
230
+ type: Input
231
+ }], mandatory: [{
232
+ type: Input
233
+ }], disabled: [{
234
+ type: Input
235
+ }], readonly: [{
236
+ type: Input
237
+ }], xAlignment: [{
238
+ type: Input
239
+ }], rowSpan: [{
240
+ type: Input
241
+ }], visible: [{
242
+ type: Input
243
+ }], form: [{
244
+ type: Input
245
+ }], showTitle: [{
246
+ type: Input
247
+ }], layoutType: [{
248
+ type: Input
249
+ }], elementClick: [{
250
+ type: Output
251
+ }], valueChange: [{
252
+ type: Output
253
+ }] } });
254
+
255
+ class PepInternalMenuComponent {
256
+ constructor() {
257
+ this.key = '';
258
+ this.label = '';
259
+ this.disabled = false;
260
+ this.xAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;
261
+ // @Input() hasSubMenu = false;
262
+ this.options = [];
263
+ this.invertClass = true;
264
+ this.controlType = 'menu';
265
+ this.layoutType = 'form';
266
+ this.elementClick = new EventEmitter();
267
+ }
268
+ // @Output() menuItemClick: EventEmitter<IPepFieldClickEvent> = new EventEmitter<IPepFieldClickEvent>();
269
+ ngOnDestroy() {
270
+ // if (this.elementClick) {
271
+ // this.elementClick.unsubscribe();
272
+ // }
273
+ // if (this.menuItemClick) {
274
+ // this.menuItemClick.unsubscribe();
275
+ // }
276
+ }
277
+ menuClicked(event) {
278
+ this.elementClick.emit({
279
+ key: this.key,
280
+ controlType: this.controlType,
281
+ eventWhich: event.which,
282
+ });
283
+ }
284
+ menuItemClicked(itemKey) {
285
+ // Not in use comment in version 16.55 for webapp.
286
+ // this.menuItemClick.emit({ key: itemKey });
287
+ }
288
+ }
289
+ PepInternalMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
290
+ PepInternalMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalMenuComponent, selector: "pep-internal-menu", inputs: { key: "key", label: "label", disabled: "disabled", xAlignment: "xAlignment", options: "options", invertClass: "invertClass", layoutType: "layoutType" }, outputs: { elementClick: "elementClick" }, ngImport: i0, template: "<ng-container *ngIf=\"options?.length > 0; then subMenuBlock; else noSubMenuBlock\"></ng-container>\n<ng-template #noSubMenuBlock>\n <button (click)=\"menuClicked($event)\" title=\"{{ label }}\" mat-button\n class=\"pep-button icon-button weak {{ layoutType === 'table' ? 'sm' : 'md' }}\" [ngClass]=\"{\n 'lock-events': disabled,\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center',\n 'invert': invertClass\n }\">\n <mat-icon>\n <pep-icon name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n\n<ng-template #subMenuBlock>\n <button mat-button [matMenuTriggerFor]=\"menu\" menu-blur\n class=\"pep-button icon-button weak {{ layoutType === 'table' ? 'sm' : 'md' }}\" [ngClass]=\"{\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center',\n 'invert': invertClass\n }\" title=\"{{ label }}\">\n <mat-icon>\n <pep-icon name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </button>\n\n <mat-menu #menu=\"matMenu\" xPosition=\"{{xAlignment == 'right' ? 'after' : 'before'}}\"\n [ngClass]=\"{ rtlMenu: xAlignment == 'right' }\">\n <button *ngFor=\"let option of options\" mat-menu-item (click)=\"menuItemClicked(option.key)\">\n <span>{{ option.value | translate }}</span>\n </button>\n </mat-menu>\n\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button,.pep-button{cursor:pointer}.pepperi-button.left-alignment,.pep-button.left-alignment{justify-self:flex-start}.pepperi-button.center-alignment,.pep-button.center-alignment{justify-self:center}.pepperi-button.right-alignment,.pep-button.right-alignment{justify-self:flex-end}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalMenuComponent, decorators: [{
292
+ type: Component,
293
+ args: [{ selector: 'pep-internal-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"options?.length > 0; then subMenuBlock; else noSubMenuBlock\"></ng-container>\n<ng-template #noSubMenuBlock>\n <button (click)=\"menuClicked($event)\" title=\"{{ label }}\" mat-button\n class=\"pep-button icon-button weak {{ layoutType === 'table' ? 'sm' : 'md' }}\" [ngClass]=\"{\n 'lock-events': disabled,\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center',\n 'invert': invertClass\n }\">\n <mat-icon>\n <pep-icon name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n\n<ng-template #subMenuBlock>\n <button mat-button [matMenuTriggerFor]=\"menu\" menu-blur\n class=\"pep-button icon-button weak {{ layoutType === 'table' ? 'sm' : 'md' }}\" [ngClass]=\"{\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center',\n 'invert': invertClass\n }\" title=\"{{ label }}\">\n <mat-icon>\n <pep-icon name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </button>\n\n <mat-menu #menu=\"matMenu\" xPosition=\"{{xAlignment == 'right' ? 'after' : 'before'}}\"\n [ngClass]=\"{ rtlMenu: xAlignment == 'right' }\">\n <button *ngFor=\"let option of options\" mat-menu-item (click)=\"menuItemClicked(option.key)\">\n <span>{{ option.value | translate }}</span>\n </button>\n </mat-menu>\n\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button,.pep-button{cursor:pointer}.pepperi-button.left-alignment,.pep-button.left-alignment{justify-self:flex-start}.pepperi-button.center-alignment,.pep-button.center-alignment{justify-self:center}.pepperi-button.right-alignment,.pep-button.right-alignment{justify-self:flex-end}\n"] }]
294
+ }], propDecorators: { key: [{
295
+ type: Input
296
+ }], label: [{
297
+ type: Input
298
+ }], disabled: [{
299
+ type: Input
300
+ }], xAlignment: [{
301
+ type: Input
302
+ }], options: [{
303
+ type: Input
304
+ }], invertClass: [{
305
+ type: Input
306
+ }], layoutType: [{
307
+ type: Input
308
+ }], elementClick: [{
309
+ type: Output
310
+ }] } });
311
+
312
+ class PepInternalPageService {
313
+ constructor(httpService) {
314
+ this.httpService = httpService;
315
+ this.parentId = '0';
316
+ this.additionalApiName = '';
317
+ this.transactionUrl = 'Service1.svc/v1/OrderCenter/Transaction/';
318
+ }
319
+ getBaseParentUrl() {
320
+ const url = `${this.transactionUrl}${this.objectId}/ParentLine/${this.parentId}/`;
321
+ return url;
322
+ }
323
+ getChildren(callbackFunc) {
324
+ var _a;
325
+ const body = JSON.stringify({
326
+ TransactionUID: this.objectId,
327
+ SearchCode: this.searchCode,
328
+ AdditionalApiName: this.additionalApiName,
329
+ ParentTransactionLineID: this.parentId,
330
+ ViewType: this.viewType,
331
+ });
332
+ // Set the additional api name with view type string.
333
+ const moreParams = ((_a = this.additionalApiName) === null || _a === void 0 ? void 0 : _a.length) > 0
334
+ ? `${this.additionalApiName}/${this.viewType}`
335
+ : `''/${this.viewType}`;
336
+ const url = `${this.getBaseParentUrl()}Items/${moreParams}`;
337
+ this.httpService.postWapiApiCall(url, body).subscribe((res) => {
338
+ callbackFunc(res);
339
+ }
340
+ // (error) => {},
341
+ // () => {}
342
+ );
343
+ }
344
+ initDetails(objectId, parentId, searchCode, callbackFunc) {
345
+ if (!objectId || !parentId) {
346
+ return;
347
+ }
348
+ this.objectId = objectId;
349
+ this.parentId = parentId;
350
+ this.searchCode = searchCode;
351
+ this.httpService
352
+ .getWapiApiCall(`${this.getBaseParentUrl()}ViewTypes`)
353
+ .subscribe((res) => {
354
+ callbackFunc(res);
355
+ }
356
+ // (error) => {},
357
+ // () => {}
358
+ );
359
+ }
360
+ changeChildrenViewType(viewType, callbackFunc) {
361
+ this.viewType = viewType;
362
+ this.getChildren(callbackFunc);
363
+ }
364
+ changeAdditionalApiName(additionalApiName, callbackFunc) {
365
+ this.additionalApiName = additionalApiName;
366
+ this.getChildren(callbackFunc);
367
+ }
368
+ childPlusClick(itemId, fieldApiName, callbackFunc) {
369
+ const body = JSON.stringify({
370
+ TransactionUID: this.objectId,
371
+ SearchCode: this.searchCode,
372
+ ParentTransactionLineID: this.parentId,
373
+ TransactionLineUID: itemId,
374
+ FieldApiName: fieldApiName,
375
+ ViewType: this.viewType,
376
+ });
377
+ this.httpService
378
+ .postWapiApiCall(`${this.getBaseParentUrl()}IncrementValue`, body)
379
+ .subscribe((res) => {
380
+ callbackFunc(res);
381
+ }
382
+ // (error) => {},
383
+ // () => {}
384
+ );
385
+ }
386
+ childMinusClick(itemId, fieldApiName, callbackFunc) {
387
+ const body = JSON.stringify({
388
+ TransactionUID: this.objectId,
389
+ SearchCode: this.searchCode,
390
+ ParentTransactionLineID: this.parentId,
391
+ TransactionLineUID: itemId,
392
+ FieldApiName: fieldApiName,
393
+ ViewType: this.viewType,
394
+ });
395
+ this.httpService
396
+ .postWapiApiCall(`${this.getBaseParentUrl()}DecrementValue`, body)
397
+ .subscribe((res) => {
398
+ callbackFunc(res);
399
+ }
400
+ // (error) => {},
401
+ // () => {}
402
+ );
403
+ }
404
+ childValueChanged(itemId, fieldApiName, value, callbackFunc) {
405
+ const body = JSON.stringify({
406
+ TransactionUID: this.objectId,
407
+ SearchCode: this.searchCode,
408
+ ParentTransactionLineID: this.parentId,
409
+ TransactionLineUID: itemId,
410
+ FieldApiName: fieldApiName,
411
+ FieldValue: value,
412
+ ViewType: this.viewType,
413
+ });
414
+ this.httpService
415
+ .postWapiApiCall(`${this.getBaseParentUrl()}SetFieldValue`, body)
416
+ .subscribe((res) => {
417
+ callbackFunc(res);
418
+ }
419
+ // (error) => {},
420
+ // () => {}
421
+ );
422
+ }
423
+ }
424
+ PepInternalPageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalPageService, deps: [{ token: i1$1.PepHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
425
+ PepInternalPageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalPageService });
426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalPageService, decorators: [{
427
+ type: Injectable
428
+ }], ctorParameters: function () { return [{ type: i1$1.PepHttpService }]; } });
429
+
430
+ class PepInternalFieldGeneratorComponent {
431
+ constructor() {
432
+ this.isActive = false;
433
+ this.uid = null;
434
+ this.layoutType = 'form';
435
+ this.showTitle = true;
436
+ this.checkForChanges = null;
437
+ this.valueChange = new EventEmitter();
438
+ this.formValidationChange = new EventEmitter();
439
+ this.elementClick = new EventEmitter();
440
+ // @Output() internalFormFieldChange: EventEmitter<any> = new EventEmitter<any>();
441
+ // @Output() internalFormFieldClick: EventEmitter<any> = new EventEmitter<any>();
442
+ this.formValueChange = new EventEmitter();
443
+ this.formFieldClick = new EventEmitter();
444
+ }
445
+ set field(value) {
446
+ this._field = value;
447
+ }
448
+ get field() {
449
+ return this._field;
450
+ }
451
+ get isValid() {
452
+ if (this.field.readonly || this.field.disabled) {
453
+ return true;
454
+ }
455
+ else {
456
+ const formControl = this.form && this.form.get(this.field.key);
457
+ if (formControl) {
458
+ return formControl.valid;
459
+ }
460
+ else {
461
+ return false;
462
+ }
463
+ }
464
+ }
465
+ get isTouched() {
466
+ const formControl = this.form && this.form.get(this.field.key);
467
+ return formControl ? formControl.touched : false;
468
+ }
469
+ get isDirty() {
470
+ const formControl = this.form && this.form.get(this.field.key);
471
+ return formControl ? formControl.dirty : false;
472
+ }
473
+ ngOnDestroy() {
474
+ //
475
+ }
476
+ onFileChanged(fileData, field) {
477
+ const value = fileData ? JSON.stringify(fileData) : '';
478
+ const fieldValueChange = {
479
+ key: field.key,
480
+ value: value,
481
+ controlType: field.controlType,
482
+ };
483
+ this.valueChange.emit(fieldValueChange);
484
+ }
485
+ onAddressValueChanged(valueChange, field) {
486
+ const fieldValueChange = {
487
+ key: valueChange.key,
488
+ value: valueChange.value,
489
+ controlType: field.controlType,
490
+ };
491
+ this.valueChange.emit(fieldValueChange);
492
+ }
493
+ onValueChanged(value, field) {
494
+ const fieldValueChange = {
495
+ key: field.key,
496
+ value: value.toString(),
497
+ controlType: field.controlType,
498
+ };
499
+ this.valueChange.emit(fieldValueChange);
500
+ }
501
+ // onInternalFormFieldChanged(internalFormFieldChange: any): void {
502
+ // this.internalFormFieldChange.emit(internalFormFieldChange);
503
+ // }
504
+ onFormValidationChanged(formValidationChange) {
505
+ this.formValidationChange.emit(formValidationChange);
506
+ }
507
+ onClick(fieldClicked) {
508
+ this.elementClick.emit(fieldClicked);
509
+ }
510
+ // onInternalFormFieldClick(internalFormFieldClick: any): void {
511
+ // this.internalFormFieldClick.emit(internalFormFieldClick);
512
+ // }
513
+ onFormValueChanged(event) {
514
+ this.formValueChange.emit(event);
515
+ }
516
+ onFormFieldClick(event) {
517
+ this.formFieldClick.emit(event);
518
+ }
519
+ ngOnChanges(changes) {
520
+ // debugger;
521
+ // For testing.
522
+ // this.field.disabled = this.field.readonly = false;
523
+ }
524
+ }
525
+ PepInternalFieldGeneratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalFieldGeneratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
526
+ PepInternalFieldGeneratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalFieldGeneratorComponent, selector: "pep-internal-field-generator", inputs: { field: "field", isActive: "isActive", uid: "uid", form: "form", layoutType: "layoutType", showTitle: "showTitle", checkForChanges: "checkForChanges" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", elementClick: "elementClick", formValueChange: "formValueChange", formFieldClick: "formFieldClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"field.controlType\" [formGroup]=\"form\">\n\n <pep-address *ngSwitchCase=\"'address'\" [form]=\"form\" [key]=\"field.key\" [formattedValue]=\"field.formattedValue\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [groupFields]=\"field.groupFields\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (addressValueChange)=\"onAddressValueChanged($event, field)\">\n </pep-address>\n\n <pep-attachment *ngSwitchCase=\"'attachment'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-attachment>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [additionalValue]=\"field.additionalValue\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [minValue]=\"field.minValue\"\n [maxValue]=\"field.maxValue\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-date>\n\n <pep-images-filmstrip *ngSwitchCase=\"'images'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [showTitle]=\"showTitle\" [rowSpan]=\"field.rowSpan\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-images-filmstrip>\n\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.formattedValue\"\n [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [indicatorsField]=\"field.indicatorsField\" [menuField]=\"field.menuField\"\n [hasCampaignField]=\"field.hasCampaignField\" [sizeLimitMB]=\"field.sizeLimitMB\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-image>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [allowDecimal]=\"field.allowDecimal\"\n [additionalValue]=\"field.additionalValue\" [notificationInfo]=\"field.notificationInfo\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [showTitle]=\"showTitle\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <pep-rich-html-textarea *ngSwitchCase=\"'richhtmltextarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-rich-html-textarea>\n\n <pep-select *ngSwitchCase=\"'select'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [options]=\"field.options\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (valueChange)=\"onValueChanged($event, field)\"\n (formValidationChange)=\"onFormValidationChanged($event)\" [isActive]=\"isActive\">\n </pep-select>\n\n <pep-separator *ngSwitchCase=\"'separator'\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [xAlignment]=\"field.xAlignment\" [layoutType]=\"layoutType\" [visible]=\"field.visible\">\n </pep-separator>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [layoutType]=\"layoutType\"\n [visible]=\"field.visible\" (fileChange)=\"onFileChanged($event, field)\">\n </pep-signature>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-textarea>\n\n <pep-textbox *ngSwitchCase=\"'textbox'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [accessory]=\"field.accessory\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n [isActive]=\"isActive\" [visible]=\"field.visible\">\n </pep-textbox>\n\n <pep-link *ngSwitchCase=\"'link'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\" [visible]=\"field.visible\"\n (formValidationChange)=\"onFormValidationChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-link>\n\n <pep-indicators *ngSwitchCase=\"'indicators'\" [key]=\"field.key\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-indicators>\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\"\n [referenceObjectInternalType]=\"field.referenceObjectInternalType\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (valueChange)=\"onValueChanged($event, field)\">\n </pep-internal-button>\n <pep-internal-menu *ngSwitchCase=\"'menu'\" [key]=\"field.key\" [label]=\"field.label\" [disabled]=\"field.disabled\"\n [xAlignment]=\"field.xAlignment\" [options]=\"field.options\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-internal-menu>\n <!-- \n comment for not cause a circular reference.\n <pep-internal-page *ngSwitchCase=\"'internalPage'\" [field]=\"field\" [layoutType]=\"layoutType\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-page>\n\n <pep-internal-carusel *ngSwitchCase=\"'internalCarusel'\" [field]=\"field\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-carusel> \n -->\n\n <ng-container *ngSwitchCase=\"'placeholder'\">\n </ng-container>\n</ng-container>", styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3$2.PepAddressComponent, selector: "pep-address", inputs: ["key", "formattedValue", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "groupFields", "form", "layoutType", "visible"], outputs: ["addressValueChange"] }, { kind: "component", type: i4$3.PepAttachmentComponent, selector: "pep-attachment", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i5$2.PepCheckboxComponent, selector: "pep-checkbox", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "additionalValue", "form", "isActive", "showTitle", "renderTitle", "layoutType", "visible"], outputs: ["valueChange"] }, { kind: "component", type: i6.PepDateComponent, selector: "pep-date", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "visible", "minValue", "maxValue", "minDateValue", "maxDateValue", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i7$1.PepImageComponent, selector: "pep-image", inputs: ["key", "srcLarge", "src", "options", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "indicatorsField", "menuField", "hasCampaignField", "visible", "form", "uid", "showTitle", "renderTitle", "layoutType", "isActive", "sizeLimitMB", "acceptImagesType"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i8$1.PepImagesFilmstripComponent, selector: "pep-images-filmstrip", inputs: ["key", "value", "label", "xAlignment", "rowSpan", "form", "uid", "showTitle", "renderTitle", "layoutType", "currIndex", "showThumbnails"] }, { kind: "component", type: i9.PepQuantitySelectorComponent, selector: "pep-quantity-selector", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "allowDecimal", "additionalValue", "notificationInfo", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive", "styleType"], outputs: ["valueChange", "elementClick"] }, { kind: "component", type: i10.PepRichHtmlTextareaComponent, selector: "pep-rich-html-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType", "inlineMode", "toolbarOptions"], outputs: ["valueChange"] }, { kind: "component", type: i11.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "options", "visible", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "emptyOption", "renderTitle"], outputs: ["valueChange", "formValidationChange"] }, { kind: "component", type: i12.PepSeparatorComponent, selector: "pep-separator", inputs: ["key", "label", "xAlignment", "form", "layoutType", "visible"] }, { kind: "component", type: i13.PepSignatureComponent, selector: "pep-signature", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "signatureURL", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange"] }, { kind: "component", type: i14.PepTextareaComponent, selector: "pep-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i15.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "formattedValue", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey"], outputs: ["valueChange", "formValidationChange"] }, { kind: "component", type: i16.PepLinkComponent, selector: "pep-link", inputs: ["key", "value", "formattedValue", "label", "placeholder", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange", "formValidationChange", "elementClick"] }, { kind: "component", type: PepIndicatorsComponent, selector: "pep-indicators", inputs: ["key", "value", "layoutType"] }, { kind: "component", type: PepInternalButtonComponent, selector: "pep-internal-button", inputs: ["key", "value", "formattedValue", "label", "referenceObjectInternalType", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "layoutType"], outputs: ["elementClick", "valueChange"] }, { kind: "component", type: PepInternalMenuComponent, selector: "pep-internal-menu", inputs: ["key", "label", "disabled", "xAlignment", "options", "invertClass", "layoutType"], outputs: ["elementClick"] }, { kind: "pipe", type: i5.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalFieldGeneratorComponent, decorators: [{
528
+ type: Component,
529
+ args: [{ selector: 'pep-internal-field-generator', encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"field.controlType\" [formGroup]=\"form\">\n\n <pep-address *ngSwitchCase=\"'address'\" [form]=\"form\" [key]=\"field.key\" [formattedValue]=\"field.formattedValue\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [groupFields]=\"field.groupFields\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (addressValueChange)=\"onAddressValueChanged($event, field)\">\n </pep-address>\n\n <pep-attachment *ngSwitchCase=\"'attachment'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-attachment>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [additionalValue]=\"field.additionalValue\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [minValue]=\"field.minValue\"\n [maxValue]=\"field.maxValue\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-date>\n\n <pep-images-filmstrip *ngSwitchCase=\"'images'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [showTitle]=\"showTitle\" [rowSpan]=\"field.rowSpan\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-images-filmstrip>\n\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.formattedValue\"\n [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [indicatorsField]=\"field.indicatorsField\" [menuField]=\"field.menuField\"\n [hasCampaignField]=\"field.hasCampaignField\" [sizeLimitMB]=\"field.sizeLimitMB\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-image>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [allowDecimal]=\"field.allowDecimal\"\n [additionalValue]=\"field.additionalValue\" [notificationInfo]=\"field.notificationInfo\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [showTitle]=\"showTitle\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <pep-rich-html-textarea *ngSwitchCase=\"'richhtmltextarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-rich-html-textarea>\n\n <pep-select *ngSwitchCase=\"'select'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [options]=\"field.options\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (valueChange)=\"onValueChanged($event, field)\"\n (formValidationChange)=\"onFormValidationChanged($event)\" [isActive]=\"isActive\">\n </pep-select>\n\n <pep-separator *ngSwitchCase=\"'separator'\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [xAlignment]=\"field.xAlignment\" [layoutType]=\"layoutType\" [visible]=\"field.visible\">\n </pep-separator>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [layoutType]=\"layoutType\"\n [visible]=\"field.visible\" (fileChange)=\"onFileChanged($event, field)\">\n </pep-signature>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-textarea>\n\n <pep-textbox *ngSwitchCase=\"'textbox'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [accessory]=\"field.accessory\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n [isActive]=\"isActive\" [visible]=\"field.visible\">\n </pep-textbox>\n\n <pep-link *ngSwitchCase=\"'link'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\" [visible]=\"field.visible\"\n (formValidationChange)=\"onFormValidationChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-link>\n\n <pep-indicators *ngSwitchCase=\"'indicators'\" [key]=\"field.key\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-indicators>\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\"\n [referenceObjectInternalType]=\"field.referenceObjectInternalType\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (valueChange)=\"onValueChanged($event, field)\">\n </pep-internal-button>\n <pep-internal-menu *ngSwitchCase=\"'menu'\" [key]=\"field.key\" [label]=\"field.label\" [disabled]=\"field.disabled\"\n [xAlignment]=\"field.xAlignment\" [options]=\"field.options\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-internal-menu>\n <!-- \n comment for not cause a circular reference.\n <pep-internal-page *ngSwitchCase=\"'internalPage'\" [field]=\"field\" [layoutType]=\"layoutType\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-page>\n\n <pep-internal-carusel *ngSwitchCase=\"'internalCarusel'\" [field]=\"field\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-carusel> \n -->\n\n <ng-container *ngSwitchCase=\"'placeholder'\">\n </ng-container>\n</ng-container>", styles: [":host{width:100%;height:100%}\n"] }]
530
+ }], propDecorators: { field: [{
531
+ type: Input
532
+ }], isActive: [{
533
+ type: Input
534
+ }], uid: [{
535
+ type: Input
536
+ }], form: [{
537
+ type: Input
538
+ }], layoutType: [{
539
+ type: Input
540
+ }], showTitle: [{
541
+ type: Input
542
+ }], checkForChanges: [{
543
+ type: Input
544
+ }], valueChange: [{
545
+ type: Output
546
+ }], formValidationChange: [{
547
+ type: Output
548
+ }], elementClick: [{
549
+ type: Output
550
+ }], formValueChange: [{
551
+ type: Output
552
+ }], formFieldClick: [{
553
+ type: Output
554
+ }] } });
555
+
556
+ class PepInternalFormComponent {
557
+ // eventServiceSub: Subscription;
558
+ // public jsonLib = JSON;
559
+ constructor(dialogService, customizationService, layoutService, fb, differs, translate) {
560
+ this.dialogService = dialogService;
561
+ this.customizationService = customizationService;
562
+ this.layoutService = layoutService;
563
+ this.fb = fb;
564
+ this.translate = translate;
565
+ this.isInternal = true;
566
+ this.isReport = false;
567
+ this.lockEvents = false;
568
+ this.canEditObject = true;
569
+ this._data = null;
570
+ this.isActive = false;
571
+ this.layoutType = 'card';
572
+ // @Input() listType = '';
573
+ this.objectId = '0';
574
+ this.parentId = '0';
575
+ this.searchCode = '0';
576
+ this.showTitle = true;
577
+ this.firstFieldAsLink = false;
578
+ this.checkForChanges = null;
579
+ this.valueChange = new EventEmitter();
580
+ this.formValidationChange = new EventEmitter();
581
+ this.fieldClick = new EventEmitter();
582
+ // @Output() internalFormFieldClick: EventEmitter<any> = new EventEmitter<any>();
583
+ // @Output() internalFormFieldChange: EventEmitter<any> = new EventEmitter<any>();
584
+ this.isLocked = false;
585
+ // payLoad = '';
586
+ this.rows = [];
587
+ this.fields = [];
588
+ this._fieldsSubject = new BehaviorSubject([]);
589
+ this.columns = 1;
590
+ this.hasMenuFloatingOnOtherField = false;
591
+ this.indicatorsDataField = null;
592
+ this._shouldReloadForm = false;
593
+ // store the initial value to compare with
594
+ this.differ = differs.find({}).create();
595
+ }
596
+ set data(value) {
597
+ const shouldReload = this.shouldReloadForm || !this._data;
598
+ this._data = value;
599
+ if (shouldReload) {
600
+ this._shouldReloadForm = false;
601
+ this.initForm();
602
+ }
603
+ else {
604
+ this.updateForm();
605
+ }
606
+ }
607
+ get data() {
608
+ return this._data;
609
+ }
610
+ set lockFields(value) {
611
+ this.isLocked = value;
612
+ }
613
+ get fields$() {
614
+ return this._fieldsSubject.asObservable();
615
+ }
616
+ get shouldReloadForm() {
617
+ return this._shouldReloadForm;
618
+ }
619
+ convertXAlignToHorizontalAlign(xAlign) {
620
+ let res = DEFAULT_HORIZONTAL_ALIGNMENT;
621
+ if (xAlign === X_ALIGNMENT_TYPE.None ||
622
+ xAlign === X_ALIGNMENT_TYPE.Left) {
623
+ res = 'left';
624
+ }
625
+ else if (xAlign === X_ALIGNMENT_TYPE.Right) {
626
+ res = 'right';
627
+ }
628
+ else {
629
+ res = 'center';
630
+ }
631
+ return res;
632
+ }
633
+ convertYAlignToVerticalAlign(yAlign) {
634
+ let res = DEFAULT_VERTICAL_ALIGNMENT;
635
+ if (yAlign === Y_ALIGNMENT_TYPE.None ||
636
+ yAlign === Y_ALIGNMENT_TYPE.Top) {
637
+ res = 'top';
638
+ }
639
+ else if (yAlign === Y_ALIGNMENT_TYPE.Bottom) {
640
+ res = 'bottom';
641
+ }
642
+ else {
643
+ res = 'middle';
644
+ }
645
+ return res;
646
+ }
647
+ convertOptionalValues(optionalValues) {
648
+ if (optionalValues && optionalValues.length > 0) {
649
+ return optionalValues.map((ov) => {
650
+ return { key: ov.Key, value: ov.Value };
651
+ });
652
+ }
653
+ else {
654
+ return [];
655
+ }
656
+ }
657
+ convertAddressFields(controlField, addressFields, canEditObject) {
658
+ const fields = [];
659
+ addressFields.forEach((field) => {
660
+ let customField;
661
+ const placeholder = field.ApiName;
662
+ if (field.ApiName.toLowerCase().indexOf('street') >= 0) {
663
+ customField = new PepTextboxField({
664
+ key: field.ApiName,
665
+ label: field.ApiName,
666
+ type: 'text',
667
+ placeholder,
668
+ readonly: !canEditObject,
669
+ disabled: !field.Enabled || !canEditObject,
670
+ hidden: false,
671
+ mandatory: false,
672
+ value: field.Value,
673
+ formattedValue: field.FormattedValue,
674
+ row: 0,
675
+ rowSpan: 1,
676
+ col: 0,
677
+ colSpan: 2,
678
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
679
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
680
+ order: 0,
681
+ });
682
+ }
683
+ else if (field.ApiName.toLowerCase().indexOf('city') >= 0) {
684
+ customField = new PepTextboxField({
685
+ key: field.ApiName,
686
+ label: field.ApiName,
687
+ type: 'text',
688
+ placeholder,
689
+ readonly: !canEditObject,
690
+ disabled: !field.Enabled || !canEditObject,
691
+ hidden: false,
692
+ mandatory: false,
693
+ value: field.Value,
694
+ formattedValue: field.FormattedValue,
695
+ row: 0,
696
+ rowSpan: 1,
697
+ col: 2,
698
+ colSpan: 1,
699
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
700
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
701
+ order: 1,
702
+ });
703
+ }
704
+ else if (field.ApiName.toLowerCase().indexOf('state') >= 0) {
705
+ customField = new PepSelectField({
706
+ key: field.ApiName,
707
+ label: field.ApiName,
708
+ placeholder,
709
+ options: this.convertOptionalValues(field.OptionalValues),
710
+ readonly: !canEditObject,
711
+ disabled: !field.Enabled || !canEditObject,
712
+ hidden: false,
713
+ mandatory: false,
714
+ value: field.Value,
715
+ formattedValue: field.FormattedValue,
716
+ row: 1,
717
+ rowSpan: 1,
718
+ col: 0,
719
+ colSpan: 1,
720
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
721
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
722
+ order: 2,
723
+ });
724
+ }
725
+ else if (field.ApiName.toLowerCase().indexOf('zipcode') >= 0) {
726
+ customField = new PepTextboxField({
727
+ key: field.ApiName,
728
+ label: field.ApiName,
729
+ type: 'text',
730
+ placeholder,
731
+ readonly: !canEditObject,
732
+ disabled: !field.Enabled || !canEditObject,
733
+ hidden: false,
734
+ mandatory: false,
735
+ value: field.Value,
736
+ formattedValue: field.FormattedValue,
737
+ row: 1,
738
+ rowSpan: 1,
739
+ col: 1,
740
+ colSpan: 1,
741
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
742
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
743
+ order: 3,
744
+ });
745
+ }
746
+ else if (field.ApiName.toLowerCase().indexOf('country') >= 0) {
747
+ customField = new PepSelectField({
748
+ key: field.ApiName,
749
+ label: field.ApiName,
750
+ placeholder,
751
+ options: this.convertOptionalValues(field.OptionalValues),
752
+ readonly: !canEditObject,
753
+ disabled: !field.Enabled || !canEditObject,
754
+ hidden: false,
755
+ mandatory: false,
756
+ value: field.Value,
757
+ formattedValue: field.FormattedValue,
758
+ row: 2,
759
+ rowSpan: 1,
760
+ col: 2,
761
+ colSpan: 1,
762
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
763
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
764
+ order: 4,
765
+ });
766
+ }
767
+ fields.push(customField);
768
+ });
769
+ return fields.sort((n1, n2) => n1.order > n2.order ? 1 : n1.order < n2.order ? -1 : 0);
770
+ }
771
+ isMatrixField(apiNameToCheck) {
772
+ return apiNameToCheck.indexOf('Matrix') >= 0;
773
+ }
774
+ doesFieldHavaFloatingField(controlField, floatingField) {
775
+ let hasFloatingField = false;
776
+ if (floatingField.Layout.Y >= controlField.Layout.Y &&
777
+ floatingField.Layout.Y <
778
+ controlField.Layout.Y + controlField.Layout.Height &&
779
+ floatingField.Layout.X >= controlField.Layout.X &&
780
+ floatingField.Layout.X <
781
+ controlField.Layout.X + controlField.Layout.Width) {
782
+ hasFloatingField = true;
783
+ }
784
+ return hasFloatingField;
785
+ }
786
+ getOptionsForCustomField(controlField, dataField, canEditObject) {
787
+ if (!controlField || !dataField) {
788
+ return;
789
+ }
790
+ const placeholder = controlField.ReadOnly || !canEditObject ? '' : controlField.Title;
791
+ return {
792
+ key: controlField.ApiName,
793
+ label: controlField.Title,
794
+ accessory: dataField.Accessory,
795
+ placeholder,
796
+ readonly: controlField.ReadOnly || !canEditObject,
797
+ disabled: !dataField.Enabled || !canEditObject,
798
+ hidden: controlField.Hidden,
799
+ mandatory: controlField.Mandatory,
800
+ value: dataField.Value,
801
+ formattedValue: dataField.FormattedValue,
802
+ additionalValue: dataField.AdditionalValue,
803
+ row: controlField.Layout.Y,
804
+ rowSpan: controlField.Layout.Height,
805
+ col: controlField.Layout.X,
806
+ colSpan: controlField.Layout.Width,
807
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
808
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
809
+ options: this.convertOptionalValues(dataField.OptionalValues),
810
+ groupFields: undefined,
811
+ maxFieldCharacters: controlField.MaxFieldCharacters,
812
+ minValue: controlField.MinValue,
813
+ maxValue: controlField.MaxValue,
814
+ // hasMenu: hasMenu,
815
+ // hasCampaign: hasCampaign,
816
+ // hasIndicators: hasIndicators,
817
+ textColor: dataField.TextColor,
818
+ visible: dataField.Visible,
819
+ };
820
+ }
821
+ convertToCustomField(controlField, dataField, canEditObject, menuField, hasCampaignField, indicatorsField, objectId, parentId, searchCode) {
822
+ let customField;
823
+ const options = this.getOptionsForCustomField(controlField, dataField, canEditObject);
824
+ if (controlField.ApiName === 'ObjectMenu') {
825
+ options.type = 'menu';
826
+ customField = new PepInternalMenuField(options);
827
+ }
828
+ else if (controlField.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
829
+ controlField.FieldType ===
830
+ FIELD_TYPE.NumberIntegerQuantitySelector ||
831
+ controlField.ApiName === 'QuantitySelector' ||
832
+ controlField.ApiName === 'UnitsQuantity' ||
833
+ controlField.ApiName.indexOf('size_') === 0) {
834
+ if (dataField.FieldType === FIELD_TYPE.InternalLink) {
835
+ options.type = 'button';
836
+ }
837
+ else if (dataField.FieldType === FIELD_TYPE.Package) {
838
+ options.type = 'packageButton';
839
+ }
840
+ else if (dataField.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
841
+ dataField.FieldType === FIELD_TYPE.NumberReal) {
842
+ options.type = 'qs';
843
+ options.allowDecimal = true;
844
+ }
845
+ else if (dataField.FieldType ===
846
+ FIELD_TYPE.NumberIntegerQuantitySelector ||
847
+ dataField.FieldType === FIELD_TYPE.NumberInteger) {
848
+ options.type = 'qs';
849
+ options.allowDecimal = false;
850
+ }
851
+ else if (dataField.FieldType === FIELD_TYPE.NumberIntegerForMatrix) {
852
+ options.type = 'qsForMatrix';
853
+ options.allowDecimal = false;
854
+ }
855
+ else if (dataField.FieldType === FIELD_TYPE.NumberRealForMatrix) {
856
+ options.type = 'qsForMatrix';
857
+ options.allowDecimal = true;
858
+ }
859
+ options.notificationInfo = dataField.NotificationInfo;
860
+ customField = new PepQuantitySelectorField(options);
861
+ }
862
+ else {
863
+ // HACK: need to remove this..
864
+ if (dataField.FieldType === FIELD_TYPE.Indicators &&
865
+ this.isMatrixField(dataField.ApiName)) {
866
+ dataField.FieldType = FIELD_TYPE.InternalPage;
867
+ }
868
+ switch (dataField.FieldType) {
869
+ case FIELD_TYPE.Address: {
870
+ const canEditGroupObject = controlField.ReadOnly
871
+ ? false
872
+ : canEditObject;
873
+ options.groupFields = this.convertAddressFields(controlField, dataField.GroupFields, canEditGroupObject);
874
+ customField = new PepAddressField(options);
875
+ break;
876
+ }
877
+ case FIELD_TYPE.Indicators: {
878
+ // options['type'] = 'indicators'; // Not needed this is PepIndicatorsField.
879
+ customField = new PepIndicatorsField(options);
880
+ break;
881
+ }
882
+ case FIELD_TYPE.InternalPage: {
883
+ if (this.isMatrixField(controlField.ApiName)) {
884
+ options.rowSpan = controlField.Layout.Height;
885
+ options.objectId = objectId;
886
+ options.parentId = parentId;
887
+ options.searchCode = searchCode;
888
+ customField = new PepInternalPageField(options);
889
+ }
890
+ else {
891
+ // Not supported
892
+ }
893
+ break;
894
+ }
895
+ case FIELD_TYPE.RelatedObjectsCards: {
896
+ options.rowSpan = controlField.Layout.Height;
897
+ options.searchCode = searchCode;
898
+ options.pageInfo = dataField.UIPageInfo;
899
+ customField = new PepInternalCaruselField(options);
900
+ break;
901
+ }
902
+ case FIELD_TYPE.Link: {
903
+ options.type = 'link';
904
+ customField = new PepLinkField(options);
905
+ break;
906
+ }
907
+ case FIELD_TYPE.InternalLink:
908
+ case FIELD_TYPE.Button: {
909
+ options.type = 'button';
910
+ customField = new PepInternalButtonField(options);
911
+ break;
912
+ }
913
+ case FIELD_TYPE.Attachment: {
914
+ // options.type = 'attachment';
915
+ customField = new PepAttachmentField(options);
916
+ break;
917
+ }
918
+ case FIELD_TYPE.Signature: {
919
+ // options.type = 'signature';
920
+ customField = new PepSignatureField(options);
921
+ break;
922
+ }
923
+ case FIELD_TYPE.Image:
924
+ case FIELD_TYPE.ImageURL: {
925
+ // options.type = 'image';
926
+ options.menuField =
927
+ menuField &&
928
+ this.doesFieldHavaFloatingField(controlField, menuField)
929
+ ? menuField
930
+ : null;
931
+ options.hasCampaignField =
932
+ hasCampaignField &&
933
+ this.doesFieldHavaFloatingField(controlField, hasCampaignField)
934
+ ? hasCampaignField
935
+ : null;
936
+ options.indicatorsField =
937
+ indicatorsField &&
938
+ this.doesFieldHavaFloatingField(controlField, indicatorsField)
939
+ ? indicatorsField
940
+ : null;
941
+ customField = new PepImageField(options);
942
+ break;
943
+ }
944
+ case FIELD_TYPE.Images: {
945
+ // options.type = 'images';
946
+ customField = new PepImagesField(options);
947
+ break;
948
+ }
949
+ case FIELD_TYPE.Email: {
950
+ options.type = 'email';
951
+ customField = new PepLinkField(options);
952
+ break;
953
+ }
954
+ case FIELD_TYPE.Phone: {
955
+ options.type = 'phone';
956
+ customField = new PepLinkField(options);
957
+ break;
958
+ }
959
+ case FIELD_TYPE.Duration: {
960
+ options.type = 'duration';
961
+ customField = new PepTextboxField(options);
962
+ break;
963
+ }
964
+ case FIELD_TYPE.Default:
965
+ case FIELD_TYPE.TextBox:
966
+ case FIELD_TYPE.LimitedLengthTextBox:
967
+ case FIELD_TYPE.TextHeader:
968
+ case FIELD_TYPE.CalculatedString:
969
+ case FIELD_TYPE.MapDataString: {
970
+ customField = new PepTextboxField(options);
971
+ break;
972
+ }
973
+ case FIELD_TYPE.TextArea: {
974
+ customField = new PepTextareaField(options);
975
+ break;
976
+ }
977
+ case FIELD_TYPE.RichTextHTML: {
978
+ customField = new PepRichHtmlTextareaField(options);
979
+ break;
980
+ }
981
+ case FIELD_TYPE.Date:
982
+ case FIELD_TYPE.LimitedDate:
983
+ case FIELD_TYPE.CalculatedDate:
984
+ case FIELD_TYPE.DateAndTime: {
985
+ options.type =
986
+ dataField.FieldType === FIELD_TYPE.DateAndTime
987
+ ? 'datetime'
988
+ : 'date';
989
+ customField = new PepDateField(options);
990
+ break;
991
+ }
992
+ case FIELD_TYPE.NumberInteger:
993
+ case FIELD_TYPE.CalculatedInt:
994
+ case FIELD_TYPE.MapDataInt: {
995
+ options.type = 'int';
996
+ customField = new PepTextboxField(options);
997
+ break;
998
+ }
999
+ case FIELD_TYPE.Percentage: {
1000
+ options.type = 'percentage';
1001
+ customField = new PepTextboxField(options);
1002
+ break;
1003
+ }
1004
+ case FIELD_TYPE.Currency: {
1005
+ options.type = 'currency';
1006
+ customField = new PepTextboxField(options);
1007
+ break;
1008
+ }
1009
+ case FIELD_TYPE.NumberReal:
1010
+ case FIELD_TYPE.CalculatedReal:
1011
+ case FIELD_TYPE.MapDataReal:
1012
+ case FIELD_TYPE.Sum:
1013
+ case FIELD_TYPE.Totals: {
1014
+ options.type = 'real';
1015
+ customField = new PepTextboxField(options);
1016
+ break;
1017
+ }
1018
+ case FIELD_TYPE.Boolean:
1019
+ case FIELD_TYPE.CalculatedBool: {
1020
+ customField = new PepCheckboxField(options);
1021
+ break;
1022
+ }
1023
+ case FIELD_TYPE.BooleanText: {
1024
+ options.type = 'booleanText';
1025
+ customField = new PepCheckboxField(options);
1026
+ break;
1027
+ }
1028
+ case FIELD_TYPE.ComboBox:
1029
+ case FIELD_TYPE.EmptyComboBox:
1030
+ case FIELD_TYPE.MapDataDropDown: {
1031
+ // options.type = 'select';
1032
+ customField = new PepSelectField(options);
1033
+ break;
1034
+ }
1035
+ case FIELD_TYPE.MultiTickBox:
1036
+ case FIELD_TYPE.MultiTickBoxToComboBox:
1037
+ case FIELD_TYPE.EmptyMultiTickBox: {
1038
+ options.type = 'multi';
1039
+ customField = new PepSelectField(options);
1040
+ break;
1041
+ }
1042
+ case FIELD_TYPE.GuidReferenceType: {
1043
+ options.type = 'reference';
1044
+ options.referenceObjectType = dataField.ReferenceObjectType;
1045
+ options.referenceObjectSubType =
1046
+ dataField.ReferenceObjectSubType;
1047
+ options.referenceObjectInternalType =
1048
+ dataField.ReferenceObjectInternalType;
1049
+ customField = new PepInternalButtonField(options);
1050
+ break;
1051
+ }
1052
+ case FIELD_TYPE.ListOfObjects: {
1053
+ options.type = 'listofobjects';
1054
+ customField = new PepInternalButtonField(options);
1055
+ break;
1056
+ }
1057
+ case FIELD_TYPE.Separator: {
1058
+ customField = new PepSeparatorField(options);
1059
+ break;
1060
+ }
1061
+ /*
1062
+ case FIELD_TYPE.Images: return that.field(value);
1063
+ */
1064
+ case FIELD_TYPE.NumberRealQuantitySelector:
1065
+ case FIELD_TYPE.NumberIntegerQuantitySelector: {
1066
+ options.type = 'qs';
1067
+ options.allowDecimal =
1068
+ dataField.FieldType ===
1069
+ FIELD_TYPE.NumberRealQuantitySelector;
1070
+ options.notificationInfo = dataField.NotificationInfo;
1071
+ customField = new PepQuantitySelectorField(options);
1072
+ break;
1073
+ }
1074
+ case FIELD_TYPE.Package: {
1075
+ options.type = 'packageButton';
1076
+ options.notificationInfo = dataField.NotificationInfo;
1077
+ customField = new PepQuantitySelectorField(options);
1078
+ break;
1079
+ }
1080
+ }
1081
+ }
1082
+ if (!customField) {
1083
+ options.label = controlField.ApiName + ' is not supported!!!';
1084
+ customField = new PepSeparatorField(options);
1085
+ }
1086
+ return customField;
1087
+ }
1088
+ getFieldFormattedValue(field) {
1089
+ let fieldFormattedValue = field.formattedValue;
1090
+ // Fix for the custom check box component.
1091
+ if (field.controlType === 'checkbox') {
1092
+ fieldFormattedValue = fieldFormattedValue === 'true';
1093
+ }
1094
+ // Fix for the custom button component.
1095
+ if (field.controlType === 'button') {
1096
+ fieldFormattedValue =
1097
+ fieldFormattedValue === '0' ? '' : fieldFormattedValue;
1098
+ }
1099
+ return fieldFormattedValue;
1100
+ }
1101
+ toControlGroup(fields) {
1102
+ const group = {};
1103
+ if (fields && fields.length > 0) {
1104
+ fields.forEach((field) => {
1105
+ if (field.groupFields && field.groupFields.length > 0) {
1106
+ const subGroup = {};
1107
+ field.groupFields.forEach((groupField) => {
1108
+ if (groupField.mandatory &&
1109
+ !field.readonly &&
1110
+ !field.disabled) {
1111
+ subGroup[groupField.key] = [
1112
+ {
1113
+ value: groupField.formattedValue || '',
1114
+ disabled: field.readonly ||
1115
+ field.disabled ||
1116
+ groupField.disabled,
1117
+ },
1118
+ [Validators.required],
1119
+ ];
1120
+ }
1121
+ else {
1122
+ subGroup[groupField.key] = [
1123
+ {
1124
+ value: groupField.formattedValue || '',
1125
+ disabled: field.readonly ||
1126
+ field.disabled ||
1127
+ groupField.disabled,
1128
+ },
1129
+ [Validators.nullValidator],
1130
+ ];
1131
+ }
1132
+ });
1133
+ group[field.key] = this.fb.group(subGroup);
1134
+ }
1135
+ else {
1136
+ const validators = field.getValidators();
1137
+ const fieldFormattedValue = this.getFieldFormattedValue(field);
1138
+ group[field.key] = [
1139
+ {
1140
+ value: fieldFormattedValue || '',
1141
+ disabled: field.disabled,
1142
+ },
1143
+ validators,
1144
+ ];
1145
+ }
1146
+ });
1147
+ }
1148
+ return this.fb.group(group);
1149
+ }
1150
+ createBaseField(uiControlField, dataField) {
1151
+ const customField = this.convertToCustomField(uiControlField, dataField, this.canEditObject, this.menuDataField, this.hasCampaignDataField, this.indicatorsDataField, this.objectId, this.parentId, this.searchCode);
1152
+ return customField;
1153
+ }
1154
+ showFormValidationMessage() {
1155
+ const fields = this.fields;
1156
+ let emptyMandatoryFieldsMsg = '';
1157
+ let notValidFieldsMsg = '';
1158
+ // for (let i: number = 0; i < fields.length; i++) {
1159
+ // let field = fields[i];
1160
+ for (const field of fields) {
1161
+ const formControl = this.form && this.form.get(field.key);
1162
+ if (formControl) {
1163
+ // Mandatory is empty.
1164
+ if (field.mandatory &&
1165
+ formControl.value.toString().trim().length === 0) {
1166
+ emptyMandatoryFieldsMsg +=
1167
+ '<li><small>' + field.label + '</small></li>';
1168
+ }
1169
+ else if (!field.disabled && !formControl.valid) {
1170
+ notValidFieldsMsg +=
1171
+ '<li><small>' + field.label + '</small></li>';
1172
+ }
1173
+ }
1174
+ }
1175
+ // Add the header message of the empty mandatory fields
1176
+ if (emptyMandatoryFieldsMsg.length > 0) {
1177
+ emptyMandatoryFieldsMsg =
1178
+ '<div>' +
1179
+ this.translate.instant('MESSAGES.ERROR_MANDATORY_FIELDS') +
1180
+ "</div><ul style='padding: 0 20px;'>" +
1181
+ emptyMandatoryFieldsMsg +
1182
+ '</ul><br/>';
1183
+ }
1184
+ // Add the header message of the empty mandatory fields
1185
+ if (notValidFieldsMsg.length > 0) {
1186
+ notValidFieldsMsg =
1187
+ '<div>' +
1188
+ this.translate.instant('MESSAGES.ERROR_INVALID_FIELDS') +
1189
+ "</div><ul style='padding: 0 20px;'>" +
1190
+ notValidFieldsMsg +
1191
+ '</ul>';
1192
+ }
1193
+ const title = this.translate.instant('MESSAGES.TITLE_NOTICE');
1194
+ const data = new PepDialogData({
1195
+ title,
1196
+ content: emptyMandatoryFieldsMsg + notValidFieldsMsg,
1197
+ });
1198
+ this.dialogService.openDefaultDialog(data);
1199
+ }
1200
+ ngOnInit() {
1201
+ const themeVars = this.customizationService.getThemeVariables();
1202
+ // convert rem to pixel
1203
+ const RemToPixel = 16;
1204
+ this.formGutterSize =
1205
+ this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.FORM_SPACEING_KEY) * RemToPixel;
1206
+ this.cardGutterSize =
1207
+ this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.CARD_SPACEING_KEY) * RemToPixel;
1208
+ }
1209
+ ngDoCheck() {
1210
+ const changes = this.differ.diff(this.data); // check for changes
1211
+ if (changes) {
1212
+ this.updateForm();
1213
+ this.checkForChanges = new Date();
1214
+ }
1215
+ }
1216
+ ngOnChanges(changes) {
1217
+ // if (changes.data && changes.data.currentValue) {
1218
+ // // Load changes
1219
+ // if (!this.shouldReloadForm && changes.data.previousValue) {
1220
+ // this.data = changes.data.currentValue;
1221
+ // this.updateForm();
1222
+ // } else {
1223
+ // this._shouldReloadForm = false;
1224
+ // this.initForm();
1225
+ // }
1226
+ // }
1227
+ // if (this.shouldReloadForm || !changes?.data?.previousValue) {
1228
+ // this._shouldReloadForm = false;
1229
+ // this.initForm();
1230
+ // this.checkForChanges = new Date();
1231
+ // }
1232
+ }
1233
+ ngOnDestroy() {
1234
+ //
1235
+ }
1236
+ getUiControlFields() {
1237
+ return this.layout ? this.layout.ControlFields : [];
1238
+ }
1239
+ initFieldsStructure(fields, maxRow) {
1240
+ const themeVars = this.customizationService.getThemeVariables();
1241
+ // Set form row height.
1242
+ if (this.layoutType === 'card') {
1243
+ const cardFieldHeight = this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.CARD_FIELD_HEIGHT_KEY);
1244
+ this.rowHeight = cardFieldHeight;
1245
+ }
1246
+ else {
1247
+ const rowFieldHeight = this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.FORM_FIELD_HEIGHT_KEY);
1248
+ const rowFieldTitleHeight = this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.FORM_FIELD_TITLE_HEIGHT_KEY);
1249
+ this.rowHeight = rowFieldHeight + rowFieldTitleHeight;
1250
+ }
1251
+ // Create the fields structure (the fields must be sorted!!!).
1252
+ if (fields.length > 0) {
1253
+ // Init the layout.
1254
+ if (
1255
+ // this.layoutType === 'form' ||
1256
+ this.layoutType === 'table') {
1257
+ this.fields = fields;
1258
+ this._fieldsSubject.next(fields);
1259
+ this.rows = [];
1260
+ for (let i = 0; i <= maxRow; i++) {
1261
+ this.rows[i] = [];
1262
+ }
1263
+ // for (let i = 0; i < fields.length; i++) {
1264
+ // const field = fields[i]
1265
+ for (const field of fields) {
1266
+ this.rows[field.row].push(field);
1267
+ }
1268
+ }
1269
+ else {
1270
+ const doesfieldExistIn = new Array(maxRow);
1271
+ for (let i = 0; i < doesfieldExistIn.length; i++) {
1272
+ doesfieldExistIn[i] = new Array(this.columns);
1273
+ for (let j = 0; j < doesfieldExistIn[i].length; j++) {
1274
+ doesfieldExistIn[i][j] = false;
1275
+ }
1276
+ }
1277
+ // Run in squere (row - colspan, col - rowspan) and put true where it should.
1278
+ // for (let index = 0; index < fields.length; index++) {
1279
+ // const currentField = fields[index];
1280
+ for (const currentField of fields) {
1281
+ if (currentField.rowSpan > 1) {
1282
+ for (let row = currentField.row; row < currentField.row + currentField.rowSpan; row++) {
1283
+ if (currentField.colSpan > 1) {
1284
+ for (let col = currentField.col; col <
1285
+ currentField.col + currentField.colSpan; col++) {
1286
+ if (doesfieldExistIn.length > row &&
1287
+ doesfieldExistIn[0].length > col) {
1288
+ doesfieldExistIn[row][col] = true;
1289
+ }
1290
+ }
1291
+ }
1292
+ else {
1293
+ if (doesfieldExistIn.length > row &&
1294
+ doesfieldExistIn[0].length >
1295
+ currentField.col) {
1296
+ doesfieldExistIn[row][currentField.col] = true;
1297
+ }
1298
+ }
1299
+ }
1300
+ }
1301
+ else if (currentField.colSpan > 1) {
1302
+ for (let col = currentField.col; col < currentField.col + currentField.colSpan; col++) {
1303
+ if (doesfieldExistIn.length > currentField.row &&
1304
+ doesfieldExistIn[0].length > col) {
1305
+ doesfieldExistIn[currentField.row][col] = true;
1306
+ }
1307
+ }
1308
+ }
1309
+ else {
1310
+ if (doesfieldExistIn.length > currentField.row &&
1311
+ doesfieldExistIn[0].length > currentField.col) {
1312
+ doesfieldExistIn[currentField.row][currentField.col] = true;
1313
+ }
1314
+ }
1315
+ }
1316
+ // Create empty fields where doesfieldExistIn is false (For the md-grid-list UI Component).
1317
+ for (let i = 0; i < doesfieldExistIn.length; i++) {
1318
+ for (let j = 0; j < doesfieldExistIn[i].length; j++) {
1319
+ if (!doesfieldExistIn[i][j]) {
1320
+ // Create empty field and add it to the fields list.
1321
+ fields.push(new PepPlaceholderField({
1322
+ key: i + '_' + j,
1323
+ label: '',
1324
+ placeholder: '',
1325
+ readonly: false,
1326
+ disabled: false,
1327
+ hidden: false,
1328
+ mandatory: false,
1329
+ value: '',
1330
+ formattedValue: '',
1331
+ row: i,
1332
+ rowSpan: 1,
1333
+ col: j,
1334
+ colSpan: 1,
1335
+ order: 1,
1336
+ }));
1337
+ }
1338
+ }
1339
+ }
1340
+ // Sort the fields again.
1341
+ this.fields = fields.sort((f1, f2) => f1.row > f2.row
1342
+ ? 1
1343
+ : f1.row < f2.row
1344
+ ? -1
1345
+ : f1.col > f2.col
1346
+ ? 1
1347
+ : f1.col < f2.col
1348
+ ? -1
1349
+ : 0);
1350
+ this._fieldsSubject.next(fields);
1351
+ }
1352
+ }
1353
+ }
1354
+ setForm(isForUpdate = false) {
1355
+ var _a;
1356
+ let allFieldsAreReadOnly = true;
1357
+ if (!isForUpdate) {
1358
+ const fields = [];
1359
+ for (const currentField of this.fields) {
1360
+ // Add all fields except 'internalPage' (for children).
1361
+ if (currentField.controlType !== 'internalPage') {
1362
+ fields.push(currentField);
1363
+ }
1364
+ if (!currentField.readonly) {
1365
+ allFieldsAreReadOnly = false;
1366
+ }
1367
+ }
1368
+ this.form = this.toControlGroup(fields);
1369
+ }
1370
+ else {
1371
+ // Update form values if changed by calculated fields.
1372
+ for (let i = 0; i < this.fields.length; i++) {
1373
+ let currentField = this.fields[i];
1374
+ if (currentField.controlType === 'internalCarusel') {
1375
+ // Hack to override (update) the field.
1376
+ const uiControlField = this.getUiControlFields().find(cf => cf.ApiName === currentField.key);
1377
+ const dataField = this.data.Fields.find(df => df.ApiName === currentField.key);
1378
+ currentField = this.createBaseField(uiControlField, dataField);
1379
+ this._fieldsSubject.value[i] = currentField;
1380
+ }
1381
+ else if (currentField.controlType !== 'internalPage') {
1382
+ if (currentField.groupFields &&
1383
+ currentField.groupFields.length > 0) {
1384
+ // for (let j = 0; j < currentField.groupFields.length; j++) {
1385
+ // let currentGroupField = currentField.groupFields[j];
1386
+ for (const currentGroupField of currentField.groupFields) {
1387
+ const fieldFormattedValue = this.getFieldFormattedValue(currentGroupField);
1388
+ this.customizationService.updateFormField(this.form, currentGroupField, fieldFormattedValue, currentField);
1389
+ }
1390
+ }
1391
+ else {
1392
+ const fieldFormattedValue = this.getFieldFormattedValue(currentField);
1393
+ // this.form.controls[currentField.key].setValue(fieldFormattedValue);
1394
+ this.customizationService.updateFormField(this.form, currentField, fieldFormattedValue);
1395
+ }
1396
+ }
1397
+ if (!currentField.readonly) {
1398
+ allFieldsAreReadOnly = false;
1399
+ }
1400
+ }
1401
+ }
1402
+ let isFormValid = (_a = this.form) === null || _a === void 0 ? void 0 : _a.valid;
1403
+ // Change validation to true if all fields are read only.
1404
+ if (!isFormValid && allFieldsAreReadOnly) {
1405
+ isFormValid = true;
1406
+ }
1407
+ this.onFormValidationChanged(isFormValid);
1408
+ // Set it to false to enable all fields.
1409
+ if (this.isInternal && this.isLocked) {
1410
+ this.isLocked = false;
1411
+ }
1412
+ }
1413
+ initForm() {
1414
+ if (this.data && this.data.Fields) {
1415
+ const fields = this.convertCustomFields(this.getUiControlFields(), this.data.Fields);
1416
+ const maxRow = Math.max(...fields.map((f) => {
1417
+ return f.row + f.rowSpan;
1418
+ }));
1419
+ this.columns = Math.max(...fields.map((f) => {
1420
+ return f.col + f.colSpan;
1421
+ }));
1422
+ this.initFieldsStructure(fields, maxRow);
1423
+ this.setForm();
1424
+ }
1425
+ }
1426
+ updateField(customField, updatedField) {
1427
+ const options = {
1428
+ disabled: !updatedField.Enabled || !this.canEditObject,
1429
+ readonly: !updatedField.Enabled || !this.canEditObject,
1430
+ visible: updatedField.Visible,
1431
+ value: updatedField.Value,
1432
+ additionalValue: updatedField.AdditionalValue,
1433
+ formattedValue: updatedField.FormattedValue,
1434
+ textColor: updatedField.TextColor,
1435
+ };
1436
+ if (customField instanceof PepQuantitySelectorField) {
1437
+ const notificationInfo = updatedField.NotificationInfo;
1438
+ options.notificationInfo = notificationInfo;
1439
+ // Change type if it's change (only for allowDecimal).
1440
+ let allowDecimal = false;
1441
+ if (updatedField.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
1442
+ updatedField.FieldType === FIELD_TYPE.NumberReal ||
1443
+ updatedField.FieldType === FIELD_TYPE.NumberRealForMatrix) {
1444
+ allowDecimal = true;
1445
+ }
1446
+ options.allowDecimal = allowDecimal;
1447
+ }
1448
+ else if (customField instanceof PepSelectField) {
1449
+ options.options = this.convertOptionalValues(updatedField.OptionalValues);
1450
+ if (!options.options || options.options.length === 0) {
1451
+ options.options.push({
1452
+ key: options.value,
1453
+ value: options.formattedValue,
1454
+ });
1455
+ }
1456
+ }
1457
+ else if (customField instanceof PepInternalCaruselField) {
1458
+ options.pageInfo = updatedField.UIPageInfo;
1459
+ }
1460
+ customField.update(options);
1461
+ }
1462
+ updateForm() {
1463
+ if (this.data && this.data.Fields) {
1464
+ for (const currentField of this.data.Fields) {
1465
+ const customField = this.fields.filter((f) => f.key === currentField.ApiName)[0];
1466
+ // Update all fields except 'internalPage' type (for children).
1467
+ if (customField && customField.controlType !== 'internalPage') {
1468
+ this.updateField(customField, currentField);
1469
+ // Update the group fields.
1470
+ if (customField.controlType === 'address' &&
1471
+ currentField.GroupFields) {
1472
+ // for (let j = 0; j < currentField.GroupFields.length; j++) {
1473
+ // let currentGroupField = currentField.GroupFields[j];
1474
+ for (const currentGroupField of currentField.GroupFields) {
1475
+ currentGroupField.Enabled = !currentField.Enabled
1476
+ ? false
1477
+ : currentGroupField.Enabled;
1478
+ const customGroupField = customField.groupFields.filter((f) => f.key === currentGroupField.ApiName)[0];
1479
+ this.updateField(customGroupField, currentGroupField);
1480
+ }
1481
+ }
1482
+ }
1483
+ }
1484
+ this.setForm(true);
1485
+ }
1486
+ }
1487
+ ReloadForm() {
1488
+ this._shouldReloadForm = true;
1489
+ }
1490
+ // onSubmit() {
1491
+ // if (this.form.valid) {
1492
+ // this.payLoad = JSON.stringify(this.form.value);
1493
+ // //this.submitted.emit(this.form.value);
1494
+ // }
1495
+ // }
1496
+ getFormControlById(key) {
1497
+ let formControl = null;
1498
+ this.fields.forEach((field) => {
1499
+ if (field.key === key) {
1500
+ formControl = this.form.get(field.key);
1501
+ return;
1502
+ }
1503
+ else if (field.groupFields && field.groupFields.length > 0) {
1504
+ field.groupFields.forEach((groupField) => {
1505
+ if (groupField.key === key) {
1506
+ formControl = this.form.get(field.key + '.' + groupField.key);
1507
+ return;
1508
+ }
1509
+ });
1510
+ }
1511
+ });
1512
+ return formControl;
1513
+ }
1514
+ setSpecialFields(controlFields, dataFields) {
1515
+ // let cf;
1516
+ // for (let index = 0; index < controlFields.length; index++) {
1517
+ // cf = controlFields[index];
1518
+ for (const cf of controlFields) {
1519
+ if (cf.ApiName === 'ObjectMenu') {
1520
+ this.menuField = cf;
1521
+ }
1522
+ else if (cf.ApiName === 'ItemHasActiveCampaign') {
1523
+ this.hasCampaignField = cf;
1524
+ }
1525
+ else if (cf.ApiName === 'ItemIndicatorsWithoutCampaign') {
1526
+ this.indicatorsField = cf;
1527
+ }
1528
+ }
1529
+ // let df;
1530
+ // for (let index = 0; index < dataFields.length; index++) {
1531
+ // df = dataFields[index];
1532
+ for (const df of dataFields) {
1533
+ if (df.ApiName === 'ObjectMenu') {
1534
+ this.menuDataField = df;
1535
+ }
1536
+ else if (df.ApiName === 'ItemHasActiveCampaign') {
1537
+ this.hasCampaignDataField = df;
1538
+ }
1539
+ else if (df.ApiName === 'ItemIndicatorsWithoutCampaign') {
1540
+ this.indicatorsDataField = df;
1541
+ }
1542
+ }
1543
+ if (this.menuField && this.menuDataField) {
1544
+ this.menuDataField.Layout = this.menuField.Layout;
1545
+ }
1546
+ if (this.hasCampaignField && this.hasCampaignDataField) {
1547
+ this.hasCampaignDataField.Layout = this.hasCampaignField.Layout;
1548
+ }
1549
+ if (this.indicatorsField && this.indicatorsDataField) {
1550
+ this.indicatorsDataField.Layout = this.indicatorsField.Layout;
1551
+ }
1552
+ // Check if menu is floating on other field.
1553
+ // for (let index = 0; index < controlFields.length; index++) {
1554
+ // cf = controlFields[index];
1555
+ for (const cf of controlFields) {
1556
+ if (this.menuField && cf.ApiName !== 'ObjectMenu') {
1557
+ this.hasMenuFloatingOnOtherField = this.doesFieldHavaFloatingField(cf, this.menuField);
1558
+ if (this.hasMenuFloatingOnOtherField) {
1559
+ break;
1560
+ }
1561
+ }
1562
+ }
1563
+ }
1564
+ convertCustomFields(controlFields, dataFields) {
1565
+ if (this.layoutType !== 'table') {
1566
+ this.setSpecialFields(controlFields, dataFields);
1567
+ }
1568
+ else {
1569
+ // HACK: convert to center alignment if table view & special fields)
1570
+ controlFields.forEach((field, index) => {
1571
+ if (field.ApiName === 'UnitsQuantity' ||
1572
+ field.ApiName === 'QuantitySelector' ||
1573
+ field.ApiName === 'ObjectMenu' ||
1574
+ field.FieldType === FIELD_TYPE.Image ||
1575
+ field.FieldType === FIELD_TYPE.ImageURL ||
1576
+ field.FieldType === FIELD_TYPE.Indicators ||
1577
+ field.FieldType === FIELD_TYPE.Boolean ||
1578
+ field.FieldType === FIELD_TYPE.CalculatedBool ||
1579
+ field.FieldType === FIELD_TYPE.Signature ||
1580
+ field.FieldType ===
1581
+ FIELD_TYPE.NumberIntegerQuantitySelector ||
1582
+ field.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
1583
+ field.FieldType === FIELD_TYPE.Package ||
1584
+ field.FieldType === FIELD_TYPE.NumberIntegerForMatrix ||
1585
+ field.FieldType === FIELD_TYPE.NumberRealForMatrix) {
1586
+ field.Layout.XAlignment = X_ALIGNMENT_TYPE.Center;
1587
+ }
1588
+ else {
1589
+ // HACK: align the rest of the fields by the culture.
1590
+ // field.Layout.XAlignment = this.layoutService.isRtl() ? X_ALIGNMENT_TYPE.Right : X_ALIGNMENT_TYPE.Left;
1591
+ }
1592
+ });
1593
+ }
1594
+ const fields = [];
1595
+ controlFields.forEach((field, index) => {
1596
+ const dataField = dataFields.filter((df) => df.ApiName === field.ApiName)[0];
1597
+ if (!dataField) {
1598
+ return;
1599
+ }
1600
+ // If current view is not table view and those fields are special.
1601
+ if (this.layoutType !== 'table' &&
1602
+ ((this.hasMenuFloatingOnOtherField &&
1603
+ this.menuField &&
1604
+ this.menuField.ApiName === field.ApiName) ||
1605
+ (this.indicatorsField &&
1606
+ this.indicatorsField.ApiName === field.ApiName) ||
1607
+ (this.hasCampaignField &&
1608
+ this.hasCampaignField.ApiName === field.ApiName))) {
1609
+ return;
1610
+ }
1611
+ // Set type to link
1612
+ if (index === 0 && this.firstFieldAsLink) {
1613
+ dataField.FieldType = FIELD_TYPE.InternalLink;
1614
+ // dataField.Value = this.getInternalLinkHref();
1615
+ }
1616
+ if (field.ApiName === 'ObjectMenu') {
1617
+ dataField.Enabled = true;
1618
+ // HACK : Until "Enabled" returns from the server, we set PepMenu to be
1619
+ // Disabled in cart on regular items and not campign items.
1620
+ }
1621
+ const customField = this.createBaseField(field, dataField);
1622
+ fields.push(customField);
1623
+ });
1624
+ return fields.sort((f1, f2) => f1.row > f2.row
1625
+ ? 1
1626
+ : f1.row < f2.row
1627
+ ? -1
1628
+ : f1.col > f2.col
1629
+ ? 1
1630
+ : f1.col < f2.col
1631
+ ? -1
1632
+ : 0);
1633
+ }
1634
+ onFormValidationChanged(formValidationChange) {
1635
+ this.formValidationChange.emit(formValidationChange);
1636
+ }
1637
+ onValueChanged(event) {
1638
+ this.onFormValidationChanged(this.form.valid);
1639
+ const formControl = this.getFormControlById(event.key);
1640
+ const isValid = formControl ? formControl.valid : true;
1641
+ // const isValid = true;
1642
+ if (isValid) {
1643
+ // Set it to false to disable all fields.
1644
+ if (this.isInternal && this.layoutType === 'form') {
1645
+ this.isLocked = true;
1646
+ }
1647
+ // Update the current field value.
1648
+ const currentField = this.fields.find((f) => f.key === event.key);
1649
+ if (currentField) {
1650
+ currentField.formattedValue = currentField.value = event.value;
1651
+ }
1652
+ this.valueChange.emit({
1653
+ id: this.data.UID.toString(),
1654
+ uiObjectKey: this.data.Key,
1655
+ key: event.key,
1656
+ value: event.value,
1657
+ controlType: event.controlType,
1658
+ });
1659
+ }
1660
+ }
1661
+ onClick(fieldClickEvent) {
1662
+ const clickedUiControlField = this.data.Fields.filter((f) => f.ApiName === fieldClickEvent.key)[0];
1663
+ const idType = this.data.Type ? this.data.Type.toString() : '';
1664
+ if (clickedUiControlField) {
1665
+ this.fieldClick.emit({
1666
+ id: this.data.UID.toString(),
1667
+ uiObjectKey: this.data.Key,
1668
+ key: fieldClickEvent.key,
1669
+ idType,
1670
+ which: fieldClickEvent.eventWhich,
1671
+ value: fieldClickEvent.value,
1672
+ controlType: fieldClickEvent.controlType,
1673
+ fieldType: clickedUiControlField.FieldType,
1674
+ otherData: fieldClickEvent.otherData,
1675
+ });
1676
+ }
1677
+ else {
1678
+ // For other api names (like enter children etc).
1679
+ this.fieldClick.emit({
1680
+ id: this.data.UID.toString(),
1681
+ uiObjectKey: this.data.Key,
1682
+ key: fieldClickEvent.key,
1683
+ idType,
1684
+ which: fieldClickEvent.eventWhich,
1685
+ value: fieldClickEvent.value,
1686
+ controlType: fieldClickEvent.controlType,
1687
+ otherData: fieldClickEvent.otherData,
1688
+ });
1689
+ }
1690
+ }
1691
+ // // This event is for handle the internal page events.
1692
+ // onInternalFormFieldClicked(internalFormFieldClick: any): void {
1693
+ // this.internalFormFieldClick.emit(internalFormFieldClick);
1694
+ // }
1695
+ // // This event is for handle the internal page events.
1696
+ // onInternalFormFieldChanged(internalFormFieldChange: any): void {
1697
+ // this.internalFormFieldChange.emit(internalFormFieldChange);
1698
+ // }
1699
+ // This event is for handle the related items change events.
1700
+ onFormValueChanged(event) {
1701
+ // this.valueChange.emit(event);
1702
+ }
1703
+ // This event is for handle the related items change events.
1704
+ onFormFieldClick(event) {
1705
+ this.fieldClick.emit(event);
1706
+ }
1707
+ }
1708
+ PepInternalFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalFormComponent, deps: [{ token: i1$2.PepDialogService }, { token: i1$1.PepCustomizationService }, { token: i1$1.PepLayoutService }, { token: i3$1.FormBuilder }, { token: i0.KeyValueDiffers }, { token: i4$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
1709
+ PepInternalFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalFormComponent, selector: "pep-internal-form", inputs: { isInternal: "isInternal", isReport: "isReport", layout: "layout", lockEvents: "lockEvents", canEditObject: "canEditObject", data: "data", lockFields: "lockFields", isActive: "isActive", layoutType: "layoutType", objectId: "objectId", parentId: "parentId", searchCode: "searchCode", showTitle: "showTitle", firstFieldAsLink: "firstFieldAsLink", checkForChanges: "checkForChanges" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", fieldClick: "fieldClick" }, usesOnChanges: true, ngImport: i0, template: "<fieldset *ngIf=\"form\" [formGroup]=\"form\" [disabled]=\"isLocked\" class=\"pep-form\"\n [ngStyle]=\"{ 'background-color': layoutType == 'card' && data?.BackgroundColor }\">\n <!-- New Form -->\n <mat-grid-list *ngIf=\"layoutType == 'form'\" [cols]=\"columns\" [rowHeight]=\"rowHeight + 'rem'\"\n [gutterSize]=\"formGutterSize\">\n <mat-grid-tile *ngFor=\"let field of fields$ | async\" [rowspan]=\"field.rowSpan\" [colspan]=\"field.colSpan\">\n <pep-internal-field-generator *ngIf=\"field.controlType != 'placeholder'\" [form]=\"form\" [layoutType]=\"layoutType\"\n [checkForChanges]=\"checkForChanges\" [uid]=\"data?.UID\" [field]=\"field\" [showTitle]=\"showTitle\"\n (valueChange)=\"onValueChanged($event)\" (elementClick)=\"onClick($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\"\n (formValidationChange)=\"onFormValidationChanged($event)\">\n </pep-internal-field-generator>\n </mat-grid-tile>\n </mat-grid-list>\n\n <!-- Thumbnails -->\n <mat-grid-list *ngIf=\"layoutType == 'card'\" [cols]=\"columns\" [rowHeight]=\"rowHeight + 'rem'\"\n [gutterSize]=\"cardGutterSize\" class=\"card-spacing\">\n <mat-grid-tile *ngFor=\"let field of fields$ | async\" [rowspan]=\"field.rowSpan\" [colspan]=\"field.colSpan\"\n [ngStyle]=\"{ overflow: field.type == 'qs' ? 'unset' : 'hidden' }\">\n <pep-internal-field-generator *ngIf=\"field.controlType != 'placeholder'\" [form]=\"form\" [layoutType]=\"layoutType\"\n [ngClass]=\"{ 'lock-events': lockEvents }\" [isActive]=\"isActive\" [checkForChanges]=\"checkForChanges\"\n [uid]=\"data?.UID\" [field]=\"field\" [showTitle]=\"showTitle\" (valueChange)=\"onValueChanged($event)\"\n (elementClick)=\"onClick($event)\" (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\">\n </pep-internal-field-generator>\n </mat-grid-tile>\n </mat-grid-list>\n\n <ng-container *ngIf=\"layoutType == 'table'\">\n <ng-container *ngIf=\"isReport; then reportBlock; else notReportBlock\"></ng-container>\n <ng-template #reportBlock>\n <ng-container *ngTemplateOutlet=\"report\"></ng-container>\n </ng-template>\n <ng-template #notReportBlock>\n <div *ngFor=\"let field of fields$ | async; let j = index\" class=\"pull-left flip table-cell \"\n [ngClass]=\"['text-align-' + field.xAlignment]\" style=\"height: 100%\"\n [ngStyle]=\"{ width: (layout?.ControlFields)[j]?.calcColumnWidthString}\">\n <pep-internal-field-generator *ngIf=\"field.controlType != 'placeholder'\" [checkForChanges]=\"checkForChanges\"\n [uid]=\"data?.UID\" [field]=\"field\" [form]=\"form\" [layoutType]=\"layoutType\" [showTitle]=\"false\"\n (elementClick)=\"onClick($event)\" (valueChange)=\"onValueChanged($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\"\n [isActive]=\"isActive\">\n </pep-internal-field-generator>\n </div>\n </ng-template>\n </ng-container>\n\n <!------- For testing ------------\n {{ form.value | json }}\n {{ form.valid }}\n ---------------------------------->\n</fieldset>\n\n<ng-template #report>\n <div *ngFor=\"let field of fields$ | async; let j = index\" class=\"pull-left flip pep-report-fields\"\n [ngStyle]=\"{ width: (layout?.ControlFields)[j]?.calcColumnWidthString }\"\n [ngClass]=\"['text-align-' + field.xAlignment]\">\n <ng-container [ngSwitch]=\"field.controlType\">\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"data?.UID\" [form]=\"form\" [key]=\"field.key\"\n [src]=\"field.formattedValue\" [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-image>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\">\n </pep-signature>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [additionalValue]=\"field.additionalValue\" [layoutType]=\"layoutType\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [minValue]=\"field.minValue\" [maxValue]=\"field.maxValue\" [layoutType]=\"layoutType\">\n </pep-date>\n\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" (elementClick)=\"onClick($event)\">\n </pep-internal-button>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [maxFieldCharacters]=\"field.maxFieldCharacters\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\">\n </pep-textarea>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [id]=\"field.key\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"field.value\" [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\" (valueChange)=\"onValueChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"field.formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\">\n </ng-container>\n <ng-template #notEmptyBlock>\n <ng-container\n *ngIf=\"field.controlType === 'attachment' || field.type === 'link'; then linkBlock; else notLinkBlock\">\n </ng-container>\n <ng-template #linkBlock>\n <a [id]=\"field.key\" class=\"color-link body-sm pep-report-input readonly\"\n *ngIf=\"field.formattedValue != null\" title=\"{{ field.formattedValue }}\" target=\"_blank\"\n href=\"{{ field.value }}\">{{ field.formattedValue }}</a>\n </ng-template>\n <ng-template #notLinkBlock>\n <span [id]=\"field.key\" class=\"body-sm pep-report-input readonly\"\n title=\"{{ field.formattedValue }}\" [ngStyle]=\"{ color: field.textColor }\">{{\n field.formattedValue }}</span>\n </ng-template>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>", styles: [":host{display:grid}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6$1.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i6$1.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i5$2.PepCheckboxComponent, selector: "pep-checkbox", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "additionalValue", "form", "isActive", "showTitle", "renderTitle", "layoutType", "visible"], outputs: ["valueChange"] }, { kind: "component", type: i6.PepDateComponent, selector: "pep-date", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "visible", "minValue", "maxValue", "minDateValue", "maxDateValue", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i7$1.PepImageComponent, selector: "pep-image", inputs: ["key", "srcLarge", "src", "options", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "indicatorsField", "menuField", "hasCampaignField", "visible", "form", "uid", "showTitle", "renderTitle", "layoutType", "isActive", "sizeLimitMB", "acceptImagesType"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i9.PepQuantitySelectorComponent, selector: "pep-quantity-selector", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "allowDecimal", "additionalValue", "notificationInfo", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive", "styleType"], outputs: ["valueChange", "elementClick"] }, { kind: "component", type: i13.PepSignatureComponent, selector: "pep-signature", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "signatureURL", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange"] }, { kind: "component", type: i14.PepTextareaComponent, selector: "pep-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: PepInternalFieldGeneratorComponent, selector: "pep-internal-field-generator", inputs: ["field", "isActive", "uid", "form", "layoutType", "showTitle", "checkForChanges"], outputs: ["valueChange", "formValidationChange", "elementClick", "formValueChange", "formFieldClick"] }, { kind: "component", type: PepInternalButtonComponent, selector: "pep-internal-button", inputs: ["key", "value", "formattedValue", "label", "referenceObjectInternalType", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "layoutType"], outputs: ["elementClick", "valueChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1710
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalFormComponent, decorators: [{
1711
+ type: Component,
1712
+ args: [{ selector: 'pep-internal-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fieldset *ngIf=\"form\" [formGroup]=\"form\" [disabled]=\"isLocked\" class=\"pep-form\"\n [ngStyle]=\"{ 'background-color': layoutType == 'card' && data?.BackgroundColor }\">\n <!-- New Form -->\n <mat-grid-list *ngIf=\"layoutType == 'form'\" [cols]=\"columns\" [rowHeight]=\"rowHeight + 'rem'\"\n [gutterSize]=\"formGutterSize\">\n <mat-grid-tile *ngFor=\"let field of fields$ | async\" [rowspan]=\"field.rowSpan\" [colspan]=\"field.colSpan\">\n <pep-internal-field-generator *ngIf=\"field.controlType != 'placeholder'\" [form]=\"form\" [layoutType]=\"layoutType\"\n [checkForChanges]=\"checkForChanges\" [uid]=\"data?.UID\" [field]=\"field\" [showTitle]=\"showTitle\"\n (valueChange)=\"onValueChanged($event)\" (elementClick)=\"onClick($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\"\n (formValidationChange)=\"onFormValidationChanged($event)\">\n </pep-internal-field-generator>\n </mat-grid-tile>\n </mat-grid-list>\n\n <!-- Thumbnails -->\n <mat-grid-list *ngIf=\"layoutType == 'card'\" [cols]=\"columns\" [rowHeight]=\"rowHeight + 'rem'\"\n [gutterSize]=\"cardGutterSize\" class=\"card-spacing\">\n <mat-grid-tile *ngFor=\"let field of fields$ | async\" [rowspan]=\"field.rowSpan\" [colspan]=\"field.colSpan\"\n [ngStyle]=\"{ overflow: field.type == 'qs' ? 'unset' : 'hidden' }\">\n <pep-internal-field-generator *ngIf=\"field.controlType != 'placeholder'\" [form]=\"form\" [layoutType]=\"layoutType\"\n [ngClass]=\"{ 'lock-events': lockEvents }\" [isActive]=\"isActive\" [checkForChanges]=\"checkForChanges\"\n [uid]=\"data?.UID\" [field]=\"field\" [showTitle]=\"showTitle\" (valueChange)=\"onValueChanged($event)\"\n (elementClick)=\"onClick($event)\" (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\">\n </pep-internal-field-generator>\n </mat-grid-tile>\n </mat-grid-list>\n\n <ng-container *ngIf=\"layoutType == 'table'\">\n <ng-container *ngIf=\"isReport; then reportBlock; else notReportBlock\"></ng-container>\n <ng-template #reportBlock>\n <ng-container *ngTemplateOutlet=\"report\"></ng-container>\n </ng-template>\n <ng-template #notReportBlock>\n <div *ngFor=\"let field of fields$ | async; let j = index\" class=\"pull-left flip table-cell \"\n [ngClass]=\"['text-align-' + field.xAlignment]\" style=\"height: 100%\"\n [ngStyle]=\"{ width: (layout?.ControlFields)[j]?.calcColumnWidthString}\">\n <pep-internal-field-generator *ngIf=\"field.controlType != 'placeholder'\" [checkForChanges]=\"checkForChanges\"\n [uid]=\"data?.UID\" [field]=\"field\" [form]=\"form\" [layoutType]=\"layoutType\" [showTitle]=\"false\"\n (elementClick)=\"onClick($event)\" (valueChange)=\"onValueChanged($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\"\n [isActive]=\"isActive\">\n </pep-internal-field-generator>\n </div>\n </ng-template>\n </ng-container>\n\n <!------- For testing ------------\n {{ form.value | json }}\n {{ form.valid }}\n ---------------------------------->\n</fieldset>\n\n<ng-template #report>\n <div *ngFor=\"let field of fields$ | async; let j = index\" class=\"pull-left flip pep-report-fields\"\n [ngStyle]=\"{ width: (layout?.ControlFields)[j]?.calcColumnWidthString }\"\n [ngClass]=\"['text-align-' + field.xAlignment]\">\n <ng-container [ngSwitch]=\"field.controlType\">\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"data?.UID\" [form]=\"form\" [key]=\"field.key\"\n [src]=\"field.formattedValue\" [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-image>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\">\n </pep-signature>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [additionalValue]=\"field.additionalValue\" [layoutType]=\"layoutType\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [minValue]=\"field.minValue\" [maxValue]=\"field.maxValue\" [layoutType]=\"layoutType\">\n </pep-date>\n\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" (elementClick)=\"onClick($event)\">\n </pep-internal-button>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [maxFieldCharacters]=\"field.maxFieldCharacters\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\">\n </pep-textarea>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [id]=\"field.key\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"field.value\" [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\" (valueChange)=\"onValueChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"field.formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\">\n </ng-container>\n <ng-template #notEmptyBlock>\n <ng-container\n *ngIf=\"field.controlType === 'attachment' || field.type === 'link'; then linkBlock; else notLinkBlock\">\n </ng-container>\n <ng-template #linkBlock>\n <a [id]=\"field.key\" class=\"color-link body-sm pep-report-input readonly\"\n *ngIf=\"field.formattedValue != null\" title=\"{{ field.formattedValue }}\" target=\"_blank\"\n href=\"{{ field.value }}\">{{ field.formattedValue }}</a>\n </ng-template>\n <ng-template #notLinkBlock>\n <span [id]=\"field.key\" class=\"body-sm pep-report-input readonly\"\n title=\"{{ field.formattedValue }}\" [ngStyle]=\"{ color: field.textColor }\">{{\n field.formattedValue }}</span>\n </ng-template>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>", styles: [":host{display:grid}\n"] }]
1713
+ }], ctorParameters: function () { return [{ type: i1$2.PepDialogService }, { type: i1$1.PepCustomizationService }, { type: i1$1.PepLayoutService }, { type: i3$1.FormBuilder }, { type: i0.KeyValueDiffers }, { type: i4$1.TranslateService }]; }, propDecorators: { isInternal: [{
1714
+ type: Input
1715
+ }], isReport: [{
1716
+ type: Input
1717
+ }], layout: [{
1718
+ type: Input
1719
+ }], lockEvents: [{
1720
+ type: Input
1721
+ }], canEditObject: [{
1722
+ type: Input
1723
+ }], data: [{
1724
+ type: Input
1725
+ }], lockFields: [{
1726
+ type: Input
1727
+ }], isActive: [{
1728
+ type: Input
1729
+ }], layoutType: [{
1730
+ type: Input
1731
+ }], objectId: [{
1732
+ type: Input
1733
+ }], parentId: [{
1734
+ type: Input
1735
+ }], searchCode: [{
1736
+ type: Input
1737
+ }], showTitle: [{
1738
+ type: Input
1739
+ }], firstFieldAsLink: [{
1740
+ type: Input
1741
+ }], checkForChanges: [{
1742
+ type: Input
1743
+ }], valueChange: [{
1744
+ type: Output
1745
+ }], formValidationChange: [{
1746
+ type: Output
1747
+ }], fieldClick: [{
1748
+ type: Output
1749
+ }] } });
1750
+
1751
+ class PepInternalListComponent {
1752
+ constructor(element, layoutService, cd, renderer) {
1753
+ this.element = element;
1754
+ this.layoutService = layoutService;
1755
+ this.cd = cd;
1756
+ this.renderer = renderer;
1757
+ this.noDataFoundMsg = 'Items not found';
1758
+ this.hideAllSelectionInMulti = false;
1759
+ this.top = -1;
1760
+ this.objectId = '0';
1761
+ this.parentId = '0';
1762
+ this.searchCode = '0';
1763
+ // @Input() showTopBorder = false;
1764
+ this.supportResizing = true;
1765
+ this.parentScroll = null;
1766
+ this.disabled = false;
1767
+ this.disableEvents = false;
1768
+ this.disableSelectionItems = false;
1769
+ this.totalsRow = [];
1770
+ // @Output()
1771
+ // itemClick: EventEmitter<IPepListItemClickEvent> = new EventEmitter<IPepListItemClickEvent>();
1772
+ this.fieldClick = new EventEmitter();
1773
+ this.valueChange = new EventEmitter();
1774
+ this.uiControl = null;
1775
+ this.totalRows = -1;
1776
+ this.isTable = false;
1777
+ this.hasColumnWidthOfTypePercentage = true;
1778
+ this._items = null;
1779
+ // isCardView = false;
1780
+ this.itemsCounter = 0;
1781
+ this.showItems = true;
1782
+ this.SEPARATOR = ',';
1783
+ this.nativeWindow = null;
1784
+ this.selectedItemId = '';
1785
+ this.hoveredItemId = '';
1786
+ this.lockEvents = false;
1787
+ this.containerWidth = 0;
1788
+ this.deviceHasMouse = false;
1789
+ // headerIsInFocus = false;
1790
+ // For resize
1791
+ this.pressedColumn = '';
1792
+ this.startX = 0;
1793
+ this.startWidth = 0;
1794
+ this.tableStartWidth = 0;
1795
+ this.isUserSelected = false;
1796
+ this.checkForChanges = null;
1797
+ this.useVirtualScroll = true;
1798
+ this.nativeWindow = window;
1799
+ this.deviceHasMouse = this.layoutService.getDeviceHasMouse();
1800
+ this.layoutService.onMouseOver$.subscribe((deviceHasMouse) => {
1801
+ this.deviceHasMouse = deviceHasMouse;
1802
+ });
1803
+ }
1804
+ get items() {
1805
+ return this._items;
1806
+ }
1807
+ ngOnInit() {
1808
+ this.containerWidth = 0;
1809
+ }
1810
+ ngOnChanges(changes) {
1811
+ if (this.containerWidth <= 0) {
1812
+ this.setContainerWidth();
1813
+ }
1814
+ }
1815
+ ngOnDestroy() {
1816
+ // if (this.valueChange) {
1817
+ // this.valueChange.unsubscribe();
1818
+ // }
1819
+ // if (this.itemClick) {
1820
+ // this.itemClick.unsubscribe();
1821
+ // }
1822
+ // if (this.fieldClick) {
1823
+ // this.fieldClick.unsubscribe();
1824
+ // }
1825
+ }
1826
+ setContainerWidth() {
1827
+ const selectionCheckBoxWidth = 0;
1828
+ const rowHeight = 40; // the table row height (2.5rem * 16font-size).
1829
+ const style = window.getComputedStyle(this.element.nativeElement.parentElement);
1830
+ // The container-fluid class padding left + right + border
1831
+ const containerFluidSpacing = parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);
1832
+ const parentContainer = this.element.nativeElement.parentElement.parentElement > 0
1833
+ ? this.element.nativeElement.parentElement.parentElement
1834
+ : this.element.nativeElement.parentElement;
1835
+ // Calculate if vertical scroll should appear, if so set the scroll width. (this.totalRows + 1) + 1 is for the header row.
1836
+ const scrollWidth = parentContainer.clientHeight < rowHeight * (this.totalRows + 1)
1837
+ ? 18
1838
+ : 0; // 18 is the default scroll width.
1839
+ // The selectionCheckBoxWidth width + containerFluidSpacing + scrollWidth.
1840
+ const rowHeaderWidthToSub = containerFluidSpacing + selectionCheckBoxWidth + scrollWidth;
1841
+ this.containerWidth = parentContainer.offsetWidth - rowHeaderWidthToSub;
1842
+ }
1843
+ clear() {
1844
+ this.cleanItems();
1845
+ this.uiControl = null;
1846
+ }
1847
+ toggleItems(isVisible) {
1848
+ this.showItems = isVisible;
1849
+ this.lockEvents = !isVisible;
1850
+ }
1851
+ updateScrollItems(startIndex, endIndex, loadInChunks = true) {
1852
+ this.scrollItems = this.items.slice(startIndex, endIndex);
1853
+ }
1854
+ getUniqItemId(itemId, itemType = '') {
1855
+ return itemId + this.SEPARATOR + itemType;
1856
+ }
1857
+ setLayout() {
1858
+ if (this.totalRows === 0 ||
1859
+ !this.uiControl ||
1860
+ !this.uiControl.ControlFields ||
1861
+ this.uiControl.ControlFields.length === 0) {
1862
+ return;
1863
+ }
1864
+ this.uiControl.ControlFields.forEach((cf) => {
1865
+ if (cf.ColumnWidth === 0) {
1866
+ cf.ColumnWidth = 10;
1867
+ }
1868
+ if (this.isTable &&
1869
+ (cf.FieldType === FIELD_TYPE.Image ||
1870
+ // cf.FieldType === FIELD_TYPE.Indicators || ???
1871
+ cf.FieldType === FIELD_TYPE.Signature ||
1872
+ cf.FieldType === FIELD_TYPE.NumberIntegerQuantitySelector ||
1873
+ cf.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
1874
+ cf.FieldType === FIELD_TYPE.NumberIntegerForMatrix ||
1875
+ cf.FieldType === FIELD_TYPE.NumberRealForMatrix ||
1876
+ cf.FieldType === FIELD_TYPE.Package ||
1877
+ cf.ApiName === 'UnitsQuantity' ||
1878
+ cf.ApiName === 'QuantitySelector')) {
1879
+ cf.Layout.XAlignment = 3;
1880
+ }
1881
+ });
1882
+ if (!this.cd['destroyed']) {
1883
+ this.cd.detectChanges();
1884
+ }
1885
+ // Set the columns width.
1886
+ if (this.containerWidth <= 0) {
1887
+ this.setContainerWidth();
1888
+ }
1889
+ this.calcColumnsWidth();
1890
+ this.checkForChanges = new Date().getTime();
1891
+ }
1892
+ calcColumnsWidth() {
1893
+ const fixedMultiple = 3.78; // for converting em to pixel.
1894
+ const length = this.uiControl.ControlFields.length;
1895
+ const selectionCheckBoxWidth = 0;
1896
+ // Is table AND there is at least one column of width type of percentage.
1897
+ if (this.isTable) {
1898
+ if (this.uiControl && this.uiControl.ControlFields) {
1899
+ this.hasColumnWidthOfTypePercentage =
1900
+ this.uiControl.ControlFields.filter((cf) => cf.ColumnWidthType === 1).length === 0;
1901
+ }
1902
+ }
1903
+ // If the columns size is fixed and the total is small then the container change it to percentage.
1904
+ if (!this.hasColumnWidthOfTypePercentage) {
1905
+ const totalFixedColsWidth = this.uiControl.ControlFields.map((cf) => cf.ColumnWidth * fixedMultiple).reduce((sum, current) => sum + current);
1906
+ if (window.innerWidth > totalFixedColsWidth) {
1907
+ this.hasColumnWidthOfTypePercentage = true;
1908
+ }
1909
+ }
1910
+ let totalCalcColsWidth = 0;
1911
+ // Calc by percentage
1912
+ if (this.hasColumnWidthOfTypePercentage) {
1913
+ const totalColsWidth = this.uiControl.ControlFields.map((cf) => cf.ColumnWidth).reduce((sum, current) => sum + current);
1914
+ for (let index = 0; index < length; index++) {
1915
+ const uiControlField = this.uiControl
1916
+ .ControlFields[index];
1917
+ const calcColumnWidthPercentage = (100 / totalColsWidth) * uiControlField.ColumnWidth;
1918
+ uiControlField.calcColumnWidth = Math.floor((this.containerWidth * calcColumnWidthPercentage) / 100);
1919
+ if (index === length - 1) {
1920
+ uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
1921
+ 'calc(100% - ' + totalCalcColsWidth + 'px)'; // For 100%
1922
+ }
1923
+ else {
1924
+ uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
1925
+ uiControlField.calcColumnWidth + 'px';
1926
+ totalCalcColsWidth += uiControlField.calcColumnWidth;
1927
+ }
1928
+ }
1929
+ this.renderer.setStyle(this.element.nativeElement, 'width', 'inherit');
1930
+ }
1931
+ else {
1932
+ for (let index = 0; index < length; index++) {
1933
+ const uiControlField = this.uiControl
1934
+ .ControlFields[index];
1935
+ const currentFixedWidth = Math.floor(uiControlField.ColumnWidth * fixedMultiple);
1936
+ if (index === length - 1) {
1937
+ uiControlField.calcTitleColumnWidthString =
1938
+ currentFixedWidth + 'px';
1939
+ uiControlField.calcColumnWidthString =
1940
+ currentFixedWidth - 4 + 'px'; // -4 for the row padding.
1941
+ }
1942
+ else {
1943
+ uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
1944
+ currentFixedWidth + 'px';
1945
+ }
1946
+ totalCalcColsWidth += currentFixedWidth;
1947
+ }
1948
+ this.renderer.setStyle(this.element.nativeElement, 'width', totalCalcColsWidth + selectionCheckBoxWidth + 'px');
1949
+ }
1950
+ }
1951
+ initResizeData() {
1952
+ this.startX = 0;
1953
+ this.startWidth = 0;
1954
+ this.tableStartWidth = 0;
1955
+ this.pressedColumn = '';
1956
+ }
1957
+ onListResizeStart(event, columnKey) {
1958
+ this.pressedColumn = columnKey;
1959
+ this.startX = event.x;
1960
+ this.startWidth = event.target.closest('.header-column').offsetWidth;
1961
+ // Set the tableStartWidth to the container offsetWidth
1962
+ this.tableStartWidth = this.noVirtualScrollCont.nativeElement.offsetWidth;
1963
+ }
1964
+ onListResize(event) {
1965
+ if (this.pressedColumn.length > 0) {
1966
+ const widthToAdd = this.layoutService.isRtl()
1967
+ ? this.startX - event.x
1968
+ : event.x - this.startX;
1969
+ // Set the width of the column and the container of the whole columns.
1970
+ if (this.startWidth + widthToAdd >= 48 || widthToAdd > 0) {
1971
+ const length = this.uiControl.ControlFields.length;
1972
+ let totalCalcColsWidth = 0;
1973
+ for (let index = 0; index < length; index++) {
1974
+ const uiControlField = this.uiControl
1975
+ .ControlFields[index];
1976
+ if (index === length - 1) {
1977
+ // Calc the last column only in percentage type.
1978
+ if (this.hasColumnWidthOfTypePercentage) {
1979
+ uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
1980
+ 'calc(100% - ' + totalCalcColsWidth + 'px)'; // For 100%
1981
+ }
1982
+ else {
1983
+ if (uiControlField.ApiName === this.pressedColumn) {
1984
+ uiControlField.calcColumnWidth =
1985
+ this.startWidth + widthToAdd;
1986
+ uiControlField.calcTitleColumnWidthString =
1987
+ uiControlField.calcColumnWidth + 'px';
1988
+ uiControlField.calcColumnWidthString =
1989
+ uiControlField.calcColumnWidth - 4 + 'px';
1990
+ }
1991
+ }
1992
+ }
1993
+ else if (uiControlField.ApiName === this.pressedColumn) {
1994
+ uiControlField.calcColumnWidth =
1995
+ this.startWidth + widthToAdd;
1996
+ uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString =
1997
+ uiControlField.calcColumnWidth + 'px';
1998
+ }
1999
+ totalCalcColsWidth += uiControlField.calcColumnWidth;
2000
+ }
2001
+ this.renderer.setStyle(this.element.nativeElement, 'width', this.tableStartWidth + widthToAdd + 'px');
2002
+ }
2003
+ this.checkForChanges = new Date().getTime();
2004
+ }
2005
+ }
2006
+ getParent(el, parentSelector) {
2007
+ // If no parentSelector defined will bubble up all the way to *document*
2008
+ if (parentSelector === undefined) {
2009
+ parentSelector = document;
2010
+ }
2011
+ const parent = [];
2012
+ let p = el.parentNode;
2013
+ while (p &&
2014
+ p.className !== '' &&
2015
+ p.className.indexOf(parentSelector) === -1 &&
2016
+ parentSelector !== document) {
2017
+ const o = p;
2018
+ p = o.parentNode;
2019
+ }
2020
+ if (p.className.indexOf(parentSelector) > -1) {
2021
+ parent.push(p); // Push that parentSelector you wanted to stop at
2022
+ }
2023
+ return parent;
2024
+ }
2025
+ onListResizeEnd(event) {
2026
+ if (this.pressedColumn.length > 0) {
2027
+ if (event &&
2028
+ this.getParent(event.srcElement, 'resize-box').length > 0) {
2029
+ this.initResizeData();
2030
+ }
2031
+ else {
2032
+ setTimeout(() => {
2033
+ this.initResizeData();
2034
+ }, 0);
2035
+ }
2036
+ }
2037
+ }
2038
+ onListHeaderMouseEnter(event) {
2039
+ // this.headerIsInFocus = true;
2040
+ }
2041
+ onListHeaderMouseLeave(event) {
2042
+ // this.headerIsInFocus = false;
2043
+ this.onListResizeEnd(event);
2044
+ this.initResizeData();
2045
+ }
2046
+ onListChange(event) {
2047
+ if (this.disableEvents) {
2048
+ return;
2049
+ }
2050
+ // For other events do nothing.
2051
+ if (typeof event.start === 'undefined' ||
2052
+ typeof event.end === 'undefined') {
2053
+ return;
2054
+ }
2055
+ this.calculatedObjectHeight = event.calculatedChildHeight + 'px';
2056
+ if (!this.lockEvents) {
2057
+ this.toggleItems(false);
2058
+ this.updateScrollItems(event.start, event.end, false);
2059
+ this.toggleItems(true);
2060
+ }
2061
+ }
2062
+ getParentContainer() {
2063
+ return this.parentScroll ? this.parentScroll : window;
2064
+ }
2065
+ onValueChanged(valueChange) {
2066
+ if (this.disabled) {
2067
+ return;
2068
+ }
2069
+ this.valueChange.emit(valueChange);
2070
+ }
2071
+ onCustomizeFieldClick(customizeFieldClickedData) {
2072
+ if (this.disabled) {
2073
+ return;
2074
+ }
2075
+ this.fieldClick.emit(customizeFieldClickedData);
2076
+ }
2077
+ getIsDisabled(item) {
2078
+ if (this.disableSelectionItems) {
2079
+ return true;
2080
+ }
2081
+ else {
2082
+ const IsNotSelectableForActions = item && !item.IsSelectableForActions;
2083
+ return IsNotSelectableForActions;
2084
+ }
2085
+ }
2086
+ getIsItemSelected(itemId, itemType = '') {
2087
+ let isSelected = false;
2088
+ const uniqItemId = this.getUniqItemId(itemId, itemType);
2089
+ isSelected = uniqItemId === this.selectedItemId;
2090
+ return isSelected;
2091
+ }
2092
+ setItemClicked(itemId, isSelectableForActions, itemType, isChecked) {
2093
+ const uniqItemId = this.getUniqItemId(itemId, itemType);
2094
+ // select the selected item.
2095
+ if (isChecked) {
2096
+ // Set seleted item
2097
+ this.selectedItemId = uniqItemId;
2098
+ }
2099
+ else {
2100
+ if (this.selectedItemId === uniqItemId) {
2101
+ this.selectedItemId = '';
2102
+ }
2103
+ }
2104
+ }
2105
+ itemClicked(e, item) {
2106
+ // Set seleted item
2107
+ const itemId = item.UID.toString();
2108
+ const itemType = item.Type.toString();
2109
+ let isChecked = false;
2110
+ if (item && item.IsSelectableForActions) {
2111
+ this.selectedItemId = this.getUniqItemId(itemId, itemType);
2112
+ isChecked = true;
2113
+ }
2114
+ if (this.isTable) {
2115
+ this.setItemClicked(itemId, item.IsSelectableForActions, itemType, true);
2116
+ }
2117
+ else {
2118
+ if (this.disabled) {
2119
+ return;
2120
+ }
2121
+ }
2122
+ // this.itemClick.emit({ source: item, viewType: this.viewType });
2123
+ }
2124
+ onTableRowMouseEnter(event, itemId, itemType) {
2125
+ if (!this.deviceHasMouse) {
2126
+ return;
2127
+ }
2128
+ const uniqItemId = this.getUniqItemId(itemId, itemType);
2129
+ this.hoveredItemId = uniqItemId;
2130
+ }
2131
+ onTableRowMouseLeave(event, itemId, itemType) {
2132
+ this.hoveredItemId = '';
2133
+ }
2134
+ onCardMouseEnter(event, itemId, itemType) {
2135
+ if (!this.deviceHasMouse) {
2136
+ return;
2137
+ }
2138
+ const uniqItemId = this.getUniqItemId(itemId, itemType);
2139
+ this.hoveredItemId = uniqItemId;
2140
+ }
2141
+ onCardMouseLeave(event, itemId, itemType) {
2142
+ this.hoveredItemId = '';
2143
+ }
2144
+ // call this function after resize + animation end
2145
+ winResize(e) {
2146
+ this.containerWidth = 0;
2147
+ this.setLayout();
2148
+ }
2149
+ trackByFunc(index, item) {
2150
+ return item && item.UID ? item.UID : index;
2151
+ }
2152
+ cleanItems() {
2153
+ this.itemsCounter = 0;
2154
+ this._items =
2155
+ this.totalRows > 0 ? Array(this.totalRows) : [];
2156
+ this.scrollItems = [];
2157
+ this.calculatedObjectHeight = '';
2158
+ }
2159
+ getUIControl() {
2160
+ return this.uiControl;
2161
+ }
2162
+ initListData(uiControl, totalRows, items, viewType = 'table', itemClass = '') {
2163
+ this.viewType = viewType;
2164
+ this.isTable = viewType === 'table';
2165
+ // this.isCardView = viewType === 'cards';
2166
+ this.uiControl = uiControl;
2167
+ this.itemClass = itemClass;
2168
+ this.selectedItemId = '';
2169
+ this.totalRows = totalRows;
2170
+ // fix bug for the scrollTo that doesn't work on edge div , not window
2171
+ // const scrollingElement = this.getParentContainer();
2172
+ // scrollingElement.scrollTo(0, 0);
2173
+ this.cleanItems();
2174
+ this.updateItems(items);
2175
+ this.setLayout();
2176
+ }
2177
+ updateItems(items) {
2178
+ this.scrollItems = this._items = items;
2179
+ this.itemsCounter = items.length;
2180
+ }
2181
+ updateItem(data) {
2182
+ let index = 0;
2183
+ // Update items list
2184
+ index = this.items.findIndex((i) => i && i.UID === data.UID);
2185
+ if (index >= 0 && index < this.items.length) {
2186
+ this.items[index] = data;
2187
+ }
2188
+ // Update scrollItems list
2189
+ index = this.scrollItems.findIndex((i) => i && i.UID === data.UID);
2190
+ if (index >= 0 && index < this.scrollItems.length) {
2191
+ this.scrollItems[index] = data;
2192
+ this.checkForChanges = new Date().getTime();
2193
+ }
2194
+ }
2195
+ getIsItemEditable(uid) {
2196
+ const item = this.items.filter((x) => x.UID.toString() === uid);
2197
+ if (item.length > 0) {
2198
+ return item[0].IsEditable;
2199
+ }
2200
+ else {
2201
+ return false;
2202
+ }
2203
+ }
2204
+ getItemDataByID(uid) {
2205
+ return this.items.find((item) => item.UID.toString() === uid);
2206
+ }
2207
+ }
2208
+ PepInternalListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalListComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.PepLayoutService }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2209
+ PepInternalListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalListComponent, selector: "pep-internal-list", inputs: { noDataFoundMsg: "noDataFoundMsg", hideAllSelectionInMulti: "hideAllSelectionInMulti", top: "top", objectId: "objectId", parentId: "parentId", searchCode: "searchCode", supportResizing: "supportResizing", parentScroll: "parentScroll", disabled: "disabled", disableEvents: "disableEvents", disableSelectionItems: "disableSelectionItems", totalsRow: "totalsRow" }, outputs: { fieldClick: "fieldClick", valueChange: "valueChange" }, host: { listeners: { "window:resize": "winResize($event)" } }, viewQueries: [{ propertyName: "noVirtualScrollCont", first: true, predicate: ["noVirtualScrollCont"], descendants: true }, { propertyName: "tableHeader", first: true, predicate: ["tableHeader"], descendants: true }, { propertyName: "selectAllCB", first: true, predicate: ["selectAllCB"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"totalRows == 0\">\n <div class=\"pep-border-bottom\">\n <p class=\"title-xl no-data\">\n {{ (noDataFoundMsg ? noDataFoundMsg : 'LIST.NO_DATA_FOUND') | translate}}\n </p>\n </div>\n <div class=\"no-data-suggestions\">\n <p class=\"suggestions-title title-lg\">\n {{ 'LIST.NO_DATA_FOUND_SUGGESTIONS_TITLE' | translate}}\n </p>\n <ul class=\"suggestions-list body-lg\" [innerHtml]=\"'LIST.NO_DATA_FOUND_SUGGESTIONS_LIST' | translate\"></ul>\n </div>\n</ng-container>\n<ng-container *ngIf=\"totalRows > 0\">\n <div *ngIf=\"isTable\" #tableHeader class=\"table-header\" (mouseup)=\"onListResizeEnd($event)\"\n (mouseenter)=\"onListHeaderMouseEnter($event)\" (mouseleave)=\"onListHeaderMouseLeave($event)\"\n (mousemove)=\"onListResize($event)\">\n\n <div class=\"table-header-padding-top\"></div>\n <fieldset class=\"table-header-fieldset\">\n <fieldset>\n <div *ngFor=\"let field of uiControl?.ControlFields; let j = index\" class=\"header-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\" [ngClass]=\"{\n 'is-resizing': field.ApiName === pressedColumn,\n 'is-first': j === 0,\n 'is-last': j === uiControl?.ControlFields?.length - 1\n }\">\n <label *ngIf=\"field.Title != ''\" id=\"{{ field.ApiName }}\"\n class=\"header-label body-sm pull-left flip text-align-{{ field.Layout.XAlignment }}\"\n title=\"{{ field.Title }}\">\n {{ field.Title }}\n </label>\n <label *ngIf=\"field.Title == ''\" id=\"{{ field.ApiName }}\"\n class=\"header-label body-sm pull-left flip\">&nbsp;</label>\n\n <div *ngIf=\"supportResizing\" class=\"resize-box pull-right flip\"\n (mousedown)=\"onListResizeStart($event, field.ApiName)\">\n <div class=\"splitter\"></div>\n </div>\n </div>\n </fieldset>\n </fieldset>\n </div>\n\n <div #noVirtualScrollCont [ngClass]=\"{ 'table-body': isTable, 'cards-body': !isTable }\">\n <ng-container *ngTemplateOutlet=\"listData\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"listTotals\"></ng-container>\n</ng-container>\n\n<ng-template #listData>\n <ng-container *ngFor=\"let item of scrollItems; let i = index; let isFirst = first; trackBy: trackByFunc\">\n <ng-container *ngIf=\"isTable\">\n <div class=\"table-row\" (mouseenter)=\"onTableRowMouseEnter($event, item?.UID, item?.Type)\"\n (mouseleave)=\"onTableRowMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n selected: getIsItemSelected(item?.UID, item?.Type),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId\n }\"\n [ngStyle]=\"{ height: calculatedObjectHeight, visibility: showItems || item ? 'visible' : 'hidden' }\">\n <fieldset class=\"table-row-fieldset\" [ngStyle]=\"{ 'background-color': item?.BackgroundColor }\">\n <!-- [canEditObject]=\"!disabled && item?.IsEditable\" -->\n <pep-internal-form [checkForChanges]=\"checkForChanges\" [layout]=\"uiControl\" [data]=\"item\"\n [canEditObject]=\"!disabled\" [objectId]=\"objectId\" [parentId]=\"parentId\"\n [searchCode]=\"searchCode\" [lockEvents]=\"disableSelectionItems\" [layoutType]=\"'table'\"\n [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-internal-form>\n </fieldset>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!isTable\">\n <div [class]=\"itemClass\" (mouseenter)=\"onCardMouseEnter($event, item?.UID, item?.Type)\"\n (mouseleave)=\"onCardMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n selected: getIsItemSelected(item?.UID, item?.Type),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId,\n 'card-view': viewType === 'cards',\n 'line-view': viewType === 'lines'\n }\" class=\"pull-left flip\"\n [ngStyle]=\"{ height: calculatedObjectHeight, visibility: showItems || item ? 'visible' : 'hidden' }\">\n <!-- [canEditObject]=\"!disabled && item?.IsEditable\" -->\n <pep-internal-form [checkForChanges]=\"checkForChanges\" [layout]=\"uiControl\" [data]=\"item\"\n [canEditObject]=\"!disabled\" [objectId]=\" objectId\" [parentId]=\"parentId\" [searchCode]=\"searchCode\"\n [lockEvents]=\"disableSelectionItems\" [layoutType]=\"'card'\" [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-internal-form>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #listTotals>\n <div *ngIf=\"totalsRow?.length > 0 && totalsRow.length <= uiControl?.ControlFields.length\" class=\"table-total\">\n <fieldset class=\"table-header-fieldset\">\n <div *ngFor=\"let field of uiControl?.ControlFields; let j = index\" class=\"total-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\">\n <label class=\"total-label body-sm text-align-{{ field.Layout.XAlignment }}\">\n {{ totalsRow[j] }}\n </label>\n </div>\n </fieldset>\n </div>\n</ng-template>", styles: [":host{height:inherit;display:grid}.no-data{margin:var(--pep-spacing-2xl, 2rem) 0}.no-data-suggestions .suggestions-title{margin:var(--pep-spacing-lg, 1rem) 0 var(--pep-spacing-sm, .5rem)}.no-data-suggestions .suggestions-list{margin:0;padding:0;padding-inline-start:var(--pep-spacing-2xl, 2rem)}.table-header{top:0}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: PepInternalFormComponent, selector: "pep-internal-form", inputs: ["isInternal", "isReport", "layout", "lockEvents", "canEditObject", "data", "lockFields", "isActive", "layoutType", "objectId", "parentId", "searchCode", "showTitle", "firstFieldAsLink", "checkForChanges"], outputs: ["valueChange", "formValidationChange", "fieldClick"] }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }] });
2210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalListComponent, decorators: [{
2211
+ type: Component,
2212
+ args: [{ selector: 'pep-internal-list', host: {
2213
+ '(window:resize)': 'winResize($event)',
2214
+ }, template: "<ng-container *ngIf=\"totalRows == 0\">\n <div class=\"pep-border-bottom\">\n <p class=\"title-xl no-data\">\n {{ (noDataFoundMsg ? noDataFoundMsg : 'LIST.NO_DATA_FOUND') | translate}}\n </p>\n </div>\n <div class=\"no-data-suggestions\">\n <p class=\"suggestions-title title-lg\">\n {{ 'LIST.NO_DATA_FOUND_SUGGESTIONS_TITLE' | translate}}\n </p>\n <ul class=\"suggestions-list body-lg\" [innerHtml]=\"'LIST.NO_DATA_FOUND_SUGGESTIONS_LIST' | translate\"></ul>\n </div>\n</ng-container>\n<ng-container *ngIf=\"totalRows > 0\">\n <div *ngIf=\"isTable\" #tableHeader class=\"table-header\" (mouseup)=\"onListResizeEnd($event)\"\n (mouseenter)=\"onListHeaderMouseEnter($event)\" (mouseleave)=\"onListHeaderMouseLeave($event)\"\n (mousemove)=\"onListResize($event)\">\n\n <div class=\"table-header-padding-top\"></div>\n <fieldset class=\"table-header-fieldset\">\n <fieldset>\n <div *ngFor=\"let field of uiControl?.ControlFields; let j = index\" class=\"header-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\" [ngClass]=\"{\n 'is-resizing': field.ApiName === pressedColumn,\n 'is-first': j === 0,\n 'is-last': j === uiControl?.ControlFields?.length - 1\n }\">\n <label *ngIf=\"field.Title != ''\" id=\"{{ field.ApiName }}\"\n class=\"header-label body-sm pull-left flip text-align-{{ field.Layout.XAlignment }}\"\n title=\"{{ field.Title }}\">\n {{ field.Title }}\n </label>\n <label *ngIf=\"field.Title == ''\" id=\"{{ field.ApiName }}\"\n class=\"header-label body-sm pull-left flip\">&nbsp;</label>\n\n <div *ngIf=\"supportResizing\" class=\"resize-box pull-right flip\"\n (mousedown)=\"onListResizeStart($event, field.ApiName)\">\n <div class=\"splitter\"></div>\n </div>\n </div>\n </fieldset>\n </fieldset>\n </div>\n\n <div #noVirtualScrollCont [ngClass]=\"{ 'table-body': isTable, 'cards-body': !isTable }\">\n <ng-container *ngTemplateOutlet=\"listData\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"listTotals\"></ng-container>\n</ng-container>\n\n<ng-template #listData>\n <ng-container *ngFor=\"let item of scrollItems; let i = index; let isFirst = first; trackBy: trackByFunc\">\n <ng-container *ngIf=\"isTable\">\n <div class=\"table-row\" (mouseenter)=\"onTableRowMouseEnter($event, item?.UID, item?.Type)\"\n (mouseleave)=\"onTableRowMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n selected: getIsItemSelected(item?.UID, item?.Type),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId\n }\"\n [ngStyle]=\"{ height: calculatedObjectHeight, visibility: showItems || item ? 'visible' : 'hidden' }\">\n <fieldset class=\"table-row-fieldset\" [ngStyle]=\"{ 'background-color': item?.BackgroundColor }\">\n <!-- [canEditObject]=\"!disabled && item?.IsEditable\" -->\n <pep-internal-form [checkForChanges]=\"checkForChanges\" [layout]=\"uiControl\" [data]=\"item\"\n [canEditObject]=\"!disabled\" [objectId]=\"objectId\" [parentId]=\"parentId\"\n [searchCode]=\"searchCode\" [lockEvents]=\"disableSelectionItems\" [layoutType]=\"'table'\"\n [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-internal-form>\n </fieldset>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!isTable\">\n <div [class]=\"itemClass\" (mouseenter)=\"onCardMouseEnter($event, item?.UID, item?.Type)\"\n (mouseleave)=\"onCardMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n selected: getIsItemSelected(item?.UID, item?.Type),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId,\n 'card-view': viewType === 'cards',\n 'line-view': viewType === 'lines'\n }\" class=\"pull-left flip\"\n [ngStyle]=\"{ height: calculatedObjectHeight, visibility: showItems || item ? 'visible' : 'hidden' }\">\n <!-- [canEditObject]=\"!disabled && item?.IsEditable\" -->\n <pep-internal-form [checkForChanges]=\"checkForChanges\" [layout]=\"uiControl\" [data]=\"item\"\n [canEditObject]=\"!disabled\" [objectId]=\" objectId\" [parentId]=\"parentId\" [searchCode]=\"searchCode\"\n [lockEvents]=\"disableSelectionItems\" [layoutType]=\"'card'\" [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-internal-form>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #listTotals>\n <div *ngIf=\"totalsRow?.length > 0 && totalsRow.length <= uiControl?.ControlFields.length\" class=\"table-total\">\n <fieldset class=\"table-header-fieldset\">\n <div *ngFor=\"let field of uiControl?.ControlFields; let j = index\" class=\"total-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\">\n <label class=\"total-label body-sm text-align-{{ field.Layout.XAlignment }}\">\n {{ totalsRow[j] }}\n </label>\n </div>\n </fieldset>\n </div>\n</ng-template>", styles: [":host{height:inherit;display:grid}.no-data{margin:var(--pep-spacing-2xl, 2rem) 0}.no-data-suggestions .suggestions-title{margin:var(--pep-spacing-lg, 1rem) 0 var(--pep-spacing-sm, .5rem)}.no-data-suggestions .suggestions-list{margin:0;padding:0;padding-inline-start:var(--pep-spacing-2xl, 2rem)}.table-header{top:0}\n"] }]
2215
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.PepLayoutService }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { noDataFoundMsg: [{
2216
+ type: Input
2217
+ }], hideAllSelectionInMulti: [{
2218
+ type: Input
2219
+ }], top: [{
2220
+ type: Input
2221
+ }], objectId: [{
2222
+ type: Input
2223
+ }], parentId: [{
2224
+ type: Input
2225
+ }], searchCode: [{
2226
+ type: Input
2227
+ }], supportResizing: [{
2228
+ type: Input
2229
+ }], parentScroll: [{
2230
+ type: Input
2231
+ }], disabled: [{
2232
+ type: Input
2233
+ }], disableEvents: [{
2234
+ type: Input
2235
+ }], disableSelectionItems: [{
2236
+ type: Input
2237
+ }], totalsRow: [{
2238
+ type: Input
2239
+ }], fieldClick: [{
2240
+ type: Output
2241
+ }], valueChange: [{
2242
+ type: Output
2243
+ }], noVirtualScrollCont: [{
2244
+ type: ViewChild,
2245
+ args: ['noVirtualScrollCont']
2246
+ }], tableHeader: [{
2247
+ type: ViewChild,
2248
+ args: ['tableHeader']
2249
+ }], selectAllCB: [{
2250
+ type: ViewChild,
2251
+ args: ['selectAllCB']
2252
+ }] } });
2253
+
2254
+ class PepInternalPageComponent {
2255
+ constructor(dialogService, internalPageService, customizationService, changeDetectorRef) {
2256
+ this.dialogService = dialogService;
2257
+ this.internalPageService = internalPageService;
2258
+ this.customizationService = customizationService;
2259
+ this.changeDetectorRef = changeDetectorRef;
2260
+ this.controlType = 'internalPage';
2261
+ this.layoutType = 'form';
2262
+ this.internalFormFieldChange = new EventEmitter();
2263
+ this.internalFormFieldClick = new EventEmitter();
2264
+ this.checkForChanges = null;
2265
+ this.childData = null;
2266
+ this.totalsRow = [];
2267
+ this.additionalApiNames = null;
2268
+ this.currentAdditionalApiName = null;
2269
+ this.focusedQS = false;
2270
+ this.fieldIdWithFocus = '';
2271
+ this.columnWidth = 100;
2272
+ this.coverChildTable = false;
2273
+ this.currentViewType = null;
2274
+ this.sumOfMinColWidth = 0;
2275
+ this.totalRowsWidth = 0;
2276
+ this.viewWidth = '100%';
2277
+ this.viewHeight = 'auto';
2278
+ this.displayQSbtns = true;
2279
+ this.selectedApiName = '';
2280
+ this.showSort = false;
2281
+ this.defaultRowSpan = -1;
2282
+ }
2283
+ fillData(isInDialog = false) {
2284
+ var _a, _b, _c, _d, _e;
2285
+ const view = this.matrixTemplate.createEmbeddedView(null);
2286
+ (_a = this.customList) === null || _a === void 0 ? void 0 : _a.clear();
2287
+ (_b = this.orgCont) === null || _b === void 0 ? void 0 : _b.clear();
2288
+ if (isInDialog) {
2289
+ (_c = this.dialogCont) === null || _c === void 0 ? void 0 : _c.clear();
2290
+ (_d = this.dialogCont) === null || _d === void 0 ? void 0 : _d.insert(view);
2291
+ }
2292
+ else {
2293
+ (_e = this.orgCont) === null || _e === void 0 ? void 0 : _e.insert(view);
2294
+ }
2295
+ setTimeout(() => {
2296
+ const viewType = this.isTableView()
2297
+ ? 'table'
2298
+ : 'lines';
2299
+ this.customList.initListData(this.uiControl, this.childData.TotalRows, this.childData.Rows, viewType);
2300
+ this.setTotalsRow();
2301
+ // if (!this.childModal.isShown) {
2302
+ const childrenCount = this.childData.Rows
2303
+ ? this.childData.Rows.length
2304
+ : 0;
2305
+ const isEven = childrenCount % 2 === 0;
2306
+ // 3 for matrix & flat matrix because the header + total is 2 more rows.
2307
+ const rowsToAdd = this.isMatrixView() || this.isFlatMatrixView()
2308
+ ? isEven
2309
+ ? 3
2310
+ : 4
2311
+ : 1;
2312
+ const formRowHeight = this.customizationService.calculateFormFieldHeight() * 16; // convert rem to pixel
2313
+ // Set the default only if not set yet.
2314
+ if (this.defaultRowSpan === -1) {
2315
+ this.defaultRowSpan = this.field.rowSpan;
2316
+ }
2317
+ this.sumOfMinColWidth = 0;
2318
+ this.totalRowsWidth = 0;
2319
+ this.childData.UIControl.ControlFields.forEach((uiControlField) => {
2320
+ this.totalRowsWidth += uiControlField.ColumnWidth;
2321
+ uiControlField.minFieldWidth = this.mmToPx(12); // NEED TO GET THIS PARAM FROM CUSTOMIZATION;
2322
+ this.sumOfMinColWidth += 12;
2323
+ });
2324
+ this.setViewCover(this.childData.Rows);
2325
+ if (this.coverChildTable) {
2326
+ this.field.rowSpan = this.defaultRowSpan;
2327
+ }
2328
+ else {
2329
+ // For line view Add the height of the line (form height).
2330
+ if (this.currentViewType.Key === 'OrderCenterFlatMatrixLine') {
2331
+ const maxRow = Math.max(...this.uiControl.ControlFields.map((f) => {
2332
+ return f.Layout.Y + f.Layout.Height;
2333
+ }));
2334
+ // * 16 convert rem to pixel
2335
+ const cardRowsHeight = this.customizationService.calculateCardRowsHeight(maxRow) * 16;
2336
+ // maxRow * 24 + 60 - 24 for each row in card + 60 for the padding of each card.
2337
+ // const rowSpanToAdd = Math.floor(childrenCount * ((cardRowsHeight + 56) / formRowHeight) + rowsToAdd);
2338
+ // + 16 is the 1rem margin outside card.
2339
+ const rowSpanToAdd = (childrenCount * (cardRowsHeight + 16)) /
2340
+ formRowHeight +
2341
+ rowsToAdd;
2342
+ this.field.rowSpan = rowSpanToAdd;
2343
+ }
2344
+ else {
2345
+ // const tableRowsHeight = this.customizationService.calculateTableRowsHeight(childrenCount) * 16;
2346
+ // this.field.rowSpan = Math.ceil((tableRowsHeight + (rowsToAdd * 40)) / formRowHeight);
2347
+ // * 16 convert rem to pixel
2348
+ const rowsToAddHeight = this.customizationService.calculateTableRowsHeight(rowsToAdd, false) * 16;
2349
+ const tableRowsHeight = this.customizationService.calculateTableRowsHeight(childrenCount) * 16;
2350
+ this.field.rowSpan =
2351
+ (rowsToAddHeight + tableRowsHeight) / formRowHeight;
2352
+ }
2353
+ }
2354
+ }, 0);
2355
+ this.changeDetectorRef.markForCheck();
2356
+ }
2357
+ fillChildData(res) {
2358
+ this.childData = res;
2359
+ this.uiControl = res.UIControl;
2360
+ this.additionalApiNames = res.AdditionalApiNames;
2361
+ this.fillData();
2362
+ }
2363
+ mmToPx(mm) {
2364
+ const height = this.my1mm.nativeElement.clientHeight;
2365
+ return Math.floor(mm * height); // returns sizes in PX
2366
+ }
2367
+ isMatrixView() {
2368
+ return (this.currentViewType &&
2369
+ this.currentViewType.Key === 'OrderCenterMatrix');
2370
+ }
2371
+ isFlatMatrixView() {
2372
+ return (this.currentViewType &&
2373
+ this.currentViewType.Key === 'OrderCenterFlatMatrixGrid');
2374
+ }
2375
+ isTableView() {
2376
+ return this.isMatrixView() || this.isFlatMatrixView();
2377
+ }
2378
+ changeChildrenViewType(viewTypeKey) {
2379
+ this.rows = [];
2380
+ this.uiControl = null;
2381
+ for (const vt of this.childViewTypes) {
2382
+ if (vt.Key === viewTypeKey) {
2383
+ this.currentViewType = vt;
2384
+ break;
2385
+ }
2386
+ }
2387
+ this.currentViewTypeTitle = this.currentViewType.Value;
2388
+ this.internalPageService.changeChildrenViewType(this.currentViewType.Key, (res) => {
2389
+ if (res.Rows) {
2390
+ this.fillChildData(res);
2391
+ }
2392
+ });
2393
+ }
2394
+ setViewCover(rows) {
2395
+ if (!rows) {
2396
+ return;
2397
+ }
2398
+ const matrixCont = this.mainViewCont.nativeElement;
2399
+ const viewWidth = matrixCont.clientWidth;
2400
+ this.viewWidth = viewWidth ? viewWidth.toString() : '100%';
2401
+ // if the matrix located on the bottom / there is nothing under the matrix we dont need to check the height
2402
+ if (parseInt(viewWidth, 10) < this.mmToPx(this.sumOfMinColWidth)) {
2403
+ this.coverChildTable = true;
2404
+ }
2405
+ else {
2406
+ this.coverChildTable = false;
2407
+ }
2408
+ this.changeDetectorRef.markForCheck();
2409
+ }
2410
+ showMatrixDialog() {
2411
+ const config = this.dialogService.getDialogConfig({
2412
+ disableClose: false,
2413
+ }, 'large');
2414
+ const dialogRef = this.dialogService.openDialog(this.matrixDialogTemplate, {}, config);
2415
+ dialogRef.afterOpened().subscribe(() => {
2416
+ this.fillData(true);
2417
+ });
2418
+ dialogRef.afterClosed().subscribe((value) => {
2419
+ this.fillData(false);
2420
+ });
2421
+ }
2422
+ ngOnInit() {
2423
+ // let field = this.field as PepInternalPageField;
2424
+ this.internalPageService.initDetails(this.field.objectId, this.field.parentId, this.field.searchCode, (resViewTypes) => {
2425
+ // my code DI-7134
2426
+ resViewTypes.Rows = resViewTypes.Rows.filter((item) => item.Key !== 'OrderCenterView1');
2427
+ if (resViewTypes.Rows && resViewTypes.Rows.length > 0) {
2428
+ if (!resViewTypes.Default) {
2429
+ resViewTypes.Default = resViewTypes.Rows[0].Key;
2430
+ }
2431
+ this.childViewTypes = resViewTypes.Rows;
2432
+ this.currentViewType = resViewTypes.Rows[0];
2433
+ // for (var i = 0; i < resViewTypes.Rows.length; i++) {
2434
+ for (const viewTypeRow of resViewTypes.Rows) {
2435
+ if (viewTypeRow.Value === resViewTypes.Default) {
2436
+ this.currentViewType = viewTypeRow;
2437
+ }
2438
+ }
2439
+ this.loadLastAdditionalApiName();
2440
+ this.changeChildrenViewType(this.currentViewType.Key);
2441
+ }
2442
+ });
2443
+ this.resize = fromEvent(window, 'resize')
2444
+ .pipe(debounceTime(10))
2445
+ .subscribe((event) => {
2446
+ this.setViewCover(this.rows);
2447
+ });
2448
+ }
2449
+ loadLastAdditionalApiName() {
2450
+ const daa = sessionStorage.getItem(PepInternalPageComponent.CURRENT_ADDITIONAL_API_NAME);
2451
+ if (daa && daa.length > 0) {
2452
+ const additionalApiName = JSON.parse(daa);
2453
+ this.currentAdditionalApiName = additionalApiName;
2454
+ this.internalPageService.additionalApiName = additionalApiName === null || additionalApiName === void 0 ? void 0 : additionalApiName.Key;
2455
+ }
2456
+ }
2457
+ ngOnDestroy() {
2458
+ if (this.resize) {
2459
+ this.resize.unsubscribe();
2460
+ }
2461
+ }
2462
+ changeAdditionalApiName(additionalApiName) {
2463
+ this.internalPageService.changeAdditionalApiName(additionalApiName ? additionalApiName.Key : '', (res) => {
2464
+ // for (let index = 0; index < res.Rows.length; index++) {
2465
+ for (const row of res.Rows) {
2466
+ this.updateChanges(row);
2467
+ }
2468
+ this.changeDetectorRef.markForCheck();
2469
+ });
2470
+ sessionStorage.setItem(PepInternalPageComponent.CURRENT_ADDITIONAL_API_NAME, JSON.stringify(additionalApiName));
2471
+ setTimeout(() => {
2472
+ this.currentAdditionalApiName = additionalApiName;
2473
+ }, 0);
2474
+ }
2475
+ setTotalsRow() {
2476
+ this.totalsRow = [];
2477
+ if (this.isMatrixView() || this.isFlatMatrixView()) {
2478
+ let totalCol = 0;
2479
+ const items = this.customList.items;
2480
+ if (items) {
2481
+ for (let col = 0; col < items[0].Fields.length; col++) {
2482
+ const field = items[0].Fields[col];
2483
+ if (field.FieldType === FIELD_TYPE.NumberIntegerForMatrix ||
2484
+ field.FieldType ===
2485
+ FIELD_TYPE.NumberIntegerQuantitySelector ||
2486
+ field.FieldType === FIELD_TYPE.NumberRealForMatrix ||
2487
+ field.FieldType ===
2488
+ FIELD_TYPE.NumberRealQuantitySelector ||
2489
+ field.FieldType === FIELD_TYPE.CalculatedInt ||
2490
+ field.FieldType === FIELD_TYPE.NumberInteger ||
2491
+ field.FieldType === FIELD_TYPE.CalculatedReal ||
2492
+ field.FieldType === FIELD_TYPE.NumberReal) {
2493
+ totalCol = 0;
2494
+ for (const listItem of items) {
2495
+ if (listItem.Fields[col] &&
2496
+ listItem.Fields[col].Value) {
2497
+ const num = parseFloat(listItem.Fields[col].Value);
2498
+ totalCol += isNaN(num) ? 0 : num;
2499
+ }
2500
+ }
2501
+ this.totalsRow.push(totalCol);
2502
+ }
2503
+ else {
2504
+ this.totalsRow.push('');
2505
+ }
2506
+ }
2507
+ }
2508
+ }
2509
+ }
2510
+ updateChanges(elementToUpdate) {
2511
+ this.customList.updateItem(elementToUpdate);
2512
+ // Update memory data
2513
+ for (let index = 0; index < this.childData.Rows.length; index++) {
2514
+ if (this.childData.Rows[index].UID === elementToUpdate.UID) {
2515
+ this.childData.Rows[index] = elementToUpdate;
2516
+ }
2517
+ }
2518
+ }
2519
+ setValueCallback(id, res) {
2520
+ if (res.Rows.length === 1) {
2521
+ const field = res.Rows[0].Fields.find((f) => f.ApiName === 'ObjectMenu');
2522
+ if (field) {
2523
+ // HACK : Until "Enabled" returns from the server, we set PepMenu to be
2524
+ // Disabled in cart on regular items and not campign items.
2525
+ field.Enabled = true;
2526
+ }
2527
+ this.updateChanges(res.Rows[0]);
2528
+ }
2529
+ this.setTotalsRow();
2530
+ this.checkForChanges = new Date();
2531
+ // DI-15985
2532
+ this.internalFormFieldChange.emit(res);
2533
+ this.changeDetectorRef.markForCheck();
2534
+ }
2535
+ onCustomizeObjectChanged(customizeObjectChangedData) {
2536
+ this.internalPageService.childValueChanged(customizeObjectChangedData.id, customizeObjectChangedData.key, customizeObjectChangedData.value, (res) => {
2537
+ this.setValueCallback(customizeObjectChangedData.id, res);
2538
+ });
2539
+ }
2540
+ onCustomizeFieldClick(fieldClickEvent) {
2541
+ let handledEvent = false;
2542
+ // For the new custom form, the plus and minus events transform in the IPepFormFieldValueChangeEvent
2543
+ if (fieldClickEvent.controlType === 'qs') {
2544
+ if (fieldClickEvent.value === PepQuantitySelectorComponent.PLUS) {
2545
+ handledEvent = true;
2546
+ this.internalPageService.childPlusClick(fieldClickEvent.id, fieldClickEvent.key, (res) => {
2547
+ this.setValueCallback(fieldClickEvent.id, res);
2548
+ });
2549
+ }
2550
+ else if (fieldClickEvent.value === PepQuantitySelectorComponent.MINUS) {
2551
+ handledEvent = true;
2552
+ this.internalPageService.childMinusClick(fieldClickEvent.id, fieldClickEvent.key, (res) => {
2553
+ this.setValueCallback(fieldClickEvent.id, res);
2554
+ });
2555
+ }
2556
+ }
2557
+ if (!handledEvent) {
2558
+ this.internalFormFieldClick.emit(fieldClickEvent);
2559
+ }
2560
+ }
2561
+ }
2562
+ PepInternalPageComponent.CURRENT_ADDITIONAL_API_NAME = 'item_details_currentAdditionalApiName';
2563
+ PepInternalPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalPageComponent, deps: [{ token: i1$2.PepDialogService }, { token: PepInternalPageService }, { token: i1$1.PepCustomizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2564
+ PepInternalPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalPageComponent, selector: "pep-internal-page", inputs: { field: "field", layoutType: "layoutType" }, outputs: { internalFormFieldChange: "internalFormFieldChange", internalFormFieldClick: "internalFormFieldClick" }, providers: [PepInternalPageService], viewQueries: [{ propertyName: "my1mm", first: true, predicate: ["my1mm"], descendants: true }, { propertyName: "mainViewCont", first: true, predicate: ["mainViewCont"], descendants: true }, { propertyName: "orgCont", first: true, predicate: ["orgCont"], descendants: true, read: ViewContainerRef }, { propertyName: "dialogCont", first: true, predicate: ["dialogCont"], descendants: true, read: ViewContainerRef }, { propertyName: "matrixTemplate", first: true, predicate: ["matrixTemplate"], descendants: true }, { propertyName: "matrixDialogTemplate", first: true, predicate: ["matrixDialogTemplate"], descendants: true, read: TemplateRef }, { propertyName: "customList", first: true, predicate: PepInternalListComponent, descendants: true }], ngImport: i0, template: "<ng-template #matrixHeaderTemplate>\n <div class=\"matrix-title-container pep-border-bottom align-{{\n field.xAlignment\n }}\" title=\"{{ field.label }}\">\n <span class=\"block-with-text body-md\">{{ field.label }}</span>\n\n <div class=\"buttons-container pep-spacing-element-negative pull-right flip\">\n <ng-container *ngIf=\"\n currentViewType?.Key == 'OrderCenterMatrix' &&\n additionalApiNames &&\n additionalApiNames.length > 0\n \">\n <button class=\"pep-spacing-element pep-button icon-button sm weak\" mat-button [matMenuTriggerFor]=\"menu\"\n menu-blur>\n <span class=\"pull-left flip\" *ngIf=\"currentAdditionalApiName\">&nbsp;{{\n currentAdditionalApiName?.Value }}&nbsp;</span>\n\n <mat-icon [ngClass]=\"{'pull-left flip': currentAdditionalApiName}\">\n <pep-icon name=\"system_info\"></pep-icon>\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item [ngClass]=\"{\n selected: currentAdditionalApiName === null\n }\" (click)=\"changeAdditionalApiName(null)\">\n <span>{{ \"LIST.NONE\" | translate }}</span>\n </button>\n <button mat-menu-item [ngClass]=\"{\n selected:\n currentAdditionalApiName?.Key ==\n additionalApiName?.Key\n }\" *ngFor=\"let additionalApiName of additionalApiNames\"\n (click)=\"changeAdditionalApiName(additionalApiName)\">\n <span>{{ additionalApiName.Value }}</span>\n </button>\n </mat-menu>\n </ng-container>\n <ng-container *ngIf=\"childViewTypes && childViewTypes.length > 1\">\n <button class=\"pep-spacing-element pep-button icon-button sm weak\" mat-button\n [matMenuTriggerFor]=\"viewsMenu\" menu-blur>\n <mat-icon>\n <pep-icon name=\"view_card_md\"></pep-icon>\n </mat-icon>\n </button>\n\n <mat-menu #viewsMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item [ngClass]=\"{\n selected: currentViewType?.Key == viewType?.Key\n }\" *ngFor=\"let viewType of childViewTypes\" (click)=\"changeChildrenViewType(viewType?.Key)\">\n <mat-icon [ngSwitch]=\"viewType?.Key\">\n <pep-icon *ngSwitchCase=\"'OrderCenterMatrix'\" name=\"view_matrix\"></pep-icon>\n <pep-icon *ngSwitchCase=\"'OrderCenterFlatMatrixGrid'\" name=\"view_table\"></pep-icon>\n <pep-icon *ngSwitchCase=\"'OrderCenterFlatMatrixLine'\" name=\"view_line\"></pep-icon>\n </mat-icon>\n <span>{{ viewType?.Value }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n </div>\n\n</ng-template>\n\n<ng-template #matrixTemplate>\n <div #matrixContainer class=\"matrix-container\">\n <pep-internal-list (valueChange)=\"onCustomizeObjectChanged($event)\" [parentScroll]=\"matrixContainer\"\n (fieldClick)=\"onCustomizeFieldClick($event)\" [totalsRow]=\"totalsRow\"></pep-internal-list>\n </div>\n</ng-template>\n\n<div #mainViewCont id=\"mainViewCont\" [ngStyle]=\"{ 'max-width': viewWidth, 'max-height': viewHeight }\">\n <div #my1mm id=\"my1_mm\" style=\"height:1mm;width:1mm;visibility: hidden;\"></div>\n <ng-container *ngIf=\"coverChildTable && uiControl != null\">\n <div class=\"table-cover\"></div>\n <button (click)=\"showMatrixDialog()\" class=\"pep-button strong sm table-cover-button\"\n [ngClass]=\"{ 'lineview-btn': currentViewType?.Key == 'OrderCenterFlatMatrixLine'}\">\n {{ \"INTERNAL_PAGE.CLICK_TO_ORDER\" | translate }}\n </button>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"matrixHeaderTemplate\"></ng-container>\n <ng-container #orgCont></ng-container>\n</div>\n\n<ng-template #matrixDialogTemplate>\n\n <div mat-dialog-title>\n <ng-container *ngTemplateOutlet=\"matrixHeaderTemplate\"></ng-container>\n </div>\n\n <div mat-dialog-content>\n <ng-container #dialogCont></ng-container>\n </div>\n</ng-template>\n\n<!-- <div id=\"childGridModal\" bsModal (onShown)=\"onShown()\" (onHidden)=\"onHidden()\" #childModal=\"bs-modal\" class=\"modal\"\n tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"gridModalLabel\" aria-hidden=\"true\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body matrix-dialog-body\">\n <ng-container #modalCont></ng-container>\n </div>\n </div>\n </div>\n</div> -->", styles: [":host{display:grid;width:inherit;height:inherit}.matrix-title-container{padding:0;height:var(--pep-form-field-height, 2.5rem);display:flex;align-items:flex-end}.matrix-title-container .block-with-text{width:100%;max-height:inherit;font-weight:var(--pep-font-weight-bold, 600);display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.matrix-title-container .buttons-container{display:flex;align-self:center}.matrix-title-container .buttons-container .pepperi-button,.matrix-title-container .buttons-container .pep-button{width:max-content}#mainViewCont{width:100%;height:inherit;overflow:hidden;padding:0 var(--pep-spacing-xs, .25rem)}#mainViewCont .table-cover{background-color:#fff;z-index:98;position:absolute;top:0;width:100%;height:inherit;opacity:.5}#mainViewCont .table-cover-button{position:absolute;left:50%;transform:translate(-50%,-50%);top:calc(50% + var(--pep-form-field-height, 2.5rem));z-index:99}#mainViewCont .table-cover-button.lineview-btn{top:calc(2 * var(--pep-form-field-height, 2.5rem));transform:translate(-50%)}#mainViewCont .underCover{max-height:inherit;overflow:hidden}#mainViewCont ::ng-deep .table-header{top:unset!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: PepInternalListComponent, selector: "pep-internal-list", inputs: ["noDataFoundMsg", "hideAllSelectionInMulti", "top", "objectId", "parentId", "searchCode", "supportResizing", "parentScroll", "disabled", "disableEvents", "disableSelectionItems", "totalsRow"], outputs: ["fieldClick", "valueChange"] }, { kind: "pipe", type: i4$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2565
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalPageComponent, decorators: [{
2566
+ type: Component,
2567
+ args: [{ selector: 'pep-internal-page', providers: [PepInternalPageService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #matrixHeaderTemplate>\n <div class=\"matrix-title-container pep-border-bottom align-{{\n field.xAlignment\n }}\" title=\"{{ field.label }}\">\n <span class=\"block-with-text body-md\">{{ field.label }}</span>\n\n <div class=\"buttons-container pep-spacing-element-negative pull-right flip\">\n <ng-container *ngIf=\"\n currentViewType?.Key == 'OrderCenterMatrix' &&\n additionalApiNames &&\n additionalApiNames.length > 0\n \">\n <button class=\"pep-spacing-element pep-button icon-button sm weak\" mat-button [matMenuTriggerFor]=\"menu\"\n menu-blur>\n <span class=\"pull-left flip\" *ngIf=\"currentAdditionalApiName\">&nbsp;{{\n currentAdditionalApiName?.Value }}&nbsp;</span>\n\n <mat-icon [ngClass]=\"{'pull-left flip': currentAdditionalApiName}\">\n <pep-icon name=\"system_info\"></pep-icon>\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item [ngClass]=\"{\n selected: currentAdditionalApiName === null\n }\" (click)=\"changeAdditionalApiName(null)\">\n <span>{{ \"LIST.NONE\" | translate }}</span>\n </button>\n <button mat-menu-item [ngClass]=\"{\n selected:\n currentAdditionalApiName?.Key ==\n additionalApiName?.Key\n }\" *ngFor=\"let additionalApiName of additionalApiNames\"\n (click)=\"changeAdditionalApiName(additionalApiName)\">\n <span>{{ additionalApiName.Value }}</span>\n </button>\n </mat-menu>\n </ng-container>\n <ng-container *ngIf=\"childViewTypes && childViewTypes.length > 1\">\n <button class=\"pep-spacing-element pep-button icon-button sm weak\" mat-button\n [matMenuTriggerFor]=\"viewsMenu\" menu-blur>\n <mat-icon>\n <pep-icon name=\"view_card_md\"></pep-icon>\n </mat-icon>\n </button>\n\n <mat-menu #viewsMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item [ngClass]=\"{\n selected: currentViewType?.Key == viewType?.Key\n }\" *ngFor=\"let viewType of childViewTypes\" (click)=\"changeChildrenViewType(viewType?.Key)\">\n <mat-icon [ngSwitch]=\"viewType?.Key\">\n <pep-icon *ngSwitchCase=\"'OrderCenterMatrix'\" name=\"view_matrix\"></pep-icon>\n <pep-icon *ngSwitchCase=\"'OrderCenterFlatMatrixGrid'\" name=\"view_table\"></pep-icon>\n <pep-icon *ngSwitchCase=\"'OrderCenterFlatMatrixLine'\" name=\"view_line\"></pep-icon>\n </mat-icon>\n <span>{{ viewType?.Value }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n </div>\n\n</ng-template>\n\n<ng-template #matrixTemplate>\n <div #matrixContainer class=\"matrix-container\">\n <pep-internal-list (valueChange)=\"onCustomizeObjectChanged($event)\" [parentScroll]=\"matrixContainer\"\n (fieldClick)=\"onCustomizeFieldClick($event)\" [totalsRow]=\"totalsRow\"></pep-internal-list>\n </div>\n</ng-template>\n\n<div #mainViewCont id=\"mainViewCont\" [ngStyle]=\"{ 'max-width': viewWidth, 'max-height': viewHeight }\">\n <div #my1mm id=\"my1_mm\" style=\"height:1mm;width:1mm;visibility: hidden;\"></div>\n <ng-container *ngIf=\"coverChildTable && uiControl != null\">\n <div class=\"table-cover\"></div>\n <button (click)=\"showMatrixDialog()\" class=\"pep-button strong sm table-cover-button\"\n [ngClass]=\"{ 'lineview-btn': currentViewType?.Key == 'OrderCenterFlatMatrixLine'}\">\n {{ \"INTERNAL_PAGE.CLICK_TO_ORDER\" | translate }}\n </button>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"matrixHeaderTemplate\"></ng-container>\n <ng-container #orgCont></ng-container>\n</div>\n\n<ng-template #matrixDialogTemplate>\n\n <div mat-dialog-title>\n <ng-container *ngTemplateOutlet=\"matrixHeaderTemplate\"></ng-container>\n </div>\n\n <div mat-dialog-content>\n <ng-container #dialogCont></ng-container>\n </div>\n</ng-template>\n\n<!-- <div id=\"childGridModal\" bsModal (onShown)=\"onShown()\" (onHidden)=\"onHidden()\" #childModal=\"bs-modal\" class=\"modal\"\n tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"gridModalLabel\" aria-hidden=\"true\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body matrix-dialog-body\">\n <ng-container #modalCont></ng-container>\n </div>\n </div>\n </div>\n</div> -->", styles: [":host{display:grid;width:inherit;height:inherit}.matrix-title-container{padding:0;height:var(--pep-form-field-height, 2.5rem);display:flex;align-items:flex-end}.matrix-title-container .block-with-text{width:100%;max-height:inherit;font-weight:var(--pep-font-weight-bold, 600);display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.matrix-title-container .buttons-container{display:flex;align-self:center}.matrix-title-container .buttons-container .pepperi-button,.matrix-title-container .buttons-container .pep-button{width:max-content}#mainViewCont{width:100%;height:inherit;overflow:hidden;padding:0 var(--pep-spacing-xs, .25rem)}#mainViewCont .table-cover{background-color:#fff;z-index:98;position:absolute;top:0;width:100%;height:inherit;opacity:.5}#mainViewCont .table-cover-button{position:absolute;left:50%;transform:translate(-50%,-50%);top:calc(50% + var(--pep-form-field-height, 2.5rem));z-index:99}#mainViewCont .table-cover-button.lineview-btn{top:calc(2 * var(--pep-form-field-height, 2.5rem));transform:translate(-50%)}#mainViewCont .underCover{max-height:inherit;overflow:hidden}#mainViewCont ::ng-deep .table-header{top:unset!important}\n"] }]
2568
+ }], ctorParameters: function () { return [{ type: i1$2.PepDialogService }, { type: PepInternalPageService }, { type: i1$1.PepCustomizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { field: [{
2569
+ type: Input
2570
+ }], layoutType: [{
2571
+ type: Input
2572
+ }], internalFormFieldChange: [{
2573
+ type: Output
2574
+ }], internalFormFieldClick: [{
2575
+ type: Output
2576
+ }], my1mm: [{
2577
+ type: ViewChild,
2578
+ args: ['my1mm']
2579
+ }], mainViewCont: [{
2580
+ type: ViewChild,
2581
+ args: ['mainViewCont']
2582
+ }], orgCont: [{
2583
+ type: ViewChild,
2584
+ args: ['orgCont', { read: ViewContainerRef }]
2585
+ }], dialogCont: [{
2586
+ type: ViewChild,
2587
+ args: ['dialogCont', { read: ViewContainerRef }]
2588
+ }], matrixTemplate: [{
2589
+ type: ViewChild,
2590
+ args: ['matrixTemplate']
2591
+ }], matrixDialogTemplate: [{
2592
+ type: ViewChild,
2593
+ args: ['matrixDialogTemplate', { read: TemplateRef }]
2594
+ }], customList: [{
2595
+ type: ViewChild,
2596
+ args: [PepInternalListComponent]
2597
+ }] } });
2598
+
2599
+ class PepInternalCaruselService {
2600
+ constructor(httpService) {
2601
+ this.httpService = httpService;
2602
+ this.eventUrl = 'Service1.svc/v1/EmitEvent';
2603
+ }
2604
+ emitEvent(uiObjectKey, fieldKey, fieldValue, eventName, callbackFunc) {
2605
+ const body = {
2606
+ 'EventKey': eventName,
2607
+ 'EventData': JSON.stringify({
2608
+ UIObjectKey: uiObjectKey,
2609
+ FieldID: fieldKey,
2610
+ Value: fieldValue
2611
+ })
2612
+ };
2613
+ this.httpService.postWapiApiCall(`${this.eventUrl}`, body).subscribe((res) => {
2614
+ console.log(res);
2615
+ callbackFunc(res);
2616
+ }
2617
+ // (error) => {},
2618
+ // () => {}
2619
+ );
2620
+ }
2621
+ }
2622
+ PepInternalCaruselService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselService, deps: [{ token: i1$1.PepHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
2623
+ PepInternalCaruselService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselService });
2624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselService, decorators: [{
2625
+ type: Injectable
2626
+ }], ctorParameters: function () { return [{ type: i1$1.PepHttpService }]; } });
2627
+
2628
+ class PepInternalCaruselComponent {
2629
+ constructor(layoutService, internalCaruselService) {
2630
+ this.layoutService = layoutService;
2631
+ this.internalCaruselService = internalCaruselService;
2632
+ this.layoutType = 'form';
2633
+ this.internalFormFieldChange = new EventEmitter();
2634
+ this.internalFormFieldClick = new EventEmitter();
2635
+ this._items = null;
2636
+ this.layout = null;
2637
+ this.duration = 1000;
2638
+ this.itemsToMove = 3;
2639
+ this.prevDisabled = false;
2640
+ this.nextDisabled = false;
2641
+ this.PepScreenSizeType = PepScreenSizeType;
2642
+ }
2643
+ set field(value) {
2644
+ this._field = value;
2645
+ const caruselField = this._field;
2646
+ if (caruselField && caruselField.pageInfo) {
2647
+ this.layout = caruselField.pageInfo.UIControl;
2648
+ this.items = caruselField.pageInfo.Rows;
2649
+ }
2650
+ }
2651
+ get field() {
2652
+ return this._field;
2653
+ }
2654
+ set items(value) {
2655
+ this._items = value;
2656
+ // this.moveTo(0);
2657
+ }
2658
+ get items() {
2659
+ return this._items;
2660
+ }
2661
+ ngOnInit() {
2662
+ //
2663
+ }
2664
+ ngAfterViewInit() {
2665
+ this.layoutService.onResize$.subscribe((size) => {
2666
+ this.screenSize = size;
2667
+ });
2668
+ }
2669
+ onCustomizeObjectChanged(customizeObjectChangedData) {
2670
+ this.internalCaruselService.emitEvent(customizeObjectChangedData.uiObjectKey, customizeObjectChangedData.key, customizeObjectChangedData.value, 'SetFieldValue', () => {
2671
+ this.internalFormFieldChange.emit(customizeObjectChangedData);
2672
+ });
2673
+ }
2674
+ onCustomizeFieldClick(fieldClickEvent) {
2675
+ let handledEvent = false;
2676
+ // For the new custom form, the plus and minus events transform in the IPepFormFieldValueChangeEvent
2677
+ if (fieldClickEvent.controlType === 'qs') {
2678
+ if (fieldClickEvent.value === PepQuantitySelectorComponent.PLUS) {
2679
+ handledEvent = true;
2680
+ this.internalCaruselService.emitEvent(fieldClickEvent.uiObjectKey, fieldClickEvent.key, '', 'IncrementFieldValue', () => {
2681
+ this.internalFormFieldChange.emit({});
2682
+ });
2683
+ }
2684
+ else if (fieldClickEvent.value === PepQuantitySelectorComponent.MINUS) {
2685
+ handledEvent = true;
2686
+ this.internalCaruselService.emitEvent(fieldClickEvent.uiObjectKey, fieldClickEvent.key, '', 'DecrementFieldValue', () => {
2687
+ this.internalFormFieldChange.emit({});
2688
+ });
2689
+ }
2690
+ }
2691
+ if (!handledEvent) {
2692
+ this.internalFormFieldClick.emit(fieldClickEvent);
2693
+ }
2694
+ }
2695
+ moveLeft() {
2696
+ const indexToMove = Math.max(this.carousel.currIndex - this.itemsToMove, 0);
2697
+ this.moveTo(indexToMove);
2698
+ }
2699
+ moveRight() {
2700
+ const indexToMove = Math.min(this.carousel.currIndex + this.itemsToMove, this.items.length);
2701
+ this.moveTo(indexToMove);
2702
+ }
2703
+ moveTo(index) {
2704
+ if (this.carousel) {
2705
+ this.carousel.moveTo(index);
2706
+ }
2707
+ }
2708
+ onReachesLeftBound(event) {
2709
+ this.prevDisabled = event;
2710
+ }
2711
+ onReachesRightBound(event) {
2712
+ this.nextDisabled = event;
2713
+ }
2714
+ }
2715
+ PepInternalCaruselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselComponent, deps: [{ token: i1$1.PepLayoutService }, { token: PepInternalCaruselService }], target: i0.ɵɵFactoryTarget.Component });
2716
+ PepInternalCaruselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalCaruselComponent, selector: "pep-internal-carusel", inputs: { field: "field", layoutType: "layoutType" }, outputs: { internalFormFieldChange: "internalFormFieldChange", internalFormFieldClick: "internalFormFieldClick" }, providers: [PepInternalCaruselService], viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carousel"], descendants: true, read: PepCarouselComponent }], ngImport: i0, template: "<div class=\"carousel-container\">\n <ng-container *ngIf=\"items?.length > 0; then carouselBlock; else emptyBlock\"></ng-container>\n <ng-template #emptyBlock>\n <!-- No items -->\n </ng-template>\n <ng-template #carouselBlock>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_left_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"prevDisabled\" (click)=\"moveLeft()\" class=\"carousel-arrow start-arrow\">\n </pep-button>\n <pep-carousel #carousel [xWheelEnabled]=\"false\" [snapDuration]=\"duration\"\n (reachesLeftBound)=\"onReachesLeftBound($event)\" (reachesRightBound)=\"onReachesRightBound($event)\">\n <ng-container *ngFor=\"let item of items\">\n <pep-internal-form pepCarouselItem [layout]=\"layout\" [data]=\"item\" [layoutType]=\"'card'\" class=\"card-view \"\n (valueChange)=\"onCustomizeObjectChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\">\n </pep-internal-form>\n </ng-container>\n </pep-carousel>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_right_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"nextDisabled\" (click)=\"moveRight()\" class=\"carousel-arrow end-arrow\">\n </pep-button>\n </ng-template>\n</div>", styles: [".carousel-container{position:relative;margin:0;display:grid}.carousel-container .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1}.carousel-container .carousel-arrow.start-arrow{left:0}.carousel-container .carousel-arrow.end-arrow{right:0}.carousel-container ::ng-deep .carousel-content .card-view{padding:var(--pep-spacing-sm, .5rem) 0!important}.carousel-container ::ng-deep .carousel-content .card-view:first-child{padding-inline-start:var(--pep-spacing-sm, .5rem)!important}.carousel-container ::ng-deep .carousel-content .card-view:last-child{padding-inline-end:var(--pep-spacing-sm, .5rem)!important}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5$3.PepCarouselComponent, selector: "pep-carousel", inputs: ["scrollbarHidden", "disabled", "xDisabled", "yDisabled", "xWheelEnabled", "dragDisabled", "snapDisabled", "snapOffset", "snapDuration"], outputs: ["dsInitialized", "indexChanged", "reachesLeftBound", "reachesRightBound", "snapAnimationFinished", "dragStart", "dragEnd"] }, { kind: "directive", type: i5$3.PepCarouselItemDirective, selector: "[pepCarouselItem]", inputs: ["dragDisabled"] }, { kind: "component", type: PepInternalFormComponent, selector: "pep-internal-form", inputs: ["isInternal", "isReport", "layout", "lockEvents", "canEditObject", "data", "lockFields", "isActive", "layoutType", "objectId", "parentId", "searchCode", "showTitle", "firstFieldAsLink", "checkForChanges"], outputs: ["valueChange", "formValidationChange", "fieldClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2717
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselComponent, decorators: [{
2718
+ type: Component,
2719
+ args: [{ selector: 'pep-internal-carusel', providers: [PepInternalCaruselService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"carousel-container\">\n <ng-container *ngIf=\"items?.length > 0; then carouselBlock; else emptyBlock\"></ng-container>\n <ng-template #emptyBlock>\n <!-- No items -->\n </ng-template>\n <ng-template #carouselBlock>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_left_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"prevDisabled\" (click)=\"moveLeft()\" class=\"carousel-arrow start-arrow\">\n </pep-button>\n <pep-carousel #carousel [xWheelEnabled]=\"false\" [snapDuration]=\"duration\"\n (reachesLeftBound)=\"onReachesLeftBound($event)\" (reachesRightBound)=\"onReachesRightBound($event)\">\n <ng-container *ngFor=\"let item of items\">\n <pep-internal-form pepCarouselItem [layout]=\"layout\" [data]=\"item\" [layoutType]=\"'card'\" class=\"card-view \"\n (valueChange)=\"onCustomizeObjectChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\">\n </pep-internal-form>\n </ng-container>\n </pep-carousel>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_right_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"nextDisabled\" (click)=\"moveRight()\" class=\"carousel-arrow end-arrow\">\n </pep-button>\n </ng-template>\n</div>", styles: [".carousel-container{position:relative;margin:0;display:grid}.carousel-container .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1}.carousel-container .carousel-arrow.start-arrow{left:0}.carousel-container .carousel-arrow.end-arrow{right:0}.carousel-container ::ng-deep .carousel-content .card-view{padding:var(--pep-spacing-sm, .5rem) 0!important}.carousel-container ::ng-deep .carousel-content .card-view:first-child{padding-inline-start:var(--pep-spacing-sm, .5rem)!important}.carousel-container ::ng-deep .carousel-content .card-view:last-child{padding-inline-end:var(--pep-spacing-sm, .5rem)!important}\n"] }]
2720
+ }], ctorParameters: function () { return [{ type: i1$1.PepLayoutService }, { type: PepInternalCaruselService }]; }, propDecorators: { carousel: [{
2721
+ type: ViewChild,
2722
+ args: ['carousel', { read: PepCarouselComponent }]
2723
+ }], field: [{
2724
+ type: Input
2725
+ }], layoutType: [{
2726
+ type: Input
2727
+ }], internalFormFieldChange: [{
2728
+ type: Output
2729
+ }], internalFormFieldClick: [{
2730
+ type: Output
2731
+ }] } });
2732
+
2733
+ class PepFieldGeneratorComponent {
2734
+ constructor() {
2735
+ this.isActive = false;
2736
+ this.uid = null;
2737
+ this.layoutType = 'form';
2738
+ this.showTitle = true;
2739
+ this.checkForChanges = null;
2740
+ this.valueChange = new EventEmitter();
2741
+ this.formValidationChange = new EventEmitter();
2742
+ this.elementClick = new EventEmitter();
2743
+ this.internalFormFieldChange = new EventEmitter();
2744
+ this.internalFormFieldClick = new EventEmitter();
2745
+ this.formValueChange = new EventEmitter();
2746
+ this.formFieldClick = new EventEmitter();
2747
+ }
2748
+ set field(value) {
2749
+ this._field = value;
2750
+ }
2751
+ get field() {
2752
+ return this._field;
2753
+ }
2754
+ get isValid() {
2755
+ if (this.field.readonly || this.field.disabled) {
2756
+ return true;
2757
+ }
2758
+ else {
2759
+ const formControl = this.form && this.form.get(this.field.key);
2760
+ if (formControl) {
2761
+ return formControl.valid;
2762
+ }
2763
+ else {
2764
+ return false;
2765
+ }
2766
+ }
2767
+ }
2768
+ get isTouched() {
2769
+ const formControl = this.form && this.form.get(this.field.key);
2770
+ return formControl ? formControl.touched : false;
2771
+ }
2772
+ get isDirty() {
2773
+ const formControl = this.form && this.form.get(this.field.key);
2774
+ return formControl ? formControl.dirty : false;
2775
+ }
2776
+ ngOnDestroy() {
2777
+ //
2778
+ }
2779
+ onFileChanged(fileData, field) {
2780
+ const value = fileData ? JSON.stringify(fileData) : '';
2781
+ const fieldValueChange = {
2782
+ key: field.key,
2783
+ value: value,
2784
+ controlType: field.controlType,
2785
+ };
2786
+ this.valueChange.emit(fieldValueChange);
2787
+ }
2788
+ onAddressValueChanged(valueChange, field) {
2789
+ const fieldValueChange = {
2790
+ key: valueChange.key,
2791
+ value: valueChange.value,
2792
+ controlType: field.controlType,
2793
+ };
2794
+ this.valueChange.emit(fieldValueChange);
2795
+ }
2796
+ onValueChanged(value, field) {
2797
+ const fieldValueChange = {
2798
+ key: field.key,
2799
+ value: value.toString(),
2800
+ controlType: field.controlType,
2801
+ };
2802
+ this.valueChange.emit(fieldValueChange);
2803
+ }
2804
+ onInternalFormFieldChanged(internalFormFieldChange) {
2805
+ this.internalFormFieldChange.emit(internalFormFieldChange);
2806
+ }
2807
+ onFormValidationChanged(formValidationChange) {
2808
+ this.formValidationChange.emit(formValidationChange);
2809
+ }
2810
+ onClick(fieldClicked) {
2811
+ this.elementClick.emit(fieldClicked);
2812
+ }
2813
+ onInternalFormFieldClick(internalFormFieldClick) {
2814
+ this.internalFormFieldClick.emit(internalFormFieldClick);
2815
+ }
2816
+ onFormValueChanged(event) {
2817
+ this.formValueChange.emit(event);
2818
+ }
2819
+ onFormFieldClick(event) {
2820
+ this.formFieldClick.emit(event);
2821
+ }
2822
+ ngOnChanges(changes) {
2823
+ // debugger;
2824
+ // For testing.
2825
+ // this.field.disabled = this.field.readonly = false;
2826
+ }
2827
+ }
2828
+ PepFieldGeneratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFieldGeneratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2829
+ PepFieldGeneratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepFieldGeneratorComponent, selector: "pep-field-generator", inputs: { field: "field", isActive: "isActive", uid: "uid", form: "form", layoutType: "layoutType", showTitle: "showTitle", checkForChanges: "checkForChanges" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", elementClick: "elementClick", internalFormFieldChange: "internalFormFieldChange", internalFormFieldClick: "internalFormFieldClick", formValueChange: "formValueChange", formFieldClick: "formFieldClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"field.controlType\" [formGroup]=\"form\">\n\n <pep-address *ngSwitchCase=\"'address'\" [form]=\"form\" [key]=\"field.key\" [formattedValue]=\"field.formattedValue\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [groupFields]=\"field.groupFields\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (addressValueChange)=\"onAddressValueChanged($event, field)\">\n </pep-address>\n\n <pep-attachment *ngSwitchCase=\"'attachment'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-attachment>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [additionalValue]=\"field.additionalValue\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [minValue]=\"field.minValue\"\n [maxValue]=\"field.maxValue\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-date>\n\n <pep-images-filmstrip *ngSwitchCase=\"'images'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [showTitle]=\"showTitle\" [rowSpan]=\"field.rowSpan\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-images-filmstrip>\n\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.formattedValue\"\n [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [indicatorsField]=\"field.indicatorsField\" [menuField]=\"field.menuField\"\n [hasCampaignField]=\"field.hasCampaignField\" [sizeLimitMB]=\"field.sizeLimitMB\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-image>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [allowDecimal]=\"field.allowDecimal\"\n [additionalValue]=\"field.additionalValue\" [notificationInfo]=\"field.notificationInfo\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [showTitle]=\"showTitle\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <pep-rich-html-textarea *ngSwitchCase=\"'richhtmltextarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-rich-html-textarea>\n\n <pep-select *ngSwitchCase=\"'select'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [options]=\"field.options\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (valueChange)=\"onValueChanged($event, field)\"\n (formValidationChange)=\"onFormValidationChanged($event)\" [isActive]=\"isActive\">\n </pep-select>\n\n <pep-separator *ngSwitchCase=\"'separator'\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [xAlignment]=\"field.xAlignment\" [layoutType]=\"layoutType\" [visible]=\"field.visible\">\n </pep-separator>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [layoutType]=\"layoutType\"\n [visible]=\"field.visible\" (fileChange)=\"onFileChanged($event, field)\">\n </pep-signature>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-textarea>\n\n <pep-textbox *ngSwitchCase=\"'textbox'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [accessory]=\"field.accessory\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n [isActive]=\"isActive\" [visible]=\"field.visible\">\n </pep-textbox>\n\n <pep-link *ngSwitchCase=\"'link'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\" [visible]=\"field.visible\"\n (formValidationChange)=\"onFormValidationChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-link>\n\n <pep-indicators *ngSwitchCase=\"'indicators'\" [key]=\"field.key\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-indicators>\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\"\n [referenceObjectInternalType]=\"field.referenceObjectInternalType\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (valueChange)=\"onValueChanged($event, field)\">\n </pep-internal-button>\n <pep-internal-menu *ngSwitchCase=\"'menu'\" [key]=\"field.key\" [label]=\"field.label\" [disabled]=\"field.disabled\"\n [xAlignment]=\"field.xAlignment\" [options]=\"field.options\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-internal-menu>\n <pep-internal-page *ngSwitchCase=\"'internalPage'\" [field]=\"field\" [layoutType]=\"layoutType\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-page>\n\n <pep-internal-carusel *ngSwitchCase=\"'internalCarusel'\" [field]=\"field\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-carusel>\n\n <ng-container *ngSwitchCase=\"'placeholder'\">\n </ng-container>\n</ng-container>", styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3$2.PepAddressComponent, selector: "pep-address", inputs: ["key", "formattedValue", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "groupFields", "form", "layoutType", "visible"], outputs: ["addressValueChange"] }, { kind: "component", type: i4$3.PepAttachmentComponent, selector: "pep-attachment", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i5$2.PepCheckboxComponent, selector: "pep-checkbox", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "additionalValue", "form", "isActive", "showTitle", "renderTitle", "layoutType", "visible"], outputs: ["valueChange"] }, { kind: "component", type: i6.PepDateComponent, selector: "pep-date", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "visible", "minValue", "maxValue", "minDateValue", "maxDateValue", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i7$1.PepImageComponent, selector: "pep-image", inputs: ["key", "srcLarge", "src", "options", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "indicatorsField", "menuField", "hasCampaignField", "visible", "form", "uid", "showTitle", "renderTitle", "layoutType", "isActive", "sizeLimitMB", "acceptImagesType"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i8$1.PepImagesFilmstripComponent, selector: "pep-images-filmstrip", inputs: ["key", "value", "label", "xAlignment", "rowSpan", "form", "uid", "showTitle", "renderTitle", "layoutType", "currIndex", "showThumbnails"] }, { kind: "component", type: i9.PepQuantitySelectorComponent, selector: "pep-quantity-selector", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "allowDecimal", "additionalValue", "notificationInfo", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive", "styleType"], outputs: ["valueChange", "elementClick"] }, { kind: "component", type: i10.PepRichHtmlTextareaComponent, selector: "pep-rich-html-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType", "inlineMode", "toolbarOptions"], outputs: ["valueChange"] }, { kind: "component", type: i11.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "options", "visible", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "emptyOption", "renderTitle"], outputs: ["valueChange", "formValidationChange"] }, { kind: "component", type: i12.PepSeparatorComponent, selector: "pep-separator", inputs: ["key", "label", "xAlignment", "form", "layoutType", "visible"] }, { kind: "component", type: i13.PepSignatureComponent, selector: "pep-signature", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "signatureURL", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange"] }, { kind: "component", type: i14.PepTextareaComponent, selector: "pep-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i15.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "formattedValue", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey"], outputs: ["valueChange", "formValidationChange"] }, { kind: "component", type: i16.PepLinkComponent, selector: "pep-link", inputs: ["key", "value", "formattedValue", "label", "placeholder", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange", "formValidationChange", "elementClick"] }, { kind: "component", type: PepIndicatorsComponent, selector: "pep-indicators", inputs: ["key", "value", "layoutType"] }, { kind: "component", type: PepInternalButtonComponent, selector: "pep-internal-button", inputs: ["key", "value", "formattedValue", "label", "referenceObjectInternalType", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "layoutType"], outputs: ["elementClick", "valueChange"] }, { kind: "component", type: PepInternalMenuComponent, selector: "pep-internal-menu", inputs: ["key", "label", "disabled", "xAlignment", "options", "invertClass", "layoutType"], outputs: ["elementClick"] }, { kind: "component", type: PepInternalPageComponent, selector: "pep-internal-page", inputs: ["field", "layoutType"], outputs: ["internalFormFieldChange", "internalFormFieldClick"] }, { kind: "component", type: PepInternalCaruselComponent, selector: "pep-internal-carusel", inputs: ["field", "layoutType"], outputs: ["internalFormFieldChange", "internalFormFieldClick"] }, { kind: "pipe", type: i5.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFieldGeneratorComponent, decorators: [{
2831
+ type: Component,
2832
+ args: [{ selector: 'pep-field-generator', encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"field.controlType\" [formGroup]=\"form\">\n\n <pep-address *ngSwitchCase=\"'address'\" [form]=\"form\" [key]=\"field.key\" [formattedValue]=\"field.formattedValue\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [groupFields]=\"field.groupFields\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (addressValueChange)=\"onAddressValueChanged($event, field)\">\n </pep-address>\n\n <pep-attachment *ngSwitchCase=\"'attachment'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-attachment>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [additionalValue]=\"field.additionalValue\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [minValue]=\"field.minValue\"\n [maxValue]=\"field.maxValue\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-date>\n\n <pep-images-filmstrip *ngSwitchCase=\"'images'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [showTitle]=\"showTitle\" [rowSpan]=\"field.rowSpan\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-images-filmstrip>\n\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.formattedValue\"\n [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [indicatorsField]=\"field.indicatorsField\" [menuField]=\"field.menuField\"\n [hasCampaignField]=\"field.hasCampaignField\" [sizeLimitMB]=\"field.sizeLimitMB\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-image>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [allowDecimal]=\"field.allowDecimal\"\n [additionalValue]=\"field.additionalValue\" [notificationInfo]=\"field.notificationInfo\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [showTitle]=\"showTitle\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <pep-rich-html-textarea *ngSwitchCase=\"'richhtmltextarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-rich-html-textarea>\n\n <pep-select *ngSwitchCase=\"'select'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [options]=\"field.options\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (valueChange)=\"onValueChanged($event, field)\"\n (formValidationChange)=\"onFormValidationChanged($event)\" [isActive]=\"isActive\">\n </pep-select>\n\n <pep-separator *ngSwitchCase=\"'separator'\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [xAlignment]=\"field.xAlignment\" [layoutType]=\"layoutType\" [visible]=\"field.visible\">\n </pep-separator>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [layoutType]=\"layoutType\"\n [visible]=\"field.visible\" (fileChange)=\"onFileChanged($event, field)\">\n </pep-signature>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-textarea>\n\n <pep-textbox *ngSwitchCase=\"'textbox'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [accessory]=\"field.accessory\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n [isActive]=\"isActive\" [visible]=\"field.visible\">\n </pep-textbox>\n\n <pep-link *ngSwitchCase=\"'link'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\" [visible]=\"field.visible\"\n (formValidationChange)=\"onFormValidationChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-link>\n\n <pep-indicators *ngSwitchCase=\"'indicators'\" [key]=\"field.key\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-indicators>\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\"\n [referenceObjectInternalType]=\"field.referenceObjectInternalType\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (valueChange)=\"onValueChanged($event, field)\">\n </pep-internal-button>\n <pep-internal-menu *ngSwitchCase=\"'menu'\" [key]=\"field.key\" [label]=\"field.label\" [disabled]=\"field.disabled\"\n [xAlignment]=\"field.xAlignment\" [options]=\"field.options\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-internal-menu>\n <pep-internal-page *ngSwitchCase=\"'internalPage'\" [field]=\"field\" [layoutType]=\"layoutType\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-page>\n\n <pep-internal-carusel *ngSwitchCase=\"'internalCarusel'\" [field]=\"field\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-carusel>\n\n <ng-container *ngSwitchCase=\"'placeholder'\">\n </ng-container>\n</ng-container>", styles: [":host{width:100%;height:100%}\n"] }]
2833
+ }], propDecorators: { field: [{
2834
+ type: Input
2835
+ }], isActive: [{
2836
+ type: Input
2837
+ }], uid: [{
2838
+ type: Input
2839
+ }], form: [{
2840
+ type: Input
2841
+ }], layoutType: [{
2842
+ type: Input
2843
+ }], showTitle: [{
2844
+ type: Input
2845
+ }], checkForChanges: [{
2846
+ type: Input
2847
+ }], valueChange: [{
2848
+ type: Output
2849
+ }], formValidationChange: [{
2850
+ type: Output
2851
+ }], elementClick: [{
2852
+ type: Output
2853
+ }], internalFormFieldChange: [{
2854
+ type: Output
2855
+ }], internalFormFieldClick: [{
2856
+ type: Output
2857
+ }], formValueChange: [{
2858
+ type: Output
2859
+ }], formFieldClick: [{
2860
+ type: Output
2861
+ }] } });
2862
+
2863
+ class PepFormComponent {
2864
+ // eventServiceSub: Subscription;
2865
+ // public jsonLib = JSON;
2866
+ constructor(dialogService, customizationService, layoutService, fb, differs, translate) {
2867
+ this.dialogService = dialogService;
2868
+ this.customizationService = customizationService;
2869
+ this.layoutService = layoutService;
2870
+ this.fb = fb;
2871
+ this.translate = translate;
2872
+ this.isInternal = true;
2873
+ this.isReport = false;
2874
+ this.lockEvents = false;
2875
+ this.canEditObject = true;
2876
+ this._data = null;
2877
+ this.isActive = false;
2878
+ this.layoutType = 'card';
2879
+ // @Input() listType = '';
2880
+ this.objectId = '0';
2881
+ this.parentId = '0';
2882
+ this.searchCode = '0';
2883
+ this.showTitle = true;
2884
+ this.firstFieldAsLink = false;
2885
+ this.checkForChanges = null;
2886
+ this.valueChange = new EventEmitter();
2887
+ this.formValidationChange = new EventEmitter();
2888
+ this.fieldClick = new EventEmitter();
2889
+ this.internalFormFieldClick = new EventEmitter();
2890
+ this.internalFormFieldChange = new EventEmitter();
2891
+ this.isLocked = false;
2892
+ // payLoad = '';
2893
+ this.rows = [];
2894
+ this.fields = [];
2895
+ this._fieldsSubject = new BehaviorSubject([]);
2896
+ this.columns = 1;
2897
+ this.hasMenuFloatingOnOtherField = false;
2898
+ this.indicatorsDataField = null;
2899
+ this._shouldReloadForm = false;
2900
+ // store the initial value to compare with
2901
+ this.differ = differs.find({}).create();
2902
+ }
2903
+ set data(value) {
2904
+ const shouldReload = this.shouldReloadForm || !this._data;
2905
+ this._data = value;
2906
+ if (shouldReload) {
2907
+ this._shouldReloadForm = false;
2908
+ this.initForm();
2909
+ }
2910
+ else {
2911
+ this.updateForm();
2912
+ }
2913
+ }
2914
+ get data() {
2915
+ return this._data;
2916
+ }
2917
+ set lockFields(value) {
2918
+ this.isLocked = value;
2919
+ }
2920
+ get fields$() {
2921
+ return this._fieldsSubject.asObservable();
2922
+ }
2923
+ get shouldReloadForm() {
2924
+ return this._shouldReloadForm;
2925
+ }
2926
+ convertXAlignToHorizontalAlign(xAlign) {
2927
+ let res = DEFAULT_HORIZONTAL_ALIGNMENT;
2928
+ if (xAlign === X_ALIGNMENT_TYPE.None ||
2929
+ xAlign === X_ALIGNMENT_TYPE.Left) {
2930
+ res = 'left';
2931
+ }
2932
+ else if (xAlign === X_ALIGNMENT_TYPE.Right) {
2933
+ res = 'right';
2934
+ }
2935
+ else {
2936
+ res = 'center';
2937
+ }
2938
+ return res;
2939
+ }
2940
+ convertYAlignToVerticalAlign(yAlign) {
2941
+ let res = DEFAULT_VERTICAL_ALIGNMENT;
2942
+ if (yAlign === Y_ALIGNMENT_TYPE.None ||
2943
+ yAlign === Y_ALIGNMENT_TYPE.Top) {
2944
+ res = 'top';
2945
+ }
2946
+ else if (yAlign === Y_ALIGNMENT_TYPE.Bottom) {
2947
+ res = 'bottom';
2948
+ }
2949
+ else {
2950
+ res = 'middle';
2951
+ }
2952
+ return res;
2953
+ }
2954
+ convertOptionalValues(optionalValues) {
2955
+ if (optionalValues && optionalValues.length > 0) {
2956
+ return optionalValues.map((ov) => {
2957
+ return { key: ov.Key, value: ov.Value };
2958
+ });
2959
+ }
2960
+ else {
2961
+ return [];
2962
+ }
2963
+ }
2964
+ convertAddressFields(controlField, addressFields, canEditObject) {
2965
+ const fields = [];
2966
+ addressFields.forEach((field) => {
2967
+ let customField;
2968
+ const placeholder = field.ApiName;
2969
+ if (field.ApiName.toLowerCase().indexOf('street') >= 0) {
2970
+ customField = new PepTextboxField({
2971
+ key: field.ApiName,
2972
+ label: field.ApiName,
2973
+ type: 'text',
2974
+ placeholder,
2975
+ readonly: !canEditObject,
2976
+ disabled: !field.Enabled || !canEditObject,
2977
+ hidden: false,
2978
+ mandatory: false,
2979
+ value: field.Value,
2980
+ formattedValue: field.FormattedValue,
2981
+ row: 0,
2982
+ rowSpan: 1,
2983
+ col: 0,
2984
+ colSpan: 2,
2985
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
2986
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
2987
+ order: 0,
2988
+ });
2989
+ }
2990
+ else if (field.ApiName.toLowerCase().indexOf('city') >= 0) {
2991
+ customField = new PepTextboxField({
2992
+ key: field.ApiName,
2993
+ label: field.ApiName,
2994
+ type: 'text',
2995
+ placeholder,
2996
+ readonly: !canEditObject,
2997
+ disabled: !field.Enabled || !canEditObject,
2998
+ hidden: false,
2999
+ mandatory: false,
3000
+ value: field.Value,
3001
+ formattedValue: field.FormattedValue,
3002
+ row: 0,
3003
+ rowSpan: 1,
3004
+ col: 2,
3005
+ colSpan: 1,
3006
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
3007
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
3008
+ order: 1,
3009
+ });
3010
+ }
3011
+ else if (field.ApiName.toLowerCase().indexOf('state') >= 0) {
3012
+ customField = new PepSelectField({
3013
+ key: field.ApiName,
3014
+ label: field.ApiName,
3015
+ placeholder,
3016
+ options: this.convertOptionalValues(field.OptionalValues),
3017
+ readonly: !canEditObject,
3018
+ disabled: !field.Enabled || !canEditObject,
3019
+ hidden: false,
3020
+ mandatory: false,
3021
+ value: field.Value,
3022
+ formattedValue: field.FormattedValue,
3023
+ row: 1,
3024
+ rowSpan: 1,
3025
+ col: 0,
3026
+ colSpan: 1,
3027
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
3028
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
3029
+ order: 2,
3030
+ });
3031
+ }
3032
+ else if (field.ApiName.toLowerCase().indexOf('zipcode') >= 0) {
3033
+ customField = new PepTextboxField({
3034
+ key: field.ApiName,
3035
+ label: field.ApiName,
3036
+ type: 'text',
3037
+ placeholder,
3038
+ readonly: !canEditObject,
3039
+ disabled: !field.Enabled || !canEditObject,
3040
+ hidden: false,
3041
+ mandatory: false,
3042
+ value: field.Value,
3043
+ formattedValue: field.FormattedValue,
3044
+ row: 1,
3045
+ rowSpan: 1,
3046
+ col: 1,
3047
+ colSpan: 1,
3048
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
3049
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
3050
+ order: 3,
3051
+ });
3052
+ }
3053
+ else if (field.ApiName.toLowerCase().indexOf('country') >= 0) {
3054
+ customField = new PepSelectField({
3055
+ key: field.ApiName,
3056
+ label: field.ApiName,
3057
+ placeholder,
3058
+ options: this.convertOptionalValues(field.OptionalValues),
3059
+ readonly: !canEditObject,
3060
+ disabled: !field.Enabled || !canEditObject,
3061
+ hidden: false,
3062
+ mandatory: false,
3063
+ value: field.Value,
3064
+ formattedValue: field.FormattedValue,
3065
+ row: 2,
3066
+ rowSpan: 1,
3067
+ col: 2,
3068
+ colSpan: 1,
3069
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
3070
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
3071
+ order: 4,
3072
+ });
3073
+ }
3074
+ fields.push(customField);
3075
+ });
3076
+ return fields.sort((n1, n2) => n1.order > n2.order ? 1 : n1.order < n2.order ? -1 : 0);
3077
+ }
3078
+ isMatrixField(apiNameToCheck) {
3079
+ return apiNameToCheck.indexOf('Matrix') >= 0;
3080
+ }
3081
+ doesFieldHavaFloatingField(controlField, floatingField) {
3082
+ let hasFloatingField = false;
3083
+ if (floatingField.Layout.Y >= controlField.Layout.Y &&
3084
+ floatingField.Layout.Y <
3085
+ controlField.Layout.Y + controlField.Layout.Height &&
3086
+ floatingField.Layout.X >= controlField.Layout.X &&
3087
+ floatingField.Layout.X <
3088
+ controlField.Layout.X + controlField.Layout.Width) {
3089
+ hasFloatingField = true;
3090
+ }
3091
+ return hasFloatingField;
3092
+ }
3093
+ getOptionsForCustomField(controlField, dataField, canEditObject) {
3094
+ if (!controlField || !dataField) {
3095
+ return;
3096
+ }
3097
+ const placeholder = controlField.ReadOnly || !canEditObject ? '' : controlField.Title;
3098
+ return {
3099
+ key: controlField.ApiName,
3100
+ label: controlField.Title,
3101
+ accessory: dataField.Accessory,
3102
+ placeholder,
3103
+ readonly: controlField.ReadOnly || !canEditObject,
3104
+ disabled: !dataField.Enabled || !canEditObject,
3105
+ hidden: controlField.Hidden,
3106
+ mandatory: controlField.Mandatory,
3107
+ value: dataField.Value,
3108
+ formattedValue: dataField.FormattedValue,
3109
+ additionalValue: dataField.AdditionalValue,
3110
+ row: controlField.Layout.Y,
3111
+ rowSpan: controlField.Layout.Height,
3112
+ col: controlField.Layout.X,
3113
+ colSpan: controlField.Layout.Width,
3114
+ xAlignment: this.convertXAlignToHorizontalAlign(controlField.Layout.XAlignment),
3115
+ yAlignment: this.convertYAlignToVerticalAlign(controlField.Layout.YAlignment),
3116
+ options: this.convertOptionalValues(dataField.OptionalValues),
3117
+ groupFields: undefined,
3118
+ maxFieldCharacters: controlField.MaxFieldCharacters,
3119
+ minValue: controlField.MinValue,
3120
+ maxValue: controlField.MaxValue,
3121
+ // hasMenu: hasMenu,
3122
+ // hasCampaign: hasCampaign,
3123
+ // hasIndicators: hasIndicators,
3124
+ textColor: dataField.TextColor,
3125
+ visible: dataField.Visible,
3126
+ };
3127
+ }
3128
+ convertToCustomField(controlField, dataField, canEditObject, menuField, hasCampaignField, indicatorsField, objectId, parentId, searchCode) {
3129
+ let customField;
3130
+ const options = this.getOptionsForCustomField(controlField, dataField, canEditObject);
3131
+ if (controlField.ApiName === 'ObjectMenu') {
3132
+ options.type = 'menu';
3133
+ customField = new PepInternalMenuField(options);
3134
+ }
3135
+ else if (controlField.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
3136
+ controlField.FieldType ===
3137
+ FIELD_TYPE.NumberIntegerQuantitySelector ||
3138
+ controlField.ApiName === 'QuantitySelector' ||
3139
+ controlField.ApiName === 'UnitsQuantity' ||
3140
+ controlField.ApiName.indexOf('size_') === 0) {
3141
+ if (dataField.FieldType === FIELD_TYPE.InternalLink) {
3142
+ options.type = 'button';
3143
+ }
3144
+ else if (dataField.FieldType === FIELD_TYPE.Package) {
3145
+ options.type = 'packageButton';
3146
+ }
3147
+ else if (dataField.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
3148
+ dataField.FieldType === FIELD_TYPE.NumberReal) {
3149
+ options.type = 'qs';
3150
+ options.allowDecimal = true;
3151
+ }
3152
+ else if (dataField.FieldType ===
3153
+ FIELD_TYPE.NumberIntegerQuantitySelector ||
3154
+ dataField.FieldType === FIELD_TYPE.NumberInteger) {
3155
+ options.type = 'qs';
3156
+ options.allowDecimal = false;
3157
+ }
3158
+ else if (dataField.FieldType === FIELD_TYPE.NumberIntegerForMatrix) {
3159
+ options.type = 'qsForMatrix';
3160
+ options.allowDecimal = false;
3161
+ }
3162
+ else if (dataField.FieldType === FIELD_TYPE.NumberRealForMatrix) {
3163
+ options.type = 'qsForMatrix';
3164
+ options.allowDecimal = true;
3165
+ }
3166
+ options.notificationInfo = dataField.NotificationInfo;
3167
+ customField = new PepQuantitySelectorField(options);
3168
+ }
3169
+ else {
3170
+ // HACK: need to remove this..
3171
+ if (dataField.FieldType === FIELD_TYPE.Indicators &&
3172
+ this.isMatrixField(dataField.ApiName)) {
3173
+ dataField.FieldType = FIELD_TYPE.InternalPage;
3174
+ }
3175
+ switch (dataField.FieldType) {
3176
+ case FIELD_TYPE.Address: {
3177
+ const canEditGroupObject = controlField.ReadOnly
3178
+ ? false
3179
+ : canEditObject;
3180
+ options.groupFields = this.convertAddressFields(controlField, dataField.GroupFields, canEditGroupObject);
3181
+ customField = new PepAddressField(options);
3182
+ break;
3183
+ }
3184
+ case FIELD_TYPE.Indicators: {
3185
+ // options['type'] = 'indicators'; // Not needed this is PepIndicatorsField.
3186
+ customField = new PepIndicatorsField(options);
3187
+ break;
3188
+ }
3189
+ case FIELD_TYPE.InternalPage: {
3190
+ if (this.isMatrixField(controlField.ApiName)) {
3191
+ options.rowSpan = controlField.Layout.Height;
3192
+ options.objectId = objectId;
3193
+ options.parentId = parentId;
3194
+ options.searchCode = searchCode;
3195
+ customField = new PepInternalPageField(options);
3196
+ }
3197
+ else {
3198
+ // Not supported
3199
+ }
3200
+ break;
3201
+ }
3202
+ case FIELD_TYPE.RelatedObjectsCards: {
3203
+ options.rowSpan = controlField.Layout.Height;
3204
+ options.searchCode = searchCode;
3205
+ options.pageInfo = dataField.UIPageInfo;
3206
+ customField = new PepInternalCaruselField(options);
3207
+ break;
3208
+ }
3209
+ case FIELD_TYPE.Link: {
3210
+ options.type = 'link';
3211
+ customField = new PepLinkField(options);
3212
+ break;
3213
+ }
3214
+ case FIELD_TYPE.InternalLink:
3215
+ case FIELD_TYPE.Button: {
3216
+ options.type = 'button';
3217
+ customField = new PepInternalButtonField(options);
3218
+ break;
3219
+ }
3220
+ case FIELD_TYPE.Attachment: {
3221
+ // options.type = 'attachment';
3222
+ customField = new PepAttachmentField(options);
3223
+ break;
3224
+ }
3225
+ case FIELD_TYPE.Signature: {
3226
+ // options.type = 'signature';
3227
+ customField = new PepSignatureField(options);
3228
+ break;
3229
+ }
3230
+ case FIELD_TYPE.Image:
3231
+ case FIELD_TYPE.ImageURL: {
3232
+ // options.type = 'image';
3233
+ options.menuField =
3234
+ menuField &&
3235
+ this.doesFieldHavaFloatingField(controlField, menuField)
3236
+ ? menuField
3237
+ : null;
3238
+ options.hasCampaignField =
3239
+ hasCampaignField &&
3240
+ this.doesFieldHavaFloatingField(controlField, hasCampaignField)
3241
+ ? hasCampaignField
3242
+ : null;
3243
+ options.indicatorsField =
3244
+ indicatorsField &&
3245
+ this.doesFieldHavaFloatingField(controlField, indicatorsField)
3246
+ ? indicatorsField
3247
+ : null;
3248
+ customField = new PepImageField(options);
3249
+ break;
3250
+ }
3251
+ case FIELD_TYPE.Images: {
3252
+ // options.type = 'images';
3253
+ customField = new PepImagesField(options);
3254
+ break;
3255
+ }
3256
+ case FIELD_TYPE.Email: {
3257
+ options.type = 'email';
3258
+ customField = new PepLinkField(options);
3259
+ break;
3260
+ }
3261
+ case FIELD_TYPE.Phone: {
3262
+ options.type = 'phone';
3263
+ customField = new PepLinkField(options);
3264
+ break;
3265
+ }
3266
+ case FIELD_TYPE.Duration: {
3267
+ options.type = 'duration';
3268
+ customField = new PepTextboxField(options);
3269
+ break;
3270
+ }
3271
+ case FIELD_TYPE.Default:
3272
+ case FIELD_TYPE.TextBox:
3273
+ case FIELD_TYPE.LimitedLengthTextBox:
3274
+ case FIELD_TYPE.TextHeader:
3275
+ case FIELD_TYPE.CalculatedString:
3276
+ case FIELD_TYPE.MapDataString: {
3277
+ customField = new PepTextboxField(options);
3278
+ break;
3279
+ }
3280
+ case FIELD_TYPE.TextArea: {
3281
+ customField = new PepTextareaField(options);
3282
+ break;
3283
+ }
3284
+ case FIELD_TYPE.RichTextHTML: {
3285
+ customField = new PepRichHtmlTextareaField(options);
3286
+ break;
3287
+ }
3288
+ case FIELD_TYPE.Date:
3289
+ case FIELD_TYPE.LimitedDate:
3290
+ case FIELD_TYPE.CalculatedDate:
3291
+ case FIELD_TYPE.DateAndTime: {
3292
+ options.type =
3293
+ dataField.FieldType === FIELD_TYPE.DateAndTime
3294
+ ? 'datetime'
3295
+ : 'date';
3296
+ customField = new PepDateField(options);
3297
+ break;
3298
+ }
3299
+ case FIELD_TYPE.NumberInteger:
3300
+ case FIELD_TYPE.CalculatedInt:
3301
+ case FIELD_TYPE.MapDataInt: {
3302
+ options.type = 'int';
3303
+ customField = new PepTextboxField(options);
3304
+ break;
3305
+ }
3306
+ case FIELD_TYPE.Percentage: {
3307
+ options.type = 'percentage';
3308
+ customField = new PepTextboxField(options);
3309
+ break;
3310
+ }
3311
+ case FIELD_TYPE.Currency: {
3312
+ options.type = 'currency';
3313
+ customField = new PepTextboxField(options);
3314
+ break;
3315
+ }
3316
+ case FIELD_TYPE.NumberReal:
3317
+ case FIELD_TYPE.CalculatedReal:
3318
+ case FIELD_TYPE.MapDataReal:
3319
+ case FIELD_TYPE.Sum:
3320
+ case FIELD_TYPE.Totals: {
3321
+ options.type = 'real';
3322
+ customField = new PepTextboxField(options);
3323
+ break;
3324
+ }
3325
+ case FIELD_TYPE.Boolean:
3326
+ case FIELD_TYPE.CalculatedBool: {
3327
+ customField = new PepCheckboxField(options);
3328
+ break;
3329
+ }
3330
+ case FIELD_TYPE.BooleanText: {
3331
+ options.type = 'booleanText';
3332
+ customField = new PepCheckboxField(options);
3333
+ break;
3334
+ }
3335
+ case FIELD_TYPE.ComboBox:
3336
+ case FIELD_TYPE.EmptyComboBox:
3337
+ case FIELD_TYPE.MapDataDropDown: {
3338
+ // options.type = 'select';
3339
+ customField = new PepSelectField(options);
3340
+ break;
3341
+ }
3342
+ case FIELD_TYPE.MultiTickBox:
3343
+ case FIELD_TYPE.MultiTickBoxToComboBox:
3344
+ case FIELD_TYPE.EmptyMultiTickBox: {
3345
+ options.type = 'multi';
3346
+ customField = new PepSelectField(options);
3347
+ break;
3348
+ }
3349
+ case FIELD_TYPE.GuidReferenceType: {
3350
+ options.type = 'reference';
3351
+ options.referenceObjectType = dataField.ReferenceObjectType;
3352
+ options.referenceObjectSubType =
3353
+ dataField.ReferenceObjectSubType;
3354
+ options.referenceObjectInternalType =
3355
+ dataField.ReferenceObjectInternalType;
3356
+ customField = new PepInternalButtonField(options);
3357
+ break;
3358
+ }
3359
+ case FIELD_TYPE.ListOfObjects: {
3360
+ options.type = 'listofobjects';
3361
+ customField = new PepInternalButtonField(options);
3362
+ break;
3363
+ }
3364
+ case FIELD_TYPE.Separator: {
3365
+ customField = new PepSeparatorField(options);
3366
+ break;
3367
+ }
3368
+ /*
3369
+ case FIELD_TYPE.Images: return that.field(value);
3370
+ */
3371
+ case FIELD_TYPE.NumberRealQuantitySelector:
3372
+ case FIELD_TYPE.NumberIntegerQuantitySelector: {
3373
+ options.type = 'qs';
3374
+ options.allowDecimal =
3375
+ dataField.FieldType ===
3376
+ FIELD_TYPE.NumberRealQuantitySelector;
3377
+ options.notificationInfo = dataField.NotificationInfo;
3378
+ customField = new PepQuantitySelectorField(options);
3379
+ break;
3380
+ }
3381
+ case FIELD_TYPE.Package: {
3382
+ options.type = 'packageButton';
3383
+ options.notificationInfo = dataField.NotificationInfo;
3384
+ customField = new PepQuantitySelectorField(options);
3385
+ break;
3386
+ }
3387
+ }
3388
+ }
3389
+ if (!customField) {
3390
+ options.label = controlField.ApiName + ' is not supported!!!';
3391
+ customField = new PepSeparatorField(options);
3392
+ }
3393
+ return customField;
3394
+ }
3395
+ getFieldFormattedValue(field) {
3396
+ let fieldFormattedValue = field.formattedValue;
3397
+ // Fix for the custom check box component.
3398
+ if (field.controlType === 'checkbox') {
3399
+ fieldFormattedValue = fieldFormattedValue === 'true';
3400
+ }
3401
+ // Fix for the custom button component.
3402
+ if (field.controlType === 'button') {
3403
+ fieldFormattedValue =
3404
+ fieldFormattedValue === '0' ? '' : fieldFormattedValue;
3405
+ }
3406
+ return fieldFormattedValue;
3407
+ }
3408
+ toControlGroup(fields) {
3409
+ const group = {};
3410
+ if (fields && fields.length > 0) {
3411
+ fields.forEach((field) => {
3412
+ if (field.groupFields && field.groupFields.length > 0) {
3413
+ const subGroup = {};
3414
+ field.groupFields.forEach((groupField) => {
3415
+ if (groupField.mandatory &&
3416
+ !field.readonly &&
3417
+ !field.disabled) {
3418
+ subGroup[groupField.key] = [
3419
+ {
3420
+ value: groupField.formattedValue || '',
3421
+ disabled: field.readonly ||
3422
+ field.disabled ||
3423
+ groupField.disabled,
3424
+ },
3425
+ [Validators.required],
3426
+ ];
3427
+ }
3428
+ else {
3429
+ subGroup[groupField.key] = [
3430
+ {
3431
+ value: groupField.formattedValue || '',
3432
+ disabled: field.readonly ||
3433
+ field.disabled ||
3434
+ groupField.disabled,
3435
+ },
3436
+ [Validators.nullValidator],
3437
+ ];
3438
+ }
3439
+ });
3440
+ group[field.key] = this.fb.group(subGroup);
3441
+ }
3442
+ else {
3443
+ const validators = field.getValidators();
3444
+ const fieldFormattedValue = this.getFieldFormattedValue(field);
3445
+ group[field.key] = [
3446
+ {
3447
+ value: fieldFormattedValue || '',
3448
+ disabled: field.disabled,
3449
+ },
3450
+ validators,
3451
+ ];
3452
+ }
3453
+ });
3454
+ }
3455
+ return this.fb.group(group);
3456
+ }
3457
+ createBaseField(uiControlField, dataField) {
3458
+ const customField = this.convertToCustomField(uiControlField, dataField, this.canEditObject, this.menuDataField, this.hasCampaignDataField, this.indicatorsDataField, this.objectId, this.parentId, this.searchCode);
3459
+ return customField;
3460
+ }
3461
+ showFormValidationMessage() {
3462
+ const fields = this.fields;
3463
+ let emptyMandatoryFieldsMsg = '';
3464
+ let notValidFieldsMsg = '';
3465
+ // for (let i: number = 0; i < fields.length; i++) {
3466
+ // let field = fields[i];
3467
+ for (const field of fields) {
3468
+ const formControl = this.form && this.form.get(field.key);
3469
+ if (formControl) {
3470
+ // Mandatory is empty.
3471
+ if (field.mandatory &&
3472
+ formControl.value.toString().trim().length === 0) {
3473
+ emptyMandatoryFieldsMsg +=
3474
+ '<li><small>' + field.label + '</small></li>';
3475
+ }
3476
+ else if (!field.disabled && !formControl.valid) {
3477
+ notValidFieldsMsg +=
3478
+ '<li><small>' + field.label + '</small></li>';
3479
+ }
3480
+ }
3481
+ }
3482
+ // Add the header message of the empty mandatory fields
3483
+ if (emptyMandatoryFieldsMsg.length > 0) {
3484
+ emptyMandatoryFieldsMsg =
3485
+ '<div>' +
3486
+ this.translate.instant('MESSAGES.ERROR_MANDATORY_FIELDS') +
3487
+ "</div><ul style='padding: 0 20px;'>" +
3488
+ emptyMandatoryFieldsMsg +
3489
+ '</ul><br/>';
3490
+ }
3491
+ // Add the header message of the empty mandatory fields
3492
+ if (notValidFieldsMsg.length > 0) {
3493
+ notValidFieldsMsg =
3494
+ '<div>' +
3495
+ this.translate.instant('MESSAGES.ERROR_INVALID_FIELDS') +
3496
+ "</div><ul style='padding: 0 20px;'>" +
3497
+ notValidFieldsMsg +
3498
+ '</ul>';
3499
+ }
3500
+ const title = this.translate.instant('MESSAGES.TITLE_NOTICE');
3501
+ const data = new PepDialogData({
3502
+ title,
3503
+ content: emptyMandatoryFieldsMsg + notValidFieldsMsg,
3504
+ });
3505
+ this.dialogService.openDefaultDialog(data);
3506
+ }
3507
+ ngOnInit() {
3508
+ const themeVars = this.customizationService.getThemeVariables();
3509
+ // convert rem to pixel
3510
+ const RemToPixel = 16;
3511
+ this.formGutterSize =
3512
+ this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.FORM_SPACEING_KEY) * RemToPixel;
3513
+ this.cardGutterSize =
3514
+ this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.CARD_SPACEING_KEY) * RemToPixel;
3515
+ }
3516
+ ngDoCheck() {
3517
+ const changes = this.differ.diff(this.data); // check for changes
3518
+ if (changes) {
3519
+ this.updateForm();
3520
+ this.checkForChanges = new Date();
3521
+ }
3522
+ }
3523
+ ngOnChanges(changes) {
3524
+ // if (changes.data && changes.data.currentValue) {
3525
+ // // Load changes
3526
+ // if (!this.shouldReloadForm && changes.data.previousValue) {
3527
+ // this.data = changes.data.currentValue;
3528
+ // this.updateForm();
3529
+ // } else {
3530
+ // this._shouldReloadForm = false;
3531
+ // this.initForm();
3532
+ // }
3533
+ // }
3534
+ // if (this.shouldReloadForm || !changes?.data?.previousValue) {
3535
+ // this._shouldReloadForm = false;
3536
+ // this.initForm();
3537
+ // this.checkForChanges = new Date();
3538
+ // }
3539
+ }
3540
+ ngOnDestroy() {
3541
+ //
3542
+ }
3543
+ getUiControlFields() {
3544
+ return this.layout ? this.layout.ControlFields : [];
3545
+ }
3546
+ initFieldsStructure(fields, maxRow) {
3547
+ const themeVars = this.customizationService.getThemeVariables();
3548
+ // Set form row height.
3549
+ if (this.layoutType === 'card') {
3550
+ const cardFieldHeight = this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.CARD_FIELD_HEIGHT_KEY);
3551
+ this.rowHeight = cardFieldHeight;
3552
+ }
3553
+ else {
3554
+ const rowFieldHeight = this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.FORM_FIELD_HEIGHT_KEY);
3555
+ const rowFieldTitleHeight = this.customizationService.getNumberThemeVariable(themeVars, PepCustomizationService.FORM_FIELD_TITLE_HEIGHT_KEY);
3556
+ this.rowHeight = rowFieldHeight + rowFieldTitleHeight;
3557
+ }
3558
+ // Create the fields structure (the fields must be sorted!!!).
3559
+ if (fields.length > 0) {
3560
+ // Init the layout.
3561
+ if (
3562
+ // this.layoutType === 'form' ||
3563
+ this.layoutType === 'table') {
3564
+ this.fields = fields;
3565
+ this._fieldsSubject.next(fields);
3566
+ this.rows = [];
3567
+ for (let i = 0; i <= maxRow; i++) {
3568
+ this.rows[i] = [];
3569
+ }
3570
+ // for (let i = 0; i < fields.length; i++) {
3571
+ // const field = fields[i]
3572
+ for (const field of fields) {
3573
+ this.rows[field.row].push(field);
3574
+ }
3575
+ }
3576
+ else {
3577
+ const doesfieldExistIn = new Array(maxRow);
3578
+ for (let i = 0; i < doesfieldExistIn.length; i++) {
3579
+ doesfieldExistIn[i] = new Array(this.columns);
3580
+ for (let j = 0; j < doesfieldExistIn[i].length; j++) {
3581
+ doesfieldExistIn[i][j] = false;
3582
+ }
3583
+ }
3584
+ // Run in squere (row - colspan, col - rowspan) and put true where it should.
3585
+ // for (let index = 0; index < fields.length; index++) {
3586
+ // const currentField = fields[index];
3587
+ for (const currentField of fields) {
3588
+ if (currentField.rowSpan > 1) {
3589
+ for (let row = currentField.row; row < currentField.row + currentField.rowSpan; row++) {
3590
+ if (currentField.colSpan > 1) {
3591
+ for (let col = currentField.col; col <
3592
+ currentField.col + currentField.colSpan; col++) {
3593
+ if (doesfieldExistIn.length > row &&
3594
+ doesfieldExistIn[0].length > col) {
3595
+ doesfieldExistIn[row][col] = true;
3596
+ }
3597
+ }
3598
+ }
3599
+ else {
3600
+ if (doesfieldExistIn.length > row &&
3601
+ doesfieldExistIn[0].length >
3602
+ currentField.col) {
3603
+ doesfieldExistIn[row][currentField.col] = true;
3604
+ }
3605
+ }
3606
+ }
3607
+ }
3608
+ else if (currentField.colSpan > 1) {
3609
+ for (let col = currentField.col; col < currentField.col + currentField.colSpan; col++) {
3610
+ if (doesfieldExistIn.length > currentField.row &&
3611
+ doesfieldExistIn[0].length > col) {
3612
+ doesfieldExistIn[currentField.row][col] = true;
3613
+ }
3614
+ }
3615
+ }
3616
+ else {
3617
+ if (doesfieldExistIn.length > currentField.row &&
3618
+ doesfieldExistIn[0].length > currentField.col) {
3619
+ doesfieldExistIn[currentField.row][currentField.col] = true;
3620
+ }
3621
+ }
3622
+ }
3623
+ // Create empty fields where doesfieldExistIn is false (For the md-grid-list UI Component).
3624
+ for (let i = 0; i < doesfieldExistIn.length; i++) {
3625
+ for (let j = 0; j < doesfieldExistIn[i].length; j++) {
3626
+ if (!doesfieldExistIn[i][j]) {
3627
+ // Create empty field and add it to the fields list.
3628
+ fields.push(new PepPlaceholderField({
3629
+ key: i + '_' + j,
3630
+ label: '',
3631
+ placeholder: '',
3632
+ readonly: false,
3633
+ disabled: false,
3634
+ hidden: false,
3635
+ mandatory: false,
3636
+ value: '',
3637
+ formattedValue: '',
3638
+ row: i,
3639
+ rowSpan: 1,
3640
+ col: j,
3641
+ colSpan: 1,
3642
+ order: 1,
3643
+ }));
3644
+ }
3645
+ }
3646
+ }
3647
+ // Sort the fields again.
3648
+ this.fields = fields.sort((f1, f2) => f1.row > f2.row
3649
+ ? 1
3650
+ : f1.row < f2.row
3651
+ ? -1
3652
+ : f1.col > f2.col
3653
+ ? 1
3654
+ : f1.col < f2.col
3655
+ ? -1
3656
+ : 0);
3657
+ this._fieldsSubject.next(fields);
3658
+ }
3659
+ }
3660
+ }
3661
+ setForm(isForUpdate = false) {
3662
+ var _a;
3663
+ let allFieldsAreReadOnly = true;
3664
+ if (!isForUpdate) {
3665
+ const fields = [];
3666
+ for (const currentField of this.fields) {
3667
+ // Add all fields except 'internalPage' (for children).
3668
+ if (currentField.controlType !== 'internalPage') {
3669
+ fields.push(currentField);
3670
+ }
3671
+ if (!currentField.readonly) {
3672
+ allFieldsAreReadOnly = false;
3673
+ }
3674
+ }
3675
+ this.form = this.toControlGroup(fields);
3676
+ }
3677
+ else {
3678
+ // Update form values if changed by calculated fields.
3679
+ for (let i = 0; i < this.fields.length; i++) {
3680
+ let currentField = this.fields[i];
3681
+ if (currentField.controlType === 'internalCarusel') {
3682
+ // Hack to override (update) the field.
3683
+ const uiControlField = this.getUiControlFields().find(cf => cf.ApiName === currentField.key);
3684
+ const dataField = this.data.Fields.find(df => df.ApiName === currentField.key);
3685
+ currentField = this.createBaseField(uiControlField, dataField);
3686
+ this._fieldsSubject.value[i] = currentField;
3687
+ }
3688
+ else if (currentField.controlType !== 'internalPage') {
3689
+ if (currentField.groupFields &&
3690
+ currentField.groupFields.length > 0) {
3691
+ // for (let j = 0; j < currentField.groupFields.length; j++) {
3692
+ // let currentGroupField = currentField.groupFields[j];
3693
+ for (const currentGroupField of currentField.groupFields) {
3694
+ const fieldFormattedValue = this.getFieldFormattedValue(currentGroupField);
3695
+ this.customizationService.updateFormField(this.form, currentGroupField, fieldFormattedValue, currentField);
3696
+ }
3697
+ }
3698
+ else {
3699
+ const fieldFormattedValue = this.getFieldFormattedValue(currentField);
3700
+ // this.form.controls[currentField.key].setValue(fieldFormattedValue);
3701
+ this.customizationService.updateFormField(this.form, currentField, fieldFormattedValue);
3702
+ }
3703
+ }
3704
+ if (!currentField.readonly) {
3705
+ allFieldsAreReadOnly = false;
3706
+ }
3707
+ }
3708
+ }
3709
+ let isFormValid = (_a = this.form) === null || _a === void 0 ? void 0 : _a.valid;
3710
+ // Change validation to true if all fields are read only.
3711
+ if (!isFormValid && allFieldsAreReadOnly) {
3712
+ isFormValid = true;
3713
+ }
3714
+ this.onFormValidationChanged(isFormValid);
3715
+ // Set it to false to enable all fields.
3716
+ if (this.isInternal && this.isLocked) {
3717
+ this.isLocked = false;
3718
+ }
3719
+ }
3720
+ initForm() {
3721
+ if (this.data && this.data.Fields) {
3722
+ const fields = this.convertCustomFields(this.getUiControlFields(), this.data.Fields);
3723
+ const maxRow = Math.max(...fields.map((f) => {
3724
+ return f.row + f.rowSpan;
3725
+ }));
3726
+ this.columns = Math.max(...fields.map((f) => {
3727
+ return f.col + f.colSpan;
3728
+ }));
3729
+ this.initFieldsStructure(fields, maxRow);
3730
+ this.setForm();
3731
+ }
3732
+ }
3733
+ updateField(customField, updatedField) {
3734
+ const options = {
3735
+ disabled: !updatedField.Enabled || !this.canEditObject,
3736
+ readonly: !updatedField.Enabled || !this.canEditObject,
3737
+ visible: updatedField.Visible,
3738
+ value: updatedField.Value,
3739
+ additionalValue: updatedField.AdditionalValue,
3740
+ formattedValue: updatedField.FormattedValue,
3741
+ textColor: updatedField.TextColor,
3742
+ };
3743
+ if (customField instanceof PepQuantitySelectorField) {
3744
+ const notificationInfo = updatedField.NotificationInfo;
3745
+ options.notificationInfo = notificationInfo;
3746
+ // Change type if it's change (only for allowDecimal).
3747
+ let allowDecimal = false;
3748
+ if (updatedField.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
3749
+ updatedField.FieldType === FIELD_TYPE.NumberReal ||
3750
+ updatedField.FieldType === FIELD_TYPE.NumberRealForMatrix) {
3751
+ allowDecimal = true;
3752
+ }
3753
+ options.allowDecimal = allowDecimal;
3754
+ }
3755
+ else if (customField instanceof PepSelectField) {
3756
+ options.options = this.convertOptionalValues(updatedField.OptionalValues);
3757
+ if (!options.options || options.options.length === 0) {
3758
+ options.options.push({
3759
+ key: options.value,
3760
+ value: options.formattedValue,
3761
+ });
3762
+ }
3763
+ }
3764
+ else if (customField instanceof PepInternalCaruselField) {
3765
+ options.pageInfo = updatedField.UIPageInfo;
3766
+ }
3767
+ customField.update(options);
3768
+ }
3769
+ updateForm() {
3770
+ if (this.data && this.data.Fields) {
3771
+ for (const currentField of this.data.Fields) {
3772
+ const customField = this.fields.filter((f) => f.key === currentField.ApiName)[0];
3773
+ // Update all fields except 'internalPage' type (for children).
3774
+ if (customField && customField.controlType !== 'internalPage') {
3775
+ this.updateField(customField, currentField);
3776
+ // Update the group fields.
3777
+ if (customField.controlType === 'address' &&
3778
+ currentField.GroupFields) {
3779
+ // for (let j = 0; j < currentField.GroupFields.length; j++) {
3780
+ // let currentGroupField = currentField.GroupFields[j];
3781
+ for (const currentGroupField of currentField.GroupFields) {
3782
+ currentGroupField.Enabled = !currentField.Enabled
3783
+ ? false
3784
+ : currentGroupField.Enabled;
3785
+ const customGroupField = customField.groupFields.filter((f) => f.key === currentGroupField.ApiName)[0];
3786
+ this.updateField(customGroupField, currentGroupField);
3787
+ }
3788
+ }
3789
+ }
3790
+ }
3791
+ this.setForm(true);
3792
+ }
3793
+ }
3794
+ ReloadForm() {
3795
+ this._shouldReloadForm = true;
3796
+ }
3797
+ // onSubmit() {
3798
+ // if (this.form.valid) {
3799
+ // this.payLoad = JSON.stringify(this.form.value);
3800
+ // //this.submitted.emit(this.form.value);
3801
+ // }
3802
+ // }
3803
+ getFormControlById(key) {
3804
+ let formControl = null;
3805
+ this.fields.forEach((field) => {
3806
+ if (field.key === key) {
3807
+ formControl = this.form.get(field.key);
3808
+ return;
3809
+ }
3810
+ else if (field.groupFields && field.groupFields.length > 0) {
3811
+ field.groupFields.forEach((groupField) => {
3812
+ if (groupField.key === key) {
3813
+ formControl = this.form.get(field.key + '.' + groupField.key);
3814
+ return;
3815
+ }
3816
+ });
3817
+ }
3818
+ });
3819
+ return formControl;
3820
+ }
3821
+ setSpecialFields(controlFields, dataFields) {
3822
+ // let cf;
3823
+ // for (let index = 0; index < controlFields.length; index++) {
3824
+ // cf = controlFields[index];
3825
+ for (const cf of controlFields) {
3826
+ if (cf.ApiName === 'ObjectMenu') {
3827
+ this.menuField = cf;
3828
+ }
3829
+ else if (cf.ApiName === 'ItemHasActiveCampaign') {
3830
+ this.hasCampaignField = cf;
3831
+ }
3832
+ else if (cf.ApiName === 'ItemIndicatorsWithoutCampaign') {
3833
+ this.indicatorsField = cf;
3834
+ }
3835
+ }
3836
+ // let df;
3837
+ // for (let index = 0; index < dataFields.length; index++) {
3838
+ // df = dataFields[index];
3839
+ for (const df of dataFields) {
3840
+ if (df.ApiName === 'ObjectMenu') {
3841
+ this.menuDataField = df;
3842
+ }
3843
+ else if (df.ApiName === 'ItemHasActiveCampaign') {
3844
+ this.hasCampaignDataField = df;
3845
+ }
3846
+ else if (df.ApiName === 'ItemIndicatorsWithoutCampaign') {
3847
+ this.indicatorsDataField = df;
3848
+ }
3849
+ }
3850
+ if (this.menuField && this.menuDataField) {
3851
+ this.menuDataField.Layout = this.menuField.Layout;
3852
+ }
3853
+ if (this.hasCampaignField && this.hasCampaignDataField) {
3854
+ this.hasCampaignDataField.Layout = this.hasCampaignField.Layout;
3855
+ }
3856
+ if (this.indicatorsField && this.indicatorsDataField) {
3857
+ this.indicatorsDataField.Layout = this.indicatorsField.Layout;
3858
+ }
3859
+ // Check if menu is floating on other field.
3860
+ // for (let index = 0; index < controlFields.length; index++) {
3861
+ // cf = controlFields[index];
3862
+ for (const cf of controlFields) {
3863
+ if (this.menuField && cf.ApiName !== 'ObjectMenu') {
3864
+ this.hasMenuFloatingOnOtherField = this.doesFieldHavaFloatingField(cf, this.menuField);
3865
+ if (this.hasMenuFloatingOnOtherField) {
3866
+ break;
3867
+ }
3868
+ }
3869
+ }
3870
+ }
3871
+ convertCustomFields(controlFields, dataFields) {
3872
+ if (this.layoutType !== 'table') {
3873
+ this.setSpecialFields(controlFields, dataFields);
3874
+ }
3875
+ else {
3876
+ // HACK: convert to center alignment if table view & special fields)
3877
+ controlFields.forEach((field, index) => {
3878
+ if (field.ApiName === 'UnitsQuantity' ||
3879
+ field.ApiName === 'QuantitySelector' ||
3880
+ field.ApiName === 'ObjectMenu' ||
3881
+ field.FieldType === FIELD_TYPE.Image ||
3882
+ field.FieldType === FIELD_TYPE.ImageURL ||
3883
+ field.FieldType === FIELD_TYPE.Indicators ||
3884
+ field.FieldType === FIELD_TYPE.Boolean ||
3885
+ field.FieldType === FIELD_TYPE.CalculatedBool ||
3886
+ field.FieldType === FIELD_TYPE.Signature ||
3887
+ field.FieldType ===
3888
+ FIELD_TYPE.NumberIntegerQuantitySelector ||
3889
+ field.FieldType === FIELD_TYPE.NumberRealQuantitySelector ||
3890
+ field.FieldType === FIELD_TYPE.Package ||
3891
+ field.FieldType === FIELD_TYPE.NumberIntegerForMatrix ||
3892
+ field.FieldType === FIELD_TYPE.NumberRealForMatrix) {
3893
+ field.Layout.XAlignment = X_ALIGNMENT_TYPE.Center;
3894
+ }
3895
+ else {
3896
+ // HACK: align the rest of the fields by the culture.
3897
+ // field.Layout.XAlignment = this.layoutService.isRtl() ? X_ALIGNMENT_TYPE.Right : X_ALIGNMENT_TYPE.Left;
3898
+ }
3899
+ });
3900
+ }
3901
+ const fields = [];
3902
+ controlFields.forEach((field, index) => {
3903
+ const dataField = dataFields.filter((df) => df.ApiName === field.ApiName)[0];
3904
+ if (!dataField) {
3905
+ return;
3906
+ }
3907
+ // If current view is not table view and those fields are special.
3908
+ if (this.layoutType !== 'table' &&
3909
+ ((this.hasMenuFloatingOnOtherField &&
3910
+ this.menuField &&
3911
+ this.menuField.ApiName === field.ApiName) ||
3912
+ (this.indicatorsField &&
3913
+ this.indicatorsField.ApiName === field.ApiName) ||
3914
+ (this.hasCampaignField &&
3915
+ this.hasCampaignField.ApiName === field.ApiName))) {
3916
+ return;
3917
+ }
3918
+ // Set type to link
3919
+ if (index === 0 && this.firstFieldAsLink) {
3920
+ dataField.FieldType = FIELD_TYPE.InternalLink;
3921
+ // dataField.Value = this.getInternalLinkHref();
3922
+ }
3923
+ if (field.ApiName === 'ObjectMenu') {
3924
+ dataField.Enabled = true;
3925
+ // HACK : Until "Enabled" returns from the server, we set PepMenu to be
3926
+ // Disabled in cart on regular items and not campign items.
3927
+ }
3928
+ const customField = this.createBaseField(field, dataField);
3929
+ fields.push(customField);
3930
+ });
3931
+ return fields.sort((f1, f2) => f1.row > f2.row
3932
+ ? 1
3933
+ : f1.row < f2.row
3934
+ ? -1
3935
+ : f1.col > f2.col
3936
+ ? 1
3937
+ : f1.col < f2.col
3938
+ ? -1
3939
+ : 0);
3940
+ }
3941
+ onFormValidationChanged(formValidationChange) {
3942
+ this.formValidationChange.emit(formValidationChange);
3943
+ }
3944
+ onValueChanged(event) {
3945
+ this.onFormValidationChanged(this.form.valid);
3946
+ const formControl = this.getFormControlById(event.key);
3947
+ const isValid = formControl ? formControl.valid : true;
3948
+ // const isValid = true;
3949
+ if (isValid) {
3950
+ // Set it to false to disable all fields.
3951
+ if (this.isInternal && this.layoutType === 'form') {
3952
+ this.isLocked = true;
3953
+ }
3954
+ // Update the current field value.
3955
+ const currentField = this.fields.find((f) => f.key === event.key);
3956
+ if (currentField) {
3957
+ currentField.formattedValue = currentField.value = event.value;
3958
+ }
3959
+ this.valueChange.emit({
3960
+ id: this.data.UID.toString(),
3961
+ uiObjectKey: this.data.Key,
3962
+ key: event.key,
3963
+ value: event.value,
3964
+ controlType: event.controlType,
3965
+ });
3966
+ }
3967
+ }
3968
+ onClick(fieldClickEvent) {
3969
+ const clickedUiControlField = this.data.Fields.filter((f) => f.ApiName === fieldClickEvent.key)[0];
3970
+ const idType = this.data.Type ? this.data.Type.toString() : '';
3971
+ if (clickedUiControlField) {
3972
+ this.fieldClick.emit({
3973
+ id: this.data.UID.toString(),
3974
+ uiObjectKey: this.data.Key,
3975
+ key: fieldClickEvent.key,
3976
+ idType,
3977
+ which: fieldClickEvent.eventWhich,
3978
+ value: fieldClickEvent.value,
3979
+ controlType: fieldClickEvent.controlType,
3980
+ fieldType: clickedUiControlField.FieldType,
3981
+ otherData: fieldClickEvent.otherData,
3982
+ });
3983
+ }
3984
+ else {
3985
+ // For other api names (like enter children etc).
3986
+ this.fieldClick.emit({
3987
+ id: this.data.UID.toString(),
3988
+ uiObjectKey: this.data.Key,
3989
+ key: fieldClickEvent.key,
3990
+ idType,
3991
+ which: fieldClickEvent.eventWhich,
3992
+ value: fieldClickEvent.value,
3993
+ controlType: fieldClickEvent.controlType,
3994
+ otherData: fieldClickEvent.otherData,
3995
+ });
3996
+ }
3997
+ }
3998
+ // This event is for handle the internal page events.
3999
+ onInternalFormFieldClicked(internalFormFieldClick) {
4000
+ this.internalFormFieldClick.emit(internalFormFieldClick);
4001
+ }
4002
+ // This event is for handle the internal page events.
4003
+ onInternalFormFieldChanged(internalFormFieldChange) {
4004
+ this.internalFormFieldChange.emit(internalFormFieldChange);
4005
+ }
4006
+ // This event is for handle the related items change events.
4007
+ onFormValueChanged(event) {
4008
+ // this.valueChange.emit(event);
4009
+ }
4010
+ // This event is for handle the related items change events.
4011
+ onFormFieldClick(event) {
4012
+ this.fieldClick.emit(event);
4013
+ }
4014
+ }
4015
+ PepFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFormComponent, deps: [{ token: i1$2.PepDialogService }, { token: i1$1.PepCustomizationService }, { token: i1$1.PepLayoutService }, { token: i3$1.FormBuilder }, { token: i0.KeyValueDiffers }, { token: i4$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
4016
+ PepFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepFormComponent, selector: "pep-form", inputs: { isInternal: "isInternal", isReport: "isReport", layout: "layout", lockEvents: "lockEvents", canEditObject: "canEditObject", data: "data", lockFields: "lockFields", isActive: "isActive", layoutType: "layoutType", objectId: "objectId", parentId: "parentId", searchCode: "searchCode", showTitle: "showTitle", firstFieldAsLink: "firstFieldAsLink", checkForChanges: "checkForChanges" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", fieldClick: "fieldClick", internalFormFieldClick: "internalFormFieldClick", internalFormFieldChange: "internalFormFieldChange" }, usesOnChanges: true, ngImport: i0, template: "<fieldset *ngIf=\"form\" [formGroup]=\"form\" [disabled]=\"isLocked\" class=\"pep-form\"\n [ngStyle]=\"{ 'background-color': layoutType == 'card' && data?.BackgroundColor }\">\n <!-- New Form -->\n <mat-grid-list *ngIf=\"layoutType == 'form'\" [cols]=\"columns\" [rowHeight]=\"rowHeight + 'rem'\"\n [gutterSize]=\"formGutterSize\">\n <mat-grid-tile *ngFor=\"let field of fields$ | async\" [rowspan]=\"field.rowSpan\" [colspan]=\"field.colSpan\">\n <pep-field-generator *ngIf=\"field.controlType != 'placeholder'\" [form]=\"form\" [layoutType]=\"layoutType\"\n [checkForChanges]=\"checkForChanges\" [uid]=\"data?.UID\" [field]=\"field\" [showTitle]=\"showTitle\"\n (valueChange)=\"onValueChanged($event)\" (elementClick)=\"onClick($event)\"\n (internalFormFieldClick)=\"onInternalFormFieldClicked($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\"\n (formValidationChange)=\"onFormValidationChanged($event)\">\n </pep-field-generator>\n </mat-grid-tile>\n </mat-grid-list>\n\n <!-- Thumbnails -->\n <mat-grid-list *ngIf=\"layoutType == 'card'\" [cols]=\"columns\" [rowHeight]=\"rowHeight + 'rem'\"\n [gutterSize]=\"cardGutterSize\" class=\"card-spacing\">\n <mat-grid-tile *ngFor=\"let field of fields$ | async\" [rowspan]=\"field.rowSpan\" [colspan]=\"field.colSpan\"\n [ngStyle]=\"{ overflow: field.type == 'qs' ? 'unset' : 'hidden' }\">\n <pep-field-generator *ngIf=\"field.controlType != 'placeholder'\" [form]=\"form\" [layoutType]=\"layoutType\"\n [ngClass]=\"{ 'lock-events': lockEvents }\" [isActive]=\"isActive\" [checkForChanges]=\"checkForChanges\"\n [uid]=\"data?.UID\" [field]=\"field\" [showTitle]=\"showTitle\" (valueChange)=\"onValueChanged($event)\"\n (elementClick)=\"onClick($event)\" (internalFormFieldClick)=\"onInternalFormFieldClicked($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\">\n </pep-field-generator>\n </mat-grid-tile>\n </mat-grid-list>\n\n <ng-container *ngIf=\"layoutType == 'table'\">\n <ng-container *ngIf=\"isReport; then reportBlock; else notReportBlock\"></ng-container>\n <ng-template #reportBlock>\n <ng-container *ngTemplateOutlet=\"report\"></ng-container>\n </ng-template>\n <ng-template #notReportBlock>\n <div *ngFor=\"let field of fields$ | async; let j = index\" class=\"pull-left flip table-cell \"\n [ngClass]=\"['text-align-' + field.xAlignment]\" style=\"height: 100%\"\n [ngStyle]=\"{ width: (layout?.ControlFields)[j]?.calcColumnWidthString}\">\n <pep-field-generator *ngIf=\"field.controlType != 'placeholder'\" [checkForChanges]=\"checkForChanges\"\n [uid]=\"data?.UID\" [field]=\"field\" [form]=\"form\" [layoutType]=\"layoutType\" [showTitle]=\"false\"\n (elementClick)=\"onClick($event)\" (valueChange)=\"onValueChanged($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\"\n [isActive]=\"isActive\">\n </pep-field-generator>\n </div>\n </ng-template>\n </ng-container>\n\n <!------- For testing ------------\n {{ form.value | json }}\n {{ form.valid }}\n ---------------------------------->\n</fieldset>\n\n<ng-template #report>\n <div *ngFor=\"let field of fields$ | async; let j = index\" class=\"pull-left flip pep-report-fields\"\n [ngStyle]=\"{ width: (layout?.ControlFields)[j]?.calcColumnWidthString }\"\n [ngClass]=\"['text-align-' + field.xAlignment]\">\n <ng-container [ngSwitch]=\"field.controlType\">\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"data?.UID\" [form]=\"form\" [key]=\"field.key\"\n [src]=\"field.formattedValue\" [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-image>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\">\n </pep-signature>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [additionalValue]=\"field.additionalValue\" [layoutType]=\"layoutType\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [minValue]=\"field.minValue\" [maxValue]=\"field.maxValue\" [layoutType]=\"layoutType\">\n </pep-date>\n\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" (elementClick)=\"onClick($event)\">\n </pep-internal-button>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [maxFieldCharacters]=\"field.maxFieldCharacters\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\">\n </pep-textarea>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [id]=\"field.key\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"field.value\" [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\" (valueChange)=\"onValueChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"field.formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\">\n </ng-container>\n <ng-template #notEmptyBlock>\n <ng-container\n *ngIf=\"field.controlType === 'attachment' || field.type === 'link'; then linkBlock; else notLinkBlock\">\n </ng-container>\n <ng-template #linkBlock>\n <a [id]=\"field.key\" class=\"color-link body-sm pep-report-input readonly\"\n *ngIf=\"field.formattedValue != null\" title=\"{{ field.formattedValue }}\" target=\"_blank\"\n href=\"{{ field.value }}\">{{ field.formattedValue }}</a>\n </ng-template>\n <ng-template #notLinkBlock>\n <span [id]=\"field.key\" class=\"body-sm pep-report-input readonly\"\n title=\"{{ field.formattedValue }}\" [ngStyle]=\"{ color: field.textColor }\">{{\n field.formattedValue }}</span>\n </ng-template>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>", styles: [":host{display:grid}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6$1.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i6$1.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i5$2.PepCheckboxComponent, selector: "pep-checkbox", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "additionalValue", "form", "isActive", "showTitle", "renderTitle", "layoutType", "visible"], outputs: ["valueChange"] }, { kind: "component", type: i6.PepDateComponent, selector: "pep-date", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "visible", "minValue", "maxValue", "minDateValue", "maxDateValue", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i7$1.PepImageComponent, selector: "pep-image", inputs: ["key", "srcLarge", "src", "options", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "indicatorsField", "menuField", "hasCampaignField", "visible", "form", "uid", "showTitle", "renderTitle", "layoutType", "isActive", "sizeLimitMB", "acceptImagesType"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i9.PepQuantitySelectorComponent, selector: "pep-quantity-selector", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "allowDecimal", "additionalValue", "notificationInfo", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive", "styleType"], outputs: ["valueChange", "elementClick"] }, { kind: "component", type: i13.PepSignatureComponent, selector: "pep-signature", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "signatureURL", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange"] }, { kind: "component", type: i14.PepTextareaComponent, selector: "pep-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: PepFieldGeneratorComponent, selector: "pep-field-generator", inputs: ["field", "isActive", "uid", "form", "layoutType", "showTitle", "checkForChanges"], outputs: ["valueChange", "formValidationChange", "elementClick", "internalFormFieldChange", "internalFormFieldClick", "formValueChange", "formFieldClick"] }, { kind: "component", type: PepInternalButtonComponent, selector: "pep-internal-button", inputs: ["key", "value", "formattedValue", "label", "referenceObjectInternalType", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "layoutType"], outputs: ["elementClick", "valueChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4017
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFormComponent, decorators: [{
4018
+ type: Component,
4019
+ args: [{ selector: 'pep-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fieldset *ngIf=\"form\" [formGroup]=\"form\" [disabled]=\"isLocked\" class=\"pep-form\"\n [ngStyle]=\"{ 'background-color': layoutType == 'card' && data?.BackgroundColor }\">\n <!-- New Form -->\n <mat-grid-list *ngIf=\"layoutType == 'form'\" [cols]=\"columns\" [rowHeight]=\"rowHeight + 'rem'\"\n [gutterSize]=\"formGutterSize\">\n <mat-grid-tile *ngFor=\"let field of fields$ | async\" [rowspan]=\"field.rowSpan\" [colspan]=\"field.colSpan\">\n <pep-field-generator *ngIf=\"field.controlType != 'placeholder'\" [form]=\"form\" [layoutType]=\"layoutType\"\n [checkForChanges]=\"checkForChanges\" [uid]=\"data?.UID\" [field]=\"field\" [showTitle]=\"showTitle\"\n (valueChange)=\"onValueChanged($event)\" (elementClick)=\"onClick($event)\"\n (internalFormFieldClick)=\"onInternalFormFieldClicked($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\"\n (formValidationChange)=\"onFormValidationChanged($event)\">\n </pep-field-generator>\n </mat-grid-tile>\n </mat-grid-list>\n\n <!-- Thumbnails -->\n <mat-grid-list *ngIf=\"layoutType == 'card'\" [cols]=\"columns\" [rowHeight]=\"rowHeight + 'rem'\"\n [gutterSize]=\"cardGutterSize\" class=\"card-spacing\">\n <mat-grid-tile *ngFor=\"let field of fields$ | async\" [rowspan]=\"field.rowSpan\" [colspan]=\"field.colSpan\"\n [ngStyle]=\"{ overflow: field.type == 'qs' ? 'unset' : 'hidden' }\">\n <pep-field-generator *ngIf=\"field.controlType != 'placeholder'\" [form]=\"form\" [layoutType]=\"layoutType\"\n [ngClass]=\"{ 'lock-events': lockEvents }\" [isActive]=\"isActive\" [checkForChanges]=\"checkForChanges\"\n [uid]=\"data?.UID\" [field]=\"field\" [showTitle]=\"showTitle\" (valueChange)=\"onValueChanged($event)\"\n (elementClick)=\"onClick($event)\" (internalFormFieldClick)=\"onInternalFormFieldClicked($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\">\n </pep-field-generator>\n </mat-grid-tile>\n </mat-grid-list>\n\n <ng-container *ngIf=\"layoutType == 'table'\">\n <ng-container *ngIf=\"isReport; then reportBlock; else notReportBlock\"></ng-container>\n <ng-template #reportBlock>\n <ng-container *ngTemplateOutlet=\"report\"></ng-container>\n </ng-template>\n <ng-template #notReportBlock>\n <div *ngFor=\"let field of fields$ | async; let j = index\" class=\"pull-left flip table-cell \"\n [ngClass]=\"['text-align-' + field.xAlignment]\" style=\"height: 100%\"\n [ngStyle]=\"{ width: (layout?.ControlFields)[j]?.calcColumnWidthString}\">\n <pep-field-generator *ngIf=\"field.controlType != 'placeholder'\" [checkForChanges]=\"checkForChanges\"\n [uid]=\"data?.UID\" [field]=\"field\" [form]=\"form\" [layoutType]=\"layoutType\" [showTitle]=\"false\"\n (elementClick)=\"onClick($event)\" (valueChange)=\"onValueChanged($event)\"\n (formValueChange)=\"onFormValueChanged($event)\" (formFieldClick)=\"onFormFieldClick($event)\"\n [isActive]=\"isActive\">\n </pep-field-generator>\n </div>\n </ng-template>\n </ng-container>\n\n <!------- For testing ------------\n {{ form.value | json }}\n {{ form.valid }}\n ---------------------------------->\n</fieldset>\n\n<ng-template #report>\n <div *ngFor=\"let field of fields$ | async; let j = index\" class=\"pull-left flip pep-report-fields\"\n [ngStyle]=\"{ width: (layout?.ControlFields)[j]?.calcColumnWidthString }\"\n [ngClass]=\"['text-align-' + field.xAlignment]\">\n <ng-container [ngSwitch]=\"field.controlType\">\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"data?.UID\" [form]=\"form\" [key]=\"field.key\"\n [src]=\"field.formattedValue\" [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-image>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\">\n </pep-signature>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [additionalValue]=\"field.additionalValue\" [layoutType]=\"layoutType\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [minValue]=\"field.minValue\" [maxValue]=\"field.maxValue\" [layoutType]=\"layoutType\">\n </pep-date>\n\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" (elementClick)=\"onClick($event)\">\n </pep-internal-button>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\"\n [readonly]=\"field.readonly\" [maxFieldCharacters]=\"field.maxFieldCharacters\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\">\n </pep-textarea>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [id]=\"field.key\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"field.value\" [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [layoutType]=\"layoutType\" (valueChange)=\"onValueChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"field.formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\">\n </ng-container>\n <ng-template #notEmptyBlock>\n <ng-container\n *ngIf=\"field.controlType === 'attachment' || field.type === 'link'; then linkBlock; else notLinkBlock\">\n </ng-container>\n <ng-template #linkBlock>\n <a [id]=\"field.key\" class=\"color-link body-sm pep-report-input readonly\"\n *ngIf=\"field.formattedValue != null\" title=\"{{ field.formattedValue }}\" target=\"_blank\"\n href=\"{{ field.value }}\">{{ field.formattedValue }}</a>\n </ng-template>\n <ng-template #notLinkBlock>\n <span [id]=\"field.key\" class=\"body-sm pep-report-input readonly\"\n title=\"{{ field.formattedValue }}\" [ngStyle]=\"{ color: field.textColor }\">{{\n field.formattedValue }}</span>\n </ng-template>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>", styles: [":host{display:grid}\n"] }]
4020
+ }], ctorParameters: function () { return [{ type: i1$2.PepDialogService }, { type: i1$1.PepCustomizationService }, { type: i1$1.PepLayoutService }, { type: i3$1.FormBuilder }, { type: i0.KeyValueDiffers }, { type: i4$1.TranslateService }]; }, propDecorators: { isInternal: [{
4021
+ type: Input
4022
+ }], isReport: [{
4023
+ type: Input
4024
+ }], layout: [{
4025
+ type: Input
4026
+ }], lockEvents: [{
4027
+ type: Input
4028
+ }], canEditObject: [{
4029
+ type: Input
4030
+ }], data: [{
4031
+ type: Input
4032
+ }], lockFields: [{
4033
+ type: Input
4034
+ }], isActive: [{
4035
+ type: Input
4036
+ }], layoutType: [{
4037
+ type: Input
4038
+ }], objectId: [{
4039
+ type: Input
4040
+ }], parentId: [{
4041
+ type: Input
4042
+ }], searchCode: [{
4043
+ type: Input
4044
+ }], showTitle: [{
4045
+ type: Input
4046
+ }], firstFieldAsLink: [{
4047
+ type: Input
4048
+ }], checkForChanges: [{
4049
+ type: Input
4050
+ }], valueChange: [{
4051
+ type: Output
4052
+ }], formValidationChange: [{
4053
+ type: Output
4054
+ }], fieldClick: [{
4055
+ type: Output
4056
+ }], internalFormFieldClick: [{
4057
+ type: Output
4058
+ }], internalFormFieldChange: [{
4059
+ type: Output
4060
+ }] } });
4061
+
4062
+ const pepComponentsModules = [
4063
+ PepAddressModule,
4064
+ PepAttachmentModule,
4065
+ PepButtonModule,
4066
+ PepCarouselModule,
4067
+ PepCheckboxModule,
4068
+ PepDateModule,
4069
+ PepImageModule,
4070
+ PepImagesFilmstripModule,
4071
+ PepQuantitySelectorModule,
4072
+ PepRichHtmlTextareaModule,
4073
+ PepSelectModule,
4074
+ PepSeparatorModule,
4075
+ PepSignatureModule,
4076
+ PepTextareaModule,
4077
+ PepTextboxModule,
4078
+ PepLinkModule
4079
+ ];
4080
+ class PepFormModule {
4081
+ constructor(pepIconRegistry) {
4082
+ this.pepIconRegistry = pepIconRegistry;
4083
+ this.pepIconRegistry.registerIcons([
4084
+ pepIconSystemEdit,
4085
+ pepIconSystemMenu,
4086
+ pepIconNumberPlus,
4087
+ pepIconSystemBin,
4088
+ pepIconIndicatorDotPlaceholder,
4089
+ ]);
4090
+ }
4091
+ }
4092
+ PepFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFormModule, deps: [{ token: i1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
4093
+ PepFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepFormModule, declarations: [PepFormComponent,
4094
+ PepInternalFormComponent,
4095
+ PepFieldGeneratorComponent,
4096
+ PepInternalFieldGeneratorComponent,
4097
+ PepIndicatorsComponent,
4098
+ PepInternalButtonComponent,
4099
+ PepInternalListComponent,
4100
+ PepInternalMenuComponent,
4101
+ PepInternalPageComponent,
4102
+ PepInternalCaruselComponent], imports: [CommonModule,
4103
+ ReactiveFormsModule,
4104
+ // Material modules,
4105
+ MatCommonModule,
4106
+ MatFormFieldModule,
4107
+ MatButtonModule,
4108
+ MatGridListModule,
4109
+ MatIconModule,
4110
+ MatMenuModule,
4111
+ // External modules
4112
+ SignaturePadModule,
4113
+ // ngx-lib modules
4114
+ PepNgxLibModule,
4115
+ PepDialogModule,
4116
+ PepIconModule, PepAddressModule,
4117
+ PepAttachmentModule,
4118
+ PepButtonModule,
4119
+ PepCarouselModule,
4120
+ PepCheckboxModule,
4121
+ PepDateModule,
4122
+ PepImageModule,
4123
+ PepImagesFilmstripModule,
4124
+ PepQuantitySelectorModule,
4125
+ PepRichHtmlTextareaModule,
4126
+ PepSelectModule,
4127
+ PepSeparatorModule,
4128
+ PepSignatureModule,
4129
+ PepTextareaModule,
4130
+ PepTextboxModule,
4131
+ PepLinkModule, PepFieldTitleModule,
4132
+ PepGroupButtonsModule], exports: [PepFormComponent] });
4133
+ PepFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFormModule, providers: [
4134
+ FormBuilder
4135
+ ], imports: [CommonModule,
4136
+ ReactiveFormsModule,
4137
+ // Material modules,
4138
+ MatCommonModule,
4139
+ MatFormFieldModule,
4140
+ MatButtonModule,
4141
+ MatGridListModule,
4142
+ MatIconModule,
4143
+ MatMenuModule,
4144
+ // External modules
4145
+ SignaturePadModule,
4146
+ // ngx-lib modules
4147
+ PepNgxLibModule,
4148
+ PepDialogModule,
4149
+ PepIconModule,
4150
+ pepComponentsModules,
4151
+ PepFieldTitleModule,
4152
+ PepGroupButtonsModule] });
4153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFormModule, decorators: [{
4154
+ type: NgModule,
4155
+ args: [{
4156
+ imports: [
4157
+ CommonModule,
4158
+ ReactiveFormsModule,
4159
+ // Material modules,
4160
+ MatCommonModule,
4161
+ MatFormFieldModule,
4162
+ MatButtonModule,
4163
+ MatGridListModule,
4164
+ MatIconModule,
4165
+ MatMenuModule,
4166
+ // External modules
4167
+ SignaturePadModule,
4168
+ // ngx-lib modules
4169
+ PepNgxLibModule,
4170
+ PepDialogModule,
4171
+ PepIconModule,
4172
+ pepComponentsModules,
4173
+ PepFieldTitleModule,
4174
+ PepGroupButtonsModule,
4175
+ ],
4176
+ exports: [PepFormComponent],
4177
+ declarations: [
4178
+ PepFormComponent,
4179
+ PepInternalFormComponent,
4180
+ PepFieldGeneratorComponent,
4181
+ PepInternalFieldGeneratorComponent,
4182
+ PepIndicatorsComponent,
4183
+ PepInternalButtonComponent,
4184
+ PepInternalListComponent,
4185
+ PepInternalMenuComponent,
4186
+ PepInternalPageComponent,
4187
+ PepInternalCaruselComponent
4188
+ ],
4189
+ providers: [
4190
+ FormBuilder
4191
+ ]
4192
+ }]
4193
+ }], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
4194
+
4195
+ /*
4196
+ * Public API Surface of ngx-lib/form
4197
+ */
4198
+
4199
+ /**
4200
+ * Generated bundle index. Do not edit.
4201
+ */
4202
+
4203
+ export { PepFormComponent, PepFormModule };
4204
+ //# sourceMappingURL=pepperi-addons-ngx-lib-form.mjs.map