@pega/angular-sdk-components 24.2.10 → 25.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/fesm2022/pega-angular-sdk-components.mjs +5383 -3962
  2. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
  3. package/lib/_bridge/angular-pconnect.d.ts +1 -1
  4. package/lib/_bridge/component-mapper/component-mapper.component.d.ts +1 -1
  5. package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +18 -0
  6. package/lib/_components/designSystemExtension/banner/banner.component.d.ts +0 -1
  7. package/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.d.ts +0 -1
  8. package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +1 -1
  9. package/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.d.ts +1 -0
  10. package/lib/_components/designSystemExtension/operator/operator.component.d.ts +2 -3
  11. package/lib/_components/designSystemExtension/pulse/pulse.component.d.ts +0 -1
  12. package/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.d.ts +1 -0
  13. package/lib/_components/field/auto-complete/auto-complete.component.d.ts +14 -38
  14. package/lib/_components/field/cancel-alert/cancel-alert.component.d.ts +7 -6
  15. package/lib/_components/field/check-box/check-box.component.d.ts +10 -33
  16. package/lib/_components/field/currency/currency.component.d.ts +19 -35
  17. package/lib/_components/field/date/date.component.d.ts +7 -58
  18. package/lib/_components/field/date-time/date-time.component.d.ts +12 -40
  19. package/lib/_components/field/decimal/decimal.component.d.ts +17 -32
  20. package/lib/_components/field/dropdown/dropdown.component.d.ts +14 -38
  21. package/lib/_components/field/email/email.component.d.ts +7 -35
  22. package/lib/_components/field/field.base.d.ts +57 -0
  23. package/lib/_components/field/group/group.component.d.ts +5 -3
  24. package/lib/_components/field/integer/integer.component.d.ts +8 -35
  25. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -2
  26. package/lib/_components/field/location/location.component.d.ts +47 -0
  27. package/lib/_components/field/multiselect/multiselect.component.d.ts +7 -39
  28. package/lib/_components/field/object-reference/object-reference.component.d.ts +45 -0
  29. package/lib/_components/field/percentage/percentage.component.d.ts +19 -37
  30. package/lib/_components/field/phone/phone.component.d.ts +8 -38
  31. package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +13 -34
  32. package/lib/_components/field/rich-text/rich-text.component.d.ts +7 -31
  33. package/lib/_components/field/scalar-list/scalar-list.component.d.ts +6 -22
  34. package/lib/_components/field/selectable-card/selectable-card.component.d.ts +62 -0
  35. package/lib/_components/field/semantic-link/semantic-link.component.d.ts +21 -1
  36. package/lib/_components/field/text/text.component.d.ts +0 -1
  37. package/lib/_components/field/text-area/text-area.component.d.ts +7 -35
  38. package/lib/_components/field/text-content/text-content.component.d.ts +0 -1
  39. package/lib/_components/field/text-input/text-input.component.d.ts +7 -36
  40. package/lib/_components/field/time/time.component.d.ts +7 -36
  41. package/lib/_components/field/url/url.component.d.ts +7 -36
  42. package/lib/_components/field/user-reference/user-reference.component.d.ts +1 -2
  43. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +1 -2
  44. package/lib/_components/infra/Containers/flow-container/helpers.d.ts +1 -0
  45. package/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.d.ts +0 -1
  46. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +5 -10
  47. package/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.d.ts +0 -1
  48. package/lib/_components/infra/Containers/view-container/view-container.component.d.ts +0 -1
  49. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
  50. package/lib/_components/infra/assignment/assignment.component.d.ts +8 -6
  51. package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +3 -3
  52. package/lib/_components/infra/dashboard-filter/dashboard-filter.component.d.ts +0 -1
  53. package/lib/_components/infra/defer-load/defer-load.component.d.ts +7 -7
  54. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
  55. package/lib/_components/infra/multi-step/multi-step.component.d.ts +0 -1
  56. package/lib/_components/infra/navbar/navbar.component.d.ts +0 -2
  57. package/lib/_components/infra/reference/reference.component.d.ts +23 -3
  58. package/lib/_components/infra/region/region.component.d.ts +0 -1
  59. package/lib/_components/infra/root-container/root-container.component.d.ts +3 -2
  60. package/lib/_components/infra/stages/stages.component.d.ts +2 -2
  61. package/lib/_components/infra/view/view.component.d.ts +0 -1
  62. package/lib/_components/template/advanced-search/advanced-search.component.d.ts +21 -0
  63. package/lib/_components/template/advanced-search/search-group/persist-utils.d.ts +23 -0
  64. package/lib/_components/template/advanced-search/search-groups/search-groups.component.d.ts +47 -0
  65. package/lib/_components/template/advanced-search/search-groups/utils.d.ts +15 -0
  66. package/lib/_components/template/app-shell/app-shell.component.d.ts +6 -3
  67. package/lib/_components/template/banner-page/banner-page.component.d.ts +0 -1
  68. package/lib/_components/template/base/details-template-base.d.ts +1 -2
  69. package/lib/_components/template/base/form-template-base.d.ts +3 -1
  70. package/lib/_components/template/case-summary/case-summary.component.d.ts +3 -3
  71. package/lib/_components/template/case-view/case-view.component.d.ts +0 -2
  72. package/lib/_components/template/confirmation/confirmation.component.d.ts +0 -1
  73. package/lib/_components/template/data-reference/data-reference.component.d.ts +27 -3
  74. package/lib/_components/template/data-reference/search-form/search-form.component.d.ts +39 -0
  75. package/lib/_components/template/data-reference/search-form/tabsData.d.ts +2 -0
  76. package/lib/_components/template/data-reference/utils.d.ts +14 -0
  77. package/lib/_components/template/default-form/default-form.component.d.ts +9 -4
  78. package/lib/_components/template/default-page/default-page.component.d.ts +29 -0
  79. package/lib/_components/template/details/details.component.d.ts +0 -1
  80. package/lib/_components/template/details-narrow-wide/details-narrow-wide.component.d.ts +0 -1
  81. package/lib/_components/template/details-one-column/details-one-column.component.d.ts +0 -1
  82. package/lib/_components/template/details-sub-tabs/details-sub-tabs.component.d.ts +0 -1
  83. package/lib/_components/template/details-three-column/details-three-column.component.d.ts +0 -1
  84. package/lib/_components/template/details-two-column/details-two-column.component.d.ts +0 -1
  85. package/lib/_components/template/details-wide-narrow/details-wide-narrow.component.d.ts +0 -1
  86. package/lib/_components/template/dynamic-tabs/dynamic-tabs.component.d.ts +0 -1
  87. package/lib/_components/template/field-group-template/field-group-template.component.d.ts +9 -8
  88. package/lib/_components/template/inline-dashboard/inline-dashboard.component.d.ts +0 -1
  89. package/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.d.ts +0 -1
  90. package/lib/_components/template/list-page/list-page.component.d.ts +0 -1
  91. package/lib/_components/template/list-view/list-view.component.d.ts +22 -7
  92. package/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.d.ts +0 -1
  93. package/lib/_components/template/narrow-wide-form/narrow-wide-form.component.d.ts +0 -1
  94. package/lib/_components/template/object-page/object-page.component.d.ts +8 -0
  95. package/lib/_components/template/one-column/one-column.component.d.ts +0 -1
  96. package/lib/_components/template/one-column-page/one-column-page.component.d.ts +0 -1
  97. package/lib/_components/template/one-column-tab/one-column-tab.component.d.ts +0 -1
  98. package/lib/_components/template/page/page.component.d.ts +0 -1
  99. package/lib/_components/template/promoted-filters/promoted-filters.component.d.ts +0 -1
  100. package/lib/_components/template/repeating-structures/repeating-structures.component.d.ts +0 -1
  101. package/lib/_components/template/self-service-case-view/self-service-case-view.component.d.ts +58 -0
  102. package/lib/_components/template/simple-table/simple-table.component.d.ts +0 -1
  103. package/lib/_components/template/simple-table-manual/helpers.d.ts +18 -3
  104. package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +9 -4
  105. package/lib/_components/template/simple-table-select/simple-table-select.component.d.ts +0 -1
  106. package/lib/_components/template/single-reference-readonly/single-reference-readonly.component.d.ts +18 -3
  107. package/lib/_components/template/sub-tabs/sub-tabs.component.d.ts +0 -1
  108. package/lib/_components/template/three-column/three-column.component.d.ts +0 -1
  109. package/lib/_components/template/three-column-page/three-column-page.component.d.ts +0 -1
  110. package/lib/_components/template/two-column/two-column.component.d.ts +0 -1
  111. package/lib/_components/template/two-column-page/two-column-page.component.d.ts +0 -1
  112. package/lib/_components/template/two-column-tab/two-column-tab.component.d.ts +0 -1
  113. package/lib/_components/template/utils.d.ts +11 -0
  114. package/lib/_components/template/wide-narrow-form/wide-narrow-form.component.d.ts +0 -1
  115. package/lib/_components/template/wide-narrow-page/wide-narrow-page.component.d.ts +0 -1
  116. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +3 -6
  117. package/lib/_components/widget/app-announcement/app-announcement.component.d.ts +0 -1
  118. package/lib/_components/widget/attachment/Attachment.types.d.ts +87 -0
  119. package/lib/_components/widget/attachment/AttachmentUtils.d.ts +17 -0
  120. package/lib/_components/widget/attachment/attachment.component.d.ts +18 -34
  121. package/lib/_components/widget/case-history/case-history.component.d.ts +0 -1
  122. package/lib/_components/widget/feed-container/feed-container.component.d.ts +2 -3
  123. package/lib/_components/widget/file-utility/file-utility.component.d.ts +3 -2
  124. package/lib/_components/widget/quick-create/quick-create.component.d.ts +0 -1
  125. package/lib/_components/widget/todo/todo.component.d.ts +5 -4
  126. package/lib/_components/widget/utility/utility.component.d.ts +0 -1
  127. package/lib/_helpers/field-group-utils.d.ts +1 -3
  128. package/lib/_helpers/filter-utils.d.ts +1 -3
  129. package/lib/_helpers/formatters/boolean.d.ts +1 -2
  130. package/lib/_helpers/formatters/common.d.ts +1 -1
  131. package/lib/_helpers/formatters/currency.d.ts +1 -2
  132. package/lib/_helpers/formatters/date.d.ts +1 -2
  133. package/lib/_helpers/formatters/index.d.ts +1 -2
  134. package/lib/_helpers/object-utils.d.ts +8 -0
  135. package/lib/_helpers/objectReference-utils.d.ts +6 -0
  136. package/lib/_helpers/semanticLink-utils.d.ts +9 -0
  137. package/lib/_helpers/tab-utils.d.ts +4 -0
  138. package/lib/_helpers/utils.d.ts +13 -1
  139. package/lib/_services/banner.service.d.ts +8 -0
  140. package/lib/_services/case.service.d.ts +1 -1
  141. package/lib/_services/data-reference-advanced-search.service.d.ts +9 -0
  142. package/lib/_services/datapage.service.d.ts +1 -1
  143. package/lib/_services/google-maps-loader.service.d.ts +7 -0
  144. package/package.json +20 -6
  145. package/public-api.d.ts +26 -9
  146. package/esm2022/lib/_bridge/angular-pconnect.mjs +0 -428
  147. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +0 -107
  148. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +0 -239
  149. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +0 -142
  150. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +0 -50
  151. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +0 -29
  152. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +0 -31
  153. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +0 -51
  154. package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +0 -31
  155. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +0 -83
  156. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +0 -37
  157. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +0 -34
  158. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +0 -36
  159. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +0 -25
  160. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +0 -28
  161. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +0 -42
  162. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +0 -143
  163. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +0 -33
  164. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +0 -93
  165. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +0 -18
  166. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +0 -288
  167. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +0 -96
  168. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +0 -225
  169. package/esm2022/lib/_components/field/currency/currency.component.mjs +0 -190
  170. package/esm2022/lib/_components/field/date/date.component.mjs +0 -205
  171. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +0 -183
  172. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +0 -187
  173. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +0 -292
  174. package/esm2022/lib/_components/field/email/email.component.mjs +0 -157
  175. package/esm2022/lib/_components/field/group/group.component.mjs +0 -64
  176. package/esm2022/lib/_components/field/integer/integer.component.mjs +0 -160
  177. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +0 -44
  178. package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +0 -314
  179. package/esm2022/lib/_components/field/multiselect/utils.mjs +0 -187
  180. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +0 -182
  181. package/esm2022/lib/_components/field/phone/phone.component.mjs +0 -160
  182. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +0 -182
  183. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +0 -102
  184. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +0 -95
  185. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +0 -57
  186. package/esm2022/lib/_components/field/text/text.component.mjs +0 -140
  187. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +0 -157
  188. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +0 -69
  189. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +0 -157
  190. package/esm2022/lib/_components/field/time/time.component.mjs +0 -162
  191. package/esm2022/lib/_components/field/url/url.component.mjs +0 -157
  192. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +0 -207
  193. package/esm2022/lib/_components/infra/Containers/base-components/flow-container-base.component.mjs +0 -18
  194. package/esm2022/lib/_components/infra/Containers/base-components/helper.mjs +0 -71
  195. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +0 -490
  196. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +0 -68
  197. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +0 -24
  198. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +0 -342
  199. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +0 -32
  200. package/esm2022/lib/_components/infra/Containers/view-container/helper.mjs +0 -22
  201. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +0 -211
  202. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +0 -31
  203. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +0 -382
  204. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +0 -47
  205. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +0 -87
  206. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +0 -141
  207. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +0 -18
  208. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +0 -80
  209. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +0 -136
  210. package/esm2022/lib/_components/infra/reference/reference.component.mjs +0 -133
  211. package/esm2022/lib/_components/infra/region/region.component.mjs +0 -33
  212. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +0 -228
  213. package/esm2022/lib/_components/infra/stages/stages.component.mjs +0 -62
  214. package/esm2022/lib/_components/infra/view/view.component.mjs +0 -188
  215. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +0 -156
  216. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +0 -43
  217. package/esm2022/lib/_components/template/base/details-template-base.mjs +0 -56
  218. package/esm2022/lib/_components/template/base/form-template-base.mjs +0 -13
  219. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +0 -101
  220. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +0 -185
  221. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +0 -68
  222. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +0 -242
  223. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +0 -49
  224. package/esm2022/lib/_components/template/details/details.component.mjs +0 -76
  225. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +0 -45
  226. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +0 -42
  227. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +0 -39
  228. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +0 -51
  229. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +0 -48
  230. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +0 -48
  231. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +0 -65
  232. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +0 -23
  233. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +0 -122
  234. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +0 -24
  235. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +0 -22
  236. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +0 -40
  237. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +0 -14
  238. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +0 -208
  239. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +0 -1217
  240. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +0 -60
  241. package/esm2022/lib/_components/template/list-view/utils.mjs +0 -662
  242. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +0 -44
  243. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +0 -30
  244. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +0 -31
  245. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +0 -16
  246. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +0 -30
  247. package/esm2022/lib/_components/template/page/page.component.mjs +0 -52
  248. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +0 -149
  249. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +0 -138
  250. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +0 -104
  251. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +0 -270
  252. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +0 -779
  253. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +0 -129
  254. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +0 -16
  255. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +0 -67
  256. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +0 -31
  257. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +0 -16
  258. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +0 -31
  259. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +0 -40
  260. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +0 -30
  261. package/esm2022/lib/_components/template/utils.mjs +0 -22
  262. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +0 -31
  263. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +0 -53
  264. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +0 -137
  265. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +0 -24
  266. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +0 -393
  267. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +0 -80
  268. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +0 -521
  269. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +0 -638
  270. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +0 -57
  271. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +0 -75
  272. package/esm2022/lib/_components/widget/todo/todo.component.mjs +0 -228
  273. package/esm2022/lib/_components/widget/utility/utility.component.mjs +0 -34
  274. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +0 -28
  275. package/esm2022/lib/_helpers/case-utils.mjs +0 -71
  276. package/esm2022/lib/_helpers/common.mjs +0 -20
  277. package/esm2022/lib/_helpers/createstage-utils.mjs +0 -15
  278. package/esm2022/lib/_helpers/currency-utils.mjs +0 -57
  279. package/esm2022/lib/_helpers/date-format-utils.mjs +0 -68
  280. package/esm2022/lib/_helpers/event-util.mjs +0 -18
  281. package/esm2022/lib/_helpers/field-group-utils.mjs +0 -47
  282. package/esm2022/lib/_helpers/filter-utils.mjs +0 -105
  283. package/esm2022/lib/_helpers/formatters/boolean.mjs +0 -20
  284. package/esm2022/lib/_helpers/formatters/common.mjs +0 -14
  285. package/esm2022/lib/_helpers/formatters/currency-map.mjs +0 -903
  286. package/esm2022/lib/_helpers/formatters/currency.mjs +0 -68
  287. package/esm2022/lib/_helpers/formatters/date.mjs +0 -69
  288. package/esm2022/lib/_helpers/formatters/format-utils.mjs +0 -68
  289. package/esm2022/lib/_helpers/formatters/index.mjs +0 -124
  290. package/esm2022/lib/_helpers/instructions-utils.mjs +0 -36
  291. package/esm2022/lib/_helpers/tab-utils.mjs +0 -59
  292. package/esm2022/lib/_helpers/template-utils.mjs +0 -56
  293. package/esm2022/lib/_helpers/utils.mjs +0 -386
  294. package/esm2022/lib/_helpers/versionHelpers.mjs +0 -12
  295. package/esm2022/lib/_messages/error-messages.service.mjs +0 -31
  296. package/esm2022/lib/_messages/progress-spinner.service.mjs +0 -30
  297. package/esm2022/lib/_messages/update-worklist.service.mjs +0 -30
  298. package/esm2022/lib/_services/case.service.mjs +0 -32
  299. package/esm2022/lib/_services/datapage.service.mjs +0 -52
  300. package/esm2022/lib/_services/endpoints.mjs +0 -60
  301. package/esm2022/lib/_services/server-config.service.mjs +0 -52
  302. package/esm2022/lib/_types/PConnProps.interface.mjs +0 -2
  303. package/esm2022/pega-angular-sdk-components.mjs +0 -5
  304. package/esm2022/public-api.mjs +0 -141
  305. package/esm2022/sdk-local-component-map.mjs +0 -9
