@netgrif/components-core 6.3.0 → 6.4.0-beta.2

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 (207) hide show
  1. package/esm2020/assets/i18n/de.json +1 -0
  2. package/esm2020/assets/i18n/en.json +1 -0
  3. package/esm2020/assets/i18n/sk.json +1 -0
  4. package/esm2020/lib/data-fields/base-component/abstract-base-data-field.component.mjs +51 -0
  5. package/esm2020/lib/data-fields/boolean-field/abstract-boolean-field.component.mjs +7 -26
  6. package/esm2020/lib/data-fields/boolean-field/boolean-default-field/abstract-boolean-default-field.component.mjs +46 -0
  7. package/esm2020/lib/data-fields/boolean-field/models/boolean-field.mjs +9 -1
  8. package/esm2020/lib/data-fields/button-field/abstract-button-field.component.mjs +7 -39
  9. package/esm2020/lib/data-fields/button-field/button-default-field/abstract-button-default-field.component.mjs +58 -0
  10. package/esm2020/lib/data-fields/button-field/models/button-field.mjs +5 -1
  11. package/esm2020/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.mjs +67 -0
  12. package/esm2020/lib/data-fields/case-ref-field/model/case-ref-field.mjs +11 -0
  13. package/esm2020/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.mjs +4 -0
  14. package/esm2020/lib/data-fields/data-field-template/abstract-data-field-template.component.mjs +51 -6
  15. package/esm2020/lib/data-fields/date-field/abstract-date-field.component.mjs +10 -12
  16. package/esm2020/lib/data-fields/date-field/date-default-field/abstract-date-default-field.component.mjs +29 -0
  17. package/esm2020/lib/data-fields/date-field/models/date-field.mjs +5 -1
  18. package/esm2020/lib/data-fields/date-time-field/abstract-date-time-field.component.mjs +10 -12
  19. package/esm2020/lib/data-fields/date-time-field/date-time-default-field/abstract-date-time-default-field.component.mjs +29 -0
  20. package/esm2020/lib/data-fields/date-time-field/models/date-time-field.mjs +5 -1
  21. package/esm2020/lib/data-fields/enumeration-field/abstract-enumeration-field.component.mjs +4 -1
  22. package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.mjs +23 -20
  23. package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.mjs +20 -21
  24. package/esm2020/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.mjs +26 -19
  25. package/esm2020/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.mjs +16 -12
  26. package/esm2020/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.mjs +16 -12
  27. package/esm2020/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.mjs +26 -21
  28. package/esm2020/lib/data-fields/enumeration-field/models/enumeration-field.mjs +9 -1
  29. package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +11 -420
  30. package/esm2020/lib/data-fields/file-field/file-default-field/abstract-file-default-field.component.mjs +456 -0
  31. package/esm2020/lib/data-fields/file-field/models/file-field-constants.mjs +5 -0
  32. package/esm2020/lib/data-fields/file-field/models/file-field.mjs +6 -1
  33. package/esm2020/lib/data-fields/file-list-field/abstract-file-list-field.component.mjs +11 -278
  34. package/esm2020/lib/data-fields/file-list-field/file-list-default-field/abstract-file-list-default-field.component.mjs +304 -0
  35. package/esm2020/lib/data-fields/file-list-field/models/file-list-field.mjs +6 -1
  36. package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.mjs +4 -4
  37. package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.mjs +4 -4
  38. package/esm2020/lib/data-fields/filter-field/abstract-filter-field.component.mjs +8 -20
  39. package/esm2020/lib/data-fields/filter-field/filter-default-field/abstract-filter-default-field.component.mjs +38 -0
  40. package/esm2020/lib/data-fields/filter-field/models/filter-field.mjs +5 -1
  41. package/esm2020/lib/data-fields/i18n-field/abstract-i18n-errors.component.mjs +18 -16
  42. package/esm2020/lib/data-fields/i18n-field/abstract-i18n-field.component.mjs +4 -1
  43. package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.mjs +24 -20
  44. package/esm2020/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.mjs +35 -32
  45. package/esm2020/lib/data-fields/i18n-field/models/i18n-field.mjs +6 -2
  46. package/esm2020/lib/data-fields/models/abstract-data-field-component.mjs +4 -1
  47. package/esm2020/lib/data-fields/models/abstract-data-field.mjs +14 -2
  48. package/esm2020/lib/data-fields/models/component.mjs +21 -2
  49. package/esm2020/lib/data-fields/models/data-field-portal-data-injection-token.mjs +3 -0
  50. package/esm2020/lib/data-fields/models/update-strategy.mjs +7 -0
  51. package/esm2020/lib/data-fields/multichoice-field/abstract-multichoice-field.component.mjs +4 -1
  52. package/esm2020/lib/data-fields/multichoice-field/models/multichoice-field.mjs +9 -1
  53. package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.mjs +30 -30
  54. package/esm2020/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.mjs +16 -12
  55. package/esm2020/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.mjs +16 -12
  56. package/esm2020/lib/data-fields/number-field/abstract-number-errors.component.mjs +17 -15
  57. package/esm2020/lib/data-fields/number-field/abstract-number-field.component.mjs +4 -1
  58. package/esm2020/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.mjs +21 -15
  59. package/esm2020/lib/data-fields/number-field/models/number-field.mjs +5 -1
  60. package/esm2020/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.mjs +12 -6
  61. package/esm2020/lib/data-fields/public-api.mjs +17 -2
  62. package/esm2020/lib/data-fields/task-ref-field/abstract-task-ref-field.component.mjs +10 -116
  63. package/esm2020/lib/data-fields/task-ref-field/model/task-ref-field.mjs +5 -1
  64. package/esm2020/lib/data-fields/task-ref-field/task-ref-dashboard-field/abstract-task-ref-dashboard-field.component.mjs +130 -0
  65. package/esm2020/lib/data-fields/task-ref-field/task-ref-list-field/abstract-task-ref-list-field.component.mjs +54 -0
  66. package/esm2020/lib/data-fields/text-field/abstract-dashboard-text-field.component.mjs +14 -14
  67. package/esm2020/lib/data-fields/text-field/abstract-text-errors.component.mjs +23 -3
  68. package/esm2020/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.mjs +12 -6
  69. package/esm2020/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.mjs +12 -6
  70. package/esm2020/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.mjs +12 -6
  71. package/esm2020/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.mjs +12 -6
  72. package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.mjs +12 -6
  73. package/esm2020/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.mjs +16 -16
  74. package/esm2020/lib/data-fields/text-field/models/text-field.mjs +8 -4
  75. package/esm2020/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.mjs +14 -14
  76. package/esm2020/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.mjs +14 -14
  77. package/esm2020/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.mjs +14 -14
  78. package/esm2020/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.mjs +17 -17
  79. package/esm2020/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.mjs +12 -12
  80. package/esm2020/lib/data-fields/user-field/abstract-user-field.component.mjs +7 -39
  81. package/esm2020/lib/data-fields/user-field/models/user-field.mjs +5 -1
  82. package/esm2020/lib/data-fields/user-field/user-default-field/abstract-user-default-field.component.mjs +70 -0
  83. package/esm2020/lib/data-fields/user-list-field/abstract-user-list-field.component.mjs +7 -45
  84. package/esm2020/lib/data-fields/user-list-field/models/user-list-field.mjs +5 -1
  85. package/esm2020/lib/data-fields/user-list-field/user-list-default-field/abstract-user-list-default-field.component.mjs +60 -0
  86. package/esm2020/lib/dialog/injection-tokens.mjs +10 -0
  87. package/esm2020/lib/dialog/public-api.mjs +2 -1
  88. package/esm2020/lib/filter/models/task-search-request-body.mjs +1 -1
  89. package/esm2020/lib/filter/user-filters.service.mjs +22 -15
  90. package/esm2020/lib/impersonation/services/impersonation-user-select.service.mjs +24 -17
  91. package/esm2020/lib/panel/workflow-panel/abstract-workflow-panel.component.mjs +6 -2
  92. package/esm2020/lib/registry/component-registry.service.mjs +38 -0
  93. package/esm2020/lib/registry/public-api.mjs +2 -0
  94. package/esm2020/lib/side-menu/content-components/public-api.mjs +2 -1
  95. package/esm2020/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.mjs +24 -5
  96. package/esm2020/lib/task-content/model/field-type-resource.mjs +2 -1
  97. package/esm2020/lib/task-content/services/field-converter.service.mjs +4 -1
  98. package/esm2020/lib/task-content/task-content/abstract-task-content.component.mjs +20 -7
  99. package/esm2020/lib/view/case-view/service/case-view-service.mjs +20 -15
  100. package/esm2020/lib/view/workflow-view/abstract-workflow-view.component.mjs +12 -7
  101. package/esm2020/public-api.mjs +2 -1
  102. package/fesm2015/netgrif-components-core.mjs +1771 -961
  103. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  104. package/fesm2020/netgrif-components-core.mjs +1675 -957
  105. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  106. package/lib/data-fields/base-component/abstract-base-data-field.component.d.ts +18 -0
  107. package/lib/data-fields/boolean-field/abstract-boolean-field.component.d.ts +5 -7
  108. package/lib/data-fields/boolean-field/boolean-default-field/abstract-boolean-default-field.component.d.ts +14 -0
  109. package/lib/data-fields/boolean-field/models/boolean-field.d.ts +3 -0
  110. package/lib/data-fields/button-field/abstract-button-field.component.d.ts +5 -16
  111. package/lib/data-fields/button-field/button-default-field/abstract-button-default-field.component.d.ts +23 -0
  112. package/lib/data-fields/button-field/models/button-field.d.ts +1 -0
  113. package/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.d.ts +16 -0
  114. package/lib/data-fields/case-ref-field/model/case-ref-field.d.ts +9 -0
  115. package/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.d.ts +3 -0
  116. package/lib/data-fields/data-field-template/abstract-data-field-template.component.d.ts +22 -3
  117. package/lib/data-fields/date-field/abstract-date-field.component.d.ts +7 -7
  118. package/lib/data-fields/date-field/date-default-field/abstract-date-default-field.component.d.ts +12 -0
  119. package/lib/data-fields/date-field/models/date-field.d.ts +1 -0
  120. package/lib/data-fields/date-time-field/abstract-date-time-field.component.d.ts +7 -7
  121. package/lib/data-fields/date-time-field/date-time-default-field/abstract-date-time-default-field.component.d.ts +12 -0
  122. package/lib/data-fields/date-time-field/models/date-time-field.d.ts +1 -0
  123. package/lib/data-fields/enumeration-field/abstract-enumeration-field.component.d.ts +3 -0
  124. package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.d.ts +8 -10
  125. package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.d.ts +6 -10
  126. package/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.d.ts +9 -9
  127. package/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.d.ts +6 -8
  128. package/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.d.ts +6 -8
  129. package/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.d.ts +8 -9
  130. package/lib/data-fields/enumeration-field/models/enumeration-field.d.ts +3 -0
  131. package/lib/data-fields/file-field/abstract-file-field.component.d.ts +9 -147
  132. package/lib/data-fields/file-field/file-default-field/abstract-file-default-field.component.d.ts +151 -0
  133. package/lib/data-fields/file-field/models/file-field-constants.d.ts +4 -0
  134. package/lib/data-fields/file-field/models/file-field.d.ts +1 -0
  135. package/lib/data-fields/file-list-field/abstract-file-list-field.component.d.ts +8 -71
  136. package/lib/data-fields/file-list-field/file-list-default-field/abstract-file-list-default-field.component.d.ts +76 -0
  137. package/lib/data-fields/file-list-field/models/file-list-field.d.ts +1 -0
  138. package/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.d.ts +3 -3
  139. package/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.d.ts +3 -3
  140. package/lib/data-fields/filter-field/abstract-filter-field.component.d.ts +6 -11
  141. package/lib/data-fields/filter-field/filter-default-field/abstract-filter-default-field.component.d.ts +18 -0
  142. package/lib/data-fields/filter-field/models/filter-field.d.ts +1 -0
  143. package/lib/data-fields/i18n-field/abstract-i18n-errors.component.d.ts +6 -9
  144. package/lib/data-fields/i18n-field/abstract-i18n-field.component.d.ts +3 -0
  145. package/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.d.ts +6 -8
  146. package/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.d.ts +5 -8
  147. package/lib/data-fields/i18n-field/models/i18n-field.d.ts +1 -0
  148. package/lib/data-fields/models/abstract-data-field-component.d.ts +1 -0
  149. package/lib/data-fields/models/abstract-data-field.d.ts +9 -0
  150. package/lib/data-fields/models/component.d.ts +19 -0
  151. package/lib/data-fields/models/data-field-portal-data-injection-token.d.ts +13 -0
  152. package/lib/data-fields/models/update-strategy.d.ts +6 -0
  153. package/lib/data-fields/multichoice-field/abstract-multichoice-field.component.d.ts +3 -0
  154. package/lib/data-fields/multichoice-field/models/multichoice-field.d.ts +3 -0
  155. package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.d.ts +6 -9
  156. package/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.d.ts +6 -7
  157. package/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.d.ts +6 -8
  158. package/lib/data-fields/number-field/abstract-number-errors.component.d.ts +6 -9
  159. package/lib/data-fields/number-field/abstract-number-field.component.d.ts +3 -0
  160. package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +4 -2
  161. package/lib/data-fields/number-field/models/number-field.d.ts +1 -0
  162. package/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.d.ts +4 -2
  163. package/lib/data-fields/public-api.d.ts +16 -1
  164. package/lib/data-fields/task-ref-field/abstract-task-ref-field.component.d.ts +6 -13
  165. package/lib/data-fields/task-ref-field/model/task-ref-field.d.ts +1 -0
  166. package/lib/data-fields/task-ref-field/task-ref-dashboard-field/abstract-task-ref-dashboard-field.component.d.ts +20 -0
  167. package/lib/data-fields/task-ref-field/task-ref-list-field/abstract-task-ref-list-field.component.d.ts +16 -0
  168. package/lib/data-fields/text-field/abstract-dashboard-text-field.component.d.ts +5 -9
  169. package/lib/data-fields/text-field/abstract-text-errors.component.d.ts +7 -2
  170. package/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.d.ts +4 -2
  171. package/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.d.ts +4 -2
  172. package/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.d.ts +4 -2
  173. package/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.d.ts +4 -2
  174. package/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.d.ts +4 -2
  175. package/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.d.ts +5 -9
  176. package/lib/data-fields/text-field/models/text-field.d.ts +3 -2
  177. package/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.d.ts +5 -9
  178. package/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.d.ts +5 -9
  179. package/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.d.ts +5 -9
  180. package/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.d.ts +6 -9
  181. package/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.d.ts +6 -5
  182. package/lib/data-fields/user-field/abstract-user-field.component.d.ts +5 -27
  183. package/lib/data-fields/user-field/models/user-field.d.ts +1 -0
  184. package/lib/data-fields/user-field/user-default-field/abstract-user-default-field.component.d.ts +34 -0
  185. package/lib/data-fields/user-list-field/abstract-user-list-field.component.d.ts +5 -25
  186. package/lib/data-fields/user-list-field/models/user-list-field.d.ts +1 -0
  187. package/lib/data-fields/user-list-field/user-list-default-field/abstract-user-list-default-field.component.d.ts +24 -0
  188. package/lib/dialog/injection-tokens.d.ts +10 -0
  189. package/lib/dialog/public-api.d.ts +1 -0
  190. package/lib/filter/models/task-search-request-body.d.ts +6 -0
  191. package/lib/filter/user-filters.service.d.ts +4 -2
  192. package/lib/impersonation/services/impersonation-user-select.service.d.ts +3 -3
  193. package/lib/panel/workflow-panel/abstract-workflow-panel.component.d.ts +3 -1
  194. package/lib/{data-fields/text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service.d.ts → registry/component-registry.service.d.ts} +6 -5
  195. package/lib/registry/public-api.d.ts +1 -0
  196. package/lib/side-menu/content-components/public-api.d.ts +1 -0
  197. package/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.d.ts +7 -3
  198. package/lib/task-content/model/field-type-resource.d.ts +1 -0
  199. package/lib/task-content/task-content/abstract-task-content.component.d.ts +5 -1
  200. package/lib/view/case-view/service/case-view-service.d.ts +3 -3
  201. package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +3 -3
  202. package/package.json +1 -1
  203. package/public-api.d.ts +1 -0
  204. package/src/assets/i18n/de.json +1 -0
  205. package/src/assets/i18n/en.json +1 -0
  206. package/src/assets/i18n/sk.json +1 -0
  207. package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service.mjs +0 -35
