@pega/angular-sdk-components 24.2.12 → 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 (248) hide show
  1. package/fesm2022/pega-angular-sdk-components.mjs +4828 -3717
  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/material-case-summary/material-case-summary.component.d.ts +1 -1
  7. package/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.d.ts +1 -0
  8. package/lib/_components/field/auto-complete/auto-complete.component.d.ts +9 -37
  9. package/lib/_components/field/cancel-alert/cancel-alert.component.d.ts +7 -5
  10. package/lib/_components/field/check-box/check-box.component.d.ts +10 -32
  11. package/lib/_components/field/currency/currency.component.d.ts +19 -34
  12. package/lib/_components/field/date/date.component.d.ts +7 -57
  13. package/lib/_components/field/date-time/date-time.component.d.ts +12 -40
  14. package/lib/_components/field/decimal/decimal.component.d.ts +16 -31
  15. package/lib/_components/field/dropdown/dropdown.component.d.ts +13 -37
  16. package/lib/_components/field/email/email.component.d.ts +7 -34
  17. package/lib/_components/field/field.base.d.ts +57 -0
  18. package/lib/_components/field/group/group.component.d.ts +5 -2
  19. package/lib/_components/field/integer/integer.component.d.ts +7 -33
  20. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -1
  21. package/lib/_components/field/location/location.component.d.ts +47 -0
  22. package/lib/_components/field/multiselect/multiselect.component.d.ts +7 -38
  23. package/lib/_components/field/object-reference/object-reference.component.d.ts +45 -0
  24. package/lib/_components/field/percentage/percentage.component.d.ts +18 -35
  25. package/lib/_components/field/phone/phone.component.d.ts +8 -31
  26. package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +13 -33
  27. package/lib/_components/field/rich-text/rich-text.component.d.ts +6 -29
  28. package/lib/_components/field/scalar-list/scalar-list.component.d.ts +6 -21
  29. package/lib/_components/field/selectable-card/selectable-card.component.d.ts +62 -0
  30. package/lib/_components/field/semantic-link/semantic-link.component.d.ts +21 -0
  31. package/lib/_components/field/text-area/text-area.component.d.ts +6 -33
  32. package/lib/_components/field/text-input/text-input.component.d.ts +6 -34
  33. package/lib/_components/field/time/time.component.d.ts +6 -34
  34. package/lib/_components/field/url/url.component.d.ts +6 -34
  35. package/lib/_components/field/user-reference/user-reference.component.d.ts +1 -1
  36. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +1 -0
  37. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +4 -6
  38. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
  39. package/lib/_components/infra/assignment/assignment.component.d.ts +3 -3
  40. package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +3 -2
  41. package/lib/_components/infra/defer-load/defer-load.component.d.ts +6 -6
  42. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
  43. package/lib/_components/infra/navbar/navbar.component.d.ts +0 -1
  44. package/lib/_components/infra/stages/stages.component.d.ts +2 -1
  45. package/lib/_components/template/advanced-search/advanced-search.component.d.ts +21 -0
  46. package/lib/_components/template/advanced-search/search-group/persist-utils.d.ts +23 -0
  47. package/lib/_components/template/advanced-search/search-groups/search-groups.component.d.ts +47 -0
  48. package/lib/_components/template/advanced-search/search-groups/utils.d.ts +15 -0
  49. package/lib/_components/template/app-shell/app-shell.component.d.ts +6 -2
  50. package/lib/_components/template/base/details-template-base.d.ts +1 -1
  51. package/lib/_components/template/base/form-template-base.d.ts +1 -1
  52. package/lib/_components/template/case-summary/case-summary.component.d.ts +3 -2
  53. package/lib/_components/template/case-view/case-view.component.d.ts +0 -1
  54. package/lib/_components/template/data-reference/data-reference.component.d.ts +27 -2
  55. package/lib/_components/template/data-reference/search-form/search-form.component.d.ts +39 -0
  56. package/lib/_components/template/data-reference/search-form/tabsData.d.ts +2 -0
  57. package/lib/_components/template/data-reference/utils.d.ts +14 -0
  58. package/lib/_components/template/default-form/default-form.component.d.ts +3 -2
  59. package/lib/_components/template/default-page/default-page.component.d.ts +29 -0
  60. package/lib/_components/template/field-group-template/field-group-template.component.d.ts +3 -5
  61. package/lib/_components/template/list-view/list-view.component.d.ts +21 -5
  62. package/lib/_components/template/object-page/object-page.component.d.ts +8 -0
  63. package/lib/_components/template/self-service-case-view/self-service-case-view.component.d.ts +58 -0
  64. package/lib/_components/template/simple-table-manual/helpers.d.ts +15 -1
  65. package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +2 -2
  66. package/lib/_components/template/single-reference-readonly/single-reference-readonly.component.d.ts +18 -2
  67. package/lib/_components/template/utils.d.ts +4 -0
  68. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +3 -5
  69. package/lib/_components/widget/attachment/Attachment.types.d.ts +87 -0
  70. package/lib/_components/widget/attachment/AttachmentUtils.d.ts +17 -0
  71. package/lib/_components/widget/attachment/attachment.component.d.ts +18 -33
  72. package/lib/_components/widget/feed-container/feed-container.component.d.ts +2 -2
  73. package/lib/_components/widget/file-utility/file-utility.component.d.ts +3 -1
  74. package/lib/_components/widget/todo/todo.component.d.ts +4 -2
  75. package/lib/_helpers/field-group-utils.d.ts +1 -3
  76. package/lib/_helpers/filter-utils.d.ts +1 -3
  77. package/lib/_helpers/object-utils.d.ts +8 -0
  78. package/lib/_helpers/objectReference-utils.d.ts +6 -0
  79. package/lib/_helpers/semanticLink-utils.d.ts +9 -0
  80. package/lib/_helpers/tab-utils.d.ts +4 -0
  81. package/lib/_helpers/utils.d.ts +5 -1
  82. package/lib/_services/case.service.d.ts +1 -1
  83. package/lib/_services/data-reference-advanced-search.service.d.ts +9 -0
  84. package/lib/_services/datapage.service.d.ts +1 -1
  85. package/lib/_services/google-maps-loader.service.d.ts +7 -0
  86. package/package.json +20 -6
  87. package/public-api.d.ts +14 -1
  88. package/esm2022/lib/_bridge/angular-pconnect.mjs +0 -428
  89. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +0 -107
  90. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +0 -239
  91. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +0 -142
  92. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +0 -50
  93. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +0 -29
  94. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +0 -31
  95. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +0 -51
  96. package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +0 -31
  97. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +0 -82
  98. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +0 -37
  99. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +0 -38
  100. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +0 -36
  101. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +0 -25
  102. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +0 -28
  103. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +0 -42
  104. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +0 -145
  105. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +0 -33
  106. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +0 -93
  107. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +0 -18
  108. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +0 -296
  109. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +0 -96
  110. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +0 -225
  111. package/esm2022/lib/_components/field/currency/currency.component.mjs +0 -195
  112. package/esm2022/lib/_components/field/date/date.component.mjs +0 -205
  113. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +0 -196
  114. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +0 -205
  115. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +0 -300
  116. package/esm2022/lib/_components/field/email/email.component.mjs +0 -165
  117. package/esm2022/lib/_components/field/group/group.component.mjs +0 -64
  118. package/esm2022/lib/_components/field/integer/integer.component.mjs +0 -168
  119. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +0 -45
  120. package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +0 -314
  121. package/esm2022/lib/_components/field/multiselect/utils.mjs +0 -187
  122. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +0 -190
  123. package/esm2022/lib/_components/field/phone/phone.component.mjs +0 -155
  124. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +0 -182
  125. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +0 -109
  126. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +0 -95
  127. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +0 -57
  128. package/esm2022/lib/_components/field/text/text.component.mjs +0 -142
  129. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +0 -165
  130. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +0 -69
  131. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +0 -165
  132. package/esm2022/lib/_components/field/time/time.component.mjs +0 -174
  133. package/esm2022/lib/_components/field/url/url.component.mjs +0 -165
  134. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +0 -266
  135. package/esm2022/lib/_components/infra/Containers/base-components/flow-container-base.component.mjs +0 -18
  136. package/esm2022/lib/_components/infra/Containers/base-components/helper.mjs +0 -71
  137. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +0 -461
  138. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +0 -68
  139. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +0 -24
  140. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +0 -335
  141. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +0 -32
  142. package/esm2022/lib/_components/infra/Containers/view-container/helper.mjs +0 -22
  143. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +0 -211
  144. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +0 -31
  145. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +0 -407
  146. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +0 -47
  147. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +0 -87
  148. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +0 -143
  149. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +0 -18
  150. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +0 -80
  151. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +0 -136
  152. package/esm2022/lib/_components/infra/reference/reference.component.mjs +0 -126
  153. package/esm2022/lib/_components/infra/region/region.component.mjs +0 -33
  154. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +0 -223
  155. package/esm2022/lib/_components/infra/stages/stages.component.mjs +0 -62
  156. package/esm2022/lib/_components/infra/view/view.component.mjs +0 -188
  157. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +0 -156
  158. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +0 -43
  159. package/esm2022/lib/_components/template/base/details-template-base.mjs +0 -56
  160. package/esm2022/lib/_components/template/base/form-template-base.mjs +0 -16
  161. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +0 -101
  162. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +0 -185
  163. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +0 -68
  164. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +0 -242
  165. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +0 -73
  166. package/esm2022/lib/_components/template/details/details.component.mjs +0 -76
  167. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +0 -45
  168. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +0 -42
  169. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +0 -39
  170. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +0 -51
  171. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +0 -48
  172. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +0 -48
  173. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +0 -65
  174. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +0 -23
  175. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +0 -131
  176. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +0 -24
  177. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +0 -22
  178. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +0 -40
  179. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +0 -14
  180. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +0 -208
  181. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +0 -1217
  182. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +0 -60
  183. package/esm2022/lib/_components/template/list-view/utils.mjs +0 -662
  184. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +0 -44
  185. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +0 -30
  186. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +0 -31
  187. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +0 -16
  188. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +0 -30
  189. package/esm2022/lib/_components/template/page/page.component.mjs +0 -52
  190. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +0 -149
  191. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +0 -138
  192. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +0 -104
  193. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +0 -271
  194. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +0 -813
  195. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +0 -129
  196. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +0 -16
  197. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +0 -67
  198. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +0 -31
  199. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +0 -16
  200. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +0 -31
  201. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +0 -40
  202. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +0 -30
  203. package/esm2022/lib/_components/template/utils.mjs +0 -38
  204. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +0 -31
  205. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +0 -53
  206. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +0 -137
  207. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +0 -24
  208. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +0 -393
  209. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +0 -80
  210. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +0 -521
  211. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +0 -638
  212. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +0 -57
  213. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +0 -75
  214. package/esm2022/lib/_components/widget/todo/todo.component.mjs +0 -230
  215. package/esm2022/lib/_components/widget/utility/utility.component.mjs +0 -34
  216. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +0 -28
  217. package/esm2022/lib/_helpers/case-utils.mjs +0 -71
  218. package/esm2022/lib/_helpers/common.mjs +0 -20
  219. package/esm2022/lib/_helpers/createstage-utils.mjs +0 -15
  220. package/esm2022/lib/_helpers/currency-utils.mjs +0 -57
  221. package/esm2022/lib/_helpers/date-format-utils.mjs +0 -68
  222. package/esm2022/lib/_helpers/event-util.mjs +0 -18
  223. package/esm2022/lib/_helpers/field-group-utils.mjs +0 -47
  224. package/esm2022/lib/_helpers/filter-utils.mjs +0 -105
  225. package/esm2022/lib/_helpers/formatters/boolean.mjs +0 -20
  226. package/esm2022/lib/_helpers/formatters/common.mjs +0 -17
  227. package/esm2022/lib/_helpers/formatters/currency-map.mjs +0 -903
  228. package/esm2022/lib/_helpers/formatters/currency.mjs +0 -68
  229. package/esm2022/lib/_helpers/formatters/date.mjs +0 -69
  230. package/esm2022/lib/_helpers/formatters/format-utils.mjs +0 -76
  231. package/esm2022/lib/_helpers/formatters/index.mjs +0 -124
  232. package/esm2022/lib/_helpers/instructions-utils.mjs +0 -36
  233. package/esm2022/lib/_helpers/tab-utils.mjs +0 -59
  234. package/esm2022/lib/_helpers/template-utils.mjs +0 -56
  235. package/esm2022/lib/_helpers/utils.mjs +0 -412
  236. package/esm2022/lib/_helpers/versionHelpers.mjs +0 -12
  237. package/esm2022/lib/_messages/error-messages.service.mjs +0 -31
  238. package/esm2022/lib/_messages/progress-spinner.service.mjs +0 -30
  239. package/esm2022/lib/_messages/update-worklist.service.mjs +0 -30
  240. package/esm2022/lib/_services/banner.service.mjs +0 -35
  241. package/esm2022/lib/_services/case.service.mjs +0 -32
  242. package/esm2022/lib/_services/datapage.service.mjs +0 -52
  243. package/esm2022/lib/_services/endpoints.mjs +0 -60
  244. package/esm2022/lib/_services/server-config.service.mjs +0 -52
  245. package/esm2022/lib/_types/PConnProps.interface.mjs +0 -2
  246. package/esm2022/pega-angular-sdk-components.mjs +0 -5
  247. package/esm2022/public-api.mjs +0 -145
  248. package/esm2022/sdk-local-component-map.mjs +0 -9
@@ -1,68 +0,0 @@
1
- function hasNotificationMessages(pConnect) {
2
- return !!pConnect.getValue('caseMessages');
3
- }
4
- function isCaseWideLocalAction(pConnect) {
5
- const { CASE_INFO } = PCore.getConstants();
6
- const actionID = pConnect.getValue(CASE_INFO.ACTIVE_ACTION_ID);
7
- const caseActions = pConnect.getValue(CASE_INFO.CASE_INFO_ACTIONS);
8
- if (caseActions && actionID) {
9
- const activeAction = caseActions.find(caseAction => caseAction.ID === actionID);
10
- return activeAction?.type === 'Case';
11
- }
12
- return false;
13
- }
14
- function getChildCaseAssignments(pConnect) {
15
- const childCases = pConnect.getValue(PCore.getConstants().CASE_INFO.CHILD_ASSIGNMENTS);
16
- let allAssignments = [];
17
- if (childCases && childCases.length > 0) {
18
- childCases.forEach(({ assignments = [], Name }) => {
19
- const childCaseAssignments = assignments.map((assignment) => ({
20
- ...assignment,
21
- caseName: Name
22
- }));
23
- allAssignments = allAssignments.concat(childCaseAssignments);
24
- });
25
- }
26
- return allAssignments;
27
- }
28
- export function hasAssignments(pConnect) {
29
- const { CASE_INFO } = PCore.getConstants();
30
- const assignments = pConnect.getValue(CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);
31
- const childCasesAssignments = getChildCaseAssignments(pConnect);
32
- return assignments || childCasesAssignments?.length || isCaseWideLocalAction(pConnect);
33
- }
34
- export const showBanner = getPConnect => {
35
- const pConnect = getPConnect;
36
- return hasNotificationMessages(pConnect) || !hasAssignments(pConnect);
37
- };
38
- function getActiveCaseActionName(pConnect) {
39
- const caseActions = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ACTIONS);
40
- const activeActionID = pConnect.getValue(PCore.getConstants().CASE_INFO.ACTIVE_ACTION_ID);
41
- const activeAction = caseActions.find(action => action.ID === activeActionID);
42
- return activeAction?.name || '';
43
- }
44
- function showTodo(pConnect) {
45
- const caseViewMode = pConnect.getValue('context_data.caseViewMode');
46
- return caseViewMode !== 'perform';
47
- }
48
- export function getToDoAssignments(pConnect) {
49
- const caseActions = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ACTIONS);
50
- const assignmentLabel = pConnect.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENT_LABEL);
51
- const assignments = pConnect.getValue(PCore.getConstants().CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS) || [];
52
- const childCasesAssignments = getChildCaseAssignments(pConnect) || [];
53
- let childCasesAssignmentsCopy = JSON.parse(JSON.stringify(childCasesAssignments));
54
- childCasesAssignmentsCopy = childCasesAssignmentsCopy.map(assignment => {
55
- assignment.isChild = true;
56
- return assignment;
57
- });
58
- const todoAssignments = [...assignments, ...childCasesAssignmentsCopy];
59
- let todoAssignmentsCopy = JSON.parse(JSON.stringify(todoAssignments));
60
- if (caseActions && !showTodo(pConnect)) {
61
- todoAssignmentsCopy = todoAssignmentsCopy.map(assignment => {
62
- assignment.name = getActiveCaseActionName(pConnect) || assignmentLabel;
63
- return assignment;
64
- });
65
- }
66
- return todoAssignmentsCopy;
67
- }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9Db250YWluZXJzL2Zsb3ctY29udGFpbmVyL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyx1QkFBdUIsQ0FBQyxRQUFRO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsUUFBUTtJQUNyQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0QsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuRSxJQUFJLFdBQVcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNoRixPQUFPLFlBQVksRUFBRSxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLFFBQVE7SUFDdkMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkYsSUFBSSxjQUFjLEdBQVUsRUFBRSxDQUFDO0lBQy9CLElBQUksVUFBVSxJ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VSxDQUFDLEVBQUU7UUFDckUsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDMUIsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsV0FBVyxFQUFFLEdBQUcseUJBQXlCLENBQUMsQ0FBQztJQUN2RSxJQUFJLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBRXRFLElBQUksV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdkMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3pELFVBQVUsQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUMsUUFBUSxDQUFDLElBQUksZUFBZSxDQUFDO1lBQ3ZFLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGhhc05vdGlmaWNhdGlvbk1lc3NhZ2VzKHBDb25uZWN0KSB7XG4gIHJldHVybiAhIXBDb25uZWN0LmdldFZhbHVlKCdjYXNlTWVzc2FnZXMnKTtcbn1cblxuZnVuY3Rpb24gaXNDYXNlV2lkZUxvY2FsQWN0aW9uKHBDb25uZWN0KSB7XG4gIGNvbnN0IHsgQ0FTRV9JTkZPIH0gPSBQQ29yZS5nZXRDb25zdGFudHMoKTtcbiAgY29uc3QgYWN0aW9uSUQgPSBwQ29ubmVjdC5nZXRWYWx1ZShDQVNFX0lORk8uQUNUSVZFX0FDVElPTl9JRCk7XG4gIGNvbnN0IGNhc2VBY3Rpb25zID0gcENvbm5lY3QuZ2V0VmFsdWUoQ0FTRV9JTkZPLkNBU0VfSU5GT19BQ1RJT05TKTtcbiAgaWYgKGNhc2VBY3Rpb25zICYmIGFjdGlvbklEKSB7XG4gICAgY29uc3QgYWN0aXZlQWN0aW9uID0gY2FzZUFjdGlvbnMuZmluZChjYXNlQWN0aW9uID0+IGNhc2VBY3Rpb24uSUQgPT09IGFjdGlvbklEKTtcbiAgICByZXR1cm4gYWN0aXZlQWN0aW9uPy50eXBlID09PSAnQ2FzZSc7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRDaGlsZENhc2VBc3NpZ25tZW50cyhwQ29ubmVjdCkge1xuICBjb25zdCBjaGlsZENhc2VzID0gcENvbm5lY3QuZ2V0VmFsdWUoUENvcmUuZ2V0Q29uc3RhbnRzKCkuQ0FTRV9JTkZPLkNISUxEX0FTU0lHTk1FTlRTKTtcbiAgbGV0IGFsbEFzc2lnbm1lbnRzOiBhbnlbXSA9IFtdO1xuICBpZiAoY2hpbGRDYXNlcyAmJiBjaGlsZENhc2VzLmxlbmd0aCA+IDApIHtcbiAgICBjaGlsZENhc2VzLmZvckVhY2goKHsgYXNzaWdubWVudHMgPSBbXSwgTmFtZSB9KSA9PiB7XG4gICAgICBjb25zdCBjaGlsZENhc2VBc3NpZ25tZW50cyA9IGFzc2lnbm1lbnRzLm1hcCgoYXNzaWdubWVudDogYW55KSA9PiAoe1xuICAgICAgICAuLi5hc3NpZ25tZW50LFxuICAgICAgICBjYXNlTmFtZTogTmFtZVxuICAgICAgfSkpO1xuICAgICAgYWxsQXNzaWdubWVudHMgPSBhbGxBc3NpZ25tZW50cy5jb25jYXQoY2hpbGRDYXNlQXNzaWdubWVudHMpO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBhbGxBc3NpZ25tZW50cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Fzc2lnbm1lbnRzKHBDb25uZWN0KSB7XG4gIGNvbnN0IHsgQ0FTRV9JTkZPIH0gPSBQQ29yZS5nZXRDb25zdGFudHMoKTtcbiAgY29uc3QgYXNzaWdubWVudHMgPSBwQ29ubmVjdC5nZXRWYWx1ZShDQVNFX0lORk8uRF9DQVNFX0FTU0lHTk1FTlRTX1JFU1VMVFMpO1xuICBjb25zdCBjaGlsZENhc2VzQXNzaWdubWVudHMgPSBnZXRDaGlsZENhc2VBc3NpZ25tZW50cyhwQ29ubmVjdCk7XG5cbiAgcmV0dXJuIGFzc2lnbm1lbnRzIHx8IGNoaWxkQ2FzZXNBc3NpZ25tZW50cz8ubGVuZ3RoIHx8IGlzQ2FzZVdpZGVMb2NhbEFjdGlvbihwQ29ubmVjdCk7XG59XG5cbmV4cG9ydCBjb25zdCBzaG93QmFubmVyID0gZ2V0UENvbm5lY3QgPT4ge1xuICBjb25zdCBwQ29ubmVjdCA9IGdldFBDb25uZWN0O1xuICByZXR1cm4gaGFzTm90aWZpY2F0aW9uTWVzc2FnZXMocENvbm5lY3QpIHx8ICFoYXNBc3NpZ25tZW50cyhwQ29ubmVjdCk7XG59O1xuXG5mdW5jdGlvbiBnZXRBY3RpdmVDYXNlQWN0aW9uTmFtZShwQ29ubmVjdCkge1xuICBjb25zdCBjYXNlQWN0aW9ucyA9IHBDb25uZWN0LmdldFZhbHVlKFBDb3JlLmdldENvbnN0YW50cygpLkNBU0VfSU5GTy5DQVNFX0lORk9fQUNUSU9OUyk7XG4gIGNvbnN0IGFjdGl2ZUFjdGlvbklEID0gcENvbm5lY3QuZ2V0VmFsdWUoUENvcmUuZ2V0Q29uc3RhbnRzKCkuQ0FTRV9JTkZPLkFDVElWRV9BQ1RJT05fSUQpO1xuICBjb25zdCBhY3RpdmVBY3Rpb24gPSBjYXNlQWN0aW9ucy5maW5kKGFjdGlvbiA9PiBhY3Rpb24uSUQgPT09IGFjdGl2ZUFjdGlvbklEKTtcbiAgcmV0dXJuIGFjdGl2ZUFjdGlvbj8ubmFtZSB8fCAnJztcbn1cblxuZnVuY3Rpb24gc2hvd1RvZG8ocENvbm5lY3QpIHtcbiAgY29uc3QgY2FzZVZpZXdNb2RlID0gcENvbm5lY3QuZ2V0VmFsdWUoJ2NvbnRleHRfZGF0YS5jYXNlVmlld01vZGUnKTtcbiAgcmV0dXJuIGNhc2VWaWV3TW9kZSAhPT0gJ3BlcmZvcm0nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9Eb0Fzc2lnbm1lbnRzKHBDb25uZWN0KSB7XG4gIGNvbnN0IGNhc2VBY3Rpb25zID0gcENvbm5lY3QuZ2V0VmFsdWUoUENvcmUuZ2V0Q29uc3RhbnRzKCkuQ0FTRV9JTkZPLkNBU0VfSU5GT19BQ1RJT05TKTtcbiAgY29uc3QgYXNzaWdubWVudExhYmVsID0gcENvbm5lY3QuZ2V0VmFsdWUoUENvcmUuZ2V0Q29uc3RhbnRzKCkuQ0FTRV9JTkZPLkFTU0lHTk1FTlRfTEFCRUwpO1xuICBjb25zdCBhc3NpZ25tZW50cyA9IHBDb25uZWN0LmdldFZhbHVlKFBDb3JlLmdldENvbnN0YW50cygpLkNBU0VfSU5GTy5EX0NBU0VfQVNTSUdOTUVOVFNfUkVTVUxUUykgfHwgW107XG4gIGNvbnN0IGNoaWxkQ2FzZXNBc3NpZ25tZW50cyA9IGdldENoaWxkQ2FzZUFzc2lnbm1lbnRzKHBDb25uZWN0KSB8fCBbXTtcbiAgbGV0IGNoaWxkQ2FzZXNBc3NpZ25tZW50c0NvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNoaWxkQ2FzZXNBc3NpZ25tZW50cykpO1xuXG4gIGNoaWxkQ2FzZXNBc3NpZ25tZW50c0NvcHkgPSBjaGlsZENhc2VzQXNzaWdubWVudHNDb3B5Lm1hcChhc3NpZ25tZW50ID0+IHtcbiAgICBhc3NpZ25tZW50LmlzQ2hpbGQgPSB0cnVlO1xuICAgIHJldHVybiBhc3NpZ25tZW50O1xuICB9KTtcblxuICBjb25zdCB0b2RvQXNzaWdubWVudHMgPSBbLi4uYXNzaWdubWVudHMsIC4uLmNoaWxkQ2FzZXNBc3NpZ25tZW50c0NvcHldO1xuICBsZXQgdG9kb0Fzc2lnbm1lbnRzQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodG9kb0Fzc2lnbm1lbnRzKSk7XG5cbiAgaWYgKGNhc2VBY3Rpb25zICYmICFzaG93VG9kbyhwQ29ubmVjdCkpIHtcbiAgICB0b2RvQXNzaWdubWVudHNDb3B5ID0gdG9kb0Fzc2lnbm1lbnRzQ29weS5tYXAoYXNzaWdubWVudCA9PiB7XG4gICAgICBhc3NpZ25tZW50Lm5hbWUgPSBnZXRBY3RpdmVDYXNlQWN0aW9uTmFtZShwQ29ubmVjdCkgfHwgYXNzaWdubWVudExhYmVsO1xuICAgICAgcmV0dXJuIGFzc2lnbm1lbnQ7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdG9kb0Fzc2lnbm1lbnRzQ29weTtcbn1cbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
6
- * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
7
- * is totally at your own risk.
8
- */
9
- // Right this is a skeleton, as Hybrid ViewContainer hasn't been implemented
10
- export class HybridViewContainerComponent {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HybridViewContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HybridViewContainerComponent, isStandalone: true, selector: "app-hybrid-view-container", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", displayOnlyFA$: "displayOnlyFA$" }, ngImport: i0, template: "<p>hybrid-view-container works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HybridViewContainerComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'app-hybrid-view-container', standalone: true, imports: [CommonModule], template: "<p>hybrid-view-container works!</p>\n" }]
17
- }], propDecorators: { pConn$: [{
18
- type: Input
19
- }], formGroup$: [{
20
- type: Input
21
- }], displayOnlyFA$: [{
22
- type: Input
23
- }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLXZpZXctY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9Db250YWluZXJzL2h5YnJpZC12aWV3LWNvbnRhaW5lci9oeWJyaWQtdmlldy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvaHlicmlkLXZpZXctY29udGFpbmVyL2h5YnJpZC12aWV3LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRy9DOzs7O0dBSUc7QUFFSCw0RUFBNEU7QUFTNUUsTUFBTSxPQUFPLDRCQUE0QjsrR0FBNUIsNEJBQTRCO21HQUE1Qiw0QkFBNEIsK0tDbkJ6Qyx1Q0FDQSx5RERnQlksWUFBWTs7NEZBRVgsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLDJCQUEyQixjQUd6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBR2QsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbi8vIFJpZ2h0IHRoaXMgaXMgYSBza2VsZXRvbiwgYXMgSHlicmlkIFZpZXdDb250YWluZXIgaGFzbid0IGJlZW4gaW1wbGVtZW50ZWRcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWh5YnJpZC12aWV3LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oeWJyaWQtdmlldy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oeWJyaWQtdmlldy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgSHlicmlkVmlld0NvbnRhaW5lckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRpc3BsYXlPbmx5RkEkOiBib29sZWFuO1xufVxuIiwiPHA+aHlicmlkLXZpZXctY29udGFpbmVyIHdvcmtzITwvcD5cbiJdfQ==
@@ -1,335 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import isEqual from 'fast-deep-equal';
4
- import { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';
5
- import { getBanners } from '../../../../_helpers/case-utils';
6
- import { ReferenceComponent } from '../../reference/reference.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../../../_bridge/angular-pconnect";
9
- import * as i2 from "../../../../_messages/progress-spinner.service";
10
- import * as i3 from "@angular/forms";
11
- import * as i4 from "@angular/common";
12
- /**
13
- * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
14
- * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
15
- * is totally at your own risk.
16
- */
17
- export class ModalViewContainerComponent {
18
- constructor(angularPConnect, ngZone, psService, fb) {
19
- this.angularPConnect = angularPConnect;
20
- this.ngZone = ngZone;
21
- this.psService = psService;
22
- this.fb = fb;
23
- // for when non modal
24
- this.modalVisibleChange = new EventEmitter();
25
- // Used with AngularPConnect
26
- this.angularPConnectData = {};
27
- this.title$ = '';
28
- this.bShowModal$ = false;
29
- this.oCaseInfo = {};
30
- // for causing a change on assignment
31
- this.updateToken$ = 0;
32
- this.routingInfoRef = {};
33
- this.bSubscribed = false;
34
- this.bShowCancelAlert$ = false;
35
- this.localeCategory = 'Data Object';
36
- this.isMultiRecord = false;
37
- this.actionsDialog = false;
38
- this.closeActionsDialog = () => {
39
- this.actionsDialog = true;
40
- // this.ngZone.run(() => {
41
- this.bShowModal$ = false;
42
- // for when non modal
43
- this.modalVisibleChange.emit(this.bShowModal$);
44
- this.oCaseInfo = {};
45
- // });
46
- };
47
- // create the formGroup
48
- this.formGroup$ = fb.group({ hideRequired: false });
49
- }
50
- ngOnInit() {
51
- // First thing in initialization is registering and subscribing to the AngularPConnect service
52
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
53
- const baseContext = this.pConn$.getContextName();
54
- const acName = this.pConn$.getContainerName();
55
- // for now, in general this should be overridden by updateSelf(), and not be blank
56
- if (this.itemKey$ === '') {
57
- this.itemKey$ = baseContext.concat('/').concat(acName);
58
- }
59
- const containerMgr = this.pConn$.getContainerManager();
60
- containerMgr.initializeContainers({
61
- type: 'multiple'
62
- });
63
- // const { CONTAINER_TYPE, PUB_SUB_EVENTS } = PCore.getConstants();
64
- this.angularPConnect.shouldComponentUpdate(this);
65
- this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
66
- }
67
- ngOnDestroy() {
68
- if (this.angularPConnectData.unsubscribeFn) {
69
- this.angularPConnectData.unsubscribeFn();
70
- }
71
- const { PUB_SUB_EVENTS } = PCore.getConstants();
72
- PCore.getPubSubUtils().unsubscribe(PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT, PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT /* Should be same unique string passed during subscription */);
73
- this.bSubscribed = false;
74
- }
75
- // Callback passed when subscribing to store change
76
- onStateChange() {
77
- // Should always check the bridge to see if the component should
78
- // update itself (re-render)
79
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
80
- // ONLY call updateSelf when the component should update
81
- if (bUpdateSelf) {
82
- this.updateSelf();
83
- }
84
- else if (this.bShowModal$) {
85
- // right now onlu get one updated when initial diaplay. So, once modal is up
86
- // let fall through and do a check with "compareCaseInfoIsDifferent" until fixed
87
- // this.updateSelf();
88
- }
89
- }
90
- // updateSelf
91
- updateSelf() {
92
- // routingInfo was added as component prop in populateAdditionalProps
93
- const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');
94
- this.routingInfoRef.current = routingInfo;
95
- let loadingInfo;
96
- try {
97
- // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'
98
- loadingInfo = this.pConn$.getLoadingStatus();
99
- }
100
- catch (ex) {
101
- /* empty */
102
- }
103
- // const configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
104
- this.stateProps$ = this.pConn$.getStateProps();
105
- this.banners = this.getBanners();
106
- if (!loadingInfo) {
107
- // turn off spinner
108
- // this.psService.sendMessage(false);
109
- }
110
- if (routingInfo && !loadingInfo /* && this.bUpdate */) {
111
- const currentOrder = routingInfo.accessedOrder;
112
- if (undefined == currentOrder) {
113
- return;
114
- }
115
- const currentItems = routingInfo.items;
116
- const { key, latestItem } = this.getKeyAndLatestItem(routingInfo);
117
- if (currentOrder.length > 0) {
118
- if (currentItems[key] && currentItems[key].view && Object.keys(currentItems[key].view).length > 0) {
119
- const currentItem = currentItems[key];
120
- const rootView = currentItem.view;
121
- const { context } = rootView.config;
122
- const config = { meta: rootView };
123
- config.options = {
124
- context: currentItem.context,
125
- hasForm: true,
126
- pageReference: context || this.pConn$.getPageReference()
127
- };
128
- if (!this.bSubscribed) {
129
- this.bSubscribed = true;
130
- const { PUB_SUB_EVENTS } = PCore.getConstants();
131
- PCore.getPubSubUtils().subscribe(PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT, payload => {
132
- this.showAlert(payload);
133
- }, PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT);
134
- }
135
- // let configObject = PCore.createPConnect(config);
136
- // THIS is where the ViewContainer creates a View
137
- // The config has meta.config.type = "view"
138
- this.createView(routingInfo, currentItem, latestItem, key);
139
- }
140
- }
141
- else {
142
- this.hideModal();
143
- }
144
- }
145
- }
146
- createView(routingInfo, currentItem, latestItem, key) {
147
- const configObject = this.getConfigObject(currentItem, null, false);
148
- const newComp = configObject?.getPConnect();
149
- // const newCompName = newComp.getComponentName();
150
- const caseInfo = newComp && newComp.getDataObject() && newComp.getDataObject().caseInfo ? newComp.getDataObject().caseInfo : null;
151
- // The metadata for pyDetails changed such that the "template": "CaseView"
152
- // is no longer a child of the created View but is in the created View's
153
- // config. So, we DON'T want to replace this.pConn$ since the created
154
- // component is a View (and not a ViewContainer). We now look for the
155
- // "template" type directly in the created component (newComp) and NOT
156
- // as a child of the newly created component.
157
- // console.log(`---> ModalViewContainer created new ${newCompName}`);
158
- // Use the newly created component (View) info but DO NOT replace
159
- // this ModalViewContainer's pConn$, etc.
160
- // Note that we're now using the newly created View's PConnect in the
161
- // ViewContainer HTML template to guide what's rendered similar to what
162
- // the Nebula/Constellation return of React.Fragment does
163
- // right now need to check caseInfo for changes, to trigger redraw, not getting
164
- // changes from angularPconnect except for first draw
165
- if (newComp && caseInfo && this.compareCaseInfoIsDifferent(caseInfo)) {
166
- this.psService.sendMessage(false);
167
- this.ngZone.run(() => {
168
- this.createdViewPConn$ = newComp;
169
- const newConfigProps = newComp.getConfigProps();
170
- this.templateName$ = 'template' in newConfigProps ? newConfigProps.template : '';
171
- const { actionName } = latestItem;
172
- const theNewCaseInfo = newComp.getCaseInfo();
173
- // const caseName = theNewCaseInfo.getName();
174
- const ID = theNewCaseInfo.getBusinessID() || theNewCaseInfo.getID();
175
- const caseTypeName = theNewCaseInfo.getCaseTypeName();
176
- const isDataObject = routingInfo.items[latestItem.context].resourceType === PCore.getConstants().RESOURCE_TYPES.DATA;
177
- const dataObjectAction = routingInfo.items[latestItem.context].resourceStatus;
178
- this.isMultiRecord = routingInfo.items[latestItem.context].isMultiRecordData;
179
- this.context$ = latestItem.context;
180
- this.title$ =
181
- isDataObject || this.isMultiRecord
182
- ? this.getModalHeading(dataObjectAction)
183
- : this.determineModalHeaderByAction(actionName, caseTypeName, ID, `${theNewCaseInfo?.getClassName()}!CASE!${theNewCaseInfo.getName()}`.toUpperCase());
184
- const bIsRefComponent = this.checkIfRefComponent(newComp);
185
- if (bIsRefComponent) {
186
- const newPConn = ReferenceComponent.normalizePConn(newComp);
187
- this.arChildren$ = ReferenceComponent.normalizePConnArray(newPConn.getChildren());
188
- }
189
- else {
190
- // update children with new view's children
191
- this.arChildren$ = newComp.getChildren();
192
- }
193
- this.bShowModal$ = true;
194
- // for when non modal
195
- this.modalVisibleChange.emit(this.bShowModal$);
196
- // save off itemKey to be used for finishAssignment, etc.
197
- this.itemKey$ = key;
198
- // cause a change for assignment
199
- this.updateToken$ = new Date().getTime();
200
- });
201
- }
202
- }
203
- hideModal() {
204
- if (this.bShowModal$) {
205
- // other code in Nebula/Constellation not needed currently, but if so later,
206
- // should put here
207
- }
208
- this.ngZone.run(() => {
209
- this.bShowModal$ = false;
210
- // for when non modal
211
- this.modalVisibleChange.emit(this.bShowModal$);
212
- this.oCaseInfo = {};
213
- });
214
- }
215
- getConfigObject(item, pConnect, isReverseCoexistence = false) {
216
- let config;
217
- if (isReverseCoexistence) {
218
- config = {
219
- options: {
220
- pageReference: pConnect?.getPageReference(),
221
- hasForm: true,
222
- containerName: pConnect?.getContainerName() || PCore.getConstants().MODAL
223
- }
224
- };
225
- return PCore.createPConnect(config);
226
- }
227
- if (item) {
228
- const { context, view, isBulkAction } = item;
229
- const target = PCore.getContainerUtils().getTargetFromContainerItemID(context);
230
- config = {
231
- meta: view,
232
- options: {
233
- context,
234
- pageReference: view.config.context || pConnect.getPageReference(),
235
- hasForm: true,
236
- ...(isBulkAction && { isBulkAction }),
237
- containerName: pConnect?.getContainerName() || PCore.getConstants().MODAL,
238
- target
239
- }
240
- };
241
- return PCore.createPConnect(config);
242
- }
243
- return null;
244
- }
245
- checkIfRefComponent(thePConn) {
246
- let bReturn = false;
247
- if (thePConn && thePConn.getComponentName() == 'reference') {
248
- bReturn = true;
249
- }
250
- return bReturn;
251
- }
252
- onAlertState(bData) {
253
- this.bAlertState = bData;
254
- this.bShowCancelAlert$ = false;
255
- if (this.bAlertState) {
256
- this.hideModal();
257
- }
258
- }
259
- showAlert(payload) {
260
- const { latestItem } = this.getKeyAndLatestItem(this.routingInfoRef.current);
261
- const { isModalAction } = payload;
262
- /*
263
- If we are in create stage full page mode, created a new case and trying to click on cancel button
264
- it will show two alert dialogs which is not expected. Hence isModalAction flag to avoid that.
265
- */
266
- if (latestItem && isModalAction && !this.actionsDialog) {
267
- const configObject = this.getConfigObject(latestItem, this.pConn$);
268
- this.ngZone.run(() => {
269
- this.cancelPConn$ = configObject?.getPConnect();
270
- this.bShowCancelAlert$ = true;
271
- });
272
- }
273
- }
274
- hasContainerItems(routingInfo) {
275
- if (routingInfo) {
276
- const { accessedOrder, items } = routingInfo;
277
- return accessedOrder && accessedOrder.length > 0 && items;
278
- }
279
- return false;
280
- }
281
- getKeyAndLatestItem(routinginfo) {
282
- if (this.hasContainerItems(routinginfo)) {
283
- const { accessedOrder, items } = routinginfo;
284
- const key = accessedOrder[accessedOrder.length - 1];
285
- const latestItem = items[key];
286
- return { key, latestItem };
287
- }
288
- return {};
289
- }
290
- compareCaseInfoIsDifferent(oCurrentCaseInfo) {
291
- let bRet = false;
292
- // fast-deep-equal version
293
- if (isEqual !== undefined) {
294
- bRet = !isEqual(this.oCaseInfo, oCurrentCaseInfo);
295
- }
296
- else {
297
- const sCurrnentCaseInfo = JSON.stringify(oCurrentCaseInfo);
298
- const sOldCaseInfo = JSON.stringify(this.oCaseInfo);
299
- // stringify compare version
300
- if (sCurrnentCaseInfo != sOldCaseInfo) {
301
- bRet = true;
302
- }
303
- }
304
- // if different, save off new case info
305
- if (bRet) {
306
- this.oCaseInfo = JSON.parse(JSON.stringify(oCurrentCaseInfo));
307
- }
308
- return bRet;
309
- }
310
- getBanners() {
311
- return getBanners({ target: this.itemKey$, ...this.stateProps$ });
312
- }
313
- getModalHeading(dataObjectAction) {
314
- return dataObjectAction === PCore.getConstants().RESOURCE_STATUS.CREATE
315
- ? this.localizedVal('Add Record', this.localeCategory)
316
- : this.localizedVal('Edit Record', this.localeCategory);
317
- }
318
- determineModalHeaderByAction(actionName, caseTypeName, ID, caseLocaleRef) {
319
- if (actionName) {
320
- return this.localizedVal(actionName, this.localeCategory);
321
- }
322
- return `${this.localizedVal('Create', this.localeCategory)} ${this.localizedVal(caseTypeName, undefined, caseLocaleRef)} (${ID})`;
323
- }
324
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalViewContainerComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.NgZone }, { token: i2.ProgressSpinnerService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
325
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ModalViewContainerComponent, isStandalone: true, selector: "app-modal-view-container", inputs: { pConn$: "pConn$" }, outputs: { modalVisibleChange: "modalVisibleChange" }, ngImport: i0, template: "<div id=\"dialog\" *ngIf=\"bShowModal$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-view-container-top\" id=\"{{ buildName$ }}\">\n <h3 *ngIf=\"title$ != ''\">{{ title$ }}</h3>\n <component-mapper\n name=\"Assignment\"\n [props]=\"{ pConn$: createdViewPConn$, formGroup$, arChildren$, itemKey$, isCreateStage$: true, updateToken$, isInModal$: true, banners }\"\n ></component-mapper>\n <div *ngIf=\"isMultiRecord\">\n <component-mapper\n name=\"ListViewActionButtons\"\n [props]=\"{ pConn$: createdViewPConn$, context$ }\"\n [outputEvents]=\"{ closeActionsDialog: closeActionsDialog }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"bShowCancelAlert$\">\n <component-mapper\n name=\"CancelAlert\"\n [props]=\"{ bShowAlert$: bShowCancelAlert$, pConn$: cancelPConn$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onAlertState$: onAlertState }\"\n ></component-mapper>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i4.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
326
- }
327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalViewContainerComponent, decorators: [{
328
- type: Component,
329
- args: [{ selector: 'app-modal-view-container', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div id=\"dialog\" *ngIf=\"bShowModal$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-view-container-top\" id=\"{{ buildName$ }}\">\n <h3 *ngIf=\"title$ != ''\">{{ title$ }}</h3>\n <component-mapper\n name=\"Assignment\"\n [props]=\"{ pConn$: createdViewPConn$, formGroup$, arChildren$, itemKey$, isCreateStage$: true, updateToken$, isInModal$: true, banners }\"\n ></component-mapper>\n <div *ngIf=\"isMultiRecord\">\n <component-mapper\n name=\"ListViewActionButtons\"\n [props]=\"{ pConn$: createdViewPConn$, context$ }\"\n [outputEvents]=\"{ closeActionsDialog: closeActionsDialog }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"bShowCancelAlert$\">\n <component-mapper\n name=\"CancelAlert\"\n [props]=\"{ bShowAlert$: bShowCancelAlert$, pConn$: cancelPConn$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onAlertState$: onAlertState }\"\n ></component-mapper>\n</div>\n" }]
330
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i0.NgZone }, { type: i2.ProgressSpinnerService }, { type: i3.FormBuilder }], propDecorators: { pConn$: [{
331
- type: Input
332
- }], modalVisibleChange: [{
333
- type: Output
334
- }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdmlldy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvbW9kYWwtdmlldy1jb250YWluZXIvbW9kYWwtdmlldy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvbW9kYWwtdmlldy1jb250YWluZXIvbW9kYWwtdmlldy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBR3RDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBRXpFOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8sMkJBQTJCO0lBdUN0QyxZQUNVLGVBQXVDLEVBQ3ZDLE1BQWMsRUFDZCxTQUFpQyxFQUNqQyxFQUFlO1FBSGYsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBeEN6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R0E5WFUsMkJBQTJCO21HQUEzQiwyQkFBMkIseUtDdkJ4Qyx1OUJBeUJBLDZFREpZLFlBQVksNktBQW1CLHdCQUF3Qjs7NEZBRXRELDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOytLQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBR0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgTmdab25lLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL19tZXNzYWdlcy9wcm9ncmVzcy1zcGlubmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IGdldEJhbm5lcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9faGVscGVycy9jYXNlLXV0aWxzJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcblxuLyoqXG4gKiBXQVJOSU5HOiAgSXQgaXMgbm90IGV4cGVjdGVkIHRoYXQgdGhpcyBmaWxlIHNob3VsZCBiZSBtb2RpZmllZC4gIEl0IGlzIHBhcnQgb2YgaW5mcmFzdHJ1Y3R1cmUgY29kZSB0aGF0IHdvcmtzIHdpdGhcbiAqIFJlZHV4IGFuZCBjcmVhdGlvbi91cGRhdGUgb2YgUmVkdXggY29udGFpbmVycyBhbmQgUENvbm5lY3QuICBNb2RpZnlpbmcgdGhpcyBjb2RlIGNvdWxkIGhhdmUgdW5kZXNpcmVhYmxlIHJlc3VsdHMgYW5kXG4gKiBpcyB0b3RhbGx5IGF0IHlvdXIgb3duIHJpc2suXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1vZGFsLXZpZXctY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLXZpZXctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtdmlldy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbFZpZXdDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIC8vIGZvciB3aGVuIG5vbiBtb2RhbFxuICBAT3V0cHV0KCkgbW9kYWxWaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuXG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcbiAgc3RhdGVQcm9wcyQ6IE9iamVjdDtcbiAgYmFubmVyczogYW55O1xuICB0ZW1wbGF0ZU5hbWUkOiBzdHJpbmc7XG4gIGJ1aWxkTmFtZSQ6IHN0cmluZztcbiAgY29udGV4dCQ6IHN0cmluZztcbiAgdGl0bGUkID0gJyc7XG4gIGJTaG93TW9kYWwkID0gZmFsc2U7XG4gIGl0ZW1LZXkkOiBzdHJpbmc7XG4gIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcbiAgb0Nhc2VJbmZvOiBPYmplY3QgPSB7fTtcblxuICAvLyBmb3IgY2F1c2luZyBhIGNoYW5nZSBvbiBhc3NpZ25tZW50XG4gIHVwZGF0ZVRva2VuJCA9IDA7XG5cbiAgcm91dGluZ0luZm9SZWY6IGFueSA9IHt9O1xuXG4gIC8vIGNyZWF0ZWQgb2JqZWN0IGlzIG5vdyBhIFZpZXcgd2l0aCBhIFRlbXBsYXRlXG4gIC8vICBVc2UgaXRzIFBDb25uZWN0IHRvIHJlbmRlciB0aGUgQ2FzZVZpZXc7IERPTidUIHJlcGxhY2UgdGhpcy5wQ29ubiRcbiAgY3JlYXRlZFZpZXdQQ29ubiQ6IGFueTtcblxuICBiU3Vic2NyaWJlZCA9IGZhbHNlO1xuICBjYW5jZWxQQ29ubiQ/OiB0eXBlb2YgUENvbm5lY3Q7XG4gIGJTaG93Q2FuY2VsQWxlcnQkID0gZmFsc2U7XG4gIGJBbGVydFN0YXRlOiBib29sZWFuO1xuICBsb2NhbGl6ZWRWYWw6IEZ1bmN0aW9uO1xuICBsb2NhbGVDYXRlZ29yeSA9ICdEYXRhIE9iamVjdCc7XG4gIGlzTXVsdGlSZWNvcmQgPSBmYWxzZTtcbiAgYWN0aW9uc0RpYWxvZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBwc1NlcnZpY2U6IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgLy8gY3JlYXRlIHRoZSBmb3JtR3JvdXBcbiAgICB0aGlzLmZvcm1Hcm91cCQgPSBmYi5ncm91cCh7IGhpZGVSZXF1aXJlZDogZmFsc2UgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcblxuICAgIGNvbnN0IGJhc2VDb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBjb25zdCBhY05hbWUgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJOYW1lKCk7XG5cbiAgICAvLyBmb3Igbm93LCBpbiBnZW5lcmFsIHRoaXMgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgdXBkYXRlU2VsZigpLCBhbmQgbm90IGJlIGJsYW5rXG4gICAgaWYgKHRoaXMuaXRlbUtleSQgPT09ICcnKSB7XG4gICAgICB0aGlzLml0ZW1LZXkkID0gYmFzZUNvbnRleHQuY29uY2F0KCcvJykuY29uY2F0KGFjTmFtZSk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyTWdyID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTWFuYWdlcigpO1xuXG4gICAgY29udGFpbmVyTWdyLmluaXRpYWxpemVDb250YWluZXJzKHtcbiAgICAgIHR5cGU6ICdtdWx0aXBsZSdcbiAgICB9KTtcblxuICAgIC8vIGNvbnN0IHsgQ09OVEFJTkVSX1RZUEUsIFBVQl9TVUJfRVZFTlRTIH0gPSBQQ29yZS5nZXRDb25zdGFudHMoKTtcblxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcbiAgICB0aGlzLmxvY2FsaXplZFZhbCA9IFBDb3JlLmdldExvY2FsZVV0aWxzKCkuZ2V0TG9jYWxlVmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBQVUJfU1VCX0VWRU5UUyB9ID0gUENvcmUuZ2V0Q29uc3RhbnRzKCk7XG5cbiAgICBQQ29yZS5nZXRQdWJTdWJVdGlscygpLnVuc3Vic2NyaWJlKFxuICAgICAgUFVCX1NVQl9FVkVOVFMuRVZFTlRfU0hPV19DQU5DRUxfQUxFUlQsXG4gICAgICBQVUJfU1VCX0VWRU5UUy5FVkVOVF9TSE9XX0NBTkNFTF9BTEVSVCAvKiBTaG91bGQgYmUgc2FtZSB1bmlxdWUgc3RyaW5nIHBhc3NlZCBkdXJpbmcgc3Vic2NyaXB0aW9uICovXG4gICAgKTtcbiAgICB0aGlzLmJTdWJzY3JpYmVkID0gZmFsc2U7XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5iU2hvd01vZGFsJCkge1xuICAgICAgLy8gcmlnaHQgbm93IG9ubHUgZ2V0IG9uZSB1cGRhdGVkIHdoZW4gaW5pdGlhbCBkaWFwbGF5LiAgU28sIG9uY2UgbW9kYWwgaXMgdXBcbiAgICAgIC8vIGxldCBmYWxsIHRocm91Z2ggYW5kIGRvIGEgY2hlY2sgd2l0aCBcImNvbXBhcmVDYXNlSW5mb0lzRGlmZmVyZW50XCIgdW50aWwgZml4ZWRcbiAgICAgIC8vIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVwZGF0ZVNlbGZcbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICAvLyByb3V0aW5nSW5mbyB3YXMgYWRkZWQgYXMgY29tcG9uZW50IHByb3AgaW4gcG9wdWxhdGVBZGRpdGlvbmFsUHJvcHNcbiAgICBjb25zdCByb3V0aW5nSW5mbyA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudFByb3AodGhpcywgJ3JvdXRpbmdJbmZvJyk7XG4gICAgdGhpcy5yb3V0aW5nSW5mb1JlZi5jdXJyZW50ID0gcm91dGluZ0luZm87XG5cbiAgICBsZXQgbG9hZGluZ0luZm87XG4gICAgdHJ5IHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgLSBQcm9wZXJ0eSAnZ2V0TG9hZGluZ1N0YXR1cycgaXMgcHJpdmF0ZSBhbmQgb25seSBhY2Nlc3NpYmxlIHdpdGhpbiBjbGFzcyAnQzExbkVudidcbiAgICAgIGxvYWRpbmdJbmZvID0gdGhpcy5wQ29ubiQuZ2V0TG9hZGluZ1N0YXR1cygpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cbiAgICAvLyBjb25zdCBjb25maWdQcm9wcyA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKTtcbiAgICB0aGlzLnN0YXRlUHJvcHMkID0gdGhpcy5wQ29ubiQuZ2V0U3RhdGVQcm9wcygpO1xuICAgIHRoaXMuYmFubmVycyA9IHRoaXMuZ2V0QmFubmVycygpO1xuXG4gICAgaWYgKCFsb2FkaW5nSW5mbykge1xuICAgICAgLy8gdHVybiBvZmYgc3Bpbm5lclxuICAgICAgLy8gdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgIH1cblxuICAgIGlmIChyb3V0aW5nSW5mbyAmJiAhbG9hZGluZ0luZm8gLyogJiYgdGhpcy5iVXBkYXRlICovKSB7XG4gICAgICBjb25zdCBjdXJyZW50T3JkZXIgPSByb3V0aW5nSW5mby5hY2Nlc3NlZE9yZGVyO1xuXG4gICAgICBpZiAodW5kZWZpbmVkID09IGN1cnJlbnRPcmRlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHJvdXRpbmdJbmZvLml0ZW1zO1xuXG4gICAgICBjb25zdCB7IGtleSwgbGF0ZXN0SXRlbSB9ID0gdGhpcy5nZXRLZXlBbmRMYXRlc3RJdGVtKHJvdXRpbmdJbmZvKTtcblxuICAgICAgaWYgKGN1cnJlbnRPcmRlci5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChjdXJyZW50SXRlbXNba2V5XSAmJiBjdXJyZW50SXRlbXNba2V5XS52aWV3ICYmIE9iamVjdC5rZXlzKGN1cnJlbnRJdGVtc1trZXldLnZpZXcpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGN1cnJlbnRJdGVtc1trZXldO1xuICAgICAgICAgIGNvbnN0IHJvb3RWaWV3ID0gY3VycmVudEl0ZW0udmlldztcbiAgICAgICAgICBjb25zdCB7IGNvbnRleHQgfSA9IHJvb3RWaWV3LmNvbmZpZztcbiAgICAgICAgICBjb25zdCBjb25maWc6IGFueSA9IHsgbWV0YTogcm9vdFZpZXcgfTtcbiAgICAgICAgICBjb25maWcub3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGN1cnJlbnRJdGVtLmNvbnRleHQsXG4gICAgICAgICAgICBoYXNGb3JtOiB0cnVlLFxuICAgICAgICAgICAgcGFnZVJlZmVyZW5jZTogY29udGV4dCB8fCB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKClcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYgKCF0aGlzLmJTdWJzY3JpYmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJTdWJzY3JpYmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHsgUFVCX1NVQl9FVkVOVFMgfSA9IFBDb3JlLmdldENvbnN0YW50cygpO1xuICAgICAgICAgICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIFBVQl9TVUJfRVZFTlRTLkVWRU5UX1NIT1dfQ0FOQ0VMX0FMRVJULFxuICAgICAgICAgICAgICBwYXlsb2FkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dBbGVydChwYXlsb2FkKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgUFVCX1NVQl9FVkVOVFMuRVZFTlRfU0hPV19DQU5DRUxfQUxFUlRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gbGV0IGNvbmZpZ09iamVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG5cbiAgICAgICAgICAvLyBUSElTIGlzIHdoZXJlIHRoZSBWaWV3Q29udGFpbmVyIGNyZWF0ZXMgYSBWaWV3XG4gICAgICAgICAgLy8gVGhlIGNvbmZpZyBoYXMgbWV0YS5jb25maWcudHlwZSA9IFwidmlld1wiXG4gICAgICAgICAgdGhpcy5jcmVhdGVWaWV3KHJvdXRpbmdJbmZvLCBjdXJyZW50SXRlbSwgbGF0ZXN0SXRlbSwga2V5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oaWRlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjcmVhdGVWaWV3KHJvdXRpbmdJbmZvLCBjdXJyZW50SXRlbSwgbGF0ZXN0SXRlbSwga2V5KSB7XG4gICAgY29uc3QgY29uZmlnT2JqZWN0ID0gdGhpcy5nZXRDb25maWdPYmplY3QoY3VycmVudEl0ZW0sIG51bGwsIGZhbHNlKTtcbiAgICBjb25zdCBuZXdDb21wID0gY29uZmlnT2JqZWN0Py5nZXRQQ29ubmVjdCgpO1xuICAgIC8vIGNvbnN0IG5ld0NvbXBOYW1lID0gbmV3Q29tcC5nZXRDb21wb25lbnROYW1lKCk7XG4gICAgY29uc3QgY2FzZUluZm8gPSBuZXdDb21wICYmIG5ld0NvbXAuZ2V0RGF0YU9iamVjdCgpICYmIG5ld0NvbXAuZ2V0RGF0YU9iamVjdCgpLmNhc2VJbmZvID8gbmV3Q29tcC5nZXREYXRhT2JqZWN0KCkuY2FzZUluZm8gOiBudWxsO1xuICAgIC8vIFRoZSBtZXRhZGF0YSBmb3IgcHlEZXRhaWxzIGNoYW5nZWQgc3VjaCB0aGF0IHRoZSBcInRlbXBsYXRlXCI6IFwiQ2FzZVZpZXdcIlxuICAgIC8vICBpcyBubyBsb25nZXIgYSBjaGlsZCBvZiB0aGUgY3JlYXRlZCBWaWV3IGJ1dCBpcyBpbiB0aGUgY3JlYXRlZCBWaWV3J3NcbiAgICAvLyAgY29uZmlnLiBTbywgd2UgRE9OJ1Qgd2FudCB0byByZXBsYWNlIHRoaXMucENvbm4kIHNpbmNlIHRoZSBjcmVhdGVkXG4gICAgLy8gIGNvbXBvbmVudCBpcyBhIFZpZXcgKGFuZCBub3QgYSBWaWV3Q29udGFpbmVyKS4gV2Ugbm93IGxvb2sgZm9yIHRoZVxuICAgIC8vICBcInRlbXBsYXRlXCIgdHlwZSBkaXJlY3RseSBpbiB0aGUgY3JlYXRlZCBjb21wb25lbnQgKG5ld0NvbXApIGFuZCBOT1RcbiAgICAvLyAgYXMgYSBjaGlsZCBvZiB0aGUgbmV3bHkgY3JlYXRlZCBjb21wb25lbnQuXG4gICAgLy8gY29uc29sZS5sb2coYC0tLT4gTW9kYWxWaWV3Q29udGFpbmVyIGNyZWF0ZWQgbmV3ICR7bmV3Q29tcE5hbWV9YCk7XG5cbiAgICAvLyBVc2UgdGhlIG5ld2x5IGNyZWF0ZWQgY29tcG9uZW50IChWaWV3KSBpbmZvIGJ1dCBETyBOT1QgcmVwbGFjZVxuICAgIC8vICB0aGlzIE1vZGFsVmlld0NvbnRhaW5lcidzIHBDb25uJCwgZXRjLlxuICAgIC8vICBOb3RlIHRoYXQgd2UncmUgbm93IHVzaW5nIHRoZSBuZXdseSBjcmVhdGVkIFZpZXcncyBQQ29ubmVjdCBpbiB0aGVcbiAgICAvLyAgVmlld0NvbnRhaW5lciBIVE1MIHRlbXBsYXRlIHRvIGd1aWRlIHdoYXQncyByZW5kZXJlZCBzaW1pbGFyIHRvIHdoYXRcbiAgICAvLyAgdGhlIE5lYnVsYS9Db25zdGVsbGF0aW9uIHJldHVybiBvZiBSZWFjdC5GcmFnbWVudCBkb2VzXG5cbiAgICAvLyByaWdodCBub3cgbmVlZCB0byBjaGVjayBjYXNlSW5mbyBmb3IgY2hhbmdlcywgdG8gdHJpZ2dlciByZWRyYXcsIG5vdCBnZXR0aW5nXG4gICAgLy8gY2hhbmdlcyBmcm9tIGFuZ3VsYXJQY29ubmVjdCBleGNlcHQgZm9yIGZpcnN0IGRyYXdcbiAgICBpZiAobmV3Q29tcCAmJiBjYXNlSW5mbyAmJiB0aGlzLmNvbXBhcmVDYXNlSW5mb0lzRGlmZmVyZW50KGNhc2VJbmZvKSkge1xuICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuXG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZWRWaWV3UENvbm4kID0gbmV3Q29tcDtcbiAgICAgICAgY29uc3QgbmV3Q29uZmlnUHJvcHMgPSBuZXdDb21wLmdldENvbmZpZ1Byb3BzKCk7XG4gICAgICAgIHRoaXMudGVtcGxhdGVOYW1lJCA9ICd0ZW1wbGF0ZScgaW4gbmV3Q29uZmlnUHJvcHMgPyAobmV3Q29uZmlnUHJvcHMudGVtcGxhdGUgYXMgc3RyaW5nKSA6ICcnO1xuXG4gICAgICAgIGNvbnN0IHsgYWN0aW9uTmFtZSB9ID0gbGF0ZXN0SXRlbTtcbiAgICAgICAgY29uc3QgdGhlTmV3Q2FzZUluZm8gPSBuZXdDb21wLmdldENhc2VJbmZvKCk7XG4gICAgICAgIC8vIGNvbnN0IGNhc2VOYW1lID0gdGhlTmV3Q2FzZUluZm8uZ2V0TmFtZSgpO1xuICAgICAgICBjb25zdCBJRCA9IHRoZU5ld0Nhc2VJbmZvLmdldEJ1c2luZXNzSUQoKSB8fCB0aGVOZXdDYXNlSW5mby5nZXRJRCgpO1xuXG4gICAgICAgIGNvbnN0IGNhc2VUeXBlTmFtZSA9IHRoZU5ld0Nhc2VJbmZvLmdldENhc2VUeXBlTmFtZSgpO1xuICAgICAgICBjb25zdCBpc0RhdGFPYmplY3QgPSByb3V0aW5nSW5mby5pdGVtc1tsYXRlc3RJdGVtLmNvbnRleHRdLnJlc291cmNlVHlwZSA9PT0gUENvcmUuZ2V0Q29uc3RhbnRzKCkuUkVTT1VSQ0VfVFlQRVMuREFUQTtcbiAgICAgICAgY29uc3QgZGF0YU9iamVjdEFjdGlvbiA9IHJvdXRpbmdJbmZvLml0ZW1zW2xhdGVzdEl0ZW0uY29udGV4dF0ucmVzb3VyY2VTdGF0dXM7XG4gICAgICAgIHRoaXMuaXNNdWx0aVJlY29yZCA9IHJvdXRpbmdJbmZvLml0ZW1zW2xhdGVzdEl0ZW0uY29udGV4dF0uaXNNdWx0aVJlY29yZERhdGE7XG4gICAgICAgIHRoaXMuY29udGV4dCQgPSBsYXRlc3RJdGVtLmNvbnRleHQ7XG4gICAgICAgIHRoaXMudGl0bGUkID1cbiAgICAgICAgICBpc0RhdGFPYmplY3QgfHwgdGhpcy5pc011bHRpUmVjb3JkXG4gICAgICAgICAgICA/IHRoaXMuZ2V0TW9kYWxIZWFkaW5nKGRhdGFPYmplY3RBY3Rpb24pXG4gICAgICAgICAgICA6IHRoaXMuZGV0ZXJtaW5lTW9kYWxIZWFkZXJCeUFjdGlvbihcbiAgICAgICAgICAgICAgICBhY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgIGNhc2VUeXBlTmFtZSxcbiAgICAgICAgICAgICAgICBJRCxcbiAgICAgICAgICAgICAgICBgJHt0aGVOZXdDYXNlSW5mbz8uZ2V0Q2xhc3NOYW1lKCl9IUNBU0UhJHt0aGVOZXdDYXNlSW5mby5nZXROYW1lKCl9YC50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgYklzUmVmQ29tcG9uZW50ID0gdGhpcy5jaGVja0lmUmVmQ29tcG9uZW50KG5ld0NvbXApO1xuXG4gICAgICAgIGlmIChiSXNSZWZDb21wb25lbnQpIHtcbiAgICAgICAgICBjb25zdCBuZXdQQ29ubiA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubihuZXdDb21wKTtcbiAgICAgICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uQXJyYXkobmV3UENvbm4uZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdXBkYXRlIGNoaWxkcmVuIHdpdGggbmV3IHZpZXcncyBjaGlsZHJlblxuICAgICAgICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBuZXdDb21wLmdldENoaWxkcmVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJTaG93TW9kYWwkID0gdHJ1ZTtcblxuICAgICAgICAvLyBmb3Igd2hlbiBub24gbW9kYWxcbiAgICAgICAgdGhpcy5tb2RhbFZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLmJTaG93TW9kYWwkKTtcblxuICAgICAgICAvLyBzYXZlIG9mZiBpdGVtS2V5IHRvIGJlIHVzZWQgZm9yIGZpbmlzaEFzc2lnbm1lbnQsIGV0Yy5cbiAgICAgICAgdGhpcy5pdGVtS2V5JCA9IGtleTtcblxuICAgICAgICAvLyBjYXVzZSBhIGNoYW5nZSBmb3IgYXNzaWdubWVudFxuICAgICAgICB0aGlzLnVwZGF0ZVRva2VuJCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaGlkZU1vZGFsKCkge1xuICAgIGlmICh0aGlzLmJTaG93TW9kYWwkKSB7XG4gICAgICAvLyBvdGhlciBjb2RlIGluIE5lYnVsYS9Db25zdGVsbGF0aW9uIG5vdCBuZWVkZWQgY3VycmVudGx5LCBidXQgaWYgc28gbGF0ZXIsXG4gICAgICAvLyBzaG91bGQgcHV0IGhlcmVcbiAgICB9XG5cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5iU2hvd01vZGFsJCA9IGZhbHNlO1xuXG4gICAgICAvLyBmb3Igd2hlbiBub24gbW9kYWxcbiAgICAgIHRoaXMubW9kYWxWaXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5iU2hvd01vZGFsJCk7XG5cbiAgICAgIHRoaXMub0Nhc2VJbmZvID0ge307XG4gICAgfSk7XG4gIH1cblxuICBnZXRDb25maWdPYmplY3QoaXRlbSwgcENvbm5lY3QsIGlzUmV2ZXJzZUNvZXhpc3RlbmNlID0gZmFsc2UpIHtcbiAgICBsZXQgY29uZmlnO1xuICAgIGlmIChpc1JldmVyc2VDb2V4aXN0ZW5jZSkge1xuICAgICAgY29uZmlnID0ge1xuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgcGFnZVJlZmVyZW5jZTogcENvbm5lY3Q/LmdldFBhZ2VSZWZlcmVuY2UoKSxcbiAgICAgICAgICBoYXNGb3JtOiB0cnVlLFxuICAgICAgICAgIGNvbnRhaW5lck5hbWU6IHBDb25uZWN0Py5nZXRDb250YWluZXJOYW1lKCkgfHwgUENvcmUuZ2V0Q29uc3RhbnRzKCkuTU9EQUxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiBQQ29yZS5jcmVhdGVQQ29ubmVjdChjb25maWcpO1xuICAgIH1cbiAgICBpZiAoaXRlbSkge1xuICAgICAgY29uc3QgeyBjb250ZXh0LCB2aWV3LCBpc0J1bGtBY3Rpb24gfSA9IGl0ZW07XG4gICAgICBjb25zdCB0YXJnZXQgPSBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLmdldFRhcmdldEZyb21Db250YWluZXJJdGVtSUQoY29udGV4dCk7XG4gICAgICBjb25maWcgPSB7XG4gICAgICAgIG1ldGE6IHZpZXcsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIHBhZ2VSZWZlcmVuY2U6IHZpZXcuY29uZmlnLmNvbnRleHQgfHwgcENvbm5lY3QuZ2V0UGFnZVJlZmVyZW5jZSgpLFxuICAgICAgICAgIGhhc0Zvcm06IHRydWUsXG4gICAgICAgICAgLi4uKGlzQnVsa0FjdGlvbiAmJiB7IGlzQnVsa0FjdGlvbiB9KSxcbiAgICAgICAgICBjb250YWluZXJOYW1lOiBwQ29ubmVjdD8uZ2V0Q29udGFpbmVyTmFtZSgpIHx8IFBDb3JlLmdldENvbnN0YW50cygpLk1PREFMLFxuICAgICAgICAgIHRhcmdldFxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcmV0dXJuIFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY2hlY2tJZlJlZkNvbXBvbmVudCh0aGVQQ29ubjogYW55KTogYm9vbGVhbiB7XG4gICAgbGV0IGJSZXR1cm4gPSBmYWxzZTtcbiAgICBpZiAodGhlUENvbm4gJiYgdGhlUENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpID09ICdyZWZlcmVuY2UnKSB7XG4gICAgICBiUmV0dXJuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYlJldHVybjtcbiAgfVxuXG4gIG9uQWxlcnRTdGF0ZShiRGF0YTogYm9vbGVhbikge1xuICAgIHRoaXMuYkFsZXJ0U3RhdGUgPSBiRGF0YTtcbiAgICB0aGlzLmJTaG93Q2FuY2VsQWxlcnQkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuYkFsZXJ0U3RhdGUpIHtcbiAgICAgIHRoaXMuaGlkZU1vZGFsKCk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0FsZXJ0KHBheWxvYWQpIHtcbiAgICBjb25zdCB7IGxhdGVzdEl0ZW0gfSA9IHRoaXMuZ2V0S2V5QW5kTGF0ZXN0SXRlbSh0aGlzLnJvdXRpbmdJbmZvUmVmLmN1cnJlbnQpO1xuICAgIGNvbnN0IHsgaXNNb2RhbEFjdGlvbiB9ID0gcGF5bG9hZDtcblxuICAgIC8qXG4gICAgICBJZiB3ZSBhcmUgaW4gY3JlYXRlIHN0YWdlIGZ1bGwgcGFnZSBtb2RlLCBjcmVhdGVkIGEgbmV3IGNhc2UgYW5kIHRyeWluZyB0byBjbGljayBvbiBjYW5jZWwgYnV0dG9uXG4gICAgICBpdCB3aWxsIHNob3cgdHdvIGFsZXJ0IGRpYWxvZ3Mgd2hpY2ggaXMgbm90IGV4cGVjdGVkLiBIZW5jZSBpc01vZGFsQWN0aW9uIGZsYWcgdG8gYXZvaWQgdGhhdC5cbiAgICAqL1xuICAgIGlmIChsYXRlc3RJdGVtICYmIGlzTW9kYWxBY3Rpb24gJiYgIXRoaXMuYWN0aW9uc0RpYWxvZykge1xuICAgICAgY29uc3QgY29uZmlnT2JqZWN0ID0gdGhpcy5nZXRDb25maWdPYmplY3QobGF0ZXN0SXRlbSwgdGhpcy5wQ29ubiQpO1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5jYW5jZWxQQ29ubiQgPSBjb25maWdPYmplY3Q/LmdldFBDb25uZWN0KCk7XG4gICAgICAgIHRoaXMuYlNob3dDYW5jZWxBbGVydCQgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaGFzQ29udGFpbmVySXRlbXMocm91dGluZ0luZm8pIHtcbiAgICBpZiAocm91dGluZ0luZm8pIHtcbiAgICAgIGNvbnN0IHsgYWNjZXNzZWRPcmRlciwgaXRlbXMgfSA9IHJvdXRpbmdJbmZvO1xuICAgICAgcmV0dXJuIGFjY2Vzc2VkT3JkZXIgJiYgYWNjZXNzZWRPcmRlci5sZW5ndGggPiAwICYmIGl0ZW1zO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRLZXlBbmRMYXRlc3RJdGVtKHJvdXRpbmdpbmZvKSB7XG4gICAgaWYgKHRoaXMuaGFzQ29udGFpbmVySXRlbXMocm91dGluZ2luZm8pKSB7XG4gICAgICBjb25zdCB7IGFjY2Vzc2VkT3JkZXIsIGl0ZW1zIH0gPSByb3V0aW5naW5mbztcbiAgICAgIGNvbnN0IGtleSA9IGFjY2Vzc2VkT3JkZXJbYWNjZXNzZWRPcmRlci5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IGxhdGVzdEl0ZW0gPSBpdGVtc1trZXldO1xuICAgICAgcmV0dXJuIHsga2V5LCBsYXRlc3RJdGVtIH07XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbXBhcmVDYXNlSW5mb0lzRGlmZmVyZW50KG9DdXJyZW50Q2FzZUluZm86IE9iamVjdCk6IGJvb2xlYW4ge1xuICAgIGxldCBiUmV0ID0gZmFsc2U7XG5cbiAgICAvLyBmYXN0LWRlZXAtZXF1YWwgdmVyc2lvblxuICAgIGlmIChpc0VxdWFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGJSZXQgPSAhaXNFcXVhbCh0aGlzLm9DYXNlSW5mbywgb0N1cnJlbnRDYXNlSW5mbyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNDdXJybmVudENhc2VJbmZvID0gSlNPTi5zdHJpbmdpZnkob0N1cnJlbnRDYXNlSW5mbyk7XG4gICAgICBjb25zdCBzT2xkQ2FzZUluZm8gPSBKU09OLnN0cmluZ2lmeSh0aGlzLm9DYXNlSW5mbyk7XG4gICAgICAvLyBzdHJpbmdpZnkgY29tcGFyZSB2ZXJzaW9uXG4gICAgICBpZiAoc0N1cnJuZW50Q2FzZUluZm8gIT0gc09sZENhc2VJbmZvKSB7XG4gICAgICAgIGJSZXQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlmIGRpZmZlcmVudCwgc2F2ZSBvZmYgbmV3IGNhc2UgaW5mb1xuICAgIGlmIChiUmV0KSB7XG4gICAgICB0aGlzLm9DYXNlSW5mbyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob0N1cnJlbnRDYXNlSW5mbykpO1xuICAgIH1cblxuICAgIHJldHVybiBiUmV0O1xuICB9XG5cbiAgZ2V0QmFubmVycygpIHtcbiAgICByZXR1cm4gZ2V0QmFubmVycyh7IHRhcmdldDogdGhpcy5pdGVtS2V5JCwgLi4udGhpcy5zdGF0ZVByb3BzJCB9KTtcbiAgfVxuXG4gIGdldE1vZGFsSGVhZGluZyhkYXRhT2JqZWN0QWN0aW9uKSB7XG4gICAgcmV0dXJuIGRhdGFPYmplY3RBY3Rpb24gPT09IFBDb3JlLmdldENvbnN0YW50cygpLlJFU09VUkNFX1NUQVRVUy5DUkVBVEVcbiAgICAgID8gdGhpcy5sb2NhbGl6ZWRWYWwoJ0FkZCBSZWNvcmQnLCB0aGlzLmxvY2FsZUNhdGVnb3J5KVxuICAgICAgOiB0aGlzLmxvY2FsaXplZFZhbCgnRWRpdCBSZWNvcmQnLCB0aGlzLmxvY2FsZUNhdGVnb3J5KTtcbiAgfVxuXG4gIGRldGVybWluZU1vZGFsSGVhZGVyQnlBY3Rpb24oYWN0aW9uTmFtZSwgY2FzZVR5cGVOYW1lLCBJRCwgY2FzZUxvY2FsZVJlZikge1xuICAgIGlmIChhY3Rpb25OYW1lKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGl6ZWRWYWwoYWN0aW9uTmFtZSwgdGhpcy5sb2NhbGVDYXRlZ29yeSk7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmxvY2FsaXplZFZhbCgnQ3JlYXRlJywgdGhpcy5sb2NhbGVDYXRlZ29yeSl9ICR7dGhpcy5sb2NhbGl6ZWRWYWwoY2FzZVR5cGVOYW1lLCB1bmRlZmluZWQsIGNhc2VMb2NhbGVSZWYpfSAoJHtJRH0pYDtcbiAgfVxuXG4gIGNsb3NlQWN0aW9uc0RpYWxvZyA9ICgpID0+IHtcbiAgICB0aGlzLmFjdGlvbnNEaWFsb2cgPSB0cnVlO1xuICAgIC8vIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgdGhpcy5iU2hvd01vZGFsJCA9IGZhbHNlO1xuXG4gICAgLy8gZm9yIHdoZW4gbm9uIG1vZGFsXG4gICAgdGhpcy5tb2RhbFZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLmJTaG93TW9kYWwkKTtcblxuICAgIHRoaXMub0Nhc2VJbmZvID0ge307XG4gICAgLy8gfSk7XG4gIH07XG59XG4iLCI8ZGl2IGlkPVwiZGlhbG9nXCIgKm5nSWY9XCJiU2hvd01vZGFsJFwiIGNsYXNzPVwicHNkay1kaWFsb2ctYmFja2dyb3VuZFwiPlxuICA8ZGl2IGNsYXNzPVwicHNkay1tb2RhbC12aWV3LWNvbnRhaW5lci10b3BcIiBpZD1cInt7IGJ1aWxkTmFtZSQgfX1cIj5cbiAgICA8aDMgKm5nSWY9XCJ0aXRsZSQgIT0gJydcIj57eyB0aXRsZSQgfX08L2gzPlxuICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICBuYW1lPVwiQXNzaWdubWVudFwiXG4gICAgICBbcHJvcHNdPVwieyBwQ29ubiQ6IGNyZWF0ZWRWaWV3UENvbm4kLCBmb3JtR3JvdXAkLCBhckNoaWxkcmVuJCwgaXRlbUtleSQsIGlzQ3JlYXRlU3RhZ2UkOiB0cnVlLCB1cGRhdGVUb2tlbiQsIGlzSW5Nb2RhbCQ6IHRydWUsIGJhbm5lcnMgfVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNNdWx0aVJlY29yZFwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgbmFtZT1cIkxpc3RWaWV3QWN0aW9uQnV0dG9uc1wiXG4gICAgICAgIFtwcm9wc109XCJ7IHBDb25uJDogY3JlYXRlZFZpZXdQQ29ubiQsIGNvbnRleHQkIH1cIlxuICAgICAgICBbb3V0cHV0RXZlbnRzXT1cInsgY2xvc2VBY3Rpb25zRGlhbG9nOiBjbG9zZUFjdGlvbnNEaWFsb2cgfVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiYlNob3dDYW5jZWxBbGVydCRcIj5cbiAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICBuYW1lPVwiQ2FuY2VsQWxlcnRcIlxuICAgIFtwcm9wc109XCJ7IGJTaG93QWxlcnQkOiBiU2hvd0NhbmNlbEFsZXJ0JCwgcENvbm4kOiBjYW5jZWxQQ29ubiQgfVwiXG4gICAgW3BhcmVudF09XCJ0aGlzXCJcbiAgICBbb3V0cHV0RXZlbnRzXT1cInsgb25BbGVydFN0YXRlJDogb25BbGVydFN0YXRlIH1cIlxuICA+PC9jb21wb25lbnQtbWFwcGVyPlxuPC9kaXY+XG4iXX0=
@@ -1,32 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
5
- * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
6
- * is totally at your own risk.
7
- */
8
- // Right this is a skeleton, as Preview hasn't been implemented
9
- export class PreviewViewContainerComponent {
10
- ngOnInit() {
11
- const containerMgr = this.pConn$.getContainerManager();
12
- containerMgr.initializeContainers({
13
- type: 'multiple'
14
- });
15
- }
16
- buildName() {
17
- const context = this.pConn$.getContextName();
18
- let viewContainerName = this.pConn$.getComponentName();
19
- if (!viewContainerName)
20
- viewContainerName = '';
21
- return `${context.toUpperCase()}/${viewContainerName.toUpperCase()}`;
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreviewViewContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PreviewViewContainerComponent, isStandalone: true, selector: "app-preview-view-container", inputs: { pConn$: "pConn$" }, ngImport: i0, template: "<div class=\"psdk-preview\"></div>\n", styles: [""] }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreviewViewContainerComponent, decorators: [{
27
- type: Component,
28
- args: [{ selector: 'app-preview-view-container', standalone: true, template: "<div class=\"psdk-preview\"></div>\n" }]
29
- }], propDecorators: { pConn$: [{
30
- type: Input
31
- }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy12aWV3LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvaW5mcmEvQ29udGFpbmVycy9wcmV2aWV3LXZpZXctY29udGFpbmVyL3ByZXZpZXctdmlldy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvcHJldmlldy12aWV3LWNvbnRhaW5lci9wcmV2aWV3LXZpZXctY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6RDs7OztHQUlHO0FBRUgsK0RBQStEO0FBUS9ELE1BQU0sT0FBTyw2QkFBNkI7SUFHeEMsUUFBUTtRQUNOLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUV2RCxZQUFZLENBQUMsb0JBQW9CLENBQUM7WUFDaEMsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzdDLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUI7WUFBRSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDL0MsT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7K0dBakJVLDZCQUE2QjttR0FBN0IsNkJBQTZCLG9IQ2hCMUMsc0NBQ0E7OzRGRGVhLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSw0QkFBNEIsY0FHMUIsSUFBSTs4QkFHUCxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBXQVJOSU5HOiAgSXQgaXMgbm90IGV4cGVjdGVkIHRoYXQgdGhpcyBmaWxlIHNob3VsZCBiZSBtb2RpZmllZC4gIEl0IGlzIHBhcnQgb2YgaW5mcmFzdHJ1Y3R1cmUgY29kZSB0aGF0IHdvcmtzIHdpdGhcbiAqIFJlZHV4IGFuZCBjcmVhdGlvbi91cGRhdGUgb2YgUmVkdXggY29udGFpbmVycyBhbmQgUENvbm5lY3QuICBNb2RpZnlpbmcgdGhpcyBjb2RlIGNvdWxkIGhhdmUgdW5kZXNpcmVhYmxlIHJlc3VsdHMgYW5kXG4gKiBpcyB0b3RhbGx5IGF0IHlvdXIgb3duIHJpc2suXG4gKi9cblxuLy8gUmlnaHQgdGhpcyBpcyBhIHNrZWxldG9uLCBhcyBQcmV2aWV3IGhhc24ndCBiZWVuIGltcGxlbWVudGVkXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcmV2aWV3LXZpZXctY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXZpZXctdmlldy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcmV2aWV3LXZpZXctY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUHJldmlld1ZpZXdDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJNZ3IgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJNYW5hZ2VyKCk7XG5cbiAgICBjb250YWluZXJNZ3IuaW5pdGlhbGl6ZUNvbnRhaW5lcnMoe1xuICAgICAgdHlwZTogJ211bHRpcGxlJ1xuICAgIH0pO1xuICB9XG5cbiAgYnVpbGROYW1lKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpO1xuICAgIGxldCB2aWV3Q29udGFpbmVyTmFtZSA9IHRoaXMucENvbm4kLmdldENvbXBvbmVudE5hbWUoKTtcblxuICAgIGlmICghdmlld0NvbnRhaW5lck5hbWUpIHZpZXdDb250YWluZXJOYW1lID0gJyc7XG4gICAgcmV0dXJuIGAke2NvbnRleHQudG9VcHBlckNhc2UoKX0vJHt2aWV3Q29udGFpbmVyTmFtZS50b1VwcGVyQ2FzZSgpfWA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwc2RrLXByZXZpZXdcIj48L2Rpdj5cbiJdfQ==
@@ -1,22 +0,0 @@
1
- export const addContainerItem = pConnect => {
2
- const containerManager = pConnect.getContainerManager();
3
- const context = pConnect.getContextName();
4
- containerManager.addContainerItem({
5
- context,
6
- semanticURL: ''
7
- });
8
- };
9
- export const configureBrowserBookmark = pConnect => {
10
- const context = pConnect.getContextName();
11
- const containerName = pConnect.getContainerName();
12
- const navPages = pConnect.getValue('pyPortal.pyPrimaryNavPages');
13
- const defaultViewLabel = Array.isArray(navPages) && navPages[0] ? navPages[0].pyLabel : '';
14
- PCore.configureForBrowserBookmark({
15
- context,
16
- containerName,
17
- acName: containerName,
18
- semanticURL: '',
19
- defaultViewLabel
20
- });
21
- };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvdmlldy1jb250YWluZXIvaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxFQUFFO0lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDeEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1FBQ2hDLE9BQU87UUFDUCxXQUFXLEVBQUUsRUFBRTtLQUNoQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQUMsRUFBRTtJQUNqRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDbEQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRixLQUFLLENBQUMsMkJBQTJCLENBQUM7UUFDaEMsT0FBTztRQUNQLGFBQWE7UUFDYixNQUFNLEVBQUUsYUFBYTtRQUNyQixXQUFXLEVBQUUsRUFBRTtRQUNmLGdCQUFnQjtLQUNqQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgYWRkQ29udGFpbmVySXRlbSA9IHBDb25uZWN0ID0+IHtcbiAgY29uc3QgY29udGFpbmVyTWFuYWdlciA9IHBDb25uZWN0LmdldENvbnRhaW5lck1hbmFnZXIoKTtcbiAgY29uc3QgY29udGV4dCA9IHBDb25uZWN0LmdldENvbnRleHROYW1lKCk7XG4gIGNvbnRhaW5lck1hbmFnZXIuYWRkQ29udGFpbmVySXRlbSh7XG4gICAgY29udGV4dCxcbiAgICBzZW1hbnRpY1VSTDogJydcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29uZmlndXJlQnJvd3NlckJvb2ttYXJrID0gcENvbm5lY3QgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gcENvbm5lY3QuZ2V0Q29udGV4dE5hbWUoKTtcbiAgY29uc3QgY29udGFpbmVyTmFtZSA9IHBDb25uZWN0LmdldENvbnRhaW5lck5hbWUoKTtcbiAgY29uc3QgbmF2UGFnZXMgPSBwQ29ubmVjdC5nZXRWYWx1ZSgncHlQb3J0YWwucHlQcmltYXJ5TmF2UGFnZXMnKTtcbiAgY29uc3QgZGVmYXVsdFZpZXdMYWJlbCA9IEFycmF5LmlzQXJyYXkobmF2UGFnZXMpICYmIG5hdlBhZ2VzWzBdID8gbmF2UGFnZXNbMF0ucHlMYWJlbCA6ICcnO1xuICBQQ29yZS5jb25maWd1cmVGb3JCcm93c2VyQm9va21hcmsoe1xuICAgIGNvbnRleHQsXG4gICAgY29udGFpbmVyTmFtZSxcbiAgICBhY05hbWU6IGNvbnRhaW5lck5hbWUsXG4gICAgc2VtYW50aWNVUkw6ICcnLFxuICAgIGRlZmF1bHRWaWV3TGFiZWxcbiAgfSk7XG59O1xuIl19