@pega/angular-sdk-components 0.23.1

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 (300) hide show
  1. package/README.md +24 -0
  2. package/_shared/styles.scss +28 -0
  3. package/esm2022/lib/_bridge/angular-pconnect.mjs +416 -0
  4. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +114 -0
  5. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +228 -0
  6. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +142 -0
  7. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +50 -0
  8. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +29 -0
  9. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +31 -0
  10. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +51 -0
  11. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +80 -0
  12. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +37 -0
  13. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +31 -0
  14. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +36 -0
  15. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +25 -0
  16. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +28 -0
  17. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +42 -0
  18. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +136 -0
  19. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +33 -0
  20. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +93 -0
  21. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +18 -0
  22. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +286 -0
  23. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +98 -0
  24. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +157 -0
  25. package/esm2022/lib/_components/field/currency/currency.component.mjs +160 -0
  26. package/esm2022/lib/_components/field/date/date.component.mjs +219 -0
  27. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +200 -0
  28. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +157 -0
  29. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +197 -0
  30. package/esm2022/lib/_components/field/email/email.component.mjs +150 -0
  31. package/esm2022/lib/_components/field/integer/integer.component.mjs +155 -0
  32. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +44 -0
  33. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +155 -0
  34. package/esm2022/lib/_components/field/phone/phone.component.mjs +167 -0
  35. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +189 -0
  36. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +103 -0
  37. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +95 -0
  38. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +57 -0
  39. package/esm2022/lib/_components/field/text/text.component.mjs +138 -0
  40. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +155 -0
  41. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +69 -0
  42. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +152 -0
  43. package/esm2022/lib/_components/field/time/time.component.mjs +151 -0
  44. package/esm2022/lib/_components/field/url/url.component.mjs +150 -0
  45. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +175 -0
  46. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +491 -0
  47. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +68 -0
  48. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +24 -0
  49. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +314 -0
  50. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +32 -0
  51. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +219 -0
  52. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +31 -0
  53. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +387 -0
  54. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +47 -0
  55. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +88 -0
  56. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +144 -0
  57. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +18 -0
  58. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +80 -0
  59. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +132 -0
  60. package/esm2022/lib/_components/infra/reference/reference.component.mjs +133 -0
  61. package/esm2022/lib/_components/infra/region/region.component.mjs +33 -0
  62. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +228 -0
  63. package/esm2022/lib/_components/infra/stages/stages.component.mjs +62 -0
  64. package/esm2022/lib/_components/infra/view/view.component.mjs +173 -0
  65. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +140 -0
  66. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +43 -0
  67. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +72 -0
  68. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +196 -0
  69. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +68 -0
  70. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +239 -0
  71. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +61 -0
  72. package/esm2022/lib/_components/template/details/details.component.mjs +102 -0
  73. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +72 -0
  74. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +71 -0
  75. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +66 -0
  76. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +80 -0
  77. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +77 -0
  78. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +77 -0
  79. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +65 -0
  80. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +23 -0
  81. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +134 -0
  82. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +19 -0
  83. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +22 -0
  84. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +40 -0
  85. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +14 -0
  86. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +208 -0
  87. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +1198 -0
  88. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +61 -0
  89. package/esm2022/lib/_components/template/list-view/utils.mjs +660 -0
  90. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +44 -0
  91. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +30 -0
  92. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +30 -0
  93. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +16 -0
  94. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +30 -0
  95. package/esm2022/lib/_components/template/page/page.component.mjs +52 -0
  96. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +149 -0
  97. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +139 -0
  98. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +106 -0
  99. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +270 -0
  100. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +760 -0
  101. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +131 -0
  102. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +16 -0
  103. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +67 -0
  104. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +30 -0
  105. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +16 -0
  106. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +30 -0
  107. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +40 -0
  108. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +30 -0
  109. package/esm2022/lib/_components/template/utils.mjs +22 -0
  110. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +30 -0
  111. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +53 -0
  112. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +135 -0
  113. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +24 -0
  114. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +588 -0
  115. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +81 -0
  116. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +525 -0
  117. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +631 -0
  118. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +57 -0
  119. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +75 -0
  120. package/esm2022/lib/_components/widget/todo/todo.component.mjs +213 -0
  121. package/esm2022/lib/_components/widget/utility/utility.component.mjs +34 -0
  122. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +28 -0
  123. package/esm2022/lib/_helpers/case-utils.mjs +71 -0
  124. package/esm2022/lib/_helpers/common.mjs +20 -0
  125. package/esm2022/lib/_helpers/currency-utils.mjs +57 -0
  126. package/esm2022/lib/_helpers/date-format-utils.mjs +68 -0
  127. package/esm2022/lib/_helpers/event-util.mjs +19 -0
  128. package/esm2022/lib/_helpers/field-group-utils.mjs +47 -0
  129. package/esm2022/lib/_helpers/filter-utils.mjs +106 -0
  130. package/esm2022/lib/_helpers/formatters/currency-map.mjs +903 -0
  131. package/esm2022/lib/_helpers/formatters/format-utils.mjs +68 -0
  132. package/esm2022/lib/_helpers/tab-utils.mjs +59 -0
  133. package/esm2022/lib/_helpers/template-utils.mjs +56 -0
  134. package/esm2022/lib/_helpers/utils.mjs +386 -0
  135. package/esm2022/lib/_helpers/versionHelpers.mjs +12 -0
  136. package/esm2022/lib/_messages/error-messages.service.mjs +31 -0
  137. package/esm2022/lib/_messages/get-login-status.service.mjs +26 -0
  138. package/esm2022/lib/_messages/oauth-response.service.mjs +30 -0
  139. package/esm2022/lib/_messages/progress-spinner.service.mjs +30 -0
  140. package/esm2022/lib/_messages/reset-pconnect.service.mjs +31 -0
  141. package/esm2022/lib/_messages/update-worklist.service.mjs +30 -0
  142. package/esm2022/lib/_services/case.service.mjs +32 -0
  143. package/esm2022/lib/_services/datapage.service.mjs +52 -0
  144. package/esm2022/lib/_services/endpoints.mjs +61 -0
  145. package/esm2022/lib/_services/server-config.service.mjs +52 -0
  146. package/esm2022/lib/_types/PConnProps.interface.mjs +2 -0
  147. package/esm2022/pega-angular-sdk-components.mjs +5 -0
  148. package/esm2022/public-api.mjs +138 -0
  149. package/esm2022/sdk-local-component-map.mjs +9 -0
  150. package/fesm2022/pega-angular-sdk-components.mjs +17380 -0
  151. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -0
  152. package/index.d.ts +5 -0
  153. package/lib/_bridge/angular-pconnect.d.ts +140 -0
  154. package/lib/_bridge/component-mapper/component-mapper.component.d.ts +20 -0
  155. package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +213 -0
  156. package/lib/_bridge/helpers/sdk_component_map.d.ts +3 -0
  157. package/lib/_components/designSystemExtension/alert/alert.component.d.ts +12 -0
  158. package/lib/_components/designSystemExtension/alert-banner/alert-banner.component.d.ts +13 -0
  159. package/lib/_components/designSystemExtension/banner/banner.component.d.ts +15 -0
  160. package/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.d.ts +20 -0
  161. package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +18 -0
  162. package/lib/_components/designSystemExtension/material-details/material-details.component.d.ts +15 -0
  163. package/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.d.ts +12 -0
  164. package/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.d.ts +15 -0
  165. package/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.d.ts +9 -0
  166. package/lib/_components/designSystemExtension/material-utility/material-utility.component.d.ts +16 -0
  167. package/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.d.ts +11 -0
  168. package/lib/_components/designSystemExtension/operator/operator.component.d.ts +25 -0
  169. package/lib/_components/designSystemExtension/pulse/pulse.component.d.ts +16 -0
  170. package/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.d.ts +23 -0
  171. package/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.d.ts +7 -0
  172. package/lib/_components/field/auto-complete/auto-complete.component.d.ts +74 -0
  173. package/lib/_components/field/cancel-alert/cancel-alert.component.d.ts +24 -0
  174. package/lib/_components/field/check-box/check-box.component.d.ts +48 -0
  175. package/lib/_components/field/currency/currency.component.d.ts +50 -0
  176. package/lib/_components/field/date/date.component.d.ts +65 -0
  177. package/lib/_components/field/date-time/date-time.component.d.ts +55 -0
  178. package/lib/_components/field/decimal/decimal.component.d.ts +46 -0
  179. package/lib/_components/field/dropdown/dropdown.component.d.ts +60 -0
  180. package/lib/_components/field/email/email.component.d.ts +44 -0
  181. package/lib/_components/field/integer/integer.component.d.ts +44 -0
  182. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +15 -0
  183. package/lib/_components/field/percentage/percentage.component.d.ts +44 -0
  184. package/lib/_components/field/phone/phone.component.d.ts +48 -0
  185. package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +60 -0
  186. package/lib/_components/field/rich-text/rich-text.component.d.ts +42 -0
  187. package/lib/_components/field/scalar-list/scalar-list.component.d.ts +37 -0
  188. package/lib/_components/field/semantic-link/semantic-link.component.d.ts +30 -0
  189. package/lib/_components/field/text/text.component.d.ts +40 -0
  190. package/lib/_components/field/text-area/text-area.component.d.ts +45 -0
  191. package/lib/_components/field/text-content/text-content.component.d.ts +30 -0
  192. package/lib/_components/field/text-input/text-input.component.d.ts +45 -0
  193. package/lib/_components/field/time/time.component.d.ts +43 -0
  194. package/lib/_components/field/url/url.component.d.ts +43 -0
  195. package/lib/_components/field/user-reference/user-reference.component.d.ts +39 -0
  196. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +85 -0
  197. package/lib/_components/infra/Containers/flow-container/helpers.d.ts +2 -0
  198. package/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.d.ts +15 -0
  199. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +71 -0
  200. package/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.d.ts +15 -0
  201. package/lib/_components/infra/Containers/view-container/view-container.component.d.ts +51 -0
  202. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +12 -0
  203. package/lib/_components/infra/assignment/assignment.component.d.ts +72 -0
  204. package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +18 -0
  205. package/lib/_components/infra/dashboard-filter/dashboard-filter.component.d.ts +20 -0
  206. package/lib/_components/infra/defer-load/defer-load.component.d.ts +46 -0
  207. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +8 -0
  208. package/lib/_components/infra/multi-step/multi-step.component.d.ts +31 -0
  209. package/lib/_components/infra/navbar/navbar.component.d.ts +51 -0
  210. package/lib/_components/infra/reference/reference.component.d.ts +16 -0
  211. package/lib/_components/infra/region/region.component.d.ts +14 -0
  212. package/lib/_components/infra/root-container/root-container.component.d.ts +35 -0
  213. package/lib/_components/infra/stages/stages.component.d.ts +29 -0
  214. package/lib/_components/infra/view/view.component.d.ts +40 -0
  215. package/lib/_components/template/app-shell/app-shell.component.d.ts +55 -0
  216. package/lib/_components/template/banner-page/banner-page.component.d.ts +27 -0
  217. package/lib/_components/template/case-summary/case-summary.component.d.ts +34 -0
  218. package/lib/_components/template/case-view/case-view.component.d.ts +56 -0
  219. package/lib/_components/template/confirmation/confirmation.component.d.ts +38 -0
  220. package/lib/_components/template/data-reference/data-reference.component.d.ts +41 -0
  221. package/lib/_components/template/default-form/default-form.component.d.ts +21 -0
  222. package/lib/_components/template/details/details.component.d.ts +20 -0
  223. package/lib/_components/template/details-narrow-wide/details-narrow-wide.component.d.ts +21 -0
  224. package/lib/_components/template/details-one-column/details-one-column.component.d.ts +22 -0
  225. package/lib/_components/template/details-sub-tabs/details-sub-tabs.component.d.ts +24 -0
  226. package/lib/_components/template/details-three-column/details-three-column.component.d.ts +25 -0
  227. package/lib/_components/template/details-two-column/details-two-column.component.d.ts +25 -0
  228. package/lib/_components/template/details-wide-narrow/details-wide-narrow.component.d.ts +24 -0
  229. package/lib/_components/template/dynamic-tabs/dynamic-tabs.component.d.ts +20 -0
  230. package/lib/_components/template/field-group-list/field-group-list.component.d.ts +9 -0
  231. package/lib/_components/template/field-group-template/field-group-template.component.d.ts +52 -0
  232. package/lib/_components/template/field-value-list/field-value-list.component.d.ts +8 -0
  233. package/lib/_components/template/inline-dashboard/inline-dashboard.component.d.ts +16 -0
  234. package/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.d.ts +25 -0
  235. package/lib/_components/template/list-page/list-page.component.d.ts +7 -0
  236. package/lib/_components/template/list-view/DefaultViewMeta.d.ts +1 -0
  237. package/lib/_components/template/list-view/list-view.component.d.ts +157 -0
  238. package/lib/_components/template/list-view/listViewHelpers.d.ts +1 -0
  239. package/lib/_components/template/list-view/utils.d.ts +118 -0
  240. package/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.d.ts +25 -0
  241. package/lib/_components/template/narrow-wide-form/narrow-wide-form.component.d.ts +14 -0
  242. package/lib/_components/template/one-column/one-column.component.d.ts +14 -0
  243. package/lib/_components/template/one-column-page/one-column-page.component.d.ts +9 -0
  244. package/lib/_components/template/one-column-tab/one-column-tab.component.d.ts +14 -0
  245. package/lib/_components/template/page/page.component.d.ts +25 -0
  246. package/lib/_components/template/promoted-filters/promoted-filters.component.d.ts +35 -0
  247. package/lib/_components/template/repeating-structures/repeating-structures.component.d.ts +37 -0
  248. package/lib/_components/template/simple-table/simple-table.component.d.ts +43 -0
  249. package/lib/_components/template/simple-table-manual/helpers.d.ts +81 -0
  250. package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +159 -0
  251. package/lib/_components/template/simple-table-select/simple-table-select.component.d.ts +32 -0
  252. package/lib/_components/template/single-reference-readonly/single-reference-readonly.component.d.ts +9 -0
  253. package/lib/_components/template/sub-tabs/sub-tabs.component.d.ts +26 -0
  254. package/lib/_components/template/three-column/three-column.component.d.ts +14 -0
  255. package/lib/_components/template/three-column-page/three-column-page.component.d.ts +9 -0
  256. package/lib/_components/template/two-column/two-column.component.d.ts +14 -0
  257. package/lib/_components/template/two-column-page/two-column-page.component.d.ts +17 -0
  258. package/lib/_components/template/two-column-tab/two-column-tab.component.d.ts +14 -0
  259. package/lib/_components/template/utils.d.ts +2 -0
  260. package/lib/_components/template/wide-narrow-form/wide-narrow-form.component.d.ts +14 -0
  261. package/lib/_components/template/wide-narrow-page/wide-narrow-page.component.d.ts +20 -0
  262. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +50 -0
  263. package/lib/_components/widget/app-announcement/app-announcement.component.d.ts +19 -0
  264. package/lib/_components/widget/attachment/attachment.component.d.ts +99 -0
  265. package/lib/_components/widget/case-history/case-history.component.d.ts +24 -0
  266. package/lib/_components/widget/feed-container/feed-container.component.d.ts +49 -0
  267. package/lib/_components/widget/file-utility/file-utility.component.d.ts +150 -0
  268. package/lib/_components/widget/list-utility/list-utility.component.d.ts +23 -0
  269. package/lib/_components/widget/quick-create/quick-create.component.d.ts +29 -0
  270. package/lib/_components/widget/todo/todo.component.d.ts +64 -0
  271. package/lib/_components/widget/utility/utility.component.d.ts +25 -0
  272. package/lib/_directives/thousand-seperator.directive.d.ts +9 -0
  273. package/lib/_helpers/case-utils.d.ts +19 -0
  274. package/lib/_helpers/common.d.ts +3 -0
  275. package/lib/_helpers/currency-utils.d.ts +10 -0
  276. package/lib/_helpers/date-format-utils.d.ts +12 -0
  277. package/lib/_helpers/event-util.d.ts +2 -0
  278. package/lib/_helpers/field-group-utils.d.ts +16 -0
  279. package/lib/_helpers/filter-utils.d.ts +46 -0
  280. package/lib/_helpers/formatters/currency-map.d.ts +1132 -0
  281. package/lib/_helpers/formatters/format-utils.d.ts +8 -0
  282. package/lib/_helpers/tab-utils.d.ts +4 -0
  283. package/lib/_helpers/template-utils.d.ts +16 -0
  284. package/lib/_helpers/utils.d.ts +32 -0
  285. package/lib/_helpers/versionHelpers.d.ts +8 -0
  286. package/lib/_messages/error-messages.service.d.ts +15 -0
  287. package/lib/_messages/get-login-status.service.d.ts +10 -0
  288. package/lib/_messages/oauth-response.service.d.ts +14 -0
  289. package/lib/_messages/progress-spinner.service.d.ts +14 -0
  290. package/lib/_messages/reset-pconnect.service.d.ts +15 -0
  291. package/lib/_messages/update-worklist.service.d.ts +14 -0
  292. package/lib/_services/case.service.d.ts +12 -0
  293. package/lib/_services/datapage.service.d.ts +14 -0
  294. package/lib/_services/endpoints.d.ts +39 -0
  295. package/lib/_services/server-config.service.d.ts +31 -0
  296. package/lib/_types/PConnProps.interface.d.ts +17 -0
  297. package/package.json +28 -0
  298. package/public-api.d.ts +133 -0
  299. package/sdk-local-component-map.d.ts +2 -0
  300. package/sdk-local-component-map.ts +12 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pega-angular-sdk-components.mjs","sources":["../../../packages/angular-sdk-components/src/lib/_helpers/event-util.ts","../../../packages/angular-sdk-components/src/lib/_services/server-config.service.ts","../../../packages/angular-sdk-components/src/lib/_helpers/utils.ts","../../../packages/angular-sdk-components/src/lib/_messages/progress-spinner.service.ts","../../../packages/angular-sdk-components/src/lib/_messages/error-messages.service.ts","../../../packages/angular-sdk-components/src/lib/_bridge/angular-pconnect.ts","../../../packages/angular-sdk-components/src/lib/_services/endpoints.ts","../../../packages/angular-sdk-components/src/lib/_services/datapage.service.ts","../../../packages/angular-sdk-components/src/lib/_components/field/auto-complete/auto-complete.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/auto-complete/auto-complete.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/cancel-alert/cancel-alert.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/cancel-alert/cancel-alert.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/check-box/check-box.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/check-box/check-box.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/common.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/currency-map.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/format-utils.ts","../../../packages/angular-sdk-components/src/lib/_helpers/currency-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/field/currency/currency.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/currency/currency.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/date-format-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/field/date-time/date-time.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/date-time/date-time.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/date/date.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/date/date.component.html","../../../packages/angular-sdk-components/src/lib/_directives/thousand-seperator.directive.ts","../../../packages/angular-sdk-components/src/lib/_components/field/decimal/decimal.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/decimal/decimal.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/dropdown/dropdown.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/dropdown/dropdown.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/email/email.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/email/email.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/integer/integer.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/integer/integer.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/percentage/percentage.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/percentage/percentage.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/phone/phone.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/phone/phone.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/radio-buttons/radio-buttons.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/radio-buttons/radio-buttons.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/semantic-link/semantic-link.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/semantic-link/semantic-link.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/text-area/text-area.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/text-area/text-area.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/text-content/text-content.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/text-content/text-content.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/text-input/text-input.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/text-input/text-input.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/three-column/three-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/three-column/three-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/three-column-page/three-column-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/three-column-page/three-column-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/time/time.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/time/time.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/url/url.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/url/url.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/user-reference/user-reference.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/user-reference/user-reference.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/reference/reference.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/reference/reference.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/flow-container/helpers.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/flow-container/flow-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/flow-container/flow-container.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/case-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/view-container/view-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/view-container/view-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/action-buttons/action-buttons.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/action-buttons/action-buttons.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/assignment-card/assignment-card.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/assignment-card/assignment-card.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/assignment/assignment.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/assignment/assignment.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/defer-load/defer-load.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/defer-load/defer-load.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/multi-step/multi-step.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/multi-step/multi-step.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/navbar/navbar.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/navbar/navbar.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/region/region.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/region/region.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/root-container/root-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/root-container/root-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/stages/stages.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/stages/stages.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/tab-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/sub-tabs/sub-tabs.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/sub-tabs/sub-tabs.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/utils.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/view/view.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/view/view.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/app-shell/app-shell.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/app-shell/app-shell.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/case-summary/case-summary.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/case-summary/case-summary.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/case-view/case-view.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/case-view/case-view.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/data-reference/data-reference.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/data-reference/data-reference.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/template-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/default-form/default-form.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/default-form/default-form.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-three-column/details-three-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-three-column/details-three-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-two-column/details-two-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-two-column/details-two-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-sub-tabs/details-sub-tabs.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-sub-tabs/details-sub-tabs.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details/details.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details/details.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/field-group-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/field-group-template/field-group-template.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/field-group-template/field-group-template.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/list-page/list-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-page/list-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/DefaultViewMeta.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/listViewHelpers.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/list-view.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/list-view.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/narrow-wide-form/narrow-wide-form.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/narrow-wide-form/narrow-wide-form.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/one-column-page/one-column-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/one-column-page/one-column-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/one-column-tab/one-column-tab.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/one-column-tab/one-column-tab.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/one-column/one-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/one-column/one-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/page/page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/page/page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/promoted-filters/promoted-filters.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/promoted-filters/promoted-filters.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-manual/helpers.ts","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-manual/simple-table-manual.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-manual/simple-table-manual.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-select/simple-table-select.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-select/simple-table-select.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table/simple-table.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table/simple-table.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/single-reference-readonly/single-reference-readonly.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/single-reference-readonly/single-reference-readonly.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/two-column-page/two-column-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/two-column-page/two-column-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/two-column/two-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/two-column/two-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/two-column-tab/two-column-tab.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/two-column-tab/two-column-tab.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/wide-narrow-form/wide-narrow-form.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/wide-narrow-form/wide-narrow-form.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/wide-narrow-page/wide-narrow-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/wide-narrow-page/wide-narrow-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/app-announcement/app-announcement.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/app-announcement/app-announcement.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/attachment/attachment.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/attachment/attachment.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/case-history/case-history.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/case-history/case-history.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/file-utility/file-utility.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/file-utility/file-utility.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/todo/todo.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/todo/todo.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/operator/operator.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/operator/operator.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/pulse/pulse.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/pulse/pulse.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-wide-narrow/details-wide-narrow.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-wide-narrow/details-wide-narrow.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/text/text.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/text/text.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-narrow-wide/details-narrow-wide.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-narrow-wide/details-narrow-wide.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/field-value-list/field-value-list.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/field-value-list/field-value-list.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/error-boundary/error-boundary.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/error-boundary/error-boundary.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/field-group-list/field-group-list.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/field-group-list/field-group-list.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-one-column/details-one-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-one-column/details-one-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/confirmation/confirmation.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/confirmation/confirmation.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/alert-banner/alert-banner.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/alert-banner/alert-banner.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/alert/alert.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/alert/alert.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/banner-page/banner-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/banner-page/banner-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/wss-nav-bar/wss-nav-bar.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/wss-nav-bar/wss-nav-bar.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/quick-create/quick-create.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/quick-create/quick-create.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/banner/banner.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/banner/banner.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/inline-dashboard/inline-dashboard.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/inline-dashboard/inline-dashboard.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/filter-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/scalar-list/scalar-list.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/scalar-list/scalar-list.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/feed-container/feed-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/feed-container/feed-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details/material-details.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details/material-details.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/dashboard-filter/dashboard-filter.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/dashboard-filter/dashboard-filter.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/list-utility/list-utility.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/list-utility/list-utility.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-utility/material-utility.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-utility/material-utility.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/rich-text/rich-text.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/rich-text/rich-text.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/dynamic-tabs/dynamic-tabs.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/dynamic-tabs/dynamic-tabs.component.html","../../../packages/angular-sdk-components/src/lib/_bridge/helpers/sdk-pega-component-map.ts","../../../packages/angular-sdk-components/src/lib/_bridge/helpers/sdk_component_map.ts","../../../packages/angular-sdk-components/src/lib/_bridge/component-mapper/component-mapper.component.ts","../../../packages/angular-sdk-components/src/lib/_bridge/component-mapper/component-mapper.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/repeating-structures/repeating-structures.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/repeating-structures/repeating-structures.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/utility/utility.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/utility/utility.component.html","../../../packages/angular-sdk-components/src/lib/_services/case.service.ts","../../../packages/angular-sdk-components/src/lib/_helpers/versionHelpers.ts","../../../packages/angular-sdk-components/src/lib/_messages/get-login-status.service.ts","../../../packages/angular-sdk-components/src/lib/_messages/oauth-response.service.ts","../../../packages/angular-sdk-components/src/lib/_messages/reset-pconnect.service.ts","../../../packages/angular-sdk-components/src/lib/_messages/update-worklist.service.ts","../../../packages/angular-sdk-components/src/sdk-local-component-map.ts","../../../packages/angular-sdk-components/src/public-api.ts","../../../packages/angular-sdk-components/src/pega-angular-sdk-components.ts"],"sourcesContent":["// From npm-nebula/src/utils/event-utils.js\n\nexport function handleEvent(actions, eventType, propName, value) {\n switch (eventType) {\n case 'change':\n actions.updateFieldValue(propName, value);\n break;\n case 'blur':\n actions.triggerFieldChange(propName, value);\n break;\n case 'changeNblur':\n actions.updateFieldValue(propName, value);\n actions.triggerFieldChange(propName, value);\n break;\n default:\n break;\n }\n}\n\nexport default handleEvent;\n","import { Injectable } from '@angular/core';\nimport { getSdkConfig, SdkConfigAccess } from '@pega/auth/lib/sdk-auth-manager';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ServerConfigService {\n /**\n * Asynchronous initialization of the config file contents.\n * @returns Promise of config file fetch\n */\n readSdkConfig(): Promise<any> {\n return getSdkConfig();\n }\n\n /**\n *\n * @returns the sdk-config JSON object\n */\n async getSdkConfig(): Promise<any> {\n return SdkConfigAccess.getSdkConfig();\n }\n\n /**\n *\n * @returns the authConfig block in the SDK Config object\n */\n async getSdkConfigAuth(): Promise<any> {\n return SdkConfigAccess.getSdkConfigAuth();\n }\n\n /**\n *\n * @returns the serverConfig bloc from the sdk-config.json file\n */\n getSdkConfigServer(): any {\n return SdkConfigAccess.getSdkConfigServer();\n }\n\n /**\n * @param {String} key the key to be inserted/updated in serverConfig\n * @param {String} value the value to be assigned to the given key\n */\n setSdkConfigServer(key: string, value: string) {\n SdkConfigAccess.setSdkConfigServer(key, value);\n }\n\n getBaseUrl(): string {\n return SdkConfigAccess.getSdkConfigServer().infinityRestServerUrl;\n }\n}\n","import { Injectable } from '@angular/core';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport { ServerConfigService } from '../_services/server-config.service';\n\ndayjs.extend(customParseFormat);\ndayjs.extend(localizedFormat);\ndayjs.extend(relativeTime);\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Utils {\n lastControlID = 0;\n\n viewContainerCount = 0;\n\n constructor(private scService: ServerConfigService) {}\n\n getSDKStaticContentUrl() {\n const sdkConfigServer = this.scService.getSdkConfigServer();\n\n // NOTE: Needs a trailing slash! So add one if not provided\n if (!sdkConfigServer.sdkContentServerUrl.endsWith('/')) {\n sdkConfigServer.sdkContentServerUrl = `${sdkConfigServer.sdkContentServerUrl}/`;\n }\n\n return `${sdkConfigServer.sdkContentServerUrl}constellation/`;\n }\n\n consoleKidDump(pConn: any, level: number = 1, kidNum: number = 1) {\n let sDash = '';\n for (let i = 0; i < level; i++) {\n sDash = sDash.concat('-');\n }\n let cName = 'blank';\n let ctxName = '';\n try {\n cName = pConn.getComponentName();\n ctxName = pConn.getContextName();\n console.log(`${sDash}level ${level} component(${kidNum}):${cName} context:${ctxName}`);\n if (pConn.getConfigProps() != null) {\n console.log(`${sDash}configProps:${JSON.stringify(pConn.getConfigProps())}`);\n }\n if (pConn.getRawMetadata() != null) {\n console.log(`${sDash}rawMetadata:${JSON.stringify(pConn.getRawMetadata())}`);\n }\n\n if (pConn.hasChildren() && pConn.getChildren() != null) {\n console.log(`${sDash}kidCount:${pConn.getChildren().length}`);\n const kids = pConn.getChildren();\n const kidsKeys = Object.keys(kids);\n\n for (let i = 0, len = kidsKeys.length; i < len; i++) {\n const index = parseInt(kidsKeys[i], 10) + 1;\n const kid = kids[kidsKeys[i]];\n this.consoleKidDump(kid.getPConnect(), level + 1, index);\n }\n }\n } catch (ex) {\n /* empty */\n }\n }\n\n htmlDecode(sVal: string): string | null {\n const doc = new DOMParser().parseFromString(sVal, 'text/html');\n return doc.documentElement.textContent;\n }\n\n getUniqueControlID(): string {\n const sPrefix = 'control-';\n\n this.lastControlID++;\n\n return sPrefix + this.lastControlID.toString();\n }\n\n getOptionList(configProps: any, dataObject: any): any[] {\n const listType = configProps.listType;\n\n if (listType == null) {\n return [];\n }\n\n switch (listType.toLowerCase()) {\n case 'associated':\n return this.handleAssociatedList(configProps);\n case 'datapage':\n return this.handleDataPageList(configProps, dataObject);\n default:\n return [];\n }\n }\n\n handleAssociatedList(configProps: any): any[] {\n const dataSource = configProps.datasource;\n\n if (Array.isArray(dataSource)) {\n return dataSource;\n }\n\n return [];\n }\n\n handleDataPageList(configProps: any, dataObject: any): any[] {\n const dataPage = configProps.datasource;\n\n if (dataObject[dataPage]) {\n alert('need to handle data page');\n return [];\n }\n\n let listSourceItems = configProps.listOutput;\n\n if (typeof dataPage === 'object' && !Array.isArray(listSourceItems)) {\n listSourceItems = dataPage.source ? dataPage.source : [];\n }\n\n return this.transformListSourceItems(listSourceItems);\n }\n\n transformListSourceItems(listSourceItems: any[]): any[] {\n return (listSourceItems || []).map(item => {\n return { ...item, value: item.text || item.value };\n });\n }\n\n getInitials(userName: string): string {\n let userInitials = userName;\n\n if (userName && userName != '') {\n userInitials = userName.charAt(0);\n\n if (userName.lastIndexOf(' ') > 0) {\n const lastName = userName.substring(userName.lastIndexOf(' ') + 1);\n userInitials += lastName.charAt(0);\n } else if (userName.lastIndexOf('.') > 0) {\n const lastName = userName.substring(userName.lastIndexOf('.') + 1);\n userInitials += lastName.charAt(0);\n }\n } else {\n userInitials = '';\n }\n\n return userInitials.toUpperCase();\n }\n\n getImageSrc(name: string, serverUrl: string): string {\n let iconName = name.replace('pi-', '').replace('pi ', '').trim();\n if (iconName === 'line-chart') {\n iconName = 'chart-line';\n }\n\n // return serverUrl.concat(\"assets/icons/\").concat(iconName).concat(\".svg\");\n return this.getIconPath(serverUrl).concat(iconName).concat('.svg');\n }\n\n getIconPath(serverUrl: string): string {\n return serverUrl.concat('assets/icons/');\n }\n\n getBooleanValue(inValue: any): boolean {\n let bReturn = false;\n\n if (typeof inValue === 'string') {\n if (inValue.toLowerCase() == 'true') {\n bReturn = true;\n }\n } else {\n bReturn = inValue;\n }\n\n return bReturn;\n }\n\n generateDate(dateVal, dateFormat) {\n let sReturnDate = dateVal;\n\n if (dateVal == null || dateVal == '') {\n return dateVal;\n }\n\n // Commenting out per Vinod note in webc components\n // VRS: Dont think we need the below line. Commenting out for now. (2020.05.20)\n // if date has a \".\", then of the format YYYMMDD[T]HHmmss[.]SSS Z, need to change to YYYYMMDD\n // if (dateVal.indexOf(\".\") >= 0) {\n // dateVal = moment(dateVal.replace(\"GMT\", \"+0000\"), \"YYYYMMDD[T]HHmmss[.]SSS Z\").format(\"YYYYMMDD\");\n // sReturnDate = dateVal;\n // }\n\n switch (dateFormat) {\n case 'Date-Short':\n // 1/1/01\n sReturnDate = dayjs(dateVal).format('M/D/YY');\n break;\n case 'Date-Short-YYYY':\n // 1/1/2001\n sReturnDate = dayjs(dateVal).format('M/D/YYYY');\n break;\n case 'Date-Short-Custom':\n // 01/01/01\n sReturnDate = dayjs(dateVal).format('MM/DD/YY');\n break;\n case 'Date-Short-Custom-YYYY':\n // 01/01/2001\n sReturnDate = dayjs(dateVal).format('L');\n break;\n case 'Date-Long-Custom-YYYY':\n // 05/22/2021\n sReturnDate = dayjs(dateVal).format('MM/DD/YYYY');\n break;\n case 'Date':\n case 'Date-Medium':\n // Jan 1, 2001\n sReturnDate = dayjs(dateVal).format('ll');\n break;\n case 'Date-DayMonthYear-Custom':\n // 01-Jan-2001\n sReturnDate = dayjs(dateVal).format('DD-MMM-YYYY');\n break;\n case 'Date-Full':\n // Monday, January 1, 2001\n sReturnDate = dayjs(dateVal).format('dddd, MMMM D, YYYY');\n break;\n case 'DateTime-Frame':\n case 'DateTime-Frame-Short':\n case 'DateTime-Since':\n // 2 days, 5 hours ago\n sReturnDate = dayjs(dateVal).fromNow();\n break;\n case 'Date-Long':\n // January 1, 2001\n sReturnDate = dayjs(dateVal).format('MMMM D, YYYY');\n break;\n case 'Date-ISO-8601':\n // 2001/01/01 y/m/d\n sReturnDate = dayjs(dateVal).format('YYYY/MM/DD');\n break;\n case 'Date-Gregorian-1':\n // 01 January, 2001\n sReturnDate = dayjs(dateVal).format('DD MMMM, YYYY');\n break;\n case 'Date-Gregorian-2':\n // January 01, 2001\n sReturnDate = dayjs(dateVal).format('MMMM DD, YYYY');\n break;\n case 'Date-Gregorian-3':\n // 2001, January 01\n sReturnDate = dayjs(dateVal).format('YYYY, MMMM DD');\n break;\n case 'DateTime-Custom':\n break;\n default:\n break;\n }\n\n return sReturnDate;\n }\n\n generateDateTime(dateTimeVal, dateFormat) {\n let sReturnDate = dateTimeVal;\n\n if (dateTimeVal == null || dateTimeVal == '') {\n return dateTimeVal;\n }\n\n dateTimeVal = dateTimeVal.replace('GMT', '+0000');\n\n switch (dateFormat) {\n case 'DateTime-Short':\n // 1/1/01 1:00 AM\n sReturnDate = dayjs(dateTimeVal).format('M/D/YY h:mm A');\n break;\n case 'DateTime-Short-Custom':\n // 01/01/01 01:00 AM\n sReturnDate = dayjs(dateTimeVal).format('MM/DD/YY hh:mm A');\n break;\n case 'DateTime-Short-YYYY-Custom':\n // 01/01/2001 01:00 AM\n sReturnDate = dayjs(dateTimeVal).format('M/D/YYYY hh:mm A');\n break;\n case 'DateTime-Long-YYYY-Custom':\n // 01/01/01 01:00 AM\n sReturnDate = dayjs(dateTimeVal).format('MM/DD/YYYY, hh:mm A');\n break;\n case 'DateTime-Short-YYYY':\n // 1/1/2001 1:00 AM\n sReturnDate = dayjs(dateTimeVal).format('M/D/YYYY h:mm A');\n break;\n case 'DateTime-Medium':\n // Jan 1, 2001 1:00:00 AM\n sReturnDate = dayjs(dateTimeVal).format('MMM D, YYYY h:mm:ss A');\n break;\n case 'DateTime-Long':\n // January 1, 2001 1:00:00 AM\n sReturnDate = dayjs(dateTimeVal).format('MMMM D, YYYY h:mm:ss A');\n break;\n case 'DateTime-DayMonthYear-Custom':\n // 01-Jan-2001 1:00:00 AM\n sReturnDate = dayjs(dateTimeVal).format('DD-MMM-YYYY h:mm:ss A');\n break;\n case 'DateTime-Full':\n // Monday, January 1, 2001 1:00 AM EDT\n sReturnDate = dayjs(dateTimeVal).format('dddd, MMMM D, YYYY h:mm A z');\n break;\n case 'DateTime-Frame':\n case 'DateTime-Frame-Short':\n case 'DateTime-Since':\n // 2 days, 5 hours ago\n sReturnDate = dayjs(dateTimeVal).fromNow();\n break;\n case 'DateTime-ISO-8601':\n // 2001/01/01 1:00:00 AM y/m/d\n sReturnDate = dayjs(dateTimeVal).format('YYYY/MM/DD h:mm:ss A');\n break;\n case 'DateTime-Gregorian-1':\n // 01 January, 2001 1:00:00 AM\n sReturnDate = dayjs(dateTimeVal).format('DD MMMM, YYYY h:mm:ss A');\n break;\n case 'DateTime-Gregorian-2':\n // January 01, 2001 1:00:00 AM\n sReturnDate = dayjs(dateTimeVal).format('MMMM DD, YYYY h:mm:ss A');\n break;\n case 'DateTime-Gregorian-3':\n // 2001, January 01 1:00:00 AM\n sReturnDate = dayjs(dateTimeVal).format('YYYY, MMMM DD h:mm:ss A');\n break;\n case 'DateTime-Custom':\n break;\n default:\n break;\n }\n\n return sReturnDate;\n }\n\n getIconFromFileType(fileType): string {\n let icon = 'document-doc';\n if (!fileType) return icon;\n if (fileType.startsWith('audio')) {\n icon = 'audio';\n } else if (fileType.startsWith('video')) {\n icon = 'video';\n } else if (fileType.startsWith('image')) {\n icon = 'picture';\n } else if (fileType.includes('pdf')) {\n icon = 'document-pdf';\n } else {\n const [, subtype] = fileType.split('/');\n const foundMatch = sources => {\n return sources.some(key => subtype.includes(key));\n };\n\n if (foundMatch(['excel', 'spreadsheet'])) {\n icon = 'document-xls';\n } else if (foundMatch(['zip', 'compressed', 'gzip', 'rar', 'tar'])) {\n icon = 'document-compress';\n }\n }\n\n return icon;\n }\n\n getIconForAttachment(attachment) {\n let icon;\n switch (attachment.type) {\n case 'FILE':\n icon = this.getIconFromFileType(attachment.mimeType);\n break;\n case 'URL':\n icon = 'chain';\n break;\n default:\n icon = 'document-doc';\n }\n return icon;\n }\n\n addViewContainer() {\n if (sessionStorage.getItem('viewContainerCount') == null) {\n sessionStorage.setItem('viewContainerCount', '0');\n }\n\n let count = parseInt(sessionStorage.getItem('viewContainerCount') as string, 10);\n count++;\n\n sessionStorage.setItem('viewContainerCount', count.toString());\n }\n\n removeViewContainer() {\n return;\n\n let count = parseInt(sessionStorage.getItem('viewContainerCount') as string, 10);\n count--;\n\n sessionStorage.setItem('viewContainerCount', count.toString());\n }\n\n okToAddContainerToVC(): boolean {\n if (sessionStorage.getItem('viewContainerCount') == null) {\n sessionStorage.setItem('viewContainerCount', '0');\n }\n\n const count = parseInt(sessionStorage.getItem('viewContainerCount') as string, 10);\n\n return count === 0;\n }\n\n getUserId = user => {\n let userId = '';\n if (typeof user === 'object' && user !== null && user.userId) {\n userId = user.userId;\n } else if (typeof user === 'string' && user) {\n userId = user;\n }\n return userId;\n };\n\n static sdkGetAuthHeader(): string {\n return sessionStorage.getItem('asdk_AH') as string;\n }\n\n static isEmptyObject(obj: Object): boolean {\n return Object.keys(obj).length === 0;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProgressSpinnerService {\n private subject = new Subject<void | object>();\n\n /**\n * Function to show/hide spinner\n * @param bShow - true: show spinner, false: hide spinner\n */\n sendMessage(bShow: boolean) {\n this.subject.next({ show: bShow });\n }\n\n clearMessage() {\n this.subject.next();\n }\n\n getMessage(): Observable<any> {\n return this.subject.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorMessagesService {\n private subject = new Subject<void | object>();\n\n /**\n *\n * @param sAction - show, dismiss\n * @param sActionMessage - text to displayed, will be queued with others until dismiss\n */\n sendMessage(sAction: string, sActionMessage: string) {\n this.subject.next({ action: sAction, actionMessage: sActionMessage });\n }\n\n clearMessage() {\n this.subject.next();\n }\n\n getMessage(): Observable<any> {\n return this.subject.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { interval } from 'rxjs';\nimport isEqual from 'fast-deep-equal';\nimport { ProgressSpinnerService } from '../_messages/progress-spinner.service';\nimport { ErrorMessagesService } from '../_messages/error-messages.service';\nimport { Utils } from '../_helpers/utils';\n\nexport interface AngularPConnectData {\n compID?: string;\n unsubscribeFn?: Function;\n validateMessage?: string;\n actions?: {\n onChange: Function;\n onBlur: Function;\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AngularPConnectService {\n /**\n * Local variable for access to the store once the service is connected to it.\n */\n private theStore: any = null;\n\n /**\n * Local variable used to compute the next componentID\n */\n private counterComponentID = 0;\n\n /**\n * Local array used to store the association of an component to its most recent \"props\"\n * where \"props\" is the object containing the component's getConfigProps along with\n * anything added by populateAdditionalProps.\n * Each entry is: { __componentID__: _the component's most recent props_ }\n */\n private componentPropsArr: Object[] = [];\n\n /* Used to toggle some class-wide logging */\n private static bLogging = false;\n\n constructor(\n private psService: ProgressSpinnerService,\n private erService: ErrorMessagesService,\n private utils: Utils\n ) {\n // Establish necessary override flags for our use of Core\n // const coreOverrides = { \"dynamicLoadComponents\": false };\n // let coreOverrides = PCore.getBehaviorOverrides();\n // coreOverrides[\"dynamicLoadComponents\"] = false;\n // PCore.setBehaviorOverrides( coreOverrides );\n PCore.setBehaviorOverride('dynamicLoadComponents', false);\n\n // Always best to use deep object compare when it's available\n // if (isEqual !== undefined) {\n // console.log(`AngularPConnect is using deep object compare`);\n // } else {\n // console.log(`AngularPConnect is using JSON.stringify compare`);\n // }\n }\n\n /**\n * Returns a unique (for this session) ComponentID that should\n * be used for that component to update its most recent props\n * (which can also be compared against its previous value\n * before updating). Note that this returns a string so we can use\n * it as a key in an associative array\n * @returns the next componentID\n */\n private getNextComponentId(): string {\n this.counterComponentID += 1;\n // Note that we use the string version of the number so we have an\n // associative array that we can clean up later, if needed.\n return this.counterComponentID.toString();\n }\n\n /**\n * The Calling object (inComp) subscribes to store changes.\n * @param inComp The component that's subscribing to the store\n * @param inCallback The component's callback function (typically called onStateChange) that will\n * be called when the store changes.\n * @returns The **unsubscribe** function that should be called when the component needs\n * to unsubscribe from the store. (Typically during ngOnDestroy)\n */\n private subscribeToStore(inComp: any = null, inCallback: Function | null = null): Function {\n // const theCompName: string = inComp ? `${inComp.constructor.name}` : 'no component provided';\n let fnUnsubscribe;\n // console.log( `Bridge subscribing: ${theCompName} `);\n if (inComp) {\n fnUnsubscribe = this.getStore().subscribe(inCallback);\n }\n return fnUnsubscribe;\n }\n\n /**\n * Gets the Component's properties that are used (a) to populate componentPropsArr\n // and (b) to determine whether the component should update itself (re-render)\n * @param inComp The component whose properties are being obtained\n */\n private getComponentProps(inComp: any = null): Object {\n let compProps: any = {};\n let addProps = {};\n\n if (inComp === null) {\n console.error(`AngularPConnect: getComponentProps called with bad component: ${inComp}`);\n }\n\n // if ((inComp.constructor.name === \"FlowContainerComponent\") || (inComp.constructor.name === \"ViewContainerComponent\")\n // || (inComp.constructor.name === \"ViewComponent\") || (inComp.constructor.name === \"DeferLoadComponent\")) {\n // console.log(`--> AngularPConnect getComponentProps: ${inComp.constructor.name}`);\n // }\n\n if (inComp.additionalProps !== undefined) {\n if (typeof inComp.additionalProps === 'object') {\n addProps = inComp.pConn$.resolveConfigProps(inComp.additionalProps);\n } else if (typeof inComp.additionalProps === 'function') {\n const propsToAdd = inComp.additionalProps(PCore.getStore().getState(), inComp.pConn$);\n addProps = inComp.pConn$.resolveConfigProps(propsToAdd);\n }\n }\n\n compProps = inComp.pConn$.getConfigProps();\n\n // const componentName = inComp.constructor.name;\n\n // The following comment is from the Nebula/Constellation version of this code. Meant as a reminder to check this occasionally\n // populate additional props which are component specific and not present in configurations\n // This block can be removed once all these props will be added as part of configs\n inComp.pConn$.populateAdditionalProps(compProps);\n\n compProps = inComp.pConn$.resolveConfigProps(compProps);\n\n if (compProps && undefined !== compProps.validatemessage && compProps.validatemessage != '') {\n // console.log( ` validatemessage for ${inComp.constructor.name} ${inComp.angularPConnectData.compID}: ${compProps.validatemessage}`);\n }\n\n return {\n ...compProps,\n ...addProps\n };\n }\n\n /**\n * Returns the unique id for given component created when registering\n * Otherwise, return undefined.\n * @param inComp The component whose property is being requested.\n */\n public getComponentID(inComp): string {\n return inComp.bridgeComponentID || inComp.angularPConnectData.compID;\n }\n\n /**\n * Returns the value of requested property for the component if it exists.\n * Otherwise, return undefined.\n * @param inComp The component whose property is being requested.\n * @param inProp The property being requested.\n */\n public getComponentProp(inComp: any = null, inProp = '') {\n if (inComp === null) {\n console.error(`AngularPConnect: getComponentProp called with bad component: ${inComp}`);\n }\n\n const compID = inComp.angularPConnectData.compID;\n\n // Look up property in the component's entry in componentPropArray (which should have the most recent value)\n return this.componentPropsArr[compID][inProp];\n }\n\n /**\n *\n * @returns The current complete set of resolved properties that are associated with\n * this component.\n * This is the full set of properties that are tracked in Redux for this component.\n */\n public getCurrentCompleteProps(inComp: any = null) {\n if (inComp === null) {\n console.error(`AngularPConnect: getCurrentCompleteProps called with bad component: ${inComp}`);\n }\n return this.componentPropsArr[inComp.angularPConnectData.compID];\n }\n\n /**\n * Registers the component and its callback function. When a component calls this method\n * (typically from its ngOnInit), the component is given a unique componentID (for this session)\n * and subscribes the component to the store. As a side effect, it also assigns the component's\n * actions (from its metadata) to the component's ___actions___ and binds the component's callback\n * (passed in as ___inCallback___) to the component. If a problem is encountered, an empty object,\n * {}, is returned.\n * @param inComp The component being registered and subscribed\n * @param inCallback The component's callback function (typically called onStateChange) that\n * will be called whenever the state changes.\n * @returns A JSON object with the following keys:\n * compID: the unique ID associated with this component,\n * unsubscribeFn: the function to be called when the component needs to unsubscribe from the store,\n * validateMessage: any validation/error message that gets generated for this object,\n * actions: any actions that are defined for this object\n */\n registerAndSubscribeComponent(inComp, inCallback: Function | null = null): AngularPConnectData {\n // Create an initial object to be returned.\n const returnObject: AngularPConnectData = {\n compID: '',\n unsubscribeFn: undefined,\n validateMessage: '',\n actions: undefined\n };\n\n if (inComp === null || inCallback === null) {\n console.error(`AngularPConnect: bad call to registerAndSubscribe: inComp: ${inComp} inCallback: ${inCallback}`);\n return returnObject;\n }\n\n const compType = inComp.constructor.name;\n\n if (AngularPConnectService.bLogging) {\n console.log(`registerAndSubscribeComponent: ${compType}`);\n }\n\n if (undefined !== inComp.bridgeComponentID) {\n console.error(`OLD SCHOOL: ${compType}`);\n }\n\n if (undefined === inComp.actions && undefined === inComp.angularPConnectData) {\n console.error(`AngularPConnect: bad call to registerAndSubscribe from ${compType}: actions not defined as a class variable for inComp`);\n return returnObject;\n }\n if (undefined === inComp.bridgeComponentID && undefined === inComp.angularPConnectData) {\n console.error(\n `AngularPConnect: bad call to registerAndSubscribe from ${compType}: bridgeComponentID not defined as a class variable for inComp`\n );\n return returnObject;\n }\n if (undefined === inComp.unsubscribeStore && undefined === inComp.angularPConnectData) {\n console.error(\n `AngularPConnect: bad call to registerAndSubscribe from ${compType}: unsubscribeStore not defined as a class variable for inComp`\n );\n return returnObject;\n }\n if (undefined === inComp.validateMessage && undefined === inComp.angularPConnectData) {\n console.error(`AngularPConnect: bad call to registerAndSubscribe from ${compType}: validateMessage not defined as a class variable for inComp`);\n return returnObject;\n }\n\n // call processActions to populate metadata with actions as in PConnectHOR initialize\n this.processActions(inComp);\n if (undefined === inComp.actions) {\n returnObject.actions = inComp.pConn$.getActions();\n } else {\n inComp.actions = inComp.pConn$.getActions();\n }\n\n // bind the provided callback to the component it's associated with\n inCallback = inCallback.bind(inComp);\n\n // Now proceed to register and subscribe...\n const theCompID: string = this.getNextComponentId();\n const theUnsub: Function | null = this.subscribeToStore(inComp, inCallback);\n\n if (undefined === inComp.angularPConnectData) {\n inComp.bridgeComponentID = theCompID;\n } else {\n returnObject.compID = theCompID;\n returnObject.unsubscribeFn = theUnsub;\n }\n\n // initialize this components entry in the componentPropsArr\n this.componentPropsArr[theCompID] = {};\n\n // return object with compID and unsubscribe...\n return returnObject;\n }\n\n // Returns true if the component's entry in ___componentPropsArr___ is\n // the same as the inCompProps passed in.\n // As a side effect, update the component's entry in componentPropsArr\n // NOTE: It is assumed that the incoming component has the following:\n // * a bridgeComponentID <string> property - used as lookup key in componentPropsArr\n // * a pConn$ <?> property - used to access functions accessed in getComponentProps\n // Return true: means the component props are different and the component should update itself (re-render)\n // Return false: means the component props are the same and the component doesn't need to update (re-render)\n // On bad input, return false;\n /**\n * Returns **true** if the component's entry in ___componentPropsArr___ is\n * the same as the properties that are current associated with the component (___inComp___) passed in.\n * As a side effect, the component's entry in ___componentPropsArr___ is updated.\n * **Note**: It is assumed that the incoming component has the following:\n * (a) a bridgeComponentID _string_ property used as lookup key in ___componentPropsArr___\n * and (b) a ___pConn$___ property used to access functions called in ___getComponentProps___\n *\n * @param inComp The component asking if it should update itself\n * @returns Return **true**: means the component props are different and the component should update itself (re-render).\n * Return **false**: means the component props are the same and the component doesn't need to update (re-render).\n * If the ***inComp*** input is bad, false is also returned.\n */\n shouldComponentUpdate(inComp): boolean {\n // const bShowLogging = false;\n let bRet = false;\n // check for reasonable input\n if (Utils.isEmptyObject(inComp)) {\n console.error(`AngularPConnect: bad call to shouldComponentUpdate: inComp: ${JSON.stringify(inComp)}`);\n return bRet;\n }\n if (undefined === inComp.validateMessage && undefined === inComp.angularPConnectData) {\n console.error(`AngularPConnect: bad call to shouldComponentUpdate: ${inComp.constructor.name} does not have a validateMessage property.`);\n }\n\n const compID = this.getComponentID(inComp);\n\n const currentProps: any = this.componentPropsArr[compID];\n const currentPropsAsStr: string = JSON.stringify(currentProps);\n\n const incomingProps: any = this.getComponentProps(inComp);\n\n // if have pageMessages, and it is blank, remove it. This causes issues of making it appear\n // that a will cause an update, when there is no change\n if (this.isPageMessagesEmpty(incomingProps)) {\n inComp.angularPConnectData.pageMessages = incomingProps.pageMessages;\n delete incomingProps.pageMessages;\n }\n\n if (incomingProps.httpMessages) {\n inComp.angularPConnectData.httpMessages = incomingProps.httpMessages;\n incomingProps.httpMessages = undefined;\n }\n\n const incomingPropsAsStr: string = JSON.stringify(incomingProps);\n\n bRet = isEqual ? !isEqual(currentProps, incomingProps) : currentPropsAsStr != incomingPropsAsStr;\n\n // Below piece of code is needed to re-render the component since we wanna evaluate the Visibility expression within View component in such cases\n if (inComp.pConn$.meta.config.context?.length > 0 && inComp.pConn$.getPageReference().length > 'caseInfo.content'.length) {\n return true;\n }\n\n // Now update the entry in componentPropsArr with the incoming value so\n // we can compare against that next time...\n this.componentPropsArr[compID] = incomingProps;\n const validatemessage = incomingProps.validatemessage === undefined ? '' : this.utils.htmlDecode(incomingProps.validatemessage);\n // and update the component's validation message (if undefined, it should be set to \"\")\n if (undefined !== inComp.angularPConnectData) {\n inComp.angularPConnectData.validateMessage = validatemessage;\n\n if (inComp.angularPConnectData.validateMessage != '') {\n // if have a validate message, turn off spinner\n const timer = interval(100).subscribe(() => {\n this.psService.sendMessage(false);\n\n timer.unsubscribe();\n });\n\n let sErrorMessage = currentProps && currentProps.label ? currentProps.label.concat(' - ') : '';\n sErrorMessage = sErrorMessage.concat(inComp.angularPConnectData.validateMessage);\n this.erService.sendMessage('update', sErrorMessage);\n }\n } else {\n inComp.validateMessage = validatemessage;\n }\n\n if (bRet && compID === undefined) {\n bRet = false;\n }\n\n // console.log( `AngularPConnect component ${compID} - ${inComp.constructor.name} - shouldComponentUpdate: ${bRet}`);\n // console.log(\"current props: \" + currentPropsAsStr);\n\n if (bRet) {\n // console.log(`**** change for: ${inComp.constructor.name}`);\n // console.log(\"current props: \" + currentPropsAsStr);\n // console.log(\"incoming props: \" + incomingPropsAsStr);\n // console.log(` ${inComp.constructor.name}: shouldComponentUpdate returning: ${bRet}, compId: ${compID}` );\n // console.log( ` Updating with componentProps for ${inComp.constructor.name}: ${JSON.stringify(this.componentPropsArr[compID])}`);\n // console.log( ` and validateMessage: ${inComp.validateMessage}`);\n }\n // else if (inComp.constructor.name.indexOf(\"View\") >= 0 || inComp.constructor.name.indexOf(\"Root\") >= 0) {\n // console.log(\"no change\");\n // console.log(\"current props: \" + currentPropsAsStr);\n // console.log(\"incoming props: \" + incomingPropsAsStr);\n // console.log(` ${inComp.constructor.name}: shouldComponentUpdate returning: ${bRet}, compId: ${compID}` );\n\n // }\n\n // console.log(` ${inComp.constructor.name}: shouldComponentUpdate returning: ${bRet}`);\n\n return bRet;\n }\n\n isPageMessagesEmpty(incomingProps) {\n return incomingProps.pageMessages && incomingProps.pageMessages.length === 0;\n }\n\n /**\n * Can be called when the component has encountered a change event\n * @param inComp The component calling the change event\n * @param event The event\n */\n changeHandler(inComp, event) {\n const bLogging = false;\n if (bLogging) {\n // console.log(`AngularPConnect.changeHandler`);\n }\n // check for reasonable input\n if (undefined === inComp || Utils.isEmptyObject(inComp)) {\n console.error(`AngularPConnect: bad call to changeHandler: inComp: ${JSON.stringify(inComp)}`);\n return;\n }\n\n const pConnect = inComp.pConn$;\n if (undefined === pConnect) {\n console.error(`AngularPConnect: bad call to changeHandler: inComp.pConn$: ${pConnect}`);\n return;\n }\n\n // clear out errors\n this.erService.sendMessage('dismiss', '');\n\n pConnect.getActionsApi().changeHandler(pConnect, event);\n }\n\n /**\n * Can be called when the component has encountered an event (such as blur)\n * @param inComp The component calling the event\n * @param event The event\n */\n eventHandler(inComp, event) {\n const bLogging = false;\n if (bLogging) {\n // console.log(`AngularPConnect.eventHandler`);\n }\n // check for reasonable input\n if (undefined === inComp || Utils.isEmptyObject(inComp)) {\n console.error(`AngularPConnect: bad call to eventHandler: inComp: ${JSON.stringify(inComp)}`);\n return;\n }\n\n const pConnect = inComp.pConn$;\n if (undefined === pConnect) {\n console.error(`AngularPConnect: bad call to eventHandler: inComp.pConn$: ${pConnect}`);\n return;\n }\n\n pConnect.getActionsApi().eventHandler(pConnect, event);\n }\n\n /**\n * @returns A handle to the application's store\n */\n getStore() {\n if (this.theStore === null) {\n this.theStore = PCore.getStore();\n }\n return this.theStore;\n }\n\n /**\n * @param bLogMsg If true, will write the stringified state to the store for debugging/inspection\n * @param inComp If supplied, the component that is requesting the store's state\n * @returns A handle to the __state__ of application's store\n */\n getState(bLogMsg: boolean = false, inComp: any = null) {\n const theState: object = this.getStore().getState();\n if (bLogMsg) {\n const theCompName: string = inComp ? `${inComp.constructor.name}: ` : '';\n console.log(`${theCompName} Store state: ${JSON.stringify(theState)}`);\n }\n return theState;\n }\n\n // processActions - carried over from PConnectHOC initialize\n /**\n * processActions exposes all actions in the metadata.\n * Attaches common handler (eventHandler) for all actions.\n */\n private processActions(inComp) {\n const pConnect = inComp.pConn$;\n if (undefined === pConnect) {\n console.error(`AngularPConnect: bad call to processActions: pConn$: ${pConnect} from component: ${inComp.constructor.name}`);\n return;\n }\n\n if (inComp.pConn$.isEditable()) {\n inComp.pConn$.setAction('onChange', this.changeHandler.bind(this));\n inComp.pConn$.setAction('onBlur', this.eventHandler.bind(this));\n }\n }\n}\n","// OAuth login box type (only recent testing with Main)\nexport const loginBoxType = {\n Main: 1,\n Popup: 2,\n Modal: 3\n};\n\nexport const endpoints = {\n // Change this URL if you want to point the React application at another Pega server.\n // local\n // BASEURL: \"http://localhost:1080/prweb/api\",\n // BASEURL: \"https://localhost:1080/prweb/api\",\n // 85\n // BASEURL: \"https://lu-85-cam.eng.pega.com/prweb/api\",\n\n loginExperience: loginBoxType.Main,\n\n // OAUTHCFG: {\n // providerID: \"pega\",\n // authorization: \"https://localhost:1080/prweb/PRRestService/oauth2/v1/authorize\",\n // authority: \"https://localhost:1080/prweb/PRRestService/oauth2/v1\",\n // token: \"https://localhost:1080/prweb/PRRestService/oauth2/v1/token\",\n // scope: [],\n // // for mashup MediaCo login customer, otherwise, regular login pass in client id\n // client_id: \"12595401538569726922\",\n // client_secret: \"CC374FD41B4F0726C7F2A4DD8CE1E991\",\n // grant_type: \"client_credentials\",\n // // main window login\n // use_pkce: true,\n // loginExperience: loginBoxType.Main\n // },\n\n SP_VERSION: '1.00',\n\n AUTH: '/v1/authenticate',\n CASES: '/v1/cases',\n CASES_V2: '/application/v2/cases',\n CASETYPES: '/v1/casetypes',\n CASETYPES_V2: '/application/v2/casetypes',\n CONFIG_V2: '/application/v2/config',\n VIEWS: '/views',\n ASSIGNMENTS: '/v1/assignments',\n ASSIGNMENTS_V2: '/application/v2/assignments',\n ACTIONS: '/actions',\n PAGES: '/pages',\n DATA: '/v1/data',\n DATA_V2: '/application/v2/data',\n REFRESH: '/refresh',\n BACK_V2: '/navigation_steps/previous',\n PULSE: '/v1/messages',\n PULSE_V2: '/v2/messages',\n ROUTING: 'mashup',\n MEDIACO: 'MediaCo',\n API: 'api',\n\n EMBEDDED: 'embedded',\n EMBEDDEDHTML: 'embedded.html',\n MASHUP: 'mashup',\n MASHUPHTML: 'mashup.html',\n SIMPLEPORTAL: 'simpleportal',\n SIMPLEPORTALHTML: 'simpleportal.html',\n PORTAL: 'portal',\n PORTALHTML: 'portal.html',\n FULLPORTAL: 'fullportal',\n FULLPORTALHTML: 'fullportal.html'\n};\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { endpoints } from './endpoints';\nimport { ServerConfigService } from './server-config.service';\nimport { Utils } from '../_helpers/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DatapageService {\n constructor(\n private http: HttpClient,\n private scService: ServerConfigService\n ) {}\n\n // dataPageUrl = endpoints.BASEURL + endpoints.DATA;\n // dataPageUrl = this.scService.getBaseUrl() + endpoints.API + endpoints.DATA;\n dataPageUrl: string;\n\n getDataPage(id, dpParams) {\n this.dataPageUrl = this.scService.getBaseUrl() + endpoints.API + endpoints.DATA;\n\n let dataHeaders = new HttpHeaders();\n\n dataHeaders = dataHeaders.append('Authorization', Utils.sdkGetAuthHeader());\n\n dataHeaders = dataHeaders.append('Content-Type', 'application/json');\n\n return this.http.get(`${this.dataPageUrl}/${id}`, { observe: 'response', params: dpParams, headers: dataHeaders });\n }\n\n getResults(response) {\n return response.pxResults;\n }\n\n getDataPageData(dataPageName, parameters, context) {\n let dataViewParams;\n if (parameters) {\n dataViewParams = {\n dataViewParameters: parameters\n };\n }\n return new Promise((resolve, reject) => {\n (PCore.getDataApiUtils().getData(dataPageName, dataViewParams, context) as Promise<object>)\n .then((response: any) => {\n resolve(response.data.data);\n })\n .catch(e => {\n if (e) {\n // check specific error if 401, and wiped out if so stored token is stale. Fetcch new tokens.\n reject(e);\n }\n });\n });\n }\n}\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatAutocompleteModule, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval, Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DatapageService } from '../../../_services/datapage.service';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface AutoCompleteProps extends PConnFieldProps {\n // If any, enter additional props that only exist on AutoComplete here\n deferDatasource?: boolean;\n datasourceMetadata?: any;\n onRecordChange?: any;\n additionalProps?: object;\n listType: string;\n parameters?: any;\n datasource: any;\n columns: any[];\n}\n\n@Component({\n selector: 'app-auto-complete',\n templateUrl: './auto-complete.component.html',\n styleUrls: ['./auto-complete.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n MatOptionModule,\n forwardRef(() => ComponentMapperComponent)\n ]\n})\nexport class AutoCompleteComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: AutoCompleteProps;\n\n label$ = '';\n value$ = '';\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n options$: any[];\n componentReference = '';\n testId: string;\n listType: string;\n columns = [];\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl('', null);\n parameters: {};\n hideLabel: boolean;\n filteredOptions: Observable<any[]>;\n filterValue = '';\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils,\n private dataPageService: DatapageService\n ) {}\n\n async ngOnInit(): Promise<void> {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n await this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n\n this.filteredOptions = this.fieldControl.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value || ''))\n );\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n private _filter(value: string): string[] {\n const filterVal = (value || this.filterValue).toLowerCase();\n return this.options$?.filter(option => option.value.toLowerCase().includes(filterVal));\n }\n\n // Callback passed when subscribing to store change\n async onStateChange() {\n await this.checkAndUpdate();\n }\n\n async checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n await this.updateSelf();\n }\n }\n\n // updateSelf\n async updateSelf(): Promise<void> {\n // starting very simple...\n\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AutoCompleteProps;\n\n if (this.configProps$.value != undefined) {\n const index = this.options$?.findIndex(element => element.key === this.configProps$.value);\n this.value$ = index > -1 ? this.options$[index].value : this.configProps$.value;\n }\n\n this.setPropertyValuesFromProps();\n\n const context = this.pConn$.getContextName();\n const { columns, datasource } = this.generateColumnsAndDataSource();\n\n if (columns) {\n this.columns = this.preProcessColumns(columns);\n }\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n if (this.listType === 'associated') {\n this.options$ = this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject('')); // 1st arg empty string until typedef marked correctly\n }\n\n if (!this.displayMode$ && this.listType !== 'associated') {\n const results = await this.dataPageService.getDataPageData(datasource, this.parameters, context);\n this.fillOptions(results);\n }\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n setPropertyValuesFromProps() {\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.placeholder = this.configProps$.placeholder || '';\n this.displayMode$ = this.configProps$.displayMode;\n this.listType = this.configProps$.listType;\n this.hideLabel = this.configProps$.hideLabel;\n this.helperText = this.configProps$.helperText;\n this.parameters = this.configProps$?.parameters;\n }\n\n generateColumnsAndDataSource() {\n let datasource = this.configProps$.datasource;\n let columns = this.configProps$.columns;\n // const { deferDatasource, datasourceMetadata } = this.configProps$;\n const { deferDatasource, datasourceMetadata }: any = this.pConn$.getConfigProps();\n // convert associated to datapage listtype and transform props\n // Process deferDatasource when datapage name is present. WHhen tableType is promptList / localList\n if (deferDatasource && datasourceMetadata?.datasource?.name) {\n this.listType = 'datapage';\n datasource = datasourceMetadata.datasource.name;\n const { parameters, propertyForDisplayText, propertyForValue } = datasourceMetadata.datasource;\n this.parameters = this.flattenParameters(parameters);\n const displayProp = propertyForDisplayText?.startsWith('@P') ? propertyForDisplayText.substring(3) : propertyForDisplayText;\n const valueProp = propertyForValue?.startsWith('@P') ? propertyForValue.substring(3) : propertyForValue;\n columns = [\n {\n key: 'true',\n setProperty: 'Associated property',\n value: valueProp\n },\n {\n display: 'true',\n primary: 'true',\n useForSearch: true,\n value: displayProp\n }\n ];\n }\n\n return { columns, datasource };\n }\n\n fillOptions(results: any) {\n const optionsData: any[] = [];\n const displayColumn = this.getDisplayFieldsMetaData(this.columns);\n results?.forEach(element => {\n const obj = {\n key: element[displayColumn.key] || element.pyGUID,\n value: element[displayColumn.primary]?.toString()\n };\n optionsData.push(obj);\n });\n this.options$ = optionsData;\n }\n\n flattenParameters(params = {}) {\n const flatParams = {};\n Object.keys(params).forEach(key => {\n const { name, value: theVal } = params[key];\n flatParams[name] = theVal;\n });\n\n return flatParams;\n }\n\n getDisplayFieldsMetaData(columnList) {\n const displayColumns = columnList.filter(col => col.display === 'true');\n const metaDataObj: any = { key: '', primary: '', secondary: [] };\n const keyCol = columnList.filter(col => col.key === 'true');\n metaDataObj.key = keyCol.length > 0 ? keyCol[0].value : 'auto';\n for (let index = 0; index < displayColumns.length; index += 1) {\n if (displayColumns[index].primary === 'true') {\n metaDataObj.primary = displayColumns[index].value;\n } else {\n metaDataObj.secondary.push(displayColumns[index].value);\n }\n }\n return metaDataObj;\n }\n\n preProcessColumns(columnList) {\n return columnList?.map(col => {\n const tempColObj = { ...col };\n tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;\n return tempColObj;\n });\n }\n\n fieldOnChange(event: Event) {\n // this works - this.pConn$.setValue( this.componentReference, `property: ${this.componentReference}`);\n // this works - this.pConn$.setValue( this.componentReference, this.fieldControl.value);\n // PConnect wants to use changeHandler for onChange\n // this.angularPConnect.changeHandler( this, event);\n this.filterValue = (event.target as HTMLInputElement).value;\n\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n optionChanged(event: MatAutocompleteSelectedEvent) {\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: Event) {\n let key = '';\n const el = event?.target as HTMLInputElement;\n if (el?.value) {\n const index = this.options$?.findIndex(element => element.value === el.value);\n key = index > -1 ? (key = this.options$[index].key) : el.value;\n }\n\n const value = key;\n const actionsApi = this.pConn$?.getActionsApi();\n const propName = (this.pConn$?.getStateProps() as any).value;\n handleEvent(actionsApi, 'changeNblur', propName, value);\n if (this.configProps$?.onRecordChange) {\n el.value = value;\n this.configProps$.onRecordChange(event);\n }\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, hideLabel }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [matAutocomplete]=\"auto\"\n (input)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption (optionSelected)=\"optionChanged($event)\">\n <mat-option *ngFor=\"let opt of filteredOptions | async\" [value]=\"opt.value\">\n <span>{{ opt.value }}</span>\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\n\n@Component({\n selector: 'app-cancel-alert',\n templateUrl: './cancel-alert.component.html',\n styleUrls: ['./cancel-alert.component.scss'],\n standalone: true,\n imports: [CommonModule, MatGridListModule, MatButtonModule]\n})\nexport class CancelAlertComponent implements OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() bShowAlert$: boolean;\n @Output() onAlertState$: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n heading$: string;\n body1$: string;\n body2$: string;\n itemKey: string;\n localizedVal: Function;\n localeCategory = 'ModalContainer';\n\n constructor(private psService: ProgressSpinnerService) {}\n ngOnChanges() {\n if (this.bShowAlert$) {\n this.psService.sendMessage(false);\n\n const contextName = this.pConn$.getContextName();\n const caseInfo = this.pConn$.getCaseInfo();\n const caseName = caseInfo.getName();\n const ID = caseInfo.getID();\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n\n this.itemKey = contextName;\n this.heading$ = `Delete ${caseName} (${ID})`;\n this.body1$ = `${this.localizedVal('Are you sure you want to delete ', this.localeCategory) + caseName} (${ID})?`;\n this.body2$ = this.localizedVal('Alternatively, you can continue working or save your work for later.', this.localeCategory);\n\n // this.onAlertState$.emit(true);\n }\n }\n\n dismissAlert() {\n this.bShowAlert$ = false;\n this.onAlertState$.emit(false);\n }\n\n dismissAlertOnly() {\n this.bShowAlert$ = false;\n this.onAlertState$.emit(true);\n }\n\n sendMessage(sMessage: string) {\n alert(sMessage);\n }\n\n buttonClick(sAction) {\n const actionsAPI = this.pConn$.getActionsApi();\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n\n switch (sAction) {\n case 'save':\n this.psService.sendMessage(true);\n // eslint-disable-next-line no-case-declarations\n const savePromise = actionsAPI.saveAndClose(this.itemKey);\n savePromise\n .then(() => {\n this.psService.sendMessage(false);\n this.dismissAlert();\n\n // @ts-ignore - second parameter “payload” for publish method should be optional\n PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CASE_CREATED);\n })\n .catch(() => {\n this.psService.sendMessage(false);\n this.sendMessage(this.localizedVal('Save failed', this.localeCategory));\n });\n break;\n case 'continue':\n this.dismissAlertOnly();\n break;\n case 'delete':\n this.psService.sendMessage(true);\n\n // eslint-disable-next-line no-case-declarations\n const deletePromise = actionsAPI.deleteCaseInCreateStage(this.itemKey);\n\n deletePromise\n .then(() => {\n this.psService.sendMessage(false);\n this.dismissAlert();\n // @ts-ignore - second parameter “payload” for publish method should be optional\n PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);\n })\n .catch(() => {\n this.psService.sendMessage(false);\n this.sendMessage(this.localizedVal('Delete failed.', this.localeCategory));\n });\n break;\n default:\n break;\n }\n }\n}\n","<div *ngIf=\"bShowAlert$\" class=\"psdk-cancel-alert-background\">\n <div class=\"psdk-cancel-alert-top\">\n <h3 *ngIf=\"heading$ != ''\">{{ heading$ }}</h3>\n <div>\n <p>{{ body1$ }}</p>\n <p>{{ body2$ }}</p>\n </div>\n <mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n <mat-grid-tile>\n <button mat-raised-button color=\"secondary\" (click)=\"buttonClick('save')\">{{ localizedVal('Save for later', localeCategory) }}</button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button mat-raised-button color=\"secondary\" (click)=\"buttonClick('continue')\">{{ localizedVal('Continue Working', localeCategory) }}</button>\n <button mat-raised-button color=\"primary\" (click)=\"buttonClick('delete')\">{{ localizedVal('Delete', localeCategory) }}</button>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n</div>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface CheckboxProps extends Omit<PConnFieldProps, 'value'> {\n // If any, enter additional props that only exist on Checkbox here\n // Everything from PConnFieldProps except value and change type of value to boolean\n value: boolean;\n caption?: string;\n}\n\n@Component({\n selector: 'app-check-box',\n templateUrl: './check-box.component.html',\n styleUrls: ['./check-box.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatCheckboxModule, MatFormFieldModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CheckBoxComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: CheckboxProps;\n\n label$ = '';\n value$: any = '';\n caption$?: string = '';\n testId = '';\n showLabel$ = false;\n isChecked$ = false;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n helperText: string;\n\n fieldControl = new FormControl('', null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CheckboxProps;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n\n this.caption$ = this.configProps$.caption;\n this.helperText = this.configProps$.helperText;\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n if (this.label$ != '') {\n this.showLabel$ = true;\n }\n\n // eslint-disable-next-line sonarjs/no-redundant-boolean\n if (this.value$ === 'true' || this.value$ == true) {\n this.isChecked$ = true;\n } else {\n this.isChecked$ = false;\n }\n }\n\n fieldOnChange(event: any) {\n event.value = event.checked;\n\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n event.value = event.checked;\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <div class=\"mat-form-field-infix\" *ngIf=\"showLabel$\">\n <span>\n <label class=\"mat-form-field-label psdk-label-readonly\">{{ label$ }}</label>\n </span>\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <div class=\"mat-form-field-infix\" *ngIf=\"!bReadonly$ && !showLabel$\">\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <mat-hint *ngIf=\"helperText\">{{ helperText }}</mat-hint>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import dayjs from 'dayjs';\n\nexport function getLocale(locale = ''): string | undefined {\n // use locale if specified\n if (locale) return locale;\n // otherwise, use operator locale if it's defined\n if (PCore?.getEnvironmentInfo().getLocale()) return PCore.getEnvironmentInfo().getLocale();\n // fallback\n return Intl.DateTimeFormat().resolvedOptions().locale;\n}\n\nexport function getCurrentTimezone(timezone = 'America/New_York') {\n if (timezone) return timezone;\n return PCore?.getLocaleUtils?.().getTimeZoneInUse?.();\n}\n\nexport function getSeconds(sTime): any {\n return dayjs(sTime).valueOf();\n}\n","/* eslint-disable no-template-curly-in-string */\nconst EURO = {\n name: 'Euro (EUR)',\n symbolFormat: '\\u20AC{#}',\n currencyCode: 'EUR {#}'\n};\n\nconst USD = {\n name: 'U.S. Dollar (USD)',\n symbolFormat: '${#}',\n currencyCode: 'USD {#}'\n};\n\nconst XAF = {\n name: 'CFA Franc (BEAC) (XAF)',\n symbolFormat: 'XAF {#}',\n currencyCode: 'XAF {#}'\n};\n\nconst XCD = {\n name: 'East Caribbean Dollar (XCD)',\n symbolFormat: '${#}',\n currencyCode: 'XCD {#}'\n};\n\nconst XPF = {\n name: 'Pacific Franc (XPF)',\n symbolFormat: '₣{#}',\n currencyCode: 'XPF {#}'\n};\n\nexport const currencyMap = {\n AF: {\n name: 'Afghanistan Afghani (AFA)',\n symbolFormat: '{#} ؋',\n currencyCode: 'AFA {#}'\n },\n AL: {\n name: 'Albanian Lek (ALL)',\n symbolFormat: '{#} L',\n currencyCode: 'ALL {#}'\n },\n DZ: {\n name: 'Algerian Dinar (DZD)',\n symbolFormat: '{#} DA',\n currencyCode: 'DZD {#}'\n },\n AO: {\n name: 'Angolan New Kwanza (AOA)',\n symbolFormat: '{#} Kz',\n currencyCode: 'AOA {#}'\n },\n AR: {\n name: 'Argentine Peso (ARS)',\n symbolFormat: '${#}',\n currencyCode: 'ARS {#}'\n },\n AM: {\n name: 'Armenian Dram (AMD)',\n symbolFormat: '{#}֏',\n currencyCode: 'AMD {#}'\n },\n AW: {\n name: 'Aruba Florin (AWG)',\n symbolFormat: 'Afl {#}',\n currencyCode: 'AWG {#}'\n },\n AU: {\n name: 'Australian Dollar (AUD)',\n symbolFormat: 'AU${#}',\n currencyCode: 'AUD {#}'\n },\n AZ: {\n name: 'Azerbaijani Manat (AZM)',\n symbolFormat: '₼{#}',\n currencyCode: 'AZM {#}'\n },\n BS: {\n name: 'Bahamian Dollar (BSD)',\n symbolFormat: 'B${#}',\n currencyCode: 'BSD {#}'\n },\n BH: {\n name: 'Bahraini Dinar (BHD)',\n symbolFormat: '{#} BD',\n currencyCode: 'BHD {#}'\n },\n BD: {\n name: 'Bangladesh Taka (BDT)',\n symbolFormat: '৳{#}',\n currencyCode: 'BDT {#}'\n },\n BB: {\n name: 'Barbados Dollar (BBD)',\n symbolFormat: 'Bds${#}',\n currencyCode: 'BBD {#}'\n },\n BY: {\n name: 'Belarus Ruble (BYR)',\n symbolFormat: 'Br {#}',\n currencyCode: 'BYR {#}'\n },\n BZ: {\n name: 'Belize Dollar (BZD)',\n symbolFormat: 'BZ${#}',\n currencyCode: 'BZD {#}'\n },\n BM: {\n name: 'Bermuda Dollar (BMD)',\n symbolFormat: '${#}',\n currencyCode: 'BMD {#}'\n },\n BT: {\n name: 'Bhutan Ngultrum (BTN)',\n symbolFormat: 'Nu.{#}',\n currencyCode: 'BTN {#}'\n },\n BO: {\n name: 'Bolivian Boliviano (BOB)',\n symbolFormat: 'Bs. {#}',\n currencyCode: 'BOB {#}'\n },\n BA: {\n name: 'Bosnian Marka (BAM)',\n symbolFormat: '{#} KM',\n currencyCode: 'BAM {#}'\n },\n BW: {\n name: 'Botswana Pula (BWP)',\n symbolFormat: 'P {#}',\n currencyCode: 'BWP {#}'\n },\n BR: {\n name: 'Brazilian Real (BRL)',\n symbolFormat: 'R${#}',\n currencyCode: 'BRL {#}'\n },\n GB: {\n name: 'British Pound (GBP)',\n symbolFormat: '\\xA3{#}',\n currencyCode: 'GBP {#}'\n },\n BN: {\n name: 'Brunei Dollar (BND)',\n symbolFormat: 'B${#}',\n currencyCode: 'BND {#}'\n },\n BG: {\n name: 'Bulgarian Lev (BGN)',\n symbolFormat: 'BGN {#}',\n currencyCode: 'BGN {#}'\n },\n BI: {\n name: 'Burundi Franc (BIF)',\n symbolFormat: '{#} FBu',\n currencyCode: 'BIF {#}'\n },\n KH: {\n name: 'Cambodia Riel (KHR)',\n symbolFormat: 'KHR {#}',\n currencyCode: 'KHR {#}'\n },\n CA: {\n name: 'Canadian Dollar (CAD)',\n symbolFormat: 'C${#}',\n currencyCode: 'CAD {#}'\n },\n CV: {\n name: 'Cape Verde Escudo (CVE)',\n symbolFormat: '{#} CVE',\n currencyCode: 'CVE {#}'\n },\n KYD: {\n name: 'Cayman Islands Dollar (KYD)',\n symbolFormat: 'CI${#}',\n currencyCode: ' {#}'\n },\n XO: {\n name: 'CFA Franc (BCEAO) (XOF)',\n symbolFormat: 'XOF {#}',\n currencyCode: 'XOF {#}'\n },\n XA: XAF,\n BJ: XAF,\n BF: XAF,\n CM: XAF,\n CF: XAF,\n TD: XAF,\n CG: XAF,\n CI: XAF,\n GQ: XAF,\n GA: XAF,\n GW: XAF,\n ML: XAF,\n NE: XAF,\n SN: XAF,\n TG: XAF,\n CL: {\n name: 'Chilean Peso (CLP)',\n symbolFormat: 'CLP${#}',\n currencyCode: 'CLP {#}'\n },\n CN: {\n name: 'Chinese Yuan (CNY)',\n symbolFormat: '¥{#}',\n currencyCode: 'CNY {#}'\n },\n CO: {\n name: 'Colombian Peso (COP)',\n symbolFormat: 'COL${#}',\n currencyCode: 'COP {#}'\n },\n KM: {\n name: 'Comoros Franc (KMF)',\n symbolFormat: 'CF {#}',\n currencyCode: 'KMF {#}'\n },\n CD: {\n name: 'Congolese Franc (CDF)',\n symbolFormat: 'FC {#}',\n currencyCode: 'CDF {#}'\n },\n CR: {\n name: 'Costa Rica Colon (CRC)',\n symbolFormat: '₡{#}',\n currencyCode: 'CRC {#}'\n },\n HR: {\n name: 'Croatian Kuna (HRK)',\n symbolFormat: '{#} kn',\n currencyCode: 'HRK {#}'\n },\n CU: {\n name: 'Cuban Peso (CUP)',\n symbolFormat: '${#}',\n currencyCode: 'CUP {#}'\n },\n CZ: {\n name: 'Czech Koruna (CZK)',\n symbolFormat: '{#} Kč',\n currencyCode: 'CZK {#}'\n },\n DK: {\n name: 'Danish Krone (DKK)',\n symbolFormat: '{#} Kr.',\n currencyCode: 'DKK {#}'\n },\n DJ: {\n name: 'Dijibouti Franc (DJF)',\n symbolFormat: '{#} Fdj',\n currencyCode: 'DJF {#}'\n },\n DO: {\n name: 'Dominican Peso (DOP)',\n symbolFormat: 'RD${#}',\n currencyCode: 'DOP {#}'\n },\n AI: XCD,\n AG: XCD,\n DM: XCD,\n GD: XCD,\n MS: XCD,\n KN: XCD,\n LC: XCD,\n VC: XCD,\n EG: {\n name: 'Egyptian Pound (EGP)',\n symbolFormat: 'E\\xA3 {#}',\n currencyCode: 'EGP {#}'\n },\n SV: {\n name: 'El Salvador Colon (SVC)',\n symbolFormat: '₡{#}',\n currencyCode: 'SVC {#}'\n },\n ER: {\n name: 'Eritrea Nakfa (ERN)',\n symbolFormat: '{#} Nkf',\n currencyCode: 'ERN {#}'\n },\n ET: {\n name: 'Ethiopian Birr (ETB)',\n symbolFormat: '{#} Br',\n currencyCode: 'ETB {#}'\n },\n\n FK: {\n name: 'Falkland Islands Pound (FKP)',\n symbolFormat: 'FK\\xA3 {#}',\n currencyCode: 'FKP {#}'\n },\n FJ: {\n name: 'Fiji Dollar (FJD)',\n symbolFormat: 'FJ${#}',\n currencyCode: 'FJD {#}'\n },\n GM: {\n name: 'Gambian Dalasi (GMD)',\n symbolFormat: 'GMD {#}',\n currencyCode: 'GMD {#}'\n },\n GE: {\n name: 'Georgian Lari (GEL)',\n symbolFormat: '₾{#}',\n currencyCode: 'GEL {#}'\n },\n GH: {\n name: 'Ghanian Cedi (GHC)',\n symbolFormat: 'GH₵ {#}',\n currencyCode: 'GHC {#}'\n },\n GI: {\n name: 'Gibraltar Pound (GIP)',\n symbolFormat: '\\xA3{#}',\n currencyCode: 'GIP {#}'\n },\n XAU: {\n name: 'Gold Ounces (XAU)',\n symbolFormat: 'XAU {#}',\n currencyCode: 'XAU {#}'\n },\n GT: {\n name: 'Guatemala Quetzal (GTQ)',\n symbolFormat: '{#} Q',\n currencyCode: 'GTQ {#}'\n },\n GG: {\n name: 'Guernsey Pound (GGP)',\n symbolFormat: '\\xA3{#}',\n currencyCode: 'GGP {#}'\n },\n GN: {\n name: 'Guinea Franc (GNF)',\n symbolFormat: 'GNF {#}',\n currencyCode: 'GNF {#}'\n },\n GY: {\n name: 'Guyana Dollar (GYD)',\n symbolFormat: 'GY${#}',\n currencyCode: 'GYD {#}'\n },\n HN: {\n name: 'Honduras Lempira (HNL)',\n symbolFormat: 'HNL {#}',\n currencyCode: 'HNL {#}'\n },\n HK: {\n name: 'Hong Kong Dollar (HKD)',\n symbolFormat: 'HK${#}',\n currencyCode: 'HKD {#}'\n },\n HU: {\n name: 'Hungarian Forint (HUF)',\n symbolFormat: '{#} Ft',\n currencyCode: 'HUF {#}'\n },\n IS: {\n name: 'Iceland Krona (ISK)',\n symbolFormat: '{#} kr',\n currencyCode: 'ISK {#}'\n },\n IN: {\n name: 'Indian Rupee (INR)',\n symbolFormat: '₹{#}',\n currencyCode: 'INR {#}'\n },\n ID: {\n name: 'Indonesian Rupiah (IDR)',\n symbolFormat: 'Rp {#}',\n currencyCode: 'IDR {#}'\n },\n IR: {\n name: 'Iran Rial (IRR)',\n symbolFormat: 'IRR {#}',\n currencyCode: 'IRR {#}'\n },\n IQ: {\n name: 'Iraqi Dinar (IQD)',\n symbolFormat: 'IQD {#}',\n currencyCode: 'IQD {#}'\n },\n IM: {\n name: 'Isle of Man Pound (IMP)',\n symbolFormat: '\\xA3{#}',\n currencyCode: 'IMP {#}'\n },\n IL: {\n name: 'Israeli Shekel (ILS)',\n symbolFormat: '₪{#}',\n currencyCode: 'ILS {#}'\n },\n JM: {\n name: 'Jamaican Dollar (JMD)',\n symbolFormat: 'JA${#}',\n currencyCode: 'JMD {#}'\n },\n JP: {\n name: 'Japanese Yen (JPY)',\n symbolFormat: '\\xA5{#}',\n currencyCode: 'JPY {#}'\n },\n JEP: {\n name: 'Jersey Pound (JEP)',\n symbolFormat: '\\xA3{#}',\n currencyCode: 'JEP {#}'\n },\n JO: {\n name: 'Jordanian Dinar (JOD)',\n symbolFormat: 'JOD {#}',\n currencyCode: 'JOD {#}'\n },\n KZ: {\n name: 'Kazakhstan Tenge (KZT)',\n symbolFormat: '₸{#}',\n currencyCode: 'KZT {#}'\n },\n KE: {\n name: 'Kenyan Shilling (KES)',\n symbolFormat: 'KSh {#}',\n currencyCode: 'KES {#}'\n },\n KR: {\n name: 'Korean Won (KRW)',\n symbolFormat: '₩{#}',\n currencyCode: 'KRW {#}'\n },\n KW: {\n name: 'Kuwaiti Dinar (KWD)',\n symbolFormat: '{#} KD',\n currencyCode: 'KWD {#}'\n },\n KG: {\n name: 'Kyrgyzstan Som (KGS)',\n symbolFormat: 'KGS {#}',\n currencyCode: 'KGS {#}'\n },\n LA: {\n name: 'Lao Kip (LAK)',\n symbolFormat: '₭{#}',\n currencyCode: 'LAK {#}'\n },\n LB: {\n name: 'Lebanese Pound (LBP)',\n symbolFormat: 'LBP {#}',\n currencyCode: 'LBP {#}'\n },\n LS: {\n name: 'Lesotho Rand (ZAR)',\n symbolFormat: 'R{#}',\n currencyCode: 'ZAR {#}'\n },\n LR: {\n name: 'Liberian Dollar (LRD)',\n symbolFormat: 'L${#}',\n currencyCode: 'LRD {#}'\n },\n LY: {\n name: 'Libyan Dinar (LYD)',\n symbolFormat: '{#} LD',\n currencyCode: 'LYD {#}'\n },\n MO: {\n name: 'Macau Pataca (MOP)',\n symbolFormat: 'MOP${#}',\n currencyCode: 'MOP {#}'\n },\n MK: {\n name: 'Macedonian Denar (MKD)',\n symbolFormat: 'MKD {#}',\n currencyCode: 'MKD {#}'\n },\n MG: {\n name: 'Malagasy Franc (MGF)',\n symbolFormat: 'MGF {#}',\n currencyCode: 'MGF {#}'\n },\n MW: {\n name: 'Malawi Kwacha (MWK)',\n symbolFormat: 'MK {#}',\n currencyCode: 'MWK {#}'\n },\n MY: {\n name: 'Malaysian Ringgit (MYR)',\n symbolFormat: 'RM {#}',\n currencyCode: 'MYR {#}'\n },\n MV: {\n name: 'Maldives Rufiyaa (MVR)',\n symbolFormat: 'MVR {#}',\n currencyCode: 'MVR {#}'\n },\n MR: {\n name: 'Mauritania Ougulya (MRO)',\n symbolFormat: 'MRO {#}',\n currencyCode: 'MRO {#}'\n },\n MU: {\n name: 'Mauritius Rupee (MUR)',\n symbolFormat: 'Rs {#}',\n currencyCode: 'MUR {#}'\n },\n MX: {\n name: 'Mexican Peso (MXN)',\n symbolFormat: '${#}',\n currencyCode: 'MXN {#}'\n },\n MD: {\n name: 'Moldovan Leu (MDL)',\n symbolFormat: 'MDL {#}',\n currencyCode: 'MDL {#}'\n },\n MN: {\n name: 'Mongolian Tugrik (MNT)',\n symbolFormat: 'MNT {#}',\n currencyCode: 'MNT {#}'\n },\n MA: {\n name: 'Moroccan Dirham (MAD)',\n symbolFormat: 'MAD {#}',\n currencyCode: 'MAD {#}'\n },\n MZ: {\n name: 'Mozambique Metical (MZM)',\n symbolFormat: 'MZM {#}',\n currencyCode: 'MZM {#}'\n },\n MM: {\n name: 'Myanmar Kyat (MMK)',\n symbolFormat: 'K{#}',\n currencyCode: 'MMK {#}'\n },\n NA: {\n name: 'Namibian Dollar (NAD)',\n symbolFormat: 'N${#}',\n currencyCode: 'NAD {#}'\n },\n NP: {\n name: 'Nepalese Rupee (NPR)',\n symbolFormat: 'रू{#}',\n currencyCode: 'NPR {#}'\n },\n AN: {\n name: 'Neth Antilles Guilder (ANG)',\n symbolFormat: 'ƒ{#}',\n currencyCode: 'ANG {#}'\n },\n NZ: {\n name: 'New Zealand Dollar (NZD)',\n symbolFormat: 'NZ${#}',\n currencyCode: 'NZD {#}'\n },\n CK: {\n name: 'New Zealand Dollar (NZD)',\n symbolFormat: 'NZ${#}',\n currencyCode: 'NZD {#}'\n },\n NU: {\n name: 'New Zealand Dollar (NZD)',\n symbolFormat: 'NZ${#}',\n currencyCode: 'NZD {#}'\n },\n PN: {\n name: 'New Zealand Dollar (NZD)',\n symbolFormat: 'NZ${#}',\n currencyCode: 'NZD {#}'\n },\n NI: {\n name: 'Nicaragua Cordoba (NIO)',\n symbolFormat: 'C${#}',\n currencyCode: 'NIO {#}'\n },\n NG: {\n name: 'Nigerian Naira (NGN)',\n symbolFormat: '₦{#}',\n currencyCode: 'NGN {#}'\n },\n KP: {\n name: 'North Korean Won (KPW)',\n symbolFormat: '₩{#}',\n currencyCode: 'KPW {#}'\n },\n NO: {\n name: 'Norwegian Krone (NOK)',\n symbolFormat: '{#} kr',\n currencyCode: 'NOK {#}'\n },\n OM: {\n name: 'Omani Rial (OMR)',\n symbolFormat: 'OMR {#}',\n currencyCode: 'OMR {#}'\n },\n PF: XPF,\n NC: XPF,\n WF: XPF,\n PK: {\n name: 'Pakistani Rupee (PKR)',\n symbolFormat: 'Rs {#}',\n currencyCode: 'PKR {#}'\n },\n XPD: {\n name: 'Palladium Ounces (XPD)',\n symbolFormat: 'XPD {#}',\n currencyCode: 'XPD {#}'\n },\n PA: {\n name: 'Panama Balboa (PAB)',\n symbolFormat: 'B/. {#}',\n currencyCode: 'PAB {#}'\n },\n PG: {\n name: 'Papua New Guinea Kina (PGK)',\n symbolFormat: 'K {#}',\n currencyCode: 'PGK {#}'\n },\n PY: {\n name: 'Paraguayan Guarani (PYG)',\n symbolFormat: '₲{#}',\n currencyCode: 'PYG {#}'\n },\n PE: {\n name: 'Peruvian Nuevo Sol (PEN)',\n symbolFormat: 'S/{#}',\n currencyCode: 'PEN {#}'\n },\n PH: {\n name: 'Philippine Peso (PHP)',\n symbolFormat: '₱{#}',\n currencyCode: 'PHP {#}'\n },\n XPT: {\n name: 'Platinum Ounces (XPT)',\n symbolFormat: 'XPT {#}',\n currencyCode: 'XPT {#}'\n },\n PL: {\n name: 'Polish Zloty (PL)',\n symbolFormat: '{#}zł',\n currencyCode: 'PLN {#}'\n },\n QA: {\n name: 'Qatar Rial (QAR)',\n symbolFormat: 'QAR {#}',\n currencyCode: 'QAR {#}'\n },\n RO: {\n name: 'Romanian Leu (ROL)',\n symbolFormat: 'RON {#}',\n currencyCode: 'ROL {#}'\n },\n RU: {\n name: 'Russian Rouble (RUB)',\n symbolFormat: '{#}₽',\n currencyCode: 'RUB {#}'\n },\n RW: {\n name: 'Rwanda Franc (RWF)',\n symbolFormat: 'FRw {#}',\n currencyCode: 'RWF {#}'\n },\n WS: {\n name: 'Samoa Tala (WST)',\n symbolFormat: 'WS${#}',\n currencyCode: 'WST {#}'\n },\n ST: {\n name: 'Sao Tome Dobra (STN)',\n symbolFormat: 'STN {#}',\n currencyCode: 'STD {#}'\n },\n SA: {\n name: 'Saudi Arabian Riyal (SAR)',\n symbolFormat: 'SAR {#}',\n currencyCode: 'SAR {#}'\n },\n RS: {\n name: 'Serbian Dinar (RSD)',\n symbolFormat: 'RSD {#}',\n currencyCode: 'RSD {#}'\n },\n SC: {\n name: 'Seychelles Rupee (SCR)',\n symbolFormat: 'SCR {#}',\n currencyCode: 'SCR {#}'\n },\n SL: {\n name: 'Sierra Leone Leone (SLL)',\n symbolFormat: 'SLL {#}',\n currencyCode: 'SLL {#}'\n },\n XAG: {\n name: 'Silver Ounces (XAG)',\n symbolFormat: 'XAG {#}',\n currencyCode: 'XAG {#}'\n },\n SG: {\n name: 'Singapore Dollar (SGD)',\n symbolFormat: 'S${#}',\n currencyCode: 'SGD {#}'\n },\n SB: {\n name: 'Solomon Islands Dollar (SBD)',\n symbolFormat: 'SI${#}',\n currencyCode: 'SBD {#}'\n },\n SO: {\n name: 'Somali Shilling (SOS)',\n symbolFormat: 'SOS {#}',\n currencyCode: 'SOS {#}'\n },\n TJ: {\n name: 'Somoni (TJS)',\n symbolFormat: '${#}',\n currencyCode: 'USD {#}'\n },\n ZA: {\n name: 'South African Rand (ZAR)',\n symbolFormat: 'R{#}',\n currencyCode: 'ZAR {#}'\n },\n LK: {\n name: 'Sri Lanka Rupee (LKR)',\n symbolFormat: 'Rs {#}',\n currencyCode: 'LKR {#}'\n },\n SH: {\n name: 'St Helena Pound (SHP)',\n symbolFormat: '\\xA3{#}',\n currencyCode: 'SHP {#}'\n },\n AC: {\n name: 'St Helena Pound (SHP)',\n symbolFormat: '\\xA3{#}',\n currencyCode: 'SHP {#}'\n },\n SS: {\n name: 'Sudanese Pound (SSP)',\n symbolFormat: 'SSP {#}',\n currencyCode: 'SSP {#}'\n },\n SR: {\n name: 'Surinam Dollar (SRD)',\n symbolFormat: 'Sr${#}',\n currencyCode: 'SRD {#}'\n },\n SZ: {\n name: 'Swaziland Lilageni (SZL)',\n symbolFormat: 'E{#}',\n currencyCode: 'SZL {#}'\n },\n SE: {\n name: 'Swedish Krona (SEK)',\n symbolFormat: '{#} kr',\n currencyCode: 'SEK {#}'\n },\n CH: {\n name: 'Swiss Franc (CHF)',\n symbolFormat: '{#} Fr.',\n currencyCode: 'CHF {#}'\n },\n SY: {\n name: 'Syrian Pound (SYP)',\n symbolFormat: 'SYP {#}',\n currencyCode: 'SYP {#}'\n },\n TW: {\n name: 'Taiwan Dollar (TWD)',\n symbolFormat: 'NT${#}',\n currencyCode: 'TWD {#}'\n },\n TZ: {\n name: 'Tanzanian Shilling (TZS)',\n symbolFormat: 'TZS {#}',\n currencyCode: 'TZS {#}'\n },\n TH: {\n name: 'Thai Baht (THB)',\n symbolFormat: '฿{#}',\n currencyCode: 'THB {#}'\n },\n TO: {\n name: \"Tonga Pa'anga (TOP)\",\n symbolFormat: 'T${#}',\n currencyCode: 'TOP {#}'\n },\n TT: {\n name: 'Trinidad&Tobago Dollar (TTD)',\n symbolFormat: 'TT${#}',\n currencyCode: 'TTD {#}'\n },\n TN: {\n name: 'Tunisian Dinar (TND)',\n symbolFormat: 'TND {#}',\n currencyCode: 'TND {#}'\n },\n TR: {\n name: 'Turkish Lira (TRL)',\n symbolFormat: '₺{#}',\n currencyCode: 'TRL {#}'\n },\n TM: {\n name: 'Turkmen Manat (TMM)',\n symbolFormat: 'TMM {#}',\n currencyCode: 'TMM {#}'\n },\n US: USD,\n AS: USD,\n IO: USD,\n VG: USD,\n GU: USD,\n HT: USD,\n MH: USD,\n FM: USD,\n MP: USD,\n PW: USD,\n PR: USD,\n TC: USD,\n VI: USD,\n AE: {\n name: 'UAE Dirham (AED)',\n symbolFormat: 'AED {#}',\n currencyCode: 'AED {#}'\n },\n UG: {\n name: 'Ugandan Shilling (UGX)',\n symbolFormat: 'USh {#}',\n currencyCode: 'UGX {#}'\n },\n UA: {\n name: 'Ukraine Hryvnia (UAH)',\n symbolFormat: '₴{#}',\n currencyCode: 'UAH {#}'\n },\n UY: {\n name: 'Uruguayan New Peso (UYU)',\n symbolFormat: '${#}',\n currencyCode: 'UYU {#}'\n },\n UZ: {\n name: 'Uzbekistani Sum (UZS)',\n symbolFormat: '{#} soʻm',\n currencyCode: 'UZS {#}'\n },\n VU: {\n name: 'Vanuatu Vatu (VUV)',\n symbolFormat: '{#}VT',\n currencyCode: 'VUV {#}'\n },\n VE: {\n name: 'Venezuelan Bolivar (VEB)',\n symbolFormat: '{#} Bs.',\n currencyCode: 'VEB {#}'\n },\n VN: {\n name: 'Vietnam Dong (VND)',\n symbolFormat: '{#}₫',\n currencyCode: 'VND {#}'\n },\n YE: {\n name: 'Yemen Riyal (YER)',\n symbolFormat: 'YER {#}',\n currencyCode: 'YER {#}'\n },\n YU: {\n name: 'Yugoslav Dinar (YUM)',\n symbolFormat: 'YUM {#}',\n currencyCode: 'YUM {#}'\n },\n ZR: {\n name: 'Zaire New Zaire (ZRN)',\n symbolFormat: 'ZRN {#}',\n currencyCode: 'ZRN {#}'\n },\n ZM: {\n name: 'Zambian Kwacha (ZMK)',\n symbolFormat: 'ZMK {#}',\n currencyCode: 'ZMK {#}'\n },\n ZW: {\n name: 'Zimbabwe Dollar (ZWD)',\n symbolFormat: 'Z${#}',\n currencyCode: 'ZWD {#}'\n },\n AD: EURO,\n AT: EURO,\n BE: EURO,\n CY: EURO,\n EE: EURO,\n FI: EURO,\n FR: EURO,\n DE: EURO,\n GR: EURO,\n IE: EURO,\n IT: EURO,\n XK: EURO,\n LV: EURO,\n LT: EURO,\n LU: EURO,\n MT: EURO,\n MC: EURO,\n ME: EURO,\n NL: EURO,\n PT: EURO,\n SM: EURO,\n SK: EURO,\n SI: EURO,\n ES: EURO,\n VA: EURO\n};\n","import { getLocale } from '../common';\nimport { currencyMap } from './currency-map';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction NumberFormatter(value, { locale = 'en-US', decPlaces = 2, style = '', currency = 'USD' } = {}) {\n const currentLocale = getLocale(locale);\n if (value !== null && value !== undefined) {\n return Number(value).toLocaleString(currentLocale, {\n minimumFractionDigits: decPlaces,\n maximumFractionDigits: decPlaces\n });\n }\n return value;\n}\n\nfunction CurrencyFormatter(\n value,\n { symbol = true, position = 'before', locale = 'en-US', decPlaces = 2, style = 'currency', currency = 'USD' } = {}\n) {\n const currentLocale = getLocale(locale);\n let formattedValue = value;\n if (value !== null && value !== undefined && value !== '') {\n formattedValue = NumberFormatter(value, {\n locale: currentLocale,\n decPlaces,\n style,\n currency\n });\n\n let countryCode = currentLocale?.split('-')[1].toUpperCase();\n\n // If countryCode is still undefined, setting it as US\n if (!countryCode) {\n countryCode = 'US';\n }\n\n let code;\n if (symbol) {\n code = currencyMap[countryCode]?.symbolFormat;\n } else {\n code = currencyMap[countryCode]?.currencyCode;\n }\n\n // if position is provided, change placeholder accordingly.\n if (position && code) {\n if (position.toLowerCase() === 'before' && code.indexOf('{#}') === 0) {\n code = code.slice(3) + code.slice(0, 3);\n } else if (position.toLowerCase() === 'after' && code.indexOf('{#}') === code.length - 3) {\n code = code.slice(-3) + code.slice(0, -3);\n }\n }\n return code?.replace('{#}', formattedValue) || formattedValue;\n }\n return formattedValue;\n}\n\nfunction SymbolFormatter(value, { symbol = '$', suffix = true, locale = 'en-US' } = {}) {\n let formattedValue = value;\n if (value !== null && value !== undefined) {\n formattedValue = NumberFormatter(value, { locale });\n return suffix ? `${formattedValue}${symbol}` : `${symbol}${formattedValue}`;\n }\n return formattedValue;\n}\n\nexport const formatters = {\n Currency: (value, options) => CurrencyFormatter(value, options),\n 'Currency-Code': (value, options) => CurrencyFormatter(value, { ...options, symbol: false }),\n Decimal: (value, options) => NumberFormatter(value, options),\n 'Decimal-Auto': (value, options) =>\n NumberFormatter(value, {\n ...options,\n decPlaces: Number.isInteger(value) ? 0 : 2\n }),\n Integer: (value, options) => NumberFormatter(value, { ...options, decPlaces: 0 }),\n Percentage: (value, options) => SymbolFormatter(value, { ...options, symbol: '%' })\n};\n","import { formatters } from './formatters/format-utils';\nimport { currencyMap } from './formatters/currency-map';\n\nexport const getCurrencyOptions = (inISOCode: string) => {\n const operatorLocale = PCore.getEnvironmentInfo().getUseLocale() || PCore.getEnvironmentInfo().getLocale() || 'en-US';\n\n let currMapToUse = currencyMap.US;\n let localeToUse = operatorLocale;\n\n // Determine CurrencyMap lookup based on ISO code (if specified).\n // If no ISO code, use locale\n // If no locale, default to US\n if (inISOCode) {\n if (inISOCode === 'EUR') {\n currMapToUse = currencyMap.NL;\n localeToUse = 'nl-NL';\n } else {\n // For all other ISO codes, use first 2 characters as the lookup from CurrencyMap\n const countryCode = inISOCode.substring(0, 2);\n currMapToUse = currencyMap[countryCode];\n }\n } else if (operatorLocale) {\n // No ISO Code so check for operator locale (and force upper case for lookup)\n const countryCode = operatorLocale.substring(3).toUpperCase();\n currMapToUse = currencyMap[countryCode];\n } else {\n // no ISO code and no operator locale, default to US\n currMapToUse = currencyMap.US;\n }\n\n // If no currMapToUse at this point, default to US as a failsafe\n if (!currMapToUse) {\n currMapToUse = currencyMap.US;\n }\n\n const theCode = currMapToUse.currencyCode.substring(0, 3);\n return { locale: localeToUse, style: 'currency', currency: theCode };\n};\n\nexport const getCurrencyCharacters = (inISOCode: string) => {\n const theCurrencyChars = {\n theCurrencySymbol: '$',\n theDecimalIndicator: '.',\n theDigitGroupSeparator: ','\n };\n\n const theCurrencyOptions = getCurrencyOptions(inISOCode);\n\n const testValue = 1234.56;\n const formattedString = formatters.Currency(testValue, theCurrencyOptions);\n\n // console.log(`formattedString: ${formattedString}`);\n\n // Here, we have the formatted string (ex: $1,234.56) where:\n // Currency symbol = formattedString[0]\n // Separator = formattedString[2]\n // DecimalIndicator = formattedString[6];\n\n theCurrencyChars.theCurrencySymbol = formattedString[0];\n theCurrencyChars.theDigitGroupSeparator = formattedString[2];\n theCurrencyChars.theDecimalIndicator = formattedString[6];\n\n // console.log(`theCurrencyChars: symbol: ${theCurrencyChars.theCurrencySymbol} | theDigitGroupSeparator: ${theCurrencyChars.theDigitGroupSeparator} | theDecimalIndicator: ${theCurrencyChars.theDecimalIndicator}`);\n\n return theCurrencyChars;\n};\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getCurrencyCharacters } from '../../../_helpers/currency-utils';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface CurrrencyProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Currency here\n currencyISOCode?: string;\n}\n\n@Component({\n selector: 'app-currency',\n templateUrl: './currency.component.html',\n styleUrls: ['./currency.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CurrencyComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: CurrrencyProps;\n\n label$ = '';\n value$: number | null;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId: string;\n helperText: string;\n placeholder: string;\n currencyISOCode = 'USD';\n currencyOptions: Object = {};\n\n fieldControl = new FormControl<number | null>(null, { updateOn: 'blur' });\n symbol: string;\n thousandsSep: string;\n decimalSep: string;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // starting very simple...\n\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CurrrencyProps;\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n const nValue: any = this.configProps$.value;\n this.value$ = nValue && typeof nValue === 'string' ? parseFloat(nValue) : nValue;\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n if (this.configProps$.currencyISOCode != null) {\n this.currencyISOCode = this.configProps$.currencyISOCode;\n }\n\n const theSymbols = getCurrencyCharacters(this.currencyISOCode);\n this.symbol = theSymbols.theCurrencySymbol;\n this.thousandsSep = theSymbols.theDigitGroupSeparator;\n this.decimalSep = theSymbols.theDecimalIndicator;\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\" class=\"psdk-currency-field\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <div class=\"psdk-currency-input\">\n <span>{{ symbol }}</span>\n <input\n style=\"margin-left: 5px\"\n type=\"float\"\n matInput\n [placeholder]=\"placeholder\"\n [value]=\"value$ | number: '1.2-2'\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n </div>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { getLocale } from './common';\n\nexport const dateFormatInfoDefault = {\n dateFormatString: 'MM/DD/YYYY',\n dateFormatStringLong: 'MMM DD, YYYY',\n dateFormatStringLC: 'mm/dd/yyyy',\n dateFormatMask: '__/__/____'\n};\n\nexport const getDateFormatInfo = () => {\n const localizedVal = PCore?.getLocaleUtils().getLocaleValue;\n const localeCategory = 'CosmosFields';\n const theDateFormatInfo = dateFormatInfoDefault;\n const theLocale = getLocale();\n\n // NOTE: this date was chosen since it has a day larger than 12. If you change it,\n // you'll need to change the indexOf values below!\n const theTestDate = new Date(Date.parse('30 November 2023 12:00:00 GMT'));\n const theTestDateLocaleString = new Intl.DateTimeFormat(theLocale).format(theTestDate);\n\n // console.log(`theLocale: ${theLocale} theTestDateLocaleString: ${theTestDateLocaleString}`);\n\n // Build the format string based on where '11' (mm), '30' (dd), and '2023' (yyyy) are\n // Example: US locations are 0, 3, 6 but for NL locations are 3, 0, 6\n const locMM = theTestDateLocaleString.indexOf('11');\n const locDD = theTestDateLocaleString.indexOf('30');\n const locYYYY = theTestDateLocaleString.indexOf('2023');\n\n // If localized placeholder exists for one of day/month/year then show it otherwise fall back to ddmmyyyy\n const localizedPlaceholderExists =\n localizedVal('month_placeholder', localeCategory) !== 'month_placeholder' ||\n localizedVal('day_placeholder', localeCategory) !== 'day_placeholder' ||\n localizedVal('year_placeholder', localeCategory) !== 'year_placeholder';\n\n const arrPieces = [\n {\n loc: locMM,\n format: 'MM',\n longFormat: 'MMM',\n placeholder: localizedPlaceholderExists ? localizedVal('month_placeholder', localeCategory) : 'mm',\n mask: '__',\n separator: theTestDateLocaleString[locMM + 2]\n },\n {\n loc: locDD,\n format: 'DD',\n longFormat: 'DD',\n placeholder: localizedPlaceholderExists ? localizedVal('day_placeholder', localeCategory) : 'dd',\n mask: '__',\n separator: theTestDateLocaleString[locDD + 2]\n },\n {\n loc: locYYYY,\n format: 'YYYY',\n longFormat: 'YYYY',\n placeholder: localizedPlaceholderExists ? localizedVal('year_placeholder', localeCategory) : 'yyyy',\n mask: '____',\n separator: theTestDateLocaleString[locYYYY + 4]\n }\n ];\n\n // Sort the associative array by order of appearance (loc) of each piece\n arrPieces.sort((a, b) => {\n if (a.loc < b.loc) return -1;\n if (a.loc > b.loc) return 1;\n return 0;\n });\n\n // Construct the structure to return...\n theDateFormatInfo.dateFormatString = `${arrPieces[0].format}${arrPieces[0].separator}${arrPieces[1].format}${arrPieces[1].separator}${arrPieces[2].format}`;\n theDateFormatInfo.dateFormatStringLong = `${arrPieces[0].longFormat} ${arrPieces[1].longFormat}, ${arrPieces[2].longFormat}`;\n theDateFormatInfo.dateFormatStringLC = `${arrPieces[0].placeholder}${arrPieces[0].separator}${arrPieces[1].placeholder}${arrPieces[1].separator}${arrPieces[2].placeholder}`;\n theDateFormatInfo.dateFormatMask = `${arrPieces[0].mask}${arrPieces[0].separator}${arrPieces[1].mask}${arrPieces[1].separator}${arrPieces[2].mask}`;\n\n return theDateFormatInfo;\n};\n","/* eslint-disable max-classes-per-file */\nimport { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { NgxMatDatetimePickerModule, NgxMatTimepickerModule, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';\nimport { NgxMatMomentModule } from '@angular-material-components/moment-adapter';\nimport { MomentDateModule } from '@angular/material-moment-adapter';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { dateFormatInfoDefault, getDateFormatInfo } from '../../../_helpers/date-format-utils';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface DateTimeProps extends PConnFieldProps {\n // If any, enter additional props that only exist on DateTime here\n}\n\nclass MyFormat {\n theDateFormat: any = getDateFormatInfo();\n\n get display() {\n return {\n dateInput: `${this.theDateFormat.dateFormatString}, LT`,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n };\n }\n\n get parse() {\n return {\n dateInput: `${this.theDateFormat.dateFormatString}, LT`\n };\n }\n}\n\n@Component({\n selector: 'app-date-time',\n templateUrl: './date-time.component.html',\n styleUrls: ['./date-time.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n NgxMatMomentModule,\n NgxMatDatetimePickerModule,\n NgxMatTimepickerModule,\n MomentDateModule,\n forwardRef(() => ComponentMapperComponent)\n ],\n providers: [{ provide: NGX_MAT_DATE_FORMATS, useClass: MyFormat }]\n})\nexport class DateTimeComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: DateTimeProps;\n\n label$ = '';\n value$: string;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId = '';\n helperText: string;\n\n fieldControl = new FormControl('', null);\n stepHour = 1;\n stepMinute = 1;\n stepSecond = 1;\n public color = 'primary';\n // Start with default dateFormatInfo\n dateFormatInfo = dateFormatInfoDefault;\n // and then update, as needed, based on locale, etc.\n theDateFormat: any = getDateFormatInfo();\n placeholder: string;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n this.placeholder = `${this.theDateFormat.dateFormatStringLC}, hh:mm a`;\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n // Then, continue on with other initialization\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // starting very simple...\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DateTimeProps;\n\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n this.testId = this.configProps$.testId;\n this.helperText = this.configProps$.helperText;\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n const value = event.value && event.value.isValid() ? event.value : null;\n const actionsApi = this.pConn$?.getActionsApi();\n const propName = (this.pConn$?.getStateProps() as any).value;\n handleEvent(actionsApi, 'changeNblur', propName, value?.toISOString());\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n if (event.target.value) event.value = event.target.value;\n\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n let errMessage = '';\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [attr.data-test-id]=\"testId\"\n [ngxMatDatetimePicker]=\"picker\"\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n (dateChange)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"$any(picker)\"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #picker [stepHour]=\"stepHour\" [stepMinute]=\"stepMinute\" [stepSecond]=\"stepSecond\"> </ngx-mat-datetime-picker>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'date-time' }\"></component-mapper>\n</ng-template>\n","/* eslint-disable max-classes-per-file */\nimport { Component, OnInit, Input, ChangeDetectorRef, forwardRef, Inject, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateModule } from '@angular/material-moment-adapter';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { dateFormatInfoDefault, getDateFormatInfo } from '../../../_helpers/date-format-utils';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface DateProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Date here\n}\n\nclass MyFormat {\n theDateFormat: any = getDateFormatInfo();\n\n get display() {\n return {\n dateInput: this.theDateFormat.dateFormatString,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n };\n }\n\n get parse() {\n return {\n dateInput: this.theDateFormat.dateFormatString\n };\n }\n}\n\n@Component({\n selector: 'app-date',\n templateUrl: './date.component.html',\n styleUrls: ['./date.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MomentDateModule,\n forwardRef(() => ComponentMapperComponent)\n ],\n providers: [{ provide: MAT_DATE_FORMATS, useClass: MyFormat }]\n})\nexport class DateComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: DateProps;\n\n label$ = '';\n value$: any;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId = '';\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl('', null);\n\n // Start with default dateFormatInfo\n dateFormatInfo = dateFormatInfoDefault;\n // and then update, as needed, based on locale, etc.\n theDateFormat: any = getDateFormatInfo();\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils,\n @Inject(MAT_DATE_FORMATS) private config: MyFormat\n ) {}\n\n ngOnInit(): void {\n this.dateFormatInfo = this.theDateFormat;\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // starting very simple...\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DateProps;\n\n if (this.configProps$.value != undefined) {\n let sDateValue: any = '';\n sDateValue = this.configProps$.value;\n\n if (sDateValue != '') {\n if (typeof sDateValue === 'object') {\n sDateValue = sDateValue.toISOString();\n } else if (sDateValue.indexOf('/') < 0) {\n // if we have the \"pega\" format, then for display, convert to standard format (US)\n // sDateValue = this.formatDate(sDateValue);\n sDateValue = this.utils.generateDate(sDateValue, 'Date-Long-Custom-YYYY');\n }\n this.value$ = new Date(sDateValue);\n }\n }\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnDateChange(event: any) {\n // this comes from the date pop up\n if (typeof event.value === 'object') {\n // convert date to pega \"date\" format\n event.value = event.value?.toISOString();\n }\n this.angularPConnectData.actions?.onChange(this, { value: event.value });\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n if (typeof event.value === 'object') {\n // convert date to pega \"date\" format\n event.value = event.value?.toISOString();\n }\n this.angularPConnectData.actions?.onBlur(this, { value: event.value });\n }\n\n hasErrors() {\n return this.fieldControl.status === 'INVALID';\n }\n\n getErrorMessage() {\n let errMessage = '';\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = `${this.fieldControl.errors['matDatepickerParse'].text} is not a valid date value`;\n }\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n #dateInput\n [attr.data-test-id]=\"testId\"\n [matDatepicker]=\"pegadate\"\n [placeholder]=\"dateFormatInfo.dateFormatStringLC\"\n type=\"text\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n (dateChange)=\"fieldOnDateChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"value$\"></mat-datepicker>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'date' }\"></component-mapper>\n</ng-template>\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[appThousandSeparator]',\n standalone: true\n})\nexport class ThousandSeparatorDirective {\n constructor(private el: ElementRef) {}\n\n @HostListener('input', ['$event'])\n onInput(event) {\n const input = this.el.nativeElement as HTMLInputElement;\n let value: any = input.value.replace(/,/g, ''); // Remove existing commas\n if (event?.data !== '.') {\n value = Number(value).toLocaleString(); // Add thousands separator\n input.value = value;\n }\n }\n}\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { ThousandSeparatorDirective } from '../../../_directives/thousand-seperator.directive';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface DecimalProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Decimal here\n currencyISOCode?: string;\n decimalPrecision?: number;\n showGroupSeparators?: string;\n}\n\n@Component({\n selector: 'app-decimal',\n templateUrl: './decimal.component.html',\n styleUrls: ['./decimal.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ThousandSeparatorDirective,\n forwardRef(() => ComponentMapperComponent)\n ]\n})\nexport class DecimalComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: DecimalProps;\n\n label$ = '';\n value$: number;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId: string;\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl<number | null>(null, null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // starting very simple...\n\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DecimalProps;\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n let nValue: any = this.configProps$.value;\n if (nValue) {\n if (typeof nValue === 'string') {\n nValue = parseFloat(nValue);\n }\n this.value$ = nValue;\n }\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n }\n\n fieldOnBlur(event: any) {\n const actionsApi = this.pConn$?.getActionsApi();\n const propName = (this.pConn$?.getStateProps() as any).value;\n let value = event?.target?.value;\n value = value.replace(/,/g, '');\n value = value !== '' ? Number(value) : value;\n handleEvent(actionsApi, 'changeNblur', propName, value);\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n type=\"text\"\n matInput\n appThousandSeparator\n [placeholder]=\"placeholder\"\n step=\"0.01\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface IOption {\n key: string;\n value: string;\n}\n\n// Can't use DropdownProps with 8.23 until getLocaleRuleNameFromKeys is NOT private\ninterface DropdownProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Dropdown here\n datasource?: any[];\n onRecordChange?: any;\n fieldMetadata?: any;\n}\n\n@Component({\n selector: 'app-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, MatOptionModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DropdownComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: DropdownProps;\n\n label$ = '';\n value$ = '';\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n options$: IOption[];\n componentReference = '';\n testId = '';\n helperText: string;\n hideLabel: any;\n\n fieldControl = new FormControl('', null);\n fieldMetadata: any[];\n localeContext = '';\n localeClass = '';\n localeName = '';\n localePath = '';\n localizedValue = '';\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DropdownProps;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n\n this.testId = this.configProps$.testId;\n this.displayMode$ = this.configProps$.displayMode;\n this.label$ = this.configProps$.label;\n this.helperText = this.configProps$.helperText;\n this.hideLabel = this.configProps$.hideLabel;\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n const optionsList = this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject());\n optionsList?.unshift({ key: 'Select', value: this.pConn$.getLocalizedValue('Select...', '', '') });\n this.options$ = optionsList;\n if (this.value$ === '' && !this.bReadonly$) {\n this.value$ = 'Select';\n }\n\n const propName = (this.pConn$.getStateProps() as any).value;\n const className = this.pConn$.getCaseInfo().getClassName();\n const refName = propName?.slice(propName.lastIndexOf('.') + 1);\n\n this.fieldMetadata = this.configProps$.fieldMetadata;\n const metaData = Array.isArray(this.fieldMetadata) ? this.fieldMetadata.filter(field => field?.classID === className)[0] : this.fieldMetadata;\n\n let displayName = metaData?.datasource?.propertyForDisplayText;\n displayName = displayName?.slice(displayName.lastIndexOf('.') + 1);\n this.localeContext = metaData?.datasource?.tableType === 'DataPage' ? 'datapage' : 'associated';\n this.localeClass = this.localeContext === 'datapage' ? '@baseclass' : className;\n this.localeName = this.localeContext === 'datapage' ? metaData?.datasource?.name : refName;\n this.localePath = this.localeContext === 'datapage' ? displayName : this.localeName;\n\n this.localizedValue = this.pConn$.getLocalizedValue(\n this.value$,\n this.localePath,\n // @ts-ignore - Property 'getLocaleRuleNameFromKeys' is private and only accessible within class 'C11nEnv'.\n this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n );\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n isSelected(buttonValue: string): boolean {\n return this.value$ === buttonValue;\n }\n\n fieldOnChange(event: any) {\n if (event?.value === 'Select') {\n event.value = '';\n }\n const actionsApi = this.pConn$?.getActionsApi();\n const propName = (this.pConn$?.getStateProps() as any).value;\n handleEvent(actionsApi, 'changeNblur', propName, event.value);\n if (this.configProps$?.onRecordChange) {\n this.configProps$.onRecordChange(event);\n }\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getLocalizedOptionValue(opt: IOption) {\n return this.pConn$.getLocalizedValue(\n opt.value,\n this.localePath,\n // @ts-ignore - Property 'getLocaleRuleNameFromKeys' is private and only accessible within class 'C11nEnv'.\n this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n );\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper\n *ngIf=\"bVisible$ !== false\"\n name=\"FieldValueList\"\n [props]=\"{ label$, value$: this.localizedValue, displayMode$ }\"\n ></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-select\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [attr.data-test-id]=\"testId\"\n (selectionChange)=\"fieldOnChange($event)\"\n [formControl]=\"fieldControl\"\n >\n <mat-option *ngFor=\"let opt of options$\" [value]=\"opt.key\">\n {{ getLocalizedOptionValue(opt) }}\n </mat-option>\n </mat-select>\n <mat-label>{{ label$ }}</mat-label>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface EmailProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Email here\n}\n\n@Component({\n selector: 'app-email',\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class EmailComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: EmailProps;\n\n label$ = '';\n value$: string;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId: string;\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl('', null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as EmailProps;\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n type=\"email\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface IntegerProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Integer here\n}\n\n@Component({\n selector: 'app-integer',\n templateUrl: './integer.component.html',\n styleUrls: ['./integer.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class IntegerComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: IntegerProps;\n\n label$ = '';\n value$: number;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId: string;\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl<number | null>(null, null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as IntegerProps;\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n let nValue: any = this.configProps$.value;\n if (nValue) {\n if (typeof nValue === 'string') {\n nValue = parseInt(nValue, 10);\n }\n this.value$ = nValue;\n }\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n // field control gets error message from here\n\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n type=\"number\"\n step=\"1\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface PercentageProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Percentage here\n}\n\n@Component({\n selector: 'app-percentage',\n templateUrl: './percentage.component.html',\n styleUrls: ['./percentage.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class PercentageComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: PercentageProps;\n\n label$ = '';\n value$: number;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId: string;\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl<number | null>(null, null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as PercentageProps;\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n let nValue: any = this.configProps$.value;\n if (nValue) {\n if (typeof nValue === 'string') {\n nValue = parseInt(nValue, 10);\n }\n this.value$ = nValue;\n }\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n // field control gets error message from here\n let errMessage = '';\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <!-- <span matPrefix>% &nbsp;</span> -->\n <input\n matInput\n [placeholder]=\"placeholder\"\n type=\"number\"\n step=\".01\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { NgxMatIntlTelInputComponent } from 'ngx-mat-intl-tel-input';\nimport { Utils } from '../../../_helpers/utils';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface PhoneProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Phone here\n}\n\n@Component({\n selector: 'app-phone',\n templateUrl: './phone.component.html',\n styleUrls: ['./phone.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, NgxMatIntlTelInputComponent, forwardRef(() => ComponentMapperComponent)]\n})\nexport class PhoneComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: PhoneProps;\n\n label$ = '';\n value$: string;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId: string;\n separateDialCode = false;\n afterBlur: boolean;\n helperText: string;\n\n fieldControl = new FormControl('', null);\n\n phoneForm = new FormGroup({\n phone: new FormControl<string | null>(null)\n });\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as PhoneProps;\n\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n this.testId = this.configProps$.testId;\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n this.helperText = this.configProps$.helperText;\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n if (this.bReadonly$) {\n this.phoneForm.setValue({ phone: this.value$ });\n }\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange() {\n if (this.formGroup$.controls[this.controlName$].value) {\n const actionsApi = this.pConn$?.getActionsApi();\n const propName = (this.pConn$?.getStateProps() as any).value;\n const value = this.formGroup$.controls[this.controlName$].value;\n const eventObj = {\n target: {\n value\n }\n };\n this.afterBlur = true;\n this.angularPConnectData.actions?.onChange(this, eventObj);\n handleEvent(actionsApi, 'blur', propName, value);\n }\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = 'Invalid Phone';\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div #f=\"ngForm\" [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <ngx-mat-intl-tel-input\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n [preferredCountries]=\"['us']\"\n [enablePlaceholder]=\"true\"\n [enableSearch]=\"true\"\n (change)=\"fieldOnChange()\"\n (blur)=\"fieldOnBlur($event)\"\n >\n </ngx-mat-intl-tel-input>\n <mat-label>{{ label$ }}</mat-label>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface IOption {\n key: string;\n value: string;\n}\n\ninterface RadioButtonsProps extends PConnFieldProps {\n // If any, enter additional props that only exist on RadioButtons here\n inline: boolean;\n fieldMetadata?: any;\n}\n\n@Component({\n selector: 'app-radio-buttons',\n templateUrl: './radio-buttons.component.html',\n styleUrls: ['./radio-buttons.component.scss'],\n providers: [Utils],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatRadioModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class RadioButtonsComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: RadioButtonsProps;\n\n label$ = '';\n value$ = '';\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n bInline$ = false;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n options$: IOption[];\n componentReference = '';\n testId: string;\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl('', null);\n fieldMetadata: any[];\n localeContext = '';\n localeClass = '';\n localeName = '';\n localePath = '';\n localizedValue = '';\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as RadioButtonsProps;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n\n this.testId = this.configProps$.testId;\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n if (this.configProps$.inline != null) {\n this.bInline$ = this.utils.getBooleanValue(this.configProps$.inline);\n }\n\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.configProps$.inline != null) {\n this.bInline$ = this.utils.getBooleanValue(this.configProps$.inline);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n this.options$ = this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject());\n\n const propName = (this.pConn$.getStateProps() as any).value;\n const className = this.pConn$.getCaseInfo().getClassName();\n const refName = propName?.slice(propName.lastIndexOf('.') + 1);\n\n this.fieldMetadata = this.configProps$.fieldMetadata;\n const metaData = Array.isArray(this.fieldMetadata) ? this.fieldMetadata.filter(field => field?.classID === className)[0] : this.fieldMetadata;\n\n let displayName = metaData?.datasource?.propertyForDisplayText;\n displayName = displayName?.slice(displayName.lastIndexOf('.') + 1);\n this.localeContext = metaData?.datasource?.tableType === 'DataPage' ? 'datapage' : 'associated';\n this.localeClass = this.localeContext === 'datapage' ? '@baseclass' : className;\n this.localeName = this.localeContext === 'datapage' ? metaData?.datasource?.name : refName;\n this.localePath = this.localeContext === 'datapage' ? displayName : this.localeName;\n\n this.localizedValue = this.pConn$.getLocalizedValue(\n this.value$,\n this.localePath,\n // @ts-ignore - Property 'getLocaleRuleNameFromKeys' is private and only accessible within class 'C11nEnv'\n this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n );\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n isSelected(buttonValue: string): boolean {\n return this.value$ === buttonValue;\n }\n\n fieldOnChange(event: any) {\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getLocalizedOptionValue(opt: IOption) {\n return this.pConn$.getLocalizedValue(\n opt.value,\n this.localePath,\n // @ts-ignore - Property 'getLocaleRuleNameFromKeys' is private and only accessible within class 'C11nEnv'\n this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n );\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper\n *ngIf=\"bVisible$ !== false\"\n name=\"FieldValueList\"\n [props]=\"{ label$, value$: this.localizedValue, displayMode$ }\"\n ></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-radio-form\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <span class=\"psdk-label-wrapper-readonly\">\n <label class=\"psdk-label-readonly\">{{ label$ }}</label>\n </span>\n <!-- <mat-label>{{label$}}</mat-label> -->\n <input matInput [placeholder]=\"placeholder\" style=\"display: none\" />\n <mat-radio-group\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (change)=\"fieldOnChange($event)\"\n class=\"{{ bInline$ ? 'psdk-radio-horizontal' : 'psdk-radio-vertical' }}\"\n >\n <mat-radio-button\n *ngFor=\"let opt of options$\"\n [checked]=\"isSelected(opt.key)\"\n [disabled]=\"bReadonly$\"\n [value]=\"opt.key\"\n class=\"psdk-radio-button\"\n >\n {{ getLocalizedOptionValue(opt) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n</ng-template>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { Utils } from '../../../_helpers/utils';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface SemanticLinkProps extends PConnFieldProps {\n // If any, enter additional props that only exist on SemanticLink here\n text: string;\n}\n\n@Component({\n selector: 'app-semantic-link',\n templateUrl: './semantic-link.component.html',\n styleUrls: ['./semantic-link.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SemanticLinkComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n configProps$: SemanticLinkProps;\n\n label$ = '';\n value$ = '';\n displayMode$?: string = '';\n bVisible$ = true;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.updateSelf();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SemanticLinkProps;\n this.value$ = this.configProps$.text || '---';\n this.displayMode$ = this.configProps$.displayMode;\n this.label$ = this.configProps$.label;\n if (this.configProps$.visibility) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n\n<ng-template #noDisplayMode>\n <div *ngIf=\"label$ !== undefined && bVisible$ !== false\" class=\"psdk-grid-filter\">\n <div class=\"psdk-grid-label\">{{ label$ }}</div>\n <div class=\"psdk-value\">{{ value$ || '---' }}</div>\n </div>\n</ng-template>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TextAreaProps extends PConnFieldProps {\n // If any, enter additional props that only exist on TextArea here\n fieldMetadata?: any;\n}\n\n@Component({\n selector: 'app-text-area',\n templateUrl: './text-area.component.html',\n styleUrls: ['./text-area.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TextAreaComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: TextAreaProps;\n\n label$ = '';\n value$ = '';\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n nMaxLength$: number;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n testId: string;\n helperText: string;\n\n fieldControl = new FormControl('', null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TextAreaProps;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n // @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'.\n // @ts-ignore - Property 'getRawConfigProps' is private and only accessible within class 'C11nEnv'\n this.nMaxLength$ = this.pConn$.getFieldMetadata(this.pConn$.getRawConfigProps()?.value)?.maxLength || 100;\n this.testId = this.configProps$.testId;\n this.displayMode$ = this.configProps$.displayMode;\n this.label$ = this.configProps$.label;\n this.helperText = this.configProps$.helperText;\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n // PConnect wants to use changeHandler for onChange\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n // field control gets error message from here\n\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\">\n <div *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <textarea\n matInput\n rows=\"5\"\n [placeholder]=\"label$\"\n type=\"text\"\n [attr.data-test-id]=\"testId\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [disabled]=\"bDisabled$\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n ></textarea>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TextContentProps extends PConnFieldProps {\n // If any, enter additional props that only exist on TextContent here\n content: string;\n displayAs: 'Paragraph' | 'Heading 1' | 'Heading 2' | 'Heading 3' | 'Heading 4';\n}\n\n@Component({\n selector: 'app-text-content',\n templateUrl: './text-content.component.html',\n styleUrls: ['./text-content.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TextContentComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: TextContentProps;\n\n content$ = '';\n displayAs$: string;\n displayMode$?: string = '';\n bVisible$ = true;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TextContentProps;\n if (this.configProps$.content != undefined) {\n this.content$ = this.configProps$.content;\n }\n if (this.configProps$.displayAs != undefined) {\n this.displayAs$ = this.configProps$.displayAs;\n }\n this.displayMode$ = this.configProps$.displayMode;\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // Any update to content or displayAs will re-render this component.\n // All rendering logic is in the .html file.\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n}\n","<div *ngIf=\"bVisible$ !== false\" class=\"psdk-data-readonly\">\n <div *ngIf=\"displayAs$ == 'Paragraph'\" class=\"mat-subtitle-2\">{{ content$ }}</div>\n <div *ngIf=\"displayAs$ == 'Heading 1'\" class=\"mat-h1\">{{ content$ }}</div>\n <div *ngIf=\"displayAs$ == 'Heading 2'\" class=\"mat-h2\">{{ content$ }}</div>\n <div *ngIf=\"displayAs$ == 'Heading 3'\" class=\"mat-h3\">{{ content$ }}</div>\n <div *ngIf=\"displayAs$ == 'Heading 4'\" class=\"mat-h4\">{{ content$ }}</div>\n</div>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectService, AngularPConnectData } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TextInputProps extends PConnFieldProps {\n // If any, enter additional props that only exist on TextInput here\n fieldMetadata?: any;\n}\n\n@Component({\n selector: 'app-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TextInputComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: TextInputProps;\n\n label$ = '';\n value$ = '';\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n testId = '';\n bHasForm$ = true;\n componentReference = '';\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl('', null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TextInputProps;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n\n this.testId = this.configProps$.testId;\n\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n type=\"text\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-three-column',\n templateUrl: './three-column.component.html',\n styleUrls: ['./three-column.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ThreeColumnComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n ngOnInit() {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n}\n","<div class=\"psdk-three-column\">\n <div *ngFor=\"let kid of arChildren$\">\n <div class=\"psdk-three-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-three-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-three-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'c'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-three-column-page',\n templateUrl: './three-column-page.component.html',\n styleUrls: ['./three-column-page.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class ThreeColumnPageComponent {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n}\n","<component-mapper name=\"ThreeColumn\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TimeProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Time here\n}\n\n@Component({\n selector: 'app-time',\n templateUrl: './time.component.html',\n styleUrls: ['./time.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TimeComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: TimeProps;\n\n label$ = '';\n value$: string;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl('', null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TimeProps;\n\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n event.value = event.target.value;\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n event.value = event.target.value;\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n let errMessage = '';\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n type=\"time\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface URLProps extends PConnFieldProps {\n // If any, enter additional props that only exist on URL here\n}\n\n@Component({\n selector: 'app-url',\n templateUrl: './url.component.html',\n styleUrls: ['./url.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class UrlComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: URLProps;\n\n label$ = '';\n value$ = '';\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n bHasForm$ = true;\n componentReference = '';\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl('', null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as URLProps;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n this.helperText = this.configProps$.helperText;\n this.placeholder = this.configProps$.placeholder || '';\n\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n this.cdRef.detectChanges();\n });\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // disabled\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.bDisabled$) {\n this.fieldControl.disable();\n } else {\n this.fieldControl.enable();\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n\n this.componentReference = (this.pConn$.getStateProps() as any).value;\n\n // trigger display of error message with field control\n if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {\n const timer = interval(100).subscribe(() => {\n this.fieldControl.setErrors({ message: true });\n this.fieldControl.markAsTouched();\n\n timer.unsubscribe();\n });\n }\n }\n\n fieldOnChange(event: any) {\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onBlur(this, event);\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n type=\"url\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'url' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\nconst OPERATORS_DP = 'D_pyGetOperatorsForCurrentApplication';\nconst DROPDOWN_LIST = 'Drop-down list';\nconst SEARCH_BOX = 'Search box';\n\ninterface UserReferenceProps extends Omit<PConnFieldProps, 'value'> {\n // If any, enter additional props that only exist on UserReference here\n displayAs?: string;\n value?: any;\n showAsFormattedText?: boolean;\n additionalProps?: object;\n}\n\n@Component({\n selector: 'app-user-reference',\n templateUrl: './user-reference.component.html',\n styleUrls: ['./user-reference.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatInputModule,\n MatAutocompleteModule,\n forwardRef(() => ComponentMapperComponent)\n ]\n})\nexport class UserReferenceComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n controlName$: string;\n value$;\n userName$: string;\n label$: string;\n userID$: string;\n options$: any;\n bReadonly$: boolean;\n bRequired$: boolean;\n showAsFormattedText$?: boolean;\n displayAs$?: string;\n testId: string;\n helperText: string;\n placeholder: string;\n\n fieldControl = new FormControl('', null);\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.controlName$ = this.angularPConnect.getComponentID(this);\n\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n }\n }\n\n ngOnDestroy() {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n get type(): string {\n if (this.bReadonly$ && this.showAsFormattedText$) {\n return 'operator';\n }\n if (this.displayAs$ === DROPDOWN_LIST) {\n return 'dropdown';\n }\n if (this.displayAs$ === SEARCH_BOX) {\n return 'searchbox';\n }\n\n return '';\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const props = this.pConn$.getConfigProps() as UserReferenceProps;\n this.testId = props.testId;\n\n const { label, displayAs, value, showAsFormattedText, helperText, placeholder } = props;\n\n this.label$ = label;\n this.showAsFormattedText$ = showAsFormattedText;\n this.displayAs$ = displayAs;\n this.helperText = helperText;\n this.placeholder = placeholder || '';\n\n const { readOnly, required } = props;\n [this.bReadonly$, this.bRequired$] = [readOnly, required].map(prop => prop === true || (typeof prop === 'string' && prop === 'true'));\n\n const isUserNameAvailable = user => {\n return typeof user === 'object' && user !== null && user.userName;\n };\n\n this.userID$ = this.utils.getUserId(value);\n\n if (this.userID$ && this.bReadonly$ && this.showAsFormattedText$) {\n if (isUserNameAvailable(value)) {\n this.userName$ = value.userName;\n } else {\n // if same user ref field is referred in view as editable & readonly formatted text\n // referenced users won't be available, so get user details from dx api\n const { getOperatorDetails } = PCore.getUserApi();\n getOperatorDetails(this.userID$).then((resp: any) => {\n if (resp.data && resp.data.pyOperatorInfo && resp.data.pyOperatorInfo.pyUserName) {\n this.userName$ = resp.data.pyOperatorInfo.pyUserName;\n }\n });\n }\n } else if (displayAs === DROPDOWN_LIST || displayAs === SEARCH_BOX) {\n const queryPayload = {\n dataViewName: OPERATORS_DP\n };\n PCore.getRestClient()\n .invokeRestApi('getListData', { queryPayload } as any, '') // 3rd arg empty string until typedef marked correctly\n .then((resp: any) => {\n const ddDataSource = resp.data.data.map(listItem => ({\n key: listItem.pyUserIdentifier,\n value: listItem.pyUserName\n }));\n this.options$ = ddDataSource;\n })\n .catch(err => {\n console.log(err);\n });\n }\n }\n\n fieldOnChange(event: any) {\n if (event?.value === 'Select') {\n event.value = '';\n }\n this.angularPConnectData.actions?.onChange(this, event);\n }\n\n fieldOnBlur(event: any) {\n let key = '';\n if (event?.target?.value) {\n const index = this.options$?.findIndex(element => element.value === event.target.value);\n key = index > -1 ? (key = this.options$[index].key) : event.target.value;\n }\n\n const eve = {\n value: key\n };\n // PConnect wants to use eventHandler for onBlur\n this.angularPConnectData.actions?.onChange(this, eve);\n }\n\n getErrorMessage() {\n let errMessage = '';\n\n // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n if (this.fieldControl.hasError('message')) {\n errMessage = this.angularPConnectData.validateMessage ?? '';\n return errMessage;\n }\n if (this.fieldControl.hasError('required')) {\n errMessage = 'You must enter a value';\n } else if (this.fieldControl.errors) {\n errMessage = this.fieldControl.errors.toString();\n }\n\n return errMessage;\n }\n}\n","<div class=\"psdk-user-reference\">\n <div *ngIf=\"type === 'operator'\">\n <component-mapper name=\"Operator\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div [formGroup]=\"formGroup$\" *ngIf=\"type === 'dropdown'\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-select\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (selectionChange)=\"fieldOnChange($event)\"\n >\n <mat-option *ngFor=\"let opt of options$\" [value]=\"opt.key\">\n {{ opt.value }}\n </mat-option>\n </mat-select>\n <mat-label>{{ label$ }}</mat-label>\n <mat-error *ngIf=\"fieldControl.invalid\">\n {{ getErrorMessage() }}\n </mat-error>\n </mat-form-field>\n </div>\n <div [formGroup]=\"formGroup$\" *ngIf=\"type === 'searchbox'\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [matAutocomplete]=\"auto\"\n [attr.data-test-id]=\"testId\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\">\n <mat-option *ngFor=\"let opt of options$\" [value]=\"opt.value\">\n <span>{{ opt.value }}</span>\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"fieldControl.invalid\">\n {{ getErrorMessage() }}\n </mat-error>\n </mat-form-field>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\n@Component({\n selector: 'app-reference',\n templateUrl: './reference.component.html',\n styleUrls: ['./reference.component.scss'],\n standalone: true\n})\nexport class ReferenceComponent {\n referencedComponent: any = null;\n\n /* Used to toggle some class-wide logging */\n private static bLogging = false;\n\n constructor() {\n // With new static method approach, this shouldn't be called any more\n window.alert(`in ReferenceComponent constructor!`);\n\n console.error(`in ReferenceComponent constructor!`);\n }\n\n // onStateChange and updateSelf methods removed from original implementation\n // when we moved to the static method implementation.\n\n // STATIC method to create a normalized PConn (a fully realized View that the 'reference'\n // component refers to) from the given pConn. Has to add in some stuff as in the constructor\n static createFullReferencedViewFromRef(inPConn: any) {\n // BAIL and ERROR if inPConn is NOT a reference!\n if (inPConn.getComponentName() !== 'reference') {\n // debugger;\n\n console.error(`Reference component: createFullReferencedViewFromRef inPConn is NOT a reference! ${inPConn.getComponentName()}`);\n }\n\n const theResolvedConfigProps = inPConn.resolveConfigProps(inPConn.getConfigProps());\n\n const referenceConfig = { ...inPConn.getComponentConfig() } || {};\n\n // Since SDK-A implements Reference as static methods and we don't rely on\n // the Reference component's handling of the visibility prop, we leave it in\n // (and also leaving the others in for now) so the referenced View can act on\n // the visibility prop. (The following 3 lines were carried over from React SDK)\n delete referenceConfig?.name;\n // delete referenceConfig?.type;\n // delete referenceConfig?.visibility;\n\n const viewMetadata = inPConn.getReferencedView();\n\n if (!viewMetadata) {\n console.log('View not found ', inPConn.getComponentConfig());\n return null;\n }\n\n // If we get here, we have metadata for a View component...\n // const referencedComponentName = viewMetadata.type;\n\n const viewObject = {\n ...viewMetadata,\n config: {\n ...viewMetadata.config,\n ...referenceConfig\n }\n };\n\n if (ReferenceComponent.bLogging) {\n console.log(`Reference: about to call createComponent with pageReference: context: ${theResolvedConfigProps.context}`);\n }\n\n const viewComponent = inPConn.createComponent(viewObject, null, null, {\n pageReference: theResolvedConfigProps.context\n });\n\n // updating the referencedComponent should trigger a render\n const newCompPConnect = viewComponent.getPConnect();\n\n newCompPConnect.setInheritedConfig({\n ...referenceConfig,\n readOnly: theResolvedConfigProps.readOnly ? theResolvedConfigProps.readOnly : false,\n displayMode: theResolvedConfigProps.displayMode ? theResolvedConfigProps.displayMode : null\n });\n\n if (ReferenceComponent.bLogging) {\n console.log(\n `Angular Reference component: createFullReferencedViewFromRef -> newCompPConnect configProps: ${JSON.stringify(\n newCompPConnect.getConfigProps()\n )}`\n );\n }\n\n return newCompPConnect;\n }\n\n // STATIC method that other components can call to normalize\n // a pConn object that might be a 'reference'. If the incoming\n // pConn is a reference, return its dereferenced View PConnect's\n // getPConnect. Otherwise, return the passed in pConn unchanged\n // inPConn = a PConn object (ex: { getPConnect()} )\n static normalizePConn(inPConn: any) {\n // debugger;\n\n let returnObj = false;\n let thePConnType = '';\n\n if (inPConn.getPConnect) {\n // inPConn is an object (ex: { getPConnect()} ), so we want to return\n // any referenced view as the object containing the\n // the getPConnect function\n returnObj = true;\n thePConnType = inPConn.getPConnect().getComponentName();\n } else {\n // inPConn is an object with the PConnect function, so we want\n // to return any referenced view as the object containing the\n // the c11n function\n returnObj = false;\n thePConnType = inPConn.getComponentName();\n }\n\n if (thePConnType === 'reference') {\n if (returnObj) {\n // WAS...\n // const theRefViewPConn = inPConn.getPConnect().getReferencedViewPConnect(true);\n // Now: ALWAYS calling createFullReferencedViewFromRef to have options, PageReference, etc.\n // set correctly in the C11nEnv (PConnect) object\n // debugger;\n let theRefViewPConn = this.createFullReferencedViewFromRef(inPConn.getPConnect());\n // now return its PConnect\n theRefViewPConn = theRefViewPConn.getComponent();\n\n // const theFullReference = theRefViewPConn.getPConnect().getFullReference();\n // console.log(`theFullReference: ${theFullReference}`);\n\n return theRefViewPConn;\n }\n // console.log(`created theFullRefView full reference: ${theFullRefView.getFullReference()}`);\n // debugger;\n\n return this.createFullReferencedViewFromRef(inPConn);\n }\n return inPConn;\n }\n\n // STATIC method that other components can call to normalize\n // an array of pConn objects where any of the children might\n // be a 'reference'. The array returns an array of children\n // where any 'reference' is replaced with its ReferencedView\n // inPConnArray is an array of PConn objects or functions.\n // Its value is passed to normalizePConn\n\n static normalizePConnArray(inPConnArray: any) {\n if (!(inPConnArray?.length > 0)) {\n // null or empty array, return what was passed in\n return inPConnArray;\n }\n\n return inPConnArray.map(child => {\n return ReferenceComponent.normalizePConn(child);\n });\n }\n}\n","<!-- Reference component is all static methods so .html not used -->\n","function hasNotificationMessages(pConnect) {\n return !!pConnect.getValue('caseMessages');\n}\n\nfunction isCaseWideLocalAction(pConnect) {\n const { CASE_INFO } = PCore.getConstants();\n const actionID = pConnect.getValue(CASE_INFO.ACTIVE_ACTION_ID);\n const caseActions = pConnect.getValue(CASE_INFO.CASE_INFO_ACTIONS);\n if (caseActions && actionID) {\n const activeAction = caseActions.find(caseAction => caseAction.ID === actionID);\n return activeAction?.type === 'Case';\n }\n return false;\n}\n\nfunction getChildCaseAssignments(pConnect) {\n const childCases = pConnect.getValue(PCore.getConstants().CASE_INFO.CHILD_ASSIGNMENTS);\n let allAssignments: any[] = [];\n if (childCases && childCases.length > 0) {\n childCases.forEach(({ assignments = [], Name }) => {\n const childCaseAssignments = assignments.map((assignment: any) => ({\n ...assignment,\n caseName: Name\n }));\n allAssignments = allAssignments.concat(childCaseAssignments);\n });\n }\n return allAssignments;\n}\n\nfunction hasAssignments(pConnect) {\n const { CASE_INFO } = PCore.getConstants();\n const assignments = pConnect.getValue(CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);\n const childCasesAssignments = getChildCaseAssignments(pConnect);\n\n return assignments || childCasesAssignments || isCaseWideLocalAction(pConnect);\n}\n\nexport const showBanner = getPConnect => {\n const pConnect = getPConnect;\n return hasNotificationMessages(pConnect) || !hasAssignments(pConnect);\n};\n\nfunction getActiveCaseActionName(pConnect) {\n const caseActions = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ACTIONS);\n const activeActionID = pConnect.getValue(PCore.getConstants().CASE_INFO.ACTIVE_ACTION_ID);\n const activeAction = caseActions.find(action => action.ID === activeActionID);\n return activeAction?.name || '';\n}\n\nfunction showTodo(pConnect) {\n const caseViewMode = pConnect.getValue('context_data.caseViewMode');\n return caseViewMode !== 'perform';\n}\n\nexport function getToDoAssignments(pConnect) {\n const caseActions = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ACTIONS);\n const assignmentLabel = pConnect.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENT_LABEL);\n const assignments = pConnect.getValue(PCore.getConstants().CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS) || [];\n const childCasesAssignments = getChildCaseAssignments(pConnect) || [];\n let childCasesAssignmentsCopy = JSON.parse(JSON.stringify(childCasesAssignments));\n\n childCasesAssignmentsCopy = childCasesAssignmentsCopy.map(assignment => {\n assignment.isChild = true;\n return assignment;\n });\n\n const todoAssignments = [...assignments, ...childCasesAssignmentsCopy];\n let todoAssignmentsCopy = JSON.parse(JSON.stringify(todoAssignments));\n\n if (caseActions && !showTodo(pConnect)) {\n todoAssignmentsCopy = todoAssignmentsCopy.map(assignment => {\n assignment.name = getActiveCaseActionName(pConnect) || assignmentLabel;\n return assignment;\n });\n }\n\n return todoAssignmentsCopy;\n}\n","import { Component, OnInit, Input, ChangeDetectorRef, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';\nimport { AngularPConnectData, AngularPConnectService } from '../../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../../_messages/progress-spinner.service';\nimport { ReferenceComponent } from '../../reference/reference.component';\nimport { Utils } from '../../../../_helpers/utils';\nimport { getToDoAssignments, showBanner } from './helpers';\nimport { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\ninterface FlowContainerProps {\n // If any, enter additional props that only exist on this component\n children?: any[];\n name?: string;\n routingInfo?: any;\n pageMessages: any[];\n}\n\n@Component({\n selector: 'app-flow-container',\n templateUrl: './flow-container.component.html',\n styleUrls: ['./flow-container.component.scss'],\n providers: [Utils],\n standalone: true,\n imports: [CommonModule, MatCardModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class FlowContainerComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n pCoreConstants: typeof publicConstants;\n configProps$: FlowContainerProps;\n\n formGroup$: FormGroup;\n arChildren$: any[];\n itemKey$ = '';\n containerName$: string;\n buildName$: string;\n\n // todo\n todo_showTodo$ = false;\n todo_caseInfoID$: string;\n todo_showTodoList$ = false;\n todo_datasource$: any;\n todo_headerText$ = 'To do';\n todo_type$: string;\n todo_context$: string;\n todo_pConn$: typeof PConnect;\n\n bHasCancel = false;\n\n // messages\n caseMessages$: string;\n bHasCaseMessages$ = false;\n checkSvg$: string;\n TODO: any;\n bShowConfirm = false;\n bShowBanner: boolean;\n confirm_pconn: any;\n localizedVal: any;\n localeCategory = 'Messages';\n localeReference: any;\n banners: any[];\n // itemKey: string = \"\"; // JA - this is what Nebula/Constellation uses to pass to finishAssignment, navigateToStep\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private psService: ProgressSpinnerService,\n private fb: FormBuilder,\n private ngZone: NgZone,\n private utils: Utils\n ) {\n // create the formGroup\n this.formGroup$ = this.fb.group({ hideRequired: false });\n }\n\n ngOnInit() {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n const caseInfo = this.pConn$.getCaseInfo();\n this.localeReference = `${caseInfo?.getClassName()}!CASE!${caseInfo.getName()}`.toUpperCase();\n\n // Then, continue on with other initialization\n\n // get the PCore constants\n this.pCoreConstants = PCore.getConstants();\n const { TODO } = this.pCoreConstants;\n this.TODO = TODO;\n // with init, force children to be loaded of global pConn\n this.initComponent(true);\n\n this.initContainer();\n\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL,\n () => {\n this.handleCancel();\n },\n 'cancelAssignment'\n );\n\n PCore.getPubSubUtils().subscribe(\n 'cancelPressed',\n () => {\n this.handleCancelPressed();\n },\n 'cancelPressed'\n );\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n\n PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL, 'cancelAssignment');\n\n PCore.getPubSubUtils().unsubscribe('cancelPressed', 'cancelPressed');\n }\n\n handleCancel() {\n // cancel happened, so ok to initialize the flow container\n sessionStorage.setItem('okToInitFlowContainer', 'true');\n }\n\n handleCancelPressed() {\n this.bHasCancel = true;\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n // AND removing the \"gate\" that was put there since shouldComponentUpdate\n // should be the real \"gate\"\n if (bUpdateSelf) {\n // don't want to redraw the flow container when there are page messages, because\n // the redraw causes us to loose the errors on the elements\n const completeProps = this.angularPConnect.getCurrentCompleteProps(this) as FlowContainerProps;\n if (!completeProps.pageMessages || completeProps.pageMessages.length == 0) {\n // with a cancel, need to timeout so todo will update correctly\n if (this.bHasCancel) {\n this.bHasCancel = false;\n setTimeout(() => {\n this.updateSelf();\n }, 500);\n } else {\n this.updateSelf();\n }\n } else {\n this.showPageMessages(completeProps);\n }\n }\n }\n\n showPageMessages(completeProps: FlowContainerProps) {\n this.ngZone.run(() => {\n const pageMessages = completeProps.pageMessages;\n this.banners = [{ messages: pageMessages?.map(msg => this.localizedVal(msg.message, 'Messages')), variant: 'urgent' }];\n });\n }\n\n getTodoVisibilty() {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const caseViewMode = this.pConn$.getValue('context_data.caseViewMode');\n if (caseViewMode && caseViewMode === 'review') {\n const kid = this.pConn$.getChildren()[0];\n const todoKid = kid.getPConnect().getChildren()[0];\n\n this.todo_pConn$ = todoKid.getPConnect();\n\n return true;\n }\n\n return !(caseViewMode && caseViewMode === 'perform');\n }\n\n initContainer() {\n const containerMgr: any = this.pConn$.getContainerManager();\n const baseContext = this.pConn$.getContextName();\n const containerName = this.pConn$.getContainerName();\n const containerType = 'single';\n\n const flowContainerTarget = `${baseContext}/${containerName}`;\n const isContainerItemAvailable = PCore.getContainerUtils().getActiveContainerItemName(flowContainerTarget);\n\n // clear out since we are initializing\n sessionStorage.setItem('okToInitFlowContainer', 'false');\n\n if (!isContainerItemAvailable) {\n containerMgr.initializeContainers({\n type: containerType\n });\n\n /* remove commented out code when update React/WC\n *** instead of getting values here to pass to addContainerItem, we call the function below \"addContainerItem\"\n *** which comes from flow container helpers in Nebula\n */\n // containerMgr.addContainerItem({\n // semanticURL: \"\",\n // key: this.pConn$.getValue(\"key\"),\n // flowName: this.pConn$.getValue(\"flowName\"),\n // caseViewMode: \"perform\",\n // data: this.pConn$.getDataObject(baseContext),\n // containerType\n // });\n\n this.addContainerItem(this.pConn$);\n }\n }\n\n initComponent(bLoadChildren: boolean) {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as FlowContainerProps;\n this.showPageMessages(this.configProps$);\n\n // when true, update arChildren from pConn, otherwise, arChilren will be updated in updateSelf()\n if (bLoadChildren) {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n\n // const oData = this.pConn$.getDataObject();\n\n // const activeActionLabel: string = '';\n // const { getPConnect } = this.arChildren$[0].getPConnect();\n\n this.todo_showTodo$ = this.getTodoVisibilty();\n\n // create pointers to functions\n // const containerMgr = this.pConn$.getContainerManager();\n // const actionsAPI = this.pConn$.getActionsApi();\n const baseContext = this.pConn$.getContextName();\n const acName = this.pConn$.getContainerName();\n\n if (this.itemKey$ === '') {\n this.itemKey$ = baseContext.concat('/').concat(acName);\n }\n\n this.pConn$.isBoundToState();\n\n // inside\n // get fist kid, get the name and display\n // pass first kid to a view container, which will disperse it to a view which will use one column, two column, etc.\n const oWorkItem = this.arChildren$[0].getPConnect();\n // const oWorkMeta = oWorkItem.getRawMetadata();\n const oWorkData = oWorkItem.getDataObject();\n\n // this.containerName$ = oWorkMeta[\"name\"];\n if (bLoadChildren && oWorkData) {\n this.containerName$ = this.localizedVal(this.getActiveViewLabel() || oWorkData.caseInfo.assignments[0].name, undefined, this.localeReference);\n }\n\n // turn off spinner\n this.psService.sendMessage(false);\n }\n\n hasAssignments() {\n let hasAssignments = false;\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const assignmentsList = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);\n const thisOperator = PCore.getEnvironmentInfo().getOperatorIdentifier();\n // 8.7 includes assignments in Assignments List that may be assigned to\n // a different operator. So, see if there are any assignments for\n // the current operator\n let bAssignmentsForThisOperator = false;\n\n // Bail if there is no assignmentsList\n if (!assignmentsList) {\n return hasAssignments;\n }\n\n for (const assignment of assignmentsList) {\n if ((assignment as any).assigneeInfo.ID === thisOperator) {\n bAssignmentsForThisOperator = true;\n }\n }\n\n const hasChildCaseAssignments = this.hasChildCaseAssignments();\n\n if (bAssignmentsForThisOperator || hasChildCaseAssignments || this.isCaseWideLocalAction()) {\n hasAssignments = true;\n }\n\n return hasAssignments;\n }\n\n isCaseWideLocalAction() {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const actionID = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.ACTIVE_ACTION_ID);\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const caseActions = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.AVAILABLEACTIONS) as any[];\n let bCaseWideAction = false;\n if (caseActions && actionID) {\n const actionObj = caseActions.find(caseAction => caseAction.ID === actionID);\n if (actionObj) {\n bCaseWideAction = actionObj.type === 'Case';\n }\n }\n return bCaseWideAction;\n }\n\n hasChildCaseAssignments() {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const childCases = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.CHILD_ASSIGNMENTS);\n\n return childCases && childCases.length > 0;\n }\n\n getActiveViewLabel() {\n let activeActionLabel = '';\n\n const { CASE_INFO: CASE_CONSTS } = PCore.getConstants();\n\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const caseActions = this.pConn$.getValue(CASE_CONSTS.CASE_INFO_ACTIONS) as any[];\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const activeActionID = this.pConn$.getValue(CASE_CONSTS.ACTIVE_ACTION_ID);\n const activeAction = caseActions?.find(action => action.ID === activeActionID);\n if (activeAction) {\n activeActionLabel = activeAction.name;\n }\n return activeActionLabel;\n }\n\n findCurrentIndicies(arStepperSteps: any[], arIndicies: number[], depth: number): number[] {\n let count = 0;\n arStepperSteps.forEach(step => {\n if (step.visited_status == 'current') {\n arIndicies[depth] = count;\n\n // add in\n step.step_status = '';\n } else if (step.visited_status == 'success') {\n count++;\n step.step_status = 'completed';\n } else {\n count++;\n step.step_status = '';\n }\n\n if (step.steps) {\n arIndicies = this.findCurrentIndicies(step.steps, arIndicies, depth + 1);\n }\n });\n\n return arIndicies;\n }\n\n // Called when bridge shouldComponentUpdate indicates that this component\n // should update itself (re-render)\n updateSelf() {\n // for now\n // const { getPConnect } = this.arChildren$[0].getPConnect();\n const localPConn = this.arChildren$[0].getPConnect();\n\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const caseViewMode = this.pConn$.getValue('context_data.caseViewMode');\n this.bShowBanner = showBanner(this.pConn$);\n\n if (caseViewMode && caseViewMode == 'review') {\n this.loadReviewPage(localPConn);\n\n // in Nebula/Constellation, when cancel is called, somehow the constructor for flowContainer is called which\n // does init/add of containers. This mimics that\n if (sessionStorage.getItem('okToInitFlowContainer') == 'true') {\n this.initContainer();\n }\n } else if (caseViewMode && caseViewMode === 'perform') {\n // perform\n this.todo_showTodo$ = false;\n\n // this is different than Angular SDK, as we need to initContainer if root container reloaded\n if (sessionStorage.getItem('okToInitFlowContainer') == 'true') {\n this.initContainer();\n }\n }\n\n // if have caseMessage show message and end\n this.showCaseMessages();\n\n this.updateFlowContainerChildren();\n }\n\n loadReviewPage(localPConn) {\n const { CASE_INFO: CASE_CONSTS } = PCore.getConstants();\n\n setTimeout(() => {\n this.ngZone.run(() => {\n /*\n *** renove this commmented out code when React/WC is updated\n *** this code is replace with the call to \"getToDoAssigments\" function below\n\n const assignmentsList = localPConn.getValue(\n CASE_CONSTS.D_CASE_ASSIGNMENTS_RESULTS\n );\n // add status\n const status = localPConn.getValue(\"caseInfo.status\");\n\n let localAssignment = JSON.parse(JSON.stringify(assignmentsList[0]));\n localAssignment.status = status;\n let locaAssignmentsList: Array<any> = [];\n locaAssignmentsList.push(localAssignment);\n\n const caseActions = localPConn.getValue(CASE_CONSTS.CASE_INFO_ACTIONS);\n */\n\n const todoAssignments = getToDoAssignments(this.pConn$);\n\n if (todoAssignments && todoAssignments.length > 0) {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n this.todo_caseInfoID$ = this.pConn$.getValue(CASE_CONSTS.CASE_INFO_ID);\n this.todo_datasource$ = { source: todoAssignments };\n }\n\n /* remove this commented out code when update React/WC */\n // let kid = this.pConn$.getChildren()[0];\n\n // kid.getPConnect() can be a Reference component. So normalize it just in case\n // let todoKid = ReferenceComponent.normalizePConn(kid.getPConnect()).getChildren()[0];\n\n // this.todo_pConn$ = todoKid.getPConnect();\n\n /* code change here to note for React/WC */\n // todo now needs pConn to open the work item on click \"go\"\n this.todo_pConn$ = this.pConn$;\n\n // still needs the context of the original work item\n this.todo_context$ = localPConn.getContextName();\n\n this.todo_showTodo$ = true;\n\n this.psService.sendMessage(false);\n });\n });\n }\n\n showCaseMessages() {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n this.caseMessages$ = this.localizedVal(this.pConn$.getValue('caseMessages'), this.localeCategory);\n if (this.caseMessages$ || !this.hasAssignments()) {\n this.bHasCaseMessages$ = true;\n this.bShowConfirm = true;\n this.checkSvg$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());\n // Temp fix for 8.7 change: confirmationNote no longer coming through in caseMessages$.\n // So, if we get here and caseMessages$ is empty, use default value in DX API response\n if (!this.caseMessages$) {\n this.caseMessages$ = this.localizedVal('Thank you! The next step in this case has been routed appropriately.', this.localeCategory);\n }\n\n // publish this \"assignmentFinished\" for mashup, need to get approved as a standard\n // @ts-ignore - second parameter “payload” for publish method should be optional\n PCore.getPubSubUtils().publish('assignmentFinished');\n\n this.psService.sendMessage(false);\n } else if (this.bHasCaseMessages$) {\n this.bHasCaseMessages$ = false;\n this.bShowConfirm = false;\n }\n }\n\n updateFlowContainerChildren() {\n // routingInfo was added as component prop in populateAdditionalProps\n const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');\n\n let loadingInfo: any;\n try {\n // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'\n loadingInfo = this.pConn$.getLoadingStatus();\n } catch (ex) {\n /* empty */\n }\n\n // this check in routingInfo, mimic Nebula/Constellation (React) to check and get the internals of the\n // flowContainer and force updates to pConnect/redux\n if (routingInfo && loadingInfo !== undefined) {\n const currentOrder = routingInfo.accessedOrder;\n const currentItems = routingInfo.items;\n const type = routingInfo.type;\n if (currentOrder && currentItems) {\n // JA - making more similar to Nebula/Constellation\n const key = currentOrder[currentOrder.length - 1];\n\n // save off itemKey to be used for finishAssignment, etc.\n // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (key && key != '') {\n this.itemKey$ = key;\n this.cdRef.detectChanges();\n }\n });\n\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (currentOrder.length > 0) {\n if (currentItems[key] && currentItems[key].view && type === 'single' && Object.keys(currentItems[key].view).length > 0) {\n // when we get here, it it because the flow action data has changed\n // from the server, and need to add to pConnect and update children\n\n this.addPConnectAndUpdateChildren(currentItems[key], key);\n }\n }\n }\n }\n }\n\n addPConnectAndUpdateChildren(currentItem, key) {\n const localPConn = this.arChildren$[0].getPConnect();\n\n const rootView = currentItem.view;\n const { context, name: ViewName } = rootView.config;\n const config: any = { meta: rootView };\n\n // Don't go ahead if View doesn't exist\n if (!ViewName) {\n return;\n }\n\n this.todo_context$ = currentItem.context;\n\n config.options = {\n context: currentItem.context,\n pageReference: context || localPConn.getPageReference(),\n hasForm: true,\n isFlowContainer: true,\n containerName: localPConn.getContainerName(),\n containerItemName: key,\n parentPageReference: localPConn.getPageReference()\n };\n\n const configObject = PCore.createPConnect(config);\n this.confirm_pconn = configObject.getPConnect();\n // 8.7 - config might be a Reference component so, need to normalize it to get\n // the View if it is a Reference component. And need to pass in the getPConnect\n // to have normalize do a c11Env createComponent (that makes sure options.hasForm\n // is passed along to all the component's children)\n const normalizedConfigObject = ReferenceComponent.normalizePConn(configObject.getPConnect());\n // We want the children to be the PConnect itself, not the result of calling getPConnect(),\n // So need to get the PConnect of the normalized component we just created...\n const normalizedConfigObjectAsPConnect = normalizedConfigObject.getComponent();\n\n // makes sure Angular tracks these changes\n this.ngZone.run(() => {\n this.buildName$ = this.getBuildName();\n // what comes back now in configObject is the children of the flowContainer\n\n this.arChildren$ = [];\n this.arChildren$.push(normalizedConfigObjectAsPConnect);\n\n this.psService.sendMessage(false);\n\n const oWorkItem = configObject.getPConnect();\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n const oWorkData: any = oWorkItem.getDataObject();\n\n this.containerName$ = this.localizedVal(this.getActiveViewLabel() || oWorkData.caseInfo.assignments?.[0].name, undefined, this.localeReference);\n });\n }\n\n getBuildName(): string {\n // let { getPConnect, name } = this.pConn$.props;\n const context = this.pConn$.getContextName();\n let viewContainerName = this.pConn$.getContainerName();\n\n if (!viewContainerName) viewContainerName = '';\n return `${context.toUpperCase()}/${viewContainerName.toUpperCase()}`;\n }\n\n formValid(): boolean {\n this.touchAll();\n return this.formGroup$.valid;\n }\n\n touchAll(): void {\n Object.values(this.formGroup$.controls).forEach(control => {\n control.markAsTouched();\n });\n }\n\n // eslint-disable-next-line sonarjs/no-identical-functions\n topViewRefresh(): void {\n Object.values(this.formGroup$.controls).forEach(control => {\n control.markAsTouched();\n });\n }\n\n // helpers - copyied from flow container helpers.js\n\n addContainerItem(pConnect) {\n // copied from flow container helper.js\n const containerManager = pConnect.getContainerManager();\n const contextName = pConnect.getContextName(); // here we will get parent context name, as flow container is child of view container\n const caseViewMode = pConnect.getValue('context_data.caseViewMode');\n\n let key;\n let flowName;\n\n if (caseViewMode !== 'review') {\n const target = contextName.substring(0, contextName.lastIndexOf('_'));\n const activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(target);\n const containerItemData = PCore.getContainerUtils().getContainerItemData(target, activeContainerItemID);\n\n if (containerItemData) {\n ({ key, flowName } = containerItemData);\n }\n }\n\n containerManager.addContainerItem({\n semanticURL: '',\n key,\n flowName,\n caseViewMode: 'perform',\n resourceType: 'ASSIGNMENT',\n data: pConnect.getDataObject(contextName)\n });\n }\n // helpers end\n}\n","<div style=\"text-align: left\" class=\"psdk-flow-container-top\">\n <div *ngIf=\"!bShowConfirm\">\n <div *ngIf=\"!todo_showTodo$\">\n <h2>{{ containerName$ }}</h2>\n <div *ngIf=\"banners?.length\">\n <component-mapper name=\"AlertBanner\" [props]=\"{ banners }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"todo_showTodo$\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{\n pConn$: todo_pConn$,\n caseInfoID$: todo_caseInfoID$,\n datasource$: todo_datasource$,\n showTodoList$: todo_showTodoList$,\n headerText$: todo_headerText$,\n type$: 'TODO',\n context$: todo_context$,\n itemKey$: itemKey$\n }\"\n ></component-mapper>\n </div>\n <div *ngIf=\"!todo_showTodo$\">\n <component-mapper name=\"Assignment\" [props]=\"{ pConn$, formGroup$, arChildren$, itemKey$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"bHasCaseMessages$\">\n <mat-card class=\"psdk-message-card\">\n <div style=\"display: flex; flex-direction: row\">\n <div><img class=\"psdk-icon\" src=\"{{ checkSvg$ }}\" /></div>\n <div>{{ caseMessages$ }}</div>\n </div>\n </mat-card>\n </div>\n <div *ngIf=\"bShowBanner && bShowConfirm\">\n <component-mapper name=\"View\" [props]=\"{ formGroup$, pConn$: confirm_pconn }\"></component-mapper>\n </div>\n</div>\n","/**\n * Function that accepts array of messages as input and group them by their type and returns the resulting object\n * @param {Array} inputMessages\n * Eg: [\n * {message: 'First Name is required', type: 'error'},\n * {message: 'Last Name is required', type: 'error'},\n * {message: 'Address field should be clear and precise', type: 'info'}\n * ]\n *\n * @returns {object}\n *\n * Eg: {\n * error: ['First Name is required', 'Last Name is required'],\n * info: ['Address field should be clear and precise']\n * }\n */\n\nfunction getMessagesGrouped(inputMessages) {\n const messages = {};\n\n if (inputMessages && inputMessages instanceof Array && inputMessages.length > 0) {\n inputMessages.forEach(item => {\n const { message, type } = item;\n messages[type] = [...(messages[type] || []), message];\n });\n }\n return messages;\n}\n\n/**\n * Function accepts a error type and variant of the banner\n * @param {string} type\n * Eg: 'error'\n * @returns {string}\n * Eg: 'urgent'\n */\nfunction getVariant(type) {\n const { BANNER_VARIANT_SUCCESS, BANNER_VARIANT_INFO, BANNER_VARIANT_URGENT, MESSAGES } = PCore.getConstants();\n const { MESSAGES_TYPE_ERROR, MESSAGES_TYPE_INFO, MESSAGES_TYPE_SUCCESS } = MESSAGES;\n\n let variant;\n switch (type) {\n case MESSAGES_TYPE_ERROR:\n variant = BANNER_VARIANT_URGENT;\n break;\n case MESSAGES_TYPE_INFO:\n variant = BANNER_VARIANT_INFO;\n break;\n case MESSAGES_TYPE_SUCCESS:\n variant = BANNER_VARIANT_SUCCESS;\n break;\n default:\n variant = '';\n }\n return variant;\n}\n\nfunction getBanners(config) {\n const { target, pageMessages, httpMessages } = config;\n const { PAGE } = PCore.getConstants();\n // const { clearMessages } = PCore.getMessageManager();\n const banners: any = [];\n const groupedPageMessages = getMessagesGrouped(pageMessages);\n\n Object.keys(groupedPageMessages).forEach(type => {\n const messagesByType = groupedPageMessages[type];\n const variant = getVariant(type);\n const pageMessagesBannerID = `${target}_${PAGE}_${type}`.toLowerCase().replace('/', '_');\n banners.push({ id: pageMessagesBannerID, messages: messagesByType, variant, PAGE, type, target });\n });\n\n if (httpMessages && httpMessages.length > 0) {\n banners.push({ id: 'modalViewContainerBanner', messages: httpMessages, variant: 'urgent' });\n }\n\n return banners;\n}\n\nexport { getMessagesGrouped, getBanners };\n","import { Component, OnInit, Input, Output, EventEmitter, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport isEqual from 'fast-deep-equal';\nimport { AngularPConnectData, AngularPConnectService } from '../../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../../_messages/progress-spinner.service';\nimport { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';\nimport { getBanners } from '../../../../_helpers/case-utils';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\n@Component({\n selector: 'app-modal-view-container',\n templateUrl: './modal-view-container.component.html',\n styleUrls: ['./modal-view-container.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ModalViewContainerComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() displayOnlyFA$: boolean;\n\n // for when non modal\n @Output() modalVisibleChange = new EventEmitter<boolean>();\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n arChildren$: any[];\n stateProps$: Object;\n banners: any;\n templateName$: string;\n buildName$: string;\n context$: string;\n title$ = '';\n bShowModal$ = false;\n bShowAsModal$ = true;\n itemKey$: string;\n formGroup$: FormGroup;\n oCaseInfo: Object = {};\n\n // for causing a change on assignment\n updateToken$ = 0;\n\n routingInfoRef: any = {};\n\n // created object is now a View with a Template\n // Use its PConnect to render the CaseView; DON'T replace this.pConn$\n createdViewPConn$: any;\n\n bSubscribed = false;\n cancelPConn$?: typeof PConnect;\n bShowCancelAlert$ = false;\n bAlertState: boolean;\n localizedVal: Function;\n localeCategory = 'Data Object';\n isMultiRecord = false;\n actionsDialog = false;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private ngZone: NgZone,\n private psService: ProgressSpinnerService,\n private fb: FormBuilder\n ) {\n // create the formGroup\n this.formGroup$ = fb.group({ hideRequired: false });\n }\n\n ngOnInit(): void {\n if (this.displayOnlyFA$) {\n // for when non modal\n this.bShowAsModal$ = false;\n }\n\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n const baseContext = this.pConn$.getContextName();\n const acName = this.pConn$.getContainerName();\n\n // for now, in general this should be overridden by updateSelf(), and not be blank\n if (this.itemKey$ === '') {\n this.itemKey$ = baseContext.concat('/').concat(acName);\n }\n\n const containerMgr: any = this.pConn$.getContainerManager();\n\n containerMgr.initializeContainers({\n type: 'multiple'\n });\n\n // const { CONTAINER_TYPE, PUB_SUB_EVENTS } = PCore.getConstants();\n\n this.angularPConnect.shouldComponentUpdate(this);\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n\n const { PUB_SUB_EVENTS } = PCore.getConstants();\n\n PCore.getPubSubUtils().unsubscribe(\n PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT,\n PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT /* Should be same unique string passed during subscription */\n );\n this.bSubscribed = false;\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n } else if (this.bShowModal$) {\n // right now onlu get one updated when initial diaplay. So, once modal is up\n // let fall through and do a check with \"compareCaseInfoIsDifferent\" until fixed\n // this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // routingInfo was added as component prop in populateAdditionalProps\n const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');\n this.routingInfoRef.current = routingInfo;\n\n let loadingInfo;\n try {\n // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'\n loadingInfo = this.pConn$.getLoadingStatus();\n } catch (ex) {\n /* empty */\n }\n // const configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n this.stateProps$ = this.pConn$.getStateProps();\n this.banners = this.getBanners();\n\n if (!loadingInfo) {\n // turn off spinner\n // this.psService.sendMessage(false);\n }\n\n if (routingInfo && !loadingInfo /* && this.bUpdate */) {\n const currentOrder = routingInfo.accessedOrder;\n\n if (undefined == currentOrder) {\n return;\n }\n\n const currentItems = routingInfo.items;\n\n const { key, latestItem } = this.getKeyAndLatestItem(routingInfo);\n\n if (currentOrder.length > 0) {\n if (currentItems[key] && currentItems[key].view && Object.keys(currentItems[key].view).length > 0) {\n const currentItem = currentItems[key];\n const rootView = currentItem.view;\n const { context } = rootView.config;\n const config: any = { meta: rootView };\n config.options = {\n context: currentItem.context,\n hasForm: true,\n pageReference: context || this.pConn$.getPageReference()\n };\n\n if (!this.bSubscribed) {\n this.bSubscribed = true;\n const { PUB_SUB_EVENTS } = PCore.getConstants();\n PCore.getPubSubUtils().subscribe(\n PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT,\n payload => {\n this.showAlert(payload);\n },\n PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT\n );\n }\n\n // let configObject = PCore.createPConnect(config);\n\n // THIS is where the ViewContainer creates a View\n // The config has meta.config.type = \"view\"\n this.createView(routingInfo, currentItem, latestItem, key);\n }\n } else {\n this.hideModal();\n }\n }\n }\n\n createView(routingInfo, currentItem, latestItem, key) {\n const configObject = this.getConfigObject(currentItem, this.pConn$);\n const newComp = configObject?.getPConnect();\n // const newCompName = newComp.getComponentName();\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n const caseInfo = newComp && newComp.getDataObject() && newComp.getDataObject().caseInfo ? newComp.getDataObject().caseInfo : null;\n // The metadata for pyDetails changed such that the \"template\": \"CaseView\"\n // is no longer a child of the created View but is in the created View's\n // config. So, we DON'T want to replace this.pConn$ since the created\n // component is a View (and not a ViewContainer). We now look for the\n // \"template\" type directly in the created component (newComp) and NOT\n // as a child of the newly created component.\n // console.log(`---> ModalViewContainer created new ${newCompName}`);\n\n // Use the newly created component (View) info but DO NOT replace\n // this ModalViewContainer's pConn$, etc.\n // Note that we're now using the newly created View's PConnect in the\n // ViewContainer HTML template to guide what's rendered similar to what\n // the Nebula/Constellation return of React.Fragment does\n\n // right now need to check caseInfo for changes, to trigger redraw, not getting\n // changes from angularPconnect except for first draw\n if (newComp && caseInfo && this.compareCaseInfoIsDifferent(caseInfo)) {\n this.psService.sendMessage(false);\n\n this.ngZone.run(() => {\n this.createdViewPConn$ = newComp;\n const newConfigProps = newComp.getConfigProps();\n this.templateName$ = 'template' in newConfigProps ? (newConfigProps.template as string) : '';\n\n const { actionName } = latestItem;\n const theNewCaseInfo = newComp.getCaseInfo();\n // const caseName = theNewCaseInfo.getName();\n const ID = theNewCaseInfo.getBusinessID() || theNewCaseInfo.getID();\n\n const caseTypeName = theNewCaseInfo.getCaseTypeName();\n const isDataObject = routingInfo.items[latestItem.context].resourceType === PCore.getConstants().RESOURCE_TYPES.DATA;\n const dataObjectAction = routingInfo.items[latestItem.context].resourceStatus;\n this.isMultiRecord = routingInfo.items[latestItem.context].isMultiRecordData;\n this.context$ = latestItem.context;\n this.title$ =\n isDataObject || this.isMultiRecord\n ? this.getModalHeading(dataObjectAction)\n : this.determineModalHeaderByAction(\n actionName,\n caseTypeName,\n ID,\n `${theNewCaseInfo?.getClassName()}!CASE!${theNewCaseInfo.getName()}`.toUpperCase()\n );\n // // update children with new view's children\n this.arChildren$ = newComp.getChildren() as any[];\n this.bShowModal$ = true;\n\n // for when non modal\n this.modalVisibleChange.emit(this.bShowModal$);\n\n // save off itemKey to be used for finishAssignment, etc.\n this.itemKey$ = key;\n\n // cause a change for assignment\n this.updateToken$ = new Date().getTime();\n });\n }\n }\n\n hideModal() {\n if (this.bShowModal$) {\n // other code in Nebula/Constellation not needed currently, but if so later,\n // should put here\n }\n\n this.ngZone.run(() => {\n this.bShowModal$ = false;\n\n // for when non modal\n this.modalVisibleChange.emit(this.bShowModal$);\n\n this.oCaseInfo = {};\n });\n }\n\n getConfigObject(item, pConnect) {\n if (item) {\n const { context, view } = item;\n const config = {\n meta: view,\n options: {\n context,\n pageReference: view.config.context || pConnect.getPageReference(),\n hasForm: true,\n containerName: pConnect?.getContainerName() || PCore.getConstants().MODAL\n }\n };\n return PCore.createPConnect(config);\n }\n return null;\n }\n\n onAlertState(bData: boolean) {\n this.bAlertState = bData;\n this.bShowCancelAlert$ = false;\n if (this.bAlertState) {\n this.hideModal();\n }\n }\n\n showAlert(payload) {\n const { latestItem } = this.getKeyAndLatestItem(this.routingInfoRef.current);\n const { isModalAction } = payload;\n\n /*\n If we are in create stage full page mode, created a new case and trying to click on cancel button\n it will show two alert dialogs which is not expected. Hence isModalAction flag to avoid that.\n */\n if (latestItem && isModalAction && !this.actionsDialog) {\n const configObject = this.getConfigObject(latestItem, this.pConn$);\n this.ngZone.run(() => {\n this.cancelPConn$ = configObject?.getPConnect();\n this.bShowCancelAlert$ = true;\n });\n }\n }\n\n hasContainerItems(routingInfo) {\n if (routingInfo) {\n const { accessedOrder, items } = routingInfo;\n return accessedOrder && accessedOrder.length > 0 && items;\n }\n return false;\n }\n\n getKeyAndLatestItem(routinginfo) {\n if (this.hasContainerItems(routinginfo)) {\n const { accessedOrder, items } = routinginfo;\n const key = accessedOrder[accessedOrder.length - 1];\n const latestItem = items[key];\n return { key, latestItem };\n }\n return {};\n }\n\n compareCaseInfoIsDifferent(oCurrentCaseInfo: Object): boolean {\n let bRet = false;\n\n // fast-deep-equal version\n if (isEqual !== undefined) {\n bRet = !isEqual(this.oCaseInfo, oCurrentCaseInfo);\n } else {\n const sCurrnentCaseInfo = JSON.stringify(oCurrentCaseInfo);\n const sOldCaseInfo = JSON.stringify(this.oCaseInfo);\n // stringify compare version\n if (sCurrnentCaseInfo != sOldCaseInfo) {\n bRet = true;\n }\n }\n\n // if different, save off new case info\n if (bRet) {\n this.oCaseInfo = JSON.parse(JSON.stringify(oCurrentCaseInfo));\n }\n\n return bRet;\n }\n\n getBanners() {\n return getBanners({ target: this.itemKey$, ...this.stateProps$ });\n }\n\n getModalHeading(dataObjectAction) {\n return dataObjectAction === PCore.getConstants().RESOURCE_STATUS.CREATE\n ? this.localizedVal('Add Record', this.localeCategory)\n : this.localizedVal('Edit Record', this.localeCategory);\n }\n\n determineModalHeaderByAction(actionName, caseTypeName, ID, caseLocaleRef) {\n if (actionName) {\n return this.localizedVal(actionName, this.localeCategory);\n }\n return `${this.localizedVal('Create', this.localeCategory)} ${this.localizedVal(caseTypeName, undefined, caseLocaleRef)} (${ID})`;\n }\n\n closeActionsDialog = () => {\n this.actionsDialog = true;\n // this.ngZone.run(() => {\n this.bShowModal$ = false;\n\n // for when non modal\n this.modalVisibleChange.emit(this.bShowModal$);\n\n this.oCaseInfo = {};\n // });\n };\n}\n","<div id=\"dialog\" *ngIf=\"bShowModal$ && bShowAsModal$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-view-container-top\" id=\"{{ buildName$ }}\">\n <h3 *ngIf=\"title$ != ''\">{{ title$ }}</h3>\n <component-mapper\n name=\"Assignment\"\n [props]=\"{ pConn$: createdViewPConn$, formGroup$, arChildren$, itemKey$, isCreateStage$: true, updateToken$, isInModal$: true, banners }\"\n ></component-mapper>\n <div *ngIf=\"isMultiRecord\">\n <component-mapper\n name=\"ListViewActionButtons\"\n [props]=\"{ pConn$: createdViewPConn$, context$ }\"\n [outputEvents]=\"{ closeActionsDialog: closeActionsDialog }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"bShowModal$ && !bShowAsModal$\">\n <div id=\"{{ buildName$ }}\">\n <h3 *ngIf=\"title$ != ''\">{{ title$ }}</h3>\n <component-mapper\n name=\"Assignment\"\n [props]=\"{ pConn$: createdViewPConn$, formGroup$, arChildren$, itemKey$, isCreateStage$: true, updateToken$ }\"\n ></component-mapper>\n </div>\n</div>\n\n<div *ngIf=\"bShowCancelAlert$\">\n <component-mapper\n name=\"CancelAlert\"\n [props]=\"{ bShowAlert$: bShowCancelAlert$, pConn$: cancelPConn$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onAlertState$: onAlertState }\"\n ></component-mapper>\n</div>\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../../_messages/progress-spinner.service';\nimport { ReferenceComponent } from '../../reference/reference.component';\nimport { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\ninterface ViewContainerProps {\n // If any, enter additional props that only exist on this component\n mode?: string;\n name?: string;\n limit?: number;\n template?: string;\n title?: string;\n routingInfo: object;\n readOnly?: boolean;\n}\n\n@Component({\n selector: 'app-view-container',\n templateUrl: './view-container.component.html',\n styleUrls: ['./view-container.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ViewContainerComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n @Input() displayOnlyFA$: boolean;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: ViewContainerProps;\n\n arChildren$: any[];\n templateName$: string;\n buildName$: string;\n context$: string;\n title$ = '';\n\n viewPConn$: any;\n\n isViewContainer$ = true;\n\n // JA - created object is now a View with a Template\n // Use its PConnect to render the CaseView; DON'T replace this.pConn$\n createdViewPConn$: any;\n state: any;\n dispatchObject: any;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private psService: ProgressSpinnerService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit() {\n if (this.displayOnlyFA$ == null) {\n this.displayOnlyFA$ = false;\n }\n\n // debugger;\n\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // Then, continue on with other initialization\n\n // this.configProps$ = this.pConn$.getConfigProps();\n // children may have a 'reference' so normalize the children array\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n\n this.buildName$ = this.buildName();\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ViewContainerProps;\n this.templateName$ = this.configProps$.template || '';\n this.title$ = this.configProps$.title || '';\n const { CONTAINER_TYPE, APP } = PCore.getConstants();\n const { name, mode, limit } = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ViewContainerProps;\n\n this.pConn$.isBoundToState();\n\n const containerMgr: any = this.pConn$.getContainerManager();\n\n this.prepareDispatchObject = this.prepareDispatchObject.bind(this);\n\n this.dispatchObject = this.prepareDispatchObject();\n\n // TODO: Plan is to rename window.constellationCore to window.pega (or similar)\n // And expose less via ui-bootstrap.js\n this.state = {\n dispatchObject: this.dispatchObject,\n // PCore is defined in pxBootstrapShell - eventually will be exported in place of constellationCore\n\n visible: !PCore.checkIfSemanticURL()\n };\n\n // here, to match Nebula/Constellation, the constructor of ViewContainer is only called once, and thus init/add container is only\n // called once. Because of Angular creating and destroy components if the parent changes a lot, this component will be\n // created and destroyed more than once. So the sessionStore \"hasViewContainer\" is set to false in rootContainer and then\n // after first round is true here. Subsequent ViewContainer creation will not init/add more containers.\n\n if (sessionStorage.getItem('hasViewContainer') == 'false') {\n // unlike Nebula/Constellation, have to initializeContainer after we create a dispatcObject and state, otherwise, when calling\n // initializeContainer before, code will get executed that needs state that wasn't defined.\n\n containerMgr.initializeContainers({\n type: mode === CONTAINER_TYPE.MULTIPLE ? CONTAINER_TYPE.MULTIPLE : CONTAINER_TYPE.SINGLE\n });\n\n if (mode === CONTAINER_TYPE.MULTIPLE && limit) {\n /* NOTE: setContainerLimit use is temporary. It is a non-public, unsupported API. */\n PCore.getContainerUtils().setContainerLimit(`${APP.APP}/${name}`, limit);\n }\n }\n\n if (sessionStorage.getItem('hasViewContainer') == 'false') {\n // @ts-ignore - Property 'getMetadata' is private and only accessible within class\n if (this.pConn$.getMetadata().children) {\n containerMgr.addContainerItem(this.dispatchObject);\n }\n\n sessionStorage.setItem('hasViewContainer', 'true');\n }\n\n // cannot call checkAndUpdate becasue first time through, will call updateSelf and that is incorrect (causes issues).\n // however, need angularPConnect to be initialized with currentProps for future updates, so calling shouldComponentUpdate directly\n // without checking to update here in init, will initialize and this is correct\n this.angularPConnect.shouldComponentUpdate(this);\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n // *** DON'T call updateSelf in ngInit!! ***\n\n if (this.arChildren$ == null) {\n // children may have a 'reference' so normalize the children array\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n }\n\n // routingInfo was added as component prop in populateAdditionalProps\n const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');\n\n let loadingInfo;\n try {\n // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'\n loadingInfo = this.pConn$.getLoadingStatus();\n\n this.psService.sendMessage(loadingInfo);\n } catch (ex) {\n /* empty */\n }\n\n // const buildName = this.buildName();\n const { CREATE_DETAILS_VIEW_NAME } = PCore.getConstants();\n if (routingInfo) {\n const { accessedOrder, items } = routingInfo;\n if (accessedOrder && items) {\n const key = accessedOrder[accessedOrder.length - 1];\n let componentVisible = accessedOrder.length > 0;\n const { visible } = this.state;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n componentVisible = visible || componentVisible;\n if (items[key] && items[key].view && Object.keys(items[key].view).length > 0) {\n const latestItem = items[key];\n const rootView = latestItem.view;\n const { context, name: viewName } = rootView.config;\n const config: any = { meta: rootView };\n config.options = {\n context: latestItem.context,\n pageReference: context || this.pConn$.getPageReference(),\n containerName: this.pConn$.getContainerName(),\n containerItemName: key,\n hasForm: viewName === CREATE_DETAILS_VIEW_NAME\n };\n const configObject = PCore.createPConnect(config);\n\n // THIS is where the ViewContainer creates a View\n // The config has meta.config.type = \"view\"\n const newComp = configObject.getPConnect();\n // const newCompName = newComp.getComponentName();\n // The metadata for pyDetails changed such that the \"template\": \"CaseView\"\n // is no longer a child of the created View but is in the created View's\n // config. So, we DON'T want to replace this.pConn$ since the created\n // component is a View (and not a ViewContainer). We now look for the\n // \"template\" type directly in the created component (newComp) and NOT\n // as a child of the newly created component.\n\n // Use the newly created component (View) info but DO NOT replace\n // this ViewContainer's pConn$, etc.\n // Note that we're now using the newly created View's PConnect in the\n // ViewContainer HTML template to guide what's rendered similar to what\n // the Nebula/Constellation return of React.Fragment does\n\n this.ngZone.run(() => {\n if (newComp.getComponentName() === 'reference') {\n // if a refernece, it will de reference to a \"view\"\n // so hand this off to the \"View\" component to do that\n this.isViewContainer$ = false;\n this.viewPConn$ = newComp;\n\n /*\n *** this commmented out code should be removed, once we test out that\n *** handing off refernce to View component always works\n */\n\n // When newComp is a reference, we want to de-reference\n // it (to get the View) and then use that View to get the\n // template, title, children, etc.\n\n /*\n\n const theDereferencedView = ReferenceComponent.normalizePConn(newComp);\n const newConfigProps = theDereferencedView.getConfigProps();\n\n // children may have a 'reference' so normalize the children arra\n\n const theDereferencedViewChildren = ReferenceComponent.normalizePConnArray(theDereferencedView.getChildren());\n this.templateName$ = ('template' in newConfigProps) ? newConfigProps[\"template\"] : \"\";\n this.title$ = ('title' in newConfigProps) ? newConfigProps[\"title\"] : \"\";\n this.arChildren$ = theDereferencedViewChildren;\n this.createdViewPConn$ = theDereferencedView;\n */\n } else {\n // old style when newComp is NOT a 'reference'\n this.isViewContainer$ = true;\n\n console.error(`ViewContainer has a newComp that is NOT a reference!`);\n\n this.createdViewPConn$ = newComp;\n const newConfigProps: any = newComp.getConfigProps();\n this.templateName$ = newConfigProps.template || '';\n this.title$ = newConfigProps.title || '';\n // update children with new view's children\n // children may have a 'reference' so normalize the children array\n this.arChildren$ = ReferenceComponent.normalizePConnArray(newComp.getChildren());\n }\n });\n }\n }\n }\n }\n\n prepareDispatchObject(): any {\n const baseContext = this.pConn$.getContextName();\n // const { acName = \"primary\" } = pConn.getContainerName(); // doesn't work with 8.23 typings\n const acName = this.pConn$.getContainerName() || 'primary';\n\n return {\n semanticURL: '',\n context: baseContext,\n acName\n };\n }\n\n buildName(): string {\n const sContext = this.pConn$.getContextName();\n const sName = this.pConn$.getContainerName();\n\n return `${sContext.toUpperCase()}/${sName.toUpperCase()}`;\n }\n}\n","<div class=\"psdk-view-container-top\" id=\"{{ buildName$ }}\">\n <div *ngIf=\"isViewContainer$; else isReference\">\n <h3 *ngIf=\"title$ !== ''\">{{ title$ }}</h3>\n <div *ngIf=\"templateName$; else showChildren\">\n <component-mapper\n [name]=\"templateName$\"\n [props]=\"{\n pConn$: createdViewPConn$,\n formGroup$: formGroup$,\n displayOnlyFA$: displayOnlyFA$\n }\"\n errorMsg=\"View Container missing Template {{ templateName$ }}\"\n ></component-mapper>\n </div>\n <ng-template #showChildren>\n <div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n displayOnlyFA$: displayOnlyFA$\n }\"\n errorMsg=\"ViewContainer Missing (no template): {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n </div>\n <ng-template #isReference>\n <component-mapper name=\"View\" [props]=\"{ pConn$: viewPConn$, displayOnlyFA$ }\"></component-mapper>\n </ng-template>\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatGridListModule } from '@angular/material/grid-list';\n\n@Component({\n selector: 'app-action-buttons',\n templateUrl: './action-buttons.component.html',\n styleUrls: ['./action-buttons.component.scss'],\n standalone: true,\n imports: [CommonModule, MatGridListModule, MatButtonModule]\n})\nexport class ActionButtonsComponent {\n @Input() arMainButtons$: any[];\n @Input() arSecondaryButtons$: any[];\n\n @Output() actionButtonClick: EventEmitter<any> = new EventEmitter();\n\n localizedVal = PCore.getLocaleUtils().getLocaleValue;\n localeCategory = 'Assignment';\n\n buttonClick(sAction, sButtonType) {\n this.actionButtonClick.emit({ action: sAction, buttonType: sButtonType });\n }\n}\n","<mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n <mat-grid-tile>\n <button *ngFor=\"let aButton of arSecondaryButtons$\" mat-raised-button color=\"secondary\" (click)=\"buttonClick(aButton.jsAction, 'secondary')\">\n {{ localizedVal(aButton.name, localeCategory) }}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button *ngFor=\"let aButton of arMainButtons$\" mat-raised-button color=\"primary\" (click)=\"buttonClick(aButton.jsAction, 'primary')\">\n {{ localizedVal(aButton.name, localeCategory) }}\n </button>\n </mat-grid-tile>\n</mat-grid-list>\n","import { Component, OnInit, Input, Output, EventEmitter, forwardRef, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { ReferenceComponent } from '../reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-assignment-card',\n templateUrl: './assignment-card.component.html',\n styleUrls: ['./assignment-card.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AssignmentCardComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n @Input() arMainButtons$: any[];\n @Input() arSecondaryButtons$: any[];\n @Input() arChildren$: any[];\n @Input() updateToken$: number;\n\n @Output() actionButtonClick: EventEmitter<any> = new EventEmitter();\n\n ngOnInit(): void {\n // Children may contain 'reference' component, so we need to\n // normalize them\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.arChildren$);\n }\n\n ngOnChanges() {\n // Children may contain 'reference' component, so we need to\n // normalize them\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.arChildren$);\n }\n\n onActionButtonClick(oData: any) {\n this.actionButtonClick.emit(oData);\n }\n}\n","<form [formGroup]=\"formGroup$\" name=\"flowContainer\" class=\"psdk-flow-container\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"></component-mapper>\n <component-mapper\n *ngSwitchCase=\"'CaseCreateStage'\"\n name=\"CaseCreateStage\"\n [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"\n ></component-mapper>\n <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"></component-mapper>\n <div *ngSwitchDefault>Assignment Card wants component not yet available: {{ kid.getPConnect().getComponentName() }}</div>\n </div>\n </div>\n</form>\n\n<div>\n <br />\n <div class=\"psdk-case-view-divider\"></div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$, arSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n</div>\n","/* eslint-disable no-case-declarations */\nimport { Component, OnInit, Input, NgZone, forwardRef, OnDestroy, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSnackBarModule, MatSnackBar } from '@angular/material/snack-bar';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ErrorMessagesService } from '../../../_messages/error-messages.service';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface AssignmentProps {\n // If any, enter additional props that only exist on this component\n template: string;\n}\n\n@Component({\n selector: 'app-assignment',\n templateUrl: './assignment.component.html',\n styleUrls: ['./assignment.component.scss'],\n standalone: true,\n imports: [CommonModule, MatSnackBarModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AssignmentComponent implements OnInit, OnDestroy, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n @Input() arChildren$: any[];\n @Input() itemKey$: string;\n @Input() isCreateStage$: boolean;\n @Input() updateToken$: number;\n @Input() isInModal$ = false;\n @Input() banners;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: AssignmentProps;\n\n newPConn$: any;\n containerName$: string;\n\n bIsRefComponent = false;\n bInitialized = false;\n\n templateName$: string;\n\n arMainButtons$: any[];\n arSecondaryButtons$: any[];\n\n actionsAPI: any;\n\n bHasNavigation$ = false;\n bIsVertical$ = false;\n arCurrentStepIndicies$: number[] = [];\n arNavigationSteps$: any[] = [];\n\n init: boolean;\n finishAssignment: any;\n navigateToStep: any;\n saveAssignment: any;\n cancelAssignment: any;\n cancelCreateStageAssignment: any;\n showPage: any;\n\n // itemKey: string = \"\"; // JA - this is what Nebula/Constellation uses to pass to finishAssignment, navigateToStep\n\n bReInit = false;\n localizedVal;\n localeCategory = 'Assignment';\n localeReference;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private psService: ProgressSpinnerService,\n private erService: ErrorMessagesService,\n private ngZone: NgZone,\n private snackBar: MatSnackBar\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.initComponent();\n\n this.angularPConnect.shouldComponentUpdate(this);\n\n this.bInitialized = true;\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n this.localeReference = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n // AND removing the \"gate\" that was put there since shouldComponentUpdate\n // should be the real \"gate\"\n if (bUpdateSelf) {\n let loadingInfo;\n try {\n // loadingInfo = this.pConn$.getLoadingStatus();\n loadingInfo = this.newPConn$.getLoadingStatus();\n\n this.psService.sendMessage(loadingInfo);\n } catch (ex) {\n /* empty */\n }\n }\n }\n\n ngOnChanges() {\n if (this.bInitialized) {\n this.updateChanges();\n }\n }\n\n updateChanges() {\n this.bIsRefComponent = this.checkIfRefComponent(this.pConn$);\n\n this.ngZone.run(() => {\n // pConn$ may be a 'reference' component, so normalize it\n // this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n // If 'reference' so we need to get the children of the normalized pConn\n if (this.bIsRefComponent) {\n // this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.newPConn$.getChildren());\n }\n });\n\n this.createButtons();\n }\n\n checkIfRefComponent(thePConn: any): boolean {\n let bReturn = false;\n if (thePConn && thePConn.getComponentName() == 'reference') {\n bReturn = true;\n }\n\n return bReturn;\n }\n\n initComponent() {\n this.bIsRefComponent = this.checkIfRefComponent(this.pConn$);\n\n // pConn$ may be a 'reference' component, so normalize it\n // this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n // If 'reference' so we need to get the children of the normalized pConn\n if (this.bIsRefComponent) {\n // this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.newPConn$.getChildren());\n }\n\n // prevent re-intializing with flowContainer update unless an action is taken\n this.bReInit = false;\n this.bHasNavigation$ = false;\n\n // this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n this.configProps$ = this.newPConn$.resolveConfigProps(this.newPConn$.getConfigProps());\n\n this.templateName$ = this.configProps$.template;\n\n // create pointers to functions\n /*\n let containerMgr = this.pConn$.getContainerManager();\n let actionsAPI = this.pConn$.getActionsApi();\n let baseContext = this.pConn$.getContextName();\n let acName = this.pConn$.getContainerName();\n */\n\n const actionsAPI = this.newPConn$.getActionsApi();\n const baseContext = this.newPConn$.getContextName();\n const acName = this.newPConn$.getContainerName();\n\n // for now, in general this should be overridden by updateSelf(), and not be blank\n if (this.itemKey$ === '') {\n this.itemKey$ = baseContext.concat('/').concat(acName);\n }\n\n // this.pConn$.isBoundToState();\n this.newPConn$.isBoundToState();\n\n this.init = false;\n\n // store off bound functions to above pointers\n this.finishAssignment = actionsAPI.finishAssignment.bind(actionsAPI);\n this.navigateToStep = actionsAPI.navigateToStep.bind(actionsAPI);\n this.saveAssignment = actionsAPI.saveAssignment.bind(actionsAPI);\n this.cancelAssignment = actionsAPI.cancelAssignment.bind(actionsAPI);\n this.showPage = actionsAPI.showPage.bind(actionsAPI);\n\n this.cancelCreateStageAssignment = actionsAPI.cancelCreateStageAssignment.bind(actionsAPI);\n\n this.createButtons();\n }\n\n createButtons() {\n // let oData = this.pConn$.getDataObject();\n const oData = this.newPConn$.getDataObject();\n\n // inside\n // get fist kid, get the name and displa\n // pass first kid to a view container, which will disperse it to a view which will use one column, two column, etc.\n const oWorkItem = this.arChildren$[0].getPConnect();\n const oWorkData = oWorkItem.getDataObject();\n\n if (oWorkData) {\n this.actionsAPI = oWorkItem.getActionsApi();\n\n // this.containerName$ = oWorkMeta[\"name\"];\n\n if (oWorkData.caseInfo && oWorkData.caseInfo.assignments !== null) {\n this.containerName$ = oWorkData.caseInfo.assignments?.[0].name;\n\n // get caseInfo\n const oCaseInfo = oData.caseInfo;\n\n if (oCaseInfo && oCaseInfo.actionButtons) {\n this.arMainButtons$ = oCaseInfo.actionButtons.main;\n this.arSecondaryButtons$ = oCaseInfo.actionButtons.secondary;\n }\n\n if (oCaseInfo.navigation != null) {\n this.createButtonsForMultiStepForm(oCaseInfo);\n } else {\n this.bHasNavigation$ = false;\n }\n }\n }\n }\n\n createButtonsForMultiStepForm(oCaseInfo) {\n this.bHasNavigation$ = true;\n\n if ((oCaseInfo.navigation.template && oCaseInfo.navigation.template.toLowerCase() === 'standard') || oCaseInfo?.navigation?.steps?.length === 1) {\n this.bHasNavigation$ = false;\n } else if (oCaseInfo.navigation.template && oCaseInfo.navigation.template.toLowerCase() === 'vertical') {\n this.bIsVertical$ = true;\n } else {\n this.bIsVertical$ = false;\n }\n\n // iterate through steps to find current one(s)\n // immutable, so we want to change the local copy, so need to make a copy\n this.ngZone.run(() => {\n // what comes back now in configObject is the children of the flowContainer\n this.arNavigationSteps$ = JSON.parse(JSON.stringify(oCaseInfo.navigation.steps));\n this.arNavigationSteps$.forEach(step => {\n if (step.name) {\n step.name = PCore.getLocaleUtils().getLocaleValue(step.name, undefined, this.localeReference);\n }\n });\n this.arCurrentStepIndicies$ = [];\n this.arCurrentStepIndicies$ = this.findCurrentIndicies(this.arNavigationSteps$, this.arCurrentStepIndicies$, 0);\n });\n }\n\n findCurrentIndicies(arStepperSteps: any[], arIndicies: number[], depth: number): number[] {\n let count = 0;\n arStepperSteps.forEach(step => {\n if (step.visited_status == 'current') {\n arIndicies[depth] = count;\n\n // add in\n step.step_status = '';\n } else if (step.visited_status == 'success') {\n count++;\n step.step_status = 'completed';\n } else {\n count++;\n step.step_status = '';\n }\n\n if (step.steps) {\n arIndicies = this.findCurrentIndicies(step.steps, arIndicies, depth + 1);\n }\n });\n\n return arIndicies;\n }\n\n onSaveActionSuccess(data) {\n this.actionsAPI.cancelAssignment(this.itemKey$).then(() => {\n this.psService.sendMessage(false);\n PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CREATE_STAGE_SAVED, data);\n });\n }\n\n onActionButtonClick(oData: any) {\n this.buttonClick(oData.action, oData.buttonType);\n }\n\n buttonClick(sAction, sButtonType) {\n // right now, done on an individual basis, setting bReInit to true\n // upon the next flow container state change, will cause the flow container\n // to re-initialize\n // this.bReInit =true;\n\n /*\n let baseContext = this.pConn$.getContextName();\n let acName = this.pConn$.getContainerName();\n let itemID = baseContext.concat(\"/\").concat(acName);\n */\n\n // const baseContext = this.newPConn$.getContextName();\n // const acName = this.newPConn$.getContainerName();\n // const itemID = baseContext.concat('/').concat(acName);\n\n if (sButtonType == 'secondary') {\n // const stepID = ''; // ???\n\n // need to handle cancel as this.cancel(dispatchInfo)\n // this.actionsAPI[sAction](dispatchInfo);\n switch (sAction) {\n case 'navigateToStep':\n this.erService.sendMessage('publish', '');\n if (this.formValid()) {\n this.bReInit = true;\n this.psService.sendMessage(true);\n\n const navigatePromise = this.navigateToStep('previous', this.itemKey$);\n navigatePromise\n .then(() => {\n this.updateChanges();\n this.psService.sendMessage(false);\n })\n .catch(() => {\n this.psService.sendMessage(false);\n this.snackBar.open(`${this.localizedVal('Navigation failed!', this.localeCategory)}`, 'Ok');\n });\n }\n break;\n\n case 'saveAssignment': {\n const caseID = this.pConn$.getCaseInfo().getKey();\n const assignmentID = this.pConn$.getCaseInfo().getAssignmentID();\n const savePromise = this.saveAssignment(this.itemKey$);\n\n savePromise\n .then(() => {\n const caseType = this.pConn$.getCaseInfo().c11nEnv.getValue(PCore.getConstants().CASE_INFO.CASE_TYPE_ID);\n // @ts-ignore - second parameter “payload” for publish method should be optional\n PCore.getPubSubUtils().publish('cancelPressed');\n this.onSaveActionSuccess({ caseType, caseID, assignmentID });\n })\n .catch(() => {\n this.psService.sendMessage(false);\n this.snackBar.open(`${this.localizedVal('Save failed', this.localeCategory)}`, 'Ok');\n });\n\n break;\n }\n\n case 'cancelAssignment':\n this.bReInit = true;\n this.erService.sendMessage('dismiss', '');\n // @ts-ignore - Property 'isAssignmentInCreateStage' is private and only accessible within class 'CaseInfo'\n const isAssignmentInCreateStage = this.pConn$.getCaseInfo().isAssignmentInCreateStage();\n const isLocalAction =\n // @ts-ignore - Property 'isLocalAction' is private and only accessible within class 'CaseInfo'.\n this.pConn$.getCaseInfo().isLocalAction() ||\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n (PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION && this.pConn$.getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION));\n // check if create stage (modal)\n if (isAssignmentInCreateStage && this.isInModal$ && !isLocalAction) {\n const cancelPromise = this.cancelCreateStageAssignment(this.itemKey$);\n cancelPromise\n .then(() => {\n this.psService.sendMessage(false);\n // PCore.getPubSubUtils().publish(\n // PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);\n })\n .catch(() => {\n this.psService.sendMessage(false);\n this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');\n });\n } else {\n this.psService.sendMessage(true);\n\n // publish before cancel pressed, because\n // cancel assignment happens \"after\" cancel assignment happens\n // @ts-ignore - second parameter “payload” for publish method should be optional\n PCore.getPubSubUtils().publish('cancelPressed');\n\n const cancelPromise = this.cancelAssignment(this.itemKey$);\n cancelPromise\n .then(() => {\n this.psService.sendMessage(false);\n // @ts-ignore - second parameter “payload” for publish method should be optional\n PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);\n })\n .catch(() => {\n this.psService.sendMessage(false);\n this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');\n });\n }\n break;\n\n default:\n break;\n }\n } else if (sButtonType == 'primary') {\n // eslint-disable-next-line sonarjs/no-small-switch\n switch (sAction) {\n case 'finishAssignment':\n this.erService.sendMessage('publish', '');\n if (this.formValid()) {\n this.bReInit = true;\n this.psService.sendMessage(true);\n const finishPromise = this.finishAssignment(this.itemKey$); // JA - was itemID but Nebula/Constellation uses itemKey\n finishPromise\n .then(() => {\n this.psService.sendMessage(false);\n this.updateChanges();\n })\n .catch(() => {\n this.psService.sendMessage(false);\n this.snackBar.open(`${this.localizedVal('Submit failed!', this.localeCategory)}`, 'Ok');\n });\n } else {\n // let snackBarRef = this.snackBar.open(\"Please fix errors on form.\", \"Ok\");\n this.erService.sendMessage('show', this.localizedVal('Please fix errors on form.', this.localeCategory));\n }\n break;\n default:\n break;\n }\n }\n }\n\n formValid(): boolean {\n this.touchAll();\n return this.formGroup$.valid;\n }\n\n touchAll(): void {\n Object.values(this.formGroup$.controls).forEach((control: any) => {\n control.markAsTouched();\n });\n }\n\n // eslint-disable-next-line sonarjs/no-identical-functions\n topViewRefresh(): void {\n Object.values(this.formGroup$.controls).forEach((control: any) => {\n control.markAsTouched();\n });\n }\n}\n","<div>\n <div><component-mapper name=\"AlertBanner\" [props]=\"{ banners }\" [parent]=\"this\"></component-mapper></div>\n <div *ngIf=\"bHasNavigation$\" class=\"psdk-stepper\">\n <component-mapper\n name=\"MultiStep\"\n [props]=\"{\n pConn$: newPConn$,\n formGroup$,\n arChildren$,\n arMainButtons$,\n arSecondaryButtons$,\n bIsVertical$,\n arCurrentStepIndicies$,\n arNavigationSteps$\n }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </div>\n <div *ngIf=\"!bHasNavigation$\">\n <component-mapper\n name=\"AssignmentCard\"\n [props]=\"{ pConn$: newPConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$, updateToken$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\n@Component({\n selector: 'app-defer-load',\n templateUrl: './defer-load.component.html',\n styleUrls: ['./defer-load.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() loadData$: any;\n @Input() name;\n\n componentName$: string;\n loadedPConn$: any;\n bShowDefer$ = false;\n\n angularPConnectData: AngularPConnectData = {};\n constants: typeof publicConstants;\n currentLoadedAssignment = '';\n isContainerPreview: boolean;\n loadViewCaseID: any;\n resourceType: any;\n deferLoadId: any;\n containerName: any;\n CASE: any;\n PAGE: any;\n DATA: any;\n constructor(private angularPConnect: AngularPConnectService) {\n this.constants = PCore.getConstants();\n }\n\n ngOnInit(): void {\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.loadActiveTab();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const theRequestedAssignment = this.pConn$.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENT_LABEL);\n if (theRequestedAssignment !== this.currentLoadedAssignment) {\n this.currentLoadedAssignment = theRequestedAssignment;\n this.loadActiveTab();\n }\n }\n\n ngOnChanges() {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n this.loadViewCaseID = this.pConn$.getValue(this.constants.PZINSKEY) || this.pConn$.getValue(this.constants.CASE_INFO.CASE_INFO_ID);\n let containerItemData;\n const targetName = this.pConn$.getTarget();\n if (targetName) {\n this.containerName = PCore.getContainerUtils().getActiveContainerItemName(targetName);\n containerItemData = PCore.getContainerUtils().getContainerItemData(targetName, this.containerName);\n }\n const { CASE, PAGE, DATA } = this.constants.RESOURCE_TYPES;\n this.CASE = CASE;\n this.PAGE = PAGE;\n this.DATA = DATA;\n\n const { resourceType = this.CASE } = containerItemData || { resourceType: this.loadViewCaseID ? this.CASE : this.PAGE };\n this.resourceType = resourceType;\n this.isContainerPreview = /preview_[0-9]*/g.test(this.pConn$.getContextName());\n\n const theConfigProps: any = this.pConn$.getConfigProps();\n this.deferLoadId = theConfigProps.deferLoadId;\n this.name = this.name || theConfigProps.name;\n\n this.loadActiveTab();\n }\n\n getViewOptions = () => ({\n viewContext: this.resourceType,\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n pageClass: this.loadViewCaseID ? '' : this.pConn$.getDataObject().pyPortal.classID,\n container: this.isContainerPreview ? 'preview' : null,\n containerName: this.isContainerPreview ? 'preview' : null,\n updateData: this.isContainerPreview\n });\n\n onResponse(data) {\n if (this.deferLoadId) {\n PCore.getDeferLoadManager().start(\n this.name,\n this.pConn$.getCaseInfo().getKey(),\n this.pConn$.getPageReference().replace('caseInfo.content', ''),\n this.pConn$.getContextName(),\n this.deferLoadId\n );\n }\n\n if (data && !(data.type && data.type === 'error')) {\n const config = {\n meta: data,\n options: {\n context: this.pConn$.getContextName(),\n pageReference: this.pConn$.getPageReference()\n }\n };\n const configObject = PCore.createPConnect(config);\n configObject.getPConnect().setInheritedProp('displayMode', 'LABELS_LEFT');\n this.loadedPConn$ = ReferenceComponent.normalizePConn(configObject.getPConnect());\n this.componentName$ = this.loadedPConn$.getComponentName();\n if (this.deferLoadId) {\n PCore.getDeferLoadManager().stop(this.deferLoadId, this.pConn$.getContextName());\n }\n }\n // this.cdRef.detectChanges();\n }\n\n loadActiveTab() {\n if (this.resourceType === this.DATA) {\n // Rendering defer loaded tabs in data context\n if (this.containerName) {\n const dataContext = PCore.getStoreValue('.dataContext', 'dataInfo', this.containerName);\n const dataContextParameters = PCore.getStoreValue('.dataContextParameters', 'dataInfo', this.containerName);\n\n this.pConn$\n .getActionsApi()\n .showData(this.name, dataContext, dataContextParameters, {\n // @ts-ignore - skipSemanticUrl should be boolean type\n skipSemanticUrl: true,\n // @ts-ignore\n isDeferLoaded: true\n })\n .then(data => {\n this.onResponse(data);\n });\n } else {\n console.error('Cannot load the defer loaded view without container information');\n }\n } else if (this.resourceType === this.PAGE) {\n // Rendering defer loaded tabs in case/ page context\n this.pConn$\n .getActionsApi()\n .loadView(encodeURI(this.loadViewCaseID), this.name, this.getViewOptions())\n .then(data => {\n this.onResponse(data);\n });\n } else {\n this.pConn$\n .getActionsApi()\n .refreshCaseView(encodeURI(this.loadViewCaseID), this.name, null)\n .then(data => {\n this.onResponse(data.root);\n });\n }\n }\n}\n","<div *ngIf=\"loadedPConn$\">\n <component-mapper [name]=\"componentName$\" [props]=\"{ pConn$: loadedPConn$ }\" errorMsg=\"Defer Load Missing: {{ componentName$ }}\"></component-mapper>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-multi-step',\n templateUrl: './multi-step.component.html',\n styleUrls: ['./multi-step.component.scss'],\n providers: [Utils],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MultiStepComponent implements OnInit {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n @Input() arMainButtons$: any[];\n @Input() arSecondaryButtons$: any[];\n @Input() arChildren$: any[];\n @Input() bIsVertical$: boolean;\n @Input() arCurrentStepIndicies$: number[];\n @Input() arNavigationSteps$: any[];\n @Output() actionButtonClick: EventEmitter<any> = new EventEmitter();\n\n svgCurrent$: string;\n svgNotCurrent$: string;\n bShow$ = true;\n\n constructor(private utils: Utils) {}\n\n ngOnInit(): void {\n // svg icons\n this.svgCurrent$ = this.utils.getImageSrc('circle-solid', this.utils.getSDKStaticContentUrl());\n this.svgNotCurrent$ = this.utils.getImageSrc('circle-solid', this.utils.getSDKStaticContentUrl());\n }\n\n onActionButtonClick(oData: any) {\n this.actionButtonClick.emit(oData);\n }\n\n _getVIconClass(status): string {\n if (status == 'current') {\n return 'psdk-vertical-step-icon-selected';\n }\n\n return 'psdk-vertical-step-icon';\n }\n\n _getVLabelClass(status): string {\n if (status == 'current') {\n return 'psdk-vertical-step-label-selected';\n }\n\n return 'psdk-vertical-step-label';\n }\n\n _getVBodyClass(index: number): string {\n if (index < this.arNavigationSteps$.length - 1) {\n return 'psdk-vertical-step-body psdk-vertical-step-line';\n }\n\n return 'psdk-vertical-step-body';\n }\n\n _getHIconClass(status): string {\n if (status == 'current') {\n return 'psdk-horizontal-step-icon-selected';\n }\n\n return 'psdk-horizontal-step-icon';\n }\n\n _getHLabelClass(status): string {\n if (status == 'current') {\n return 'psdk-horizontal-step-label-selected';\n }\n\n return 'psdk-horizontal-step-label';\n }\n\n _showHLine(index: number): boolean {\n return index < this.arNavigationSteps$.length - 1;\n }\n}\n","<div *ngIf=\"bShow$\">\n <div *ngIf=\"bIsVertical$\" class=\"psdk-vertical-stepper\">\n <div *ngFor=\"let mainStep of arNavigationSteps$; let i = index\" class=\"psdk-vertical-step\">\n <div class=\"psdk-vertical-step-header\">\n <div class=\"{{ _getVIconClass(mainStep.visited_status) }}\">\n <div class=\"psdk-vertical-step-icon-content\">\n <span>{{ i + 1 }}</span>\n </div>\n </div>\n <div class=\"{{ _getVLabelClass(mainStep.visited_status) }}\">\n {{ mainStep.name }}\n </div>\n </div>\n <div class=\"{{ _getVBodyClass(i) }}\">\n <ng-container *ngIf=\"mainStep?.steps\">\n <ul style=\"padding-inline-start: 0rem; margin-left: -7px\">\n <li *ngFor=\"let subStep of mainStep.steps\" class=\"psdk-sub-step-list\">\n <div style=\"display: inline-flex\">\n <img *ngIf=\"subStep.visited_status == 'current'\" class=\"psdk-current-svg-icon\" src=\"{{ svgCurrent$ }}\" />\n <img *ngIf=\"subStep.visited_status != 'current'\" class=\"psdk-not-current-svg-icon\" src=\"{{ svgNotCurrent$ }}\" />\n <label *ngIf=\"subStep.visited_status == 'current'\" class=\"psdk-sub-step-current\">{{ subStep.name }}</label>\n <label *ngIf=\"subStep.visited_status != 'current'\" class=\"psdk-sub-step-not-current\">{{ subStep.name }}</label>\n </div>\n <div *ngIf=\"subStep.visited_status == 'current'\">\n <component-mapper\n name=\"AssignmentCard\"\n [props]=\"{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </div>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"!mainStep?.steps && mainStep.visited_status == 'current'\">\n <component-mapper\n name=\"AssignmentCard\"\n [props]=\"{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </ng-container>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!bIsVertical$\" class=\"psdk-horizontal-stepper\">\n <div class=\"psdk-horizontal-stepper-header-container\">\n <ng-container *ngFor=\"let mainStep of arNavigationSteps$; let i = index\">\n <div class=\"psdk-horizontal-step-header\">\n <div class=\"{{ _getHIconClass(mainStep.visited_status) }}\">\n <div class=\"psdk-horizontal-step-icon-content\">\n <span>{{ i + 1 }}</span>\n </div>\n </div>\n <div class=\"{{ _getHLabelClass(mainStep.visited_status) }}\">\n <div class=\"psdk-horizontal-step-text-label\">\n {{ mainStep.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"_showHLine(i)\" class=\"psdk-horizontal-step-line\"></div>\n </ng-container>\n </div>\n <div *ngFor=\"let mainStep of arNavigationSteps$\" class=\"psdk-horizontal-stepper-body\">\n <ng-container *ngIf=\"mainStep?.steps\">\n <ul style=\"padding-inline-start: 0rem; margin-left: 35px\">\n <li *ngFor=\"let subStep of mainStep.steps\" class=\"psdk-sub-step-list\">\n <div style=\"display: inline-flex\">\n <img *ngIf=\"subStep.visited_status == 'current'\" class=\"psdk-current-svg-icon\" src=\"{{ svgCurrent$ }}\" />\n <img *ngIf=\"subStep.visited_status != 'current'\" class=\"psdk-not-current-svg-icon\" src=\"{{ svgNotCurrent$ }}\" />\n <label *ngIf=\"subStep.visited_status == 'current'\" class=\"psdk-sub-step-current\">{{ subStep.name }}</label>\n <label *ngIf=\"subStep.visited_status != 'current'\" class=\"psdk-sub-step-not-current\">{{ subStep.name }}</label>\n </div>\n <div *ngIf=\"subStep.visited_status == 'current'\">\n <component-mapper\n name=\"AssignmentCard\"\n [props]=\"{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </div>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"!mainStep?.steps && mainStep.visited_status == 'current'\">\n <component-mapper\n name=\"AssignmentCard\"\n [props]=\"{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </ng-container>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, ChangeDetectorRef, NgZone, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatListModule } from '@angular/material/list';\nimport { logout } from '@pega/auth/lib/sdk-auth-manager';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { Utils } from '../../../_helpers/utils';\n\ndeclare const window: any;\n\ninterface NavBarProps {\n // If any, enter additional props that only exist on this component\n showAppName?: boolean;\n}\n\n@Component({\n selector: 'app-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss'],\n providers: [Utils],\n standalone: true,\n imports: [CommonModule, MatListModule, MatMenuModule]\n})\nexport class NavbarComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() appName$: string;\n @Input() pages$: any[];\n @Input() caseTypes$: any[];\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: NavBarProps;\n\n navPages$: any[];\n navExpandCollapse$: string;\n bShowCaseTypes$ = false;\n\n portalApp$ = '';\n portalLogoImage$: string;\n showAppName$?: boolean = false;\n\n portalOperator$: string;\n portalOperatorInitials$: string;\n\n actionsAPI: any;\n createWork: any;\n showPage: any;\n logout: any;\n\n navIcon$: string;\n localizedVal: any;\n localeCategory = 'AppShell';\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private chRef: ChangeDetectorRef,\n private psService: ProgressSpinnerService,\n private ngZone: NgZone,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n\n // this is a dummy \"get\", because right now images are in http and the main screen is https\n // so the images don't load automatically. This call, makes an initial hit that allows the\n // rest of the images to show up\n this.loadImage(this.navIcon$);\n\n this.initComponent();\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n }\n\n // ngOnDestroy\n // unsubscribe from Store\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n loadImage(src: string) {\n return new Promise(resolve => {\n resolve(src);\n });\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // NOTE: can call angularPConnect.getState with optional args for detailed logging: bLogMsg and component object\n this.angularPConnect.getState();\n\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf(): void {\n this.initComponent();\n }\n\n initComponent() {\n this.ngZone.run(() => {\n this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());\n\n // Then, continue on with other initialization\n\n // making a copy, so can add info\n this.navPages$ = JSON.parse(JSON.stringify(this.pages$));\n\n this.navPages$.forEach(page => {\n page.iconName = this.utils.getImageSrc(page.pxPageViewIcon, this.utils.getSDKStaticContentUrl());\n });\n\n this.actionsAPI = this.pConn$.getActionsApi();\n this.createWork = this.actionsAPI.createWork.bind(this.actionsAPI);\n this.showPage = this.actionsAPI.showPage.bind(this.actionsAPI);\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as NavBarProps;\n this.logout = this.actionsAPI.logout.bind(this.actionsAPI);\n\n // const oData = this.pConn$.getDataObject();\n\n this.portalLogoImage$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n this.portalOperator$ = PCore.getEnvironmentInfo().getOperatorName();\n this.portalOperatorInitials$ = this.utils.getInitials(this.portalOperator$);\n this.showAppName$ = this.configProps$.showAppName;\n\n this.portalApp$ = PCore.getEnvironmentInfo().getApplicationLabel();\n });\n }\n\n navPanelButtonClick(oPageData: any) {\n const { pyClassName, pyRuleName } = oPageData;\n\n this.showPage(pyRuleName, pyClassName);\n }\n\n navPanelCreateButtonClick() {\n if (this.navExpandCollapse$.indexOf('plus') > 0) {\n this.navExpandCollapse$ = this.utils.getImageSrc('times', this.utils.getSDKStaticContentUrl());\n this.bShowCaseTypes$ = true;\n } else {\n this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());\n this.bShowCaseTypes$ = false;\n }\n\n this.chRef.detectChanges();\n }\n\n navPanelCreateCaseType(sCaseType: string, sFlowType: string) {\n this.psService.sendMessage(true);\n this.navPanelCreateButtonClick();\n\n const actionInfo = {\n containerName: 'primary',\n flowType: sFlowType || 'pyStartCase'\n };\n this.createWork(sCaseType, actionInfo);\n }\n\n navPanelLogoutClick() {\n logout().then(() => {\n // Reload the page to kick off the login\n window.location.reload();\n });\n }\n}\n","<div class=\"psdk-appshell-nav\">\n <div class=\"psdk-nav-header\">\n <div>\n <img src=\"{{ portalLogoImage$ }}\" class=\"psdk-nav-logo\" />\n </div>\n <div class=\"psdk-nav-portal-info\">\n <div class=\"psdk-nav-portal-app\">{{ portalApp$ }}</div>\n </div>\n </div>\n <div class=\"psdk-nav-divider\"></div>\n <div>\n <mat-list>\n <mat-list-item id=\"create-case-button\" (click)=\"navPanelCreateButtonClick()\">\n <div class=\"flex-box\">\n <img class=\"psdk-nav-svg-icon\" src=\"{{ navExpandCollapse$ }}\" />\n <span class=\"psdk-nav-button-span\">Create</span>\n </div>\n </mat-list-item>\n <mat-list *ngIf=\"bShowCaseTypes$\" style=\"margin-left: 40px\">\n <mat-list-item\n id=\"case-list-item\"\n *ngFor=\"let caseType of caseTypes$\"\n (click)=\"navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType)\"\n >\n <span class=\"psdk-nav-button-span\">{{ caseType.pyLabel }}</span>\n </mat-list-item>\n </mat-list>\n </mat-list>\n </div>\n <div style=\"height: 100%\">\n <mat-list *ngFor=\"let page of navPages$\">\n <mat-list-item (click)=\"navPanelButtonClick(page)\">\n <div class=\"flex-box\">\n <img class=\"psdk-nav-svg-icon\" src=\"{{ page.iconName }}\" />\n <span class=\"psdk-nav-button-span\">{{ localizedVal(page.pyLabel, localeCategory) }}</span>\n </div>\n </mat-list-item>\n </mat-list>\n </div>\n <div class=\"psdk-nav-divider\"></div>\n <div>\n <mat-list>\n <mat-list-item [matMenuTriggerFor]=\"menu\" class=\"psdk-profile-list-item\">\n <div class=\"flex-box\">\n <div class=\"psdk-nav-oper-avatar\">{{ portalOperatorInitials$ }}</div>\n <span class=\"psdk-nav-button-span\">{{ portalOperator$ }}</span>\n </div>\n </mat-list-item>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item>Profile</button>\n <button mat-menu-item (click)=\"navPanelLogoutClick()\">{{ localizedVal('Logoff', localeCategory) }}</button>\n </mat-menu>\n </mat-list>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ReferenceComponent } from '../reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-region',\n templateUrl: './region.component.html',\n styleUrls: ['./region.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class RegionComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n ngOnInit() {\n // console.log(`ngOnInit (no registerAndSubscribe!): Region`);\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n // The children may contain 'reference' components, so normalize the children...\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n }\n}\n","<!-- When adding a component here, add the same component in 'default-form' template as well -->\n<div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Region wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\n// Right this is a skeleton, as Preview hasn't been implemented\n\n@Component({\n selector: 'app-preview-view-container',\n templateUrl: './preview-view-container.component.html',\n styleUrls: ['./preview-view-container.component.scss'],\n standalone: true\n})\nexport class PreviewViewContainerComponent implements OnInit {\n @Input() pConn$: typeof PConnect;\n\n ngOnInit(): void {\n const containerMgr: any = this.pConn$.getContainerManager();\n\n containerMgr.initializeContainers({\n type: 'multiple'\n });\n }\n\n buildName() {\n const context = this.pConn$.getContextName();\n let viewContainerName = this.pConn$.getComponentName();\n\n if (!viewContainerName) viewContainerName = '';\n return `${context.toUpperCase()}/${viewContainerName.toUpperCase()}`;\n }\n}\n","<div class=\"psdk-preview\"></div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\n// Right this is a skeleton, as Hybrid ViewContainer hasn't been implemented\n\n@Component({\n selector: 'app-hybrid-view-container',\n templateUrl: './hybrid-view-container.component.html',\n styleUrls: ['./hybrid-view-container.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class HybridViewContainerComponent {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n @Input() displayOnlyFA$: boolean;\n}\n","<p>hybrid-view-container works!</p>\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { interval, Subscription } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { ReferenceComponent } from '../reference/reference.component';\nimport { PreviewViewContainerComponent } from '../Containers/preview-view-container/preview-view-container.component';\nimport { ModalViewContainerComponent } from '../Containers/modal-view-container/modal-view-container.component';\nimport { HybridViewContainerComponent } from '../Containers/hybrid-view-container/hybrid-view-container.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\nconst options = { context: 'app' };\n\n@Component({\n selector: 'app-root-container',\n templateUrl: './root-container.component.html',\n styleUrls: ['./root-container.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n HybridViewContainerComponent,\n ModalViewContainerComponent,\n PreviewViewContainerComponent,\n forwardRef(() => ComponentMapperComponent)\n ]\n})\nexport class RootContainerComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() displayOnlyFA$: boolean;\n @Input() isMashup$: boolean;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n componentName$ = '';\n bIsProgress$ = false;\n\n // preview and modalview pConn\n pvConn$: any = null;\n mConn$: any = null;\n\n bShowRoot$ = true;\n\n progressSpinnerSubscription: Subscription;\n spinnerTimer: any = null;\n viewContainerPConn$: any = null;\n localizedVal: any;\n localeCategory = 'Messages';\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private psService: ProgressSpinnerService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n const myContext = 'app';\n\n const { containers } = PCore.getStore().getState();\n const items = Object.keys(containers).filter(item => item.includes('root'));\n\n (PCore.getContainerUtils().getContainerAPI() as any).addContainerItems(items);\n\n // add preview and modalview containers to redux\n // keep local copies of the the pConnect that is related\n\n const configObjPreview = PCore.createPConnect({\n meta: {\n type: 'PreviewViewContainer',\n config: {\n name: 'preview'\n }\n },\n options\n });\n\n this.pvConn$ = configObjPreview.getPConnect();\n\n const configObjModal = PCore.createPConnect({\n meta: {\n type: 'ModalViewContainer',\n config: {\n name: 'modal'\n }\n },\n options: {\n pageReference: 'pyPortal',\n context: myContext\n }\n });\n\n // clear out hasViewContainer\n sessionStorage.setItem('hasViewContainer', 'false');\n\n this.mConn$ = configObjModal.getPConnect();\n\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // handle showing and hiding the progress spinner\n this.progressSpinnerSubscription = this.psService.getMessage().subscribe(message => {\n this.showHideProgress(message.show);\n });\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n modalVisibleChanged(isVisible) {\n if (this.displayOnlyFA$) {\n if (isVisible) {\n this.bShowRoot$ = false;\n } else {\n this.bShowRoot$ = true;\n }\n }\n }\n\n updateSelf() {\n // need to call this.getCurrentCompleteProps (not this.thePConn.getConfigProps)\n // to get full set of props that affect this component in Redux\n const myProps: any = this.angularPConnect.getCurrentCompleteProps(this);\n\n const renderingModes = ['portal', 'view'];\n const noPortalMode = 'noPortal';\n\n const { renderingMode, children, skeleton, routingInfo } = myProps;\n\n if (routingInfo && renderingModes.includes(renderingMode)) {\n const { accessedOrder, items } = routingInfo;\n if (accessedOrder && items) {\n // bootstrap loadPortal resolves to here\n const key = accessedOrder[accessedOrder.length - 1];\n if (items[key] && items[key].view && Object.keys(items[key].view).length > 0) {\n const itemView = items[key].view;\n\n const rootObject: any = PCore.createPConnect({\n meta: itemView,\n options: {\n context: items[key].context\n }\n });\n\n setTimeout(() => {\n // makes sure Angular tracks these changes\n this.ngZone.run(() => {\n // the new rootObject may be a 'reference'. So,\n // normalize it to get the referencedView if that's the case\n const theNewPConn = ReferenceComponent.normalizePConn(rootObject.getPConnect());\n // update ComponentName$ before we update pConn$ to make sure they're in sync\n // when rendering...\n this.componentName$ = theNewPConn.getComponentName();\n\n this.pConn$ = theNewPConn;\n // this.pConn$ = rootObject.getPConnect();\n\n console.log(`RootContainer updated pConn$ to be: ${this.componentName$}`);\n });\n });\n }\n }\n } else if (renderingMode === noPortalMode) {\n // console.log(`RootContainer: renderingMode === noPortalMode: ${noPortalMode}`);\n this.generateViewContainerForNoPortal();\n } else if (children && children.length > 0) {\n // haven't resolved to here\n } else if (skeleton !== undefined) {\n // TODO: need to update once skeletons are available;\n }\n }\n\n generateViewContainerForNoPortal() {\n // bootstrap loadMashup resolves to here\n const arChildren = this.pConn$.getChildren() as any[];\n if (arChildren && arChildren.length == 1) {\n // have to have a quick timeout or get an \"expressions changed\" angular error\n setTimeout(() => {\n this.ngZone.run(() => {\n const localPConn = arChildren[0].getPConnect();\n\n this.componentName$ = localPConn.getComponentName();\n if (this.componentName$ === 'ViewContainer') {\n const configProps: any = this.pConn$.getConfigProps();\n const viewContConfig = {\n meta: {\n type: 'ViewContainer',\n config: configProps\n },\n options\n };\n\n this.viewContainerPConn$ = PCore.createPConnect(viewContConfig).getPConnect();\n }\n this.bShowRoot$ = true;\n });\n });\n }\n }\n\n showHideProgress(bShow: boolean) {\n // only show spinner after 500ms wait, so if server fast, won't see\n if (bShow) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (!this.bIsProgress$) {\n // makes sure Angular tracks these changes\n if (!this.spinnerTimer || this.spinnerTimer.isStopped) {\n this.spinnerTimer = interval(500).subscribe(() => {\n try {\n this.spinnerTimer.unsubscribe();\n } catch (ex) {\n /* empty */\n }\n\n this.ngZone.run(() => {\n this.bIsProgress$ = true;\n });\n });\n }\n }\n } else {\n if (this.spinnerTimer && !this.spinnerTimer.isStopped) {\n this.spinnerTimer.unsubscribe();\n }\n\n // don't touch bIsProgress$ unless differnent\n if (bShow != this.bIsProgress$) {\n // makes sure Angular tracks these changes\n this.ngZone.run(() => {\n this.bIsProgress$ = bShow;\n });\n }\n }\n }\n}\n","<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <!-- <app-reference *ngSwitchCase=\"'reference'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-reference> -->\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: displayOnlyFA$ ? viewContainerPConn$ : pConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <app-hybrid-view-container *ngSwitchCase=\"'HybridViewContainer'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-hybrid-view-container>\n <app-modal-view-container\n *ngSwitchCase=\"'ModalViewContainer'\"\n [pConn$]=\"pConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n <div *ngSwitchCase=\"''\"></div>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container\n [pConn$]=\"mConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n</div>\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface StagesProps {\n // If any, enter additional props that only exist on this component\n stages: any[];\n}\n\n@Component({\n selector: 'app-stages',\n templateUrl: './stages.component.html',\n styleUrls: ['./stages.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class StagesComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n PCore$: typeof PCore = PCore;\n configProps$: StagesProps;\n\n arStageResults$: any[];\n lastStage$: any;\n checkSvgIcon$: string;\n key: string;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // const imagePath = this.utils.getIconPath(this.utils.getSDKStaticContentUrl());\n this.checkSvgIcon$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());\n this.key = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as StagesProps;\n\n const timer = interval(50).subscribe(() => {\n timer.unsubscribe();\n\n const arStages = this.angularPConnect.getComponentProp(this, 'stages');\n\n // this.stageResults$ = this.configProps$.stages;\n if (arStages != null) {\n this.arStageResults$ = arStages;\n this.lastStage$ = this.arStageResults$[this.arStageResults$.length - 1];\n }\n });\n }\n}\n","<div class=\"psdk-stages-bar\">\n <div class=\"psdk-stages-chevron\" *ngFor=\"let stage of arStageResults$\">\n <div *ngIf=\"stage.visited_status == 'completed'\" class=\"psdk-stages-inner-past\">\n <img class=\"psdk-stages-icon\" src=\"{{ checkSvgIcon$ }}\" />{{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n <div *ngIf=\"stage.visited_status == 'active'\" class=\"psdk-stages-inner-present\">\n {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n <div *ngIf=\"stage.visited_status == 'future'\" class=\"psdk-stages-inner-future\">\n {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n </div>\n</div>\n\n<div class=\"psdk-stages-divider\"></div>\n","export const getDeferFriendlyTabs = allTabs => {\n return allTabs.map(tab => {\n const theTabCompConfig = tab.getPConnect().getConfigProps();\n return { type: 'DeferLoad', config: theTabCompConfig };\n });\n};\n\nexport const getVisibleTabs = (allTabs, uuid) => {\n let index = 0;\n return allTabs\n .getPConnect()\n .getChildren()\n ?.filter(child => {\n // US-402838: Filter out tab entries if the config object does not contain the visibility attribute or it evaluates to the boolean true,\n const config = child.getPConnect().getConfigProps();\n\n // BUG-642335 - adding isChildDeferLoad prop\n if (child.getPConnect().getComponentName() === 'DeferLoad') {\n const { name: viewName, deferLoadId = `${viewName}_${uuid}_${index}` } = config;\n child.getPConnect().registerAdditionalProps({\n deferLoadId,\n isChildDeferLoad: true\n });\n }\n index += 1;\n return !('visibility' in config) || config.visibility === true;\n });\n};\n\nexport const getTransientTabs = (availableTabs, currentTabId, tabItems) => {\n return (\n availableTabs?.map((child, i) => {\n const config = child.getPConnect().getConfigProps();\n const tabLabel =\n config.label ||\n config.inheritedProps?.find(obj => obj.prop === 'label')?.value ||\n PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic');\n const tabContent = () => {\n if (i.toString() === currentTabId) {\n return tabItems?.[i.toString()]?.content ? tabItems?.[i.toString()]?.content : child.getPConnect().getComponent();\n }\n return tabItems?.[i.toString()]?.content;\n };\n return {\n name: tabLabel,\n id: i.toString(),\n content: tabContent()\n };\n }) || []\n );\n};\n\nexport const tabClick = (id, availableTabs, currentTabId, tabItems) => {\n const currentPConn = availableTabs[currentTabId].getPConnect();\n const { deferLoadId } = currentPConn.getConfigProps();\n PCore.getDeferLoadManager().deactivate(deferLoadId, currentPConn.getContextName());\n\n const index = parseInt(id, 10);\n if (tabItems[index]?.content === null) {\n tabItems[index].content = availableTabs[index].getPConnect().getComponent();\n }\n\n const nextPConn = availableTabs[id].getPConnect();\n const { deferLoadId: activeId } = nextPConn && nextPConn.getConfigProps();\n PCore.getDeferLoadManager().activate(activeId, nextPConn?.getContextName());\n PCore.getDeferLoadManager().refreshComponent(activeId, nextPConn?.getContextName());\n};\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { getTransientTabs, getVisibleTabs, tabClick } from '../../../_helpers/tab-utils';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-sub-tabs',\n templateUrl: './sub-tabs.component.html',\n styleUrls: ['./sub-tabs.component.scss'],\n standalone: true,\n imports: [MatTabsModule, CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SubTabsComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n\n arChildren$: any[];\n defaultTabIndex = 0;\n currentTabId = this.defaultTabIndex.toString();\n tabItems: any[];\n availableTabs: any;\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const children = this.pConn$?.getChildren();\n const deferLoadedTabs = children[0];\n this.availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');\n this.updateTabContent();\n }\n\n updateTabContent() {\n const tempTabItems = getTransientTabs(this.availableTabs, this.currentTabId, this.tabItems);\n this.tabItems = tempTabItems;\n }\n\n handleTabClick(event) {\n const { index } = event;\n this.currentTabId = index.toString();\n tabClick(index, this.availableTabs, this.currentTabId, this.tabItems);\n const tempTabItems = getTransientTabs(this.availableTabs, this.currentTabId, this.tabItems);\n this.tabItems[index].content = tempTabItems[index].content;\n }\n}\n","<mat-tab-group (selectedTabChange)=\"handleTabClick($event)\">\n <mat-tab *ngFor=\"let tab of tabItems; let i = index\" [label]=\"tab.name\">\n <div class=\"psdk-sub-tabs\" *ngIf=\"+currentTabId == i\">\n <component-mapper\n *ngIf=\"tab.content?.getPConnect() as tabPConn\"\n [name]=\"tabPConn.getComponentName()\"\n [props]=\"{ pConn$: tabPConn, formGroup$ }\"\n errorMsg=\"SubTabs wants component not yet available: {{ tabPConn.getComponentName() }}\"\n ></component-mapper>\n </div>\n </mat-tab>\n</mat-tab-group>\n","// This file is adapted from Nebula/Constellation components/Templates/utils.js\n\nexport function getAllFields(pConnect: any) {\n const metadata = pConnect.getRawMetadata();\n let allFields = [];\n if (metadata.children && metadata.children.map) {\n allFields = metadata.children.map(fields => {\n const children = fields.children instanceof Array ? fields.children : [];\n return children.map(field => field.config);\n });\n }\n return allFields;\n}\n\nexport function filterForFieldValueList(fields: any) {\n return fields\n .filter(({ visibility }) => visibility !== false)\n .map(({ value, label }) => ({\n id: label.toLowerCase(),\n name: label,\n value\n }));\n}\n","import { Component, OnInit, Input, forwardRef, SimpleChanges, OnDestroy, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { getAllFields } from '../../template/utils';\nimport { ReferenceComponent } from '../reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n/**\n * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n * is totally at your own risk.\n */\n\n/**\n *\n * @param pConnn - PConnect Object\n * @returns visibility expression result if exists, otherwise true\n */\nfunction evaluateVisibility(pConnn) {\n let bVisibility = true;\n const sVisibility = pConnn.meta.config.visibility;\n if (sVisibility && sVisibility.length) {\n // e.g. \"@E .EmbeddedData_SelectedTestName == 'Readonly' && .EmbeddedData_SelectedSubCategory == 'Mode'\"\n const aVisibility = sVisibility.split('&&');\n // e.g. [\"EmbeddedData_SelectedTestName\": \"Readonly\", \"EmbeddedData_SelectedSubCategory\": \"Mode\"]\n const context = pConnn.getContextName();\n // Reading values from the Store to evaluate the visibility expressions\n const storeData = PCore.getStore().getState()?.data[context].caseInfo.content;\n\n const initialVal = {};\n const oProperties = aVisibility.reduce((properties, property) => {\n const keyStartIndex = property.indexOf('.');\n const keyEndIndex = property.indexOf('=') - 1;\n const valueStartIndex = property.indexOf(\"'\");\n const valueEndIndex = property.lastIndexOf(\"'\") - 1;\n return {\n ...properties,\n [property.substr(keyStartIndex + 1, keyEndIndex - keyStartIndex - 1)]: property.substr(valueStartIndex + 1, valueEndIndex - valueStartIndex)\n };\n }, initialVal);\n\n const propertyKeys = Object.keys(oProperties);\n const propertyValues = Object.values(oProperties);\n\n for (let propertyIndex = 0; propertyIndex < propertyKeys.length; propertyIndex++) {\n if (storeData[propertyKeys[propertyIndex]] !== propertyValues[propertyIndex]) {\n bVisibility = false;\n }\n }\n }\n return bVisibility;\n}\n\ninterface ViewProps {\n // If any, enter additional props that only exist on this component\n template?: string;\n label?: string;\n showLabel: boolean;\n title?: string;\n visibility?: boolean;\n}\n\n@Component({\n selector: 'app-view',\n templateUrl: './view.component.html',\n styleUrls: ['./view.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ViewComponent implements OnInit, OnDestroy, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n @Input() displayOnlyFA$: boolean;\n // @Input() updateToken$: number;\n\n angularPConnectData: AngularPConnectData = {};\n\n configProps$: ViewProps;\n inheritedProps$: any;\n arChildren$: any[];\n templateName$: string;\n title$ = '';\n label$ = '';\n showLabel$ = true;\n visibility$ = true;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit() {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.checkAndUpdate();\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.checkAndUpdate();\n }\n }\n\n updateSelf() {\n if (this.angularPConnect.getComponentID(this) === undefined) {\n return;\n }\n\n // debugger;\n\n // normalize this.pConn$ in case it contains a 'reference'\n this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ViewProps;\n this.inheritedProps$ = this.pConn$.getInheritedProps();\n\n // NOTE: this.configProps$.visibility'] is used in view.component.ts such that\n // the View will only be rendered when this.configProps$.visibility'] is false.\n // It WILL render if true or undefined.\n\n this.templateName$ = this.configProps$.template || '';\n this.title$ = this.configProps$.title || '';\n this.label$ = this.configProps$.label || '';\n this.showLabel$ = this.configProps$.showLabel || this.showLabel$;\n // label & showLabel within inheritedProps takes precedence over configProps\n this.label$ = this.inheritedProps$.label || this.label$;\n this.showLabel$ = this.inheritedProps$.showLabel || this.showLabel$;\n // children may have a 'reference' so normalize the children array\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n\n this.visibility$ = this.configProps$.visibility ?? this.visibility$;\n\n /**\n * In instances where there is context, like with \"shippingAddress,\" the pageReference becomes \"caseInfo.content.shippingAddress.\"\n * This leads to problems in the getProperty API, as it incorrectly assesses the visibility condition by looking in the wrong location\n * in the Store for the property values. Reference component should be able to handle such scenarios(as done in SDK-R) since it has the\n * expected pageReference values, the View component currently cannot handle this.\n * The resolution lies in transferring this responsibility to the Reference component, eliminating the need for this code when Reference\n * component is able to handle it.\n */\n if (this.pConn$.getPageReference().length > 'caseInfo.content'.length) {\n this.visibility$ = evaluateVisibility(this.pConn$);\n }\n\n // was: this.arChildren$ = this.pConn$.getChildren() as Array<any>;\n\n // debug\n // let kidList: string = \"\";\n // for (let i in this.arChildren$) {\n // kidList = kidList.concat(this.arChildren$[i].getPConnect().getComponentName()).concat(\",\");\n // }\n // console.log(\"-->view update: \" + this.angularPConnect.getComponentID(this) + \", template: \" + this.templateName$ + \", kids: \" + kidList);\n }\n\n // JA - adapting additionalProps from Nebula/Constellation version which uses static methods\n // on the component classes stored in PComponents (that Angular doesn't have)...\n additionalProps(state: any, getPConnect: any) {\n let propObj = {};\n\n // We already have the template name in this.templateName$\n if (this.templateName$ !== '') {\n let allFields = {};\n\n // These uses are adapted from Nebula/Constellation CaseSummary.additionalProps\n switch (this.templateName$) {\n case 'CaseSummary':\n allFields = getAllFields(getPConnect);\n // eslint-disable-next-line no-case-declarations\n const unresFields = {\n primaryFields: allFields[0],\n secondaryFields: allFields[1]\n };\n propObj = getPConnect.resolveConfigProps(unresFields);\n break;\n\n case 'Details':\n allFields = getAllFields(getPConnect);\n propObj = { fields: allFields[0] };\n break;\n default:\n break;\n }\n }\n\n return propObj;\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n}\n","<div *ngIf=\"visibility$ !== false\" class=\"ng-view-top\">\n <div *ngIf=\"showLabel$ && label$ && templateName$ !== 'SimpleTable' && templateName$ !== 'DefaultForm'\" class=\"template-title-container\">\n <span>{{ label$ }}</span>\n </div>\n\n <ng-container *ngIf=\"templateName$; else noTemplate\">\n <div>\n <component-mapper\n [name]=\"templateName$\"\n [props]=\"{ formGroup$, pConn$, displayOnlyFA$ }\"\n errorMsg=\"View template not recognized: [{{ templateName$ }}]\"\n ></component-mapper>\n </div>\n </ng-container>\n\n <ng-template #noTemplate>\n <div *ngIf=\"displayOnlyFA$; else displayAll\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{ pConn$: kid.getPConnect() }\"\n errorMsg=\"View Missing (displayOnlyFA): {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </div>\n </div>\n <ng-template #displayAll>\n <div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{ pConn$: kid.getPConnect() }\"\n errorMsg=\"View Missing (displayAll): {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n </ng-template>\n</div>\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSnackBarModule, MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ErrorMessagesService } from '../../../_messages/error-messages.service';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface IPage {\n classID: string;\n pxPageViewIcon: string;\n pyClassName: string;\n pyLabel: string;\n pyRuleName: string;\n pyURLContent: string;\n}\n\ninterface AppShellProps {\n // If any, enter additional props that only exist on this component\n pages: IPage[];\n caseTypes?: object[];\n portalLogo: string;\n portalName: string;\n portalTemplate: string;\n readOnly?: boolean;\n showAppHeaderBar: boolean;\n showAppName: boolean;\n}\n\n@Component({\n selector: 'app-app-shell',\n templateUrl: './app-shell.component.html',\n styleUrls: ['./app-shell.component.scss'],\n standalone: true,\n imports: [CommonModule, MatSnackBarModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AppShellComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: AppShellProps;\n\n pages$: IPage[];\n caseTypes$?: object[];\n arChildren$: any[];\n bShowAppShell$ = false;\n appName$ = 'PEGA';\n errorMessagesSubscription: Subscription;\n sErrorMessages = '';\n snackBarRef: any;\n bOkDisplayError = false;\n portalTemplate: string;\n links: any = [];\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private erService: ErrorMessagesService,\n private snackBar: MatSnackBar,\n private ngZone: NgZone\n ) {}\n\n ngOnInit() {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // Then, continue on with other initialization\n\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AppShellProps;\n\n // making a copy, so can add info\n this.pages$ = this.configProps$.pages;\n\n this.links = this.pages$.filter((page, index) => {\n return index !== 0;\n });\n\n if (this.pages$) {\n this.bShowAppShell$ = true;\n }\n this.caseTypes$ = this.configProps$.caseTypes;\n\n this.arChildren$ = this.pConn$.getChildren() as any[];\n\n this.portalTemplate = this.configProps$.portalTemplate;\n\n // handle showing and hiding the progress spinner\n this.errorMessagesSubscription = this.erService.getMessage().subscribe(message => {\n this.showDismissErrorMessages(message);\n });\n\n // cannot call checkAndUpdate becasue first time through, will call updateSelf and that is incorrect (causes issues).\n // however, need angularPConnect to be initialized with currentProps for future updates, so calling shouldComponentUpdate directly\n // without checking to update here in init, will initialize and this is correct\n this.angularPConnect.shouldComponentUpdate(this);\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AppShellProps;\n\n this.ngZone.run(() => {\n // making a copy, so can add info\n this.pages$ = this.configProps$.pages;\n\n if (this.pages$) {\n this.bShowAppShell$ = true;\n }\n\n this.caseTypes$ = this.configProps$.caseTypes;\n this.arChildren$ = this.pConn$.getChildren() as any[];\n });\n }\n\n // fpr show/hiding error messages in the SnackBar component\n showDismissErrorMessages(errorMessages: any) {\n switch (errorMessages.action) {\n case 'update':\n // won't show unless publish is turned on\n // eslint-disable-next-line @typescript-eslint/prefer-includes\n if (this.sErrorMessages.indexOf(errorMessages.actionMessage) < 0) {\n this.sErrorMessages = this.sErrorMessages.concat(errorMessages.actionMessage).concat('\\n');\n\n if (this.bOkDisplayError) {\n const config = { panelClass: ['snackbar-newline'] };\n this.snackBarRef = this.snackBar.open(this.sErrorMessages, 'Ok', config);\n }\n }\n break;\n case 'show':\n // add error message if not in the list\n // won't show unless publish is turned on\n // eslint-disable-next-line @typescript-eslint/prefer-includes\n if (this.sErrorMessages.indexOf(errorMessages.actionMessage) < 0) {\n this.sErrorMessages = this.sErrorMessages.concat(errorMessages.actionMessage).concat('\\n');\n }\n\n this.bOkDisplayError = true;\n\n if (this.bOkDisplayError) {\n const config = { panelClass: ['snackbar-newline'] };\n this.snackBarRef = this.snackBar.open(this.sErrorMessages, 'Ok', config);\n }\n // this.snackBarRef.afterDismissed().subscribe( info => {\n // this.sErrorMessages = \"\";\n // }\n // )\n break;\n case 'dismiss':\n // closes snack bar\n // turns publish off\n // clears out errors\n // should be called to dimiss and at \"cancel\"\n if (this.snackBarRef != null) {\n this.snackBarRef.dismiss();\n this.sErrorMessages = '';\n this.bOkDisplayError = false;\n }\n break;\n case 'publish':\n // allows errors to be shown, clears out existing ones\n // should be turned on at \"submit\" (finishAssignment, nextAssignment, etc.)\n\n this.bOkDisplayError = true;\n this.sErrorMessages = '';\n break;\n default:\n break;\n }\n }\n}\n","<div class=\"appshell-top\">\n <div *ngIf=\"bShowAppShell$ && portalTemplate !== 'wss'\">\n <component-mapper name=\"NavBar\" [props]=\"{ pConn$, appName$, pages$, caseTypes$ }\"></component-mapper>\n </div>\n <div *ngIf=\"bShowAppShell$ && portalTemplate === 'wss'\">\n <component-mapper name=\"WssNavBar\" [props]=\"{ pConn$, appName$, homePage: pages$[0], pages$: links, caseTypes$ }\"></component-mapper>\n </div>\n <div [ngClass]=\"{ 'appshell-main': portalTemplate !== 'wss', 'appshell-main-wss': portalTemplate === 'wss' }\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getComponentName() == 'ViewContainer'\">\n <component-mapper name=\"ViewContainer\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface CaseSummaryProps {\n // If any, enter additional props that only exist on this component\n status?: string;\n showStatus?: boolean;\n template?: string;\n readOnly?: boolean;\n}\n\n@Component({\n selector: 'app-case-summary',\n templateUrl: './case-summary.component.html',\n styleUrls: ['./case-summary.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class CaseSummaryComponent implements OnInit, OnDestroy, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n configProps$: CaseSummaryProps;\n\n arChildren$: any[];\n\n status$?: string;\n bShowStatus$?: boolean;\n primaryFields$: any[] = [];\n secondaryFields$: any[] = [];\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.initComponent();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n initComponent() {\n // dereference the View in case the incoming pConn$ is a 'reference'\n this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n // Then, continue on with other initialization\n\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CaseSummaryProps;\n this.arChildren$ = this.pConn$.getChildren() as any[];\n\n this.generatePrimaryAndSecondaryFields();\n\n this.status$ = this.configProps$.status;\n this.bShowStatus$ = this.configProps$.showStatus;\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.generatePrimaryAndSecondaryFields();\n }\n\n ngOnChanges() {\n this.initComponent();\n }\n\n generatePrimaryAndSecondaryFields() {\n this.primaryFields$ = [];\n this.secondaryFields$ = [];\n\n for (const oField of this.arChildren$[0].getPConnect().getChildren()) {\n const kid = oField.getPConnect();\n this.primaryFields$.push(kid.resolveConfigProps(kid.getRawMetadata()));\n }\n\n for (const oField of this.arChildren$[1].getPConnect().getChildren()) {\n const kid = oField.getPConnect();\n this.secondaryFields$.push({ ...kid.resolveConfigProps(kid.getRawMetadata()), kid });\n }\n }\n}\n","<component-mapper name=\"CaseSummaryFields\" [props]=\"{ status$, bShowStatus$, primaryFields$, secondaryFields$ }\"></component-mapper>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface CaseViewProps {\n // If any, enter additional props that only exist on this component\n icon: string;\n subheader: string;\n header: string;\n}\n\n@Component({\n selector: 'app-case-view',\n templateUrl: './case-view.component.html',\n styleUrls: ['./case-view.component.scss'],\n providers: [Utils],\n standalone: true,\n imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CaseViewComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n @Input() displayOnlyFA$: boolean;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: CaseViewProps;\n\n arChildren$: any[];\n\n heading$ = '';\n id$ = '';\n status$ = '';\n caseTabs$: any[] = [];\n svgCase$: string;\n tabData$: any;\n\n mainTabs: any;\n mainTabData: any;\n\n arAvailableActions$: any[] = [];\n arAvailabeProcesses$: any[] = [];\n\n caseSummaryPConn$: any;\n currentCaseID = '';\n editAction: boolean;\n bHasNewAttachments = false;\n localizedVal: any;\n localeCategory = 'CaseView';\n localeKey: string;\n\n constructor(\n private cdRef: ChangeDetectorRef,\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n // AND removing the \"gate\" that was put there since shouldComponentUpdate\n // should be the real \"gate\"\n if (bUpdateSelf) {\n // generally, don't want to refresh everything when data changes in caseView, it is usually the\n // case summary. But check if the case ID changes, this means a different case and we should\n // update all.\n if (this.hasCaseIDChanged()) {\n this.fullUpdate();\n\n // update okToInitFlowContainer, because case view was drawn, flow container will need to be init\n // to match Nebula/Constellation\n sessionStorage.setItem('okToInitFlowContainer', 'true');\n } else {\n this.updateHeaderAndSummary();\n }\n }\n }\n\n hasCaseIDChanged(): boolean {\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n if (this.currentCaseID !== this.pConn$.getDataObject().caseInfo.ID) {\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n this.currentCaseID = this.pConn$.getDataObject().caseInfo.ID;\n return true;\n }\n return false;\n }\n\n updateHeaderAndSummary() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CaseViewProps;\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n const hasNewAttachments = this.pConn$.getDataObject().caseInfo?.hasNewAttachments;\n\n if (hasNewAttachments !== this.bHasNewAttachments) {\n this.bHasNewAttachments = hasNewAttachments;\n if (this.bHasNewAttachments) {\n // @ts-ignore - Argument of type 'boolean' is not assignable to parameter of type 'object'\n PCore.getPubSubUtils().publish((PCore.getEvents().getCaseEvent() as any).CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true);\n }\n }\n\n const kids = this.pConn$.getChildren() as any[];\n for (const kid of kids) {\n const meta = kid.getPConnect().getRawMetadata();\n if (meta.type.toLowerCase() == 'region' && meta.name.toLowerCase() == 'summary') {\n this.caseSummaryPConn$ = kid.getPConnect().getChildren()[0].getPConnect();\n }\n }\n\n // have to put in a timeout, otherwise get an angular change event error\n const timer = interval(100).subscribe(() => {\n timer.unsubscribe();\n\n this.heading$ = PCore.getLocaleUtils().getLocaleValue(this.configProps$.header, '', this.localeKey);\n this.id$ = this.configProps$.subheader;\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n this.status$ = this.pConn$.getValue('.pyStatusWork');\n });\n }\n\n fullUpdate() {\n this.caseTabs$ = [];\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CaseViewProps;\n // let caseTypeID = this.configProps$.ruleClass;\n // let caseTypeName = this.configProps$.header;\n // this.localeKey = `${caseTypeID}!CASE!${caseTypeName}`.toUpperCase();\n this.localeKey = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();\n this.updateHeaderAndSummary();\n\n this.arChildren$ = this.pConn$.getChildren() as any[];\n\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n const caseInfo = this.pConn$.getDataObject().caseInfo;\n this.currentCaseID = caseInfo.ID;\n this.arAvailableActions$ = caseInfo?.availableActions ? caseInfo.availableActions : [];\n this.editAction = this.arAvailableActions$.find(action => action.ID === 'pyUpdateCaseDetails');\n this.arAvailabeProcesses$ = caseInfo?.availableProcesses ? caseInfo.availableProcesses : [];\n\n this.svgCase$ = this.utils.getImageSrc(this.configProps$.icon, this.utils.getSDKStaticContentUrl());\n\n // this.utils.consoleKidDump(this.pConn$);\n\n if (!this.displayOnlyFA$) {\n for (const kid of this.arChildren$) {\n const kidPConn = kid.getPConnect();\n if (kidPConn.getRawMetadata().name == 'Tabs') {\n this.mainTabs = kid;\n this.mainTabData = this.mainTabs.getPConnect().getChildren();\n }\n }\n\n this.generateTabsData();\n }\n }\n\n generateTabsData() {\n this.mainTabs\n .getPConnect()\n .getChildren()\n ?.forEach((child, i) => {\n const config = child.getPConnect().resolveConfigProps(child.getPConnect().getRawMetadata()).config;\n let { label } = config;\n const { inheritedProps, visibility } = config;\n // For some tabs, \"label\" property is not avaialable in theTabCompConfig, so will get them from inheritedProps\n if (!label) {\n inheritedProps.forEach((inheritedProp: any) => {\n if (inheritedProp.prop === 'label') {\n label = inheritedProp.value;\n }\n });\n }\n // We'll display the tabs when either visibility property doesn't exist or is true(if exists)\n if (visibility === undefined || visibility === true) {\n this.caseTabs$.push({ name: label, id: i });\n // To make first visible tab display at the beginning\n if (!this.tabData$) {\n this.tabData$ = { type: 'DeferLoad', config: child.getPConnect().getRawMetadata().config };\n }\n }\n });\n }\n\n updateSelf() {\n this.fullUpdate();\n }\n\n onTabClick(tab: any) {\n this.tabData$ = this.mainTabData[tab].getPConnect().getRawMetadata();\n this.cdRef.detectChanges();\n }\n\n _editClick() {\n const editAction = this.arAvailableActions$.find(action => action.ID === 'pyUpdateCaseDetails');\n const actionsAPI = this.pConn$.getActionsApi();\n const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n openLocalAction(editAction.ID, { ...editAction });\n }\n\n _menuActionClick(data) {\n const actionsAPI = this.pConn$.getActionsApi();\n const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n openLocalAction(data.ID, { ...data, containerName: 'modal', type: 'express' });\n }\n\n _menuProcessClick(data) {\n const actionsAPI = this.pConn$.getActionsApi();\n const openProcessAction = actionsAPI.openProcessAction.bind(actionsAPI);\n\n openProcessAction(data.ID, { ...data });\n }\n}\n","<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n <div>\n <h1>{{ heading$ }}</h1>\n </div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngIf=\"!displayOnlyFA$\">\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\nconst SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };\n\n@Component({\n selector: 'app-data-reference',\n templateUrl: './data-reference.component.html',\n styleUrls: ['./data-reference.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DataReferenceComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n arFields$: any[] = [];\n referenceType = '';\n selectionMode = '';\n parameters;\n hideLabel = false;\n childrenToRender: any[] = [];\n dropDownDataSource = '';\n isDisplayModeEnabled = false;\n propsToUse: any = {};\n rawViewMetadata: any = {};\n viewName = '';\n firstChildMeta: any = {};\n canBeChangedInReviewMode = false;\n propName = '';\n firstChildPConnect;\n children;\n displaySingleRef: boolean;\n displayMultiRef: boolean;\n refList: any;\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.children = this.pConn$.getChildren() as any[];\n this.updateSelf();\n if (this.firstChildMeta?.type === 'Dropdown' && this.rawViewMetadata.config?.parameters) {\n const { value, key, text } = this.firstChildMeta.config.datasource.fields;\n (\n PCore.getDataApiUtils().getData(\n this.refList,\n {\n dataViewParameters: this.parameters\n } as any,\n ''\n ) as Promise<any>\n )\n .then(res => {\n if (res.data.data !== null) {\n const ddDataSource = res.data.data\n .map(listItem => ({\n key: listItem[key.split(' .', 2)[1]],\n text: listItem[text.split(' .', 2)[1]],\n value: listItem[value.split(' .', 2)[1]]\n }))\n .filter(item => item.key);\n // Filtering out undefined entries that will break preview\n this.dropDownDataSource = ddDataSource;\n this.updateSelf();\n } else {\n const ddDataSource: any = [];\n this.dropDownDataSource = ddDataSource;\n }\n })\n .catch(() => {\n return Promise.resolve({\n data: { data: [] }\n });\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n // Update properties based on configProps\n const theConfigProps: any = this.pConn$.getConfigProps();\n this.updatePropertiesFromProps(theConfigProps);\n\n const displayAs = theConfigProps.displayAs;\n const displayMode = theConfigProps.displayMode;\n this.rawViewMetadata = this.pConn$.getRawMetadata();\n this.viewName = this.rawViewMetadata.name;\n this.firstChildMeta = this.rawViewMetadata.children[0];\n this.refList = this.rawViewMetadata.config.referenceList;\n this.canBeChangedInReviewMode = theConfigProps.allowAndPersistChangesInReviewMode && (displayAs === 'autocomplete' || displayAs === 'dropdown');\n // this.childrenToRender = this.children;\n this.isDisplayModeEnabled = ['LABELS_LEFT', 'STACKED_LARGE_VAL'].includes(displayMode);\n\n if (this.firstChildMeta?.type !== 'Region') {\n this.firstChildPConnect = this.pConn$.getChildren()[0].getPConnect;\n\n /* remove refresh When condition from those old view so that it will not be used for runtime */\n if (this.firstChildMeta.config?.readOnly) {\n delete this.firstChildMeta.config.readOnly;\n }\n if (this.firstChildMeta?.type === 'Dropdown') {\n this.firstChildMeta.config.datasource.source = this.rawViewMetadata.config?.parameters\n ? this.dropDownDataSource\n : '@DATASOURCE '.concat(this.refList).concat('.pxResults');\n } else if (this.firstChildMeta?.type === 'AutoComplete') {\n this.firstChildMeta.config.datasource = this.refList;\n\n /* Insert the parameters to the component only if present */\n if (this.rawViewMetadata.config?.parameters) {\n this.firstChildMeta.config.parameters = this.parameters;\n }\n }\n // set displayMode conditionally\n if (!this.canBeChangedInReviewMode) {\n this.firstChildMeta.config.displayMode = displayMode;\n }\n if (this.firstChildMeta.type === 'SimpleTableSelect' && this.selectionMode === SELECTION_MODE.MULTI) {\n this.propName = PCore.getAnnotationUtils().getPropertyName(this.firstChildMeta.config.selectionList);\n } else {\n this.propName = PCore.getAnnotationUtils().getPropertyName(this.firstChildMeta.config.value);\n }\n\n this.generateChildrenToRender();\n }\n }\n\n updatePropertiesFromProps(theConfigProps) {\n const label = theConfigProps.label;\n const showLabel = theConfigProps.showLabel;\n this.referenceType = theConfigProps.referenceType;\n this.selectionMode = theConfigProps.selectionMode;\n this.parameters = theConfigProps.parameters;\n this.hideLabel = theConfigProps.hideLabel;\n\n this.propsToUse = { label, showLabel, ...this.pConn$.getInheritedProps() };\n if (this.propsToUse.showLabel === false) {\n this.propsToUse.label = '';\n }\n }\n\n generateChildrenToRender() {\n const theRecreatedFirstChild = this.recreatedFirstChild();\n const viewsRegion = this.rawViewMetadata.children[1];\n if (viewsRegion?.name === 'Views' && viewsRegion.children.length) {\n this.childrenToRender = [theRecreatedFirstChild, ...this.children.slice(1)];\n } else {\n this.childrenToRender = [theRecreatedFirstChild];\n }\n }\n\n handleSelection(event) {\n const caseKey = this.pConn$.getCaseInfo().getKey();\n const refreshOptions = { autoDetectRefresh: true };\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n if (this.canBeChangedInReviewMode && this.pConn$.getValue('__currentPageTabViewName')) {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n this.pConn$.getActionsApi().refreshCaseView(caseKey, this.pConn$.getValue('__currentPageTabViewName'), null, refreshOptions);\n PCore.getDeferLoadManager().refreshActiveComponents(this.pConn$.getContextName());\n } else {\n const pgRef = this.pConn$.getPageReference().replace('caseInfo.content', '');\n this.pConn$.getActionsApi().refreshCaseView(caseKey, this.viewName, pgRef, refreshOptions);\n }\n\n // AutoComplete sets value on event.id whereas Dropdown sets it on event.target.value\n const propValue = event?.id || event?.target?.value;\n if (propValue && this.canBeChangedInReviewMode && this.isDisplayModeEnabled) {\n (PCore.getDataApiUtils().getCaseEditLock(caseKey, '') as Promise<any>).then(caseResponse => {\n const pageTokens = this.pConn$.getPageReference().replace('caseInfo.content', '').split('.');\n let curr = {};\n const commitData = curr;\n\n pageTokens.forEach(el => {\n if (el !== '') {\n curr[el] = {};\n curr = curr[el];\n }\n });\n\n // expecting format like {Customer: {pyID:\"C-100\"}}\n const propArr = this.propName.split('.');\n propArr.forEach((element, idx) => {\n if (idx + 1 === propArr.length) {\n curr[element] = propValue;\n } else {\n curr[element] = {};\n curr = curr[element];\n }\n });\n\n (\n PCore.getCaseUtils().updateCaseEditFieldsData(\n caseKey,\n { [caseKey]: commitData },\n caseResponse.headers.etag,\n this.pConn$.getContextName()\n ) as Promise<any>\n ).then(response => {\n PCore.getContainerUtils().updateParentLastUpdateTime(this.pConn$.getContextName(), response.data.data.caseInfo.lastUpdateTime);\n PCore.getContainerUtils().updateRelatedContextEtag(this.pConn$.getContextName(), response.headers.etag);\n });\n });\n }\n }\n\n // Re-create first child with overridden props\n // Memoized child in order to stop unmount and remount of the child component when data reference\n // rerenders without any actual change\n recreatedFirstChild() {\n const { type, config } = this.firstChildMeta;\n if (this.firstChildMeta?.type !== 'Region') {\n this.pConn$.clearErrorMessages({\n property: this.propName,\n category: '',\n context: ''\n } as any);\n if (!this.canBeChangedInReviewMode && this.isDisplayModeEnabled && this.selectionMode === SELECTION_MODE.SINGLE) {\n this.displaySingleRef = true;\n }\n\n if (this.isDisplayModeEnabled && this.selectionMode === SELECTION_MODE.MULTI) {\n this.displayMultiRef = true;\n }\n\n // In the case of a datasource with parameters you cannot load the dropdown before the parameters\n if (type === 'Dropdown' && this.rawViewMetadata.config?.parameters && this.dropDownDataSource === null) {\n return null;\n }\n\n return this.firstChildPConnect().createComponent({\n type,\n config: {\n ...config,\n required: this.propsToUse.required,\n visibility: this.propsToUse.visibility,\n disabled: this.propsToUse.disabled,\n label: this.propsToUse.label,\n viewName: this.pConn$.getCurrentView(),\n parameters: this.rawViewMetadata.config.parameters,\n readOnly: false,\n localeReference: this.rawViewMetadata.config.localeReference,\n ...(this.selectionMode === SELECTION_MODE.SINGLE ? { referenceType: this.referenceType } : ''),\n dataRelationshipContext:\n this.rawViewMetadata.config.contextClass && this.rawViewMetadata.config.name ? this.rawViewMetadata.config.name : null,\n hideLabel: this.hideLabel,\n onRecordChange: this.handleSelection.bind(this)\n }\n });\n }\n }\n}\n","<div *ngIf=\"childrenToRender && childrenToRender.length > 0\">\n <div *ngIf=\"!displayMultiRef\">\n <div *ngFor=\"let kid of childrenToRender\">\n <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"displaySingleRef\">\n <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n <div *ngIf=\"displayMultiRef\">\n <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TemplateUtils {\n /**\n * Determine if the current view is the view of the case step/assignment.\n * @param {Function} pConnect PConnect object for the component\n */\n getIsAssignmentView(pConnect) {\n // Get caseInfo content from the store which contains the view info about the current assignment/step\n // TODO To be replaced with pConnect.getCaseInfo().getCurrentAssignmentView when it's available\n const assignmentViewClass = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_CLASSID);\n const assignmentViewName = pConnect.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENTACTION_ID);\n\n const assignmentViewId = `${assignmentViewName}!${assignmentViewClass}`;\n\n // Get the info about the current view from pConnect\n const currentViewId = `${pConnect.getCurrentView()}!${pConnect.getCurrentClassID()}`;\n\n return assignmentViewId === currentViewId;\n }\n\n /**\n * A hook that gets the instructions content for a view.\n * @param {Function} pConnect PConnect object for the component\n * @param {string} [instructions=\"casestep\"] 'casestep', 'none', or the html content of a Rule-UI-Paragraph rule (processed via core's paragraph annotation handler)\n */\n getInstructions(pConnect, instructions = 'casestep') {\n const caseStepInstructions = PCore.getConstants().CASE_INFO.INSTRUCTIONS && pConnect.getValue(PCore.getConstants().CASE_INFO.INSTRUCTIONS);\n\n // Determine if this view is the current assignment/step view\n const isCurrentAssignmentView = this.getIsAssignmentView(pConnect);\n\n // Case step instructions\n if (instructions === 'casestep' && isCurrentAssignmentView && caseStepInstructions?.length) {\n return caseStepInstructions;\n }\n\n // No instructions\n if (instructions === 'none') {\n return undefined;\n }\n\n // If the annotation wasn't processed correctly, don't return any instruction text\n if (instructions?.startsWith('@PARAGRAPH')) {\n return undefined;\n }\n\n // Custom instructions from the view\n // The raw metadata for `instructions` will be something like '@PARAGRAPH .SomeParagraphRule' but\n // it is evaluated by core logic to the content\n if (instructions !== 'casestep' && instructions !== 'none') {\n return instructions;\n }\n return undefined;\n }\n}\n","import { Component, OnInit, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { TemplateUtils } from '../../../_helpers/template-utils';\n\ninterface DefaultFormProps {\n // If any, enter additional props that only exist on this component\n NumCols: string;\n template: string;\n instructions: string;\n}\n\n@Component({\n selector: 'app-default-form',\n templateUrl: './default-form.component.html',\n styleUrls: ['./default-form.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DefaultFormComponent implements OnInit {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n divClass$: string;\n template: any;\n showLabel: any;\n label: any;\n instructions: string;\n\n NO_HEADER_TEMPLATES = [\n 'SubTabs',\n 'SimpleTable',\n 'Details',\n 'DetailsTwoColumn',\n 'DetailsThreeColumn',\n 'NarrowWideDetails',\n 'WideNarrowDetails',\n 'Confirmation'\n ];\n\n constructor(private templateUtils: TemplateUtils) {}\n\n ngOnInit(): void {\n const configProps = this.pConn$.getConfigProps() as DefaultFormProps;\n this.template = configProps?.template;\n const propToUse: any = { ...this.pConn$.getInheritedProps() };\n this.showLabel = propToUse?.showLabel;\n this.label = propToUse?.label;\n const kids = this.pConn$.getChildren() as any[];\n this.instructions = this.templateUtils.getInstructions(this.pConn$, configProps?.instructions);\n\n const numCols = configProps.NumCols ? configProps.NumCols : '1';\n switch (numCols) {\n case '1':\n this.divClass$ = 'psdk-default-form-one-column';\n break;\n case '2':\n this.divClass$ = 'psdk-default-form-two-column';\n break;\n case '3':\n this.divClass$ = 'psdk-default-form-three-column';\n break;\n default:\n this.divClass$ = 'psdk-default-form-one-column';\n break;\n }\n\n // repoint children before getting templateArray\n // Children may contain 'reference' component, so we need to\n // normalize them\n this.arChildren$ = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());\n }\n}\n","<!-- When adding a component here, add the same component in 'region' template as well -->\n<div *ngIf=\"!NO_HEADER_TEMPLATES.includes(template) && showLabel\">\n <div class=\"template-title-container\">{{ label }}</div>\n</div>\n<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-details-three-column',\n templateUrl: './details-three-column.component.html',\n styleUrls: ['./details-three-column.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsThreeColumnComponent implements OnInit, OnDestroy {\n constructor(private angularPConnect: AngularPConnectService) {}\n\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n showHighlightedData: boolean;\n highlightedDataArr: any;\n\n arFields$: any[] = [];\n arFields2$: any[] = [];\n arFields3$: any[] = [];\n\n propsToUse: any = {};\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);\n this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n if (this.showHighlightedData) {\n const highlightedData = rawMetaData?.highlightedData;\n this.highlightedDataArr = highlightedData.map(field => {\n field.config.displayMode = 'STACKED_LARGE_VAL';\n\n if (field.config.value === '@P .pyStatusWork') {\n field.type = 'TextInput';\n field.config.displayAsStatus = true;\n }\n\n return field;\n });\n }\n\n this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');\n this.pConn$.setInheritedProp('readOnly', true);\n\n const kids = this.pConn$.getChildren() as any[];\n for (const kid of kids) {\n const pKid = kid.getPConnect();\n const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n if (kids.indexOf(kid) == 0) {\n this.arFields$ = pKidData.children;\n } else if (kids.indexOf(kid) == 1) {\n this.arFields2$ = pKidData.children;\n } else {\n this.arFields3$ = pKidData.children;\n }\n }\n }\n}\n","<component-mapper\n name=\"MaterialDetails\"\n [props]=\"{ arFields$, arFields2$, arFields3$, arHighlightedFields: highlightedDataArr, layout: 'three-column' }\"\n></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-details-two-column',\n templateUrl: './details-two-column.component.html',\n styleUrls: ['./details-two-column.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsTwoColumnComponent implements OnInit, OnDestroy {\n constructor(private angularPConnect: AngularPConnectService) {}\n\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n showHighlightedData: boolean;\n highlightedDataArr: any;\n\n arFields$: any[] = [];\n arFields2$: any[] = [];\n arFields3$: any[] = [];\n\n propsToUse: any = {};\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);\n this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n if (this.showHighlightedData) {\n const highlightedData = rawMetaData?.highlightedData;\n this.highlightedDataArr = highlightedData.map(field => {\n field.config.displayMode = 'STACKED_LARGE_VAL';\n\n if (field.config.value === '@P .pyStatusWork') {\n field.type = 'TextInput';\n field.config.displayAsStatus = true;\n }\n\n return field;\n });\n }\n\n this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');\n this.pConn$.setInheritedProp('readOnly', true);\n\n const kids = this.pConn$.getChildren() as any[];\n for (const kid of kids) {\n const pKid = kid.getPConnect();\n const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n if (kids.indexOf(kid) == 0) {\n this.arFields$ = pKidData.children;\n } else {\n this.arFields2$ = pKidData.children;\n }\n }\n }\n}\n","<component-mapper\n name=\"MaterialDetails\"\n [props]=\"{ arFields$, arFields2$, arHighlightedFields: highlightedDataArr, layout: 'two-column' }\"\n></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { getTransientTabs, getVisibleTabs, tabClick } from '../../../_helpers/tab-utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-details-sub-tabs',\n templateUrl: './details-sub-tabs.component.html',\n styleUrls: ['./details-sub-tabs.component.scss'],\n standalone: true,\n imports: [MatTabsModule, CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsSubTabsComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n currentTabId = '0';\n tabItems: any[];\n availableTabs: any[];\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const children = this.pConn$?.getChildren();\n const deferLoadedTabs = children[0];\n this.availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');\n this.updateTabContent();\n }\n\n updateTabContent() {\n const tempTabItems = getTransientTabs(this.availableTabs, this.currentTabId, this.tabItems);\n this.tabItems = tempTabItems;\n }\n\n handleTabClick(event) {\n const { index } = event;\n this.currentTabId = index.toString();\n tabClick(index, this.availableTabs, this.currentTabId, this.tabItems);\n const tempTabItems = getTransientTabs(this.availableTabs, this.currentTabId, this.tabItems);\n this.tabItems[index].content = tempTabItems[index].content;\n }\n}\n","<mat-tab-group (selectedTabChange)=\"handleTabClick($event)\">\n <mat-tab *ngFor=\"let tab of tabItems; let i = index\" [label]=\"tab.name\">\n <div *ngIf=\"+currentTabId == i\">\n <component-mapper\n *ngIf=\"tab.content?.getPConnect()\"\n [name]=\"tab.content?.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: tab.content?.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Details Sub tabs wants component not yet available: {{ tab.content?.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </mat-tab>\n</mat-tab-group>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-details',\n templateUrl: './details.component.html',\n styleUrls: ['./details.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsComponent implements OnInit, OnDestroy {\n constructor(private angularPConnect: AngularPConnectService) {}\n\n @Input() pConn$: typeof PConnect;\n\n highlightedDataArr: any[] = [];\n showHighlightedData: boolean;\n arFields$: any[] = [];\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);\n this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n if (this.showHighlightedData) {\n const highlightedData = rawMetaData?.highlightedData;\n this.highlightedDataArr = highlightedData.map(field => {\n field.config.displayMode = 'STACKED_LARGE_VAL';\n\n if (field.config.value === '@P .pyStatusWork') {\n field.type = 'TextInput';\n field.config.displayAsStatus = true;\n }\n\n return field;\n });\n }\n\n const kids = this.pConn$.getChildren() as any[];\n for (const kid of kids) {\n this.arFields$ = [];\n const pKid = kid.getPConnect();\n const fields = pKid.getChildren();\n fields?.forEach(field => {\n const thePConn = field.getPConnect();\n const theCompType = thePConn.getComponentName().toLowerCase();\n if (theCompType === 'reference') {\n const configProps = thePConn.getConfigProps();\n configProps.readOnly = true;\n configProps.displayMode = 'LABELS_LEFT';\n const propToUse = { ...thePConn.getInheritedProps() };\n configProps.label = propToUse?.label;\n const options = {\n context: thePConn.getContextName(),\n pageReference: thePConn.getPageReference(),\n referenceList: thePConn.getReferenceList()\n };\n const viewContConfig = {\n meta: {\n type: theCompType,\n config: configProps\n },\n options\n };\n const theViewCont = PCore.createPConnect(viewContConfig);\n const data = {\n type: theCompType,\n pConn: theViewCont?.getPConnect()\n };\n this.arFields$.push(data);\n } else {\n const data = {\n type: theCompType,\n config: thePConn.getConfigProps()\n };\n this.arFields$.push(data);\n }\n });\n }\n }\n}\n","<div>\n <component-mapper name=\"MaterialDetails\" [props]=\"{ arFields$, arHighlightedFields: highlightedDataArr, layout: 'one-column' }\"></component-mapper>\n</div>\n","/**\n *\n * @param {*} pConn - pConnect object of the view\n * @returns {string} - returns the name of referenceList\n */\nexport const getReferenceList = pConn => {\n let resolvePage = pConn.getComponentConfig().referenceList.replace('@P ', '');\n if (resolvePage.includes('D_')) {\n resolvePage = pConn.resolveDatasourceReference(resolvePage);\n if (resolvePage?.pxResults) {\n resolvePage = resolvePage?.pxResults;\n } else if (resolvePage.startsWith('D_') && !resolvePage.endsWith('.pxResults')) {\n resolvePage = `${resolvePage}.pxResults`;\n }\n }\n return resolvePage;\n};\n\n/**\n * creates and returns react element of the view\n * @param {*} pConn - pConnect object of the view\n * @param {*} index - index of the fieldGroup item\n * @param {*} viewConfigPath - boolean value to check for children in config\n * @returns {*} - return the react element of the view\n */\nexport const buildView = (pConn, index, viewConfigPath) => {\n const context = pConn.getContextName();\n const referenceList = getReferenceList(pConn);\n\n const isDatapage = referenceList.startsWith('D_');\n const pageReference = isDatapage ? `${referenceList}[${index}]` : `${pConn.getPageReference()}${referenceList}[${index}]`;\n const meta = viewConfigPath ? pConn.getRawMetadata().children[0].children[0] : pConn.getRawMetadata().children[0];\n const config = {\n meta,\n options: {\n context,\n pageReference,\n referenceList,\n hasForm: true\n }\n };\n\n const view = PCore.createPConnect(config);\n if (pConn.getConfigProps()?.displayMode === 'LABELS_LEFT') {\n view.getPConnect()?.setInheritedProp('displayMode', 'LABELS_LEFT');\n }\n\n return view;\n};\n","import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { buildView, getReferenceList } from '../../../_helpers/field-group-utils';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface FieldGroupTemplateProps {\n // If any, enter additional props that only exist on this component\n label?: string;\n showLabel?: boolean;\n referenceList?: any[];\n contextClass: string;\n renderMode?: string;\n heading?: string;\n lookForChildInConfig?: boolean;\n displayMode?: string;\n fieldHeader?: string;\n allowTableEdit: boolean;\n}\n\n@Component({\n selector: 'app-field-group-template',\n templateUrl: './field-group-template.component.html',\n styleUrls: ['./field-group-template.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class FieldGroupTemplateComponent implements OnInit, OnDestroy, OnChanges {\n @Input() configProps$: FieldGroupTemplateProps;\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n inheritedProps$: object;\n showLabel$?: boolean = true;\n label$?: string;\n readonlyMode: boolean;\n contextClass: any;\n referenceList: any;\n pageReference: any;\n heading: any;\n children: any;\n menuIconOverride$: any;\n prevRefLength: number;\n allowAddEdit: boolean;\n fieldHeader: any;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.updateSelf();\n\n const menuIconOverride$ = 'trash';\n if (menuIconOverride$) {\n this.menuIconOverride$ = this.utils.getImageSrc(menuIconOverride$, this.utils.getSDKStaticContentUrl());\n }\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n ngOnChanges(changes) {\n if (changes && changes.configProps$) {\n const props = changes.configProps$;\n if (props.currentValue !== props.previousValue) {\n this.configProps$ = props.currentValue;\n if (changes?.pConn$?.currentValue) {\n this.pConn$ = changes?.pConn$?.currentValue;\n }\n this.updateSelf();\n }\n }\n }\n\n updateSelf() {\n this.inheritedProps$ = this.pConn$.getInheritedProps();\n this.label$ = this.configProps$.label;\n this.showLabel$ = this.configProps$.showLabel;\n // label & showLabel within inheritedProps takes precedence over configProps\n this.label$ = (this.inheritedProps$ as any).label || this.label$;\n this.showLabel$ = (this.inheritedProps$ as any).showLabel || this.showLabel$;\n\n this.allowAddEdit = this.configProps$.allowTableEdit;\n\n const renderMode = this.configProps$.renderMode;\n const displayMode = this.configProps$.displayMode;\n this.readonlyMode = renderMode === 'ReadOnly' || displayMode === 'LABELS_LEFT';\n this.contextClass = this.configProps$.contextClass;\n const lookForChildInConfig = this.configProps$.lookForChildInConfig;\n this.heading = this.configProps$.heading ?? 'Row';\n this.fieldHeader = this.configProps$.fieldHeader;\n const resolvedList = getReferenceList(this.pConn$);\n this.pageReference = `${this.pConn$.getPageReference()}${resolvedList}`;\n this.pConn$.setReferenceList(resolvedList);\n if (this.readonlyMode) {\n this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');\n }\n this.referenceList = this.configProps$.referenceList;\n if (this.prevRefLength != this.referenceList.length) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (!this.readonlyMode) {\n if (this.referenceList?.length === 0 && this.allowAddEdit !== false) {\n this.addFieldGroupItem();\n }\n }\n const children: any = [];\n this.referenceList?.forEach((item, index) => {\n children.push({\n id: index,\n name: this.fieldHeader === 'propertyRef' ? this.getDynamicHeader(item, index) : this.getStaticHeader(this.heading, index),\n children: buildView(this.pConn$, index, lookForChildInConfig)\n });\n });\n this.children = children;\n }\n this.prevRefLength = this.referenceList.length;\n }\n\n getStaticHeader = (heading, index) => {\n return `${heading} ${index + 1}`;\n };\n\n getDynamicHeader = (item, index) => {\n if (this.fieldHeader === 'propertyRef' && this.heading && item[this.heading.substring(1)]) {\n return item[this.heading.substring(1)];\n }\n return `Row ${index + 1}`;\n };\n\n addFieldGroupItem() {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length, this.pageReference);\n } else {\n // @ts-ignore - second parameter \"pageRef\" is optional for insert method\n this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);\n }\n }\n\n deleteFieldGroupItem(index) {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n this.pConn$.getListActions().deleteEntry(index, this.pageReference);\n } else {\n // @ts-ignore - second parameter \"pageRef\" is optional for deleteEntry method\n this.pConn$.getListActions().deleteEntry(index);\n }\n }\n}\n","<div id=\"field-group\">\n <h3 *ngIf=\"showLabel$\" className=\"label\" style=\"font-weight: bold\">\n {{ label$ }}\n </h3>\n <div *ngIf=\"readonlyMode; else editable\">\n <div *ngIf=\"children && children.length > 0\">\n <div *ngFor=\"let item of children; let i = index\">\n <component-mapper name=\"FieldGroupList\" [props]=\"{ heading: item.name, formGroup$, item }\"></component-mapper>\n </div>\n </div>\n </div>\n <ng-template #editable>\n <div *ngIf=\"children && children.length > 0\">\n <div *ngFor=\"let kid of children; let i = index\">\n <div class=\"header-div\">\n <div style=\"width: 80%\">\n <b>{{ kid.name }}</b>\n </div>\n <div *ngIf=\"allowAddEdit !== false\" style=\"width: 20%; text-align: right\">\n <button id=\"delete-button\" mat-icon-button (click)=\"deleteFieldGroupItem(i)\">\n <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ menuIconOverride$ }}\" />\n </button>\n </div>\n </div>\n\n <div *ngIf=\"kid.children.getPConnect().getRawMetadata().type.toLowerCase() == 'region'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.children.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <button *ngIf=\"allowAddEdit !== false\" mat-button color=\"primary\" style=\"font-size: 16px\" (click)=\"addFieldGroupItem()\">+ Add</button>\n </div>\n </ng-template>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-list-page',\n templateUrl: './list-page.component.html',\n styleUrls: ['./list-page.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class ListPageComponent {\n @Input() pConn$: typeof PConnect;\n}\n","<component-mapper name=\"ListView\" [props]=\"{ pConn$, bInForm$: false }\"></component-mapper>\n","const LOCALIZATON_ANNOTATION = '@L ';\nconst PROPERTY_ANNOTATION = '@P .';\nconst USER_ANNOTATION = '@USER .';\nconst ASSOCIATED_ANNOTATION = '@ASSOCIATED .';\nconst ASSOCIATION_ANNOTATION = '@CA ';\n\nconst getDefaultConfig = (fieldMeta, classID, show) => {\n const {\n name,\n label,\n fieldID,\n fieldType,\n dataType,\n type,\n classID: fieldMetaClassID,\n displayAs,\n displayAsLink,\n category,\n associationClassID,\n associationID\n } = fieldMeta;\n return {\n value: (associationClassID ? ASSOCIATION_ANNOTATION : PROPERTY_ANNOTATION).concat(fieldID),\n label: LOCALIZATON_ANNOTATION.concat(name || label),\n fieldType,\n propertyType: dataType || type,\n classID: classID || fieldMetaClassID,\n displayAs,\n displayAsLink,\n category,\n show,\n ...(associationClassID ? { associationLabel: LOCALIZATON_ANNOTATION.concat(category) } : {}),\n associationID\n };\n};\n\nexport function getDefaultViewMeta(fieldMeta, classID, showField) {\n const { type, name, displayAs, fieldID, isUserReference, associationID, datasource, label, fieldType } = fieldMeta;\n const mapperKey = type && displayAs ? type.concat(':').concat(displayAs) : type;\n const defaultConfig = getDefaultConfig(fieldMeta, classID, showField);\n let viewMeta;\n switch (mapperKey) {\n case 'True-False:pxCheckbox':\n viewMeta = {\n type: 'Checkbox',\n config: {\n ...defaultConfig,\n trueLabel: '@L Yes',\n falseLabel: '@L No',\n caption: LOCALIZATON_ANNOTATION.concat(name || label),\n label: undefined\n }\n };\n break;\n case 'Decimal:pxCurrency':\n viewMeta = {\n type: 'Currency',\n config: defaultConfig\n };\n break;\n case 'Date Time:pxDateTime':\n case 'Date & time:pxDateTime':\n viewMeta = {\n type: 'DateTime',\n config: defaultConfig\n };\n break;\n case 'Date:pxDateTime':\n case 'Date only:pxDateTime':\n viewMeta = {\n type: 'Date',\n config: defaultConfig\n };\n break;\n case 'Decimal:pxNumber':\n viewMeta = {\n type: 'Decimal',\n config: defaultConfig\n };\n break;\n case 'Text:pxEmail':\n viewMeta = {\n type: 'Email',\n config: defaultConfig\n };\n break;\n case 'Integer:pxInteger':\n viewMeta = {\n type: 'Integer',\n config: defaultConfig\n };\n break;\n case 'Decimal:pxPercentage':\n viewMeta = {\n type: 'Percentage',\n config: defaultConfig\n };\n break;\n case 'Text:pxPhone':\n viewMeta = {\n type: 'Phone',\n config: {\n ...defaultConfig,\n datasource: {\n source: '@DATASOURCE D_pyCountryCallingCodeList.pxResults',\n fields: {\n value: '@P .pyCallingCode'\n }\n }\n }\n };\n break;\n case 'TimeOfDay:pxDateTime':\n viewMeta = {\n type: 'Time',\n config: defaultConfig\n };\n break;\n case 'Text:pxURL':\n case 'Text:pxUrl':\n viewMeta = {\n type: 'URL',\n config: defaultConfig\n };\n break;\n case 'Text:pxTextArea':\n viewMeta = {\n type: 'TextArea',\n config: defaultConfig\n };\n break;\n case 'Text:pxRichTextEditor':\n viewMeta = {\n type: 'RichText',\n config: defaultConfig\n };\n break;\n case 'Text:pxAutoComplete':\n if (isUserReference || fieldType === 'User reference') {\n viewMeta = {\n type: 'UserReference',\n config: {\n ...defaultConfig,\n value: USER_ANNOTATION.concat(fieldID),\n placeholder: 'Select...',\n displayAs: 'Search box',\n associationID,\n associationLabel: undefined\n }\n };\n } else {\n const { tableType = '' } = datasource || {};\n viewMeta = {\n type: 'AutoComplete',\n config: {\n ...defaultConfig,\n placeholder: 'Select...',\n listType: 'associated',\n datasource: ASSOCIATED_ANNOTATION.concat(fieldID),\n deferDatasource: tableType === 'DataPage'\n }\n };\n }\n break;\n case 'Text:pxDropdown':\n if (isUserReference || fieldType === 'User reference') {\n viewMeta = {\n type: 'UserReference',\n config: {\n ...defaultConfig,\n value: USER_ANNOTATION.concat(fieldID),\n placeholder: 'Select...',\n displayAs: 'Drop-down list',\n associationID,\n associationLabel: undefined\n }\n };\n } else {\n const { tableType = '' } = datasource || {};\n viewMeta = {\n type: 'Dropdown',\n config: {\n ...defaultConfig,\n placeholder: 'Select...',\n listType: 'associated',\n datasource: ASSOCIATED_ANNOTATION.concat(fieldID),\n deferDatasource: tableType === 'DataPage'\n }\n };\n }\n break;\n case 'Text:pxRadioButtons':\n {\n const { tableType = '' } = datasource || {};\n viewMeta = {\n type: 'RadioButtons',\n config: {\n ...defaultConfig,\n placeholder: 'Select...',\n listType: 'associated',\n datasource: ASSOCIATED_ANNOTATION.concat(fieldID),\n deferDatasource: tableType === 'DataPage'\n }\n };\n }\n break;\n case 'Text:pxTextInput':\n viewMeta = {\n type: 'TextInput',\n config: defaultConfig\n };\n break;\n default:\n viewMeta = {\n type,\n config: defaultConfig\n };\n }\n return viewMeta;\n}\n","import { getDefaultViewMeta } from './DefaultViewMeta';\n\n// Remove this and use \"real\" PCore type once .d.ts is fixed (currently shows 5 errors)\ndeclare const PCore: any;\n\nconst USER_REFERENCE = 'UserReference';\nconst PAGE = '!P!';\nconst PAGELIST = '!PL!';\n\nexport const formatConstants = {\n WorkStatus: 'WorkStatus',\n Integer: 'Integer',\n WorkLink: 'WorkLink'\n};\n\nclass DataApi {\n mappedPropertyToOriginalProperty: any;\n originalPropertyToMappedProperty: any;\n constructor() {\n this.originalPropertyToMappedProperty = {};\n this.mappedPropertyToOriginalProperty = {};\n this.setPropertyMaps = this.setPropertyMaps.bind(this);\n this.getMappedProperty = this.getMappedProperty.bind(this);\n this.getOriginalProperty = this.getOriginalProperty.bind(this);\n }\n\n setPropertyMaps(originalToMappedPropertyObj = {}, mappedToOriginalPropertyObj = {}) {\n this.originalPropertyToMappedProperty = {\n ...this.originalPropertyToMappedProperty,\n ...originalToMappedPropertyObj\n };\n this.mappedPropertyToOriginalProperty = {\n ...this.mappedPropertyToOriginalProperty,\n ...mappedToOriginalPropertyObj\n };\n }\n\n getMappedProperty(propertyName) {\n return this.originalPropertyToMappedProperty[propertyName] ?? propertyName;\n }\n\n getOriginalProperty(propertyName) {\n return this.mappedPropertyToOriginalProperty[propertyName] ?? propertyName;\n }\n}\n\nexport async function getContext(componentConfig) {\n const {\n promisesArray = [] // array of promises which can be invoked paralelly,\n } = componentConfig;\n const promisesResponseArray = await Promise.all(promisesArray);\n const dataApi = new DataApi();\n return {\n promisesResponseArray,\n setPropertyMaps: dataApi.setPropertyMaps,\n getMappedProperty: dataApi.getMappedProperty,\n getOriginalProperty: dataApi.getOriginalProperty\n };\n}\n\n/**\n * [getFieldNameFromEmbeddedFieldName]\n * Description - converting embeddedField name starting with !P! or !PL! to normal field\n * @ignore\n * @param {string} propertyName EmbeddedField name starting with !P! or !PL!\n * @returns {string} returns converted string without !P! or !PL! and :\n *\n * @example <caption>Example for getFieldNameFromEmbeddedFieldName </caption>\n * getFieldNameFromEmbeddedFieldName('!P!Organisation:Name') return 'Organisation.Name'\n * getFieldNameFromEmbeddedFieldName('!PL!Employees:Name') return 'Employees.Name'\n */\nexport function getFieldNameFromEmbeddedFieldName(propertyName) {\n let value = propertyName;\n if (value.startsWith(PAGE) || value.startsWith(PAGELIST)) {\n value = value.substring(value.lastIndexOf('!') + 1);\n value = value.replace(/:/g, '.');\n }\n return value;\n}\n\n/**\n * [updateMetaEmbeddedFieldID]\n * Description - If the fieldID in meta starts with '!P!' or '!PL!' and contains ':' then replace them with .(dot)\n * @ignore\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.\n */\nexport function updateMetaEmbeddedFieldID(metaFields) {\n return metaFields.forEach(metaField => {\n if (metaField.fieldID?.startsWith(PAGE) || metaField.fieldID?.startsWith(PAGELIST)) {\n metaField.fieldID = getFieldNameFromEmbeddedFieldName(metaField.fieldID);\n }\n });\n}\n\nexport const isEmbeddedField = field => {\n if (field?.startsWith('@')) {\n field = field.substring(field.indexOf(' ') + 1);\n if (field[0] === '.') field = field.substring(1);\n }\n return field?.indexOf('.') > 0;\n};\n\n/**\n * [isPageListProperty]\n * Description - checking if propertyName is pageList or not\n * @ignore\n * @param {string} propertyName PropertyName\n * @returns {boolean} true if property is pageList else false\n *\n * @example <caption>Example for isPageListProperty </caption>\n * isPageListProperty('!PL!Employees.Name') return true\n * isPageListProperty('!P!Employees.Name') return false\n * isPageListProperty('Name') return false\n */\nexport function isPageListProperty(propertyName) {\n return propertyName.startsWith(PAGELIST);\n}\n\nexport const isPageListInPath = (propertyName, currentClassID) => {\n if (!propertyName.includes('.')) {\n return false;\n }\n const [first, ...rest] = propertyName.split('.');\n const metadata = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);\n if (metadata?.type === 'Page List') {\n return true;\n }\n return isPageListInPath(rest.join('.'), metadata?.pageClass);\n};\n\n/**\n * [getEmbeddedFieldName]\n * Description - converting normal field name to embedded field starting with !P! or !PL!\n * @ignore\n * @param {string} propertyName Field name\n * @param {string} classID classID of datapage\n * @returns {string} returns converted string with !P! or !PL! and :\n *\n * @example <caption>Example for getEmbeddedFieldName </caption>\n * For page property, getEmbeddedFieldName('Organisation.Name') return '!P!Organisation:Name'\n * For pageList property, getEmbeddedFieldName('Employees.Name') return '!PL!Employees:Name'\n */\n\nexport function getEmbeddedFieldName(propertyName, classID) {\n let value = propertyName;\n if (isPageListInPath(value, classID)) {\n value = `!PL!${value.replace(/\\./g, ':')}`;\n } else {\n value = `!P!${value.replace(/\\./g, ':')}`;\n }\n return value;\n}\n\n/**\n * [preparePropertyMaps]\n * Description - preparing maps for property names and set it in dataApi context\n * @ignore\n * @param {Array} fields fields array\n * @param {string} classID classID of datapage\n * @param {string} context dataApi context\n * @returns {boolean} true if pageListProperty is present\n */\nexport function preparePropertyMaps(fields, classID, context) {\n const { setPropertyMaps } = context;\n const maps = fields.reduce(\n (acc, field) => {\n let { value } = field.config;\n if (value.startsWith('@')) {\n value = value.substring(value.indexOf(' ') + 1);\n if (value[0] === '.') value = value.substring(1);\n }\n let name = value;\n // Preparing name for embedded property\n if (isEmbeddedField(name)) {\n name = getEmbeddedFieldName(name, classID);\n }\n if (isPageListProperty(name) && !acc[2]) {\n acc[2] = true;\n }\n acc[0][value] = name;\n acc[1][name] = value;\n\n return acc;\n },\n [{}, {}, false]\n );\n setPropertyMaps(maps[0], maps[1]);\n return maps[2];\n}\n\n/**\n * [getConfigEmbeddedFieldsMeta]\n * Description - Get the metadata for configured embedded fields\n * @ignore\n * @param {Set} configFields Set of config fields\n * @param {string} classID clasID of datapage\n * @returns {Array} Metadata of configured embedded fields\n */\nexport function getConfigEmbeddedFieldsMeta(configFields, classID) {\n const configEmbeddedFieldsMeta: any[] = [];\n configFields.forEach(field => {\n let value = field;\n if (isEmbeddedField(value)) {\n // conversion Page.PageList[].property => Page.PageList.property\n if (value.includes('[')) {\n value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);\n }\n const meta = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);\n meta.fieldID = field;\n configEmbeddedFieldsMeta.push(meta);\n }\n });\n return configEmbeddedFieldsMeta;\n}\n\n/**\n * [mergeConfigEmbeddedFieldsMeta]\n * Description - Get the metadata for configured embedded fields\n * @ignore\n * @param {Array} configEmbeddedFieldsMeta config fields metadata.\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields\n */\nexport function mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields) {\n const mergedMetaFields = [...metaFields];\n configEmbeddedFieldsMeta.forEach(configFieldMeta => {\n const fieldMeta = metaFields.find(metaField => metaField.fieldID === configFieldMeta.fieldID);\n if (!fieldMeta) mergedMetaFields.push(configFieldMeta);\n });\n return mergedMetaFields;\n}\n\nconst oldToNewFieldTypeMapping = {\n 'Date Time': 'Date & time',\n Date: 'Date only'\n};\n\n/**\n * [updateFieldType]\n * Description - Updates the field type if its changed in the new implementation. Such mapping is maintained in oldToNewFieldTypeMapping.\n * @ignore\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.\n */\nfunction updateFieldType(metaFields) {\n metaFields.forEach(metaField => {\n if (metaField.type) metaField.type = oldToNewFieldTypeMapping[metaField.type] || metaField.type;\n });\n}\n\nfunction getPresetMetaAttribute(attribute) {\n const {\n type,\n config: { label, value }\n } = attribute;\n return {\n type,\n name: value.startsWith('@') ? value.substring(4) : value,\n label: label.startsWith('@') ? label.substring(3) : label\n };\n}\n\n/**\n * [generateViewMetaData]\n * Description - Returns a list of metaobjects of the fields provided.\n * @ignore\n * @param {Array} rawFields List of fields to update meta for\n * @param {string} classID Class ID from the response\n * @returns {Array} List of fields with updated meta objects.\n */\nfunction generateViewMetaData(rawFields, classID, showField) {\n return rawFields.map(item => getDefaultViewMeta(item, classID, showField));\n}\n\n/**\n * [getConfigFields]\n * Description - Returns list of config fields with primary fields meta updated.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {Array} primaryFields List of Primary Fields\n * @param {Array} metaFields Metadata of all fields\n * @param {string} classID Class ID from the response\n * @returns {Array} List of all fields with their meta updated.\n */\nfunction getConfigFields(configFields, primaryFields, metaFields, classID) {\n const presetConfigFields = configFields;\n const primaryFieldsViewIndex = presetConfigFields.findIndex(field => field.config.value === 'pyPrimaryFields');\n if (!primaryFields || !primaryFields.length) {\n if (primaryFieldsViewIndex < 0) return presetConfigFields;\n\n presetConfigFields.splice(primaryFieldsViewIndex, 1);\n\n return presetConfigFields;\n }\n\n if (primaryFieldsViewIndex > -1) {\n // list of uncommon fields - non overlap of primary fields grouped view and independent entity columns of primary type\n const uncommonFieldsList = primaryFields.filter(\n primaryField => !presetConfigFields.some(presetConfigField => presetConfigField.config.value.split('.')[1] === primaryField)\n );\n const uncommonFieldsRawMeta: any[] = [];\n uncommonFieldsList.forEach(uncommonField => {\n const uncommonFieldMeta = metaFields.find(metaField => metaField.fieldID === uncommonField);\n if (uncommonFieldMeta) uncommonFieldsRawMeta.push(uncommonFieldMeta);\n });\n const uncommonFieldsConfigMeta = generateViewMetaData(uncommonFieldsRawMeta, classID, true);\n\n presetConfigFields.splice(primaryFieldsViewIndex, 1, ...uncommonFieldsConfigMeta);\n }\n return presetConfigFields;\n}\n\n/**\n * [getTableConfigFromPresetMeta]\n * Description - Get the table config from the presets meta.\n * @ignore\n * @param {object} presetMeta Presets meta\n * @param {boolean} isMetaWithPresets true if meta has presets else false\n * @param {Function} getPConnect Callback to get the PConnect object\n * @param {string} classID Class ID from the response\n * @param {Array} primaryFields List of Primary Fields\n * @param {Array} metaFields List of all metafields\n * @returns {object} Table config object\n */\nexport function getTableConfigFromPresetMeta(presetMeta, isMetaWithPresets, pConn$, classID, primaryFields, metaFields) {\n let presetId;\n let presetName;\n let cardHeader;\n let secondaryText;\n let timelineDate;\n let timelineTitle;\n let timelineStatus;\n let timelineIcon;\n let { filterExpression } = pConn$.getRawMetadata().config;\n let fieldsMeta;\n let configFields;\n if (isMetaWithPresets) {\n presetId = presetMeta.id;\n presetName = presetMeta.label;\n cardHeader = presetMeta.cardHeader && getPresetMetaAttribute(presetMeta.cardHeader);\n secondaryText = presetMeta.secondaryText && getPresetMetaAttribute(presetMeta.secondaryText);\n timelineDate = presetMeta.timelineDate && getPresetMetaAttribute(presetMeta.timelineDate);\n timelineTitle = presetMeta.timelineTitle && getPresetMetaAttribute(presetMeta.timelineTitle);\n timelineStatus = presetMeta.timelineStatus && getPresetMetaAttribute(presetMeta.timelineStatus);\n timelineIcon = presetMeta.timelineIcon && getPresetMetaAttribute(presetMeta.timelineIcon);\n filterExpression = presetMeta.config.filterExpression;\n [fieldsMeta] = presetMeta.children;\n if (\n presetMeta.timelineTitle &&\n !fieldsMeta.children.find(fieldMeta => {\n return fieldMeta?.config?.value === presetMeta.timelineTitle?.config?.value;\n })\n ) {\n const { type, config } = presetMeta.timelineTitle;\n fieldsMeta.children.push({ type, config: { ...config, show: false } });\n }\n if (\n presetMeta.timelineDate &&\n !fieldsMeta.children.find(fieldMeta => {\n return fieldMeta?.config?.value === presetMeta.timelineDate?.config?.value;\n })\n ) {\n const { type, config } = presetMeta.timelineDate;\n fieldsMeta.children.push({ type, config: { ...config, show: false } });\n }\n configFields = getConfigFields(fieldsMeta.children, primaryFields, metaFields, classID);\n } else {\n fieldsMeta = presetMeta.props;\n configFields = getConfigFields(\n fieldsMeta\n .getPConnect()\n .getChildren()\n ?.map(child => {\n return child.getPConnect().getRawMetadata();\n }),\n primaryFields,\n metaFields,\n classID\n );\n }\n return {\n presetId,\n presetName,\n cardHeader,\n secondaryText,\n timelineDate,\n timelineTitle,\n timelineStatus,\n timelineIcon,\n filterExpression,\n fieldsMeta,\n configFields\n };\n}\n\n/**\n * [getReportColumns]\n * Description - Returns a set of columns from the report response.\n * @ignore\n * @param {object} response -\n * @returns {Set} Set of columns from the report response\n */\nfunction getReportColumns(response) {\n const {\n data: { data: reportColumns }\n } = response;\n const reportColumnsSet = new Set();\n reportColumns?.forEach(item => {\n let val = item.pyFieldName;\n // Remove '.' from index 0 only, if '.' is present\n if (val[0] === '.') {\n val = val.substring(1);\n }\n reportColumnsSet.add(val);\n });\n return reportColumnsSet;\n}\n\n/**\n * [getConfigFieldValue]\n * Descritpion - Returns a valid value for a configuration field. Remove any annotations and also \".\"\n * @ignore\n * @param {object} config\n * config.value - Raw value\n * @returns {string} value - Value with out any annotations or \".\"\n */\nfunction getConfigFieldValue(config) {\n let { value } = config;\n if (value.startsWith('@')) {\n value = value.substring(value.indexOf(' ') + 1);\n if (value[0] === '.') value = value.substring(1);\n }\n return value;\n}\n\n/**\n * [prepareConfigFields]\n * Description - Prepares a set of configuration fields and pushes each config type to a set using the callback parameter.\n * @ignore\n * @param {object} configFields List of Authored fields\n * @param {Function} pushToComponentsList Callback to push the field type to a set.\n * @returns {Set} configFieldSet\n */\nfunction prepareConfigFields(configFields, pushToComponentsList) {\n const configFieldSet = new Set();\n configFields.forEach(item => {\n pushToComponentsList(item.type);\n const val = getConfigFieldValue(item.config);\n configFieldSet.add(val);\n });\n return configFieldSet;\n}\n\n/**\n * [findAuthoredField]\n * Description - Finds an authored field from yhe list of config fields.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {string} fieldID Filter\n * @returns {object} config with its field value equal to fieldID, which means an authored field\n */\nfunction findAuthoredField(configFields, fieldID) {\n return configFields.find(configField => {\n const val = getConfigFieldValue(configField.config);\n return val === fieldID;\n });\n}\n\n/**\n * [findAndUpdateAuthoredFieldConfig]\n * Description - Find the authored field, and update its config.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {object} item Field item to copy displayAs and category information\n * @param {string} classId classID from the response\n */\nfunction findAndUpdateAuthoredFieldConfig(configFields, item, classId) {\n const authoredField = findAuthoredField(configFields, item.fieldID);\n if (authoredField?.config) {\n if (item.displayAs) {\n authoredField.config.displayAs = item.displayAs;\n }\n authoredField.config.classID = item.classID ?? classId;\n\n if (authoredField.type === USER_REFERENCE) {\n authoredField.config.associationID = item.associationID || item.fieldID;\n }\n authoredField.config.category = item.category;\n // FieldType identifies whether the field is configured as pickList\n authoredField.config.fieldType = item.fieldType;\n // type defined on the property rule,\n // used for the picklist field to assign the appropriate type\n authoredField.config.propertyType = item.dataType || item.type;\n }\n}\n\n/**\n * [isAnExtraField]\n * Description - Returns true if the field is an extra field. Extra field is the one which is not authored but part of the report.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {Set} configFieldSet Set if Authored filed values\n * @param {Set} reportColumnsSet Set of columns from the report\n * @param {object} item Config field item\n * @param {string} classId Class ID from the response\n * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {boolean} true If the field is an extra field else false.\n */\nfunction isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classId, showDynamicFields) {\n // Is the field already present in authoring metadata?\n // Mutates config fields to copy displayAs and category information\n if (configFieldSet.has(item.fieldID)) {\n findAndUpdateAuthoredFieldConfig(configFields, item, classId);\n return false;\n }\n\n // If field is not authored and not part of report columns then discard it\n return showDynamicFields || !!reportColumnsSet.has(item.fieldID);\n}\n\n/**\n * [prepareExtraFields]\n * Description - Returns a list of extra fields with their meta updated.\n * @ignore\n * @param {Array} metaFields List of fields\n * @param {Array} configFields List of Authored fields\n * @param {Set} configFieldSet Set if Authored filed values\n * @param {Set} reportColumnsSet Set of columns from the report\n * @param {string} classID Class ID from the response\n * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {Array} List of extra fields with their meta updated.\n */\nfunction prepareExtraFields(metaFields, configFields, configFieldSet, reportColumnsSet, classID, showDynamicFields) {\n // Filter all the extra fields\n const extraFileds = metaFields.filter(item => {\n return isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classID, showDynamicFields);\n });\n return generateViewMetaData(extraFileds, classID, false);\n // Update the meta object of each of the extra fields.\n}\n\nconst AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];\n\nfunction populateRenderingOptions(name, config, field) {\n const shouldDisplayAsSemanticLink = 'displayAsLink' in field.config && field.config.displayAsLink;\n if (shouldDisplayAsSemanticLink) {\n config.customObject.isAssignmentLink = AssignDashObjects.includes(field.config.classID);\n if (field.config.value.startsWith('@CA')) {\n config.customObject.isAssociation = true;\n }\n config.cellRenderer = formatConstants.WorkLink;\n } else if (name === 'pyStatusWork' || name === 'pyAssignmentStatus') {\n config.cellRenderer = formatConstants.WorkStatus;\n } else if (name === 'pxUrgencyWork') {\n config.cellRenderer = formatConstants.Integer;\n }\n}\nexport function initializeColumns(fields: any[] = [], getMappedProperty: any = null) {\n return fields.map((field, originalColIndex) => {\n let name = field.config.value;\n\n if (name.startsWith('@')) {\n name = name.substring(name.indexOf(' ') + 1);\n if (name[0] === '.') name = name.substring(1);\n }\n name = getMappedProperty?.(name) ?? name;\n\n let label = field.config.label || field.config.caption;\n const { show = true, displayAs } = field.config;\n if (label.startsWith('@')) {\n label = label.substring(3);\n }\n\n const config = {\n name,\n label,\n show,\n classID: field.config.classID,\n id: field.id || name || originalColIndex,\n displayAs,\n associationID: field.config.associationID,\n ...(field.config.classID && { category: field.config.category }),\n customObject: {},\n fieldType: field.config.fieldType,\n meta: {\n ...field\n }\n };\n\n populateRenderingOptions(name, config, field);\n\n return config;\n });\n}\n\nexport const getItemKey = fields => {\n let itemKey;\n if (fields.findIndex(field => field.id === 'pyGUID') > -1) {\n itemKey = 'pyGUID';\n } else {\n itemKey = 'pzInsKey';\n }\n return itemKey;\n};\n\nexport function preparePatchQueryFields(fields, isDataObject = false, classID = '') {\n const queryFields: any[] = [];\n fields.forEach(field => {\n const patchFields: any[] = [];\n if (field.cellRenderer === 'WorkLink') {\n if (field.customObject && field.customObject.isAssignmentLink) {\n const associationName = field.name.includes(':') ? `${field.name.split(':')[0]}:` : '';\n patchFields.push(`${associationName}pzInsKey`);\n patchFields.push(`${associationName}pxRefObjectClass`);\n } else if (field.customObject && field.customObject.isAssociation) {\n const associationCategory = field.name.split(':')[0];\n patchFields.push(`${associationCategory}:pyID`);\n patchFields.push(`${associationCategory}:pzInsKey`);\n patchFields.push(`${associationCategory}:pxObjClass`);\n } else if (isDataObject) {\n const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? patchFields.push(item.linkedField) : patchFields.push(item.keyName)));\n } else {\n patchFields.push('pyID');\n patchFields.push('pzInsKey');\n patchFields.push('pxObjClass');\n }\n }\n patchFields.forEach(k => {\n if (!queryFields.find(q => q === k)) {\n queryFields.push(k);\n }\n });\n });\n\n return queryFields;\n}\n\n/**\n * Update the renderer type for the properties of type Page.\n */\nexport function updatePageFieldsConfig(configFields, parentClassID) {\n return configFields.forEach(item => {\n const {\n type,\n config: { value }\n } = item;\n const propertyName = PCore.getAnnotationUtils().getPropertyName(value);\n if (isEmbeddedField(value) && !isPageListInPath(propertyName, parentClassID)) {\n item.config.componentType = type;\n item.type = 'PagePropertyRenderer';\n }\n });\n}\n\nexport const readContextResponse = async (context, params) => {\n const { pConn$, apiContext, children, showDynamicFields, referenceList, isDataObject } = params;\n // let { listContext } = params;\n const { promisesResponseArray, apiContext: otherContext } = context;\n // eslint-disable-next-line sonarjs/no-unused-collection\n const listOfComponents: any[] = [];\n const {\n data: { fields: metaFields, classID, isQueryable }\n } = promisesResponseArray[0];\n let {\n data: { primaryFields }\n } = promisesResponseArray[0];\n // When list is configured with Include all class fields configuration, provide support for Primary fields column\n if (showDynamicFields) {\n const sourceMetadata = PCore.getMetadataUtils().getDataPageMetadata(referenceList);\n if (sourceMetadata?.primaryFields) {\n primaryFields = sourceMetadata.primaryFields;\n }\n // updating metaData fieldID to normal property if it has fieldID starts with !P! or !PL!\n updateMetaEmbeddedFieldID(metaFields);\n }\n updateFieldType(metaFields);\n\n if (isDataObject) {\n const compositeKeys: any[] = [];\n const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? compositeKeys.push(item.linkedField) : compositeKeys.push(item.keyName)));\n if (compositeKeys.length) {\n otherContext.setCompositeKeys(compositeKeys);\n }\n otherContext.fetchRowActionDetails = null;\n }\n\n const presetArray = [];\n const rawMetadata = pConn$.getRawMetadata().config;\n const rawPresets = rawMetadata.presets;\n const isMetaWithPresets = rawPresets && rawPresets.length !== 0;\n const childrenIterator = isMetaWithPresets ? rawPresets : children;\n const resolvedPresets = pConn$.getConfigProps().presets;\n let fields;\n let tableConfig;\n childrenIterator?.forEach((presetMeta, index) => {\n const { configFields } = getTableConfigFromPresetMeta(\n { ...presetMeta, label: resolvedPresets[index].label },\n isMetaWithPresets,\n pConn$,\n classID,\n primaryFields,\n metaFields\n );\n const pushToComponentsList = fieldType => {\n listOfComponents.push(fieldType);\n };\n // read report columns response - in case of nonqueryable ignore the response and rely only on the fields configured at authoing time in presets\n const reportColumnsSet = isQueryable ? getReportColumns(promisesResponseArray[1]) : new Set();\n\n const configFieldSet = prepareConfigFields(configFields, pushToComponentsList);\n\n // FIXME #EmbeddedPropertyPatch\n // TODO: Remove this merge logic when the metadata response includes all optimized embedded page and pagelists\n // merging configured embedded properties with metadata so that while preparing extra fields, config fields can get other properties from meta(eg: category, displayAsLink)\n // get configured embedded properties metadata and get new mergedMetaFields\n const configEmbeddedFieldsMeta = getConfigEmbeddedFieldsMeta(configFieldSet, classID);\n const mergedMetaFields = mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields);\n\n const extraFields = prepareExtraFields(\n mergedMetaFields, // passing new merged meta fields which has meta of configured embedded fields of current preset\n configFields,\n configFieldSet,\n reportColumnsSet,\n classID,\n showDynamicFields\n );\n\n if (isQueryable) {\n updatePageFieldsConfig(configFields, classID);\n preparePropertyMaps([...configFields, ...extraFields], classID, context);\n }\n\n const { getMappedProperty } = context;\n\n fields = initializeColumns([...configFields, ...extraFields], getMappedProperty);\n const patchQueryFields = preparePatchQueryFields(fields, isDataObject, classID);\n const itemKey = getItemKey(fields);\n tableConfig = { fieldDefs: fields, patchQueryFields, itemKey, isQueryable };\n });\n const meta = tableConfig;\n params.listContext = { meta, presets: presetArray, apiContext: { ...apiContext } };\n return params.listContext;\n};\n","import { getContext, readContextResponse } from './utils';\n\n// Remove this and use \"real\" PCore type once .d.ts is fixed (currently shows 1 error)\ndeclare const PCore: any;\n\nexport function useInit(props) {\n const {\n referenceList,\n pConn$,\n personalizationId,\n parameters,\n compositeKeys,\n isSearchable,\n allowBulkActions,\n ref,\n showDynamicFields,\n isDataObject,\n xRayUid,\n cosmosTableRef\n } = props;\n let { editing, selectionMode } = props;\n\n const runtimeParams = PCore.getRuntimeParamsAPI().getRuntimeParams();\n\n let selectionCountThreshold;\n\n // promise to fetch metadata\n // @ts-ignore - 3rd parameter \"associationFilter\" should be optional for getDataViewMetadata method\n const metaDataPromise = PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, showDynamicFields);\n\n const promisesArray = [metaDataPromise];\n\n // promise to fetch report configured columns\n const reportColumnsPromise = PCore.getAnalyticsUtils()\n .getFieldsForDataSource(referenceList, false, pConn$.getContextName())\n .catch(() => {\n return Promise.resolve({\n data: { data: [] }\n });\n });\n promisesArray.push(reportColumnsPromise);\n\n const fetchEditDetails = async metadata => {\n const {\n data: { isQueryable }\n } = metadata;\n if (!isDataObject) {\n if (!isQueryable) {\n editing = false; /* Force editing to false if DP is non queryable */\n }\n\n const { MULTI_ON_HOVER, MULTI } = PCore.getConstants().LIST_SELECTION_MODE;\n if (allowBulkActions && isQueryable) {\n /** enable bulk actions only if DP is queryable */\n selectionMode = MULTI_ON_HOVER;\n }\n if ([MULTI_ON_HOVER, MULTI].includes(selectionMode)) {\n selectionCountThreshold = 250; // Results count should not be greater than threshold to display SelectAll checkbox.\n }\n }\n return Promise.resolve();\n };\n\n const editPromise = metaDataPromise.then(metadata => fetchEditDetails(metadata));\n promisesArray.push(editPromise);\n return getContext({\n tableSource: referenceList,\n ListId: personalizationId,\n runtimeParams: parameters ?? runtimeParams,\n promisesArray,\n pConn$,\n compositeKeys,\n isSearchable,\n isCacheable: true,\n xRayUid\n }).then(async context => {\n return readContextResponse(context, {\n ...props,\n editing,\n selectionCountThreshold,\n ref,\n selectionMode,\n xRayUid,\n cosmosTableRef\n });\n });\n}\n","/* eslint-disable max-classes-per-file */\nimport { Component, OnInit, Input, ViewChild, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { DragDropModule, CdkDragDrop, moveItemInArray, CdkDropList, CdkDrag } from '@angular/cdk/drag-drop';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getCurrencyOptions } from '../../../_helpers/currency-utils';\nimport { getLocale, getSeconds } from '../../../_helpers/common';\nimport { formatters } from '../../../_helpers/formatters/format-utils';\n\nimport { useInit } from './listViewHelpers';\n\ndeclare const window: any;\n\nconst SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };\n\ninterface ListViewProps {\n // If any, enter additional props that only exist on this component\n globalSearch?: boolean;\n referenceList?: any;\n rowClickAction?: any;\n selectionMode?: string;\n referenceType?: string;\n compositeKeys?: any;\n showDynamicFields?: boolean;\n presets?: any;\n reorderFields: string | boolean;\n grouping: string | boolean;\n}\n\nexport class Group {\n level = 0;\n parent: Group;\n expanded = true;\n totalCounts = 0;\n get visible(): boolean {\n return !this.parent || (this.parent.visible && this.parent.expanded);\n }\n}\n\n@Component({\n selector: 'app-list-view',\n templateUrl: './list-view.component.html',\n styleUrls: ['./list-view.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n MatTableModule,\n MatSortModule,\n DragDropModule,\n CdkDropList,\n CdkDrag,\n MatButtonModule,\n MatMenuModule,\n MatIconModule,\n MatRadioModule,\n MatCheckboxModule,\n MatPaginatorModule,\n MatSelectModule,\n MatOptionModule,\n MatDatepickerModule,\n forwardRef(() => ComponentMapperComponent)\n ]\n})\nexport class ListViewComponent implements OnInit, OnDestroy {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n @Input() pConn$: typeof PConnect;\n @Input() bInForm$ = true;\n @Input() payload;\n\n repeatList$: MatTableDataSource<any>;\n fields$: any[];\n\n displayedColumns$ = Array<any>();\n groupByColumns$: string[] = [];\n\n configProps$: ListViewProps;\n\n updatedRefList: any;\n\n repeatListData: any[] = [];\n\n searchIcon$: string;\n\n bShowSearch$ = false;\n bColumnReorder$ = false;\n bGrouping$ = false;\n\n perfFilter: string;\n searchFilter: string;\n\n menuSvgIcon$: string;\n arrowSvgIcon$ = '';\n arrowDownSvgIcon$: string;\n arrowUpSvgIcon$: string;\n\n filterSvgIcon$: string;\n filterOnSvgIcon$: string;\n groupBySvgIcon$: string;\n\n compareType: string;\n compareRef: string;\n arrowDirection = 'down';\n\n filterByColumns: any[] = [];\n bShowFilterPopover$ = false;\n bContains$ = true;\n bDateTime$ = false;\n\n filterContainsLabel$ = '';\n filterContainsType$ = 'contains';\n filterContainsValue$: any;\n\n bIsDate$ = false;\n bIsDateTime$ = false;\n bIsTime$ = false;\n\n currentFilterRefData: any;\n currentFilterImageEl: any;\n\n arFilterMainButtons$: any[] = [];\n arFilterSecondaryButtons$: any[] = [];\n selectionMode?: string;\n singleSelectionMode: boolean;\n multiSelectionMode: boolean;\n rowID: any;\n response: any;\n compositeKeys: any;\n showDynamicFields: any;\n filters: any = {};\n selectParam: any[] = [];\n filterPayload: any;\n ref: any = {};\n cosmosTableRef: any;\n listContext: any = {};\n query: any = null;\n paging: any;\n fieldDefs: any;\n xRayApis = PCore.getDebugger().getXRayRuntime();\n xRayUid = this.xRayApis.startXRay();\n\n constructor(\n private psService: ProgressSpinnerService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n this.configProps$ = this.pConn$.getConfigProps() as ListViewProps;\n /** By default, pyGUID is used for Data classes and pyID is for Work classes as row-id/key */\n const defRowID = this.configProps$?.referenceType === 'Case' ? 'pyID' : 'pyGUID';\n /** If compositeKeys is defined, use dynamic value, else fallback to pyID or pyGUID. */\n this.compositeKeys = this.configProps$?.compositeKeys;\n this.rowID = this.compositeKeys && this.compositeKeys?.length === 1 ? this.compositeKeys[0] : defRowID;\n this.bShowSearch$ = this.utils.getBooleanValue(this.configProps$.globalSearch ? this.configProps$.globalSearch : this.payload.globalSearch);\n this.bColumnReorder$ = this.utils.getBooleanValue(this.configProps$.reorderFields);\n this.bGrouping$ = this.utils.getBooleanValue(this.configProps$.grouping);\n this.showDynamicFields = this.configProps$?.showDynamicFields;\n\n this.menuSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n this.arrowDownSvgIcon$ = this.utils.getImageSrc('arrow-down', this.utils.getSDKStaticContentUrl());\n this.arrowUpSvgIcon$ = this.utils.getImageSrc('arrow-up', this.utils.getSDKStaticContentUrl());\n\n this.filterSvgIcon$ = this.utils.getImageSrc('filter', this.utils.getSDKStaticContentUrl());\n this.filterOnSvgIcon$ = this.utils.getImageSrc('filter-on', this.utils.getSDKStaticContentUrl());\n this.groupBySvgIcon$ = this.utils.getImageSrc('row', this.utils.getSDKStaticContentUrl());\n\n this.selectionMode = this.configProps$.selectionMode;\n\n this.arFilterMainButtons$.push({ actionID: 'submit', jsAction: 'submit', name: 'Submit' });\n this.arFilterSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: 'Cancel' });\n\n this.searchIcon$ = this.utils.getImageSrc('search', this.utils.getSDKStaticContentUrl());\n setTimeout(() => {\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE,\n data => {\n this.processFilterChange(data);\n },\n `dashboard-component-${'id'}`,\n false,\n this.pConn$.getContextName()\n );\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL,\n () => {\n this.filters = {};\n this.processFilterClear();\n },\n `dashboard-component-${'id'}`,\n false,\n this.pConn$.getContextName()\n );\n }, 0);\n if (this.configProps$) {\n if (!this.payload) {\n this.payload = { referenceList: this.configProps$.referenceList };\n }\n useInit({\n pConn$: this.pConn$,\n bInForm$: this.bInForm$,\n ...this.payload,\n listContext: this.listContext,\n ref: this.ref,\n showDynamicFields: this.showDynamicFields,\n xRayUid: this.xRayUid,\n cosmosTableRef: this.cosmosTableRef,\n selectionMode: this.selectionMode\n }).then(response => {\n this.listContext = response;\n this.getListData();\n });\n }\n }\n\n getFieldFromFilter(filter, dateRange = false) {\n let fieldValue;\n if (dateRange) {\n fieldValue = filter?.AND[0]?.condition.lhs.field;\n } else {\n fieldValue = filter?.condition.lhs.field;\n }\n return fieldValue;\n }\n\n // Will be triggered when EVENT_DASHBOARD_FILTER_CHANGE fires\n processFilterChange(data) {\n const { filterId, filterExpression } = data;\n let dashboardFilterPayload: any = {\n query: {\n filter: {},\n select: []\n }\n };\n\n this.filters[filterId] = filterExpression;\n let isDateRange = !!data.filterExpression?.AND;\n // Will be AND by default but making it dynamic in case we support dynamic relational ops in future\n const relationalOp = 'AND';\n\n let field = this.getFieldFromFilter(filterExpression, isDateRange);\n const selectParam: any[] = [];\n // Constructing the select parameters list (will be sent in dashboardFilterPayload)\n this.displayedColumns$?.forEach(col => {\n selectParam.push({\n field: col\n });\n });\n\n // Checking if the triggered filter is applicable for this list\n if (data.filterExpression !== null && !(this.displayedColumns$?.length && this.displayedColumns$?.includes(field))) {\n return;\n }\n // This is a flag which will be used to reset dashboardFilterPayload in case we don't find any valid filters\n let validFilter = false;\n\n let index = 1;\n // Iterating over the current filters list to create filter data which will be POSTed\n const filterKeys: any[] = Object.keys(this.filters);\n const filterValues: any[] = Object.values(this.filters);\n for (let filterIndex = 0; filterIndex < filterKeys.length; filterIndex++) {\n const filter = filterValues[filterIndex];\n // If the filter is null then we can skip this iteration\n if (filter === null) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // Checking if the filter is of type- Date Range\n isDateRange = !!filter?.AND;\n field = this.getFieldFromFilter(filter, isDateRange);\n\n if (!(this.displayedColumns$?.length && this.displayedColumns$?.includes(field))) {\n // eslint-disable-next-line no-continue\n continue;\n }\n // If we reach here that implies we've at least one valid filter, hence setting the flag\n validFilter = true;\n /** Below are the 2 cases for- Text & Date-Range filter types where we'll construct filter data which will be sent in the dashboardFilterPayload\n * In Constellation DX Components, through Repeating Structures they might be using several APIs to do it. We're doing it here\n */\n if (isDateRange) {\n dashboardFilterPayload = this.filterBasedOnDateRange(dashboardFilterPayload, filter, relationalOp, selectParam, index);\n } else {\n dashboardFilterPayload.query.filter.filterConditions = {\n ...dashboardFilterPayload.query.filter.filterConditions,\n [`T${index++}`]: { ...filter.condition, ignoreCase: true }\n };\n\n if (dashboardFilterPayload.query.filter.logic) {\n dashboardFilterPayload.query.filter.logic = `${dashboardFilterPayload.query.filter.logic} ${relationalOp} T${index - 1}`;\n } else {\n dashboardFilterPayload.query.filter.logic = `T${index - 1}`;\n }\n\n dashboardFilterPayload.query.select = selectParam;\n }\n }\n\n // Reset the dashboardFilterPayload if we end up with no valid filters for the list\n if (!validFilter) {\n dashboardFilterPayload = undefined;\n }\n this.filterPayload = dashboardFilterPayload;\n this.getListData();\n }\n\n filterBasedOnDateRange(dashboardFilterPayload, filter, relationalOp, selectParam, index) {\n const dateRelationalOp = filter?.AND ? 'AND' : 'OR';\n dashboardFilterPayload.query.filter.filterConditions = {\n ...dashboardFilterPayload.query.filter.filterConditions,\n [`T${index++}`]: { ...filter[relationalOp][0].condition },\n [`T${index++}`]: { ...filter[relationalOp][1].condition }\n };\n if (dashboardFilterPayload.query.filter.logic) {\n dashboardFilterPayload.query.filter.logic = `${dashboardFilterPayload.query.filter.logic} ${relationalOp} (T${index - 2} ${dateRelationalOp} T${\n index - 1\n })`;\n } else {\n dashboardFilterPayload.query.filter.logic = `(T${index - 2} ${relationalOp} T${index - 1})`;\n }\n\n dashboardFilterPayload.query.select = selectParam;\n\n return dashboardFilterPayload;\n }\n\n processFilterClear() {\n this.filterPayload = undefined;\n this.getListData();\n }\n\n getFieldsMetadata(refList) {\n // @ts-ignore - 3rd parameter \"associationFilter\" should be optional for getDataViewMetadata method\n return PCore.getAnalyticsUtils().getDataViewMetadata(refList, this.showDynamicFields);\n }\n\n getListData() {\n // @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'\n const componentConfig = this.pConn$.getComponentConfig();\n if (this.configProps$) {\n this.preparePayload();\n const refList = this.configProps$.referenceList;\n const fieldsMetaDataPromise = this.getFieldsMetadata(refList);\n // returns a promise\n const payload = this.payload || this.filterPayload || {};\n const dataViewParameters = this.payload.parameters;\n\n const workListDataPromise = !this.bInForm$\n ? // @ts-ignore - 3rd parameter \"context\" should be optional in getData method\n PCore.getDataApiUtils().getData(refList, payload)\n : PCore.getDataPageUtils().getDataAsync(\n refList,\n this.pConn$.getContextName(),\n payload.dataViewParameters ? payload.dataViewParameters : dataViewParameters,\n this.paging,\n this.query\n );\n\n this.bShowFilterPopover$ = false;\n\n this.psService.sendMessage(true);\n\n Promise.all([fieldsMetaDataPromise, workListDataPromise])\n .then((results: any) => {\n const fieldsMetaData = results[0];\n const workListData = results[1];\n\n this.fields$ = this.configProps$.presets[0].children[0].children;\n // this is an unresovled version of this.fields$, need unresolved, so can get the property reference\n const columnFields = componentConfig.presets[0].children[0].children;\n\n const tableDataResults = !this.bInForm$ ? workListData.data.data : workListData.data;\n\n const columns = this.getHeaderCells(columnFields, this.fieldDefs);\n this.fields$ = this.updateFields(this.fields$, fieldsMetaData.data.fields, columns);\n this.displayedColumns$ = columns.map(col => {\n return col.id;\n });\n this.response = tableDataResults;\n this.updatedRefList = this.updateData(tableDataResults, this.fields$);\n if (this.selectionMode === SELECTION_MODE.SINGLE && this.updatedRefList?.length > 0) {\n this.displayedColumns$?.unshift('select');\n this.singleSelectionMode = true;\n } else if (this.selectionMode === SELECTION_MODE.MULTI && this.updatedRefList?.length > 0) {\n this.displayedColumns$?.unshift('select');\n this.multiSelectionMode = true;\n }\n\n this.repeatList$ = new MatTableDataSource(this.updatedRefList);\n this.repeatList$.filterPredicate = this.customFilterPredicate.bind(this);\n\n // keeping an original copy to get back after possible sorts, filters and groupBy\n this.repeatListData = this.repeatList$.data.slice();\n\n this.repeatList$.paginator = this.paginator;\n this.repeatList$.sort = this.sort;\n this.psService.sendMessage(false);\n })\n .catch(() => {\n console.error(\"Couldn't fetch either the fieldsMetaData or workListData\");\n this.psService.sendMessage(false);\n });\n }\n }\n\n preparePayload() {\n const { fieldDefs, itemKey, patchQueryFields } = this.listContext.meta;\n this.fieldDefs = fieldDefs;\n let listFields = fieldDefs ? this.buildSelect(fieldDefs, undefined, patchQueryFields, this.payload?.compositeKeys) : [];\n listFields = this.addItemKeyInSelect(fieldDefs, itemKey, listFields, this.payload?.compositeKeys);\n if (this.payload.query) {\n this.query = this.payload.query;\n } else if (listFields?.length && this.listContext.meta.isQueryable) {\n if (this.filterPayload) {\n this.query = {\n select: listFields,\n filter: this.filterPayload?.query?.filter\n };\n } else {\n this.query = { select: listFields };\n }\n } else if (this.filterPayload) {\n this.query = this.filterPayload?.query;\n }\n }\n // ngOnChanges(changes) {\n // if (changes && changes.payload) {\n // const currentPayloadVal = changes.payload?.currentValue;\n // const previousPayloadVal = changes.payload?.previousValue;\n // if (currentPayloadVal !== previousPayloadVal) {\n // this.getListData();\n // }\n // }\n // }\n\n ngOnDestroy() {\n PCore.getPubSubUtils().unsubscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE,\n `dashboard-component-${'id'}`,\n this.pConn$.getContextName()\n );\n PCore.getPubSubUtils().unsubscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL,\n `dashboard-component-${'id'}`,\n this.pConn$.getContextName()\n );\n }\n\n // ngAfterViewInit() {\n // // paginator has to exist for this to work,\n // // so called after init (paginator drawn)\n // // Calls are now in workListData promise\n // // this.repeatList$.paginator = this.paginator;\n // // this.repeatList$.sort = this.sort;\n // }\n\n drop(event: CdkDragDrop<string[]>) {\n moveItemInArray(this.displayedColumns$, event.previousIndex, event.currentIndex);\n }\n\n updateFields(arFields: any[], arColumns, fields): any[] {\n const arReturn = arFields;\n arReturn.forEach((field, i) => {\n field.config = { ...field.config, ...fields[i], name: fields[i].id };\n });\n return arReturn;\n }\n\n applySearch(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.searchFilter = filterValue.trim().toLowerCase();\n\n if (this.groupByColumns$.length > 0) {\n this.repeatList$.data = this.repeatListData.slice();\n this.repeatList$.filter = this.searchFilter;\n const repeatData = this.repeatList$.sortData(this.repeatList$.filteredData, this.repeatList$.sort as MatSort);\n this.repeatList$.data = this.addGroups(repeatData, this.groupByColumns$);\n\n this.perfFilter = performance.now().toString();\n this.repeatList$.filter = this.perfFilter;\n } else {\n this.repeatList$.filter = this.searchFilter;\n }\n\n if (this.repeatList$.paginator) {\n this.repeatList$.paginator.firstPage();\n }\n }\n\n fieldOnChange(row) {\n const value = row[this.rowID];\n const reqObj = {};\n if (this.compositeKeys?.length > 1) {\n const index = this.response.findIndex(element => element[this.rowID] === value);\n const selectedRow = this.response[index];\n this.compositeKeys.forEach(element => {\n reqObj[element] = selectedRow[element];\n });\n } else {\n reqObj[this.rowID] = value;\n }\n this.pConn$?.getListActions?.()?.setSelectedRows([reqObj]);\n }\n\n onCheckboxClick(row, event) {\n const value = row[this.rowID];\n const checked = event?.checked;\n const reqObj: any = {};\n if (this.compositeKeys?.length > 1) {\n const index = this.response.findIndex(element => element[this.rowID] === value);\n const selectedRow = this.response[index];\n this.compositeKeys.forEach(element => {\n reqObj[element] = selectedRow[element];\n });\n reqObj.$selected = checked;\n } else {\n reqObj[this.rowID] = value;\n reqObj.$selected = checked;\n }\n this.pConn$?.getListActions()?.setSelectedRows([reqObj]);\n }\n\n // rowClick(row) {\n // switch (this.configProps$.rowClickAction) {\n // case 'openAssignment':\n // this.psService.sendMessage(true);\n // this.openAssignment(row);\n // break;\n // }\n // }\n\n _getIconStyle(level): string {\n let sReturn = '';\n let nLevel = parseInt(level, 10);\n nLevel--;\n nLevel *= 15;\n sReturn = `padding-left: ${nLevel}px; vertical-align: middle`;\n\n return sReturn;\n }\n\n _getGroupName(fieldName) {\n for (let fieldIndex = 0; fieldIndex < this.fields$.length; fieldIndex++) {\n const field = this.fields$[fieldIndex];\n if (field.config.name == fieldName) {\n return field.config.label;\n }\n }\n return '';\n }\n\n _showButton(name, row) {\n let bReturn = false;\n const { pxRefObjectClass, pzInsKey, pxRefObjectKey } = row;\n switch (name) {\n case 'pxTaskLabel':\n if (pxRefObjectClass != '' && pzInsKey != '') {\n bReturn = true;\n }\n break;\n case 'pxRefObjectInsName':\n if (pxRefObjectClass != '' && pxRefObjectKey != '') {\n bReturn = true;\n }\n break;\n default:\n break;\n }\n\n return bReturn;\n }\n\n _listViewClick(column, row) {\n const name = column.id;\n if (column.displayAsLink) {\n const { pxObjClass } = row;\n let { pzInsKey } = row;\n if (column.isAssociation) {\n const associationCategory = name.split(':')[0];\n pzInsKey = row[`${associationCategory}:pzInsKey`];\n }\n if (column.isAssignmentLink) {\n this.pConn$.getActionsApi().openAssignment(pzInsKey, pxObjClass, {\n containerName: 'primary',\n channelName: ''\n });\n } else {\n this.pConn$.getActionsApi().openWorkByHandle(pzInsKey, pxObjClass);\n }\n } else {\n switch (name) {\n case 'pxTaskLabel':\n this.openAssignment(row);\n break;\n case 'pxRefObjectInsName':\n this.openWork(row);\n break;\n default:\n break;\n }\n }\n }\n\n compare(a: number | string, b: number | string, isAsc: boolean) {\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n }\n\n _headerSortClick(event, columnData) {\n // images 0 - filter, 1 - arrow, 2 - more\n\n /** Commenting this code for now as it is giving errors not sure if it ever worked */\n // let arrowImage = event.srcElement.getElementsByTagName('img')[1];\n // let arrowAttr = arrowImage.getAttribute('arrow');\n\n // this.clearOutArrows(event, columnData);\n\n // switch (arrowAttr) {\n // case 'up':\n // arrowImage.src = this.arrowDownSvgIcon$;\n // arrowImage.setAttribute('arrow', 'down');\n // break;\n // case 'down':\n // arrowImage.src = '';\n // arrowImage.setAttribute('arrow', 'none');\n // break;\n // default:\n // arrowImage.src = this.arrowUpSvgIcon$;\n // arrowImage.setAttribute('arrow', 'up');\n // break;\n // }\n\n this.compareType = columnData.type;\n this.compareRef = columnData.config.name;\n // this.arrowDirection = arrowImage.getAttribute('arrow');\n this.arrowDirection = this.arrowDirection === 'up' ? 'down' : 'up';\n\n this.filterSortGroupBy();\n }\n\n clearOutArrows(event, columnData) {\n const arImages = event.srcElement.parentElement.getElementsByTagName('img');\n\n for (const theImage of arImages) {\n // let theImage = arImages[i]\n const arrow = theImage.getAttribute('arrow');\n if (arrow) {\n const arrowId = theImage.getAttribute('arrowid');\n if (arrow != 'none' && arrowId != columnData.config.name) {\n theImage.setAttribute('arrow', 'none');\n theImage.src = '';\n }\n }\n }\n }\n\n sortCompare(a, b): number {\n let aValue = a[this.compareRef];\n let bValue = b[this.compareRef];\n\n if (this.compareType == 'Date' || this.compareType == 'DateTime') {\n aValue = getSeconds(aValue);\n bValue = getSeconds(bValue);\n }\n\n if (this.compareRef == 'pxRefObjectInsName') {\n const result = this.compareByColumnPxRefObjectInsName(aValue, bValue);\n if (result !== undefined) {\n return result;\n }\n }\n\n switch (this.arrowDirection) {\n case 'up':\n if (aValue < bValue) {\n return -1;\n }\n if (aValue > bValue) {\n return 1;\n }\n break;\n case 'down':\n if (aValue > bValue) {\n return -1;\n }\n if (aValue < bValue) {\n return 1;\n }\n break;\n default:\n break;\n }\n\n return 0;\n }\n\n compareByColumnPxRefObjectInsName(aValue, bValue) {\n const prefixX = aValue.split('-');\n const prefixY = bValue.split('-');\n switch (this.arrowDirection) {\n case 'up':\n if (prefixX[0] !== prefixY[0]) {\n if (prefixX[0] < prefixY[0]) return -1;\n if (prefixX[0] > prefixY[0]) return 1;\n return 0;\n }\n return prefixX[1] - prefixY[1];\n case 'down':\n if (prefixX[0] !== prefixY[0]) {\n if (prefixX[0] > prefixY[0]) return -1;\n if (prefixX[0] < prefixY[0]) return 1;\n return 0;\n }\n return prefixY[1] - prefixX[1];\n default:\n break;\n }\n\n return undefined;\n }\n\n updateFilterDisplay(type) {\n switch (type) {\n case 'Date':\n this.filterContainsType$ = 'notequal';\n this.bContains$ = false;\n this.bDateTime$ = true;\n this.bIsDate$ = true;\n this.bIsDateTime$ = false;\n this.bIsTime$ = false;\n break;\n case 'DateTime':\n this.filterContainsType$ = 'notequal';\n this.bContains$ = false;\n this.bDateTime$ = true;\n this.bIsDate$ = false;\n this.bIsDateTime$ = true;\n this.bIsTime$ = false;\n break;\n case 'Time':\n this.filterContainsType$ = 'notequal';\n this.bContains$ = false;\n this.bDateTime$ = true;\n this.bIsDate$ = false;\n this.bIsDateTime$ = false;\n this.bIsTime$ = true;\n break;\n default:\n this.filterContainsType$ = 'contains';\n this.bContains$ = true;\n this.bDateTime$ = false;\n this.bIsDate$ = false;\n this.bIsDateTime$ = false;\n this.bIsTime$ = false;\n break;\n }\n }\n\n _filter(event, columnData) {\n // add clickAway listener\n window.addEventListener('mouseup', this._clickAway.bind(this));\n\n this.currentFilterRefData = columnData;\n this.filterContainsLabel$ = columnData.config.label;\n\n setTimeout(() => {\n this.updateFilterDisplay(columnData.type);\n\n this.updateFilterVarsWithCurrent(columnData);\n\n this.bShowFilterPopover$ = true;\n });\n }\n\n _clickAway(event: any) {\n let bInPopUp = false;\n\n // run through list of elements in path, if menu not in th path, then want to\n // hide (toggle) the menu\n const eventPath = event.path;\n for (let pathIndex = 0; pathIndex < eventPath.length; pathIndex++) {\n if (\n eventPath[pathIndex].className == 'psdk-modal-file-top' ||\n eventPath[pathIndex].tagName == 'BUTTON' ||\n eventPath[pathIndex].tagName == 'MAT-OPTION' ||\n eventPath[pathIndex].tagName == 'MAT-INPUT'\n ) {\n bInPopUp = true;\n break;\n }\n }\n if (!bInPopUp) {\n // this.bShowFilterPopover$ = false;\n\n window.removeEventListener('mouseup', this._clickAway.bind(this));\n }\n }\n\n _filterContainsType(event) {\n this.filterContainsType$ = event.value;\n }\n\n _filterContainsValue(event) {\n this.filterContainsValue$ = event.target.value;\n }\n\n _filterContainsDateValue(event, value) {\n this.filterContainsValue$ = value;\n }\n\n _filterContainsDateTimeValue(event) {\n this.filterContainsValue$ = event.target.value;\n }\n\n _filterContainsTimeValue(event) {\n this.filterContainsValue$ = event.target.value;\n }\n\n _onFilterActionButtonClick(event: any) {\n // modal buttons\n switch (event.action) {\n case 'cancel':\n this.currentFilterRefData = [];\n break;\n case 'submit':\n this.updateFilterWithInfo();\n this.filterSortGroupBy();\n break;\n default:\n break;\n }\n\n this.bShowFilterPopover$ = false;\n\n window.removeEventListener('mouseup', this._clickAway.bind(this));\n }\n\n updateFilterWithInfo() {\n let bFound = false;\n for (const filterObj of this.filterByColumns) {\n if (filterObj.ref === this.currentFilterRefData.config.name) {\n filterObj.type = this.currentFilterRefData.type;\n filterObj.containsFilter = this.filterContainsType$;\n filterObj.containsFilterValue = this.filterContainsValue$;\n\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n // add in\n const filterObj: any = {};\n filterObj.ref = this.currentFilterRefData.config.name;\n filterObj.type = this.currentFilterRefData.type;\n filterObj.containsFilter = this.filterContainsType$;\n filterObj.containsFilterValue = this.filterContainsValue$;\n\n this.filterByColumns.push(filterObj);\n }\n\n // iterate through filters and update filterOn icon\n for (const filterObj of this.filterByColumns) {\n const containsFilterValue = filterObj.containsFilterValue;\n const containsFilter = filterObj.containsFilter;\n const filterRef = filterObj.ref;\n const filterIndex = this.displayedColumns$.indexOf(filterRef);\n const arFilterImg = document.getElementsByName('filterOnIcon');\n const filterImg: any = arFilterImg[filterIndex];\n if (containsFilterValue == '' && containsFilter != 'null' && containsFilter != 'notnull') {\n // clear icon\n filterImg.src = '';\n } else {\n // show icon\n filterImg.src = this.filterOnSvgIcon$;\n }\n }\n }\n\n updateFilterVarsWithCurrent(columnData) {\n // find current ref, if exists, move data to variable to display\n\n let bFound = false;\n for (const filterObj of this.filterByColumns) {\n if (filterObj.ref === this.currentFilterRefData.config.name) {\n this.filterContainsType$ = filterObj.containsFilter;\n this.filterContainsValue$ = filterObj.containsFilterValue;\n\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n switch (columnData.type) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n this.filterContainsType$ = 'notequal';\n break;\n default:\n this.filterContainsType$ = 'contains';\n break;\n }\n\n this.filterContainsValue$ = '';\n }\n }\n\n filterData(item: any) {\n let bKeep = true;\n for (const filterObj of this.filterByColumns) {\n if (filterObj.containsFilterValue != '' || filterObj.containsFilter == 'null' || filterObj.containsFilter == 'notnull') {\n let filterValue: any;\n\n switch (filterObj.type) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n bKeep = this.filterDataWithDate(item, filterObj, filterValue);\n break;\n default:\n bKeep = this.filterDataWithCommonTypes(item, filterObj, filterValue);\n break;\n }\n }\n\n // if don't keep stop filtering\n if (!bKeep) {\n break;\n }\n }\n\n return bKeep;\n }\n\n filterDataWithDate(item, filterObj, filterValue) {\n let bKeep;\n let value = item[filterObj.ref] != null ?? item[filterObj.ref] != '' ? getSeconds(item[filterObj.ref]) : null;\n filterValue = filterObj.containsFilterValue != null && filterObj.containsFilterValue != '' ? getSeconds(filterObj.containsFilterValue) : null;\n\n switch (filterObj.containsFilter) {\n case 'notequal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n if (value != null && filterValue != null) {\n // get rid of millisecons\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff >= 0 && diff < 60) {\n bKeep = false;\n }\n }\n break;\n case 'after':\n if (value < filterValue) {\n bKeep = false;\n }\n break;\n case 'before':\n if (value > filterValue) {\n bKeep = false;\n }\n break;\n case 'null':\n if (value != null) {\n bKeep = false;\n }\n break;\n case 'notnull':\n if (value == null) {\n bKeep = false;\n }\n break;\n default:\n break;\n }\n\n return bKeep;\n }\n\n filterDataWithCommonTypes(item, filterObj, filterValue) {\n let bKeep;\n const value = item[filterObj.ref].toLowerCase();\n filterValue = filterObj.containsFilterValue.toLowerCase();\n\n switch (filterObj.containsFilter) {\n case 'contains':\n if (value.indexOf(filterValue) < 0) {\n bKeep = false;\n }\n break;\n case 'equals':\n if (value != filterValue) {\n bKeep = false;\n }\n break;\n case 'startswith':\n if (value.indexOf(filterValue) != 0) {\n bKeep = false;\n }\n break;\n default:\n break;\n }\n\n return bKeep;\n }\n\n filterSortGroupBy() {\n // get original data set\n let theData = this.repeatListData.slice();\n\n // last filter config data is global\n theData = theData.filter(this.filterData.bind(this));\n\n // last sort config data is global\n theData.sort(this.sortCompare.bind(this));\n\n const reGroupData = this.addGroups(theData, this.groupByColumns$);\n\n this.repeatList$.data = [];\n this.repeatList$.data.push(...reGroupData);\n\n if (this.searchFilter && this.searchFilter != '') {\n this.repeatList$.filter = this.searchFilter;\n } else {\n this.perfFilter = performance.now().toString();\n this.repeatList$.filter = this.perfFilter;\n }\n this.repeatList$.filter = '';\n\n if (this.repeatList$.paginator) {\n this.repeatList$.paginator.firstPage();\n }\n }\n\n //\n // Grouping code inspired by this example\n // https://stackblitz.com/edit/angular-material-table-row-grouping\n //\n\n _showUnGroupBy(columnData): boolean {\n for (const val of this.groupByColumns$) {\n if (val == columnData.config.name) {\n return true;\n }\n }\n\n return false;\n }\n\n _groupBy(event, columnData) {\n this.checkGroupByColumn(columnData.config.name, true);\n\n this.filterSortGroupBy();\n }\n\n _unGroupBy(event, columnData) {\n // event.stopPropagation();\n this.checkGroupByColumn(columnData.config.name, false);\n\n this.filterSortGroupBy();\n }\n\n checkGroupByColumn(field, add) {\n let found: number | null = null;\n for (const column of this.groupByColumns$) {\n if (column === field) {\n found = this.groupByColumns$.indexOf(column, 0);\n }\n }\n if (found != null && found >= 0) {\n if (!add) {\n this.groupByColumns$.splice(found, 1);\n }\n } else if (add) {\n this.groupByColumns$.push(field);\n }\n }\n\n addGroups(data: any[], groupByColumns: string[]): any[] {\n const rootGroup = new Group();\n rootGroup.expanded = true;\n return this.getSublevel(data, 0, groupByColumns, rootGroup);\n }\n\n getSublevel(data: any[], level: number, groupByColumns: string[], parent: Group): any[] {\n if (level >= groupByColumns.length) {\n return data;\n }\n const groups = this.uniqueBy(\n data.map(row => {\n const result = new Group();\n result.level = level + 1;\n result.parent = parent;\n for (let i = 0; i <= level; i++) {\n result[groupByColumns[i]] = row[groupByColumns[i]];\n }\n return result;\n }),\n JSON.stringify\n );\n\n const currentColumn = groupByColumns[level];\n let subGroups: any[] = [];\n groups.forEach(group => {\n const rowsInGroup = data.filter(row => group[currentColumn] === row[currentColumn]);\n group.totalCounts = rowsInGroup.length;\n const subGroup = this.getSublevel(rowsInGroup, level + 1, groupByColumns, group);\n subGroup.unshift(group);\n subGroups = subGroups.concat(subGroup);\n });\n return subGroups;\n }\n\n uniqueBy(a, key) {\n const seen = {};\n return a.filter(item => {\n const k = key(item);\n // eslint-disable-next-line no-return-assign, no-prototype-builtins\n return seen.hasOwnProperty(k) ? false : (seen[k] = true);\n });\n }\n\n isGroup(index, item): boolean {\n return item.level;\n }\n\n _groupHeaderClick(row) {\n row.expanded = !row.expanded;\n // this.repeatList$.filter = \"\";\n this.perfFilter = performance.now().toString();\n this.repeatList$.filter = this.perfFilter;\n }\n\n // below is for grid row grouping\n customFilterPredicate(data: any | Group, filter: string): boolean {\n return data instanceof Group ? data.visible : this.getDataRowVisibleWithFilter(data, filter);\n }\n\n getDataRowVisible(data: any): boolean {\n const groupRows = this.repeatList$.data.filter(row => {\n if (!(row instanceof Group)) {\n return false;\n }\n let match = true;\n this.groupByColumns$.forEach(column => {\n if (!row[column] || !data[column] || row[column] !== data[column]) {\n match = false;\n }\n });\n return match;\n });\n\n if (groupRows.length === 0) {\n return true;\n }\n const parent = groupRows[0] as Group;\n return parent.visible && parent.expanded;\n }\n\n getDataRowVisibleWithFilter(data, filter) {\n // fist check if row is visible with grouping\n let bVisible = this.getDataRowVisible(data);\n\n if (bVisible && filter && filter != '' && filter != this.perfFilter) {\n // now check if row is filtered.\n\n // assume not there unless we find it\n bVisible = false;\n for (const col of this.displayedColumns$) {\n // filter is lower case\n if (data[col] && data[col].toString().toLowerCase().indexOf(filter) >= 0) {\n bVisible = true;\n break;\n }\n }\n }\n\n return bVisible;\n }\n\n updateData(listData: any[], fieldData: any[]): any[] {\n const returnList: any[] = new Array<any>();\n listData.forEach(row => {\n // copy\n const rowData = JSON.parse(JSON.stringify(row));\n\n for (let fieldIndex = 0; fieldIndex < fieldData.length; fieldIndex++) {\n const config = fieldData[fieldIndex].config;\n let fieldName;\n let formattedDate;\n let myFormat;\n let theCurrencyOptions;\n\n switch (fieldData[fieldIndex].type) {\n case 'Date':\n fieldName = config.name;\n myFormat = config.formatter;\n if (!myFormat) {\n myFormat = 'Date';\n }\n formattedDate = this.utils.generateDate(rowData[fieldName], myFormat);\n\n rowData[fieldName] = formattedDate;\n break;\n case 'DateTime':\n fieldName = config.name;\n myFormat = config.formatter;\n if (!myFormat) {\n myFormat = 'DateTime-Long';\n }\n formattedDate = this.utils.generateDateTime(rowData[fieldName], myFormat);\n\n rowData[fieldName] = formattedDate;\n break;\n case 'Currency':\n fieldName = config.name;\n theCurrencyOptions = getCurrencyOptions(PCore.getEnvironmentInfo().getLocale() as string);\n // eslint-disable-next-line no-case-declarations\n const defaultOptions = {\n locale: getLocale(),\n position: 'before',\n decPlaces: 2\n };\n // eslint-disable-next-line no-case-declarations\n const params = { ...defaultOptions, ...theCurrencyOptions };\n rowData[fieldName] = formatters.Currency(rowData[fieldName], params);\n // val = format(value, column.type, theCurrencyOptions);\n break;\n default:\n break;\n }\n }\n returnList.push(rowData);\n });\n\n return returnList;\n }\n\n openAssignment(row) {\n const { pxRefObjectClass, pzInsKey } = row;\n const sTarget = this.pConn$.getContainerName();\n const options: any = { containerName: sTarget };\n this.pConn$.getActionsApi().openAssignment(pzInsKey, pxRefObjectClass, options);\n }\n\n openWork(row) {\n const pxRefObjectClass = row.pxRefObjectClass || row.pxObjClass;\n const { pxRefObjectKey } = row;\n if (pxRefObjectClass !== '' && pxRefObjectKey !== '') {\n this.pConn$.getActionsApi().openWorkByHandle(pxRefObjectKey, pxRefObjectClass);\n }\n }\n\n initializeData(data) {\n data.forEach((item, idx) => {\n item.__original_index = idx;\n item.__level = 1;\n });\n\n return data;\n }\n\n getType(field) {\n const { config = {}, type } = field;\n const { formatType } = config;\n if (formatType === 'datetime' || formatType === 'date') {\n // currently cosmos has only support for date ... it also need to support dateTime\n return 'date';\n }\n\n return type.toLowerCase();\n }\n\n initializeColumns(fields = []) {\n return fields.map((field: any, originalColIndex) => ({\n ...field,\n type: this.getType(field),\n name: field.config.value.substring(4),\n label: field.config.label.substring(3),\n id: originalColIndex,\n groupingEnabled: true,\n grouped: false,\n minWidth: 50,\n cellRenderer: this.getType(field) === 'text' ? null : field.type,\n filter: true\n }));\n }\n\n getHeaderCells(colFields, fields) {\n const AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];\n return colFields.map((field: any, index) => {\n let theField = field.config.value.substring(field.config.value.indexOf(' ') + 1);\n if (theField.indexOf('.') === 0) {\n theField = theField.substring(1);\n }\n const colIndex = fields.findIndex(ele => ele.name === theField);\n const displayAsLink = field.config.displayAsLink;\n const headerRow: any = {};\n headerRow.id = fields[index].id;\n headerRow.type = field.type;\n headerRow.displayAsLink = displayAsLink;\n headerRow.numeric = field.type === 'Decimal' || field.type === 'Integer' || field.type === 'Percentage' || field.type === 'Currency' || false;\n headerRow.disablePadding = false;\n headerRow.label = fields[index].label;\n if (colIndex > -1) {\n headerRow.classID = fields[colIndex].classID;\n }\n if (displayAsLink) {\n headerRow.isAssignmentLink = AssignDashObjects.includes(headerRow.classID);\n if (field.config.value?.startsWith('@CA')) {\n headerRow.isAssociation = true;\n }\n }\n return headerRow;\n });\n }\n\n buildSelect(fieldDefs, colId, patchQueryFields = [], compositeKeys = []) {\n const listFields: any = [];\n if (colId) {\n const field = this.getField(fieldDefs, colId);\n listFields.push({\n field: field.name\n });\n } else {\n // NOTE: If we ever decide to not set up all the `fieldDefs` on select, ensure that the fields\n // corresponding to `state.groups` are set up. Needed in Client-mode grouping/pagination.\n fieldDefs.forEach(field => {\n if (!listFields.find(f => f.field === field.name)) {\n listFields.push({\n field: field.name\n });\n }\n });\n patchQueryFields.forEach(k => {\n if (!listFields.find(f => f.field === k)) {\n listFields.push({\n field: k\n });\n }\n });\n }\n\n compositeKeys.forEach(k => {\n if (!listFields.find(f => f.field === k)) {\n listFields.push({\n field: k\n });\n }\n });\n return listFields;\n }\n\n getField(fieldDefs, columnId) {\n const fieldsMap = this.getFieldsMap(fieldDefs);\n return fieldsMap.get(columnId);\n }\n\n getFieldsMap(fieldDefs) {\n const fieldsMap = new Map();\n fieldDefs.forEach(element => {\n fieldsMap.set(element.id, element);\n });\n return fieldsMap;\n }\n\n addItemKeyInSelect(fieldDefs, itemKey, select, compositeKeys) {\n const elementFound = this.getField(fieldDefs, itemKey);\n\n if (\n itemKey &&\n !elementFound &&\n Array.isArray(select) &&\n !(compositeKeys !== null && compositeKeys?.length) &&\n !select.find(sel => sel.field === itemKey)\n ) {\n return [\n ...select,\n {\n field: itemKey\n }\n ];\n }\n\n return select;\n }\n}\n","<div class=\"psdk-list-header\">\n <div>\n <mat-form-field class=\"psdk-search\" *ngIf=\"bShowSearch$\">\n <mat-label><img class=\"psdk-icon-search\" src=\"{{ searchIcon$ }}\" /> <span class=\"psdk-search-label\">Search</span> </mat-label>\n <input matInput id=\"search\" (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <div *ngIf=\"!bInForm$\" class=\"psdk-outer-div-in-form\">\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"bColumnReorder$\">\n <div>\n <table\n mat-table\n id=\"list-view\"\n [dataSource]=\"repeatList$\"\n matSort\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\" cdkDrag>\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"!bColumnReorder$\">\n <div>\n <table mat-table id=\"list-view\" [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n </div>\n <div *ngIf=\"bInForm$\">\n <div>\n <div class=\"psdk-inner-div-in-form\">\n <table id=\"list-view\" *ngIf=\"repeatListData.length > 0\" mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngIf=\"singleSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-radio-button [value]=\"row[rowID]\" (change)=\"fieldOnChange(row)\"></mat-radio-button>\n </td>\n </ng-container>\n <ng-container *ngIf=\"multiSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox [value]=\"row[rowID]\" (change)=\"onCheckboxClick(row, $event)\"></mat-checkbox>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.config.name] }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n </table>\n <div *ngIf=\"repeatListData?.length === 0\">\n <table id=\"list-view\" *ngIf=\"repeatListData?.length === 0\" mat-table [dataSource]=\"repeatList$\">\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef>{{ dCol.config.label }}</th>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n </table>\n </div>\n <div class=\"psdk-no-records\" *ngIf=\"repeatListData?.length === 0\">No Records Found.</div>\n </div>\n </div>\n </div>\n\n <mat-paginator id=\"pagination\" *ngIf=\"bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500, 1000]\" showFirstLastButtons></mat-paginator>\n <mat-paginator id=\"pagination\" *ngIf=\"!bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n </div>\n\n <!-- pop overs for filters-->\n <div *ngIf=\"bShowFilterPopover$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-file-top\">\n <h4>\n Filter:<b> {{ filterContainsLabel$ }}</b>\n </h4>\n <div *ngIf=\"bContains$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"contains\">Contains</mat-option>\n <mat-option value=\"equals\">Equals</mat-option>\n <mat-option value=\"startswith\">Starts with</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"psdk-full-width\">\n <input matInput type=\"text\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsValue($event)\" />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"bDateTime$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"notequal\">is not equal to</mat-option>\n <mat-option value=\"after\">after</mat-option>\n <mat-option value=\"before\">before</mat-option>\n <mat-option value=\"null\">is null</mat-option>\n <mat-option value=\"notnull\">is not null</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDate$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date</mat-label>\n <input\n matInput\n #dateInput\n [matDatepicker]=\"pegadate\"\n type=\"text\"\n [value]=\"filterContainsValue$\"\n (dateChange)=\"_filterContainsDateValue($event, dateInput.value)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"filterContainsValue$\"></mat-datepicker>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDateTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date time</mat-label>\n <input matInput type=\"datetime-local\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsDateTimeValue($event)\" />\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Time</mat-label>\n <input matInput type=\"time\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsTimeValue($event)\" />\n </mat-form-field>\n </div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$: arFilterMainButtons$, arSecondaryButtons$: arFilterSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: _onFilterActionButtonClick }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface MultiReferenceReadOnlyProps {\n label: string;\n hideLabel: boolean;\n}\n\n@Component({\n selector: 'app-multi-reference-readonly',\n templateUrl: './multi-reference-readonly.component.html',\n styleUrls: ['./multi-reference-readonly.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class MultiReferenceReadonlyComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n configProps$: MultiReferenceReadOnlyProps;\n label: string;\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.updateSelf();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.configProps$ = this.pConn$.getConfigProps() as MultiReferenceReadOnlyProps;\n this.label = this.configProps$.label;\n }\n}\n","<div>\n <h3 style=\"font-weight: bold; margin: 0\">{{ label }}</h3>\n <component-mapper name=\"SimpleTable\" [props]=\"{ pConn$ }\"></component-mapper>\n</div>\n","import { Component, OnInit, Input, forwardRef, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-narrow-wide-form',\n templateUrl: './narrow-wide-form.component.html',\n styleUrls: ['./narrow-wide-form.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class NarrowWideFormComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n ngOnInit() {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n}\n","<div class=\"psdk-narrow-wide-column\">\n <div *ngFor=\"let kid of arChildren$\">\n <div class=\"psdk-narrow-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'left'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-wide-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'right'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-narrow-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-wide-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-one-column-page',\n templateUrl: './one-column-page.component.html',\n styleUrls: ['./one-column-page.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class OneColumnPageComponent {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n}\n","<component-mapper name=\"OneColumn\" [props]=\"{ formGroup$, pConn$ }\"></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-one-column-tab',\n templateUrl: './one-column-tab.component.html',\n styleUrls: ['./one-column-tab.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class OneColumnTabComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n ngOnInit(): void {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n}\n","<div class=\"psdk-one-column-tab\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <div *ngSwitchDefault>Page Missing: {{ kid.getPConnect().getComponentName() }}</div>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-one-column',\n templateUrl: './one-column.component.html',\n styleUrls: ['./one-column.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class OneColumnComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n ngOnInit(): void {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n}\n","<div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()['type'] === 'Region' && kid.getPConnect().getRawMetadata()['name'] === 'A'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div *ngIf=\"kid.getPConnect().getRawMetadata()['type'] === 'View'\">\n <component-mapper name=\"View\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div *ngIf=\"kid.getPConnect().getRawMetadata()['type'] === 'CaseCreateStage'\">\n <component-mapper name=\"CaseCreateStage\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface PageProps {\n // If any, enter additional props that only exist on this component\n title: string;\n operator?: string;\n}\n\n@Component({\n selector: 'app-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class PageComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n configProps$: PageProps;\n arChildren$: any[];\n title$: string;\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit() {\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as PageProps;\n this.arChildren$ = this.pConn$.getChildren() as any[];\n\n this.title$ = this.configProps$.title;\n const operator = this.configProps$.operator;\n\n if (operator && operator != '') {\n this.title$ += `, ${operator}`;\n }\n\n // when showing a page, similar to updating root, need to cause viewContainer to call \"initContainer\"\n sessionStorage.setItem('hasViewContainer', 'false');\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n // AND removing the \"gate\" that was put there since shouldComponentUpdate\n // should be the real \"gate\"\n if (bUpdateSelf) {\n // turn off spinner\n // this.psService.sendMessage(false);\n }\n }\n}\n","<div class=\"psdk-page-title\">\n <h2>{{ title$ }}</h2>\n</div>\n<div class=\"page-body\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <div *ngSwitchDefault>Page Missing: {{ kid.getPConnect().getComponentName() }}</div>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\nconst SUPPORTED_TYPES_IN_PROMOTED_FILTERS = [\n 'TextInput',\n 'Percentage',\n 'Email',\n 'Integer',\n 'Decimal',\n 'Checkbox',\n 'DateTime',\n 'Date',\n 'Time',\n 'Text',\n 'TextArea',\n 'Currency',\n 'URL',\n 'RichText'\n];\n\n@Component({\n selector: 'app-promoted-filters',\n templateUrl: './promoted-filters.component.html',\n styleUrls: ['./promoted-filters.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class PromotedFiltersComponent implements OnInit, OnDestroy {\n @Input() viewName;\n @Input() filters;\n @Input() listViewProps;\n @Input() pageClass;\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n @Input() parameters = {};\n\n angularPConnectData: AngularPConnectData = {};\n\n showFilters: boolean;\n localeCategory = 'SimpleTable';\n localizedVal;\n filtersProperties = {};\n showTable;\n transientItemID;\n processedFilters: any[] = [];\n payload = {};\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.updateSelf();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n this.filters.forEach(filter => {\n this.filtersProperties[PCore.getAnnotationUtils().getPropertyName(filter.config.value)] = '';\n });\n\n const filtersWithClassID = { ...this.filtersProperties, classID: this.pageClass };\n this.transientItemID = (this.pConn$.getContainerManager() as any).addTransientItem({ id: this.viewName, data: filtersWithClassID });\n this.processedFilters = [];\n this.filters.forEach(filter => {\n const filterClone = { ...filter };\n // convert any field which is not supported to TextInput and delete the placeholder as it may contain placeholder specific to original type.\n if (!SUPPORTED_TYPES_IN_PROMOTED_FILTERS.includes(filterClone.type)) {\n filterClone.type = 'TextInput';\n delete filterClone.config.placeholder;\n }\n filterClone.config.contextName = this.transientItemID;\n filterClone.config.readOnly = false;\n filterClone.config.context = this.transientItemID;\n filterClone.config.localeReference = this.listViewProps.localeReference;\n const c11nEnv = PCore.createPConnect({\n meta: filterClone,\n options: {\n hasForm: true,\n contextName: this.transientItemID\n }\n });\n this.processedFilters.push(c11nEnv);\n });\n this.showFilters = true;\n }\n\n formatPromotedFilters(promotedFilters) {\n return Object.entries(promotedFilters).reduce((acc, [field, value]) => {\n if (value) {\n acc[field] = {\n lhs: {\n field\n },\n comparator: 'EQ',\n rhs: {\n value\n }\n };\n }\n return acc;\n }, {});\n }\n\n isValidInput(input) {\n return Object.values(input).findIndex(v => v) >= 0;\n }\n\n getFilterData() {\n const changes = PCore.getFormUtils().getChanges(this.transientItemID);\n const formValues = {};\n Object.keys(changes).forEach(key => {\n if (!['context_data', 'pageInstructions'].includes(key)) {\n formValues[key] = changes[key];\n }\n });\n const promotedFilters = this.formatPromotedFilters(formValues);\n if (PCore.getFormUtils().isFormValid(this.transientItemID) && this.isValidInput(formValues)) {\n this.showTable = true;\n const Query: any = {\n dataViewParameters: this.parameters || {}\n };\n\n if (Object.keys(promotedFilters).length > 0) {\n Query.query = { filter: { filterConditions: promotedFilters } };\n }\n this.payload = Query;\n }\n }\n\n clearFilterData() {\n PCore.getContainerUtils().clearTransientData(this.transientItemID);\n this.showTable = false;\n this.pConn$?.getListActions?.()?.setSelectedRows([]); // Clear the selection (if any made by user)\n }\n}\n","<div>\n <div>{{ listViewProps.title }}</div>\n <div *ngIf=\"showFilters\" class=\"psdk-grid-filter\">\n <div *ngFor=\"let kid of processedFilters\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Promoted filters wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </div>\n\n <div>\n <button key=\"1\" type=\"button\" (click)=\"clearFilterData()\" data-testid=\"clear\" mat-raised-button color=\"secondary\">\n {{ localizedVal('Clear', localeCategory) }}\n </button>\n <button style=\"float: 'right'\" key=\"2\" type=\"submit\" (click)=\"getFilterData()\" data-testid=\"search\" mat-raised-button color=\"primary\">\n {{ localizedVal('Search', localeCategory) }}\n </button>\n </div>\n <div *ngIf=\"showTable\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$, payload }\"></component-mapper>\n </div>\n</div>\n","import { getSeconds } from '../../../_helpers/common';\n\nexport const TABLE_CELL = 'SdkRenderer';\nexport const DELETE_ICON = 'DeleteIcon';\n\n// BUG-615253: Workaround for autosize in table with lazy loading components\n/* istanbul ignore next */\nfunction getFieldWidth(field, label) {\n let width;\n switch (field.type) {\n case 'Time':\n width = 150;\n break;\n case 'Date':\n width = 160;\n break;\n case 'DateTime':\n width = 205;\n break;\n case 'AutoComplete':\n case 'TextArea':\n width = 190;\n break;\n case 'Currency':\n case 'TextInput':\n width = 182;\n break;\n case 'Checkbox':\n // eslint-disable-next-line no-case-declarations\n const text = document.createElement('span');\n document.body.appendChild(text);\n text.style.fontSize = '13px';\n text.style.position = 'absolute';\n text.innerHTML = label;\n width = Math.ceil(text.clientWidth) + 30;\n document.body.removeChild(text);\n break;\n default:\n width = 180;\n }\n return width;\n}\n\nexport const getContext = thePConn => {\n const contextName = thePConn.getContextName();\n const pageReference = thePConn.getPageReference();\n // 8.7 change = referenceList may now be in top-level of state props,\n // not always in config of state props\n let { referenceList } = thePConn.getStateProps()?.config || thePConn.getStateProps();\n const pageReferenceForRows = referenceList.startsWith('.') ? `${pageReference}.${referenceList.substring(1)}` : referenceList;\n\n // removing \"caseInfo.content\" prefix to avoid setting it as a target while preparing pageInstructions\n referenceList = pageReferenceForRows.replace(PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT, '');\n\n return {\n contextName,\n referenceListStr: referenceList,\n pageReferenceForRows\n };\n};\n\nexport const populateRowKey = rawData => {\n return rawData.map((row, index) => {\n return { ...row, index };\n });\n};\n\nexport const getApiContext = (processedData, pConnect, reorderCB) => {\n return {\n fetchData: () => {\n return new Promise(resolve => {\n resolve({\n data: processedData,\n filteredRecordCount: processedData.length,\n totalRecordCount: processedData.length\n });\n });\n },\n fetchPersonalizations: () => {\n return Promise.resolve({});\n },\n applyRowReorder: (sourceKey, destinationKey) => {\n // indexes are keys for simple table so, it should work.\n reorderCB();\n return Promise.resolve(pConnect.getListActions().reorder(parseInt(sourceKey, 10), parseInt(destinationKey, 10)));\n }\n };\n};\n\nexport const buildMetaForListView = (fieldMetadata, fields, type, ruleClass, name, propertyLabel, isDataObject, parameters) => {\n return {\n name,\n config: {\n type,\n referenceList: fieldMetadata.datasource.name,\n parameters: parameters ?? fieldMetadata.datasource.parameters,\n personalization: false,\n isDataObject,\n grouping: true,\n globalSearch: true,\n reorderFields: true,\n toggleFieldVisibility: true,\n title: propertyLabel,\n personalizationId: '' /* TODO */,\n template: 'ListView',\n presets: [\n {\n name: 'presets',\n template: 'Table',\n config: {},\n children: [\n {\n name: 'Columns',\n type: 'Region',\n children: fields\n }\n ],\n label: propertyLabel,\n id: 'P_' /* TODO */\n }\n ],\n ruleClass\n }\n };\n};\n\nexport const buildFieldsForTable = (configFields, fields, showDeleteButton) => {\n const fieldDefs = configFields?.map((field, index) => {\n return {\n type: 'text',\n label: fields[index].config.label || fields[index].config.caption,\n fillAvailableSpace: !!field.config.fillAvailableSpace,\n id: index,\n name: field.config.value.substr(4),\n cellRenderer: TABLE_CELL,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n meta: {\n ...field\n },\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: getFieldWidth(field, fields[index].config.label)\n };\n });\n\n // ONLY add DELETE_ICON to fields when the table is requested as EDITABLE\n if (showDeleteButton) {\n fieldDefs.push({\n type: 'text',\n label: '',\n name: DELETE_ICON,\n id: fieldDefs.length,\n cellRenderer: DELETE_ICON,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: 46\n });\n }\n\n return fieldDefs;\n};\n\nexport const createMetaForTable = (fields, renderMode) => {\n return {\n height: {\n minHeight: 'auto',\n fitHeightToElement: 'fitHeightToElement',\n deltaAdjustment: 'deltaAdjustment',\n autoSize: true\n },\n fieldDefs: fields,\n itemKey: 'index',\n grouping: false,\n reorderFields: false,\n reorderItems: renderMode === 'Editable',\n dragHandle: renderMode === 'Editable',\n globalSearch: false,\n personalization: false,\n toggleFieldVisibility: false,\n toolbar: false,\n footer: false,\n filterExpression: null,\n editing: false,\n timezone: PCore.getEnvironmentInfo().getTimeZone()\n };\n};\n\nexport const filterDataByDate = (item, filterObj) => {\n let bKeep;\n let value = item[filterObj.ref] != null ?? item[filterObj.ref] != '' ? getSeconds(item[filterObj.ref]) : null;\n let filterValue = filterObj.containsFilterValue != null && filterObj.containsFilterValue != '' ? getSeconds(filterObj.containsFilterValue) : null;\n\n switch (filterObj.containsFilter) {\n case 'notequal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value != null && filterValue != null) {\n // get rid of millisecons\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff >= 0 && diff < 60) {\n bKeep = false;\n }\n }\n\n break;\n case 'after':\n if (value < filterValue) {\n bKeep = false;\n }\n break;\n case 'before':\n if (value > filterValue) {\n bKeep = false;\n }\n break;\n case 'null':\n if (value != null) {\n bKeep = false;\n }\n break;\n case 'notnull':\n if (value == null) {\n bKeep = false;\n }\n break;\n default:\n break;\n }\n\n return bKeep;\n};\n\nexport const filterDataByCommonFields = (item, filterObj) => {\n let bKeep;\n const value = item[filterObj.ref].toLowerCase();\n const filterValue = filterObj.containsFilterValue.toLowerCase();\n\n switch (filterObj.containsFilter) {\n case 'contains':\n if (value.indexOf(filterValue) < 0) {\n bKeep = false;\n }\n break;\n case 'equals':\n if (value != filterValue) {\n bKeep = false;\n }\n break;\n case 'startswith':\n if (value.indexOf(filterValue) != 0) {\n bKeep = false;\n }\n break;\n default:\n break;\n }\n\n return bKeep;\n};\n\n/**\n * This method returns a callBack function for Add action.\n * @param {object} pConnect - PConnect object\n * @param {number} index - index of the page list to add\n */\nexport const getAddRowCallback = (pConnect, index) => {\n return () => pConnect.getListActions().insert({}, index);\n};\n\n/**\n * This method creates a PConnect object with proper options for Add and Delete actions\n * @param {string} contextName - contextName\n * @param {string} referenceList - referenceList\n * @param {string} pageReference - pageReference\n */\nexport const createPConnect = (contextName, referenceList, pageReference) => {\n const options = {\n context: contextName,\n pageReference,\n referenceList\n };\n\n // create PConnect object\n const config = { meta: {}, options };\n const { getPConnect } = PCore.createPConnect(config);\n\n return getPConnect();\n};\n","/* eslint-disable max-classes-per-file */\nimport { Component, OnInit, Input, ViewChild, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport isEqual from 'fast-deep-equal';\n\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { DatapageService } from '../../../_services/datapage.service';\nimport { getReferenceList } from '../../../_helpers/field-group-utils';\nimport { buildFieldsForTable, filterDataByCommonFields, filterDataByDate, getContext } from './helpers';\nimport { Utils } from '../../../_helpers/utils';\nimport { getSeconds } from '../../../_helpers/common';\n\ndeclare const window: any;\n\ninterface SimpleTableManualProps {\n // If any, enter additional props that only exist on this component\n visibility?: boolean;\n grouping?: any;\n referenceList?: any[];\n children?: any[];\n renderMode?: string;\n presets?: any[];\n label?: string;\n showLabel?: boolean;\n dataPageName?: string;\n contextClass?: string;\n propertyLabel?: string;\n fieldMetadata?: any;\n allowTableEdit?: boolean;\n editMode?: string;\n addAndEditRowsWithin?: any;\n viewForAddAndEditModal?: any;\n editModeConfig?: any;\n displayMode?: string;\n useSeparateViewForEdit: any;\n viewForEditModal: any;\n}\n\nclass Group {\n level = 0;\n parent: Group;\n expanded = true;\n totalCounts = 0;\n get visible(): boolean {\n return !this.parent || (this.parent.visible && this.parent.expanded);\n }\n}\n\n@Component({\n selector: 'app-simple-table-manual',\n templateUrl: './simple-table-manual.component.html',\n styleUrls: ['./simple-table-manual.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n MatTableModule,\n MatButtonModule,\n MatSortModule,\n MatMenuModule,\n MatFormFieldModule,\n MatDatepickerModule,\n MatOptionModule,\n MatSelectModule,\n MatInputModule,\n forwardRef(() => ComponentMapperComponent)\n ]\n})\nexport class SimpleTableManualComponent implements OnInit, OnDestroy {\n @ViewChild(MatSort) sort: MatSort;\n\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: SimpleTableManualProps;\n fields$: any[];\n\n bVisible$ = true;\n displayedColumns: string[] = [];\n rowData: MatTableDataSource<any>;\n originalData: any[] = [];\n processedFields: any[] = [];\n fieldDefs: any[] = [];\n requestedReadOnlyMode = false;\n readOnlyMode = false;\n editableMode: boolean;\n menuIconOverride$: string;\n pageReference: string;\n referenceList: any;\n contextClass: any;\n showAddRowButton: boolean;\n prevReferenceList: any[] = [];\n elementsData: MatTableDataSource<any>;\n rawFields: any;\n label?: string = '';\n searchIcon$: string;\n\n bShowSearch$ = false;\n bColumnReorder$ = false;\n bGrouping$ = false;\n\n perfFilter: string;\n searchFilter: string;\n\n menuSvgIcon$: string;\n arrowSvgIcon$ = '';\n arrowDownSvgIcon$: string;\n arrowUpSvgIcon$: string;\n\n filterSvgIcon$: string;\n filterOnSvgIcon$: string;\n groupBySvgIcon$: string;\n\n groupByColumns$: string[] = [];\n compareType: string;\n compareRef: string;\n arrowDirection = 'down';\n filterByColumns: any[] = [];\n currentFilterRefData: any;\n filterContainsLabel$ = '';\n filterContainsType$ = 'contains';\n filterContainsValue$: any;\n bShowFilterPopover$ = false;\n bContains$ = true;\n bDateTime$ = false;\n\n bIsDate$ = false;\n bIsDateTime$ = false;\n bIsTime$ = false;\n currentFilterImageEl: any;\n\n arFilterMainButtons$: any[] = [];\n arFilterSecondaryButtons$: any[] = [];\n selectionMode: string;\n singleSelectionMode: boolean;\n multiSelectionMode: boolean;\n rowID: any;\n response: any;\n compositeKeys: any;\n parameters: any;\n allowEditingInModal = false;\n defaultView: any;\n referenceListStr: any;\n bUseSeparateViewForEdit: any;\n editView: any;\n settingsSvgIcon$: string;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils,\n private dataPageService: DatapageService\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.configProps$ = this.pConn$.getConfigProps() as SimpleTableManualProps;\n // Then, continue on with other initialization\n this.menuIconOverride$ = this.utils.getImageSrc('trash', this.utils.getSDKStaticContentUrl());\n // call checkAndUpdate when initializing\n this.checkAndUpdate();\n this.filterSvgIcon$ = this.utils.getImageSrc('filter', this.utils.getSDKStaticContentUrl());\n this.filterOnSvgIcon$ = this.utils.getImageSrc('filter-on', this.utils.getSDKStaticContentUrl());\n this.groupBySvgIcon$ = this.utils.getImageSrc('row', this.utils.getSDKStaticContentUrl());\n this.bGrouping$ = this.utils.getBooleanValue(this.configProps$.grouping);\n this.menuSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n\n this.arFilterMainButtons$.push({ actionID: 'submit', jsAction: 'submit', name: 'Submit' });\n this.arFilterSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: 'Cancel' });\n\n this.searchIcon$ = this.utils.getImageSrc('search', this.utils.getSDKStaticContentUrl());\n\n this.settingsSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SimpleTableManualProps;\n\n if (this.configProps$.visibility != null) {\n // eslint-disable-next-line no-multi-assign\n this.bVisible$ = this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n // NOTE: getConfigProps() has each child.config with datasource and value undefined\n // but getRawMetadata() has each child.config with datasource and value showing their unresolved values (ex: \"@P thePropName\")\n // We need to use the prop name as the \"glue\" to tie the Angular Material table dataSource, displayColumns and data together.\n // So, in the code below, we'll use the unresolved config.value (but replacing the space with an underscore to keep things happy)\n const rawMetadata: any = this.pConn$.getRawMetadata();\n\n // Adapted from Nebula\n const {\n referenceList = [], // if referenceList not in configProps$, default to empy list\n renderMode,\n children, // destructure children into an array var: \"resolvedFields\"\n presets,\n allowTableEdit,\n label: labelProp,\n propertyLabel,\n fieldMetadata,\n editMode,\n addAndEditRowsWithin,\n viewForAddAndEditModal,\n editModeConfig,\n displayMode,\n useSeparateViewForEdit,\n viewForEditModal\n } = this.configProps$;\n\n this.referenceListStr = getContext(this.pConn$).referenceListStr;\n this.label = labelProp || propertyLabel;\n this.parameters = fieldMetadata?.datasource?.parameters;\n\n const hideAddRow = allowTableEdit === false;\n const hideDeleteRow = allowTableEdit === false;\n let { contextClass } = this.configProps$;\n this.referenceList = referenceList;\n if (!contextClass) {\n // @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'\n let listName = this.pConn$.getComponentConfig().referenceList;\n listName = PCore.getAnnotationUtils().getPropertyName(listName);\n // @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'\n contextClass = this.pConn$.getFieldMetadata(listName)?.pageClass;\n }\n this.contextClass = contextClass;\n\n const resolvedFields = children?.[0]?.children || presets?.[0].children?.[0].children;\n // get raw config as @P and other annotations are processed and don't appear in the resolved config.\n // Destructure \"raw\" children into array var: \"rawFields\"\n // NOTE: when config.listType == \"associated\", the property can be found in either\n // config.value (ex: \"@P .DeclarantChoice\") or\n // config.datasource (ex: \"@ASSOCIATED .DeclarantChoice\")\n // Neither of these appear in the resolved (this.configProps$)\n const rawConfig = rawMetadata?.config;\n const rawFields = rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;\n this.rawFields = rawFields;\n // At this point, fields has resolvedFields and rawFields we can use\n\n // start of from Nebula\n // get context name and referenceList which will be used to prepare config of PConnect\n // const { contextName, referenceListStr, pageReferenceForRows } = getContext(this.pConn$);\n\n const resolvedList = getReferenceList(this.pConn$);\n this.pageReference = `${this.pConn$.getPageReference()}${resolvedList}`;\n this.pConn$.setReferenceList(resolvedList);\n\n // This gives up the \"properties\" we need to map to row/column values later\n // const processedData = populateRowKey(referenceList);\n\n this.requestedReadOnlyMode = renderMode === 'ReadOnly';\n this.readOnlyMode = renderMode === 'ReadOnly';\n this.editableMode = renderMode === 'Editable';\n const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n this.showAddRowButton = !this.readOnlyMode && !hideAddRow;\n this.allowEditingInModal =\n (editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);\n const showDeleteButton = this.editableMode && !hideDeleteRow;\n this.defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;\n this.bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;\n this.editView = editModeConfig ? editModeConfig.editView : viewForEditModal;\n // const showDeleteButton = !this.readOnlyMode && !hideDeleteRow;\n\n // Nebula has other handling for isReadOnlyMode but has Cosmos-specific code\n // so ignoring that for now...\n // fieldDefs will be an array where each entry will have a \"name\" which will be the\n // \"resolved\" property name (that we can use as the colId) though it's not really\n // resolved. The buildFieldsForTable helper just removes the \"@P \" (which is what\n // Nebula does). It will also have the \"label\", and \"meta\" contains the original,\n // unchanged config info. For now, much of the info here is carried over from\n // Nebula and we may not end up using it all.\n this.fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);\n\n // end of from Nebula\n\n // Here, we use the \"name\" field in fieldDefs since that has the assoicated property\n // (if one exists for the field). If no \"name\", use \"cellRenderer\" (typically get DELETE_ICON)\n // for our columns.\n this.displayedColumns = this.fieldDefs?.map(field => {\n return field.name ? field.name : field.cellRenderer;\n });\n\n // And now we can process the resolvedFields to add in the \"name\"\n // from from the fieldDefs. This \"name\" is the value that\n // we'll share to connect things together in the table.\n\n this.processedFields = [];\n\n this.processedFields = resolvedFields.map((field, i) => {\n field.config.name = this.displayedColumns[i]; // .config[\"value\"].replace(/ ./g,\"_\"); // replace space dot with underscore\n return field;\n });\n\n // for adding rows to table when editable and not modal view\n if (this.prevReferenceList.length !== this.referenceList.length && this.editableMode && !this.allowEditingInModal) {\n this.buildElementsForTable();\n }\n\n // for edit and adding rows in modal view and to generate readonly list\n if (!isEqual(this.prevReferenceList, this.referenceList) && (this.readOnlyMode || this.allowEditingInModal)) {\n this.generateRowsData();\n }\n\n this.prevReferenceList = this.referenceList;\n\n // These are the data structures referred to in the html file.\n // These are the relationships that make the table work\n // displayedColumns: key/value pairs where key is order of column and\n // value is the property shown in that column. Ex: 1: \"FirstName\"\n // processedFields: key/value pairs where each key is order of column\n // and each value is an object of more detailed information about that\n // column.\n // rowData: array of each row's key/value pairs. Inside each row,\n // each key is an entry in displayedColumns: ex: \"FirstName\": \"Charles\"\n // Ex: { 1: {config: {label: \"First Name\", readOnly: true: name: \"FirstName\"}}, type: \"TextInput\" }\n // The \"type\" indicates the type of component that should be used for editing (when editing is enabled)\n //\n // Note that the \"property\" shown in the column (\"FirstName\" in the above examples) is what\n // ties the 3 data structures together.\n }\n\n getResultsText() {\n const recordsCount = this.readOnlyMode ? this.rowData?.data.length : this.referenceList?.length;\n return `${recordsCount} result${recordsCount > 1 ? 's' : ''}`;\n }\n\n sortCompare(a, b): number {\n let aValue = a[this.compareRef];\n let bValue = b[this.compareRef];\n\n if (this.compareType == 'Date' || this.compareType == 'DateTime') {\n aValue = getSeconds(aValue);\n bValue = getSeconds(bValue);\n }\n\n if (this.compareRef == 'pxRefObjectInsName') {\n const result = this.compareByColumnPxRefObjectInsName(aValue, bValue);\n if (result !== undefined) {\n return result;\n }\n }\n\n if (aValue === bValue) {\n return 0;\n }\n\n if (this.arrowDirection === 'up') return aValue - bValue;\n if (this.arrowDirection === 'down') return bValue - aValue;\n\n return 0;\n }\n\n compareByColumnPxRefObjectInsName(aValue, bValue) {\n const prefixX = aValue.split('-');\n const prefixY = bValue.split('-');\n switch (this.arrowDirection) {\n case 'up':\n if (prefixX[0] !== prefixY[0]) {\n if (prefixX[0] < prefixY[0]) return -1;\n if (prefixX[0] > prefixY[0]) return 1;\n return 0;\n }\n return prefixX[1] - prefixY[1];\n case 'down':\n if (prefixX[0] !== prefixY[0]) {\n if (prefixX[0] > prefixY[0]) return -1;\n if (prefixX[0] < prefixY[0]) return 1;\n return 0;\n }\n return prefixY[1] - prefixX[1];\n default:\n break;\n }\n\n return undefined;\n }\n\n updateFilterDisplay(type) {\n switch (type) {\n case 'Date':\n this.filterContainsType$ = 'notequal';\n this.bContains$ = false;\n this.bDateTime$ = true;\n this.bIsDate$ = true;\n this.bIsDateTime$ = false;\n this.bIsTime$ = false;\n break;\n case 'DateTime':\n this.filterContainsType$ = 'notequal';\n this.bContains$ = false;\n this.bDateTime$ = true;\n this.bIsDate$ = false;\n this.bIsDateTime$ = true;\n this.bIsTime$ = false;\n break;\n case 'Time':\n this.filterContainsType$ = 'notequal';\n this.bContains$ = false;\n this.bDateTime$ = true;\n this.bIsDate$ = false;\n this.bIsDateTime$ = false;\n this.bIsTime$ = true;\n break;\n default:\n this.filterContainsType$ = 'contains';\n this.bContains$ = true;\n this.bDateTime$ = false;\n this.bIsDate$ = false;\n this.bIsDateTime$ = false;\n this.bIsTime$ = false;\n break;\n }\n }\n\n _filter(event, columnData) {\n // add clickAway listener\n window.addEventListener('mouseup', this._clickAway.bind(this));\n\n this.currentFilterRefData = columnData;\n this.filterContainsLabel$ = columnData.config.label;\n\n setTimeout(() => {\n this.updateFilterDisplay(columnData.type);\n\n this.updateFilterVarsWithCurrent(columnData);\n\n this.bShowFilterPopover$ = true;\n });\n }\n\n _clickAway(event: any) {\n let bInPopUp = false;\n\n // run through list of elements in path, if menu not in th path, then want to\n // hide (toggle) the menu\n const eventPath = event.path;\n for (let eventIndex = 0; eventIndex < eventPath.length; eventIndex++) {\n if (\n eventPath[eventIndex].className == 'psdk-modal-file-top' ||\n eventPath[eventIndex].tagName == 'BUTTON' ||\n eventPath[eventIndex].tagName == 'MAT-OPTION' ||\n eventPath[eventIndex].tagName == 'MAT-INPUT'\n ) {\n bInPopUp = true;\n break;\n }\n }\n if (!bInPopUp) {\n // this.bShowFilterPopover$ = false;\n\n window.removeEventListener('mouseup', this._clickAway.bind(this));\n }\n }\n\n _filterContainsType(event) {\n this.filterContainsType$ = event.value;\n }\n\n _filterContainsValue(event) {\n this.filterContainsValue$ = event.target.value;\n }\n\n _filterContainsDateValue(event, value) {\n this.filterContainsValue$ = value;\n }\n\n _filterContainsDateTimeValue(event) {\n this.filterContainsValue$ = event.target.value;\n }\n\n _filterContainsTimeValue(event) {\n this.filterContainsValue$ = event.target.value;\n }\n\n _onFilterActionButtonClick(event: any) {\n // modal buttons\n switch (event.action) {\n case 'cancel':\n this.currentFilterRefData = [];\n break;\n case 'submit':\n this.updateFilterWithInfo();\n this.filterSortGroupBy();\n break;\n default:\n break;\n }\n\n this.bShowFilterPopover$ = false;\n\n window.removeEventListener('mouseup', this._clickAway.bind(this));\n }\n\n updateFilterWithInfo() {\n let bFound = false;\n for (const filterObj of this.filterByColumns) {\n if (filterObj.ref === this.currentFilterRefData.config.name) {\n filterObj.type = this.currentFilterRefData.type;\n filterObj.containsFilter = this.filterContainsType$;\n filterObj.containsFilterValue = this.filterContainsValue$;\n\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n // add in\n const filterObj: any = {};\n filterObj.ref = this.currentFilterRefData.config.name;\n filterObj.type = this.currentFilterRefData.type;\n filterObj.containsFilter = this.filterContainsType$;\n filterObj.containsFilterValue = this.filterContainsValue$;\n\n this.filterByColumns.push(filterObj);\n }\n\n // iterate through filters and update filterOn icon\n for (const filterObj of this.filterByColumns) {\n const containsFilterValue = filterObj.containsFilterValue;\n const containsFilter = filterObj.containsFilter;\n const filterRef = filterObj.ref;\n const filterIndex = this.displayedColumns.indexOf(filterRef);\n const arFilterImg = document.getElementsByName('filterOnIcon');\n const filterImg: any = arFilterImg[filterIndex];\n if (containsFilterValue == '' && containsFilter != 'null' && containsFilter != 'notnull') {\n // clear icon\n filterImg.src = '';\n } else {\n // show icon\n filterImg.src = this.filterOnSvgIcon$;\n }\n }\n }\n\n updateFilterVarsWithCurrent(columnData) {\n // find current ref, if exists, move data to variable to display\n\n let bFound = false;\n for (const filterObj of this.filterByColumns) {\n if (filterObj.ref === this.currentFilterRefData.config.name) {\n this.filterContainsType$ = filterObj.containsFilter;\n this.filterContainsValue$ = filterObj.containsFilterValue;\n\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n switch (columnData.type) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n this.filterContainsType$ = 'notequal';\n break;\n default:\n this.filterContainsType$ = 'contains';\n break;\n }\n\n this.filterContainsValue$ = '';\n }\n }\n\n filterData(item: any) {\n let bKeep = true;\n for (const filterObj of this.filterByColumns) {\n if (filterObj.containsFilterValue != '' || filterObj.containsFilter == 'null' || filterObj.containsFilter == 'notnull') {\n switch (filterObj.type) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n bKeep = filterDataByDate(item, filterObj);\n break;\n default:\n bKeep = filterDataByCommonFields(item, filterObj);\n break;\n }\n }\n\n // if don't keep stop filtering\n if (!bKeep) {\n break;\n }\n }\n\n return bKeep;\n }\n\n filterSortGroupBy() {\n let theData = this.originalData.slice();\n\n // last filter config data is global\n theData = theData.filter(this.filterData.bind(this));\n\n // last sort config data is global\n theData.sort(this.sortCompare.bind(this));\n this.rowData.data = theData;\n }\n\n _headerSortClick(event, columnData) {\n // images 0 - filter, 1 - arrow, 2 - more\n\n /** Commenting this code for now as it is giving errors not sure if it ever worked */\n // let arrowImage = event.srcElement.getElementsByTagName('img')[1];\n // let arrowAttr = arrowImage.getAttribute('arrow');\n\n // this.clearOutArrows(event, columnData);\n\n // switch (arrowAttr) {\n // case 'up':\n // arrowImage.src = this.arrowDownSvgIcon$;\n // arrowImage.setAttribute('arrow', 'down');\n // break;\n // case 'down':\n // arrowImage.src = '';\n // arrowImage.setAttribute('arrow', 'none');\n // break;\n // default:\n // arrowImage.src = this.arrowUpSvgIcon$;\n // arrowImage.setAttribute('arrow', 'up');\n // break;\n // }\n\n this.compareType = columnData.type;\n this.compareRef = columnData.config.name;\n // this.arrowDirection = arrowImage.getAttribute('arrow');\n this.arrowDirection = this.arrowDirection === 'up' ? 'down' : 'up';\n\n this.filterSortGroupBy();\n }\n\n _showUnGroupBy(columnData): boolean {\n for (const val of this.groupByColumns$) {\n if (val == columnData.config.name) {\n return true;\n }\n }\n\n return false;\n }\n\n _groupBy(event, columnData) {\n this.checkGroupByColumn(columnData.config.name, true);\n\n this.filterSortGroupBy();\n }\n\n _unGroupBy(event, columnData) {\n // event.stopPropagation();\n this.checkGroupByColumn(columnData.config.name, false);\n\n this.filterSortGroupBy();\n }\n\n checkGroupByColumn(field, add) {\n let found: number | null = null;\n for (const column of this.groupByColumns$) {\n if (column === field) {\n found = this.groupByColumns$.indexOf(column, 0);\n }\n }\n if (found != null && found >= 0) {\n if (!add) {\n this.groupByColumns$.splice(found, 1);\n }\n } else if (add) {\n this.groupByColumns$.push(field);\n }\n }\n\n _getGroupName(fieldName) {\n for (let fieldIndex = 0; fieldIndex < this.fields$.length; fieldIndex++) {\n const field = this.fields$[fieldIndex];\n if (field.config.name == fieldName) {\n return field.config.label;\n }\n }\n return '';\n }\n\n addGroups(data: any[], groupByColumns: string[]): any[] {\n const rootGroup = new Group();\n rootGroup.expanded = true;\n return this.getSublevel(data, 0, groupByColumns, rootGroup);\n }\n\n getSublevel(data: any[], level: number, groupByColumns: string[], parent: Group): any[] {\n if (level >= groupByColumns.length) {\n return data;\n }\n const groups = this.uniqueBy(\n data.map(row => {\n const result = new Group();\n result.level = level + 1;\n result.parent = parent;\n for (let i = 0; i <= level; i++) {\n result[groupByColumns[i]] = row[groupByColumns[i]];\n }\n return result;\n }),\n JSON.stringify\n );\n\n const currentColumn = groupByColumns[level];\n let subGroups: any = [];\n groups.forEach(group => {\n const rowsInGroup = data.filter(row => group[currentColumn] === row[currentColumn]);\n group.totalCounts = rowsInGroup.length;\n const subGroup = this.getSublevel(rowsInGroup, level + 1, groupByColumns, group);\n subGroup.unshift(group);\n subGroups = subGroups.concat(subGroup);\n });\n return subGroups;\n }\n\n uniqueBy(a, key) {\n const seen = {};\n return a.filter(item => {\n const k = key(item);\n // eslint-disable-next-line no-return-assign, no-prototype-builtins\n return seen.hasOwnProperty(k) ? false : (seen[k] = true);\n });\n }\n\n isGroup(index, item): boolean {\n return item.level;\n }\n\n _groupHeaderClick(row) {\n row.expanded = !row.expanded;\n // this.repeatList$.filter = \"\";\n this.perfFilter = performance.now().toString();\n this.rowData.filter = this.perfFilter;\n }\n\n // below is for grid row grouping\n customFilterPredicate(data: any | Group, filter: string): boolean {\n return data instanceof Group ? data.visible : this.getDataRowVisibleWithFilter(data, filter);\n }\n\n getDataRowVisible(data: any): boolean {\n const groupRows = this.rowData.data.filter(row => {\n if (!(row instanceof Group)) {\n return false;\n }\n let match = true;\n this.groupByColumns$.forEach(column => {\n if (!row[column] || !data[column] || row[column] !== data[column]) {\n match = false;\n }\n });\n return match;\n });\n\n if (groupRows.length === 0) {\n return true;\n }\n const parent = groupRows[0] as Group;\n return parent.visible && parent.expanded;\n }\n\n getDataRowVisibleWithFilter(data, filter) {\n // fist check if row is visible with grouping\n let bVisible = this.getDataRowVisible(data);\n\n if (bVisible && filter && filter != '' && filter != this.perfFilter) {\n // now check if row is filtered.\n\n // assume not there unless we find it\n bVisible = false;\n for (const col of this.displayedColumns) {\n // filter is lower case\n if (data[col] && data[col].toString().toLowerCase().indexOf(filter) >= 0) {\n bVisible = true;\n break;\n }\n }\n }\n\n return bVisible;\n }\n\n getDisplayColumns(fields = []) {\n return fields.map((field: any) => {\n let theField = field.config.value.substring(field.config.value.indexOf(' ') + 1);\n if (theField.indexOf('.') == 0) {\n theField = theField.substring(1);\n }\n\n return theField;\n });\n }\n\n _getIconStyle(level): string {\n let sReturn = '';\n let nLevel = parseInt(level, 10);\n nLevel--;\n nLevel *= 15;\n sReturn = `padding-left: ${nLevel}px; vertical-align: middle`;\n\n return sReturn;\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n // return the value that should be shown as the contents for the given row data\n // of the given row field\n getRowValue(inRowData: Object, inColKey: string): any {\n // See what data (if any) we have to display\n const refKeys: string[] = inColKey.split('.');\n let valBuilder = inRowData;\n for (const key of refKeys) {\n valBuilder = valBuilder[key];\n }\n return valBuilder;\n }\n\n generateRowsData() {\n const { dataPageName, referenceList } = this.configProps$;\n const context = this.pConn$.getContextName();\n // if dataPageName property value exists then make a datapage fetch call and get the list of data.\n if (dataPageName) {\n this.dataPageService.getDataPageData(dataPageName, this.parameters, context).then(listData => {\n const data = this.formatRowsData(listData);\n this.originalData = data;\n this.rowData = new MatTableDataSource(data);\n });\n } else {\n // The referenceList prop has the JSON data for each row to be displayed\n // in the table. So, iterate over referenceList to create the dataRows that\n // we're using as the table's dataSource\n const data = this.formatRowsData(referenceList);\n this.originalData = data;\n this.rowData = new MatTableDataSource(data);\n }\n }\n\n formatRowsData(data) {\n return data?.map(item => {\n return this.displayedColumns.reduce((dataForRow, colKey) => {\n dataForRow[colKey] = this.getRowValue(item, colKey);\n return dataForRow;\n }, {});\n });\n }\n\n addRecord() {\n if (this.allowEditingInModal && this.defaultView) {\n this.pConn$\n .getActionsApi()\n .openEmbeddedDataModal(\n this.defaultView,\n this.pConn$,\n this.referenceListStr,\n this.referenceList.length,\n PCore.getConstants().RESOURCE_STATUS.CREATE\n );\n } else if (PCore.getPCoreVersion()?.includes('8.7')) {\n this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length, this.pageReference);\n } else {\n // @ts-ignore - second parameter \"pageRef\" is optional for insert method\n this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);\n }\n }\n\n editRecord(data, index) {\n if (data) {\n this.pConn$\n .getActionsApi()\n .openEmbeddedDataModal(\n this.bUseSeparateViewForEdit ? this.editView : this.defaultView,\n this.pConn$,\n this.referenceListStr,\n index,\n PCore.getConstants().RESOURCE_STATUS.UPDATE\n );\n }\n }\n\n deleteRecord(index) {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n this.pConn$.getListActions().deleteEntry(index, this.pageReference);\n } else {\n // @ts-ignore - second parameter \"pageRef\" is optional for deleteEntry method\n this.pConn$.getListActions().deleteEntry(index);\n }\n }\n\n buildElementsForTable() {\n const context = this.pConn$.getContextName();\n const eleData: any = [];\n this.referenceList.forEach((element, index) => {\n const data: any = [];\n this.rawFields?.forEach(item => {\n const referenceListData = getReferenceList(this.pConn$);\n const isDatapage = referenceListData.startsWith('D_');\n const pageReferenceValue = isDatapage\n ? `${referenceListData}[${index}]`\n : `${this.pConn$.getPageReference()}${referenceListData.substring(referenceListData.lastIndexOf('.'))}[${index}]`;\n const config = {\n meta: item,\n options: {\n context,\n pageReference: pageReferenceValue,\n referenceList: referenceListData,\n hasForm: true\n }\n };\n const view = PCore.createPConnect(config);\n data.push(view);\n });\n eleData.push(data);\n });\n this.elementsData = eleData;\n }\n}\n","<ng-container *ngIf=\"bVisible$\">\n <div class=\"simple-table-wrapper\">\n <h3 *ngIf=\"label\" className=\"label\" style=\"font-weight: bold\">\n {{ label }} <span class=\"results-count\">{{ getResultsText() }}</span>\n </h3>\n <table *ngIf=\"readOnlyMode || allowEditingInModal\" mat-table [dataSource]=\"rowData\" class=\"mat-elevation-z8\" id=\"readonly-table\" matSort>\n <ng-container *ngFor=\"let dCol of processedFields\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n <div>{{ dCol.config.label }}</div>\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.config.name] }}</td>\n </ng-container>\n <ng-container matColumnDef=\"DeleteIcon\">\n <div *ngIf=\"allowEditingInModal\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let element; index as j\">\n <div class=\"header-icon\">\n <button mat-icon-button [matMenuTriggerFor]=\"utilityMenu\">\n <img class=\"psdk-utility-card-actions-svg-icon\" src=\"{{ settingsSvgIcon$ }}\" />\n </button>\n <mat-menu #utilityMenu=\"matMenu\" overlapTrigger=\"false\">\n <button mat-menu-item (click)=\"editRecord(element, j)\">Edit</button>\n <button mat-menu-item (click)=\"deleteRecord(j)\">Delete</button>\n </mat-menu>\n </div>\n </td>\n </div>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n <table *ngIf=\"editableMode && !allowEditingInModal\" mat-table [dataSource]=\"elementsData\" class=\"mat-elevation-z8\" id=\"editable-table\">\n <ng-container *ngFor=\"let dCol of fieldDefs; let i = index\">\n <ng-container *ngIf=\"dCol.name != 'DeleteIcon'\" [matColumnDef]=\"dCol.name\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\">{{ dCol.label }}</th>\n <td mat-cell *matCellDef=\"let element\">\n <component-mapper\n [name]=\"element[i].getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: element[i].getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Table wants component not yet available: {{ element[i].getPConnect().getComponentName() }}\"\n ></component-mapper>\n </td>\n </ng-container>\n </ng-container>\n <ng-container matColumnDef=\"DeleteIcon\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let element; index as j\">\n <button id=\"delete-button\" mat-icon-button (click)=\"deleteRecord(j)\">\n <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ menuIconOverride$ }}\" />\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n <div class=\"psdk-no-records\" id=\"no-records\" *ngIf=\"editableMode && referenceList?.length === 0\">No Records Found.</div>\n <div class=\"psdk-no-records\" id=\"no-records\" *ngIf=\"readOnlyMode && rowData?.data?.length === 0\">No Records Found.</div>\n </div>\n <button *ngIf=\"showAddRowButton\" mat-button color=\"primary\" style=\"font-size: 16px\" (click)=\"addRecord()\">+ Add</button>\n</ng-container>\n\n<!-- pop overs for filters-->\n<div *ngIf=\"bShowFilterPopover$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-file-top\">\n <h4>\n Filter:<b> {{ filterContainsLabel$ }}</b>\n </h4>\n <div *ngIf=\"bContains$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"contains\">Contains</mat-option>\n <mat-option value=\"equals\">Equals</mat-option>\n <mat-option value=\"startswith\">Starts with</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"psdk-full-width\">\n <input matInput type=\"text\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsValue($event)\" />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"bDateTime$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"notequal\">is not equal to</mat-option>\n <mat-option value=\"after\">after</mat-option>\n <mat-option value=\"before\">before</mat-option>\n <mat-option value=\"null\">is null</mat-option>\n <mat-option value=\"notnull\">is not null</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDate$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date</mat-label>\n <input\n matInput\n #dateInput\n [matDatepicker]=\"pegadate\"\n type=\"text\"\n [value]=\"filterContainsValue$\"\n (dateChange)=\"_filterContainsDateValue($event, dateInput.value)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"filterContainsValue$\"></mat-datepicker>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDateTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date time</mat-label>\n <input matInput type=\"datetime-local\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsDateTimeValue($event)\" />\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Time</mat-label>\n <input matInput type=\"time\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsTimeValue($event)\" />\n </mat-form-field>\n </div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$: arFilterMainButtons$, arSecondaryButtons$: arFilterSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: _onFilterActionButtonClick }\"\n ></component-mapper>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-simple-table-select',\n templateUrl: './simple-table-select.component.html',\n styleUrls: ['./simple-table-select.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SimpleTableSelectComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n label = '';\n renderMode = '';\n showLabel = true;\n viewName = '';\n parameters = {};\n dataRelationshipContext = '';\n propsToUse;\n showSimpleTableManual: boolean;\n isSearchable: boolean;\n filters: any;\n listViewProps: any;\n pageClass: any;\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.updateSelf();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const theConfigProps: any = this.pConn$.getConfigProps();\n this.label = theConfigProps.label;\n this.renderMode = theConfigProps.renderMode;\n this.showLabel = theConfigProps.showLabel;\n this.viewName = theConfigProps.viewName;\n this.parameters = theConfigProps.parameters;\n this.dataRelationshipContext = theConfigProps.dataRelationshipContext;\n\n this.propsToUse = { label: this.label, showLabel: this.showLabel, ...this.pConn$.getInheritedProps() };\n\n if (this.propsToUse.showLabel === false) {\n this.propsToUse.label = '';\n }\n const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;\n const { selectionMode, selectionList }: any = this.pConn$.getConfigProps();\n const isMultiSelectMode = selectionMode === MULTI;\n if (isMultiSelectMode && this.renderMode === 'ReadOnly') {\n this.showSimpleTableManual = true;\n } else {\n const pageReference = this.pConn$.getPageReference();\n let referenceProp = isMultiSelectMode ? selectionList.substring(1) : pageReference.substring(pageReference.lastIndexOf('.') + 1);\n // Replace here to use the context name instead\n let contextPageReference: string | null = null;\n if (this.dataRelationshipContext !== null && selectionMode === 'single') {\n referenceProp = this.dataRelationshipContext;\n contextPageReference = pageReference.concat('.').concat(referenceProp);\n }\n const metadata = isMultiSelectMode\n ? // @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'\n this.pConn$.getFieldMetadata(`@P .${referenceProp}`)\n : // @ts-ignore - Property 'getCurrentPageFieldMetadata' is private and only accessible within class 'C11nEnv'\n this.pConn$.getCurrentPageFieldMetadata(contextPageReference);\n\n const { datasource: { parameters: fieldParameters = {} } = {}, pageClass } = metadata;\n\n this.pageClass = pageClass;\n const compositeKeys: any[] = [];\n Object.values(fieldParameters).forEach((param: any) => {\n if (this.isSelfReferencedProperty(param, referenceProp)) {\n compositeKeys.push(param.substring(param.lastIndexOf('.') + 1));\n }\n });\n\n this.processFiltrers(theConfigProps, compositeKeys);\n }\n }\n\n processFiltrers(theConfigProps, compositeKeys) {\n const defaultRowHeight = '2';\n\n const additionalTableConfig = {\n rowDensity: false,\n enableFreezeColumns: false,\n autoSizeColumns: false,\n resetColumnWidths: false,\n defaultFieldDef: {\n showMenu: false,\n noContextMenu: true,\n grouping: false\n },\n itemKey: '$key',\n defaultRowHeight\n };\n\n this.listViewProps = {\n ...theConfigProps,\n title: this.propsToUse.label,\n personalization: false,\n grouping: false,\n expandGroups: false,\n reorderFields: false,\n showHeaderIcons: false,\n editing: false,\n globalSearch: true,\n toggleFieldVisibility: false,\n basicMode: true,\n additionalTableConfig,\n compositeKeys,\n viewName: this.viewName,\n parameters: this.parameters\n };\n\n this.filters = (this.pConn$.getRawMetadata() as any).config.promotedFilters ?? [];\n\n this.isSearchable = this.filters.length > 0;\n }\n\n isSelfReferencedProperty(param, referenceProp) {\n const [, parentPropName] = param.split('.');\n return parentPropName === referenceProp;\n }\n}\n","<div *ngIf=\"showSimpleTableManual\">\n <component-mapper name=\"SimpleTable\" [props]=\"{ formGroup$, pConn$ }\"></component-mapper>\n</div>\n<div *ngIf=\"!showSimpleTableManual\">\n <div *ngIf=\"isSearchable; else listView\">\n <component-mapper\n name=\"PromotedFilters\"\n [props]=\"{ formGroup$, pConn$, viewName, filters, listViewProps, pageClass, parameters }\"\n ></component-mapper>\n </div>\n <ng-template #listView>\n <component-mapper name=\"ListView\" [props]=\"{ pConn$, payload: listViewProps }\"></component-mapper>\n </ng-template>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { buildMetaForListView, getContext } from '../simple-table-manual/helpers';\n\ninterface SimpleTableProps {\n // If any, enter additional props that only exist on this component\n multiRecordDisplayAs: string;\n contextClass: any;\n visibility: boolean;\n label: string;\n propertyLabel: string;\n displayMode: string;\n fieldMetadata: any;\n hideLabel: boolean;\n parameters: any;\n isDataObject: boolean;\n type: string;\n ruleClass: string;\n authorContext: string;\n name: string;\n}\n\n@Component({\n selector: 'app-simple-table',\n templateUrl: './simple-table.component.html',\n styleUrls: ['./simple-table.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SimpleTableComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n\n bVisible$ = true;\n configProps$: SimpleTableProps;\n fieldGroupProps: any;\n listViewProps: any;\n refToPConnect: any;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n // Then, continue on with other initialization\n\n // call checkAndUpdate when initializing\n this.checkAndUpdate();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SimpleTableProps;\n\n if (this.configProps$.visibility != null) {\n // eslint-disable-next-line no-multi-assign\n this.bVisible$ = this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n const { multiRecordDisplayAs } = this.configProps$;\n let { contextClass } = this.configProps$;\n if (!contextClass) {\n // @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'\n let listName = this.pConn$.getComponentConfig().referenceList;\n listName = PCore.getAnnotationUtils().getPropertyName(listName);\n // @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'\n contextClass = this.pConn$.getFieldMetadata(listName)?.pageClass;\n }\n if (multiRecordDisplayAs === 'fieldGroup') {\n this.fieldGroupProps = { ...this.configProps$, contextClass };\n }\n\n const {\n label: labelProp,\n propertyLabel,\n displayMode,\n fieldMetadata,\n hideLabel,\n parameters,\n isDataObject,\n type,\n ruleClass,\n authorContext,\n name\n } = this.configProps$;\n\n const label = labelProp || propertyLabel;\n\n const propsToUse = { label, ...this.pConn$.getInheritedProps() };\n const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n\n if (fieldMetadata && fieldMetadata.type === 'Page List' && fieldMetadata.dataRetrievalType === 'refer') {\n const {\n children: [{ children: rawFields }],\n parameters: rawParams\n } = (this.pConn$.getRawMetadata() as any).config;\n\n if (isDisplayModeEnabled && hideLabel) {\n propsToUse.label = '';\n }\n\n const metaForListView = buildMetaForListView(\n fieldMetadata,\n rawFields,\n type,\n ruleClass,\n name,\n propsToUse.label,\n isDataObject,\n parameters // resolved params\n );\n\n const metaForPConnect = JSON.parse(JSON.stringify(metaForListView));\n // @ts-ignore - PCore.getMetadataUtils().getPropertyMetadata - An argument for 'currentClassID' was not provided.\n metaForPConnect.config.parameters = rawParams ?? PCore.getMetadataUtils().getPropertyMetadata(name)?.datasource?.parameters;\n\n const { referenceListStr: referenceList } = getContext(this.pConn$);\n let requiredContextForQueryInDisplayMode = {};\n if (isDisplayModeEnabled) {\n requiredContextForQueryInDisplayMode = {\n referenceList\n };\n }\n const options = {\n context: this.pConn$.getContextName(),\n pageReference: this.pConn$.getPageReference(),\n ...requiredContextForQueryInDisplayMode\n };\n\n this.refToPConnect = PCore.createPConnect({ meta: metaForPConnect, options }).getPConnect();\n\n this.listViewProps = {\n ...metaForListView.config,\n displayMode,\n fieldName: authorContext\n };\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n}\n","<ng-container *ngIf=\"bVisible$\">\n <div *ngIf=\"fieldGroupProps || listViewProps; else table\">\n <div *ngIf=\"fieldGroupProps\">\n <component-mapper name=\"FieldGroupTemplate\" [props]=\"{ configProps$: fieldGroupProps, pConn$, formGroup$ }\"></component-mapper>\n </div>\n <div *ngIf=\"listViewProps\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$: refToPConnect, payload: listViewProps }\"></component-mapper>\n </div>\n </div>\n <ng-template #table>\n <component-mapper name=\"SimpleTableManual\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n </ng-template>\n</ng-container>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-single-reference-readonly',\n templateUrl: './single-reference-readonly.component.html',\n styleUrls: ['./single-reference-readonly.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class SingleReferenceReadonlyComponent {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n}\n","<component-mapper name=\"SemanticLink\" [props]=\"{ pConn$ }\"></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-two-column-page',\n templateUrl: './two-column-page.component.html',\n styleUrls: ['./two-column-page.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class TwoColumnPageComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n // AND removing the \"gate\" that was put there since shouldComponentUpdate\n // should be the real \"gate\"\n if (bUpdateSelf) {\n /* empty */\n }\n }\n}\n","<component-mapper name=\"TwoColumn\" [props]=\"{ formGroup$, pConn$ }\"></component-mapper>\n","import { Component, OnInit, Input, forwardRef, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-two-column',\n templateUrl: './two-column.component.html',\n styleUrls: ['./two-column.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TwoColumnComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n ngOnInit() {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n}\n","<div class=\"psdk-two-column\">\n <div *ngFor=\"let kid of arChildren$\">\n <div class=\"psdk-two-column-left\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'left'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-two-column-right\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'right'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-two-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-two-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-two-column-tab',\n templateUrl: './two-column-tab.component.html',\n styleUrls: ['./two-column-tab.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TwoColumnTabComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n ngOnInit(): void {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n}\n","<div class=\"psdk-two-column\">\n <div *ngFor=\"let kid of arChildren$\">\n <div class=\"psdk-two-column-left\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'left'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-two-column-right\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'right'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-two-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-two-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-wide-narrow-form',\n templateUrl: './wide-narrow-form.component.html',\n styleUrls: ['./wide-narrow-form.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class WideNarrowFormComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n ngOnInit() {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n}\n","<div class=\"psdk-narrow-wide-column\">\n <div *ngFor=\"let kid of arChildren$\">\n <div class=\"psdk-wide-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'left'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-narrow-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'right'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-wide-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n <div class=\"psdk-narrow-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-wide-narrow-page',\n templateUrl: './wide-narrow-page.component.html',\n styleUrls: ['./wide-narrow-page.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class WideNarrowPageComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n thePConnType = '';\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // normalize the pConn$ in case the incoming pConn$ is a 'reference'\n // this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n // console.log(`WideNarrowPage: updateSelf`);\n\n this.thePConnType = this.pConn$.getComponentName();\n }\n}\n","<div [ngSwitch]=\"this.thePConnType\">\n <component-mapper *ngSwitchCase=\"'ViewContainer'\" name=\"ViewContainer\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n <!-- NOTE: when we get the view, we want to render it as a wide-narrow-form -->\n <component-mapper *ngSwitchCase=\"'View'\" name=\"WideNarrowForm\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n <div *ngSwitchDefault>WideNarrowPage missing: {{ this.pConn$.getComponentName() }}</div>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\ninterface AppAnnouncementProps {\n // If any, enter additional props that only exist on this component\n header?: string;\n description?: string;\n whatsnewlink?: string;\n label?: string;\n datasource?: any;\n}\n\n@Component({\n selector: 'app-app-announcement',\n templateUrl: './app-announcement.component.html',\n styleUrls: ['./app-announcement.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule]\n})\nexport class AppAnnouncementComponent implements OnInit {\n @Input() pConn$: typeof PConnect;\n\n configProps$: AppAnnouncementProps;\n details$: any[];\n\n ngOnInit(): void {\n this.configProps$ = this.pConn$.getConfigProps();\n const { datasource } = this.configProps$;\n\n if (datasource?.source) {\n this.details$ = datasource.source.map(item => item.name);\n }\n }\n}\n","<article class=\"psdk-announcement\">\n <h2>{{ configProps$.header }}</h2>\n <div>\n <p>{{ configProps$.description }}</p>\n <div>\n <h3>{{ configProps$.label }}</h3>\n <ul>\n <li *ngFor=\"let detail of details$\">{{ detail }}</li>\n </ul>\n </div>\n </div>\n <a *ngIf=\"configProps$.whatsnewlink != ''\" mat-raised-button color=\"primary\" [href]=\"configProps$.whatsnewlink\">See what's new</a>\n</article>\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport download from 'downloadjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface AttachmentProps extends Omit<PConnFieldProps, 'value'> {\n // If any, enter additional props that only exist on this component\n value: any;\n extensions: any;\n allowMultiple: boolean;\n}\n\n@Component({\n selector: 'app-attachment',\n templateUrl: './attachment.component.html',\n styleUrls: ['./attachment.component.scss'],\n standalone: true,\n imports: [CommonModule, MatProgressSpinnerModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AttachmentComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n label$ = '';\n value$: any;\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n bLoading$ = false;\n arFiles$: any[] = [];\n arFileList$: any[] = [];\n removeFileFromList$: any;\n arMenuList$: any[] = [];\n bShowSelector$ = true;\n bShowJustDelete$ = false;\n att_valueRef: any;\n att_categoryName: string;\n att_id: string;\n myFiles: any;\n fileTemp: any = {};\n caseID: any;\n allowMultiple$ = false;\n extensions$ = '';\n status = '';\n validateMessage: string | undefined = '';\n valueRef: string;\n imagePath$: string;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n // // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.removeFileFromList$ = { onClick: this._removeFileFromList.bind(this) };\n\n this.caseID = PCore.getStoreValue('.pyID', 'caseInfo.content', this.pConn$.getContextName());\n\n // let configProps: any = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n\n PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, this.caseID);\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n updateAttachmentsInfo() {\n // @ts-ignore - Property 'attachmentsInfo' does not exist on type 'C11nEnv'\n if (!this.pConn$.attachmentsInfo) {\n // @ts-ignore - Property 'attachmentsInfo' does not exist on type 'C11nEnv'\n this.pConn$.attachmentsInfo = {\n type: 'File',\n attachmentFieldName: this.att_valueRef,\n category: this.att_categoryName\n };\n }\n }\n\n processFile(file, i) {\n file.props.type = file.responseProps.pyMimeFileExtension;\n file.props.mimeType = file.responseProps.pyMimeFileExtension;\n file.props.ID = file.responseProps.pzInsKey;\n\n const arMenuList = [\n {\n icon: 'download',\n text: this.pConn$.getLocalizedValue('Download', '', ''),\n onClick: () => this._downloadFileFromList(this.value$.pxResults[i])\n },\n {\n icon: 'trash',\n text: this.pConn$.getLocalizedValue('Delete', '', ''),\n onClick: () => this._removeFileFromList(this.arFileList$[i])\n }\n ];\n\n const arFilesAttachmentIDs: any = [];\n this.arFileList$.forEach(arFile => {\n arFilesAttachmentIDs.push(arFile.id);\n });\n\n if (!arFilesAttachmentIDs.includes(file.props.ID)) {\n this.arFileList$.push(\n this.getNewListUtilityItemProps({\n att: file.props,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n })\n );\n }\n\n this.arFileList$[i].actions = arMenuList;\n this.arFileList$[i].noDeleteIcon = true;\n\n this.bShowSelector$ = false;\n }\n\n updateSelf() {\n const configProps: AttachmentProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AttachmentProps;\n const stateProps: any = this.pConn$.getStateProps();\n\n const { value, label, extensions } = configProps;\n\n if (configProps.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(configProps.required);\n }\n if (configProps.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(configProps.visibility);\n }\n\n // disabled\n if (configProps.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(configProps.disabled);\n }\n\n if (configProps.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(configProps.readOnly);\n }\n\n if (configProps.allowMultiple != null) {\n this.allowMultiple$ = this.utils.getBooleanValue(configProps.allowMultiple);\n }\n\n this.bShowJustDelete$ = true;\n this.label$ = label;\n this.value$ = value;\n this.status = stateProps.status;\n this.validateMessage = this.angularPConnectData.validateMessage;\n this.extensions$ = extensions;\n this.valueRef = (this.pConn$.getStateProps() as any).value;\n this.valueRef = this.valueRef.startsWith('.') ? this.valueRef.substring(1) : this.valueRef;\n\n /* this is a temporary fix because required is supposed to be passed as a boolean and NOT as a string */\n let { required, disabled } = configProps;\n [required, disabled] = [required, disabled].map(prop => prop === true || (typeof prop === 'string' && prop === 'true'));\n\n this.att_categoryName = '';\n if (value && value.pyCategoryName) {\n this.att_categoryName = value.pyCategoryName;\n }\n\n this.att_valueRef = (this.pConn$.getStateProps() as any).value;\n this.att_valueRef = this.att_valueRef.indexOf('.') === 0 ? this.att_valueRef.substring(1) : this.att_valueRef;\n\n this.updateAttachments();\n }\n\n updateAttachments() {\n const attachmentsFromServer = this.value$ && this.value$.pxResults && +this.value$.pyCount > 0;\n\n if (attachmentsFromServer) {\n this.updateAttachmentsFromServer();\n } else {\n // Get the attachments from the Redux\n this.myFiles = this.getCurrentAttachmentsList(this.getAttachmentKey(this.att_valueRef), this.pConn$.getContextName());\n\n if (this.myFiles?.length && this.arFiles$.length === 0) {\n this.arFileList$ = this.myFiles.map(att => {\n return this.getNewListUtilityItemProps({\n att,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n });\n });\n }\n\n const myFilesAttachmentIDs: any = [];\n this.myFiles.forEach(myFile => {\n myFilesAttachmentIDs.push(myFile.ID);\n });\n\n this.arFiles$.forEach(arFile => {\n if (!myFilesAttachmentIDs.includes(arFile.ID)) {\n this.myFiles = [...this.myFiles, arFile];\n }\n });\n }\n\n this.bShowJustDelete$ = true;\n this.bShowSelector$ = !(this.arFileList$?.length > 0) || this.allowMultiple$;\n\n if (this.arFileList$.length > 0) {\n this.CheckForInvalidAttachment();\n }\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION,\n this.resetAttachmentStoredState.bind(this),\n this.caseID\n );\n }\n\n updateAttachmentsFromServer() {\n this.value$.pxResults.forEach((attachment, i) => {\n const file: any = this.buildFilePropsFromResponse(attachment);\n if (file.responseProps) {\n this.updateAttachmentsInfo();\n if (file.responseProps.pzInsKey && !file.responseProps.pzInsKey.includes('temp')) {\n this.processFile(file, i);\n }\n if (file) {\n const currentAttachmentList = this.getCurrentAttachmentsList(this.getAttachmentKey(this.att_valueRef), this.pConn$.getContextName());\n const index = currentAttachmentList.findIndex(element => element.props.ID === file.props.ID);\n let tempFiles: any = [];\n if (index < 0) {\n tempFiles = [file];\n }\n\n PCore.getStateUtils().updateState(\n this.pConn$.getContextName(),\n this.getAttachmentKey(this.att_valueRef),\n [...currentAttachmentList, ...tempFiles],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n }\n }\n });\n }\n\n resetAttachmentStoredState() {\n PCore.getStateUtils().updateState(this.pConn$.getContextName(), this.getAttachmentKey(this.att_valueRef), undefined, {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n });\n }\n\n _downloadFileFromList(fileObj: any) {\n PCore.getAttachmentUtils()\n // @ts-ignore - 3rd parameter \"responseEncoding\" should be optional\n .downloadAttachment(fileObj.pzInsKey, this.pConn$.getContextName())\n .then((content: any) => {\n const extension = fileObj.pyAttachName.split('.').pop();\n this.fileDownload(content.data, fileObj.pyFileName, extension);\n })\n .catch(e => {\n console.log(e);\n });\n }\n\n fileDownload = (data, fileName, ext) => {\n const file = ext ? `${fileName}.${ext}` : fileName;\n download(atob(data), file);\n };\n\n getAttachmentKey = (name = '') => (name ? `attachmentsList.${name}` : 'attachmentsList');\n\n CheckForInvalidAttachment() {\n let isValid = true;\n this.arFileList$.forEach(file => {\n if (file.secondary.error) {\n isValid = false;\n }\n });\n if (isValid) {\n // @ts-ignore\n PCore.getMessageManager().clearMessages({\n type: PCore.getConstants().MESSAGES.MESSAGES_TYPE_ERROR,\n property: (this.pConn$.getStateProps() as any).value,\n pageReference: this.pConn$.getPageReference(),\n context: this.pConn$.getContextName()\n });\n }\n }\n\n _removeFileFromList(item: any) {\n const fileListIndex = this.arFileList$.findIndex(element => element?.id === item?.id);\n const fileIndex = this.arFiles$.findIndex(element => element?.ID === item?.id);\n\n const attachmentsList = [];\n let currentAttachmentList = this.getCurrentAttachmentsList(this.getAttachmentKey(this.att_valueRef), this.pConn$.getContextName());\n if (this.value$ && this.value$.pxResults && +this.value$.pyCount > 0 && item.actions) {\n const updatedAttachments = currentAttachmentList.map(attachment => {\n if (attachment?.ID === this.arFileList$[fileListIndex].id || attachment?.props?.ID === this.arFileList$[fileListIndex].id) {\n return { ...attachment, delete: true, label: this.valueRef };\n }\n return attachment;\n });\n\n // updating the redux store to help form-handler in passing the data to delete the file from server\n PCore.getStateUtils().updateState(this.pConn$.getContextName(), this.getAttachmentKey(this.att_valueRef), updatedAttachments, {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n });\n } else {\n currentAttachmentList = currentAttachmentList.filter(f => f.ID !== item.id);\n PCore.getStateUtils().updateState(\n this.pConn$.getContextName(),\n this.getAttachmentKey(this.att_valueRef),\n [...currentAttachmentList, ...attachmentsList],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n }\n\n if (fileListIndex > -1) {\n this.arFileList$.splice(fileListIndex, 1);\n }\n if (fileIndex > -1) {\n this.arFiles$.splice(fileIndex, 1);\n }\n\n this.CheckForInvalidAttachment();\n\n this.bShowSelector$ = !(this.arFileList$?.length > 0) || this.allowMultiple$;\n }\n\n getCurrentAttachmentsList(key, context) {\n return PCore.getStoreValue(`.${key}`, 'context_data', context) || [];\n }\n\n errorHandler(isFetchCanceled, file) {\n return error => {\n if (!isFetchCanceled(error)) {\n let uploadFailMsg = this.pConn$.getLocalizedValue('Something went wrong', '', '');\n if (error.response && error.response.data && error.response.data.errorDetails) {\n uploadFailMsg = this.pConn$.getLocalizedValue(error.response.data.errorDetails[0].localizedValue, '', '');\n }\n for (const myFile of this.myFiles) {\n if (myFile.ID === file.ID) {\n myFile.meta = uploadFailMsg;\n myFile.error = true;\n myFile.fileName = this.pConn$.getLocalizedValue('Unable to upload file', '', '');\n }\n }\n this.bShowSelector$ = false;\n this.arFileList$ = this.myFiles.map(att => {\n if (att.id) {\n return att;\n }\n return this.getNewListUtilityItemProps({\n att,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n });\n });\n\n PCore.getMessageManager().addMessages({\n // @ts-ignore\n messages: [\n {\n type: 'error',\n message: this.pConn$.getLocalizedValue('Error with one or more files', '', '')\n }\n ],\n property: (this.pConn$.getStateProps() as any).value,\n pageReference: this.pConn$.getPageReference(),\n context: this.pConn$.getContextName()\n });\n\n this.bShowJustDelete$ = true;\n this.bLoading$ = false;\n }\n throw error;\n };\n }\n\n uploadMyFiles(event: any) {\n let arrAttachmentFiles: any = [];\n if (this.arFiles$.length) {\n arrAttachmentFiles = this.arFiles$;\n } else {\n arrAttachmentFiles = this.arFileList$;\n }\n this.arFiles$ = [...arrAttachmentFiles, ...this.getFiles(event.target.files)];\n\n // convert FileList to an array\n this.myFiles = Array.from(this.arFiles$);\n\n this.bLoading$ = true;\n\n const filesToBeUploaded = this.myFiles\n .filter(e => {\n if (e.id) {\n return false;\n }\n const isFileUploaded = e && e.progress === 100;\n const fileHasError = e && e.error;\n const isFileUploadedinLastStep = e.responseProps && e.responseProps.pzInsKey;\n return !isFileUploaded && !fileHasError && !isFileUploadedinLastStep;\n })\n .map(f =>\n PCore.getAttachmentUtils().uploadAttachment(\n f,\n () => {\n this.onUploadProgress();\n },\n isFetchCanceled => {\n return this.errorHandler(isFetchCanceled, f);\n },\n this.pConn$.getContextName()\n )\n );\n\n Promise.allSettled(filesToBeUploaded)\n .then((fileResponses: any) => {\n this.handleFileUploadSuccess(fileResponses);\n })\n .catch(error => {\n console.log(error);\n this.handleFileUploadFailure();\n });\n }\n\n handleFileUploadSuccess(fileResponses) {\n const successFileResponses = fileResponses.filter(fr => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block\n let reqObj;\n if (successFileResponses.length > 0) {\n const tempFilesUploaded = [...this.arFiles$.filter(file => !file.id)];\n let newAttachments: any = [];\n tempFilesUploaded.forEach(fileRes => {\n const index = successFileResponses.findIndex((fr: any) => fr.value.clientFileID === fileRes.ID);\n if (index >= 0) {\n reqObj = {\n type: 'File',\n label: this.att_valueRef,\n category: this.att_categoryName,\n handle: successFileResponses[index].value.ID,\n ID: fileRes.ID,\n name: fileRes.name\n };\n newAttachments = [...newAttachments, reqObj];\n }\n });\n const currentAttachmentList = this.getCurrentAttachmentsList(this.getAttachmentKey(this.att_valueRef), this.pConn$.getContextName()).filter(\n f => f.label !== this.att_valueRef\n );\n PCore.getStateUtils().updateState(\n this.pConn$.getContextName(),\n this.getAttachmentKey(this.att_valueRef),\n [...currentAttachmentList, ...newAttachments],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n this.arFiles$ = tempFilesUploaded;\n\n this.ngZone.run(() => {\n this.bShowSelector$ = this.allowMultiple$;\n this.arFiles$.forEach(file => {\n if (!file.error) {\n file.meta = this.pConn$.getLocalizedValue('File uploaded successfully', '', '');\n }\n });\n this.arFileList$ = this.myFiles.map(att => {\n if (att.id) {\n return att;\n }\n return this.getNewListUtilityItemProps({\n att,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n });\n });\n\n this.CheckForInvalidAttachment();\n\n this.bShowJustDelete$ = true;\n this.bLoading$ = false;\n });\n }\n }\n\n handleFileUploadFailure() {\n this.bShowJustDelete$ = true;\n this.bLoading$ = false;\n this.bShowSelector$ = this.allowMultiple$;\n this.myFiles.forEach(file => {\n if (file?.secondary?.error) {\n file.meta = 'File uploaded failed';\n }\n });\n\n this.arFileList$ = this.myFiles.map(att => {\n return this.getNewListUtilityItemProps({\n att,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n });\n });\n\n this.bShowJustDelete$ = true;\n this.bLoading$ = false;\n }\n\n getNewListUtilityItemProps = ({ att, cancelFile, downloadFile, deleteFile, removeFile }) => {\n let actions;\n let isDownloadable = false;\n\n if (att.progress && att.progress !== 100) {\n actions = [\n {\n id: `Cancel-${att.ID}`,\n text: this.pConn$.getLocalizedValue('Cancel', '', ''),\n icon: 'times',\n onClick: cancelFile\n }\n ];\n } else if (att.links) {\n const isFile = att.type === 'FILE';\n const ID = att.ID.replace(/\\s/gi, '');\n const actionsMap = new Map([\n [\n 'download',\n {\n id: `download-${ID}`,\n text: isFile ? this.pConn$.getLocalizedValue('Download', '', '') : this.pConn$.getLocalizedValue('Open', '', ''),\n icon: isFile ? 'download' : 'open',\n onClick: downloadFile\n }\n ],\n [\n 'delete',\n {\n id: `Delete-${ID}`,\n text: this.pConn$.getLocalizedValue('Delete', '', ''),\n icon: 'trash',\n onClick: deleteFile\n }\n ]\n ]);\n actions = [];\n actionsMap.forEach((action, actionKey) => {\n if (att.links[actionKey]) {\n actions.push(action);\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isDownloadable = att.links.download;\n } else if (att.error) {\n actions = [\n {\n id: `Remove-${att.ID}`,\n text: this.pConn$.getLocalizedValue('Remove', '', ''),\n icon: 'trash',\n onClick: removeFile\n }\n ];\n }\n\n return {\n id: att.ID,\n visual: {\n icon: this.utils.getIconForAttachment(att),\n progress: att.progress == 100 ? undefined : att.progress\n },\n primary: {\n type: att.type,\n name: att.error ? att.fileName : att.name,\n icon: 'trash',\n click: removeFile\n },\n secondary: {\n text: att.meta,\n error: att.error\n },\n actions\n };\n };\n\n onUploadProgress() {}\n\n getFiles(arFiles: any[]): any[] {\n const files = this.allowMultiple$ ? arFiles : [arFiles[0]];\n return this.setNewFiles(files);\n }\n\n setNewFiles(arFiles) {\n let index = 0;\n const maxAttachmentSize = PCore.getEnvironmentInfo().getMaxAttachmentSize() || 5;\n for (const file of arFiles) {\n file.mimeType = file.type;\n file.icon = this.utils.getIconFromFileType(file.type);\n file.ID = `${new Date().getTime()}I${index}`;\n\n if (!this.validateMaxSize(file, maxAttachmentSize)) {\n file.error = true;\n file.meta = this.pConn$.getLocalizedValue('File is too big. Max allowed size is 5MB.', '', '');\n } else if (!this.validateFileExtension(file, this.extensions$)) {\n file.error = true;\n file.meta = `${this.pConn$.getLocalizedValue('File has invalid extension. Allowed extensions are:', '', '')} ${this.extensions$.replaceAll(\n '.',\n ''\n )}`;\n }\n if (file.error) {\n const fieldName = (this.pConn$.getStateProps() as any).value;\n const context = this.pConn$.getContextName();\n PCore.getMessageManager().addMessages({\n // @ts-ignore\n messages: [\n {\n type: 'error',\n message: this.pConn$.getLocalizedValue('Error with one or more files', '', '')\n }\n ],\n property: fieldName,\n pageReference: this.pConn$.getPageReference(),\n context\n });\n }\n index++;\n }\n\n return [...arFiles];\n }\n\n validateMaxSize(fileObj, maxSizeInMB): boolean {\n const fileSize = (fileObj.size / 1048576).toFixed(2);\n return parseFloat(fileSize) < parseFloat(maxSizeInMB);\n }\n\n validateFileExtension = (fileObj, allowedExtensions) => {\n if (!allowedExtensions) {\n return true;\n }\n const allowedExtensionList = allowedExtensions\n .toLowerCase()\n .split(',')\n .map(item => item.replaceAll('.', '').trim());\n const extension = fileObj.name.split('.').pop().toLowerCase();\n return allowedExtensionList.includes(extension);\n };\n\n buildFilePropsFromResponse(respObj) {\n return {\n props: {\n meta: `${respObj.pyCategoryName}, ${respObj.pxCreateOperator}`,\n name: respObj.pyAttachName,\n icon: this.utils.getIconFromFileType(respObj.pyMimeFileExtension)\n },\n responseProps: {\n ...respObj\n }\n };\n }\n}\n","<div class=\"psdk-label-infix-readonly\" *ngIf=\"bVisible$\">\n <span class=\"psdk-label-wrapper-readonly\">\n <label [ngClass]=\"{ 'psdk-label-readonly': true, 'label-required': bRequired$ === true }\" [htmlFor]=\"att_valueRef\">{{ label$ }}</label>\n </span>\n <div\n [ngClass]=\"{ 'psdk-modal-file-selector': status !== 'error', 'psdk-modal-file-selector-error': status === 'error' }\"\n id=\"attachment-container\"\n *ngIf=\"bShowSelector$\"\n >\n <mat-spinner *ngIf=\"bLoading$\" class=\"progress-spinner\" diameter=\"40\"></mat-spinner>\n <input hidden type=\"file\" [required]=\"bRequired$\" #uploader [id]=\"att_valueRef\" [multiple]=\"allowMultiple$\" (change)=\"uploadMyFiles($event)\" />\n\n <button mat-stroked-button color=\"primary\" [disabled]=\"bDisabled$\" (click)=\"uploader.click()\">\n {{ allowMultiple$ ? 'Upload files' : 'Upload file' }}\n </button>\n </div>\n <span *ngIf=\"validateMessage\" class=\"file-error\">{{ validateMessage }}</span>\n\n <div class=\"psdk-attachment-list\" *ngIf=\"arFileList$ != null && arFileList$.length > 0\">\n <div *ngFor=\"let attachment of arFileList$\">\n <component-mapper\n *ngIf=\"attachment.noDeleteIcon !== true; else showfull\"\n name=\"SummaryItem\"\n [props]=\"{ item$: attachment, menuIconOverride$: 'trash', menuIconOverrideAction$: removeFileFromList$ }\"\n ></component-mapper>\n <ng-template #showfull>\n <component-mapper name=\"SummaryItem\" [props]=\"{ item$: attachment, menuIconOverrideAction$: removeFileFromList$ }\"></component-mapper>\n </ng-template>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface CaseHistoryProps {\n label?: string;\n}\n\n@Component({\n selector: 'app-case-history',\n templateUrl: './case-history.component.html',\n styleUrls: ['./case-history.component.scss'],\n standalone: true,\n imports: [CommonModule, MatTableModule]\n})\nexport class CaseHistoryComponent implements OnInit {\n @Input() pConn$: typeof PConnect;\n\n configProps$: CaseHistoryProps;\n\n repeatList$: MatTableDataSource<any>;\n fields$: any[];\n displayedColumns$ = Array<any>();\n waitingForData = false;\n\n constructor(private utils: Utils) {}\n\n ngOnInit(): void {\n this.configProps$ = this.pConn$.getConfigProps();\n\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n const dataViewName = 'D_pyWorkHistory';\n const context = this.pConn$.getContextName();\n\n this.waitingForData = true;\n\n const caseHistoryData = PCore.getDataApiUtils().getData(\n dataViewName,\n { dataViewParameters: [{ CaseInstanceKey: caseID }] } as any,\n context\n ) as Promise<any>;\n\n caseHistoryData.then((historyJSON: any) => {\n this.fields$ = [\n { label: this.pConn$.getLocalizedValue('Date', '', ''), type: 'DateTime', fieldName: 'pxTimeCreated' },\n { label: this.pConn$.getLocalizedValue('Description', '', ''), type: 'TextInput', fieldName: 'pyMessageKey' },\n { label: this.pConn$.getLocalizedValue('User', '', ''), type: 'TextInput', fieldName: 'pyPerformer' }\n ];\n\n const tableDataResults = this.updateData(historyJSON.data.data, this.fields$);\n\n this.displayedColumns$ = this.getDisplayColumns(this.fields$);\n\n this.repeatList$ = new MatTableDataSource(tableDataResults);\n\n this.waitingForData = false;\n });\n }\n // This method isn't being used anywhere, keeping it as a reference for now\n // updateFields(arFields, arColumns): any[] {\n // const arReturn = arFields;\n // for (const i in arReturn) {\n // arReturn[i].config.name = arColumns[i];\n // }\n\n // return arReturn;\n // }\n\n updateData(listData: any[], fieldData: any[]): any[] {\n const returnList: any[] = new Array<any>();\n listData.forEach(row => {\n // copy\n const rowData = JSON.parse(JSON.stringify(row));\n\n for (const field of fieldData) {\n const fieldName = field.fieldName;\n let formattedDate;\n\n switch (field.type) {\n case 'Date':\n formattedDate = this.utils.generateDate(rowData[fieldName], 'Date-Short-YYYY');\n rowData[fieldName] = formattedDate;\n break;\n case 'DateTime':\n formattedDate = this.utils.generateDateTime(rowData[fieldName], 'DateTime-Short-YYYY');\n rowData[fieldName] = formattedDate;\n break;\n default:\n break;\n }\n }\n returnList.push(rowData);\n });\n return returnList;\n }\n\n getDisplayColumns(fields: any[] = []) {\n return fields.map(field => {\n return field.fieldName;\n });\n }\n}\n","<div>\n <h2 class=\"psdk-case-history-title\">{{ configProps$.label }}</h2>\n <table mat-table [dataSource]=\"repeatList$\">\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.fieldName\">\n <th mat-header-cell *matHeaderCellDef>{{ dCol.label }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.fieldName] }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n </table>\n</div>\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport download from 'downloadjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface FileUtilityProps {\n // If any, enter additional props that only exist on this component\n label?: string;\n}\n\n@Component({\n selector: 'app-file-utility',\n templateUrl: './file-utility.component.html',\n styleUrls: ['./file-utility.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class FileUtilityComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n arFullListAttachments: any[] = [];\n\n lu_name$ = '';\n lu_icon$ = '';\n lu_bLoading$ = false;\n lu_count$ = 0;\n lu_arActions$: any[] = [];\n lu_arItems$: any = [];\n\n va_arItems$: any[] = [];\n\n lu_onViewAllFunction: any;\n\n bShowFileModal$ = false;\n bShowLinkModal$ = false;\n bShowViewAllModal$ = false;\n\n arFileMainButtons$: any[] = [];\n arFileSecondaryButtons$: any[] = [];\n\n arLinkMainButtons$: any[] = [];\n arLinkSecondaryButtons$: any[] = [];\n\n arFiles$: any[] = [];\n arFileList$: any[] = [];\n removeFileFromList$: any;\n\n arLinks$: any[] = [];\n arLinksList$: any[] = [];\n removeLinksFromList$: any;\n\n link_title$ = '';\n link_url$ = '';\n\n closeSvgIcon$ = '';\n\n currentCaseID = '';\n\n addAttachmentsActions: any[] = [\n {\n text: 'Add files',\n id: 'addNewFiles',\n onClick: () => this.createModal('addLocalFile')\n },\n {\n text: 'Add links',\n id: 'addNewLinks',\n onClick: () => this.createModal('addLocalLink')\n }\n ];\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n // // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n const configProps: FileUtilityProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n\n this.lu_name$ = configProps.label ?? '';\n this.lu_icon$ = 'paper-clip';\n\n this.closeSvgIcon$ = this.utils.getImageSrc('times', this.utils.getSDKStaticContentUrl());\n\n // const onViewAllCallback = () => this.onViewAll(this.arFullListAttachments);\n\n this.lu_onViewAllFunction = { onClick: this.onViewAll.bind(this) };\n\n this.removeFileFromList$ = { onClick: this.removeFileFromList.bind(this) };\n this.removeLinksFromList$ = { onClick: this.removeLinksFromList.bind(this) };\n\n this.updateSelf();\n\n this.createModalButtons();\n\n PCore.getPubSubUtils().subscribe(\n (PCore.getEvents().getCaseEvent() as any).CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW,\n this.updateSelf.bind(this),\n 'caseAttachmentsUpdateFromCaseview'\n );\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n\n PCore.getPubSubUtils().unsubscribe(\n (PCore.getEvents().getCaseEvent() as any).CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW,\n 'caseAttachmentsUpdateFromCaseview'\n );\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n // adding a property to track in configProps, when ever the attachment file changes\n // need to trigger a redraw\n this.pConn$.registerAdditionalProps({\n lastRefreshTime: `@P ${PCore.getConstants().SUMMARY_OF_ATTACHMENTS_LAST_REFRESH_TIME}`\n });\n\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf || this.caseHasChanged()) {\n this.updateSelf();\n }\n }\n\n onAttachFiles(files) {\n const attachmentUtils = PCore.getAttachmentUtils();\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n\n if (files.length > 0) {\n this.lu_bLoading$ = true;\n }\n\n // const uploadedFiles = [];\n\n for (const file of files) {\n attachmentUtils\n .uploadAttachment(file, this.onUploadProgress, this.errorHandler, this.pConn$.getContextName())\n .then((fileResponse: any) => {\n if (fileResponse.type === 'File') {\n (attachmentUtils.linkAttachmentsToCase(caseID, [fileResponse], 'File', this.pConn$.getContextName()) as Promise<any>)\n .then(() => {\n this.refreshAttachments();\n })\n .catch(console.error);\n }\n })\n .catch(console.error);\n }\n\n this.arFileList$ = [];\n }\n\n refreshAttachments() {\n this.updateSelf();\n }\n\n onUploadProgress() {}\n\n errorHandler() {}\n\n onAttachLinks(links) {\n const attachmentUtils = PCore.getAttachmentUtils();\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n\n if (links.length > 0) {\n this.lu_bLoading$ = true;\n }\n\n const linksToAttach = links.map(link => ({\n type: 'URL',\n category: 'URL',\n url: link.url,\n name: link.linkTitle\n }));\n\n (attachmentUtils.linkAttachmentsToCase(caseID, linksToAttach, 'URL', this.pConn$.getContextName()) as Promise<any>)\n .then(() => {\n this.refreshAttachments();\n })\n .catch(console.log);\n }\n\n addAttachments(attsFromResp: any[] = []) {\n this.lu_bLoading$ = false;\n\n attsFromResp = attsFromResp.map(respAtt => {\n const updatedAtt = {\n ...respAtt,\n meta: `${respAtt.category} . ${this.utils.generateDateTime(respAtt.createTime, 'DateTime-Since')}, ${respAtt.createdBy}`\n };\n if (updatedAtt.type === 'FILE') {\n updatedAtt.nameWithExt = updatedAtt.fileName;\n }\n return updatedAtt;\n });\n\n return attsFromResp;\n }\n\n onViewAll(): void {\n this.bShowViewAllModal$ = true;\n\n // add clickAway listener\n // window.addEventListener('mouseup', this._clickAway.bind(this));\n }\n\n // Below method is not needed, still having it commented in case we want in future\n // _clickAway(event: any) {\n // let bInPopUp = false;\n\n // // run through list of elements in path, if menu not in th path, then want to\n // // hide (toggle) the menu\n // for (const i in event.path) {\n // if (event.path[i].className == 'psdk-modal-file-top' || event.path[i].tagName == 'BUTTON') {\n // bInPopUp = true;\n // break;\n // }\n // }\n // if (!bInPopUp) {\n // this.bShowViewAllModal$ = false;\n\n // window.removeEventListener('mouseup', this._clickAway.bind(this));\n // }\n // }\n\n _closeViewAll() {\n this.bShowViewAllModal$ = false;\n\n // window.removeEventListener('mouseup', this._clickAway.bind(this));\n }\n\n removeFileFromList(item: any) {\n if (item != null) {\n const arFileList = this.arFileList$;\n const itemId = item.id;\n\n for (let fileIndex = 0; fileIndex < arFileList.length; fileIndex++) {\n if (arFileList[fileIndex].id == itemId) {\n // remove the file from the list and redraw\n this.ngZone.run(() => {\n arFileList.splice(fileIndex, 1);\n });\n break;\n }\n }\n }\n }\n\n removeLinksFromList(item: any) {\n const localLinksList = this.arLinksList$.slice();\n\n if (item != null) {\n const itemId = item.id;\n\n for (let linkIndex = 0; linkIndex < localLinksList.length; linkIndex++) {\n if (localLinksList[linkIndex].id == itemId) {\n // remove the file from the list and redraw\n localLinksList.splice(linkIndex, 1);\n\n this.ngZone.run(() => {\n this.arLinksList$ = localLinksList.slice();\n });\n\n break;\n }\n }\n }\n }\n\n getNewListUtilityItemProps = ({ att, cancelFile, downloadFile, deleteFile, removeFile }) => {\n let actions;\n let isDownloadable = false;\n\n if (att.progress && att.progress !== 100) {\n actions = [\n {\n id: `Cancel-${att.ID}`,\n text: 'Cancel',\n icon: 'times',\n onClick: cancelFile\n }\n ];\n } else if (att.links) {\n const isFile = att.type === 'FILE';\n const ID = att.ID.replace(/\\s/gi, '');\n const actionsMap = new Map([\n [\n 'download',\n {\n id: `download-${ID}`,\n text: isFile ? 'Download' : 'Open',\n icon: isFile ? 'download' : 'open',\n onClick: downloadFile\n }\n ],\n [\n 'delete',\n {\n id: `Delete-${ID}`,\n text: 'Delete',\n icon: 'trash',\n onClick: deleteFile\n }\n ]\n ]);\n actions = [];\n actionsMap.forEach((action, actionKey) => {\n if (att.links[actionKey]) {\n actions.push(action);\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isDownloadable = att.links.download;\n } else if (att.error) {\n actions = [\n {\n id: `Remove-${att.ID}`,\n text: 'Remove',\n icon: 'trash',\n onClick: removeFile\n }\n ];\n }\n\n return {\n id: att.ID,\n visual: {\n icon: this.utils.getIconForAttachment(att),\n progress: att.progress == 100 ? undefined : att.progress\n },\n primary: {\n type: att.type,\n name: att.name,\n icon: 'trash',\n click: removeFile\n },\n secondary: {\n text: att.meta\n },\n actions\n };\n };\n\n getListUtilityItemProps = ({ att, cancelFile, downloadFile, deleteFile, removeFile }) => {\n let actions;\n let isDownloadable = false;\n\n if (att.progress && att.progress !== 100) {\n actions = [\n {\n id: `Cancel-${att.ID}`,\n text: this.pConn$.getLocalizedValue('Cancel', '', ''),\n icon: 'times',\n onClick: cancelFile\n }\n ];\n } else if (att.links) {\n const isFile = att.type === 'FILE';\n const ID = att.ID.replace(/\\s/gi, '');\n const actionsMap = new Map([\n [\n 'download',\n {\n id: `download-${ID}`,\n text: isFile ? this.pConn$.getLocalizedValue('Download', '', '') : this.pConn$.getLocalizedValue('Open', '', ''),\n icon: isFile ? 'download' : 'open',\n onClick: downloadFile\n }\n ],\n [\n 'delete',\n {\n id: `Delete-${ID}`,\n text: this.pConn$.getLocalizedValue('Delete', '', ''),\n icon: 'trash',\n onClick: deleteFile\n }\n ]\n ]);\n actions = [];\n actionsMap.forEach((action, actionKey) => {\n if (att.links[actionKey]) {\n actions.push(action);\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isDownloadable = att.links.download;\n } else if (att.error) {\n actions = [\n {\n id: `Remove-${att.ID}`,\n text: this.pConn$.getLocalizedValue('Remove', '', ''),\n icon: 'trash',\n onClick: removeFile\n }\n ];\n }\n\n return {\n id: att.ID,\n visual: {\n icon: this.utils.getIconForAttachment(att),\n progress: att.progress == 100 ? undefined : att.progress\n },\n primary: {\n type: att.type,\n name: att.name,\n icon: 'open',\n click: downloadFile\n },\n secondary: {\n text: att.meta\n },\n actions\n };\n };\n\n _addLink() {\n // copy list locally\n const localList = this.arLinksList$.slice();\n\n const url = this.link_url$;\n\n if (!/^(http|https):\\/\\//.test(this.link_url$)) {\n this.link_url$ = `http://${this.link_url$}`;\n }\n\n // list for display\n let oLink: any = {};\n oLink.icon = 'chain';\n\n oLink.ID = `${new Date().getTime()}`;\n\n oLink = this.getNewListUtilityItemProps({\n att: oLink,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n });\n\n oLink.type = 'URL';\n oLink.primary.type = oLink.type;\n oLink.visual.icon = 'chain';\n oLink.primary.name = this.link_title$;\n oLink.primary.icon = 'open';\n oLink.secondary.text = url;\n\n this.ngZone.run(() => {\n // need to create a new array or summary list won't detect changes\n this.arLinksList$ = localList.slice();\n this.arLinksList$.push(oLink);\n\n // list for actually attachments\n const link: any = {};\n link.id = oLink.id;\n link.linkTitle = this.link_title$;\n link.type = oLink.type;\n link.url = url;\n\n this.arLinks$.push(link);\n\n // clear values\n this.link_title$ = '';\n this.link_url$ = '';\n });\n }\n\n _changeTitle(event: any) {\n this.link_title$ = event.srcElement.value;\n }\n\n _changeUrl(event: any) {\n this.link_url$ = event.srcElement.value;\n }\n\n downloadFile(att: any) {\n const attachUtils = PCore.getAttachmentUtils();\n const { ID, name, extension, type } = att;\n const context = this.pConn$.getContextName();\n\n attachUtils\n // @ts-ignore - 3rd parameter \"responseEncoding\" is optional\n .downloadAttachment(ID, context)\n .then((content: any) => {\n if (type === 'FILE') {\n this.fileDownload(content.data, name, extension);\n } else if (type === 'URL') {\n let { data } = content;\n if (!/^(http|https):\\/\\//.test(data)) {\n data = `//${data}`;\n }\n window.open(content.data, '_blank');\n }\n })\n .catch(console.error);\n }\n\n fileDownload = (data, fileName, ext) => {\n const file = ext ? `${fileName}.${ext}` : fileName;\n download(atob(data), file);\n };\n\n cancelFile() {\n alert('cancel');\n }\n\n deleteFile(att: any) {\n setTimeout(() => {\n const attachUtils = PCore.getAttachmentUtils();\n const { ID } = att;\n const context = this.pConn$.getContextName();\n\n attachUtils\n .deleteAttachment(ID, context)\n .then(() => {\n this.updateSelf();\n // let newAttachments;\n // setAttachments((current) => {\n // newAttachments = current.filter((file) => file.ID !== ID);\n // return newAttachments;\n // });\n // if (callbackFn) {\n // callbackFn(newAttachments);\n // }\n })\n .catch(console.error);\n });\n }\n\n removeFile() {\n alert('remove');\n }\n\n removeNewFile() {\n alert('remove');\n }\n\n createModal(modalType: string) {\n switch (modalType) {\n case 'addLocalFile':\n this.ngZone.run(() => {\n this.bShowFileModal$ = true;\n });\n\n break;\n case 'addLocalLink':\n this.ngZone.run(() => {\n this.bShowLinkModal$ = true;\n });\n break;\n default:\n break;\n }\n }\n\n createModalButtons() {\n this.arFileMainButtons$.push({ actionID: 'attach', jsAction: 'attachFiles', name: this.pConn$.getLocalizedValue('Attach files', '', '') });\n this.arFileSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: this.pConn$.getLocalizedValue('Cancel', '', '') });\n\n this.arLinkMainButtons$.push({ actionID: 'attach', jsAction: 'attachLinks', name: this.pConn$.getLocalizedValue('Attach links', '', '') });\n this.arLinkSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: this.pConn$.getLocalizedValue('Cancel', '', '') });\n }\n\n uploadMyFiles($event) {\n // alert($event.target.files[0]); // outputs the first file\n this.arFiles$ = this.getFiles($event.target.files);\n\n // convert FileList to an array\n const myFiles = Array.from(this.arFiles$);\n\n this.arFileList$ = myFiles.map(att => {\n return this.getNewListUtilityItemProps({\n att,\n downloadFile: !att.progress ? () => this.downloadFile(att) : null,\n cancelFile: att.progress ? () => this.cancelFile() : null,\n deleteFile: !att.progress ? () => this.deleteFile(att) : null,\n removeFile: att.error ? () => this.removeNewFile() : null\n });\n });\n }\n\n getFiles(arFiles: any[]): any[] {\n return this.setNewFiles(arFiles);\n }\n\n setNewFiles(arFiles) {\n let index = 0;\n for (const file of arFiles) {\n if (!this.validateMaxSize(file, 5)) {\n file.error = true;\n file.meta = 'File is too big. Max allowed size is 5MB.';\n }\n file.mimeType = file.type;\n file.icon = this.utils.getIconFromFileType(file.type);\n file.ID = `${new Date().getTime()}I${index}`;\n index++;\n }\n\n return arFiles;\n }\n\n validateMaxSize(fileObj, maxSizeInMB): boolean {\n const fileSize = (fileObj.size / 1048576).toFixed(2);\n return fileSize < maxSizeInMB;\n }\n\n onFileActionButtonClick(event: any) {\n // modal buttons\n switch (event.action) {\n case 'cancel':\n this.bShowFileModal$ = false;\n\n this.clearOutFiles();\n break;\n case 'attachFiles':\n this.bShowFileModal$ = false;\n this.onAttachFiles(this.arFiles$);\n\n this.clearOutFiles();\n break;\n default:\n break;\n }\n }\n\n onLinkActionButtonClick(event: any) {\n // modal buttons\n switch (event.action) {\n case 'cancel':\n this.bShowLinkModal$ = false;\n\n this.clearOutLinks();\n break;\n case 'attachLinks':\n this.bShowLinkModal$ = false;\n this.onAttachLinks(this.arLinks$);\n\n this.clearOutLinks();\n break;\n default:\n break;\n }\n }\n\n clearOutFiles() {\n this.arFileList$ = [];\n this.arFiles$ = [];\n }\n\n clearOutLinks() {\n this.arLinksList$ = [];\n this.arLinks$ = [];\n this.link_title$ = '';\n this.link_url$ = '';\n }\n\n addALink() {}\n\n _fieldOnChangeLink(event: any) {\n this.link_title$ = event.target.value;\n }\n\n _fieldOnChangeURL(event: any) {\n this.link_url$ = event.target.value;\n }\n\n updateSelf() {\n const caseID = this.getCaseID();\n\n if (caseID) {\n this.lu_bLoading$ = true;\n\n this.fetchCaseAttachments(caseID).then(resp => {\n this.handleAttachmentsResponse(resp);\n });\n }\n }\n\n getCaseID() {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n return this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID) || '';\n }\n\n fetchCaseAttachments(caseID) {\n const attachmentUtils = PCore.getAttachmentUtils();\n return attachmentUtils.getCaseAttachments(caseID, this.pConn$.getContextName());\n }\n\n handleAttachmentsResponse(resp) {\n this.arFullListAttachments = this.addAttachments(resp);\n this.lu_count$ = this.arFullListAttachments.length;\n this.lu_arActions$ = this.addAttachmentsActions;\n\n this.lu_arItems$ = this.getUtilityItems(this.arFullListAttachments.slice(0, 3));\n this.va_arItems$ = this.getUtilityItems(this.arFullListAttachments);\n }\n\n getUtilityItems(attachments) {\n return attachments.map(this.mapAttachmentToUtilityItem.bind(this));\n }\n\n mapAttachmentToUtilityItem(att) {\n return this.getListUtilityItemProps({\n att,\n downloadFile: this.getDownloadFunction(att),\n cancelFile: this.getCancelFunction(att),\n deleteFile: this.getDeleteFunction(att),\n removeFile: this.getRemoveFunction(att)\n });\n }\n\n getDownloadFunction(att) {\n return !att.progress ? () => this.downloadFile(att) : null;\n }\n\n getCancelFunction(att) {\n return att.progress ? () => this.cancelFile() : null;\n }\n\n getDeleteFunction(att) {\n return !att.progress ? () => this.deleteFile(att) : null;\n }\n\n getRemoveFunction(att) {\n return att.error ? () => this.removeFile() : null;\n }\n\n caseHasChanged(): boolean {\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n if (this.currentCaseID !== caseID) {\n this.currentCaseID = caseID;\n return true;\n }\n\n return false;\n }\n}\n","<div>\n <component-mapper\n name=\"ListUtility\"\n [props]=\"{\n name$: lu_name$,\n icon$: lu_icon$,\n bLoading$: lu_bLoading$,\n count$: lu_count$,\n arActions$: lu_arActions$,\n arItems$: lu_arItems$,\n onViewAll$: lu_onViewAllFunction,\n menuIconOverrideAction$: removeFileFromList$\n }\"\n ></component-mapper>\n</div>\n\n<div *ngIf=\"bShowFileModal$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-file-top\">\n <h3>{{ pConn$.getLocalizedValue('Add local files', '', '') }}</h3>\n <div class=\"psdk-modal-body\">\n <div class=\"psdk-modal-file-selector\">\n <input hidden type=\"file\" multiple #uploader (change)=\"uploadMyFiles($event)\" />\n\n <button mat-stroked-button color=\"primary\" (click)=\"uploader.click()\">{{ pConn$.getLocalizedValue('Upload file(s)', '', '') }}</button>\n </div>\n\n <component-mapper\n name=\"SummaryList\"\n [props]=\"{ arItems$: arFileList$, menuIconOverride$: 'trash', menuIconOverrideAction$: removeFileFromList$ }\"\n ></component-mapper>\n </div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$: arFileMainButtons$, arSecondaryButtons$: arFileSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onFileActionButtonClick }\"\n ></component-mapper>\n </div>\n</div>\n\n<div *ngIf=\"bShowLinkModal$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-link-top\">\n <h3>{{ pConn$.getLocalizedValue('Add local link', '', '') }}</h3>\n <div class=\"psdk-modal-link-entry\">\n <div class=\"psdk-modal-body\">\n <div class=\"psdk-modal-links-row\">\n <div class=\"psdk-links-two-column\">\n <div class=\"psdk-modal-link-data\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-label>Link title</mat-label>\n <input matInput type=\"text\" required=\"true\" (change)=\"_fieldOnChangeLink($event)\" [value]=\"link_title$\" />\n </mat-form-field>\n </div>\n <div class=\"psdk-modal-link-data\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-label>URL</mat-label>\n <input matInput type=\"text\" required=\"true\" (change)=\"_fieldOnChangeURL($event)\" [value]=\"link_url$\" />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"psdk-modal-link-add\">\n <button mat-raised-button color=\"primary\" (click)=\"_addLink()\">{{ pConn$.getLocalizedValue('Add Link', '', '') }}</button>\n </div>\n </div>\n\n <component-mapper\n name=\"SummaryList\"\n [props]=\"{ arItems$: arLinksList$, menuIconOverride$: 'trash', menuIconOverrideAction$: removeLinksFromList$ }\"\n ></component-mapper>\n </div>\n </div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$: arLinkMainButtons$, arSecondaryButtons$: arLinkSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onLinkActionButtonClick }\"\n ></component-mapper>\n </div>\n</div>\n\n<div *ngIf=\"bShowViewAllModal$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-file-top\">\n <div class=\"psdk-view-all-header\">\n <div>\n <h3>{{ pConn$.getLocalizedValue('Attachments', '', '') }}</h3>\n </div>\n <div>\n <button mat-icon-button (click)=\"_closeViewAll()\">\n <img class=\"psdk-utility-card-actions-svg-icon\" src=\"{{ closeSvgIcon$ }}\" />\n </button>\n </div>\n </div>\n <div class=\"psdk-view-all-body\">\n <component-mapper name=\"SummaryList\" [props]=\"{ arItems$: va_arItems$, menuIconOverrideAction$: removeLinksFromList$ }\"></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, NgZone, OnDestroy, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { ErrorMessagesService } from '../../../_messages/error-messages.service';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface ToDoProps {\n // If any, enter additional props that only exist on this component\n datasource?: any;\n headerText?: string;\n myWorkList?: any;\n label?: string;\n readOnly?: boolean;\n}\n\n@Component({\n selector: 'app-todo',\n templateUrl: './todo.component.html',\n styleUrls: ['./todo.component.scss'],\n providers: [Utils],\n standalone: true,\n imports: [CommonModule, MatButtonModule]\n})\nexport class TodoComponent implements OnInit, OnDestroy, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() caseInfoID$: string;\n @Input() datasource$: any;\n @Input() headerText$?: string;\n @Input() showTodoList$ = true;\n @Input() target$: string;\n @Input() type$ = 'worklist';\n @Input() context$: string;\n @Input() myWorkList$: any;\n @Input() isConfirm;\n\n configProps$: ToDoProps;\n currentUser$: string;\n currentUserInitials$ = '--';\n assignmentCount$: number;\n bShowMore$ = true;\n arAssignments$: any[];\n assignmentsSource$: any;\n CONSTS: typeof publicConstants;\n bLogging = true;\n localizedVal = PCore.getLocaleUtils().getLocaleValue;\n localeCategory = 'Todo';\n showlessLocalizedValue = this.localizedVal('show_less', 'CosmosFields');\n showMoreLocalizedValue = this.localizedVal('show_more', 'CosmosFields');\n\n constructor(\n private psService: ProgressSpinnerService,\n private erService: ErrorMessagesService,\n private ngZone: NgZone,\n private utils: Utils\n ) {}\n\n ngOnInit() {\n this.CONSTS = PCore.getConstants();\n const { CREATE_STAGE_SAVED, CREATE_STAGE_DELETED }: any = PCore.getEvents().getCaseEvent();\n\n PCore.getPubSubUtils().subscribe(\n PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL,\n () => {\n this.updateToDo();\n },\n 'updateToDo'\n );\n\n PCore.getPubSubUtils().subscribe(\n CREATE_STAGE_SAVED,\n () => {\n this.updateList();\n },\n CREATE_STAGE_SAVED\n );\n\n PCore.getPubSubUtils().subscribe(\n CREATE_STAGE_DELETED,\n () => {\n this.updateList();\n },\n CREATE_STAGE_DELETED\n );\n\n this.updateToDo();\n }\n\n ngOnDestroy() {\n const { CREATE_STAGE_SAVED, CREATE_STAGE_DELETED }: any = PCore.getEvents().getCaseEvent();\n\n PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL, 'updateToDo');\n\n PCore.getPubSubUtils().unsubscribe(CREATE_STAGE_SAVED, CREATE_STAGE_SAVED);\n\n PCore.getPubSubUtils().unsubscribe(CREATE_STAGE_DELETED, CREATE_STAGE_DELETED);\n }\n\n ngOnChanges() {\n // don't update until we'va had an init\n if (PCore) {\n this.updateToDo();\n }\n }\n\n updateWorkList(key) {\n (\n PCore.getDataApiUtils()\n // @ts-ignore - 2nd parameter \"payload\" and 3rd parameter \"context\" should be optional in getData method\n .getData(key) as Promise<any>\n )\n .then(responseData => {\n const dataObject = {};\n dataObject[key] = {\n pxResults: responseData.data.data\n };\n\n this.pConn$.updateState(dataObject);\n this.updateToDo();\n })\n .catch(err => {\n console.error(err?.stack);\n });\n }\n\n updateList() {\n this.updateWorkList('D_pyMyWorkList');\n }\n\n updateToDo() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ToDoProps;\n\n if (this.headerText$ == undefined) {\n this.headerText$ = this.configProps$.headerText;\n }\n\n this.datasource$ = this.configProps$.datasource ? this.configProps$.datasource : this.datasource$;\n this.myWorkList$ = this.configProps$.myWorkList ? this.configProps$.myWorkList : this.myWorkList$;\n\n this.assignmentsSource$ = this.datasource$?.source || this.myWorkList$?.source;\n\n if (this.showTodoList$) {\n this.assignmentCount$ = this.assignmentsSource$ != null ? this.assignmentsSource$.length : 0;\n this.arAssignments$ = this.topThreeAssignments(this.assignmentsSource$);\n } else {\n // get caseInfoId assignment.\n // eslint-disable-next-line no-lonely-if\n if (this.caseInfoID$ != undefined) {\n this.arAssignments$ = this.getCaseInfoAssignment(this.assignmentsSource$, this.caseInfoID$);\n }\n }\n\n this.currentUser$ = PCore.getEnvironmentInfo().getOperatorName();\n this.currentUserInitials$ = this.utils.getInitials(this.currentUser$);\n }\n\n getID(assignment: any) {\n if (assignment.value) {\n const refKey = assignment.value;\n return refKey.substring(refKey.lastIndexOf(' ') + 1);\n }\n const refKey = assignment.ID;\n const arKeys = refKey.split('!')[0].split(' ');\n return arKeys[2];\n }\n\n topThreeAssignments(assignmentsSource: any[]): any[] {\n return Array.isArray(assignmentsSource) ? assignmentsSource.slice(0, 3) : [];\n }\n\n getAssignmentId(assignment) {\n return this.type$ === this.CONSTS.TODO ? assignment.ID : assignment.id;\n }\n\n getPriority(assignment) {\n return this.type$ === this.CONSTS.TODO ? assignment.urgency : assignment.priority;\n }\n\n getAssignmentName(assignment) {\n return this.type$ === this.CONSTS.TODO ? assignment.name : assignment.stepName;\n }\n\n initAssignments(): any[] {\n if (this.assignmentsSource$) {\n this.assignmentCount$ = this.assignmentsSource$.length;\n return this.topThreeAssignments(this.assignmentsSource$);\n }\n // turn off todolist\n return [];\n }\n\n getCaseInfoAssignment(assignmentsSource: any[], caseInfoID: string) {\n const result: any[] = [];\n for (const source of assignmentsSource) {\n if (source.ID.indexOf(caseInfoID) >= 0) {\n const listRow = JSON.parse(JSON.stringify(source));\n // urgency becomes priority\n listRow.priority = listRow.urgency || undefined;\n // mimic regular list\n listRow.id = listRow.ID || undefined;\n result.push(listRow);\n }\n }\n return result;\n }\n\n _showMore() {\n this.ngZone.run(() => {\n this.bShowMore$ = false;\n this.arAssignments$ = this.assignmentsSource$;\n });\n }\n\n _showLess() {\n this.ngZone.run(() => {\n this.bShowMore$ = true;\n\n this.arAssignments$ = this.topThreeAssignments(this.assignmentsSource$);\n });\n }\n\n isChildCase(assignment) {\n return assignment.isChild;\n }\n\n clickGo(assignment) {\n const id = this.getAssignmentId(assignment);\n let { classname = '' } = assignment;\n const sTarget = this.pConn$.getContainerName();\n const sTargetContainerName = sTarget;\n\n const options: any = { containerName: sTargetContainerName };\n\n if (classname === null || classname === '') {\n classname = this.pConn$.getCaseInfo().getClassName();\n }\n\n if (sTarget === 'workarea') {\n options.isActionFromToDoList = true;\n options.target = '';\n options.context = null;\n options.isChild = this.isChildCase(assignment);\n } else {\n options.isActionFromToDoList = false;\n options.target = sTarget;\n }\n\n this.psService.sendMessage(true);\n\n this.pConn$\n .getActionsApi()\n .openAssignment(id, classname, options)\n .then(() => {\n this.psService.sendMessage(false);\n if (this.bLogging) {\n console.log(`openAssignment completed`);\n }\n })\n .catch(() => {\n this.psService.sendMessage(false);\n this.erService.sendMessage('show', 'Failed to open');\n });\n }\n}\n","<div class=\"psdk-todo\">\n <div class=\"psdk-todo-header\">\n <div *ngIf=\"showTodoList$\" class=\"psdk-avatar\">{{ this.currentUserInitials$ }}</div>\n <div id=\"worklist\" class=\"psdk-todo-text\">{{ headerText$ }}</div>\n <div *ngIf=\"showTodoList$\" class=\"psdk-assignment-count\">{{ assignmentCount$ }}</div>\n </div>\n <br /><br />\n <div *ngIf=\"showTodoList$\" class=\"psdk-display-divider\"></div>\n\n <div class=\"psdk-todo-assignments\">\n <div *ngFor=\"let assignment of arAssignments$\">\n <div class=\"psdk-todo-assignment\">\n <div class=\"psdk-avatar\">{{ this.currentUserInitials$ }}</div>\n <div class=\"psdk-todo-card\">\n <div class=\"psdk-todo-assignment-title\">{{ getAssignmentName(assignment) }}</div>\n <div class=\"psdk-todo-assignment-data\">\n <div class=\"psdk-todo-assignment-task\">\n Task in\n <button class=\"psdk-todo-id\" style=\"cursor: pointer\" (click)=\"clickGo(assignment)\">\n {{ assignment.name }} {{ getID(assignment) }}\n </button>\n <span *ngIf=\"assignment.status != undefined\">\n &bull; <span class=\"psdk-todo-assignment-status\">{{ assignment?.status }}</span>\n </span>\n &bull; {{ localizedVal('Urgency', localeCategory) }} {{ getPriority(assignment) }}\n </div>\n </div>\n </div>\n <div class=\"psdk-todo-assignment-action\">\n <button mat-flat-button color=\"primary\" (click)=\"clickGo(assignment)\">{{ localizedVal('Go', localeCategory) }}</button>\n </div>\n </div>\n <div class=\"psdk-display-divider\"></div>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"assignmentCount$ > 3\">\n <div *ngIf=\"bShowMore$; else showLess\" class=\"psdk-todo-show-more\">\n <button mat-stroked-button (click)=\"_showMore()\">Show more</button>\n </div>\n <ng-template #showLess>\n <div class=\"psdk-todo-show-more\">\n <button mat-stroked-button (click)=\"_showLess()\">Show less</button>\n </div>\n </ng-template>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { Utils } from '../../../_helpers/utils';\n\n@Component({\n selector: 'app-material-summary-item',\n templateUrl: './material-summary-item.component.html',\n styleUrls: ['./material-summary-item.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatMenuModule]\n})\nexport class MaterialSummaryItemComponent implements OnInit {\n @Input() item$: any;\n @Input() menuIconOverride$ = '';\n @Input() menuIconOverrideAction$: any;\n\n settingsSvgIcon$: string;\n imagePath$ = '';\n\n constructor(private utils: Utils) {}\n\n ngOnInit(): void {\n this.imagePath$ = this.utils.getIconPath(this.utils.getSDKStaticContentUrl());\n\n this.settingsSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n if (this.menuIconOverride$ != '') {\n this.menuIconOverride$ = this.utils.getImageSrc(this.menuIconOverride$, this.utils.getSDKStaticContentUrl());\n }\n }\n}\n","<div class=\"psdk-utility-card\">\n <div class=\"psdk-utility-card-icon\">\n <img class=\"psdk-utility-card-svg-icon\" src=\"{{ imagePath$ }}{{ item$.visual.icon }}.svg\" />\n </div>\n <div class=\"psdk-utility-card-main\">\n <div *ngIf=\"item$.primary.type == 'URL'\" class=\"psdk-utility-card-main-primary-url\">\n <button mat-button color=\"primary\" (click)=\"item$.primary.click()\">\n {{ item$.primary.name }}&nbsp;\n <img class=\"psdk-utility-card-actions-svg-icon\" src=\"{{ imagePath$ }}{{ item$.primary.icon }}.svg\" />\n </button>\n </div>\n <div *ngIf=\"item$.primary.type != 'URL'\" class=\"psdk-utility-card-main-primary-label\">\n {{ item$.primary.name }}\n </div>\n <div *ngIf=\"item$.secondary.text != ''\" [style.color]=\"item$.secondary.error ? 'red' : undefined\">{{ item$.secondary.text }}</div>\n </div>\n <div class=\"psdk-utility-card-actions\">\n <div *ngIf=\"menuIconOverride$ == ''; else showCustom\">\n <button mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ settingsSvgIcon$ }}\" />\n </button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of item$.actions\">\n <button mat-menu-item (click)=\"action.onClick()\">\n <img class=\"psdk-utility-card-action-actions-svg-icon\" src=\"{{ imagePath$ }}{{ action.icon }}.svg\" />&nbsp;\n {{ action.text }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n <ng-template #showCustom>\n <button mat-icon-button (click)=\"menuIconOverrideAction$.onClick(item$)\">\n <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ menuIconOverride$ }}\" />\n </button>\n </ng-template>\n </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-material-summary-list',\n templateUrl: './material-summary-list.component.html',\n styleUrls: ['./material-summary-list.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MaterialSummaryListComponent {\n @Input() arItems$: any[];\n @Input() icon$: string;\n @Input() menuIconOverride$ = '';\n @Input() menuIconOverrideAction$: any;\n}\n","<ng-container *ngFor=\"let item of arItems$\">\n <component-mapper name=\"SummaryItem\" [props]=\"{ item$: item, menuIconOverride$, menuIconOverrideAction$ }\"></component-mapper>\n</ng-container>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\n\n@Component({\n selector: 'app-material-vertical-tabs',\n templateUrl: './material-vertical-tabs.component.html',\n styleUrls: ['./material-vertical-tabs.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonToggleModule, MatBadgeModule]\n})\nexport class MaterialVerticalTabsComponent implements OnInit {\n @Input() tabConfig$: any[];\n @Output() tabClick: EventEmitter<any> = new EventEmitter();\n\n selectedTabId$: any;\n\n ngOnInit(): void {\n // tabConfig$ [ {name: , id: , count: }]\n\n if (this.tabConfig$) {\n // seletedTabId is the first tab, unless another is selected\n this.selectedTabId$ = this.tabConfig$[0]?.id;\n\n // run through and see anything is selected\n for (let i = 0; i < this.tabConfig$.length; ++i) {\n const aTab = this.tabConfig$[i];\n if (aTab?.selected) {\n this.selectedTabId$ = aTab.id;\n break;\n }\n }\n }\n }\n\n onChange(tab: any) {\n this.tabClick.emit(tab);\n }\n}\n","<div>\n <mat-button-toggle-group vertical (change)=\"onChange($event.value)\" [value]=\"selectedTabId$\" aria-label=\"Tabs\">\n <mat-button-toggle *ngFor=\"let tab of tabConfig$\" [value]=\"tab.id\" style=\"text-align: left\">\n <div style=\"display: flex\">\n <div style=\"flex-grow: 10\">{{ tab.name }}</div>\n <div style=\"flex-grow: 1\">\n <span *ngIf=\"tab?.count\" [matBadge]=\"tab.count\" matBadgeOverlap=\"false\" matBadgePosition=\"after\" class=\"psdk-vtab-badge\">&nbsp;</span>\n </div>\n </div>\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n","import { Component, ElementRef, OnInit, Input, Renderer2, ChangeDetectorRef, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Utils } from '../../../_helpers/utils';\n\n@Component({\n selector: 'app-operator',\n templateUrl: './operator.component.html',\n styleUrls: ['./operator.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule]\n})\nexport class OperatorComponent implements OnInit, OnChanges, OnDestroy {\n @Input() pConn$: typeof PConnect;\n\n fields$: any[] = [];\n bShowPopover$: boolean;\n date$: string;\n name$: string;\n label$: string;\n id$: string;\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n this.renderer.listen('window', 'click', el => {\n const clickedInside = this.el.nativeElement.contains(el.target);\n\n if (!clickedInside) {\n this.bShowPopover$ = false;\n }\n });\n\n this.bShowPopover$ = false;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n if (pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.destroy();\n }\n\n updateSelf(): void {\n const configProps$ = this.pConn$.getConfigProps() as any;\n if (configProps$?.label?.toLowerCase() == 'create operator') {\n this.name$ = configProps$.createOperator.userName;\n this.id$ = configProps$.createOperator.userId;\n this.label$ = configProps$.createLabel;\n } else if (configProps$?.label?.toLowerCase() == 'update operator') {\n this.name$ = configProps$.updateOperator.userName;\n this.id$ = configProps$.updateOperator.userId;\n this.label$ = configProps$.updateLabel;\n } else if (configProps$?.label?.toLowerCase() == 'resolve operator') {\n this.name$ = configProps$.resolveOperator.userName;\n this.id$ = configProps$.resolveOperator.userId;\n this.label$ = configProps$.resolveLabel;\n } else {\n this.name$ = configProps$?.value.userName;\n this.id$ = configProps$?.value.userId;\n this.label$ = configProps$.label;\n }\n this.date$ = this.utils.generateDate(configProps$?.updateDateTime, 'DateTime-Since');\n }\n\n showOperator() {\n const operatorPreviewPromise = PCore.getUserApi().getOperatorDetails(this.id$);\n const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n const localeCategory = 'Operator';\n const fillerString = '---';\n\n operatorPreviewPromise.then((res: any) => {\n if (res.data && res.data.pyOperatorInfo && res.data.pyOperatorInfo.pyUserName) {\n this.fields$ = [\n {\n id: 'pyPosition',\n name: localizedVal('Position', localeCategory),\n value: res.data.pyOperatorInfo.pyPosition != '' ? res.data.pyOperatorInfo.pyPosition : fillerString\n },\n {\n id: 'pyOrganization',\n name: localizedVal('Organization', localeCategory),\n value: res.data.pyOperatorInfo.pyOrganization != '' ? res.data.pyOperatorInfo.pyOrganization : fillerString\n },\n {\n id: 'ReportToUserName',\n name: localizedVal('Reports to', localeCategory),\n value: res.data.pyOperatorInfo.pyReportToUserName != '' ? res.data.pyOperatorInfo.pyReportToUserName : fillerString\n },\n {\n id: 'pyTelephone',\n name: localizedVal('Telephone', localeCategory),\n value: res.data.pyOperatorInfo.pyTelephone != '' ? res.data.pyOperatorInfo.pyTelephone : fillerString\n },\n {\n id: 'pyEmailAddress',\n name: localizedVal('Email address', localeCategory),\n value: res.data.pyOperatorInfo.pyEmailAddress != '' ? res.data.pyOperatorInfo.pyEmailAddress : fillerString\n }\n ];\n\n this.bShowPopover$ = true;\n this.cdRef.detectChanges();\n } else {\n console.log(\n `Operator: PCore.getUserApi().getOperatorDetails(${this.id$}); returned empty res.data.pyOperatorInfo.pyUserName - adding default`\n );\n this.fields$ = [\n {\n id: 'pyPosition',\n name: localizedVal('Position', localeCategory),\n value: fillerString\n },\n {\n id: 'pyOrganization',\n name: localizedVal('Organization', localeCategory),\n value: fillerString\n },\n {\n id: 'ReportToUserName',\n name: localizedVal('Reports to', localeCategory),\n value: fillerString\n },\n {\n id: 'pyTelephone',\n name: localizedVal('Telephone', localeCategory),\n value: fillerString\n },\n {\n id: 'pyEmailAddress',\n name: localizedVal('Email address', localeCategory),\n value: fillerString\n }\n ];\n }\n });\n }\n}\n","<div class=\"psdk-operator psdk-double\">\n <div class=\"psdk-label\">\n {{ label$ }}\n </div>\n <div class=\"psdk-double\">\n <button mat-button color=\"primary\" style=\"text-decoration: underline\" (click)=\"showOperator()\">{{ name$ }}</button>\n </div>\n <div>{{ date$ }}</div>\n</div>\n\n<div>\n <div *ngIf=\"bShowPopover$\" class=\"psdk-operator-popover\">\n <dl>\n <div *ngFor=\"let field of fields$; let i = index\">\n <dt class=\"psdk-operator-name\">{{ field.name }}</dt>\n <dd class=\"psdk-operator-value\">{{ field.value }}</dd>\n </div>\n </dl>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface PulseProps {\n // If any, enter additional props that only exist on this component\n children?: any[];\n}\n\n@Component({\n selector: 'app-pulse',\n templateUrl: './pulse.component.html',\n styleUrls: ['./pulse.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class PulseComponent implements OnInit {\n @Input() pConn$: typeof PConnect;\n\n configProps$: PulseProps;\n currentUser$: string;\n currentUserInitials$ = '--';\n\n ngOnInit() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n // this.currentUser$ = this.configProps$.currentUser;\n this.currentUser$ = PCore.getEnvironmentInfo().getOperatorName();\n\n if (this.currentUser$ != '') {\n this.currentUserInitials$ = this.currentUser$.charAt(0);\n\n if (this.currentUser$.lastIndexOf(' ') > 0) {\n const lastName = this.currentUser$.substring(this.currentUser$.lastIndexOf(' ') + 1);\n this.currentUserInitials$ += lastName.charAt(0);\n } else if (this.currentUser$.lastIndexOf('.') > 0) {\n const lastName = this.currentUser$.substring(this.currentUser$.lastIndexOf('.') + 1);\n this.currentUserInitials$ += lastName.charAt(0);\n }\n }\n }\n}\n","<div class=\"psdk-pulse\">\n <component-mapper [name]=\"'FeedContainer'\" [props]=\"{ pConn$ }\"></component-mapper>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-details-wide-narrow',\n templateUrl: './details-wide-narrow.component.html',\n styleUrls: ['./details-wide-narrow.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsWideNarrowComponent implements OnInit, OnDestroy {\n constructor(private angularPConnect: AngularPConnectService) {}\n\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n highlightedDataArr: any[] = [];\n showHighlightedData: boolean;\n arFields$: any[] = [];\n arFields2$: any[] = [];\n propsToUse: any = {};\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);\n this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n if (this.showHighlightedData) {\n const highlightedData = rawMetaData?.highlightedData;\n this.highlightedDataArr = highlightedData.map(field => {\n field.config.displayMode = 'STACKED_LARGE_VAL';\n\n if (field.config.value === '@P .pyStatusWork') {\n field.type = 'TextInput';\n field.config.displayAsStatus = true;\n }\n\n return field;\n });\n }\n\n this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');\n this.pConn$.setInheritedProp('readOnly', true);\n\n const kids = this.pConn$.getChildren() as any[];\n for (const kid of kids) {\n const pKid = kid.getPConnect();\n const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n if (kids.indexOf(kid) == 0) {\n this.arFields$ = pKidData.children;\n } else {\n this.arFields2$ = pKidData.children;\n }\n }\n }\n}\n","<component-mapper\n name=\"MaterialDetails\"\n [props]=\"{ arFields$, arFields2$, arHighlightedFields: highlightedDataArr, layout: 'wide-narrow' }\"\n></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TextProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Text here\n}\n\n@Component({\n selector: 'app-text',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TextComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formatAs$: string;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: TextProps;\n\n label$ = '';\n value$ = '';\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n componentReference = '';\n formattedValue$: string;\n format$ = 'text';\n formattedUrl$ = '';\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n this.checkAndUpdate();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TextProps;\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n this.label$ = this.configProps$.label;\n this.displayMode$ = this.configProps$.displayMode;\n\n // TDB - get formats\n switch (this.formatAs$) {\n case 'text':\n this.formattedValue$ = this.value$;\n break;\n case 'date':\n this.formattedValue$ = this.generateDate(this.value$);\n break;\n case 'date-time':\n this.formattedValue$ = this.generateDateTime(this.value$);\n break;\n case 'time':\n if (this.value$) {\n const timeParts = this.value$.split(':');\n this.formattedValue$ = `${timeParts[0]}:${timeParts[1]}`;\n } else {\n this.formattedValue$ = '';\n }\n break;\n case 'url':\n this.formattedUrl$ = this.generateUrl(this.value$);\n this.formattedValue$ = this.value$;\n break;\n default:\n break;\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n generateUrl(sVal): string {\n if (sVal.indexOf('https://') == 0 || sVal.indexOf('http://') == 0) {\n /* empty */\n } else {\n // assume no http\n sVal = `http://${sVal}`;\n }\n\n return sVal;\n }\n\n generateDate(sVal): string {\n if (!sVal) return '';\n // const value = new Intl.DateTimeFormat('default', {\n // year: 'numeric',\n // month: 'numeric',\n // day: 'numeric'\n // }).format(new Date(sVal + \"T00:00\"));\n\n return this.utils.generateDate(sVal, 'Date-Long-Custom-YYYY');\n }\n\n generateDateTime(sVal): string {\n if (!sVal) return '';\n if (sVal.length === 10) return this.generateDate(sVal);\n const value = sVal.substring(0, sVal.length - 1);\n // value = new Intl.DateTimeFormat('default', {\n // year: 'numeric',\n // month: 'numeric',\n // day: 'numeric',\n // hour: 'numeric',\n // minute: 'numeric',\n // second: 'numeric',\n // hour12: true,\n // }).format(new Date(value))\n\n return this.utils.generateDateTime(value, 'DateTime-Long-YYYY-Custom');\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"bVisible$ !== false\" class=\"psdk-label-infix-readonly\">\n <span class=\"psdk-label-wrapper-readonly\">\n <label class=\"psdk-label-readonly\">{{ label$ }}</label>\n </span>\n <div class=\"psdk-data-readonly\">\n <label *ngIf=\"formatAs$ != 'url'\">{{ formattedValue$ }}</label>\n <a *ngIf=\"formatAs$ == 'url'\" href=\"{{ formattedUrl$ }}\">{{ formattedValue$ }}</a>\n </div>\n </div>\n</ng-template>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-details-narrow-wide',\n templateUrl: './details-narrow-wide.component.html',\n styleUrls: ['./details-narrow-wide.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsNarrowWideComponent implements OnInit, OnDestroy {\n constructor(private angularPConnect: AngularPConnectService) {}\n\n @Input() pConn$: typeof PConnect;\n\n arFields$: any[] = [];\n arFields2$: any[] = [];\n highlightedDataArr: any[] = [];\n showHighlightedData: boolean;\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);\n this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n if (this.showHighlightedData) {\n const highlightedData = rawMetaData?.highlightedData;\n this.highlightedDataArr = highlightedData.map(field => {\n field.config.displayMode = 'STACKED_LARGE_VAL';\n\n if (field.config.value === '@P .pyStatusWork') {\n field.type = 'TextInput';\n field.config.displayAsStatus = true;\n }\n\n return field;\n });\n }\n\n const kids = this.pConn$.getChildren() as any[];\n for (const kid of kids) {\n const pKid = kid.getPConnect();\n const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n if (kids.indexOf(kid) == 0) {\n this.arFields$ = pKidData.children;\n } else {\n this.arFields2$ = pKidData.children;\n }\n }\n }\n}\n","<component-mapper\n name=\"MaterialDetails\"\n [props]=\"{ arFields$, arFields2$, arHighlightedFields: highlightedDataArr, layout: 'narrow-wide' }\"\n></component-mapper>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-field-value-list',\n templateUrl: './field-value-list.component.html',\n styleUrls: ['./field-value-list.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class FieldValueListComponent {\n @Input() label$: any;\n @Input() value$: any;\n @Input() displayMode$: any;\n}\n","<div *ngIf=\"displayMode$ === 'LABELS_LEFT'; else STACKED_LARGE_VAL\" class=\"psdk-container-labels-left\">\n <div class=\"psdk-grid-label\">{{ label$ }}</div>\n <div class=\"psdk-val-labels-left\">\n {{ value$ || '---' }}\n </div>\n</div>\n\n<ng-template #STACKED_LARGE_VAL>\n <div *ngIf=\"displayMode$ === 'STACKED_LARGE_VAL'\" class=\"psdk-container-stacked-large-val\">\n <div class=\"psdk-grid-label\">{{ label$ }}</div>\n <div class=\"psdk-val-stacked\">\n {{ value$ || '---' }}\n </div>\n </div>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-error-boundary',\n templateUrl: './error-boundary.component.html',\n styleUrls: ['./error-boundary.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class ErrorBoundaryComponent {\n @Input() message: string;\n\n localizedVal = window.PCore.getLocaleUtils().getLocaleValue;\n localeCategory = 'Messages';\n}\n","<p>{{ localizedVal(message, localeCategory) }}</p>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-field-group-list',\n templateUrl: './field-group-list.component.html',\n styleUrls: ['./field-group-list.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class FieldGroupListComponent {\n @Input() item;\n @Input() heading;\n @Input() formGroup$;\n\n fields: any = [];\n}\n","<div>\n <b>{{ heading }}</b>\n <div>\n <div *ngIf=\"item.children.getPConnect().getRawMetadata().type.toLowerCase() == 'region'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: item.children.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { Utils } from '../../../_helpers/utils';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-material-details-fields',\n templateUrl: './material-details-fields.component.html',\n styleUrls: ['./material-details-fields.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MaterialDetailsFieldsComponent {\n constructor(private utils: Utils) {}\n\n @Input() arFields$: any[];\n @Input() arHighlightedFields: any[];\n\n _getValue(configValue) {\n if (configValue && configValue != '') {\n return configValue;\n }\n return '---';\n }\n\n _formatDate(dateValue: string, dateFormat: string): string {\n return this.utils.generateDate(dateValue, dateFormat);\n }\n}\n","<div id=\"details-fields-list\">\n <div *ngFor=\"let field of arFields$\">\n <div *ngIf=\"field.type === 'reference'; else showDetails\">\n <component-mapper name=\"View\" [props]=\"{ pConn$: field.pConn }\"></component-mapper>\n </div>\n <ng-template #showDetails>\n <div class=\"psdk-grid-filter\" *ngIf=\"field.config.label\">\n <div class=\"psdk-details-fields-label\">\n {{ field.config.label }}\n </div>\n <div [ngSwitch]=\"field.type.toLowerCase()\" class=\"psdk-csf-primary-field-value\">\n <span *ngSwitchCase=\"'textinput'\" class=\"psdk-details-text-style\">{{ _getValue(field.config.value) }}</span>\n <span *ngSwitchCase=\"'status'\" class=\"psdk-details-status-style\">{{ _getValue(field.config.value) }}</span>\n <a *ngSwitchCase=\"'phone'\" as=\"a\" href=\"tel: {{ field.config.value }}\">{{ _getValue(field.config.value) }}</a>\n <a *ngSwitchCase=\"'email'\" href=\"mailto: {{ field.config.value }}\">{{ _getValue(field.config.value) }}</a>\n <span *ngSwitchCase=\"'date'\" class=\"psdk-details-text-style\">{{ _formatDate(field.config.value, field.type) }}</span>\n <span *ngSwitchCase=\"'caseoperator'\"></span>\n <span *ngSwitchDefault>{{ _getValue(field.config.value) }}</span>\n </div>\n </div>\n </ng-template>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-details-one-column',\n templateUrl: './details-one-column.component.html',\n styleUrls: ['./details-one-column.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsOneColumnComponent implements OnInit, OnDestroy {\n constructor(private angularPConnect: AngularPConnectService) {}\n\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n showHighlightedData: boolean;\n highlightedDataArr: any;\n\n arFields$: any[] = [];\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const rawMetaData: any = this.pConn$.resolveConfigProps((this.pConn$.getRawMetadata() as any).config);\n this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n if (this.showHighlightedData) {\n const highlightedData = rawMetaData?.highlightedData;\n this.highlightedDataArr = highlightedData.map(field => {\n field.config.displayMode = 'STACKED_LARGE_VAL';\n\n if (field.config.value === '@P .pyStatusWork') {\n field.type = 'TextInput';\n field.config.displayAsStatus = true;\n }\n\n return field;\n });\n }\n\n this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');\n this.pConn$.setInheritedProp('readOnly', true);\n\n const kids = this.pConn$.getChildren() as any[];\n for (const kid of kids) {\n const pKid = kid.getPConnect();\n const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n if (kids.indexOf(kid) == 0) {\n this.arFields$ = pKidData.children;\n }\n }\n }\n}\n","<component-mapper name=\"MaterialDetails\" [props]=\"{ arFields$, arHighlightedFields: highlightedDataArr, layout: 'one-column' }\"></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { getToDoAssignments } from '../../infra/Containers/flow-container/helpers';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface ConfirmationProps {\n // If any, enter additional props that only exist on this component\n datasource: { source: any };\n label: string;\n showLabel: boolean;\n showTasks: boolean;\n}\n\n@Component({\n selector: 'app-confirmation',\n templateUrl: './confirmation.component.html',\n styleUrls: ['./confirmation.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ConfirmationComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n\n angularPConnectData: AngularPConnectData = {};\n configProps$: ConfirmationProps;\n\n rootInfo: any;\n datasource: any;\n showTasks: any;\n detailProps: any;\n toDoList: any;\n label: string;\n CONSTS: typeof publicConstants;\n showDetails: boolean;\n showConfirmView = true;\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.CONSTS = PCore.getConstants();\n const activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(this.pConn$.getTarget());\n this.rootInfo = PCore.getContainerUtils().getContainerItemData(this.pConn$.getTarget(), activeContainerItemID);\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const theConfigProps = this.pConn$.getConfigProps() as ConfirmationProps;\n this.datasource = theConfigProps?.datasource;\n this.showTasks = theConfigProps?.showTasks;\n this.label = theConfigProps?.label;\n // Get the inherited props from the parent to determine label settings\n // Not using whatsNext at the moment, need to figure out the use of it\n // const whatsNext = this.datasource?.source;\n // const items = whatsNext?.length > 0 ? whatsNext.map((item) => item.label) : '';\n // const todoProps = { ...theConfigProps, renderTodoInConfirm: true };\n this.toDoList = getToDoAssignments(this.pConn$);\n this.detailProps = { ...theConfigProps, showLabel: false };\n this.showDetails = this.pConn$?.getChildren()?.[0]?.getPConnect()?.getChildren()?.length > 0;\n }\n\n onConfirmViewClose() {\n this.showConfirmView = false;\n PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, this.rootInfo);\n }\n}\n","<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-material-case-summary',\n templateUrl: './material-case-summary.component.html',\n styleUrls: ['./material-case-summary.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MaterialCaseSummaryComponent implements OnInit, OnChanges {\n @Input() status$: string;\n @Input() bShowStatus$: boolean;\n @Input() primaryFields$: any[];\n @Input() secondaryFields$: any[];\n\n primaryFieldsWithStatus$: any[];\n\n constructor(private utils: Utils) {}\n\n ngOnInit(): void {\n this.updatePrimaryWithStatus();\n this.updateLabelAndDate(this.primaryFieldsWithStatus$);\n this.updateLabelAndDate(this.secondaryFields$);\n }\n\n // eslint-disable-next-line sonarjs/no-identical-functions\n ngOnChanges() {\n this.updatePrimaryWithStatus();\n this.updateLabelAndDate(this.primaryFieldsWithStatus$);\n this.updateLabelAndDate(this.secondaryFields$);\n }\n\n updateLabelAndDate(arData: any[]) {\n for (const field of arData) {\n switch (field.type.toLowerCase()) {\n case 'caseoperator':\n if (field.config.label.toLowerCase() == 'create operator') {\n field.config.displayLabel = field.config.createLabel;\n } else if (field.config.label.toLowerCase() == 'update operator') {\n field.config.displayLabel = field.config.updateLabel;\n }\n break;\n case 'date':\n field.config.value = this.utils.generateDate(field.config.value, 'Date-Long');\n break;\n case 'userreference':\n case 'decimal':\n case 'dropdown':\n field.config.displayLabel = field.config.label;\n break;\n case 'checkbox':\n field.config.displayLabel = field.config.caption;\n break;\n default:\n break;\n }\n }\n }\n\n updatePrimaryWithStatus() {\n this.primaryFieldsWithStatus$ = [];\n for (const prim of this.primaryFields$) {\n this.primaryFieldsWithStatus$.push(prim);\n }\n\n if (this.bShowStatus$) {\n const oStatus = { type: 'status', config: { value: this.status$, label: 'Status' } };\n\n const count = this.primaryFieldsWithStatus$.length;\n if (count < 2) {\n this.primaryFieldsWithStatus$.push(oStatus);\n } else {\n this.primaryFieldsWithStatus$.splice(1, 0, oStatus);\n }\n }\n }\n}\n","<div class=\"psdk-case-summary-fields\">\n <dl class=\"psdk-case-summary-fields-primary\">\n <div *ngFor=\"let field of primaryFieldsWithStatus$\" class=\"psdk-csf-primary-field\">\n <dt class=\"psdk-csf-primary-field-header\">\n {{ field.config.label }}\n </dt>\n <dd *ngIf=\"field.config.value === ''; else hasValue\" class=\"psdk-csf-primary-field-data\">\n <ng-container [ngSwitch]=\"field.type.toLowerCase()\">\n <label *ngSwitchCase=\"'caseoperator'\">operator</label>\n <span *ngSwitchDefault class=\"psdk-csf-text-style\">---</span>\n </ng-container>\n </dd>\n <ng-template #hasValue>\n <dd class=\"psdk-csf-primary-field-data\" [ngSwitch]=\"field.type.toLowerCase()\">\n <span *ngSwitchCase=\"'textinput'\" class=\"psdk-csf-text-style\">{{ field.config.value }}</span>\n <span *ngSwitchCase=\"'status'\" class=\"psdk-csf-status-style\">{{ field.config.value }}</span>\n <a *ngSwitchCase=\"'phone'\" as=\"a\" href=\"tel: {{ field.config.value }}\">{{ field.config.value }}</a>\n <a *ngSwitchCase=\"'email'\" href=\"mailto: {{ field.config.value }}\">{{ field.config.value }}</a>\n <span *ngSwitchCase=\"'date'\" class=\"psdk-csf-text-style\">{{ field.config.value }}</span>\n <label *ngSwitchCase=\"'caseoperator'\">operator</label>\n <span *ngSwitchDefault class=\"psdk-csf-text-style\">{{ field.config.value }}</span>\n </dd>\n </ng-template>\n </div>\n </dl>\n</div>\n<div class=\"psdk-case-summary-fields\">\n <dl *ngFor=\"let field of secondaryFields$\" class=\"psdk-case-summary-fields-secondary\">\n <div\n *ngIf=\"\n field.config?.label?.toLowerCase() == 'create operator' || field.config?.label?.toLowerCase() == 'update operator';\n else hasSecondaryValue\n \"\n >\n <component-mapper name=\"Operator\" [props]=\"{ pConn$: field?.kid }\"></component-mapper>\n </div>\n <ng-template #hasSecondaryValue>\n <div class=\"psdk-csf-secondary-field\">\n <dt class=\"psdk-csf-secondary-field-header\">\n {{ field.config.displayLabel || field.config.label }}\n </dt>\n <dd class=\"psdk-csf-secondary-field-data\">\n <div [ngSwitch]=\"field.type\">\n <label *ngSwitchCase=\"'UserReference'\" class=\"psdk-secondary-value\">{{ field.config.value.userName || '---' }}</label>\n <label *ngSwitchCase=\"'Checkbox'\" class=\"psdk-secondary-value\">{{ field.config.falseLabel || '---' }}</label>\n <label *ngSwitchDefault class=\"psdk-secondary-value\">{{ field.config.value || '---' }}</label>\n </div>\n </dd>\n </div>\n </ng-template>\n </dl>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-alert-banner',\n templateUrl: './alert-banner.component.html',\n styleUrls: ['./alert-banner.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AlertBannerComponent {\n @Input() banners: any[];\n\n SEVERITY_MAP = {\n urgent: 'error',\n warning: 'warning',\n success: 'success',\n info: 'info'\n };\n\n onAlertClose(config) {\n const { PAGE, type, target } = config;\n const { clearMessages } = PCore.getMessageManager();\n clearMessages({ category: PAGE, type, context: target } as any);\n }\n}\n","<div>\n <div *ngFor=\"let banner of banners\">\n <div *ngFor=\"let message of banner.messages\">\n <component-mapper\n name=\"Alert\"\n [props]=\"{ message, severity: SEVERITY_MAP[banner.variant], hideClose: banner.variant === 'urgent' }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onClose: onAlertClose }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n standalone: true,\n imports: [CommonModule, MatIconModule]\n})\nexport class AlertComponent {\n @Input() message: any[];\n @Input() severity;\n @Input() hideClose;\n @Output() onClose: EventEmitter<any> = new EventEmitter();\n\n getMatIcon(severity) {\n let variant;\n switch (severity) {\n case 'error':\n variant = 'error_outline';\n break;\n case 'warning':\n variant = 'warning_amber';\n break;\n case 'success':\n variant = 'task_alt';\n break;\n case 'info':\n variant = 'info_outline';\n break;\n default:\n break;\n }\n return variant;\n }\n\n onCloseClick() {\n alert('Close clicked');\n this.onClose.emit({ Page: 'Page', target: 'target', type: 'type' });\n }\n}\n","<div\n class=\"psdk-alert\"\n [ngClass]=\"{\n 'psdk-alert-error': severity === 'error',\n 'psdk-grid-warning': severity === 'warning',\n 'psdk-grid-success': severity === 'success',\n 'psdk-grid-info': severity === 'info'\n }\"\n>\n <div class=\"psdk-alert-icon\">\n <mat-icon>{{ getMatIcon(severity) }}</mat-icon>\n </div>\n <div>{{ message }}</div>\n <div *ngIf=\"!hideClose\" style=\"margin-left: auto\">\n <button class=\"close-button\" mat-icon-button (click)=\"onCloseClick()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n</div>\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\n\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface BannerPageProps {\n // If any, enter additional props that only exist on this component\n layout?: string;\n title?: string;\n message?: string;\n backgroundImage?: string;\n}\n\n@Component({\n selector: 'app-banner-page',\n templateUrl: './banner-page.component.html',\n styleUrls: ['./banner-page.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class BannerPageComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: any;\n\n configProps$: BannerPageProps;\n arChildren$: any[];\n title?: string;\n message: any;\n backgroundImage?: string;\n layout$?: string;\n divClass$: string;\n\n constructor() {\n this.backgroundImage = this.configProps$?.backgroundImage;\n }\n\n ngOnInit() {\n // console.log(`ngOnInit (no registerAndSubscribe!): Region`);\n this.backgroundImage = this.configProps$?.backgroundImage;\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n this.backgroundImage = this.configProps$?.backgroundImage;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as BannerPageProps;\n console.log(`url(${this.backgroundImage})`);\n\n this.layout$ = this.configProps$.layout;\n this.title = this.configProps$.title;\n this.message = this.configProps$.message;\n this.backgroundImage = this.configProps$.backgroundImage;\n\n // The children may contain 'reference' components, so normalize the children...\n this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n }\n}\n","<component-mapper\n name=\"Banner\"\n [props]=\"{\n configProps$,\n arChildren$,\n title,\n message,\n backgroundImage,\n layout$,\n divClass$\n }\"\n></component-mapper>\n","import { ChangeDetectorRef, Component, Input, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { logout } from '@pega/auth/lib/sdk-auth-manager';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface WssNavBarProps {\n // If any, enter additional props that only exist on this component\n showAppName: boolean;\n}\n\n@Component({\n selector: 'app-wss-nav-bar',\n templateUrl: './wss-nav-bar.component.html',\n styleUrls: ['./wss-nav-bar.component.scss'],\n providers: [Utils],\n standalone: true,\n imports: [CommonModule, MatListModule, MatMenuModule, MatIconModule, MatToolbarModule]\n})\nexport class WssNavBarComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() appName$: string;\n @Input() pages$: any[];\n @Input() caseTypes$: any[];\n @Input() homePage: any;\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: WssNavBarProps;\n\n navPages$: any[];\n navExpandCollapse$: string;\n bShowCaseTypes$ = false;\n\n portalApp$ = '';\n portalLogoImage$: string;\n showAppName$ = false;\n\n portalOperator$: string;\n portalOperatorInitials$: string;\n\n actionsAPI: any;\n createWork: any;\n showPage: any;\n logout: any;\n\n navIcon$: string;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private psService: ProgressSpinnerService,\n private ngZone: NgZone,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n\n // this is a dummy \"get\", because right now images are in http and the main screen is https\n // so the images don't load automatically. This call, makes an initial hit that allows the\n // rest of the images to show up\n this.loadImage(this.navIcon$);\n\n this.initComponent();\n }\n\n // ngOnDestroy\n // unsubscribe from Store\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n loadImage(src: string) {\n return new Promise(resolve => {\n resolve(src);\n });\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // NOTE: can call angularPConnect.getState with optional args for detailed logging: bLogMsg and component object\n this.angularPConnect.getState();\n\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf(): void {\n this.initComponent();\n }\n\n initComponent() {\n this.ngZone.run(() => {\n this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());\n\n // Then, continue on with other initialization\n\n // making a copy, so can add info\n this.navPages$ = JSON.parse(JSON.stringify(this.pages$));\n\n this.navPages$.forEach(page => {\n page.iconName = this.utils.getImageSrc(page.pxPageViewIcon, this.utils.getSDKStaticContentUrl());\n });\n\n this.actionsAPI = this.pConn$.getActionsApi();\n this.createWork = this.actionsAPI.createWork.bind(this.actionsAPI);\n this.showPage = this.actionsAPI.showPage.bind(this.actionsAPI);\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as WssNavBarProps;\n this.logout = this.actionsAPI.logout.bind(this.actionsAPI);\n\n // const oData = this.pConn$.getDataObject();\n\n this.portalLogoImage$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n this.portalOperator$ = PCore.getEnvironmentInfo().getOperatorName();\n this.portalOperatorInitials$ = this.utils.getInitials(this.portalOperator$);\n this.showAppName$ = this.configProps$.showAppName;\n\n this.portalApp$ = PCore.getEnvironmentInfo().getApplicationLabel();\n });\n }\n\n navPanelButtonClick(oPageData: any) {\n const { pyClassName, pyRuleName } = oPageData;\n\n this.showPage(pyRuleName, pyClassName);\n }\n\n navPanelCreateButtonClick() {\n if (this.navExpandCollapse$.indexOf('plus') > 0) {\n this.navExpandCollapse$ = this.utils.getImageSrc('times', this.utils.getSDKStaticContentUrl());\n this.bShowCaseTypes$ = true;\n } else {\n this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());\n this.bShowCaseTypes$ = false;\n }\n this.cdRef.detectChanges();\n }\n\n navPanelCreateCaseType(sCaseType: string, sFlowType: string) {\n this.psService.sendMessage(true);\n this.navPanelCreateButtonClick();\n\n const actionInfo = {\n containerName: 'primary',\n flowType: sFlowType || 'pyStartCase'\n };\n this.createWork(sCaseType, actionInfo);\n }\n\n navPanelLogoutClick() {\n logout().then(() => {\n // Reload the page to kick off the login\n window.location.reload();\n });\n }\n}\n","<mat-toolbar style=\"margin-bottom: 5px; background-color: #262626\">\n <mat-toolbar-row mat-icon-button>\n <div class=\"psdk-nav-header\" (click)=\"navPanelButtonClick(homePage)\">\n <div>\n <img src=\"{{ portalLogoImage$ }}\" class=\"psdk-nav-logo\" />\n </div>\n <div class=\"psdk-nav-portal-info\">\n <div class=\"psdk-nav-portal-app\">{{ portalApp$ }}</div>\n </div>\n </div>\n\n <div *ngFor=\"let page of navPages$\">\n <div class=\"flex-box mat-list-item\" style=\"cursor: pointer\" (click)=\"navPanelButtonClick(page)\">\n <div mat-button class=\"psdk-nav-button-span\">{{ page.pyLabel }}</div>\n </div>\n </div>\n\n <span class=\"spacer\"></span>\n\n <mat-list>\n <mat-list-item [matMenuTriggerFor]=\"menu\" class=\"psdk-profile-list-item\">\n <div class=\"flex-box\">\n <div class=\"psdk-nav-oper-avatar\">{{ portalOperatorInitials$ }}</div>\n </div>\n </mat-list-item>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item>Profile</button>\n <button mat-menu-item (click)=\"navPanelLogoutClick()\">Logoff</button>\n </mat-menu>\n </mat-list>\n </mat-toolbar-row>\n</mat-toolbar>\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\nimport { Utils } from '../../../_helpers/utils';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface QuickCreateProps {\n // If any, enter additional props that only exist on this component\n heading?: string;\n showCaseIcons?: boolean;\n classFilter?: any;\n}\n\n@Component({\n selector: 'app-quick-create',\n templateUrl: './quick-create.component.html',\n styleUrls: ['./quick-create.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class QuickCreateComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: any;\n\n configProps$: QuickCreateProps;\n arChildren$: any[];\n heading$?: string;\n showCaseIcons$?: boolean;\n classFilter$: any;\n cases$: any = [];\n\n constructor(private utils: Utils) {}\n\n createCase(className) {\n this.pConn$\n .getActionsApi()\n .createWork(className, {} as any)\n .catch(error => {\n console.log('Error in case creation: ', error?.message);\n });\n }\n\n initComponent() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as QuickCreateProps;\n\n this.heading$ = this.configProps$.heading;\n this.showCaseIcons$ = this.configProps$.showCaseIcons;\n this.classFilter$ = this.configProps$.classFilter;\n\n const envInfo = PCore.getEnvironmentInfo();\n if (\n this.classFilter$ &&\n envInfo.environmentInfoObject &&\n envInfo.environmentInfoObject.pyCaseTypeList &&\n envInfo.environmentInfoObject.pyCaseTypeList.length > 0\n ) {\n this.classFilter$.forEach(item => {\n let icon = this.utils.getImageSrc('polaris-solid', this.utils.getSDKStaticContentUrl());\n let label = '';\n envInfo.environmentInfoObject.pyCaseTypeList.forEach(casetype => {\n if (casetype.pyWorkTypeImplementationClassName === item) {\n icon = casetype.pxIcon && this.utils.getImageSrc(casetype?.pxIcon, this.utils.getSDKStaticContentUrl());\n label = casetype.pyWorkTypeName ?? '';\n }\n });\n if (label !== '') {\n this.cases$.push({\n label,\n onClick: () => {\n this.createCase(item);\n },\n ...(this.showCaseIcons$ && { icon })\n });\n }\n });\n }\n }\n\n ngOnInit() {\n // console.log(`ngOnInit (no registerAndSubscribe!): Region`);\n // this.updateSelf();\n\n this.initComponent();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.initComponent();\n }\n}\n","<component-mapper name=\"WssQuickCreate\" [props]=\"{ heading$, actions$: cases$ }\"></component-mapper>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n// import { Button } from '@angular/material'\n\n@Component({\n selector: 'wss-quick-create',\n templateUrl: './wss-quick-create.component.html',\n styleUrls: ['./wss-quick-create.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class WssQuickCreateComponent {\n @Input() actions$: any;\n @Input() heading$: any;\n}\n","<div class=\"wss-quick-create-header\">\n <h1 class=\"quick-link-heading\">{{ heading$ }}</h1>\n <ul class=\"quick-link-ul-list\">\n <li *ngFor=\"let element of actions$\" class=\"quick-link-list\">\n <button mat-raised-button color=\"primary\" class=\"quick-link-button\" mat-icon-button (click)=\"element.onClick()\">\n <span class=\"quick-link-button-span\">\n <img *ngIf=\"element.icon\" class=\"quick-link-icon\" [src]=\"element.icon\" />\n <span>{{ element.label }}</span>\n </span>\n </button>\n </li>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { Component, Input, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-banner',\n templateUrl: './banner.component.html',\n styleUrls: ['./banner.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class BannerComponent {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n @Input() arChildren$: any[];\n @Input() title: string;\n @Input() message: any;\n @Input() backgroundImage: string;\n @Input() layout$: string;\n\n getUrl() {\n return `url(${this.backgroundImage})`;\n }\n}\n","<div style=\"margin-bottom: '2rem'\">\n <div class=\"background-image-style\" [ngStyle]=\"{ 'background-image': getUrl() }\">\n <div class=\"background-style content\">\n <div>\n <h1 class=\"title\">{{ title }}</h1>\n <p class=\"message\">{{ message }}</p>\n </div>\n </div>\n </div>\n <div\n [ngClass]=\"{\n 'psdk-grid-filter-1': this.layout$ === 'two-column',\n 'psdk-grid-filter-wide-narrow': this.layout$ === 'wide-narrow',\n 'psdk-grid-filter-narrow-wide': this.layout$ === 'narrow-wide'\n }\"\n >\n <component-mapper\n [name]=\"arChildren$[0].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[0].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[0].getPConnect().getComponentName() }}\"\n ></component-mapper>\n <component-mapper\n [name]=\"arChildren$[1].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[1].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[1].getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface InlineDashboardProps {\n // If any, enter additional props that only exist on this component\n title: string;\n filterPosition?: string;\n}\n\n@Component({\n selector: 'app-inline-dashboard',\n templateUrl: './inline-dashboard.component.html',\n styleUrls: ['./inline-dashboard.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class InlineDashboardComponent {\n @Input() pConn$: typeof PConnect;\n @Input() filtersFormGroup$: FormGroup;\n @Input() inlineProps: InlineDashboardProps;\n @Input() children: any[];\n}\n","<div class=\"psdk-inline-dashboard\">\n <h4 class=\"psdk-inline-dashboard-title\">{{ inlineProps.title }}</h4>\n <div\n [ngClass]=\"{\n 'psdk-inline-style': inlineProps.filterPosition === 'inline-start' || inlineProps.filterPosition === 'inline-end',\n 'psdk-inline-end': inlineProps.filterPosition === 'inline-end'\n }\"\n *ngIf=\"children\"\n >\n <div class=\"psdk-inline-filter\">\n <div id=\"filters\">\n <component-mapper name=\"DashboardFilter\" [props]=\"{ children: children[1], inlineProps, filtersFormGroup$ }\"></component-mapper>\n </div>\n </div>\n <div class=\"psdk-inline-list\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: children[0].getPConnect() }\"></component-mapper>\n </div>\n </div>\n</div>\n","/** This file contains various utility methods to generate filter components, regionLayout data, filter expressions, etc. */\n// Remove this and use \"real\" PCore type once .d.ts is fixed (currently shows 5 errors)\nimport { v4 as uuidv4 } from 'uuid';\n\nexport const createFilter = (value, fieldId, comparator = 'EQ') => {\n return {\n condition: {\n lhs: {\n field: fieldId\n },\n comparator,\n rhs: {\n value\n }\n }\n };\n};\n\nexport const combineFilters = (filterList, existingFilters) => {\n if (filterList && filterList.length) {\n // Need to combine them\n if (existingFilters) {\n return { AND: [existingFilters, ...filterList] };\n }\n\n // No existing, just return the one(s) from the list\n if (filterList.length > 1) {\n return { AND: [...filterList] };\n }\n\n return filterList[0];\n }\n\n // No filter list,\n return existingFilters;\n};\n\nexport const createFilterComponent = (getPConnect, filterMeta, index) => {\n // const dashboardFilter = [];\n const name = filterMeta.config.value.substring(4);\n const filterId = uuidv4();\n let cleanedName = name;\n if (name.indexOf('.') !== -1) {\n cleanedName = name.substring(name.indexOf('.') + 1);\n }\n let propInfo: any = PCore.getMetadataUtils().getPropertyMetadata(cleanedName, filterMeta.config.ruleClass);\n if (!propInfo) {\n // @ts-ignore - PCore.getMetadataUtils().getPropertyMetadata - An argument for 'currentClassID' was not provided.\n propInfo = PCore.getMetadataUtils().getPropertyMetadata(cleanedName);\n }\n const { type: propertyType } = propInfo || { type: 'Text' };\n const isNumber = propertyType && (propertyType === 'Decimal' || propertyType === 'Integer');\n filterMeta.isNumber = isNumber;\n const { filterType, datasource } = filterMeta.config;\n const type = filterType || filterMeta.type;\n const filterProp = `.pyDashboardFilter${index}`;\n if (type === 'DateTime') {\n const label = filterMeta.config.label.substring(3);\n return { type: filterMeta.type, getPConnect, name, filterProp, metadata: filterMeta, label, filterId };\n }\n if (datasource && datasource.fields) {\n datasource.fields.key = datasource.fields.value;\n }\n if (filterMeta.config.listType === 'associated' && propInfo && propInfo.datasource) {\n filterMeta.config.datasource = propInfo.datasource.records;\n }\n filterMeta.config.value = `@P ${filterProp}`;\n filterMeta.type = filterMeta.config.displayAs || type;\n filterMeta.config.placeholder = 'ALL';\n const c11nEnv = PCore.createPConnect({\n meta: filterMeta,\n options: {\n hasForm: true\n }\n });\n return { type: filterMeta.type, getPConnect, name, filterProp, metadata: filterMeta, c11nEnv, filterId };\n};\n\nexport const buildFilterComponents = (getPConnect, allFilters) => {\n return allFilters.children.map((filter, index) => createFilterComponent(getPConnect, filter, index));\n};\n\nexport const getFilterExpression = (filterValue, name, metadata) => {\n if (filterValue === '') {\n return null;\n }\n let comparator = 'EQ';\n if (metadata.type === 'TextInput' && !metadata.isNumber) {\n comparator = 'CONTAINS';\n }\n\n if (metadata.config.filterType && metadata.config.filterType === 'RelativeDates') {\n const fieldSource = metadata.config.datasource.filter(source => source.key === filterValue)[0];\n const relativeDateExpression = JSON.parse(fieldSource.json);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const fields = [\n {\n name: relativeDateExpression.condition.lhs.field,\n type: 'DATE_TIME'\n }\n ];\n return '';\n }\n\n return createFilter(filterValue, name, comparator);\n};\n\nexport const getFormattedDate = date => {\n if (!date) {\n return date;\n }\n const year = date.getFullYear();\n const month = `0${date.getMonth() + 1}`.slice(-2);\n const day = `0${date.getDate()}`.slice(-2);\n\n return `${year}-${month}-${day}`;\n};\n","import { Component, OnInit, Input, forwardRef, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { buildFilterComponents } from '../../../_helpers/filter-utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface InlineDashboardPageProps {\n // If any, enter additional props that only exist on this component\n title: string;\n icon?: string;\n filterPosition?: string;\n}\n\n@Component({\n selector: 'app-inline-dashboard-page',\n templateUrl: './inline-dashboard-page.component.html',\n styleUrls: ['./inline-dashboard-page.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class InlineDashboardPageComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n\n configProps$: InlineDashboardPageProps;\n filterComponents: any;\n inlineProps: any;\n children: any = [];\n filtersFormGroup$: FormGroup;\n\n constructor(private fb: FormBuilder) {\n this.filtersFormGroup$ = this.fb.group({ hideRequired: false });\n }\n\n ngOnInit() {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as InlineDashboardPageProps;\n const arChildren$ = this.pConn$.getChildren() as any[];\n const allFilters = (this.pConn$.getRawMetadata() as any).children[1];\n const filterComponents = buildFilterComponents(this.pConn$, allFilters);\n this.inlineProps = this.configProps$;\n this.children[0] = arChildren$[0];\n this.children[1] = filterComponents;\n }\n}\n","<component-mapper name=\"InlineDashboard\" [props]=\"{ inlineProps, children, filtersFormGroup$ }\"></component-mapper>\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface ScalarListProps extends Omit<PConnFieldProps, 'value'> {\n // If any, enter additional props that only exist on ScalarList here\n displayInModal: boolean;\n value: any[];\n componentType: string;\n restProps?: object;\n}\n\n@Component({\n selector: 'app-scalar-list',\n templateUrl: './scalar-list.component.html',\n styleUrls: ['./scalar-list.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ScalarListComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n configProps$: ScalarListProps;\n\n label$ = '';\n value$: any;\n displayMode$?: string = '';\n items: any[];\n isDisplayModeEnabled = false;\n controlName$: string;\n fieldControl = new FormControl('', null);\n bHasForm$ = true;\n bReadonly$ = false;\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.controlName$ = this.angularPConnect.getComponentID(this);\n // Then, continue on with other initialization\n\n // call updateSelf when initializing\n // this.updateSelf();\n this.checkAndUpdate();\n\n if (this.formGroup$) {\n // add control to formGroup\n this.formGroup$.addControl(this.controlName$, this.fieldControl);\n this.fieldControl.setValue(this.value$);\n this.bHasForm$ = true;\n } else {\n this.bReadonly$ = true;\n this.bHasForm$ = false;\n }\n }\n\n ngOnDestroy(): void {\n if (this.formGroup$) {\n this.formGroup$.removeControl(this.controlName$);\n }\n\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ScalarListProps;\n this.label$ = this.configProps$.label;\n const componentType = this.configProps$.componentType;\n const scalarValues = this.configProps$.value;\n this.displayMode$ = this.configProps$.displayMode;\n const restProps = this.configProps$.restProps;\n console.log('scalar values: ', scalarValues);\n this.items = scalarValues?.map(scalarValue => {\n console.log('scalar value: ', scalarValue);\n return this.pConn$.createComponent(\n {\n type: componentType,\n config: {\n value: scalarValue,\n displayMode: 'LABELS_LEFT',\n label: this.label$,\n ...restProps,\n readOnly: 'true'\n }\n },\n '',\n '',\n {}\n ); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional;\n });\n this.isDisplayModeEnabled = ['LABELS_LEFT', 'STACKED_LARGE_VAL', 'DISPLAY_ONLY'].includes(this.displayMode$ as string);\n this.value$ = this.items;\n }\n}\n","<div *ngIf=\"isDisplayModeEnabled\">\n <div *ngFor=\"let value of items\">\n <component-mapper [name]=\"value?.getPConnect().getComponentName()\" [props]=\"{ pConn$: value.getPConnect(), formGroup$ }\"></component-mapper>\n <!-- <span key=\"i\">{{ value }}</span> -->\n </div>\n</div>\n<div *ngIf=\"!isDisplayModeEnabled\">\n <component-mapper name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport isEqual from 'fast-deep-equal';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\n\ndeclare const window: any;\n\n@Component({\n selector: 'app-feed-container',\n templateUrl: './feed-container.component.html',\n styleUrls: ['./feed-container.component.scss'],\n providers: [Utils],\n standalone: true,\n imports: [CommonModule, MatFormFieldModule, MatInputModule, MatGridListModule, MatButtonModule]\n})\nexport class FeedContainerComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n userName$: string;\n imageKey$: string;\n\n currentUserInitials$: string;\n currentUserName$: string;\n\n pulseMessages$: any[];\n showReplyComment$: Object = {};\n\n svgComment$: string;\n svgLike$: string;\n svgLikedByMe$: string;\n svgSend$: string;\n\n pulseConversation: string;\n userData: Map<any, any> = new Map();\n\n pulseComment: Object = {};\n\n // functions\n actionsAPI: any;\n // until FeedAPI moved back to PCore, we access the methods directly (see ngInit)\n feedAPI: any;\n\n pulseData: any;\n\n // Temporary way to use FeedApi...\n fetchMessages: any;\n likeMessage: any;\n postMessage: any;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private cdRef: ChangeDetectorRef,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n this.userName$ = PCore.getEnvironmentInfo().getOperatorName();\n this.imageKey$ = PCore.getEnvironmentInfo().getOperatorImageInsKey();\n this.updateCurrentUserName(this.userName$);\n\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // Then, continue on with other initialization\n // debugger;\n\n // const {\n // fetchMessages,\n // likeMessage,\n // postMessage\n // } = FeedApi(this.pConn$);\n // this.fetchMessages = fetchMessages;\n // this.likeMessage = likeMessage;\n // this.postMessage = postMessage;\n\n // // this.userName$ = this.pConn$.getValue(\"pxRequestor.pxUserName\");\n // // this.imageKey$ = this.pConn$.getValue(\"OperatorID.pyImageInsKey\");\n\n // //this.userName$ = this.pConn$.getDataObject()[\"D_pxEnvironmentInfo\"].pxOperator.pyUserName;\n // //this.imageKey$ = this.pConn$.getDataObject()[\"D_pxEnvironmentInfo\"].pxOperator.pyImageInsKey;\n // this.userName$ = this.pConn$.getEnvironmentInfo().getOperatorName();\n // this.imageKey$ = this.pConn$.getEnvironmentInfo().getOperatorImageInsKey();\n\n // this.actionsAPI = this.pConn$.getActionsApi();\n\n // let owner = this.pConn$.getConfigProps().value;\n\n // // with new FeedAPI: owner is the proper value to pass in\n // // and no longer takes 2nd argument\n // this./*feedAPI.*/fetchMessages(owner /*, this.pConn$.getContextName()*/);\n\n // const configProps: any = this.pConn$.getConfigProps();\n\n // const { messageIDs } = configProps;\n\n // const { fetchMessages, postMessage, getMentionSuggestions, getTagSuggestions } = FeedApi(this.pConn$);\n\n const appName = PCore.getEnvironmentInfo().getApplicationName();\n let value = '';\n let feedID = '';\n let feedClass = '';\n\n if (this.pConn$.getCaseSummary().ID) {\n value = this.pConn$.getCaseSummary().ID;\n feedID = 'pyCaseFeed';\n feedClass = this.pConn$.getCaseSummary().content.classID;\n } else {\n value = `DATA-PORTAL $${appName}`;\n feedID = 'pyDashboardFeed';\n feedClass = '@baseclass';\n }\n\n const onUploadProgress = () => {};\n const errorHandler = () => {};\n const attachments = () => {};\n\n const postComment = ({ value: message, clear }) => {\n const attachmentIDs = [];\n const attachmentUtils = PCore.getAttachmentUtils();\n if (attachments && !!attachments.length) {\n /* attachments;\n .filter((file) => !file.error)\n .map((file) => {\n return attachmentUtils\n .uploadAttachment(file, onUploadProgress, errorHandler)\n .then((fileResponse) => {\n const fileConfig = {\n type: \"File\",\n category: \"File\",\n fileName: file.name,\n ID: fileResponse.data.ID\n };\n attachmentIDs.push(fileConfig);\n if (attachments.length === attachmentIDs.length) {\n postMessage(\n value,\n transformMarkdownToMsg(message),\n attachmentIDs\n );\n clear();\n setAttachments([]);\n }\n })\n\n .catch(console.error);\n }); */\n } else {\n // postMessage(value, transformMarkdownToMsg(message));\n clear();\n }\n };\n\n /*\n\n const { getPConnect, messageIDs } = props;\n const [mentionResults, setMentionResults] = useState([]);\n const [tagResults, setTagResults] = useState([]);\n const [attachments, setAttachments] = useState([]);\n const [feedFilters, setFeedFilters] = useState();\n const {\n fetchMessages,\n postMessage,\n getMentionSuggestions,\n getTagSuggestions\n } = FeedApi(getPConnect());\n const appName = PCore.getEnvironmentInfo().getApplicationName();\n let value = \"\";\n let feedID = \"\";\n let feedClass = \"\";\n if (getPConnect().getCaseSummary().ID) {\n value = getPConnect().getCaseSummary().ID;\n feedID = \"pyCaseFeed\";\n feedClass = getPConnect().getCaseSummary().content.classID;\n } else {\n value = `DATA-PORTAL $${appName}`;\n feedID = \"pyDashboardFeed\";\n feedClass = \"@baseclass\";\n }\n // For cancelling fetchrequest for filetrs\n const fetchMessagesCancelTokenSource = useRef([]);\n\n useEffect(() => {\n fetchMessages(\n value,\n feedID,\n feedClass,\n null,\n fetchMessagesCancelTokenSource.current\n ).then((res) => {\n setFeedFilters(res);\n });\n PCore.getAssetLoader().getLoader(\"component-loader\")([\"Activity\"]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onUploadProgress = useCallback((file) => {\n return ({ loaded, total }) => {\n file.progress = Math.floor((loaded / total) * 100);\n setAttachments((current) => {\n return current.map((currFile) => {\n return currFile.name === file.name ? file : currFile;\n });\n });\n };\n }, []);\n\n const errorHandler = useCallback((isFetchCanceled, file) => {\n return (error) => {\n if (!isFetchCanceled(error)) {\n let localizedValue = \"Upload failed\";\n if (\n error.response &&\n error.response.data &&\n error.response.data.errorDetails\n ) {\n localizedValue = error.response.data.errorDetails[0].localizedValue;\n }\n delete file.progress;\n setAttachments((current) => {\n return current.map((currFile) => {\n if (currFile.name === file.name) {\n currFile.meta = localizedValue;\n currFile.error = true;\n }\n return currFile;\n });\n });\n error.isHandled = true;\n }\n throw error;\n };\n }, []);\n\n const postComment = ({ value: message, clear }) => {\n const attachmentIDs = [];\n const attachmentUtils = PCore.getAttachmentUtils();\n if (attachments && !!attachments.length) {\n attachments\n .filter((file) => !file.error)\n .map((file) => {\n return attachmentUtils\n .uploadAttachment(file, onUploadProgress, errorHandler)\n .then((fileResponse) => {\n const fileConfig = {\n type: \"File\",\n category: \"File\",\n fileName: file.name,\n ID: fileResponse.data.ID\n };\n attachmentIDs.push(fileConfig);\n if (attachments.length === attachmentIDs.length) {\n postMessage(\n value,\n transformMarkdownToMsg(message),\n attachmentIDs\n );\n clear();\n setAttachments([]);\n }\n })\n\n .catch(console.error);\n });\n } else {\n postMessage(value, transformMarkdownToMsg(message));\n clear();\n }\n };\n\n */\n\n /* On search is called when @ character is entered and will display the mention */\n\n /*\n const onSearch = debounce((event) => {\n if (event.type === \"mention\") {\n getMentionSuggestions({\n pulseContext: value,\n searchFor: event.search\n }).then((res) => {\n setMentionResults(res);\n });\n } else {\n getTagSuggestions({\n searchFor: event.search\n }).then((res) => {\n setTagResults(res);\n });\n }\n }, 150);\n\n const userName = getPConnect().getEnvironmentInfo().getOperatorName();\n const imageKey = getPConnect().getEnvironmentInfo().getOperatorImageInsKey();\n\n const onFilesAdded = useCallback((newlyAddedFiles) => {\n setAttachments((current) => [\n ...newlyAddedFiles.map((file) => {\n if (!validateMaxSize(file, 5)) {\n file.error = true;\n file.meta = \"File is too big. Max allowed size is 5MB.\";\n }\n file.icon = getIconFromFileType(file.type);\n file.onDelete = () => {\n setAttachments((c) => c.filter((f) => f.name !== file.name));\n };\n return file;\n }),\n ...current\n ]);\n }, []);\n\n const onFilterChange = useCallback(\n (filterID) => {\n const updatedFilters = [...feedFilters];\n const filterToUpdate = updatedFilters.find(\n (feedItem) => feedItem.id === filterID\n );\n filterToUpdate.on = !filterToUpdate.on;\n if (filterID === \"All\")\n updatedFilters.forEach((feedFilter) => {\n feedFilter.on = filterToUpdate.on;\n });\n else if (\n updatedFilters.find(\n (feedItem) => feedItem.on === false && feedItem.id !== \"All\"\n )\n )\n updatedFilters.find((feedItem) => feedItem.id === \"All\").on = false;\n else updatedFilters.find((feedItem) => feedItem.id === \"All\").on = true;\n setFeedFilters(updatedFilters);\n fetchMessages(\n value,\n feedID,\n feedClass,\n feedFilters,\n fetchMessagesCancelTokenSource.current\n );\n },\n [\n value,\n feedID,\n feedClass,\n feedFilters,\n fetchMessagesCancelTokenSource,\n fetchMessages\n ]\n );\n\n */\n\n // set up svg images\n this.svgComment$ = this.utils.getImageSrc('chat', this.utils.getSDKStaticContentUrl());\n this.svgLike$ = this.utils.getImageSrc('thumbs-up', this.utils.getSDKStaticContentUrl());\n this.svgLikedByMe$ = this.utils.getImageSrc('thumbs-up-solid', this.utils.getSDKStaticContentUrl());\n this.svgSend$ = this.utils.getImageSrc('send', this.utils.getSDKStaticContentUrl());\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n const bLogging = false;\n if (bLogging) {\n // console.log( `in ${this.constructor.name} onStateChange` );\n // debugger;\n }\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n // console.log( `${this.constructor.name} shouldComponentUpdate: ${bUpdateSelf}`);\n\n // ONLY call updateSelf when the component should update\n // AND removing the \"gate\" that was put there since shouldComponentUpdate\n // should be the real \"gate\"\n if (bUpdateSelf) {\n this.updateSelf();\n } else {\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n const newPulseData = this.pConn$.getDataObject().pulse;\n\n if (!isEqual(newPulseData, this.pulseData)) {\n this.updateSelf();\n }\n }\n\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n this.pulseData = this.pConn$.getDataObject().pulse;\n }\n\n updateSelf() {\n this.getMessageData();\n }\n\n getMessageData() {\n const messageIDs = (this.pConn$.getConfigProps() as any).messageIDs;\n const userName = (this.pConn$.getConfigProps() as any).currentUser;\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const imageKey = this.pConn$.getValue('OperatorID.pyImageInsKey');\n\n // @ts-ignore - parameter “contextName” for getDataObject method should be optional\n const oData: any = this.pConn$.getDataObject();\n\n if (messageIDs && messageIDs.length > 0) {\n this.pulseMessages$ = JSON.parse(JSON.stringify(oData.pulse.messages));\n\n // convert to just an array of objects\n this.pulseMessages$ = this.convertToArray(this.pulseMessages$);\n\n // create a copy, so we can modify\n this.pulseMessages$ = this.appendPulseMessage(this.pulseMessages$);\n\n // most recent on top\n this.pulseMessages$ = this.pulseMessages$.sort((a, b) => (a.updateTimeUTC < b.updateTimeUTC ? 1 : -1));\n }\n }\n\n convertToArray(messages: any[]): any[] {\n const arMessages: any[] = [];\n\n for (let i = 0; i < messages.length; i++) {\n arMessages.push(messages[i]);\n }\n\n return arMessages;\n }\n\n appendPulseMessage(messages: any[]): any[] {\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n const postedTime = message.postedTime;\n const updatedTime = message.updatedTime;\n\n this.showReplyComment$[message.ID] = false;\n\n message.displayPostedTime = this.utils.generateDateTime(postedTime, 'DateTime-Since');\n\n // for sorting lasted update\n if (updatedTime != null) {\n message.updateTimeUTC = new Date(updatedTime).getTime();\n } else {\n message.updateTimeUTC = new Date(postedTime).getTime();\n }\n\n message.displayPostedBy = message.postedByUser.name;\n message.displayPostedByInitials = this.utils.getInitials(message.postedByUser.name);\n\n // if didn't break, then look at the replies\n for (let j = 0; j < message.replies.length; j++) {\n const reply = message.replies[j];\n\n const replyPostedTime = reply.postedTime;\n reply.displayPostedTime = this.utils.generateDateTime(replyPostedTime, 'DateTime-Since');\n\n // let oReplyUser = this.userData.get(reply.postedByUser);\n const oReplyUser = reply.postedByUser;\n\n if (oReplyUser) {\n reply.displayPostedBy = oReplyUser.name;\n reply.displayPostedByInitials = this.utils.getInitials(oReplyUser.name);\n }\n }\n } // for\n\n return messages;\n }\n\n updateMessagesWithOperators() {\n for (let i = 0; i < this.pulseMessages$.length; i++) {\n const message = this.pulseMessages$[i];\n\n const postedTime = message.postedTime;\n\n this.showReplyComment$[message.ID] = false;\n\n message.displayPostedTime = this.utils.generateDateTime(postedTime, 'DateTime-Since');\n\n const oUser = this.userData.get(message.postedBy);\n\n if (oUser) {\n message.displayPostedBy = oUser.pyUserName;\n message.displayPostedByInitials = this.utils.getInitials(oUser.pyUserName);\n } else {\n const oUserParams = {\n OperatorId: message.postedBy\n };\n // Do something with oUserParams\n }\n\n // if didn't break, then look at the replies\n for (let j = 0; j < message.replies.length; j++) {\n const reply = message.replies[j];\n\n const replyPostedTime = reply.postedTime;\n reply.displayPostedTime = this.utils.generateDateTime(replyPostedTime, 'DateTime-Since');\n\n // let oReplyUser = this.userData.get(reply.postedByUser);\n const oReplyUser = reply.postedByUser;\n\n if (oReplyUser) {\n reply.displayPostedBy = oReplyUser.name;\n reply.displayPostedByInitials = this.utils.getInitials(oReplyUser.name);\n }\n }\n } // for\n }\n\n updateCurrentUserName(sUser: string) {\n this.currentUserInitials$ = this.utils.getInitials(sUser);\n this.currentUserName$ = sUser;\n }\n\n postClick() {\n // don't send a blank message\n if (this.pulseConversation && this.pulseConversation != '') {\n // let pulseMessage = {\n // contextName : this.pConn$.getContextName(),\n // message: this.pulseConversation,\n // pulseContext: this.pConn$.getValue(\".pzInsKey\")\n // };\n\n // debugger;\n // used to be: this./*feedAPI.*/postMessage(pulseMessage);\n // With latest FeedAPI, the 1st arg should be getConfigProps().value\n\n // If feedAPI is defined then only post message\n if (this.feedAPI) {\n this./* feedAPI. */ postMessage((this.pConn$.getConfigProps() as any).value, this.pulseConversation);\n } else {\n console.log(\"We don't support Pulse yet\");\n }\n }\n\n // clear out local copy\n (document.getElementById('pulseMessage') as HTMLElement | any).value = '';\n this.pulseConversation = '';\n }\n\n messageChange(event: any) {\n this.pulseConversation = event.target.value;\n }\n\n likeClick(messageID: string, rMessageID: string, bLikedByMe: boolean, level: string) {\n let pulseMessage = {};\n\n if (level === 'top') {\n pulseMessage = {\n pulseContext: rMessageID,\n isReply: null,\n contextName: this.pConn$.getContextName(),\n likedBy: bLikedByMe,\n messageID\n };\n } else {\n pulseMessage = {\n pulseContext: rMessageID,\n isReply: true,\n contextName: this.pConn$.getContextName(),\n likedBy: bLikedByMe,\n messageID\n };\n }\n\n // debugger;\n this./* feedAPI. */ likeMessage(pulseMessage);\n }\n\n commentClick(messageID) {\n // iterator through messages, find match, turn on comment entry\n const foundMessage = this.pulseMessages$.find(message => message.ID === messageID);\n\n if (foundMessage) {\n this.showReplyComment$[foundMessage.ID] = true;\n }\n\n this.cdRef.detectChanges();\n }\n\n postCommentClick(messageID) {\n // debugger;\n\n if (this.pulseComment[messageID] && this.pulseComment[messageID] != '') {\n // let pulseMessage = {\n // contextName : this.pConn$.getContextName(),\n // message: this.pulseComment[messageID],\n // pulseContext: messageID,\n // reply: true\n // };\n\n // debugger;\n // Used to be: this./*feedAPI.*/postMessage(pulseMessage);\n // Latest update to API has changed and the postMessage actually gets\n // the pulse context...\n // used to use: contextName\n // new FeedAPI wants args to be messageID, this.pulseComment[messageID], true (since this is a reply)\n this./* feedAPI. */ postMessage(messageID, this.pulseComment[messageID], true);\n\n this.pulseComment[messageID] = '';\n }\n }\n\n newCommentChange(event, messageID) {\n this.pulseComment[messageID] = event.target.value;\n }\n}\n","<div>\n <div style=\"text-align: left\">\n <h3>Pulse</h3>\n\n <div class=\"psdk-pulse-divider\"></div>\n\n <br />\n <div class=\"psdk-pulse\">\n <div class=\"psdk-avatar-big\">{{ this.currentUserInitials$ }}</div>\n <mat-form-field class=\"psdk-full-width\">\n <textarea matInput rows=\"5\" id=\"pulseMessage\" placeholder=\"Start a conversation\" type=\"text\" (change)=\"messageChange($event)\"></textarea>\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n <mat-grid-tile> </mat-grid-tile>\n <mat-grid-tile>\n <button mat-raised-button color=\"primary\" (click)=\"postClick()\">Post</button>\n </mat-grid-tile>\n</mat-grid-list>\n\n<div *ngFor=\"let pulseMessage of pulseMessages$; let odd = odd\" style=\"text-align: left\" [style.background-color]=\"odd ? 'white' : '#eeeeee'\">\n <div class=\"psdk-pulse-divider\"></div>\n <br />\n <div class=\"psdk-pulse\">\n <div class=\"psdk-avatar-big\">{{ pulseMessage.displayPostedByInitials }}</div>\n <div class=\"psdk-pulse-message-group\">\n <div class=\"psdk-pulse-message-by\">{{ pulseMessage.displayPostedBy }}</div>\n <div class=\"psdk-pulse-message-time\">{{ pulseMessage.displayPostedTime }}</div>\n </div>\n </div>\n <div class=\"psdk-pulse-message-text\">{{ pulseMessage.message }}</div>\n <div class=\"psdk-pulse-message-actions\">\n <div class=\"psdk-pulse-message-action-group\">\n <button mat-button (click)=\"commentClick(pulseMessage.ID)\">\n <img class=\"psdk-comment-svg-icon\" src=\"{{ svgComment$ }}\" />\n <label class=\"psdk-pulse-message-like-label\"\n >Comment <span *ngIf=\"pulseMessage?.replies.length > 0\"> | {{ pulseMessage.replies.length }}</span></label\n >\n </button>\n </div>\n <div class=\"psdk-pulse-message-action-like\">\n <div *ngIf=\"pulseMessage?.likeCount; else notLiked\">\n <button *ngIf=\"pulseMessage?.likedByMe == 'true'\" mat-button (click)=\"likeClick(pulseMessage.ID, pulseMessage.ID, true, 'top')\">\n <!-- <mat-icon class=\"psdk-icon-liked-by-me\" svgIcon=\"thumb-up\" mastListIcon ></mat-icon> -->\n <img class=\"psdk-liked-by-me-svg-icon\" src=\"{{ svgLikedByMe$ }}\" />\n <label class=\"psdk-pulse-message-like-label\">Like | {{ pulseMessage.likeCount }}</label>\n </button>\n <button *ngIf=\"pulseMessage?.likedByMe != 'true'\" mat-button (click)=\"likeClick(pulseMessage.ID, pulseMessage.ID, false, 'top')\">\n <!-- <mat-icon class=\"psdk-icon\" svgIcon=\"thumb-up-outline\" mastListIcon ></mat-icon> -->\n <img class=\"psdk-like-svg-icon\" src=\"{{ svgLike$ }}\" />\n <label class=\"psdk-pulse-message-like-label\">Like | {{ pulseMessage.likeCount }}</label>\n </button>\n </div>\n <ng-template #notLiked>\n <button mat-button (click)=\"likeClick(pulseMessage.ID, pulseMessage.ID, false, 'top')\">\n <!-- <mat-icon class=\"psdk-icon\" svgIcon=\"thumb-up-outline\" mastListIcon ></mat-icon> -->\n <img class=\"psdk-like-svg-icon\" src=\"{{ svgLike$ }}\" />\n <label class=\"psdk-pulse-message-like-label\">Like</label>\n </button>\n </ng-template>\n </div>\n </div>\n\n <div *ngIf=\"pulseMessage?.replies\" class=\"psdk-pulse-reply\">\n <div *ngFor=\"let replyMessage of pulseMessage.replies\" class=\"psdk-pulse-reply-align\">\n <div class=\"psdk-pulse-divider\"></div>\n <br />\n <div class=\"psdk-pulse-reply-group\">\n <div class=\"psdk-avatar\">{{ replyMessage.displayPostedByInitials }}</div>\n <div class=\"psdk-pulse-reply-by\">{{ replyMessage.displayPostedBy }}</div>\n <div class=\"psdk-pulse-reply-message\">{{ replyMessage.message }}</div>\n </div>\n <div class=\"psdk-pulse-reply-actions\">\n <button mat-button (click)=\"commentClick(pulseMessage.ID)\" class=\"psdk-pulse-reply-comment\">\n <img class=\"psdk-comment-svg-icon\" src=\"{{ svgComment$ }}\" />\n </button>\n <div *ngIf=\"replyMessage?.likeCount; else replyNotLiked\">\n <button\n *ngIf=\"replyMessage?.likedByMe === 'true'\"\n mat-button\n (click)=\"likeClick(pulseMessage.ID, replyMessage.ID, true, 'reply')\"\n class=\"psdk-pulse-reply-like\"\n >\n <img class=\"psdk-liked-by-me-svg-icon\" src=\"{{ svgLikedByMe$ }}\" />\n </button>\n <button\n *ngIf=\"replyMessage?.likedByMe != 'true'\"\n mat-button\n (click)=\"likeClick(pulseMessage.ID, replyMessage.ID, false, 'reply')\"\n class=\"psdk-pulse-reply-like\"\n >\n <img class=\"psdk-like-svg-icon\" src=\"{{ svgLike$ }}\" />\n </button>\n <label class=\"psdk-pulse-reply-like-label\">Like | {{ replyMessage.likeCount }}</label>\n </div>\n <ng-template #replyNotLiked>\n <button\n *ngIf=\"replyMessage?.likedByMe != 'true'\"\n mat-button\n (click)=\"likeClick(pulseMessage.ID, replyMessage.ID, false, 'reply')\"\n class=\"psdk-pulse-reply-like\"\n >\n <img class=\"psdk-like-svg-icon\" src=\"{{ svgLike$ }}\" />\n </button>\n </ng-template>\n\n <div class=\"psdk-pulse-reply-time\">{{ replyMessage.displayPostedTime }}</div>\n </div>\n <br />\n </div>\n\n <div *ngIf=\"showReplyComment$[pulseMessage.ID] == true\">\n <div class=\"psdk-pulse-divider\"></div>\n <br />\n <div class=\"psdk-pulse-comment-group\">\n <div class=\"psdk-avatar\">{{ this.currentUserInitials$ }}</div>\n <mat-form-field class=\"psdk-full-width\">\n <textarea\n matInput\n rows=\"5\"\n id=\"pulseMessage\"\n placeholder=\"Add a comment\"\n type=\"text\"\n (change)=\"newCommentChange($event, pulseMessage.ID)\"\n ></textarea>\n </mat-form-field>\n <button mat-button (click)=\"postCommentClick(pulseMessage.ID)\" class=\"psdk-pulse-comment-post\">\n <img class=\"psdk-send-svg-icon\" src=\"{{ svgSend$ }}\" />\n </button>\n </div>\n </div>\n </div>\n <br />\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-case-create-stage',\n templateUrl: './case-create-stage.component.html',\n styleUrls: ['./case-create-stage.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CaseCreateStageComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n arChildren$: any[];\n\n // For interaction with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // this.updateSelf();\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.arChildren$ = this.pConn$.getChildren() as any[];\n }\n}\n","<div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getConfigProps().template != ''\">\n <component-mapper\n [name]=\"kid.getPConnect().getConfigProps().template\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"CreateCaseStage Missing: {{ kid.getPConnect().getConfigProps().template }}\"\n ></component-mapper>\n </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-material-details',\n templateUrl: './material-details.component.html',\n styleUrls: ['./material-details.component.scss'],\n standalone: true,\n imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MaterialDetailsComponent {\n constructor(private utils: Utils) {}\n\n @Input() arFields$: any[];\n @Input() arFields2$: any[];\n @Input() arFields3$: any[];\n @Input() arHighlightedFields: any[];\n @Input() layout: any;\n\n _getValue(configValue) {\n if (configValue && configValue != '') {\n return configValue;\n }\n return '---';\n }\n\n _formatDate(dateValue: string, dateFormat: string): string {\n return this.utils.generateDate(dateValue, dateFormat);\n }\n}\n","<div id=\"details-fields-list\">\n <div\n *ngIf=\"arHighlightedFields && arHighlightedFields.length > 0\"\n [ngClass]=\"{\n 'psdk-grid-filter-1': this.layout === 'one-column',\n 'psdk-grid-filter-2': this.layout === 'two-column',\n 'psdk-grid-filter-3': this.layout === 'three-column',\n 'psdk-grid-filter-wide-narrow': this.layout === 'wide-narrow',\n 'psdk-grid-filter-narrow-wide': this.layout === 'narrow-wide'\n }\"\n >\n <div *ngFor=\"let field of arHighlightedFields\">\n <div class=\"psdk-details-fields-label\">\n {{ field.config.label }}\n </div>\n <div [ngSwitch]=\"field.type.toLowerCase()\" class=\"psdk-csf-primary-field-value\">\n <span *ngSwitchCase=\"'textinput'\" class=\"psdk-details-text-style-hf\">{{ _getValue(field.config.value) }}</span>\n <span *ngSwitchCase=\"'status'\" class=\"psdk-details-status-style-hf\">{{ _getValue(field.config.value) }}</span>\n <a *ngSwitchCase=\"'phone'\" as=\"a\" href=\"tel: {{ field.config.value }}\">{{ _getValue(field.config.value) }}</a>\n <a *ngSwitchCase=\"'email'\" href=\"mailto: {{ field.config.value }}\">{{ _getValue(field.config.value) }}</a>\n <span *ngSwitchCase=\"'date'\" class=\"psdk-details-text-style-hf\">{{ _formatDate(field.config.value, field.type) }}</span>\n <span *ngSwitchCase=\"'caseoperator'\"></span>\n <span *ngSwitchDefault>{{ _getValue(field.config.value) }}</span>\n </div>\n </div>\n </div>\n <div\n [ngClass]=\"{\n 'psdk-grid-filter-1': this.layout === 'one-column',\n 'psdk-grid-filter-2': this.layout === 'two-column',\n 'psdk-grid-filter-3': this.layout === 'three-column',\n 'psdk-grid-filter-wide-narrow': this.layout === 'wide-narrow',\n 'psdk-grid-filter-narrow-wide': this.layout === 'narrow-wide'\n }\"\n >\n <component-mapper *ngIf=\"arFields$\" name=\"DetailsFields\" [props]=\"{ arFields$: arFields$ }\"></component-mapper>\n <component-mapper *ngIf=\"arFields2$\" name=\"DetailsFields\" [props]=\"{ arFields$: arFields2$ }\"></component-mapper>\n <component-mapper *ngIf=\"arFields3$\" name=\"DetailsFields\" [props]=\"{ arFields$: arFields3$ }\"></component-mapper>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { debounceTime } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getFilterExpression, getFormattedDate, createFilter, combineFilters } from '../../../_helpers/filter-utils';\n\n@Component({\n selector: 'app-dashboard-filter',\n templateUrl: './dashboard-filter.component.html',\n styleUrls: ['./dashboard-filter.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatButtonModule,\n MatNativeDateModule,\n forwardRef(() => ComponentMapperComponent)\n ]\n})\nexport class DashboardFilterComponent implements OnInit {\n @Input() pConn$: typeof PConnect;\n @Input() filtersFormGroup$: FormGroup;\n @Input() inlineProps;\n @Input() children;\n\n arChildren$: any[];\n private filterChangeSubject = new Subject<string>();\n\n constructor() {\n this.filterChangeSubject.pipe(debounceTime(500)).subscribe(val => this.fireFilterChange(val));\n }\n\n ngOnInit() {\n if (this.filtersFormGroup$ != null) {\n this.filtersFormGroup$.addControl('start', new FormControl(null));\n this.filtersFormGroup$.addControl('end', new FormControl(null));\n }\n }\n\n clearFilters() {\n this.filtersFormGroup$.reset();\n // @ts-ignore - second parameter “payload” for publish method should be optional\n PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL);\n }\n\n updateTmpData(filterData) {\n this.filterChangeSubject.next(filterData);\n }\n\n dateRangeChangeHandler(field) {\n const { filterId, name } = field;\n const start = (this.filtersFormGroup$.get('start') as FormControl).value;\n const end = (this.filtersFormGroup$.get('end') as FormControl).value;\n if (start && end) {\n let startDate = getFormattedDate(start);\n let endDate = getFormattedDate(end);\n\n if (startDate && endDate) {\n startDate = `${startDate}T00:00:00`;\n endDate = `${endDate}T00:00:00`;\n const startFilter = createFilter(startDate, name, 'GT');\n const endFilter = createFilter(endDate, name, 'LT');\n\n const filterData = {\n filterId,\n filterExpression: combineFilters([startFilter, endFilter], null)\n };\n PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE, filterData);\n }\n }\n }\n\n fireFilterChange(data: any) {\n const { event, field } = data;\n const filterData = {\n filterId: field.filterId,\n filterExpression: getFilterExpression(event.target.value, field.name, field.metadata)\n };\n\n PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE, filterData);\n }\n}\n","<div\n [ngClass]=\"{\n 'psdk-block-style': inlineProps.filterPosition === 'block-start'\n }\"\n>\n <div *ngFor=\"let kid of children\">\n <div *ngIf=\"kid.type === 'DateTime'\" [formGroup]=\"filtersFormGroup$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-label>{{ kid.label }}</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate placeholder=\"Start date\" formControlName=\"start\" />\n <input matEndDate placeholder=\"End date\" formControlName=\"end\" (dateChange)=\"dateRangeChangeHandler(kid)\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n </mat-form-field>\n </div>\n <div *ngIf=\"kid.c11nEnv\">\n <span (input)=\"updateTmpData({ event: $event, field: kid })\">\n <component-mapper\n [name]=\"kid.c11nEnv.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.c11nEnv.getPConnect(),\n formGroup$: filtersFormGroup$\n }\"\n errorMsg=\"Dashboard filter wants component not yet available: {{ kid.c11nEnv.getPConnect().getComponentName() }}\"\n >\n </component-mapper>\n </span>\n </div>\n </div>\n <div>\n <button mat-button color=\"primary\" (click)=\"clearFilters()\">Clear All</button>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n selector: 'app-list-utility',\n templateUrl: './list-utility.component.html',\n styleUrls: ['./list-utility.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatMenuModule, MatProgressSpinnerModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ListUtilityComponent implements OnInit {\n @Input() name$ = '';\n @Input() icon$ = '';\n @Input() bLoading$ = false;\n @Input() count$ = 0;\n @Input() arActions$: any[] = [];\n @Input() arItems$: any[] = [];\n @Input() menuIconOverrideAction$: any[] = [];\n\n // function to all\n @Input() onViewAll$: any;\n\n headerSvgIcon$: string;\n settingsSvgIcon$: string;\n\n noItemsMessage$ = 'No Items';\n\n imagePath$ = '';\n\n constructor(private utils: Utils) {}\n\n ngOnInit(): void {\n this.imagePath$ = this.getIconPath();\n\n this.headerSvgIcon$ = this.utils.getImageSrc(this.icon$, this.utils.getSDKStaticContentUrl());\n this.settingsSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n }\n\n getIconPath(): string {\n return `${this.utils.getSDKStaticContentUrl()}assets/icons/`;\n }\n}\n","<div style=\"text-align: left\">\n <div class=\"psdk-utility\">\n <div class=\"header\">\n <div class=\"header-icon\">\n <img class=\"psdk-utility-svg-icon\" src=\"{{ headerSvgIcon$ }}\" />\n </div>\n <div class=\"header-text\">{{ name$ }}</div>\n <div class=\"psdk-utility-count\" id=\"attachments-count\">{{ count$ }}</div>\n <div style=\"flex-grow: 1\"></div>\n <div class=\"header-icon\">\n <button mat-icon-button [matMenuTriggerFor]=\"utilityMenu\">\n <img class=\"psdk-utility-card-actions-svg-icon\" src=\"{{ settingsSvgIcon$ }}\" />\n </button>\n <mat-menu #utilityMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arActions$\">\n <button mat-menu-item (click)=\"action.onClick()\">{{ action.text }}</button>\n </ng-container>\n </mat-menu>\n </div>\n </div>\n <div class=\"psdk-utiltiy-divider\"></div>\n <br />\n <mat-spinner *ngIf=\"bLoading$\" class=\"progress-spinner\" diameter=\"50\"></mat-spinner>\n <div *ngIf=\"count$ == 0\" class=\"message\">{{ noItemsMessage$ }}</div>\n <div *ngIf=\"count$ > 0\" class=\"psdk-utility-items\">\n <component-mapper name=\"SummaryList\" [props]=\"{ arItems$, menuIconOverrideAction$ }\"></component-mapper>\n </div>\n <div class=\"psdk-utility-view-all\">\n <button *ngIf=\"count$ > 3\" mat-button color=\"primary\" (click)=\"onViewAll$.onClick()\">View all</button>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Utils } from '../../../_helpers/utils';\n\n@Component({\n selector: 'app-material-utility',\n templateUrl: './material-utility.component.html',\n styleUrls: ['./material-utility.component.scss'],\n providers: [Utils],\n standalone: true\n})\nexport class MaterialUtilityComponent implements OnInit {\n @Input() headerText$: string;\n @Input() headerIcon$: string;\n @Input() headerIconUrl$: string;\n @Input() noItemsMessage$: string;\n\n headerSvgIcon$: string;\n settingsSvgIcon$: string;\n\n constructor(private utils: Utils) {}\n\n ngOnInit(): void {\n this.headerSvgIcon$ = this.utils.getImageSrc(this.headerIcon$, this.headerIconUrl$);\n this.settingsSvgIcon$ = this.utils.getImageSrc('plus', this.headerIconUrl$);\n }\n}\n","<div style=\"text-align: left\">\n <div class=\"psdk-utility\">\n <div class=\"header\">\n <div class=\"header-icon\">\n <img class=\"psdk-utility-svg-icon\" src=\"{{ headerSvgIcon$ }}\" />\n </div>\n <div class=\"header-text\">{{ headerText$ }}</div>\n <div style=\"flex-grow: 1\"></div>\n <div class=\"header-icon\">\n <img class=\"psdk-settings-svg-icon\" src=\"{{ settingsSvgIcon$ }}\" />\n </div>\n </div>\n <div class=\"psdk-case-view-divider\"></div>\n <br />\n <div class=\"message\">{{ noItemsMessage$ }}</div>\n </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport handleEvent from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface RichTextProps extends PConnFieldProps {\n // If any, enter additional props that only exist on RichText here\n}\n\n@Component({\n selector: 'app-rich-text',\n templateUrl: './rich-text.component.html',\n styleUrls: ['./rich-text.component.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class RichTextComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n // Used with AngularPConnect\n angularPConnectData: AngularPConnectData = {};\n configProps$: RichTextProps;\n\n label$ = '';\n value$ = '';\n bRequired$ = false;\n bReadonly$ = false;\n bDisabled$ = false;\n bVisible$ = true;\n displayMode$?: string = '';\n controlName$: string;\n testId: string;\n helperText: string;\n placeholder: any;\n info: any;\n error: boolean;\n status: any;\n\n constructor(\n private angularPConnect: AngularPConnectService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n // call updateSelf when initializing\n this.checkAndUpdate();\n }\n\n ngOnDestroy(): void {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n // Callback passed when subscribing to store change\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should\n // update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n // updateSelf\n updateSelf(): void {\n // moved this from ngOnInit() and call this from there instead...\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as RichTextProps;\n const stateProps: any = this.pConn$.getStateProps();\n this.status = stateProps?.status;\n\n if (this.configProps$.value != undefined) {\n this.value$ = this.configProps$.value;\n }\n\n this.testId = this.configProps$.testId;\n this.displayMode$ = this.configProps$.displayMode;\n this.label$ = this.configProps$.label;\n this.placeholder = this.configProps$.placeholder;\n this.info = stateProps?.validatemessage || this.configProps$.helperText;\n this.error = stateProps?.status === 'error';\n\n if (this.configProps$.required != null) {\n this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);\n }\n\n if (this.configProps$.visibility != null) {\n this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n }\n\n if (this.configProps$.disabled != undefined) {\n this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);\n }\n\n if (this.configProps$.readOnly != null) {\n this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);\n }\n }\n\n fieldOnChange() {\n if (this.status === 'error') {\n const property = (this.pConn$.getStateProps() as any).value;\n this.pConn$.clearErrorMessages({\n property,\n category: '',\n context: ''\n });\n }\n }\n\n fieldOnBlur(editorValue: any) {\n // PConnect wants to use eventHandler for onBlur\n const actionsApi = this.pConn$?.getActionsApi();\n const propName = (this.pConn$?.getStateProps() as any).value;\n handleEvent(actionsApi, 'changeNblur', propName, editorValue);\n }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$; else noEdit\">\n <div *ngIf=\"bVisible$\">\n <component-mapper\n name=\"RichTextEditor\"\n [props]=\"{ placeholder, required: bRequired$, disabled: bDisabled$, label: label$, readonly: false, error, info, testId, value: value$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onBlur: fieldOnBlur, onChange: fieldOnChange }\"\n ></component-mapper>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <div *ngIf=\"bVisible$ !== false\">\n <component-mapper name=\"RichTextEditor\" [props]=\"{ label: label$, value: value$, readonly: true, testId }\" [parent]=\"this\"></component-mapper>\n </div>\n</ng-template>\n","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { EditorModule, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';\n\ndeclare let tinymce: any;\n\n@Component({\n selector: 'app-rich-text-editor',\n templateUrl: './rich-text-editor.component.html',\n styleUrls: ['./rich-text-editor.component.scss'],\n standalone: true,\n imports: [CommonModule, EditorModule, ReactiveFormsModule],\n providers: [{ provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }]\n})\nexport class RichTextEditorComponent implements OnChanges {\n @Input() placeholder;\n @Input() disabled;\n @Input() readonly;\n @Input() value;\n @Input() label;\n @Input() required;\n @Input() info;\n @Input() error;\n @Input() testId;\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n richText = new FormControl();\n\n ngOnChanges() {\n if (this.required) {\n this.richText.addValidators(Validators.required);\n }\n\n if (this.disabled) {\n this.richText.disable();\n } else {\n this.richText.enable();\n }\n\n if (this.value) {\n this.richText.setValue(this.value);\n }\n }\n\n filePickerCallback = cb => {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('accept', 'image/*');\n\n input.addEventListener('change', (e: any) => {\n const file = e.target.files[0];\n\n const reader: any = new FileReader();\n reader.addEventListener('load', () => {\n /*\n Note: Now we need to register the blob in TinyMCEs image blob\n registry. In the next release this part hopefully won't be\n necessary, as we are looking to handle it internally.\n */\n const blobId = `blobid${new Date().getTime()}`;\n console.log('editorRef', tinymce.activeEditor);\n const blobCache = tinymce.activeEditor.editorUpload.blobCache;\n const base64 = reader.result.split(',')[1];\n const blobInfo = blobCache.create(blobId, file, base64);\n blobCache.add(blobInfo);\n\n /* call the callback and populate the Title field with the file name */\n cb(blobInfo.blobUri(), { title: file.name });\n });\n reader.readAsDataURL(file);\n });\n\n input.click();\n };\n\n blur() {\n if (tinymce.activeEditor) {\n const editorValue = tinymce.activeEditor.getContent({ format: 'html' });\n this.onBlur.emit(editorValue);\n }\n }\n\n change(event) {\n this.onChange.emit(event);\n }\n}\n","<div [attr.data-test-id]=\"testId\">\n <label [ngClass]=\"{ 'label-required': required === true }\" class=\"rich-text-label\">{{ label }}</label>\n <div class=\"rich-text-editor\" *ngIf=\"!readonly\">\n <editor\n [formControl]=\"richText\"\n [attr.disabled]=\"disabled\"\n [initialValue]=\"value\"\n [init]=\"{\n base_url: '/tinymce',\n suffix: '.min',\n menubar: false,\n placeholder,\n statusbar: false,\n min_height: 130,\n plugins: ['lists', 'advlist', 'autolink', 'image', 'link', 'autoresize'],\n autoresize_bottom_margin: 0,\n toolbar: disabled ? false : 'blocks | bold italic strikethrough | bullist numlist outdent indent | link image',\n toolbar_location: 'bottom',\n content_style: 'body { font-family:Helvetica, Arial,sans-serif; font-size:14px }',\n branding: false,\n paste_data_images: true,\n file_picker_types: 'image',\n file_picker_callback: filePickerCallback\n }\"\n (onBlur)=\"blur()\"\n (onChange)=\"change($event)\"\n ></editor>\n <p *ngIf=\"richText.invalid\" [ngClass]=\"'text-editor-error'\">{{ info }}</p>\n </div>\n <div *ngIf=\"readonly\">\n <div class=\"readonly-richtext-editor\" style=\"margin: 10px 5px\" [innerHTML]=\"value || '--'\"></div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatGridListModule } from '@angular/material/grid-list';\n\n@Component({\n selector: 'app-list-view-action-buttons',\n templateUrl: './list-view-action-buttons.component.html',\n styleUrls: ['./list-view-action-buttons.component.scss'],\n standalone: true,\n imports: [CommonModule, MatGridListModule, MatButtonModule]\n})\nexport class ListViewActionButtonsComponent {\n @Input() pConn$: typeof PConnect;\n @Input() context$: string;\n // @Input() closeActionsDialog: any;\n @Output() closeActionsDialog: EventEmitter<any> = new EventEmitter();\n\n localizedVal = PCore.getLocaleUtils().getLocaleValue;\n localeCategory = 'Data Object';\n isDisabled: boolean;\n\n onCancel() {\n // this.closeActionsDialog();\n this.closeActionsDialog.emit();\n this.pConn$.getActionsApi().cancelDataObject(this.context$);\n }\n\n onSubmit() {\n this.isDisabled = true;\n this.pConn$\n .getActionsApi()\n .submitEmbeddedDataModal(this.context$)\n .then(() => {})\n .finally(() => {\n this.isDisabled = false;\n });\n this.closeActionsDialog.emit();\n }\n}\n","<mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n <mat-grid-tile>\n <button mat-raised-button variant=\"contained\" color=\"secondary\" (click)=\"onCancel()\">\n {{ localizedVal('Cancel', localeCategory) }}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button mat-raised-button variant=\"contained\" color=\"primary\" [disabled]=\"isDisabled\" (click)=\"onSubmit()\">\n {{ localizedVal('Submit', localeCategory) }}\n </button>\n </mat-grid-tile>\n</mat-grid-list>\n","import { Component, Input, OnDestroy, OnInit, forwardRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { CommonModule } from '@angular/common';\nimport { buildView } from '../../../_helpers/field-group-utils';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface DynamicTabsProps {\n referenceList: string;\n template: string;\n}\n\n@Component({\n selector: 'app-dynamic-tabs',\n templateUrl: './dynamic-tabs.component.html',\n styleUrls: ['./dynamic-tabs.component.scss'],\n standalone: true,\n imports: [CommonModule, MatTabsModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DynamicTabsComponent implements OnInit, OnDestroy {\n @Input() pConn$: typeof PConnect;\n @Input() formGroup$: FormGroup;\n\n angularPConnectData: AngularPConnectData = {};\n tabsItems: any[];\n\n constructor(private angularPConnect: AngularPConnectService) {}\n\n ngOnInit(): void {\n // First thing in initialization is registering and subscribing to the AngularPConnect service\n this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n this.checkAndUpdate();\n }\n\n ngOnDestroy() {\n if (this.angularPConnectData.unsubscribeFn) {\n this.angularPConnectData.unsubscribeFn();\n }\n }\n\n onStateChange() {\n this.checkAndUpdate();\n }\n\n checkAndUpdate() {\n // Should always check the bridge to see if the component should update itself (re-render)\n const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n // ONLY call updateSelf when the component should update\n if (bUpdateSelf) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n const { referenceList } = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DynamicTabsProps;\n\n // @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'\n const { tablabel } = this.pConn$.getComponentConfig();\n const tablabelProp = PCore.getAnnotationUtils().getPropertyName(tablabel);\n\n this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');\n this.pConn$.setInheritedProp('readOnly', true);\n\n const referenceListData: any = this.pConn$.getValue(`${referenceList}.pxResults`, ''); // 2nd arg empty string until typedefs properly allow optional\n\n this.tabsItems =\n referenceListData?.map((item, i) => {\n const currentTabLabel = item[tablabelProp] || PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic');\n return {\n id: i,\n name: currentTabLabel,\n content: buildView(this.pConn$, i, '')\n };\n }) || [];\n }\n}\n","<mat-tab-group id=\"dynamic-tabs\" mat-stretch-tabs=\"false\" animationDuration=\"0\">\n <mat-tab *ngFor=\"let tab of tabsItems\" [label]=\"tab.name\">\n <component-mapper name=\"View\" [props]=\"{ pConn$: tab.content.getPConnect() }\"></component-mapper>\n </mat-tab>\n</mat-tab-group>\n","import { AutoCompleteComponent } from '../../_components/field/auto-complete/auto-complete.component';\nimport { CancelAlertComponent } from '../../_components/field/cancel-alert/cancel-alert.component';\nimport { CheckBoxComponent } from '../../_components/field/check-box/check-box.component';\nimport { CurrencyComponent } from '../../_components/field/currency/currency.component';\nimport { DateTimeComponent } from '../../_components/field/date-time/date-time.component';\nimport { DateComponent } from '../../_components/field/date/date.component';\nimport { DecimalComponent } from '../../_components/field/decimal/decimal.component';\nimport { DropdownComponent } from '../../_components/field/dropdown/dropdown.component';\nimport { EmailComponent } from '../../_components/field/email/email.component';\nimport { IntegerComponent } from '../../_components/field/integer/integer.component';\nimport { PercentageComponent } from '../../_components/field/percentage/percentage.component';\nimport { PhoneComponent } from '../../_components/field/phone/phone.component';\nimport { RadioButtonsComponent } from '../../_components/field/radio-buttons/radio-buttons.component';\nimport { SemanticLinkComponent } from '../../_components/field/semantic-link/semantic-link.component';\nimport { TextAreaComponent } from '../../_components/field/text-area/text-area.component';\nimport { TextContentComponent } from '../../_components/field/text-content/text-content.component';\nimport { TextInputComponent } from '../../_components/field/text-input/text-input.component';\nimport { ThreeColumnComponent } from '../../_components/template/three-column/three-column.component';\nimport { ThreeColumnPageComponent } from '../../_components/template/three-column-page/three-column-page.component';\nimport { TimeComponent } from '../../_components/field/time/time.component';\nimport { UrlComponent } from '../../_components/field/url/url.component';\nimport { UserReferenceComponent } from '../../_components/field/user-reference/user-reference.component';\nimport { FlowContainerComponent } from '../../_components/infra/Containers/flow-container/flow-container.component';\nimport { ModalViewContainerComponent } from '../../_components/infra/Containers/modal-view-container/modal-view-container.component';\nimport { ViewContainerComponent } from '../../_components/infra/Containers/view-container/view-container.component';\nimport { ActionButtonsComponent } from '../../_components/infra/action-buttons/action-buttons.component';\nimport { AssignmentCardComponent } from '../../_components/infra/assignment-card/assignment-card.component';\nimport { AssignmentComponent } from '../../_components/infra/assignment/assignment.component';\nimport { DeferLoadComponent } from '../../_components/infra/defer-load/defer-load.component';\nimport { MultiStepComponent } from '../../_components/infra/multi-step/multi-step.component';\nimport { NavbarComponent } from '../../_components/infra/navbar/navbar.component';\nimport { ReferenceComponent } from '../../_components/infra/reference/reference.component';\nimport { RegionComponent } from '../../_components/infra/region/region.component';\nimport { RootContainerComponent } from '../../_components/infra/root-container/root-container.component';\nimport { StagesComponent } from '../../_components/infra/stages/stages.component';\nimport { SubTabsComponent } from '../../_components/template/sub-tabs/sub-tabs.component';\nimport { ViewComponent } from '../../_components/infra/view/view.component';\nimport { AppShellComponent } from '../../_components/template/app-shell/app-shell.component';\nimport { CaseSummaryComponent } from '../../_components/template/case-summary/case-summary.component';\nimport { CaseViewComponent } from '../../_components/template/case-view/case-view.component';\nimport { DataReferenceComponent } from '../../_components/template/data-reference/data-reference.component';\nimport { DefaultFormComponent } from '../../_components/template/default-form/default-form.component';\nimport { DetailsThreeColumnComponent } from '../../_components/template/details-three-column/details-three-column.component';\nimport { DetailsTwoColumnComponent } from '../../_components/template/details-two-column/details-two-column.component';\nimport { DetailsSubTabsComponent } from '../../_components/template/details-sub-tabs/details-sub-tabs.component';\nimport { DetailsComponent } from '../../_components/template/details/details.component';\nimport { FieldGroupTemplateComponent } from '../../_components/template/field-group-template/field-group-template.component';\nimport { ListPageComponent } from '../../_components/template/list-page/list-page.component';\nimport { ListViewComponent } from '../../_components/template/list-view/list-view.component';\nimport { MultiReferenceReadonlyComponent } from '../../_components/template/multi-reference-readonly/multi-reference-readonly.component';\nimport { NarrowWideFormComponent } from '../../_components/template/narrow-wide-form/narrow-wide-form.component';\nimport { OneColumnPageComponent } from '../../_components/template/one-column-page/one-column-page.component';\nimport { OneColumnTabComponent } from '../../_components/template/one-column-tab/one-column-tab.component';\nimport { OneColumnComponent } from '../../_components/template/one-column/one-column.component';\nimport { PageComponent } from '../../_components/template/page/page.component';\nimport { PromotedFiltersComponent } from '../../_components/template/promoted-filters/promoted-filters.component';\nimport { SimpleTableManualComponent } from '../../_components/template/simple-table-manual/simple-table-manual.component';\nimport { SimpleTableSelectComponent } from '../../_components/template/simple-table-select/simple-table-select.component';\nimport { SimpleTableComponent } from '../../_components/template/simple-table/simple-table.component';\nimport { SingleReferenceReadonlyComponent } from '../../_components/template/single-reference-readonly/single-reference-readonly.component';\nimport { TwoColumnPageComponent } from '../../_components/template/two-column-page/two-column-page.component';\nimport { TwoColumnComponent } from '../../_components/template/two-column/two-column.component';\nimport { TwoColumnTabComponent } from '../../_components/template/two-column-tab/two-column-tab.component';\nimport { WideNarrowFormComponent } from '../../_components/template/wide-narrow-form/wide-narrow-form.component';\nimport { WideNarrowPageComponent } from '../../_components/template/wide-narrow-page/wide-narrow-page.component';\nimport { AppAnnouncementComponent } from '../../_components/widget/app-announcement/app-announcement.component';\nimport { AttachmentComponent } from '../../_components/widget/attachment/attachment.component';\nimport { CaseHistoryComponent } from '../../_components/widget/case-history/case-history.component';\nimport { FileUtilityComponent } from '../../_components/widget/file-utility/file-utility.component';\nimport { TodoComponent } from '../../_components/widget/todo/todo.component';\nimport { MaterialSummaryItemComponent } from '../../_components/designSystemExtension/material-summary-item/material-summary-item.component';\nimport { MaterialSummaryListComponent } from '../../_components/designSystemExtension/material-summary-list/material-summary-list.component';\nimport { MaterialVerticalTabsComponent } from '../../_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component';\nimport { OperatorComponent } from '../../_components/designSystemExtension/operator/operator.component';\nimport { PulseComponent } from '../../_components/designSystemExtension/pulse/pulse.component';\nimport { DetailsWideNarrowComponent } from '../../_components/template/details-wide-narrow/details-wide-narrow.component';\nimport { TextComponent } from '../../_components/field/text/text.component';\nimport { DetailsNarrowWideComponent } from '../../_components/template/details-narrow-wide/details-narrow-wide.component';\nimport { FieldValueListComponent } from '../../_components/template/field-value-list/field-value-list.component';\nimport { ErrorBoundaryComponent } from '../../_components/infra/error-boundary/error-boundary.component';\nimport { FieldGroupListComponent } from '../../_components/template/field-group-list/field-group-list.component';\nimport { MaterialDetailsFieldsComponent } from '../../_components/designSystemExtension/material-details-fields/material-details-fields.component';\nimport { DetailsOneColumnComponent } from '../../_components/template/details-one-column/details-one-column.component';\nimport { ConfirmationComponent } from '../../_components/template/confirmation/confirmation.component';\nimport { MaterialCaseSummaryComponent } from '../../_components/designSystemExtension/material-case-summary/material-case-summary.component';\nimport { AlertBannerComponent } from '../../_components/designSystemExtension/alert-banner/alert-banner.component';\nimport { AlertComponent } from '../../_components/designSystemExtension/alert/alert.component';\nimport { BannerPageComponent } from '../../_components/template/banner-page/banner-page.component';\nimport { WssNavBarComponent } from '../../_components/template/wss-nav-bar/wss-nav-bar.component';\nimport { QuickCreateComponent } from '../../_components/widget/quick-create/quick-create.component';\nimport { WssQuickCreateComponent } from '../../_components/designSystemExtension/wss-quick-create/wss-quick-create.component';\nimport { BannerComponent } from '../../_components/designSystemExtension/banner/banner.component';\nimport { InlineDashboardComponent } from '../../_components/template/inline-dashboard/inline-dashboard.component';\nimport { InlineDashboardPageComponent } from '../../_components/template/inline-dashboard-page/inline-dashboard-page.component';\nimport { ScalarListComponent } from '../../_components/field/scalar-list/scalar-list.component';\nimport { FeedContainerComponent } from '../../_components/widget/feed-container/feed-container.component';\nimport { CaseCreateStageComponent } from '../../_components/designSystemExtension/case-create-stage/case-create-stage.component';\nimport { MaterialDetailsComponent } from '../../_components/designSystemExtension/material-details/material-details.component';\nimport { DashboardFilterComponent } from '../../_components/infra/dashboard-filter/dashboard-filter.component';\nimport { ListUtilityComponent } from '../../_components/widget/list-utility/list-utility.component';\nimport { MaterialUtilityComponent } from '../../_components/designSystemExtension/material-utility/material-utility.component';\nimport { RichTextComponent } from '../../_components/field/rich-text/rich-text.component';\nimport { RichTextEditorComponent } from '../../_components/designSystemExtension/rich-text-editor/rich-text-editor.component';\nimport { ListViewActionButtonsComponent } from '../../_components/field/list-view-action-buttons/list-view-action-buttons.component';\nimport { DynamicTabsComponent } from '../../_components/template/dynamic-tabs/dynamic-tabs.component';\n\n// pegaSdkComponentMap is the JSON object where we'll store the components that are\n// the default implementations provided by the SDK. These will be used if there isn't\n// an entry in the localSdkComponentMap\n\n// NOTE: A few components have non-standard capitalization:\n// 'reference' is what's in the metadata, not Reference\n// 'Todo' is what's in the metadata, not ToDo\n// Also, note that \"Checkbox\" component is named/exported as CheckboxComponent\n\nconst pegaSdkComponentMap = {\n ActionButtons: ActionButtonsComponent,\n Alert: AlertComponent,\n AlertBanner: AlertBannerComponent,\n // 'ActionButtonsForFileUtil': ActionButtonsForFileUtil,\n AppAnnouncement: AppAnnouncementComponent,\n AppShell: AppShellComponent,\n Assignment: AssignmentComponent,\n AssignmentCard: AssignmentCardComponent,\n Attachment: AttachmentComponent,\n AutoComplete: AutoCompleteComponent,\n Banner: BannerComponent,\n BannerPage: BannerPageComponent,\n CancelAlert: CancelAlertComponent,\n CaseCreateStage: CaseCreateStageComponent,\n CaseHistory: CaseHistoryComponent,\n CaseSummary: CaseSummaryComponent,\n CaseSummaryFields: MaterialCaseSummaryComponent,\n CaseView: CaseViewComponent,\n // 'CaseViewActionsMenu': CaseViewActionsMenu,\n Checkbox: CheckBoxComponent,\n Confirmation: ConfirmationComponent,\n Currency: CurrencyComponent,\n DashboardFilter: DashboardFilterComponent,\n DataReference: DataReferenceComponent,\n Date: DateComponent,\n DateTime: DateTimeComponent,\n Decimal: DecimalComponent,\n DefaultForm: DefaultFormComponent,\n DeferLoad: DeferLoadComponent,\n Details: DetailsComponent,\n DetailsFields: MaterialDetailsFieldsComponent,\n DetailsOneColumn: DetailsOneColumnComponent,\n DetailsSubTabs: DetailsSubTabsComponent,\n DetailsThreeColumn: DetailsThreeColumnComponent,\n DetailsTwoColumn: DetailsTwoColumnComponent,\n Dropdown: DropdownComponent,\n DynamicTabs: DynamicTabsComponent,\n Email: EmailComponent,\n ErrorBoundary: ErrorBoundaryComponent,\n FeedContainer: FeedContainerComponent,\n FieldGroupList: FieldGroupListComponent,\n FieldGroupTemplate: FieldGroupTemplateComponent,\n FieldValueList: FieldValueListComponent,\n FileUtility: FileUtilityComponent,\n FlowContainer: FlowContainerComponent,\n // 'Followers': Followers,\n InlineDashboard: InlineDashboardComponent,\n InlineDashboardPage: InlineDashboardPageComponent,\n Integer: IntegerComponent,\n // 'LeftAlignVerticalTabs': LeftAlignVerticalTabs,\n ListPage: ListPageComponent,\n ListUtility: ListUtilityComponent,\n ListView: ListViewComponent,\n ListViewActionButtons: ListViewActionButtonsComponent,\n MaterialDetails: MaterialDetailsComponent,\n MaterialUtility: MaterialUtilityComponent,\n ModalViewContainer: ModalViewContainerComponent,\n MultiReferenceReadOnly: MultiReferenceReadonlyComponent,\n MultiStep: MultiStepComponent,\n // 'NarrowWide': NarrowWideFormComponent,\n NarrowWideDetails: DetailsNarrowWideComponent,\n NarrowWideForm: NarrowWideFormComponent,\n // 'NarrowWidePage': NarrowWidePage,\n NavBar: NavbarComponent,\n OneColumn: OneColumnComponent,\n OneColumnPage: OneColumnPageComponent,\n OneColumnTab: OneColumnTabComponent,\n Operator: OperatorComponent,\n Page: PageComponent,\n Percentage: PercentageComponent,\n Phone: PhoneComponent,\n PromotedFilters: PromotedFiltersComponent,\n Pulse: PulseComponent,\n QuickCreate: QuickCreateComponent,\n reference: ReferenceComponent,\n RadioButtons: RadioButtonsComponent,\n Region: RegionComponent,\n RichText: RichTextComponent,\n RichTextEditor: RichTextEditorComponent,\n RootContainer: RootContainerComponent,\n ScalarList: ScalarListComponent,\n SemanticLink: SemanticLinkComponent,\n SimpleTable: SimpleTableComponent,\n SimpleTableManual: SimpleTableManualComponent,\n SimpleTableSelect: SimpleTableSelectComponent,\n SingleReferenceReadOnly: SingleReferenceReadonlyComponent,\n Stages: StagesComponent,\n SubTabs: SubTabsComponent,\n SummaryItem: MaterialSummaryItemComponent,\n SummaryList: MaterialSummaryListComponent,\n Text: TextComponent,\n TextArea: TextAreaComponent,\n TextContent: TextContentComponent,\n TextInput: TextInputComponent,\n ThreeColumn: ThreeColumnComponent,\n ThreeColumnPage: ThreeColumnPageComponent,\n Time: TimeComponent,\n Todo: TodoComponent,\n TwoColumn: TwoColumnComponent,\n TwoColumnPage: TwoColumnPageComponent,\n TwoColumnTab: TwoColumnTabComponent,\n URL: UrlComponent,\n UserReference: UserReferenceComponent,\n VerticalTabs: MaterialVerticalTabsComponent,\n View: ViewComponent,\n ViewContainer: ViewContainerComponent,\n // 'WideNarrow': WideNarrow,\n WideNarrowDetails: DetailsWideNarrowComponent,\n WideNarrowForm: WideNarrowFormComponent,\n WideNarrowPage: WideNarrowPageComponent,\n WssNavBar: WssNavBarComponent,\n WssQuickCreate: WssQuickCreateComponent\n};\n\nexport default pegaSdkComponentMap;\n","// Helper singleton class to assist with loading and\n// accessing the SDK components\n// import localSdkComponentMap from '../../../sdk-local-component-map';\nimport pegaSdkComponentMap from './sdk-pega-component-map';\n\n// Statically load all \"local\" components\n\n// Create a singleton for this class (with async loading of components map file) and export it\n// Note: Initializing SdkComponentMap to null seems to cause lots of compile issues with references\n// within other components and the value potentially being null (so try to leave it undefined)\n// eslint-disable-next-line import/no-mutable-exports\nexport let SdkComponentMap;\nlet SdkComponentMapCreateInProgress = false;\n\ninterface ISdkComponentMap {\n localComponentMap: Object;\n pegaProvidedComponentMap: Object;\n}\n\nclass ComponentMap {\n sdkComponentMap: ISdkComponentMap; // Top level object\n isComponentMapLoaded: boolean;\n\n constructor() {\n // sdkComponentMap is top-level object\n this.sdkComponentMap = { localComponentMap: {}, pegaProvidedComponentMap: {} };\n\n // isCoComponentMapLoaded will be updated to true after the async load is complete\n this.isComponentMapLoaded = false;\n\n // pegaSdkComponents.local is the JSON object where we'll store the components that are\n // found locally or can be found in the Pega-provided repo\n this.sdkComponentMap.localComponentMap = {};\n\n this.sdkComponentMap.pegaProvidedComponentMap = {};\n\n // The \"work\" to load the config file is done (asynchronously) via the initialize\n // (Factory function) below)\n }\n\n /**\n * Asynchronous initialization of the config file contents.\n * @returns Promise of config file fetch\n */\n async readSdkComponentMap(inLocalSdkComponentMap = {}) {\n return new Promise(resolve => {\n if (\n Object.keys(this.sdkComponentMap.localComponentMap).length === 0 &&\n Object.keys(this.sdkComponentMap.pegaProvidedComponentMap).length === 0\n ) {\n const theLocalCompPromise = this.readLocalSdkComponentMap(inLocalSdkComponentMap);\n const thePegaCompPromise = this.readPegaSdkComponentMap(pegaSdkComponentMap);\n\n Promise.all([theLocalCompPromise, thePegaCompPromise])\n .then((/* results */) => {\n resolve(this.sdkComponentMap);\n })\n .catch(error => {\n console.error(`Error in readSdkComponentMap: ${error}`);\n });\n } else {\n resolve(this.sdkComponentMap);\n }\n });\n }\n\n async readLocalSdkComponentMap(inLocalSdkComponentMap = {}) {\n // debugger;\n if (Object.entries(this.getLocalComponentMap()).length === 0) {\n this.sdkComponentMap.localComponentMap = inLocalSdkComponentMap;\n }\n return Promise.resolve(this);\n }\n\n async readPegaSdkComponentMap(inPegaSdkComponentMap = {}) {\n // debugger;\n if (Object.entries(this.getPegaProvidedComponentMap()).length === 0) {\n this.sdkComponentMap.pegaProvidedComponentMap = inPegaSdkComponentMap;\n }\n return Promise.resolve(this);\n }\n\n getLocalComponentMap = () => {\n return this.sdkComponentMap.localComponentMap;\n };\n\n setLocalComponentMap(inLocalSdkComponentMap) {\n this.sdkComponentMap.localComponentMap = inLocalSdkComponentMap;\n return this.sdkComponentMap.localComponentMap;\n }\n\n getPegaProvidedComponentMap = () => {\n return this.sdkComponentMap.pegaProvidedComponentMap;\n };\n\n setPegaProvidedComponentMap = inPegaProvidedComponentMap => {\n this.sdkComponentMap.pegaProvidedComponentMap = inPegaProvidedComponentMap;\n return this.sdkComponentMap.pegaProvidedComponentMap;\n };\n}\n\n// Implement Factory function to allow async load\n// See https://stackoverflow.com/questions/49905178/asynchronous-operations-in-constructor/49906064#49906064 for inspiration\nasync function createSdkComponentMap(inLocalComponentMap = {}) {\n // Note that our initialize function returns a promise...\n const singleton = new ComponentMap();\n await singleton.readSdkComponentMap(inLocalComponentMap);\n return singleton;\n}\n\n// Initialize exported SdkComponentMap structure\nexport async function getSdkComponentMap(inLocalComponentMap = {}) {\n return new Promise(resolve => {\n let idNextCheck;\n if (!SdkComponentMap && !SdkComponentMapCreateInProgress) {\n SdkComponentMapCreateInProgress = true;\n createSdkComponentMap(inLocalComponentMap).then(theComponentMap => {\n // debugger;\n // Key initialization of SdkComponentMap\n SdkComponentMap = theComponentMap;\n SdkComponentMapCreateInProgress = false;\n console.log(`getSdkComponentMap: created SdkComponentMap singleton`);\n // Create and dispatch the SdkConfigAccessReady event\n // Not used anyplace yet but putting it in place in case we need it.\n const event = new CustomEvent('SdkComponentMapReady', {});\n document.dispatchEvent(event);\n return resolve(SdkComponentMap /* .sdkComponentMap */);\n });\n } else {\n const fnCheckForConfig = () => {\n if (SdkComponentMap) {\n if (idNextCheck) {\n clearInterval(idNextCheck);\n }\n return resolve(SdkComponentMap.sdkComponentMap);\n }\n idNextCheck = setInterval(fnCheckForConfig, 500);\n };\n if (SdkComponentMap) {\n // eslint-disable-next-line no-promise-executor-return\n return resolve(SdkComponentMap.sdkComponentMap);\n }\n idNextCheck = setInterval(fnCheckForConfig, 500);\n }\n });\n}\n\nexport function getComponentFromMap(inComponentName: string): any {\n let theComponentImplementation = null;\n const theLocalComponent = SdkComponentMap.getLocalComponentMap()[inComponentName];\n if (theLocalComponent !== undefined) {\n console.log(`Requested component found ${inComponentName}: Local`);\n theComponentImplementation = theLocalComponent;\n } else {\n const thePegaProvidedComponent = SdkComponentMap.getPegaProvidedComponentMap()[inComponentName];\n if (thePegaProvidedComponent !== undefined) {\n // console.log(`Requested component found ${inComponentName}: Pega-provided`);\n theComponentImplementation = thePegaProvidedComponent;\n } else {\n console.error(`Requested component has neither Local nor Pega-provided implementation: ${inComponentName}`);\n theComponentImplementation = getComponentFromMap('ErrorBoundary');\n }\n }\n return theComponentImplementation;\n}\n","import { Component, ComponentRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { getComponentFromMap } from '../helpers/sdk_component_map';\nimport { ErrorBoundaryComponent } from '../../_components/infra/error-boundary/error-boundary.component';\n\nconst componentsRequireDisplayOnlyFAProp: string[] = [\n 'HybridViewContainer',\n 'ModalViewContainer',\n 'ViewContainer',\n 'RootContainer',\n 'View',\n 'CaseView'\n];\n\n@Component({\n selector: 'component-mapper',\n templateUrl: './component-mapper.component.html',\n styleUrls: ['./component-mapper.component.scss'],\n standalone: true,\n imports: [CommonModule, ErrorBoundaryComponent]\n})\nexport class ComponentMapperComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('dynamicComponent', { read: ViewContainerRef, static: true })\n public dynamicComponent: ViewContainerRef | undefined;\n\n public componentRef: ComponentRef<any> | undefined;\n public isInitialized = false;\n\n @Input() name = '';\n @Input() props: any;\n @Input() errorMsg = '';\n @Input() outputEvents: any;\n // parent prop is compulsory when outputEvents is present\n @Input() parent: any;\n\n ngOnInit(): void {\n this.loadComponent();\n this.isInitialized = true;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const { name } = changes;\n if (name) {\n const { previousValue, currentValue } = name;\n if (previousValue && previousValue !== currentValue) {\n this.loadComponent();\n }\n } else if (this.isInitialized) {\n this.bindInputProps();\n }\n }\n\n loadComponent() {\n const component = getComponentFromMap(this.name);\n\n if (this.dynamicComponent) {\n this.dynamicComponent.clear();\n this.componentRef = this.dynamicComponent.createComponent(component);\n\n if (component === ErrorBoundaryComponent) {\n this.componentRef.instance.message = this.errorMsg;\n } else {\n this.bindInputProps();\n this.bindOutputEvents();\n }\n }\n }\n\n bindInputProps() {\n try {\n if (this.props) {\n const propsKeys = Object.keys(this.props);\n const propsValues = Object.values(this.props);\n for (let i = 0; i < propsKeys.length; i++) {\n if (propsValues[i] !== undefined) {\n // We'll set 'displayOnlyFA$' prop only to the components which really need it\n // Eventual plan is to get rid of this particular prop\n if (propsKeys[i] === 'displayOnlyFA$' && !componentsRequireDisplayOnlyFAProp.includes(this.name)) {\n // eslint-disable-next-line no-continue\n continue;\n }\n this.componentRef?.setInput(propsKeys[i], propsValues[i]);\n }\n }\n }\n } catch (e) {\n console.log(e);\n }\n }\n\n bindOutputEvents() {\n try {\n if (this.outputEvents) {\n const propsKeys = Object.keys(this.outputEvents);\n const propsValues: any = Object.values(this.outputEvents);\n for (let i = 0; i < propsKeys.length; i++) {\n this.componentRef?.instance[propsKeys[i]].subscribe(value => {\n const callbackFn = propsValues[i].bind(this.parent);\n callbackFn(value);\n });\n }\n }\n } catch (e) {\n console.log(e);\n }\n }\n\n ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n}\n","<ng-container #dynamicComponent></ng-container>\n","import { Component, OnInit, Input, ViewChild, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface RepeatingStructuresProps {\n referenceList?: any[];\n rowClickAction?: string;\n}\n\n@Component({\n selector: 'app-repeating-structures',\n templateUrl: './repeating-structures.component.html',\n styleUrls: ['./repeating-structures.component.scss'],\n standalone: true,\n imports: [CommonModule, MatFormFieldModule, MatIconModule, MatInputModule, MatTableModule, MatSortModule, MatPaginatorModule]\n})\nexport class RepeatingStructuresComponent implements OnInit, AfterViewInit {\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n @Input() pConn$: typeof PConnect;\n\n configProps$: RepeatingStructuresProps;\n repeatList$: MatTableDataSource<any>;\n fields$: any[];\n displayedColumns$ = Array<string>();\n\n constructor(\n private psService: ProgressSpinnerService,\n private utils: Utils\n ) {}\n\n ngOnInit(): void {\n const componentConfig = (this.pConn$.getRawMetadata() as any).config || { fields: [] };\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n this.fields$ = this.initializeColumns(componentConfig.fields);\n\n const refList = this.configProps$.referenceList;\n // @ts-ignore - second parameter pageReference for getValue method should be optional\n const tableDataResults = JSON.parse(JSON.stringify(this.pConn$.getValue(refList)));\n\n // update elements like date format\n const updatedRefList = this.updateData(tableDataResults, this.fields$);\n\n this.repeatList$ = new MatTableDataSource(updatedRefList);\n this.displayedColumns$ = this.getDisplayColumns(this.fields$);\n this.repeatList$.paginator = this.paginator;\n }\n\n ngAfterViewInit() {\n // paginator has to exist for this to work,\n // so called after init (paginator drawn)\n this.repeatList$.paginator = this.paginator;\n this.repeatList$.sort = this.sort;\n }\n\n applySearch(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.repeatList$.filter = filterValue.trim().toLowerCase();\n\n if (this.repeatList$.paginator) {\n this.repeatList$.paginator.firstPage();\n }\n }\n\n rowClick(row) {\n // eslint-disable-next-line sonarjs/no-small-switch\n switch (this.configProps$.rowClickAction) {\n case 'openAssignment':\n this.psService.sendMessage(true);\n this.openAssignment(row);\n break;\n default:\n break;\n }\n }\n\n updateData(listData: any[], fieldData: any[]): any[] {\n const returnList: any[] = new Array<any>();\n listData.forEach(row => {\n // copy\n const rowData = JSON.parse(JSON.stringify(listData[row]));\n\n for (let fieldIndex = 0; fieldIndex < fieldData.length; fieldIndex++) {\n if (fieldData[fieldIndex].type == 'date') {\n const fieldName = fieldData[fieldIndex].name;\n const formattedDate = rowData[fieldName];\n\n // format date\n // formattedDate = formattedDate.replace(\"GMT\", \"+0000\");\n this.utils.generateDateTime(formattedDate, 'MMMM D, YYYY h:mm:ss A');\n\n // update\n rowData[fieldName] = formattedDate;\n }\n }\n returnList.push(rowData);\n });\n return returnList;\n }\n\n openAssignment(row) {\n const { pxRefObjectClass, pzInsKey } = row;\n const sTarget = this.pConn$.getContainerName();\n const options: any = { containerName: sTarget };\n this.pConn$\n .getActionsApi()\n .openAssignment(pzInsKey, pxRefObjectClass, options)\n .then(() => {});\n }\n\n initializeData(data) {\n data.forEach((item, idx) => {\n item.__original_index = idx;\n item.__level = 1;\n });\n\n return data;\n }\n\n getType(field) {\n const { config = {}, type } = field;\n const { formatType } = config;\n if (formatType === 'datetime' || formatType === 'date') {\n // currently cosmos has only support for date ... it also need to support dateTime\n return 'date';\n }\n return type.toLowerCase();\n }\n\n initializeColumns(fields = []) {\n return fields.map((field: any, originalColIndex) => ({\n ...field,\n type: this.getType(field),\n name: field.config.value.substring(4),\n label: field.config.label.substring(3),\n id: originalColIndex,\n groupingEnabled: true,\n grouped: false,\n minWidth: 50,\n cellRenderer: this.getType(field) === 'text' ? null : field.type,\n filter: true\n }));\n }\n\n getDisplayColumns(fields: any[] = []): string[] {\n return fields.map((field: any) => field.name);\n }\n}\n","<div>\n <mat-form-field class=\"psdk-search\">\n <mat-label\n ><mat-icon class=\"psdk-icon-search\" style=\"transform: scale(1.2); width: 2rem; vertical-align: sub\" svgIcon=\"magnify\" mastListIcon></mat-icon>\n Search</mat-label\n >\n <input matInput (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <table mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ dCol.label }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.name] }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\" (click)=\"rowClick(row)\"></tr>\n </table>\n\n <mat-paginator [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n</div>\n","import { Component, OnInit, Input, OnChanges, SimpleChanges, forwardRef } from '@angular/core';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface UtilityProps {\n // If any, enter additional props that only exist on this component\n headerIcon?: string;\n headerText?: string;\n noItemsMessage?: string;\n}\n\n@Component({\n selector: 'app-utility',\n templateUrl: './utility.component.html',\n styleUrls: ['./utility.component.scss'],\n standalone: true,\n imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class UtilityComponent implements OnInit, OnChanges {\n @Input() pConn$: typeof PConnect;\n\n configProps$: UtilityProps;\n headerIcon$?: string;\n headerText$?: string;\n headerIconUrl$?: string;\n noItemsMessage$?: string;\n\n constructor(private utils: Utils) {}\n\n ngOnInit(): void {\n this.updateSelf();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { pConn$ } = changes;\n\n if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n this.updateSelf();\n }\n }\n\n updateSelf() {\n this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as UtilityProps;\n\n this.headerIcon$ = this.configProps$.headerIcon;\n this.headerIconUrl$ = this.utils.getSDKStaticContentUrl();\n this.headerText$ = this.configProps$.headerText;\n this.noItemsMessage$ = this.configProps$.noItemsMessage;\n }\n}\n","<component-mapper name=\"MaterialUtility\" [props]=\"{ headerText$, headerIcon$, headerIconUrl$, noItemsMessage$ }\"></component-mapper>\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { endpoints } from './endpoints';\nimport { ServerConfigService } from './server-config.service';\nimport { Utils } from '../_helpers/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CaseService {\n constructor(\n private http: HttpClient,\n private scService: ServerConfigService\n ) {}\n\n caseTypeUrl: string;\n // caseTypeUrl = endpoints.BASEURL + endpoints.CASETYPES;\n\n // get a list of possible case types to create\n getCaseTypes() {\n const caseParams = new HttpParams();\n let caseHeaders = new HttpHeaders();\n\n this.caseTypeUrl = this.scService.getBaseUrl() + endpoints.API + endpoints.CASETYPES;\n\n caseHeaders = caseHeaders.append('Authorization', Utils.sdkGetAuthHeader());\n\n caseHeaders = caseHeaders.append('Content-Type', 'application/json');\n\n return this.http.get(this.caseTypeUrl, { observe: 'response', params: caseParams, headers: caseHeaders });\n }\n}\n","/**\n * versionHelpers.ts\n *\n * Container helper functions that can identify which version of\n * PCore/PConnect is being run\n */\n\nexport const sdkVersion = '8.7';\n\nexport function compareSdkPCoreVersions() {\n // const theConstellationVersion = PCore.getPCoreVersion();\n console.warn(`Using Constellation version ${PCore.getPCoreVersion()}. Ensure this is the same version as your Infinity server.`);\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GetLoginStatusService {\n private subject = new Subject<void | object>();\n\n sendMessage(sLoginStatus: string) {\n this.subject.next({ loginStatus: sLoginStatus });\n }\n\n clearMessage() {\n this.subject.next();\n }\n\n getMessage(): Observable<any> {\n return this.subject.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OAuthResponseService {\n private subject = new Subject<void | object>();\n\n /**\n * Function to pass the OAuth token\n * @param oToken - token\n */\n sendMessage(oToken: any) {\n this.subject.next({ token: oToken });\n }\n\n clearMessage() {\n this.subject.next();\n }\n\n getMessage(): Observable<any> {\n return this.subject.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ResetPConnectService {\n private subject = new Subject<void | object>();\n\n /**\n * function to reset pConnect\n * @param bReset - true: reset pconnect, false - do nothing\n * @param sType - what causing the reset, so far (cancel, finishAssignment)\n */\n sendMessage(bReset: boolean, sType: string) {\n this.subject.next({ reset: bReset, type: sType });\n }\n\n clearMessage() {\n this.subject.next();\n }\n\n getMessage(): Observable<any> {\n return this.subject.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UpdateWorklistService {\n private subject = new Subject<void | object>();\n\n /**\n * Function signals to update Work list\n * @param bUpdate - true: update worklist, false - do nothing\n */\n sendMessage(bUpdate: boolean) {\n this.subject.next({ update: bUpdate });\n }\n\n clearMessage() {\n this.subject.next();\n }\n\n getMessage(): Observable<any> {\n return this.subject.asObservable();\n }\n}\n","// Statically load all \"local\" components that aren't yet in the npm package\n\n/* import end - DO NOT REMOVE */\n\n// localSdkComponentMap is the JSON object where we'll store the components that are\n// found locally. If not found here, we'll look in the Pega-provided component map\n\nconst localSdkComponentMap = {\n /* map end - DO NOT REMOVE */\n};\n\nexport default localSdkComponentMap;\n","/* eslint-disable import/export */\n\n/*\n * Public API Surface of angular-sdk-components\n */\n\nexport * from './lib/_bridge/component-mapper/component-mapper.component';\nexport * from './lib/_bridge/helpers/sdk_component_map';\nexport * from './lib/_bridge/angular-pconnect';\n\nexport * from './lib/_components/field/auto-complete/auto-complete.component';\nexport * from './lib/_components/field/cancel-alert/cancel-alert.component';\nexport * from './lib/_components/field/check-box/check-box.component';\nexport * from './lib/_components/field/currency/currency.component';\nexport * from './lib/_components/field/date-time/date-time.component';\nexport * from './lib/_components/field/date/date.component';\nexport * from './lib/_components/field/decimal/decimal.component';\nexport * from './lib/_components/field/dropdown/dropdown.component';\nexport * from './lib/_components/field/email/email.component';\nexport * from './lib/_components/field/integer/integer.component';\nexport * from './lib/_components/field/percentage/percentage.component';\nexport * from './lib/_components/field/phone/phone.component';\nexport * from './lib/_components/field/radio-buttons/radio-buttons.component';\nexport * from './lib/_components/field/rich-text/rich-text.component';\nexport * from './lib/_components/field/semantic-link/semantic-link.component';\nexport * from './lib/_components/field/text/text.component';\nexport * from './lib/_components/field/text-area/text-area.component';\nexport * from './lib/_components/field/text-content/text-content.component';\nexport * from './lib/_components/field/text-input/text-input.component';\nexport * from './lib/_components/field/time/time.component';\nexport * from './lib/_components/field/url/url.component';\nexport * from './lib/_components/field/user-reference/user-reference.component';\n\nexport * from './lib/_components/infra/action-buttons/action-buttons.component';\nexport * from './lib/_components/infra/assignment/assignment.component';\nexport * from './lib/_components/infra/assignment-card/assignment-card.component';\nexport * from './lib/_components/infra/Containers/flow-container/flow-container.component';\nexport * from './lib/_components/infra/Containers/flow-container/helpers';\nexport * from './lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component';\nexport * from './lib/_components/infra/Containers/modal-view-container/modal-view-container.component';\nexport * from './lib/_components/infra/Containers/preview-view-container/preview-view-container.component';\nexport * from './lib/_components/infra/Containers/view-container/view-container.component';\nexport * from './lib/_components/infra/dashboard-filter/dashboard-filter.component';\nexport * from './lib/_components/infra/defer-load/defer-load.component';\nexport * from './lib/_components/infra/error-boundary/error-boundary.component';\nexport * from './lib/_components/infra/multi-step/multi-step.component';\nexport * from './lib/_components/infra/navbar/navbar.component';\nexport * from './lib/_components/infra/reference/reference.component';\nexport * from './lib/_components/infra/region/region.component';\nexport * from './lib/_components/infra/root-container/root-container.component';\nexport * from './lib/_components/infra/stages/stages.component';\nexport * from './lib/_components/infra/view/view.component';\n\nexport * from './lib/_components/template/app-shell/app-shell.component';\nexport * from './lib/_components/template/case-summary/case-summary.component';\nexport * from './lib/_components/template/case-view/case-view.component';\nexport * from './lib/_components/template/confirmation/confirmation.component';\nexport * from './lib/_components/template/data-reference/data-reference.component';\nexport * from './lib/_components/template/default-form/default-form.component';\nexport * from './lib/_components/template/details/details.component';\nexport * from './lib/_components/template/details-narrow-wide/details-narrow-wide.component';\nexport * from './lib/_components/template/details-one-column/details-one-column.component';\nexport * from './lib/_components/template/details-sub-tabs/details-sub-tabs.component';\nexport * from './lib/_components/template/details-three-column/details-three-column.component';\nexport * from './lib/_components/template/details-two-column/details-two-column.component';\nexport * from './lib/_components/template/details-wide-narrow/details-wide-narrow.component';\nexport * from './lib/_components/template/field-group-list/field-group-list.component';\nexport * from './lib/_components/template/field-group-template/field-group-template.component';\nexport * from './lib/_components/template/field-value-list/field-value-list.component';\nexport * from './lib/_components/template/inline-dashboard/inline-dashboard.component';\nexport * from './lib/_components/template/inline-dashboard-page/inline-dashboard-page.component';\nexport * from './lib/_components/template/list-page/list-page.component';\nexport * from './lib/_components/template/list-view/list-view.component';\nexport * from './lib/_components/template/multi-reference-readonly/multi-reference-readonly.component';\nexport * from './lib/_components/template/narrow-wide-form/narrow-wide-form.component';\nexport * from './lib/_components/template/one-column/one-column.component';\nexport * from './lib/_components/template/one-column-page/one-column-page.component';\nexport * from './lib/_components/template/one-column-tab/one-column-tab.component';\nexport * from './lib/_components/template/page/page.component';\nexport * from './lib/_components/template/promoted-filters/promoted-filters.component';\nexport * from './lib/_components/template/repeating-structures/repeating-structures.component';\nexport * from './lib/_components/template/simple-table/simple-table.component';\nexport * from './lib/_components/template/simple-table-manual/simple-table-manual.component';\nexport * from './lib/_components/template/simple-table-select/simple-table-select.component';\nexport * from './lib/_components/template/single-reference-readonly/single-reference-readonly.component';\nexport * from './lib/_components/template/sub-tabs/sub-tabs.component';\nexport * from './lib/_components/template/three-column/three-column.component';\nexport * from './lib/_components/template/three-column-page/three-column-page.component';\nexport * from './lib/_components/template/two-column/two-column.component';\nexport * from './lib/_components/template/two-column-page/two-column-page.component';\nexport * from './lib/_components/template/two-column-tab/two-column-tab.component';\nexport * from './lib/_components/template/wide-narrow-form/wide-narrow-form.component';\nexport * from './lib/_components/template/wide-narrow-page/wide-narrow-page.component';\nexport * from './lib/_components/template/utils';\nexport * from './lib/_components/template/simple-table-manual/helpers';\n\nexport * from './lib/_components/widget/app-announcement/app-announcement.component';\nexport * from './lib/_components/widget/attachment/attachment.component';\nexport * from './lib/_components/widget/case-history/case-history.component';\nexport * from './lib/_components/widget/feed-container/feed-container.component';\nexport * from './lib/_components/widget/file-utility/file-utility.component';\nexport * from './lib/_components/widget/list-utility/list-utility.component';\nexport * from './lib/_components/widget/todo/todo.component';\nexport * from './lib/_components/widget/utility/utility.component';\n\nexport * from './lib/_components/designSystemExtension/alert/alert.component';\nexport * from './lib/_components/designSystemExtension/alert-banner/alert-banner.component';\nexport * from './lib/_components/designSystemExtension/case-create-stage/case-create-stage.component';\nexport * from './lib/_components/designSystemExtension/material-case-summary/material-case-summary.component';\nexport * from './lib/_components/designSystemExtension/material-details/material-details.component';\nexport * from './lib/_components/designSystemExtension/material-details-fields/material-details-fields.component';\nexport * from './lib/_components/designSystemExtension/material-summary-item/material-summary-item.component';\nexport * from './lib/_components/designSystemExtension/material-summary-list/material-summary-list.component';\nexport * from './lib/_components/designSystemExtension/material-utility/material-utility.component';\nexport * from './lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component';\nexport * from './lib/_components/designSystemExtension/operator/operator.component';\nexport * from './lib/_components/designSystemExtension/pulse/pulse.component';\nexport * from './lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component';\n\nexport * from './lib/_directives/thousand-seperator.directive';\n\nexport * from './lib/_services/server-config.service';\nexport * from './lib/_services/case.service';\nexport * from './lib/_services/datapage.service';\nexport * from './lib/_services/endpoints';\n\nexport * from './lib/_helpers/case-utils';\nexport * from './lib/_helpers/currency-utils';\nexport * from './lib/_helpers/common';\nexport * from './lib/_helpers/date-format-utils';\nexport * from './lib/_helpers/event-util';\nexport * from './lib/_helpers/field-group-utils';\nexport * from './lib/_helpers/formatters/format-utils';\nexport * from './lib/_helpers/formatters/currency-map';\nexport * from './lib/_helpers/tab-utils';\nexport * from './lib/_helpers/template-utils';\nexport * from './lib/_helpers/utils';\nexport * from './lib/_helpers/versionHelpers';\nexport * from './lib/_helpers/filter-utils';\n\nexport * from './lib/_messages/error-messages.service';\nexport * from './lib/_messages/get-login-status.service';\nexport * from './lib/_messages/oauth-response.service';\nexport * from './lib/_messages/progress-spinner.service';\nexport * from './lib/_messages/reset-pconnect.service';\nexport * from './lib/_messages/update-worklist.service';\n\nexport * from './lib/_types/PConnProps.interface';\n\nexport * from './sdk-local-component-map';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ServerConfigService","i1.ProgressSpinnerService","i2.ErrorMessagesService","i3.Utils","i2.ServerConfigService","i1.AngularPConnectService","i2.Utils","i3.DatapageService","i5","i6","i7","i9","i2","i4","MyFormat","i8","i2.ProgressSpinnerService","i3","i4.Utils","i1","i3.ErrorMessagesService","i1.Utils","SELECTION_MODE","i1.TemplateUtils","getContext","Group","i10","i12","i13","i15","i16","i11","uuidv4"],"mappings":"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"}