@netgrif/components-core 6.3.2 → 6.4.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/esm2020/assets/i18n/de.json +15 -2
  2. package/esm2020/assets/i18n/en.json +15 -2
  3. package/esm2020/assets/i18n/sk.json +15 -2
  4. package/esm2020/lib/actions/front-action.module.mjs +28 -0
  5. package/esm2020/lib/actions/model/front-action-definition.mjs +2 -0
  6. package/esm2020/lib/actions/model/router-action-definitions.mjs +8 -0
  7. package/esm2020/lib/actions/model/task-action-definitions.mjs +16 -0
  8. package/esm2020/lib/actions/public-api.mjs +6 -0
  9. package/esm2020/lib/actions/services/front-action.service.mjs +27 -0
  10. package/esm2020/lib/data-fields/base-component/abstract-base-data-field.component.mjs +51 -0
  11. package/esm2020/lib/data-fields/boolean-field/abstract-boolean-field.component.mjs +7 -26
  12. package/esm2020/lib/data-fields/boolean-field/boolean-default-field/abstract-boolean-default-field.component.mjs +46 -0
  13. package/esm2020/lib/data-fields/boolean-field/models/boolean-field.mjs +9 -1
  14. package/esm2020/lib/data-fields/button-field/abstract-button-field.component.mjs +7 -39
  15. package/esm2020/lib/data-fields/button-field/button-default-field/abstract-button-default-field.component.mjs +58 -0
  16. package/esm2020/lib/data-fields/button-field/models/button-field.mjs +5 -1
  17. package/esm2020/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.mjs +75 -0
  18. package/esm2020/lib/data-fields/case-ref-field/model/case-ref-field.mjs +11 -0
  19. package/esm2020/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.mjs +5 -0
  20. package/esm2020/lib/data-fields/data-field-template/abstract-data-field-template.component.mjs +51 -6
  21. package/esm2020/lib/data-fields/data-fields.module.mjs +1 -1
  22. package/esm2020/lib/data-fields/date-field/abstract-date-field.component.mjs +10 -21
  23. package/esm2020/lib/data-fields/date-field/date-default-field/abstract-date-default-field.component.mjs +29 -0
  24. package/esm2020/lib/data-fields/date-field/models/date-field.mjs +5 -1
  25. package/esm2020/lib/data-fields/date-time-field/abstract-date-time-field.component.mjs +10 -21
  26. package/esm2020/lib/data-fields/date-time-field/date-time-default-field/abstract-date-time-default-field.component.mjs +29 -0
  27. package/esm2020/lib/data-fields/date-time-field/models/date-time-field.mjs +5 -1
  28. package/esm2020/lib/data-fields/enumeration-field/abstract-enumeration-field.component.mjs +4 -1
  29. package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.mjs +23 -20
  30. package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.mjs +20 -21
  31. package/esm2020/lib/data-fields/enumeration-field/enumeration-caseref-field/abstract-enumeration-caseref-field.component.mjs +71 -0
  32. package/esm2020/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.mjs +26 -19
  33. package/esm2020/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.mjs +16 -12
  34. package/esm2020/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.mjs +16 -12
  35. package/esm2020/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.mjs +26 -21
  36. package/esm2020/lib/data-fields/enumeration-field/models/enumeration-field.mjs +21 -1
  37. package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +11 -420
  38. package/esm2020/lib/data-fields/file-field/file-default-field/abstract-file-default-field.component.mjs +456 -0
  39. package/esm2020/lib/data-fields/file-field/models/file-field-constants.mjs +5 -0
  40. package/esm2020/lib/data-fields/file-field/models/file-field.mjs +6 -1
  41. package/esm2020/lib/data-fields/file-list-field/abstract-file-list-field.component.mjs +11 -278
  42. package/esm2020/lib/data-fields/file-list-field/file-list-default-field/abstract-file-list-default-field.component.mjs +304 -0
  43. package/esm2020/lib/data-fields/file-list-field/models/file-list-field.mjs +6 -1
  44. package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.mjs +4 -4
  45. package/esm2020/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.mjs +4 -4
  46. package/esm2020/lib/data-fields/filter-field/abstract-filter-field.component.mjs +8 -20
  47. package/esm2020/lib/data-fields/filter-field/filter-default-field/abstract-filter-default-field.component.mjs +38 -0
  48. package/esm2020/lib/data-fields/filter-field/models/filter-field.mjs +5 -1
  49. package/esm2020/lib/data-fields/i18n-field/abstract-i18n-errors.component.mjs +18 -16
  50. package/esm2020/lib/data-fields/i18n-field/abstract-i18n-field.component.mjs +4 -1
  51. package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.mjs +24 -20
  52. package/esm2020/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.mjs +35 -32
  53. package/esm2020/lib/data-fields/i18n-field/models/i18n-field.mjs +6 -2
  54. package/esm2020/lib/data-fields/models/abstract-data-field-component.mjs +4 -1
  55. package/esm2020/lib/data-fields/models/abstract-data-field.mjs +14 -2
  56. package/esm2020/lib/data-fields/models/changed-fields.mjs +1 -1
  57. package/esm2020/lib/data-fields/models/component.mjs +22 -2
  58. package/esm2020/lib/data-fields/models/data-field-portal-data-injection-token.mjs +3 -0
  59. package/esm2020/lib/data-fields/models/update-strategy.mjs +7 -0
  60. package/esm2020/lib/data-fields/multichoice-field/abstract-multichoice-field.component.mjs +4 -1
  61. package/esm2020/lib/data-fields/multichoice-field/models/multichoice-field.mjs +17 -1
  62. package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.mjs +30 -30
  63. package/esm2020/lib/data-fields/multichoice-field/multichoice-caseref-field/abstract-multichoice-caseref-field.component.mjs +67 -0
  64. package/esm2020/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.mjs +16 -12
  65. package/esm2020/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.mjs +16 -12
  66. package/esm2020/lib/data-fields/number-field/abstract-number-errors.component.mjs +17 -15
  67. package/esm2020/lib/data-fields/number-field/abstract-number-field.component.mjs +4 -1
  68. package/esm2020/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.mjs +21 -15
  69. package/esm2020/lib/data-fields/number-field/models/number-field.mjs +5 -1
  70. package/esm2020/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.mjs +12 -6
  71. package/esm2020/lib/data-fields/public-api.mjs +21 -2
  72. package/esm2020/lib/data-fields/string-collection-field/models/string-collection-field.mjs +11 -0
  73. package/esm2020/lib/data-fields/string-collection-field/string-collection-default-field/abstract-string-collection-default-field.component.mjs +60 -0
  74. package/esm2020/lib/data-fields/task-ref-field/abstract-task-ref-field.component.mjs +10 -116
  75. package/esm2020/lib/data-fields/task-ref-field/model/task-ref-field.mjs +5 -1
  76. package/esm2020/lib/data-fields/task-ref-field/task-ref-dashboard-field/abstract-task-ref-dashboard-field.component.mjs +130 -0
  77. package/esm2020/lib/data-fields/task-ref-field/task-ref-list-field/abstract-task-ref-list-field.component.mjs +54 -0
  78. package/esm2020/lib/data-fields/text-field/abstract-dashboard-text-field.component.mjs +14 -14
  79. package/esm2020/lib/data-fields/text-field/abstract-text-errors.component.mjs +23 -3
  80. package/esm2020/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.mjs +12 -6
  81. package/esm2020/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.mjs +12 -6
  82. package/esm2020/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.mjs +12 -6
  83. package/esm2020/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.mjs +12 -6
  84. package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.mjs +12 -6
  85. package/esm2020/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.mjs +16 -16
  86. package/esm2020/lib/data-fields/text-field/models/text-field.mjs +8 -4
  87. package/esm2020/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.mjs +14 -14
  88. package/esm2020/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.mjs +14 -14
  89. package/esm2020/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.mjs +14 -14
  90. package/esm2020/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.mjs +17 -17
  91. package/esm2020/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.mjs +13 -38
  92. package/esm2020/lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field.mjs +5 -5
  93. package/esm2020/lib/data-fields/user-field/abstract-user-field.component.mjs +7 -42
  94. package/esm2020/lib/data-fields/user-field/models/user-field.mjs +5 -1
  95. package/esm2020/lib/data-fields/user-field/user-default-field/abstract-user-default-field.component.mjs +70 -0
  96. package/esm2020/lib/data-fields/user-list-field/abstract-user-list-field.component.mjs +7 -45
  97. package/esm2020/lib/data-fields/user-list-field/models/user-list-field.mjs +5 -1
  98. package/esm2020/lib/data-fields/user-list-field/user-list-default-field/abstract-user-list-default-field.component.mjs +60 -0
  99. package/esm2020/lib/dialog/injection-tokens.mjs +10 -0
  100. package/esm2020/lib/dialog/public-api.mjs +2 -1
  101. package/esm2020/lib/event/model/event-constants.mjs +5 -1
  102. package/esm2020/lib/event/services/event.service.mjs +23 -1
  103. package/esm2020/lib/filter/models/case-search-request-body.mjs +1 -1
  104. package/esm2020/lib/filter/models/task-search-request-body.mjs +1 -1
  105. package/esm2020/lib/filter/user-filters.service.mjs +22 -15
  106. package/esm2020/lib/header/abstract-header.component.mjs +28 -7
  107. package/esm2020/lib/header/header-modes/abstract-header-mode.component.mjs +10 -2
  108. package/esm2020/lib/impersonation/services/impersonation-user-select.service.mjs +24 -17
  109. package/esm2020/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.mjs +1 -10
  110. package/esm2020/lib/navigation/model/group-navigation-constants.mjs +120 -35
  111. package/esm2020/lib/navigation/model/navigation-configs.mjs +16 -0
  112. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +239 -127
  113. package/esm2020/lib/navigation/navigation-tree/abstract-navigation-tree.component.mjs +3 -126
  114. package/esm2020/lib/navigation/public-api.mjs +2 -1
  115. package/esm2020/lib/navigation/service/uri.service.mjs +24 -3
  116. package/esm2020/lib/navigation/utility/filter-extraction.service.mjs +34 -10
  117. package/esm2020/lib/navigation/utility/navigation-item-task-utility-methods.mjs +38 -4
  118. package/esm2020/lib/panel/case-panel/abstract-case-panel.component.mjs +9 -2
  119. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +33 -4
  120. package/esm2020/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.mjs +18 -2
  121. package/esm2020/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.mjs +5 -3
  122. package/esm2020/lib/panel/task-panel-single/abstract-single-task.component.mjs +11 -5
  123. package/esm2020/lib/panel/workflow-panel/abstract-workflow-panel.component.mjs +6 -2
  124. package/esm2020/lib/public/factories/public-search-factory.mjs +15 -4
  125. package/esm2020/lib/registry/component-registry.service.mjs +38 -0
  126. package/esm2020/lib/registry/front-action-registry.service.mjs +34 -0
  127. package/esm2020/lib/registry/public-api.mjs +3 -0
  128. package/esm2020/lib/resources/interface/case-get-request-body.mjs +1 -1
  129. package/esm2020/lib/resources/interface/event-outcome.mjs +1 -1
  130. package/esm2020/lib/routing/routing-builder/routing-builder.service.mjs +7 -5
  131. package/esm2020/lib/search/fulltext-search-component/abstract-fulltext-search.component.mjs +14 -4
  132. package/esm2020/lib/search/search-component/abstract-search.component.mjs +5 -3
  133. package/esm2020/lib/side-menu/content-components/import-net/abstract-import-net.component.mjs +10 -7
  134. package/esm2020/lib/side-menu/content-components/injection-tokens.mjs +2 -1
  135. package/esm2020/lib/side-menu/content-components/new-case/abstract-new-case.component.mjs +1 -6
  136. package/esm2020/lib/side-menu/content-components/new-case/model/new-case-injection-data.mjs +1 -1
  137. package/esm2020/lib/side-menu/content-components/public-api.mjs +3 -1
  138. package/esm2020/lib/side-menu/content-components/task-view/model/task-view-injection-data.mjs +2 -0
  139. package/esm2020/lib/side-menu/models/side-menu-control.mjs +2 -10
  140. package/esm2020/lib/tabs/classes/tab-view.mjs +3 -2
  141. package/esm2020/lib/task/services/task-data.service.mjs +30 -28
  142. package/esm2020/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.mjs +24 -5
  143. package/esm2020/lib/task-content/model/field-type-resource.mjs +3 -1
  144. package/esm2020/lib/task-content/services/field-converter.service.mjs +14 -2
  145. package/esm2020/lib/task-content/services/single-task-content.service.mjs +4 -4
  146. package/esm2020/lib/task-content/services/task-content.service.mjs +25 -22
  147. package/esm2020/lib/task-content/services/unlimited-task-content.service.mjs +4 -4
  148. package/esm2020/lib/task-content/task-content/abstract-task-content.component.mjs +20 -7
  149. package/esm2020/lib/utility/navigation-item-default-headers-factory.mjs +27 -0
  150. package/esm2020/lib/utility/public-api.mjs +2 -1
  151. package/esm2020/lib/view/abstract/netgrif-paginator-intl.mjs +36 -0
  152. package/esm2020/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.mjs +8 -4
  153. package/esm2020/lib/view/case-view/components/default-case-list/abstract-default-case-list.component.mjs +18 -5
  154. package/esm2020/lib/view/case-view/service/case-view-service.mjs +28 -20
  155. package/esm2020/lib/view/case-view/tabbed-case-view.mjs +1 -1
  156. package/esm2020/lib/view/public-api.mjs +2 -1
  157. package/esm2020/lib/view/task-view/abstract-single-task-view.component.mjs +18 -34
  158. package/esm2020/lib/view/workflow-view/abstract-workflow-view.component.mjs +20 -11
  159. package/esm2020/lib/view/workflow-view/workflow-view.service.mjs +2 -2
  160. package/esm2020/public-api.mjs +3 -2
  161. package/fesm2015/netgrif-components-core.mjs +4583 -3179
  162. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  163. package/fesm2020/netgrif-components-core.mjs +4278 -2981
  164. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  165. package/lib/actions/front-action.module.d.ts +9 -0
  166. package/lib/actions/model/front-action-definition.d.ts +5 -0
  167. package/lib/actions/model/router-action-definitions.d.ts +2 -0
  168. package/lib/actions/model/task-action-definitions.d.ts +3 -0
  169. package/lib/actions/public-api.d.ts +5 -0
  170. package/lib/actions/services/front-action.service.d.ts +15 -0
  171. package/lib/data-fields/base-component/abstract-base-data-field.component.d.ts +18 -0
  172. package/lib/data-fields/boolean-field/abstract-boolean-field.component.d.ts +5 -7
  173. package/lib/data-fields/boolean-field/boolean-default-field/abstract-boolean-default-field.component.d.ts +14 -0
  174. package/lib/data-fields/boolean-field/models/boolean-field.d.ts +3 -0
  175. package/lib/data-fields/button-field/abstract-button-field.component.d.ts +5 -16
  176. package/lib/data-fields/button-field/button-default-field/abstract-button-default-field.component.d.ts +23 -0
  177. package/lib/data-fields/button-field/models/button-field.d.ts +1 -0
  178. package/lib/data-fields/case-ref-field/case-ref-default/case-ref-default.component.d.ts +19 -0
  179. package/lib/data-fields/case-ref-field/model/case-ref-field.d.ts +9 -0
  180. package/lib/data-fields/case-ref-field/model/case-ref-injection-tokens.d.ts +5 -0
  181. package/lib/data-fields/data-field-template/abstract-data-field-template.component.d.ts +22 -3
  182. package/lib/data-fields/date-field/abstract-date-field.component.d.ts +7 -12
  183. package/lib/data-fields/date-field/date-default-field/abstract-date-default-field.component.d.ts +12 -0
  184. package/lib/data-fields/date-field/models/date-field.d.ts +1 -0
  185. package/lib/data-fields/date-time-field/abstract-date-time-field.component.d.ts +7 -12
  186. package/lib/data-fields/date-time-field/date-time-default-field/abstract-date-time-default-field.component.d.ts +12 -0
  187. package/lib/data-fields/date-time-field/models/date-time-field.d.ts +1 -0
  188. package/lib/data-fields/enumeration-field/abstract-enumeration-field.component.d.ts +3 -0
  189. package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.d.ts +8 -10
  190. package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.d.ts +6 -10
  191. package/lib/data-fields/enumeration-field/enumeration-caseref-field/abstract-enumeration-caseref-field.component.d.ts +19 -0
  192. package/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.d.ts +9 -9
  193. package/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.d.ts +6 -8
  194. package/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.d.ts +6 -8
  195. package/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.d.ts +8 -9
  196. package/lib/data-fields/enumeration-field/models/enumeration-field.d.ts +8 -1
  197. package/lib/data-fields/file-field/abstract-file-field.component.d.ts +9 -147
  198. package/lib/data-fields/file-field/file-default-field/abstract-file-default-field.component.d.ts +151 -0
  199. package/lib/data-fields/file-field/models/file-field-constants.d.ts +4 -0
  200. package/lib/data-fields/file-field/models/file-field.d.ts +1 -0
  201. package/lib/data-fields/file-list-field/abstract-file-list-field.component.d.ts +8 -71
  202. package/lib/data-fields/file-list-field/file-list-default-field/abstract-file-list-default-field.component.d.ts +76 -0
  203. package/lib/data-fields/file-list-field/models/file-list-field.d.ts +1 -0
  204. package/lib/data-fields/filter-field/abstract-filter-field-tab-view-content.component.d.ts +3 -3
  205. package/lib/data-fields/filter-field/abstract-filter-field-tab-view.component.d.ts +3 -3
  206. package/lib/data-fields/filter-field/abstract-filter-field.component.d.ts +6 -11
  207. package/lib/data-fields/filter-field/filter-default-field/abstract-filter-default-field.component.d.ts +18 -0
  208. package/lib/data-fields/filter-field/models/filter-field.d.ts +1 -0
  209. package/lib/data-fields/i18n-field/abstract-i18n-errors.component.d.ts +6 -9
  210. package/lib/data-fields/i18n-field/abstract-i18n-field.component.d.ts +3 -0
  211. package/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.d.ts +6 -8
  212. package/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.d.ts +5 -8
  213. package/lib/data-fields/i18n-field/models/i18n-field.d.ts +1 -0
  214. package/lib/data-fields/models/abstract-data-field-component.d.ts +1 -0
  215. package/lib/data-fields/models/abstract-data-field.d.ts +9 -0
  216. package/lib/data-fields/models/changed-fields.d.ts +7 -6
  217. package/lib/data-fields/models/component.d.ts +20 -0
  218. package/lib/data-fields/models/data-field-portal-data-injection-token.d.ts +13 -0
  219. package/lib/data-fields/models/update-strategy.d.ts +6 -0
  220. package/lib/data-fields/multichoice-field/abstract-multichoice-field.component.d.ts +3 -0
  221. package/lib/data-fields/multichoice-field/models/multichoice-field.d.ts +7 -0
  222. package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.d.ts +6 -9
  223. package/lib/data-fields/multichoice-field/multichoice-caseref-field/abstract-multichoice-caseref-field.component.d.ts +16 -0
  224. package/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.d.ts +6 -7
  225. package/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.d.ts +6 -8
  226. package/lib/data-fields/number-field/abstract-number-errors.component.d.ts +6 -9
  227. package/lib/data-fields/number-field/abstract-number-field.component.d.ts +3 -0
  228. package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +4 -2
  229. package/lib/data-fields/number-field/models/number-field.d.ts +1 -0
  230. package/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.d.ts +4 -2
  231. package/lib/data-fields/public-api.d.ts +20 -1
  232. package/lib/data-fields/string-collection-field/models/string-collection-field.d.ts +9 -0
  233. package/lib/data-fields/string-collection-field/string-collection-default-field/abstract-string-collection-default-field.component.d.ts +18 -0
  234. package/lib/data-fields/task-ref-field/abstract-task-ref-field.component.d.ts +6 -13
  235. package/lib/data-fields/task-ref-field/model/task-ref-field.d.ts +1 -0
  236. package/lib/data-fields/task-ref-field/task-ref-dashboard-field/abstract-task-ref-dashboard-field.component.d.ts +20 -0
  237. package/lib/data-fields/task-ref-field/task-ref-list-field/abstract-task-ref-list-field.component.d.ts +16 -0
  238. package/lib/data-fields/text-field/abstract-dashboard-text-field.component.d.ts +7 -10
  239. package/lib/data-fields/text-field/abstract-text-errors.component.d.ts +7 -2
  240. package/lib/data-fields/text-field/dashboard-bar-chart-text-field/abstract-dashboard-bar-chart-text-field.component.d.ts +4 -2
  241. package/lib/data-fields/text-field/dashboard-iframe-text-field/abstract-dashboard-iframe-text-field.component.d.ts +4 -2
  242. package/lib/data-fields/text-field/dashboard-line-chart-text-field/abstract-dashboard-line-chart-text-field.component.d.ts +4 -2
  243. package/lib/data-fields/text-field/dashboard-pie-chart-text-field/abstract-dashboard-pie-chart-text-field.component.d.ts +4 -2
  244. package/lib/data-fields/text-field/dashboard-portal-text-field/abstract-dashboard-portal-text-field.component.d.ts +4 -2
  245. package/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.d.ts +5 -9
  246. package/lib/data-fields/text-field/models/text-field.d.ts +3 -2
  247. package/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.d.ts +5 -9
  248. package/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.d.ts +5 -9
  249. package/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.d.ts +5 -9
  250. package/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.d.ts +6 -9
  251. package/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.d.ts +6 -15
  252. package/lib/data-fields/user-field/abstract-user-field.component.d.ts +5 -28
  253. package/lib/data-fields/user-field/models/user-field.d.ts +1 -0
  254. package/lib/data-fields/user-field/user-default-field/abstract-user-default-field.component.d.ts +34 -0
  255. package/lib/data-fields/user-list-field/abstract-user-list-field.component.d.ts +5 -25
  256. package/lib/data-fields/user-list-field/models/user-list-field.d.ts +1 -0
  257. package/lib/data-fields/user-list-field/user-list-default-field/abstract-user-list-default-field.component.d.ts +24 -0
  258. package/lib/dialog/injection-tokens.d.ts +10 -0
  259. package/lib/dialog/public-api.d.ts +1 -0
  260. package/lib/event/model/event-constants.d.ts +5 -1
  261. package/lib/event/services/event.service.d.ts +3 -0
  262. package/lib/filter/models/case-search-request-body.d.ts +3 -0
  263. package/lib/filter/models/task-search-request-body.d.ts +9 -0
  264. package/lib/filter/user-filters.service.d.ts +4 -2
  265. package/lib/header/abstract-header.component.d.ts +10 -2
  266. package/lib/header/header-modes/abstract-header-mode.component.d.ts +6 -1
  267. package/lib/impersonation/services/impersonation-user-select.service.d.ts +3 -3
  268. package/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.d.ts +0 -1
  269. package/lib/navigation/model/group-navigation-constants.d.ts +119 -34
  270. package/lib/navigation/model/navigation-configs.d.ts +25 -0
  271. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +42 -39
  272. package/lib/navigation/navigation-tree/abstract-navigation-tree.component.d.ts +2 -27
  273. package/lib/navigation/public-api.d.ts +1 -0
  274. package/lib/navigation/service/uri.service.d.ts +6 -0
  275. package/lib/navigation/utility/filter-extraction.service.d.ts +9 -2
  276. package/lib/navigation/utility/navigation-item-task-utility-methods.d.ts +16 -1
  277. package/lib/panel/case-panel/abstract-case-panel.component.d.ts +5 -1
  278. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +9 -3
  279. package/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.d.ts +5 -2
  280. package/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.d.ts +2 -1
  281. package/lib/panel/task-panel-single/abstract-single-task.component.d.ts +5 -3
  282. package/lib/panel/workflow-panel/abstract-workflow-panel.component.d.ts +3 -1
  283. package/lib/public/factories/public-search-factory.d.ts +3 -0
  284. 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
  285. package/lib/registry/front-action-registry.service.d.ts +13 -0
  286. package/lib/registry/public-api.d.ts +2 -0
  287. package/lib/resources/interface/case-get-request-body.d.ts +3 -0
  288. package/lib/resources/interface/event-outcome.d.ts +5 -0
  289. package/lib/routing/routing-builder/routing-builder.service.d.ts +2 -0
  290. package/lib/search/fulltext-search-component/abstract-fulltext-search.component.d.ts +2 -1
  291. package/lib/search/search-component/abstract-search.component.d.ts +2 -1
  292. package/lib/side-menu/content-components/import-net/abstract-import-net.component.d.ts +3 -1
  293. package/lib/side-menu/content-components/injection-tokens.d.ts +1 -0
  294. package/lib/side-menu/content-components/new-case/model/new-case-injection-data.d.ts +2 -1
  295. package/lib/side-menu/content-components/public-api.d.ts +2 -0
  296. package/lib/side-menu/content-components/task-view/model/task-view-injection-data.d.ts +4 -0
  297. package/lib/side-menu/models/side-menu-control.d.ts +0 -2
  298. package/lib/task/services/task-data.service.d.ts +10 -8
  299. package/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.d.ts +7 -3
  300. package/lib/task-content/model/field-type-resource.d.ts +3 -1
  301. package/lib/task-content/services/single-task-content.service.d.ts +2 -2
  302. package/lib/task-content/services/task-content.service.d.ts +20 -23
  303. package/lib/task-content/services/unlimited-task-content.service.d.ts +2 -2
  304. package/lib/task-content/task-content/abstract-task-content.component.d.ts +5 -1
  305. package/lib/utility/navigation-item-default-headers-factory.d.ts +3 -0
  306. package/lib/utility/public-api.d.ts +1 -0
  307. package/lib/view/abstract/netgrif-paginator-intl.d.ts +19 -0
  308. package/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.d.ts +3 -1
  309. package/lib/view/case-view/components/default-case-list/abstract-default-case-list.component.d.ts +4 -2
  310. package/lib/view/case-view/service/case-view-service.d.ts +5 -5
  311. package/lib/view/public-api.d.ts +1 -0
  312. package/lib/view/task-view/abstract-single-task-view.component.d.ts +9 -7
  313. package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +3 -3
  314. package/package.json +1 -1
  315. package/public-api.d.ts +2 -1
  316. package/src/assets/i18n/de.json +15 -2
  317. package/src/assets/i18n/en.json +15 -2
  318. package/src/assets/i18n/sk.json +15 -2
  319. package/esm2020/lib/data-fields/text-field/dashboard-portal-text-field/dashboard-portal-component-registry.service.mjs +0 -35
  320. package/esm2020/lib/providers/base-filter/base-filter-factory.provider.mjs +0 -24
  321. package/esm2020/lib/providers/case-resource/case-resource-service.provider.mjs +0 -28
  322. package/esm2020/lib/providers/petrinet-resource/petrinet-resource-service.provider.mjs +0 -28
  323. package/esm2020/lib/providers/process-service/process-service.provider.mjs +0 -30
  324. package/esm2020/lib/providers/public-api.mjs +0 -6
  325. package/esm2020/lib/providers/task-resource/task-resource-service.provider.mjs +0 -32
  326. package/lib/providers/base-filter/base-filter-factory.provider.d.ts +0 -14
  327. package/lib/providers/case-resource/case-resource-service.provider.d.ts +0 -14
  328. package/lib/providers/petrinet-resource/petrinet-resource-service.provider.d.ts +0 -14
  329. package/lib/providers/process-service/process-service.provider.d.ts +0 -15
  330. package/lib/providers/public-api.d.ts +0 -5
  331. package/lib/providers/task-resource/task-resource-service.provider.d.ts +0 -16
@@ -1,4 +1,5 @@
1
1
  import { DataField } from '../../models/abstract-data-field';
2
+ import { ComponentPrefixes } from '../../models/component';
2
3
  export var I18nFieldValidation;
3
4
  (function (I18nFieldValidation) {
4
5
  I18nFieldValidation["TRANSLATION_REQUIRED"] = "translationRequired";
@@ -7,6 +8,9 @@ export var I18nFieldValidation;
7
8
  })(I18nFieldValidation || (I18nFieldValidation = {}));
8
9
  export const DEFAULT_LANGUAGE_CODE = 'xx';
9
10
  export class I18nField extends DataField {
11
+ getTypedComponentType() {
12
+ return ComponentPrefixes.I18N + this.getComponentType();
13
+ }
10
14
  static defaultValueNonEquality(a, b) {
11
15
  return (!(!a.defaultValue && !b.defaultValue)
12
16
  && ((!a.defaultValue && !!b.defaultValue)
@@ -148,8 +152,8 @@ export class I18nField extends DataField {
148
152
  };
149
153
  }
150
154
  validRequiredI18n(fc) {
151
- return (fc.value.defaultValue === '' && Object.keys(fc.value.translations).length === 0)
155
+ return (fc.value.defaultValue === '' && !!fc.value?.translations && Object.keys(fc.value.translations).length === 0)
152
156
  ? ({ requiredI18n: true }) : null;
153
157
  }
154
158
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvaTE4bi1maWVsZC9tb2RlbHMvaTE4bi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFTM0QsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQixtRUFBNEMsQ0FBQTtJQUM1QywyREFBb0MsQ0FBQTtJQUNwQyxxREFBOEIsQ0FBQTtBQUNsQyxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBVSxTQUFRLFNBQXlCO0lBRTVDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFpQixFQUFFLENBQWlCO1FBQ3ZFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztlQUN0QyxDQUNDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO21CQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQzttQkFDckMsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FDekMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBaUIsRUFBRSxDQUFpQjtRQUM5RCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFH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QkFBaUIsQ0FBQyxFQUFlO1FBQ3JDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDcEYsQ0FBQyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZCc7XG5pbXBvcnQge0JlaGF2aW9yfSBmcm9tICcuLi8uLi9tb2RlbHMvYmVoYXZpb3InO1xuaW1wb3J0IHtMYXlvdXR9IGZyb20gJy4uLy4uL21vZGVscy9sYXlvdXQnO1xuaW1wb3J0IHtWYWxpZGF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMvdmFsaWRhdGlvbic7XG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbXBvbmVudCc7XG5pbXBvcnQge0kxOG5GaWVsZFRyYW5zbGF0aW9ucywgSTE4bkZpZWxkVmFsdWV9IGZyb20gJy4vaTE4bi1maWVsZC12YWx1ZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGVudW0gSTE4bkZpZWxkVmFsaWRhdGlvbiB7XG4gICAgVFJBTlNMQVRJT05fUkVRVUlSRUQgPSAndHJhbnNsYXRpb25SZXF1aXJlZCcsXG4gICAgVFJBTlNMQVRJT05fT05MWSA9ICd0cmFuc2xhdGlvbk9ubHknLFxuICAgIFJFUVVJUkVEX0kxOE4gPSAncmVxdWlyZWRJMThuJ1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQU5HVUFHRV9DT0RFID0gJ3h4JztcblxuZXhwb3J0IGNsYXNzIEkxOG5GaWVsZCBleHRlbmRzIERhdGFGaWVsZDxJMThuRmllbGRWYWx1ZT4ge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdFZhbHVlTm9uRXF1YWxpdHkoYTogSTE4bkZpZWxkVmFsdWUsIGI6IEkxOG5GaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoISghYS5kZWZhdWx0VmFsdWUgJiYgIWIuZGVmYXVsdFZhbHVlKVxuICAgICAgICAgICAgJiYgKFxuICAgICAgICAgICAgICAgICghYS5kZWZhdWx0VmFsdWUgJiYgISFiLmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICAgICB8fCAoIWIuZGVmYXVsdFZhbHVlICYmICEhYS5kZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICAgICAgfHwgKGEuZGVmYXVsdFZhbHVlICE9PSBiLmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGtleU5vbkVxdWFsaXR5KGE6IEkxOG5GaWVsZFZhbHVlLCBiOiBJMThuRmllbGRWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCEoIWEua2V5ICYmICFiLmtleSkgJiYgKCghYS5rZXkgJiYgISFiLmtleSkgfHwgKCFiLmtleSAmJiAhIWEua2V5KSB8fCAoYS5rZXkgIT09IGIua2V5KSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHRyYW5zbGF0aW9uc05vbkVxdWFsaXR5KGE6IEkxOG5GaWVsZFZhbHVlLCBiOiBJMThuRmllbGRWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCEoIWEudHJhbnNsYXRpb25zICYmICFiLnRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICYmICgoIWEudHJhbnNsYXRpb25zICYmICEhYi50cmFuc2xhdGlvbnMpIHx8ICghYi50cmFuc2xhdGlvbnMgJiYgISFhLnRyYW5zbGF0aW9ucykpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB0cmFuc2xhdGlvbnNFcXVhbGl0eShhOiBJMThuRmllbGRWYWx1ZSwgYjogSTE4bkZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYUtleXMgPSAhIWEudHJhbnNsYXRpb25zID8gT2JqZWN0LmtleXMoYS50cmFuc2xhdGlvbnMpLnNvcnQoKSA6IFtdO1xuICAgICAgICBjb25zdCBiS2V5cyA9ICEhYi50cmFuc2xhdGlvbnMgPyBPYmplY3Qua2V5cyhiLnRyYW5zbGF0aW9ucykuc29ydCgpIDogW107XG4gICAgICAgIGlmIChhS2V5cy5sZW5ndGggIT09IGJLZXlzLmxlbmd0aFxuICAgICAgICAgICAgfHwgIWFLZXlzLmV2ZXJ5KChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50ID09PSBiS2V5c1tpbmRleF07XG4gICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgayBpbiBhLnRyYW5zbGF0aW9ucykge1xuICAgICAgICAgICAgaWYgKGEudHJhbnNsYXRpb25zW2tdICE9PSBiLnRyYW5zbGF0aW9uc1trXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvT2JqZWN0KHRlbXBsYXRlVmFsdWU6IEkxOG5GaWVsZFZhbHVlKTogSTE4bkZpZWxkVHJhbnNsYXRpb25zIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0ID0ge307XG4gICAgICAgIG9iamVjdFtERUZBVUxUX0xBTkdVQUdFX0NPREVdID0gdGVtcGxhdGVWYWx1ZS5kZWZhdWx0VmFsdWU7XG4gICAgICAgIGZvciAoY29uc3QgayBpbiB0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9ucykge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9ucywgaykpIHtcbiAgICAgICAgICAgICAgICBvYmplY3Rba10gPSB0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9uc1trXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbU9iamVjdCh0ZW1wbGF0ZVZhbHVlOiBJMThuRmllbGRUcmFuc2xhdGlvbnMsIHRlbXBsYXRlS2V5OiBzdHJpbmcpOiBJMThuRmllbGRWYWx1ZSB7XG4gICAgICAgIGNvbnN0IGkxOG5PYmplY3QgPSB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRlbXBsYXRlVmFsdWVbREVGQVVMVF9MQU5HVUFHRV9DT0RFXSxcbiAgICAgICAgICAgIGtleTogdGVtcGxhdGVLZXksXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnM6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRlbXBsYXRlVmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUX0xBTkdVQUdFX0NPREUpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkxOG5PYmplY3QudHJhbnNsYXRpb25zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4bk9iamVjdCBhcyBJMThuRmllbGRWYWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCB2YWx1ZTogSTE4bkZpZWxkVmFsdWUgfCBzdHJpbmcsIGJlaGF2aW9yOiBCZWhhdmlvciwgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsIGxheW91dD86IExheW91dCwgdmFsaWRhdGlvbnM/OiBBcnJheTxWYWxpZGF0aW9uPiwgX2NvbXBvbmVudD86IENvbXBvbmVudCkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFsdWUgPSB7ZGVmYXVsdFZhbHVlOiB2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIoc3RyaW5nSWQsIHRpdGxlLCB2YWx1ZSwgYmVoYXZpb3IsIHBsYWNlaG9sZGVyLCBkZXNjcmlwdGlvbiwgbGF5b3V0LCB2YWxpZGF0aW9ucywgX2NvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlRXF1YWxpdHkoYTogSTE4bkZpZWxkVmFsdWUsIGI6IEkxOG5GaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghYSAmJiAhYikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCghYSAmJiAhIWIpIHx8ICghYiAmJiAhIWEpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCghYS5kZWZhdWx0VmFsdWUgJiYgIWIuZGVmYXVsdFZhbHVlKSAmJiAoIWEudHJhbnNsYXRpb25zICYmICFiLnRyYW5zbGF0aW9ucykgJiYgKCFhLmtleSAmJiAhYi5rZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoSTE4bkZpZWxkLmRlZmF1bHRWYWx1ZU5vbkVxdWFsaXR5KGEsIGIpIHx8IEkxOG5GaWVsZC5rZXlOb25FcXVhbGl0eShhLCBiKSB8fCBJMThuRmllbGQudHJhbnNsYXRpb25zTm9uRXF1YWxpdHkoYSwgYikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gSTE4bkZpZWxkLnRyYW5zbGF0aW9uc0VxdWFsaXR5KGEsIGIpO1xuICAgIH1cblxuICAgIGdldCB1cGRhdGVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVWYWxpZGl0eShmb3JWYWxpZFJlcXVpcmVkOiBib29sZWFuLCBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IGZvcm1Db250cm9sLmRpc2FibGVkO1xuICAgICAgICBpZiAoZm9yVmFsaWRSZXF1aXJlZCkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIGlmIChmb3JWYWxpZFJlcXVpcmVkKSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuYmVoYXZpb3IucmVxdWlyZWQgPyBbdGhpcy52YWxpZFJlcXVpcmVkSTE4bl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMucmVzb2x2ZUZvcm1Db250cm9sVmFsaWRhdG9ycygpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIGNvbnN0IHZhbGlkaXR5ID0gdGhpcy5fZGV0ZXJtaW5lRm9ybUNvbnRyb2xWYWxpZGl0eShmb3JtQ29udHJvbCk7XG4gICAgICAgIGlzRGlzYWJsZWQgPyBmb3JtQ29udHJvbC5kaXNhYmxlKCkgOiBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkaXR5O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRm9ybUNvbnRyb2xWYWxpZGF0b3JzKCk6IEFycmF5PFZhbGlkYXRvckZuPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmJlaGF2aW9yLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnZhbGlkUmVxdWlyZWRJMThuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmFsaWRhdG9ycykge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuX3ZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0b3JzID0gdGhpcy5yZXNvbHZlVmFsaWRhdGlvbnMoKTtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLl92YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVWYWxpZGF0aW9ucygpOiBBcnJheTxWYWxpZGF0b3JGbj4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICB0aGlzLnZhbGlkYXRpb25zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0aW9uUnVsZS5pbmNsdWRlcyhJMThuRmllbGRWYWxpZGF0aW9uLlRSQU5TTEFUSU9OX1JFUVVJUkVEKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IGl0ZW0udmFsaWRhdGlvblJ1bGUuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAodG1wWzFdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy52YWxpZFRyYW5zbGF0aW9uUmVxdWlyZWQodG1wWzFdLnJlcGxhY2UoJyAnLCAnJykuc3BsaXQoJywnKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLnZhbGlkYXRpb25SdWxlLmluY2x1ZGVzKEkxOG5GaWVsZFZhbGlkYXRpb24uVFJBTlNMQVRJT05fT05MWSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBpdGVtLnZhbGlkYXRpb25SdWxlLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgaWYgKHRtcFsxXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMudmFsaWRUcmFuc2xhdGlvbk9ubHkodG1wWzFdLnJlcGxhY2UoJyAnLCAnJykuc3BsaXQoJywnKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkVHJhbnNsYXRpb25SZXF1aXJlZChjb3VudHJpZXM6IEFycmF5PHN0cmluZz4pOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoZmM6IEZvcm1Db250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNvdW50cmllcy5ldmVyeShsYW5ndWFnZUNvZGUgPT4gbGFuZ3VhZ2VDb2RlIGluIGZjLnZhbHVlLnRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICAgICA/IG51bGwgOiAoe3RyYW5zbGF0aW9uUmVxdWlyZWQ6IHRydWV9KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkVHJhbnNsYXRpb25Pbmx5KGNvdW50cmllczogQXJyYXk8c3RyaW5nPik6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChmYzogRm9ybUNvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZmMudmFsdWUudHJhbnNsYXRpb25zKS5ldmVyeSh0cmFuc2xhdGlvbiA9PiBjb3VudHJpZXMuaW5jbHVkZXModHJhbnNsYXRpb24pKVxuICAgICAgICAgICAgICAgID8gbnVsbCA6ICh7dHJhbnNsYXRpb25Pbmx5OiB0cnVlfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZFJlcXVpcmVkSTE4bihmYzogRm9ybUNvbnRyb2wpOiB7IFtrOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgICAgICByZXR1cm4gKGZjLnZhbHVlLmRlZmF1bHRWYWx1ZSA9PT0gJycgJiYgT2JqZWN0LmtleXMoZmMudmFsdWUudHJhbnNsYXRpb25zKS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICA/ICh7cmVxdWlyZWRJMThuOiB0cnVlfSkgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvaTE4bi1maWVsZC9tb2RlbHMvaTE4bi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFJM0QsT0FBTyxFQUFZLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFLcEUsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQixtRUFBNEMsQ0FBQTtJQUM1QywyREFBb0MsQ0FBQTtJQUNwQyxxREFBOEIsQ0FBQTtBQUNsQyxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBVSxTQUFRLFNBQXlCO0lBRTdDLHFCQUFxQjtRQUN4QixPQUFPLGlCQUFpQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBQ08sTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQWlCLEVBQUUsQ0FBaUI7UUFDdkUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2VBQ3RDLENBQ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7bUJBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO21CQUNyQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUN6QyxDQUFD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QUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMzRixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsZUFBZSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLGlCQUFpQixDQUFDLEVBQWU7UUFDckMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDaEgsQ0FBQyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZCc7XG5pbXBvcnQge0JlaGF2aW9yfSBmcm9tICcuLi8uLi9tb2RlbHMvYmVoYXZpb3InO1xuaW1wb3J0IHtMYXlvdXR9IGZyb20gJy4uLy4uL21vZGVscy9sYXlvdXQnO1xuaW1wb3J0IHtWYWxpZGF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMvdmFsaWRhdGlvbic7XG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50UHJlZml4ZXN9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQnO1xuaW1wb3J0IHtJMThuRmllbGRUcmFuc2xhdGlvbnMsIEkxOG5GaWVsZFZhbHVlfSBmcm9tICcuL2kxOG4tZmllbGQtdmFsdWUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIFZhbGlkYXRvckZufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBlbnVtIEkxOG5GaWVsZFZhbGlkYXRpb24ge1xuICAgIFRSQU5TTEFUSU9OX1JFUVVJUkVEID0gJ3RyYW5zbGF0aW9uUmVxdWlyZWQnLFxuICAgIFRSQU5TTEFUSU9OX09OTFkgPSAndHJhbnNsYXRpb25Pbmx5JyxcbiAgICBSRVFVSVJFRF9JMThOID0gJ3JlcXVpcmVkSTE4bidcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFOR1VBR0VfQ09ERSA9ICd4eCc7XG5cbmV4cG9ydCBjbGFzcyBJMThuRmllbGQgZXh0ZW5kcyBEYXRhRmllbGQ8STE4bkZpZWxkVmFsdWU+IHtcblxuICAgIHB1YmxpYyBnZXRUeXBlZENvbXBvbmVudFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbXBvbmVudFByZWZpeGVzLkkxOE4gKyB0aGlzLmdldENvbXBvbmVudFR5cGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdFZhbHVlTm9uRXF1YWxpdHkoYTogSTE4bkZpZWxkVmFsdWUsIGI6IEkxOG5GaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoISghYS5kZWZhdWx0VmFsdWUgJiYgIWIuZGVmYXVsdFZhbHVlKVxuICAgICAgICAgICAgJiYgKFxuICAgICAgICAgICAgICAgICghYS5kZWZhdWx0VmFsdWUgJiYgISFiLmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICAgICB8fCAoIWIuZGVmYXVsdFZhbHVlICYmICEhYS5kZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICAgICAgfHwgKGEuZGVmYXVsdFZhbHVlICE9PSBiLmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGtleU5vbkVxdWFsaXR5KGE6IEkxOG5GaWVsZFZhbHVlLCBiOiBJMThuRmllbGRWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCEoIWEua2V5ICYmICFiLmtleSkgJiYgKCghYS5rZXkgJiYgISFiLmtleSkgfHwgKCFiLmtleSAmJiAhIWEua2V5KSB8fCAoYS5rZXkgIT09IGIua2V5KSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHRyYW5zbGF0aW9uc05vbkVxdWFsaXR5KGE6IEkxOG5GaWVsZFZhbHVlLCBiOiBJMThuRmllbGRWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCEoIWEudHJhbnNsYXRpb25zICYmICFiLnRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICYmICgoIWEudHJhbnNsYXRpb25zICYmICEhYi50cmFuc2xhdGlvbnMpIHx8ICghYi50cmFuc2xhdGlvbnMgJiYgISFhLnRyYW5zbGF0aW9ucykpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB0cmFuc2xhdGlvbnNFcXVhbGl0eShhOiBJMThuRmllbGRWYWx1ZSwgYjogSTE4bkZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYUtleXMgPSAhIWEudHJhbnNsYXRpb25zID8gT2JqZWN0LmtleXMoYS50cmFuc2xhdGlvbnMpLnNvcnQoKSA6IFtdO1xuICAgICAgICBjb25zdCBiS2V5cyA9ICEhYi50cmFuc2xhdGlvbnMgPyBPYmplY3Qua2V5cyhiLnRyYW5zbGF0aW9ucykuc29ydCgpIDogW107XG4gICAgICAgIGlmIChhS2V5cy5sZW5ndGggIT09IGJLZXlzLmxlbmd0aFxuICAgICAgICAgICAgfHwgIWFLZXlzLmV2ZXJ5KChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50ID09PSBiS2V5c1tpbmRleF07XG4gICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgayBpbiBhLnRyYW5zbGF0aW9ucykge1xuICAgICAgICAgICAgaWYgKGEudHJhbnNsYXRpb25zW2tdICE9PSBiLnRyYW5zbGF0aW9uc1trXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvT2JqZWN0KHRlbXBsYXRlVmFsdWU6IEkxOG5GaWVsZFZhbHVlKTogSTE4bkZpZWxkVHJhbnNsYXRpb25zIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0ID0ge307XG4gICAgICAgIG9iamVjdFtERUZBVUxUX0xBTkdVQUdFX0NPREVdID0gdGVtcGxhdGVWYWx1ZS5kZWZhdWx0VmFsdWU7XG4gICAgICAgIGZvciAoY29uc3QgayBpbiB0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9ucykge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9ucywgaykpIHtcbiAgICAgICAgICAgICAgICBvYmplY3Rba10gPSB0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9uc1trXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbU9iamVjdCh0ZW1wbGF0ZVZhbHVlOiBJMThuRmllbGRUcmFuc2xhdGlvbnMsIHRlbXBsYXRlS2V5OiBzdHJpbmcpOiBJMThuRmllbGRWYWx1ZSB7XG4gICAgICAgIGNvbnN0IGkxOG5PYmplY3QgPSB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRlbXBsYXRlVmFsdWVbREVGQVVMVF9MQU5HVUFHRV9DT0RFXSxcbiAgICAgICAgICAgIGtleTogdGVtcGxhdGVLZXksXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnM6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRlbXBsYXRlVmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUX0xBTkdVQUdFX0NPREUpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkxOG5PYmplY3QudHJhbnNsYXRpb25zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4bk9iamVjdCBhcyBJMThuRmllbGRWYWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCB2YWx1ZTogSTE4bkZpZWxkVmFsdWUgfCBzdHJpbmcsIGJlaGF2aW9yOiBCZWhhdmlvciwgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsIGxheW91dD86IExheW91dCwgdmFsaWRhdGlvbnM/OiBBcnJheTxWYWxpZGF0aW9uPiwgX2NvbXBvbmVudD86IENvbXBvbmVudCkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFsdWUgPSB7ZGVmYXVsdFZhbHVlOiB2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIoc3RyaW5nSWQsIHRpdGxlLCB2YWx1ZSwgYmVoYXZpb3IsIHBsYWNlaG9sZGVyLCBkZXNjcmlwdGlvbiwgbGF5b3V0LCB2YWxpZGF0aW9ucywgX2NvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlRXF1YWxpdHkoYTogSTE4bkZpZWxkVmFsdWUsIGI6IEkxOG5GaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghYSAmJiAhYikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCghYSAmJiAhIWIpIHx8ICghYiAmJiAhIWEpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCghYS5kZWZhdWx0VmFsdWUgJiYgIWIuZGVmYXVsdFZhbHVlKSAmJiAoIWEudHJhbnNsYXRpb25zICYmICFiLnRyYW5zbGF0aW9ucykgJiYgKCFhLmtleSAmJiAhYi5rZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoSTE4bkZpZWxkLmRlZmF1bHRWYWx1ZU5vbkVxdWFsaXR5KGEsIGIpIHx8IEkxOG5GaWVsZC5rZXlOb25FcXVhbGl0eShhLCBiKSB8fCBJMThuRmllbGQudHJhbnNsYXRpb25zTm9uRXF1YWxpdHkoYSwgYikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gSTE4bkZpZWxkLnRyYW5zbGF0aW9uc0VxdWFsaXR5KGEsIGIpO1xuICAgIH1cblxuICAgIGdldCB1cGRhdGVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVWYWxpZGl0eShmb3JWYWxpZFJlcXVpcmVkOiBib29sZWFuLCBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IGZvcm1Db250cm9sLmRpc2FibGVkO1xuICAgICAgICBpZiAoZm9yVmFsaWRSZXF1aXJlZCkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIGlmIChmb3JWYWxpZFJlcXVpcmVkKSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuYmVoYXZpb3IucmVxdWlyZWQgPyBbdGhpcy52YWxpZFJlcXVpcmVkSTE4bl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMucmVzb2x2ZUZvcm1Db250cm9sVmFsaWRhdG9ycygpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIGNvbnN0IHZhbGlkaXR5ID0gdGhpcy5fZGV0ZXJtaW5lRm9ybUNvbnRyb2xWYWxpZGl0eShmb3JtQ29udHJvbCk7XG4gICAgICAgIGlzRGlzYWJsZWQgPyBmb3JtQ29udHJvbC5kaXNhYmxlKCkgOiBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkaXR5O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRm9ybUNvbnRyb2xWYWxpZGF0b3JzKCk6IEFycmF5PFZhbGlkYXRvckZuPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmJlaGF2aW9yLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnZhbGlkUmVxdWlyZWRJMThuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmFsaWRhdG9ycykge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuX3ZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0b3JzID0gdGhpcy5yZXNvbHZlVmFsaWRhdGlvbnMoKTtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLl92YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVWYWxpZGF0aW9ucygpOiBBcnJheTxWYWxpZGF0b3JGbj4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICB0aGlzLnZhbGlkYXRpb25zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0aW9uUnVsZS5pbmNsdWRlcyhJMThuRmllbGRWYWxpZGF0aW9uLlRSQU5TTEFUSU9OX1JFUVVJUkVEKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IGl0ZW0udmFsaWRhdGlvblJ1bGUuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAodG1wWzFdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy52YWxpZFRyYW5zbGF0aW9uUmVxdWlyZWQodG1wWzFdLnJlcGxhY2UoJyAnLCAnJykuc3BsaXQoJywnKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLnZhbGlkYXRpb25SdWxlLmluY2x1ZGVzKEkxOG5GaWVsZFZhbGlkYXRpb24uVFJBTlNMQVRJT05fT05MWSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBpdGVtLnZhbGlkYXRpb25SdWxlLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgaWYgKHRtcFsxXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMudmFsaWRUcmFuc2xhdGlvbk9ubHkodG1wWzFdLnJlcGxhY2UoJyAnLCAnJykuc3BsaXQoJywnKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkVHJhbnNsYXRpb25SZXF1aXJlZChjb3VudHJpZXM6IEFycmF5PHN0cmluZz4pOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoZmM6IEZvcm1Db250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNvdW50cmllcy5ldmVyeShsYW5ndWFnZUNvZGUgPT4gbGFuZ3VhZ2VDb2RlIGluIGZjLnZhbHVlLnRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICAgICA/IG51bGwgOiAoe3RyYW5zbGF0aW9uUmVxdWlyZWQ6IHRydWV9KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkVHJhbnNsYXRpb25Pbmx5KGNvdW50cmllczogQXJyYXk8c3RyaW5nPik6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChmYzogRm9ybUNvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZmMudmFsdWUudHJhbnNsYXRpb25zKS5ldmVyeSh0cmFuc2xhdGlvbiA9PiBjb3VudHJpZXMuaW5jbHVkZXModHJhbnNsYXRpb24pKVxuICAgICAgICAgICAgICAgID8gbnVsbCA6ICh7dHJhbnNsYXRpb25Pbmx5OiB0cnVlfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZFJlcXVpcmVkSTE4bihmYzogRm9ybUNvbnRyb2wpOiB7IFtrOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgICAgICByZXR1cm4gKGZjLnZhbHVlLmRlZmF1bHRWYWx1ZSA9PT0gJycgJiYgISFmYy52YWx1ZT8udHJhbnNsYXRpb25zICYmIE9iamVjdC5rZXlzKGZjLnZhbHVlLnRyYW5zbGF0aW9ucykubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgPyAoe3JlcXVpcmVkSTE4bjogdHJ1ZX0pIDogbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -29,6 +29,9 @@ export class AbstractDataFieldComponent {
29
29
  get formControl() {
30
30
  return this._formControl;
31
31
  }
32
+ hasTitle() {
33
+ return this.dataField.title !== undefined && this.dataField.title !== '';
34
+ }
32
35
  }
33
36
  AbstractDataFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractDataFieldComponent, deps: [{ token: NAE_INFORM_ABOUT_INVALID_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
34
37
  AbstractDataFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractDataFieldComponent, selector: "ncc-abstract-datafield", inputs: { dataField: "dataField", taskOffset: "taskOffset" }, ngImport: i0, template: '', isInline: true });
@@ -48,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
48
51
  }], taskOffset: [{
49
52
  type: Input
50
53
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1maWVsZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBRTFFOztHQUVHO0FBS0gsTUFBTSxPQUFnQiwwQkFBMEI7SUFjNUMsWUFBbUYsdUJBQXVDO1FBQXZDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBZ0I7UUFQakgsZUFBVSxHQUFHLENBQUMsQ0FBQztRQVFwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3BFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQzs7d0hBckNpQiwwQkFBMEIsa0JBY0YsNkJBQTZCOzRHQWRyRCwwQkFBMEIsNEhBRmxDLEVBQUU7NEZBRU0sMEJBQTBCO2tCQUovQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkFlMEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2QkFBNkI7NENBUjlELFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05BRV9JTkZPUk1fQUJPVVRfSU5WQUxJRF9EQVRBfSBmcm9tICcuL2ludmFsaWQtZGF0YS1wb2xpY3ktdG9rZW4nO1xuXG4vKipcbiAqIEhvbGRzIHRoZSBjb21tb24gZnVuY3Rpb25hbGl0eSBmb3IgYWxsIERhdGFGaWVsZENvbXBvbmVudHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWRhdGFmaWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGF0YUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogVGhlIE1vZGVsIG9iamVjdCB0aGF0IHRoaXMgQ29tcG9uZW50IHNob3VsZCByZW5kZXIuXG4gICAgICogSXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4gaW4gZWFjaCBjbGFzcyB0aGF0IGV4dGVuZHMgdGhpcyBvbmUsIHRvIHByb3ZpZGUgYSBtb3JlIHNwZWNpZmljIHR5cGUuXG4gICAgICovXG4gICAgQElucHV0KCkgZGF0YUZpZWxkOiBEYXRhRmllbGQ8YW55PjtcbiAgICBASW5wdXQoKSB0YXNrT2Zmc2V0ID0gMDtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogU2VlIFtmb3JtQ29udHJvbF17QGxpbmsgQWJzdHJhY3REYXRhRmllbGRDb21wb25lbnQjZm9ybUNvbnRyb2x9XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9mb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChOQUVfSU5GT1JNX0FCT1VUX0lOVkFMSURfREFUQSkgcHJvdGVjdGVkIF9pbmZvcm1BYm91dEludmFsaWREYXRhOiBib29sZWFuIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgeyB1cGRhdGVPbjogJ2JsdXInIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyB0aGUge0BsaW5rIEZvcm1Db250cm9sfSB0byB0aGUgcHJvdmlkZWQgZGF0YSBmaWVsZC5cbiAgICAgKlxuICAgICAqIFNlZSBbRGF0YUZpZWxkLnJlZ2lzdGVyRm9ybUNvbnRyb2xde0BsaW5rIERhdGFGaWVsZCNyZWdpc3RlckZvcm1Db250cm9sfSBmb3JtIG1vcmUgaW5mb3JtYXRpb24uXG4gICAgICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YUZpZWxkLnJlZ2lzdGVyRm9ybUNvbnRyb2wodGhpcy5fZm9ybUNvbnRyb2wpO1xuICAgICAgICB0aGlzLmRhdGFGaWVsZC5zZW5kSW52YWxpZFZhbHVlcyA9IHRoaXMuX2luZm9ybUFib3V0SW52YWxpZERhdGE7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YUZpZWxkLmRpc2Nvbm5lY3RGb3JtQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBbRm9ybUNvbnRyb2xde0BsaW5rIGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvRm9ybUNvbnRyb2x9IG9iamVjdCB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGNvbnRyb2wgYW55IHJlbmRlcmVkIGZvcm1zLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUNvbnRyb2w7XG4gICAgfVxufVxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1maWVsZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBRTFFOztHQUVHO0FBS0gsTUFBTSxPQUFnQiwwQkFBMEI7SUFjNUMsWUFBbUYsdUJBQXVDO1FBQXZDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBZ0I7UUFQakgsZUFBVSxHQUFHLENBQUMsQ0FBQztRQVFwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3BFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVNLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7SUFDN0UsQ0FBQzs7d0hBekNpQiwwQkFBMEIsa0JBY0YsNkJBQTZCOzRHQWRyRCwwQkFBMEIsNEhBRmxDLEVBQUU7NEZBRU0sMEJBQTBCO2tCQUovQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkFlMEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2QkFBNkI7NENBUjlELFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05BRV9JTkZPUk1fQUJPVVRfSU5WQUxJRF9EQVRBfSBmcm9tICcuL2ludmFsaWQtZGF0YS1wb2xpY3ktdG9rZW4nO1xuXG4vKipcbiAqIEhvbGRzIHRoZSBjb21tb24gZnVuY3Rpb25hbGl0eSBmb3IgYWxsIERhdGFGaWVsZENvbXBvbmVudHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWRhdGFmaWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGF0YUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogVGhlIE1vZGVsIG9iamVjdCB0aGF0IHRoaXMgQ29tcG9uZW50IHNob3VsZCByZW5kZXIuXG4gICAgICogSXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4gaW4gZWFjaCBjbGFzcyB0aGF0IGV4dGVuZHMgdGhpcyBvbmUsIHRvIHByb3ZpZGUgYSBtb3JlIHNwZWNpZmljIHR5cGUuXG4gICAgICovXG4gICAgQElucHV0KCkgZGF0YUZpZWxkOiBEYXRhRmllbGQ8YW55PjtcbiAgICBASW5wdXQoKSB0YXNrT2Zmc2V0ID0gMDtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogU2VlIFtmb3JtQ29udHJvbF17QGxpbmsgQWJzdHJhY3REYXRhRmllbGRDb21wb25lbnQjZm9ybUNvbnRyb2x9XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9mb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChOQUVfSU5GT1JNX0FCT1VUX0lOVkFMSURfREFUQSkgcHJvdGVjdGVkIF9pbmZvcm1BYm91dEludmFsaWREYXRhOiBib29sZWFuIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgeyB1cGRhdGVPbjogJ2JsdXInIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyB0aGUge0BsaW5rIEZvcm1Db250cm9sfSB0byB0aGUgcHJvdmlkZWQgZGF0YSBmaWVsZC5cbiAgICAgKlxuICAgICAqIFNlZSBbRGF0YUZpZWxkLnJlZ2lzdGVyRm9ybUNvbnRyb2xde0BsaW5rIERhdGFGaWVsZCNyZWdpc3RlckZvcm1Db250cm9sfSBmb3JtIG1vcmUgaW5mb3JtYXRpb24uXG4gICAgICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YUZpZWxkLnJlZ2lzdGVyRm9ybUNvbnRyb2wodGhpcy5fZm9ybUNvbnRyb2wpO1xuICAgICAgICB0aGlzLmRhdGFGaWVsZC5zZW5kSW52YWxpZFZhbHVlcyA9IHRoaXMuX2luZm9ybUFib3V0SW52YWxpZERhdGE7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YUZpZWxkLmRpc2Nvbm5lY3RGb3JtQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBbRm9ybUNvbnRyb2xde0BsaW5rIGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvRm9ybUNvbnRyb2x9IG9iamVjdCB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGNvbnRyb2wgYW55IHJlbmRlcmVkIGZvcm1zLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc1RpdGxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhRmllbGQudGl0bGUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmRhdGFGaWVsZC50aXRsZSAhPT0gJyc7XG4gICAgfVxufVxuIl19
@@ -1,6 +1,8 @@
1
1
  import { BehaviorSubject, Subject } from 'rxjs';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { distinctUntilChanged, filter, take } from 'rxjs/operators';
4
+ import { DEFAULT } from './component';
5
+ import { UpdateStrategy } from "./update-strategy";
4
6
  /**
5
7
  * Holds the logic common to all data field Model objects.
6
8
  * @typeparam T - type of the `value` property of the data field
@@ -200,12 +202,21 @@ export class DataField {
200
202
  set input(value) {
201
203
  this._input = value;
202
204
  }
205
+ get formControlRef() {
206
+ return this._formControlRef;
207
+ }
208
+ set formControlRef(formControl) {
209
+ this._formControlRef = formControl;
210
+ }
211
+ getUpdateOnStrategy() {
212
+ return UpdateStrategy.BLUR;
213
+ }
203
214
  /**
204
215
  * This function resolve type of component for HTML
205
216
  * @returns type of component in string
206
217
  */
207
218
  getComponentType() {
208
- return this.component?.name ?? '';
219
+ return this.component?.name ?? DEFAULT;
209
220
  }
210
221
  destroy() {
211
222
  this._value.complete();
@@ -221,6 +232,7 @@ export class DataField {
221
232
  throw new Error('Data field can be initialized only once!'
222
233
  + ' Disconnect the previous form control before initializing the data field again!');
223
234
  }
235
+ this.formControlRef = formControl;
224
236
  formControl.setValidators(this.resolveFormControlValidators());
225
237
  this._formControlValueSubscription = formControl.valueChanges.pipe(distinctUntilChanged(this.valueEquality)).subscribe(newValue => {
226
238
  this._valid = this._determineFormControlValidity(formControl);
@@ -419,4 +431,4 @@ export class DataField {
419
431
  }
420
432
  }
421
433
  }
422
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUEyQixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBT2xFOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsU0FBUztJQThHM0I7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsWUFBOEIsU0FBaUIsRUFBVSxNQUFjLEVBQUUsWUFBZSxFQUMxRCxTQUFtQixFQUFVLFlBQXFCLEVBQ2xELFlBQXFCLEVBQVUsT0FBZ0IsRUFBUyxXQUErQixFQUN2RixVQUFzQixFQUFVLGFBQXNCLEVBQVUsYUFBc0I7UUFIdEYsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ2xELGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUN2RixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQVM7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQTFEcEg7O1dBRUc7UUFDSyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDbEM7O1dBRUc7UUFDSyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBb0R2QixJQUFJLENBQUMsTUFB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QztJQUM5RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUM7U0FDekM7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvcn0gZnJvbSAnLi9iZWhhdmlvcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0NoYW5nZX0gZnJvbSAnLi9jaGFuZ2VkLWZpZWxkcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TGF5b3V0fSBmcm9tICcuL2xheW91dCc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnQnO1xuaW1wb3J0IHtWYWxpZGF0aW9ufSBmcm9tICcuL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHtFbGVtZW50UmVmfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG4vKipcbiAqIEhvbGRzIHRoZSBsb2dpYyBjb21tb24gdG8gYWxsIGRhdGEgZmllbGQgTW9kZWwgb2JqZWN0cy5cbiAqIEB0eXBlcGFyYW0gVCAtIHR5cGUgb2YgdGhlIGB2YWx1ZWAgcHJvcGVydHkgb2YgdGhlIGRhdGEgZmllbGRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFGaWVsZDxUPiB7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIEN1cnJlbnQgdmFsdWUgb2YgdGhlIGRhdGEgZmllbGRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBCZWhhdmlvclN1YmplY3Q8VD47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFByZXZpb3VzIHZhbHVlIG9mIHRoZSBkYXRhIGZpZWxkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9wcmV2aW91c1ZhbHVlOiBCZWhhdmlvclN1YmplY3Q8VD47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFdoZXRoZXIgdGhlIGRhdGEgZmllbGQgTW9kZWwgb2JqZWN0IHdhcyBpbml0aWFsaXplZCwgd2UgcHVzaCB0aGF0IGluZm8gaW50byBzdHJlYW1cbiAgICAgKlxuICAgICAqIFNlZSBbcmVnaXN0ZXJGb3JtQ29udHJvbCgpXXtAbGluayBEYXRhRmllbGQjcmVnaXN0ZXJGb3JtQ29udHJvbH0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pbml0aWFsaXplZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hldGhlciB0aGUgZmllbGQgZnVsZmlsbHMgYWxsIG9mIGl0J3MgdmFsaWRhdG9ycy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF92YWxpZDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hldGhlciB0aGUgYHZhbHVlYCBvZiB0aGUgZmllbGQgY2hhbmdlZCByZWNlbnRseS4gVGhlIGZsYWcgaXMgY2xlYXJlZCB3aGVuIGNoYW5nZXMgYXJlIHNlbmQgdG8gYmFja2VuZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jaGFuZ2VkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBEYXRhIGZpZWxkIHN1YnNjcmliZXMgdGhpcyBzdHJlYW0uXG4gICAgICogVGhlIGRhdGEgZmllbGQgdXBkYXRlcyBpdCdzIFZhbGlkYXRvcnMsIHZhbGlkaXR5IGFuZCBlbmFibGVkL2Rpc2FibGVkIGFjY29yZGluZyB0byBpdCdzIGJlaGF2aW9yLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdXBkYXRlOiBTdWJqZWN0PHZvaWQ+O1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBEYXRhIGZpZWxkIHN1YnNjcmliZXMgdGhpcyBzdHJlYW0uIFdoZW4gYSBgdHJ1ZWAgdmFsdWUgaXMgcmVjZWl2ZWQgdGhlIGRhdGEgZmllbGQgZGlzYWJsZXMgaXRzZWxmLlxuICAgICAqIFdoZW4gYSBgZmFsc2VgdmFsdWUgaXMgcmVjZWl2ZWQgZGF0YSBmaWVsZCBkaXNhYmxlcy9lbmFibGVzIGl0c2VsZiBiYXNlZCBvbiBpdCdzIGJlaGF2aW9yLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfYmxvY2s6IFN1YmplY3Q8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFdoZW4gYSBgdHJ1ZWAgdmFsdWUgaXMgdGhlcmUsIHRoZSBkYXRhIGZpZWxkIGlzIGRpc2FibGVkLlxuICAgICAqIFdoZW4gYSBgZmFsc2VgIHZhbHVlIGlzIHJlY2VpdmVkLCBkYXRhIGZpZWxkIGlzIGRpc2FibGVkL2VuYWJsZWQgYmFzZWQgb24gaXQncyBiZWhhdmlvci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2Jsb2NrZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIERhdGEgZmllbGQgc3Vic2NyaWJlcyB0aGlzIHN0cmVhbS4gU2V0cyB0aGUgc3RhdGUgb2YgdGhlIGRhdGEgZmllbGQgdG8gXCJ0b3VjaGVkXCIgb3IgXCJ1bnRvdWNoZWRcIiAoYHRydWVgL2BmYWxzZWApLlxuICAgICAqIFZhbGlkaXR5IG9mIHRoZSBkYXRhIGZpZWxkIGlzIG5vdCBjaGVja2VkIGluIGFuIFwidW50b3VjaGVkXCIgc3RhdGUuXG4gICAgICogQWxsIGZpZWxkcyBhcmUgdG91Y2hlZCBiZWZvcmUgYSB0YXNrIGlzIGZpbmlzaGVkIHRvIGNoZWNrIHRoZWlyIHZhbGlkaXR5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdG91Y2g6IFN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIF91cGRhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX2Jsb2NrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF90b3VjaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfZm9ybUNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfbXlWYWx1ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBBcHBlYXJhbmNlIG9mIGRhdGFGaWVsZHMsIHBvc3NpYmxlIHZhbHVlcyAtIG91dGxpbmUsIHN0YW5kYXJkLCBmaWxsLCBsZWdhY3lcbiAgICAgKi9cbiAgICBwdWJsaWMgbWF0ZXJpYWxBcHBlYXJhbmNlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFdoZXRoZXIgdGhlIGZpZWxkIGZ1bGZpbGxzIHJlcXVpcmVkIHZhbGlkYXRvci5cbiAgICAgKi9cbiAgICBwcml2YXRlIF92YWxpZFJlcXVpcmVkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgaW52YWxpZCBmaWVsZCB2YWx1ZXMgc2hvdWxkIGJlIHNlbnQgdG8gYmFja2VuZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZW5kSW52YWxpZFZhbHVlcyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogRmxhZyB0aGF0IGlzIHNldCBkdXJpbmcgcmV2ZXJ0aW5nXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmV2ZXJ0aW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3JzIHJlc29sdmVkIGZyb20gZmllbGQgdmFsaWRhdGlvbnNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPjtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyB0aGUgbGFzdCBzdWJzY3JpcHRpb24gdG8gdGhlIFtfaW5pdGlhbGl6ZWQkXXtAbGluayBBYnN0cmFjdERhdGFGaWVsZCNfaW5pdGlhbGl6ZWQkfSBTdHJlYW0sIHRvIHByZXZlbnQgbXVsdGlwbGUgYmxvY2sgZXZlbnRzXG4gICAgICogZnJvbSBleGVjdXRpbmcgYXQgdGhlIHNhbWUgdGltZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfaW5pdGlhbGl6ZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBXaGV0aGVyIHRoZSBjaGFuZ2VzIGZyb20gaGFzIGJlZW4gcmVxdWVzdGVkLiBUaGUgZmxhZyBpcyBjbGVhcmVkIHdoZW4gY2hhbmdlcyBhcmUgcmVjZWl2ZWQgZnJvbSBiYWNrZW5kLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3dhaXRpbmdGb3JSZXNwb25zZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyBhIGNvcHkgb2YgdGhlIGZpZWxkcyBsYXlvdXQsIHRoYXQgY2FuIGJlIG1vZGlmaWVkIGJ5IHRoZSBsYXlvdXRpbmcgYWxnb3JpdGhtIGFzIG5lZWRlZFxuICAgICAqIHdpdGhvdXQgYWZmZWN0aW5nIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9sb2NhbExheW91dDogTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogTGlzdGVucyBmb3IgbGF5b3V0IGNoYW5nZXNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbGF5b3V0U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PExheW91dD47XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gcmVuZGVyZWQgZWxlbWVudFxuICAgICAqICovXG4gICAgcHJpdmF0ZSBfaW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gX3N0cmluZ0lkIC0gSUQgb2YgdGhlIGRhdGEgZmllbGQgZnJvbSBiYWNrZW5kXG4gICAgICogQHBhcmFtIF90aXRsZSAtIGRpc3BsYXllZCB0aXRsZSBvZiB0aGUgZGF0YSBmaWVsZCBmcm9tIGJhY2tlbmRcbiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIC0gaW5pdGlhbCB2YWx1ZSBvZiB0aGUgZGF0YSBmaWVsZFxuICAgICAqIEBwYXJhbSBfYmVoYXZpb3IgLSBkYXRhIGZpZWxkIGJlaGF2aW9yXG4gICAgICogQHBhcmFtIF9wbGFjZWhvbGRlciAtIHBsYWNlaG9sZGVyIGRpc3BsYXllZCBpbiB0aGUgZGF0YWZpZWxkXG4gICAgICogQHBhcmFtIF9kZXNjcmlwdGlvbiAtIHRvb2x0aXAgb2YgdGhlIGRhdGFmaWVsZFxuICAgICAqIEBwYXJhbSBfbGF5b3V0IC0gaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSBjb21wb25lbnQgcmVuZGVyaW5nXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25zXG4gICAgICogQHBhcmFtIF9jb21wb25lbnQgLSBjb21wb25lbnQgZGF0YSBvZiBkYXRhZmllbGRcbiAgICAgKiBAcGFyYW0gX3BhcmVudFRhc2tJZCAtIHN0cmluZ0lkIG9mIHBhcmVudCB0YXNrLCBvbmx5IGRlZmluZWQgaWYgZmllbGQgaXMgbG9hZGVkIHVzaW5nIHtAbGluayBUYXNrUmVmRmllbGR9XG4gICAgICogQHBhcmFtIF9wYXJlbnRDYXNlSWQgLSBzdHJpbmdJZCBvZiBwYXJlbnQgY2FzZSwgb25seSBkZWZpbmVkIGlmIGZpZWxkIGlzIGxvYWRlZCB1c2luZyB7QGxpbmsgVGFza1JlZkZpZWxkfVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdHJpbmdJZDogc3RyaW5nLCBwcml2YXRlIF90aXRsZTogc3RyaW5nLCBpbml0aWFsVmFsdWU6IFQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgX2JlaGF2aW9yOiBCZWhhdmlvciwgcHJpdmF0ZSBfcGxhY2Vob2xkZXI/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgX2Rlc2NyaXB0aW9uPzogc3RyaW5nLCBwcml2YXRlIF9sYXlvdXQ/OiBMYXlvdXQsIHB1YmxpYyB2YWxpZGF0aW9ucz86IEFycmF5PFZhbGlkYXRpb24+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIF9jb21wb25lbnQ/OiBDb21wb25lbnQsIHByaXZhdGUgX3BhcmVudFRhc2tJZD86IHN0cmluZywgcHJpdmF0ZSBfcGFyZW50Q2FzZUlkPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUPihpbml0aWFsVmFsdWUpO1xuICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUPihpbml0aWFsVmFsdWUpO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fdmFsaWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl91cGRhdGUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgICB0aGlzLl9ibG9jayA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgICAgIHRoaXMuX3RvdWNoID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICAgICAgdGhpcy5fdmFsaWRSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGF5b3V0U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGF5b3V0PihfbGF5b3V0KTtcbiAgICAgICAgdGhpcy5yZXNldExvY2FsTGF5b3V0KCk7XG4gICAgfVxuXG4gICAgZ2V0IHN0cmluZ0lkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJpbmdJZDtcbiAgICB9XG5cbiAgICBzZXQgdGl0bGUodGl0bGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl90aXRsZSA9IHRpdGxlO1xuICAgIH1cblxuICAgIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gICAgfVxuXG4gICAgc2V0IHBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIHNldCBkZXNjcmlwdGlvbihkZXNjOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZGVzY3JpcHRpb24gPSBkZXNjO1xuICAgIH1cblxuICAgIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb247XG4gICAgfVxuXG4gICAgc2V0IGJlaGF2aW9yKGJlaGF2aW9yOiBCZWhhdmlvcikge1xuICAgICAgICB0aGlzLl9iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIH1cblxuICAgIGdldCBiZWhhdmlvcigpOiBCZWhhdmlvciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iZWhhdmlvcjtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZS5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVFcXVhbGl0eSh0aGlzLl92YWx1ZS5nZXRWYWx1ZSgpLCB2YWx1ZSkgJiYgIXRoaXMuX3JldmVydGluZykge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl93YWl0aW5nRm9yUmVzcG9uc2UgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlUHJldlZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWx1ZS5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fcmV2ZXJ0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudFRhc2tJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50VGFza0lkO1xuICAgIH1cblxuICAgIGdldCBwYXJlbnRDYXNlSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudENhc2VJZDtcbiAgICB9XG5cbiAgICBnZXQgcHJldmlvdXNWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZXZpb3VzVmFsdWUuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBzZXQgcHJldmlvdXNWYWx1ZSh2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWx1ZVdpdGhvdXRDaGFuZ2UodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl92YWx1ZS5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXQgbGF5b3V0KGxheW91dDogTGF5b3V0KSB7XG4gICAgICAgIHRoaXMuX2xheW91dCA9IGxheW91dDtcbiAgICAgICAgdGhpcy5sYXlvdXRTdWJqZWN0Lm5leHQobGF5b3V0KTtcbiAgICB9XG5cbiAgICBnZXQgbGF5b3V0KCk6IExheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXlvdXQ7XG4gICAgfVxuXG4gICAgZ2V0IGxvY2FsTGF5b3V0KCk6IExheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbExheW91dDtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2JlaGF2aW9yLnZpc2libGUgJiYgIXRoaXMuX2JlaGF2aW9yLmVkaXRhYmxlO1xuICAgIH1cblxuICAgIGdldCBpbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkJC52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbGl6ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCB2YWxpZChzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmFsaWQgPSBzZXQ7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWQ7XG4gICAgfVxuXG4gICAgc2V0IGNoYW5nZWQoc2V0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NoYW5nZWQgPSBzZXQ7XG4gICAgfVxuXG4gICAgZ2V0IGNoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VkO1xuICAgIH1cblxuICAgIHNldCBibG9jayhzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkU3Vic2NyaXB0aW9uICE9PSB1bmRlZmluZWQgJiYgIXRoaXMuX2luaXRpYWxpemVkU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbml0aWFsaXplZFN1YnNjcmlwdGlvbiA9IHRoaXMuaW5pdGlhbGl6ZWQkLnBpcGUoZmlsdGVyKGkgPT4gaSksIHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9ibG9jay5uZXh0KHNldCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldCB0b3VjaChzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdG91Y2gubmV4dChzZXQpO1xuICAgIH1cblxuICAgIGdldCB0b3VjaCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcG9uZW50KCk6IENvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJldmVydFRvUHJldmlvdXNWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3JldmVydGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnByZXZpb3VzVmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbGlkUmVxdWlyZWQoc2V0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkUmVxdWlyZWQgPSBzZXQ7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZFJlcXVpcmVkO1xuICAgIH1cblxuICAgIGdldCBzZW5kSW52YWxpZFZhbHVlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbmRJbnZhbGlkVmFsdWVzO1xuICAgIH1cblxuICAgIHNldCBzZW5kSW52YWxpZFZhbHVlcyh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fc2VuZEludmFsaWRWYWx1ZXMgPSB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgd2FpdGluZ0ZvclJlc3BvbnNlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2FpdGluZ0ZvclJlc3BvbnNlO1xuICAgIH1cblxuICAgIHNldCB3YWl0aW5nRm9yUmVzcG9uc2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fd2FpdGluZ0ZvclJlc3BvbnNlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2VzKCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHJldmVydGluZyhzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmV2ZXJ0aW5nID0gc2V0O1xuICAgIH1cblxuICAgIGdldCByZXZlcnRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXZlcnRpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgICAgdGhpcy5faW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0KCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXQ7XG4gICAgfVxuXG4gICAgc2V0IGlucHV0KHZhbHVlOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiByZXNvbHZlIHR5cGUgb2YgY29tcG9uZW50IGZvciBIVE1MXG4gICAgICogQHJldHVybnMgdHlwZSBvZiBjb21wb25lbnQgaW4gc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGdldENvbXBvbmVudFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50Py5uYW1lID8/ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl90b3VjaC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9ibG9jay5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5sYXlvdXRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRm9ybUNvbnRyb2woZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgZmllbGQgY2FuIGJlIGluaXRpYWxpemVkIG9ubHkgb25jZSEnXG4gICAgICAgICAgICAgICAgKyAnIERpc2Nvbm5lY3QgdGhlIHByZXZpb3VzIGZvcm0gY29udHJvbCBiZWZvcmUgaW5pdGlhbGl6aW5nIHRoZSBkYXRhIGZpZWxkIGFnYWluIScpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKSk7XG5cbiAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbiA9IGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQodGhpcy52YWx1ZUVxdWFsaXR5KVxuICAgICAgICApLnN1YnNjcmliZShuZXdWYWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZCA9IHRoaXMuX2RldGVybWluZUZvcm1Db250cm9sVmFsaWRpdHkoZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9teVZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5fdmFsdWUucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMudmFsdWVFcXVhbGl0eSlcbiAgICAgICAgKS5zdWJzY3JpYmUobmV3VmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xTdGF0ZShmb3JtQ29udHJvbCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNjb25uZWN0Rm9ybUNvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgY29uc3Qgc3VicyA9IFtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgIHRoaXMuX2Jsb2NrU3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgdGhpcy5fdG91Y2hTdWJzY3JpcHRpb24sXG4gICAgICAgICAgICB0aGlzLl9mb3JtQ29udHJvbFZhbHVlU3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgdGhpcy5fbXlWYWx1ZVN1YnNjcmlwdGlvblxuICAgICAgICBdO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YiBvZiBzdWJzKSB7XG4gICAgICAgICAgICBpZiAoc3ViKSB7XG4gICAgICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZShmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9Jbm5lclN1YmplY3RzKGZvcm1Db250cm9sKTtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3Vic2NyaWJlVG9Jbm5lclN1YmplY3RzKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgICAgICB0aGlzLl91cGRhdGVTdWJzY3JpcHRpb24gPSB0aGlzLl91cGRhdGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRSZXF1aXJlZCA9IHRoaXMuY2FsY3VsYXRlVmFsaWRpdHkodHJ1ZSwgZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgdGhpcy52YWxpZCA9IHRoaXMuY2FsY3VsYXRlVmFsaWRpdHkoZmFsc2UsIGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fYmxvY2tlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPyBmb3JtQ29udHJvbC5kaXNhYmxlKCkgOiBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fYmxvY2tTdWJzY3JpcHRpb24gPSB0aGlzLl9ibG9jay5zdWJzY3JpYmUoYm9vbCA9PiB7XG4gICAgICAgICAgICBpZiAoYm9vbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Jsb2NrZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYmxvY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPyBmb3JtQ29udHJvbC5kaXNhYmxlKCkgOiBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdG91Y2hTdWJzY3JpcHRpb24gPSB0aGlzLl90b3VjaC5zdWJzY3JpYmUoYm9vbCA9PiB7XG4gICAgICAgICAgICBpZiAoYm9vbCkge1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHdoZXRoZXIgdGhlIEZvcm1Db250cm9sIHNpIHZhbGlkLlxuICAgICAqIEBwYXJhbSBmb3JtQ29udHJvbCBjaGVjayBmb3JtIGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2RldGVybWluZUZvcm1Db250cm9sVmFsaWRpdHkoZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIGRpc2FibGVkIGZvcm0gY29udHJvbHMgYXJlIG1hcmtlZCBhcyBpbnZhbGlkIGFzIHBlciBXM0Mgc3RhbmRhcmQsIHRoaXMgc29sdmVzIHRoYXQgcHJvYmxlbVxuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2wuZGlzYWJsZWQgfHwgZm9ybUNvbnRyb2wudmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBWYWxpZGF0b3Igb2JqZWN0cyBiYXNlZCBvbiBmaWVsZCBgYmVoYXZpb3JgLiBPbmx5IHRoZSBgcmVxdWlyZWRgIGJlaGF2aW9yIGlzIHJlc29sdmVkIGJ5IGRlZmF1bHQuXG4gICAgICogUmVxdWlyZWQgaXMgcmVzb2x2ZWQgYXMgYFZhbGlkYXRvcnMucmVxdWlyZWRgLlxuICAgICAqIElmIHlvdSBuZWVkIHRvIHJlc29sdmUgYWRkaXRpb25hbCBWYWxpZGF0b3JzIG9yIG5lZWQgYSBkaWZmZXJlbnQgcmVzb2x1dGlvbiBmb3IgdGhlIGByZXF1aXJlZGAgVmFsaWRhdG9yIG92ZXJyaWRlIHRoaXMgbWV0aG9kLlxuICAgICAqXG4gICAgICogU2VlIHtAbGluayBCZWhhdmlvcn0gZm9yIGluZm9ybWF0aW9uIGFib3V0IGRhdGEgZmllbGQgYmVoYXZpb3IuXG4gICAgICpcbiAgICAgKiBTZWUge0BsaW5rIFZhbGlkYXRvckZufSBhbmQge0BsaW5rIFZhbGlkYXRvcnN9IGZvciBpbmZvcm1hdGlvbiBhYm91dCBWYWxpZGF0b3JzLlxuICAgICAqXG4gICAgICogQWx0ZXJuYXRpdmVseSBzZWUgW0Zvcm0gVmFsaWRhdGlvbiBndWlkZV17QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2Zvcm0tdmFsaWRhdGlvbiNyZWFjdGl2ZS1mb3JtLXZhbGlkYXRpb259IGZyb20gQW5ndWxhci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUZvcm1Db250cm9sVmFsaWRhdG9ycygpOiBBcnJheTxWYWxpZGF0b3JGbj4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICBpZiAodGhpcy5iZWhhdmlvci5yZXF1aXJlZCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9ucykge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZhbGlkYXRvcnMpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLl92YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsaWRhdG9ycyA9IHRoaXMucmVzb2x2ZVZhbGlkYXRpb25zKCk7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4udGhpcy5fdmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyByZXBsYWNlVmFsaWRhdGlvbnModmFsaWRhdGlvbnM6IEFycmF5PFZhbGlkYXRpb24+KSB7XG4gICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbnMgPSB2YWxpZGF0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWxpZGF0b3JzID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZVZhbGlkYXRpb25zKCk6IEFycmF5PFZhbGlkYXRvckZuPiB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHR3byB2YWx1ZXMgb2YgdGhlIGRhdGEgZmllbGQgYXJlIGVxdWFsLlxuICAgICAqXG4gICAgICogYGEgPT09IGJgIGVxdWFsaXR5IGlzIHVzZWQgYnkgZGVmYXVsdC4gSWYgeW91IHdhbnQgZGlmZmVyZW50IGJlaGF2aW9yIG92ZXJyaWRlIHRoaXMgbWV0aG9kLlxuICAgICAqIEBwYXJhbSBhIC0gZmlyc3QgY29tcGFyZWQgdmFsdWVcbiAgICAgKiBAcGFyYW0gYiAtIHNlY29uZCBjb21wYXJlZCB2YWx1ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB2YWx1ZUVxdWFsaXR5KGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGEgPT09IGIgfHwgKE51bWJlci5pc05hTihhKSAmJiBOdW1iZXIuaXNOYU4oYikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHN0YXRlIG9mIHRoaXMgZGF0YSBmaWVsZCBtb2RlbCBvYmplY3QuXG4gICAgICogQHBhcmFtIGNoYW5nZSAtIG9iamVjdCBkZXNjcmliaW5nIHRoZSBjaGFuZ2VzIC0gcmV0dXJuZWQgZnJvbSBiYWNrZW5kXG4gICAgICpcbiAgICAgKiBBbHNvIHNlZSB7QGxpbmsgQ2hhbmdlZEZpZWxkc30uXG4gICAgICovXG4gICAgcHVibGljIGFwcGx5Q2hhbmdlKGNoYW5nZTogQ2hhbmdlKTogdm9pZCB7XG4gICAgICAgIE9iamVjdC5rZXlzKGNoYW5nZSkuZm9yRWFjaChjaGFuZ2VkQXR0cmlidXRlID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoY2hhbmdlZEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGNoYW5nZVtjaGFuZ2VkQXR0cmlidXRlXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYmVoYXZpb3InOlxuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuYmVoYXZpb3IsIGNoYW5nZVtjaGFuZ2VkQXR0cmlidXRlXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhdHRyaWJ1dGUgJyR7Y2hhbmdlZEF0dHJpYnV0ZX0nIGluIGNoYW5nZSBvYmplY3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc29sdmVBcHBlYXJhbmNlKGNvbmZpZzogQ29uZmlndXJhdGlvblNlcnZpY2UpOiB2b2lkIHtcbiAgICAgICAgbGV0IGFwcGVhcmFuY2UgPSAnb3V0bGluZSc7XG4gICAgICAgIGlmICh0aGlzLmxheW91dCAmJiB0aGlzLmxheW91dC5hcHBlYXJhbmNlKSB7XG4gICAgICAgICAgICBhcHBlYXJhbmNlID0gdGhpcy5sYXlvdXQuYXBwZWFyYW5jZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFmaWVsZENvbmZpZ3VyYXRpb24gPSBjb25maWcuZ2V0RGF0YWZpZWxkQ29uZmlndXJhdGlvbigpO1xuICAgICAgICAgICAgaWYgKGRhdGFmaWVsZENvbmZpZ3VyYXRpb24gJiYgZGF0YWZpZWxkQ29uZmlndXJhdGlvbi5hcHBlYXJhbmNlKSB7XG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZSA9IGRhdGFmaWVsZENvbmZpZ3VyYXRpb24uYXBwZWFyYW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hdGVyaWFsQXBwZWFyYW5jZSA9IGFwcGVhcmFuY2U7XG5cbiAgICAgICAgLyogTGlzdGVuIGZvciBjaGFuZ2VzIG9mIGxheW91dCBpbiBmdXR1cmUgKi9cbiAgICAgICAgdGhpcy5sYXlvdXRTdWJqZWN0LnN1YnNjcmliZShsYXlvdXQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0ICYmIHRoaXMubGF5b3V0LmFwcGVhcmFuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hdGVyaWFsQXBwZWFyYW5jZSA9IHRoaXMubGF5b3V0LmFwcGVhcmFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlUHJldlZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZS5nZXRWYWx1ZSgpICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICYmIHRoaXMuX3ZhbHVlLmdldFZhbHVlKCkgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlLm5leHQodGhpcy5fdmFsdWUuZ2V0VmFsdWUoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlVmFsaWRpdHkoZm9yVmFsaWRSZXF1aXJlZDogYm9vbGVhbiwgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBmb3JtQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgaWYgKGZvclZhbGlkUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICBpZiAoZm9yVmFsaWRSZXF1aXJlZCkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLmJlaGF2aW9yLnJlcXVpcmVkID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICBjb25zdCB2YWxpZGl0eSA9IHRoaXMuX2RldGVybWluZUZvcm1Db250cm9sVmFsaWRpdHkoZm9ybUNvbnRyb2wpO1xuICAgICAgICBpc0Rpc2FibGVkID8gZm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIHJldHVybiB2YWxpZGl0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNJbnZhbGlkKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIWZvcm1Db250cm9sLmRpc2FibGVkICYmICFmb3JtQ29udHJvbC52YWxpZCAmJiBmb3JtQ29udHJvbC50b3VjaGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcGllcyB0aGUgbGF5b3V0IHNldHRpbmdzIGludG8gdGhlIGxvY2FsIGxheW91dC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzZXRMb2NhbExheW91dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2xheW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NhbExheW91dCA9IHsuLi50aGlzLl9sYXlvdXR9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbG9jYWxMYXlvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
434
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUEyQixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR2xFLE9BQU8sRUFBWSxPQUFPLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFHL0MsT0FBTyxFQUFtQixjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFNBQVM7SUFtSDNCOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILFlBQThCLFNBQWlCLEVBQVUsTUFBYyxFQUFFLFlBQWUsRUFDMUQsU0FBbUIsRUFBVSxZQUFxQixFQUNsRCxZQUFxQixFQUFVLE9BQWdCLEVBQVMsV0FBK0IsRUFDdkYsVUFBc0IsRUFBVSxhQUFzQixFQUFVLGFBQXNCO1FBSHRGLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3pDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUNsRCxpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDdkYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQVM7UUEvRHBIOztXQUVH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LFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxTQUFTLENBQUMsV0FBd0I7UUFDckMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDOUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDO1NBQ3pDO2FBQU07WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztTQUNqQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmVoYXZpb3J9IGZyb20gJy4vYmVoYXZpb3InO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDaGFuZ2V9IGZyb20gJy4vY2hhbmdlZC1maWVsZHMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi9sYXlvdXQnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21wb25lbnQsIERFRkFVTFR9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7VmFsaWRhdGlvbn0gZnJvbSAnLi92YWxpZGF0aW9uJztcbmltcG9ydCB7RWxlbWVudFJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7VXBkYXRlT25TdHJhdGVneSwgVXBkYXRlU3RyYXRlZ3l9IGZyb20gXCIuL3VwZGF0ZS1zdHJhdGVneVwiO1xuXG4vKipcbiAqIEhvbGRzIHRoZSBsb2dpYyBjb21tb24gdG8gYWxsIGRhdGEgZmllbGQgTW9kZWwgb2JqZWN0cy5cbiAqIEB0eXBlcGFyYW0gVCAtIHR5cGUgb2YgdGhlIGB2YWx1ZWAgcHJvcGVydHkgb2YgdGhlIGRhdGEgZmllbGRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFGaWVsZDxUPiB7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIEN1cnJlbnQgdmFsdWUgb2YgdGhlIGRhdGEgZmllbGRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBCZWhhdmlvclN1YmplY3Q8VD47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFByZXZpb3VzIHZhbHVlIG9mIHRoZSBkYXRhIGZpZWxkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9wcmV2aW91c1ZhbHVlOiBCZWhhdmlvclN1YmplY3Q8VD47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFdoZXRoZXIgdGhlIGRhdGEgZmllbGQgTW9kZWwgb2JqZWN0IHdhcyBpbml0aWFsaXplZCwgd2UgcHVzaCB0aGF0IGluZm8gaW50byBzdHJlYW1cbiAgICAgKlxuICAgICAqIFNlZSBbcmVnaXN0ZXJGb3JtQ29udHJvbCgpXXtAbGluayBEYXRhRmllbGQjcmVnaXN0ZXJGb3JtQ29udHJvbH0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pbml0aWFsaXplZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hldGhlciB0aGUgZmllbGQgZnVsZmlsbHMgYWxsIG9mIGl0J3MgdmFsaWRhdG9ycy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF92YWxpZDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hldGhlciB0aGUgYHZhbHVlYCBvZiB0aGUgZmllbGQgY2hhbmdlZCByZWNlbnRseS4gVGhlIGZsYWcgaXMgY2xlYXJlZCB3aGVuIGNoYW5nZXMgYXJlIHNlbmQgdG8gYmFja2VuZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jaGFuZ2VkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBEYXRhIGZpZWxkIHN1YnNjcmliZXMgdGhpcyBzdHJlYW0uXG4gICAgICogVGhlIGRhdGEgZmllbGQgdXBkYXRlcyBpdCdzIFZhbGlkYXRvcnMsIHZhbGlkaXR5IGFuZCBlbmFibGVkL2Rpc2FibGVkIGFjY29yZGluZyB0byBpdCdzIGJlaGF2aW9yLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdXBkYXRlOiBTdWJqZWN0PHZvaWQ+O1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBEYXRhIGZpZWxkIHN1YnNjcmliZXMgdGhpcyBzdHJlYW0uIFdoZW4gYSBgdHJ1ZWAgdmFsdWUgaXMgcmVjZWl2ZWQgdGhlIGRhdGEgZmllbGQgZGlzYWJsZXMgaXRzZWxmLlxuICAgICAqIFdoZW4gYSBgZmFsc2VgdmFsdWUgaXMgcmVjZWl2ZWQgZGF0YSBmaWVsZCBkaXNhYmxlcy9lbmFibGVzIGl0c2VsZiBiYXNlZCBvbiBpdCdzIGJlaGF2aW9yLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfYmxvY2s6IFN1YmplY3Q8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFdoZW4gYSBgdHJ1ZWAgdmFsdWUgaXMgdGhlcmUsIHRoZSBkYXRhIGZpZWxkIGlzIGRpc2FibGVkLlxuICAgICAqIFdoZW4gYSBgZmFsc2VgIHZhbHVlIGlzIHJlY2VpdmVkLCBkYXRhIGZpZWxkIGlzIGRpc2FibGVkL2VuYWJsZWQgYmFzZWQgb24gaXQncyBiZWhhdmlvci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2Jsb2NrZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIERhdGEgZmllbGQgc3Vic2NyaWJlcyB0aGlzIHN0cmVhbS4gU2V0cyB0aGUgc3RhdGUgb2YgdGhlIGRhdGEgZmllbGQgdG8gXCJ0b3VjaGVkXCIgb3IgXCJ1bnRvdWNoZWRcIiAoYHRydWVgL2BmYWxzZWApLlxuICAgICAqIFZhbGlkaXR5IG9mIHRoZSBkYXRhIGZpZWxkIGlzIG5vdCBjaGVja2VkIGluIGFuIFwidW50b3VjaGVkXCIgc3RhdGUuXG4gICAgICogQWxsIGZpZWxkcyBhcmUgdG91Y2hlZCBiZWZvcmUgYSB0YXNrIGlzIGZpbmlzaGVkIHRvIGNoZWNrIHRoZWlyIHZhbGlkaXR5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdG91Y2g6IFN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIF91cGRhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX2Jsb2NrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF90b3VjaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfZm9ybUNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfbXlWYWx1ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBBcHBlYXJhbmNlIG9mIGRhdGFGaWVsZHMsIHBvc3NpYmxlIHZhbHVlcyAtIG91dGxpbmUsIHN0YW5kYXJkLCBmaWxsLCBsZWdhY3lcbiAgICAgKi9cbiAgICBwdWJsaWMgbWF0ZXJpYWxBcHBlYXJhbmNlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFdoZXRoZXIgdGhlIGZpZWxkIGZ1bGZpbGxzIHJlcXVpcmVkIHZhbGlkYXRvci5cbiAgICAgKi9cbiAgICBwcml2YXRlIF92YWxpZFJlcXVpcmVkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgaW52YWxpZCBmaWVsZCB2YWx1ZXMgc2hvdWxkIGJlIHNlbnQgdG8gYmFja2VuZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZW5kSW52YWxpZFZhbHVlcyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogRmxhZyB0aGF0IGlzIHNldCBkdXJpbmcgcmV2ZXJ0aW5nXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmV2ZXJ0aW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3JzIHJlc29sdmVkIGZyb20gZmllbGQgdmFsaWRhdGlvbnNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPjtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyB0aGUgbGFzdCBzdWJzY3JpcHRpb24gdG8gdGhlIFtfaW5pdGlhbGl6ZWQkXXtAbGluayBBYnN0cmFjdERhdGFGaWVsZCNfaW5pdGlhbGl6ZWQkfSBTdHJlYW0sIHRvIHByZXZlbnQgbXVsdGlwbGUgYmxvY2sgZXZlbnRzXG4gICAgICogZnJvbSBleGVjdXRpbmcgYXQgdGhlIHNhbWUgdGltZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfaW5pdGlhbGl6ZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBXaGV0aGVyIHRoZSBjaGFuZ2VzIGZyb20gaGFzIGJlZW4gcmVxdWVzdGVkLiBUaGUgZmxhZyBpcyBjbGVhcmVkIHdoZW4gY2hhbmdlcyBhcmUgcmVjZWl2ZWQgZnJvbSBiYWNrZW5kLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3dhaXRpbmdGb3JSZXNwb25zZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyBhIGNvcHkgb2YgdGhlIGZpZWxkcyBsYXlvdXQsIHRoYXQgY2FuIGJlIG1vZGlmaWVkIGJ5IHRoZSBsYXlvdXRpbmcgYWxnb3JpdGhtIGFzIG5lZWRlZFxuICAgICAqIHdpdGhvdXQgYWZmZWN0aW5nIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9sb2NhbExheW91dDogTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogTGlzdGVucyBmb3IgbGF5b3V0IGNoYW5nZXNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbGF5b3V0U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PExheW91dD47XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gcmVuZGVyZWQgZWxlbWVudFxuICAgICAqICovXG4gICAgcHJpdmF0ZSBfaW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gZm9ybSBjb250cm9sXG4gICAgICogKi9cbiAgICBwcml2YXRlIF9mb3JtQ29udHJvbFJlZjogRm9ybUNvbnRyb2w7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gX3N0cmluZ0lkIC0gSUQgb2YgdGhlIGRhdGEgZmllbGQgZnJvbSBiYWNrZW5kXG4gICAgICogQHBhcmFtIF90aXRsZSAtIGRpc3BsYXllZCB0aXRsZSBvZiB0aGUgZGF0YSBmaWVsZCBmcm9tIGJhY2tlbmRcbiAgICAgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIC0gaW5pdGlhbCB2YWx1ZSBvZiB0aGUgZGF0YSBmaWVsZFxuICAgICAqIEBwYXJhbSBfYmVoYXZpb3IgLSBkYXRhIGZpZWxkIGJlaGF2aW9yXG4gICAgICogQHBhcmFtIF9wbGFjZWhvbGRlciAtIHBsYWNlaG9sZGVyIGRpc3BsYXllZCBpbiB0aGUgZGF0YWZpZWxkXG4gICAgICogQHBhcmFtIF9kZXNjcmlwdGlvbiAtIHRvb2x0aXAgb2YgdGhlIGRhdGFmaWVsZFxuICAgICAqIEBwYXJhbSBfbGF5b3V0IC0gaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSBjb21wb25lbnQgcmVuZGVyaW5nXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25zXG4gICAgICogQHBhcmFtIF9jb21wb25lbnQgLSBjb21wb25lbnQgZGF0YSBvZiBkYXRhZmllbGRcbiAgICAgKiBAcGFyYW0gX3BhcmVudFRhc2tJZCAtIHN0cmluZ0lkIG9mIHBhcmVudCB0YXNrLCBvbmx5IGRlZmluZWQgaWYgZmllbGQgaXMgbG9hZGVkIHVzaW5nIHtAbGluayBUYXNrUmVmRmllbGR9XG4gICAgICogQHBhcmFtIF9wYXJlbnRDYXNlSWQgLSBzdHJpbmdJZCBvZiBwYXJlbnQgY2FzZSwgb25seSBkZWZpbmVkIGlmIGZpZWxkIGlzIGxvYWRlZCB1c2luZyB7QGxpbmsgVGFza1JlZkZpZWxkfVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdHJpbmdJZDogc3RyaW5nLCBwcml2YXRlIF90aXRsZTogc3RyaW5nLCBpbml0aWFsVmFsdWU6IFQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgX2JlaGF2aW9yOiBCZWhhdmlvciwgcHJpdmF0ZSBfcGxhY2Vob2xkZXI/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgX2Rlc2NyaXB0aW9uPzogc3RyaW5nLCBwcml2YXRlIF9sYXlvdXQ/OiBMYXlvdXQsIHB1YmxpYyB2YWxpZGF0aW9ucz86IEFycmF5PFZhbGlkYXRpb24+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIF9jb21wb25lbnQ/OiBDb21wb25lbnQsIHByaXZhdGUgX3BhcmVudFRhc2tJZD86IHN0cmluZywgcHJpdmF0ZSBfcGFyZW50Q2FzZUlkPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUPihpbml0aWFsVmFsdWUpO1xuICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUPihpbml0aWFsVmFsdWUpO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fdmFsaWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl91cGRhdGUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgICB0aGlzLl9ibG9jayA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgICAgIHRoaXMuX3RvdWNoID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICAgICAgdGhpcy5fdmFsaWRSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGF5b3V0U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGF5b3V0PihfbGF5b3V0KTtcbiAgICAgICAgdGhpcy5yZXNldExvY2FsTGF5b3V0KCk7XG4gICAgfVxuXG4gICAgZ2V0IHN0cmluZ0lkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJpbmdJZDtcbiAgICB9XG5cbiAgICBzZXQgdGl0bGUodGl0bGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl90aXRsZSA9IHRpdGxlO1xuICAgIH1cblxuICAgIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gICAgfVxuXG4gICAgc2V0IHBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIHNldCBkZXNjcmlwdGlvbihkZXNjOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZGVzY3JpcHRpb24gPSBkZXNjO1xuICAgIH1cblxuICAgIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb247XG4gICAgfVxuXG4gICAgc2V0IGJlaGF2aW9yKGJlaGF2aW9yOiBCZWhhdmlvcikge1xuICAgICAgICB0aGlzLl9iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIH1cblxuICAgIGdldCBiZWhhdmlvcigpOiBCZWhhdmlvciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iZWhhdmlvcjtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZS5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVFcXVhbGl0eSh0aGlzLl92YWx1ZS5nZXRWYWx1ZSgpLCB2YWx1ZSkgJiYgIXRoaXMuX3JldmVydGluZykge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl93YWl0aW5nRm9yUmVzcG9uc2UgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlUHJldlZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWx1ZS5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fcmV2ZXJ0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudFRhc2tJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50VGFza0lkO1xuICAgIH1cblxuICAgIGdldCBwYXJlbnRDYXNlSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudENhc2VJZDtcbiAgICB9XG5cbiAgICBnZXQgcHJldmlvdXNWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZXZpb3VzVmFsdWUuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBzZXQgcHJldmlvdXNWYWx1ZSh2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWx1ZVdpdGhvdXRDaGFuZ2UodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl92YWx1ZS5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXQgbGF5b3V0KGxheW91dDogTGF5b3V0KSB7XG4gICAgICAgIHRoaXMuX2xheW91dCA9IGxheW91dDtcbiAgICAgICAgdGhpcy5sYXlvdXRTdWJqZWN0Lm5leHQobGF5b3V0KTtcbiAgICB9XG5cbiAgICBnZXQgbGF5b3V0KCk6IExheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXlvdXQ7XG4gICAgfVxuXG4gICAgZ2V0IGxvY2FsTGF5b3V0KCk6IExheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbExheW91dDtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2JlaGF2aW9yLnZpc2libGUgJiYgIXRoaXMuX2JlaGF2aW9yLmVkaXRhYmxlO1xuICAgIH1cblxuICAgIGdldCBpbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkJC52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbGl6ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCB2YWxpZChzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmFsaWQgPSBzZXQ7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWQ7XG4gICAgfVxuXG4gICAgc2V0IGNoYW5nZWQoc2V0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NoYW5nZWQgPSBzZXQ7XG4gICAgfVxuXG4gICAgZ2V0IGNoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VkO1xuICAgIH1cblxuICAgIHNldCBibG9jayhzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkU3Vic2NyaXB0aW9uICE9PSB1bmRlZmluZWQgJiYgIXRoaXMuX2luaXRpYWxpemVkU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbml0aWFsaXplZFN1YnNjcmlwdGlvbiA9IHRoaXMuaW5pdGlhbGl6ZWQkLnBpcGUoZmlsdGVyKGkgPT4gaSksIHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9ibG9jay5uZXh0KHNldCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldCB0b3VjaChzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdG91Y2gubmV4dChzZXQpO1xuICAgIH1cblxuICAgIGdldCB0b3VjaCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcG9uZW50KCk6IENvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJldmVydFRvUHJldmlvdXNWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3JldmVydGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnByZXZpb3VzVmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbGlkUmVxdWlyZWQoc2V0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkUmVxdWlyZWQgPSBzZXQ7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZFJlcXVpcmVkO1xuICAgIH1cblxuICAgIGdldCBzZW5kSW52YWxpZFZhbHVlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbmRJbnZhbGlkVmFsdWVzO1xuICAgIH1cblxuICAgIHNldCBzZW5kSW52YWxpZFZhbHVlcyh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fc2VuZEludmFsaWRWYWx1ZXMgPSB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgd2FpdGluZ0ZvclJlc3BvbnNlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2FpdGluZ0ZvclJlc3BvbnNlO1xuICAgIH1cblxuICAgIHNldCB3YWl0aW5nRm9yUmVzcG9uc2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fd2FpdGluZ0ZvclJlc3BvbnNlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2VzKCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHJldmVydGluZyhzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmV2ZXJ0aW5nID0gc2V0O1xuICAgIH1cblxuICAgIGdldCByZXZlcnRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXZlcnRpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLl9pbnB1dCkge1xuICAgICAgICAgICAgdGhpcy5faW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0KCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXQ7XG4gICAgfVxuXG4gICAgc2V0IGlucHV0KHZhbHVlOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuX2lucHV0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1Db250cm9sUmVmKCk6IEZvcm1Db250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1Db250cm9sUmVmO1xuICAgIH1cblxuICAgIHNldCBmb3JtQ29udHJvbFJlZihmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2xSZWYgPSBmb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VXBkYXRlT25TdHJhdGVneSgpOiBVcGRhdGVPblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIFVwZGF0ZVN0cmF0ZWd5LkJMVVI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiByZXNvbHZlIHR5cGUgb2YgY29tcG9uZW50IGZvciBIVE1MXG4gICAgICogQHJldHVybnMgdHlwZSBvZiBjb21wb25lbnQgaW4gc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGdldENvbXBvbmVudFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50Py5uYW1lID8/IERFRkFVTFQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGdldFR5cGVkQ29tcG9uZW50VHlwZSgpOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWUuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fcHJldmlvdXNWYWx1ZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl91cGRhdGUuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fdG91Y2guY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fYmxvY2suY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMubGF5b3V0U3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckZvcm1Db250cm9sKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIGZpZWxkIGNhbiBiZSBpbml0aWFsaXplZCBvbmx5IG9uY2UhJ1xuICAgICAgICAgICAgICAgICsgJyBEaXNjb25uZWN0IHRoZSBwcmV2aW91cyBmb3JtIGNvbnRyb2wgYmVmb3JlIGluaXRpYWxpemluZyB0aGUgZGF0YSBmaWVsZCBhZ2FpbiEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xSZWYgPSBmb3JtQ29udHJvbDtcbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKSk7XG5cbiAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbiA9IGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQodGhpcy52YWx1ZUVxdWFsaXR5KVxuICAgICAgICApLnN1YnNjcmliZShuZXdWYWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZCA9IHRoaXMuX2RldGVybWluZUZvcm1Db250cm9sVmFsaWRpdHkoZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9teVZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5fdmFsdWUucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMudmFsdWVFcXVhbGl0eSlcbiAgICAgICAgKS5zdWJzY3JpYmUobmV3VmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xTdGF0ZShmb3JtQ29udHJvbCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNjb25uZWN0Rm9ybUNvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgY29uc3Qgc3VicyA9IFtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgIHRoaXMuX2Jsb2NrU3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgdGhpcy5fdG91Y2hTdWJzY3JpcHRpb24sXG4gICAgICAgICAgICB0aGlzLl9mb3JtQ29udHJvbFZhbHVlU3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgdGhpcy5fbXlWYWx1ZVN1YnNjcmlwdGlvblxuICAgICAgICBdO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YiBvZiBzdWJzKSB7XG4gICAgICAgICAgICBpZiAoc3ViKSB7XG4gICAgICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZShmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcbiAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9Jbm5lclN1YmplY3RzKGZvcm1Db250cm9sKTtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3Vic2NyaWJlVG9Jbm5lclN1YmplY3RzKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgICAgICB0aGlzLl91cGRhdGVTdWJzY3JpcHRpb24gPSB0aGlzLl91cGRhdGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRSZXF1aXJlZCA9IHRoaXMuY2FsY3VsYXRlVmFsaWRpdHkodHJ1ZSwgZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgdGhpcy52YWxpZCA9IHRoaXMuY2FsY3VsYXRlVmFsaWRpdHkoZmFsc2UsIGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fYmxvY2tlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPyBmb3JtQ29udHJvbC5kaXNhYmxlKCkgOiBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fYmxvY2tTdWJzY3JpcHRpb24gPSB0aGlzLl9ibG9jay5zdWJzY3JpYmUoYm9vbCA9PiB7XG4gICAgICAgICAgICBpZiAoYm9vbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Jsb2NrZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYmxvY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPyBmb3JtQ29udHJvbC5kaXNhYmxlKCkgOiBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdG91Y2hTdWJzY3JpcHRpb24gPSB0aGlzLl90b3VjaC5zdWJzY3JpYmUoYm9vbCA9PiB7XG4gICAgICAgICAgICBpZiAoYm9vbCkge1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHdoZXRoZXIgdGhlIEZvcm1Db250cm9sIHNpIHZhbGlkLlxuICAgICAqIEBwYXJhbSBmb3JtQ29udHJvbCBjaGVjayBmb3JtIGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2RldGVybWluZUZvcm1Db250cm9sVmFsaWRpdHkoZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIGRpc2FibGVkIGZvcm0gY29udHJvbHMgYXJlIG1hcmtlZCBhcyBpbnZhbGlkIGFzIHBlciBXM0Mgc3RhbmRhcmQsIHRoaXMgc29sdmVzIHRoYXQgcHJvYmxlbVxuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2wuZGlzYWJsZWQgfHwgZm9ybUNvbnRyb2wudmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBWYWxpZGF0b3Igb2JqZWN0cyBiYXNlZCBvbiBmaWVsZCBgYmVoYXZpb3JgLiBPbmx5IHRoZSBgcmVxdWlyZWRgIGJlaGF2aW9yIGlzIHJlc29sdmVkIGJ5IGRlZmF1bHQuXG4gICAgICogUmVxdWlyZWQgaXMgcmVzb2x2ZWQgYXMgYFZhbGlkYXRvcnMucmVxdWlyZWRgLlxuICAgICAqIElmIHlvdSBuZWVkIHRvIHJlc29sdmUgYWRkaXRpb25hbCBWYWxpZGF0b3JzIG9yIG5lZWQgYSBkaWZmZXJlbnQgcmVzb2x1dGlvbiBmb3IgdGhlIGByZXF1aXJlZGAgVmFsaWRhdG9yIG92ZXJyaWRlIHRoaXMgbWV0aG9kLlxuICAgICAqXG4gICAgICogU2VlIHtAbGluayBCZWhhdmlvcn0gZm9yIGluZm9ybWF0aW9uIGFib3V0IGRhdGEgZmllbGQgYmVoYXZpb3IuXG4gICAgICpcbiAgICAgKiBTZWUge0BsaW5rIFZhbGlkYXRvckZufSBhbmQge0BsaW5rIFZhbGlkYXRvcnN9IGZvciBpbmZvcm1hdGlvbiBhYm91dCBWYWxpZGF0b3JzLlxuICAgICAqXG4gICAgICogQWx0ZXJuYXRpdmVseSBzZWUgW0Zvcm0gVmFsaWRhdGlvbiBndWlkZV17QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2Zvcm0tdmFsaWRhdGlvbiNyZWFjdGl2ZS1mb3JtLXZhbGlkYXRpb259IGZyb20gQW5ndWxhci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUZvcm1Db250cm9sVmFsaWRhdG9ycygpOiBBcnJheTxWYWxpZGF0b3JGbj4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICBpZiAodGhpcy5iZWhhdmlvci5yZXF1aXJlZCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9ucykge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZhbGlkYXRvcnMpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLl92YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsaWRhdG9ycyA9IHRoaXMucmVzb2x2ZVZhbGlkYXRpb25zKCk7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4udGhpcy5fdmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyByZXBsYWNlVmFsaWRhdGlvbnModmFsaWRhdGlvbnM6IEFycmF5PFZhbGlkYXRpb24+KSB7XG4gICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbnMgPSB2YWxpZGF0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWxpZGF0b3JzID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZVZhbGlkYXRpb25zKCk6IEFycmF5PFZhbGlkYXRvckZuPiB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHR3byB2YWx1ZXMgb2YgdGhlIGRhdGEgZmllbGQgYXJlIGVxdWFsLlxuICAgICAqXG4gICAgICogYGEgPT09IGJgIGVxdWFsaXR5IGlzIHVzZWQgYnkgZGVmYXVsdC4gSWYgeW91IHdhbnQgZGlmZmVyZW50IGJlaGF2aW9yIG92ZXJyaWRlIHRoaXMgbWV0aG9kLlxuICAgICAqIEBwYXJhbSBhIC0gZmlyc3QgY29tcGFyZWQgdmFsdWVcbiAgICAgKiBAcGFyYW0gYiAtIHNlY29uZCBjb21wYXJlZCB2YWx1ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB2YWx1ZUVxdWFsaXR5KGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGEgPT09IGIgfHwgKE51bWJlci5pc05hTihhKSAmJiBOdW1iZXIuaXNOYU4oYikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHN0YXRlIG9mIHRoaXMgZGF0YSBmaWVsZCBtb2RlbCBvYmplY3QuXG4gICAgICogQHBhcmFtIGNoYW5nZSAtIG9iamVjdCBkZXNjcmliaW5nIHRoZSBjaGFuZ2VzIC0gcmV0dXJuZWQgZnJvbSBiYWNrZW5kXG4gICAgICpcbiAgICAgKiBBbHNvIHNlZSB7QGxpbmsgQ2hhbmdlZEZpZWxkc30uXG4gICAgICovXG4gICAgcHVibGljIGFwcGx5Q2hhbmdlKGNoYW5nZTogQ2hhbmdlKTogdm9pZCB7XG4gICAgICAgIE9iamVjdC5rZXlzKGNoYW5nZSkuZm9yRWFjaChjaGFuZ2VkQXR0cmlidXRlID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoY2hhbmdlZEF0dHJpYnV0ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGNoYW5nZVtjaGFuZ2VkQXR0cmlidXRlXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYmVoYXZpb3InOlxuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuYmVoYXZpb3IsIGNoYW5nZVtjaGFuZ2VkQXR0cmlidXRlXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhdHRyaWJ1dGUgJyR7Y2hhbmdlZEF0dHJpYnV0ZX0nIGluIGNoYW5nZSBvYmplY3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc29sdmVBcHBlYXJhbmNlKGNvbmZpZzogQ29uZmlndXJhdGlvblNlcnZpY2UpOiB2b2lkIHtcbiAgICAgICAgbGV0IGFwcGVhcmFuY2UgPSAnb3V0bGluZSc7XG4gICAgICAgIGlmICh0aGlzLmxheW91dCAmJiB0aGlzLmxheW91dC5hcHBlYXJhbmNlKSB7XG4gICAgICAgICAgICBhcHBlYXJhbmNlID0gdGhpcy5sYXlvdXQuYXBwZWFyYW5jZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFmaWVsZENvbmZpZ3VyYXRpb24gPSBjb25maWcuZ2V0RGF0YWZpZWxkQ29uZmlndXJhdGlvbigpO1xuICAgICAgICAgICAgaWYgKGRhdGFmaWVsZENvbmZpZ3VyYXRpb24gJiYgZGF0YWZpZWxkQ29uZmlndXJhdGlvbi5hcHBlYXJhbmNlKSB7XG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZSA9IGRhdGFmaWVsZENvbmZpZ3VyYXRpb24uYXBwZWFyYW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hdGVyaWFsQXBwZWFyYW5jZSA9IGFwcGVhcmFuY2U7XG5cbiAgICAgICAgLyogTGlzdGVuIGZvciBjaGFuZ2VzIG9mIGxheW91dCBpbiBmdXR1cmUgKi9cbiAgICAgICAgdGhpcy5sYXlvdXRTdWJqZWN0LnN1YnNjcmliZShsYXlvdXQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0ICYmIHRoaXMubGF5b3V0LmFwcGVhcmFuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hdGVyaWFsQXBwZWFyYW5jZSA9IHRoaXMubGF5b3V0LmFwcGVhcmFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlUHJldlZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZS5nZXRWYWx1ZSgpICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICYmIHRoaXMuX3ZhbHVlLmdldFZhbHVlKCkgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlLm5leHQodGhpcy5fdmFsdWUuZ2V0VmFsdWUoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlVmFsaWRpdHkoZm9yVmFsaWRSZXF1aXJlZDogYm9vbGVhbiwgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBmb3JtQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgaWYgKGZvclZhbGlkUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICBpZiAoZm9yVmFsaWRSZXF1aXJlZCkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLmJlaGF2aW9yLnJlcXVpcmVkID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICBjb25zdCB2YWxpZGl0eSA9IHRoaXMuX2RldGVybWluZUZvcm1Db250cm9sVmFsaWRpdHkoZm9ybUNvbnRyb2wpO1xuICAgICAgICBpc0Rpc2FibGVkID8gZm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIHJldHVybiB2YWxpZGl0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNJbnZhbGlkKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIWZvcm1Db250cm9sLmRpc2FibGVkICYmICFmb3JtQ29udHJvbC52YWxpZCAmJiBmb3JtQ29udHJvbC50b3VjaGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcGllcyB0aGUgbGF5b3V0IHNldHRpbmdzIGludG8gdGhlIGxvY2FsIGxheW91dC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzZXRMb2NhbExheW91dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2xheW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NhbExheW91dCA9IHsuLi50aGlzLl9sYXlvdXR9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbG9jYWxMYXlvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlZC1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL21vZGVscy9jaGFuZ2VkLWZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvcn0gZnJvbSAnLi9iZWhhdmlvcic7XG5cbi8qKlxuICogcmVzcG9uc2UgZXhhbXBsZTpcbiAqICB7XCJjaGFuZ2VkRmllbGRzXCI6IHtcbiAqICAgICAgXCJ0ZXh0XzFcIjp7XCJiZWhhdmlvclwiOntcIjFcIjp7XCJlZGl0YWJsZVwiOnRydWV9fX0sXG4gKiAgICAgXCJ0ZXh0XzBcIjp7XCJiZWhhdmlvclwiOntcIjFcIjp7XCJ2aXNpYmxlXCI6dHJ1ZX19fSxcbiAqICAgICAgXCJ0ZXh0XzNcIjp7XCJiZWhhdmlvclwiOntcIjFcIjp7XCJlZGl0YWJsZVwiOnRydWUsXCJvcHRpb25hbFwiOnRydWV9fX0sXG4gKiAgICAgIFwidGV4dF8yXCI6e1wiYmVoYXZpb3JcIjp7XCIxXCI6e1wiZWRpdGFibGVcIjp0cnVlLFwicmVxdWlyZWRcIjp0cnVlfX19LFxuICogICAgICBcInRleHRfNVwiOntcImJlaGF2aW9yXCI6e1wiMVwiOntcImZvcmJpZGRlblwiOnRydWV9fX0sXG4gKiAgICAgIFwidGV4dF80XCI6e1wiYmVoYXZpb3JcIjp7XCIxXCI6e1wiaGlkZGVuXCI6dHJ1ZX19fVxuICogIH19XG4gKlxuICogIDEgPT0+IHRyYW5zaXRpb24gSURcbiAqXG4gKiAgaXQgbWlnaHQgYmUgYmV0dGVyIGlmIHNvbWUgcGFyZW50IGVsZW1lbnQgZ2F2ZSBvbmx5IHRoZSByZWxldmFudCBjaGFuZ2VzIHRvIGVhY2ggdGFza1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZWRGaWVsZHMge1xuICAgIC8qKlxuICAgICAqIGBTdHJpbmdJZGAgb2YgdGhlIGBUYXNrYCB0aGF0IFwib3duc1wiIHRoZSByZXF1ZXN0ZWQgZnJvbnRlbmQgYWN0aW9uc1xuICAgICAqL1xuICAgIGZyb250ZW5kQWN0aW9uc093bmVyPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSGFzIHR5cGUgYENoYW5nZWAgdW5sZXNzIGl0IGlzIGBmcm9udGVuZEFjdGlvbnNPd25lcmAgaW4gd2hpY2ggY2FzZSB0aGUgdHlwZSBpcyBgc3RyaW5nYFxuICAgICAqL1xuICAgIFtrZXk6IHN0cmluZ106IENoYW5nZSB8IGFueTtcblxuICAgIC8qKlxuICAgICAqIElkIG9mIHRhc2sgb24gd2hpY2ggdGhlIGNoYW5nZXMgb2NjdXJlZFxuICAgICAqL1xuICAgIHRhc2tJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2Uge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IGFueTtcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIC8vIGJlaGF2aW9yICBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0cmFuc2l0aW9uIGlkXG4gICAgYmVoYXZpb3I/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEJlaGF2aW9yXG4gICAgfTtcblxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBBIHByb3RvdHlwZSBpbXBsZW1lbnRhdGlvbiBvZiBmcm9udGVuZCBhY3Rpb25zLlxuICpcbiAqIFRoZSBzcGVjaWZpY3MgYXJlIHN1YmplY3QgdG8gY2hhbmdlLlxuICovXG5leHBvcnQgdHlwZSBGcm9udGVuZEFjdGlvbnMgPSBDaGFuZ2U7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlZC1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL21vZGVscy9jaGFuZ2VkLWZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvcn0gZnJvbSAnLi9iZWhhdmlvcic7XG5cbi8qKlxuICogcmVzcG9uc2UgZXhhbXBsZTpcbiAqICB7XCJjaGFuZ2VkRmllbGRzXCI6IHtcbiAqICAgICAgXCJ0ZXh0XzFcIjp7XCJiZWhhdmlvclwiOntcIjFcIjp7XCJlZGl0YWJsZVwiOnRydWV9fX0sXG4gKiAgICAgXCJ0ZXh0XzBcIjp7XCJiZWhhdmlvclwiOntcIjFcIjp7XCJ2aXNpYmxlXCI6dHJ1ZX19fSxcbiAqICAgICAgXCJ0ZXh0XzNcIjp7XCJiZWhhdmlvclwiOntcIjFcIjp7XCJlZGl0YWJsZVwiOnRydWUsXCJvcHRpb25hbFwiOnRydWV9fX0sXG4gKiAgICAgIFwidGV4dF8yXCI6e1wiYmVoYXZpb3JcIjp7XCIxXCI6e1wiZWRpdGFibGVcIjp0cnVlLFwicmVxdWlyZWRcIjp0cnVlfX19LFxuICogICAgICBcInRleHRfNVwiOntcImJlaGF2aW9yXCI6e1wiMVwiOntcImZvcmJpZGRlblwiOnRydWV9fX0sXG4gKiAgICAgIFwidGV4dF80XCI6e1wiYmVoYXZpb3JcIjp7XCIxXCI6e1wiaGlkZGVuXCI6dHJ1ZX19fVxuICogIH19XG4gKlxuICogIDEgPT0+IHRyYW5zaXRpb24gSURcbiAqXG4gKiAgaXQgbWlnaHQgYmUgYmV0dGVyIGlmIHNvbWUgcGFyZW50IGVsZW1lbnQgZ2F2ZSBvbmx5IHRoZSByZWxldmFudCBjaGFuZ2VzIHRvIGVhY2ggdGFza1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZWRGaWVsZHMge1xuICAgIC8qKlxuICAgICAqIGBTdHJpbmdJZGAgb2YgdGhlIGBUYXNrYCB0aGF0IFwib3duc1wiIHRoZSByZXF1ZXN0ZWQgZnJvbnRlbmQgYWN0aW9uc1xuICAgICAqL1xuICAgIGZyb250ZW5kQWN0aW9uc093bmVyPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSGFzIHR5cGUgYENoYW5nZWAgdW5sZXNzIGl0IGlzIGBmcm9udGVuZEFjdGlvbnNPd25lcmAgaW4gd2hpY2ggY2FzZSB0aGUgdHlwZSBpcyBgc3RyaW5nYFxuICAgICAqL1xuICAgIFtrZXk6IHN0cmluZ106IENoYW5nZSB8IGFueTtcblxuICAgIC8qKlxuICAgICAqIElkIG9mIHRhc2sgb24gd2hpY2ggdGhlIGNoYW5nZXMgb2NjdXJlZFxuICAgICAqL1xuICAgIHRhc2tJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2Uge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IGFueTtcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIC8vIGJlaGF2aW9yICBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0cmFuc2l0aW9uIGlkXG4gICAgYmVoYXZpb3I/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEJlaGF2aW9yXG4gICAgfTtcblxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcblxuICAgIGFjdGlvbj86IEZyb250QWN0aW9uW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9udEFjdGlvbiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBhcmdzOiB7XG4gICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgfVxufVxuIl19
@@ -1,2 +1,22 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9tb2RlbHMvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Byb3BlcnRpZXN9IGZyb20gJy4vcHJvcGVydGllcyc7XG5pbXBvcnQge0ljb259IGZyb20gJy4vaWNvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcHJvcGVydGllcz86IFByb3BlcnRpZXM7XG4gICAgb3B0aW9uSWNvbnM/OiBBcnJheTxJY29uPjtcbn1cbiJdfQ==
1
+ export const DEFAULT = "default";
2
+ export var ComponentPrefixes;
3
+ (function (ComponentPrefixes) {
4
+ ComponentPrefixes["BOOLEAN"] = "boolean-";
5
+ ComponentPrefixes["BUTTON"] = "button-";
6
+ ComponentPrefixes["DATE"] = "date-";
7
+ ComponentPrefixes["DATE_TIME"] = "date-time-";
8
+ ComponentPrefixes["ENUMERATION"] = "enumeration-";
9
+ ComponentPrefixes["FILE"] = "file-";
10
+ ComponentPrefixes["FILE_LIST"] = "file-list-";
11
+ ComponentPrefixes["FILTER"] = "filter-";
12
+ ComponentPrefixes["I18N"] = "i18n-";
13
+ ComponentPrefixes["MULTICHOICE"] = "multichoice-";
14
+ ComponentPrefixes["NUMBER"] = "number-";
15
+ ComponentPrefixes["TASK_REF"] = "task-ref-";
16
+ ComponentPrefixes["CASE_REF"] = "case-ref-";
17
+ ComponentPrefixes["TEXT"] = "text-";
18
+ ComponentPrefixes["USER"] = "user-";
19
+ ComponentPrefixes["USER_LIST"] = "user-list-";
20
+ ComponentPrefixes["STRING_COLLECTION"] = "string-collection-";
21
+ })(ComponentPrefixes || (ComponentPrefixes = {}));
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9tb2RlbHMvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFFakMsTUFBTSxDQUFOLElBQVksaUJBa0JYO0FBbEJELFdBQVksaUJBQWlCO0lBQ3pCLHlDQUFvQixDQUFBO0lBQ3BCLHVDQUFrQixDQUFBO0lBQ2xCLG1DQUFjLENBQUE7SUFDZCw2Q0FBd0IsQ0FBQTtJQUN4QixpREFBNEIsQ0FBQTtJQUM1QixtQ0FBYyxDQUFBO0lBQ2QsNkNBQXdCLENBQUE7SUFDeEIsdUNBQWtCLENBQUE7SUFDbEIsbUNBQWMsQ0FBQTtJQUNkLGlEQUE0QixDQUFBO0lBQzVCLHVDQUFrQixDQUFBO0lBQ2xCLDJDQUFzQixDQUFBO0lBQ3RCLDJDQUFzQixDQUFBO0lBQ3RCLG1DQUFjLENBQUE7SUFDZCxtQ0FBYyxDQUFBO0lBQ2QsNkNBQXdCLENBQUE7SUFDeEIsNkRBQXdDLENBQUE7QUFDNUMsQ0FBQyxFQWxCVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBa0I1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UHJvcGVydGllc30gZnJvbSAnLi9wcm9wZXJ0aWVzJztcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi9pY29uJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFQgPSBcImRlZmF1bHRcIjtcblxuZXhwb3J0IGVudW0gQ29tcG9uZW50UHJlZml4ZXMge1xuICAgIEJPT0xFQU4gPSAnYm9vbGVhbi0nLFxuICAgIEJVVFRPTiA9ICdidXR0b24tJyxcbiAgICBEQVRFID0gJ2RhdGUtJyxcbiAgICBEQVRFX1RJTUUgPSAnZGF0ZS10aW1lLScsXG4gICAgRU5VTUVSQVRJT04gPSAnZW51bWVyYXRpb24tJyxcbiAgICBGSUxFID0gJ2ZpbGUtJyxcbiAgICBGSUxFX0xJU1QgPSAnZmlsZS1saXN0LScsXG4gICAgRklMVEVSID0gJ2ZpbHRlci0nLFxuICAgIEkxOE4gPSAnaTE4bi0nLFxuICAgIE1VTFRJQ0hPSUNFID0gJ211bHRpY2hvaWNlLScsXG4gICAgTlVNQkVSID0gJ251bWJlci0nLFxuICAgIFRBU0tfUkVGID0gJ3Rhc2stcmVmLScsXG4gICAgQ0FTRV9SRUYgPSAnY2FzZS1yZWYtJyxcbiAgICBURVhUID0gJ3RleHQtJyxcbiAgICBVU0VSID0gJ3VzZXItJyxcbiAgICBVU0VSX0xJU1QgPSAndXNlci1saXN0LScsXG4gICAgU1RSSU5HX0NPTExFQ1RJT04gPSAnc3RyaW5nLWNvbGxlY3Rpb24tJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnQge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcm9wZXJ0aWVzPzogUHJvcGVydGllcztcbiAgICBvcHRpb25JY29ucz86IEFycmF5PEljb24+O1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const DATA_FIELD_PORTAL_DATA = new InjectionToken('DataFieldPortalData');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1maWVsZC1wb3J0YWwtZGF0YS1pbmplY3Rpb24tdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL21vZGVscy9kYXRhLWZpZWxkLXBvcnRhbC1kYXRhLWluamVjdGlvbi10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBYzdDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUEwQyxxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7RGF0YUZpZWxkfSBmcm9tIFwiLi9hYnN0cmFjdC1kYXRhLWZpZWxkXCI7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7V3JhcHBlZEJvb2xlYW59IGZyb20gXCIuLi9kYXRhLWZpZWxkLXRlbXBsYXRlL21vZGVscy93cmFwcGVkLWJvb2xlYW5cIjtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRmllbGRQb3J0YWxEYXRhPFQgZXh0ZW5kcyBEYXRhRmllbGQ8dW5rbm93bj4+IHtcbiAgICBkYXRhRmllbGQ6IFQ7XG4gICAgc2hvd0xhcmdlTGF5b3V0OiBXcmFwcGVkQm9vbGVhbjtcbiAgICBmb3JtQ29udHJvbFJlZjogRm9ybUNvbnRyb2w7XG4gICAgYWRkaXRpb25hbEZpZWxkUHJvcGVydGllcz86IHtcbiAgICAgIFtrOnN0cmluZ106IHN0cmluZyB8IG51bWJlcjtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgREFUQV9GSUVMRF9QT1JUQUxfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXRhRmllbGRQb3J0YWxEYXRhPERhdGFGaWVsZDx1bmtub3duPj4+KCdEYXRhRmllbGRQb3J0YWxEYXRhJyk7XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export var UpdateStrategy;
2
+ (function (UpdateStrategy) {
3
+ UpdateStrategy["CHANGE"] = "change";
4
+ UpdateStrategy["BLUR"] = "blur";
5
+ UpdateStrategy["SUBMIT"] = "submit";
6
+ })(UpdateStrategy || (UpdateStrategy = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9tb2RlbHMvdXBkYXRlLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDdEIsbUNBQWlCLENBQUE7SUFDakIsK0JBQWEsQ0FBQTtJQUNiLG1DQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFVwZGF0ZU9uU3RyYXRlZ3kgPSAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnO1xuZXhwb3J0IGVudW0gVXBkYXRlU3RyYXRlZ3kge1xuICAgIENIQU5HRSA9ICdjaGFuZ2UnLFxuICAgIEJMVVIgPSAnYmx1cicsXG4gICAgU1VCTUlUID0gJ3N1Ym1pdCdcbn1cblxuIl19
@@ -3,6 +3,9 @@ import { AbstractDataFieldComponent } from '../models/abstract-data-field-compon
3
3
  import { FormControl } from '@angular/forms';
4
4
  import { NAE_INFORM_ABOUT_INVALID_DATA } from '../models/invalid-data-policy-token';
5
5
  import * as i0 from "@angular/core";
6
+ /**
7
+ * @deprecated
8
+ * */
6
9
  export class AbstractMultichoiceFieldComponent extends AbstractDataFieldComponent {
7
10
  constructor(informAboutInvalidData) {
8
11
  super(informAboutInvalidData);
@@ -25,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
25
28
  }] }]; }, propDecorators: { dataField: [{
26
29
  type: Input
27
30
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbXVsdGljaG9pY2UtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9tdWx0aWNob2ljZS1maWVsZC9hYnN0cmFjdC1tdWx0aWNob2ljZS1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scUNBQXFDLENBQUM7O0FBTWxGLE1BQU0sT0FBZ0IsaUNBQWtDLFNBQVEsMEJBQTBCO0lBSXhGLFlBQXlFLHNCQUFzQztRQUMzRyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OytIQVBtQixpQ0FBaUMsa0JBSVgsNkJBQTZCO21IQUpuRCxpQ0FBaUMsaUlBRnpDLEVBQUU7NEZBRU0saUNBQWlDO2tCQUp0RCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkFLd0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2QkFBNkI7NENBRjlELFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNdWx0aWNob2ljZUZpZWxkfSBmcm9tICcuL21vZGVscy9tdWx0aWNob2ljZS1maWVsZCc7XG5pbXBvcnQge0Fic3RyYWN0RGF0YUZpZWxkQ29tcG9uZW50fSBmcm9tICcuLi9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZC1jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtOQUVfSU5GT1JNX0FCT1VUX0lOVkFMSURfREFUQX0gZnJvbSAnLi4vbW9kZWxzL2ludmFsaWQtZGF0YS1wb2xpY3ktdG9rZW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1tdWx0aWNob2ljZS1maWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TXVsdGljaG9pY2VGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RGF0YUZpZWxkQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBkYXRhRmllbGQ6IE11bHRpY2hvaWNlRmllbGQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX0lORk9STV9BQk9VVF9JTlZBTElEX0RBVEEpIGluZm9ybUFib3V0SW52YWxpZERhdGE6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICBzdXBlcihpbmZvcm1BYm91dEludmFsaWREYXRhKTtcbiAgICAgIHRoaXMuX2Zvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgfVxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbXVsdGljaG9pY2UtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9tdWx0aWNob2ljZS1maWVsZC9hYnN0cmFjdC1tdWx0aWNob2ljZS1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scUNBQXFDLENBQUM7O0FBRWxGOztLQUVLO0FBS0wsTUFBTSxPQUFnQixpQ0FBa0MsU0FBUSwwQkFBMEI7SUFJeEYsWUFBeUUsc0JBQXNDO1FBQzNHLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7K0hBUG1CLGlDQUFpQyxrQkFJWCw2QkFBNkI7bUhBSm5ELGlDQUFpQyxpSUFGekMsRUFBRTs0RkFFTSxpQ0FBaUM7a0JBSnRELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7OzBCQUt3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDZCQUE2Qjs0Q0FGOUQsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge011bHRpY2hvaWNlRmllbGR9IGZyb20gJy4vbW9kZWxzL211bHRpY2hvaWNlLWZpZWxkJztcbmltcG9ydCB7QWJzdHJhY3REYXRhRmllbGRDb21wb25lbnR9IGZyb20gJy4uL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkLWNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge05BRV9JTkZPUk1fQUJPVVRfSU5WQUxJRF9EQVRBfSBmcm9tICcuLi9tb2RlbHMvaW52YWxpZC1kYXRhLXBvbGljeS10b2tlbic7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1tdWx0aWNob2ljZS1maWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TXVsdGljaG9pY2VGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RGF0YUZpZWxkQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBkYXRhRmllbGQ6IE11bHRpY2hvaWNlRmllbGQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX0lORk9STV9BQk9VVF9JTlZBTElEX0RBVEEpIGluZm9ybUFib3V0SW52YWxpZERhdGE6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICBzdXBlcihpbmZvcm1BYm91dEludmFsaWREYXRhKTtcbiAgICAgIHRoaXMuX2Zvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgfVxufVxuIl19
@@ -1,10 +1,14 @@
1
1
  import { DataField } from '../../models/abstract-data-field';
2
2
  import { FieldTypeResource } from '../../../task-content/model/field-type-resource';
3
+ import { ComponentPrefixes } from '../../models/component';
4
+ import { UpdateStrategy } from "../../models/update-strategy";
5
+ import { Subject } from 'rxjs';
3
6
  export class MultichoiceField extends DataField {
4
7
  constructor(stringId, title, values, _choices, behavior, placeholder, description, layout, _fieldType = FieldTypeResource.MULTICHOICE, validations, component, parentTaskId) {
5
8
  super(stringId, title, values, behavior, placeholder, description, layout, validations, component, parentTaskId);
6
9
  this._choices = _choices;
7
10
  this._fieldType = _fieldType;
11
+ this._updatedChoices = new Subject();
8
12
  }
9
13
  set choices(choices) {
10
14
  this._choices = choices;
@@ -15,6 +19,18 @@ export class MultichoiceField extends DataField {
15
19
  get fieldType() {
16
20
  return this._fieldType;
17
21
  }
22
+ get updatedChoices() {
23
+ return this._updatedChoices.asObservable();
24
+ }
25
+ updateChoice() {
26
+ this._updatedChoices.next();
27
+ }
28
+ getUpdateOnStrategy() {
29
+ return UpdateStrategy.CHANGE;
30
+ }
31
+ getTypedComponentType() {
32
+ return ComponentPrefixes.MULTICHOICE + this.getComponentType();
33
+ }
18
34
  valueEquality(a, b) {
19
35
  // we assume that multichoice options are always given in the same order
20
36
  return (!a && !b) || (!!a
@@ -23,4 +39,4 @@ export class MultichoiceField extends DataField {
23
39
  && a.every((element, index) => element === b[index]));
24
40
  }
25
41
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGljaG9pY2UtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL211bHRpY2hvaWNlLWZpZWxkL21vZGVscy9tdWx0aWNob2ljZS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFTbEYsTUFBTSxPQUFPLGdCQUFrQixTQUFRLFNBQXdCO0lBRTNELFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsTUFBcUIsRUFBVSxRQUFzQyxFQUN0RyxRQUFrQixFQUFFLFdBQW9CLEVBQUUsV0FBb0IsRUFBRSxNQUFlLEVBQzlELGFBQWEsaUJBQWlCLENBQUMsV0FBVyxFQUFFLFdBQStCLEVBQzVGLFNBQXFCLEVBQUUsWUFBcUI7UUFDcEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSnpDLGFBQVEsR0FBUixRQUFRLENBQThCO1FBRXJGLGVBQVUsR0FBVixVQUFVLENBQWdDO0lBR3ZFLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFxQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVTLGFBQWEsQ0FBQyxDQUFnQixFQUFFLENBQWdCO1FBQ3RELHdFQUF3RTtRQUN4RSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqQixDQUFDLENBQUMsQ0FBQztlQUNBLENBQUMsQ0FBQyxDQUFDO2VBQ0gsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTTtlQUNyQixDQUFDLENBQUMsS0FBSyxDQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhRmllbGR9IGZyb20gJy4uLy4uL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkJztcbmltcG9ydCB7QmVoYXZpb3J9IGZyb20gJy4uLy4uL21vZGVscy9iZWhhdmlvcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xheW91dCc7XG5pbXBvcnQge0ZpZWxkVHlwZVJlc291cmNlfSBmcm9tICcuLi8uLi8uLi90YXNrLWNvbnRlbnQvbW9kZWwvZmllbGQtdHlwZS1yZXNvdXJjZSc7XG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbXBvbmVudCc7XG5pbXBvcnQge1ZhbGlkYXRpb259IGZyb20gJy4uLy4uL21vZGVscy92YWxpZGF0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aWNob2ljZUZpZWxkVmFsdWUge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aWNob2ljZUZpZWxkICBleHRlbmRzIERhdGFGaWVsZDxBcnJheTxzdHJpbmc+PiB7XG5cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCB2YWx1ZXM6IEFycmF5PHN0cmluZz4sIHByaXZhdGUgX2Nob2ljZXM6IEFycmF5PE11bHRpY2hvaWNlRmllbGRWYWx1ZT4sXG4gICAgICAgICAgICAgICAgYmVoYXZpb3I6IEJlaGF2aW9yLCBwbGFjZWhvbGRlcj86IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIGxheW91dD86IExheW91dCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9maWVsZFR5cGUgPSBGaWVsZFR5cGVSZXNvdXJjZS5NVUxUSUNIT0lDRSwgdmFsaWRhdGlvbnM/OiBBcnJheTxWYWxpZGF0aW9uPixcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ/OiBDb21wb25lbnQsIHBhcmVudFRhc2tJZD86IHN0cmluZykge1xuICAgICAgICBzdXBlcihzdHJpbmdJZCwgdGl0bGUsIHZhbHVlcywgYmVoYXZpb3IsIHBsYWNlaG9sZGVyLCBkZXNjcmlwdGlvbiwgbGF5b3V0LCB2YWxpZGF0aW9ucywgY29tcG9uZW50LCBwYXJlbnRUYXNrSWQpO1xuICAgIH1cblxuICAgIHNldCBjaG9pY2VzKGNob2ljZXM6IEFycmF5PE11bHRpY2hvaWNlRmllbGRWYWx1ZT4pIHtcbiAgICAgICAgdGhpcy5fY2hvaWNlcyA9IGNob2ljZXM7XG4gICAgfVxuXG4gICAgZ2V0IGNob2ljZXMoKTogQXJyYXk8TXVsdGljaG9pY2VGaWVsZFZhbHVlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaG9pY2VzO1xuICAgIH1cblxuICAgIGdldCBmaWVsZFR5cGUoKTogRmllbGRUeXBlUmVzb3VyY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGRUeXBlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUVxdWFsaXR5KGE6IEFycmF5PHN0cmluZz4sIGI6IEFycmF5PHN0cmluZz4pOiBib29sZWFuIHtcbiAgICAgICAgLy8gd2UgYXNzdW1lIHRoYXQgbXVsdGljaG9pY2Ugb3B0aW9ucyBhcmUgYWx3YXlzIGdpdmVuIGluIHRoZSBzYW1lIG9yZGVyXG4gICAgICAgIHJldHVybiAoIWEgJiYgIWIpIHx8IChcbiAgICAgICAgICAgICEhYVxuICAgICAgICAgICAgJiYgISFiXG4gICAgICAgICAgICAmJiBhLmxlbmd0aCA9PT0gYi5sZW5ndGhcbiAgICAgICAgICAgICYmIGEuZXZlcnkoIChlbGVtZW50LCBpbmRleCkgPT4gZWxlbWVudCA9PT0gYltpbmRleF0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGljaG9pY2UtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL211bHRpY2hvaWNlLWZpZWxkL21vZGVscy9tdWx0aWNob2ljZS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFZLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFcEUsT0FBTyxFQUFtQixjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBT3pDLE1BQU0sT0FBTyxnQkFBa0IsU0FBUSxTQUF3QjtJQUkzRCxZQUFZLFFBQWdCLEVBQUUsS0FBYSxFQUFFLE1BQXFCLEVBQVUsUUFBc0MsRUFDdEcsUUFBa0IsRUFBRSxXQUFvQixFQUFFLFdBQW9CLEVBQUUsTUFBZSxFQUM5RCxhQUFhLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxXQUErQixFQUM1RixTQUFxQixFQUFFLFlBQXFCO1FBQ3BELEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUp6QyxhQUFRLEdBQVIsUUFBUSxDQUE4QjtRQUVyRixlQUFVLEdBQVYsVUFBVSxDQUFnQztRQUduRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQXFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFTSxZQUFZO1FBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3RCLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLE9BQU8saUJBQWlCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFUyxhQUFhLENBQUMsQ0FBZ0IsRUFBRSxDQUFnQjtRQUN0RCx3RUFBd0U7UUFDeEUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakIsQ0FBQyxDQUFDLENBQUM7ZUFDQSxDQUFDLENBQUMsQ0FBQztlQUNILENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU07ZUFDckIsQ0FBQyxDQUFDLEtBQUssQ0FBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZCc7XG5pbXBvcnQge0JlaGF2aW9yfSBmcm9tICcuLi8uLi9tb2RlbHMvYmVoYXZpb3InO1xuaW1wb3J0IHtMYXlvdXR9IGZyb20gJy4uLy4uL21vZGVscy9sYXlvdXQnO1xuaW1wb3J0IHtGaWVsZFR5cGVSZXNvdXJjZX0gZnJvbSAnLi4vLi4vLi4vdGFzay1jb250ZW50L21vZGVsL2ZpZWxkLXR5cGUtcmVzb3VyY2UnO1xuaW1wb3J0IHtDb21wb25lbnQsIENvbXBvbmVudFByZWZpeGVzfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tcG9uZW50JztcbmltcG9ydCB7VmFsaWRhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHtVcGRhdGVPblN0cmF0ZWd5LCBVcGRhdGVTdHJhdGVneX0gZnJvbSBcIi4uLy4uL21vZGVscy91cGRhdGUtc3RyYXRlZ3lcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGljaG9pY2VGaWVsZFZhbHVlIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTXVsdGljaG9pY2VGaWVsZCAgZXh0ZW5kcyBEYXRhRmllbGQ8QXJyYXk8c3RyaW5nPj4ge1xuXG4gICAgcHJvdGVjdGVkIF91cGRhdGVkQ2hvaWNlczogU3ViamVjdDx2b2lkPjtcblxuICAgIGNvbnN0cnVjdG9yKHN0cmluZ0lkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHZhbHVlczogQXJyYXk8c3RyaW5nPiwgcHJpdmF0ZSBfY2hvaWNlczogQXJyYXk8TXVsdGljaG9pY2VGaWVsZFZhbHVlPixcbiAgICAgICAgICAgICAgICBiZWhhdmlvcjogQmVoYXZpb3IsIHBsYWNlaG9sZGVyPzogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZywgbGF5b3V0PzogTGF5b3V0LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZpZWxkVHlwZSA9IEZpZWxkVHlwZVJlc291cmNlLk1VTFRJQ0hPSUNFLCB2YWxpZGF0aW9ucz86IEFycmF5PFZhbGlkYXRpb24+LFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudD86IENvbXBvbmVudCwgcGFyZW50VGFza0lkPzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHN0cmluZ0lkLCB0aXRsZSwgdmFsdWVzLCBiZWhhdmlvciwgcGxhY2Vob2xkZXIsIGRlc2NyaXB0aW9uLCBsYXlvdXQsIHZhbGlkYXRpb25zLCBjb21wb25lbnQsIHBhcmVudFRhc2tJZCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZWRDaG9pY2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB9XG5cbiAgICBzZXQgY2hvaWNlcyhjaG9pY2VzOiBBcnJheTxNdWx0aWNob2ljZUZpZWxkVmFsdWU+KSB7XG4gICAgICAgIHRoaXMuX2Nob2ljZXMgPSBjaG9pY2VzO1xuICAgIH1cblxuICAgIGdldCBjaG9pY2VzKCk6IEFycmF5PE11bHRpY2hvaWNlRmllbGRWYWx1ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hvaWNlcztcbiAgICB9XG5cbiAgICBnZXQgZmllbGRUeXBlKCk6IEZpZWxkVHlwZVJlc291cmNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkVHlwZTtcbiAgICB9XG5cbiAgICBnZXQgdXBkYXRlZENob2ljZXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91cGRhdGVkQ2hvaWNlcy5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQ2hvaWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVkQ2hvaWNlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFVwZGF0ZU9uU3RyYXRlZ3koKTogVXBkYXRlT25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiBVcGRhdGVTdHJhdGVneS5DSEFOR0U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFR5cGVkQ29tcG9uZW50VHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gQ29tcG9uZW50UHJlZml4ZXMuTVVMVElDSE9JQ0UgKyB0aGlzLmdldENvbXBvbmVudFR5cGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVFcXVhbGl0eShhOiBBcnJheTxzdHJpbmc+LCBiOiBBcnJheTxzdHJpbmc+KTogYm9vbGVhbiB7XG4gICAgICAgIC8vIHdlIGFzc3VtZSB0aGF0IG11bHRpY2hvaWNlIG9wdGlvbnMgYXJlIGFsd2F5cyBnaXZlbiBpbiB0aGUgc2FtZSBvcmRlclxuICAgICAgICByZXR1cm4gKCFhICYmICFiKSB8fCAoXG4gICAgICAgICAgICAhIWFcbiAgICAgICAgICAgICYmICEhYlxuICAgICAgICAgICAgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoXG4gICAgICAgICAgICAmJiBhLmV2ZXJ5KCAoZWxlbWVudCwgaW5kZXgpID0+IGVsZW1lbnQgPT09IGJbaW5kZXhdKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==