@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,242 +0,0 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../_bridge/angular-pconnect";
6
- import * as i2 from "@angular/common";
7
- const SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };
8
- export class DataReferenceComponent {
9
- constructor(angularPConnect) {
10
- this.angularPConnect = angularPConnect;
11
- // Used with AngularPConnect
12
- this.angularPConnectData = {};
13
- this.arFields$ = [];
14
- this.referenceType = '';
15
- this.selectionMode = '';
16
- this.hideLabel = false;
17
- this.childrenToRender = [];
18
- this.dropDownDataSource = '';
19
- this.isDisplayModeEnabled = false;
20
- this.propsToUse = {};
21
- this.rawViewMetadata = {};
22
- this.viewName = '';
23
- this.firstChildMeta = {};
24
- this.canBeChangedInReviewMode = false;
25
- this.propName = '';
26
- }
27
- ngOnInit() {
28
- // First thing in initialization is registering and subscribing to the AngularPConnect service
29
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
30
- this.children = this.pConn$.getChildren();
31
- this.updateSelf();
32
- if (this.firstChildMeta?.type === 'Dropdown' && this.rawViewMetadata.config?.parameters) {
33
- const { value, key, text } = this.firstChildMeta.config.datasource.fields;
34
- PCore.getDataApiUtils()
35
- .getData(this.refList, {
36
- dataViewParameters: this.parameters
37
- }, '')
38
- .then(res => {
39
- if (res.data.data !== null) {
40
- const ddDataSource = res.data.data
41
- .map(listItem => ({
42
- key: listItem[key.split(' .', 2)[1]],
43
- text: listItem[text.split(' .', 2)[1]],
44
- value: listItem[value.split(' .', 2)[1]]
45
- }))
46
- .filter(item => item.key);
47
- // Filtering out undefined entries that will break preview
48
- this.dropDownDataSource = ddDataSource;
49
- this.updateSelf();
50
- }
51
- else {
52
- const ddDataSource = [];
53
- this.dropDownDataSource = ddDataSource;
54
- }
55
- })
56
- .catch(() => {
57
- return Promise.resolve({
58
- data: { data: [] }
59
- });
60
- });
61
- }
62
- }
63
- ngOnDestroy() {
64
- if (this.angularPConnectData.unsubscribeFn) {
65
- this.angularPConnectData.unsubscribeFn();
66
- }
67
- }
68
- // Callback passed when subscribing to store change
69
- onStateChange() {
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
- // Update properties based on configProps
80
- const theConfigProps = this.pConn$.getConfigProps();
81
- this.updatePropertiesFromProps(theConfigProps);
82
- const displayAs = theConfigProps.displayAs;
83
- const displayMode = theConfigProps.displayMode;
84
- this.rawViewMetadata = this.pConn$.getRawMetadata();
85
- this.viewName = this.rawViewMetadata.name;
86
- this.firstChildMeta = this.rawViewMetadata.children[0];
87
- this.refList = this.rawViewMetadata.config.referenceList;
88
- this.canBeChangedInReviewMode = theConfigProps.allowAndPersistChangesInReviewMode && (displayAs === 'autocomplete' || displayAs === 'dropdown');
89
- // this.childrenToRender = this.children;
90
- this.isDisplayModeEnabled = ['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(displayMode);
91
- if (this.firstChildMeta?.type !== 'Region') {
92
- this.firstChildPConnect = this.pConn$.getChildren()[0].getPConnect;
93
- /* remove refresh When condition from those old view so that it will not be used for runtime */
94
- if (this.firstChildMeta.config?.readOnly) {
95
- delete this.firstChildMeta.config.readOnly;
96
- }
97
- if (this.firstChildMeta?.type === 'Dropdown') {
98
- this.firstChildMeta.config.datasource.source = this.rawViewMetadata.config?.parameters
99
- ? this.dropDownDataSource
100
- : '@DATASOURCE '.concat(this.refList).concat('.pxResults');
101
- }
102
- else if (this.firstChildMeta?.type === 'AutoComplete') {
103
- this.firstChildMeta.config.datasource = this.refList;
104
- /* Insert the parameters to the component only if present */
105
- if (this.rawViewMetadata.config?.parameters) {
106
- this.firstChildMeta.config.parameters = this.parameters;
107
- }
108
- }
109
- // set displayMode conditionally
110
- if (!this.canBeChangedInReviewMode) {
111
- this.firstChildMeta.config.displayMode = displayMode;
112
- }
113
- if (this.firstChildMeta.type === 'SimpleTableSelect' && this.selectionMode === SELECTION_MODE.MULTI) {
114
- this.propName = PCore.getAnnotationUtils().getPropertyName(this.firstChildMeta.config.selectionList);
115
- }
116
- else {
117
- this.propName = PCore.getAnnotationUtils().getPropertyName(this.firstChildMeta.config.value);
118
- }
119
- this.generateChildrenToRender();
120
- }
121
- }
122
- updatePropertiesFromProps(theConfigProps) {
123
- const label = theConfigProps.label;
124
- const showLabel = theConfigProps.showLabel;
125
- this.referenceType = theConfigProps.referenceType;
126
- this.selectionMode = theConfigProps.selectionMode;
127
- this.parameters = theConfigProps.parameters;
128
- this.hideLabel = theConfigProps.hideLabel;
129
- this.propsToUse = { label, showLabel, ...this.pConn$.getInheritedProps() };
130
- if (this.propsToUse.showLabel === false) {
131
- this.propsToUse.label = '';
132
- }
133
- }
134
- generateChildrenToRender() {
135
- const theRecreatedFirstChild = this.recreatedFirstChild();
136
- const viewsRegion = this.rawViewMetadata.children[1];
137
- if (viewsRegion?.name === 'Views' && viewsRegion.children.length) {
138
- this.childrenToRender = [theRecreatedFirstChild, ...this.children.slice(1)];
139
- }
140
- else {
141
- this.childrenToRender = [theRecreatedFirstChild];
142
- }
143
- }
144
- handleSelection(event) {
145
- const caseKey = this.pConn$.getCaseInfo().getKey();
146
- const refreshOptions = { autoDetectRefresh: true };
147
- if (this.canBeChangedInReviewMode && this.pConn$.getValue('__currentPageTabViewName')) {
148
- this.pConn$.getActionsApi().refreshCaseView(caseKey, this.pConn$.getValue('__currentPageTabViewName'), '', refreshOptions);
149
- PCore.getDeferLoadManager().refreshActiveComponents(this.pConn$.getContextName());
150
- }
151
- else {
152
- const pgRef = this.pConn$.getPageReference().replace('caseInfo.content', '');
153
- this.pConn$.getActionsApi().refreshCaseView(caseKey, this.viewName, pgRef, refreshOptions);
154
- }
155
- // AutoComplete sets value on event.id whereas Dropdown sets it on event.target.value
156
- const propValue = event?.id || event?.target?.value;
157
- if (propValue && this.canBeChangedInReviewMode && this.isDisplayModeEnabled) {
158
- PCore.getDataApiUtils()
159
- .getCaseEditLock(caseKey, '')
160
- .then(caseResponse => {
161
- const pageTokens = this.pConn$.getPageReference().replace('caseInfo.content', '').split('.');
162
- let curr = {};
163
- const commitData = curr;
164
- pageTokens.forEach(el => {
165
- if (el !== '') {
166
- curr[el] = {};
167
- curr = curr[el];
168
- }
169
- });
170
- // expecting format like {Customer: {pyID:"C-100"}}
171
- const propArr = this.propName.split('.');
172
- propArr.forEach((element, idx) => {
173
- if (idx + 1 === propArr.length) {
174
- curr[element] = propValue;
175
- }
176
- else {
177
- curr[element] = {};
178
- curr = curr[element];
179
- }
180
- });
181
- PCore.getCaseUtils()
182
- .updateCaseEditFieldsData(caseKey, { [caseKey]: commitData }, caseResponse.headers.etag, this.pConn$.getContextName())
183
- .then(response => {
184
- PCore.getContainerUtils().updateParentLastUpdateTime(this.pConn$.getContextName(), response.data.data.caseInfo.lastUpdateTime);
185
- PCore.getContainerUtils().updateRelatedContextEtag(this.pConn$.getContextName(), response.headers.etag);
186
- });
187
- });
188
- }
189
- }
190
- // Re-create first child with overridden props
191
- // Memoized child in order to stop unmount and remount of the child component when data reference
192
- // rerenders without any actual change
193
- recreatedFirstChild() {
194
- const { type, config } = this.firstChildMeta;
195
- if (this.firstChildMeta?.type !== 'Region') {
196
- this.pConn$.clearErrorMessages({
197
- property: this.propName,
198
- category: '',
199
- context: ''
200
- });
201
- if (!this.canBeChangedInReviewMode && this.isDisplayModeEnabled && this.selectionMode === SELECTION_MODE.SINGLE) {
202
- this.displaySingleRef = true;
203
- }
204
- if (this.isDisplayModeEnabled && this.selectionMode === SELECTION_MODE.MULTI) {
205
- this.displayMultiRef = true;
206
- }
207
- // In the case of a datasource with parameters you cannot load the dropdown before the parameters
208
- if (type === 'Dropdown' && this.rawViewMetadata.config?.parameters && this.dropDownDataSource === null) {
209
- return null;
210
- }
211
- return this.firstChildPConnect().createComponent({
212
- type,
213
- config: {
214
- ...config,
215
- required: this.propsToUse.required,
216
- visibility: this.propsToUse.visibility,
217
- disabled: this.propsToUse.disabled,
218
- label: this.propsToUse.label,
219
- viewName: this.pConn$.getCurrentView(),
220
- parameters: this.rawViewMetadata.config.parameters,
221
- readOnly: false,
222
- localeReference: this.rawViewMetadata.config.localeReference,
223
- ...(this.selectionMode === SELECTION_MODE.SINGLE ? { referenceType: this.referenceType } : ''),
224
- dataRelationshipContext: this.rawViewMetadata.config.contextClass && this.rawViewMetadata.config.name ? this.rawViewMetadata.config.name : null,
225
- hideLabel: this.hideLabel,
226
- onRecordChange: this.handleSelection.bind(this)
227
- }
228
- });
229
- }
230
- }
231
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataReferenceComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataReferenceComponent, isStandalone: true, selector: "app-data-reference", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"childrenToRender && childrenToRender.length > 0\">\n <div *ngIf=\"!displayMultiRef\">\n <div *ngFor=\"let kid of childrenToRender\">\n <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"displaySingleRef\">\n <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n <div *ngIf=\"displayMultiRef\">\n <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i2.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
233
- }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataReferenceComponent, decorators: [{
235
- type: Component,
236
- args: [{ selector: 'app-data-reference', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"childrenToRender && childrenToRender.length > 0\">\n <div *ngIf=\"!displayMultiRef\">\n <div *ngFor=\"let kid of childrenToRender\">\n <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"displaySingleRef\">\n <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n <div *ngIf=\"displayMultiRef\">\n <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n</div>\n" }]
237
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }], propDecorators: { pConn$: [{
238
- type: Input
239
- }], formGroup$: [{
240
- type: Input
241
- }] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yZWZlcmVuY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2RhdGEtcmVmZXJlbmNlL2RhdGEtcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kYXRhLXJlZmVyZW5jZS9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBRXhHLE1BQU0sY0FBYyxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFTNUQsTUFBTSxPQUFPLHNCQUFzQjtJQTJCakMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBdkIzRCw0QkFBNEI7UUFDNUIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUU5QyxjQUFTLEdBQVUsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFRLEVB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ZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGVBQWU7b0JBQzVELEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM5Rix1QkFBdUIsRUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO29CQUN4SCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7b0JBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ2hEO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBNVBVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHNJQ2ZuQyx1cEJBYUEsNkVEQVksWUFBWSwrVEFBbUIsd0JBQXdCOzs0RkFFdEQsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLG9CQUFvQixjQUdsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7MkZBRzFELE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbmNvbnN0IFNFTEVDVElPTl9NT0RFID0geyBTSU5HTEU6ICdzaW5nbGUnLCBNVUxUSTogJ211bHRpJyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGF0YS1yZWZlcmVuY2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1yZWZlcmVuY2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIERhdGFSZWZlcmVuY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgLy8gVXNlZCB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgYXJGaWVsZHMkOiBhbnlbXSA9IFtdO1xuICByZWZlcmVuY2VUeXBlID0gJyc7XG4gIHNlbGVjdGlvbk1vZGUgPSAnJztcbiAgcGFyYW1ldGVycztcbiAgaGlkZUxhYmVsID0gZmFsc2U7XG4gIGNoaWxkcmVuVG9SZW5kZXI6IGFueVtdID0gW107XG4gIGRyb3BEb3duRGF0YVNvdXJjZSA9ICcnO1xuICBpc0Rpc3BsYXlNb2RlRW5hYmxlZCA9IGZhbHNlO1xuICBwcm9wc1RvVXNlOiBhbnkgPSB7fTtcbiAgcmF3Vmlld01ldGFkYXRhOiBhbnkgPSB7fTtcbiAgdmlld05hbWUgPSAnJztcbiAgZmlyc3RDaGlsZE1ldGE6IGFueSA9IHt9O1xuICBjYW5CZUNoYW5nZWRJblJldmlld01vZGUgPSBmYWxzZTtcbiAgcHJvcE5hbWUgPSAnJztcbiAgZmlyc3RDaGlsZFBDb25uZWN0O1xuICBjaGlsZHJlbjtcbiAgZGlzcGxheVNpbmdsZVJlZjogYm9vbGVhbjtcbiAgZGlzcGxheU11bHRpUmVmOiBib29sZWFuO1xuICByZWZMaXN0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCk7XG4gICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgPT09ICdEcm9wZG93bicgJiYgdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnPy5wYXJhbWV0ZXJzKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBrZXksIHRleHQgfSA9IHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2UuZmllbGRzO1xuICAgICAgUENvcmUuZ2V0RGF0YUFwaVV0aWxzKClcbiAgICAgICAgLmdldERhdGEoXG4gICAgICAgICAgdGhpcy5yZWZMaXN0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRhdGFWaWV3UGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAgICAgfSxcbiAgICAgICAgICAnJ1xuICAgICAgICApXG4gICAgICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcy5kYXRhLmRhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGRkRGF0YVNvdXJjZSA9IHJlcy5kYXRhLmRhdGFcbiAgICAgICAgICAgICAgLm1hcChsaXN0SXRlbSA9PiAoe1xuICAgICAgICAgICAgICAgIGtleTogbGlzdEl0ZW1ba2V5LnNwbGl0KCcgLicsIDIpWzFdXSxcbiAgICAgICAgICAgICAgICB0ZXh0OiBsaXN0SXRlbVt0ZXh0LnNwbGl0KCcgLicsIDIpWzFdXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbGlzdEl0ZW1bdmFsdWUuc3BsaXQoJyAuJywgMilbMV1dXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5rZXkpO1xuICAgICAgICAgICAgLy8gRmlsdGVyaW5nIG91dCB1bmRlZmluZWQgZW50cmllcyB0aGF0IHdpbGwgYnJlYWsgcHJldmlld1xuICAgICAgICAgICAgdGhpcy5kcm9wRG93bkRhdGFTb3VyY2UgPSBkZERhdGFTb3VyY2U7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGREYXRhU291cmNlOiBhbnkgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25EYXRhU291cmNlID0gZGREYXRhU291cmNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIGRhdGE6IHsgZGF0YTogW10gfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIC8vIFVwZGF0ZSBwcm9wZXJ0aWVzIGJhc2VkIG9uIGNvbmZpZ1Byb3BzXG4gICAgY29uc3QgdGhlQ29uZmlnUHJvcHMgPSB0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpO1xuICAgIHRoaXMudXBkYXRlUHJvcGVydGllc0Zyb21Qcm9wcyh0aGVDb25maWdQcm9wcyk7XG5cbiAgICBjb25zdCBkaXNwbGF5QXMgPSB0aGVDb25maWdQcm9wcy5kaXNwbGF5QXM7XG4gICAgY29uc3QgZGlzcGxheU1vZGUgPSB0aGVDb25maWdQcm9wcy5kaXNwbGF5TW9kZTtcbiAgICB0aGlzLnJhd1ZpZXdNZXRhZGF0YSA9IHRoaXMucENvbm4kLmdldFJhd01ldGFkYXRhKCk7XG4gICAgdGhpcy52aWV3TmFtZSA9IHRoaXMucmF3Vmlld01ldGFkYXRhLm5hbWU7XG4gICAgdGhpcy5maXJzdENoaWxkTWV0YSA9IHRoaXMucmF3Vmlld01ldGFkYXRhLmNoaWxkcmVuWzBdO1xuICAgIHRoaXMucmVmTGlzdCA9IHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5yZWZlcmVuY2VMaXN0O1xuICAgIHRoaXMuY2FuQmVDaGFuZ2VkSW5SZXZpZXdNb2RlID0gdGhlQ29uZmlnUHJvcHMuYWxsb3dBbmRQZXJzaXN0Q2hhbmdlc0luUmV2aWV3TW9kZSAmJiAoZGlzcGxheUFzID09PSAnYXV0b2NvbXBsZXRlJyB8fCBkaXNwbGF5QXMgPT09ICdkcm9wZG93bicpO1xuICAgIC8vIHRoaXMuY2hpbGRyZW5Ub1JlbmRlciA9IHRoaXMuY2hpbGRyZW47XG4gICAgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCA9IFsnRElTUExBWV9PTkxZJywgJ1NUQUNLRURfTEFSR0VfVkFMJ10uaW5jbHVkZXMoZGlzcGxheU1vZGUpO1xuXG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLmZpcnN0Q2hpbGRQQ29ubmVjdCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKClbMF0uZ2V0UENvbm5lY3Q7XG5cbiAgICAgIC8qIHJlbW92ZSByZWZyZXNoIFdoZW4gY29uZGl0aW9uIGZyb20gdGhvc2Ugb2xkIHZpZXcgc28gdGhhdCBpdCB3aWxsIG5vdCBiZSB1c2VkIGZvciBydW50aW1lICovXG4gICAgICBpZiAodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWc/LnJlYWRPbmx5KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5yZWFkT25seTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZpcnN0Q2hpbGRNZXRhPy50eXBlID09PSAnRHJvcGRvd24nKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2Uuc291cmNlID0gdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnPy5wYXJhbWV0ZXJzXG4gICAgICAgICAgPyB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZVxuICAgICAgICAgIDogJ0BEQVRBU09VUkNFICcuY29uY2F0KHRoaXMucmVmTGlzdCkuY29uY2F0KCcucHhSZXN1bHRzJyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgPT09ICdBdXRvQ29tcGxldGUnKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2UgPSB0aGlzLnJlZkxpc3Q7XG5cbiAgICAgICAgLyogSW5zZXJ0IHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBjb21wb25lbnQgb25seSBpZiBwcmVzZW50ICovXG4gICAgICAgIGlmICh0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMpIHtcbiAgICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5wYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBzZXQgZGlzcGxheU1vZGUgY29uZGl0aW9uYWxseVxuICAgICAgaWYgKCF0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSkge1xuICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5kaXNwbGF5TW9kZSA9IGRpc3BsYXlNb2RlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGEudHlwZSA9PT0gJ1NpbXBsZVRhYmxlU2VsZWN0JyAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLk1VTFRJKSB7XG4gICAgICAgIHRoaXMucHJvcE5hbWUgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5nZXRQcm9wZXJ0eU5hbWUodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWcuc2VsZWN0aW9uTGlzdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BOYW1lID0gUENvcmUuZ2V0QW5ub3RhdGlvblV0aWxzKCkuZ2V0UHJvcGVydHlOYW1lKHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5nZW5lcmF0ZUNoaWxkcmVuVG9SZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQcm9wZXJ0aWVzRnJvbVByb3BzKHRoZUNvbmZpZ1Byb3BzKSB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGVDb25maWdQcm9wcy5sYWJlbDtcbiAgICBjb25zdCBzaG93TGFiZWwgPSB0aGVDb25maWdQcm9wcy5zaG93TGFiZWw7XG4gICAgdGhpcy5yZWZlcmVuY2VUeXBlID0gdGhlQ29uZmlnUHJvcHMucmVmZXJlbmNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPSB0aGVDb25maWdQcm9wcy5zZWxlY3Rpb25Nb2RlO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHRoZUNvbmZpZ1Byb3BzLnBhcmFtZXRlcnM7XG4gICAgdGhpcy5oaWRlTGFiZWwgPSB0aGVDb25maWdQcm9wcy5oaWRlTGFiZWw7XG5cbiAgICB0aGlzLnByb3BzVG9Vc2UgPSB7IGxhYmVsLCBzaG93TGFiZWwsIC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICBpZiAodGhpcy5wcm9wc1RvVXNlLnNob3dMYWJlbCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucHJvcHNUb1VzZS5sYWJlbCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlQ2hpbGRyZW5Ub1JlbmRlcigpIHtcbiAgICBjb25zdCB0aGVSZWNyZWF0ZWRGaXJzdENoaWxkID0gdGhpcy5yZWNyZWF0ZWRGaXJzdENoaWxkKCk7XG4gICAgY29uc3Qgdmlld3NSZWdpb24gPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jaGlsZHJlblsxXTtcbiAgICBpZiAodmlld3NSZWdpb24/Lm5hbWUgPT09ICdWaWV3cycgJiYgdmlld3NSZWdpb24uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuVG9SZW5kZXIgPSBbdGhlUmVjcmVhdGVkRmlyc3RDaGlsZCwgLi4udGhpcy5jaGlsZHJlbi5zbGljZSgxKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hpbGRyZW5Ub1JlbmRlciA9IFt0aGVSZWNyZWF0ZWRGaXJzdENoaWxkXTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWxlY3Rpb24oZXZlbnQpIHtcbiAgICBjb25zdCBjYXNlS2V5ID0gdGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXRLZXkoKTtcbiAgICBjb25zdCByZWZyZXNoT3B0aW9ucyA9IHsgYXV0b0RldGVjdFJlZnJlc2g6IHRydWUgfTtcbiAgICBpZiAodGhpcy5jYW5CZUNoYW5nZWRJblJldmlld01vZGUgJiYgdGhpcy5wQ29ubiQuZ2V0VmFsdWUoJ19fY3VycmVudFBhZ2VUYWJWaWV3TmFtZScpKSB7XG4gICAgICB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCkucmVmcmVzaENhc2VWaWV3KGNhc2VLZXksIHRoaXMucENvbm4kLmdldFZhbHVlKCdfX2N1cnJlbnRQYWdlVGFiVmlld05hbWUnKSwgJycsIHJlZnJlc2hPcHRpb25zKTtcbiAgICAgIFBDb3JlLmdldERlZmVyTG9hZE1hbmFnZXIoKS5yZWZyZXNoQWN0aXZlQ29tcG9uZW50cyh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGdSZWYgPSB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkucmVwbGFjZSgnY2FzZUluZm8uY29udGVudCcsICcnKTtcbiAgICAgIHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKS5yZWZyZXNoQ2FzZVZpZXcoY2FzZUtleSwgdGhpcy52aWV3TmFtZSwgcGdSZWYsIHJlZnJlc2hPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBBdXRvQ29tcGxldGUgc2V0cyB2YWx1ZSBvbiBldmVudC5pZCB3aGVyZWFzIERyb3Bkb3duIHNldHMgaXQgb24gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgY29uc3QgcHJvcFZhbHVlID0gZXZlbnQ/LmlkIHx8IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xuICAgIGlmIChwcm9wVmFsdWUgJiYgdGhpcy5jYW5CZUNoYW5nZWRJblJldmlld01vZGUgJiYgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCkge1xuICAgICAgUENvcmUuZ2V0RGF0YUFwaVV0aWxzKClcbiAgICAgICAgLmdldENhc2VFZGl0TG9jayhjYXNlS2V5LCAnJylcbiAgICAgICAgLnRoZW4oY2FzZVJlc3BvbnNlID0+IHtcbiAgICAgICAgICBjb25zdCBwYWdlVG9rZW5zID0gdGhpcy5wQ29ubiQuZ2V0UGFnZVJlZmVyZW5jZSgpLnJlcGxhY2UoJ2Nhc2VJbmZvLmNvbnRlbnQnLCAnJykuc3BsaXQoJy4nKTtcbiAgICAgICAgICBsZXQgY3VyciA9IHt9O1xuICAgICAgICAgIGNvbnN0IGNvbW1pdERhdGEgPSBjdXJyO1xuXG4gICAgICAgICAgcGFnZVRva2Vucy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgIGlmIChlbCAhPT0gJycpIHtcbiAgICAgICAgICAgICAgY3VycltlbF0gPSB7fTtcbiAgICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gZXhwZWN0aW5nIGZvcm1hdCBsaWtlIHtDdXN0b21lcjoge3B5SUQ6XCJDLTEwMFwifX1cbiAgICAgICAgICBjb25zdCBwcm9wQXJyID0gdGhpcy5wcm9wTmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgIHByb3BBcnIuZm9yRWFjaCgoZWxlbWVudCwgaWR4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaWR4ICsgMSA9PT0gcHJvcEFyci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY3VycltlbGVtZW50XSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGN1cnJbZWxlbWVudF0gPSB7fTtcbiAgICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxlbWVudF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBQQ29yZS5nZXRDYXNlVXRpbHMoKVxuICAgICAgICAgICAgLnVwZGF0ZUNhc2VFZGl0RmllbGRzRGF0YShjYXNlS2V5LCB7IFtjYXNlS2V5XTogY29tbWl0RGF0YSB9LCBjYXNlUmVzcG9uc2UuaGVhZGVycy5ldGFnLCB0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLnVwZGF0ZVBhcmVudExhc3RVcGRhdGVUaW1lKHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCksIHJlc3BvbnNlLmRhdGEuZGF0YS5jYXNlSW5mby5sYXN0VXBkYXRlVGltZSk7XG4gICAgICAgICAgICAgIFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkudXBkYXRlUmVsYXRlZENvbnRleHRFdGFnKHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCksIHJlc3BvbnNlLmhlYWRlcnMuZXRhZyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmUtY3JlYXRlIGZpcnN0IGNoaWxkIHdpdGggb3ZlcnJpZGRlbiBwcm9wc1xuICAvLyBNZW1vaXplZCBjaGlsZCBpbiBvcmRlciB0byBzdG9wIHVubW91bnQgYW5kIHJlbW91bnQgb2YgdGhlIGNoaWxkIGNvbXBvbmVudCB3aGVuIGRhdGEgcmVmZXJlbmNlXG4gIC8vIHJlcmVuZGVycyB3aXRob3V0IGFueSBhY3R1YWwgY2hhbmdlXG4gIHJlY3JlYXRlZEZpcnN0Q2hpbGQoKSB7XG4gICAgY29uc3QgeyB0eXBlLCBjb25maWcgfSA9IHRoaXMuZmlyc3RDaGlsZE1ldGE7XG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLnBDb25uJC5jbGVhckVycm9yTWVzc2FnZXMoe1xuICAgICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICcnLFxuICAgICAgICBjb250ZXh0OiAnJ1xuICAgICAgfSk7XG4gICAgICBpZiAoIXRoaXMuY2FuQmVDaGFuZ2VkSW5SZXZpZXdNb2RlICYmIHRoaXMuaXNEaXNwbGF5TW9kZUVuYWJsZWQgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSBTRUxFQ1RJT05fTU9ERS5TSU5HTEUpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5U2luZ2xlUmVmID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNEaXNwbGF5TW9kZUVuYWJsZWQgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSBTRUxFQ1RJT05fTU9ERS5NVUxUSSkge1xuICAgICAgICB0aGlzLmRpc3BsYXlNdWx0aVJlZiA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEluIHRoZSBjYXNlIG9mIGEgZGF0YXNvdXJjZSB3aXRoIHBhcmFtZXRlcnMgeW91IGNhbm5vdCBsb2FkIHRoZSBkcm9wZG93biBiZWZvcmUgdGhlIHBhcmFtZXRlcnNcbiAgICAgIGlmICh0eXBlID09PSAnRHJvcGRvd24nICYmIHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZz8ucGFyYW1ldGVycyAmJiB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZmlyc3RDaGlsZFBDb25uZWN0KCkuY3JlYXRlQ29tcG9uZW50KHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLnByb3BzVG9Vc2UucmVxdWlyZWQsXG4gICAgICAgICAgdmlzaWJpbGl0eTogdGhpcy5wcm9wc1RvVXNlLnZpc2liaWxpdHksXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMucHJvcHNUb1VzZS5kaXNhYmxlZCxcbiAgICAgICAgICBsYWJlbDogdGhpcy5wcm9wc1RvVXNlLmxhYmVsLFxuICAgICAgICAgIHZpZXdOYW1lOiB0aGlzLnBDb25uJC5nZXRDdXJyZW50VmlldygpLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5wYXJhbWV0ZXJzLFxuICAgICAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgICBsb2NhbGVSZWZlcmVuY2U6IHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5sb2NhbGVSZWZlcmVuY2UsXG4gICAgICAgICAgLi4uKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuU0lOR0xFID8geyByZWZlcmVuY2VUeXBlOiB0aGlzLnJlZmVyZW5jZVR5cGUgfSA6ICcnKSxcbiAgICAgICAgICBkYXRhUmVsYXRpb25zaGlwQ29udGV4dDpcbiAgICAgICAgICAgIHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5jb250ZXh0Q2xhc3MgJiYgdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnLm5hbWUgPyB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcubmFtZSA6IG51bGwsXG4gICAgICAgICAgaGlkZUxhYmVsOiB0aGlzLmhpZGVMYWJlbCxcbiAgICAgICAgICBvblJlY29yZENoYW5nZTogdGhpcy5oYW5kbGVTZWxlY3Rpb24uYmluZCh0aGlzKVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJjaGlsZHJlblRvUmVuZGVyICYmIGNoaWxkcmVuVG9SZW5kZXIubGVuZ3RoID4gMFwiPlxuICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlNdWx0aVJlZlwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBjaGlsZHJlblRvUmVuZGVyXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciBbbmFtZV09XCJraWQ/LmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImRpc3BsYXlTaW5nbGVSZWZcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiU2luZ2xlUmVmZXJlbmNlUmVhZE9ubHlcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGZpcnN0Q2hpbGRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZGlzcGxheU11bHRpUmVmXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIk11bHRpUmVmZXJlbmNlUmVhZE9ubHlcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGZpcnN0Q2hpbGRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,73 +0,0 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ReferenceComponent } from '../../infra/reference/reference.component';
4
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
5
- import { FormTemplateBase } from '../base/form-template-base';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../_bridge/angular-pconnect";
8
- import * as i2 from "../../../_helpers/template-utils";
9
- import * as i3 from "@angular/common";
10
- function areViewsChanged(oldViews, newViews) {
11
- if (oldViews?.length !== newViews?.length) {
12
- return true;
13
- }
14
- return !oldViews?.every((oldView, index) => {
15
- const newView = newViews[index];
16
- return oldView.getPConnect().viewName === newView.getPConnect().viewName;
17
- });
18
- }
19
- export class DefaultFormComponent extends FormTemplateBase {
20
- constructor(angularPConnect, templateUtils) {
21
- super();
22
- this.angularPConnect = angularPConnect;
23
- this.templateUtils = templateUtils;
24
- // Used with AngularPConnect
25
- this.angularPConnectData = {};
26
- }
27
- ngOnInit() {
28
- // First thing in initialization is registering and subscribing to the AngularPConnect service
29
- this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
30
- this.updateSelf();
31
- }
32
- onStateChange() {
33
- this.updateSelf();
34
- }
35
- updateSelf() {
36
- const configProps = this.pConn$.getConfigProps();
37
- const kids = this.pConn$.getChildren();
38
- this.instructions = this.templateUtils.getInstructions(this.pConn$, configProps?.instructions);
39
- const numCols = configProps.NumCols ? configProps.NumCols : '1';
40
- switch (numCols) {
41
- case '1':
42
- this.divClass$ = 'psdk-default-form-one-column';
43
- break;
44
- case '2':
45
- this.divClass$ = 'psdk-default-form-two-column';
46
- break;
47
- case '3':
48
- this.divClass$ = 'psdk-default-form-three-column';
49
- break;
50
- default:
51
- this.divClass$ = 'psdk-default-form-one-column';
52
- break;
53
- }
54
- // repoint children before getting templateArray
55
- // Children may contain 'reference' component, so we need to
56
- // normalize them
57
- const children = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
58
- if (areViewsChanged(this.arChildren$, children)) {
59
- this.arChildren$ = children;
60
- }
61
- }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFormComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.TemplateUtils }], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFormComponent, decorators: [{
66
- type: Component,
67
- args: [{ selector: 'app-default-form', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"] }]
68
- }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.TemplateUtils }], propDecorators: { pConn$: [{
69
- type: Input
70
- }], formGroup$: [{
71
- type: Input
72
- }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRTlELFNBQVMsZUFBZSxDQUFDLFFBQWUsRUFBRSxRQUFlO0lBQ3ZELElBQUksUUFBUSxFQUFFLE1BQU0sS0FBSyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDekMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzNFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWVELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFXeEQsWUFDVSxlQUF1QyxFQUN2QyxhQUE0QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhBLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVR0Qyw0QkFBNEI7UUFDbkIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztJQVd2RCxDQUFDO0lBRUQsUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFzQixDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUvRixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDaEUsUUFBUSxPQUFPLEVBQUUsQ0FBQztZQUNoQixLQUFLLEdBQUc7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyw4QkFBOEIsQ0FBQztnQkFDaEQsTUFBTTtZQUNSLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0NBQWdDLENBQUM7Z0JBQ2xELE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1FBQ1YsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCw0REFBNEQ7UUFDNUQsa0JBQWtCO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTdGLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQzsrR0ExRFUsb0JBQW9CO21HQUFwQixvQkFBb0IsMkpDakNqQyxxcEJBZUEsNnNCRGdCWSxZQUFZLGtiQUFtQix3QkFBd0I7OzRGQUV0RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzt1SEFHakQsTUFBTTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3RlbXBsYXRlLXV0aWxzJztcbmltcG9ydCB7IEZvcm1UZW1wbGF0ZUJhc2UgfSBmcm9tICcuLi9iYXNlL2Zvcm0tdGVtcGxhdGUtYmFzZSc7XG5cbmZ1bmN0aW9uIGFyZVZpZXdzQ2hhbmdlZChvbGRWaWV3czogYW55W10sIG5ld1ZpZXdzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICBpZiAob2xkVmlld3M/Lmxlbmd0aCAhPT0gbmV3Vmlld3M/Lmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuICFvbGRWaWV3cz8uZXZlcnkoKG9sZFZpZXcsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgbmV3VmlldyA9IG5ld1ZpZXdzW2luZGV4XTtcbiAgICByZXR1cm4gb2xkVmlldy5nZXRQQ29ubmVjdCgpLnZpZXdOYW1lID09PSBuZXdWaWV3LmdldFBDb25uZWN0KCkudmlld05hbWU7XG4gIH0pO1xufVxuXG5pbnRlcmZhY2UgRGVmYXVsdEZvcm1Qcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgTnVtQ29sczogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRlZmF1bHQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0Rm9ybUNvbXBvbmVudCBleHRlbmRzIEZvcm1UZW1wbGF0ZUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBvdmVycmlkZSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgb3ZlcnJpZGUgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuXG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcbiAgZGl2Q2xhc3MkOiBzdHJpbmc7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVtcGxhdGVVdGlsczogVGVtcGxhdGVVdGlsc1xuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgfVxuXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIGNvbnN0IGNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSBhcyBEZWZhdWx0Rm9ybVByb3BzO1xuICAgIGNvbnN0IGtpZHMgPSB0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpO1xuICAgIHRoaXMuaW5zdHJ1Y3Rpb25zID0gdGhpcy50ZW1wbGF0ZVV0aWxzLmdldEluc3RydWN0aW9ucyh0aGlzLnBDb25uJCwgY29uZmlnUHJvcHM/Lmluc3RydWN0aW9ucyk7XG5cbiAgICBjb25zdCBudW1Db2xzID0gY29uZmlnUHJvcHMuTnVtQ29scyA/IGNvbmZpZ1Byb3BzLk51bUNvbHMgOiAnMSc7XG4gICAgc3dpdGNoIChudW1Db2xzKSB7XG4gICAgICBjYXNlICcxJzpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tb25lLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMic6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLXR3by1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzMnOlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS10aHJlZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLW9uZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyByZXBvaW50IGNoaWxkcmVuIGJlZm9yZSBnZXR0aW5nIHRlbXBsYXRlQXJyYXlcbiAgICAvLyBDaGlsZHJlbiBtYXkgY29udGFpbiAncmVmZXJlbmNlJyBjb21wb25lbnQsIHNvIHdlIG5lZWQgdG9cbiAgICAvLyAgbm9ybWFsaXplIHRoZW1cbiAgICBjb25zdCBjaGlsZHJlbiA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KGtpZHNbMF0uZ2V0UENvbm5lY3QoKS5nZXRDaGlsZHJlbigpKTtcblxuICAgIGlmIChhcmVWaWV3c0NoYW5nZWQodGhpcy5hckNoaWxkcmVuJCwgY2hpbGRyZW4pKSB7XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gY2hpbGRyZW47XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaW5zdHJ1Y3Rpb25zXCIgY2xhc3M9XCJwc2RrLWRlZmF1bHQtZm9ybS1pbnN0cnVjdGlvbi10ZXh0XCI+XG4gIDxkaXYga2V5PVwiaW5zdHJ1Y3Rpb25zXCIgaWQ9XCJpbnN0cnVjdGlvbi10ZXh0XCIgW2lubmVySFRNTF09XCJpbnN0cnVjdGlvbnNcIj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBbY2xhc3NOYW1lXT1cImRpdkNsYXNzJFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIiBbbmdDbGFzc109XCJ7ICdncmlkLWNvbHVtbic6IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSA9PT0gJ1ZpZXcnIH1cIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgIHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksXG4gICAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCRcbiAgICAgIH1cIlxuICAgICAgZXJyb3JNc2c9XCJEZWZhdWx0Rm9ybSB3YW50cyBjb21wb25lbnQgbm90IHlldCBhdmFpbGFibGU6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,76 +0,0 @@
1
- import { Component, forwardRef } from '@angular/core';
2
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
3
- import { DetailsTemplateBase } from '../base/details-template-base';
4
- import * as i0 from "@angular/core";
5
- export class DetailsComponent extends DetailsTemplateBase {
6
- constructor() {
7
- super(...arguments);
8
- this.highlightedDataArr = [];
9
- this.arFields$ = [];
10
- }
11
- updateSelf() {
12
- const rawMetaData = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
13
- this.showHighlightedData = rawMetaData?.showHighlightedData;
14
- if (this.showHighlightedData) {
15
- const highlightedData = rawMetaData?.highlightedData;
16
- this.highlightedDataArr = highlightedData.map(field => {
17
- field.config.displayMode = 'STACKED_LARGE_VAL';
18
- if (field.config.value === '@P .pyStatusWork') {
19
- field.type = 'TextInput';
20
- field.config.displayAsStatus = true;
21
- }
22
- return field;
23
- });
24
- }
25
- const kids = this.pConn$.getChildren();
26
- for (const kid of kids) {
27
- this.arFields$ = [];
28
- const pKid = kid.getPConnect();
29
- const fields = pKid.getChildren();
30
- fields?.forEach(field => {
31
- const thePConn = field.getPConnect();
32
- const theCompType = thePConn.getComponentName().toLowerCase();
33
- if (theCompType === 'reference' || theCompType === 'group') {
34
- const configProps = thePConn.getConfigProps();
35
- configProps.readOnly = true;
36
- configProps.displayMode = 'DISPLAY_ONLY';
37
- const propToUse = { ...thePConn.getInheritedProps() };
38
- configProps.label = propToUse?.label;
39
- const options = {
40
- context: thePConn.getContextName(),
41
- pageReference: thePConn.getPageReference(),
42
- referenceList: thePConn.getReferenceList()
43
- };
44
- const viewContConfig = {
45
- meta: {
46
- ...thePConn.getMetadata(),
47
- type: theCompType,
48
- config: configProps
49
- },
50
- options
51
- };
52
- const theViewCont = PCore.createPConnect(viewContConfig);
53
- const data = {
54
- type: theCompType,
55
- pConn: theViewCont?.getPConnect()
56
- };
57
- this.arFields$.push(data);
58
- }
59
- else {
60
- const data = {
61
- type: theCompType,
62
- config: thePConn.getConfigProps()
63
- };
64
- this.arFields$.push(data);
65
- }
66
- });
67
- }
68
- }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DetailsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DetailsComponent, isStandalone: true, selector: "app-details", usesInheritance: true, ngImport: i0, template: "<div>\n <component-mapper name=\"MaterialDetails\" [props]=\"{ arFields$, arHighlightedFields: highlightedDataArr, layout: 'one-column' }\"></component-mapper>\n</div>\n", styles: [".psdk-grid-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
71
- }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DetailsComponent, decorators: [{
73
- type: Component,
74
- args: [{ selector: 'app-details', standalone: true, imports: [forwardRef(() => ComponentMapperComponent)], template: "<div>\n <component-mapper name=\"MaterialDetails\" [props]=\"{ arFields$, arHighlightedFields: highlightedDataArr, layout: 'one-column' }\"></component-mapper>\n</div>\n", styles: [".psdk-grid-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}\n"] }]
75
- }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvdGVtcGxhdGUvZGV0YWlscy9kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZXRhaWxzL2RldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBU3BFLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxtQkFBbUI7SUFQekQ7O1FBVUUsdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FBVSxFQUFFLENBQUM7S0ErRHZCO0lBN0RVLFVBQVU7UUFDakIsTUFBTSxXQUFXLEdBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLEVBQUUsbUJBQW1CLENBQUM7UUFFNUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixNQUFNLGVBQWUsR0FBRyxXQUFXLEVBQUUsZUFBZSxDQUFDO1lBQ3JELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFDLFdB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ZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxzVGVtcGxhdGVCYXNlIH0gZnJvbSAnLi4vYmFzZS9kZXRhaWxzLXRlbXBsYXRlLWJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBEZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgRGV0YWlsc1RlbXBsYXRlQmFzZSB7XG4gIG92ZXJyaWRlIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIGhpZ2hsaWdodGVkRGF0YUFycjogYW55W10gPSBbXTtcbiAgc2hvd0hpZ2hsaWdodGVkRGF0YTogYm9vbGVhbjtcbiAgYXJGaWVsZHMkOiBhbnlbXSA9IFtdO1xuXG4gIG92ZXJyaWRlIHVwZGF0ZVNlbGYoKSB7XG4gICAgY29uc3QgcmF3TWV0YURhdGE6IGFueSA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRSYXdNZXRhZGF0YSgpPy5jb25maWcpO1xuICAgIHRoaXMuc2hvd0hpZ2hsaWdodGVkRGF0YSA9IHJhd01ldGFEYXRhPy5zaG93SGlnaGxpZ2h0ZWREYXRhO1xuXG4gICAgaWYgKHRoaXMuc2hvd0hpZ2hsaWdodGVkRGF0YSkge1xuICAgICAgY29uc3QgaGlnaGxpZ2h0ZWREYXRhID0gcmF3TWV0YURhdGE/LmhpZ2hsaWdodGVkRGF0YTtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWREYXRhQXJyID0gaGlnaGxpZ2h0ZWREYXRhLm1hcChmaWVsZCA9PiB7XG4gICAgICAgIGZpZWxkLmNvbmZpZy5kaXNwbGF5TW9kZSA9ICdTVEFDS0VEX0xBUkdFX1ZBTCc7XG5cbiAgICAgICAgaWYgKGZpZWxkLmNvbmZpZy52YWx1ZSA9PT0gJ0BQIC5weVN0YXR1c1dvcmsnKSB7XG4gICAgICAgICAgZmllbGQudHlwZSA9ICdUZXh0SW5wdXQnO1xuICAgICAgICAgIGZpZWxkLmNvbmZpZy5kaXNwbGF5QXNTdGF0dXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qga2lkcyA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgZm9yIChjb25zdCBraWQgb2Yga2lkcykge1xuICAgICAgdGhpcy5hckZpZWxkcyQgPSBbXTtcbiAgICAgIGNvbnN0IHBLaWQgPSBraWQuZ2V0UENvbm5lY3QoKTtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHBLaWQuZ2V0Q2hpbGRyZW4oKTtcbiAgICAgIGZpZWxkcz8uZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGNvbnN0IHRoZVBDb25uID0gZmllbGQuZ2V0UENvbm5lY3QoKTtcbiAgICAgICAgY29uc3QgdGhlQ29tcFR5cGUgPSB0aGVQQ29ubi5nZXRDb21wb25lbnROYW1lKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHRoZUNvbXBUeXBlID09PSAncmVmZXJlbmNlJyB8fCB0aGVDb21wVHlwZSA9PT0gJ2dyb3VwJykge1xuICAgICAgICAgIGNvbnN0IGNvbmZpZ1Byb3BzID0gdGhlUENvbm4uZ2V0Q29uZmlnUHJvcHMoKTtcbiAgICAgICAgICBjb25maWdQcm9wcy5yZWFkT25seSA9IHRydWU7XG4gICAgICAgICAgY29uZmlnUHJvcHMuZGlzcGxheU1vZGUgPSAnRElTUExBWV9PTkxZJztcbiAgICAgICAgICBjb25zdCBwcm9wVG9Vc2UgPSB7IC4uLnRoZVBDb25uLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICAgICAgICBjb25maWdQcm9wcy5sYWJlbCA9IHByb3BUb1VzZT8ubGFiZWw7XG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IHRoZVBDb25uLmdldENvbnRleHROYW1lKCksXG4gICAgICAgICAgICBwYWdlUmVmZXJlbmNlOiB0aGVQQ29ubi5nZXRQYWdlUmVmZXJlbmNlKCksXG4gICAgICAgICAgICByZWZlcmVuY2VMaXN0OiB0aGVQQ29ubi5nZXRSZWZlcmVuY2VMaXN0KClcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IHZpZXdDb250Q29uZmlnID0ge1xuICAgICAgICAgICAgbWV0YToge1xuICAgICAgICAgICAgICAuLi50aGVQQ29ubi5nZXRNZXRhZGF0YSgpLFxuICAgICAgICAgICAgICB0eXBlOiB0aGVDb21wVHlwZSxcbiAgICAgICAgICAgICAgY29uZmlnOiBjb25maWdQcm9wc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IHRoZVZpZXdDb250ID0gUENvcmUuY3JlYXRlUENvbm5lY3Qodmlld0NvbnRDb25maWcpO1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICB0eXBlOiB0aGVDb21wVHlwZSxcbiAgICAgICAgICAgIHBDb25uOiB0aGVWaWV3Q29udD8uZ2V0UENvbm5lY3QoKVxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5hckZpZWxkcyQucHVzaChkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgdHlwZTogdGhlQ29tcFR5cGUsXG4gICAgICAgICAgICBjb25maWc6IHRoZVBDb25uLmdldENvbmZpZ1Byb3BzKClcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuYXJGaWVsZHMkLnB1c2goZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdj5cbiAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIk1hdGVyaWFsRGV0YWlsc1wiIFtwcm9wc109XCJ7IGFyRmllbGRzJCwgYXJIaWdobGlnaHRlZEZpZWxkczogaGlnaGxpZ2h0ZWREYXRhQXJyLCBsYXlvdXQ6ICdvbmUtY29sdW1uJyB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuPC9kaXY+XG4iXX0=
@@ -1,45 +0,0 @@
1
- import { Component, forwardRef } from '@angular/core';
2
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
3
- import { DetailsTemplateBase } from '../base/details-template-base';
4
- import * as i0 from "@angular/core";
5
- export class DetailsNarrowWideComponent extends DetailsTemplateBase {
6
- constructor() {
7
- super(...arguments);
8
- this.arFields$ = [];
9
- this.arFields2$ = [];
10
- this.highlightedDataArr = [];
11
- }
12
- updateSelf() {
13
- const rawMetaData = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
14
- this.showHighlightedData = rawMetaData?.showHighlightedData;
15
- if (this.showHighlightedData) {
16
- const highlightedData = rawMetaData?.highlightedData;
17
- this.highlightedDataArr = highlightedData.map(field => {
18
- field.config.displayMode = 'STACKED_LARGE_VAL';
19
- if (field.config.value === '@P .pyStatusWork') {
20
- field.type = 'TextInput';
21
- field.config.displayAsStatus = true;
22
- }
23
- return field;
24
- });
25
- }
26
- const kids = this.pConn$.getChildren();
27
- for (const kid of kids) {
28
- const pKid = kid.getPConnect();
29
- const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());
30
- if (kids.indexOf(kid) == 0) {
31
- this.arFields$ = pKidData.children;
32
- }
33
- else {
34
- this.arFields2$ = pKidData.children;
35
- }
36
- }
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DetailsNarrowWideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DetailsNarrowWideComponent, isStandalone: true, selector: "app-details-narrow-wide", usesInheritance: true, ngImport: i0, template: "<component-mapper\n name=\"MaterialDetails\"\n [props]=\"{ arFields$, arFields2$, arHighlightedFields: highlightedDataArr, layout: 'narrow-wide' }\"\n></component-mapper>\n", styles: [".psdk-grid-filter{display:grid;grid-template-columns:3fr 7fr;column-gap:1rem;row-gap:1rem;align-items:start}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DetailsNarrowWideComponent, decorators: [{
42
- type: Component,
43
- args: [{ selector: 'app-details-narrow-wide', standalone: true, imports: [forwardRef(() => ComponentMapperComponent)], template: "<component-mapper\n name=\"MaterialDetails\"\n [props]=\"{ arFields$, arFields2$, arHighlightedFields: highlightedDataArr, layout: 'narrow-wide' }\"\n></component-mapper>\n", styles: [".psdk-grid-filter{display:grid;grid-template-columns:3fr 7fr;column-gap:1rem;row-gap:1rem;align-items:start}\n"] }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy1uYXJyb3ctd2lkZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvdGVtcGxhdGUvZGV0YWlscy1uYXJyb3ctd2lkZS9kZXRhaWxzLW5hcnJvdy13aWRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZXRhaWxzLW5hcnJvdy13aWRlL2RldGFpbHMtbmFycm93LXdpZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBU3BFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxtQkFBbUI7SUFQbkU7O1FBVUUsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztLQWdDaEM7SUE3QlUsVUFBVTtRQUNqQixNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztRQUU1RCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE1BQU0sZUFBZSxHQUFHLFdBQVcsRUFBRSxlQUFlLENBQUM7WUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BELEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDO2dCQUUvQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLGtCQUFrQixFQUFFLENBQUM7b0JBQzlDLEtBQUssQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO29CQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7Z0JBQ3RDLENBQUM7Z0JBRUQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBVyxDQUFDO1FBQ2hELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNoRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FwQ1UsMEJBQTBCO21HQUExQiwwQkFBMEIsMEdDWHZDLGdMQUlBLDRMREs2Qix3QkFBd0I7OzRGQUV4QywwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBR3ZCLElBQUksV0FDUCxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV0YWlsc1RlbXBsYXRlQmFzZSB9IGZyb20gJy4uL2Jhc2UvZGV0YWlscy10ZW1wbGF0ZS1iYXNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRldGFpbHMtbmFycm93LXdpZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlscy1uYXJyb3ctd2lkZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RldGFpbHMtbmFycm93LXdpZGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW2ZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgRGV0YWlsc05hcnJvd1dpZGVDb21wb25lbnQgZXh0ZW5kcyBEZXRhaWxzVGVtcGxhdGVCYXNlIHtcbiAgb3ZlcnJpZGUgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG5cbiAgYXJGaWVsZHMkOiBhbnlbXSA9IFtdO1xuICBhckZpZWxkczIkOiBhbnlbXSA9IFtdO1xuICBoaWdobGlnaHRlZERhdGFBcnI6IGFueVtdID0gW107XG4gIHNob3dIaWdobGlnaHRlZERhdGE6IGJvb2xlYW47XG5cbiAgb3ZlcnJpZGUgdXBkYXRlU2VsZigpIHtcbiAgICBjb25zdCByYXdNZXRhRGF0YTogYW55ID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldFJhd01ldGFkYXRhKCk/LmNvbmZpZyk7XG4gICAgdGhpcy5zaG93SGlnaGxpZ2h0ZWREYXRhID0gcmF3TWV0YURhdGE/LnNob3dIaWdobGlnaHRlZERhdGE7XG5cbiAgICBpZiAodGhpcy5zaG93SGlnaGxpZ2h0ZWREYXRhKSB7XG4gICAgICBjb25zdCBoaWdobGlnaHRlZERhdGEgPSByYXdNZXRhRGF0YT8uaGlnaGxpZ2h0ZWREYXRhO1xuICAgICAgdGhpcy5oaWdobGlnaHRlZERhdGFBcnIgPSBoaWdobGlnaHRlZERhdGEubWFwKGZpZWxkID0+IHtcbiAgICAgICAgZmllbGQuY29uZmlnLmRpc3BsYXlNb2RlID0gJ1NUQUNLRURfTEFSR0VfVkFMJztcblxuICAgICAgICBpZiAoZmllbGQuY29uZmlnLnZhbHVlID09PSAnQFAgLnB5U3RhdHVzV29yaycpIHtcbiAgICAgICAgICBmaWVsZC50eXBlID0gJ1RleHRJbnB1dCc7XG4gICAgICAgICAgZmllbGQuY29uZmlnLmRpc3BsYXlBc1N0YXR1cyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBraWRzID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICBmb3IgKGNvbnN0IGtpZCBvZiBraWRzKSB7XG4gICAgICBjb25zdCBwS2lkID0ga2lkLmdldFBDb25uZWN0KCk7XG4gICAgICBjb25zdCBwS2lkRGF0YSA9IHBLaWQucmVzb2x2ZUNvbmZpZ1Byb3BzKHBLaWQuZ2V0UmF3TWV0YWRhdGEoKSk7XG4gICAgICBpZiAoa2lkcy5pbmRleE9mKGtpZCkgPT0gMCkge1xuICAgICAgICB0aGlzLmFyRmllbGRzJCA9IHBLaWREYXRhLmNoaWxkcmVuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hckZpZWxkczIkID0gcEtpZERhdGEuY2hpbGRyZW47XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8Y29tcG9uZW50LW1hcHBlclxuICBuYW1lPVwiTWF0ZXJpYWxEZXRhaWxzXCJcbiAgW3Byb3BzXT1cInsgYXJGaWVsZHMkLCBhckZpZWxkczIkLCBhckhpZ2hsaWdodGVkRmllbGRzOiBoaWdobGlnaHRlZERhdGFBcnIsIGxheW91dDogJ25hcnJvdy13aWRlJyB9XCJcbj48L2NvbXBvbmVudC1tYXBwZXI+XG4iXX0=
@@ -1,42 +0,0 @@
1
- import { Component, forwardRef } from '@angular/core';
2
- import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
3
- import { DetailsTemplateBase } from '../base/details-template-base';
4
- import * as i0 from "@angular/core";
5
- export class DetailsOneColumnComponent extends DetailsTemplateBase {
6
- constructor() {
7
- super(...arguments);
8
- this.arFields$ = [];
9
- }
10
- updateSelf() {
11
- const rawMetaData = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);
12
- this.showHighlightedData = rawMetaData?.showHighlightedData;
13
- if (this.showHighlightedData) {
14
- const highlightedData = rawMetaData?.highlightedData;
15
- this.highlightedDataArr = highlightedData.map(field => {
16
- field.config.displayMode = 'STACKED_LARGE_VAL';
17
- if (field.config.value === '@P .pyStatusWork') {
18
- field.type = 'TextInput';
19
- field.config.displayAsStatus = true;
20
- }
21
- return field;
22
- });
23
- }
24
- this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');
25
- this.pConn$.setInheritedProp('readOnly', true);
26
- const kids = this.pConn$.getChildren();
27
- for (const kid of kids) {
28
- const pKid = kid.getPConnect();
29
- const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());
30
- if (kids.indexOf(kid) == 0) {
31
- this.arFields$ = pKidData.children;
32
- }
33
- }
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DetailsOneColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DetailsOneColumnComponent, isStandalone: true, selector: "app-details-one-column", usesInheritance: true, ngImport: i0, template: "<component-mapper name=\"MaterialDetails\" [props]=\"{ arFields$, arHighlightedFields: highlightedDataArr, layout: 'one-column' }\"></component-mapper>\n", styles: [""], dependencies: [{ kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DetailsOneColumnComponent, decorators: [{
39
- type: Component,
40
- args: [{ selector: 'app-details-one-column', standalone: true, imports: [forwardRef(() => ComponentMapperComponent)], template: "<component-mapper name=\"MaterialDetails\" [props]=\"{ arFields$, arHighlightedFields: highlightedDataArr, layout: 'one-column' }\"></component-mapper>\n" }]
41
- }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy1vbmUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZXRhaWxzLW9uZS1jb2x1bW4vZGV0YWlscy1vbmUtY29sdW1uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZXRhaWxzLW9uZS1jb2x1bW4vZGV0YWlscy1vbmUtY29sdW1uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQVNwRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsbUJBQW1CO0lBUGxFOztRQWFFLGNBQVMsR0FBVSxFQUFFLENBQUM7S0FnQ3ZCO0lBOUJVLFVBQVU7UUFDakIsTUFBTSxXQUFXLEdBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLEVBQUUsbUJBQW1CLENBQUM7UUFFNUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixNQUFNLGVBQWUsR0FBRyxXQUFXLEVBQUUsZUFBZSxDQUFDO1lBQ3JELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztnQkFFL0MsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxrQkFBa0IsRUFBRSxDQUFDO29CQUM5QyxLQUFLLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztvQkFDekIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2dCQUN0QyxDQUFDO2dCQUVELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFL0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQVcsQ0FBQztRQUNoRCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDaEUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQXJDVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix5R0NYdEMsMkpBQ0EsOEVEUTZCLHdCQUF3Qjs7NEZBRXhDLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FHdEIsSUFBSSxXQUNQLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxzVGVtcGxhdGVCYXNlIH0gZnJvbSAnLi4vYmFzZS9kZXRhaWxzLXRlbXBsYXRlLWJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGV0YWlscy1vbmUtY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldGFpbHMtb25lLWNvbHVtbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RldGFpbHMtb25lLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBEZXRhaWxzT25lQ29sdW1uQ29tcG9uZW50IGV4dGVuZHMgRGV0YWlsc1RlbXBsYXRlQmFzZSB7XG4gIG92ZXJyaWRlIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIHNob3dIaWdobGlnaHRlZERhdGE6IGJvb2xlYW47XG4gIGhpZ2hsaWdodGVkRGF0YUFycjogYW55O1xuXG4gIGFyRmllbGRzJDogYW55W10gPSBbXTtcblxuICBvdmVycmlkZSB1cGRhdGVTZWxmKCkge1xuICAgIGNvbnN0IHJhd01ldGFEYXRhOiBhbnkgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0UmF3TWV0YWRhdGEoKT8uY29uZmlnKTtcbiAgICB0aGlzLnNob3dIaWdobGlnaHRlZERhdGEgPSByYXdNZXRhRGF0YT8uc2hvd0hpZ2hsaWdodGVkRGF0YTtcblxuICAgIGlmICh0aGlzLnNob3dIaWdobGlnaHRlZERhdGEpIHtcbiAgICAgIGNvbnN0IGhpZ2hsaWdodGVkRGF0YSA9IHJhd01ldGFEYXRhPy5oaWdobGlnaHRlZERhdGE7XG4gICAgICB0aGlzLmhpZ2hsaWdodGVkRGF0YUFyciA9IGhpZ2hsaWdodGVkRGF0YS5tYXAoZmllbGQgPT4ge1xuICAgICAgICBmaWVsZC5jb25maWcuZGlzcGxheU1vZGUgPSAnU1RBQ0tFRF9MQVJHRV9WQUwnO1xuXG4gICAgICAgIGlmIChmaWVsZC5jb25maWcudmFsdWUgPT09ICdAUCAucHlTdGF0dXNXb3JrJykge1xuICAgICAgICAgIGZpZWxkLnR5cGUgPSAnVGV4dElucHV0JztcbiAgICAgICAgICBmaWVsZC5jb25maWcuZGlzcGxheUFzU3RhdHVzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMucENvbm4kLnNldEluaGVyaXRlZFByb3AoJ2Rpc3BsYXlNb2RlJywgJ0RJU1BMQVlfT05MWScpO1xuICAgIHRoaXMucENvbm4kLnNldEluaGVyaXRlZFByb3AoJ3JlYWRPbmx5JywgdHJ1ZSk7XG5cbiAgICBjb25zdCBraWRzID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICBmb3IgKGNvbnN0IGtpZCBvZiBraWRzKSB7XG4gICAgICBjb25zdCBwS2lkID0ga2lkLmdldFBDb25uZWN0KCk7XG4gICAgICBjb25zdCBwS2lkRGF0YSA9IHBLaWQucmVzb2x2ZUNvbmZpZ1Byb3BzKHBLaWQuZ2V0UmF3TWV0YWRhdGEoKSk7XG4gICAgICBpZiAoa2lkcy5pbmRleE9mKGtpZCkgPT0gMCkge1xuICAgICAgICB0aGlzLmFyRmllbGRzJCA9IHBLaWREYXRhLmNoaWxkcmVuO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIk1hdGVyaWFsRGV0YWlsc1wiIFtwcm9wc109XCJ7IGFyRmllbGRzJCwgYXJIaWdobGlnaHRlZEZpZWxkczogaGlnaGxpZ2h0ZWREYXRhQXJyLCBsYXlvdXQ6ICdvbmUtY29sdW1uJyB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuIl19