@pega/angular-sdk-components 24.2.12 → 25.1.11

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 (325) 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/index.d.ts +4963 -3
  4. package/package.json +21 -6
  5. package/esm2022/lib/_bridge/angular-pconnect.mjs +0 -428
  6. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +0 -107
  7. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +0 -239
  8. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +0 -142
  9. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +0 -50
  10. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +0 -29
  11. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +0 -31
  12. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +0 -51
  13. package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +0 -31
  14. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +0 -82
  15. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +0 -37
  16. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +0 -38
  17. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +0 -36
  18. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +0 -25
  19. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +0 -28
  20. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +0 -42
  21. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +0 -145
  22. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +0 -33
  23. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +0 -93
  24. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +0 -18
  25. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +0 -296
  26. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +0 -96
  27. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +0 -225
  28. package/esm2022/lib/_components/field/currency/currency.component.mjs +0 -195
  29. package/esm2022/lib/_components/field/date/date.component.mjs +0 -205
  30. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +0 -196
  31. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +0 -205
  32. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +0 -300
  33. package/esm2022/lib/_components/field/email/email.component.mjs +0 -165
  34. package/esm2022/lib/_components/field/group/group.component.mjs +0 -64
  35. package/esm2022/lib/_components/field/integer/integer.component.mjs +0 -168
  36. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +0 -45
  37. package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +0 -314
  38. package/esm2022/lib/_components/field/multiselect/utils.mjs +0 -187
  39. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +0 -190
  40. package/esm2022/lib/_components/field/phone/phone.component.mjs +0 -155
  41. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +0 -182
  42. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +0 -109
  43. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +0 -95
  44. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +0 -57
  45. package/esm2022/lib/_components/field/text/text.component.mjs +0 -142
  46. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +0 -165
  47. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +0 -69
  48. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +0 -165
  49. package/esm2022/lib/_components/field/time/time.component.mjs +0 -174
  50. package/esm2022/lib/_components/field/url/url.component.mjs +0 -165
  51. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +0 -266
  52. package/esm2022/lib/_components/infra/Containers/base-components/flow-container-base.component.mjs +0 -18
  53. package/esm2022/lib/_components/infra/Containers/base-components/helper.mjs +0 -71
  54. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +0 -461
  55. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +0 -68
  56. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +0 -24
  57. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +0 -335
  58. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +0 -32
  59. package/esm2022/lib/_components/infra/Containers/view-container/helper.mjs +0 -22
  60. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +0 -211
  61. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +0 -31
  62. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +0 -407
  63. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +0 -47
  64. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +0 -87
  65. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +0 -143
  66. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +0 -18
  67. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +0 -80
  68. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +0 -136
  69. package/esm2022/lib/_components/infra/reference/reference.component.mjs +0 -126
  70. package/esm2022/lib/_components/infra/region/region.component.mjs +0 -33
  71. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +0 -223
  72. package/esm2022/lib/_components/infra/stages/stages.component.mjs +0 -62
  73. package/esm2022/lib/_components/infra/view/view.component.mjs +0 -188
  74. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +0 -156
  75. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +0 -43
  76. package/esm2022/lib/_components/template/base/details-template-base.mjs +0 -56
  77. package/esm2022/lib/_components/template/base/form-template-base.mjs +0 -16
  78. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +0 -101
  79. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +0 -185
  80. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +0 -68
  81. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +0 -242
  82. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +0 -73
  83. package/esm2022/lib/_components/template/details/details.component.mjs +0 -76
  84. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +0 -45
  85. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +0 -42
  86. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +0 -39
  87. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +0 -51
  88. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +0 -48
  89. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +0 -48
  90. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +0 -65
  91. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +0 -23
  92. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +0 -131
  93. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +0 -24
  94. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +0 -22
  95. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +0 -40
  96. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +0 -14
  97. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +0 -208
  98. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +0 -1217
  99. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +0 -60
  100. package/esm2022/lib/_components/template/list-view/utils.mjs +0 -662
  101. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +0 -44
  102. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +0 -30
  103. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +0 -31
  104. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +0 -16
  105. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +0 -30
  106. package/esm2022/lib/_components/template/page/page.component.mjs +0 -52
  107. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +0 -149
  108. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +0 -138
  109. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +0 -104
  110. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +0 -271
  111. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +0 -813
  112. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +0 -129
  113. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +0 -16
  114. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +0 -67
  115. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +0 -31
  116. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +0 -16
  117. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +0 -31
  118. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +0 -40
  119. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +0 -30
  120. package/esm2022/lib/_components/template/utils.mjs +0 -38
  121. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +0 -31
  122. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +0 -53
  123. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +0 -137
  124. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +0 -24
  125. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +0 -393
  126. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +0 -80
  127. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +0 -521
  128. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +0 -638
  129. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +0 -57
  130. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +0 -75
  131. package/esm2022/lib/_components/widget/todo/todo.component.mjs +0 -230
  132. package/esm2022/lib/_components/widget/utility/utility.component.mjs +0 -34
  133. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +0 -28
  134. package/esm2022/lib/_helpers/case-utils.mjs +0 -71
  135. package/esm2022/lib/_helpers/common.mjs +0 -20
  136. package/esm2022/lib/_helpers/createstage-utils.mjs +0 -15
  137. package/esm2022/lib/_helpers/currency-utils.mjs +0 -57
  138. package/esm2022/lib/_helpers/date-format-utils.mjs +0 -68
  139. package/esm2022/lib/_helpers/event-util.mjs +0 -18
  140. package/esm2022/lib/_helpers/field-group-utils.mjs +0 -47
  141. package/esm2022/lib/_helpers/filter-utils.mjs +0 -105
  142. package/esm2022/lib/_helpers/formatters/boolean.mjs +0 -20
  143. package/esm2022/lib/_helpers/formatters/common.mjs +0 -17
  144. package/esm2022/lib/_helpers/formatters/currency-map.mjs +0 -903
  145. package/esm2022/lib/_helpers/formatters/currency.mjs +0 -68
  146. package/esm2022/lib/_helpers/formatters/date.mjs +0 -69
  147. package/esm2022/lib/_helpers/formatters/format-utils.mjs +0 -76
  148. package/esm2022/lib/_helpers/formatters/index.mjs +0 -124
  149. package/esm2022/lib/_helpers/instructions-utils.mjs +0 -36
  150. package/esm2022/lib/_helpers/tab-utils.mjs +0 -59
  151. package/esm2022/lib/_helpers/template-utils.mjs +0 -56
  152. package/esm2022/lib/_helpers/utils.mjs +0 -412
  153. package/esm2022/lib/_helpers/versionHelpers.mjs +0 -12
  154. package/esm2022/lib/_messages/error-messages.service.mjs +0 -31
  155. package/esm2022/lib/_messages/progress-spinner.service.mjs +0 -30
  156. package/esm2022/lib/_messages/update-worklist.service.mjs +0 -30
  157. package/esm2022/lib/_services/banner.service.mjs +0 -35
  158. package/esm2022/lib/_services/case.service.mjs +0 -32
  159. package/esm2022/lib/_services/datapage.service.mjs +0 -52
  160. package/esm2022/lib/_services/endpoints.mjs +0 -60
  161. package/esm2022/lib/_services/server-config.service.mjs +0 -52
  162. package/esm2022/lib/_types/PConnProps.interface.mjs +0 -2
  163. package/esm2022/pega-angular-sdk-components.mjs +0 -5
  164. package/esm2022/public-api.mjs +0 -145
  165. package/esm2022/sdk-local-component-map.mjs +0 -9
  166. package/lib/_bridge/angular-pconnect.d.ts +0 -142
  167. package/lib/_bridge/component-mapper/component-mapper.component.d.ts +0 -20
  168. package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +0 -219
  169. package/lib/_bridge/helpers/sdk_component_map.d.ts +0 -3
  170. package/lib/_components/designSystemExtension/alert/alert.component.d.ts +0 -12
  171. package/lib/_components/designSystemExtension/alert-banner/alert-banner.component.d.ts +0 -13
  172. package/lib/_components/designSystemExtension/banner/banner.component.d.ts +0 -14
  173. package/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.d.ts +0 -19
  174. package/lib/_components/designSystemExtension/field-group/field-group.component.d.ts +0 -12
  175. package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +0 -20
  176. package/lib/_components/designSystemExtension/material-details/material-details.component.d.ts +0 -15
  177. package/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.d.ts +0 -13
  178. package/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.d.ts +0 -15
  179. package/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.d.ts +0 -9
  180. package/lib/_components/designSystemExtension/material-utility/material-utility.component.d.ts +0 -16
  181. package/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.d.ts +0 -11
  182. package/lib/_components/designSystemExtension/operator/operator.component.d.ts +0 -25
  183. package/lib/_components/designSystemExtension/pulse/pulse.component.d.ts +0 -15
  184. package/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.d.ts +0 -23
  185. package/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.d.ts +0 -7
  186. package/lib/_components/field/auto-complete/auto-complete.component.d.ts +0 -79
  187. package/lib/_components/field/cancel-alert/cancel-alert.component.d.ts +0 -23
  188. package/lib/_components/field/check-box/check-box.component.d.ts +0 -69
  189. package/lib/_components/field/currency/currency.component.d.ts +0 -54
  190. package/lib/_components/field/date/date.component.d.ts +0 -76
  191. package/lib/_components/field/date-time/date-time.component.d.ts +0 -62
  192. package/lib/_components/field/decimal/decimal.component.d.ts +0 -54
  193. package/lib/_components/field/dropdown/dropdown.component.d.ts +0 -71
  194. package/lib/_components/field/email/email.component.d.ts +0 -45
  195. package/lib/_components/field/group/group.component.d.ts +0 -32
  196. package/lib/_components/field/integer/integer.component.d.ts +0 -45
  197. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +0 -14
  198. package/lib/_components/field/multiselect/multiselect.component.d.ts +0 -64
  199. package/lib/_components/field/multiselect/utils.d.ts +0 -8
  200. package/lib/_components/field/percentage/percentage.component.d.ts +0 -53
  201. package/lib/_components/field/phone/phone.component.d.ts +0 -43
  202. package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +0 -60
  203. package/lib/_components/field/rich-text/rich-text.component.d.ts +0 -43
  204. package/lib/_components/field/scalar-list/scalar-list.component.d.ts +0 -36
  205. package/lib/_components/field/semantic-link/semantic-link.component.d.ts +0 -29
  206. package/lib/_components/field/text/text.component.d.ts +0 -41
  207. package/lib/_components/field/text-area/text-area.component.d.ts +0 -46
  208. package/lib/_components/field/text-content/text-content.component.d.ts +0 -29
  209. package/lib/_components/field/text-input/text-input.component.d.ts +0 -46
  210. package/lib/_components/field/time/time.component.d.ts +0 -46
  211. package/lib/_components/field/url/url.component.d.ts +0 -45
  212. package/lib/_components/field/user-reference/user-reference.component.d.ts +0 -50
  213. package/lib/_components/infra/Containers/base-components/flow-container-base.component.d.ts +0 -8
  214. package/lib/_components/infra/Containers/base-components/helper.d.ts +0 -1
  215. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +0 -82
  216. package/lib/_components/infra/Containers/flow-container/helpers.d.ts +0 -3
  217. package/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.d.ts +0 -14
  218. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +0 -69
  219. package/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.d.ts +0 -14
  220. package/lib/_components/infra/Containers/view-container/helper.d.ts +0 -2
  221. package/lib/_components/infra/Containers/view-container/view-container.component.d.ts +0 -50
  222. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +0 -12
  223. package/lib/_components/infra/assignment/assignment.component.d.ts +0 -74
  224. package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +0 -17
  225. package/lib/_components/infra/dashboard-filter/dashboard-filter.component.d.ts +0 -19
  226. package/lib/_components/infra/defer-load/defer-load.component.d.ts +0 -46
  227. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +0 -8
  228. package/lib/_components/infra/multi-step/multi-step.component.d.ts +0 -30
  229. package/lib/_components/infra/navbar/navbar.component.d.ts +0 -52
  230. package/lib/_components/infra/reference/reference.component.d.ts +0 -36
  231. package/lib/_components/infra/region/region.component.d.ts +0 -13
  232. package/lib/_components/infra/root-container/root-container.component.d.ts +0 -36
  233. package/lib/_components/infra/stages/stages.component.d.ts +0 -28
  234. package/lib/_components/infra/view/view.component.d.ts +0 -40
  235. package/lib/_components/template/app-shell/app-shell.component.d.ts +0 -54
  236. package/lib/_components/template/banner-page/banner-page.component.d.ts +0 -26
  237. package/lib/_components/template/base/details-template-base.d.ts +0 -21
  238. package/lib/_components/template/base/form-template-base.d.ts +0 -10
  239. package/lib/_components/template/case-summary/case-summary.component.d.ts +0 -35
  240. package/lib/_components/template/case-view/case-view.component.d.ts +0 -54
  241. package/lib/_components/template/confirmation/confirmation.component.d.ts +0 -37
  242. package/lib/_components/template/data-reference/data-reference.component.d.ts +0 -40
  243. package/lib/_components/template/default-form/default-form.component.d.ts +0 -22
  244. package/lib/_components/template/details/details.component.d.ts +0 -11
  245. package/lib/_components/template/details-narrow-wide/details-narrow-wide.component.d.ts +0 -12
  246. package/lib/_components/template/details-one-column/details-one-column.component.d.ts +0 -11
  247. package/lib/_components/template/details-sub-tabs/details-sub-tabs.component.d.ts +0 -13
  248. package/lib/_components/template/details-three-column/details-three-column.component.d.ts +0 -14
  249. package/lib/_components/template/details-two-column/details-two-column.component.d.ts +0 -14
  250. package/lib/_components/template/details-wide-narrow/details-wide-narrow.component.d.ts +0 -13
  251. package/lib/_components/template/dynamic-tabs/dynamic-tabs.component.d.ts +0 -20
  252. package/lib/_components/template/field-group-list/field-group-list.component.d.ts +0 -9
  253. package/lib/_components/template/field-group-template/field-group-template.component.d.ts +0 -55
  254. package/lib/_components/template/field-value-list/field-value-list.component.d.ts +0 -9
  255. package/lib/_components/template/inline-dashboard/inline-dashboard.component.d.ts +0 -15
  256. package/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.d.ts +0 -24
  257. package/lib/_components/template/list-page/list-page.component.d.ts +0 -6
  258. package/lib/_components/template/list-view/DefaultViewMeta.d.ts +0 -1
  259. package/lib/_components/template/list-view/list-view.component.d.ts +0 -165
  260. package/lib/_components/template/list-view/listViewHelpers.d.ts +0 -1
  261. package/lib/_components/template/list-view/utils.d.ts +0 -118
  262. package/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.d.ts +0 -24
  263. package/lib/_components/template/narrow-wide-form/narrow-wide-form.component.d.ts +0 -13
  264. package/lib/_components/template/one-column/one-column.component.d.ts +0 -14
  265. package/lib/_components/template/one-column-page/one-column-page.component.d.ts +0 -8
  266. package/lib/_components/template/one-column-tab/one-column-tab.component.d.ts +0 -13
  267. package/lib/_components/template/page/page.component.d.ts +0 -24
  268. package/lib/_components/template/promoted-filters/promoted-filters.component.d.ts +0 -34
  269. package/lib/_components/template/repeating-structures/repeating-structures.component.d.ts +0 -36
  270. package/lib/_components/template/simple-table/simple-table.component.d.ts +0 -42
  271. package/lib/_components/template/simple-table-manual/helpers.d.ts +0 -82
  272. package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +0 -168
  273. package/lib/_components/template/simple-table-select/simple-table-select.component.d.ts +0 -31
  274. package/lib/_components/template/single-reference-readonly/single-reference-readonly.component.d.ts +0 -8
  275. package/lib/_components/template/sub-tabs/sub-tabs.component.d.ts +0 -25
  276. package/lib/_components/template/three-column/three-column.component.d.ts +0 -14
  277. package/lib/_components/template/three-column-page/three-column-page.component.d.ts +0 -8
  278. package/lib/_components/template/two-column/two-column.component.d.ts +0 -14
  279. package/lib/_components/template/two-column-page/two-column-page.component.d.ts +0 -16
  280. package/lib/_components/template/two-column-tab/two-column-tab.component.d.ts +0 -13
  281. package/lib/_components/template/utils.d.ts +0 -9
  282. package/lib/_components/template/wide-narrow-form/wide-narrow-form.component.d.ts +0 -14
  283. package/lib/_components/template/wide-narrow-page/wide-narrow-page.component.d.ts +0 -19
  284. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +0 -51
  285. package/lib/_components/widget/app-announcement/app-announcement.component.d.ts +0 -18
  286. package/lib/_components/widget/attachment/attachment.component.d.ts +0 -74
  287. package/lib/_components/widget/case-history/case-history.component.d.ts +0 -23
  288. package/lib/_components/widget/feed-container/feed-container.component.d.ts +0 -48
  289. package/lib/_components/widget/file-utility/file-utility.component.d.ts +0 -149
  290. package/lib/_components/widget/list-utility/list-utility.component.d.ts +0 -23
  291. package/lib/_components/widget/quick-create/quick-create.component.d.ts +0 -28
  292. package/lib/_components/widget/todo/todo.component.d.ts +0 -61
  293. package/lib/_components/widget/utility/utility.component.d.ts +0 -24
  294. package/lib/_directives/thousand-seperator.directive.d.ts +0 -9
  295. package/lib/_helpers/case-utils.d.ts +0 -19
  296. package/lib/_helpers/common.d.ts +0 -3
  297. package/lib/_helpers/createstage-utils.d.ts +0 -1
  298. package/lib/_helpers/currency-utils.d.ts +0 -10
  299. package/lib/_helpers/date-format-utils.d.ts +0 -12
  300. package/lib/_helpers/event-util.d.ts +0 -1
  301. package/lib/_helpers/field-group-utils.d.ts +0 -16
  302. package/lib/_helpers/filter-utils.d.ts +0 -46
  303. package/lib/_helpers/formatters/boolean.d.ts +0 -3
  304. package/lib/_helpers/formatters/common.d.ts +0 -2
  305. package/lib/_helpers/formatters/currency-map.d.ts +0 -1132
  306. package/lib/_helpers/formatters/currency.d.ts +0 -8
  307. package/lib/_helpers/formatters/date.d.ts +0 -9
  308. package/lib/_helpers/formatters/format-utils.d.ts +0 -8
  309. package/lib/_helpers/formatters/index.d.ts +0 -17
  310. package/lib/_helpers/instructions-utils.d.ts +0 -4
  311. package/lib/_helpers/tab-utils.d.ts +0 -4
  312. package/lib/_helpers/template-utils.d.ts +0 -16
  313. package/lib/_helpers/utils.d.ts +0 -40
  314. package/lib/_helpers/versionHelpers.d.ts +0 -8
  315. package/lib/_messages/error-messages.service.d.ts +0 -15
  316. package/lib/_messages/progress-spinner.service.d.ts +0 -14
  317. package/lib/_messages/update-worklist.service.d.ts +0 -14
  318. package/lib/_services/banner.service.d.ts +0 -8
  319. package/lib/_services/case.service.d.ts +0 -12
  320. package/lib/_services/datapage.service.d.ts +0 -14
  321. package/lib/_services/endpoints.d.ts +0 -38
  322. package/lib/_services/server-config.service.d.ts +0 -31
  323. package/lib/_types/PConnProps.interface.d.ts +0 -17
  324. package/public-api.d.ts +0 -140
  325. package/sdk-local-component-map.d.ts +0 -2
@@ -1,205 +0,0 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { MatInputModule } from '@angular/material/input';
5
- import { MatFormFieldModule } from '@angular/material/form-field';
6
- import { NgxCurrencyDirective, NgxCurrencyInputMode } from 'ngx-currency';
7
- import { interval } from 'rxjs';
8
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
9
- import { handleEvent } from '../../../_helpers/event-util';
10
- import { getCurrencyCharacters, getCurrencyOptions } from '../../../_helpers/currency-utils';
11
- import { format } from '../../../_helpers/formatters';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../../../_bridge/angular-pconnect";
14
- import * as i2 from "../../../_helpers/utils";
15
- import * as i3 from "@angular/common";
16
- import * as i4 from "@angular/forms";
17
- import * as i5 from "@angular/material/form-field";
18
- import * as i6 from "@angular/material/input";
19
- export class DecimalComponent {
20
- constructor(angularPConnect, cdRef, utils) {
21
- this.angularPConnect = angularPConnect;
22
- this.cdRef = cdRef;
23
- this.utils = utils;
24
- // Used with AngularPConnect
25
- this.angularPConnectData = {};
26
- this.label$ = '';
27
- this.bRequired$ = false;
28
- this.bReadonly$ = false;
29
- this.bDisabled$ = false;
30
- this.bVisible$ = true;
31
- this.displayMode$ = '';
32
- this.bHasForm$ = true;
33
- this.componentReference = '';
34
- this.fieldControl = new FormControl(null, null);
35
- this.currencySymbol = '';
36
- this.suffix = '';
37
- }
38
- ngOnInit() {
39
- // First thing in initialization is registering and subscribing to the AngularPConnect service
40
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
41
- this.controlName$ = this.angularPConnect.getComponentID(this);
42
- // Then, continue on with other initialization
43
- // call updateSelf when initializing
44
- // this.updateSelf();
45
- this.checkAndUpdate();
46
- if (this.formGroup$) {
47
- // add control to formGroup
48
- this.formGroup$.addControl(this.controlName$, this.fieldControl);
49
- this.fieldControl.setValue(this.value$);
50
- this.bHasForm$ = true;
51
- }
52
- else {
53
- this.bReadonly$ = true;
54
- this.bHasForm$ = false;
55
- }
56
- }
57
- ngOnDestroy() {
58
- if (this.formGroup$) {
59
- this.formGroup$.removeControl(this.controlName$);
60
- }
61
- if (this.angularPConnectData.unsubscribeFn) {
62
- this.angularPConnectData.unsubscribeFn();
63
- }
64
- }
65
- // Callback passed when subscribing to store change
66
- onStateChange() {
67
- this.checkAndUpdate();
68
- }
69
- checkAndUpdate() {
70
- // Should always check the bridge to see if the component should
71
- // update itself (re-render)
72
- const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
73
- // ONLY call updateSelf when the component should update
74
- if (bUpdateSelf) {
75
- this.updateSelf();
76
- }
77
- }
78
- // updateSelf
79
- updateSelf() {
80
- // starting very simple...
81
- // moved this from ngOnInit() and call this from there instead...
82
- this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
83
- this.testId = this.configProps$.testId;
84
- this.label$ = this.configProps$.label;
85
- this.displayMode$ = this.configProps$.displayMode;
86
- this.inputMode = NgxCurrencyInputMode.Natural;
87
- let nValue = this.configProps$.value;
88
- if (nValue) {
89
- if (typeof nValue === 'string') {
90
- nValue = parseFloat(nValue);
91
- }
92
- this.value$ = nValue;
93
- this.fieldControl.setValue(this.value$);
94
- }
95
- this.helperText = this.configProps$.helperText;
96
- this.placeholder = this.configProps$.placeholder || '';
97
- const showGroupSeparators = this.configProps$.showGroupSeparators;
98
- const currencyISOCode = this.configProps$?.currencyISOCode ?? '';
99
- const theSymbols = getCurrencyCharacters(currencyISOCode);
100
- this.decimalSeparator = theSymbols.theDecimalIndicator;
101
- this.thousandSeparator = showGroupSeparators ? theSymbols.theDigitGroupSeparator : '';
102
- const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
103
- this.formatter = this.configProps$.formatter;
104
- if (this.formatter) {
105
- this.formattedValue = format(this.value$, this.formatter.toLowerCase(), theCurrencyOptions);
106
- }
107
- else {
108
- this.formattedValue = format(this.value$, 'decimal', theCurrencyOptions);
109
- }
110
- // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
111
- setTimeout(() => {
112
- if (this.configProps$.required != null) {
113
- this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);
114
- }
115
- this.cdRef.detectChanges();
116
- });
117
- if (this.configProps$.visibility != null) {
118
- this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);
119
- }
120
- if (this.configProps$.readOnly != null) {
121
- this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);
122
- }
123
- // disabled
124
- if (this.configProps$.disabled != undefined) {
125
- this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);
126
- }
127
- if (this.bDisabled$) {
128
- this.fieldControl.disable();
129
- }
130
- else {
131
- this.fieldControl.enable();
132
- }
133
- if (this.bReadonly$ && this.formatter === 'Currency') {
134
- this.currencySymbol = theSymbols.theCurrencySymbol;
135
- }
136
- if (this.bReadonly$ && this.formatter === 'Percentage') {
137
- this.suffix = '%';
138
- }
139
- this.decimalPrecision = this.configProps$?.decimalPrecision ?? 2;
140
- this.componentReference = this.pConn$.getStateProps().value;
141
- // trigger display of error message with field control
142
- if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
143
- const timer = interval(100).subscribe(() => {
144
- this.fieldControl.setErrors({ message: true });
145
- this.fieldControl.markAsTouched();
146
- timer.unsubscribe();
147
- });
148
- }
149
- }
150
- fieldOnBlur(event) {
151
- const oldVal = this.value$ ?? '';
152
- const isValueChanged = event.target.value.toString() !== oldVal.toString();
153
- if (isValueChanged) {
154
- const actionsApi = this.pConn$?.getActionsApi();
155
- const propName = this.pConn$?.getStateProps().value;
156
- let value = event?.target?.value;
157
- // replacing thousand separator with empty string as not required in api call
158
- if (this.configProps$.showGroupSeparators) {
159
- const thousandSep = this.thousandSeparator === '.' ? '\\.' : this.thousandSeparator;
160
- const regExp = new RegExp(String.raw `${thousandSep}`, 'g');
161
- value = value?.replace(regExp, '');
162
- }
163
- // replacing decimal separator with '.'
164
- if (this.decimalSeparator !== '.') {
165
- const regExp = new RegExp(String.raw `${this.decimalSeparator}`, 'g');
166
- value = value.replace(regExp, '.');
167
- }
168
- handleEvent(actionsApi, 'changeNblur', propName, value);
169
- }
170
- }
171
- getErrorMessage() {
172
- let errMessage = '';
173
- // look for validation messages for json, pre-defined or just an error pushed from workitem (400)
174
- if (this.fieldControl.hasError('message')) {
175
- errMessage = this.angularPConnectData.validateMessage ?? '';
176
- return errMessage;
177
- }
178
- if (this.fieldControl.hasError('required')) {
179
- errMessage = 'You must enter a value';
180
- }
181
- else if (this.fieldControl.errors) {
182
- errMessage = this.fieldControl.errors.toString();
183
- }
184
- return errMessage;
185
- }
186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecimalComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DecimalComponent, isStandalone: true, selector: "app-decimal", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$: formattedValue, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n type=\"text\"\n matInput\n currencyMask\n [options]=\"{\n prefix: currencySymbol,\n suffix: suffix,\n thousands: thousandSeparator,\n decimal: decimalSeparator,\n align: 'left',\n nullable: true,\n precision: decimalPrecision,\n inputMode: inputMode\n }\"\n [placeholder]=\"placeholder\"\n step=\"0.01\"\n [formControlName]=\"controlName$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (blur)=\"fieldOnBlur($event)\"\n [readonly]=\"bReadonly$\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i4.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i4.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i4.RequiredValidator), selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i4.FormControlName), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: i0.forwardRef(() => FormsModule) }, { kind: "ngmodule", type: i0.forwardRef(() => MatFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatFormField), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(() => i5.MatLabel), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(() => i5.MatError), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i6.MatInput), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i0.forwardRef(() => NgxCurrencyDirective), selector: "input[currencyMask]", inputs: ["currencyMask", "options"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
188
- }
189
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DecimalComponent, decorators: [{
190
- type: Component,
191
- args: [{ selector: 'app-decimal', standalone: true, imports: [
192
- CommonModule,
193
- ReactiveFormsModule,
194
- FormsModule,
195
- MatFormFieldModule,
196
- MatInputModule,
197
- NgxCurrencyDirective,
198
- forwardRef(() => ComponentMapperComponent)
199
- ], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$: formattedValue, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n type=\"text\"\n matInput\n currencyMask\n [options]=\"{\n prefix: currencySymbol,\n suffix: suffix,\n thousands: thousandSeparator,\n decimal: decimalSeparator,\n align: 'left',\n nullable: true,\n precision: decimalPrecision,\n inputMode: inputMode\n }\"\n [placeholder]=\"placeholder\"\n step=\"0.01\"\n [formControlName]=\"controlName$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n (blur)=\"fieldOnBlur($event)\"\n [readonly]=\"bReadonly$\"\n />\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"] }]
200
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: i2.Utils }], propDecorators: { pConn$: [{
201
- type: Input
202
- }], formGroup$: [{
203
- type: Input
204
- }] } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvZGVjaW1hbC9kZWNpbWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9kZWNpbWFsL2RlY2ltYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQXFCLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBYSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHaEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTdGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUF5QnRELE1BQU0sT0FBTyxnQkFBZ0I7SUFnQzNCLFlBQ1Us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bkIsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7cUJBQzNDOytJQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTmd4Q3VycmVuY3lEaXJlY3RpdmUsIE5neEN1cnJlbmN5SW5wdXRNb2RlIH0gZnJvbSAnbmd4LWN1cnJlbmN5JztcbmltcG9ydCB7IGludGVydmFsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IGhhbmRsZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvZXZlbnQtdXRpbCc7XG5pbXBvcnQgeyBnZXRDdXJyZW5jeUNoYXJhY3RlcnMsIGdldEN1cnJlbmN5T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL2N1cnJlbmN5LXV0aWxzJztcbmltcG9ydCB7IFBDb25uRmllbGRQcm9wcyB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9QQ29ublByb3BzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy9mb3JtYXR0ZXJzJztcblxuaW50ZXJmYWNlIERlY2ltYWxQcm9wcyBleHRlbmRzIFBDb25uRmllbGRQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gRGVjaW1hbCBoZXJlXG4gIGN1cnJlbmN5SVNPQ29kZT86IHN0cmluZztcbiAgZGVjaW1hbFByZWNpc2lvbj86IG51bWJlcjtcbiAgc2hvd0dyb3VwU2VwYXJhdG9ycz86IHN0cmluZztcbiAgZm9ybWF0dGVyPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGVjaW1hbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWNpbWFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVjaW1hbC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE5neEN1cnJlbmN5RGlyZWN0aXZlLFxuICAgIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERlY2ltYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgLy8gVXNlZCB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG4gIGNvbmZpZ1Byb3BzJDogRGVjaW1hbFByb3BzO1xuXG4gIGxhYmVsJCA9ICcnO1xuICB2YWx1ZSQ6IGFueTtcbiAgYlJlcXVpcmVkJCA9IGZhbHNlO1xuICBiUmVhZG9ubHkkID0gZmFsc2U7XG4gIGJEaXNhYmxlZCQgPSBmYWxzZTtcbiAgYlZpc2libGUkID0gdHJ1ZTtcbiAgZGlzcGxheU1vZGUkPzogc3RyaW5nID0gJyc7XG4gIGNvbnRyb2xOYW1lJDogc3RyaW5nO1xuICBiSGFzRm9ybSQgPSB0cnVlO1xuICBjb21wb25lbnRSZWZlcmVuY2UgPSAnJztcbiAgdGVzdElkOiBzdHJpbmc7XG4gIGhlbHBlclRleHQ6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBmaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCwgbnVsbCk7XG4gIGRlY2ltYWxTZXBhcmF0b3I6IHN0cmluZztcbiAgdGhvdXNhbmRTZXBhcmF0b3I6IHN0cmluZztcbiAgY3VycmVuY3lTeW1ib2wgPSAnJztcbiAgZGVjaW1hbFByZWNpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBmb3JtYXR0ZXI7XG4gIGZvcm1hdHRlZFZhbHVlOiBhbnk7XG4gIGlucHV0TW9kZTogYW55O1xuICBzdWZmaXggPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy5jb250cm9sTmFtZSQgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKTtcblxuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgIC8vIGNhbGwgdXBkYXRlU2VsZiB3aGVuIGluaXRpYWxpemluZ1xuICAgIC8vIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIC8vIGFkZCBjb250cm9sIHRvIGZvcm1Hcm91cFxuICAgICAgdGhpcy5mb3JtR3JvdXAkLmFkZENvbnRyb2wodGhpcy5jb250cm9sTmFtZSQsIHRoaXMuZmllbGRDb250cm9sKTtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUkKTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iUmVhZG9ubHkkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAkLnJlbW92ZUNvbnRyb2wodGhpcy5jb250cm9sTmFtZSQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVwZGF0ZVNlbGZcbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICAvLyBzdGFydGluZyB2ZXJ5IHNpbXBsZS4uLlxuXG4gICAgLy8gbW92ZWQgdGhpcyBmcm9tIG5nT25Jbml0KCkgYW5kIGNhbGwgdGhpcyBmcm9tIHRoZXJlIGluc3RlYWQuLi5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBEZWNpbWFsUHJvcHM7XG4gICAgdGhpcy50ZXN0SWQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50ZXN0SWQ7XG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5sYWJlbDtcbiAgICB0aGlzLmRpc3BsYXlNb2RlJCA9IHRoaXMuY29uZmlnUHJvcHMkLmRpc3BsYXlNb2RlO1xuICAgIHRoaXMuaW5wdXRNb2RlID0gTmd4Q3VycmVuY3lJbnB1dE1vZGUuTmF0dXJhbDtcbiAgICBsZXQgblZhbHVlOiBhbnkgPSB0aGlzLmNvbmZpZ1Byb3BzJC52YWx1ZTtcbiAgICBpZiAoblZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIG5WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgblZhbHVlID0gcGFyc2VGbG9hdChuVmFsdWUpO1xuICAgICAgfVxuICAgICAgdGhpcy52YWx1ZSQgPSBuVmFsdWU7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlJCk7XG4gICAgfVxuICAgIHRoaXMuaGVscGVyVGV4dCA9IHRoaXMuY29uZmlnUHJvcHMkLmhlbHBlclRleHQ7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuY29uZmlnUHJvcHMkLnBsYWNlaG9sZGVyIHx8ICcnO1xuICAgIGNvbnN0IHNob3dHcm91cFNlcGFyYXRvcnMgPSB0aGlzLmNvbmZpZ1Byb3BzJC5zaG93R3JvdXBTZXBhcmF0b3JzO1xuICAgIGNvbnN0IGN1cnJlbmN5SVNPQ29kZSA9IHRoaXMuY29uZmlnUHJvcHMkPy5jdXJyZW5jeUlTT0NvZGUgPz8gJyc7XG5cbiAgICBjb25zdCB0aGVTeW1ib2xzID0gZ2V0Q3VycmVuY3lDaGFyYWN0ZXJzKGN1cnJlbmN5SVNPQ29kZSk7XG4gICAgdGhpcy5kZWNpbWFsU2VwYXJhdG9yID0gdGhlU3ltYm9scy50aGVEZWNpbWFsSW5kaWNhdG9yO1xuICAgIHRoaXMudGhvdXNhbmRTZXBhcmF0b3IgPSBzaG93R3JvdXBTZXBhcmF0b3JzID8gdGhlU3ltYm9scy50aGVEaWdpdEdyb3VwU2VwYXJhdG9yIDogJyc7XG5cbiAgICBjb25zdCB0aGVDdXJyZW5jeU9wdGlvbnMgPSBnZXRDdXJyZW5jeU9wdGlvbnMoY3VycmVuY3lJU09Db2RlKTtcbiAgICB0aGlzLmZvcm1hdHRlciA9IHRoaXMuY29uZmlnUHJvcHMkLmZvcm1hdHRlcjtcblxuICAgIGlmICh0aGlzLmZvcm1hdHRlcikge1xuICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdCh0aGlzLnZhbHVlJCwgdGhpcy5mb3JtYXR0ZXIudG9Mb3dlckNhc2UoKSwgdGhlQ3VycmVuY3lPcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdCh0aGlzLnZhbHVlJCwgJ2RlY2ltYWwnLCB0aGVDdXJyZW5jeU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIHRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlcXVpcmVkICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5iUmVxdWlyZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQucmVxdWlyZWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5yZWFkT25seSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJSZWFkb25seSQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5yZWFkT25seSk7XG4gICAgfVxuXG4gICAgLy8gZGlzYWJsZWRcbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmJEaXNhYmxlZCQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYkRpc2FibGVkJCkge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5iUmVhZG9ubHkkICYmIHRoaXMuZm9ybWF0dGVyID09PSAnQ3VycmVuY3knKSB7XG4gICAgICB0aGlzLmN1cnJlbmN5U3ltYm9sID0gdGhlU3ltYm9scy50aGVDdXJyZW5jeVN5bWJvbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5iUmVhZG9ubHkkICYmIHRoaXMuZm9ybWF0dGVyID09PSAnUGVyY2VudGFnZScpIHtcbiAgICAgIHRoaXMuc3VmZml4ID0gJyUnO1xuICAgIH1cblxuICAgIHRoaXMuZGVjaW1hbFByZWNpc2lvbiA9IHRoaXMuY29uZmlnUHJvcHMkPy5kZWNpbWFsUHJlY2lzaW9uID8/IDI7XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZmVyZW5jZSA9IHRoaXMucENvbm4kLmdldFN0YXRlUHJvcHMoKS52YWx1ZTtcblxuICAgIC8vIHRyaWdnZXIgZGlzcGxheSBvZiBlcnJvciBtZXNzYWdlIHdpdGggZmllbGQgY29udHJvbFxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlICE9IG51bGwgJiYgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSAhPSAnJykge1xuICAgICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldEVycm9ycyh7IG1lc3NhZ2U6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICB0aW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZmllbGRPbkJsdXIoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IG9sZFZhbCA9IHRoaXMudmFsdWUkID8/ICcnO1xuICAgIGNvbnN0IGlzVmFsdWVDaGFuZ2VkID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkgIT09IG9sZFZhbC50b1N0cmluZygpO1xuXG4gICAgaWYgKGlzVmFsdWVDaGFuZ2VkKSB7XG4gICAgICBjb25zdCBhY3Rpb25zQXBpID0gdGhpcy5wQ29ubiQ/LmdldEFjdGlvbnNBcGkoKTtcbiAgICAgIGNvbnN0IHByb3BOYW1lID0gdGhpcy5wQ29ubiQ/LmdldFN0YXRlUHJvcHMoKS52YWx1ZTtcbiAgICAgIGxldCB2YWx1ZSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xuICAgICAgLy8gcmVwbGFjaW5nIHRob3VzYW5kIHNlcGFyYXRvciB3aXRoIGVtcHR5IHN0cmluZyBhcyBub3QgcmVxdWlyZWQgaW4gYXBpIGNhbGxcbiAgICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5zaG93R3JvdXBTZXBhcmF0b3JzKSB7XG4gICAgICAgIGNvbnN0IHRob3VzYW5kU2VwID0gdGhpcy50aG91c2FuZFNlcGFyYXRvciA9PT0gJy4nID8gJ1xcXFwuJyA6IHRoaXMudGhvdXNhbmRTZXBhcmF0b3I7XG4gICAgICAgIGNvbnN0IHJlZ0V4cCA9IG5ldyBSZWdFeHAoU3RyaW5nLnJhd2Ake3Rob3VzYW5kU2VwfWAsICdnJyk7XG4gICAgICAgIHZhbHVlID0gdmFsdWU/LnJlcGxhY2UocmVnRXhwLCAnJyk7XG4gICAgICB9XG4gICAgICAvLyByZXBsYWNpbmcgZGVjaW1hbCBzZXBhcmF0b3Igd2l0aCAnLidcbiAgICAgIGlmICh0aGlzLmRlY2ltYWxTZXBhcmF0b3IgIT09ICcuJykge1xuICAgICAgICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKFN0cmluZy5yYXdgJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9YCwgJ2cnKTtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHJlZ0V4cCwgJy4nKTtcbiAgICAgIH1cbiAgICAgIGhhbmRsZUV2ZW50KGFjdGlvbnNBcGksICdjaGFuZ2VOYmx1cicsIHByb3BOYW1lLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xuICAgIGxldCBlcnJNZXNzYWdlID0gJyc7XG5cbiAgICAvLyBsb29rIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2VzIGZvciBqc29uLCBwcmUtZGVmaW5lZCBvciBqdXN0IGFuIGVycm9yIHB1c2hlZCBmcm9tIHdvcmtpdGVtICg0MDApXG4gICAgaWYgKHRoaXMuZmllbGRDb250cm9sLmhhc0Vycm9yKCdtZXNzYWdlJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlID8/ICcnO1xuICAgICAgcmV0dXJuIGVyck1lc3NhZ2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgZXJyTWVzc2FnZSA9ICdZb3UgbXVzdCBlbnRlciBhIHZhbHVlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRDb250cm9sLmVycm9ycykge1xuICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuZmllbGRDb250cm9sLmVycm9ycy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGlzcGxheU1vZGUkOyBlbHNlIG5vRGlzcGxheU1vZGVcIj5cbiAgPGNvbXBvbmVudC1tYXBwZXIgKm5nSWY9XCJiVmlzaWJsZSQgIT09IGZhbHNlXCIgbmFtZT1cIkZpZWxkVmFsdWVMaXN0XCIgW3Byb3BzXT1cInsgbGFiZWwkLCB2YWx1ZSQ6IGZvcm1hdHRlZFZhbHVlLCBkaXNwbGF5TW9kZSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNub0Rpc3BsYXlNb2RlPlxuICA8ZGl2ICpuZ0lmPVwiYkhhc0Zvcm0kOyBlbHNlIG5vRWRpdFwiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAkXCIgKm5nSWY9XCJiVmlzaWJsZSRcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInBzZGstZnVsbC13aWR0aFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIiBbaGludExhYmVsXT1cImhlbHBlclRleHRcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbCQgfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgY3VycmVuY3lNYXNrXG4gICAgICAgICAgW29wdGlvbnNdPVwie1xuICAgICAgICAgICAgcHJlZml4OiBjdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgICAgIHN1ZmZpeDogc3VmZml4LFxuICAgICAgICAgICAgdGhvdXNhbmRzOiB0aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgICAgIGRlY2ltYWw6IGRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICBhbGlnbjogJ2xlZnQnLFxuICAgICAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgICAgICBwcmVjaXNpb246IGRlY2ltYWxQcmVjaXNpb24sXG4gICAgICAgICAgICBpbnB1dE1vZGU6IGlucHV0TW9kZVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgc3RlcD1cIjAuMDFcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbE5hbWUkXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwiYlJlcXVpcmVkJFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpZWxkQ29udHJvbFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4gICAgICAgICAgKGJsdXIpPVwiZmllbGRPbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cImJSZWFkb25seSRcIlxuICAgICAgICAvPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGRDb250cm9sLmludmFsaWRcIj57eyBnZXRFcnJvck1lc3NhZ2UoKSB9fTwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNub0VkaXQ+XG4gIDxjb21wb25lbnQtbWFwcGVyICpuZ0lmPVwiYlZpc2libGUkICE9PSBmYWxzZVwiIG5hbWU9XCJUZXh0XCIgW3Byb3BzXT1cInsgcENvbm4kLCBmb3JtYXRBcyQ6ICd0ZXh0JyB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==