@@ -0,0 +1,304 @@
1
+ import { Component, Inject, Input, Optional, ViewChild } from "@angular/core";
2
+ import { DATA_FIELD_PORTAL_DATA } from "../../models/data-field-portal-data-injection-token";
3
+ import { FileListFieldValidation } from "../models/file-list-field";
4
+ import { ProgressType } from "../../../resources/resource-provider.service";
5
+ import { HttpParams } from "@angular/common/http";
6
+ import { take } from "rxjs/operators";
7
+ import { AbstractBaseDataFieldComponent } from "../../base-component/abstract-base-data-field.component";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../resources/engine-endpoint/task-resource.service";
10
+ import * as i2 from "../../../logger/services/logger.service";
11
+ import * as i3 from "../../../snack-bar/services/snack-bar.service";
12
+ import * as i4 from "@ngx-translate/core";
13
+ import * as i5 from "../../../event/services/event.service";
14
+ export class AbstractFileListDefaultFieldComponent extends AbstractBaseDataFieldComponent {
15
+ constructor(_taskResourceService, _log, _snackbar, _translate, _eventService, dataFieldPortalData) {
16
+ super(dataFieldPortalData);
17
+ this._taskResourceService = _taskResourceService;
18
+ this._log = _log;
19
+ this._snackbar = _snackbar;
20
+ this._translate = _translate;
21
+ this._eventService = _eventService;
22
+ this.state = this.defaultState;
23
+ this.uploadedFiles = new Array();
24
+ this.maxFilesNumber = Number.POSITIVE_INFINITY;
25
+ this.taskId = dataFieldPortalData.additionalFieldProperties.taskId;
26
+ }
27
+ ngOnInit() {
28
+ this.valueChange$ = this.dataField.valueChanges().subscribe(() => {
29
+ this.parseResponse();
30
+ });
31
+ if (this.dataField.validations && this.dataField.validations.length !== 0) {
32
+ const val = this.dataField.validations.find(validation => validation.validationRule.includes(FileListFieldValidation.MAX_FILES));
33
+ if (val && val.validationRule.split(' ').length === 2 && !isNaN(parseInt(val.validationRule.split(' ')[1], 10))) {
34
+ this.maxFilesNumber = parseInt(val.validationRule.split(' ')[1], 10);
35
+ this.maxFilesMessage = val.validationMessage && val.validationMessage !== '' ? val.validationMessage : null;
36
+ }
37
+ }
38
+ }
39
+ /**
40
+ * Set file picker and image elements to [FileFieldService]{@link FileFieldService}.
41
+ *
42
+ * Initialize file image.
43
+ */
44
+ ngAfterViewInit() {
45
+ if (this.fileUploadEl) {
46
+ this.fileUploadEl.nativeElement.onchange = () => {
47
+ this.upload();
48
+ };
49
+ }
50
+ }
51
+ ngOnDestroy() {
52
+ super.ngOnDestroy();
53
+ this.valueChange$.unsubscribe();
54
+ }
55
+ chooseFile() {
56
+ if (this.state.uploading || this.formControlRef.disabled) {
57
+ return;
58
+ }
59
+ this.fileUploadEl.nativeElement.click();
60
+ }
61
+ /**
62
+ * Call after click on file field.
63
+ *
64
+ * If file field has no file uploaded
65
+ * [FilesUploadComponent]{@link AbstractFilesUploadComponent} via [SideMenu]{@link SideMenuService} opens.
66
+ *
67
+ * Otherwise opens a file picker from which the user can select files.
68
+ */
69
+ upload() {
70
+ if (!this.fileUploadEl.nativeElement.files || this.fileUploadEl.nativeElement.files.length === 0) {
71
+ return;
72
+ }
73
+ if (!this.taskId) {
74
+ this._log.error('File cannot be uploaded. No task is set to the field.');
75
+ return;
76
+ }
77
+ if (this.fileUploadEl.nativeElement.files.length + this.uploadedFiles.length > this.maxFilesNumber) {
78
+ this._snackbar.openErrorSnackBar(this.maxFilesMessage ? this.maxFilesMessage :
79
+ this._translate.instant('dataField.snackBar.maxFilesExceeded') + this.maxFilesNumber);
80
+ this.fileUploadEl.nativeElement.value = '';
81
+ return;
82
+ }
83
+ let filesToUpload = Array.from(this.fileUploadEl.nativeElement.files);
84
+ let sum = 0;
85
+ filesToUpload.forEach(item => sum += item.size);
86
+ if (this.dataField.maxUploadSizeInBytes &&
87
+ this.dataField.maxUploadSizeInBytes < sum) {
88
+ this._log.error('Files cannot be uploaded. Maximum size of files exceeded.');
89
+ this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.maxFilesSizeExceeded') + this.dataField.maxUploadSizeInBytes);
90
+ this.fileUploadEl.nativeElement.value = '';
91
+ return;
92
+ }
93
+ if (this.dataField.value && this.dataField.value.namesPaths && this.dataField.value.namesPaths.length !== 0) {
94
+ this.dataField.value.namesPaths.forEach(namePath => {
95
+ filesToUpload = filesToUpload.filter(fileToUpload => fileToUpload.name !== namePath.name);
96
+ });
97
+ if (filesToUpload.length === 0) {
98
+ this._log.error('User chose the same files that are already uploaded. Uploading skipped');
99
+ this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.wontUploadSameFiles'));
100
+ this.fileUploadEl.nativeElement.value = '';
101
+ return;
102
+ }
103
+ }
104
+ this.state = this.defaultState;
105
+ this.state.uploading = true;
106
+ const fileFormData = new FormData();
107
+ filesToUpload.forEach(fileToUpload => {
108
+ fileFormData.append('files', fileToUpload);
109
+ });
110
+ const data = {};
111
+ data[this.resolveParentTaskId()] = this.dataField.stringId;
112
+ fileFormData.append('data', new Blob([JSON.stringify(data)], { type: 'application/json' }));
113
+ this._taskResourceService.uploadFile(this.taskId, this.dataField.stringId, fileFormData, true)
114
+ .subscribe((response) => {
115
+ if (response.type && response.type === ProgressType.UPLOAD) {
116
+ this.state.progress = response.progress;
117
+ }
118
+ else {
119
+ this.state.completed = true;
120
+ this.state.uploading = false;
121
+ this.state.progress = 0;
122
+ this._log.debug(`Files [${this.dataField.stringId}] were successfully uploaded`);
123
+ if (response.error) {
124
+ this.state.error = true;
125
+ this._log.error(`File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0)} uploading has failed!`, response.error);
126
+ if (response.error) {
127
+ this._snackbar.openErrorSnackBar(this._translate.instant(response.error));
128
+ }
129
+ else {
130
+ this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.fileUploadFailed'));
131
+ }
132
+ }
133
+ else {
134
+ const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response.outcome);
135
+ this.dataField.emitChangedFields(changedFieldsMap);
136
+ this.state.error = false;
137
+ filesToUpload.forEach(fileToUpload => {
138
+ this.uploadedFiles.push(fileToUpload.name);
139
+ this.dataField.value.namesPaths.push({ name: fileToUpload.name });
140
+ this.formControlRef.setValue(this.dataField.value.namesPaths.map(namePath => {
141
+ return namePath['name'];
142
+ }).join('/'));
143
+ });
144
+ }
145
+ this.dataField.touch = true;
146
+ this.dataField.update();
147
+ this.fileUploadEl.nativeElement.value = '';
148
+ }
149
+ }, error => {
150
+ this.state.completed = true;
151
+ this.state.error = true;
152
+ this.state.uploading = false;
153
+ this.state.progress = 0;
154
+ if (error?.error?.message) {
155
+ this._snackbar.openErrorSnackBar(this._translate.instant(error.error.message));
156
+ }
157
+ else {
158
+ this._snackbar.openErrorSnackBar(this._translate.instant('dataField.snackBar.fileUploadFailed'));
159
+ }
160
+ this._log.error(`File [${this.dataField.stringId}] ${this.fileUploadEl.nativeElement.files.item(0)} uploading has failed!`, error);
161
+ this.dataField.touch = true;
162
+ this.dataField.update();
163
+ this.fileUploadEl.nativeElement.value = '';
164
+ });
165
+ }
166
+ download(fileName) {
167
+ if (!this.dataField.value || !this.dataField.value.namesPaths ||
168
+ !this.dataField.value.namesPaths.find(namePath => namePath.name === fileName)) {
169
+ return;
170
+ }
171
+ if (!this.taskId) {
172
+ this._log.error('File cannot be downloaded. No task is set to the field.');
173
+ return;
174
+ }
175
+ this.state = this.defaultState;
176
+ this.state.downloading = true;
177
+ this._taskResourceService.downloadFile(this.resolveParentTaskId(), this.dataField.stringId, fileName).subscribe(response => {
178
+ if (response.type && response.type === ProgressType.DOWNLOAD) {
179
+ this.state.progress = response.progress;
180
+ }
181
+ else {
182
+ this._log.debug(`File [${this.dataField.stringId}] ${fileName} was successfully downloaded`);
183
+ this.downloadViaAnchor(response, fileName);
184
+ this.state.downloading = false;
185
+ this.state.progress = 0;
186
+ this.dataField.downloaded.push(fileName);
187
+ }
188
+ }, error => {
189
+ this._log.error(`Downloading file [${this.dataField.stringId}] ${fileName} has failed!`, error);
190
+ this._snackbar.openErrorSnackBar(fileName + ' ' + this._translate.instant('dataField.snackBar.downloadFail'));
191
+ this.state.downloading = false;
192
+ this.state.progress = 0;
193
+ });
194
+ }
195
+ downloadViaAnchor(blob, fileName) {
196
+ const a = document.createElement('a');
197
+ document.body.appendChild(a);
198
+ a.setAttribute('style', 'display: none');
199
+ blob = new Blob([blob], { type: 'application/octet-stream' });
200
+ const url = window.URL.createObjectURL(blob);
201
+ a.href = url;
202
+ a.download = fileName;
203
+ a.click();
204
+ window.URL.revokeObjectURL(url);
205
+ document.body.removeChild(a);
206
+ }
207
+ deleteFile(fileName) {
208
+ if (!this.dataField.value || !this.dataField.value.namesPaths ||
209
+ !this.dataField.value.namesPaths.find(namePath => namePath.name === fileName)) {
210
+ return;
211
+ }
212
+ if (!this.taskId) {
213
+ this._log.error('File cannot be deleted. No task is set to the field.');
214
+ return;
215
+ }
216
+ let param = new HttpParams();
217
+ param = param.set("parentTaskId", this.resolveParentTaskId());
218
+ this._taskResourceService.deleteFile(this.taskId, this.dataField.stringId, fileName, param).pipe(take(1)).subscribe((response) => {
219
+ if (response.success) {
220
+ const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response.outcome);
221
+ this.dataField.emitChangedFields(changedFieldsMap);
222
+ this.fileUploadEl.nativeElement.value = '';
223
+ this.uploadedFiles = this.uploadedFiles.filter(uploadedFile => uploadedFile !== fileName);
224
+ if (this.dataField.value.namesPaths) {
225
+ this.dataField.value.namesPaths = this.dataField.value.namesPaths.filter(namePath => namePath.name !== fileName);
226
+ this.formControlRef.setValue(this.dataField.value.namesPaths.map(namePath => {
227
+ return namePath['name'];
228
+ }).join('/'));
229
+ this.dataField.update();
230
+ }
231
+ this.dataField.downloaded = this.dataField.downloaded.filter(one => one !== fileName);
232
+ this._log.debug(`File [${this.dataField.stringId}] ${fileName} was successfully deleted`);
233
+ this.formControlRef.markAsTouched();
234
+ }
235
+ else {
236
+ this._log.error(`Deleting file [${this.dataField.stringId}] ${fileName} has failed!`, response.error);
237
+ this._snackbar.openErrorSnackBar(fileName + ' ' + this._translate.instant('dataField.snackBar.fileDeleteFailed'));
238
+ }
239
+ });
240
+ }
241
+ get defaultState() {
242
+ return {
243
+ progress: 0,
244
+ completed: false,
245
+ error: false,
246
+ uploading: false,
247
+ downloading: false
248
+ };
249
+ }
250
+ /**
251
+ * Construct display name.
252
+ */
253
+ constructDisplayName() {
254
+ if (!!this.dataField && !!this.dataField.placeholder) {
255
+ return this.dataField.placeholder;
256
+ }
257
+ return this._translate.instant('dataField.file.noFile');
258
+ }
259
+ parseResponse() {
260
+ if (this.dataField.value) {
261
+ if (!!this.dataField.value.namesPaths && this.dataField.value.namesPaths.length !== 0) {
262
+ this.uploadedFiles = new Array();
263
+ this.dataField.value.namesPaths.forEach(namePath => {
264
+ this.uploadedFiles.push(namePath.name);
265
+ });
266
+ }
267
+ else {
268
+ this.dataField.value.namesPaths = new Array();
269
+ }
270
+ this.uploadedFiles = this.dataField.value.namesPaths.map(namePath => namePath.name);
271
+ }
272
+ }
273
+ resolveParentTaskId() {
274
+ return !!this.dataField.parentTaskId ? this.dataField.parentTaskId : this.taskId;
275
+ }
276
+ getCutProperty(i18nLabel) {
277
+ if (this.labelWidth !== i18nLabel.offsetWidth) {
278
+ this.labelWidth = i18nLabel.offsetWidth;
279
+ const calculatedWidth = 'calc(0.5em + ' + i18nLabel.offsetWidth / 4 * 3 + 'px)';
280
+ this.cutProperty = `polygon(0 0, 0 100%, 100% 100%, 100% 0%, ${calculatedWidth} 0, ${calculatedWidth} 3px, 0.5em 3px, 0.5em 0)`;
281
+ }
282
+ return this.cutProperty;
283
+ }
284
+ }
285
+ AbstractFileListDefaultFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFileListDefaultFieldComponent, deps: [{ token: i1.TaskResourceService }, { token: i2.LoggerService }, { token: i3.SnackBarService }, { token: i4.TranslateService }, { token: i5.EventService }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
286
+ AbstractFileListDefaultFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractFileListDefaultFieldComponent, selector: "ncc-abstract-file-list-default-field", inputs: { taskId: "taskId" }, viewQueries: [{ propertyName: "fileUploadEl", first: true, predicate: ["fileUploadInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFileListDefaultFieldComponent, decorators: [{
288
+ type: Component,
289
+ args: [{
290
+ selector: 'ncc-abstract-file-list-default-field',
291
+ template: ''
292
+ }]
293
+ }], ctorParameters: function () { return [{ type: i1.TaskResourceService }, { type: i2.LoggerService }, { type: i3.SnackBarService }, { type: i4.TranslateService }, { type: i5.EventService }, { type: undefined, decorators: [{
294
+ type: Optional
295
+ }, {
296
+ type: Inject,
297
+ args: [DATA_FIELD_PORTAL_DATA]
298
+ }] }]; }, propDecorators: { taskId: [{
299
+ type: Input
300
+ }], fileUploadEl: [{
301
+ type: ViewChild,
302
+ args: ['fileUploadInput']
303
+ }] } });
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsZS1saXN0LWRlZmF1bHQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWxlLWxpc3QtZmllbGQvZmlsZS1saXN0LWRlZmF1bHQtZmllbGQvYWJzdHJhY3QtZmlsZS1saXN0LWRlZmF1bHQtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxxREFBcUQsQ0FBQztBQUNoSCxPQUFPLEVBQWdCLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFTakYsT0FBTyxFQUFDLFlBQVksRUFBbUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUU1RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBDLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7O0FBZXZHLE1BQU0sT0FBZ0IscUNBQXNDLFNBQVEsOEJBQTZDO0lBMEI3RyxZQUFnQyxvQkFBeUMsRUFDekMsSUFBbUIsRUFDbkIsU0FBMEIsRUFDMUIsVUFBNEIsRUFDNUIsYUFBMkIsRUFDTyxtQkFBdUQ7UUFDckgsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFOQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIs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RUFBRSxzQ0FBc0M7b0JBQ2hELFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkFnQzBCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCOzRDQVpoRCxNQUFNO3NCQUFyQixLQUFLO2dCQUsrQixZQUFZO3NCQUFoRCxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7REFUQV9GSUVMRF9QT1JUQUxfREFUQSwgRGF0YUZpZWxkUG9ydGFsRGF0YX0gZnJvbSBcIi4uLy4uL21vZGVscy9kYXRhLWZpZWxkLXBvcnRhbC1kYXRhLWluamVjdGlvbi10b2tlblwiO1xuaW1wb3J0IHtGaWxlTGlzdEZpZWxkLCBGaWxlTGlzdEZpZWxkVmFsaWRhdGlvbn0gZnJvbSBcIi4uL21vZGVscy9maWxlLWxpc3QtZmllbGRcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtUYXNrUmVzb3VyY2VTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC90YXNrLXJlc291cmNlLnNlcnZpY2VcIjtcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zbmFjay1iYXIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2VcIjtcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vZXZlbnQvc2VydmljZXMvZXZlbnQuc2VydmljZVwiO1xuaW1wb3J0IHtGaWxlRmllbGRJZEJvZHl9IGZyb20gXCIuLi8uLi9tb2RlbHMvZmlsZS1maWVsZC1pZC1ib2R5XCI7XG5pbXBvcnQge0V2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZX0gZnJvbSBcIi4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvbWVzc2FnZS1yZXNvdXJjZVwiO1xuaW1wb3J0IHtQcm9ncmVzc1R5cGUsIFByb3ZpZGVyUHJvZ3Jlc3N9IGZyb20gXCIuLi8uLi8uLi9yZXNvdXJjZXMvcmVzb3VyY2UtcHJvdmlkZXIuc2VydmljZVwiO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzTWFwfSBmcm9tIFwiLi4vLi4vLi4vZXZlbnQvc2VydmljZXMvaW50ZXJmYWNlcy9jaGFuZ2VkLWZpZWxkcy1tYXBcIjtcbmltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge3Rha2V9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtGaWxlRmllbGRWYWx1ZX0gZnJvbSBcIi4uLy4uL2ZpbGUtZmllbGQvbW9kZWxzL2ZpbGUtZmllbGQtdmFsdWVcIjtcbmltcG9ydCB7QWJzdHJhY3RCYXNlRGF0YUZpZWxkQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vYmFzZS1jb21wb25lbnQvYWJzdHJhY3QtYmFzZS1kYXRhLWZpZWxkLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVzU3RhdGUge1xuICAgIHByb2dyZXNzOiBudW1iZXI7XG4gICAgdXBsb2FkaW5nOiBib29sZWFuO1xuICAgIGRvd25sb2FkaW5nOiBib29sZWFuO1xuICAgIGNvbXBsZXRlZDogYm9vbGVhbjtcbiAgICBlcnJvcjogYm9vbGVhbjtcbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1maWxlLWxpc3QtZGVmYXVsdC1maWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsZUxpc3REZWZhdWx0RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEJhc2VEYXRhRmllbGRDb21wb25lbnQ8RmlsZUxpc3RGaWVsZD4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIGxhYmVsV2lkdGg6IG51bWJlcjtcbiAgICBwdWJsaWMgY3V0UHJvcGVydHk6IHN0cmluZztcbiAgICBwdWJsaWMgdXBsb2FkZWRGaWxlczogQXJyYXk8c3RyaW5nPjtcbiAgICBwdWJsaWMgc3RhdGU6IEZpbGVzU3RhdGU7XG4gICAgcHJpdmF0ZSB2YWx1ZUNoYW5nZSQ6IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFZhbHVlcyBmcm9tIGZpbGUgbGlzdCBmaWVsZCB2YWxpZGF0aW9uIChlZy4gbWF4RmlsZXMgNSlcbiAgICAgKiBtYXhGaWxlc051bWJlciAtIG1heGltdW0gdXBsb2FkYWJsZSBmaWxlc1xuICAgICAqIG1heEZpbGVzTWVzc2FnZSAtIGVycm9yIG1lc3NhZ2UgaWYgbnVtYmVyIG9mIGZpbGVzIGlzIGV4Y2VlZGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG1heEZpbGVzTnVtYmVyOiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIG1heEZpbGVzTWVzc2FnZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGFzayBtb25nbyBzdHJpbmcgaWQgaXMgYmluZGluZyBwcm9wZXJ0eSBmcm9tIHBhcmVudCBjb21wb25lbnQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRmlsZSBwaWNrZXIgZWxlbWVudCByZWZlcmVuY2UgZnJvbSBjb21wb25lbnQgdGVtcGxhdGUgdGhhdCBpcyBpbml0aWFsaXplZCBhZnRlciB2aWV3IGluaXQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZmlsZVVwbG9hZElucHV0JykgcHVibGljIGZpbGVVcGxvYWRFbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2tSZXNvdXJjZVNlcnZpY2U6IFRhc2tSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NuYWNrYmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2V2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEFfRklFTERfUE9SVEFMX0RBVEEpIGRhdGFGaWVsZFBvcnRhbERhdGE6IERhdGFGaWVsZFBvcnRhbERhdGE8RmlsZUxpc3RGaWVsZD4pIHtcbiAgICAgICAgc3VwZXIoZGF0YUZpZWxkUG9ydGFsRGF0YSk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmRlZmF1bHRTdGF0ZTtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICAgICAgdGhpcy5tYXhGaWxlc051bWJlciA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICAgICAgdGhpcy50YXNrSWQgPSBkYXRhRmllbGRQb3J0YWxEYXRhLmFkZGl0aW9uYWxGaWVsZFByb3BlcnRpZXMudGFza0lkIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZSQgPSB0aGlzLmRhdGFGaWVsZC52YWx1ZUNoYW5nZXMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wYXJzZVJlc3BvbnNlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5kYXRhRmllbGQudmFsaWRhdGlvbnMgJiYgdGhpcy5kYXRhRmllbGQudmFsaWRhdGlvbnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmRhdGFGaWVsZC52YWxpZGF0aW9ucy5maW5kKHZhbGlkYXRpb24gPT5cbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uLnZhbGlkYXRpb25SdWxlLmluY2x1ZGVzKEZpbGVMaXN0RmllbGRWYWxpZGF0aW9uLk1BWF9GSUxFUylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAodmFsICYmIHZhbC52YWxpZGF0aW9uUnVsZS5zcGxpdCgnICcpLmxlbmd0aCA9PT0gMiAmJiAhaXNOYU4ocGFyc2VJbnQodmFsLnZhbGlkYXRpb25SdWxlLnNwbGl0KCcgJylbMV0sIDEwKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1heEZpbGVzTnVtYmVyID0gcGFyc2VJbnQodmFsLnZhbGlkYXRpb25SdWxlLnNwbGl0KCcgJylbMV0sIDEwKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1heEZpbGVzTWVzc2FnZSA9IHZhbC52YWxpZGF0aW9uTWVzc2FnZSAmJiB2YWwudmFsaWRhdGlvbk1lc3NhZ2UgIT09ICcnID8gdmFsLnZhbGlkYXRpb25NZXNzYWdlIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBmaWxlIHBpY2tlciBhbmQgaW1hZ2UgZWxlbWVudHMgdG8gW0ZpbGVGaWVsZFNlcnZpY2Vde0BsaW5rIEZpbGVGaWVsZFNlcnZpY2V9LlxuICAgICAqXG4gICAgICogSW5pdGlhbGl6ZSBmaWxlIGltYWdlLlxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsZVVwbG9hZEVsKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50Lm9uY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNob29zZUZpbGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnVwbG9hZGluZyB8fCB0aGlzLmZvcm1Db250cm9sUmVmLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxlVXBsb2FkRWwubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGwgYWZ0ZXIgY2xpY2sgb24gZmlsZSBmaWVsZC5cbiAgICAgKlxuICAgICAqIElmIGZpbGUgZmllbGQgaGFzIG5vIGZpbGUgdXBsb2FkZWRcbiAgICAgKiBbRmlsZXNVcGxvYWRDb21wb25lbnRde0BsaW5rIEFic3RyYWN0RmlsZXNVcGxvYWRDb21wb25lbnR9IHZpYSBbU2lkZU1lbnVde0BsaW5rIFNpZGVNZW51U2VydmljZX0gb3BlbnMuXG4gICAgICpcbiAgICAgKiBPdGhlcndpc2Ugb3BlbnMgYSBmaWxlIHBpY2tlciBmcm9tIHdoaWNoIHRoZSB1c2VyIGNhbiBzZWxlY3QgZmlsZXMuXG4gICAgICovXG4gICAgcHVibGljIHVwbG9hZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LmZpbGVzIHx8IHRoaXMuZmlsZVVwbG9hZEVsLm5hdGl2ZUVsZW1lbnQuZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdGaWxlIGNhbm5vdCBiZSB1cGxvYWRlZC4gTm8gdGFzayBpcyBzZXQgdG8gdGhlIGZpZWxkLicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LmZpbGVzLmxlbmd0aCArIHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiB0aGlzLm1heEZpbGVzTnVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuRXJyb3JTbmFja0Jhcih0aGlzLm1heEZpbGVzTWVzc2FnZSA/IHRoaXMubWF4RmlsZXNNZXNzYWdlIDpcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnNuYWNrQmFyLm1heEZpbGVzRXhjZWVkZWQnKSArIHRoaXMubWF4RmlsZXNOdW1iZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZmlsZXNUb1VwbG9hZCA9IEFycmF5LmZyb20odGhpcy5maWxlVXBsb2FkRWwubmF0aXZlRWxlbWVudC5maWxlcyk7XG4gICAgICAgIGxldCBzdW0gPSAwO1xuICAgICAgICBmaWxlc1RvVXBsb2FkLmZvckVhY2goaXRlbSA9PiBzdW0gKz0gaXRlbS5zaXplKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0YUZpZWxkLm1heFVwbG9hZFNpemVJbkJ5dGVzICYmXG4gICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5tYXhVcGxvYWRTaXplSW5CeXRlcyA8IHN1bSkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdGaWxlcyBjYW5ub3QgYmUgdXBsb2FkZWQuIE1heGltdW0gc2l6ZSBvZiBmaWxlcyBleGNlZWRlZC4nKTtcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQuc25hY2tCYXIubWF4RmlsZXNTaXplRXhjZWVkZWQnKSArIHRoaXMuZGF0YUZpZWxkLm1heFVwbG9hZFNpemVJbkJ5dGVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5maWxlVXBsb2FkRWwubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YUZpZWxkLnZhbHVlICYmIHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMgJiYgdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMuZm9yRWFjaChuYW1lUGF0aCA9PiB7XG4gICAgICAgICAgICAgICAgZmlsZXNUb1VwbG9hZCA9IGZpbGVzVG9VcGxvYWQuZmlsdGVyKGZpbGVUb1VwbG9hZCA9PiBmaWxlVG9VcGxvYWQubmFtZSAhPT0gbmFtZVBhdGgubmFtZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmaWxlc1RvVXBsb2FkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignVXNlciBjaG9zZSB0aGUgc2FtZSBmaWxlcyB0aGF0IGFyZSBhbHJlYWR5IHVwbG9hZGVkLiBVcGxvYWRpbmcgc2tpcHBlZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQuc25hY2tCYXIud29udFVwbG9hZFNhbWVGaWxlcycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuZGVmYXVsdFN0YXRlO1xuICAgICAgICB0aGlzLnN0YXRlLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGZpbGVGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgIGZpbGVzVG9VcGxvYWQuZm9yRWFjaChmaWxlVG9VcGxvYWQgPT4ge1xuICAgICAgICAgICAgZmlsZUZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmaWxlVG9VcGxvYWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZGF0YTogRmlsZUZpZWxkSWRCb2R5ID0ge307XG4gICAgICAgIGRhdGFbdGhpcy5yZXNvbHZlUGFyZW50VGFza0lkKCldID0gdGhpcy5kYXRhRmllbGQuc3RyaW5nSWQ7XG4gICAgICAgIGZpbGVGb3JtRGF0YS5hcHBlbmQoJ2RhdGEnLCBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZGF0YSldLCB7dHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nfSkpO1xuICAgICAgICB0aGlzLl90YXNrUmVzb3VyY2VTZXJ2aWNlLnVwbG9hZEZpbGUodGhpcy50YXNrSWQsXG4gICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZCwgZmlsZUZvcm1EYXRhLCB0cnVlKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgocmVzcG9uc2UgYXMgUHJvdmlkZXJQcm9ncmVzcykudHlwZSAmJiAocmVzcG9uc2UgYXMgUHJvdmlkZXJQcm9ncmVzcykudHlwZSA9PT0gUHJvZ3Jlc3NUeXBlLlVQTE9BRCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnByb2dyZXNzID0gKHJlc3BvbnNlIGFzIFByb3ZpZGVyUHJvZ3Jlc3MpLnByb2dyZXNzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5wcm9ncmVzcyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlcyBbJHt0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZH1dIHdlcmUgc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkYFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlIFske3RoaXMuZGF0YUZpZWxkLnN0cmluZ0lkfV0gJHt0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LmZpbGVzLml0ZW0oMCl9IHVwbG9hZGluZyBoYXMgZmFpbGVkIWAsIHJlc3BvbnNlLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQocmVzcG9uc2UuZXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ2RhdGFGaWVsZC5zbmFja0Jhci5maWxlVXBsb2FkRmFpbGVkJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhbmdlZEZpZWxkc01hcDogQ2hhbmdlZEZpZWxkc01hcCA9IHRoaXMuX2V2ZW50U2VydmljZS5wYXJzZUNoYW5nZWRGaWVsZHNGcm9tT3V0Y29tZVRyZWUocmVzcG9uc2Uub3V0Y29tZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5lbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2VkRmllbGRzTWFwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzVG9VcGxvYWQuZm9yRWFjaChmaWxlVG9VcGxvYWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKGZpbGVUb1VwbG9hZC5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLnB1c2goe25hbWU6IGZpbGVUb1VwbG9hZC5uYW1lfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5zZXRWYWx1ZSh0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLm1hcChuYW1lUGF0aCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lUGF0aFsnbmFtZSddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmpvaW4oJy8nKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC50b3VjaCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUucHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoZXJyb3IuZXJyb3IubWVzc2FnZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQuc25hY2tCYXIuZmlsZVVwbG9hZEZhaWxlZCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRmlsZSBbJHt0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZH1dICR7dGhpcy5maWxlVXBsb2FkRWwubmF0aXZlRWxlbWVudC5maWxlcy5pdGVtKDApfSB1cGxvYWRpbmcgaGFzIGZhaWxlZCFgLCBlcnJvclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQudG91Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBkb3dubG9hZChmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhRmllbGQudmFsdWUgfHwgIXRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMgfHxcbiAgICAgICAgICAgICF0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLmZpbmQobmFtZVBhdGggPT4gbmFtZVBhdGgubmFtZSA9PT0gZmlsZU5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdGaWxlIGNhbm5vdCBiZSBkb3dubG9hZGVkLiBObyB0YXNrIGlzIHNldCB0byB0aGUgZmllbGQuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5kZWZhdWx0U3RhdGU7XG4gICAgICAgIHRoaXMuc3RhdGUuZG93bmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLl90YXNrUmVzb3VyY2VTZXJ2aWNlLmRvd25sb2FkRmlsZSh0aGlzLnJlc29sdmVQYXJlbnRUYXNrSWQoKSxcbiAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnN0cmluZ0lkLCBmaWxlTmFtZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIGlmICgocmVzcG9uc2UgYXMgUHJvdmlkZXJQcm9ncmVzcykudHlwZSAmJiAocmVzcG9uc2UgYXMgUHJvdmlkZXJQcm9ncmVzcykudHlwZSA9PT0gUHJvZ3Jlc3NUeXBlLkRPV05MT0FEKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5wcm9ncmVzcyA9IChyZXNwb25zZSBhcyBQcm92aWRlclByb2dyZXNzKS5wcm9ncmVzcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKGBGaWxlIFske3RoaXMuZGF0YUZpZWxkLnN0cmluZ0lkfV0gJHtmaWxlTmFtZX0gd2FzIHN1Y2Nlc3NmdWxseSBkb3dubG9hZGVkYCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZFZpYUFuY2hvcihyZXNwb25zZSBhcyBCbG9iLCBmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5kb3dubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUucHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLmRvd25sb2FkZWQucHVzaChmaWxlTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcihgRG93bmxvYWRpbmcgZmlsZSBbJHt0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZH1dICR7ZmlsZU5hbWV9IGhhcyBmYWlsZWQhYCwgZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbkVycm9yU25hY2tCYXIoZmlsZU5hbWUgKyAnICcgKyB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnNuYWNrQmFyLmRvd25sb2FkRmFpbCcpKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuZG93bmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUucHJvZ3Jlc3MgPSAwO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZG93bmxvYWRWaWFBbmNob3IoYmxvYjogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICBhLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogbm9uZScpO1xuICAgICAgICBibG9iID0gbmV3IEJsb2IoW2Jsb2JdLCB7dHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSd9KTtcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZUZpbGUoZmlsZU5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YUZpZWxkLnZhbHVlIHx8ICF0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzIHx8XG4gICAgICAgICAgICAhdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocy5maW5kKG5hbWVQYXRoID0+IG5hbWVQYXRoLm5hbWUgPT09IGZpbGVOYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignRmlsZSBjYW5ub3QgYmUgZGVsZXRlZC4gTm8gdGFzayBpcyBzZXQgdG8gdGhlIGZpZWxkLicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJhbSA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2V0KFwicGFyZW50VGFza0lkXCIsIHRoaXMucmVzb2x2ZVBhcmVudFRhc2tJZCgpKTtcblxuICAgICAgICB0aGlzLl90YXNrUmVzb3VyY2VTZXJ2aWNlLmRlbGV0ZUZpbGUodGhpcy50YXNrSWQsXG4gICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZCwgZmlsZU5hbWUsIHBhcmFtKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgocmVzcG9uc2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VkRmllbGRzTWFwOiBDaGFuZ2VkRmllbGRzTWFwID0gdGhpcy5fZXZlbnRTZXJ2aWNlLnBhcnNlQ2hhbmdlZEZpZWxkc0Zyb21PdXRjb21lVHJlZShyZXNwb25zZS5vdXRjb21lKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5lbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2VkRmllbGRzTWFwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcih1cGxvYWRlZEZpbGUgPT4gdXBsb2FkZWRGaWxlICE9PSBmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocyA9IHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMuZmlsdGVyKG5hbWVQYXRoID0+IG5hbWVQYXRoLm5hbWUgIT09IGZpbGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5zZXRWYWx1ZSh0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLm1hcChuYW1lUGF0aCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZVBhdGhbJ25hbWUnXTtcbiAgICAgICAgICAgICAgICAgICAgfSkuam9pbignLycpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQudXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLmRvd25sb2FkZWQgPSB0aGlzLmRhdGFGaWVsZC5kb3dubG9hZGVkLmZpbHRlcihvbmUgPT4gb25lICE9PSBmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKGBGaWxlIFske3RoaXMuZGF0YUZpZWxkLnN0cmluZ0lkfV0gJHtmaWxlTmFtZX0gd2FzIHN1Y2Nlc3NmdWxseSBkZWxldGVkYCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZi5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcihgRGVsZXRpbmcgZmlsZSBbJHt0aGlzLmRhdGFGaWVsZC5zdHJpbmdJZH1dICR7ZmlsZU5hbWV9IGhhcyBmYWlsZWQhYCwgcmVzcG9uc2UuZXJyb3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW5FcnJvclNuYWNrQmFyKFxuICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZSArICcgJyArIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQuc25hY2tCYXIuZmlsZURlbGV0ZUZhaWxlZCcpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBkZWZhdWx0U3RhdGUoKTogRmlsZXNTdGF0ZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9ncmVzczogMCxcbiAgICAgICAgICAgIGNvbXBsZXRlZDogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogZmFsc2UsXG4gICAgICAgICAgICB1cGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgZG93bmxvYWRpbmc6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0IGRpc3BsYXkgbmFtZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0RGlzcGxheU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCEhdGhpcy5kYXRhRmllbGQgJiYgISF0aGlzLmRhdGFGaWVsZC5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YUZpZWxkLnBsYWNlaG9sZGVyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLmZpbGUubm9GaWxlJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlUmVzcG9uc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFGaWVsZC52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKCEhdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocyAmJiB0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQudmFsdWUubmFtZXNQYXRocy5mb3JFYWNoKG5hbWVQYXRoID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2gobmFtZVBhdGgubmFtZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnZhbHVlLm5hbWVzUGF0aHMgPSBuZXcgQXJyYXk8RmlsZUZpZWxkVmFsdWU+KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLmRhdGFGaWVsZC52YWx1ZS5uYW1lc1BhdGhzLm1hcChuYW1lUGF0aCA9PiBuYW1lUGF0aC5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzb2x2ZVBhcmVudFRhc2tJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISF0aGlzLmRhdGFGaWVsZC5wYXJlbnRUYXNrSWQgPyB0aGlzLmRhdGFGaWVsZC5wYXJlbnRUYXNrSWQgOiB0aGlzLnRhc2tJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3V0UHJvcGVydHkoaTE4bkxhYmVsKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWxXaWR0aCAhPT0gaTE4bkxhYmVsLm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsV2lkdGggPSBpMThuTGFiZWwub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkV2lkdGggPSAnY2FsYygwLjVlbSArICcgKyBpMThuTGFiZWwub2Zmc2V0V2lkdGggLyA0ICogMyArICdweCknO1xuICAgICAgICAgICAgdGhpcy5jdXRQcm9wZXJ0eSA9IGBwb2x5Z29uKDAgMCwgMCAxMDAlLCAxMDAlIDEwMCUsIDEwMCUgMCUsICR7Y2FsY3VsYXRlZFdpZHRofSAwLCAke2NhbGN1bGF0ZWRXaWR0aH0gM3B4LCAwLjVlbSAzcHgsIDAuNWVtIDApYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jdXRQcm9wZXJ0eTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import { Subject } from 'rxjs';
2
2
  import { DataField } from '../../models/abstract-data-field';
3
+ import { ComponentPrefixes } from '../../models/component';
3
4
  import { distinctUntilChanged } from 'rxjs/operators';
4
5
  export var FileListFieldValidation;
5
6
  (function (FileListFieldValidation) {
@@ -30,6 +31,9 @@ export class FileListField extends DataField {
30
31
  get value() {
31
32
  return this._value.getValue();
32
33
  }
34
+ getTypedComponentType() {
35
+ return ComponentPrefixes.FILE_LIST + this.getComponentType();
36
+ }
33
37
  valueWithoutChange(value) {
34
38
  this.changed = false;
35
39
  this._value.next(value ?? { namesPaths: [] });
@@ -62,6 +66,7 @@ export class FileListField extends DataField {
62
66
  throw new Error('Data field can be initialized only once!'
63
67
  + ' Disconnect the previous form control before initializing the data field again!');
64
68
  }
69
+ this.formControlRef = formControl;
65
70
  formControl.setValidators(this.resolveFormControlValidators());
66
71
  this._myValueSubscription = this._value.pipe(distinctUntilChanged(this.valueEquality)).subscribe(newValue => {
67
72
  this.valid = this._determineFormControlValidity(formControl);
@@ -80,4 +85,4 @@ export class FileListField extends DataField {
80
85
  this.update();
81
86
  }
82
87
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1saXN0LWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWxlLWxpc3QtZmllbGQvbW9kZWxzL2ZpbGUtbGlzdC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXpDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQU0zRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxNQUFNLENBQU4sSUFBWSx1QkFFWDtBQUZELFdBQVksdUJBQXVCO0lBQy9CLGlEQUFzQixDQUFBO0FBQzFCLENBQUMsRUFGVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBRWxDO0FBRUQsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUE2QjtJQTBCNUQ7Ozs7T0FJRztJQUNILFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsUUFBa0IsRUFBRSxLQUEwQixFQUFFLFdBQW9CLEVBQUUsV0FBb0IsRUFDM0gsTUFBZSxFQUFFLFdBQStCLEVBQVUscUJBQThCLEVBQ2hGLFdBQXFFLEVBQzdFLFNBQXFCLEVBQUUsWUFBcUI7UUFDcEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSDlDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUztRQUNoRixnQkFBVyxHQUFYLFdBQVcsQ0FBMEQ7UUFHckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7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IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7QmVoYXZpb3J9IGZyb20gJy4uLy4uL21vZGVscy9iZWhhdmlvcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xheW91dCc7XG5pbXBvcnQge0ZpbGVVcGxvYWRNSU1FVHlwZX0gZnJvbSAnLi4vLi4vZmlsZS1maWVsZC9tb2RlbHMvZmlsZS1maWVsZCc7XG5pbXBvcnQge0RhdGFGaWVsZH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtGaWxlTGlzdEZpZWxkVmFsdWV9IGZyb20gJy4vZmlsZS1saXN0LWZpZWxkLXZhbHVlJztcbmltcG9ydCB7VmFsaWRhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzTWFwfSBmcm9tICcuLi8uLi8uLi9ldmVudC9zZXJ2aWNlcy9pbnRlcmZhY2VzL2NoYW5nZWQtZmllbGRzLW1hcCc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIEZpbGVMaXN0RmllbGRWYWxpZGF0aW9uIHtcbiAgICBNQVhfRklMRVMgPSAnbWF4RmlsZXMnXG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlTGlzdEZpZWxkIGV4dGVuZHMgRGF0YUZpZWxkPEZpbGVMaXN0RmllbGRWYWx1ZT4ge1xuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gZm9yd2FyZCB0aGUgcmVzdWx0IG9mIHRoZSB1cGxvYWQgZmlsZSBiYWNrZW5kIGNhbGwgdG8gdGhlIHRhc2sgY29udGVudFxuICAgICAqL1xuICAgIHByaXZhdGUgX2NoYW5nZWRGaWVsZHMkOiBTdWJqZWN0PENoYW5nZWRGaWVsZHNNYXA+O1xuICAgIHB1YmxpYyBkb3dubG9hZGVkOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBGaWxlTGlzdEZpZWxkVmFsdWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlRXF1YWxpdHkodGhpcy5fdmFsdWUuZ2V0VmFsdWUoKSwgdmFsdWUpICYmICF0aGlzLnJldmVydGluZykge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMud2FpdGluZ0ZvclJlc3BvbnNlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVByZXZWYWx1ZSh2YWx1ZSA/PyB7bmFtZXNQYXRoczogW119KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWx1ZS5uZXh0KHZhbHVlID8/IHtuYW1lc1BhdGhzOiBbXX0pO1xuICAgICAgICB0aGlzLnJldmVydGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBGaWxlTGlzdEZpZWxkVmFsdWUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWVXaXRob3V0Q2hhbmdlKHZhbHVlOiBGaWxlTGlzdEZpZWxkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3ZhbHVlLm5leHQodmFsdWUgPz8ge25hbWVzUGF0aHM6IFtdfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIG5ldyBpbnN0YW5jZSBmb3IgZmlsZSBmaWVsZCB3aXRoIGFsbCBoaXMgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIFBsYWNlaG9sZGVyIGlzIGEgc3Vic3RpdHV0ZSBmb3IgdGhlIHZhbHVlIG5hbWUgaWYgbm90IHNldCB2YWx1ZS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBiZWhhdmlvcjogQmVoYXZpb3IsIHZhbHVlPzogRmlsZUxpc3RGaWVsZFZhbHVlLCBwbGFjZWhvbGRlcj86IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgbGF5b3V0PzogTGF5b3V0LCB2YWxpZGF0aW9ucz86IEFycmF5PFZhbGlkYXRpb24+LCBwcml2YXRlIF9tYXhVcGxvYWRTaXplSW5CeXRlcz86IG51bWJlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hbGxvd1R5cGVzPzogc3RyaW5nIHwgRmlsZVVwbG9hZE1JTUVUeXBlIHwgQXJyYXk8RmlsZVVwbG9hZE1JTUVUeXBlPixcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ/OiBDb21wb25lbnQsIHBhcmVudFRhc2tJZD86IHN0cmluZykge1xuICAgICAgICBzdXBlcihzdHJpbmdJZCwgdGl0bGUsIHZhbHVlLCBiZWhhdmlvciwgcGxhY2Vob2xkZXIsIGRlc2NyaXB0aW9uLCBsYXlvdXQsIHZhbGlkYXRpb25zLCBjb21wb25lbnQsIHBhcmVudFRhc2tJZCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZWRGaWVsZHMkID0gbmV3IFN1YmplY3Q8Q2hhbmdlZEZpZWxkc01hcD4oKTtcbiAgICAgICAgdGhpcy5kb3dubG9hZGVkID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICB9XG5cbiAgICBnZXQgbWF4VXBsb2FkU2l6ZUluQnl0ZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFVwbG9hZFNpemVJbkJ5dGVzO1xuICAgIH1cblxuICAgIGdldCBhbGxvd1R5cGVzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxvd1R5cGVzIGluc3RhbmNlb2YgQXJyYXkgPyB0aGlzLl9hbGxvd1R5cGVzLnRvU3RyaW5nKCkgOiB0aGlzLl9hbGxvd1R5cGVzO1xuICAgIH1cblxuICAgIGdldCBjaGFuZ2VkRmllbGRzJCgpOiBPYnNlcnZhYmxlPENoYW5nZWRGaWVsZHNNYXA+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRGaWVsZHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2U6IENoYW5nZWRGaWVsZHNNYXApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkcyQubmV4dChjaGFuZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdlIGFzc3VtZSB0aGF0IGZpbGVzIGFyZSBhbHdheXMgZ2l2ZW4gaW4gdGhlIHNhbWUgb3JkZXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHZhbHVlRXF1YWxpdHkoYTogRmlsZUxpc3RGaWVsZFZhbHVlLCBiOiBGaWxlTGlzdEZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGFycmF5ID0gKEpTT04uc3RyaW5naWZ5KGEpID09PSAne30nIHx8ICFhLm5hbWVzUGF0aHMgfHwgYS5uYW1lc1BhdGhzLmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICAgICAgIChKU09OLnN0cmluZ2lmeShiKSA9PT0gJ3t9JyB8fCAhYi5uYW1lc1BhdGhzIHx8IGIubmFtZXNQYXRocy5sZW5ndGggPT09IDApO1xuICAgICAgICBpZiAoYSAmJiBhLm5hbWVzUGF0aHMgJiYgYS5uYW1lc1BhdGhzLmxlbmd0aCAhPT0gMCAmJiBiICYmIGIubmFtZXNQYXRocyAmJiBiLm5hbWVzUGF0aHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBhcnJheSA9IGEubmFtZXNQYXRocy5ldmVyeSgoZWxlbWVudCwgaW5kZXgpID0+IGVsZW1lbnQubmFtZSA9PT0gYi5uYW1lc1BhdGhzW2luZGV4XS5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCFhICYmICFiKSB8fCAoISFhICYmICEhYiAmJiBhcnJheSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRm9ybUNvbnRyb2woZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgZmllbGQgY2FuIGJlIGluaXRpYWxpemVkIG9ubHkgb25jZSEnXG4gICAgICAgICAgICAgICAgKyAnIERpc2Nvbm5lY3QgdGhlIHByZXZpb3VzIGZvcm0gY29udHJvbCBiZWZvcmUgaW5pdGlhbGl6aW5nIHRoZSBkYXRhIGZpZWxkIGFnYWluIScpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKSk7XG5cbiAgICAgICAgdGhpcy5fbXlWYWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuX3ZhbHVlLnBpcGUoXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh0aGlzLnZhbHVlRXF1YWxpdHkpXG4gICAgICAgICkuc3Vic2NyaWJlKG5ld1ZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsaWQgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKCFuZXdWYWx1ZSB8fCAhbmV3VmFsdWUubmFtZXNQYXRocyA/ICcnIDogbmV3VmFsdWUubmFtZXNQYXRocy5tYXAobmFtZVBhdGggPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuYW1lUGF0aC5uYW1lO1xuICAgICAgICAgICAgfSkuam9pbignLycpKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xTdGF0ZShmb3JtQ29udHJvbCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy53YWl0aW5nRm9yUmVzcG9uc2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZShmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0lubmVyU3ViamVjdHMoZm9ybUNvbnRyb2wpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1saXN0LWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWxlLWxpc3QtZmllbGQvbW9kZWxzL2ZpbGUtbGlzdC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXpDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUczRCxPQUFPLEVBQVksaUJBQWlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxNQUFNLENBQU4sSUFBWSx1QkFFWDtBQUZELFdBQVksdUJBQXVCO0lBQy9CLGlEQUFzQixDQUFBO0FBQzFCLENBQUMsRUFGVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBRWxDO0FBRUQsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUE2QjtJQThCNUQ7Ozs7T0FJRztJQUNILFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsUUFBa0IsRUFBRSxLQUEwQixFQUFFLFdBQW9CLEVBQUUsV0FBb0IsRUFDM0gsTUFBZSxFQUFFLFdBQStCLEVBQVUscUJBQThCLEVBQ2hGLFdBQXFFLEVBQzdFLFNBQXFCLEVBQUUsWUFBcUI7UUFDcEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSDlDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUztRQUNoRixnQkFBVyxHQUFYLFdBQVcsQ0FBMEQ7UUFHckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztR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QUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRVMsc0JBQXNCLENBQUMsV0FBd0I7UUFDckQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtCZWhhdmlvcn0gZnJvbSAnLi4vLi4vbW9kZWxzL2JlaGF2aW9yJztcbmltcG9ydCB7TGF5b3V0fSBmcm9tICcuLi8uLi9tb2RlbHMvbGF5b3V0JztcbmltcG9ydCB7RmlsZVVwbG9hZE1JTUVUeXBlfSBmcm9tICcuLi8uLi9maWxlLWZpZWxkL21vZGVscy9maWxlLWZpZWxkJztcbmltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZCc7XG5pbXBvcnQge0ZpbGVMaXN0RmllbGRWYWx1ZX0gZnJvbSAnLi9maWxlLWxpc3QtZmllbGQtdmFsdWUnO1xuaW1wb3J0IHtWYWxpZGF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMvdmFsaWRhdGlvbic7XG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50UHJlZml4ZXN9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzTWFwfSBmcm9tICcuLi8uLi8uLi9ldmVudC9zZXJ2aWNlcy9pbnRlcmZhY2VzL2NoYW5nZWQtZmllbGRzLW1hcCc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIEZpbGVMaXN0RmllbGRWYWxpZGF0aW9uIHtcbiAgICBNQVhfRklMRVMgPSAnbWF4RmlsZXMnXG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlTGlzdEZpZWxkIGV4dGVuZHMgRGF0YUZpZWxkPEZpbGVMaXN0RmllbGRWYWx1ZT4ge1xuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gZm9yd2FyZCB0aGUgcmVzdWx0IG9mIHRoZSB1cGxvYWQgZmlsZSBiYWNrZW5kIGNhbGwgdG8gdGhlIHRhc2sgY29udGVudFxuICAgICAqL1xuICAgIHByaXZhdGUgX2NoYW5nZWRGaWVsZHMkOiBTdWJqZWN0PENoYW5nZWRGaWVsZHNNYXA+O1xuICAgIHB1YmxpYyBkb3dubG9hZGVkOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBGaWxlTGlzdEZpZWxkVmFsdWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlRXF1YWxpdHkodGhpcy5fdmFsdWUuZ2V0VmFsdWUoKSwgdmFsdWUpICYmICF0aGlzLnJldmVydGluZykge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMud2FpdGluZ0ZvclJlc3BvbnNlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVByZXZWYWx1ZSh2YWx1ZSA/PyB7bmFtZXNQYXRoczogW119KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWx1ZS5uZXh0KHZhbHVlID8/IHtuYW1lc1BhdGhzOiBbXX0pO1xuICAgICAgICB0aGlzLnJldmVydGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBGaWxlTGlzdEZpZWxkVmFsdWUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VHlwZWRDb21wb25lbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDb21wb25lbnRQcmVmaXhlcy5GSUxFX0xJU1QgKyB0aGlzLmdldENvbXBvbmVudFR5cGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWVXaXRob3V0Q2hhbmdlKHZhbHVlOiBGaWxlTGlzdEZpZWxkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3ZhbHVlLm5leHQodmFsdWUgPz8ge25hbWVzUGF0aHM6IFtdfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIG5ldyBpbnN0YW5jZSBmb3IgZmlsZSBmaWVsZCB3aXRoIGFsbCBoaXMgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIFBsYWNlaG9sZGVyIGlzIGEgc3Vic3RpdHV0ZSBmb3IgdGhlIHZhbHVlIG5hbWUgaWYgbm90IHNldCB2YWx1ZS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBiZWhhdmlvcjogQmVoYXZpb3IsIHZhbHVlPzogRmlsZUxpc3RGaWVsZFZhbHVlLCBwbGFjZWhvbGRlcj86IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgbGF5b3V0PzogTGF5b3V0LCB2YWxpZGF0aW9ucz86IEFycmF5PFZhbGlkYXRpb24+LCBwcml2YXRlIF9tYXhVcGxvYWRTaXplSW5CeXRlcz86IG51bWJlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hbGxvd1R5cGVzPzogc3RyaW5nIHwgRmlsZVVwbG9hZE1JTUVUeXBlIHwgQXJyYXk8RmlsZVVwbG9hZE1JTUVUeXBlPixcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ/OiBDb21wb25lbnQsIHBhcmVudFRhc2tJZD86IHN0cmluZykge1xuICAgICAgICBzdXBlcihzdHJpbmdJZCwgdGl0bGUsIHZhbHVlLCBiZWhhdmlvciwgcGxhY2Vob2xkZXIsIGRlc2NyaXB0aW9uLCBsYXlvdXQsIHZhbGlkYXRpb25zLCBjb21wb25lbnQsIHBhcmVudFRhc2tJZCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZWRGaWVsZHMkID0gbmV3IFN1YmplY3Q8Q2hhbmdlZEZpZWxkc01hcD4oKTtcbiAgICAgICAgdGhpcy5kb3dubG9hZGVkID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICB9XG5cbiAgICBnZXQgbWF4VXBsb2FkU2l6ZUluQnl0ZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFVwbG9hZFNpemVJbkJ5dGVzO1xuICAgIH1cblxuICAgIGdldCBhbGxvd1R5cGVzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxvd1R5cGVzIGluc3RhbmNlb2YgQXJyYXkgPyB0aGlzLl9hbGxvd1R5cGVzLnRvU3RyaW5nKCkgOiB0aGlzLl9hbGxvd1R5cGVzO1xuICAgIH1cblxuICAgIGdldCBjaGFuZ2VkRmllbGRzJCgpOiBPYnNlcnZhYmxlPENoYW5nZWRGaWVsZHNNYXA+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRGaWVsZHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2U6IENoYW5nZWRGaWVsZHNNYXApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkcyQubmV4dChjaGFuZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdlIGFzc3VtZSB0aGF0IGZpbGVzIGFyZSBhbHdheXMgZ2l2ZW4gaW4gdGhlIHNhbWUgb3JkZXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHZhbHVlRXF1YWxpdHkoYTogRmlsZUxpc3RGaWVsZFZhbHVlLCBiOiBGaWxlTGlzdEZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGFycmF5ID0gKEpTT04uc3RyaW5naWZ5KGEpID09PSAne30nIHx8ICFhLm5hbWVzUGF0aHMgfHwgYS5uYW1lc1BhdGhzLmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICAgICAgIChKU09OLnN0cmluZ2lmeShiKSA9PT0gJ3t9JyB8fCAhYi5uYW1lc1BhdGhzIHx8IGIubmFtZXNQYXRocy5sZW5ndGggPT09IDApO1xuICAgICAgICBpZiAoYSAmJiBhLm5hbWVzUGF0aHMgJiYgYS5uYW1lc1BhdGhzLmxlbmd0aCAhPT0gMCAmJiBiICYmIGIubmFtZXNQYXRocyAmJiBiLm5hbWVzUGF0aHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBhcnJheSA9IGEubmFtZXNQYXRocy5ldmVyeSgoZWxlbWVudCwgaW5kZXgpID0+IGVsZW1lbnQubmFtZSA9PT0gYi5uYW1lc1BhdGhzW2luZGV4XS5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCFhICYmICFiKSB8fCAoISFhICYmICEhYiAmJiBhcnJheSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRm9ybUNvbnRyb2woZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgZmllbGQgY2FuIGJlIGluaXRpYWxpemVkIG9ubHkgb25jZSEnXG4gICAgICAgICAgICAgICAgKyAnIERpc2Nvbm5lY3QgdGhlIHByZXZpb3VzIGZvcm0gY29udHJvbCBiZWZvcmUgaW5pdGlhbGl6aW5nIHRoZSBkYXRhIGZpZWxkIGFnYWluIScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbFJlZiA9IGZvcm1Db250cm9sO1xuICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMucmVzb2x2ZUZvcm1Db250cm9sVmFsaWRhdG9ycygpKTtcblxuICAgICAgICB0aGlzLl9teVZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5fdmFsdWUucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMudmFsdWVFcXVhbGl0eSlcbiAgICAgICAgKS5zdWJzY3JpYmUobmV3VmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWxpZCA9IHRoaXMuX2RldGVybWluZUZvcm1Db250cm9sVmFsaWRpdHkoZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoIW5ld1ZhbHVlIHx8ICFuZXdWYWx1ZS5uYW1lc1BhdGhzID8gJycgOiBuZXdWYWx1ZS5uYW1lc1BhdGhzLm1hcChuYW1lUGF0aCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVQYXRoLm5hbWU7XG4gICAgICAgICAgICB9KS5qb2luKCcvJykpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbFN0YXRlKGZvcm1Db250cm9sKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLndhaXRpbmdGb3JSZXNwb25zZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtQ29udHJvbFN0YXRlKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmliZVRvSW5uZXJTdWJqZWN0cyhmb3JtQ29udHJvbCk7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxufVxuIl19
@@ -8,7 +8,7 @@ import { Dashboard } from '../text-field/dashboard-portal-text-field/dashboard-v
8
8
  import { NAE_FILTER_FIELD } from './models/filter-field-injection-token';
9
9
  import { AbstractFilterFieldContentComponent } from './abstract-filter-field-content.component';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service";
11
+ import * as i1 from "../../registry/component-registry.service";
12
12
  import * as i2 from "../../search/search-service/search.service";
13
13
  import * as i3 from "./models/filter-field";
14
14
  export class AbstractFilterFieldTabViewContentComponent extends AbstractFilterFieldContentComponent {
@@ -45,7 +45,7 @@ export class AbstractFilterFieldTabViewContentComponent extends AbstractFilterFi
45
45
  this.componentPortal = this.registry.get(Dashboard.FILTER_TAB_VIEW_ID, portalInjector);
46
46
  }
47
47
  }
48
- AbstractFilterFieldTabViewContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewContentComponent, deps: [{ token: i1.DashboardPortalComponentRegistryService }, { token: i0.Injector }, { token: NAE_FILTER_FIELD }, { token: i2.SearchService }], target: i0.ɵɵFactoryTarget.Component });
48
+ AbstractFilterFieldTabViewContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewContentComponent, deps: [{ token: i1.ComponentRegistryService }, { token: i0.Injector }, { token: NAE_FILTER_FIELD }, { token: i2.SearchService }], target: i0.ɵɵFactoryTarget.Component });
49
49
  AbstractFilterFieldTabViewContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractFilterFieldTabViewContentComponent, selector: "ncc-abstract-filter-field-tab-view-content", usesInheritance: true, ngImport: i0, template: '', isInline: true });
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewContentComponent, decorators: [{
51
51
  type: Component,
@@ -53,8 +53,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
53
53
  selector: 'ncc-abstract-filter-field-tab-view-content',
54
54
  template: ''
55
55
  }]
56
- }], ctorParameters: function () { return [{ type: i1.DashboardPortalComponentRegistryService }, { type: i0.Injector }, { type: i3.FilterField, decorators: [{
56
+ }], ctorParameters: function () { return [{ type: i1.ComponentRegistryService }, { type: i0.Injector }, { type: i3.FilterField, decorators: [{
57
57
  type: Inject,
58
58
  args: [NAE_FILTER_FIELD]
59
59
  }] }, { type: i2.SearchService }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWx0ZXItZmllbGQvYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFNMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUUvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUFNaEcsTUFBTSxPQUFnQiwwQ0FBMkMsU0FBUSxtQ0FBbUM7SUFJeEcsWUFBZ0MsUUFBaUQsRUFDakQsUUFBa0IsRUFDRixXQUF3QixFQUNsRCxhQUE0QjtRQUM5QyxLQUFLLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBSkwsYUFBUSxHQUFSLFFBQVEsQ0FBeUM7UUFDakQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUlsRCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ25DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQzlCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxlQUFlO29CQUN4QixRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBZ0I7aUJBQ2xIO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxtQkFBbUI7b0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUTtpQkFDckg7Z0JBQ0QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7YUFBQztZQUN4RCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7d0lBckNpQiwwQ0FBMEMsaUdBTTlCLGdCQUFnQjs0SEFONUIsMENBQTBDLHlHQUZsRCxFQUFFOzRGQUVNLDBDQUEwQztrQkFKL0QsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBTzBCLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBEYXNoYm9hcmRQb3J0YWxDb21wb25lbnRSZWdpc3RyeVNlcnZpY2Vcbn0gZnJvbSAnLi4vdGV4dC1maWVsZC9kYXNoYm9hcmQtcG9ydGFsLXRleHQtZmllbGQvZGFzaGJvYXJkLXBvcnRhbC1jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJGaWVsZCB9IGZyb20gJy4vbW9kZWxzL2ZpbHRlci1maWVsZCc7XG5pbXBvcnQgeyBOQUVfQkFTRV9GSUxURVIgfSBmcm9tICcuLi8uLi9zZWFyY2gvbW9kZWxzL2Jhc2UtZmlsdGVyLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBTaW1wbGVGaWx0ZXIgfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL3NpbXBsZS1maWx0ZXInO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyLXR5cGUnO1xuaW1wb3J0IHsgTkFFX1ZJRVdfSURfU0VHTUVOVCB9IGZyb20gJy4uLy4uL3VzZXIvbW9kZWxzL3ZpZXctaWQtaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBWaWV3SWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy92aWV3LWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkIH0gZnJvbSAnLi4vdGV4dC1maWVsZC9kYXNoYm9hcmQtcG9ydGFsLXRleHQtZmllbGQvZGFzaGJvYXJkLXZpZXctY29uc3RhbnRzJztcbmltcG9ydCB7IEJhc2VGaWx0ZXIgfSBmcm9tICcuLi8uLi9zZWFyY2gvbW9kZWxzL2Jhc2UtZmlsdGVyJztcbmltcG9ydCB7IE5BRV9GSUxURVJfRklFTEQgfSBmcm9tICcuL21vZGVscy9maWx0ZXItZmllbGQtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2VhcmNoLXNlcnZpY2Uvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWx0ZXJGaWVsZENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWZpbHRlci1maWVsZC1jb250ZW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWZpbHRlci1maWVsZC10YWItdmlldy1jb250ZW50JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGaWx0ZXJGaWVsZFRhYlZpZXdDb250ZW50Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWx0ZXJGaWVsZENvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIGNvbXBvbmVudFBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlZ2lzdHJ5OiBEYXNoYm9hcmRQb3J0YWxDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBJbmplY3QoTkFFX0ZJTFRFUl9GSUVMRCkgZmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGZpbHRlckZpZWxkLCBzZWFyY2hTZXJ2aWNlKVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGaWx0ZXIoKTtcbiAgICAgICAgdGhpcy5fZmlsdGVyRmllbGQudmFsdWVDaGFuZ2VzKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlRmlsdGVyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNyZWF0ZUZpbHRlcigpIHtcbiAgICAgICAgY29uc3QgcG9ydGFsSW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBOQUVfRklMVEVSX0ZJRUxELFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogdGhpcy5fZmlsdGVyRmllbGRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTkFFX0JBU0VfRklMVEVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogeyBmaWx0ZXI6IFNpbXBsZUZpbHRlci5mcm9tUXVlcnkoeyBxdWVyeTogdGhpcy5fZmlsdGVyRmllbGQudmFsdWUgfSwgRmlsdGVyVHlwZS5DQVNFKSB9IGFzIEJhc2VGaWx0ZXJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTkFFX1ZJRVdfSURfU0VHTUVOVCxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMuX2ZpbHRlckZpZWxkLnBhcmVudENhc2VJZCArICdfJyArIHRoaXMuX2ZpbHRlckZpZWxkLnBhcmVudFRhc2tJZCArICdfJyArIHRoaXMuX2ZpbHRlckZpZWxkLnN0cmluZ0lkXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IFZpZXdJZFNlcnZpY2UsIHVzZUNsYXNzOiBWaWV3SWRTZXJ2aWNlIH1dLFxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFBvcnRhbCA9IHRoaXMucmVnaXN0cnkuZ2V0KERhc2hib2FyZC5GSUxURVJfVEFCX1ZJRVdfSUQsIHBvcnRhbEluamVjdG9yKTtcbiAgICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9maWx0ZXItZmllbGQvYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUUvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUFPaEcsTUFBTSxPQUFnQiwwQ0FBMkMsU0FBUSxtQ0FBbUM7SUFJeEcsWUFBZ0MsUUFBa0MsRUFDbEMsUUFBa0IsRUFDRixXQUF3QixFQUNsRCxhQUE0QjtRQUM5QyxLQUFLLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBSkwsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUlsRCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ25DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQzlCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxlQUFlO29CQUN4QixRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBZ0I7aUJBQ2xIO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxtQkFBbUI7b0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUTtpQkFDckg7Z0JBQ0QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7YUFBQztZQUN4RCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7d0lBckNpQiwwQ0FBMEMsa0ZBTTlCLGdCQUFnQjs0SEFONUIsMENBQTBDLHlHQUZsRCxFQUFFOzRGQUVNLDBDQUEwQztrQkFKL0QsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBTzBCLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgRmlsdGVyRmllbGQgfSBmcm9tICcuL21vZGVscy9maWx0ZXItZmllbGQnO1xuaW1wb3J0IHsgTkFFX0JBU0VfRklMVEVSIH0gZnJvbSAnLi4vLi4vc2VhcmNoL21vZGVscy9iYXNlLWZpbHRlci1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgU2ltcGxlRmlsdGVyIH0gZnJvbSAnLi4vLi4vZmlsdGVyL21vZGVscy9zaW1wbGUtZmlsdGVyJztcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9maWx0ZXIvbW9kZWxzL2ZpbHRlci10eXBlJztcbmltcG9ydCB7IE5BRV9WSUVXX0lEX1NFR01FTlQgfSBmcm9tICcuLi8uLi91c2VyL21vZGVscy92aWV3LWlkLWluamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgVmlld0lkU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZCB9IGZyb20gJy4uL3RleHQtZmllbGQvZGFzaGJvYXJkLXBvcnRhbC10ZXh0LWZpZWxkL2Rhc2hib2FyZC12aWV3LWNvbnN0YW50cyc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyIH0gZnJvbSAnLi4vLi4vc2VhcmNoL21vZGVscy9iYXNlLWZpbHRlcic7XG5pbXBvcnQgeyBOQUVfRklMVEVSX0ZJRUxEIH0gZnJvbSAnLi9tb2RlbHMvZmlsdGVyLWZpZWxkLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC1zZXJ2aWNlL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmlsdGVyRmllbGRDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1maWx0ZXItZmllbGQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtDb21wb25lbnRSZWdpc3RyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1maWx0ZXItZmllbGQtdGFiLXZpZXctY29udGVudCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsdGVyRmllbGRUYWJWaWV3Q29udGVudENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmlsdGVyRmllbGRDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBjb21wb25lbnRQb3J0YWw6IENvbXBvbmVudFBvcnRhbDxhbnk+O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWdpc3RyeTogQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBASW5qZWN0KE5BRV9GSUxURVJfRklFTEQpIGZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgICAgICBzdXBlcihmaWx0ZXJGaWVsZCwgc2VhcmNoU2VydmljZSlcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlRmlsdGVyKCk7XG4gICAgICAgIHRoaXMuX2ZpbHRlckZpZWxkLnZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUZpbHRlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjcmVhdGVGaWx0ZXIoKSB7XG4gICAgICAgIGNvbnN0IHBvcnRhbEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTkFFX0ZJTFRFUl9GSUVMRCxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMuX2ZpbHRlckZpZWxkXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5BRV9CQVNFX0ZJTFRFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHsgZmlsdGVyOiBTaW1wbGVGaWx0ZXIuZnJvbVF1ZXJ5KHsgcXVlcnk6IHRoaXMuX2ZpbHRlckZpZWxkLnZhbHVlIH0sIEZpbHRlclR5cGUuQ0FTRSkgfSBhcyBCYXNlRmlsdGVyXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5BRV9WSUVXX0lEX1NFR01FTlQsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLl9maWx0ZXJGaWVsZC5wYXJlbnRDYXNlSWQgKyAnXycgKyB0aGlzLl9maWx0ZXJGaWVsZC5wYXJlbnRUYXNrSWQgKyAnXycgKyB0aGlzLl9maWx0ZXJGaWVsZC5zdHJpbmdJZFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBWaWV3SWRTZXJ2aWNlLCB1c2VDbGFzczogVmlld0lkU2VydmljZSB9XSxcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvclxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRQb3J0YWwgPSB0aGlzLnJlZ2lzdHJ5LmdldChEYXNoYm9hcmQuRklMVEVSX1RBQl9WSUVXX0lELCBwb3J0YWxJbmplY3Rvcik7XG4gICAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { Dashboard } from '../text-field/dashboard-portal-text-field/dashboard-view-constants';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "../text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service";
4
+ import * as i1 from "../../registry/component-registry.service";
5
5
  import * as i2 from "./models/filter-field";
6
6
  export class AbstractFilterFieldTabViewComponent {
7
7
  constructor(_registry, _filterField, _tabContentComponent, _tabViewComponent) {
@@ -41,7 +41,7 @@ export class AbstractFilterFieldTabViewComponent {
41
41
  }
42
42
  ;
43
43
  }
44
- AbstractFilterFieldTabViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewComponent, deps: [{ token: i1.DashboardPortalComponentRegistryService }, { token: i2.FilterField }, { token: i0.Type }, { token: i0.Type }], target: i0.ɵɵFactoryTarget.Component });
44
+ AbstractFilterFieldTabViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewComponent, deps: [{ token: i1.ComponentRegistryService }, { token: i2.FilterField }, { token: i0.Type }, { token: i0.Type }], target: i0.ɵɵFactoryTarget.Component });
45
45
  AbstractFilterFieldTabViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractFilterFieldTabViewComponent, selector: "ncc-abstract-filter-field-tab-view", ngImport: i0, template: '', isInline: true });
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractFilterFieldTabViewComponent, decorators: [{
47
47
  type: Component,
@@ -49,5 +49,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
49
49
  selector: 'ncc-abstract-filter-field-tab-view',
50
50
  template: ''
51
51
  }]
52
- }], ctorParameters: function () { return [{ type: i1.DashboardPortalComponentRegistryService }, { type: i2.FilterField }, { type: i0.Type }, { type: i0.Type }]; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvZmlsdGVyLWZpZWxkL2Fic3RyYWN0LWZpbHRlci1maWVsZC10YWItdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUtoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7Ozs7QUFPL0YsTUFBTSxPQUFnQixtQ0FBbUM7SUFJckQsWUFBc0IsU0FBa0QsRUFDbEQsWUFBeUIsRUFDekIsb0JBQWdDLEVBQ2hDLGlCQUE2QjtRQUg3QixjQUFTLEdBQVQsU0FBUyxDQUF5QztRQUNsRCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVk7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFZO1FBRS9DLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDUjtnQkFDSSxLQUFLLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSztvQkFDdEcsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLE1BQU07aUJBQ3ZGO2dCQUNELFdBQVcsRUFBRSxLQUFLO2dCQUNsQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQy9DLGNBQWMsRUFBRTtvQkFDWixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3pDLFlBQVksRUFBRSxDQUFDO2lCQUNsQjthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsSUFBSSxtQkFBbUIsR0FBYyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFFL0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDekQsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUE7U0FDOUU7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7SUFBQSxDQUFDO0lBRUssZ0JBQWdCO1FBQ25CLElBQUksZ0JBQWdCLEdBQWMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRXpELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ3pELGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1NBQzNFO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0lBQUEsQ0FBQzs7aUlBekNnQixtQ0FBbUM7cUhBQW5DLG1DQUFtQywwRUFGM0MsRUFBRTs0RkFFTSxtQ0FBbUM7a0JBSnhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYkNvbnRlbnQgfSBmcm9tICcuLi8uLi90YWJzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBEYXNoYm9hcmRQb3J0YWxDb21wb25lbnRSZWdpc3RyeVNlcnZpY2Vcbn0gZnJvbSAnLi4vdGV4dC1maWVsZC9kYXNoYm9hcmQtcG9ydGFsLXRleHQtZmllbGQvZGFzaGJvYXJkLXBvcnRhbC1jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmQgfSBmcm9tICcuLi90ZXh0LWZpZWxkL2Rhc2hib2FyZC1wb3J0YWwtdGV4dC1maWVsZC9kYXNoYm9hcmQtdmlldy1jb25zdGFudHMnO1xuaW1wb3J0IHsgRmlsdGVyRmllbGQgfSBmcm9tICcuL21vZGVscy9maWx0ZXItZmllbGQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1maWx0ZXItZmllbGQtdGFiLXZpZXcnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZpbHRlckZpZWxkVGFiVmlld0NvbXBvbmVudCB7XG5cbiAgICBwdWJsaWMgdGFiczogQXJyYXk8VGFiQ29udGVudD47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3JlZ2lzdHJ5OiBEYXNoYm9hcmRQb3J0YWxDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maWx0ZXJGaWVsZDogRmlsdGVyRmllbGQsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YWJDb250ZW50Q29tcG9uZW50PzogVHlwZTxhbnk+LFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFiVmlld0NvbXBvbmVudD86IFR5cGU8YW55Pikge1xuXG4gICAgICAgIHRoaXMudGFicyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDoge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLl9maWx0ZXJGaWVsZC5maWx0ZXJNZXRhZGF0YVtEYXNoYm9hcmQuRklMVEVSX1RBQl9WSUVXX1RJVExFX0tFWV0gPz8gdGhpcy5fZmlsdGVyRmllbGQudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGljb246IHRoaXMuX2ZpbHRlckZpZWxkLmZpbHRlck1ldGFkYXRhW0Rhc2hib2FyZC5GSUxURVJfVEFCX1ZJRVdfSUNPTl9LRVldID8/ICdob21lJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY2FuQmVDbG9zZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRhYkNvbnRlbnRDb21wb25lbnQ6IHRoaXMudGFiQ29udGVudENvbXBvbmVudCgpLFxuICAgICAgICAgICAgICAgIGluamVjdGVkT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRhYlZpZXdDb21wb25lbnQ6IHRoaXMudGFiVmlld0NvbXBvbmVudCgpLFxuICAgICAgICAgICAgICAgICAgICB0YWJWaWV3T3JkZXI6IDAsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyB0YWJDb250ZW50Q29tcG9uZW50KCk6IFR5cGU8YW55PiB7XG4gICAgICAgIGxldCB0YWJDb250ZW50Q29tcG9uZW50OiBUeXBlPGFueT4gPSB0aGlzLl90YWJDb250ZW50Q29tcG9uZW50O1xuXG4gICAgICAgIGlmICghIXRoaXMuX3JlZ2lzdHJ5LmdldFR5cGUoRGFzaGJvYXJkLkZJTFRFUl9DQVNFX1ZJRVdfSUQpKSB7XG4gICAgICAgICAgICB0YWJDb250ZW50Q29tcG9uZW50ID0gdGhpcy5fcmVnaXN0cnkuZ2V0VHlwZShEYXNoYm9hcmQuRklMVEVSX0NBU0VfVklFV19JRClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFiQ29udGVudENvbXBvbmVudDtcbiAgICB9O1xuXG4gICAgcHVibGljIHRhYlZpZXdDb21wb25lbnQoKTogVHlwZTxhbnk+IHtcbiAgICAgICAgbGV0IHRhYlZpZXdDb21wb25lbnQ6IFR5cGU8YW55PiA9IHRoaXMuX3RhYlZpZXdDb21wb25lbnQ7XG5cbiAgICAgICAgaWYgKCEhdGhpcy5fcmVnaXN0cnkuZ2V0VHlwZShEYXNoYm9hcmQuRklMVEVSX1RBU0tfVklFV19JRCkpIHtcbiAgICAgICAgICAgIHRhYlZpZXdDb21wb25lbnQgPSB0aGlzLl9yZWdpc3RyeS5nZXRUeXBlKERhc2hib2FyZC5GSUxURVJfVEFTS19WSUVXX0lEKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YWJWaWV3Q29tcG9uZW50O1xuICAgIH07XG59XG4iXX0=
52
+ }], ctorParameters: function () { return [{ type: i1.ComponentRegistryService }, { type: i2.FilterField }, { type: i0.Type }, { type: i0.Type }]; } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsdGVyLWZpZWxkLXRhYi12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvZmlsdGVyLWZpZWxkL2Fic3RyYWN0LWZpbHRlci1maWVsZC10YWItdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUdoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7Ozs7QUFRL0YsTUFBTSxPQUFnQixtQ0FBbUM7SUFJckQsWUFBc0IsU0FBbUMsRUFDbkMsWUFBeUIsRUFDekIsb0JBQWdDLEVBQ2hDLGlCQUE2QjtRQUg3QixjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVk7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFZO1FBRS9DLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDUjtnQkFDSSxLQUFLLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSztvQkFDdEcsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLE1BQU07aUJBQ3ZGO2dCQUNELFdBQVcsRUFBRSxLQUFLO2dCQUNsQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQy9DLGNBQWMsRUFBRTtvQkFDWixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3pDLFlBQVksRUFBRSxDQUFDO2lCQUNsQjthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsSUFBSSxtQkFBbUIsR0FBYyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFFL0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDekQsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUE7U0FDOUU7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7SUFBQSxDQUFDO0lBRUssZ0JBQWdCO1FBQ25CLElBQUksZ0JBQWdCLEdBQWMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRXpELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ3pELGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1NBQzNFO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0lBQUEsQ0FBQzs7aUlBekNnQixtQ0FBbUM7cUhBQW5DLG1DQUFtQywwRUFGM0MsRUFBRTs0RkFFTSxtQ0FBbUM7a0JBSnhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYkNvbnRlbnQgfSBmcm9tICcuLi8uLi90YWJzL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBEYXNoYm9hcmQgfSBmcm9tICcuLi90ZXh0LWZpZWxkL2Rhc2hib2FyZC1wb3J0YWwtdGV4dC1maWVsZC9kYXNoYm9hcmQtdmlldy1jb25zdGFudHMnO1xuaW1wb3J0IHsgRmlsdGVyRmllbGQgfSBmcm9tICcuL21vZGVscy9maWx0ZXItZmllbGQnO1xuaW1wb3J0IHtDb21wb25lbnRSZWdpc3RyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1maWx0ZXItZmllbGQtdGFiLXZpZXcnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZpbHRlckZpZWxkVGFiVmlld0NvbXBvbmVudCB7XG5cbiAgICBwdWJsaWMgdGFiczogQXJyYXk8VGFiQ29udGVudD47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3JlZ2lzdHJ5OiBDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maWx0ZXJGaWVsZDogRmlsdGVyRmllbGQsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YWJDb250ZW50Q29tcG9uZW50PzogVHlwZTxhbnk+LFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFiVmlld0NvbXBvbmVudD86IFR5cGU8YW55Pikge1xuXG4gICAgICAgIHRoaXMudGFicyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDoge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLl9maWx0ZXJGaWVsZC5maWx0ZXJNZXRhZGF0YVtEYXNoYm9hcmQuRklMVEVSX1RBQl9WSUVXX1RJVExFX0tFWV0gPz8gdGhpcy5fZmlsdGVyRmllbGQudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGljb246IHRoaXMuX2ZpbHRlckZpZWxkLmZpbHRlck1ldGFkYXRhW0Rhc2hib2FyZC5GSUxURVJfVEFCX1ZJRVdfSUNPTl9LRVldID8/ICdob21lJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY2FuQmVDbG9zZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRhYkNvbnRlbnRDb21wb25lbnQ6IHRoaXMudGFiQ29udGVudENvbXBvbmVudCgpLFxuICAgICAgICAgICAgICAgIGluamVjdGVkT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRhYlZpZXdDb21wb25lbnQ6IHRoaXMudGFiVmlld0NvbXBvbmVudCgpLFxuICAgICAgICAgICAgICAgICAgICB0YWJWaWV3T3JkZXI6IDAsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyB0YWJDb250ZW50Q29tcG9uZW50KCk6IFR5cGU8YW55PiB7XG4gICAgICAgIGxldCB0YWJDb250ZW50Q29tcG9uZW50OiBUeXBlPGFueT4gPSB0aGlzLl90YWJDb250ZW50Q29tcG9uZW50O1xuXG4gICAgICAgIGlmICghIXRoaXMuX3JlZ2lzdHJ5LmdldFR5cGUoRGFzaGJvYXJkLkZJTFRFUl9DQVNFX1ZJRVdfSUQpKSB7XG4gICAgICAgICAgICB0YWJDb250ZW50Q29tcG9uZW50ID0gdGhpcy5fcmVnaXN0cnkuZ2V0VHlwZShEYXNoYm9hcmQuRklMVEVSX0NBU0VfVklFV19JRClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFiQ29udGVudENvbXBvbmVudDtcbiAgICB9O1xuXG4gICAgcHVibGljIHRhYlZpZXdDb21wb25lbnQoKTogVHlwZTxhbnk+IHtcbiAgICAgICAgbGV0IHRhYlZpZXdDb21wb25lbnQ6IFR5cGU8YW55PiA9IHRoaXMuX3RhYlZpZXdDb21wb25lbnQ7XG5cbiAgICAgICAgaWYgKCEhdGhpcy5fcmVnaXN0cnkuZ2V0VHlwZShEYXNoYm9hcmQuRklMVEVSX1RBU0tfVklFV19JRCkpIHtcbiAgICAgICAgICAgIHRhYlZpZXdDb21wb25lbnQgPSB0aGlzLl9yZWdpc3RyeS5nZXRUeXBlKERhc2hib2FyZC5GSUxURVJfVEFTS19WSUVXX0lEKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YWJWaWV3Q29tcG9uZW50O1xuICAgIH07XG59XG4iXX0=