@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,228 +0,0 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
4
- import { interval } from 'rxjs';
5
- import { ReferenceComponent } from '../reference/reference.component';
6
- import { PreviewViewContainerComponent } from '../Containers/preview-view-container/preview-view-container.component';
7
- import { ModalViewContainerComponent } from '../Containers/modal-view-container/modal-view-container.component';
8
- import { HybridViewContainerComponent } from '../Containers/hybrid-view-container/hybrid-view-container.component';
9
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "../../../_bridge/angular-pconnect";
12
- import * as i2 from "../../../_messages/progress-spinner.service";
13
- import * as i3 from "@angular/common";
14
- import * as i4 from "@angular/material/progress-spinner";
15
- /**
16
- * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
17
- * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
18
- * is totally at your own risk.
19
- */
20
- const options = { context: 'app' };
21
- export class RootContainerComponent {
22
- constructor(angularPConnect, psService, ngZone) {
23
- this.angularPConnect = angularPConnect;
24
- this.psService = psService;
25
- this.ngZone = ngZone;
26
- // For interaction with AngularPConnect
27
- this.angularPConnectData = {};
28
- this.componentName$ = '';
29
- this.bIsProgress$ = false;
30
- // preview and modalview pConn
31
- this.pvConn$ = null;
32
- this.mConn$ = null;
33
- this.bShowRoot$ = true;
34
- this.spinnerTimer = null;
35
- this.viewContainerPConn$ = null;
36
- this.localeCategory = 'Messages';
37
- }
38
- ngOnInit() {
39
- const myContext = 'app';
40
- const { containers } = PCore.getStore().getState();
41
- const items = Object.keys(containers).filter(item => item.includes('root'));
42
- PCore.getContainerUtils().getContainerAPI().addContainerItems(items);
43
- // add preview and modalview containers to redux
44
- // keep local copies of the the pConnect that is related
45
- const configObjPreview = PCore.createPConnect({
46
- meta: {
47
- type: 'PreviewViewContainer',
48
- config: {
49
- name: 'preview'
50
- }
51
- },
52
- options
53
- });
54
- this.pvConn$ = configObjPreview.getPConnect();
55
- const configObjModal = PCore.createPConnect({
56
- meta: {
57
- type: 'ModalViewContainer',
58
- config: {
59
- name: 'modal'
60
- }
61
- },
62
- options: {
63
- pageReference: 'pyPortal',
64
- context: myContext
65
- }
66
- });
67
- // clear out hasViewContainer
68
- sessionStorage.setItem('hasViewContainer', 'false');
69
- this.mConn$ = configObjModal.getPConnect();
70
- // First thing in initialization is registering and subscribing to the AngularPConnect service
71
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
72
- // handle showing and hiding the progress spinner
73
- this.progressSpinnerSubscription = this.psService.getMessage().subscribe(message => {
74
- this.showHideProgress(message.show);
75
- });
76
- this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
77
- }
78
- ngOnDestroy() {
79
- if (this.angularPConnectData.unsubscribeFn) {
80
- this.angularPConnectData.unsubscribeFn();
81
- }
82
- }
83
- // Callback passed when subscribing to store change
84
- onStateChange() {
85
- // Should always check the bridge to see if the component should update itself (re-render)
86
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
87
- if (bUpdateSelf) {
88
- this.updateSelf();
89
- }
90
- }
91
- modalVisibleChanged(isVisible) {
92
- if (this.displayOnlyFA$) {
93
- if (isVisible) {
94
- this.bShowRoot$ = false;
95
- }
96
- else {
97
- this.bShowRoot$ = true;
98
- }
99
- }
100
- }
101
- updateSelf() {
102
- // need to call this.getCurrentCompleteProps (not this.thePConn.getConfigProps)
103
- // to get full set of props that affect this component in Redux
104
- const myProps = this.angularPConnect.getCurrentCompleteProps(this);
105
- const renderingModes = ['portal', 'view'];
106
- const noPortalMode = 'noPortal';
107
- const { renderingMode, children, skeleton, routingInfo } = myProps;
108
- if (routingInfo && renderingModes.includes(renderingMode)) {
109
- const { accessedOrder, items } = routingInfo;
110
- if (accessedOrder && items) {
111
- // bootstrap loadPortal resolves to here
112
- const key = accessedOrder[accessedOrder.length - 1];
113
- if (items[key] && items[key].view && Object.keys(items[key].view).length > 0) {
114
- const itemView = items[key].view;
115
- const rootObject = PCore.createPConnect({
116
- meta: itemView,
117
- options: {
118
- context: items[key].context
119
- }
120
- });
121
- setTimeout(() => {
122
- // makes sure Angular tracks these changes
123
- this.ngZone.run(() => {
124
- // the new rootObject may be a 'reference'. So,
125
- // normalize it to get the referencedView if that's the case
126
- const theNewPConn = ReferenceComponent.normalizePConn(rootObject.getPConnect());
127
- // update ComponentName$ before we update pConn$ to make sure they're in sync
128
- // when rendering...
129
- this.componentName$ = theNewPConn.getComponentName();
130
- this.pConn$ = theNewPConn;
131
- // this.pConn$ = rootObject.getPConnect();
132
- console.log(`RootContainer updated pConn$ to be: ${this.componentName$}`);
133
- });
134
- });
135
- }
136
- }
137
- }
138
- else if (renderingMode === noPortalMode) {
139
- // console.log(`RootContainer: renderingMode === noPortalMode: ${noPortalMode}`);
140
- this.generateViewContainerForNoPortal();
141
- }
142
- else if (children && children.length > 0) {
143
- // haven't resolved to here
144
- }
145
- else if (skeleton !== undefined) {
146
- // TODO: need to update once skeletons are available;
147
- }
148
- }
149
- generateViewContainerForNoPortal() {
150
- // bootstrap loadMashup resolves to here
151
- const arChildren = this.pConn$.getChildren();
152
- if (arChildren && arChildren.length == 1) {
153
- // have to have a quick timeout or get an "expressions changed" angular error
154
- setTimeout(() => {
155
- this.ngZone.run(() => {
156
- const localPConn = arChildren[0].getPConnect();
157
- this.componentName$ = localPConn.getComponentName();
158
- if (this.componentName$ === 'ViewContainer') {
159
- const configProps = this.pConn$.getConfigProps();
160
- const viewContConfig = {
161
- meta: {
162
- type: 'ViewContainer',
163
- config: configProps
164
- },
165
- options
166
- };
167
- this.viewContainerPConn$ = PCore.createPConnect(viewContConfig).getPConnect();
168
- }
169
- this.bShowRoot$ = true;
170
- });
171
- });
172
- }
173
- }
174
- showHideProgress(bShow) {
175
- // only show spinner after 500ms wait, so if server fast, won't see
176
- if (bShow) {
177
- // eslint-disable-next-line sonarjs/no-collapsible-if
178
- if (!this.bIsProgress$) {
179
- // makes sure Angular tracks these changes
180
- if (!this.spinnerTimer || this.spinnerTimer.isStopped) {
181
- this.spinnerTimer = interval(500).subscribe(() => {
182
- try {
183
- this.spinnerTimer.unsubscribe();
184
- }
185
- catch (ex) {
186
- /* empty */
187
- }
188
- this.ngZone.run(() => {
189
- this.bIsProgress$ = true;
190
- });
191
- });
192
- }
193
- }
194
- }
195
- else {
196
- if (this.spinnerTimer && !this.spinnerTimer.isStopped) {
197
- this.spinnerTimer.unsubscribe();
198
- }
199
- // don't touch bIsProgress$ unless differnent
200
- if (bShow != this.bIsProgress$) {
201
- // makes sure Angular tracks these changes
202
- this.ngZone.run(() => {
203
- this.bIsProgress$ = bShow;
204
- });
205
- }
206
- }
207
- }
208
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RootContainerComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.ProgressSpinnerService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
209
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: RootContainerComponent, isStandalone: true, selector: "app-root-container", inputs: { pConn$: "pConn$", displayOnlyFA$: "displayOnlyFA$", isMashup$: "isMashup$" }, ngImport: i0, template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <!-- <app-reference *ngSwitchCase=\"'reference'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-reference> -->\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: displayOnlyFA$ ? viewContainerPConn$ : pConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <app-hybrid-view-container *ngSwitchCase=\"'HybridViewContainer'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-hybrid-view-container>\n <app-modal-view-container\n *ngSwitchCase=\"'ModalViewContainer'\"\n [pConn$]=\"pConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n <div *ngSwitchCase=\"''\"></div>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container\n [pConn$]=\"mConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n</div>\n", styles: [".progress-box{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-background-color);position:fixed;z-index:99999;top:0rem;left:0rem;opacity:.5}.progress-spinner{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitch), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitchCase), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitchDefault), selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: i0.forwardRef(() => MatProgressSpinnerModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatProgressSpinner), selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i0.forwardRef(() => HybridViewContainerComponent), selector: "app-hybrid-view-container", inputs: ["pConn$", "formGroup$", "displayOnlyFA$"] }, { kind: "component", type: i0.forwardRef(() => ModalViewContainerComponent), selector: "app-modal-view-container", inputs: ["pConn$", "displayOnlyFA$"], outputs: ["modalVisibleChange"] }, { kind: "component", type: i0.forwardRef(() => PreviewViewContainerComponent), selector: "app-preview-view-container", inputs: ["pConn$"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
210
- }
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RootContainerComponent, decorators: [{
212
- type: Component,
213
- args: [{ selector: 'app-root-container', standalone: true, imports: [
214
- CommonModule,
215
- MatProgressSpinnerModule,
216
- HybridViewContainerComponent,
217
- ModalViewContainerComponent,
218
- PreviewViewContainerComponent,
219
- forwardRef(() => ComponentMapperComponent)
220
- ], template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <!-- <app-reference *ngSwitchCase=\"'reference'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-reference> -->\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: displayOnlyFA$ ? viewContainerPConn$ : pConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <app-hybrid-view-container *ngSwitchCase=\"'HybridViewContainer'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-hybrid-view-container>\n <app-modal-view-container\n *ngSwitchCase=\"'ModalViewContainer'\"\n [pConn$]=\"pConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n <div *ngSwitchCase=\"''\"></div>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container\n [pConn$]=\"mConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n</div>\n", styles: [".progress-box{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-background-color);position:fixed;z-index:99999;top:0rem;left:0rem;opacity:.5}.progress-spinner{text-align:center}\n"] }]
221
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.ProgressSpinnerService }, { type: i0.NgZone }], propDecorators: { pConn$: [{
222
- type: Input
223
- }], displayOnlyFA$: [{
224
- type: Input
225
- }], isMashup$: [{
226
- type: Input
227
- }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL3Jvb3QtY29udGFpbmVyL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yb290LWNvbnRhaW5lci9yb290LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3RILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7QUFFeEc7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBZ0JuQyxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxZQUNVLGVBQXVDLEVBQ3ZDLFNBQWlDLEVBQ2pDLE1BQWM7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R2hDLHNCQUFzQjtrQkFkbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjt3QkFDM0IsNkJBQTZCO3dCQUM3QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7cUJBQzNDO3FKQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE5nWm9uZSwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWVzc2FnZXMvcHJvZ3Jlc3Mtc3Bpbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFByZXZpZXdWaWV3Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vQ29udGFpbmVycy9wcmV2aWV3LXZpZXctY29udGFpbmVyL3ByZXZpZXctdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsVmlld0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL0NvbnRhaW5lcnMvbW9kYWwtdmlldy1jb250YWluZXIvbW9kYWwtdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEh5YnJpZFZpZXdDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9Db250YWluZXJzL2h5YnJpZC12aWV3LWNvbnRhaW5lci9oeWJyaWQtdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbmNvbnN0IG9wdGlvbnMgPSB7IGNvbnRleHQ6ICdhcHAnIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yb290LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb290LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIEh5YnJpZFZpZXdDb250YWluZXJDb21wb25lbnQsXG4gICAgTW9kYWxWaWV3Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIFByZXZpZXdWaWV3Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJvb3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBkaXNwbGF5T25seUZBJDogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNNYXNodXAkOiBib29sZWFuO1xuXG4gIC8vIEZvciBpbnRlcmFjdGlvbiB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgY29tcG9uZW50TmFtZSQgPSAnJztcbiAgYklzUHJvZ3Jlc3MkID0gZmFsc2U7XG5cbiAgLy8gcHJldmlldyBhbmQgbW9kYWx2aWV3IHBDb25uXG4gIHB2Q29ubiQ6IGFueSA9IG51bGw7XG4gIG1Db25uJDogYW55ID0gbnVsbDtcblxuICBiU2hvd1Jvb3QkID0gdHJ1ZTtcblxuICBwcm9ncmVzc1NwaW5uZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgc3Bpbm5lclRpbWVyOiBhbnkgPSBudWxsO1xuICB2aWV3Q29udGFpbmVyUENvbm4kOiBhbnkgPSBudWxsO1xuICBsb2NhbGl6ZWRWYWw6IGFueTtcbiAgbG9jYWxlQ2F0ZWdvcnkgPSAnTWVzc2FnZXMnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHNTZXJ2aWNlOiBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG15Q29udGV4dCA9ICdhcHAnO1xuXG4gICAgY29uc3QgeyBjb250YWluZXJzIH0gPSBQQ29yZS5nZXRTdG9yZSgpLmdldFN0YXRlKCk7XG4gICAgY29uc3QgaXRlbXMgPSBPYmplY3Qua2V5cyhjb250YWluZXJzKS5maWx0ZXIoaXRlbSA9PiBpdGVtLmluY2x1ZGVzKCdyb290JykpO1xuXG4gICAgUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS5nZXRDb250YWluZXJBUEkoKS5hZGRDb250YWluZXJJdGVtcyhpdGVtcyk7XG5cbiAgICAvLyBhZGQgcHJldmlldyBhbmQgbW9kYWx2aWV3IGNvbnRhaW5lcnMgdG8gcmVkdXhcbiAgICAvLyBrZWVwIGxvY2FsIGNvcGllcyBvZiB0aGUgdGhlIHBDb25uZWN0IHRoYXQgaXMgcmVsYXRlZFxuXG4gICAgY29uc3QgY29uZmlnT2JqUHJldmlldyA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgdHlwZTogJ1ByZXZpZXdWaWV3Q29udGFpbmVyJyxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgbmFtZTogJ3ByZXZpZXcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvcHRpb25zXG4gICAgfSk7XG5cbiAgICB0aGlzLnB2Q29ubiQgPSBjb25maWdPYmpQcmV2aWV3LmdldFBDb25uZWN0KCk7XG5cbiAgICBjb25zdCBjb25maWdPYmpNb2RhbCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgdHlwZTogJ01vZGFsVmlld0NvbnRhaW5lcicsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIG5hbWU6ICdtb2RhbCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcGFnZVJlZmVyZW5jZTogJ3B5UG9ydGFsJyxcbiAgICAgICAgY29udGV4dDogbXlDb250ZXh0XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBjbGVhciBvdXQgaGFzVmlld0NvbnRhaW5lclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2hhc1ZpZXdDb250YWluZXInLCAnZmFsc2UnKTtcblxuICAgIHRoaXMubUNvbm4kID0gY29uZmlnT2JqTW9kYWwuZ2V0UENvbm5lY3QoKTtcblxuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgLy8gaGFuZGxlIHNob3dpbmcgYW5kIGhpZGluZyB0aGUgcHJvZ3Jlc3Mgc3Bpbm5lclxuICAgIHRoaXMucHJvZ3Jlc3NTcGlubmVyU3Vic2NyaXB0aW9uID0gdGhpcy5wc1NlcnZpY2UuZ2V0TWVzc2FnZSgpLnN1YnNjcmliZShtZXNzYWdlID0+IHtcbiAgICAgIHRoaXMuc2hvd0hpZGVQcm9ncmVzcyhtZXNzYWdlLnNob3cpO1xuICAgIH0pO1xuICAgIHRoaXMubG9jYWxpemVkVmFsID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgbW9kYWxWaXNpYmxlQ2hhbmdlZChpc1Zpc2libGUpIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5T25seUZBJCkge1xuICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICB0aGlzLmJTaG93Um9vdCQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYlNob3dSb290JCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICAvLyBuZWVkIHRvIGNhbGwgdGhpcy5nZXRDdXJyZW50Q29tcGxldGVQcm9wcyAobm90IHRoaXMudGhlUENvbm4uZ2V0Q29uZmlnUHJvcHMpXG4gICAgLy8gIHRvIGdldCBmdWxsIHNldCBvZiBwcm9wcyB0aGF0IGFmZmVjdCB0aGlzIGNvbXBvbmVudCBpbiBSZWR1eFxuICAgIGNvbnN0IG15UHJvcHM6IGFueSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldEN1cnJlbnRDb21wbGV0ZVByb3BzKHRoaXMpO1xuXG4gICAgY29uc3QgcmVuZGVyaW5nTW9kZXMgPSBbJ3BvcnRhbCcsICd2aWV3J107XG4gICAgY29uc3Qgbm9Qb3J0YWxNb2RlID0gJ25vUG9ydGFsJztcblxuICAgIGNvbnN0IHsgcmVuZGVyaW5nTW9kZSwgY2hpbGRyZW4sIHNrZWxldG9uLCByb3V0aW5nSW5mbyB9ID0gbXlQcm9wcztcblxuICAgIGlmIChyb3V0aW5nSW5mbyAmJiByZW5kZXJpbmdNb2Rlcy5pbmNsdWRlcyhyZW5kZXJpbmdNb2RlKSkge1xuICAgICAgY29uc3QgeyBhY2Nlc3NlZE9yZGVyLCBpdGVtcyB9ID0gcm91dGluZ0luZm87XG4gICAgICBpZiAoYWNjZXNzZWRPcmRlciAmJiBpdGVtcykge1xuICAgICAgICAvLyBib290c3RyYXAgbG9hZFBvcnRhbCByZXNvbHZlcyB0byBoZXJlXG4gICAgICAgIGNvbnN0IGtleSA9IGFjY2Vzc2VkT3JkZXJbYWNjZXNzZWRPcmRlci5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKGl0ZW1zW2tleV0gJiYgaXRlbXNba2V5XS52aWV3ICYmIE9iamVjdC5rZXlzKGl0ZW1zW2tleV0udmlldykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGl0ZW1WaWV3ID0gaXRlbXNba2V5XS52aWV3O1xuXG4gICAgICAgICAgY29uc3Qgcm9vdE9iamVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgICAgICAgIG1ldGE6IGl0ZW1WaWV3LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBjb250ZXh0OiBpdGVtc1trZXldLmNvbnRleHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gbWFrZXMgc3VyZSBBbmd1bGFyIHRyYWNrcyB0aGVzZSBjaGFuZ2VzXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAvLyB0aGUgbmV3IHJvb3RPYmplY3QgbWF5IGJlIGEgJ3JlZmVyZW5jZScuIFNvLFxuICAgICAgICAgICAgICAvLyAgbm9ybWFsaXplIGl0IHRvIGdldCB0aGUgcmVmZXJlbmNlZFZpZXcgaWYgdGhhdCdzIHRoZSBjYXNlXG4gICAgICAgICAgICAgIGNvbnN0IHRoZU5ld1BDb25uID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uKHJvb3RPYmplY3QuZ2V0UENvbm5lY3QoKSk7XG4gICAgICAgICAgICAgIC8vIHVwZGF0ZSBDb21wb25lbnROYW1lJCBiZWZvcmUgd2UgdXBkYXRlIHBDb25uJCB0byBtYWtlIHN1cmUgdGhleSdyZSBpbiBzeW5jXG4gICAgICAgICAgICAgIC8vICB3aGVuIHJlbmRlcmluZy4uLlxuICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudE5hbWUkID0gdGhlTmV3UENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpO1xuXG4gICAgICAgICAgICAgIHRoaXMucENvbm4kID0gdGhlTmV3UENvbm47XG4gICAgICAgICAgICAgIC8vIHRoaXMucENvbm4kID0gcm9vdE9iamVjdC5nZXRQQ29ubmVjdCgpO1xuXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBSb290Q29udGFpbmVyIHVwZGF0ZWQgcENvbm4kIHRvIGJlOiAke3RoaXMuY29tcG9uZW50TmFtZSR9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocmVuZGVyaW5nTW9kZSA9PT0gbm9Qb3J0YWxNb2RlKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgUm9vdENvbnRhaW5lcjogcmVuZGVyaW5nTW9kZSA9PT0gbm9Qb3J0YWxNb2RlOiAke25vUG9ydGFsTW9kZX1gKTtcbiAgICAgIHRoaXMuZ2VuZXJhdGVWaWV3Q29udGFpbmVyRm9yTm9Qb3J0YWwoKTtcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIGhhdmVuJ3QgcmVzb2x2ZWQgdG8gaGVyZVxuICAgIH0gZWxzZSBpZiAoc2tlbGV0b24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gVE9ETzogbmVlZCB0byB1cGRhdGUgb25jZSBza2VsZXRvbnMgYXJlIGF2YWlsYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZW5lcmF0ZVZpZXdDb250YWluZXJGb3JOb1BvcnRhbCgpIHtcbiAgICAvLyBib290c3RyYXAgbG9hZE1hc2h1cCByZXNvbHZlcyB0byBoZXJlXG4gICAgY29uc3QgYXJDaGlsZHJlbiA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgaWYgKGFyQ2hpbGRyZW4gJiYgYXJDaGlsZHJlbi5sZW5ndGggPT0gMSkge1xuICAgICAgLy8gaGF2ZSB0byBoYXZlIGEgcXVpY2sgdGltZW91dCBvciBnZXQgYW4gXCJleHByZXNzaW9ucyBjaGFuZ2VkXCIgYW5ndWxhciBlcnJvclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbG9jYWxQQ29ubiA9IGFyQ2hpbGRyZW5bMF0uZ2V0UENvbm5lY3QoKTtcblxuICAgICAgICAgIHRoaXMuY29tcG9uZW50TmFtZSQgPSBsb2NhbFBDb25uLmdldENvbXBvbmVudE5hbWUoKTtcbiAgICAgICAgICBpZiAodGhpcy5jb21wb25lbnROYW1lJCA9PT0gJ1ZpZXdDb250YWluZXInKSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWdQcm9wcyA9IHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCk7XG4gICAgICAgICAgICBjb25zdCB2aWV3Q29udENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgbWV0YToge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdWaWV3Q29udGFpbmVyJyxcbiAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZ1Byb3BzXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lclBDb25uJCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHZpZXdDb250Q29uZmlnKS5nZXRQQ29ubmVjdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmJTaG93Um9vdCQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNob3dIaWRlUHJvZ3Jlc3MoYlNob3c6IGJvb2xlYW4pIHtcbiAgICAvLyBvbmx5IHNob3cgc3Bpbm5lciBhZnRlciA1MDBtcyB3YWl0LCBzbyBpZiBzZXJ2ZXIgZmFzdCwgd29uJ3Qgc2VlXG4gICAgaWYgKGJTaG93KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1jb2xsYXBzaWJsZS1pZlxuICAgICAgaWYgKCF0aGlzLmJJc1Byb2dyZXNzJCkge1xuICAgICAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICAgICAgaWYgKCF0aGlzLnNwaW5uZXJUaW1lciB8fCB0aGlzLnNwaW5uZXJUaW1lci5pc1N0b3BwZWQpIHtcbiAgICAgICAgICB0aGlzLnNwaW5uZXJUaW1lciA9IGludGVydmFsKDUwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHRoaXMuc3Bpbm5lclRpbWVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgICAgICAvKiBlbXB0eSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmJJc1Byb2dyZXNzJCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zcGlubmVyVGltZXIgJiYgIXRoaXMuc3Bpbm5lclRpbWVyLmlzU3RvcHBlZCkge1xuICAgICAgICB0aGlzLnNwaW5uZXJUaW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBkb24ndCB0b3VjaCBiSXNQcm9ncmVzcyQgdW5sZXNzIGRpZmZlcm5lbnRcbiAgICAgIGlmIChiU2hvdyAhPSB0aGlzLmJJc1Byb2dyZXNzJCkge1xuICAgICAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmJJc1Byb2dyZXNzJCA9IGJTaG93O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwcm9ncmVzcy1ib3hcIiAqbmdJZj1cImJJc1Byb2dyZXNzJFwiPlxuICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJwcm9ncmVzcy1zcGlubmVyXCI+PC9tYXQtc3Bpbm5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiYlNob3dSb290JFwiPlxuICA8ZGl2IFtuZ1N3aXRjaF09XCJjb21wb25lbnROYW1lJFwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyICpuZ1N3aXRjaENhc2U9XCInVmlldydcIiBuYW1lPVwiVmlld1wiIFtwcm9wc109XCJ7IHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8IS0tIDxhcHAtcmVmZXJlbmNlICpuZ1N3aXRjaENhc2U9XCIncmVmZXJlbmNlJ1wiIFtwQ29ubiRdPVwicENvbm4kXCIgW2Rpc3BsYXlPbmx5RkEkXT1cImRpc3BsYXlPbmx5RkEkXCI+PC9hcHAtcmVmZXJlbmNlPiAtLT5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidWaWV3Q29udGFpbmVyJ1wiXG4gICAgICBuYW1lPVwiVmlld0NvbnRhaW5lclwiXG4gICAgICBbcHJvcHNdPVwieyBwQ29ubiQ6IGRpc3BsYXlPbmx5RkEkID8gdmlld0NvbnRhaW5lclBDb25uJCA6IHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8YXBwLWh5YnJpZC12aWV3LWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0h5YnJpZFZpZXdDb250YWluZXInXCIgW3BDb25uJF09XCJwQ29ubiRcIiBbZGlzcGxheU9ubHlGQSRdPVwiZGlzcGxheU9ubHlGQSRcIj48L2FwcC1oeWJyaWQtdmlldy1jb250YWluZXI+XG4gICAgPGFwcC1tb2RhbC12aWV3LWNvbnRhaW5lclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidNb2RhbFZpZXdDb250YWluZXInXCJcbiAgICAgIFtwQ29ubiRdPVwicENvbm4kXCJcbiAgICAgIFtkaXNwbGF5T25seUZBJF09XCJkaXNwbGF5T25seUZBJFwiXG4gICAgICAobW9kYWxWaXNpYmxlQ2hhbmdlKT1cIm1vZGFsVmlzaWJsZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgPjwvYXBwLW1vZGFsLXZpZXctY29udGFpbmVyPlxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIicnXCI+PC9kaXY+XG4gICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0Pnt7IGxvY2FsaXplZFZhbCgnUm9vdENvbnRhaW5lciBNaXNzaW5nOiAnICsgY29tcG9uZW50TmFtZSQsIGxvY2FsZUNhdGVnb3J5KSB9fS48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInB2Q29ubiQgIT0gbnVsbFwiPlxuICA8YXBwLXByZXZpZXctdmlldy1jb250YWluZXIgW3BDb25uJF09XCJwdkNvbm4kXCI+PC9hcHAtcHJldmlldy12aWV3LWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwibUNvbm4kICE9IG51bGxcIj5cbiAgPGFwcC1tb2RhbC12aWV3LWNvbnRhaW5lclxuICAgIFtwQ29ubiRdPVwibUNvbm4kXCJcbiAgICBbZGlzcGxheU9ubHlGQSRdPVwiZGlzcGxheU9ubHlGQSRcIlxuICAgIChtb2RhbFZpc2libGVDaGFuZ2UpPVwibW9kYWxWaXNpYmxlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgPjwvYXBwLW1vZGFsLXZpZXctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -1,62 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { interval } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../_bridge/angular-pconnect";
6
- import * as i2 from "../../../_helpers/utils";
7
- import * as i3 from "@angular/common";
8
- export class StagesComponent {
9
- constructor(angularPConnect, utils) {
10
- this.angularPConnect = angularPConnect;
11
- this.utils = utils;
12
- // Used with AngularPConnect
13
- this.angularPConnectData = {};
14
- this.PCore$ = PCore;
15
- }
16
- ngOnInit() {
17
- // First thing in initialization is registering and subscribing to the AngularPConnect service
18
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
19
- // const imagePath = this.utils.getIconPath(this.utils.getSDKStaticContentUrl());
20
- this.checkSvgIcon$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());
21
- this.key = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();
22
- }
23
- ngOnDestroy() {
24
- if (this.angularPConnectData.unsubscribeFn) {
25
- this.angularPConnectData.unsubscribeFn();
26
- }
27
- }
28
- // Callback passed when subscribing to store change
29
- onStateChange() {
30
- this.checkAndUpdate();
31
- }
32
- checkAndUpdate() {
33
- // Should always check the bridge to see if the component should
34
- // update itself (re-render)
35
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
36
- // ONLY call updateSelf when the component should update
37
- if (bUpdateSelf) {
38
- this.updateSelf();
39
- }
40
- }
41
- updateSelf() {
42
- this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
43
- const timer = interval(50).subscribe(() => {
44
- timer.unsubscribe();
45
- const arStages = this.angularPConnect.getComponentProp(this, 'stages');
46
- // this.stageResults$ = this.configProps$.stages;
47
- if (arStages != null) {
48
- this.arStageResults$ = arStages;
49
- this.lastStage$ = this.arStageResults$[this.arStageResults$.length - 1];
50
- }
51
- });
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: StagesComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: StagesComponent, isStandalone: true, selector: "app-stages", inputs: { pConn$: "pConn$" }, ngImport: i0, template: "<div class=\"psdk-stages-bar\">\n <div class=\"psdk-stages-chevron\" *ngFor=\"let stage of arStageResults$\">\n <div *ngIf=\"stage.visited_status == 'completed'\" class=\"psdk-stages-inner-past\">\n <img class=\"psdk-stages-icon\" src=\"{{ checkSvgIcon$ }}\" />{{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n <div *ngIf=\"stage.visited_status == 'active'\" class=\"psdk-stages-inner-present\">\n {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n <div *ngIf=\"stage.visited_status == 'future'\" class=\"psdk-stages-inner-future\">\n {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n </div>\n</div>\n\n<div class=\"psdk-stages-divider\"></div>\n", styles: [".psdk-stages{padding:.625rem 0rem}.psdk-stages-span span{padding:.3125rem;font-weight:700;font-size:1.5rem}.psdk-stages-div{display:inline-flex;padding:.3125rem;font-weight:700;font-size:1.3rem;color:var(--app-neutral-color)}.psdk-stages-past{color:var(--app-primary-color);padding-right:.3125rem}.psdk-stages-present{color:var(--app-secondary-color);padding-right:.3125rem}.psdk-stages-future{color:var(--app-neutral-color);padding-right:.3125rem}.psdk-stages-full{display:block}.psdk-stages-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-stages-icon{width:1.4rem;display:inline-block;vertical-align:top}.psdk-stages-bar{margin:1rem 0rem;background-color:var(--app-form-color);border-radius:.5rem;border:.0625rem solid var(--app-neutral-light-color);overflow:hidden;display:flex;flex-wrap:wrap}.psdk-stages-chevron{position:relative;padding:.5rem;display:flex;justify-content:center;align-items:center;max-width:100%;min-width:0px;flex-grow:1;flex-shrink:1}.psdk-stages-chevron:not(:last-child):after{content:\"\";position:absolute;display:block;z-index:2;width:1.75rem;right:-.4375rem;background:inherit;border-style:solid;border-color:#cfcfcf;border-width:.0625rem .0625rem 0px 0px;border-radius:0px .3125rem 0px 0px;transform:rotate(45deg) skew(15deg,15deg);height:2rem}.psdk-stages-inner-past{color:var(--app-inverse-form-color);font-size:1rem}.psdk-stages-inner-present{color:var(--app-primary-color);font-weight:700;font-size:1rem}.psdk-stages-inner-future{color:var(--app-neutral-color);font-size:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: StagesComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'app-stages', standalone: true, imports: [CommonModule], template: "<div class=\"psdk-stages-bar\">\n <div class=\"psdk-stages-chevron\" *ngFor=\"let stage of arStageResults$\">\n <div *ngIf=\"stage.visited_status == 'completed'\" class=\"psdk-stages-inner-past\">\n <img class=\"psdk-stages-icon\" src=\"{{ checkSvgIcon$ }}\" />{{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n <div *ngIf=\"stage.visited_status == 'active'\" class=\"psdk-stages-inner-present\">\n {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n <div *ngIf=\"stage.visited_status == 'future'\" class=\"psdk-stages-inner-future\">\n {{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}\n </div>\n </div>\n</div>\n\n<div class=\"psdk-stages-divider\"></div>\n", styles: [".psdk-stages{padding:.625rem 0rem}.psdk-stages-span span{padding:.3125rem;font-weight:700;font-size:1.5rem}.psdk-stages-div{display:inline-flex;padding:.3125rem;font-weight:700;font-size:1.3rem;color:var(--app-neutral-color)}.psdk-stages-past{color:var(--app-primary-color);padding-right:.3125rem}.psdk-stages-present{color:var(--app-secondary-color);padding-right:.3125rem}.psdk-stages-future{color:var(--app-neutral-color);padding-right:.3125rem}.psdk-stages-full{display:block}.psdk-stages-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-stages-icon{width:1.4rem;display:inline-block;vertical-align:top}.psdk-stages-bar{margin:1rem 0rem;background-color:var(--app-form-color);border-radius:.5rem;border:.0625rem solid var(--app-neutral-light-color);overflow:hidden;display:flex;flex-wrap:wrap}.psdk-stages-chevron{position:relative;padding:.5rem;display:flex;justify-content:center;align-items:center;max-width:100%;min-width:0px;flex-grow:1;flex-shrink:1}.psdk-stages-chevron:not(:last-child):after{content:\"\";position:absolute;display:block;z-index:2;width:1.75rem;right:-.4375rem;background:inherit;border-style:solid;border-color:#cfcfcf;border-width:.0625rem .0625rem 0px 0px;border-radius:0px .3125rem 0px 0px;transform:rotate(45deg) skew(15deg,15deg);height:2rem}.psdk-stages-inner-past{color:var(--app-inverse-form-color);font-size:1rem}.psdk-stages-inner-present{color:var(--app-primary-color);font-weight:700;font-size:1rem}.psdk-stages-inner-future{color:var(--app-neutral-color);font-size:1rem}\n"] }]
59
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.Utils }], propDecorators: { pConn$: [{
60
- type: Input
61
- }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9zdGFnZXMvc3RhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9zdGFnZXMvc3RhZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQWdCaEMsTUFBTSxPQUFPLGVBQWU7SUFhMUIsWUFDVSxlQUF1QyxFQUN2QyxLQUFZO1FBRFosb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFVBQUssR0FBTCxLQUFLLENBQU87UUFadEIsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFDOUMsV0FBTSxHQUFpQixLQUFLLENBQUM7SUFXMUIsQ0FBQztJQUVKLFFBQVE7UUFDTiw4RkFBOEY7UUFDOUYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RyxpRkFBaUY7UUFDakYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELGFBQWE7UUFDWCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixnRUFBZ0U7UUFDaEUsNEJBQTRCO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckUsd0RBQXdEO1FBQ3hELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFnQixDQUFDO1FBRWhHLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUVwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUV2RSxpREFBaUQ7WUFDakQsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EvRFUsZUFBZTttR0FBZixlQUFlLG9HQ2xCNUIsMnZCQWVBLDRqRERDWSxZQUFZOzs0RkFFWCxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7K0dBR2QsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcblxuaW50ZXJmYWNlIFN0YWdlc1Byb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBzdGFnZXM6IGFueVtdO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc3RhZ2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YWdlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0YWdlcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTdGFnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBQQ29yZSQ6IHR5cGVvZiBQQ29yZSA9IFBDb3JlO1xuICBjb25maWdQcm9wcyQ6IFN0YWdlc1Byb3BzO1xuXG4gIGFyU3RhZ2VSZXN1bHRzJDogYW55W107XG4gIGxhc3RTdGFnZSQ6IGFueTtcbiAgY2hlY2tTdmdJY29uJDogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyBjb25zdCBpbWFnZVBhdGggPSB0aGlzLnV0aWxzLmdldEljb25QYXRoKHRoaXMudXRpbHMuZ2V0U0RLU3RhdGljQ29udGVudFVybCgpKTtcbiAgICB0aGlzLmNoZWNrU3ZnSWNvbiQgPSB0aGlzLnV0aWxzLmdldEltYWdlU3JjKCdjaGVjaycsIHRoaXMudXRpbHMuZ2V0U0RLU3RhdGljQ29udGVudFVybCgpKTtcbiAgICB0aGlzLmtleSA9IGAke3RoaXMucENvbm4kLmdldENhc2VJbmZvKCkuZ2V0Q2xhc3NOYW1lKCl9IUNBU0UhJHt0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpLmdldE5hbWUoKX1gLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIHRoaXMuY29uZmlnUHJvcHMkID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkpIGFzIFN0YWdlc1Byb3BzO1xuXG4gICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCg1MCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRpbWVyLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgIGNvbnN0IGFyU3RhZ2VzID0gdGhpcy5hbmd1bGFyUENvbm5lY3QuZ2V0Q29tcG9uZW50UHJvcCh0aGlzLCAnc3RhZ2VzJyk7XG5cbiAgICAgIC8vIHRoaXMuc3RhZ2VSZXN1bHRzJCA9IHRoaXMuY29uZmlnUHJvcHMkLnN0YWdlcztcbiAgICAgIGlmIChhclN0YWdlcyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuYXJTdGFnZVJlc3VsdHMkID0gYXJTdGFnZXM7XG4gICAgICAgIHRoaXMubGFzdFN0YWdlJCA9IHRoaXMuYXJTdGFnZVJlc3VsdHMkW3RoaXMuYXJTdGFnZVJlc3VsdHMkLmxlbmd0aCAtIDFdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHNkay1zdGFnZXMtYmFyXCI+XG4gIDxkaXYgY2xhc3M9XCJwc2RrLXN0YWdlcy1jaGV2cm9uXCIgKm5nRm9yPVwibGV0IHN0YWdlIG9mIGFyU3RhZ2VSZXN1bHRzJFwiPlxuICAgIDxkaXYgKm5nSWY9XCJzdGFnZS52aXNpdGVkX3N0YXR1cyA9PSAnY29tcGxldGVkJ1wiIGNsYXNzPVwicHNkay1zdGFnZXMtaW5uZXItcGFzdFwiPlxuICAgICAgPGltZyBjbGFzcz1cInBzZGstc3RhZ2VzLWljb25cIiBzcmM9XCJ7eyBjaGVja1N2Z0ljb24kIH19XCIgLz57eyBQQ29yZSQuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZShzdGFnZS5uYW1lLCAnJywga2V5KSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzdGFnZS52aXNpdGVkX3N0YXR1cyA9PSAnYWN0aXZlJ1wiIGNsYXNzPVwicHNkay1zdGFnZXMtaW5uZXItcHJlc2VudFwiPlxuICAgICAge3sgUENvcmUkLmdldExvY2FsZVV0aWxzKCkuZ2V0TG9jYWxlVmFsdWUoc3RhZ2UubmFtZSwgJycsIGtleSkgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwic3RhZ2UudmlzaXRlZF9zdGF0dXMgPT0gJ2Z1dHVyZSdcIiBjbGFzcz1cInBzZGstc3RhZ2VzLWlubmVyLWZ1dHVyZVwiPlxuICAgICAge3sgUENvcmUkLmdldExvY2FsZVV0aWxzKCkuZ2V0TG9jYWxlVmFsdWUoc3RhZ2UubmFtZSwgJycsIGtleSkgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInBzZGstc3RhZ2VzLWRpdmlkZXJcIj48L2Rpdj5cbiJdfQ==
@@ -1,188 +0,0 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { getAllFields } from '../../template/utils';
4
- import { ReferenceComponent } from '../reference/reference.component';
5
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../_bridge/angular-pconnect";
8
- import * as i2 from "../../../_helpers/utils";
9
- import * as i3 from "@angular/common";
10
- const NO_HEADER_TEMPLATES = ['SubTabs', 'SimpleTable', 'Confirmation', 'DynamicTabs', 'DetailsSubTabs'];
11
- const DETAILS_TEMPLATES = [
12
- 'Details',
13
- 'DetailsFields',
14
- 'DetailsOneColumn',
15
- 'DetailsSubTabs',
16
- 'DetailsThreeColumn',
17
- 'DetailsTwoColumn',
18
- 'NarrowWideDetails',
19
- 'WideNarrowDetails'
20
- ];
21
- function isDetailsTemplate(template) {
22
- return DETAILS_TEMPLATES.includes(template);
23
- }
24
- /**
25
- * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
26
- * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
27
- * is totally at your own risk.
28
- */
29
- /**
30
- *
31
- * @param pConnn - PConnect Object
32
- * @returns visibility expression result if exists, otherwise true
33
- */
34
- function evaluateVisibility(pConnn) {
35
- let bVisibility = true;
36
- const sVisibility = pConnn.meta.config.visibility;
37
- if (sVisibility && sVisibility.length) {
38
- // e.g. "@E .EmbeddedData_SelectedTestName == 'Readonly' && .EmbeddedData_SelectedSubCategory == 'Mode'"
39
- const aVisibility = sVisibility.split('&&');
40
- // e.g. ["EmbeddedData_SelectedTestName": "Readonly", "EmbeddedData_SelectedSubCategory": "Mode"]
41
- const context = pConnn.getContextName();
42
- // Reading values from the Store to evaluate the visibility expressions
43
- const storeData = PCore.getStore().getState()?.data[context].caseInfo.content;
44
- const initialVal = {};
45
- const oProperties = aVisibility.reduce((properties, property) => {
46
- const keyStartIndex = property.indexOf('.');
47
- const keyEndIndex = property.indexOf('=') - 1;
48
- const valueStartIndex = property.indexOf("'");
49
- const valueEndIndex = property.lastIndexOf("'") - 1;
50
- return {
51
- ...properties,
52
- [property.substr(keyStartIndex + 1, keyEndIndex - keyStartIndex - 1)]: property.substr(valueStartIndex + 1, valueEndIndex - valueStartIndex)
53
- };
54
- }, initialVal);
55
- const propertyKeys = Object.keys(oProperties);
56
- const propertyValues = Object.values(oProperties);
57
- for (let propertyIndex = 0; propertyIndex < propertyKeys.length; propertyIndex++) {
58
- if (storeData[propertyKeys[propertyIndex]] !== propertyValues[propertyIndex]) {
59
- bVisibility = false;
60
- }
61
- }
62
- }
63
- return bVisibility;
64
- }
65
- export class ViewComponent {
66
- constructor(angularPConnect, utils) {
67
- this.angularPConnect = angularPConnect;
68
- this.utils = utils;
69
- // @Input() updateToken$: number;
70
- this.angularPConnectData = {};
71
- this.noHeaderTemplates = NO_HEADER_TEMPLATES;
72
- this.title$ = '';
73
- this.label$ = '';
74
- this.showLabel$ = false;
75
- this.visibility$ = true;
76
- }
77
- ngOnInit() {
78
- // First thing in initialization is registering and subscribing to the AngularPConnect service
79
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
80
- this.checkAndUpdate();
81
- }
82
- // Callback passed when subscribing to store change
83
- onStateChange() {
84
- this.checkAndUpdate();
85
- }
86
- checkAndUpdate() {
87
- // Should always check the bridge to see if the component should
88
- // update itself (re-render)
89
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
90
- // ONLY call updateSelf when the component should update
91
- if (bUpdateSelf) {
92
- this.updateSelf();
93
- }
94
- }
95
- ngOnChanges(changes) {
96
- const { pConn$ } = changes;
97
- if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {
98
- this.checkAndUpdate();
99
- }
100
- }
101
- updateSelf() {
102
- if (this.angularPConnect.getComponentID(this) === undefined) {
103
- return;
104
- }
105
- // debugger;
106
- // normalize this.pConn$ in case it contains a 'reference'
107
- this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);
108
- this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
109
- this.inheritedProps$ = this.pConn$.getInheritedProps();
110
- // NOTE: this.configProps$.visibility'] is used in view.component.ts such that
111
- // the View will only be rendered when this.configProps$.visibility'] is false.
112
- // It WILL render if true or undefined.
113
- this.templateName$ = this.configProps$.template || '';
114
- this.title$ = this.configProps$.title || '';
115
- this.label$ = this.configProps$.label || '';
116
- this.showLabel$ = this.configProps$.showLabel || isDetailsTemplate(this.templateName$) || this.showLabel$;
117
- // label & showLabel within inheritedProps takes precedence over configProps
118
- this.label$ = this.inheritedProps$.label || this.label$;
119
- this.showLabel$ = this.inheritedProps$.showLabel || this.showLabel$;
120
- // children may have a 'reference' so normalize the children array
121
- this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
122
- this.visibility$ = this.configProps$.visibility ?? this.visibility$;
123
- /**
124
- * In instances where there is context, like with "shippingAddress," the pageReference becomes "caseInfo.content.shippingAddress."
125
- * This leads to problems in the getProperty API, as it incorrectly assesses the visibility condition by looking in the wrong location
126
- * in the Store for the property values. Reference component should be able to handle such scenarios(as done in SDK-R) since it has the
127
- * expected pageReference values, the View component currently cannot handle this.
128
- * The resolution lies in transferring this responsibility to the Reference component, eliminating the need for this code when Reference
129
- * component is able to handle it.
130
- */
131
- if (!this.configProps$.visibility && this.pConn$.getPageReference().length > 'caseInfo.content'.length) {
132
- this.visibility$ = evaluateVisibility(this.pConn$);
133
- }
134
- // was: this.arChildren$ = this.pConn$.getChildren() as Array<any>;
135
- // debug
136
- // let kidList: string = "";
137
- // for (let i in this.arChildren$) {
138
- // kidList = kidList.concat(this.arChildren$[i].getPConnect().getComponentName()).concat(",");
139
- // }
140
- // console.log("-->view update: " + this.angularPConnect.getComponentID(this) + ", template: " + this.templateName$ + ", kids: " + kidList);
141
- }
142
- // JA - adapting additionalProps from Nebula/Constellation version which uses static methods
143
- // on the component classes stored in PComponents (that Angular doesn't have)...
144
- additionalProps(state, getPConnect) {
145
- let propObj = {};
146
- // We already have the template name in this.templateName$
147
- if (this.templateName$ !== '') {
148
- let allFields = {};
149
- // These uses are adapted from Nebula/Constellation CaseSummary.additionalProps
150
- switch (this.templateName$) {
151
- case 'CaseSummary':
152
- allFields = getAllFields(getPConnect);
153
- // eslint-disable-next-line no-case-declarations
154
- const unresFields = {
155
- primaryFields: allFields[0],
156
- secondaryFields: allFields[1]
157
- };
158
- propObj = getPConnect.resolveConfigProps(unresFields);
159
- break;
160
- case 'Details':
161
- allFields = getAllFields(getPConnect);
162
- propObj = { fields: allFields[0] };
163
- break;
164
- default:
165
- break;
166
- }
167
- }
168
- return propObj;
169
- }
170
- ngOnDestroy() {
171
- if (this.angularPConnectData.unsubscribeFn) {
172
- this.angularPConnectData.unsubscribeFn();
173
- }
174
- }
175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ViewComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ViewComponent, isStandalone: true, selector: "app-view", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", displayOnlyFA$: "displayOnlyFA$" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"visibility$ !== false\" class=\"ng-view-top\">\n <div *ngIf=\"showLabel$ && label$ && !noHeaderTemplates.includes(templateName$)\" class=\"template-title-container\">\n <span>{{ label$ }}</span>\n </div>\n\n <ng-container *ngIf=\"templateName$; else noTemplate\">\n <div>\n <component-mapper\n [name]=\"templateName$\"\n [props]=\"{ formGroup$, pConn$, displayOnlyFA$ }\"\n errorMsg=\"View template not recognized: [{{ templateName$ }}]\"\n ></component-mapper>\n </div>\n </ng-container>\n\n <ng-template #noTemplate>\n <div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{ pConn$: kid.getPConnect() }\"\n errorMsg=\"View Missing (displayAll): {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n</div>\n", styles: ["h3{margin-left:.8rem}.ng-view-top{padding:0}.template-title-container{display:flex;justify-content:space-between;align-items:center;font-size:.9375rem;font-weight:600;padding:1rem 0}\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: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
177
- }
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ViewComponent, decorators: [{
179
- type: Component,
180
- args: [{ selector: 'app-view', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"visibility$ !== false\" class=\"ng-view-top\">\n <div *ngIf=\"showLabel$ && label$ && !noHeaderTemplates.includes(templateName$)\" class=\"template-title-container\">\n <span>{{ label$ }}</span>\n </div>\n\n <ng-container *ngIf=\"templateName$; else noTemplate\">\n <div>\n <component-mapper\n [name]=\"templateName$\"\n [props]=\"{ formGroup$, pConn$, displayOnlyFA$ }\"\n errorMsg=\"View template not recognized: [{{ templateName$ }}]\"\n ></component-mapper>\n </div>\n </ng-container>\n\n <ng-template #noTemplate>\n <div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{ pConn$: kid.getPConnect() }\"\n errorMsg=\"View Missing (displayAll): {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n</div>\n", styles: ["h3{margin-left:.8rem}.ng-view-top{padding:0}.template-title-container{display:flex;justify-content:space-between;align-items:center;font-size:.9375rem;font-weight:600;padding:1rem 0}\n"] }]
181
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.Utils }], propDecorators: { pConn$: [{
182
- type: Input
183
- }], formGroup$: [{
184
- type: Input
185
- }], displayOnlyFA$: [{
186
- type: Input
187
- }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvaW5mcmEvdmlldy92aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS92aWV3L3ZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQUV4RyxNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDeEcsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixTQUFTO0lBQ1QsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0NBQ3BCLENBQUM7QUFFRixTQUFTLGlCQUFpQixDQUFDLFFBQVE7SUFDakMsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFFSDs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxNQUFNO0lB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QyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOytHQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBnZXRBbGxGaWVsZHMgfSBmcm9tICcuLi8uLi90ZW1wbGF0ZS91dGlscyc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5jb25zdCBOT19IRUFERVJfVEVNUExBVEVTID0gWydTdWJUYWJzJywgJ1NpbXBsZVRhYmxlJywgJ0NvbmZpcm1hdGlvbicsICdEeW5hbWljVGFicycsICdEZXRhaWxzU3ViVGFicyddO1xuY29uc3QgREVUQUlMU19URU1QTEFURVMgPSBbXG4gICdEZXRhaWxzJyxcbiAgJ0RldGFpbHNGaWVsZHMnLFxuICAnRGV0YWlsc09uZUNvbHVtbicsXG4gICdEZXRhaWxzU3ViVGFicycsXG4gICdEZXRhaWxzVGhyZWVDb2x1bW4nLFxuICAnRGV0YWlsc1R3b0NvbHVtbicsXG4gICdOYXJyb3dXaWRlRGV0YWlscycsXG4gICdXaWRlTmFycm93RGV0YWlscydcbl07XG5cbmZ1bmN0aW9uIGlzRGV0YWlsc1RlbXBsYXRlKHRlbXBsYXRlKSB7XG4gIHJldHVybiBERVRBSUxTX1RFTVBMQVRFUy5pbmNsdWRlcyh0ZW1wbGF0ZSk7XG59XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbi8qKlxuICpcbiAqIEBwYXJhbSBwQ29ubm4gLSBQQ29ubmVjdCBPYmplY3RcbiAqIEByZXR1cm5zIHZpc2liaWxpdHkgZXhwcmVzc2lvbiByZXN1bHQgaWYgZXhpc3RzLCBvdGhlcndpc2UgdHJ1ZVxuICovXG5mdW5jdGlvbiBldmFsdWF0ZVZpc2liaWxpdHkocENvbm5uKSB7XG4gIGxldCBiVmlzaWJpbGl0eSA9IHRydWU7XG4gIGNvbnN0IHNWaXNpYmlsaXR5ID0gcENvbm5uLm1ldGEuY29uZmlnLnZpc2liaWxpdHk7XG4gIGlmIChzVmlzaWJpbGl0eSAmJiBzVmlzaWJpbGl0eS5sZW5ndGgpIHtcbiAgICAvLyBlLmcuIFwiQEUgLkVtYmVkZGVkRGF0YV9TZWxlY3RlZFRlc3ROYW1lID09ICdSZWFkb25seScgJiYgLkVtYmVkZGVkRGF0YV9TZWxlY3RlZFN1YkNhdGVnb3J5ID09ICdNb2RlJ1wiXG4gICAgY29uc3QgYVZpc2liaWxpdHkgPSBzVmlzaWJpbGl0eS5zcGxpdCgnJiYnKTtcbiAgICAvLyBlLmcuIFtcIkVtYmVkZGVkRGF0YV9TZWxlY3RlZFRlc3ROYW1lXCI6IFwiUmVhZG9ubHlcIiwgXCJFbWJlZGRlZERhdGFfU2VsZWN0ZWRTdWJDYXRlZ29yeVwiOiBcIk1vZGVcIl1cbiAgICBjb25zdCBjb250ZXh0ID0gcENvbm5uLmdldENvbnRleHROYW1lKCk7XG4gICAgLy8gUmVhZGluZyB2YWx1ZXMgZnJvbSB0aGUgU3RvcmUgdG8gZXZhbHVhdGUgdGhlIHZpc2liaWxpdHkgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBzdG9yZURhdGEgPSBQQ29yZS5nZXRTdG9yZSgpLmdldFN0YXRlKCk/LmRhdGFbY29udGV4dF0uY2FzZUluZm8uY29udGVudDtcblxuICAgIGNvbnN0IGluaXRpYWxWYWwgPSB7fTtcbiAgICBjb25zdCBvUHJvcGVydGllcyA9IGFWaXNpYmlsaXR5LnJlZHVjZSgocHJvcGVydGllcywgcHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IGtleVN0YXJ0SW5kZXggPSBwcm9wZXJ0eS5pbmRleE9mKCcuJyk7XG4gICAgICBjb25zdCBrZXlFbmRJbmRleCA9IHByb3BlcnR5LmluZGV4T2YoJz0nKSAtIDE7XG4gICAgICBjb25zdCB2YWx1ZVN0YXJ0SW5kZXggPSBwcm9wZXJ0eS5pbmRleE9mKFwiJ1wiKTtcbiAgICAgIGNvbnN0IHZhbHVlRW5kSW5kZXggPSBwcm9wZXJ0eS5sYXN0SW5kZXhPZihcIidcIikgLSAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgW3Byb3BlcnR5LnN1YnN0cihrZXlTdGFydEluZGV4ICsgMSwga2V5RW5kSW5kZXggLSBrZXlTdGFydEluZGV4IC0gMSldOiBwcm9wZXJ0eS5zdWJzdHIodmFsdWVTdGFydEluZGV4ICsgMSwgdmFsdWVFbmRJbmRleCAtIHZhbHVlU3RhcnRJbmRleClcbiAgICAgIH07XG4gICAgfSwgaW5pdGlhbFZhbCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eUtleXMgPSBPYmplY3Qua2V5cyhvUHJvcGVydGllcyk7XG4gICAgY29uc3QgcHJvcGVydHlWYWx1ZXMgPSBPYmplY3QudmFsdWVzKG9Qcm9wZXJ0aWVzKTtcblxuICAgIGZvciAobGV0IHByb3BlcnR5SW5kZXggPSAwOyBwcm9wZXJ0eUluZGV4IDwgcHJvcGVydHlLZXlzLmxlbmd0aDsgcHJvcGVydHlJbmRleCsrKSB7XG4gICAgICBpZiAoc3RvcmVEYXRhW3Byb3BlcnR5S2V5c1twcm9wZXJ0eUluZGV4XV0gIT09IHByb3BlcnR5VmFsdWVzW3Byb3BlcnR5SW5kZXhdKSB7XG4gICAgICAgIGJWaXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBiVmlzaWJpbGl0eTtcbn1cblxuaW50ZXJmYWNlIFZpZXdQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw6IGJvb2xlYW47XG4gIHRpdGxlPzogc3RyaW5nO1xuICB2aXNpYmlsaXR5PzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRpc3BsYXlPbmx5RkEkOiBib29sZWFuO1xuICAvLyBASW5wdXQoKSB1cGRhdGVUb2tlbiQ6IG51bWJlcjtcblxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgbm9IZWFkZXJUZW1wbGF0ZXMgPSBOT19IRUFERVJfVEVNUExBVEVTO1xuXG4gIGNvbmZpZ1Byb3BzJDogVmlld1Byb3BzO1xuICBpbmhlcml0ZWRQcm9wcyQ6IGFueTtcbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICB0ZW1wbGF0ZU5hbWUkOiBzdHJpbmc7XG4gIHRpdGxlJCA9ICcnO1xuICBsYWJlbCQgPSAnJztcbiAgc2hvd0xhYmVsJCA9IGZhbHNlO1xuICB2aXNpYmlsaXR5JCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgeyBwQ29ubiQgfSA9IGNoYW5nZXM7XG5cbiAgICBpZiAocENvbm4kLnByZXZpb3VzVmFsdWUgJiYgcENvbm4kLnByZXZpb3VzVmFsdWUgIT09IHBDb25uJC5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZGVidWdnZXI7XG5cbiAgICAvLyBub3JtYWxpemUgdGhpcy5wQ29ubiQgaW4gY2FzZSBpdCBjb250YWlucyBhICdyZWZlcmVuY2UnXG4gICAgdGhpcy5wQ29ubiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4odGhpcy5wQ29ubiQpO1xuXG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgVmlld1Byb3BzO1xuICAgIHRoaXMuaW5oZXJpdGVkUHJvcHMkID0gdGhpcy5wQ29ubiQuZ2V0SW5oZXJpdGVkUHJvcHMoKTtcblxuICAgIC8vIE5PVEU6IHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHknXSBpcyB1c2VkIGluIHZpZXcuY29tcG9uZW50LnRzIHN1Y2ggdGhhdFxuICAgIC8vICB0aGUgVmlldyB3aWxsIG9ubHkgYmUgcmVuZGVyZWQgd2hlbiB0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5J10gaXMgZmFsc2UuXG4gICAgLy8gIEl0IFdJTEwgcmVuZGVyIGlmIHRydWUgb3IgdW5kZWZpbmVkLlxuXG4gICAgdGhpcy50ZW1wbGF0ZU5hbWUkID0gdGhpcy5jb25maWdQcm9wcyQudGVtcGxhdGUgfHwgJyc7XG4gICAgdGhpcy50aXRsZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50aXRsZSB8fCAnJztcbiAgICB0aGlzLmxhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLmxhYmVsIHx8ICcnO1xuICAgIHRoaXMuc2hvd0xhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLnNob3dMYWJlbCB8fCBpc0RldGFpbHNUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlTmFtZSQpIHx8IHRoaXMuc2hvd0xhYmVsJDtcbiAgICAvLyBsYWJlbCAmIHNob3dMYWJlbCB3aXRoaW4gaW5oZXJpdGVkUHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGNvbmZpZ1Byb3BzXG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5sYWJlbCB8fCB0aGlzLmxhYmVsJDtcbiAgICB0aGlzLnNob3dMYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5zaG93TGFiZWwgfHwgdGhpcy5zaG93TGFiZWwkO1xuICAgIC8vIGNoaWxkcmVuIG1heSBoYXZlIGEgJ3JlZmVyZW5jZScgc28gbm9ybWFsaXplIHRoZSBjaGlsZHJlbiBhcnJheVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHRoaXMudmlzaWJpbGl0eSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ID8/IHRoaXMudmlzaWJpbGl0eSQ7XG5cbiAgICAvKipcbiAgICAgKiBJbiBpbnN0YW5jZXMgd2hlcmUgdGhlcmUgaXMgY29udGV4dCwgbGlrZSB3aXRoIFwic2hpcHBpbmdBZGRyZXNzLFwiIHRoZSBwYWdlUmVmZXJlbmNlIGJlY29tZXMgXCJjYXNlSW5mby5jb250ZW50LnNoaXBwaW5nQWRkcmVzcy5cIlxuICAgICAqIFRoaXMgbGVhZHMgdG8gcHJvYmxlbXMgaW4gdGhlIGdldFByb3BlcnR5IEFQSSwgYXMgaXQgaW5jb3JyZWN0bHkgYXNzZXNzZXMgdGhlIHZpc2liaWxpdHkgY29uZGl0aW9uIGJ5IGxvb2tpbmcgaW4gdGhlIHdyb25nIGxvY2F0aW9uXG4gICAgICogaW4gdGhlIFN0b3JlIGZvciB0aGUgcHJvcGVydHkgdmFsdWVzLiBSZWZlcmVuY2UgY29tcG9uZW50IHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBzdWNoIHNjZW5hcmlvcyhhcyBkb25lIGluIFNESy1SKSBzaW5jZSBpdCBoYXMgdGhlXG4gICAgICogZXhwZWN0ZWQgcGFnZVJlZmVyZW5jZSB2YWx1ZXMsIHRoZSBWaWV3IGNvbXBvbmVudCBjdXJyZW50bHkgY2Fubm90IGhhbmRsZSB0aGlzLlxuICAgICAqIFRoZSByZXNvbHV0aW9uIGxpZXMgaW4gdHJhbnNmZXJyaW5nIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8gdGhlIFJlZmVyZW5jZSBjb21wb25lbnQsIGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciB0aGlzIGNvZGUgd2hlbiBSZWZlcmVuY2VcbiAgICAgKiBjb21wb25lbnQgaXMgYWJsZSB0byBoYW5kbGUgaXQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ICYmIHRoaXMucENvbm4kLmdldFBhZ2VSZWZlcmVuY2UoKS5sZW5ndGggPiAnY2FzZUluZm8uY29udGVudCcubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZpc2liaWxpdHkkID0gZXZhbHVhdGVWaXNpYmlsaXR5KHRoaXMucENvbm4kKTtcbiAgICB9XG5cbiAgICAvLyB3YXM6ICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBBcnJheTxhbnk+O1xuXG4gICAgLy8gZGVidWdcbiAgICAvLyBsZXQgIGtpZExpc3Q6IHN0cmluZyA9IFwiXCI7XG4gICAgLy8gZm9yIChsZXQgaSBpbiB0aGlzLmFyQ2hpbGRyZW4kKSB7XG4gICAgLy8gICBraWRMaXN0ID0ga2lkTGlzdC5jb25jYXQodGhpcy5hckNoaWxkcmVuJFtpXS5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSkuY29uY2F0KFwiLFwiKTtcbiAgICAvLyB9XG4gICAgLy8gY29uc29sZS5sb2coXCItLT52aWV3IHVwZGF0ZTogXCIgKyB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKSArIFwiLCB0ZW1wbGF0ZTogXCIgKyB0aGlzLnRlbXBsYXRlTmFtZSQgKyBcIiwga2lkczogXCIgKyBraWRMaXN0KTtcbiAgfVxuXG4gIC8vIEpBIC0gYWRhcHRpbmcgYWRkaXRpb25hbFByb3BzIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gdmVyc2lvbiB3aGljaCB1c2VzIHN0YXRpYyBtZXRob2RzXG4gIC8vICAgIG9uIHRoZSBjb21wb25lbnQgY2xhc3NlcyBzdG9yZWQgaW4gUENvbXBvbmVudHMgKHRoYXQgQW5ndWxhciBkb2Vzbid0IGhhdmUpLi4uXG4gIGFkZGl0aW9uYWxQcm9wcyhzdGF0ZTogYW55LCBnZXRQQ29ubmVjdDogYW55KSB7XG4gICAgbGV0IHByb3BPYmogPSB7fTtcblxuICAgIC8vIFdlIGFscmVhZHkgaGF2ZSB0aGUgdGVtcGxhdGUgbmFtZSBpbiB0aGlzLnRlbXBsYXRlTmFtZSRcbiAgICBpZiAodGhpcy50ZW1wbGF0ZU5hbWUkICE9PSAnJykge1xuICAgICAgbGV0IGFsbEZpZWxkcyA9IHt9O1xuXG4gICAgICAvLyBUaGVzZSB1c2VzIGFyZSBhZGFwdGVkIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gQ2FzZVN1bW1hcnkuYWRkaXRpb25hbFByb3BzXG4gICAgICBzd2l0Y2ggKHRoaXMudGVtcGxhdGVOYW1lJCkge1xuICAgICAgICBjYXNlICdDYXNlU3VtbWFyeSc6XG4gICAgICAgICAgYWxsRmllbGRzID0gZ2V0QWxsRmllbGRzKGdldFBDb25uZWN0KTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgICAgICBjb25zdCB1bnJlc0ZpZWxkcyA9IHtcbiAgICAgICAgICAgIHByaW1hcnlGaWVsZHM6IGFsbEZpZWxkc1swXSxcbiAgICAgICAgICAgIHNlY29uZGFyeUZpZWxkczogYWxsRmllbGRzWzFdXG4gICAgICAgICAgfTtcbiAgICAgICAgICBwcm9wT2JqID0gZ2V0UENvbm5lY3QucmVzb2x2ZUNvbmZpZ1Byb3BzKHVucmVzRmllbGRzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdEZXRhaWxzJzpcbiAgICAgICAgICBhbGxGaWVsZHMgPSBnZXRBbGxGaWVsZHMoZ2V0UENvbm5lY3QpO1xuICAgICAgICAgIHByb3BPYmogPSB7IGZpZWxkczogYWxsRmllbGRzWzBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BPYmo7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwidmlzaWJpbGl0eSQgIT09IGZhbHNlXCIgY2xhc3M9XCJuZy12aWV3LXRvcFwiPlxuICA8ZGl2ICpuZ0lmPVwic2hvd0xhYmVsJCAmJiBsYWJlbCQgJiYgIW5vSGVhZGVyVGVtcGxhdGVzLmluY2x1ZGVzKHRlbXBsYXRlTmFtZSQpXCIgY2xhc3M9XCJ0ZW1wbGF0ZS10aXRsZS1jb250YWluZXJcIj5cbiAgICA8c3Bhbj57eyBsYWJlbCQgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZU5hbWUkOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgW25hbWVdPVwidGVtcGxhdGVOYW1lJFwiXG4gICAgICAgIFtwcm9wc109XCJ7IGZvcm1Hcm91cCQsIHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyB0ZW1wbGF0ZSBub3QgcmVjb2duaXplZDogW3t7IHRlbXBsYXRlTmFtZSQgfX1dXCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZT5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICAgIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyBNaXNzaW5nIChkaXNwbGF5QWxsKToge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19XCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==