@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,207 +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 { MatAutocompleteModule } from '@angular/material/autocomplete';
5
- import { MatInputModule } from '@angular/material/input';
6
- import { MatOptionModule } from '@angular/material/core';
7
- import { MatSelectModule } from '@angular/material/select';
8
- import { MatFormFieldModule } from '@angular/material/form-field';
9
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
10
- import { map, startWith } from 'rxjs';
11
- import { handleEvent } from '../../../_helpers/event-util';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../../../_bridge/angular-pconnect";
14
- import * as i2 from "../../../_helpers/utils";
15
- import * as i3 from "@angular/common";
16
- import * as i4 from "@angular/forms";
17
- import * as i5 from "@angular/material/form-field";
18
- import * as i6 from "@angular/material/select";
19
- import * as i7 from "@angular/material/core";
20
- import * as i8 from "@angular/material/input";
21
- import * as i9 from "@angular/material/autocomplete";
22
- const OPERATORS_DP = 'D_pyGetOperatorsForCurrentApplication';
23
- const DROPDOWN_LIST = 'Drop-down list';
24
- const SEARCH_BOX = 'Search box';
25
- export class UserReferenceComponent {
26
- constructor(angularPConnect, utils) {
27
- this.angularPConnect = angularPConnect;
28
- this.utils = utils;
29
- this.angularPConnectData = {};
30
- this.filterValue = '';
31
- this.fieldControl = new FormControl('', null);
32
- this.isUserNameAvailable = user => {
33
- return typeof user === 'object' && user !== null && user.userName;
34
- };
35
- this.getUserName = user => {
36
- return user.userName;
37
- };
38
- this.getValue = user => {
39
- if (this.displayAs$ === DROPDOWN_LIST) {
40
- return this.utils.getUserId(user) || this.getUserName(user);
41
- }
42
- return this.isUserNameAvailable(user) ? this.getUserName(user) : this.utils.getUserId(user);
43
- };
44
- }
45
- async ngOnInit() {
46
- // First thing in initialization is registering and subscribing to the AngularPConnect service
47
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
48
- this.controlName$ = this.angularPConnect.getComponentID(this);
49
- await this.checkAndUpdate();
50
- if (this.formGroup$) {
51
- // add control to formGroup
52
- this.formGroup$.addControl(this.controlName$, this.fieldControl);
53
- this.fieldControl.setValue(this.getValue(this.value$));
54
- }
55
- this.filteredOptions = this.fieldControl.valueChanges.pipe(startWith(this.getValue(this.value$) || ''), map(value => this._filter(value || '')));
56
- }
57
- ngOnDestroy() {
58
- if (this.formGroup$) {
59
- this.formGroup$.removeControl(this.controlName$);
60
- }
61
- if (this.angularPConnectData.unsubscribeFn) {
62
- this.angularPConnectData.unsubscribeFn();
63
- }
64
- }
65
- get type() {
66
- if (this.bReadonly$ && this.showAsFormattedText$) {
67
- return 'operator';
68
- }
69
- if (this.displayAs$ === DROPDOWN_LIST) {
70
- return 'dropdown';
71
- }
72
- if (this.displayAs$ === SEARCH_BOX) {
73
- return 'searchbox';
74
- }
75
- return '';
76
- }
77
- // Callback passed when subscribing to store change
78
- async onStateChange() {
79
- await this.checkAndUpdate();
80
- }
81
- _filter(value) {
82
- const filterVal = (value || this.filterValue).toLowerCase();
83
- return this.options$?.filter(option => option.value?.toLowerCase().includes(filterVal));
84
- }
85
- async checkAndUpdate() {
86
- // Should always check the bridge to see if the component should
87
- // update itself (re-render)
88
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
89
- // ONLY call updateSelf when the component should update
90
- if (bUpdateSelf) {
91
- await this.updateSelf();
92
- }
93
- }
94
- async updateSelf() {
95
- const props = this.pConn$.getConfigProps();
96
- this.testId = props.testId;
97
- this.onRecordChange = props?.onRecordChange;
98
- const { label, displayAs, value, showAsFormattedText, helperText, placeholder, displayMode } = props;
99
- this.label$ = label;
100
- this.showAsFormattedText$ = showAsFormattedText;
101
- this.displayAs$ = displayAs;
102
- this.helperText = helperText;
103
- this.placeholder = placeholder || '';
104
- this.displayMode$ = displayMode;
105
- this.value$ = this.pConn$.getConfigProps()?.value;
106
- const { readOnly, required } = props;
107
- [this.bReadonly$, this.bRequired$] = [readOnly, required].map(prop => prop === true || (typeof prop === 'string' && prop === 'true'));
108
- this.actionsApi = this.pConn$.getActionsApi();
109
- this.propName = this.pConn$.getStateProps().value;
110
- this.userID$ = this.utils.getUserId(value);
111
- if (this.userID$ && this.bReadonly$ && this.showAsFormattedText$) {
112
- if (this.isUserNameAvailable(value)) {
113
- this.userName$ = value.userName;
114
- }
115
- else {
116
- // if same user ref field is referred in view as editable & readonly formatted text
117
- // referenced users won't be available, so get user details from dx api
118
- const { getOperatorDetails } = PCore.getUserApi();
119
- getOperatorDetails(this.userID$).then((resp) => {
120
- if (resp.data && resp.data.pyOperatorInfo && resp.data.pyOperatorInfo.pyUserName) {
121
- this.userName$ = resp.data.pyOperatorInfo.pyUserName;
122
- }
123
- });
124
- }
125
- }
126
- else if (displayAs === DROPDOWN_LIST || displayAs === SEARCH_BOX) {
127
- const queryPayload = {
128
- dataViewName: OPERATORS_DP
129
- };
130
- try {
131
- const resp = await PCore.getRestClient().invokeRestApi('getListData', { queryPayload }, ''); // 3rd arg empty string until typedef marked correctly
132
- if (resp?.data) {
133
- const ddDataSource = resp.data.data.map(listItem => ({
134
- key: listItem.pyUserIdentifier,
135
- value: listItem.pyUserName
136
- }));
137
- this.options$ = ddDataSource;
138
- }
139
- }
140
- catch (error) {
141
- console.log(error);
142
- }
143
- }
144
- }
145
- fieldOnChange(event) {
146
- if (event?.value === 'Select') {
147
- event.value = '';
148
- }
149
- if (event?.target) {
150
- this.filterValue = event.target.value;
151
- }
152
- const value = event?.value;
153
- handleEvent(this.actionsApi, 'change', this.propName, value);
154
- }
155
- optionChanged(event) {
156
- const value = event?.option?.value;
157
- handleEvent(this.actionsApi, 'change', this.propName, value);
158
- }
159
- fieldOnBlur(event) {
160
- let key = '';
161
- if (event?.target?.value) {
162
- const index = this.options$?.findIndex(element => element.value === event.target.value);
163
- key = index > -1 ? (key = this.options$[index].key) : event.target.value;
164
- }
165
- const value = key;
166
- handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
167
- if (this.onRecordChange) {
168
- event.target.value = value;
169
- this.onRecordChange(event);
170
- }
171
- }
172
- getErrorMessage() {
173
- let errMessage = '';
174
- // look for validation messages for json, pre-defined or just an error pushed from workitem (400)
175
- if (this.fieldControl.hasError('message')) {
176
- errMessage = this.angularPConnectData.validateMessage ?? '';
177
- return errMessage;
178
- }
179
- if (this.fieldControl.hasError('required')) {
180
- errMessage = 'You must enter a value';
181
- }
182
- else if (this.fieldControl.errors) {
183
- errMessage = this.fieldControl.errors.toString();
184
- }
185
- return errMessage;
186
- }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UserReferenceComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
188
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: UserReferenceComponent, isStandalone: true, selector: "app-user-reference", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div class=\"psdk-user-reference\">\n <div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n </div>\n <ng-template #noDisplayMode>\n <div *ngIf=\"type === 'operator'\">\n <component-mapper name=\"Operator\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div [formGroup]=\"formGroup$\" *ngIf=\"type === 'dropdown'\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-select [required]=\"bRequired$\" [formControl]=\"fieldControl\" [attr.data-test-id]=\"testId\" (selectionChange)=\"fieldOnChange($event)\">\n <mat-option *ngFor=\"let opt of options$\" [value]=\"opt.key\">\n {{ opt.value }}\n </mat-option>\n </mat-select>\n <mat-label>{{ label$ }}</mat-label>\n <mat-error *ngIf=\"fieldControl.invalid\">\n {{ getErrorMessage() }}\n </mat-error>\n </mat-form-field>\n </div>\n <div [formGroup]=\"formGroup$\" *ngIf=\"type === 'searchbox'\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n [required]=\"bRequired$\"\n [matAutocomplete]=\"auto\"\n [attr.data-test-id]=\"testId\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption (optionSelected)=\"optionChanged($event)\">\n <mat-option *ngFor=\"let opt of filteredOptions | async\" [value]=\"opt.value\">\n <span>{{ opt.value }}</span>\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"fieldControl.invalid\">\n {{ getErrorMessage() }}\n </mat-error>\n </mat-form-field>\n </div>\n </ng-template>\n</div>\n", styles: [".psdk-user-reference{font-size:.8rem;color:var(--app-neutral-color)}.psdk-single{flex:1}.psdk-double{flex:2}.psdk-top-pad{padding-top:10px}.psdk-full-width{width:100%;padding-left:.625rem}dt{flex:1}dd{flex:2}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i0.forwardRef(() => i3.AsyncPipe), name: "async" }, { 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(() => MatSelectModule) }, { kind: "component", type: i0.forwardRef(() => i6.MatSelect), selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i0.forwardRef(() => i7.MatOption), selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatOptionModule) }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i8.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: "ngmodule", type: i0.forwardRef(() => MatAutocompleteModule) }, { kind: "component", type: i0.forwardRef(() => i9.MatAutocomplete), selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i0.forwardRef(() => i9.MatAutocompleteTrigger), selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
189
- }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UserReferenceComponent, decorators: [{
191
- type: Component,
192
- args: [{ selector: 'app-user-reference', standalone: true, imports: [
193
- CommonModule,
194
- ReactiveFormsModule,
195
- MatFormFieldModule,
196
- MatSelectModule,
197
- MatOptionModule,
198
- MatInputModule,
199
- MatAutocompleteModule,
200
- forwardRef(() => ComponentMapperComponent)
201
- ], template: "<div class=\"psdk-user-reference\">\n <div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n </div>\n <ng-template #noDisplayMode>\n <div *ngIf=\"type === 'operator'\">\n <component-mapper name=\"Operator\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div [formGroup]=\"formGroup$\" *ngIf=\"type === 'dropdown'\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-select [required]=\"bRequired$\" [formControl]=\"fieldControl\" [attr.data-test-id]=\"testId\" (selectionChange)=\"fieldOnChange($event)\">\n <mat-option *ngFor=\"let opt of options$\" [value]=\"opt.key\">\n {{ opt.value }}\n </mat-option>\n </mat-select>\n <mat-label>{{ label$ }}</mat-label>\n <mat-error *ngIf=\"fieldControl.invalid\">\n {{ getErrorMessage() }}\n </mat-error>\n </mat-form-field>\n </div>\n <div [formGroup]=\"formGroup$\" *ngIf=\"type === 'searchbox'\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n [required]=\"bRequired$\"\n [matAutocomplete]=\"auto\"\n [attr.data-test-id]=\"testId\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption (optionSelected)=\"optionChanged($event)\">\n <mat-option *ngFor=\"let opt of filteredOptions | async\" [value]=\"opt.value\">\n <span>{{ opt.value }}</span>\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"fieldControl.invalid\">\n {{ getErrorMessage() }}\n </mat-error>\n </mat-form-field>\n </div>\n </ng-template>\n</div>\n", styles: [".psdk-user-reference{font-size:.8rem;color:var(--app-neutral-color)}.psdk-single{flex:1}.psdk-double{flex:2}.psdk-top-pad{padding-top:10px}.psdk-full-width{width:100%;padding-left:.625rem}dt{flex:1}dd{flex:2}\n"] }]
202
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.Utils }], propDecorators: { pConn$: [{
203
- type: Input
204
- }], formGroup$: [{
205
- type: Input
206
- }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yZWZlcmVuY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL3VzZXItcmVmZXJlbmNlL3VzZXItcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC91c2VyLXJlZmVyZW5jZS91c2VyLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUV4RyxPQUFPLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7O0FBRTNELE1BQU0sWUFBWSxHQUFHLHVD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LENBQUM7WUFDcEMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOytHQXJOVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixzSUM1Q25DLDAvREE2Q0EsK1JEWEksWUFBWSx3WUFDWixtQkFBbUIsc3VDQUNuQixrQkFBa0IsMmRBQ2xCLGVBQWUsa3ZCQUNmLGVBQWUsbURBQ2YsY0FBYyxvWkFDZCxxQkFBcUIsdXZCQUNKLHdCQUF3Qjs7NEZBR2hDLHNCQUFzQjtrQkFoQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDM0M7K0dBR1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUENvbm5GaWVsZFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL1BDb25uUHJvcHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBoYW5kbGVFdmVudCB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL2V2ZW50LXV0aWwnO1xuXG5jb25zdCBPUEVSQVRPUlNfRFAgPSAnRF9weUdldE9wZXJhdG9yc0ZvckN1cnJlbnRBcHBsaWNhdGlvbic7XG5jb25zdCBEUk9QRE9XTl9MSVNUID0gJ0Ryb3AtZG93biBsaXN0JztcbmNvbnN0IFNFQVJDSF9CT1ggPSAnU2VhcmNoIGJveCc7XG5cbmludGVyZmFjZSBVc2VyUmVmZXJlbmNlUHJvcHMgZXh0ZW5kcyBPbWl0PFBDb25uRmllbGRQcm9wcywgJ3ZhbHVlJz4ge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIFVzZXJSZWZlcmVuY2UgaGVyZVxuICBkaXNwbGF5QXM/OiBzdHJpbmc7XG4gIHZhbHVlPzogYW55O1xuICBzaG93QXNGb3JtYXR0ZWRUZXh0PzogYm9vbGVhbjtcbiAgYWRkaXRpb25hbFByb3BzPzogb2JqZWN0O1xuICBvblJlY29yZENoYW5nZT86IGFueTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItcmVmZXJlbmNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcmVmZXJlbmNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1yZWZlcmVuY2UuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudClcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUmVmZXJlbmNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29udHJvbE5hbWUkOiBzdHJpbmc7XG4gIHZhbHVlJDtcbiAgdXNlck5hbWUkOiBzdHJpbmc7XG4gIGxhYmVsJDogc3RyaW5nO1xuICB1c2VySUQkOiBzdHJpbmc7XG4gIG9wdGlvbnMkOiBhbnk7XG4gIGJSZWFkb25seSQ6IGJvb2xlYW47XG4gIGJSZXF1aXJlZCQ6IGJvb2xlYW47XG4gIHNob3dBc0Zvcm1hdHRlZFRleHQkPzogYm9vbGVhbjtcbiAgZGlzcGxheUFzJD86IHN0cmluZztcbiAgdGVzdElkOiBzdHJpbmc7XG4gIGhlbHBlclRleHQ6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgZGlzcGxheU1vZGUkPzogc3RyaW5nO1xuICBmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8YW55W10+O1xuICBmaWx0ZXJWYWx1ZSA9ICcnO1xuXG4gIGZpZWxkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgbnVsbCk7XG4gIGFjdGlvbnNBcGk6IE9iamVjdDtcbiAgcHJvcE5hbWU6IHN0cmluZztcbiAgb25SZWNvcmRDaGFuZ2U6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICB0aGlzLmNvbnRyb2xOYW1lJCA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudElEKHRoaXMpO1xuXG4gICAgYXdhaXQgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgLy8gYWRkIGNvbnRyb2wgdG8gZm9ybUdyb3VwXG4gICAgICB0aGlzLmZvcm1Hcm91cCQuYWRkQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCwgdGhpcy5maWVsZENvbnRyb2wpO1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy5nZXRWYWx1ZSh0aGlzLnZhbHVlJCkpO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5maWVsZENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5nZXRWYWx1ZSh0aGlzLnZhbHVlJCkgfHwgJycpLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuX2ZpbHRlcih2YWx1ZSB8fCAnJykpXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwJC5yZW1vdmVDb250cm9sKHRoaXMuY29udHJvbE5hbWUkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5iUmVhZG9ubHkkICYmIHRoaXMuc2hvd0FzRm9ybWF0dGVkVGV4dCQpIHtcbiAgICAgIHJldHVybiAnb3BlcmF0b3InO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNwbGF5QXMkID09PSBEUk9QRE9XTl9MSVNUKSB7XG4gICAgICByZXR1cm4gJ2Ryb3Bkb3duJztcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzcGxheUFzJCA9PT0gU0VBUkNIX0JPWCkge1xuICAgICAgcmV0dXJuICdzZWFyY2hib3gnO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBhc3luYyBvblN0YXRlQ2hhbmdlKCkge1xuICAgIGF3YWl0IHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZpbHRlclZhbCA9ICh2YWx1ZSB8fCB0aGlzLmZpbHRlclZhbHVlKS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMkPy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52YWx1ZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWwpKTtcbiAgfVxuXG4gIGlzVXNlck5hbWVBdmFpbGFibGUgPSB1c2VyID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIHVzZXIgPT09ICdvYmplY3QnICYmIHVzZXIgIT09IG51bGwgJiYgdXNlci51c2VyTmFtZTtcbiAgfTtcblxuICBnZXRVc2VyTmFtZSA9IHVzZXIgPT4ge1xuICAgIHJldHVybiB1c2VyLnVzZXJOYW1lO1xuICB9O1xuXG4gIGdldFZhbHVlID0gdXNlciA9PiB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUFzJCA9PT0gRFJPUERPV05fTElTVCkge1xuICAgICAgcmV0dXJuIHRoaXMudXRpbHMuZ2V0VXNlcklkKHVzZXIpIHx8IHRoaXMuZ2V0VXNlck5hbWUodXNlcik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzVXNlck5hbWVBdmFpbGFibGUodXNlcikgPyB0aGlzLmdldFVzZXJOYW1lKHVzZXIpIDogdGhpcy51dGlscy5nZXRVc2VySWQodXNlcik7XG4gIH07XG5cbiAgYXN5bmMgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGVTZWxmKCkge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSBhcyBVc2VyUmVmZXJlbmNlUHJvcHM7XG4gICAgdGhpcy50ZXN0SWQgPSBwcm9wcy50ZXN0SWQ7XG4gICAgdGhpcy5vblJlY29yZENoYW5nZSA9IHByb3BzPy5vblJlY29yZENoYW5nZTtcblxuICAgIGNvbnN0IHsgbGFiZWwsIGRpc3BsYXlBcywgdmFsdWUsIHNob3dBc0Zvcm1hdHRlZFRleHQsIGhlbHBlclRleHQsIHBsYWNlaG9sZGVyLCBkaXNwbGF5TW9kZSB9ID0gcHJvcHM7XG5cbiAgICB0aGlzLmxhYmVsJCA9IGxhYmVsO1xuICAgIHRoaXMuc2hvd0FzRm9ybWF0dGVkVGV4dCQgPSBzaG93QXNGb3JtYXR0ZWRUZXh0O1xuICAgIHRoaXMuZGlzcGxheUFzJCA9IGRpc3BsYXlBcztcbiAgICB0aGlzLmhlbHBlclRleHQgPSBoZWxwZXJUZXh0O1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlciB8fCAnJztcbiAgICB0aGlzLmRpc3BsYXlNb2RlJCA9IGRpc3BsYXlNb2RlO1xuXG4gICAgdGhpcy52YWx1ZSQgPSB0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpPy52YWx1ZTtcblxuICAgIGNvbnN0IHsgcmVhZE9ubHksIHJlcXVpcmVkIH0gPSBwcm9wcztcbiAgICBbdGhpcy5iUmVhZG9ubHkkLCB0aGlzLmJSZXF1aXJlZCRdID0gW3JlYWRPbmx5LCByZXF1aXJlZF0ubWFwKHByb3AgPT4gcHJvcCA9PT0gdHJ1ZSB8fCAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmIHByb3AgPT09ICd0cnVlJykpO1xuXG4gICAgdGhpcy5hY3Rpb25zQXBpID0gdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpO1xuICAgIHRoaXMucHJvcE5hbWUgPSB0aGlzLnBDb25uJC5nZXRTdGF0ZVByb3BzKCkudmFsdWU7XG5cbiAgICB0aGlzLnVzZXJJRCQgPSB0aGlzLnV0aWxzLmdldFVzZXJJZCh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy51c2VySUQkICYmIHRoaXMuYlJlYWRvbmx5JCAmJiB0aGlzLnNob3dBc0Zvcm1hdHRlZFRleHQkKSB7XG4gICAgICBpZiAodGhpcy5pc1VzZXJOYW1lQXZhaWxhYmxlKHZhbHVlKSkge1xuICAgICAgICB0aGlzLnVzZXJOYW1lJCA9IHZhbHVlLnVzZXJOYW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaWYgc2FtZSB1c2VyIHJlZiBmaWVsZCBpcyByZWZlcnJlZCBpbiB2aWV3IGFzIGVkaXRhYmxlICYgcmVhZG9ubHkgZm9ybWF0dGVkIHRleHRcbiAgICAgICAgLy8gcmVmZXJlbmNlZCB1c2VycyB3b24ndCBiZSBhdmFpbGFibGUsIHNvIGdldCB1c2VyIGRldGFpbHMgZnJvbSBkeCBhcGlcbiAgICAgICAgY29uc3QgeyBnZXRPcGVyYXRvckRldGFpbHMgfSA9IFBDb3JlLmdldFVzZXJBcGkoKTtcbiAgICAgICAgZ2V0T3BlcmF0b3JEZXRhaWxzKHRoaXMudXNlcklEJCkudGhlbigocmVzcDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3AuZGF0YSAmJiByZXNwLmRhdGEucHlPcGVyYXRvckluZm8gJiYgcmVzcC5kYXRhLnB5T3BlcmF0b3JJbmZvLnB5VXNlck5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMudXNlck5hbWUkID0gcmVzcC5kYXRhLnB5T3BlcmF0b3JJbmZvLnB5VXNlck5hbWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRpc3BsYXlBcyA9PT0gRFJPUERPV05fTElTVCB8fCBkaXNwbGF5QXMgPT09IFNFQVJDSF9CT1gpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5UGF5bG9hZCA9IHtcbiAgICAgICAgZGF0YVZpZXdOYW1lOiBPUEVSQVRPUlNfRFBcbiAgICAgIH07XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwID0gYXdhaXQgUENvcmUuZ2V0UmVzdENsaWVudCgpLmludm9rZVJlc3RBcGkoJ2dldExpc3REYXRhJywgeyBxdWVyeVBheWxvYWQgfSwgJycpOyAvLyAzcmQgYXJnIGVtcHR5IHN0cmluZyB1bnRpbCB0eXBlZGVmIG1hcmtlZCBjb3JyZWN0bHlcbiAgICAgICAgaWYgKHJlc3A/LmRhdGEpIHtcbiAgICAgICAgICBjb25zdCBkZERhdGFTb3VyY2UgPSByZXNwLmRhdGEuZGF0YS5tYXAobGlzdEl0ZW0gPT4gKHtcbiAgICAgICAgICAgIGtleTogbGlzdEl0ZW0ucHlVc2VySWRlbnRpZmllcixcbiAgICAgICAgICAgIHZhbHVlOiBsaXN0SXRlbS5weVVzZXJOYW1lXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHRoaXMub3B0aW9ucyQgPSBkZERhdGFTb3VyY2U7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaWVsZE9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQ/LnZhbHVlID09PSAnU2VsZWN0Jykge1xuICAgICAgZXZlbnQudmFsdWUgPSAnJztcbiAgICB9XG4gICAgaWYgKGV2ZW50Py50YXJnZXQpIHtcbiAgICAgIHRoaXMuZmlsdGVyVmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50Py52YWx1ZTtcbiAgICBoYW5kbGVFdmVudCh0aGlzLmFjdGlvbnNBcGksICdjaGFuZ2UnLCB0aGlzLnByb3BOYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBvcHRpb25DaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50Py5vcHRpb24/LnZhbHVlO1xuICAgIGhhbmRsZUV2ZW50KHRoaXMuYWN0aW9uc0FwaSwgJ2NoYW5nZScsIHRoaXMucHJvcE5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIGZpZWxkT25CbHVyKGV2ZW50OiBhbnkpIHtcbiAgICBsZXQga2V5ID0gJyc7XG4gICAgaWYgKGV2ZW50Py50YXJnZXQ/LnZhbHVlKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMub3B0aW9ucyQ/LmZpbmRJbmRleChlbGVtZW50ID0+IGVsZW1lbnQudmFsdWUgPT09IGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICBrZXkgPSBpbmRleCA+IC0xID8gKGtleSA9IHRoaXMub3B0aW9ucyRbaW5kZXhdLmtleSkgOiBldmVudC50YXJnZXQudmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0ga2V5O1xuICAgIGhhbmRsZUV2ZW50KHRoaXMuYWN0aW9uc0FwaSwgJ2NoYW5nZU5ibHVyJywgdGhpcy5wcm9wTmFtZSwgdmFsdWUpO1xuICAgIGlmICh0aGlzLm9uUmVjb3JkQ2hhbmdlKSB7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMub25SZWNvcmRDaGFuZ2UoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpIHtcbiAgICBsZXQgZXJyTWVzc2FnZSA9ICcnO1xuXG4gICAgLy8gbG9vayBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlcyBmb3IganNvbiwgcHJlLWRlZmluZWQgb3IganVzdCBhbiBlcnJvciBwdXNoZWQgZnJvbSB3b3JraXRlbSAoNDAwKVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcignbWVzc2FnZScpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSA/PyAnJztcbiAgICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSAnWW91IG11c3QgZW50ZXIgYSB2YWx1ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSB0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyTWVzc2FnZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBzZGstdXNlci1yZWZlcmVuY2VcIj5cbiAgPGRpdiAqbmdJZj1cImRpc3BsYXlNb2RlJDsgZWxzZSBub0Rpc3BsYXlNb2RlXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkZpZWxkVmFsdWVMaXN0XCIgW3Byb3BzXT1cInsgbGFiZWwkLCB2YWx1ZSQsIGRpc3BsYXlNb2RlJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNub0Rpc3BsYXlNb2RlPlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnb3BlcmF0b3InXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiT3BlcmF0b3JcIiBbcHJvcHNdPVwieyBwQ29ubiQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwJFwiICpuZ0lmPVwidHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicHNkay1mdWxsLXdpZHRoXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiIFtoaW50TGFiZWxdPVwiaGVscGVyVGV4dFwiPlxuICAgICAgICA8bWF0LXNlbGVjdCBbcmVxdWlyZWRdPVwiYlJlcXVpcmVkJFwiIFtmb3JtQ29udHJvbF09XCJmaWVsZENvbnRyb2xcIiBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJmaWVsZE9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIG9wdGlvbnMkXCIgW3ZhbHVlXT1cIm9wdC5rZXlcIj5cbiAgICAgICAgICAgIHt7IG9wdC52YWx1ZSB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsJCB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGRDb250cm9sLmludmFsaWRcIj5cbiAgICAgICAgICB7eyBnZXRFcnJvck1lc3NhZ2UoKSB9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cCRcIiAqbmdJZj1cInR5cGUgPT09ICdzZWFyY2hib3gnXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLWZ1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgW2hpbnRMYWJlbF09XCJoZWxwZXJUZXh0XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwkIH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZmllbGRDb250cm9sXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwiYlJlcXVpcmVkJFwiXG4gICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgICAgICAgICAoYmx1cik9XCJmaWVsZE9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBhdXRvQWN0aXZlRmlyc3RPcHRpb24gKG9wdGlvblNlbGVjdGVkKT1cIm9wdGlvbkNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHQgb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0LnZhbHVlXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBvcHQudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmaWVsZENvbnRyb2wuaW52YWxpZFwiPlxuICAgICAgICAgIHt7IGdldEVycm9yTWVzc2FnZSgpIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -1,18 +0,0 @@
1
- import { getPConnectOfActiveContainerItem } from './helper';
2
- import { AngularPConnectService } from '../../../../_bridge/angular-pconnect';
3
- export class FlowContainerBaseComponent {
4
- constructor(injector) {
5
- // For interaction with AngularPConnect
6
- this.angularPConnectData = {};
7
- this.angularPConnect = injector.get(AngularPConnectService);
8
- }
9
- getPConnectOfActiveContainerItem(parentPConnect) {
10
- const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');
11
- const isAssignmentView = this.angularPConnect.getComponentProp(this, 'isAssignmentView');
12
- return getPConnectOfActiveContainerItem(routingInfo, {
13
- isAssignmentView,
14
- parentPConnect
15
- });
16
- }
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb250YWluZXItYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvaW5mcmEvQ29udGFpbmVycy9iYXNlLWNvbXBvbmVudHMvZmxvdy1jb250YWluZXItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVELE9BQU8sRUFBdUIsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRyxNQUFNLE9BQU8sMEJBQTBCO0lBS3JDLFlBQVksUUFBa0I7UUFKOUIsdUNBQXVDO1FBQzdCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFJdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGdDQUFnQyxDQUFDLGNBQWM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDL0UsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sZ0NBQWdDLENBQUMsV0FBVyxFQUFFO1lBQ25ELGdCQUFnQjtZQUNoQixjQUFjO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFBDb25uZWN0T2ZBY3RpdmVDb250YWluZXJJdGVtIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5cbmV4cG9ydCBjbGFzcyBGbG93Q29udGFpbmVyQmFzZUNvbXBvbmVudCB7XG4gIC8vIEZvciBpbnRlcmFjdGlvbiB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBwcm90ZWN0ZWQgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBwcm90ZWN0ZWQgYW5ndWxhclBDb25uZWN0O1xuXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0ID0gaW5qZWN0b3IuZ2V0KEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpO1xuICB9XG5cbiAgZ2V0UENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW0ocGFyZW50UENvbm5lY3QpIHtcbiAgICBjb25zdCByb3V0aW5nSW5mbyA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudFByb3AodGhpcywgJ3JvdXRpbmdJbmZvJyk7XG4gICAgY29uc3QgaXNBc3NpZ25tZW50VmlldyA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudFByb3AodGhpcywgJ2lzQXNzaWdubWVudFZpZXcnKTtcbiAgICByZXR1cm4gZ2V0UENvbm5lY3RPZkFjdGl2ZUNvbnRhaW5lckl0ZW0ocm91dGluZ0luZm8sIHtcbiAgICAgIGlzQXNzaWdubWVudFZpZXcsXG4gICAgICBwYXJlbnRQQ29ubmVjdFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,71 +0,0 @@
1
- const processRootViewDetails = (rootView, containerItem, options) => {
2
- const { config: { context: viewContext, name: viewName } } = rootView;
3
- const { context: containerContext } = containerItem;
4
- const { parentPConnect } = options;
5
- let resolvedViewName = viewName;
6
- let resolvedViewContext = viewContext;
7
- const isAnnotedViewName = PCore.getAnnotationUtils().isProperty(viewName);
8
- const isAnnotedViewContext = PCore.getAnnotationUtils().isProperty(viewContext);
9
- // resolving annoted view context
10
- if (isAnnotedViewContext) {
11
- const viewContextProperty = PCore.getAnnotationUtils().getPropertyName(viewContext);
12
- resolvedViewContext = PCore.getStoreValue(`.${viewContextProperty}`, viewContextProperty.startsWith('.') ? parentPConnect.getPageReference() : '', containerContext);
13
- }
14
- if (!resolvedViewContext) {
15
- resolvedViewContext = parentPConnect.getPageReference();
16
- }
17
- // resolving annoted view name
18
- if (isAnnotedViewName) {
19
- const viewNameProperty = PCore.getAnnotationUtils().getPropertyName(viewName);
20
- resolvedViewName = PCore.getStoreValue(`.${viewNameProperty}`, resolvedViewContext, containerContext);
21
- }
22
- /* Special case where context and viewname are dynamic values
23
- Use case - split for each shape
24
- Ex - (caseInfo.content.SCRequestWorkQueues[1]):context --> .pyViewName:viewName
25
- */
26
- if (isAnnotedViewName && isAnnotedViewContext && resolvedViewName !== '') {
27
- /* Allow context processor to resolve view and context when both are dynamic */
28
- resolvedViewName = viewName;
29
- resolvedViewContext = viewContext;
30
- }
31
- return {
32
- viewName: resolvedViewName,
33
- viewContext: resolvedViewContext
34
- };
35
- };
36
- export const getPConnectOfActiveContainerItem = (containerInfo, options) => {
37
- const { accessedOrder, items } = containerInfo;
38
- const { isAssignmentView = false, parentPConnect } = options;
39
- const containerName = parentPConnect.getContainerName();
40
- const { CONTAINER_NAMES } = PCore.getContainerUtils();
41
- const { CREATE_DETAILS_VIEW_NAME } = PCore.getConstants();
42
- if (accessedOrder && items) {
43
- const activeContainerItemKey = accessedOrder[accessedOrder.length - 1];
44
- if (items[activeContainerItemKey] && items[activeContainerItemKey].view && Object.keys(items[activeContainerItemKey].view).length > 0) {
45
- const activeContainerItem = items[activeContainerItemKey];
46
- const target = activeContainerItemKey.substring(0, activeContainerItemKey.lastIndexOf('_'));
47
- const { view: rootView, context } = activeContainerItem;
48
- const { viewName, viewContext } = processRootViewDetails(rootView, activeContainerItem, { parentPConnect });
49
- if (!viewName)
50
- return null;
51
- const config = {
52
- meta: rootView,
53
- options: {
54
- context,
55
- pageReference: viewContext || parentPConnect.getPageReference(),
56
- containerName,
57
- containerItemID: activeContainerItemKey,
58
- parentPageReference: parentPConnect.getPageReference(),
59
- hasForm: isAssignmentView ||
60
- containerName === CONTAINER_NAMES.WORKAREA ||
61
- containerName === CONTAINER_NAMES.MODAL ||
62
- viewName === CREATE_DETAILS_VIEW_NAME,
63
- target
64
- }
65
- };
66
- return PCore.createPConnect(config).getPConnect();
67
- }
68
- }
69
- return null;
70
- };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvYmFzZS1jb21wb25lbnRzL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLHNCQUFzQixHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNsRSxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQ2pELEdBQUcsUUFBUSxDQUFDO0lBQ2IsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsQ0FBQztJQUNwRCxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ25DLElBQUksZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0lBQ2hDLElBQUksbUJBQW1CLEdBQUcsV0FBVyxDQUFDO0lBRXRDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWhGLGlDQUFpQztJQUNqQyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDekIsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEYsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FDdkMsSUFBSSxtQkFBbUIsRUFBRSxFQUN6QixtQkFBbUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FB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Q0FBQyxRQUFRO3dCQUMxQyxhQUFhLEtBQUssZUFBZSxDQUFDLEtBQUs7d0JBQ3ZDLFFBQVEsS0FBSyx3QkFBd0I7b0JBQ3ZDLE1BQU07aUJBQ1A7YUFDRixDQUFDO1lBRUYsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwcm9jZXNzUm9vdFZpZXdEZXRhaWxzID0gKHJvb3RWaWV3LCBjb250YWluZXJJdGVtLCBvcHRpb25zKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb25maWc6IHsgY29udGV4dDogdmlld0NvbnRleHQsIG5hbWU6IHZpZXdOYW1lIH1cbiAgfSA9IHJvb3RWaWV3O1xuICBjb25zdCB7IGNvbnRleHQ6IGNvbnRhaW5lckNvbnRleHQgfSA9IGNvbnRhaW5lckl0ZW07XG4gIGNvbnN0IHsgcGFyZW50UENvbm5lY3QgfSA9IG9wdGlvbnM7XG4gIGxldCByZXNvbHZlZFZpZXdOYW1lID0gdmlld05hbWU7XG4gIGxldCByZXNvbHZlZFZpZXdDb250ZXh0ID0gdmlld0NvbnRleHQ7XG5cbiAgY29uc3QgaXNBbm5vdGVkVmlld05hbWUgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5pc1Byb3BlcnR5KHZpZXdOYW1lKTtcbiAgY29uc3QgaXNBbm5vdGVkVmlld0NvbnRleHQgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5pc1Byb3BlcnR5KHZpZXdDb250ZXh0KTtcblxuICAvLyByZXNvbHZpbmcgYW5ub3RlZCB2aWV3IGNvbnRleHRcbiAgaWYgKGlzQW5ub3RlZFZpZXdDb250ZXh0KSB7XG4gICAgY29uc3Qgdmlld0NvbnRleHRQcm9wZXJ0eSA9IFBDb3JlLmdldEFubm90YXRpb25VdGlscygpLmdldFByb3BlcnR5TmFtZSh2aWV3Q29udGV4dCk7XG4gICAgcmVzb2x2ZWRWaWV3Q29udGV4dCA9IFBDb3JlLmdldFN0b3JlVmFsdWUoXG4gICAgICBgLiR7dmlld0NvbnRleHRQcm9wZXJ0eX1gLFxuICAgICAgdmlld0NvbnRleHRQcm9wZXJ0eS5zdGFydHNXaXRoKCcuJykgPyBwYXJlbnRQQ29ubmVjdC5nZXRQYWdlUmVmZXJlbmNlKCkgOiAnJyxcbiAgICAgIGNvbnRhaW5lckNvbnRleHRcbiAgICApO1xuICB9XG5cbiAgaWYgKCFyZXNvbHZlZFZpZXdDb250ZXh0KSB7XG4gICAgcmVzb2x2ZWRWaWV3Q29udGV4dCA9IHBhcmVudFBDb25uZWN0LmdldFBhZ2VSZWZlcmVuY2UoKTtcbiAgfVxuXG4gIC8vIHJlc29sdmluZyBhbm5vdGVkIHZpZXcgbmFtZVxuICBpZiAoaXNBbm5vdGVkVmlld05hbWUpIHtcbiAgICBjb25zdCB2aWV3TmFtZVByb3BlcnR5ID0gUENvcmUuZ2V0QW5ub3RhdGlvblV0aWxzKCkuZ2V0UHJvcGVydHlOYW1lKHZpZXdOYW1lKTtcbiAgICByZXNvbHZlZFZpZXdOYW1lID0gUENvcmUuZ2V0U3RvcmVWYWx1ZShgLiR7dmlld05hbWVQcm9wZXJ0eX1gLCByZXNvbHZlZFZpZXdDb250ZXh0LCBjb250YWluZXJDb250ZXh0KTtcbiAgfVxuXG4gIC8qIFNwZWNpYWwgY2FzZSB3aGVyZSBjb250ZXh0IGFuZCB2aWV3bmFtZSBhcmUgZHluYW1pYyB2YWx1ZXNcbiAgICBVc2UgY2FzZSAtIHNwbGl0IGZvciBlYWNoIHNoYXBlXG4gICAgRXggLSAoY2FzZUluZm8uY29udGVudC5TQ1JlcXVlc3RXb3JrUXVldWVzWzFdKTpjb250ZXh0IC0tPiAucHlWaWV3TmFtZTp2aWV3TmFtZVxuICAqL1xuICBpZiAoaXNBbm5vdGVkVmlld05hbWUgJiYgaXNBbm5vdGVkVmlld0NvbnRleHQgJiYgcmVzb2x2ZWRWaWV3TmFtZSAhPT0gJycpIHtcbiAgICAvKiBBbGxvdyBjb250ZXh0IHByb2Nlc3NvciB0byByZXNvbHZlIHZpZXcgYW5kIGNvbnRleHQgd2hlbiBib3RoIGFyZSBkeW5hbWljICovXG4gICAgcmVzb2x2ZWRWaWV3TmFtZSA9IHZpZXdOYW1lO1xuICAgIHJlc29sdmVkVmlld0NvbnRleHQgPSB2aWV3Q29udGV4dDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmlld05hbWU6IHJlc29sdmVkVmlld05hbWUsXG4gICAgdmlld0NvbnRleHQ6IHJlc29sdmVkVmlld0NvbnRleHRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQQ29ubmVjdE9mQWN0aXZlQ29udGFpbmVySXRlbSA9IChjb250YWluZXJJbmZvLCBvcHRpb25zKSA9PiB7XG4gIGNvbnN0IHsgYWNjZXNzZWRPcmRlciwgaXRlbXMgfSA9IGNvbnRhaW5lckluZm87XG4gIGNvbnN0IHsgaXNBc3NpZ25tZW50VmlldyA9IGZhbHNlLCBwYXJlbnRQQ29ubmVjdCB9ID0gb3B0aW9ucztcbiAgY29uc3QgY29udGFpbmVyTmFtZSA9IHBhcmVudFBDb25uZWN0LmdldENvbnRhaW5lck5hbWUoKTtcbiAgY29uc3QgeyBDT05UQUlORVJfTkFNRVMgfSA9IFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCk7XG4gIGNvbnN0IHsgQ1JFQVRFX0RFVEFJTFNfVklFV19OQU1FIH0gPSBQQ29yZS5nZXRDb25zdGFudHMoKTtcblxuICBpZiAoYWNjZXNzZWRPcmRlciAmJiBpdGVtcykge1xuICAgIGNvbnN0IGFjdGl2ZUNvbnRhaW5lckl0ZW1LZXkgPSBhY2Nlc3NlZE9yZGVyW2FjY2Vzc2VkT3JkZXIubGVuZ3RoIC0gMV07XG5cbiAgICBpZiAoaXRlbXNbYWN0aXZlQ29udGFpbmVySXRlbUtleV0gJiYgaXRlbXNbYWN0aXZlQ29udGFpbmVySXRlbUtleV0udmlldyAmJiBPYmplY3Qua2V5cyhpdGVtc1thY3RpdmVDb250YWluZXJJdGVtS2V5XS52aWV3KS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBhY3RpdmVDb250YWluZXJJdGVtID0gaXRlbXNbYWN0aXZlQ29udGFpbmVySXRlbUtleV07XG4gICAgICBjb25zdCB0YXJnZXQgPSBhY3RpdmVDb250YWluZXJJdGVtS2V5LnN1YnN0cmluZygwLCBhY3RpdmVDb250YWluZXJJdGVtS2V5Lmxhc3RJbmRleE9mKCdfJykpO1xuXG4gICAgICBjb25zdCB7IHZpZXc6IHJvb3RWaWV3LCBjb250ZXh0IH0gPSBhY3RpdmVDb250YWluZXJJdGVtO1xuICAgICAgY29uc3QgeyB2aWV3TmFtZSwgdmlld0NvbnRleHQgfSA9IHByb2Nlc3NSb290Vmlld0RldGFpbHMocm9vdFZpZXcsIGFjdGl2ZUNvbnRhaW5lckl0ZW0sIHsgcGFyZW50UENvbm5lY3QgfSk7XG5cbiAgICAgIGlmICghdmlld05hbWUpIHJldHVybiBudWxsO1xuXG4gICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgIG1ldGE6IHJvb3RWaWV3LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBwYWdlUmVmZXJlbmNlOiB2aWV3Q29udGV4dCB8fCBwYXJlbnRQQ29ubmVjdC5nZXRQYWdlUmVmZXJlbmNlKCksXG4gICAgICAgICAgY29udGFpbmVyTmFtZSxcbiAgICAgICAgICBjb250YWluZXJJdGVtSUQ6IGFjdGl2ZUNvbnRhaW5lckl0ZW1LZXksXG4gICAgICAgICAgcGFyZW50UGFnZVJlZmVyZW5jZTogcGFyZW50UENvbm5lY3QuZ2V0UGFnZVJlZmVyZW5jZSgpLFxuICAgICAgICAgIGhhc0Zvcm06XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRWaWV3IHx8XG4gICAgICAgICAgICBjb250YWluZXJOYW1lID09PSBDT05UQUlORVJfTkFNRVMuV09SS0FSRUEgfHxcbiAgICAgICAgICAgIGNvbnRhaW5lck5hbWUgPT09IENPTlRBSU5FUl9OQU1FUy5NT0RBTCB8fFxuICAgICAgICAgICAgdmlld05hbWUgPT09IENSRUFURV9ERVRBSUxTX1ZJRVdfTkFNRSxcbiAgICAgICAgICB0YXJnZXRcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZykuZ2V0UENvbm5lY3QoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuIl19