@pega/angular-sdk-components 23.1.10 → 24.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 (192) hide show
  1. package/esm2022/lib/_bridge/angular-pconnect.mjs +18 -6
  2. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +4 -4
  3. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +3 -1
  4. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +1 -1
  5. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +4 -4
  6. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +4 -4
  7. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +4 -4
  8. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +5 -5
  9. package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +3 -3
  10. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +9 -6
  11. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +5 -5
  12. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +5 -5
  13. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +5 -5
  14. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +4 -4
  15. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +5 -5
  16. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +5 -5
  17. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +16 -9
  18. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +4 -4
  19. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +4 -4
  20. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +3 -3
  21. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +6 -6
  22. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +5 -7
  23. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +109 -45
  24. package/esm2022/lib/_components/field/currency/currency.component.mjs +34 -17
  25. package/esm2022/lib/_components/field/date/date.component.mjs +6 -6
  26. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +21 -42
  27. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +38 -10
  28. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +7 -12
  29. package/esm2022/lib/_components/field/email/email.component.mjs +5 -5
  30. package/esm2022/lib/_components/field/group/group.component.mjs +9 -6
  31. package/esm2022/lib/_components/field/integer/integer.component.mjs +5 -5
  32. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +3 -3
  33. package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +307 -0
  34. package/esm2022/lib/_components/field/multiselect/utils.mjs +187 -0
  35. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +27 -8
  36. package/esm2022/lib/_components/field/phone/phone.component.mjs +5 -5
  37. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +7 -12
  38. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +6 -6
  39. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +7 -6
  40. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +5 -5
  41. package/esm2022/lib/_components/field/text/text.component.mjs +5 -5
  42. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +5 -7
  43. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +5 -5
  44. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +5 -5
  45. package/esm2022/lib/_components/field/time/time.component.mjs +8 -6
  46. package/esm2022/lib/_components/field/url/url.component.mjs +8 -6
  47. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +38 -26
  48. package/esm2022/lib/_components/infra/Containers/base-components/flow-container-base.component.mjs +18 -0
  49. package/esm2022/lib/_components/infra/Containers/base-components/helper.mjs +71 -0
  50. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +35 -39
  51. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +1 -1
  52. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +3 -3
  53. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +41 -13
  54. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +3 -3
  55. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +5 -6
  56. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +3 -3
  57. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +36 -40
  58. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +4 -4
  59. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +5 -6
  60. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +10 -13
  61. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +3 -3
  62. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +6 -6
  63. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +11 -7
  64. package/esm2022/lib/_components/infra/reference/reference.component.mjs +5 -5
  65. package/esm2022/lib/_components/infra/region/region.component.mjs +4 -4
  66. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +5 -5
  67. package/esm2022/lib/_components/infra/stages/stages.component.mjs +5 -5
  68. package/esm2022/lib/_components/infra/view/view.component.mjs +6 -6
  69. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +5 -5
  70. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +5 -5
  71. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +38 -9
  72. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +6 -12
  73. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +5 -5
  74. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +6 -8
  75. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +5 -5
  76. package/esm2022/lib/_components/template/details/details.component.mjs +5 -5
  77. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +5 -5
  78. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +5 -5
  79. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +5 -5
  80. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +5 -5
  81. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +5 -5
  82. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +5 -5
  83. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +5 -6
  84. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +4 -4
  85. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +9 -19
  86. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +10 -5
  87. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +4 -4
  88. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +5 -5
  89. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +4 -4
  90. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +1 -1
  91. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +35 -31
  92. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +1 -2
  93. package/esm2022/lib/_components/template/list-view/utils.mjs +1 -1
  94. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +5 -5
  95. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +4 -4
  96. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +4 -4
  97. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +4 -4
  98. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +4 -4
  99. package/esm2022/lib/_components/template/page/page.component.mjs +5 -5
  100. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +5 -5
  101. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +5 -6
  102. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +5 -7
  103. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +2 -2
  104. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +49 -28
  105. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +7 -9
  106. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +4 -4
  107. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +5 -5
  108. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +4 -4
  109. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +4 -4
  110. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +4 -4
  111. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +5 -5
  112. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +4 -4
  113. package/esm2022/lib/_components/template/utils.mjs +1 -1
  114. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +4 -4
  115. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +5 -5
  116. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +8 -6
  117. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +4 -4
  118. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +231 -424
  119. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +6 -7
  120. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +5 -9
  121. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +18 -22
  122. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +6 -6
  123. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +5 -5
  124. package/esm2022/lib/_components/widget/todo/todo.component.mjs +8 -7
  125. package/esm2022/lib/_components/widget/utility/utility.component.mjs +5 -5
  126. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +5 -5
  127. package/esm2022/lib/_helpers/case-utils.mjs +1 -1
  128. package/esm2022/lib/_helpers/currency-utils.mjs +1 -1
  129. package/esm2022/lib/_helpers/event-util.mjs +1 -1
  130. package/esm2022/lib/_helpers/field-group-utils.mjs +1 -1
  131. package/esm2022/lib/_helpers/filter-utils.mjs +1 -1
  132. package/esm2022/lib/_helpers/formatters/boolean.mjs +1 -1
  133. package/esm2022/lib/_helpers/formatters/currency.mjs +2 -2
  134. package/esm2022/lib/_helpers/formatters/date.mjs +1 -1
  135. package/esm2022/lib/_helpers/formatters/format-utils.mjs +3 -3
  136. package/esm2022/lib/_helpers/formatters/index.mjs +1 -1
  137. package/esm2022/lib/_helpers/instructions-utils.mjs +36 -0
  138. package/esm2022/lib/_helpers/tab-utils.mjs +1 -1
  139. package/esm2022/lib/_helpers/template-utils.mjs +4 -4
  140. package/esm2022/lib/_helpers/utils.mjs +6 -6
  141. package/esm2022/lib/_messages/error-messages.service.mjs +3 -3
  142. package/esm2022/lib/_messages/get-login-status.service.mjs +3 -3
  143. package/esm2022/lib/_messages/oauth-response.service.mjs +3 -3
  144. package/esm2022/lib/_messages/progress-spinner.service.mjs +3 -3
  145. package/esm2022/lib/_messages/reset-pconnect.service.mjs +3 -3
  146. package/esm2022/lib/_messages/update-worklist.service.mjs +3 -3
  147. package/esm2022/lib/_services/case.service.mjs +4 -4
  148. package/esm2022/lib/_services/datapage.service.mjs +5 -5
  149. package/esm2022/lib/_services/server-config.service.mjs +3 -3
  150. package/esm2022/public-api.mjs +3 -1
  151. package/fesm2022/pega-angular-sdk-components.mjs +1996 -1429
  152. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
  153. package/lib/_bridge/angular-pconnect.d.ts +2 -0
  154. package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +2 -0
  155. package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +2 -0
  156. package/lib/_components/designSystemExtension/operator/operator.component.d.ts +2 -1
  157. package/lib/_components/field/check-box/check-box.component.d.ts +18 -0
  158. package/lib/_components/field/currency/currency.component.d.ts +7 -5
  159. package/lib/_components/field/date-time/date-time.component.d.ts +1 -1
  160. package/lib/_components/field/decimal/decimal.component.d.ts +9 -1
  161. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -1
  162. package/lib/_components/field/multiselect/multiselect.component.d.ts +64 -0
  163. package/lib/_components/field/multiselect/utils.d.ts +8 -0
  164. package/lib/_components/field/percentage/percentage.component.d.ts +6 -0
  165. package/lib/_components/field/time/time.component.d.ts +1 -0
  166. package/lib/_components/field/url/url.component.d.ts +1 -0
  167. package/lib/_components/field/user-reference/user-reference.component.d.ts +9 -4
  168. package/lib/_components/infra/Containers/base-components/flow-container-base.component.d.ts +8 -0
  169. package/lib/_components/infra/Containers/base-components/helper.d.ts +1 -0
  170. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +6 -7
  171. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +3 -2
  172. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
  173. package/lib/_components/infra/assignment/assignment.component.d.ts +2 -2
  174. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
  175. package/lib/_components/infra/navbar/navbar.component.d.ts +2 -0
  176. package/lib/_components/template/case-summary/case-summary.component.d.ts +2 -0
  177. package/lib/_components/template/field-value-list/field-value-list.component.d.ts +2 -1
  178. package/lib/_components/template/list-view/list-view.component.d.ts +8 -4
  179. package/lib/_components/template/simple-table-manual/helpers.d.ts +1 -1
  180. package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +2 -0
  181. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +2 -0
  182. package/lib/_components/widget/attachment/attachment.component.d.ts +30 -54
  183. package/lib/_components/widget/file-utility/file-utility.component.d.ts +3 -3
  184. package/lib/_components/widget/todo/todo.component.d.ts +4 -3
  185. package/lib/_helpers/common.d.ts +1 -1
  186. package/lib/_helpers/field-group-utils.d.ts +1 -1
  187. package/lib/_helpers/filter-utils.d.ts +1 -1
  188. package/lib/_helpers/formatters/common.d.ts +2 -2
  189. package/lib/_helpers/instructions-utils.d.ts +4 -0
  190. package/lib/doc/KeyReleaseUpdates.md +18 -1
  191. package/package.json +3 -3
  192. package/public-api.d.ts +2 -0
@@ -38,15 +38,15 @@ export class PageComponent {
38
38
  // this.psService.sendMessage(false);
39
39
  }