@@ -1,157 +0,0 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
4
- import { MatInputModule } from '@angular/material/input';
5
- import { MatFormFieldModule } from '@angular/material/form-field';
6
- import { interval } from 'rxjs';
7
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
8
- import { handleEvent } from '../../../_helpers/event-util';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../../../_bridge/angular-pconnect";
11
- import * as i2 from "../../../_helpers/utils";
12
- import * as i3 from "@angular/common";
13
- import * as i4 from "@angular/forms";
14
- import * as i5 from "@angular/material/form-field";
15
- import * as i6 from "@angular/material/input";
16
- export class EmailComponent {
17
- constructor(angularPConnect, cdRef, utils) {
18
- this.angularPConnect = angularPConnect;
19
- this.cdRef = cdRef;
20
- this.utils = utils;
21
- // Used with AngularPConnect
22
- this.angularPConnectData = {};
23
- this.label$ = '';
24
- this.bRequired$ = false;
25
- this.bReadonly$ = false;
26
- this.bDisabled$ = false;
27
- this.bVisible$ = true;
28
- this.displayMode$ = '';
29
- this.bHasForm$ = true;
30
- this.componentReference = '';
31
- this.fieldControl = new FormControl('', null);
32
- }
33
- ngOnInit() {
34
- // First thing in initialization is registering and subscribing to the AngularPConnect service
35
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
36
- this.controlName$ = this.angularPConnect.getComponentID(this);
37
- // Then, continue on with other initialization
38
- // call updateSelf when initializing
39
- // this.updateSelf();
40
- this.checkAndUpdate();
41
- if (this.formGroup$) {
42
- // add control to formGroup
43
- this.formGroup$.addControl(this.controlName$, this.fieldControl);
44
- this.fieldControl.setValue(this.value$);
45
- this.bHasForm$ = true;
46
- }
47
- else {
48
- this.bReadonly$ = true;
49
- this.bHasForm$ = false;
50
- }
51
- }
52
- ngOnDestroy() {
53
- if (this.formGroup$) {
54
- this.formGroup$.removeControl(this.controlName$);
55
- }
56
- if (this.angularPConnectData.unsubscribeFn) {
57
- this.angularPConnectData.unsubscribeFn();
58
- }
59
- }
60
- // Callback passed when subscribing to store change
61
- onStateChange() {
62
- this.checkAndUpdate();
63
- }
64
- checkAndUpdate() {
65
- // Should always check the bridge to see if the component should
66
- // update itself (re-render)
67
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
68
- // ONLY call updateSelf when the component should update
69
- if (bUpdateSelf) {
70
- this.updateSelf();
71
- }
72
- }
73
- // updateSelf
74
- updateSelf() {
75
- // moved this from ngOnInit() and call this from there instead...
76
- this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
77
- this.testId = this.configProps$.testId;
78
- this.label$ = this.configProps$.label;
79
- this.displayMode$ = this.configProps$.displayMode;
80
- if (this.configProps$.value != undefined) {
81
- this.value$ = this.configProps$.value;
82
- }
83
- this.helperText = this.configProps$.helperText;
84
- this.placeholder = this.configProps$.placeholder || '';
85
- // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
86
- setTimeout(() => {
87
- if (this.configProps$.required != null) {
88
- this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);
89
- }
90
- this.cdRef.detectChanges();
91
- });
92
- if (this.configProps$.visibility != null) {
93
- this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);
94
- }
95
- // disabled
96
- if (this.configProps$.disabled != undefined) {
97
- this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);
98
- }
99
- if (this.bDisabled$) {
100
- this.fieldControl.disable();
101
- }
102
- else {
103
- this.fieldControl.enable();
104
- }
105
- if (this.configProps$.readOnly != null) {
106
- this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);
107
- }
108
- this.actionsApi = this.pConn$.getActionsApi();
109
- this.propName = this.pConn$.getStateProps().value;
110
- this.componentReference = this.pConn$.getStateProps().value;
111
- // trigger display of error message with field control
112
- if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
113
- const timer = interval(100).subscribe(() => {
114
- this.fieldControl.setErrors({ message: true });
115
- this.fieldControl.markAsTouched();
116
- timer.unsubscribe();
117
- });
118
- }
119
- }
120
- fieldOnChange(event) {
121
- const value = event?.target?.value;
122
- handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
123
- this.pConn$.clearErrorMessages({
124
- property: this.propName
125
- });
126
- }
127
- fieldOnBlur(event) {
128
- const value = event?.target?.value;
129
- handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
130
- }
131
- getErrorMessage() {
132
- let errMessage = '';
133
- // look for validation messages for json, pre-defined or just an error pushed from workitem (400)
134
- if (this.fieldControl.hasError('message')) {
135
- errMessage = this.angularPConnectData.validateMessage ?? '';
136
- return errMessage;
137
- }
138
- if (this.fieldControl.hasError('required')) {
139
- errMessage = 'You must enter a value';
140
- }
141
- else if (this.fieldControl.errors) {
142
- errMessage = this.fieldControl.errors.toString();
143
- }
144
- return errMessage;
145
- }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: EmailComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: EmailComponent, isStandalone: true, selector: "app-email", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<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", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i4.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i4.RequiredValidator), selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatFormField), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(() => i5.MatLabel), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(() => i5.MatError), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i6.MatInput), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
148
- }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: EmailComponent, decorators: [{
150
- type: Component,
151
- args: [{ selector: 'app-email', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)], template: "<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", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"] }]
152
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: i2.Utils }], propDecorators: { pConn$: [{
153
- type: Input
154
- }], formGroup$: [{
155
- type: Input
156
- }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL2VtYWlsL2VtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9lbWFpbC9lbWFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBcUIsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHaEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7OztBQWEzRCxNQUFNLE9BQU8sY0FBYztJQTBCekIsWUFDVSxlQUF1QyxFQUN2QyxLQUF3QixFQUN4QixLQUFZO1FBRlosb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQU87UUF6QnRCLDRCQUE0QjtRQUM1Qix3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRzlDLFdBQU0sR0FBRyxFQUFFLENBQUM7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bnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQQ29ubkZpZWxkUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvUENvbm5Qcm9wcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaGFuZGxlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy9ldmVudC11dGlsJztcblxuaW50ZXJmYWNlIEVtYWlsUHJvcHMgZXh0ZW5kcyBQQ29ubkZpZWxkUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIEVtYWlsIGhlcmVcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVtYWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW1haWwuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBFbWFpbFByb3BzO1xuXG4gIGxhYmVsJCA9ICcnO1xuICB2YWx1ZSQ6IHN0cmluZztcbiAgYlJlcXVpcmVkJCA9IGZhbHNlO1xuICBiUmVhZG9ubHkkID0gZmFsc2U7XG4gIGJEaXNhYmxlZCQgPSBmYWxzZTtcbiAgYlZpc2libGUkID0gdHJ1ZTtcbiAgZGlzcGxheU1vZGUkPzogc3RyaW5nID0gJyc7XG4gIGNvbnRyb2xOYW1lJDogc3RyaW5nO1xuICBiSGFzRm9ybSQgPSB0cnVlO1xuICBjb21wb25lbnRSZWZlcmVuY2UgPSAnJztcbiAgdGVzdElkOiBzdHJpbmc7XG4gIGhlbHBlclRleHQ6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBmaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIG51bGwpO1xuICBhY3Rpb25zQXBpOiBPYmplY3Q7XG4gIHByb3BOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIHRoaXMuY29udHJvbE5hbWUkID0gdGhpcy5hbmd1bGFyUENvbm5lY3QuZ2V0Q29tcG9uZW50SUQodGhpcyk7XG5cbiAgICAvLyBUaGVuLCBjb250aW51ZSBvbiB3aXRoIG90aGVyIGluaXRpYWxpemF0aW9uXG5cbiAgICAvLyBjYWxsIHVwZGF0ZVNlbGYgd2hlbiBpbml0aWFsaXppbmdcbiAgICAvLyB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAkKSB7XG4gICAgICAvLyBhZGQgY29udHJvbCB0byBmb3JtR3JvdXBcbiAgICAgIHRoaXMuZm9ybUdyb3VwJC5hZGRDb250cm9sKHRoaXMuY29udHJvbE5hbWUkLCB0aGlzLmZpZWxkQ29udHJvbCk7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlJCk7XG4gICAgICB0aGlzLmJIYXNGb3JtJCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYlJlYWRvbmx5JCA9IHRydWU7XG4gICAgICB0aGlzLmJIYXNGb3JtJCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwJC5yZW1vdmVDb250cm9sKHRoaXMuY29udHJvbE5hbWUkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICAvLyB1cGRhdGVTZWxmXG4gIHVwZGF0ZVNlbGYoKTogdm9pZCB7XG4gICAgLy8gbW92ZWQgdGhpcyBmcm9tIG5nT25Jbml0KCkgYW5kIGNhbGwgdGhpcyBmcm9tIHRoZXJlIGluc3RlYWQuLi5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBFbWFpbFByb3BzO1xuICAgIHRoaXMudGVzdElkID0gdGhpcy5jb25maWdQcm9wcyQudGVzdElkO1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWw7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZTtcblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC52YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmFsdWUkID0gdGhpcy5jb25maWdQcm9wcyQudmFsdWU7XG4gICAgfVxuICAgIHRoaXMuaGVscGVyVGV4dCA9IHRoaXMuY29uZmlnUHJvcHMkLmhlbHBlclRleHQ7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuY29uZmlnUHJvcHMkLnBsYWNlaG9sZGVyIHx8ICcnO1xuXG4gICAgLy8gdGltZW91dCBhbmQgZGV0ZWN0Q2hhbmdlcyB0byBhdm9pZCBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb25maWdQcm9wcyQucmVxdWlyZWQgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmJSZXF1aXJlZCQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5yZXF1aXJlZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuYlZpc2libGUkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSk7XG4gICAgfVxuXG4gICAgLy8gZGlzYWJsZWRcbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmJEaXNhYmxlZCQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYkRpc2FibGVkJCkge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQucmVhZE9ubHkgIT0gbnVsbCkge1xuICAgICAgdGhpcy5iUmVhZG9ubHkkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQucmVhZE9ubHkpO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aW9uc0FwaSA9IHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKTtcbiAgICB0aGlzLnByb3BOYW1lID0gdGhpcy5wQ29ubiQuZ2V0U3RhdGVQcm9wcygpLnZhbHVlO1xuXG4gICAgdGhpcy5jb21wb25lbnRSZWZlcmVuY2UgPSB0aGlzLnBDb25uJC5nZXRTdGF0ZVByb3BzKCkudmFsdWU7XG5cbiAgICAvLyB0cmlnZ2VyIGRpc3BsYXkgb2YgZXJyb3IgbWVzc2FnZSB3aXRoIGZpZWxkIGNvbnRyb2xcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSAhPSBudWxsICYmIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgIT0gJycpIHtcbiAgICAgIGNvbnN0IHRpbWVyID0gaW50ZXJ2YWwoMTAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZpZWxkQ29udHJvbC5zZXRFcnJvcnMoeyBtZXNzYWdlOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLmZpZWxkQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICAgICAgdGltZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZpZWxkT25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQ/LnRhcmdldD8udmFsdWU7XG4gICAgaGFuZGxlRXZlbnQodGhpcy5hY3Rpb25zQXBpLCAnY2hhbmdlTmJsdXInLCB0aGlzLnByb3BOYW1lLCB2YWx1ZSk7XG4gICAgdGhpcy5wQ29ubiQuY2xlYXJFcnJvck1lc3NhZ2VzKHtcbiAgICAgIHByb3BlcnR5OiB0aGlzLnByb3BOYW1lXG4gICAgfSk7XG4gIH1cblxuICBmaWVsZE9uQmx1cihldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudD8udGFyZ2V0Py52YWx1ZTtcbiAgICBoYW5kbGVFdmVudCh0aGlzLmFjdGlvbnNBcGksICdjaGFuZ2VOYmx1cicsIHRoaXMucHJvcE5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpIHtcbiAgICBsZXQgZXJyTWVzc2FnZSA9ICcnO1xuXG4gICAgLy8gbG9vayBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlcyBmb3IganNvbiwgcHJlLWRlZmluZWQgb3IganVzdCBhbiBlcnJvciBwdXNoZWQgZnJvbSB3b3JraXRlbSAoNDAwKVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcignbWVzc2FnZScpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSA/PyAnJztcbiAgICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSAnWW91IG11c3QgZW50ZXIgYSB2YWx1ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSB0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyTWVzc2FnZTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRpc3BsYXlNb2RlJDsgZWxzZSBub0Rpc3BsYXlNb2RlXCI+XG4gIDxjb21wb25lbnQtbWFwcGVyICpuZ0lmPVwiYlZpc2libGUkICE9PSBmYWxzZVwiIG5hbWU9XCJGaWVsZFZhbHVlTGlzdFwiIFtwcm9wc109XCJ7IGxhYmVsJCwgdmFsdWUkLCBkaXNwbGF5TW9kZSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNub0Rpc3BsYXlNb2RlPlxuICA8ZGl2ICpuZ0lmPVwiIWJSZWFkb25seSQgJiYgYkhhc0Zvcm0kOyBlbHNlIG5vRWRpdFwiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAkXCIgKm5nSWY9XCJiVmlzaWJsZSRcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInBzZGstZnVsbC13aWR0aFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIiBbaGludExhYmVsXT1cImhlbHBlclRleHRcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbCQgfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXG4gICAgICAgICAgW3ZhbHVlXT1cInZhbHVlJFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cImJSZXF1aXJlZCRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWVsZENvbnRyb2xcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiZmllbGRPbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJmaWVsZE9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZpZWxkQ29udHJvbC5pbnZhbGlkXCI+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9FZGl0PlxuICA8Y29tcG9uZW50LW1hcHBlciAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIiBuYW1lPVwiVGV4dFwiIFtwcm9wc109XCJ7IHBDb25uJCwgZm9ybWF0QXMkOiAndGV4dCcgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,64 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, forwardRef, Input } from '@angular/core';
3
- import { ReferenceComponent } from '../../infra/reference/reference.component';
4
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../_bridge/angular-pconnect";
7
- import * as i2 from "@angular/common";
8
- export class GroupComponent {
9
- constructor(angularPConnect) {
10
- this.angularPConnect = angularPConnect;
11
- // Used with AngularPConnect
12
- this.angularPConnectData = {};
13
- }
14
- ngOnInit() {
15
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
16
- this.checkAndUpdate();
17
- }
18
- // Callback passed when subscribing to store change
19
- onStateChange() {
20
- this.checkAndUpdate();
21
- }
22
- checkAndUpdate() {
23
- // Should always check the bridge to see if the component should
24
- // update itself (re-render)
25
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
26
- // ONLY call updateSelf when the component should update
27
- if (bUpdateSelf) {
28
- this.updateSelf();
29
- }
30
- }
31
- updateSelf() {
32
- this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
33
- this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
34
- this.visibility$ = this.configProps$.visibility;
35
- this.showHeading$ = this.configProps$.showHeading;
36
- this.heading$ = this.configProps$.heading;
37
- this.instructions$ = this.configProps$.instructions;
38
- this.collapsible$ = this.configProps$.collapsible;
39
- if (this.configProps$.visibility === undefined) {
40
- this.visibility$ = this.pConn$.getComputedVisibility();
41
- }
42
- if (this.configProps$.displayMode === 'DISPLAY_ONLY') {
43
- if (this.configProps$.visibility === undefined)
44
- this.visibility$ = true;
45
- this.arChildren$.forEach(child => {
46
- const pConn = child.getPConnect();
47
- pConn.setInheritedProp('displayMode', 'DISPLAY_ONLY');
48
- pConn.setInheritedProp('readOnly', true);
49
- return child;
50
- });
51
- }
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GroupComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: GroupComponent, isStandalone: true, selector: "app-group", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<ng-container *ngIf=\"visibility$ && arChildren$.length\">\n <component-mapper\n name=\"FieldGroup\"\n [props]=\"{\n name: showHeading$ ? heading$ : undefined,\n collapsible: collapsible$,\n instructions: instructions$,\n childrenTemplate: childrenTemplate\n }\"\n >\n </component-mapper>\n\n <ng-template #childrenTemplate>\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=\"Field Group wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i2.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GroupComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'app-group', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<ng-container *ngIf=\"visibility$ && arChildren$.length\">\n <component-mapper\n name=\"FieldGroup\"\n [props]=\"{\n name: showHeading$ ? heading$ : undefined,\n collapsible: collapsible$,\n instructions: instructions$,\n childrenTemplate: childrenTemplate\n }\"\n >\n </component-mapper>\n\n <ng-template #childrenTemplate>\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=\"Field Group wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n</ng-container>\n" }]
59
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }], propDecorators: { pConn$: [{
60
- type: Input
61
- }], formGroup$: [{
62
- type: Input
63
- }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL2dyb3VwL2dyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9ncm91cC9ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBa0J4RyxNQUFNLE9BQU8sY0FBYztJQWV6QixZQUFvQixlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFKM0QsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7SUFHZ0IsQ0FBQztJQUUvRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osZ0VBQWdFO1FBQ2hFLDRCQUE0QjtRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLHdEQUF3RDtRQUN4RCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBZSxDQUFDO1FBQy9GLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQ3JELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEtBQUssU0FBUztnQkFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUV4RSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDL0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN0RCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUV6QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBL0RVLGNBQWM7bUdBQWQsY0FBYyw2SEN2QjNCLDZ3QkF5QkEsNkVESlksWUFBWSwrVEFBbUIsd0JBQXdCOzs0RkFFdEQsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxXQUFXLGNBR1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzJGQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2luZnJhL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBDb25uRmllbGRQcm9wcyB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9QQ29ublByb3BzLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBHcm91cFByb3BzIGV4dGVuZHMgUENvbm5GaWVsZFByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiBHcm91cCBoZXJlXG4gIHNob3dIZWFkaW5nOiBib29sZWFuO1xuICBoZWFkaW5nOiBzdHJpbmc7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xuICBjb2xsYXBzaWJsZTogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICB2aXNpYmlsaXR5JD86IGJvb2xlYW47XG4gIHNob3dIZWFkaW5nJD86IGJvb2xlYW47XG4gIGhlYWRpbmckOiBzdHJpbmc7XG4gIGluc3RydWN0aW9ucyQ6IHN0cmluZztcbiAgY29sbGFwc2libGUkOiBib29sZWFuO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IEdyb3VwUHJvcHM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcblxuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBHcm91cFByb3BzO1xuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcbiAgICB0aGlzLnZpc2liaWxpdHkkID0gdGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eTtcbiAgICB0aGlzLnNob3dIZWFkaW5nJCA9IHRoaXMuY29uZmlnUHJvcHMkLnNob3dIZWFkaW5nO1xuICAgIHRoaXMuaGVhZGluZyQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oZWFkaW5nO1xuICAgIHRoaXMuaW5zdHJ1Y3Rpb25zJCA9IHRoaXMuY29uZmlnUHJvcHMkLmluc3RydWN0aW9ucztcbiAgICB0aGlzLmNvbGxhcHNpYmxlJCA9IHRoaXMuY29uZmlnUHJvcHMkLmNvbGxhcHNpYmxlO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aXNpYmlsaXR5JCA9IHRoaXMucENvbm4kLmdldENvbXB1dGVkVmlzaWJpbGl0eSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZSA9PT0gJ0RJU1BMQVlfT05MWScpIHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ID09PSB1bmRlZmluZWQpIHRoaXMudmlzaWJpbGl0eSQgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICBjb25zdCBwQ29ubiA9IGNoaWxkLmdldFBDb25uZWN0KCk7XG4gICAgICAgIHBDb25uLnNldEluaGVyaXRlZFByb3AoJ2Rpc3BsYXlNb2RlJywgJ0RJU1BMQVlfT05MWScpO1xuICAgICAgICBwQ29ubi5zZXRJbmhlcml0ZWRQcm9wKCdyZWFkT25seScsIHRydWUpO1xuXG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpc2liaWxpdHkkICYmIGFyQ2hpbGRyZW4kLmxlbmd0aFwiPlxuICA8Y29tcG9uZW50LW1hcHBlclxuICAgIG5hbWU9XCJGaWVsZEdyb3VwXCJcbiAgICBbcHJvcHNdPVwie1xuICAgICAgbmFtZTogc2hvd0hlYWRpbmckID8gaGVhZGluZyQgOiB1bmRlZmluZWQsXG4gICAgICBjb2xsYXBzaWJsZTogY29sbGFwc2libGUkLFxuICAgICAgaW5zdHJ1Y3Rpb25zOiBpbnN0cnVjdGlvbnMkLFxuICAgICAgY2hpbGRyZW5UZW1wbGF0ZTogY2hpbGRyZW5UZW1wbGF0ZVxuICAgIH1cIlxuICA+XG4gIDwvY29tcG9uZW50LW1hcHBlcj5cblxuICA8bmctdGVtcGxhdGUgI2NoaWxkcmVuVGVtcGxhdGU+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgICBbbmFtZV09XCJraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKClcIlxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksXG4gICAgICAgICAgZm9ybUdyb3VwJDogZm9ybUdyb3VwJFxuICAgICAgICB9XCJcbiAgICAgICAgZXJyb3JNc2c9XCJGaWVsZCBHcm91cCB3YW50cyBjb21wb25lbnQgbm90IHlldCBhdmFpbGFibGU6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,160 +0,0 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
4
- import { MatInputModule } from '@angular/material/input';
5
- import { MatFormFieldModule } from '@angular/material/form-field';
6
- import { interval } from 'rxjs';
7
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
8
- import { handleEvent } from '../../../_helpers/event-util';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../../../_bridge/angular-pconnect";
11
- import * as i2 from "../../../_helpers/utils";
12
- import * as i3 from "@angular/common";
13
- import * as i4 from "@angular/forms";
14
- import * as i5 from "@angular/material/form-field";
15
- import * as i6 from "@angular/material/input";
16
- export class IntegerComponent {
17
- constructor(angularPConnect, cdRef, utils) {
18
- this.angularPConnect = angularPConnect;
19
- this.cdRef = cdRef;
20
- this.utils = utils;
21
- // Used with AngularPConnect
22
- this.angularPConnectData = {};
23
- this.label$ = '';
24
- this.bRequired$ = false;
25
- this.bReadonly$ = false;
26
- this.bDisabled$ = false;
27
- this.bVisible$ = true;
28
- this.displayMode$ = '';
29
- this.bHasForm$ = true;
30
- this.componentReference = '';
31
- this.fieldControl = new FormControl(null, null);
32
- }
33
- ngOnInit() {
34
- // First thing in initialization is registering and subscribing to the AngularPConnect service
35
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
36
- this.controlName$ = this.angularPConnect.getComponentID(this);
37
- // Then, continue on with other initialization
38
- // call updateSelf when initializing
39
- // this.updateSelf();
40
- this.checkAndUpdate();
41
- if (this.formGroup$) {
42
- // add control to formGroup
43
- this.formGroup$.addControl(this.controlName$, this.fieldControl);
44
- this.fieldControl.setValue(this.value$);
45
- this.bHasForm$ = true;
46
- }
47
- else {
48
- this.bReadonly$ = true;
49
- this.bHasForm$ = false;
50
- }
51
- }
52
- ngOnDestroy() {
53
- if (this.formGroup$) {
54
- this.formGroup$.removeControl(this.controlName$);
55
- }
56
- if (this.angularPConnectData.unsubscribeFn) {
57
- this.angularPConnectData.unsubscribeFn();
58
- }
59
- }
60
- // Callback passed when subscribing to store change
61
- onStateChange() {
62
- this.checkAndUpdate();
63
- }
64
- checkAndUpdate() {
65
- // Should always check the bridge to see if the component should
66
- // update itself (re-render)
67
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
68
- // ONLY call updateSelf when the component should update
69
- if (bUpdateSelf) {
70
- this.updateSelf();
71
- }
72
- }
73
- // updateSelf
74
- updateSelf() {
75
- // moved this from ngOnInit() and call this from there instead...
76
- this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
77
- this.testId = this.configProps$.testId;
78
- this.label$ = this.configProps$.label;
79
- this.displayMode$ = this.configProps$.displayMode;
80
- let nValue = this.configProps$.value;
81
- if (nValue) {
82
- if (typeof nValue === 'string') {
83
- nValue = parseInt(nValue, 10);
84
- }
85
- this.value$ = nValue;
86
- }
87
- this.helperText = this.configProps$.helperText;
88
- this.placeholder = this.configProps$.placeholder || '';
89
- this.actionsApi = this.pConn$.getActionsApi();
90
- this.propName = this.pConn$.getStateProps().value;
91
- // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
92
- setTimeout(() => {
93
- if (this.configProps$.required != null) {
94
- this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);
95
- }
96
- this.cdRef.detectChanges();
97
- });
98
- if (this.configProps$.visibility != null) {
99
- this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);
100
- }
101
- // disabled
102
- if (this.configProps$.disabled != undefined) {
103
- this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);
104
- }
105
- if (this.bDisabled$) {
106
- this.fieldControl.disable();
107
- }
108
- else {
109
- this.fieldControl.enable();
110
- }
111
- if (this.configProps$.readOnly != null) {
112
- this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);
113
- }
114
- this.componentReference = this.pConn$.getStateProps().value;
115
- // trigger display of error message with field control
116
- if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
117
- const timer = interval(100).subscribe(() => {
118
- this.fieldControl.setErrors({ message: true });
119
- this.fieldControl.markAsTouched();
120
- timer.unsubscribe();
121
- });
122
- }
123
- }
124
- fieldOnChange() {
125
- this.pConn$.clearErrorMessages({
126
- property: this.propName
127
- });
128
- }
129
- fieldOnBlur(event) {
130
- const value = event?.target?.value;
131
- handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
132
- }
133
- getErrorMessage() {
134
- // field control gets error message from here
135
- let errMessage = '';
136
- // look for validation messages for json, pre-defined or just an error pushed from workitem (400)
137
- if (this.fieldControl.hasError('message')) {
138
- errMessage = this.angularPConnectData.validateMessage ?? '';
139
- return errMessage;
140
- }
141
- if (this.fieldControl.hasError('required')) {
142
- errMessage = 'You must enter a value';
143
- }
144
- else if (this.fieldControl.errors) {
145
- errMessage = this.fieldControl.errors.toString();
146
- }
147
- return errMessage;
148
- }
149
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: IntegerComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: IntegerComponent, isStandalone: true, selector: "app-integer", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<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()\"\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", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i4.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NumberValueAccessor), selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i4.RequiredValidator), selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatFormField), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(() => i5.MatLabel), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(() => i5.MatError), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i6.MatInput), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
151
- }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: IntegerComponent, decorators: [{
153
- type: Component,
154
- args: [{ selector: 'app-integer', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)], template: "<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()\"\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", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"] }]
155
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: i2.Utils }], propDecorators: { pConn$: [{
156
- type: Input
157
- }], formGroup$: [{
158
- type: Input
159
- }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvaW50ZWdlci9pbnRlZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9pbnRlZ2VyL2ludGVnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQXFCLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXhHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUFhM0QsTUFBTSxPQUFPLGdCQUFnQjtJQTBCM0IsWUFDVSxlQUF1QyxFQUN2QyxLQUF3QixFQUN4QixLQUFZO1FBRlosb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQU87UUF6QnRCLDRCQUE0QjtRQUM1Qix3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRzlDLFdBQU0sR0FB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aW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQQ29ubkZpZWxkUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvUENvbm5Qcm9wcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaGFuZGxlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy9ldmVudC11dGlsJztcblxuaW50ZXJmYWNlIEludGVnZXJQcm9wcyBleHRlbmRzIFBDb25uRmllbGRQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gSW50ZWdlciBoZXJlXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pbnRlZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVnZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlZ2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgSW50ZWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBJbnRlZ2VyUHJvcHM7XG5cbiAgbGFiZWwkID0gJyc7XG4gIHZhbHVlJDogbnVtYmVyO1xuICBiUmVxdWlyZWQkID0gZmFsc2U7XG4gIGJSZWFkb25seSQgPSBmYWxzZTtcbiAgYkRpc2FibGVkJCA9IGZhbHNlO1xuICBiVmlzaWJsZSQgPSB0cnVlO1xuICBkaXNwbGF5TW9kZSQ/OiBzdHJpbmcgPSAnJztcbiAgY29udHJvbE5hbWUkOiBzdHJpbmc7XG4gIGJIYXNGb3JtJCA9IHRydWU7XG4gIGNvbXBvbmVudFJlZmVyZW5jZSA9ICcnO1xuICB0ZXN0SWQ6IHN0cmluZztcbiAgaGVscGVyVGV4dDogc3RyaW5nO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIGZpZWxkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBudWxsKTtcbiAgYWN0aW9uc0FwaTogT2JqZWN0O1xuICBwcm9wTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdXRpbHM6IFV0aWxzXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLmNvbnRyb2xOYW1lJCA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudElEKHRoaXMpO1xuXG4gICAgLy8gVGhlbiwgY29udGludWUgb24gd2l0aCBvdGhlciBpbml0aWFsaXphdGlvblxuXG4gICAgLy8gY2FsbCB1cGRhdGVTZWxmIHdoZW4gaW5pdGlhbGl6aW5nXG4gICAgLy8gdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgLy8gYWRkIGNvbnRyb2wgdG8gZm9ybUdyb3VwXG4gICAgICB0aGlzLmZvcm1Hcm91cCQuYWRkQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCwgdGhpcy5maWVsZENvbnRyb2wpO1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSQpO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJSZWFkb25seSQgPSB0cnVlO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAkKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cCQucmVtb3ZlQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gdXBkYXRlU2VsZlxuICB1cGRhdGVTZWxmKCk6IHZvaWQge1xuICAgIC8vIG1vdmVkIHRoaXMgZnJvbSBuZ09uSW5pdCgpIGFuZCBjYWxsIHRoaXMgZnJvbSB0aGVyZSBpbnN0ZWFkLi4uXG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgSW50ZWdlclByb3BzO1xuICAgIHRoaXMudGVzdElkID0gdGhpcy5jb25maWdQcm9wcyQudGVzdElkO1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWw7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZTtcbiAgICBsZXQgblZhbHVlOiBhbnkgPSB0aGlzLmNvbmZpZ1Byb3BzJC52YWx1ZTtcbiAgICBpZiAoblZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIG5WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgblZhbHVlID0gcGFyc2VJbnQoblZhbHVlLCAxMCk7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbHVlJCA9IG5WYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5oZWxwZXJUZXh0ID0gdGhpcy5jb25maWdQcm9wcyQuaGVscGVyVGV4dDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5jb25maWdQcm9wcyQucGxhY2Vob2xkZXIgfHwgJyc7XG5cbiAgICB0aGlzLmFjdGlvbnNBcGkgPSB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCk7XG4gICAgdGhpcy5wcm9wTmFtZSA9IHRoaXMucENvbm4kLmdldFN0YXRlUHJvcHMoKS52YWx1ZTtcblxuICAgIC8vIHRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlcXVpcmVkICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5iUmVxdWlyZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQucmVxdWlyZWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgIC8vIGRpc2FibGVkXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5iRGlzYWJsZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJEaXNhYmxlZCQpIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuYlJlYWRvbmx5JCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZmVyZW5jZSA9IHRoaXMucENvbm4kLmdldFN0YXRlUHJvcHMoKS52YWx1ZTtcblxuICAgIC8vIHRyaWdnZXIgZGlzcGxheSBvZiBlcnJvciBtZXNzYWdlIHdpdGggZmllbGQgY29udHJvbFxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlICE9IG51bGwgJiYgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSAhPSAnJykge1xuICAgICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldEVycm9ycyh7IG1lc3NhZ2U6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICB0aW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZmllbGRPbkNoYW5nZSgpIHtcbiAgICB0aGlzLnBDb25uJC5jbGVhckVycm9yTWVzc2FnZXMoe1xuICAgICAgcHJvcGVydHk6IHRoaXMucHJvcE5hbWVcbiAgICB9KTtcbiAgfVxuXG4gIGZpZWxkT25CbHVyKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xuICAgIGhhbmRsZUV2ZW50KHRoaXMuYWN0aW9uc0FwaSwgJ2NoYW5nZU5ibHVyJywgdGhpcy5wcm9wTmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xuICAgIC8vIGZpZWxkIGNvbnRyb2wgZ2V0cyBlcnJvciBtZXNzYWdlIGZyb20gaGVyZVxuXG4gICAgbGV0IGVyck1lc3NhZ2UgPSAnJztcblxuICAgIC8vIGxvb2sgZm9yIHZhbGlkYXRpb24gbWVzc2FnZXMgZm9yIGpzb24sIHByZS1kZWZpbmVkIG9yIGp1c3QgYW4gZXJyb3IgcHVzaGVkIGZyb20gd29ya2l0ZW0gKDQwMClcbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ21lc3NhZ2UnKSkge1xuICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgPz8gJyc7XG4gICAgICByZXR1cm4gZXJyTWVzc2FnZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmllbGRDb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gJ1lvdSBtdXN0IGVudGVyIGEgdmFsdWUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZENvbnRyb2wuZXJyb3JzKSB7XG4gICAgICBlcnJNZXNzYWdlID0gdGhpcy5maWVsZENvbnRyb2wuZXJyb3JzLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVyck1lc3NhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkaXNwbGF5TW9kZSQ7IGVsc2Ugbm9EaXNwbGF5TW9kZVwiPlxuICA8Y29tcG9uZW50LW1hcHBlciAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIiBuYW1lPVwiRmllbGRWYWx1ZUxpc3RcIiBbcHJvcHNdPVwieyBsYWJlbCQsIHZhbHVlJCwgZGlzcGxheU1vZGUkIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbm9EaXNwbGF5TW9kZT5cbiAgPGRpdiAqbmdJZj1cIiFiUmVhZG9ubHkkICYmIGJIYXNGb3JtJDsgZWxzZSBub0VkaXRcIj5cbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwJFwiICpuZ0lmPVwiYlZpc2libGUkXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLWZ1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgW2hpbnRMYWJlbF09XCJoZWxwZXJUZXh0XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwkIH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICBzdGVwPVwiMVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInZhbHVlJFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cImJSZXF1aXJlZCRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWVsZENvbnRyb2xcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiZmllbGRPbkNoYW5nZSgpXCJcbiAgICAgICAgICAoYmx1cik9XCJmaWVsZE9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZpZWxkQ29udHJvbC5pbnZhbGlkXCI+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9FZGl0PlxuICA8Y29tcG9uZW50LW1hcHBlciAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIiBuYW1lPVwiVGV4dFwiIFtwcm9wc109XCJ7IHBDb25uJCwgZm9ybWF0QXMkOiAndGV4dCcgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,44 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatGridListModule } from '@angular/material/grid-list';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/grid-list";
7
- import * as i2 from "@angular/material/button";
8
- export class ListViewActionButtonsComponent {
9
- constructor() {
10
- // @Input() closeActionsDialog: any;
11
- this.closeActionsDialog = new EventEmitter();
12
- this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
13
- this.localeCategory = 'Data Object';
14
- }
15
- onCancel() {
16
- // this.closeActionsDialog();
17
- this.closeActionsDialog.emit();
18
- this.pConn$.getActionsApi().cancelDataObject(this.context$);
19
- }
20
- onSubmit() {
21
- this.isDisabled = true;
22
- this.pConn$
23
- .getActionsApi()
24
- .submitEmbeddedDataModal(this.context$)
25
- .then(() => { })
26
- .finally(() => {
27
- this.isDisabled = false;
28
- });
29
- this.closeActionsDialog.emit();
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ListViewActionButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ListViewActionButtonsComponent, isStandalone: true, selector: "app-list-view-action-buttons", inputs: { pConn$: "pConn$", context$: "context$" }, outputs: { closeActionsDialog: "closeActionsDialog" }, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatGridListModule }, { kind: "component", type: i1.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i1.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ListViewActionButtonsComponent, decorators: [{
35
- type: Component,
36
- args: [{ selector: 'app-list-view-action-buttons', standalone: true, imports: [CommonModule, MatGridListModule, MatButtonModule], template: "<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" }]
37
- }], propDecorators: { pConn$: [{
38
- type: Input
39
- }], context$: [{
40
- type: Input
41
- }], closeActionsDialog: [{
42
- type: Output
43
- }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWFjdGlvbi1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9saXN0LXZpZXctYWN0aW9uLWJ1dHRvbnMvbGlzdC12aWV3LWFjdGlvbi1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9saXN0LXZpZXctYWN0aW9uLWJ1dHRvbnMvbGlzdC12aWV3LWFjdGlvbi1idXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQVNoRSxNQUFNLE9BQU8sOEJBQThCO0lBUDNDO1FBVUUsb0NBQW9DO1FBQzFCLHVCQUFrQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXJFLGlCQUFZLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLGNBQWMsQ0FBQztRQUNyRCxtQkFBYyxHQUFHLGFBQWEsQ0FBQztLQW9CaEM7SUFqQkMsUUFBUTtRQUNOLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTTthQUNSLGFBQWEsRUFBRTthQUNmLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDdEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQzthQUNkLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDOytHQTFCVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixtTUNaM0Msb2ZBWUEseURERlksWUFBWSw4QkFBRSxpQkFBaUIsaVRBQUUsZUFBZTs7NEZBRS9DLDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDRSw4QkFBOEIsY0FHNUIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQzs4QkFHbEQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbGlzdC12aWV3LWFjdGlvbi1idXR0b25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3Qtdmlldy1hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3Qtdmlldy1hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRHcmlkTGlzdE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld0FjdGlvbkJ1dHRvbnNDb21wb25lbnQge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgY29udGV4dCQ6IHN0cmluZztcbiAgLy8gQElucHV0KCkgY2xvc2VBY3Rpb25zRGlhbG9nOiBhbnk7XG4gIEBPdXRwdXQoKSBjbG9zZUFjdGlvbnNEaWFsb2c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGxvY2FsaXplZFZhbCA9IFBDb3JlLmdldExvY2FsZVV0aWxzKCkuZ2V0TG9jYWxlVmFsdWU7XG4gIGxvY2FsZUNhdGVnb3J5ID0gJ0RhdGEgT2JqZWN0JztcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcblxuICBvbkNhbmNlbCgpIHtcbiAgICAvLyB0aGlzLmNsb3NlQWN0aW9uc0RpYWxvZygpO1xuICAgIHRoaXMuY2xvc2VBY3Rpb25zRGlhbG9nLmVtaXQoKTtcbiAgICB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCkuY2FuY2VsRGF0YU9iamVjdCh0aGlzLmNvbnRleHQkKTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgdGhpcy5wQ29ubiRcbiAgICAgIC5nZXRBY3Rpb25zQXBpKClcbiAgICAgIC5zdWJtaXRFbWJlZGRlZERhdGFNb2RhbCh0aGlzLmNvbnRleHQkKVxuICAgICAgLnRoZW4oKCkgPT4ge30pXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgdGhpcy5jbG9zZUFjdGlvbnNEaWFsb2cuZW1pdCgpO1xuICB9XG59XG4iLCI8bWF0LWdyaWQtbGlzdCBjb2xzPVwiMlwiIHJvd0hlaWdodD1cIjYuMjVyZW1cIj5cbiAgPG1hdC1ncmlkLXRpbGU+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB2YXJpYW50PVwiY29udGFpbmVkXCIgY29sb3I9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPlxuICAgICAge3sgbG9jYWxpemVkVmFsKCdDYW5jZWwnLCBsb2NhbGVDYXRlZ29yeSkgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtZ3JpZC10aWxlPlxuICA8bWF0LWdyaWQtdGlsZT5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHZhcmlhbnQ9XCJjb250YWluZWRcIiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+XG4gICAgICB7eyBsb2NhbGl6ZWRWYWwoJ1N1Ym1pdCcsIGxvY2FsZUNhdGVnb3J5KSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1ncmlkLXRpbGU+XG48L21hdC1ncmlkLWxpc3Q+XG4iXX0=