@pega/angular-sdk-components 24.2.12 → 25.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/fesm2022/pega-angular-sdk-components.mjs +4828 -3717
  2. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
  3. package/lib/_bridge/angular-pconnect.d.ts +1 -1
  4. package/lib/_bridge/component-mapper/component-mapper.component.d.ts +1 -1
  5. package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +18 -0
  6. package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +1 -1
  7. package/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.d.ts +1 -0
  8. package/lib/_components/field/auto-complete/auto-complete.component.d.ts +9 -37
  9. package/lib/_components/field/cancel-alert/cancel-alert.component.d.ts +7 -5
  10. package/lib/_components/field/check-box/check-box.component.d.ts +10 -32
  11. package/lib/_components/field/currency/currency.component.d.ts +19 -34
  12. package/lib/_components/field/date/date.component.d.ts +7 -57
  13. package/lib/_components/field/date-time/date-time.component.d.ts +12 -40
  14. package/lib/_components/field/decimal/decimal.component.d.ts +16 -31
  15. package/lib/_components/field/dropdown/dropdown.component.d.ts +13 -37
  16. package/lib/_components/field/email/email.component.d.ts +7 -34
  17. package/lib/_components/field/field.base.d.ts +57 -0
  18. package/lib/_components/field/group/group.component.d.ts +5 -2
  19. package/lib/_components/field/integer/integer.component.d.ts +7 -33
  20. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -1
  21. package/lib/_components/field/location/location.component.d.ts +47 -0
  22. package/lib/_components/field/multiselect/multiselect.component.d.ts +7 -38
  23. package/lib/_components/field/object-reference/object-reference.component.d.ts +45 -0
  24. package/lib/_components/field/percentage/percentage.component.d.ts +18 -35
  25. package/lib/_components/field/phone/phone.component.d.ts +8 -31
  26. package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +13 -33
  27. package/lib/_components/field/rich-text/rich-text.component.d.ts +6 -29
  28. package/lib/_components/field/scalar-list/scalar-list.component.d.ts +6 -21
  29. package/lib/_components/field/selectable-card/selectable-card.component.d.ts +62 -0
  30. package/lib/_components/field/semantic-link/semantic-link.component.d.ts +21 -0
  31. package/lib/_components/field/text-area/text-area.component.d.ts +6 -33
  32. package/lib/_components/field/text-input/text-input.component.d.ts +6 -34
  33. package/lib/_components/field/time/time.component.d.ts +6 -34
  34. package/lib/_components/field/url/url.component.d.ts +6 -34
  35. package/lib/_components/field/user-reference/user-reference.component.d.ts +1 -1
  36. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +1 -0
  37. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +4 -6
  38. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
  39. package/lib/_components/infra/assignment/assignment.component.d.ts +3 -3
  40. package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +3 -2
  41. package/lib/_components/infra/defer-load/defer-load.component.d.ts +6 -6
  42. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
  43. package/lib/_components/infra/navbar/navbar.component.d.ts +0 -1
  44. package/lib/_components/infra/stages/stages.component.d.ts +2 -1
  45. package/lib/_components/template/advanced-search/advanced-search.component.d.ts +21 -0
  46. package/lib/_components/template/advanced-search/search-group/persist-utils.d.ts +23 -0
  47. package/lib/_components/template/advanced-search/search-groups/search-groups.component.d.ts +47 -0
  48. package/lib/_components/template/advanced-search/search-groups/utils.d.ts +15 -0
  49. package/lib/_components/template/app-shell/app-shell.component.d.ts +6 -2
  50. package/lib/_components/template/base/details-template-base.d.ts +1 -1
  51. package/lib/_components/template/base/form-template-base.d.ts +1 -1
  52. package/lib/_components/template/case-summary/case-summary.component.d.ts +3 -2
  53. package/lib/_components/template/case-view/case-view.component.d.ts +0 -1
  54. package/lib/_components/template/data-reference/data-reference.component.d.ts +27 -2
  55. package/lib/_components/template/data-reference/search-form/search-form.component.d.ts +39 -0
  56. package/lib/_components/template/data-reference/search-form/tabsData.d.ts +2 -0
  57. package/lib/_components/template/data-reference/utils.d.ts +14 -0
  58. package/lib/_components/template/default-form/default-form.component.d.ts +3 -2
  59. package/lib/_components/template/default-page/default-page.component.d.ts +29 -0
  60. package/lib/_components/template/field-group-template/field-group-template.component.d.ts +3 -5
  61. package/lib/_components/template/list-view/list-view.component.d.ts +21 -5
  62. package/lib/_components/template/object-page/object-page.component.d.ts +8 -0
  63. package/lib/_components/template/self-service-case-view/self-service-case-view.component.d.ts +58 -0
  64. package/lib/_components/template/simple-table-manual/helpers.d.ts +15 -1
  65. package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +2 -2
  66. package/lib/_components/template/single-reference-readonly/single-reference-readonly.component.d.ts +18 -2
  67. package/lib/_components/template/utils.d.ts +4 -0
  68. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +3 -5
  69. package/lib/_components/widget/attachment/Attachment.types.d.ts +87 -0
  70. package/lib/_components/widget/attachment/AttachmentUtils.d.ts +17 -0
  71. package/lib/_components/widget/attachment/attachment.component.d.ts +18 -33
  72. package/lib/_components/widget/feed-container/feed-container.component.d.ts +2 -2
  73. package/lib/_components/widget/file-utility/file-utility.component.d.ts +3 -1
  74. package/lib/_components/widget/todo/todo.component.d.ts +4 -2
  75. package/lib/_helpers/field-group-utils.d.ts +1 -3
  76. package/lib/_helpers/filter-utils.d.ts +1 -3
  77. package/lib/_helpers/object-utils.d.ts +8 -0
  78. package/lib/_helpers/objectReference-utils.d.ts +6 -0
  79. package/lib/_helpers/semanticLink-utils.d.ts +9 -0
  80. package/lib/_helpers/tab-utils.d.ts +4 -0
  81. package/lib/_helpers/utils.d.ts +5 -1
  82. package/lib/_services/case.service.d.ts +1 -1
  83. package/lib/_services/data-reference-advanced-search.service.d.ts +9 -0
  84. package/lib/_services/datapage.service.d.ts +1 -1
  85. package/lib/_services/google-maps-loader.service.d.ts +7 -0
  86. package/package.json +20 -6
  87. package/public-api.d.ts +14 -1
  88. package/esm2022/lib/_bridge/angular-pconnect.mjs +0 -428
  89. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +0 -107
  90. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +0 -239
  91. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +0 -142
  92. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +0 -50
  93. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +0 -29
  94. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +0 -31
  95. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +0 -51
  96. package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +0 -31
  97. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +0 -82
  98. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +0 -37
  99. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +0 -38
  100. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +0 -36
  101. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +0 -25
  102. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +0 -28
  103. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +0 -42
  104. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +0 -145
  105. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +0 -33
  106. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +0 -93
  107. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +0 -18
  108. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +0 -296
  109. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +0 -96
  110. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +0 -225
  111. package/esm2022/lib/_components/field/currency/currency.component.mjs +0 -195
  112. package/esm2022/lib/_components/field/date/date.component.mjs +0 -205
  113. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +0 -196
  114. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +0 -205
  115. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +0 -300
  116. package/esm2022/lib/_components/field/email/email.component.mjs +0 -165
  117. package/esm2022/lib/_components/field/group/group.component.mjs +0 -64
  118. package/esm2022/lib/_components/field/integer/integer.component.mjs +0 -168
  119. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +0 -45
  120. package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +0 -314
  121. package/esm2022/lib/_components/field/multiselect/utils.mjs +0 -187
  122. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +0 -190
  123. package/esm2022/lib/_components/field/phone/phone.component.mjs +0 -155
  124. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +0 -182
  125. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +0 -109
  126. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +0 -95
  127. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +0 -57
  128. package/esm2022/lib/_components/field/text/text.component.mjs +0 -142
  129. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +0 -165
  130. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +0 -69
  131. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +0 -165
  132. package/esm2022/lib/_components/field/time/time.component.mjs +0 -174
  133. package/esm2022/lib/_components/field/url/url.component.mjs +0 -165
  134. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +0 -266
  135. package/esm2022/lib/_components/infra/Containers/base-components/flow-container-base.component.mjs +0 -18
  136. package/esm2022/lib/_components/infra/Containers/base-components/helper.mjs +0 -71
  137. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +0 -461
  138. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +0 -68
  139. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +0 -24
  140. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +0 -335
  141. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +0 -32
  142. package/esm2022/lib/_components/infra/Containers/view-container/helper.mjs +0 -22
  143. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +0 -211
  144. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +0 -31
  145. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +0 -407
  146. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +0 -47
  147. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +0 -87
  148. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +0 -143
  149. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +0 -18
  150. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +0 -80
  151. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +0 -136
  152. package/esm2022/lib/_components/infra/reference/reference.component.mjs +0 -126
  153. package/esm2022/lib/_components/infra/region/region.component.mjs +0 -33
  154. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +0 -223
  155. package/esm2022/lib/_components/infra/stages/stages.component.mjs +0 -62
  156. package/esm2022/lib/_components/infra/view/view.component.mjs +0 -188
  157. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +0 -156
  158. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +0 -43
  159. package/esm2022/lib/_components/template/base/details-template-base.mjs +0 -56
  160. package/esm2022/lib/_components/template/base/form-template-base.mjs +0 -16
  161. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +0 -101
  162. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +0 -185
  163. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +0 -68
  164. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +0 -242
  165. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +0 -73
  166. package/esm2022/lib/_components/template/details/details.component.mjs +0 -76
  167. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +0 -45
  168. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +0 -42
  169. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +0 -39
  170. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +0 -51
  171. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +0 -48
  172. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +0 -48
  173. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +0 -65
  174. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +0 -23
  175. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +0 -131
  176. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +0 -24
  177. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +0 -22
  178. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +0 -40
  179. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +0 -14
  180. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +0 -208
  181. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +0 -1217
  182. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +0 -60
  183. package/esm2022/lib/_components/template/list-view/utils.mjs +0 -662
  184. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +0 -44
  185. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +0 -30
  186. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +0 -31
  187. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +0 -16
  188. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +0 -30
  189. package/esm2022/lib/_components/template/page/page.component.mjs +0 -52
  190. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +0 -149
  191. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +0 -138
  192. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +0 -104
  193. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +0 -271
  194. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +0 -813
  195. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +0 -129
  196. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +0 -16
  197. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +0 -67
  198. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +0 -31
  199. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +0 -16
  200. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +0 -31
  201. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +0 -40
  202. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +0 -30
  203. package/esm2022/lib/_components/template/utils.mjs +0 -38
  204. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +0 -31
  205. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +0 -53
  206. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +0 -137
  207. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +0 -24
  208. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +0 -393
  209. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +0 -80
  210. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +0 -521
  211. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +0 -638
  212. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +0 -57
  213. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +0 -75
  214. package/esm2022/lib/_components/widget/todo/todo.component.mjs +0 -230
  215. package/esm2022/lib/_components/widget/utility/utility.component.mjs +0 -34
  216. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +0 -28
  217. package/esm2022/lib/_helpers/case-utils.mjs +0 -71
  218. package/esm2022/lib/_helpers/common.mjs +0 -20
  219. package/esm2022/lib/_helpers/createstage-utils.mjs +0 -15
  220. package/esm2022/lib/_helpers/currency-utils.mjs +0 -57
  221. package/esm2022/lib/_helpers/date-format-utils.mjs +0 -68
  222. package/esm2022/lib/_helpers/event-util.mjs +0 -18
  223. package/esm2022/lib/_helpers/field-group-utils.mjs +0 -47
  224. package/esm2022/lib/_helpers/filter-utils.mjs +0 -105
  225. package/esm2022/lib/_helpers/formatters/boolean.mjs +0 -20
  226. package/esm2022/lib/_helpers/formatters/common.mjs +0 -17
  227. package/esm2022/lib/_helpers/formatters/currency-map.mjs +0 -903
  228. package/esm2022/lib/_helpers/formatters/currency.mjs +0 -68
  229. package/esm2022/lib/_helpers/formatters/date.mjs +0 -69
  230. package/esm2022/lib/_helpers/formatters/format-utils.mjs +0 -76
  231. package/esm2022/lib/_helpers/formatters/index.mjs +0 -124
  232. package/esm2022/lib/_helpers/instructions-utils.mjs +0 -36
  233. package/esm2022/lib/_helpers/tab-utils.mjs +0 -59
  234. package/esm2022/lib/_helpers/template-utils.mjs +0 -56
  235. package/esm2022/lib/_helpers/utils.mjs +0 -412
  236. package/esm2022/lib/_helpers/versionHelpers.mjs +0 -12
  237. package/esm2022/lib/_messages/error-messages.service.mjs +0 -31
  238. package/esm2022/lib/_messages/progress-spinner.service.mjs +0 -30
  239. package/esm2022/lib/_messages/update-worklist.service.mjs +0 -30
  240. package/esm2022/lib/_services/banner.service.mjs +0 -35
  241. package/esm2022/lib/_services/case.service.mjs +0 -32
  242. package/esm2022/lib/_services/datapage.service.mjs +0 -52
  243. package/esm2022/lib/_services/endpoints.mjs +0 -60
  244. package/esm2022/lib/_services/server-config.service.mjs +0 -52
  245. package/esm2022/lib/_types/PConnProps.interface.mjs +0 -2
  246. package/esm2022/pega-angular-sdk-components.mjs +0 -5
  247. package/esm2022/public-api.mjs +0 -145
  248. package/esm2022/sdk-local-component-map.mjs +0 -9
@@ -1,407 +0,0 @@
1
- /* eslint-disable no-case-declarations */
2
- import { Component, Input, forwardRef } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { MatSnackBarModule } from '@angular/material/snack-bar';
5
- import { ReferenceComponent } from '../../infra/reference/reference.component';
6
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../../_bridge/angular-pconnect";
9
- import * as i2 from "../../../_messages/progress-spinner.service";
10
- import * as i3 from "../../../_messages/error-messages.service";
11
- import * as i4 from "@angular/material/snack-bar";
12
- import * as i5 from "../../../_services/banner.service";
13
- import * as i6 from "@angular/common";
14
- function getRefreshProps(refreshConditions) {
15
- // refreshConditions cuurently supports only "Changes" event
16
- if (!refreshConditions) {
17
- return [];
18
- }
19
- return refreshConditions.filter(item => item.event && item.event === 'Changes').map(item => [item.field, item.field?.substring(1)]) || [];
20
- }
21
- export class AssignmentComponent {
22
- constructor(angularPConnect, psService, erService, ngZone, snackBar, bannerService) {
23
- this.angularPConnect = angularPConnect;
24
- this.psService = psService;
25
- this.erService = erService;
26
- this.ngZone = ngZone;
27
- this.snackBar = snackBar;
28
- this.bannerService = bannerService;
29
- this.isInModal$ = false;
30
- // For interaction with AngularPConnect
31
- this.angularPConnectData = {};
32
- this.bInitialized = false;
33
- this.bHasNavigation$ = false;
34
- this.bIsVertical$ = false;
35
- this.arCurrentStepIndicies$ = [];
36
- this.arNavigationSteps$ = [];
37
- // itemKey: string = ""; // JA - this is what Nebula/Constellation uses to pass to finishAssignment, navigateToStep
38
- this.bReInit = false;
39
- this.localeCategory = 'Assignment';
40
- }
41
- ngOnInit() {
42
- // First thing in initialization is registering and subscribing to the AngularPConnect service
43
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
44
- this.initComponent();
45
- this.angularPConnect.shouldComponentUpdate(this);
46
- this.bInitialized = true;
47
- this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
48
- this.localeReference = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();
49
- }
50
- ngOnDestroy() {
51
- if (this.angularPConnectData.unsubscribeFn) {
52
- this.angularPConnectData.unsubscribeFn();
53
- }
54
- }
55
- // Callback passed when subscribing to store change
56
- onStateChange() {
57
- this.checkAndUpdate();
58
- }
59
- checkAndUpdate() {
60
- // Should always check the bridge to see if the component should update itself (re-render)
61
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
62
- this.bannerService.updateBanners(this.itemKey$);
63
- // ONLY call updateSelf when the component should update
64
- // AND removing the "gate" that was put there since shouldComponentUpdate
65
- // should be the real "gate"
66
- if (bUpdateSelf) {
67
- let loadingInfo;
68
- try {
69
- // loadingInfo = this.pConn$.getLoadingStatus();
70
- loadingInfo = this.newPConn$.getLoadingStatus();
71
- this.psService.sendMessage(loadingInfo);
72
- }
73
- catch (ex) {
74
- /* empty */
75
- }
76
- }
77
- }
78
- ngOnChanges() {
79
- if (this.bInitialized) {
80
- this.updateChanges();
81
- }
82
- }
83
- updateChanges() {
84
- this.registerForRefresh();
85
- // pConn$ may be a 'reference' component, so normalize it
86
- this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);
87
- if (this.arChildren$) {
88
- this.createButtons();
89
- }
90
- }
91
- initComponent() {
92
- // pConn$ may be a 'reference' component, so normalize it
93
- // this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);
94
- this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);
95
- // prevent re-intializing with flowContainer update unless an action is taken
96
- this.bReInit = false;
97
- this.bHasNavigation$ = false;
98
- // this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
99
- this.configProps$ = this.newPConn$.resolveConfigProps(this.newPConn$.getConfigProps());
100
- this.templateName$ = this.configProps$.template;
101
- // create pointers to functions
102
- /*
103
- let containerMgr = this.pConn$.getContainerManager();
104
- let actionsAPI = this.pConn$.getActionsApi();
105
- let baseContext = this.pConn$.getContextName();
106
- let acName = this.pConn$.getContainerName();
107
- */
108
- const actionsAPI = this.newPConn$.getActionsApi();
109
- const baseContext = this.newPConn$.getContextName();
110
- const acName = this.newPConn$.getContainerName();
111
- // for now, in general this should be overridden by updateSelf(), and not be blank
112
- if (this.itemKey$ === '') {
113
- this.itemKey$ = baseContext.concat('/').concat(acName);
114
- }
115
- // this.pConn$.isBoundToState();
116
- this.newPConn$.isBoundToState();
117
- this.init = false;
118
- // store off bound functions to above pointers
119
- this.finishAssignment = actionsAPI.finishAssignment.bind(actionsAPI);
120
- this.navigateToStep = actionsAPI.navigateToStep.bind(actionsAPI);
121
- this.saveAssignment = actionsAPI.saveAssignment.bind(actionsAPI);
122
- this.cancelAssignment = actionsAPI.cancelAssignment.bind(actionsAPI);
123
- this.showPage = actionsAPI.showPage.bind(actionsAPI);
124
- this.cancelCreateStageAssignment = actionsAPI.cancelCreateStageAssignment.bind(actionsAPI);
125
- this.approveCase = actionsAPI.approveCase?.bind(actionsAPI);
126
- this.rejectCase = actionsAPI.rejectCase?.bind(actionsAPI);
127
- if (this.arChildren$) {
128
- this.createButtons();
129
- }
130
- }
131
- createButtons() {
132
- // let oData = this.pConn$.getDataObject();
133
- const oData = this.newPConn$.getDataObject();
134
- // inside
135
- // get fist kid, get the name and displa
136
- // pass first kid to a view container, which will disperse it to a view which will use one column, two column, etc.
137
- const oWorkItem = this.arChildren$[0].getPConnect();
138
- const oWorkData = oWorkItem.getDataObject();
139
- if (oWorkData) {
140
- this.actionsAPI = oWorkItem.getActionsApi();
141
- // this.containerName$ = oWorkMeta["name"];
142
- if (oWorkData.caseInfo && oWorkData.caseInfo.assignments !== null) {
143
- this.containerName$ = oWorkData.caseInfo.assignments?.[0].name;
144
- // get caseInfo
145
- const oCaseInfo = oData.caseInfo;
146
- if (oCaseInfo && oCaseInfo.actionButtons) {
147
- this.arMainButtons$ = oCaseInfo.actionButtons.main;
148
- this.arSecondaryButtons$ = oCaseInfo.actionButtons.secondary;
149
- }
150
- if (oCaseInfo.navigation != null) {
151
- this.createButtonsForMultiStepForm(oCaseInfo);
152
- }
153
- else {
154
- this.bHasNavigation$ = false;
155
- }
156
- }
157
- }
158
- }
159
- createButtonsForMultiStepForm(oCaseInfo) {
160
- this.bHasNavigation$ = true;
161
- if ((oCaseInfo.navigation.template && oCaseInfo.navigation.template.toLowerCase() === 'standard') || oCaseInfo?.navigation?.steps?.length === 1) {
162
- this.bHasNavigation$ = false;
163
- }
164
- else if (oCaseInfo.navigation.template && oCaseInfo.navigation.template.toLowerCase() === 'vertical') {
165
- this.bIsVertical$ = true;
166
- }
167
- else {
168
- this.bIsVertical$ = false;
169
- }
170
- // iterate through steps to find current one(s)
171
- // immutable, so we want to change the local copy, so need to make a copy
172
- this.ngZone.run(() => {
173
- // what comes back now in configObject is the children of the flowContainer
174
- this.arNavigationSteps$ = JSON.parse(JSON.stringify(oCaseInfo.navigation.steps));
175
- this.arNavigationSteps$.forEach(step => {
176
- if (step.name) {
177
- step.name = PCore.getLocaleUtils().getLocaleValue(step.name, undefined, this.localeReference);
178
- }
179
- });
180
- this.arCurrentStepIndicies$ = [];
181
- this.arCurrentStepIndicies$ = this.findCurrentIndicies(this.arNavigationSteps$, this.arCurrentStepIndicies$, 0);
182
- });
183
- }
184
- findCurrentIndicies(arStepperSteps, arIndicies, depth) {
185
- let count = 0;
186
- arStepperSteps.forEach(step => {
187
- if (step.visited_status == 'current') {
188
- arIndicies[depth] = count;
189
- // add in
190
- step.step_status = '';
191
- }
192
- else if (step.visited_status == 'success') {
193
- count++;
194
- step.step_status = 'completed';
195
- }
196
- else {
197
- count++;
198
- step.step_status = '';
199
- }
200
- if (step.steps) {
201
- arIndicies = this.findCurrentIndicies(step.steps, arIndicies, depth + 1);
202
- }
203
- });
204
- return arIndicies;
205
- }
206
- onSaveActionSuccess(data) {
207
- this.actionsAPI.cancelAssignment(this.itemKey$).then(() => {
208
- this.psService.sendMessage(false);
209
- PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CREATE_STAGE_SAVED, data);
210
- });
211
- }
212
- onActionButtonClick(oData) {
213
- this.buttonClick(oData.action, oData.buttonType);
214
- }
215
- buttonClick(sAction, sButtonType) {
216
- this.snackBarRef?.dismiss();
217
- this.bannerService.clearBanners();
218
- PCore.getPubSubUtils().publish('clearBannerMessages');
219
- // right now, done on an individual basis, setting bReInit to true
220
- // upon the next flow container state change, will cause the flow container
221
- // to re-initialize
222
- // this.bReInit =true;
223
- /*
224
- let baseContext = this.pConn$.getContextName();
225
- let acName = this.pConn$.getContainerName();
226
- let itemID = baseContext.concat("/").concat(acName);
227
- */
228
- // const baseContext = this.newPConn$.getContextName();
229
- // const acName = this.newPConn$.getContainerName();
230
- // const itemID = baseContext.concat('/').concat(acName);
231
- if (sButtonType == 'secondary') {
232
- // const stepID = ''; // ???
233
- // need to handle cancel as this.cancel(dispatchInfo)
234
- // this.actionsAPI[sAction](dispatchInfo);
235
- switch (sAction) {
236
- case 'navigateToStep':
237
- this.erService.sendMessage('publish', '');
238
- this.bReInit = true;
239
- this.psService.sendMessage(true);
240
- const navigatePromise = this.navigateToStep('previous', this.itemKey$);
241
- navigatePromise
242
- .then(() => {
243
- this.updateChanges();
244
- this.psService.sendMessage(false);
245
- })
246
- .catch(() => {
247
- this.psService.sendMessage(false);
248
- this.snackBarRef = this.snackBar.open(`${this.localizedVal('Navigation failed!', this.localeCategory)}`, 'Ok');
249
- });
250
- break;
251
- case 'saveAssignment': {
252
- const caseID = this.pConn$.getCaseInfo().getKey();
253
- const assignmentID = this.pConn$.getCaseInfo().getAssignmentID();
254
- const savePromise = this.saveAssignment(this.itemKey$);
255
- savePromise
256
- .then(() => {
257
- const caseType = this.pConn$.getCaseInfo().c11nEnv.getValue(PCore.getConstants().CASE_INFO.CASE_TYPE_ID);
258
- PCore.getPubSubUtils().publish('cancelPressed');
259
- this.onSaveActionSuccess({ caseType, caseID, assignmentID });
260
- })
261
- .catch(() => {
262
- this.psService.sendMessage(false);
263
- this.snackBarRef = this.snackBar.open(`${this.localizedVal('Save failed', this.localeCategory)}`, 'Ok');
264
- });
265
- break;
266
- }
267
- case 'cancelAssignment':
268
- this.bReInit = true;
269
- this.erService.sendMessage('dismiss', '');
270
- const isAssignmentInCreateStage = this.pConn$.getCaseInfo().isAssignmentInCreateStage();
271
- const isLocalAction = this.pConn$.getCaseInfo().isLocalAction() ||
272
- (PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION && this.pConn$.getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION));
273
- // check if create stage (modal)
274
- if (isAssignmentInCreateStage && this.isInModal$ && !isLocalAction) {
275
- const cancelPromise = this.cancelCreateStageAssignment(this.itemKey$);
276
- cancelPromise
277
- .then(() => {
278
- this.psService.sendMessage(false);
279
- // PCore.getPubSubUtils().publish(
280
- // PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);
281
- })
282
- .catch(() => {
283
- this.psService.sendMessage(false);
284
- this.snackBarRef = this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');
285
- });
286
- }
287
- else {
288
- this.psService.sendMessage(true);
289
- // publish before cancel pressed, because
290
- // cancel assignment happens "after" cancel assignment happens
291
- PCore.getPubSubUtils().publish('cancelPressed');
292
- const cancelPromise = this.cancelAssignment(this.itemKey$);
293
- cancelPromise
294
- .then(() => {
295
- this.psService.sendMessage(false);
296
- PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);
297
- })
298
- .catch(() => {
299
- this.psService.sendMessage(false);
300
- this.snackBarRef = this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');
301
- });
302
- }
303
- break;
304
- case 'rejectCase': {
305
- const rejectPromise = this.rejectCase(this.itemKey$);
306
- rejectPromise
307
- .then(() => { })
308
- .catch(() => {
309
- this.psService.sendMessage(false);
310
- this.snackBarRef = this.snackBar.open(`${this.localizedVal('Rejection failed!', this.localeCategory)}`, 'Ok');
311
- });
312
- break;
313
- }
314
- default:
315
- break;
316
- }
317
- }
318
- else if (sButtonType == 'primary') {
319
- switch (sAction) {
320
- case 'finishAssignment':
321
- this.erService.sendMessage('publish', '');
322
- this.bReInit = true;
323
- this.psService.sendMessage(true);
324
- const finishPromise = this.finishAssignment(this.itemKey$); // JA - was itemID but Nebula/Constellation uses itemKey
325
- finishPromise
326
- .then(() => {
327
- this.psService.sendMessage(false);
328
- this.updateChanges();
329
- })
330
- .catch(() => {
331
- this.psService.sendMessage(false);
332
- this.snackBarRef = this.snackBar.open(`${this.localizedVal('Submit failed!', this.localeCategory)}`, 'Ok');
333
- });
334
- break;
335
- case 'approveCase': {
336
- const approvePromise = this.approveCase(this.itemKey$);
337
- approvePromise
338
- .then(() => { })
339
- .catch(() => {
340
- this.psService.sendMessage(false);
341
- this.snackBarRef = this.snackBar.open(`${this.localizedVal('Approve failed!', this.localeCategory)}`, 'Ok');
342
- });
343
- break;
344
- }
345
- default:
346
- break;
347
- }
348
- }
349
- }
350
- formValid() {
351
- this.touchAll();
352
- return this.formGroup$.valid;
353
- }
354
- touchAll() {
355
- Object.values(this.formGroup$.controls).forEach((control) => {
356
- control.markAsTouched();
357
- });
358
- }
359
- topViewRefresh() {
360
- Object.values(this.formGroup$.controls).forEach((control) => {
361
- control.markAsTouched();
362
- });
363
- }
364
- registerForRefresh() {
365
- const refreshConditions = this.pConn$.getCaseInfo()?.getActionRefreshConditions();
366
- const pageReference = this.pConn$.getPageReference();
367
- const context = this.pConn$.getContextName();
368
- // refresh api de-registration
369
- PCore.getRefreshManager().deRegisterForRefresh(context);
370
- // refresh api registration
371
- const refreshProps = getRefreshProps(refreshConditions);
372
- const caseKey = this.pConn$.getCaseInfo().getKey();
373
- const refreshOptions = {
374
- autoDetectRefresh: true,
375
- preserveClientChanges: false
376
- };
377
- if (refreshProps.length > 0) {
378
- refreshProps.forEach(prop => {
379
- PCore.getRefreshManager().registerForRefresh('PROP_CHANGE', this.pConn$.getActionsApi().refreshCaseView.bind(this.pConn$.getActionsApi(), caseKey, '', pageReference, {
380
- ...refreshOptions,
381
- refreshFor: prop[0]
382
- }), `${pageReference}.${prop[1]}`, `${context}/${pageReference}`, context);
383
- });
384
- }
385
- }
386
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AssignmentComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.ProgressSpinnerService }, { token: i3.ErrorMessagesService }, { token: i0.NgZone }, { token: i4.MatSnackBar }, { token: i5.BannerService }], target: i0.ɵɵFactoryTarget.Component }); }
387
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AssignmentComponent, isStandalone: true, selector: "app-assignment", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", arChildren$: "arChildren$", itemKey$: "itemKey$", isCreateStage$: "isCreateStage$", updateToken$: "updateToken$", isInModal$: "isInModal$" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <div><component-mapper name=\"AlertBanner\" [props]=\"{ banners: bannerService.banners }\" [parent]=\"this\"></component-mapper></div>\n <div *ngIf=\"bHasNavigation$\" class=\"psdk-stepper\">\n <component-mapper\n name=\"MultiStep\"\n [props]=\"{\n pConn$: newPConn$,\n formGroup$,\n arChildren$,\n arMainButtons$,\n arSecondaryButtons$,\n bIsVertical$,\n arCurrentStepIndicies$,\n arNavigationSteps$\n }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </div>\n <div *ngIf=\"!bHasNavigation$\">\n <component-mapper\n name=\"AssignmentCard\"\n [props]=\"{ pConn$: newPConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$, updateToken$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i6.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatSnackBarModule) }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
388
- }
389
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AssignmentComponent, decorators: [{
390
- type: Component,
391
- args: [{ selector: 'app-assignment', standalone: true, imports: [CommonModule, MatSnackBarModule, forwardRef(() => ComponentMapperComponent)], template: "<div>\n <div><component-mapper name=\"AlertBanner\" [props]=\"{ banners: bannerService.banners }\" [parent]=\"this\"></component-mapper></div>\n <div *ngIf=\"bHasNavigation$\" class=\"psdk-stepper\">\n <component-mapper\n name=\"MultiStep\"\n [props]=\"{\n pConn$: newPConn$,\n formGroup$,\n arChildren$,\n arMainButtons$,\n arSecondaryButtons$,\n bIsVertical$,\n arCurrentStepIndicies$,\n arNavigationSteps$\n }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </div>\n <div *ngIf=\"!bHasNavigation$\">\n <component-mapper\n name=\"AssignmentCard\"\n [props]=\"{ pConn$: newPConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$, updateToken$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n </div>\n</div>\n" }]
392
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.ProgressSpinnerService }, { type: i3.ErrorMessagesService }, { type: i0.NgZone }, { type: i4.MatSnackBar }, { type: i5.BannerService }], propDecorators: { pConn$: [{
393
- type: Input
394
- }], formGroup$: [{
395
- type: Input
396
- }], arChildren$: [{
397
- type: Input
398
- }], itemKey$: [{
399
- type: Input
400
- }], isCreateStage$: [{
401
- type: Input
402
- }], updateToken$: [{
403
- type: Input
404
- }], isInModal$: [{
405
- type: Input
406
- }] } });
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWdubWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvaW5mcmEvYXNzaWdubWVudC9hc3NpZ25tZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9hc3NpZ25tZW50L2Fzc2lnbm1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFVLFVBQVUsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBTTdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7OztBQUV4RyxTQUFTLGVBQWUsQ0FBQyxpQkFBaUI7SUFDeEMsNERBQTREO0lBQzVELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FB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Q0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUU7b0JBQ3hHLEdBQUcsY0FBYztvQkFDakIsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3BCLENBQUMsRUFDRixHQUFHLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDN0IsR0FBRyxPQUFPLElBQUksYUFBYSxFQUFFLEVBQzdCLE9BQU8sQ0FDUixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0F0ZFUsbUJBQW1CO21HQUFuQixtQkFBbUIsbVNDaENoQyx5OEJBNEJBLDZFREVZLFlBQVksNEtBQUUsaUJBQWlCLG9EQUFtQix3QkFBd0I7OzRGQUV6RSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBR2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzhPQUc3RSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jYXNlLWRlY2xhcmF0aW9ucyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBOZ1pvbmUsIGZvcndhcmRSZWYsIE9uRGVzdHJveSwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUsIE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWVzc2FnZXMvZXJyb3ItbWVzc2FnZXMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21lc3NhZ2VzL3Byb2dyZXNzLXNwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCYW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzL2Jhbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2luZnJhL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIGdldFJlZnJlc2hQcm9wcyhyZWZyZXNoQ29uZGl0aW9ucykge1xuICAvLyByZWZyZXNoQ29uZGl0aW9ucyBjdXVyZW50bHkgc3VwcG9ydHMgb25seSBcIkNoYW5nZXNcIiBldmVudFxuICBpZiAoIXJlZnJlc2hDb25kaXRpb25zKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiByZWZyZXNoQ29uZGl0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmV2ZW50ICYmIGl0ZW0uZXZlbnQgPT09ICdDaGFuZ2VzJykubWFwKGl0ZW0gPT4gW2l0ZW0uZmllbGQsIGl0ZW0uZmllbGQ/LnN1YnN0cmluZygxKV0pIHx8IFtdO1xufVxuXG5pbnRlcmZhY2UgQXNzaWdubWVudFByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICB0ZW1wbGF0ZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYXNzaWdubWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3NpZ25tZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXNzaWdubWVudC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRTbmFja0Jhck1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBBc3NpZ25tZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGFyQ2hpbGRyZW4kOiBhbnlbXTtcbiAgQElucHV0KCkgaXRlbUtleSQ6IHN0cmluZztcbiAgQElucHV0KCkgaXNDcmVhdGVTdGFnZSQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHVwZGF0ZVRva2VuJDogbnVtYmVyO1xuICBASW5wdXQoKSBpc0luTW9kYWwkID0gZmFsc2U7XG5cbiAgLy8gRm9yIGludGVyYWN0aW9uIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBBc3NpZ25tZW50UHJvcHM7XG5cbiAgbmV3UENvbm4kOiBhbnk7XG4gIGNvbnRhaW5lck5hbWUkOiBzdHJpbmc7XG5cbiAgYkluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgdGVtcGxhdGVOYW1lJDogc3RyaW5nO1xuXG4gIGFyTWFpbkJ1dHRvbnMkOiBhbnlbXTtcbiAgYXJTZWNvbmRhcnlCdXR0b25zJDogYW55W107XG5cbiAgYWN0aW9uc0FQSTogYW55O1xuXG4gIGJIYXNOYXZpZ2F0aW9uJCA9IGZhbHNlO1xuICBiSXNWZXJ0aWNhbCQgPSBmYWxzZTtcbiAgYXJDdXJyZW50U3RlcEluZGljaWVzJDogbnVtYmVyW10gPSBbXTtcbiAgYXJOYXZpZ2F0aW9uU3RlcHMkOiBhbnlbXSA9IFtdO1xuXG4gIGluaXQ6IGJvb2xlYW47XG4gIGZpbmlzaEFzc2lnbm1lbnQ6IGFueTtcbiAgbmF2aWdhdGVUb1N0ZXA6IGFueTtcbiAgc2F2ZUFzc2lnbm1lbnQ6IGFueTtcbiAgY2FuY2VsQXNzaWdubWVudDogYW55O1xuICBjYW5jZWxDcmVhdGVTdGFnZUFzc2lnbm1lbnQ6IGFueTtcbiAgc2hvd1BhZ2U6IGFueTtcbiAgYXBwcm92ZUNhc2U6IGFueTtcbiAgcmVqZWN0Q2FzZTogYW55O1xuXG4gIC8vIGl0ZW1LZXk6IHN0cmluZyA9IFwiXCI7ICAgLy8gSkEgLSB0aGlzIGlzIHdoYXQgTmVidWxhL0NvbnN0ZWxsYXRpb24gdXNlcyB0byBwYXNzIHRvIGZpbmlzaEFzc2lnbm1lbnQsIG5hdmlnYXRlVG9TdGVwXG5cbiAgYlJlSW5pdCA9IGZhbHNlO1xuICBsb2NhbGl6ZWRWYWw7XG4gIGxvY2FsZUNhdGVnb3J5ID0gJ0Fzc2lnbm1lbnQnO1xuICBsb2NhbGVSZWZlcmVuY2U7XG5cbiAgc25hY2tCYXJSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwc1NlcnZpY2U6IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlclNlcnZpY2U6IEVycm9yTWVzc2FnZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgcHVibGljIGJhbm5lclNlcnZpY2U6IEJhbm5lclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgdGhpcy5pbml0Q29tcG9uZW50KCk7XG5cbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICB0aGlzLmJJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5sb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuICAgIHRoaXMubG9jYWxlUmVmZXJlbmNlID0gYCR7dGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXRDbGFzc05hbWUoKX0hQ0FTRSEke3RoaXMucENvbm4kLmdldENhc2VJbmZvKCkuZ2V0TmFtZSgpfWAudG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIHRoaXMuYmFubmVyU2VydmljZS51cGRhdGVCYW5uZXJzKHRoaXMuaXRlbUtleSQpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICAvLyAgICBBTkQgcmVtb3ZpbmcgdGhlIFwiZ2F0ZVwiIHRoYXQgd2FzIHB1dCB0aGVyZSBzaW5jZSBzaG91bGRDb21wb25lbnRVcGRhdGVcbiAgICAvLyAgICAgIHNob3VsZCBiZSB0aGUgcmVhbCBcImdhdGVcIlxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgbGV0IGxvYWRpbmdJbmZvO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gbG9hZGluZ0luZm8gPSB0aGlzLnBDb25uJC5nZXRMb2FkaW5nU3RhdHVzKCk7XG4gICAgICAgIGxvYWRpbmdJbmZvID0gdGhpcy5uZXdQQ29ubiQuZ2V0TG9hZGluZ1N0YXR1cygpO1xuXG4gICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGxvYWRpbmdJbmZvKTtcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgIC8qIGVtcHR5ICovXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMuYkluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDaGFuZ2VzKCkge1xuICAgIHRoaXMucmVnaXN0ZXJGb3JSZWZyZXNoKCk7XG5cbiAgICAvLyBwQ29ubiQgbWF5IGJlIGEgJ3JlZmVyZW5jZScgY29tcG9uZW50LCBzbyBub3JtYWxpemUgaXRcbiAgICB0aGlzLm5ld1BDb25uJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubih0aGlzLnBDb25uJCk7XG5cbiAgICBpZiAodGhpcy5hckNoaWxkcmVuJCkge1xuICAgICAgdGhpcy5jcmVhdGVCdXR0b25zKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdENvbXBvbmVudCgpIHtcbiAgICAvLyBwQ29ubiQgbWF5IGJlIGEgJ3JlZmVyZW5jZScgY29tcG9uZW50LCBzbyBub3JtYWxpemUgaXRcbiAgICAvLyB0aGlzLnBDb25uJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubih0aGlzLnBDb25uJCk7XG4gICAgdGhpcy5uZXdQQ29ubiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4odGhpcy5wQ29ubiQpO1xuXG4gICAgLy8gcHJldmVudCByZS1pbnRpYWxpemluZyB3aXRoIGZsb3dDb250YWluZXIgdXBkYXRlIHVubGVzcyBhbiBhY3Rpb24gaXMgdGFrZW5cbiAgICB0aGlzLmJSZUluaXQgPSBmYWxzZTtcbiAgICB0aGlzLmJIYXNOYXZpZ2F0aW9uJCA9IGZhbHNlO1xuXG4gICAgLy8gdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSk7XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLm5ld1BDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5uZXdQQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSk7XG5cbiAgICB0aGlzLnRlbXBsYXRlTmFtZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50ZW1wbGF0ZTtcblxuICAgIC8vIGNyZWF0ZSBwb2ludGVycyB0byBmdW5jdGlvbnNcbiAgICAvKlxuICAgIGxldCBjb250YWluZXJNZ3IgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJNYW5hZ2VyKCk7XG4gICAgbGV0IGFjdGlvbnNBUEkgPSB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCk7XG4gICAgbGV0IGJhc2VDb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBsZXQgYWNOYW1lID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTmFtZSgpO1xuICAgICovXG5cbiAgICBjb25zdCBhY3Rpb25zQVBJID0gdGhpcy5uZXdQQ29ubiQuZ2V0QWN0aW9uc0FwaSgpO1xuICAgIGNvbnN0IGJhc2VDb250ZXh0ID0gdGhpcy5uZXdQQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBjb25zdCBhY05hbWUgPSB0aGlzLm5ld1BDb25uJC5nZXRDb250YWluZXJOYW1lKCk7XG5cbiAgICAvLyBmb3Igbm93LCBpbiBnZW5lcmFsIHRoaXMgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgdXBkYXRlU2VsZigpLCBhbmQgbm90IGJlIGJsYW5rXG4gICAgaWYgKHRoaXMuaXRlbUtleSQgPT09ICcnKSB7XG4gICAgICB0aGlzLml0ZW1LZXkkID0gYmFzZUNvbnRleHQuY29uY2F0KCcvJykuY29uY2F0KGFjTmFtZSk7XG4gICAgfVxuXG4gICAgLy8gdGhpcy5wQ29ubiQuaXNCb3VuZFRvU3RhdGUoKTtcbiAgICB0aGlzLm5ld1BDb25uJC5pc0JvdW5kVG9TdGF0ZSgpO1xuXG4gICAgdGhpcy5pbml0ID0gZmFsc2U7XG5cbiAgICAvLyBzdG9yZSBvZmYgYm91bmQgZnVuY3Rpb25zIHRvIGFib3ZlIHBvaW50ZXJzXG4gICAgdGhpcy5maW5pc2hBc3NpZ25tZW50ID0gYWN0aW9uc0FQSS5maW5pc2hBc3NpZ25tZW50LmJpbmQoYWN0aW9uc0FQSSk7XG4gICAgdGhpcy5uYXZpZ2F0ZVRvU3RlcCA9IGFjdGlvbnNBUEkubmF2aWdhdGVUb1N0ZXAuYmluZChhY3Rpb25zQVBJKTtcbiAgICB0aGlzLnNhdmVBc3NpZ25tZW50ID0gYWN0aW9uc0FQSS5zYXZlQXNzaWdubWVudC5iaW5kKGFjdGlvbnNBUEkpO1xuICAgIHRoaXMuY2FuY2VsQXNzaWdubWVudCA9IGFjdGlvbnNBUEkuY2FuY2VsQXNzaWdubWVudC5iaW5kKGFjdGlvbnNBUEkpO1xuICAgIHRoaXMuc2hvd1BhZ2UgPSBhY3Rpb25zQVBJLnNob3dQYWdlLmJpbmQoYWN0aW9uc0FQSSk7XG5cbiAgICB0aGlzLmNhbmNlbENyZWF0ZVN0YWdlQXNzaWdubWVudCA9IGFjdGlvbnNBUEkuY2FuY2VsQ3JlYXRlU3RhZ2VBc3NpZ25tZW50LmJpbmQoYWN0aW9uc0FQSSk7XG4gICAgdGhpcy5hcHByb3ZlQ2FzZSA9IGFjdGlvbnNBUEkuYXBwcm92ZUNhc2U/LmJpbmQoYWN0aW9uc0FQSSk7XG4gICAgdGhpcy5yZWplY3RDYXNlID0gYWN0aW9uc0FQSS5yZWplY3RDYXNlPy5iaW5kKGFjdGlvbnNBUEkpO1xuXG4gICAgaWYgKHRoaXMuYXJDaGlsZHJlbiQpIHtcbiAgICAgIHRoaXMuY3JlYXRlQnV0dG9ucygpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUJ1dHRvbnMoKSB7XG4gICAgLy8gbGV0IG9EYXRhID0gdGhpcy5wQ29ubiQuZ2V0RGF0YU9iamVjdCgpO1xuICAgIGNvbnN0IG9EYXRhID0gdGhpcy5uZXdQQ29ubiQuZ2V0RGF0YU9iamVjdCgpO1xuXG4gICAgLy8gaW5zaWRlXG4gICAgLy8gZ2V0IGZpc3Qga2lkLCBnZXQgdGhlIG5hbWUgYW5kIGRpc3BsYVxuICAgIC8vIHBhc3MgZmlyc3Qga2lkIHRvIGEgdmlldyBjb250YWluZXIsIHdoaWNoIHdpbGwgZGlzcGVyc2UgaXQgdG8gYSB2aWV3IHdoaWNoIHdpbGwgdXNlIG9uZSBjb2x1bW4sIHR3byBjb2x1bW4sIGV0Yy5cbiAgICBjb25zdCBvV29ya0l0ZW0gPSB0aGlzLmFyQ2hpbGRyZW4kWzBdLmdldFBDb25uZWN0KCk7XG4gICAgY29uc3Qgb1dvcmtEYXRhID0gb1dvcmtJdGVtLmdldERhdGFPYmplY3QoKTtcblxuICAgIGlmIChvV29ya0RhdGEpIHtcbiAgICAgIHRoaXMuYWN0aW9uc0FQSSA9IG9Xb3JrSXRlbS5nZXRBY3Rpb25zQXBpKCk7XG5cbiAgICAgIC8vIHRoaXMuY29udGFpbmVyTmFtZSQgPSBvV29ya01ldGFbXCJuYW1lXCJdO1xuXG4gICAgICBpZiAob1dvcmtEYXRhLmNhc2VJbmZvICYmIG9Xb3JrRGF0YS5jYXNlSW5mby5hc3NpZ25tZW50cyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lck5hbWUkID0gb1dvcmtEYXRhLmNhc2VJbmZvLmFzc2lnbm1lbnRzPy5bMF0ubmFtZTtcblxuICAgICAgICAvLyBnZXQgY2FzZUluZm9cbiAgICAgICAgY29uc3Qgb0Nhc2VJbmZvID0gb0RhdGEuY2FzZUluZm87XG5cbiAgICAgICAgaWYgKG9DYXNlSW5mbyAmJiBvQ2FzZUluZm8uYWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgIHRoaXMuYXJNYWluQnV0dG9ucyQgPSBvQ2FzZUluZm8uYWN0aW9uQnV0dG9ucy5tYWluO1xuICAgICAgICAgIHRoaXMuYXJTZWNvbmRhcnlCdXR0b25zJCA9IG9DYXNlSW5mby5hY3Rpb25CdXR0b25zLnNlY29uZGFyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvQ2FzZUluZm8ubmF2aWdhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5jcmVhdGVCdXR0b25zRm9yTXVsdGlTdGVwRm9ybShvQ2FzZUluZm8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYkhhc05hdmlnYXRpb24kID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjcmVhdGVCdXR0b25zRm9yTXVsdGlTdGVwRm9ybShvQ2FzZUluZm8pIHtcbiAgICB0aGlzLmJIYXNOYXZpZ2F0aW9uJCA9IHRydWU7XG5cbiAgICBpZiAoKG9DYXNlSW5mby5uYXZpZ2F0aW9uLnRlbXBsYXRlICYmIG9DYXNlSW5mby5uYXZpZ2F0aW9uLnRlbXBsYXRlLnRvTG93ZXJDYXNlKCkgPT09ICdzdGFuZGFyZCcpIHx8IG9DYXNlSW5mbz8ubmF2aWdhdGlvbj8uc3RlcHM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5iSGFzTmF2aWdhdGlvbiQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKG9DYXNlSW5mby5uYXZpZ2F0aW9uLnRlbXBsYXRlICYmIG9DYXNlSW5mby5uYXZpZ2F0aW9uLnRlbXBsYXRlLnRvTG93ZXJDYXNlKCkgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIHRoaXMuYklzVmVydGljYWwkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iSXNWZXJ0aWNhbCQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBpdGVyYXRlIHRocm91Z2ggc3RlcHMgdG8gZmluZCBjdXJyZW50IG9uZShzKVxuICAgIC8vIGltbXV0YWJsZSwgc28gd2Ugd2FudCB0byBjaGFuZ2UgdGhlIGxvY2FsIGNvcHksIHNvIG5lZWQgdG8gbWFrZSBhIGNvcHlcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgLy8gd2hhdCBjb21lcyBiYWNrIG5vdyBpbiBjb25maWdPYmplY3QgaXMgdGhlIGNoaWxkcmVuIG9mIHRoZSBmbG93Q29udGFpbmVyXG4gICAgICB0aGlzLmFyTmF2aWdhdGlvblN0ZXBzJCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob0Nhc2VJbmZvLm5hdmlnYXRpb24uc3RlcHMpKTtcbiAgICAgIHRoaXMuYXJOYXZpZ2F0aW9uU3RlcHMkLmZvckVhY2goc3RlcCA9PiB7XG4gICAgICAgIGlmIChzdGVwLm5hbWUpIHtcbiAgICAgICAgICBzdGVwLm5hbWUgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlKHN0ZXAubmFtZSwgdW5kZWZpbmVkLCB0aGlzLmxvY2FsZVJlZmVyZW5jZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hckN1cnJlbnRTdGVwSW5kaWNpZXMkID0gW107XG4gICAgICB0aGlzLmFyQ3VycmVudFN0ZXBJbmRpY2llcyQgPSB0aGlzLmZpbmRDdXJyZW50SW5kaWNpZXModGhpcy5hck5hdmlnYXRpb25TdGVwcyQsIHRoaXMuYXJDdXJyZW50U3RlcEluZGljaWVzJCwgMCk7XG4gICAgfSk7XG4gIH1cblxuICBmaW5kQ3VycmVudEluZGljaWVzKGFyU3RlcHBlclN0ZXBzOiBhbnlbXSwgYXJJbmRpY2llczogbnVtYmVyW10sIGRlcHRoOiBudW1iZXIpOiBudW1iZXJbXSB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBhclN0ZXBwZXJTdGVwcy5mb3JFYWNoKHN0ZXAgPT4ge1xuICAgICAgaWYgKHN0ZXAudmlzaXRlZF9zdGF0dXMgPT0gJ2N1cnJlbnQnKSB7XG4gICAgICAgIGFySW5kaWNpZXNbZGVwdGhdID0gY291bnQ7XG5cbiAgICAgICAgLy8gYWRkIGluXG4gICAgICAgIHN0ZXAuc3RlcF9zdGF0dXMgPSAnJztcbiAgICAgIH0gZWxzZSBpZiAoc3RlcC52aXNpdGVkX3N0YXR1cyA9PSAnc3VjY2VzcycpIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgICAgc3RlcC5zdGVwX3N0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgICAgc3RlcC5zdGVwX3N0YXR1cyA9ICcnO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RlcC5zdGVwcykge1xuICAgICAgICBhckluZGljaWVzID0gdGhpcy5maW5kQ3VycmVudEluZGljaWVzKHN0ZXAuc3RlcHMsIGFySW5kaWNpZXMsIGRlcHRoICsgMSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJJbmRpY2llcztcbiAgfVxuXG4gIG9uU2F2ZUFjdGlvblN1Y2Nlc3MoZGF0YSkge1xuICAgIHRoaXMuYWN0aW9uc0FQSS5jYW5jZWxBc3NpZ25tZW50KHRoaXMuaXRlbUtleSQpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS5wdWJsaXNoKFBDb3JlLmdldENvbnN0YW50cygpLlBVQl9TVUJfRVZFTlRTLkNBU0VfRVZFTlRTLkNSRUFURV9TVEFHRV9TQVZFRCwgZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkFjdGlvbkJ1dHRvbkNsaWNrKG9EYXRhOiBhbnkpIHtcbiAgICB0aGlzLmJ1dHRvbkNsaWNrKG9EYXRhLmFjdGlvbiwgb0RhdGEuYnV0dG9uVHlwZSk7XG4gIH1cblxuICBidXR0b25DbGljayhzQWN0aW9uLCBzQnV0dG9uVHlwZSkge1xuICAgIHRoaXMuc25hY2tCYXJSZWY/LmRpc21pc3MoKTtcbiAgICB0aGlzLmJhbm5lclNlcnZpY2UuY2xlYXJCYW5uZXJzKCk7XG4gICAgUENvcmUuZ2V0UHViU3ViVXRpbHMoKS5wdWJsaXNoKCdjbGVhckJhbm5lck1lc3NhZ2VzJyk7XG4gICAgLy8gcmlnaHQgbm93LCBkb25lIG9uIGFuIGluZGl2aWR1YWwgYmFzaXMsIHNldHRpbmcgYlJlSW5pdCB0byB0cnVlXG4gICAgLy8gdXBvbiB0aGUgbmV4dCBmbG93IGNvbnRhaW5lciBzdGF0ZSBjaGFuZ2UsIHdpbGwgY2F1c2UgdGhlIGZsb3cgY29udGFpbmVyXG4gICAgLy8gdG8gcmUtaW5pdGlhbGl6ZVxuICAgIC8vIHRoaXMuYlJlSW5pdCA9dHJ1ZTtcblxuICAgIC8qXG4gICAgbGV0IGJhc2VDb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBsZXQgYWNOYW1lID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTmFtZSgpO1xuICAgIGxldCBpdGVtSUQgPSBiYXNlQ29udGV4dC5jb25jYXQoXCIvXCIpLmNvbmNhdChhY05hbWUpO1xuICAgICovXG5cbiAgICAvLyBjb25zdCBiYXNlQ29udGV4dCA9IHRoaXMubmV3UENvbm4kLmdldENvbnRleHROYW1lKCk7XG4gICAgLy8gY29uc3QgYWNOYW1lID0gdGhpcy5uZXdQQ29ubiQuZ2V0Q29udGFpbmVyTmFtZSgpO1xuICAgIC8vIGNvbnN0IGl0ZW1JRCA9IGJhc2VDb250ZXh0LmNvbmNhdCgnLycpLmNvbmNhdChhY05hbWUpO1xuXG4gICAgaWYgKHNCdXR0b25UeXBlID09ICdzZWNvbmRhcnknKSB7XG4gICAgICAvLyBjb25zdCBzdGVwSUQgPSAnJzsgLy8gPz8/XG5cbiAgICAgIC8vIG5lZWQgdG8gaGFuZGxlIGNhbmNlbCBhcyB0aGlzLmNhbmNlbChkaXNwYXRjaEluZm8pXG4gICAgICAvLyB0aGlzLmFjdGlvbnNBUElbc0FjdGlvbl0oZGlzcGF0Y2hJbmZvKTtcbiAgICAgIHN3aXRjaCAoc0FjdGlvbikge1xuICAgICAgICBjYXNlICduYXZpZ2F0ZVRvU3RlcCc6XG4gICAgICAgICAgdGhpcy5lclNlcnZpY2Uuc2VuZE1lc3NhZ2UoJ3B1Ymxpc2gnLCAnJyk7XG5cbiAgICAgICAgICB0aGlzLmJSZUluaXQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKHRydWUpO1xuXG4gICAgICAgICAgY29uc3QgbmF2aWdhdGVQcm9taXNlID0gdGhpcy5uYXZpZ2F0ZVRvU3RlcCgncHJldmlvdXMnLCB0aGlzLml0ZW1LZXkkKTtcbiAgICAgICAgICBuYXZpZ2F0ZVByb21pc2VcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJSZWYgPSB0aGlzLnNuYWNrQmFyLm9wZW4oYCR7dGhpcy5sb2NhbGl6ZWRWYWwoJ05hdmlnYXRpb24gZmFpbGVkIScsIHRoaXMubG9jYWxlQ2F0ZWdvcnkpfWAsICdPaycpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzYXZlQXNzaWdubWVudCc6IHtcbiAgICAgICAgICBjb25zdCBjYXNlSUQgPSB0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpLmdldEtleSgpO1xuICAgICAgICAgIGNvbnN0IGFzc2lnbm1lbnRJRCA9IHRoaXMucENvbm4kLmdldENhc2VJbmZvKCkuZ2V0QXNzaWdubWVudElEKCk7XG4gICAgICAgICAgY29uc3Qgc2F2ZVByb21pc2UgPSB0aGlzLnNhdmVBc3NpZ25tZW50KHRoaXMuaXRlbUtleSQpO1xuXG4gICAgICAgICAgc2F2ZVByb21pc2VcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2FzZVR5cGUgPSB0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpLmMxMW5FbnYuZ2V0VmFsdWUoUENvcmUuZ2V0Q29uc3RhbnRzKCkuQ0FTRV9JTkZPLkNBU0VfVFlQRV9JRCk7XG4gICAgICAgICAgICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaCgnY2FuY2VsUHJlc3NlZCcpO1xuICAgICAgICAgICAgICB0aGlzLm9uU2F2ZUFjdGlvblN1Y2Nlc3MoeyBjYXNlVHlwZSwgY2FzZUlELCBhc3NpZ25tZW50SUQgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmID0gdGhpcy5zbmFja0Jhci5vcGVuKGAke3RoaXMubG9jYWxpemVkVmFsKCdTYXZlIGZhaWxlZCcsIHRoaXMubG9jYWxlQ2F0ZWdvcnkpfWAsICdPaycpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ2NhbmNlbEFzc2lnbm1lbnQnOlxuICAgICAgICAgIHRoaXMuYlJlSW5pdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5lclNlcnZpY2Uuc2VuZE1lc3NhZ2UoJ2Rpc21pc3MnLCAnJyk7XG4gICAgICAgICAgY29uc3QgaXNBc3NpZ25tZW50SW5DcmVhdGVTdGFnZSA9IHRoaXMucENvbm4kLmdldENhc2VJbmZvKCkuaXNBc3NpZ25tZW50SW5DcmVhdGVTdGFnZSgpO1xuICAgICAgICAgIGNvbnN0IGlzTG9jYWxBY3Rpb24gPVxuICAgICAgICAgICAgdGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5pc0xvY2FsQWN0aW9uKCkgfHxcbiAgICAgICAgICAgIChQQ29yZS5nZXRDb25zdGFudHMoKS5DQVNFX0lORk8uSVNfTE9DQUxfQUNUSU9OICYmIHRoaXMucENvbm4kLmdldFZhbHVlKFBDb3JlLmdldENvbnN0YW50cygpLkNBU0VfSU5GTy5JU19MT0NBTF9BQ1RJT04pKTtcbiAgICAgICAgICAvLyBjaGVjayBpZiBjcmVhdGUgc3RhZ2UgKG1vZGFsKVxuICAgICAgICAgIGlmIChpc0Fzc2lnbm1lbnRJbkNyZWF0ZVN0YWdlICYmIHRoaXMuaXNJbk1vZGFsJCAmJiAhaXNMb2NhbEFjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IHRoaXMuY2FuY2VsQ3JlYXRlU3RhZ2VBc3NpZ25tZW50KHRoaXMuaXRlbUtleSQpO1xuICAgICAgICAgICAgY2FuY2VsUHJvbWlzZVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICAgIC8vIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaChcbiAgICAgICAgICAgICAgICAvLyAgIFBDb3JlLmdldENvbnN0YW50cygpLlBVQl9TVUJfRVZFTlRTLkVWRU5UX0NBTkNFTCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJSZWYgPSB0aGlzLnNuYWNrQmFyLm9wZW4oYCR7dGhpcy5sb2NhbGl6ZWRWYWwoJ0NhbmNlbCBmYWlsZWQhJywgdGhpcy5sb2NhbGVDYXRlZ29yeSl9YCwgJ09rJyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZSh0cnVlKTtcblxuICAgICAgICAgICAgLy8gcHVibGlzaCBiZWZvcmUgY2FuY2VsIHByZXNzZWQsIGJlY2F1c2VcbiAgICAgICAgICAgIC8vIGNhbmNlbCBhc3NpZ25tZW50IGhhcHBlbnMgXCJhZnRlclwiIGNhbmNlbCBhc3NpZ25tZW50IGhhcHBlbnNcbiAgICAgICAgICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaCgnY2FuY2VsUHJlc3NlZCcpO1xuXG4gICAgICAgICAgICBjb25zdCBjYW5jZWxQcm9taXNlID0gdGhpcy5jYW5jZWxBc3NpZ25tZW50KHRoaXMuaXRlbUtleSQpO1xuICAgICAgICAgICAgY2FuY2VsUHJvbWlzZVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaChQQ29yZS5nZXRDb25zdGFudHMoKS5QVUJfU1VCX0VWRU5UUy5FVkVOVF9DQU5DRUwpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmID0gdGhpcy5zbmFja0Jhci5vcGVuKGAke3RoaXMubG9jYWxpemVkVmFsKCdDYW5jZWwgZmFpbGVkIScsIHRoaXMubG9jYWxlQ2F0ZWdvcnkpfWAsICdPaycpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmVqZWN0Q2FzZSc6IHtcbiAgICAgICAgICBjb25zdCByZWplY3RQcm9taXNlID0gdGhpcy5yZWplY3RDYXNlKHRoaXMuaXRlbUtleSQpO1xuXG4gICAgICAgICAgcmVqZWN0UHJvbWlzZVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge30pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJSZWYgPSB0aGlzLnNuYWNrQmFyLm9wZW4oYCR7dGhpcy5sb2NhbGl6ZWRWYWwoJ1JlamVjdGlvbiBmYWlsZWQhJywgdGhpcy5sb2NhbGVDYXRlZ29yeSl9YCwgJ09rJyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNCdXR0b25UeXBlID09ICdwcmltYXJ5Jykge1xuICAgICAgc3dpdGNoIChzQWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ2ZpbmlzaEFzc2lnbm1lbnQnOlxuICAgICAgICAgIHRoaXMuZXJTZXJ2aWNlLnNlbmRNZXNzYWdlKCdwdWJsaXNoJywgJycpO1xuICAgICAgICAgIHRoaXMuYlJlSW5pdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UodHJ1ZSk7XG4gICAgICAgICAgY29uc3QgZmluaXNoUHJvbWlzZSA9IHRoaXMuZmluaXNoQXNzaWdubWVudCh0aGlzLml0ZW1LZXkkKTsgLy8gSkEgLSB3YXMgaXRlbUlEIGJ1dCBOZWJ1bGEvQ29uc3RlbGxhdGlvbiB1c2VzIGl0ZW1LZXlcbiAgICAgICAgICBmaW5pc2hQcm9taXNlXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmID0gdGhpcy5zbmFja0Jhci5vcGVuKGAke3RoaXMubG9jYWxpemVkVmFsKCdTdWJtaXQgZmFpbGVkIScsIHRoaXMubG9jYWxlQ2F0ZWdvcnkpfWAsICdPaycpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnYXBwcm92ZUNhc2UnOiB7XG4gICAgICAgICAgY29uc3QgYXBwcm92ZVByb21pc2UgPSB0aGlzLmFwcHJvdmVDYXNlKHRoaXMuaXRlbUtleSQpO1xuXG4gICAgICAgICAgYXBwcm92ZVByb21pc2VcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHt9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmID0gdGhpcy5zbmFja0Jhci5vcGVuKGAke3RoaXMubG9jYWxpemVkVmFsKCdBcHByb3ZlIGZhaWxlZCEnLCB0aGlzLmxvY2FsZUNhdGVnb3J5KX1gLCAnT2snKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3JtVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgdGhpcy50b3VjaEFsbCgpO1xuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cCQudmFsaWQ7XG4gIH1cblxuICB0b3VjaEFsbCgpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuZm9ybUdyb3VwJC5jb250cm9scykuZm9yRWFjaCgoY29udHJvbDogYW55KSA9PiB7XG4gICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvcFZpZXdSZWZyZXNoKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAkLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sOiBhbnkpID0+IHtcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVnaXN0ZXJGb3JSZWZyZXNoKCkge1xuICAgIGNvbnN0IHJlZnJlc2hDb25kaXRpb25zID0gdGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKT8uZ2V0QWN0aW9uUmVmcmVzaENvbmRpdGlvbnMoKTtcbiAgICBjb25zdCBwYWdlUmVmZXJlbmNlID0gdGhpcy5wQ29ubiQuZ2V0UGFnZVJlZmVyZW5jZSgpO1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpO1xuXG4gICAgLy8gcmVmcmVzaCBhcGkgZGUtcmVnaXN0cmF0aW9uXG4gICAgUENvcmUuZ2V0UmVmcmVzaE1hbmFnZXIoKS5kZVJlZ2lzdGVyRm9yUmVmcmVzaChjb250ZXh0KTtcblxuICAgIC8vIHJlZnJlc2ggYXBpIHJlZ2lzdHJhdGlvblxuICAgIGNvbnN0IHJlZnJlc2hQcm9wcyA9IGdldFJlZnJlc2hQcm9wcyhyZWZyZXNoQ29uZGl0aW9ucyk7XG4gICAgY29uc3QgY2FzZUtleSA9IHRoaXMucENvbm4kLmdldENhc2VJbmZvKCkuZ2V0S2V5KCk7XG4gICAgY29uc3QgcmVmcmVzaE9wdGlvbnMgPSB7XG4gICAgICBhdXRvRGV0ZWN0UmVmcmVzaDogdHJ1ZSxcbiAgICAgIHByZXNlcnZlQ2xpZW50Q2hhbmdlczogZmFsc2VcbiAgICB9O1xuICAgIGlmIChyZWZyZXNoUHJvcHMubGVuZ3RoID4gMCkge1xuICAgICAgcmVmcmVzaFByb3BzLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICAgIFBDb3JlLmdldFJlZnJlc2hNYW5hZ2VyKCkucmVnaXN0ZXJGb3JSZWZyZXNoKFxuICAgICAgICAgICdQUk9QX0NIQU5HRScsXG4gICAgICAgICAgdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpLnJlZnJlc2hDYXNlVmlldy5iaW5kKHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKSwgY2FzZUtleSwgJycsIHBhZ2VSZWZlcmVuY2UsIHtcbiAgICAgICAgICAgIC4uLnJlZnJlc2hPcHRpb25zLFxuICAgICAgICAgICAgcmVmcmVzaEZvcjogcHJvcFswXVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGAke3BhZ2VSZWZlcmVuY2V9LiR7cHJvcFsxXX1gLFxuICAgICAgICAgIGAke2NvbnRleHR9LyR7cGFnZVJlZmVyZW5jZX1gLFxuICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdj5cbiAgPGRpdj48Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiQWxlcnRCYW5uZXJcIiBbcHJvcHNdPVwieyBiYW5uZXJzOiBiYW5uZXJTZXJ2aWNlLmJhbm5lcnMgfVwiIFtwYXJlbnRdPVwidGhpc1wiPjwvY29tcG9uZW50LW1hcHBlcj48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImJIYXNOYXZpZ2F0aW9uJFwiIGNsYXNzPVwicHNkay1zdGVwcGVyXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgIG5hbWU9XCJNdWx0aVN0ZXBcIlxuICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgcENvbm4kOiBuZXdQQ29ubiQsXG4gICAgICAgIGZvcm1Hcm91cCQsXG4gICAgICAgIGFyQ2hpbGRyZW4kLFxuICAgICAgICBhck1haW5CdXR0b25zJCxcbiAgICAgICAgYXJTZWNvbmRhcnlCdXR0b25zJCxcbiAgICAgICAgYklzVmVydGljYWwkLFxuICAgICAgICBhckN1cnJlbnRTdGVwSW5kaWNpZXMkLFxuICAgICAgICBhck5hdmlnYXRpb25TdGVwcyRcbiAgICAgIH1cIlxuICAgICAgW3BhcmVudF09XCJ0aGlzXCJcbiAgICAgIFtvdXRwdXRFdmVudHNdPVwieyBhY3Rpb25CdXR0b25DbGljazogb25BY3Rpb25CdXR0b25DbGljayB9XCJcbiAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFiSGFzTmF2aWdhdGlvbiRcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgbmFtZT1cIkFzc2lnbm1lbnRDYXJkXCJcbiAgICAgIFtwcm9wc109XCJ7IHBDb25uJDogbmV3UENvbm4kLCBmb3JtR3JvdXAkLCBhckNoaWxkcmVuJCwgYXJNYWluQnV0dG9ucyQsIGFyU2Vjb25kYXJ5QnV0dG9ucyQsIHVwZGF0ZVRva2VuJCB9XCJcbiAgICAgIFtwYXJlbnRdPVwidGhpc1wiXG4gICAgICBbb3V0cHV0RXZlbnRzXT1cInsgYWN0aW9uQnV0dG9uQ2xpY2s6IG9uQWN0aW9uQnV0dG9uQ2xpY2sgfVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule } from '@angular/forms';
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 "@angular/common";
8
- import * as i2 from "@angular/forms";
9
- export class AssignmentCardComponent {
10
- constructor() {
11
- this.actionButtonClick = new EventEmitter();
12
- }
13
- ngOnInit() {
14
- // Children may contain 'reference' component, so we need to
15
- // normalize them
16
- this.arChildren$ = ReferenceComponent.normalizePConnArray(this.arChildren$);
17
- }
18
- ngOnChanges() {
19
- // Children may contain 'reference' component, so we need to
20
- // normalize them
21
- this.arChildren$ = ReferenceComponent.normalizePConnArray(this.arChildren$);
22
- }
23
- onActionButtonClick(oData) {
24
- this.actionButtonClick.emit(oData);
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AssignmentCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AssignmentCardComponent, isStandalone: true, selector: "app-assignment-card", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", arMainButtons$: "arMainButtons$", arSecondaryButtons$: "arSecondaryButtons$", arChildren$: "arChildren$", updateToken$: "updateToken$" }, outputs: { actionButtonClick: "actionButtonClick" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"formGroup$\" name=\"flowContainer\" class=\"psdk-flow-container\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"></component-mapper>\n <component-mapper\n *ngSwitchCase=\"'CaseCreateStage'\"\n name=\"CaseCreateStage\"\n [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"\n ></component-mapper>\n <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"></component-mapper>\n <div *ngSwitchDefault>Assignment Card wants component not yet available: {{ kid.getPConnect().getComponentName() }}</div>\n </div>\n </div>\n</form>\n\n<div>\n <br />\n <div class=\"psdk-case-view-divider\"></div>\n\n <component-mapper\n *ngIf=\"arMainButtons$ && arSecondaryButtons$\"\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$, arSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n</div>\n", styles: [".psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-flow-container{padding:0rem 1rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgSwitch), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgSwitchCase), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgSwitchDefault), selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i2.ɵNgNoValidate), selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i0.forwardRef(() => i2.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i2.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AssignmentCardComponent, decorators: [{
30
- type: Component,
31
- args: [{ selector: 'app-assignment-card', standalone: true, imports: [CommonModule, ReactiveFormsModule, forwardRef(() => ComponentMapperComponent)], template: "<form [formGroup]=\"formGroup$\" name=\"flowContainer\" class=\"psdk-flow-container\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"></component-mapper>\n <component-mapper\n *ngSwitchCase=\"'CaseCreateStage'\"\n name=\"CaseCreateStage\"\n [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"\n ></component-mapper>\n <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"></component-mapper>\n <div *ngSwitchDefault>Assignment Card wants component not yet available: {{ kid.getPConnect().getComponentName() }}</div>\n </div>\n </div>\n</form>\n\n<div>\n <br />\n <div class=\"psdk-case-view-divider\"></div>\n\n <component-mapper\n *ngIf=\"arMainButtons$ && arSecondaryButtons$\"\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$, arSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n ></component-mapper>\n</div>\n", styles: [".psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-flow-container{padding:0rem 1rem}\n"] }]
32
- }], propDecorators: { pConn$: [{
33
- type: Input
34
- }], formGroup$: [{
35
- type: Input
36
- }], arMainButtons$: [{
37
- type: Input
38
- }], arSecondaryButtons$: [{
39
- type: Input
40
- }], arChildren$: [{
41
- type: Input
42
- }], updateToken$: [{
43
- type: Input
44
- }], actionButtonClick: [{
45
- type: Output
46
- }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWdubWVudC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9hc3NpZ25tZW50LWNhcmQvYXNzaWdubWVudC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9hc3NpZ25tZW50LWNhcmQvYXNzaWdubWVudC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7OztBQVN4RyxNQUFNLE9BQU8sdUJBQXVCO0lBUHBDO1FBZVksc0JBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7S0FpQnJFO0lBZkMsUUFBUTtRQUNOLDREQUE0RDtRQUM1RCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELFdBQVc7UUFDVCw0REFBNEQ7UUFDNUQsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0F4QlUsdUJBQXVCO21HQUF2Qix1QkFBdUIseVZDYnBDLDZwQ0EyQkEsME1EaEJZLFlBQVkseW9CQUFFLG1CQUFtQix5Z0JBQW1CLHdCQUF3Qjs7NEZBRTNFLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzhCQUcvRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVmZXJlbmNlL3JlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFzc2lnbm1lbnQtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3NpZ25tZW50LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hc3NpZ25tZW50LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBBc3NpZ25tZW50Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgYXJNYWluQnV0dG9ucyQ6IGFueVtdO1xuICBASW5wdXQoKSBhclNlY29uZGFyeUJ1dHRvbnMkOiBhbnlbXTtcbiAgQElucHV0KCkgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICBASW5wdXQoKSB1cGRhdGVUb2tlbiQ6IG51bWJlcjtcblxuICBAT3V0cHV0KCkgYWN0aW9uQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIENoaWxkcmVuIG1heSBjb250YWluICdyZWZlcmVuY2UnIGNvbXBvbmVudCwgc28gd2UgbmVlZCB0b1xuICAgIC8vICBub3JtYWxpemUgdGhlbVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLmFyQ2hpbGRyZW4kKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIC8vIENoaWxkcmVuIG1heSBjb250YWluICdyZWZlcmVuY2UnIGNvbXBvbmVudCwgc28gd2UgbmVlZCB0b1xuICAgIC8vICBub3JtYWxpemUgdGhlbVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLmFyQ2hpbGRyZW4kKTtcbiAgfVxuXG4gIG9uQWN0aW9uQnV0dG9uQ2xpY2sob0RhdGE6IGFueSkge1xuICAgIHRoaXMuYWN0aW9uQnV0dG9uQ2xpY2suZW1pdChvRGF0YSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwJFwiIG5hbWU9XCJmbG93Q29udGFpbmVyXCIgY2xhc3M9XCJwc2RrLWZsb3ctY29udGFpbmVyXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiPlxuICAgIDxkaXYgW25nU3dpdGNoXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgKm5nU3dpdGNoQ2FzZT1cIidWaWV3J1wiIG5hbWU9XCJWaWV3XCIgW3Byb3BzXT1cInsgZm9ybUdyb3VwJCwgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDYXNlQ3JlYXRlU3RhZ2UnXCJcbiAgICAgICAgbmFtZT1cIkNhc2VDcmVhdGVTdGFnZVwiXG4gICAgICAgIFtwcm9wc109XCJ7IGZvcm1Hcm91cCQsIHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgKm5nU3dpdGNoQ2FzZT1cIidSZWdpb24nXCIgbmFtZT1cIlJlZ2lvblwiIFtwcm9wc109XCJ7IGZvcm1Hcm91cCQsIHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5Bc3NpZ25tZW50IENhcmQgd2FudHMgY29tcG9uZW50IG5vdCB5ZXQgYXZhaWxhYmxlOiB7eyBraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCkgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG5cbjxkaXY+XG4gIDxiciAvPlxuICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctZGl2aWRlclwiPjwvZGl2PlxuXG4gIDxjb21wb25lbnQtbWFwcGVyXG4gICAgKm5nSWY9XCJhck1haW5CdXR0b25zJCAmJiBhclNlY29uZGFyeUJ1dHRvbnMkXCJcbiAgICBuYW1lPVwiQWN0aW9uQnV0dG9uc1wiXG4gICAgW3Byb3BzXT1cInsgYXJNYWluQnV0dG9ucyQsIGFyU2Vjb25kYXJ5QnV0dG9ucyQgfVwiXG4gICAgW3BhcmVudF09XCJ0aGlzXCJcbiAgICBbb3V0cHV0RXZlbnRzXT1cInsgYWN0aW9uQnV0dG9uQ2xpY2s6IG9uQWN0aW9uQnV0dG9uQ2xpY2sgfVwiXG4gID48L2NvbXBvbmVudC1tYXBwZXI+XG48L2Rpdj5cbiJdfQ==