40
40
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PageComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PageComponent, isStandalone: true, selector: "app-page", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div class=\"psdk-page-title\">\n <h2>{{ title$ }}</h2>\n</div>\n<div class=\"page-body\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <div *ngSwitchDefault>Page Missing: {{ kid.getPConnect().getComponentName() }}</div>\n </div>\n </div>\n</div>\n", styles: [".psdk-page-title{padding-left:.2rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitch; }), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitchCase; }), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitchDefault; }), selector: "[ngSwitchDefault]" }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PageComponent, isStandalone: true, selector: "app-page", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div class=\"psdk-page-title\">\n <h2>{{ title$ }}</h2>\n</div>\n<div class=\"page-body\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <div *ngSwitchDefault>Page Missing: {{ kid.getPConnect().getComponentName() }}</div>\n </div>\n </div>\n</div>\n", styles: [".psdk-page-title{padding-left:.2rem}\n"], 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.NgSwitch), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgSwitchCase), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgSwitchDefault), selector: "[ngSwitchDefault]" }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PageComponent, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PageComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{ selector: 'app-page', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-page-title\">\n <h2>{{ title$ }}</h2>\n</div>\n<div class=\"page-body\">\n <div *ngFor=\"let kid of arChildren$\">\n <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n <div *ngSwitchDefault>Page Missing: {{ kid.getPConnect().getComponentName() }}</div>\n </div>\n </div>\n</div>\n", styles: [".psdk-page-title{padding-left:.2rem}\n"] }]
47
- }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }]; }, propDecorators: { pConn$: [{
47
+ }], ctorParameters: () => [{ type: i1.AngularPConnectService }], propDecorators: { pConn$: [{
48
48
  type: Input
49
49
  }], formGroup$: [{
50
50
  type: Input
51
51
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvdGVtcGxhdGUvcGFnZS9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9wYWdlL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7OztBQWV4RyxNQUFNLE9BQU8sYUFBYTtJQVd4QixZQUFvQixlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFQM0QsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7SUFNZ0IsQ0FBQztJQUUvRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBYyxDQUFDO1FBQzlGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQVcsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRTVDLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1NBQ2hDO1FBRUQscUdBQXFHO1FBQ3JHLGNBQWMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUU7WUFDMUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCwwRkFBMEY7UUFDMUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRSx3REFBd0Q7UUFDeEQsNEVBQTRFO1FBQzVFLGlDQUFpQztRQUNqQyxJQUFJLFdBQVcsRUFBRTtZQUNmLG1CQUFtQjtZQUNuQixxQ0FBcUM7U0FDdEM7SUFDSCxDQUFDOytHQS9DVSxhQUFhO21HQUFiLGFBQWEsNEhDbkIxQixta0JBWUEsa0lES1ksWUFBWSwybUJBQW1CLHdCQUF3Qjs7NEZBRXRELGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUdSLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzs2R0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIFBhZ2VQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgdGl0bGU6IHN0cmluZztcbiAgb3BlcmF0b3I/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBjb25maWdQcm9wcyQ6IFBhZ2VQcm9wcztcbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICB0aXRsZSQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgUGFnZVByb3BzO1xuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSB0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpIGFzIGFueVtdO1xuXG4gICAgdGhpcy50aXRsZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50aXRsZTtcbiAgICBjb25zdCBvcGVyYXRvciA9IHRoaXMuY29uZmlnUHJvcHMkLm9wZXJhdG9yO1xuXG4gICAgaWYgKG9wZXJhdG9yICYmIG9wZXJhdG9yICE9ICcnKSB7XG4gICAgICB0aGlzLnRpdGxlJCArPSBgLCAke29wZXJhdG9yfWA7XG4gICAgfVxuXG4gICAgLy8gd2hlbiBzaG93aW5nIGEgcGFnZSwgc2ltaWxhciB0byB1cGRhdGluZyByb290LCBuZWVkIHRvIGNhdXNlIHZpZXdDb250YWluZXIgdG8gY2FsbCBcImluaXRDb250YWluZXJcIlxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2hhc1ZpZXdDb250YWluZXInLCAnZmFsc2UnKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICAvLyAgICBBTkQgcmVtb3ZpbmcgdGhlIFwiZ2F0ZVwiIHRoYXQgd2FzIHB1dCB0aGVyZSBzaW5jZSBzaG91bGRDb21wb25lbnRVcGRhdGVcbiAgICAvLyAgICAgIHNob3VsZCBiZSB0aGUgcmVhbCBcImdhdGVcIlxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgLy8gdHVybiBvZmYgc3Bpbm5lclxuICAgICAgLy8gdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UoZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBzZGstcGFnZS10aXRsZVwiPlxuICA8aDI+e3sgdGl0bGUkIH19PC9oMj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBhZ2UtYm9keVwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICA8ZGl2IFtuZ1N3aXRjaF09XCJraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKClcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyICpuZ1N3aXRjaENhc2U9XCInVmlldydcIiBuYW1lPVwiVmlld1wiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyICpuZ1N3aXRjaENhc2U9XCInUmVnaW9uJ1wiIG5hbWU9XCJSZWdpb25cIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+UGFnZSBNaXNzaW5nOiB7eyBraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCkgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvdGVtcGxhdGUvcGFnZS9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9wYWdlL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7OztBQWV4RyxNQUFNLE9BQU8sYUFBYTtJQVd4QixZQUFvQixlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFQM0QsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7SUFNZ0IsQ0FBQztJQUUvRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBYyxDQUFDO1FBQzlGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQVcsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRTVDLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUVELHFHQUFxRztRQUNyRyxjQUFjLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLDBGQUEwRjtRQUMxRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLHdEQUF3RDtRQUN4RCw0RUFBNEU7UUFDNUUsaUNBQWlDO1FBQ2pDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsbUJBQW1CO1lBQ25CLHFDQUFxQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQzsrR0EvQ1UsYUFBYTttR0FBYixhQUFhLDRIQ25CMUIsbWtCQVlBLG1IREtZLFlBQVksaWhCQUFtQix3QkFBd0I7OzRGQUV0RCxhQUFhO2tCQVB6QixTQUFTOytCQUNFLFVBQVUsY0FHUixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7MkZBRzFELE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBQYWdlUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG9wZXJhdG9yPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgLy8gVXNlZCB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgY29uZmlnUHJvcHMkOiBQYWdlUHJvcHM7XG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcbiAgdGl0bGUkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcblxuICAgIHRoaXMuY29uZmlnUHJvcHMkID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkpIGFzIFBhZ2VQcm9wcztcbiAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcblxuICAgIHRoaXMudGl0bGUkID0gdGhpcy5jb25maWdQcm9wcyQudGl0bGU7XG4gICAgY29uc3Qgb3BlcmF0b3IgPSB0aGlzLmNvbmZpZ1Byb3BzJC5vcGVyYXRvcjtcblxuICAgIGlmIChvcGVyYXRvciAmJiBvcGVyYXRvciAhPSAnJykge1xuICAgICAgdGhpcy50aXRsZSQgKz0gYCwgJHtvcGVyYXRvcn1gO1xuICAgIH1cblxuICAgIC8vIHdoZW4gc2hvd2luZyBhIHBhZ2UsIHNpbWlsYXIgdG8gdXBkYXRpbmcgcm9vdCwgbmVlZCB0byBjYXVzZSB2aWV3Q29udGFpbmVyIHRvIGNhbGwgXCJpbml0Q29udGFpbmVyXCJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdoYXNWaWV3Q29udGFpbmVyJywgJ2ZhbHNlJyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgLy8gICAgQU5EIHJlbW92aW5nIHRoZSBcImdhdGVcIiB0aGF0IHdhcyBwdXQgdGhlcmUgc2luY2Ugc2hvdWxkQ29tcG9uZW50VXBkYXRlXG4gICAgLy8gICAgICBzaG91bGQgYmUgdGhlIHJlYWwgXCJnYXRlXCJcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIC8vIHR1cm4gb2ZmIHNwaW5uZXJcbiAgICAgIC8vIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwc2RrLXBhZ2UtdGl0bGVcIj5cbiAgPGgyPnt7IHRpdGxlJCB9fTwvaDI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwYWdlLWJvZHlcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgPGRpdiBbbmdTd2l0Y2hdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciAqbmdTd2l0Y2hDYXNlPVwiJ1ZpZXcnXCIgbmFtZT1cIlZpZXdcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciAqbmdTd2l0Y2hDYXNlPVwiJ1JlZ2lvbidcIiBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlBhZ2UgTWlzc2luZzoge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -125,13 +125,13 @@ export class PromotedFiltersComponent {
125
125
  this.showTable = false;
126
126
  this.pConn$?.getListActions?.()?.setSelectedRows([]); // Clear the selection (if any made by user)
127
127
  }
128
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PromotedFiltersComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PromotedFiltersComponent, isStandalone: true, selector: "app-promoted-filters", inputs: { viewName: "viewName", filters: "filters", listViewProps: "listViewProps", pageClass: "pageClass", pConn$: "pConn$", formGroup$: "formGroup$", parameters: "parameters" }, ngImport: i0, template: "<div>\n <div>{{ listViewProps.title }}</div>\n <div *ngIf=\"showFilters\" class=\"psdk-grid-filter\">\n <div *ngFor=\"let kid of processedFilters\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Promoted filters wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </div>\n\n <div>\n <button key=\"1\" type=\"button\" (click)=\"clearFilterData()\" data-testid=\"clear\" mat-raised-button color=\"secondary\">\n {{ localizedVal('Clear', localeCategory) }}\n </button>\n <button style=\"float: 'right'\" key=\"2\" type=\"submit\" (click)=\"getFilterData()\" data-testid=\"search\" mat-raised-button color=\"primary\">\n {{ localizedVal('Search', localeCategory) }}\n </button>\n </div>\n <div *ngIf=\"showTable\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$, payload }\"></component-mapper>\n </div>\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: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatButtonModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i3.MatButton; }), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PromotedFiltersComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PromotedFiltersComponent, isStandalone: true, selector: "app-promoted-filters", inputs: { viewName: "viewName", filters: "filters", listViewProps: "listViewProps", pageClass: "pageClass", pConn$: "pConn$", formGroup$: "formGroup$", parameters: "parameters" }, ngImport: i0, template: "<div>\n <div>{{ listViewProps.title }}</div>\n <div *ngIf=\"showFilters\" class=\"psdk-grid-filter\">\n <div *ngFor=\"let kid of processedFilters\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Promoted filters wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </div>\n\n <div>\n <button key=\"1\" type=\"button\" (click)=\"clearFilterData()\" data-testid=\"clear\" mat-raised-button color=\"secondary\">\n {{ localizedVal('Clear', localeCategory) }}\n </button>\n <button style=\"float: 'right'\" key=\"2\" type=\"submit\" (click)=\"getFilterData()\" data-testid=\"search\" mat-raised-button color=\"primary\">\n {{ localizedVal('Search', localeCategory) }}\n </button>\n </div>\n <div *ngIf=\"showTable\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$, payload }\"></component-mapper>\n </div>\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: "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: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
130
130
  }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PromotedFiltersComponent, decorators: [{
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PromotedFiltersComponent, decorators: [{
132
132
  type: Component,
133
133
  args: [{ selector: 'app-promoted-filters', standalone: true, imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)], template: "<div>\n <div>{{ listViewProps.title }}</div>\n <div *ngIf=\"showFilters\" class=\"psdk-grid-filter\">\n <div *ngFor=\"let kid of processedFilters\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Promoted filters wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </div>\n\n <div>\n <button key=\"1\" type=\"button\" (click)=\"clearFilterData()\" data-testid=\"clear\" mat-raised-button color=\"secondary\">\n {{ localizedVal('Clear', localeCategory) }}\n </button>\n <button style=\"float: 'right'\" key=\"2\" type=\"submit\" (click)=\"getFilterData()\" data-testid=\"search\" mat-raised-button color=\"primary\">\n {{ localizedVal('Search', localeCategory) }}\n </button>\n </div>\n <div *ngIf=\"showTable\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$, payload }\"></component-mapper>\n </div>\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"] }]
134
- }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }]; }, propDecorators: { viewName: [{
134
+ }], ctorParameters: () => [{ type: i1.AngularPConnectService }], propDecorators: { viewName: [{
135
135
  type: Input
136
136
  }], filters: [{
137
137
  type: Input
@@ -146,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
146
146
  }], parameters: [{
147
147
  type: Input
148
148
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90ZWQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvdGVtcGxhdGUvcHJvbW90ZWQtZmlsdGVycy9wcm9tb3RlZC1maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9wcm9tb3RlZC1maWx0ZXJzL3Byb21vdGVkLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7O0FBRXhHLE1BQU0sbUNBQW1DLEdBQUc7SUFDMUMsV0FBVztJQUNYLFlBQVk7SUFDWixPQUFPO0lBQ1AsU0FBUztJQUNULFNBQVM7SUFDVCxVQUFVO0lBQ1YsVUFBVTtJQUNWLE1BQU07SUFDTixNQUFNO0lBQ04sTUFBTTtJQUNOLFVBQVU7SUFDVixVQUFVO0lBQ1YsS0FBSztJQUNMLFVBQVU7Q0FDWCxDQUFDO0FBU0YsTUFBTSxPQUFPLHdCQUF3QjtJQW9CbkMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBYmxELGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFekIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUc5QyxtQkFBYyxHQUFHLGFBQWEsQ0FBQztRQUUvQixzQkFBaUIs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O3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbmNvbnN0IFNVUFBPUlRFRF9UWVBFU19JTl9QUk9NT1RFRF9GSUxURVJTID0gW1xuICAnVGV4dElucHV0JyxcbiAgJ1BlcmNlbnRhZ2UnLFxuICAnRW1haWwnLFxuICAnSW50ZWdlcicsXG4gICdEZWNpbWFsJyxcbiAgJ0NoZWNrYm94JyxcbiAgJ0RhdGVUaW1lJyxcbiAgJ0RhdGUnLFxuICAnVGltZScsXG4gICdUZXh0JyxcbiAgJ1RleHRBcmVhJyxcbiAgJ0N1cnJlbmN5JyxcbiAgJ1VSTCcsXG4gICdSaWNoVGV4dCdcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9tb3RlZC1maWx0ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21vdGVkLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9tb3RlZC1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9tb3RlZEZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHZpZXdOYW1lO1xuICBASW5wdXQoKSBmaWx0ZXJzO1xuICBASW5wdXQoKSBsaXN0Vmlld1Byb3BzO1xuICBASW5wdXQoKSBwYWdlQ2xhc3M7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHBhcmFtZXRlcnMgPSB7fTtcblxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgc2hvd0ZpbHRlcnM6IGJvb2xlYW47XG4gIGxvY2FsZUNhdGVnb3J5ID0gJ1NpbXBsZVRhYmxlJztcbiAgbG9jYWxpemVkVmFsO1xuICBmaWx0ZXJzUHJvcGVydGllcyA9IHt9O1xuICBzaG93VGFibGU7XG4gIHRyYW5zaWVudEl0ZW1JRDtcbiAgcHJvY2Vzc2VkRmlsdGVyczogYW55W10gPSBbXTtcbiAgcGF5bG9hZCA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIHRoaXMubG9jYWxpemVkVmFsID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZTtcbiAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJzUHJvcGVydGllc1tQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5nZXRQcm9wZXJ0eU5hbWUoZmlsdGVyLmNvbmZpZy52YWx1ZSldID0gJyc7XG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWx0ZXJzV2l0aENsYXNzSUQgPSB7IC4uLnRoaXMuZmlsdGVyc1Byb3BlcnRpZXMsIGNsYXNzSUQ6IHRoaXMucGFnZUNsYXNzIH07XG4gICAgdGhpcy50cmFuc2llbnRJdGVtSUQgPSAodGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTWFuYWdlcigpIGFzIGFueSkuYWRkVHJhbnNpZW50SXRlbSh7IGlkOiB0aGlzLnZpZXdOYW1lLCBkYXRhOiBmaWx0ZXJzV2l0aENsYXNzSUQgfSk7XG4gICAgdGhpcy5wcm9jZXNzZWRGaWx0ZXJzID0gW107XG4gICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlckNsb25lID0geyAuLi5maWx0ZXIgfTtcbiAgICAgIC8vIGNvbnZlcnQgYW55IGZpZWxkIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgdG8gVGV4dElucHV0IGFuZCBkZWxldGUgdGhlIHBsYWNlaG9sZGVyIGFzIGl0IG1heSBjb250YWluIHBsYWNlaG9sZGVyIHNwZWNpZmljIHRvIG9yaWdpbmFsIHR5cGUuXG4gICAgICBpZiAoIVNVUFBPUlRFRF9UWVBFU19JTl9QUk9NT1RFRF9GSUxURVJTLmluY2x1ZGVzKGZpbHRlckNsb25lLnR5cGUpKSB7XG4gICAgICAgIGZpbHRlckNsb25lLnR5cGUgPSAnVGV4dElucHV0JztcbiAgICAgICAgZGVsZXRlIGZpbHRlckNsb25lLmNvbmZpZy5wbGFjZWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIGZpbHRlckNsb25lLmNvbmZpZy5jb250ZXh0TmFtZSA9IHRoaXMudHJhbnNpZW50SXRlbUlEO1xuICAgICAgZmlsdGVyQ2xvbmUuY29uZmlnLnJlYWRPbmx5ID0gZmFsc2U7XG4gICAgICBmaWx0ZXJDbG9uZS5jb25maWcuY29udGV4dCA9IHRoaXMudHJhbnNpZW50SXRlbUlEO1xuICAgICAgZmlsdGVyQ2xvbmUuY29uZmlnLmxvY2FsZVJlZmVyZW5jZSA9IHRoaXMubGlzdFZpZXdQcm9wcy5sb2NhbGVSZWZlcmVuY2U7XG4gICAgICBjb25zdCBjMTFuRW52ID0gUENvcmUuY3JlYXRlUENvbm5lY3Qoe1xuICAgICAgICBtZXRhOiBmaWx0ZXJDbG9uZSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGhhc0Zvcm06IHRydWUsXG4gICAgICAgICAgY29udGV4dE5hbWU6IHRoaXMudHJhbnNpZW50SXRlbUlEXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm9jZXNzZWRGaWx0ZXJzLnB1c2goYzExbkVudik7XG4gICAgfSk7XG4gICAgdGhpcy5zaG93RmlsdGVycyA9IHRydWU7XG4gIH1cblxuICBmb3JtYXRQcm9tb3RlZEZpbHRlcnMocHJvbW90ZWRGaWx0ZXJzKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHByb21vdGVkRmlsdGVycykucmVkdWNlKChhY2MsIFtmaWVsZCwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgYWNjW2ZpZWxkXSA9IHtcbiAgICAgICAgICBsaHM6IHtcbiAgICAgICAgICAgIGZpZWxkXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb21wYXJhdG9yOiAnRVEnLFxuICAgICAgICAgIHJoczoge1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIGlzVmFsaWRJbnB1dChpbnB1dCkge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKGlucHV0KS5maW5kSW5kZXgodiA9PiB2KSA+PSAwO1xuICB9XG5cbiAgZ2V0RmlsdGVyRGF0YSgpIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gUENvcmUuZ2V0Rm9ybVV0aWxzKCkuZ2V0Q2hhbmdlcyh0aGlzLnRyYW5zaWVudEl0ZW1JRCk7XG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmICghWydjb250ZXh0X2RhdGEnLCAncGFnZUluc3RydWN0aW9ucyddLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgZm9ybVZhbHVlc1trZXldID0gY2hhbmdlc1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb21vdGVkRmlsdGVycyA9IHRoaXMuZm9ybWF0UHJvbW90ZWRGaWx0ZXJzKGZvcm1WYWx1ZXMpO1xuICAgIGlmIChQQ29yZS5nZXRGb3JtVXRpbHMoKS5pc0Zvcm1WYWxpZCh0aGlzLnRyYW5zaWVudEl0ZW1JRCkgJiYgdGhpcy5pc1ZhbGlkSW5wdXQoZm9ybVZhbHVlcykpIHtcbiAgICAgIHRoaXMuc2hvd1RhYmxlID0gdHJ1ZTtcbiAgICAgIGNvbnN0IFF1ZXJ5OiBhbnkgPSB7XG4gICAgICAgIGRhdGFWaWV3UGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzIHx8IHt9XG4gICAgICB9O1xuXG4gICAgICBpZiAoT2JqZWN0LmtleXMocHJvbW90ZWRGaWx0ZXJzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIFF1ZXJ5LnF1ZXJ5ID0geyBmaWx0ZXI6IHsgZmlsdGVyQ29uZGl0aW9uczogcHJvbW90ZWRGaWx0ZXJzIH0gfTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGF5bG9hZCA9IFF1ZXJ5O1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyRmlsdGVyRGF0YSgpIHtcbiAgICBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLmNsZWFyVHJhbnNpZW50RGF0YSh0aGlzLnRyYW5zaWVudEl0ZW1JRCk7XG4gICAgdGhpcy5zaG93VGFibGUgPSBmYWxzZTtcbiAgICB0aGlzLnBDb25uJD8uZ2V0TGlzdEFjdGlvbnM/LigpPy5zZXRTZWxlY3RlZFJvd3MoW10pOyAvLyBDbGVhciB0aGUgc2VsZWN0aW9uIChpZiBhbnkgbWFkZSBieSB1c2VyKVxuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2Pnt7IGxpc3RWaWV3UHJvcHMudGl0bGUgfX08L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dGaWx0ZXJzXCIgY2xhc3M9XCJwc2RrLWdyaWQtZmlsdGVyXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIHByb2Nlc3NlZEZpbHRlcnNcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSxcbiAgICAgICAgICBmb3JtR3JvdXAkOiBmb3JtR3JvdXAkXG4gICAgICAgIH1cIlxuICAgICAgICBlcnJvck1zZz1cIlByb21vdGVkIGZpbHRlcnMgd2FudHMgY29tcG9uZW50IG5vdCB5ZXQgYXZhaWxhYmxlOiB7eyBraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCkgfX1cIlxuICAgICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdj5cbiAgICA8YnV0dG9uIGtleT1cIjFcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyRmlsdGVyRGF0YSgpXCIgZGF0YS10ZXN0aWQ9XCJjbGVhclwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwic2Vjb25kYXJ5XCI+XG4gICAgICB7eyBsb2NhbGl6ZWRWYWwoJ0NsZWFyJywgbG9jYWxlQ2F0ZWdvcnkpIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBzdHlsZT1cImZsb2F0OiAncmlnaHQnXCIga2V5PVwiMlwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiZ2V0RmlsdGVyRGF0YSgpXCIgZGF0YS10ZXN0aWQ9XCJzZWFyY2hcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgIHt7IGxvY2FsaXplZFZhbCgnU2VhcmNoJywgbG9jYWxlQ2F0ZWdvcnkpIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwic2hvd1RhYmxlXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkxpc3RWaWV3XCIgW3Byb3BzXT1cInsgcENvbm4kLCBwYXlsb2FkIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90ZWQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvdGVtcGxhdGUvcHJvbW90ZWQtZmlsdGVycy9wcm9tb3RlZC1maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9wcm9tb3RlZC1maWx0ZXJzL3Byb21vdGVkLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7O0FBRXhHLE1BQU0sbUNBQW1DLEdBQUc7SUFDMUMsV0FBVztJQUNYLFlBQVk7SUFDWixPQUFPO0lBQ1AsU0FBUztJQUNULFNBQVM7SUFDVCxVQUFVO0lBQ1YsVUFBVTtJQUNWLE1BQU07SUFDTixNQUFNO0lBQ04sTUFBTTtJQUNOLFVBQVU7SUFDVixVQUFVO0lBQ1YsS0FBSztJQUNMLFVBQVU7Q0FDWCxDQUFDO0FBU0YsTUFBTSxPQUFPLHdCQUF3QjtJQW9CbkMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBYmxELGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFekIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUc5QyxtQkFBYyxHQUFHLGFBQWEsQ0FBQztRQUUvQixzQkFBaUIs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QUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuY29uc3QgU1VQUE9SVEVEX1RZUEVTX0lOX1BST01PVEVEX0ZJTFRFUlMgPSBbXG4gICdUZXh0SW5wdXQnLFxuICAnUGVyY2VudGFnZScsXG4gICdFbWFpbCcsXG4gICdJbnRlZ2VyJyxcbiAgJ0RlY2ltYWwnLFxuICAnQ2hlY2tib3gnLFxuICAnRGF0ZVRpbWUnLFxuICAnRGF0ZScsXG4gICdUaW1lJyxcbiAgJ1RleHQnLFxuICAnVGV4dEFyZWEnLFxuICAnQ3VycmVuY3knLFxuICAnVVJMJyxcbiAgJ1JpY2hUZXh0J1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXByb21vdGVkLWZpbHRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvbW90ZWQtZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb21vdGVkLWZpbHRlcnMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIFByb21vdGVkRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdmlld05hbWU7XG4gIEBJbnB1dCgpIGZpbHRlcnM7XG4gIEBJbnB1dCgpIGxpc3RWaWV3UHJvcHM7XG4gIEBJbnB1dCgpIHBhZ2VDbGFzcztcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcGFyYW1ldGVycyA9IHt9O1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBzaG93RmlsdGVyczogYm9vbGVhbjtcbiAgbG9jYWxlQ2F0ZWdvcnkgPSAnU2ltcGxlVGFibGUnO1xuICBsb2NhbGl6ZWRWYWw7XG4gIGZpbHRlcnNQcm9wZXJ0aWVzID0ge307XG4gIHNob3dUYWJsZTtcbiAgdHJhbnNpZW50SXRlbUlEO1xuICBwcm9jZXNzZWRGaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICBwYXlsb2FkID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgdGhpcy5sb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICB0aGlzLmZpbHRlcnNQcm9wZXJ0aWVzW1BDb3JlLmdldEFubm90YXRpb25VdGlscygpLmdldFByb3BlcnR5TmFtZShmaWx0ZXIuY29uZmlnLnZhbHVlKV0gPSAnJztcbiAgICB9KTtcblxuICAgIGNvbnN0IGZpbHRlcnNXaXRoQ2xhc3NJRCA9IHsgLi4udGhpcy5maWx0ZXJzUHJvcGVydGllcywgY2xhc3NJRDogdGhpcy5wYWdlQ2xhc3MgfTtcbiAgICB0aGlzLnRyYW5zaWVudEl0ZW1JRCA9ICh0aGlzLnBDb25uJC5nZXRDb250YWluZXJNYW5hZ2VyKCkgYXMgYW55KS5hZGRUcmFuc2llbnRJdGVtKHsgaWQ6IHRoaXMudmlld05hbWUsIGRhdGE6IGZpbHRlcnNXaXRoQ2xhc3NJRCB9KTtcbiAgICB0aGlzLnByb2Nlc3NlZEZpbHRlcnMgPSBbXTtcbiAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyQ2xvbmUgPSB7IC4uLmZpbHRlciB9O1xuICAgICAgLy8gY29udmVydCBhbnkgZmllbGQgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCB0byBUZXh0SW5wdXQgYW5kIGRlbGV0ZSB0aGUgcGxhY2Vob2xkZXIgYXMgaXQgbWF5IGNvbnRhaW4gcGxhY2Vob2xkZXIgc3BlY2lmaWMgdG8gb3JpZ2luYWwgdHlwZS5cbiAgICAgIGlmICghU1VQUE9SVEVEX1RZUEVTX0lOX1BST01PVEVEX0ZJTFRFUlMuaW5jbHVkZXMoZmlsdGVyQ2xvbmUudHlwZSkpIHtcbiAgICAgICAgZmlsdGVyQ2xvbmUudHlwZSA9ICdUZXh0SW5wdXQnO1xuICAgICAgICBkZWxldGUgZmlsdGVyQ2xvbmUuY29uZmlnLnBsYWNlaG9sZGVyO1xuICAgICAgfVxuICAgICAgZmlsdGVyQ2xvbmUuY29uZmlnLmNvbnRleHROYW1lID0gdGhpcy50cmFuc2llbnRJdGVtSUQ7XG4gICAgICBmaWx0ZXJDbG9uZS5jb25maWcucmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgIGZpbHRlckNsb25lLmNvbmZpZy5jb250ZXh0ID0gdGhpcy50cmFuc2llbnRJdGVtSUQ7XG4gICAgICBmaWx0ZXJDbG9uZS5jb25maWcubG9jYWxlUmVmZXJlbmNlID0gdGhpcy5saXN0Vmlld1Byb3BzLmxvY2FsZVJlZmVyZW5jZTtcbiAgICAgIGNvbnN0IGMxMW5FbnYgPSBQQ29yZS5jcmVhdGVQQ29ubmVjdCh7XG4gICAgICAgIG1ldGE6IGZpbHRlckNsb25lLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgaGFzRm9ybTogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0TmFtZTogdGhpcy50cmFuc2llbnRJdGVtSURcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnByb2Nlc3NlZEZpbHRlcnMucHVzaChjMTFuRW52KTtcbiAgICB9KTtcbiAgICB0aGlzLnNob3dGaWx0ZXJzID0gdHJ1ZTtcbiAgfVxuXG4gIGZvcm1hdFByb21vdGVkRmlsdGVycyhwcm9tb3RlZEZpbHRlcnMpIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocHJvbW90ZWRGaWx0ZXJzKS5yZWR1Y2UoKGFjYywgW2ZpZWxkLCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBhY2NbZmllbGRdID0ge1xuICAgICAgICAgIGxoczoge1xuICAgICAgICAgICAgZmllbGRcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbXBhcmF0b3I6ICdFUScsXG4gICAgICAgICAgcmhzOiB7XG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgaXNWYWxpZElucHV0KGlucHV0KSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoaW5wdXQpLmZpbmRJbmRleCh2ID0+IHYpID49IDA7XG4gIH1cblxuICBnZXRGaWx0ZXJEYXRhKCkge1xuICAgIGNvbnN0IGNoYW5nZXMgPSBQQ29yZS5nZXRGb3JtVXRpbHMoKS5nZXRDaGFuZ2VzKHRoaXMudHJhbnNpZW50SXRlbUlEKTtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0ge307XG4gICAgT2JqZWN0LmtleXMoY2hhbmdlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKCFbJ2NvbnRleHRfZGF0YScsICdwYWdlSW5zdHJ1Y3Rpb25zJ10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBmb3JtVmFsdWVzW2tleV0gPSBjaGFuZ2VzW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJvbW90ZWRGaWx0ZXJzID0gdGhpcy5mb3JtYXRQcm9tb3RlZEZpbHRlcnMoZm9ybVZhbHVlcyk7XG4gICAgaWYgKFBDb3JlLmdldEZvcm1VdGlscygpLmlzRm9ybVZhbGlkKHRoaXMudHJhbnNpZW50SXRlbUlEKSAmJiB0aGlzLmlzVmFsaWRJbnB1dChmb3JtVmFsdWVzKSkge1xuICAgICAgdGhpcy5zaG93VGFibGUgPSB0cnVlO1xuICAgICAgY29uc3QgUXVlcnk6IGFueSA9IHtcbiAgICAgICAgZGF0YVZpZXdQYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMgfHwge31cbiAgICAgIH07XG5cbiAgICAgIGlmIChPYmplY3Qua2V5cyhwcm9tb3RlZEZpbHRlcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgUXVlcnkucXVlcnkgPSB7IGZpbHRlcjogeyBmaWx0ZXJDb25kaXRpb25zOiBwcm9tb3RlZEZpbHRlcnMgfSB9O1xuICAgICAgfVxuICAgICAgdGhpcy5wYXlsb2FkID0gUXVlcnk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXJEYXRhKCkge1xuICAgIFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuY2xlYXJUcmFuc2llbnREYXRhKHRoaXMudHJhbnNpZW50SXRlbUlEKTtcbiAgICB0aGlzLnNob3dUYWJsZSA9IGZhbHNlO1xuICAgIHRoaXMucENvbm4kPy5nZXRMaXN0QWN0aW9ucz8uKCk/LnNldFNlbGVjdGVkUm93cyhbXSk7IC8vIENsZWFyIHRoZSBzZWxlY3Rpb24gKGlmIGFueSBtYWRlIGJ5IHVzZXIpXG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXY+e3sgbGlzdFZpZXdQcm9wcy50aXRsZSB9fTwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwic2hvd0ZpbHRlcnNcIiBjbGFzcz1cInBzZGstZ3JpZC1maWx0ZXJcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgcHJvY2Vzc2VkRmlsdGVyc1wiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpLFxuICAgICAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCRcbiAgICAgICAgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiUHJvbW90ZWQgZmlsdGVycyB3YW50cyBjb21wb25lbnQgbm90IHlldCBhdmFpbGFibGU6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxidXR0b24ga2V5PVwiMVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXJGaWx0ZXJEYXRhKClcIiBkYXRhLXRlc3RpZD1cImNsZWFyXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJzZWNvbmRhcnlcIj5cbiAgICAgIHt7IGxvY2FsaXplZFZhbCgnQ2xlYXInLCBsb2NhbGVDYXRlZ29yeSkgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHN0eWxlPVwiZmxvYXQ6ICdyaWdodCdcIiBrZXk9XCIyXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJnZXRGaWx0ZXJEYXRhKClcIiBkYXRhLXRlc3RpZD1cInNlYXJjaFwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAge3sgbG9jYWxpemVkVmFsKCdTZWFyY2gnLCBsb2NhbGVDYXRlZ29yeSkgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93VGFibGVcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiTGlzdFZpZXdcIiBbcHJvcHNdPVwieyBwQ29ubiQsIHBheWxvYWQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -27,7 +27,6 @@ export class RepeatingStructuresComponent {
27
27
  this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
28
28
  this.fields$ = this.initializeColumns(componentConfig.fields);
29
29
  const refList = this.configProps$.referenceList;
30
- // @ts-ignore - second parameter pageReference for getValue method should be optional
31
30
  const tableDataResults = JSON.parse(JSON.stringify(this.pConn$.getValue(refList)));
32
31
  // update elements like date format
33
32
  const updatedRefList = this.updateData(tableDataResults, this.fields$);
@@ -121,13 +120,13 @@ export class RepeatingStructuresComponent {
121
120
  getDisplayColumns(fields = []) {
122
121
  return fields.map((field) => field.name);
123
122
  }
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RepeatingStructuresComponent, deps: [{ token: i1.ProgressSpinnerService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RepeatingStructuresComponent, isStandalone: true, selector: "app-repeating-structures", inputs: { pConn$: "pConn$" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div>\n <mat-form-field class=\"psdk-search\">\n <mat-label\n ><mat-icon class=\"psdk-icon-search\" style=\"transform: scale(1.2); width: 2rem; vertical-align: sub\" svgIcon=\"magnify\" mastListIcon></mat-icon>\n Search</mat-label\n >\n <input matInput (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <table mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ dCol.label }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.name] }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\" (click)=\"rowClick(row)\"></tr>\n </table>\n\n <mat-paginator [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n</div>\n", styles: ["table{width:100%}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-search{padding-left:.625rem}.psdk-icon-search{vertical-align:sub;padding:0rem .125rem;min-width:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: 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: "ngmodule", type: MatTableModule }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i8.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i8.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i9.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }] }); }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RepeatingStructuresComponent, deps: [{ token: i1.ProgressSpinnerService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RepeatingStructuresComponent, isStandalone: true, selector: "app-repeating-structures", inputs: { pConn$: "pConn$" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div>\n <mat-form-field class=\"psdk-search\">\n <mat-label\n ><mat-icon class=\"psdk-icon-search\" style=\"transform: scale(1.2); width: 2rem; vertical-align: sub\" svgIcon=\"magnify\" mastListIcon></mat-icon>\n Search</mat-label\n >\n <input matInput (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <table mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ dCol.label }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.name] }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\" (click)=\"rowClick(row)\"></tr>\n </table>\n\n <mat-paginator [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n</div>\n", styles: ["table{width:100%}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-search{padding-left:.625rem}.psdk-icon-search{vertical-align:sub;padding:0rem .125rem;min-width:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: 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: "ngmodule", type: MatTableModule }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i8.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i8.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i9.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }] }); }
126
125
  }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RepeatingStructuresComponent, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RepeatingStructuresComponent, decorators: [{
128
127
  type: Component,
129
128
  args: [{ selector: 'app-repeating-structures', standalone: true, imports: [CommonModule, MatFormFieldModule, MatIconModule, MatInputModule, MatTableModule, MatSortModule, MatPaginatorModule], template: "<div>\n <mat-form-field class=\"psdk-search\">\n <mat-label\n ><mat-icon class=\"psdk-icon-search\" style=\"transform: scale(1.2); width: 2rem; vertical-align: sub\" svgIcon=\"magnify\" mastListIcon></mat-icon>\n Search</mat-label\n >\n <input matInput (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <table mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ dCol.label }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.name] }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\" (click)=\"rowClick(row)\"></tr>\n </table>\n\n <mat-paginator [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n</div>\n", styles: ["table{width:100%}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-search{padding-left:.625rem}.psdk-icon-search{vertical-align:sub;padding:0rem .125rem;min-width:unset}\n"] }]
130
- }], ctorParameters: function () { return [{ type: i1.ProgressSpinnerService }, { type: i2.Utils }]; }, propDecorators: { paginator: [{
129
+ }], ctorParameters: () => [{ type: i1.ProgressSpinnerService }, { type: i2.Utils }], propDecorators: { paginator: [{
131
130
  type: ViewChild,
132
131
  args: [MatPaginator]
133
132
  }], sort: [{
@@ -136,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
136
135
  }], pConn$: [{
137
136
  type: Input
138
137
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0aW5nLXN0cnVjdHVyZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL3JlcGVhdGluZy1zdHJ1Y3R1cmVzL3JlcGVhdGluZy1zdHJ1Y3R1cmVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9yZXBlYXRpbmctc3RydWN0dXJlcy9yZXBlYXRpbmctc3RydWN0dXJlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFnQjdFLE1BQU0sT0FBTyw0QkFBNEI7SUFVdkMsWUFDVSxTQUFpQyxFQUNqQyxLQUFZO1FBRFosY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsVUFBSyxHQUFMLEtBQUssQ0FBTztR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NUIsNEJBQTRCLDZKQUM1QixZQUFZLHVFQUNaLE9BQU8sZ0RDekJwQixxOEJBcUJBLG1PREFZLFlBQVksMkpBQUUsa0JBQWtCLDBTQUFFLGFBQWEsbUxBQUUsY0FBYywwV0FBRSxjQUFjLGdoQ0FBRSxhQUFhLGlkQUFFLGtCQUFrQjs7NEZBRWpILDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDRSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztpSUFHcEcsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUNILElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTztnQkFDVCxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXNzYWdlcy9wcm9ncmVzcy1zcGlubmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5cbmludGVyZmFjZSBSZXBlYXRpbmdTdHJ1Y3R1cmVzUHJvcHMge1xuICByZWZlcmVuY2VMaXN0PzogYW55W107XG4gIHJvd0NsaWNrQWN0aW9uPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmVwZWF0aW5nLXN0cnVjdHVyZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVwZWF0aW5nLXN0cnVjdHVyZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXBlYXRpbmctc3RydWN0dXJlcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRUYWJsZU1vZHVsZSwgTWF0U29ydE1vZHVsZSwgTWF0UGFnaW5hdG9yTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBSZXBlYXRpbmdTdHJ1Y3R1cmVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIGNvbmZpZ1Byb3BzJDogUmVwZWF0aW5nU3RydWN0dXJlc1Byb3BzO1xuICByZXBlYXRMaXN0JDogTWF0VGFibGVEYXRhU291cmNlPGFueT47XG4gIGZpZWxkcyQ6IGFueVtdO1xuICBkaXNwbGF5ZWRDb2x1bW5zJCA9IEFycmF5PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBzU2VydmljZTogUHJvZ3Jlc3NTcGlubmVyU2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50Q29uZmlnID0gKHRoaXMucENvbm4kLmdldFJhd01ldGFkYXRhKCkgYXMgYW55KS5jb25maWcgfHwgeyBmaWVsZHM6IFtdIH07XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5pbml0aWFsaXplQ29sdW1ucyhjb21wb25lbnRDb25maWcuZmllbGRzKTtcblxuICAgIGNvbnN0IHJlZkxpc3QgPSB0aGlzLmNvbmZpZ1Byb3BzJC5yZWZlcmVuY2VMaXN0O1xuICAgIC8vIEB0cy1pZ25vcmUgLSBzZWNvbmQgcGFyYW1ldGVyIHBhZ2VSZWZlcmVuY2UgZm9yIGdldFZhbHVlIG1ldGhvZCBzaG91bGQgYmUgb3B0aW9uYWxcbiAgICBjb25zdCB0YWJsZURhdGFSZXN1bHRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnBDb25uJC5nZXRWYWx1ZShyZWZMaXN0KSkpO1xuXG4gICAgLy8gdXBkYXRlIGVsZW1lbnRzIGxpa2UgZGF0ZSBmb3JtYXRcbiAgICBjb25zdCB1cGRhdGVkUmVmTGlzdCA9IHRoaXMudXBkYXRlRGF0YSh0YWJsZURhdGFSZXN1bHRzLCB0aGlzLmZpZWxkcyQpO1xuXG4gICAgdGhpcy5yZXBlYXRMaXN0JCA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodXBkYXRlZFJlZkxpc3QpO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyQgPSB0aGlzLmdldERpc3BsYXlDb2x1bW5zKHRoaXMuZmllbGRzJCk7XG4gICAgdGhpcy5yZXBlYXRMaXN0JC5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBwYWdpbmF0b3IgaGFzIHRvIGV4aXN0IGZvciB0aGlzIHRvIHdvcmssXG4gICAgLy8gc28gY2FsbGVkIGFmdGVyIGluaXQgKHBhZ2luYXRvciBkcmF3bilcbiAgICB0aGlzLnJlcGVhdExpc3QkLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICAgIHRoaXMucmVwZWF0TGlzdCQuc29ydCA9IHRoaXMuc29ydDtcbiAgfVxuXG4gIGFwcGx5U2VhcmNoKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLnJlcGVhdExpc3QkLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKHRoaXMucmVwZWF0TGlzdCQucGFnaW5hdG9yKSB7XG4gICAgICB0aGlzLnJlcGVhdExpc3QkLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcbiAgICB9XG4gIH1cblxuICByb3dDbGljayhyb3cpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1zbWFsbC1zd2l0Y2hcbiAgICBzd2l0Y2ggKHRoaXMuY29uZmlnUHJvcHMkLnJvd0NsaWNrQWN0aW9uKSB7XG4gICAgICBjYXNlICdvcGVuQXNzaWdubWVudCc6XG4gICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKHRydWUpO1xuICAgICAgICB0aGlzLm9wZW5Bc3NpZ25tZW50KHJvdyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRGF0YShsaXN0RGF0YTogYW55W10sIGZpZWxkRGF0YTogYW55W10pOiBhbnlbXSB7XG4gICAgY29uc3QgcmV0dXJuTGlzdDogYW55W10gPSBuZXcgQXJyYXk8YW55PigpO1xuICAgIGxpc3REYXRhLmZvckVhY2gocm93ID0+IHtcbiAgICAgIC8vIGNvcHlcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxpc3REYXRhW3Jvd10pKTtcblxuICAgICAgZm9yIChsZXQgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBmaWVsZERhdGEubGVuZ3RoOyBmaWVsZEluZGV4KyspIHtcbiAgICAgICAgaWYgKGZpZWxkRGF0YVtmaWVsZEluZGV4XS50eXBlID09ICdkYXRlJykge1xuICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGZpZWxkRGF0YVtmaWVsZEluZGV4XS5uYW1lO1xuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSByb3dEYXRhW2ZpZWxkTmFtZV07XG5cbiAgICAgICAgICAvLyBmb3JtYXQgZGF0ZVxuICAgICAgICAgIC8vIGZvcm1hdHRlZERhdGUgPSBmb3JtYXR0ZWREYXRlLnJlcGxhY2UoXCJHTVRcIiwgXCIrMDAwMFwiKTtcbiAgICAgICAgICB0aGlzLnV0aWxzLmdlbmVyYXRlRGF0ZVRpbWUoZm9ybWF0dGVkRGF0ZSwgJ01NTU0gRCwgWVlZWSBoOm1tOnNzIEEnKTtcblxuICAgICAgICAgIC8vIHVwZGF0ZVxuICAgICAgICAgIHJvd0RhdGFbZmllbGROYW1lXSA9IGZvcm1hdHRlZERhdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybkxpc3QucHVzaChyb3dEYXRhKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmV0dXJuTGlzdDtcbiAgfVxuXG4gIG9wZW5Bc3NpZ25tZW50KHJvdykge1xuICAgIGNvbnN0IHsgcHhSZWZPYmplY3RDbGFzcywgcHpJbnNLZXkgfSA9IHJvdztcbiAgICBjb25zdCBzVGFyZ2V0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTmFtZSgpO1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHsgY29udGFpbmVyTmFtZTogc1RhcmdldCB9O1xuICAgIHRoaXMucENvbm4kXG4gICAgICAuZ2V0QWN0aW9uc0FwaSgpXG4gICAgICAub3BlbkFzc2lnbm1lbnQocHpJbnNLZXksIHB4UmVmT2JqZWN0Q2xhc3MsIG9wdGlvbnMpXG4gICAgICAudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICBpbml0aWFsaXplRGF0YShkYXRhKSB7XG4gICAgZGF0YS5mb3JFYWNoKChpdGVtLCBpZHgpID0+IHtcbiAgICAgIGl0ZW0uX19vcmlnaW5hbF9pbmRleCA9IGlkeDtcbiAgICAgIGl0ZW0uX19sZXZlbCA9IDE7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGdldFR5cGUoZmllbGQpIHtcbiAgICBjb25zdCB7IGNvbmZpZyA9IHt9LCB0eXBlIH0gPSBmaWVsZDtcbiAgICBjb25zdCB7IGZvcm1hdFR5cGUgfSA9IGNvbmZpZztcbiAgICBpZiAoZm9ybWF0VHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtYXRUeXBlID09PSAnZGF0ZScpIHtcbiAgICAgIC8vIGN1cnJlbnRseSBjb3Ntb3MgaGFzIG9ubHkgc3VwcG9ydCBmb3IgZGF0ZSAuLi4gaXQgYWxzbyBuZWVkIHRvIHN1cHBvcnQgZGF0ZVRpbWVcbiAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgfVxuICAgIHJldHVybiB0eXBlLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBpbml0aWFsaXplQ29sdW1ucyhmaWVsZHMgPSBbXSkge1xuICAgIHJldHVybiBmaWVsZHMubWFwKChmaWVsZDogYW55LCBvcmlnaW5hbENvbEluZGV4KSA9PiAoe1xuICAgICAgLi4uZmllbGQsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGUoZmllbGQpLFxuICAgICAgbmFtZTogZmllbGQuY29uZmlnLnZhbHVlLnN1YnN0cmluZyg0KSxcbiAgICAgIGxhYmVsOiBmaWVsZC5jb25maWcubGFiZWwuc3Vic3RyaW5nKDMpLFxuICAgICAgaWQ6IG9yaWdpbmFsQ29sSW5kZXgsXG4gICAgICBncm91cGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICBncm91cGVkOiBmYWxzZSxcbiAgICAgIG1pbldpZHRoOiA1MCxcbiAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5nZXRUeXBlKGZpZWxkKSA9PT0gJ3RleHQnID8gbnVsbCA6IGZpZWxkLnR5cGUsXG4gICAgICBmaWx0ZXI6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBnZXREaXNwbGF5Q29sdW1ucyhmaWVsZHM6IGFueVtdID0gW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+IGZpZWxkLm5hbWUpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLXNlYXJjaFwiPlxuICAgIDxtYXQtbGFiZWxcbiAgICAgID48bWF0LWljb24gY2xhc3M9XCJwc2RrLWljb24tc2VhcmNoXCIgc3R5bGU9XCJ0cmFuc2Zvcm06IHNjYWxlKDEuMik7IHdpZHRoOiAycmVtOyB2ZXJ0aWNhbC1hbGlnbjogc3ViXCIgc3ZnSWNvbj1cIm1hZ25pZnlcIiBtYXN0TGlzdEljb24+PC9tYXQtaWNvbj5cbiAgICAgIFNlYXJjaDwvbWF0LWxhYmVsXG4gICAgPlxuICAgIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwiYXBwbHlTZWFyY2goJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJlcGVhdExpc3QkXCIgbWF0U29ydD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkQ29sIG9mIGZpZWxkcyRcIiBbbWF0Q29sdW1uRGVmXT1cImRDb2wubmFtZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3sgZENvbC5sYWJlbCB9fTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnRbZENvbC5uYW1lXSB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnMkXCI+PC90cj5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucyRcIiAoY2xpY2spPVwicm93Q2xpY2socm93KVwiPjwvdHI+XG4gIDwvdGFibGU+XG5cbiAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJbMTAsIDIwLCA1MCwgMTAwLCA1MDBdXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+PC9tYXQtcGFnaW5hdG9yPlxuPC9kaXY+XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0aW5nLXN0cnVjdHVyZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL3JlcGVhdGluZy1zdHJ1Y3R1cmVzL3JlcGVhdGluZy1zdHJ1Y3R1cmVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9yZXBlYXRpbmctc3RydWN0dXJlcy9yZXBlYXRpbmctc3RydWN0dXJlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFnQjdFLE1BQU0sT0FBTyw0QkFBNEI7SUFVdkMsWUFDVSxTQUFpQyxFQUNqQyxLQUFZO1FBRFosY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsVUFBSyxHQUFMLEtBQUssQ0FBTztR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QUFDLENBQUM7SUFDaEQsQ0FBQzsrR0FqSVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsNkpBQzVCLFlBQVksdUVBQ1osT0FBTyxnREN6QnBCLHE4QkFxQkEsbU9EQVksWUFBWSwySkFBRSxrQkFBa0IsMFNBQUUsYUFBYSxtTEFBRSxjQUFjLDBXQUFFLGNBQWMsc2dDQUFFLGFBQWEsaWRBQUUsa0JBQWtCOzs0RkFFakgsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDOytHQUdwRyxTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0gsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPO2dCQUNULE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21lc3NhZ2VzL3Byb2dyZXNzLXNwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcblxuaW50ZXJmYWNlIFJlcGVhdGluZ1N0cnVjdHVyZXNQcm9wcyB7XG4gIHJlZmVyZW5jZUxpc3Q/OiBhbnlbXTtcbiAgcm93Q2xpY2tBY3Rpb24/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZXBlYXRpbmctc3RydWN0dXJlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBlYXRpbmctc3RydWN0dXJlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlcGVhdGluZy1zdHJ1Y3R1cmVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBNYXRTb3J0TW9kdWxlLCBNYXRQYWdpbmF0b3JNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFJlcGVhdGluZ1N0cnVjdHVyZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG5cbiAgY29uZmlnUHJvcHMkOiBSZXBlYXRpbmdTdHJ1Y3R1cmVzUHJvcHM7XG4gIHJlcGVhdExpc3QkOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55PjtcbiAgZmllbGRzJDogYW55W107XG4gIGRpc3BsYXllZENvbHVtbnMkID0gQXJyYXk8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHNTZXJ2aWNlOiBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXRpbHM6IFV0aWxzXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRDb25maWcgPSAodGhpcy5wQ29ubiQuZ2V0UmF3TWV0YWRhdGEoKSBhcyBhbnkpLmNvbmZpZyB8fCB7IGZpZWxkczogW10gfTtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKTtcbiAgICB0aGlzLmZpZWxkcyQgPSB0aGlzLmluaXRpYWxpemVDb2x1bW5zKGNvbXBvbmVudENvbmZpZy5maWVsZHMpO1xuXG4gICAgY29uc3QgcmVmTGlzdDogYW55ID0gdGhpcy5jb25maWdQcm9wcyQucmVmZXJlbmNlTGlzdDtcbiAgICBjb25zdCB0YWJsZURhdGFSZXN1bHRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnBDb25uJC5nZXRWYWx1ZShyZWZMaXN0KSkpO1xuXG4gICAgLy8gdXBkYXRlIGVsZW1lbnRzIGxpa2UgZGF0ZSBmb3JtYXRcbiAgICBjb25zdCB1cGRhdGVkUmVmTGlzdCA9IHRoaXMudXBkYXRlRGF0YSh0YWJsZURhdGFSZXN1bHRzLCB0aGlzLmZpZWxkcyQpO1xuXG4gICAgdGhpcy5yZXBlYXRMaXN0JCA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodXBkYXRlZFJlZkxpc3QpO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyQgPSB0aGlzLmdldERpc3BsYXlDb2x1bW5zKHRoaXMuZmllbGRzJCk7XG4gICAgdGhpcy5yZXBlYXRMaXN0JC5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBwYWdpbmF0b3IgaGFzIHRvIGV4aXN0IGZvciB0aGlzIHRvIHdvcmssXG4gICAgLy8gc28gY2FsbGVkIGFmdGVyIGluaXQgKHBhZ2luYXRvciBkcmF3bilcbiAgICB0aGlzLnJlcGVhdExpc3QkLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICAgIHRoaXMucmVwZWF0TGlzdCQuc29ydCA9IHRoaXMuc29ydDtcbiAgfVxuXG4gIGFwcGx5U2VhcmNoKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLnJlcGVhdExpc3QkLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKHRoaXMucmVwZWF0TGlzdCQucGFnaW5hdG9yKSB7XG4gICAgICB0aGlzLnJlcGVhdExpc3QkLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcbiAgICB9XG4gIH1cblxuICByb3dDbGljayhyb3cpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1zbWFsbC1zd2l0Y2hcbiAgICBzd2l0Y2ggKHRoaXMuY29uZmlnUHJvcHMkLnJvd0NsaWNrQWN0aW9uKSB7XG4gICAgICBjYXNlICdvcGVuQXNzaWdubWVudCc6XG4gICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKHRydWUpO1xuICAgICAgICB0aGlzLm9wZW5Bc3NpZ25tZW50KHJvdyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRGF0YShsaXN0RGF0YTogYW55W10sIGZpZWxkRGF0YTogYW55W10pOiBhbnlbXSB7XG4gICAgY29uc3QgcmV0dXJuTGlzdDogYW55W10gPSBuZXcgQXJyYXk8YW55PigpO1xuICAgIGxpc3REYXRhLmZvckVhY2gocm93ID0+IHtcbiAgICAgIC8vIGNvcHlcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxpc3REYXRhW3Jvd10pKTtcblxuICAgICAgZm9yIChsZXQgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBmaWVsZERhdGEubGVuZ3RoOyBmaWVsZEluZGV4KyspIHtcbiAgICAgICAgaWYgKGZpZWxkRGF0YVtmaWVsZEluZGV4XS50eXBlID09ICdkYXRlJykge1xuICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGZpZWxkRGF0YVtmaWVsZEluZGV4XS5uYW1lO1xuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSByb3dEYXRhW2ZpZWxkTmFtZV07XG5cbiAgICAgICAgICAvLyBmb3JtYXQgZGF0ZVxuICAgICAgICAgIC8vIGZvcm1hdHRlZERhdGUgPSBmb3JtYXR0ZWREYXRlLnJlcGxhY2UoXCJHTVRcIiwgXCIrMDAwMFwiKTtcbiAgICAgICAgICB0aGlzLnV0aWxzLmdlbmVyYXRlRGF0ZVRpbWUoZm9ybWF0dGVkRGF0ZSwgJ01NTU0gRCwgWVlZWSBoOm1tOnNzIEEnKTtcblxuICAgICAgICAgIC8vIHVwZGF0ZVxuICAgICAgICAgIHJvd0RhdGFbZmllbGROYW1lXSA9IGZvcm1hdHRlZERhdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybkxpc3QucHVzaChyb3dEYXRhKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmV0dXJuTGlzdDtcbiAgfVxuXG4gIG9wZW5Bc3NpZ25tZW50KHJvdykge1xuICAgIGNvbnN0IHsgcHhSZWZPYmplY3RDbGFzcywgcHpJbnNLZXkgfSA9IHJvdztcbiAgICBjb25zdCBzVGFyZ2V0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTmFtZSgpO1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHsgY29udGFpbmVyTmFtZTogc1RhcmdldCB9O1xuICAgIHRoaXMucENvbm4kXG4gICAgICAuZ2V0QWN0aW9uc0FwaSgpXG4gICAgICAub3BlbkFzc2lnbm1lbnQocHpJbnNLZXksIHB4UmVmT2JqZWN0Q2xhc3MsIG9wdGlvbnMpXG4gICAgICAudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICBpbml0aWFsaXplRGF0YShkYXRhKSB7XG4gICAgZGF0YS5mb3JFYWNoKChpdGVtLCBpZHgpID0+IHtcbiAgICAgIGl0ZW0uX19vcmlnaW5hbF9pbmRleCA9IGlkeDtcbiAgICAgIGl0ZW0uX19sZXZlbCA9IDE7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGdldFR5cGUoZmllbGQpIHtcbiAgICBjb25zdCB7IGNvbmZpZyA9IHt9LCB0eXBlIH0gPSBmaWVsZDtcbiAgICBjb25zdCB7IGZvcm1hdFR5cGUgfSA9IGNvbmZpZztcbiAgICBpZiAoZm9ybWF0VHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtYXRUeXBlID09PSAnZGF0ZScpIHtcbiAgICAgIC8vIGN1cnJlbnRseSBjb3Ntb3MgaGFzIG9ubHkgc3VwcG9ydCBmb3IgZGF0ZSAuLi4gaXQgYWxzbyBuZWVkIHRvIHN1cHBvcnQgZGF0ZVRpbWVcbiAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgfVxuICAgIHJldHVybiB0eXBlLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBpbml0aWFsaXplQ29sdW1ucyhmaWVsZHMgPSBbXSkge1xuICAgIHJldHVybiBmaWVsZHMubWFwKChmaWVsZDogYW55LCBvcmlnaW5hbENvbEluZGV4KSA9PiAoe1xuICAgICAgLi4uZmllbGQsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGUoZmllbGQpLFxuICAgICAgbmFtZTogZmllbGQuY29uZmlnLnZhbHVlLnN1YnN0cmluZyg0KSxcbiAgICAgIGxhYmVsOiBmaWVsZC5jb25maWcubGFiZWwuc3Vic3RyaW5nKDMpLFxuICAgICAgaWQ6IG9yaWdpbmFsQ29sSW5kZXgsXG4gICAgICBncm91cGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICBncm91cGVkOiBmYWxzZSxcbiAgICAgIG1pbldpZHRoOiA1MCxcbiAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5nZXRUeXBlKGZpZWxkKSA9PT0gJ3RleHQnID8gbnVsbCA6IGZpZWxkLnR5cGUsXG4gICAgICBmaWx0ZXI6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBnZXREaXNwbGF5Q29sdW1ucyhmaWVsZHM6IGFueVtdID0gW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+IGZpZWxkLm5hbWUpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLXNlYXJjaFwiPlxuICAgIDxtYXQtbGFiZWxcbiAgICAgID48bWF0LWljb24gY2xhc3M9XCJwc2RrLWljb24tc2VhcmNoXCIgc3R5bGU9XCJ0cmFuc2Zvcm06IHNjYWxlKDEuMik7IHdpZHRoOiAycmVtOyB2ZXJ0aWNhbC1hbGlnbjogc3ViXCIgc3ZnSWNvbj1cIm1hZ25pZnlcIiBtYXN0TGlzdEljb24+PC9tYXQtaWNvbj5cbiAgICAgIFNlYXJjaDwvbWF0LWxhYmVsXG4gICAgPlxuICAgIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwiYXBwbHlTZWFyY2goJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJlcGVhdExpc3QkXCIgbWF0U29ydD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkQ29sIG9mIGZpZWxkcyRcIiBbbWF0Q29sdW1uRGVmXT1cImRDb2wubmFtZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3sgZENvbC5sYWJlbCB9fTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnRbZENvbC5uYW1lXSB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnMkXCI+PC90cj5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucyRcIiAoY2xpY2spPVwicm93Q2xpY2socm93KVwiPjwvdHI+XG4gIDwvdGFibGU+XG5cbiAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJbMTAsIDIwLCA1MCwgMTAwLCA1MDBdXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+PC9tYXQtcGFnaW5hdG9yPlxuPC9kaXY+XG4iXX0=
@@ -45,10 +45,8 @@ export class SimpleTableComponent {
45
45
  const { multiRecordDisplayAs } = this.configProps$;
46
46
  let { contextClass } = this.configProps$;
47
47
  if (!contextClass) {
48
- // @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'
49
48
  let listName = this.pConn$.getComponentConfig().referenceList;
50
49
  listName = PCore.getAnnotationUtils().getPropertyName(listName);
51
- // @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'
52
50
  contextClass = this.pConn$.getFieldMetadata(listName)?.pageClass;
53
51
  }
54
52
  if (multiRecordDisplayAs === 'fieldGroup') {
@@ -92,15 +90,15 @@ export class SimpleTableComponent {
92
90
  onStateChange() {
93
91
  this.checkAndUpdate();
94
92
  }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SimpleTableComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SimpleTableComponent, isStandalone: true, selector: "app-simple-table", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<ng-container *ngIf=\"bVisible$\">\n <div *ngIf=\"fieldGroupProps || listViewProps; else table\">\n <div *ngIf=\"fieldGroupProps\">\n <component-mapper name=\"FieldGroupTemplate\" [props]=\"{ configProps$: fieldGroupProps, pConn$, formGroup$ }\"></component-mapper>\n </div>\n <div *ngIf=\"listViewProps\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$: refToPConnect, payload: listViewProps }\"></component-mapper>\n </div>\n </div>\n <ng-template #table>\n <component-mapper name=\"SimpleTableManual\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SimpleTableComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SimpleTableComponent, isStandalone: true, selector: "app-simple-table", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<ng-container *ngIf=\"bVisible$\">\n <div *ngIf=\"fieldGroupProps || listViewProps; else table\">\n <div *ngIf=\"fieldGroupProps\">\n <component-mapper name=\"FieldGroupTemplate\" [props]=\"{ configProps$: fieldGroupProps, pConn$, formGroup$ }\"></component-mapper>\n </div>\n <div *ngIf=\"listViewProps\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$: refToPConnect, payload: listViewProps }\"></component-mapper>\n </div>\n </div>\n <ng-template #table>\n <component-mapper name=\"SimpleTableManual\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { 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"] }] }); }
97
95
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SimpleTableComponent, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SimpleTableComponent, decorators: [{
99
97
  type: Component,
100
98
  args: [{ selector: 'app-simple-table', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<ng-container *ngIf=\"bVisible$\">\n <div *ngIf=\"fieldGroupProps || listViewProps; else table\">\n <div *ngIf=\"fieldGroupProps\">\n <component-mapper name=\"FieldGroupTemplate\" [props]=\"{ configProps$: fieldGroupProps, pConn$, formGroup$ }\"></component-mapper>\n </div>\n <div *ngIf=\"listViewProps\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$: refToPConnect, payload: listViewProps }\"></component-mapper>\n </div>\n </div>\n <ng-template #table>\n <component-mapper name=\"SimpleTableManual\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n </ng-template>\n</ng-container>\n" }]
101
- }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }, { type: i2.Utils }]; }, propDecorators: { pConn$: [{
99
+ }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.Utils }], propDecorators: { pConn$: [{
102
100
  type: Input
103
101
  }], formGroup$: [{
104
102
  type: Input
105
103
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQTJCbEYsTUFBTSxPQUFPLG9CQUFvQjtJQVkvQixZQUNVLGVBQXVDLEVBQ3ZDLEtBQVk7UUFEWixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQVZ0Qix3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRTlDLGNBQVMsR0FBRyxJQUFJLENBQUM7SUFTZCxDQUFDO0lBRUosUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hHLDhDQUE4QztRQUU5Qyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lB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QixvQkFBb0Isb0lDakNqQyw0bkJBYUEsNEZEa0JZLFlBQVksaU5BQW1CLHdCQUF3Qjs7NEZBRXRELG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FHaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2lJQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBidWlsZE1ldGFGb3JMaXN0VmlldywgZ2V0Q29udGV4dCB9IGZyb20gJy4uL3NpbXBsZS10YWJsZS1tYW51YWwvaGVscGVycyc7XG5cbmludGVyZmFjZSBTaW1wbGVUYWJsZVByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBtdWx0aVJlY29yZERpc3BsYXlBczogc3RyaW5nO1xuICBjb250ZXh0Q2xhc3M6IGFueTtcbiAgdmlzaWJpbGl0eTogYm9vbGVhbjtcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJvcGVydHlMYWJlbDogc3RyaW5nO1xuICBkaXNwbGF5TW9kZTogc3RyaW5nO1xuICBmaWVsZE1ldGFkYXRhOiBhbnk7XG4gIGhpZGVMYWJlbDogYm9vbGVhbjtcbiAgcGFyYW1ldGVyczogYW55O1xuICBpc0RhdGFPYmplY3Q6IGJvb2xlYW47XG4gIHR5cGU6IHN0cmluZztcbiAgcnVsZUNsYXNzOiBzdHJpbmc7XG4gIGF1dGhvckNvbnRleHQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2ltcGxlLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbXBsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpbXBsZS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIFNpbXBsZVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBiVmlzaWJsZSQgPSB0cnVlO1xuICBjb25maWdQcm9wcyQ6IFNpbXBsZVRhYmxlUHJvcHM7XG4gIGZpZWxkR3JvdXBQcm9wczogYW55O1xuICBsaXN0Vmlld1Byb3BzOiBhbnk7XG4gIHJlZlRvUENvbm5lY3Q6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgLy8gVGhlbiwgY29udGludWUgb24gd2l0aCBvdGhlciBpbml0aWFsaXphdGlvblxuXG4gICAgLy8gY2FsbCBjaGVja0FuZFVwZGF0ZSB3aGVuIGluaXRpYWxpemluZ1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVwZGF0ZVNlbGZcbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICAvLyBtb3ZlZCB0aGlzIGZyb20gbmdPbkluaXQoKSBhbmQgY2FsbCB0aGlzIGZyb20gdGhlcmUgaW5zdGVhZC4uLlxuICAgIHRoaXMuY29uZmlnUHJvcHMkID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkpIGFzIFNpbXBsZVRhYmxlUHJvcHM7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbXVsdGktYXNzaWduXG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMuYlZpc2libGUkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBtdWx0aVJlY29yZERpc3BsYXlBcyB9ID0gdGhpcy5jb25maWdQcm9wcyQ7XG4gICAgbGV0IHsgY29udGV4dENsYXNzIH0gPSB0aGlzLmNvbmZpZ1Byb3BzJDtcbiAgICBpZiAoIWNvbnRleHRDbGFzcykge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFByb3BlcnR5ICdnZXRDb21wb25lbnRDb25maWcnIGlzIHByaXZhdGUgYW5kIG9ubHkgYWNjZXNzaWJsZSB3aXRoaW4gY2xhc3MgJ0MxMW5FbnYnXG4gICAgICBsZXQgbGlzdE5hbWUgPSB0aGlzLnBDb25uJC5nZXRDb21wb25lbnRDb25maWcoKS5yZWZlcmVuY2VMaXN0O1xuICAgICAgbGlzdE5hbWUgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5nZXRQcm9wZXJ0eU5hbWUobGlzdE5hbWUpO1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFByb3BlcnR5ICdnZXRGaWVsZE1ldGFkYXRhJyBpcyBwcml2YXRlIGFuZCBvbmx5IGFjY2Vzc2libGUgd2l0aGluIGNsYXNzICdDMTFuRW52J1xuICAgICAgY29udGV4dENsYXNzID0gdGhpcy5wQ29ubiQuZ2V0RmllbGRNZXRhZGF0YShsaXN0TmFtZSk/LnBhZ2VDbGFzcztcbiAgICB9XG4gICAgaWYgKG11bHRpUmVjb3JkRGlzcGxheUFzID09PSAnZmllbGRHcm91cCcpIHtcbiAgICAgIHRoaXMuZmllbGRHcm91cFByb3BzID0geyAuLi50aGlzLmNvbmZpZ1Byb3BzJCwgY29udGV4dENsYXNzIH07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgbGFiZWw6IGxhYmVsUHJvcCxcbiAgICAgIHByb3BlcnR5TGFiZWwsXG4gICAgICBkaXNwbGF5TW9kZSxcbiAgICAgIGZpZWxkTWV0YWRhdGEsXG4gICAgICBoaWRlTGFiZWwsXG4gICAgICBwYXJhbWV0ZXJzLFxuICAgICAgaXNEYXRhT2JqZWN0LFxuICAgICAgdHlwZSxcbiAgICAgIHJ1bGVDbGFzcyxcbiAgICAgIGF1dGhvckNvbnRleHQsXG4gICAgICBuYW1lXG4gICAgfSA9IHRoaXMuY29uZmlnUHJvcHMkO1xuXG4gICAgY29uc3QgbGFiZWwgPSBsYWJlbFByb3AgfHwgcHJvcGVydHlMYWJlbDtcblxuICAgIGNvbnN0IHByb3BzVG9Vc2UgPSB7IGxhYmVsLCAuLi50aGlzLnBDb25uJC5nZXRJbmhlcml0ZWRQcm9wcygpIH07XG4gICAgY29uc3QgaXNEaXNwbGF5TW9kZUVuYWJsZWQgPSBkaXNwbGF5TW9kZSA9PT0gJ0RJU1BMQVlfT05MWSc7XG5cbiAgICBpZiAoZmllbGRNZXRhZGF0YSAmJiBmaWVsZE1ldGFkYXRhLnR5cGUgPT09ICdQYWdlIExpc3QnICYmIGZpZWxkTWV0YWRhdGEuZGF0YVJldHJpZXZhbFR5cGUgPT09ICdyZWZlcicpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY2hpbGRyZW46IFt7IGNoaWxkcmVuOiByYXdGaWVsZHMgfV0sXG4gICAgICAgIHBhcmFtZXRlcnM6IHJhd1BhcmFtc1xuICAgICAgfSA9ICh0aGlzLnBDb25uJC5nZXRSYXdNZXRhZGF0YSgpIGFzIGFueSkuY29uZmlnO1xuXG4gICAgICBpZiAoaXNEaXNwbGF5TW9kZUVuYWJsZWQgJiYgaGlkZUxhYmVsKSB7XG4gICAgICAgIHByb3BzVG9Vc2UubGFiZWwgPSAnJztcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWV0YUZvckxpc3RWaWV3ID0gYnVpbGRNZXRhRm9yTGlzdFZpZXcoXG4gICAgICAgIGZpZWxkTWV0YWRhdGEsXG4gICAgICAgIHJhd0ZpZWxkcyxcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcnVsZUNsYXNzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBwcm9wc1RvVXNlLmxhYmVsLFxuICAgICAgICBpc0RhdGFPYmplY3QsXG4gICAgICAgIHBhcmFtZXRlcnMgLy8gcmVzb2x2ZWQgcGFyYW1zXG4gICAgICApO1xuXG4gICAgICBjb25zdCBtZXRhRm9yUENvbm5lY3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1ldGFGb3JMaXN0VmlldykpO1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFBDb3JlLmdldE1ldGFkYXRhVXRpbHMoKS5nZXRQcm9wZXJ0eU1ldGFkYXRhIC0gQW4gYXJndW1lbnQgZm9yICdjdXJyZW50Q2xhc3NJRCcgd2FzIG5vdCBwcm92aWRlZC5cbiAgICAgIG1ldGFGb3JQQ29ubmVjdC5jb25maWcucGFyYW1ldGVycyA9IHJhd1BhcmFtcyA/PyBQQ29yZS5nZXRNZXRhZGF0YVV0aWxzKCkuZ2V0UHJvcGVydHlNZXRhZGF0YShuYW1lKT8uZGF0YXNvdXJjZT8ucGFyYW1ldGVycztcblxuICAgICAgY29uc3QgeyByZWZlcmVuY2VMaXN0U3RyOiByZWZlcmVuY2VMaXN0IH0gPSBnZXRDb250ZXh0KHRoaXMucENvbm4kKTtcbiAgICAgIGxldCByZXF1aXJlZENvbnRleHRGb3JRdWVyeUluRGlzcGxheU1vZGUgPSB7fTtcbiAgICAgIGlmIChpc0Rpc3BsYXlNb2RlRW5hYmxlZCkge1xuICAgICAgICByZXF1aXJlZENvbnRleHRGb3JRdWVyeUluRGlzcGxheU1vZGUgPSB7XG4gICAgICAgICAgcmVmZXJlbmNlTGlzdFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgY29udGV4dDogdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKSxcbiAgICAgICAgcGFnZVJlZmVyZW5jZTogdGhpcy5wQ29ubiQuZ2V0UGFnZVJlZmVyZW5jZSgpLFxuICAgICAgICAuLi5yZXF1aXJlZENvbnRleHRGb3JRdWVyeUluRGlzcGxheU1vZGVcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVmVG9QQ29ubmVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHsgbWV0YTogbWV0YUZvclBDb25uZWN0LCBvcHRpb25zIH0pLmdldFBDb25uZWN0KCk7XG5cbiAgICAgIHRoaXMubGlzdFZpZXdQcm9wcyA9IHtcbiAgICAgICAgLi4ubWV0YUZvckxpc3RWaWV3LmNvbmZpZyxcbiAgICAgICAgZGlzcGxheU1vZGUsXG4gICAgICAgIGZpZWxkTmFtZTogYXV0aG9yQ29udGV4dFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJiVmlzaWJsZSRcIj5cbiAgPGRpdiAqbmdJZj1cImZpZWxkR3JvdXBQcm9wcyB8fCBsaXN0Vmlld1Byb3BzOyBlbHNlIHRhYmxlXCI+XG4gICAgPGRpdiAqbmdJZj1cImZpZWxkR3JvdXBQcm9wc1wiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkZpZWxkR3JvdXBUZW1wbGF0ZVwiIFtwcm9wc109XCJ7IGNvbmZpZ1Byb3BzJDogZmllbGRHcm91cFByb3BzLCBwQ29ubiQsIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibGlzdFZpZXdQcm9wc1wiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkxpc3RWaWV3XCIgW3Byb3BzXT1cInsgcENvbm4kOiByZWZUb1BDb25uZWN0LCBwYXlsb2FkOiBsaXN0Vmlld1Byb3BzIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI3RhYmxlPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJTaW1wbGVUYWJsZU1hbnVhbFwiIFtwcm9wc109XCJ7IHBDb25uJCwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQTJCbEYsTUFBTSxPQUFPLG9CQUFvQjtJQVkvQixZQUNVLGVBQXVDLEVBQ3ZDLEtBQVk7UUFEWixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQVZ0Qix3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRTlDLGNBQVMsR0FBRyxJQUFJLENBQUM7SUFTZCxDQUFDO0lBRUosUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hHLDhDQUE4QztRQUU5Qyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lB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SUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBdElVLG9CQUFvQjttR0FBcEIsb0JBQW9CLG9JQ2pDakMsNG5CQWFBLDZFRGtCWSxZQUFZLDZLQUFtQix3QkFBd0I7OzRGQUV0RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzsrR0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgYnVpbGRNZXRhRm9yTGlzdFZpZXcsIGdldENvbnRleHQgfSBmcm9tICcuLi9zaW1wbGUtdGFibGUtbWFudWFsL2hlbHBlcnMnO1xuXG5pbnRlcmZhY2UgU2ltcGxlVGFibGVQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgbXVsdGlSZWNvcmREaXNwbGF5QXM6IHN0cmluZztcbiAgY29udGV4dENsYXNzOiBhbnk7XG4gIHZpc2liaWxpdHk6IGJvb2xlYW47XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHByb3BlcnR5TGFiZWw6IHN0cmluZztcbiAgZGlzcGxheU1vZGU6IHN0cmluZztcbiAgZmllbGRNZXRhZGF0YTogYW55O1xuICBoaWRlTGFiZWw6IGJvb2xlYW47XG4gIHBhcmFtZXRlcnM6IGFueTtcbiAgaXNEYXRhT2JqZWN0OiBib29sZWFuO1xuICB0eXBlOiBzdHJpbmc7XG4gIHJ1bGVDbGFzczogc3RyaW5nO1xuICBhdXRob3JDb250ZXh0OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXNpbXBsZS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaW1wbGUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaW1wbGUtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBTaW1wbGVUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgYlZpc2libGUkID0gdHJ1ZTtcbiAgY29uZmlnUHJvcHMkOiBTaW1wbGVUYWJsZVByb3BzO1xuICBmaWVsZEdyb3VwUHJvcHM6IGFueTtcbiAgbGlzdFZpZXdQcm9wczogYW55O1xuICByZWZUb1BDb25uZWN0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgIC8vIGNhbGwgY2hlY2tBbmRVcGRhdGUgd2hlbiBpbml0aWFsaXppbmdcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICAvLyB1cGRhdGVTZWxmXG4gIHVwZGF0ZVNlbGYoKTogdm9pZCB7XG4gICAgLy8gbW92ZWQgdGhpcyBmcm9tIG5nT25Jbml0KCkgYW5kIGNhbGwgdGhpcyBmcm9tIHRoZXJlIGluc3RlYWQuLi5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBTaW1wbGVUYWJsZVByb3BzO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkgIT0gbnVsbCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW11bHRpLWFzc2lnblxuICAgICAgdGhpcy5iVmlzaWJsZSQgPSB0aGlzLmJWaXNpYmxlJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbXVsdGlSZWNvcmREaXNwbGF5QXMgfSA9IHRoaXMuY29uZmlnUHJvcHMkO1xuICAgIGxldCB7IGNvbnRleHRDbGFzcyB9ID0gdGhpcy5jb25maWdQcm9wcyQ7XG4gICAgaWYgKCFjb250ZXh0Q2xhc3MpIHtcbiAgICAgIGxldCBsaXN0TmFtZSA9IHRoaXMucENvbm4kLmdldENvbXBvbmVudENvbmZpZygpLnJlZmVyZW5jZUxpc3Q7XG4gICAgICBsaXN0TmFtZSA9IFBDb3JlLmdldEFubm90YXRpb25VdGlscygpLmdldFByb3BlcnR5TmFtZShsaXN0TmFtZSk7XG4gICAgICBjb250ZXh0Q2xhc3MgPSB0aGlzLnBDb25uJC5nZXRGaWVsZE1ldGFkYXRhKGxpc3ROYW1lKT8ucGFnZUNsYXNzO1xuICAgIH1cbiAgICBpZiAobXVsdGlSZWNvcmREaXNwbGF5QXMgPT09ICdmaWVsZEdyb3VwJykge1xuICAgICAgdGhpcy5maWVsZEdyb3VwUHJvcHMgPSB7IC4uLnRoaXMuY29uZmlnUHJvcHMkLCBjb250ZXh0Q2xhc3MgfTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBsYWJlbDogbGFiZWxQcm9wLFxuICAgICAgcHJvcGVydHlMYWJlbCxcbiAgICAgIGRpc3BsYXlNb2RlLFxuICAgICAgZmllbGRNZXRhZGF0YSxcbiAgICAgIGhpZGVMYWJlbCxcbiAgICAgIHBhcmFtZXRlcnMsXG4gICAgICBpc0RhdGFPYmplY3QsXG4gICAgICB0eXBlLFxuICAgICAgcnVsZUNsYXNzLFxuICAgICAgYXV0aG9yQ29udGV4dCxcbiAgICAgIG5hbWVcbiAgICB9ID0gdGhpcy5jb25maWdQcm9wcyQ7XG5cbiAgICBjb25zdCBsYWJlbCA9IGxhYmVsUHJvcCB8fCBwcm9wZXJ0eUxhYmVsO1xuXG4gICAgY29uc3QgcHJvcHNUb1VzZSA9IHsgbGFiZWwsIC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICBjb25zdCBpc0Rpc3BsYXlNb2RlRW5hYmxlZCA9IGRpc3BsYXlNb2RlID09PSAnRElTUExBWV9PTkxZJztcblxuICAgIGlmIChmaWVsZE1ldGFkYXRhICYmIGZpZWxkTWV0YWRhdGEudHlwZSA9PT0gJ1BhZ2UgTGlzdCcgJiYgZmllbGRNZXRhZGF0YS5kYXRhUmV0cmlldmFsVHlwZSA9PT0gJ3JlZmVyJykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBjaGlsZHJlbjogW3sgY2hpbGRyZW46IHJhd0ZpZWxkcyB9XSxcbiAgICAgICAgcGFyYW1ldGVyczogcmF3UGFyYW1zXG4gICAgICB9ID0gKHRoaXMucENvbm4kLmdldFJhd01ldGFkYXRhKCkgYXMgYW55KS5jb25maWc7XG5cbiAgICAgIGlmIChpc0Rpc3BsYXlNb2RlRW5hYmxlZCAmJiBoaWRlTGFiZWwpIHtcbiAgICAgICAgcHJvcHNUb1VzZS5sYWJlbCA9ICcnO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXRhRm9yTGlzdFZpZXcgPSBidWlsZE1ldGFGb3JMaXN0VmlldyhcbiAgICAgICAgZmllbGRNZXRhZGF0YSxcbiAgICAgICAgcmF3RmllbGRzLFxuICAgICAgICB0eXBlLFxuICAgICAgICBydWxlQ2xhc3MsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIHByb3BzVG9Vc2UubGFiZWwsXG4gICAgICAgIGlzRGF0YU9iamVjdCxcbiAgICAgICAgcGFyYW1ldGVycyAvLyByZXNvbHZlZCBwYXJhbXNcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IG1ldGFGb3JQQ29ubmVjdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobWV0YUZvckxpc3RWaWV3KSk7XG4gICAgICAvLyBAdHMtaWdub3JlIC0gUENvcmUuZ2V0TWV0YWRhdGFVdGlscygpLmdldFByb3BlcnR5TWV0YWRhdGEgLSBBbiBhcmd1bWVudCBmb3IgJ2N1cnJlbnRDbGFzc0lEJyB3YXMgbm90IHByb3ZpZGVkLlxuICAgICAgbWV0YUZvclBDb25uZWN0LmNvbmZpZy5wYXJhbWV0ZXJzID0gcmF3UGFyYW1zID8/IFBDb3JlLmdldE1ldGFkYXRhVXRpbHMoKS5nZXRQcm9wZXJ0eU1ldGFkYXRhKG5hbWUpPy5kYXRhc291cmNlPy5wYXJhbWV0ZXJzO1xuXG4gICAgICBjb25zdCB7IHJlZmVyZW5jZUxpc3RTdHI6IHJlZmVyZW5jZUxpc3QgfSA9IGdldENvbnRleHQodGhpcy5wQ29ubiQpO1xuICAgICAgbGV0IHJlcXVpcmVkQ29udGV4dEZvclF1ZXJ5SW5EaXNwbGF5TW9kZSA9IHt9O1xuICAgICAgaWYgKGlzRGlzcGxheU1vZGVFbmFibGVkKSB7XG4gICAgICAgIHJlcXVpcmVkQ29udGV4dEZvclF1ZXJ5SW5EaXNwbGF5TW9kZSA9IHtcbiAgICAgICAgICByZWZlcmVuY2VMaXN0XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICBjb250ZXh0OiB0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpLFxuICAgICAgICBwYWdlUmVmZXJlbmNlOiB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCksXG4gICAgICAgIC4uLnJlcXVpcmVkQ29udGV4dEZvclF1ZXJ5SW5EaXNwbGF5TW9kZVxuICAgICAgfTtcblxuICAgICAgdGhpcy5yZWZUb1BDb25uZWN0ID0gUENvcmUuY3JlYXRlUENvbm5lY3QoeyBtZXRhOiBtZXRhRm9yUENvbm5lY3QsIG9wdGlvbnMgfSkuZ2V0UENvbm5lY3QoKTtcblxuICAgICAgdGhpcy5saXN0Vmlld1Byb3BzID0ge1xuICAgICAgICAuLi5tZXRhRm9yTGlzdFZpZXcuY29uZmlnLFxuICAgICAgICBkaXNwbGF5TW9kZSxcbiAgICAgICAgZmllbGROYW1lOiBhdXRob3JDb250ZXh0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImJWaXNpYmxlJFwiPlxuICA8ZGl2ICpuZ0lmPVwiZmllbGRHcm91cFByb3BzIHx8IGxpc3RWaWV3UHJvcHM7IGVsc2UgdGFibGVcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZmllbGRHcm91cFByb3BzXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiRmllbGRHcm91cFRlbXBsYXRlXCIgW3Byb3BzXT1cInsgY29uZmlnUHJvcHMkOiBmaWVsZEdyb3VwUHJvcHMsIHBDb25uJCwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJsaXN0Vmlld1Byb3BzXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiTGlzdFZpZXdcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IHJlZlRvUENvbm5lY3QsIHBheWxvYWQ6IGxpc3RWaWV3UHJvcHMgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjdGFibGU+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlNpbXBsZVRhYmxlTWFudWFsXCIgW3Byb3BzXT1cInsgcENvbm4kLCBmb3JtR3JvdXAkIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -121,7 +121,7 @@ export const buildFieldsForTable = (configFields, fields, showDeleteButton) => {
121
121
  type: 'text',
122
122
  label: fields[index].config.label || fields[index].config.caption,
123
123
  fillAvailableSpace: !!field.config.fillAvailableSpace,
124
- id: index,
124
+ id: `${index}`,
125
125
  name: field.config.value.substr(4),
126
126
  cellRenderer: TABLE_CELL,
127
127
  sort: false,
@@ -267,4 +267,4 @@ export const createPConnect = (contextName, referenceList, pageReference) => {
267
267
  const { getPConnect } = PCore.createPConnect(config);
268
268
  return getPConnect();
269
269
  };
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUtbWFudWFsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUV4Qyw0RUFBNEU7QUFDNUUsMEJBQTBCO0FBQzFCLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLO0lBQ2pDLElBQUksS0FBSyxDQUFDO0lBQ1YsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ2xCLEtBQUssTUFBTTtZQUNULEtBQUssR0FBRyxHQUFHLENBQUM7WUFDWixNQUFNO1FBQ1IsS0FBSyxNQUFNO1lBQ1QsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLFVBQVU7WUFDYixLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDO1FBQ3BCLEtBQUssVUFBVTtZQUNiLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDWixNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxXQUFXO1lBQ2QsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLFVBQVU7WUFDYixnREFBZ0Q7WUFDaEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxN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fSBmcm9tICcuLi8uLi8uLi9faGVscGVycy9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgVEFCTEVfQ0VMTCA9ICdTZGtSZW5kZXJlcic7XG5leHBvcnQgY29uc3QgREVMRVRFX0lDT04gPSAnRGVsZXRlSWNvbic7XG5cbi8vIEJVRy02MTUyNTM6IFdvcmthcm91bmQgZm9yIGF1dG9zaXplIGluIHRhYmxlIHdpdGggbGF6eSBsb2FkaW5nIGNvbXBvbmVudHNcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBnZXRGaWVsZFdpZHRoKGZpZWxkLCBsYWJlbCkge1xuICBsZXQgd2lkdGg7XG4gIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgIGNhc2UgJ1RpbWUnOlxuICAgICAgd2lkdGggPSAxNTA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEYXRlJzpcbiAgICAgIHdpZHRoID0gMTYwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0ZVRpbWUnOlxuICAgICAgd2lkdGggPSAyMDU7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdBdXRvQ29tcGxldGUnOlxuICAgIGNhc2UgJ1RleHRBcmVhJzpcbiAgICAgIHdpZHRoID0gMTkwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnQ3VycmVuY3knOlxuICAgIGNhc2UgJ1RleHRJbnB1dCc6XG4gICAgICB3aWR0aCA9IDE4MjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ0NoZWNrYm94JzpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xuICAgICAgY29uc3QgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dCk7XG4gICAgICB0ZXh0LnN0eWxlLmZvbnRTaXplID0gJzEzcHgnO1xuICAgICAgdGV4dC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB0ZXh0LmlubmVySFRNTCA9IGxhYmVsO1xuICAgICAgd2lkdGggPSBNYXRoLmNlaWwodGV4dC5jbGllbnRXaWR0aCkgKyAzMDtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgd2lkdGggPSAxODA7XG4gIH1cbiAgcmV0dXJuIHdpZHRoO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q29udGV4dCA9IHRoZVBDb25uID0+IHtcbiAgY29uc3QgY29udGV4dE5hbWUgPSB0aGVQQ29ubi5nZXRDb250ZXh0TmFtZSgpO1xuICBjb25zdCBwYWdlUmVmZXJlbmNlID0gdGhlUENvbm4uZ2V0UGFnZVJlZmVyZW5jZSgpO1xuICAvLyA4LjcgY2hhbmdlID0gcmVmZXJlbmNlTGlzdCBtYXkgbm93IGJlIGluIHRvcC1sZXZlbCBvZiBzdGF0ZSBwcm9wcyxcbiAgLy8gIG5vdCBhbHdheXMgaW4gY29uZmlnIG9mIHN0YXRlIHByb3BzXG4gIGxldCB7IHJlZmVyZW5jZUxpc3QgfSA9IHRoZVBDb25uLmdldFN0YXRlUHJvcHMoKT8uY29uZmlnIHx8IHRoZVBDb25uLmdldFN0YXRlUHJvcHMoKTtcbiAgY29uc3QgcGFnZVJlZmVyZW5jZUZvclJvd3MgPSByZWZlcmVuY2VMaXN0LnN0YXJ0c1dpdGgoJy4nKSA/IGAke3BhZ2VSZWZlcmVuY2V9LiR7cmVmZXJlbmNlTGlzdC5zdWJzdHJpbmcoMSl9YCA6IHJlZmVyZW5jZUxpc3Q7XG5cbiAgLy8gcmVtb3ZpbmcgXCJjYXNlSW5mby5jb250ZW50XCIgcHJlZml4IHRvIGF2b2lkIHNldHRpbmcgaXQgYXMgYSB0YXJnZXQgd2hpbGUgcHJlcGFyaW5nIHBhZ2VJbnN0cnVjdGlvbnNcbiAgcmVmZXJlbmNlTGlzdCA9IHBhZ2VSZWZlcmVuY2VGb3JSb3dzLnJlcGxhY2UoUENvcmUuZ2V0Q29uc3RhbnRzKCkuQ0FTRV9JTkZPLkNBU0VfSU5GT19DT05URU5ULCAnJyk7XG5cbiAgcmV0dXJuIHtcbiAgICBjb250ZXh0TmFtZSxcbiAgICByZWZlcmVuY2VMaXN0U3RyOiByZWZlcmVuY2VMaXN0LFxuICAgIHBhZ2VSZWZlcmVuY2VGb3JSb3dzXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgcG9wdWxhdGVSb3dLZXkgPSByYXdEYXRhID0+IHtcbiAgcmV0dXJuIHJhd0RhdGEubWFwKChyb3csIGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIHsgLi4ucm93LCBpbmRleCB9O1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBcGlDb250ZXh0ID0gKHByb2Nlc3NlZERhdGEsIHBDb25uZWN0LCByZW9yZGVyQ0IpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBmZXRjaERhdGE6ICgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgZGF0YTogcHJvY2Vzc2VkRGF0YSxcbiAgICAgICAgICBmaWx0ZXJlZFJlY29yZENvdW50OiBwcm9jZXNzZWREYXRhLmxlbmd0aCxcbiAgICAgICAgICB0b3RhbFJlY29yZENvdW50OiBwcm9jZXNzZWREYXRhLmxlbmd0aFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZmV0Y2hQZXJzb25hbGl6YXRpb25zOiAoKSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9LFxuICAgIGFwcGx5Um93UmVvcmRlcjogKHNvdXJjZUtleSwgZGVzdGluYXRpb25LZXkpID0+IHtcbiAgICAgIC8vIGluZGV4ZXMgYXJlIGtleXMgZm9yIHNpbXBsZSB0YWJsZSBzbywgaXQgc2hvdWxkIHdvcmsuXG4gICAgICByZW9yZGVyQ0IoKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocENvbm5lY3QuZ2V0TGlzdEFjdGlvbnMoKS5yZW9yZGVyKHBhcnNlSW50KHNvdXJjZUtleSwgMTApLCBwYXJzZUludChkZXN0aW5hdGlvbktleSwgMTApKSk7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkTWV0YUZvckxpc3RWaWV3ID0gKGZpZWxkTWV0YWRhdGEsIGZpZWxkcywgdHlwZSwgcnVsZUNsYXNzLCBuYW1lLCBwcm9wZXJ0eUxhYmVsLCBpc0RhdGFPYmplY3QsIHBhcmFtZXRlcnMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIGNvbmZpZzoge1xuICAgICAgdHlwZSxcbiAgICAgIHJlZmVyZW5jZUxpc3Q6IGZpZWxkTWV0YWRhdGEuZGF0YXNvdXJjZS5uYW1lLFxuICAgICAgcGFyYW1ldGVyczogcGFyYW1ldGVycyA/PyBmaWVsZE1ldGFkYXRhLmRhdGFzb3VyY2UucGFyYW1ldGVycyxcbiAgICAgIHBlcnNvbmFsaXphdGlvbjogZmFsc2UsXG4gICAgICBpc0RhdGFPYmplY3QsXG4gICAgICBncm91cGluZzogdHJ1ZSxcbiAgICAgIGdsb2JhbFNlYXJjaDogdHJ1ZSxcbiAgICAgIHJlb3JkZXJGaWVsZHM6IHRydWUsXG4gICAgICB0b2dnbGVGaWVsZFZpc2liaWxpdHk6IHRydWUsXG4gICAgICB0aXRsZTogcHJvcGVydHlMYWJlbCxcbiAgICAgIHBlcnNvbmFsaXphdGlvbklkOiAnJyAvKiBUT0RPICovLFxuICAgICAgdGVtcGxhdGU6ICdMaXN0VmlldycsXG4gICAgICBwcmVzZXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAncHJlc2V0cycsXG4gICAgICAgICAgdGVtcGxhdGU6ICdUYWJsZScsXG4gICAgICAgICAgY29uZmlnOiB7fSxcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnQ29sdW1ucycsXG4gICAgICAgICAgICAgIHR5cGU6ICdSZWdpb24nLFxuICAgICAgICAgICAgICBjaGlsZHJlbjogZmllbGRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBsYWJlbDogcHJvcGVydHlMYWJlbCxcbiAgICAgICAgICBpZDogJ1BfJyAvKiBUT0RPICovXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBydWxlQ2xhc3NcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRGaWVsZHNGb3JUYWJsZSA9IChjb25maWdGaWVsZHMsIGZpZWxkcywgc2hvd0RlbGV0ZUJ1dHRvbikgPT4ge1xuICBjb25zdCBmaWVsZERlZnMgPSBjb25maWdGaWVsZHM/Lm1hcCgoZmllbGQsIGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxhYmVsOiBmaWVsZHNbaW5kZXhdLmNvbmZpZy5sYWJlbCB8fCBmaWVsZHNbaW5kZXhdLmNvbmZpZy5jYXB0aW9uLFxuICAgICAgZmlsbEF2YWlsYWJsZVNwYWNlOiAhIWZpZWxkLmNvbmZpZy5maWxsQXZhaWxhYmxlU3BhY2UsXG4gICAgICBpZDogaW5kZXgsXG4gICAgICBuYW1lOiBmaWVsZC5jb25maWcudmFsdWUuc3Vic3RyKDQpLFxuICAgICAgY2VsbFJlbmRlcmVyOiBUQUJMRV9DRUxMLFxuICAgICAgc29ydDogZmFsc2UsXG4gICAgICBub0NvbnRleHRNZW51OiB0cnVlLFxuICAgICAgc2hvd01lbnU6IGZhbHNlLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5maWVsZFxuICAgICAgfSxcbiAgICAgIC8vIEJVRy02MTUyNTM6IFdvcmthcm91bmQgZm9yIGF1dG9zaXplIGluIHRhYmxlIHdpdGggbGF6eSBsb2FkaW5nIGNvbXBvbmVudHNcbiAgICAgIHdpZHRoOiBnZXRGaWVsZFdpZHRoKGZpZWxkLCBmaWVsZHNbaW5kZXhdLmNvbmZpZy5sYWJlbClcbiAgICB9O1xuICB9KTtcblxuICAvLyBPTkxZIGFkZCBERUxFVEVfSUNPTiB0byBmaWVsZHMgd2hlbiB0aGUgdGFibGUgaXMgcmVxdWVzdGVkIGFzIEVESVRBQkxFXG4gIGlmIChzaG93RGVsZXRlQnV0dG9uKSB7XG4gICAgZmllbGREZWZzLnB1c2goe1xuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgbmFtZTogREVMRVRFX0lDT04sXG4gICAgICBpZDogZmllbGREZWZzLmxlbmd0aCxcbiAgICAgIGNlbGxSZW5kZXJlcjogREVMRVRFX0lDT04sXG4gICAgICBzb3J0OiBmYWxzZSxcbiAgICAgIG5vQ29udGV4dE1lbnU6IHRydWUsXG4gICAgICBzaG93TWVudTogZmFsc2UsXG4gICAgICAvLyBCVUctNjE1MjUzOiBXb3JrYXJvdW5kIGZvciBhdXRvc2l6ZSBpbiB0YWJsZSB3aXRoIGxhenkgbG9hZGluZyBjb21wb25lbnRzXG4gICAgICB3aWR0aDogNDZcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBmaWVsZERlZnM7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWV0YUZvclRhYmxlID0gKGZpZWxkcywgcmVuZGVyTW9kZSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGhlaWdodDoge1xuICAgICAgbWluSGVpZ2h0OiAnYXV0bycsXG4gICAgICBmaXRIZWlnaHRUb0VsZW1lbnQ6ICdmaXRIZWlnaHRUb0VsZW1lbnQnLFxuICAgICAgZGVsdGFBZGp1c3RtZW50OiAnZGVsdGFBZGp1c3RtZW50JyxcbiAgICAgIGF1dG9TaXplOiB0cnVlXG4gICAgfSxcbiAgICBmaWVsZERlZnM6IGZpZWxkcyxcbiAgICBpdGVtS2V5OiAnaW5kZXgnLFxuICAgIGdyb3VwaW5nOiBmYWxzZSxcbiAgICByZW9yZGVyRmllbGRzOiBmYWxzZSxcbiAgICByZW9yZGVySXRlbXM6IHJlbmRlck1vZGUgPT09ICdFZGl0YWJsZScsXG4gICAgZHJhZ0hhbmRsZTogcmVuZGVyTW9kZSA9PT0gJ0VkaXRhYmxlJyxcbiAgICBnbG9iYWxTZWFyY2g6IGZhbHNlLFxuICAgIHBlcnNvbmFsaXphdGlvbjogZmFsc2UsXG4gICAgdG9nZ2xlRmllbGRWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICB0b29sYmFyOiBmYWxzZSxcbiAgICBmb290ZXI6IGZhbHNlLFxuICAgIGZpbHRlckV4cHJlc3Npb246IG51bGwsXG4gICAgZWRpdGluZzogZmFsc2UsXG4gICAgdGltZXpvbmU6IFBDb3JlLmdldEVudmlyb25tZW50SW5mbygpLmdldFRpbWVab25lKClcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJEYXRhQnlEYXRlID0gKGl0ZW0sIGZpbHRlck9iaikgPT4ge1xuICBsZXQgYktlZXA7XG4gIGxldCB2YWx1ZSA9IGl0ZW1bZmlsdGVyT2JqLnJlZl0gIT0gbnVsbCA/PyBpdGVtW2ZpbHRlck9iai5yZWZdICE9ICcnID8gZ2V0U2Vjb25kcyhpdGVtW2ZpbHRlck9iai5yZWZdKSA6IG51bGw7XG4gIGxldCBmaWx0ZXJWYWx1ZSA9IGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlICE9IG51bGwgJiYgZmlsdGVyT2JqLmNvbnRhaW5zRmlsdGVyVmFsdWUgIT0gJycgPyBnZXRTZWNvbmRzKGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlKSA6IG51bGw7XG5cbiAgc3dpdGNoIChmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXIpIHtcbiAgICBjYXNlICdub3RlcXVhbCc6XG4gICAgICAvLyBiZWNhc3VlIGZpbHRlclZhbHVlIGlzIGluIG1pbnV0ZXMsIG5lZWQgdG8gaGF2ZSBhIHJhbmdlIG9mIGxlc3MgdGhhbiA2MCBzZWNvbnNcblxuICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgZmlsdGVyVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAvLyBnZXQgcmlkIG9mIG1pbGxpc2Vjb25zXG4gICAgICAgIHZhbHVlIC89IDEwMDA7XG4gICAgICAgIGZpbHRlclZhbHVlIC89IDEwMDA7XG5cbiAgICAgICAgY29uc3QgZGlmZiA9IHZhbHVlIC0gZmlsdGVyVmFsdWU7XG4gICAgICAgIGlmIChkaWZmID49IDAgJiYgZGlmZiA8IDYwKSB7XG4gICAgICAgICAgYktlZXAgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICBjYXNlICdhZnRlcic6XG4gICAgICBpZiAodmFsdWUgPCBmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYmVmb3JlJzpcbiAgICAgIGlmICh2YWx1ZSA+IGZpbHRlclZhbHVlKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdudWxsJzpcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdub3RudWxsJzpcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gYktlZXA7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRGF0YUJ5Q29tbW9uRmllbGRzID0gKGl0ZW0sIGZpbHRlck9iaikgPT4ge1xuICBsZXQgYktlZXA7XG4gIGNvbnN0IHZhbHVlID0gaXRlbVtmaWx0ZXJPYmoucmVmXS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgc3dpdGNoIChmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXIpIHtcbiAgICBjYXNlICdjb250YWlucyc6XG4gICAgICBpZiAodmFsdWUuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgPCAwKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlcXVhbHMnOlxuICAgICAgaWYgKHZhbHVlICE9IGZpbHRlclZhbHVlKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdzdGFydHN3aXRoJzpcbiAgICAgIGlmICh2YWx1ZS5pbmRleE9mKGZpbHRlclZhbHVlKSAhPSAwKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gYktlZXA7XG59O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBjYWxsQmFjayBmdW5jdGlvbiBmb3IgQWRkIGFjdGlvbi5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwQ29ubmVjdCAtIFBDb25uZWN0IG9iamVjdFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IC0gaW5kZXggb2YgdGhlIHBhZ2UgbGlzdCB0byBhZGRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFkZFJvd0NhbGxiYWNrID0gKHBDb25uZWN0LCBpbmRleCkgPT4ge1xuICByZXR1cm4gKCkgPT4gcENvbm5lY3QuZ2V0TGlzdEFjdGlvbnMoKS5pbnNlcnQoe30sIGluZGV4KTtcbn07XG5cbi8qKlxuICogVGhpcyBtZXRob2QgY3JlYXRlcyBhIFBDb25uZWN0IG9iamVjdCB3aXRoIHByb3BlciBvcHRpb25zIGZvciBBZGQgYW5kIERlbGV0ZSBhY3Rpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udGV4dE5hbWUgLSBjb250ZXh0TmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IHJlZmVyZW5jZUxpc3QgLSByZWZlcmVuY2VMaXN0XG4gKiBAcGFyYW0ge3N0cmluZ30gcGFnZVJlZmVyZW5jZSAtIHBhZ2VSZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVBDb25uZWN0ID0gKGNvbnRleHROYW1lLCByZWZlcmVuY2VMaXN0LCBwYWdlUmVmZXJlbmNlKSA9PiB7XG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgY29udGV4dDogY29udGV4dE5hbWUsXG4gICAgcGFnZVJlZmVyZW5jZSxcbiAgICByZWZlcmVuY2VMaXN0XG4gIH07XG5cbiAgLy8gY3JlYXRlIFBDb25uZWN0IG9iamVjdFxuICBjb25zdCBjb25maWcgPSB7IG1ldGE6IHt9LCBvcHRpb25zIH07XG4gIGNvbnN0IHsgZ2V0UENvbm5lY3QgfSA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG5cbiAgcmV0dXJuIGdldFBDb25uZWN0KCk7XG59O1xuIl19
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUtbWFudWFsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUV4Qyw0RUFBNEU7QUFDNUUsMEJBQTBCO0FBQzFCLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLO0lBQ2pDLElBQUksS0FBSyxDQUFDO0lBQ1YsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsS0FBSyxNQUFNO1lBQ1QsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLE1BQU07WUFDVCxLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDWixNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEIsS0FBSyxVQUFVO1lBQ2IsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFdBQVc7WUFDZCxLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLGdEQUFnRDtZQUNoRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxH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O0lBQ3JDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXJELE9BQU8sV0FBVyxFQUFFLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U2Vjb25kcyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9DRUxMID0gJ1Nka1JlbmRlcmVyJztcbmV4cG9ydCBjb25zdCBERUxFVEVfSUNPTiA9ICdEZWxldGVJY29uJztcblxuLy8gQlVHLTYxNTI1MzogV29ya2Fyb3VuZCBmb3IgYXV0b3NpemUgaW4gdGFibGUgd2l0aCBsYXp5IGxvYWRpbmcgY29tcG9uZW50c1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIGdldEZpZWxkV2lkdGgoZmllbGQsIGxhYmVsKSB7XG4gIGxldCB3aWR0aDtcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnVGltZSc6XG4gICAgICB3aWR0aCA9IDE1MDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgd2lkdGggPSAxNjA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEYXRlVGltZSc6XG4gICAgICB3aWR0aCA9IDIwNTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ0F1dG9Db21wbGV0ZSc6XG4gICAgY2FzZSAnVGV4dEFyZWEnOlxuICAgICAgd2lkdGggPSAxOTA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdDdXJyZW5jeSc6XG4gICAgY2FzZSAnVGV4dElucHV0JzpcbiAgICAgIHdpZHRoID0gMTgyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnQ2hlY2tib3gnOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICBjb25zdCB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0KTtcbiAgICAgIHRleHQuc3R5bGUuZm9udFNpemUgPSAnMTNweCc7XG4gICAgICB0ZXh0LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIHRleHQuaW5uZXJIVE1MID0gbGFiZWw7XG4gICAgICB3aWR0aCA9IE1hdGguY2VpbCh0ZXh0LmNsaWVudFdpZHRoKSArIDMwO1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB3aWR0aCA9IDE4MDtcbiAgfVxuICByZXR1cm4gd2lkdGg7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRDb250ZXh0ID0gdGhlUENvbm4gPT4ge1xuICBjb25zdCBjb250ZXh0TmFtZSA9IHRoZVBDb25uLmdldENvbnRleHROYW1lKCk7XG4gIGNvbnN0IHBhZ2VSZWZlcmVuY2UgPSB0aGVQQ29ubi5nZXRQYWdlUmVmZXJlbmNlKCk7XG4gIC8vIDguNyBjaGFuZ2UgPSByZWZlcmVuY2VMaXN0IG1heSBub3cgYmUgaW4gdG9wLWxldmVsIG9mIHN0YXRlIHByb3BzLFxuICAvLyAgbm90IGFsd2F5cyBpbiBjb25maWcgb2Ygc3RhdGUgcHJvcHNcbiAgbGV0IHsgcmVmZXJlbmNlTGlzdCB9ID0gdGhlUENvbm4uZ2V0U3RhdGVQcm9wcygpPy5jb25maWcgfHwgdGhlUENvbm4uZ2V0U3RhdGVQcm9wcygpO1xuICBjb25zdCBwYWdlUmVmZXJlbmNlRm9yUm93cyA9IHJlZmVyZW5jZUxpc3Quc3RhcnRzV2l0aCgnLicpID8gYCR7cGFnZVJlZmVyZW5jZX0uJHtyZWZlcmVuY2VMaXN0LnN1YnN0cmluZygxKX1gIDogcmVmZXJlbmNlTGlzdDtcblxuICAvLyByZW1vdmluZyBcImNhc2VJbmZvLmNvbnRlbnRcIiBwcmVmaXggdG8gYXZvaWQgc2V0dGluZyBpdCBhcyBhIHRhcmdldCB3aGlsZSBwcmVwYXJpbmcgcGFnZUluc3RydWN0aW9uc1xuICByZWZlcmVuY2VMaXN0ID0gcGFnZVJlZmVyZW5jZUZvclJvd3MucmVwbGFjZShQQ29yZS5nZXRDb25zdGFudHMoKS5DQVNFX0lORk8uQ0FTRV9JTkZPX0NPTlRFTlQsICcnKTtcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHROYW1lLFxuICAgIHJlZmVyZW5jZUxpc3RTdHI6IHJlZmVyZW5jZUxpc3QsXG4gICAgcGFnZVJlZmVyZW5jZUZvclJvd3NcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb3B1bGF0ZVJvd0tleSA9IHJhd0RhdGEgPT4ge1xuICByZXR1cm4gcmF3RGF0YS5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICByZXR1cm4geyAuLi5yb3csIGluZGV4IH07XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFwaUNvbnRleHQgPSAocHJvY2Vzc2VkRGF0YSwgcENvbm5lY3QsIHJlb3JkZXJDQikgPT4ge1xuICByZXR1cm4ge1xuICAgIGZldGNoRGF0YTogKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICBkYXRhOiBwcm9jZXNzZWREYXRhLFxuICAgICAgICAgIGZpbHRlcmVkUmVjb3JkQ291bnQ6IHByb2Nlc3NlZERhdGEubGVuZ3RoLFxuICAgICAgICAgIHRvdGFsUmVjb3JkQ291bnQ6IHByb2Nlc3NlZERhdGEubGVuZ3RoXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBmZXRjaFBlcnNvbmFsaXphdGlvbnM6ICgpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH0sXG4gICAgYXBwbHlSb3dSZW9yZGVyOiAoc291cmNlS2V5LCBkZXN0aW5hdGlvbktleSkgPT4ge1xuICAgICAgLy8gaW5kZXhlcyBhcmUga2V5cyBmb3Igc2ltcGxlIHRhYmxlIHNvLCBpdCBzaG91bGQgd29yay5cbiAgICAgIHJlb3JkZXJDQigpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwQ29ubmVjdC5nZXRMaXN0QWN0aW9ucygpLnJlb3JkZXIocGFyc2VJbnQoc291cmNlS2V5LCAxMCksIHBhcnNlSW50KGRlc3RpbmF0aW9uS2V5LCAxMCkpKTtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRNZXRhRm9yTGlzdFZpZXcgPSAoZmllbGRNZXRhZGF0YSwgZmllbGRzLCB0eXBlLCBydWxlQ2xhc3MsIG5hbWUsIHByb3BlcnR5TGFiZWwsIGlzRGF0YU9iamVjdCwgcGFyYW1ldGVycykgPT4ge1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgY29uZmlnOiB7XG4gICAgICB0eXBlLFxuICAgICAgcmVmZXJlbmNlTGlzdDogZmllbGRNZXRhZGF0YS5kYXRhc291cmNlLm5hbWUsXG4gICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzID8/IGZpZWxkTWV0YWRhdGEuZGF0YXNvdXJjZS5wYXJhbWV0ZXJzLFxuICAgICAgcGVyc29uYWxpemF0aW9uOiBmYWxzZSxcbiAgICAgIGlzRGF0YU9iamVjdCxcbiAgICAgIGdyb3VwaW5nOiB0cnVlLFxuICAgICAgZ2xvYmFsU2VhcmNoOiB0cnVlLFxuICAgICAgcmVvcmRlckZpZWxkczogdHJ1ZSxcbiAgICAgIHRvZ2dsZUZpZWxkVmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgIHRpdGxlOiBwcm9wZXJ0eUxhYmVsLFxuICAgICAgcGVyc29uYWxpemF0aW9uSWQ6ICcnIC8qIFRPRE8gKi8sXG4gICAgICB0ZW1wbGF0ZTogJ0xpc3RWaWV3JyxcbiAgICAgIHByZXNldHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdwcmVzZXRzJyxcbiAgICAgICAgICB0ZW1wbGF0ZTogJ1RhYmxlJyxcbiAgICAgICAgICBjb25maWc6IHt9LFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdDb2x1bW5zJyxcbiAgICAgICAgICAgICAgdHlwZTogJ1JlZ2lvbicsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBmaWVsZHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIGxhYmVsOiBwcm9wZXJ0eUxhYmVsLFxuICAgICAgICAgIGlkOiAnUF8nIC8qIFRPRE8gKi9cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHJ1bGVDbGFzc1xuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEZpZWxkc0ZvclRhYmxlID0gKGNvbmZpZ0ZpZWxkcywgZmllbGRzLCBzaG93RGVsZXRlQnV0dG9uKSA9PiB7XG4gIGNvbnN0IGZpZWxkRGVmcyA9IGNvbmZpZ0ZpZWxkcz8ubWFwKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGFiZWw6IGZpZWxkc1tpbmRleF0uY29uZmlnLmxhYmVsIHx8IGZpZWxkc1tpbmRleF0uY29uZmlnLmNhcHRpb24sXG4gICAgICBmaWxsQXZhaWxhYmxlU3BhY2U6ICEhZmllbGQuY29uZmlnLmZpbGxBdmFpbGFibGVTcGFjZSxcbiAgICAgIGlkOiBgJHtpbmRleH1gLFxuICAgICAgbmFtZTogZmllbGQuY29uZmlnLnZhbHVlLnN1YnN0cig0KSxcbiAgICAgIGNlbGxSZW5kZXJlcjogVEFCTEVfQ0VMTCxcbiAgICAgIHNvcnQ6IGZhbHNlLFxuICAgICAgbm9Db250ZXh0TWVudTogdHJ1ZSxcbiAgICAgIHNob3dNZW51OiBmYWxzZSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgLi4uZmllbGRcbiAgICAgIH0sXG4gICAgICAvLyBCVUctNjE1MjUzOiBXb3JrYXJvdW5kIGZvciBhdXRvc2l6ZSBpbiB0YWJsZSB3aXRoIGxhenkgbG9hZGluZyBjb21wb25lbnRzXG4gICAgICB3aWR0aDogZ2V0RmllbGRXaWR0aChmaWVsZCwgZmllbGRzW2luZGV4XS5jb25maWcubGFiZWwpXG4gICAgfTtcbiAgfSk7XG5cbiAgLy8gT05MWSBhZGQgREVMRVRFX0lDT04gdG8gZmllbGRzIHdoZW4gdGhlIHRhYmxlIGlzIHJlcXVlc3RlZCBhcyBFRElUQUJMRVxuICBpZiAoc2hvd0RlbGV0ZUJ1dHRvbikge1xuICAgIGZpZWxkRGVmcy5wdXNoKHtcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIG5hbWU6IERFTEVURV9JQ09OLFxuICAgICAgaWQ6IGZpZWxkRGVmcy5sZW5ndGgsXG4gICAgICBjZWxsUmVuZGVyZXI6IERFTEVURV9JQ09OLFxuICAgICAgc29ydDogZmFsc2UsXG4gICAgICBub0NvbnRleHRNZW51OiB0cnVlLFxuICAgICAgc2hvd01lbnU6IGZhbHNlLFxuICAgICAgLy8gQlVHLTYxNTI1MzogV29ya2Fyb3VuZCBmb3IgYXV0b3NpemUgaW4gdGFibGUgd2l0aCBsYXp5IGxvYWRpbmcgY29tcG9uZW50c1xuICAgICAgd2lkdGg6IDQ2XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZmllbGREZWZzO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1ldGFGb3JUYWJsZSA9IChmaWVsZHMsIHJlbmRlck1vZGUpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBoZWlnaHQ6IHtcbiAgICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgICAgZml0SGVpZ2h0VG9FbGVtZW50OiAnZml0SGVpZ2h0VG9FbGVtZW50JyxcbiAgICAgIGRlbHRhQWRqdXN0bWVudDogJ2RlbHRhQWRqdXN0bWVudCcsXG4gICAgICBhdXRvU2l6ZTogdHJ1ZVxuICAgIH0sXG4gICAgZmllbGREZWZzOiBmaWVsZHMsXG4gICAgaXRlbUtleTogJ2luZGV4JyxcbiAgICBncm91cGluZzogZmFsc2UsXG4gICAgcmVvcmRlckZpZWxkczogZmFsc2UsXG4gICAgcmVvcmRlckl0ZW1zOiByZW5kZXJNb2RlID09PSAnRWRpdGFibGUnLFxuICAgIGRyYWdIYW5kbGU6IHJlbmRlck1vZGUgPT09ICdFZGl0YWJsZScsXG4gICAgZ2xvYmFsU2VhcmNoOiBmYWxzZSxcbiAgICBwZXJzb25hbGl6YXRpb246IGZhbHNlLFxuICAgIHRvZ2dsZUZpZWxkVmlzaWJpbGl0eTogZmFsc2UsXG4gICAgdG9vbGJhcjogZmFsc2UsXG4gICAgZm9vdGVyOiBmYWxzZSxcbiAgICBmaWx0ZXJFeHByZXNzaW9uOiBudWxsLFxuICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgIHRpbWV6b25lOiBQQ29yZS5nZXRFbnZpcm9ubWVudEluZm8oKS5nZXRUaW1lWm9uZSgpXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRGF0YUJ5RGF0ZSA9IChpdGVtLCBmaWx0ZXJPYmopID0+IHtcbiAgbGV0IGJLZWVwO1xuICBsZXQgdmFsdWUgPSBpdGVtW2ZpbHRlck9iai5yZWZdICE9IG51bGwgPz8gaXRlbVtmaWx0ZXJPYmoucmVmXSAhPSAnJyA/IGdldFNlY29uZHMoaXRlbVtmaWx0ZXJPYmoucmVmXSkgOiBudWxsO1xuICBsZXQgZmlsdGVyVmFsdWUgPSBmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXJWYWx1ZSAhPSBudWxsICYmIGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlICE9ICcnID8gZ2V0U2Vjb25kcyhmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXJWYWx1ZSkgOiBudWxsO1xuXG4gIHN3aXRjaCAoZmlsdGVyT2JqLmNvbnRhaW5zRmlsdGVyKSB7XG4gICAgY2FzZSAnbm90ZXF1YWwnOlxuICAgICAgLy8gYmVjYXN1ZSBmaWx0ZXJWYWx1ZSBpcyBpbiBtaW51dGVzLCBuZWVkIHRvIGhhdmUgYSByYW5nZSBvZiBsZXNzIHRoYW4gNjAgc2Vjb25zXG5cbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIGZpbHRlclZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBtaWxsaXNlY29uc1xuICAgICAgICB2YWx1ZSAvPSAxMDAwO1xuICAgICAgICBmaWx0ZXJWYWx1ZSAvPSAxMDAwO1xuXG4gICAgICAgIGNvbnN0IGRpZmYgPSB2YWx1ZSAtIGZpbHRlclZhbHVlO1xuICAgICAgICBpZiAoZGlmZiA+PSAwICYmIGRpZmYgPCA2MCkge1xuICAgICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYWZ0ZXInOlxuICAgICAgaWYgKHZhbHVlIDwgZmlsdGVyVmFsdWUpIHtcbiAgICAgICAgYktlZXAgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JlZm9yZSc6XG4gICAgICBpZiAodmFsdWUgPiBmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbnVsbCc6XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90bnVsbCc6XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGJLZWVwO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlckRhdGFCeUNvbW1vbkZpZWxkcyA9IChpdGVtLCBmaWx0ZXJPYmopID0+IHtcbiAgbGV0IGJLZWVwO1xuICBjb25zdCB2YWx1ZSA9IGl0ZW1bZmlsdGVyT2JqLnJlZl0udG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgZmlsdGVyVmFsdWUgPSBmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXJWYWx1ZS50b0xvd2VyQ2FzZSgpO1xuXG4gIHN3aXRjaCAoZmlsdGVyT2JqLmNvbnRhaW5zRmlsdGVyKSB7XG4gICAgY2FzZSAnY29udGFpbnMnOlxuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoZmlsdGVyVmFsdWUpIDwgMCkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZXF1YWxzJzpcbiAgICAgIGlmICh2YWx1ZSAhPSBmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRzd2l0aCc6XG4gICAgICBpZiAodmFsdWUuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgIT0gMCkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGJLZWVwO1xufTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgY2FsbEJhY2sgZnVuY3Rpb24gZm9yIEFkZCBhY3Rpb24uXG4gKiBAcGFyYW0ge29iamVjdH0gcENvbm5lY3QgLSBQQ29ubmVjdCBvYmplY3RcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAtIGluZGV4IG9mIHRoZSBwYWdlIGxpc3QgdG8gYWRkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBZGRSb3dDYWxsYmFjayA9IChwQ29ubmVjdCwgaW5kZXgpID0+IHtcbiAgcmV0dXJuICgpID0+IHBDb25uZWN0LmdldExpc3RBY3Rpb25zKCkuaW5zZXJ0KHt9LCBpbmRleCk7XG59O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBQQ29ubmVjdCBvYmplY3Qgd2l0aCBwcm9wZXIgb3B0aW9ucyBmb3IgQWRkIGFuZCBEZWxldGUgYWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRleHROYW1lIC0gY29udGV4dE5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWZlcmVuY2VMaXN0IC0gcmVmZXJlbmNlTGlzdFxuICogQHBhcmFtIHtzdHJpbmd9IHBhZ2VSZWZlcmVuY2UgLSBwYWdlUmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVQQ29ubmVjdCA9IChjb250ZXh0TmFtZSwgcmVmZXJlbmNlTGlzdCwgcGFnZVJlZmVyZW5jZSkgPT4ge1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIGNvbnRleHQ6IGNvbnRleHROYW1lLFxuICAgIHBhZ2VSZWZlcmVuY2UsXG4gICAgcmVmZXJlbmNlTGlzdFxuICB9O1xuXG4gIC8vIGNyZWF0ZSBQQ29ubmVjdCBvYmplY3RcbiAgY29uc3QgY29uZmlnID0geyBtZXRhOiB7fSwgb3B0aW9ucyB9O1xuICBjb25zdCB7IGdldFBDb25uZWN0IH0gPSBQQ29yZS5jcmVhdGVQQ29ubmVjdChjb25maWcpO1xuXG4gIHJldHVybiBnZXRQQ29ubmVjdCgpO1xufTtcbiJdfQ==