@mediusinc/mng-commons 5.0.0-rc.0 → 5.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/core/data-list/data-list-params-helpers.d.ts +82 -0
  2. package/core/descriptors/action.descriptor.d.ts +3 -3
  3. package/core/descriptors/column.descriptor.d.ts +1 -1
  4. package/core/descriptors/editor.descriptor.d.ts +6 -6
  5. package/core/descriptors/enum.descriptor.d.ts +6 -0
  6. package/core/descriptors/filter.descriptor.d.ts +1 -1
  7. package/core/descriptors/model.descriptor.d.ts +1 -1
  8. package/core/descriptors/table.descriptor.d.ts +6 -6
  9. package/core/descriptors/tableview.descriptor.d.ts +10 -10
  10. package/core/enum/enum-helpers.d.ts +49 -0
  11. package/core/error/error-helpers.d.ts +114 -0
  12. package/core/helpers/date.d.ts +14 -0
  13. package/core/helpers/object.d.ts +27 -0
  14. package/core/helpers/route.d.ts +35 -0
  15. package/core/helpers/string.d.ts +7 -0
  16. package/core/helpers/templates.d.ts +3 -0
  17. package/core/i18n/i18n-common.d.ts +6 -0
  18. package/core/i18n/i18n-error.d.ts +4 -0
  19. package/core/i18n/i18n-type.d.ts +20 -0
  20. package/core/index.d.ts +15 -9
  21. package/{model → core}/pipes/enum.pipe.d.ts +2 -2
  22. package/core/pipes/enumerate.pipe.d.ts +3 -3
  23. package/{model → core}/pipes/i18n-property.pipe.d.ts +2 -2
  24. package/core/pipes/template.pipe.d.ts +0 -2
  25. package/core/router/route-builder.d.ts +151 -30
  26. package/core/router/routes-builder.d.ts +29 -15
  27. package/core/security/permission-helpers.d.ts +3 -0
  28. package/core/security/permissions.model.d.ts +2 -2
  29. package/esm2022/core/components/notification/notification-wrapper.component.mjs +4 -4
  30. package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
  31. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
  32. package/esm2022/core/data-list/data-list-params-helpers.mjs +415 -0
  33. package/esm2022/core/data-list/filter-match.model.mjs +1 -1
  34. package/esm2022/core/data-providers/base.data-provider.mjs +1 -1
  35. package/esm2022/core/descriptors/action.descriptor.mjs +1 -1
  36. package/esm2022/core/descriptors/column.descriptor.mjs +1 -1
  37. package/esm2022/core/descriptors/editor.descriptor.mjs +1 -1
  38. package/esm2022/core/descriptors/enum.descriptor.mjs +2 -0
  39. package/esm2022/core/descriptors/filter.descriptor.mjs +1 -1
  40. package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
  41. package/esm2022/core/descriptors/table.descriptor.mjs +1 -1
  42. package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
  43. package/esm2022/core/directives/component.directive.mjs +4 -4
  44. package/esm2022/core/directives/dialog-keydown-handler.directive.mjs +4 -4
  45. package/esm2022/core/directives/template.directive.mjs +3 -3
  46. package/esm2022/core/enum/enum-helpers.mjs +81 -0
  47. package/esm2022/core/error/error-handler.mjs +3 -3
  48. package/esm2022/core/error/error-helpers.mjs +247 -0
  49. package/esm2022/core/helpers/coercion.mjs +1 -1
  50. package/esm2022/core/helpers/date.mjs +119 -0
  51. package/esm2022/core/helpers/object.mjs +145 -0
  52. package/esm2022/core/helpers/route.mjs +58 -0
  53. package/esm2022/core/helpers/string.mjs +57 -0
  54. package/esm2022/core/helpers/templates.mjs +4 -0
  55. package/esm2022/core/i18n/i18n-common.mjs +24 -0
  56. package/esm2022/core/i18n/i18n-error.mjs +27 -0
  57. package/esm2022/core/i18n/i18n-type.mjs +79 -0
  58. package/esm2022/core/index.mjs +17 -11
  59. package/esm2022/core/log/log-publisher-console.service.mjs +3 -3
  60. package/esm2022/core/log/logger.service.mjs +3 -3
  61. package/esm2022/core/pipes/boolean.pipe.mjs +4 -4
  62. package/esm2022/core/pipes/class-map.pipe.mjs +4 -4
  63. package/esm2022/core/pipes/enum.pipe.mjs +27 -0
  64. package/esm2022/core/pipes/enumerate-async.pipe.mjs +8 -8
  65. package/esm2022/core/pipes/enumerate.pipe.mjs +10 -10
  66. package/esm2022/core/pipes/getter.pipe.mjs +4 -4
  67. package/esm2022/core/pipes/i18n-property.pipe.mjs +19 -0
  68. package/esm2022/core/pipes/json-path.pipe.mjs +6 -6
  69. package/esm2022/core/pipes/parametrize.pipe.mjs +6 -6
  70. package/esm2022/core/pipes/template.pipe.mjs +7 -8
  71. package/esm2022/core/provide.mjs +1 -21
  72. package/esm2022/core/reflect/type-enum-metadata.mjs +1 -1
  73. package/esm2022/core/registry/type-registry.mjs +1 -1
  74. package/esm2022/core/router/route-builder.mjs +218 -107
  75. package/esm2022/core/router/routes-builder.mjs +42 -43
  76. package/esm2022/core/security/permission-helpers.mjs +14 -0
  77. package/esm2022/core/security/permission.guard.mjs +1 -1
  78. package/esm2022/core/security/permission.service.mjs +6 -6
  79. package/esm2022/core/security/permissions.model.mjs +1 -1
  80. package/esm2022/core/services/commons-configuration.service.mjs +6 -6
  81. package/esm2022/core/services/commons-init.service.mjs +4 -4
  82. package/esm2022/core/services/commons-router.service.mjs +4 -4
  83. package/esm2022/core/services/commons.service.mjs +4 -4
  84. package/esm2022/core/services/local-storage-config.service.mjs +4 -4
  85. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +9 -10
  86. package/esm2022/filter/descriptors/filter.descriptor.mjs +1 -1
  87. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -1
  88. package/esm2022/form/api/descriptors/button-style.builder.mjs +1 -1
  89. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +39 -45
  90. package/esm2022/form/components/date-range/date-range.component.mjs +4 -4
  91. package/esm2022/form/components/dropdown/dropdown.component.mjs +7 -7
  92. package/esm2022/form/directives/input-trim.directive.mjs +4 -4
  93. package/esm2022/model/descriptors/enum.descriptor.mjs +1 -1
  94. package/esm2022/model/descriptors/model.descriptor.mjs +4 -4
  95. package/esm2022/model/helpers/i18n.mjs +45 -0
  96. package/esm2022/model/helpers/model.mjs +71 -0
  97. package/esm2022/model/index.mjs +4 -7
  98. package/esm2022/table/api/data-providers/table.data-provider.mjs +1 -1
  99. package/esm2022/table/api/descriptors/column.descriptor.mjs +1 -1
  100. package/esm2022/table/api/descriptors/table.descriptor.mjs +36 -8
  101. package/esm2022/table/api/helpers/class-attribute-converter.mjs +1 -1
  102. package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +9 -9
  103. package/esm2022/table/components/column-value/column-value.component.mjs +12 -14
  104. package/esm2022/table/components/table/table.component.mjs +20 -37
  105. package/esm2022/table/helpers/notification.mjs +4 -4
  106. package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +4 -4
  107. package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +4 -4
  108. package/esm2022/table/services/data-list.service.mjs +3 -3
  109. package/esm2022/tableview/action/components/action/action.component.mjs +9 -9
  110. package/esm2022/tableview/action/components/editor/action-editor.component.mjs +4 -4
  111. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +22 -21
  112. package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +3 -3
  113. package/esm2022/tableview/action/components/route/action-route.component.mjs +6 -5
  114. package/esm2022/tableview/action/components/table/action-table.component.mjs +12 -24
  115. package/esm2022/tableview/action/helpers/i18n.mjs +82 -0
  116. package/esm2022/tableview/action/helpers/notification.mjs +8 -8
  117. package/esm2022/tableview/action/helpers/styles.mjs +1 -1
  118. package/esm2022/tableview/action/models/execution/action-context.model.mjs +1 -1
  119. package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
  120. package/esm2022/tableview/action/services/action-error-mapper.service.mjs +1 -1
  121. package/esm2022/tableview/action/services/action-executor.service.mjs +10 -9
  122. package/esm2022/tableview/action/services/component-action-executor.service.mjs +3 -3
  123. package/esm2022/tableview/action/services/data-provider-executor.service.mjs +3 -3
  124. package/esm2022/tableview/action/services/navigation.service.mjs +4 -4
  125. package/esm2022/tableview/action/services/providers/provide-view-container.mjs +1 -1
  126. package/esm2022/tableview/action/services/root-action-executor.service.mjs +3 -3
  127. package/esm2022/tableview/action/services/view-container.service.mjs +3 -3
  128. package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +1 -1
  129. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +9 -1
  130. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +1 -1
  131. package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +1 -1
  132. package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +1 -1
  133. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -1
  134. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +21 -32
  135. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
  136. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +3 -3
  137. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +3 -3
  138. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +8 -8
  139. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +1 -1
  140. package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +1 -1
  141. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +39 -10
  142. package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +1 -1
  143. package/esm2022/tableview/api/editor/helpers/field-validators.mjs +15 -25
  144. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  145. package/esm2022/tableview/api/editor/models/field.model.mjs +1 -1
  146. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
  147. package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
  148. package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +3 -3
  149. package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
  150. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +1 -1
  151. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +15 -22
  152. package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +1 -1
  153. package/esm2022/tableview/api/tableview/helpers/files-export.mjs +1 -1
  154. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +4 -4
  155. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +1 -1
  156. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +158 -138
  157. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -4
  158. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +5 -7
  159. package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
  160. package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +103 -0
  161. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +5 -7
  162. package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
  163. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +33 -50
  164. package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
  165. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +8 -10
  166. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +6 -8
  167. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +19 -18
  168. package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
  169. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +4 -4
  170. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -4
  171. package/esm2022/tableview/editor/helpers/editor-formly.mjs +343 -0
  172. package/esm2022/tableview/editor/helpers/formly-config.mjs +5 -3
  173. package/esm2022/tableview/editor/models/formly-config.model.mjs +1 -1
  174. package/esm2022/tableview/editor/services/formly-config.provider.mjs +1 -1
  175. package/esm2022/tableview/index.mjs +3 -5
  176. package/esm2022/tableview/provide.mjs +2 -1
  177. package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +10 -10
  178. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +30 -56
  179. package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +17 -43
  180. package/fesm2022/mediusinc-mng-commons-core.mjs +1599 -1496
  181. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  182. package/fesm2022/mediusinc-mng-commons-filter.mjs +8 -9
  183. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  184. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  185. package/fesm2022/mediusinc-mng-commons-form.mjs +51 -56
  186. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  187. package/fesm2022/mediusinc-mng-commons-model.mjs +99 -148
  188. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  189. package/fesm2022/mediusinc-mng-commons-table-api.mjs +35 -7
  190. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  191. package/fesm2022/mediusinc-mng-commons-table.mjs +48 -65
  192. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  193. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +105 -96
  194. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  195. package/fesm2022/mediusinc-mng-commons-tableview.mjs +865 -868
  196. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  197. package/filter/descriptors/filter.descriptor.d.ts +2 -2
  198. package/form/components/autocomplete/autocomplete.component.d.ts +8 -7
  199. package/model/descriptors/model.descriptor.d.ts +2 -2
  200. package/model/helpers/i18n.d.ts +10 -0
  201. package/model/helpers/model.d.ts +5 -0
  202. package/model/index.d.ts +2 -4
  203. package/package.json +7 -7
  204. package/table/api/descriptors/table.descriptor.d.ts +10 -0
  205. package/table/components/column-value/column-value.component.d.ts +3 -4
  206. package/table/components/table/table.component.d.ts +13 -13
  207. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +1 -3
  208. package/tableview/action/components/route/action-route.component.d.ts +1 -1
  209. package/tableview/action/components/table/action-table.component.d.ts +6 -6
  210. package/tableview/action/helpers/i18n.d.ts +22 -0
  211. package/tableview/action/models/execution/action-instance-state.model.d.ts +21 -21
  212. package/tableview/action/models/execution/action-instance.model.d.ts +2 -1
  213. package/tableview/action/services/action-executor.service.d.ts +1 -1
  214. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +9 -1
  215. package/tableview/api/action/descriptors/action.descriptor.d.ts +3 -3
  216. package/tableview/api/action/models/action.type.d.ts +2 -2
  217. package/tableview/api/action/models/execution/action-instance-state.model.d.ts +21 -21
  218. package/tableview/api/action/models/execution/action-instance.model.d.ts +2 -1
  219. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +16 -21
  220. package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +2 -2
  221. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +29 -29
  222. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +9 -9
  223. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +4 -4
  224. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +4 -4
  225. package/tableview/api/editor/descriptors/field-validation.descriptor.d.ts +10 -13
  226. package/tableview/api/editor/descriptors/field.descriptor.d.ts +17 -2
  227. package/tableview/api/editor/helpers/field-validators.d.ts +6 -2
  228. package/tableview/api/editor/models/editor-fields.model.d.ts +9 -7
  229. package/tableview/api/editor/models/field.model.d.ts +16 -7
  230. package/tableview/api/editor/models/form-editor.event.d.ts +6 -4
  231. package/tableview/api/editor/models/form-editor.interface.d.ts +37 -8
  232. package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
  233. package/tableview/api/editor/models/formly-field.model.d.ts +9 -7
  234. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +8 -9
  235. package/tableview/editor/components/editor/form-editor.component.d.ts +51 -35
  236. package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +22 -0
  237. package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +5 -7
  238. package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +0 -1
  239. package/tableview/editor/helpers/editor-formly.d.ts +11 -0
  240. package/tableview/editor/models/formly-config.model.d.ts +1 -1
  241. package/tableview/index.d.ts +2 -2
  242. package/tableview/tableview/components/route/tableview-route.component.d.ts +2 -2
  243. package/tableview/tableview/components/tableview/tableview.component.d.ts +16 -15
  244. package/tableview/tableview/router/tableview-route-builder.d.ts +7 -13
  245. package/version-info.json +11 -0
  246. package/core/data-list/data-list-params.util.d.ts +0 -84
  247. package/core/enum/enum.util.d.ts +0 -51
  248. package/core/error/error.util.d.ts +0 -116
  249. package/core/security/permission.util.d.ts +0 -5
  250. package/core/utils/date.util.d.ts +0 -20
  251. package/core/utils/i18n.util.d.ts +0 -36
  252. package/core/utils/object.util.d.ts +0 -31
  253. package/core/utils/route.util.d.ts +0 -37
  254. package/core/utils/string.util.d.ts +0 -9
  255. package/esm2022/core/data-list/data-list-params.util.mjs +0 -417
  256. package/esm2022/core/enum/enum.util.mjs +0 -83
  257. package/esm2022/core/error/error.util.mjs +0 -249
  258. package/esm2022/core/security/permission.util.mjs +0 -16
  259. package/esm2022/core/utils/date.util.mjs +0 -136
  260. package/esm2022/core/utils/i18n.util.mjs +0 -137
  261. package/esm2022/core/utils/object.util.mjs +0 -147
  262. package/esm2022/core/utils/route.util.mjs +0 -60
  263. package/esm2022/core/utils/string.util.mjs +0 -59
  264. package/esm2022/model/pipes/enum.pipe.mjs +0 -26
  265. package/esm2022/model/pipes/i18n-property.pipe.mjs +0 -19
  266. package/esm2022/model/utils/i18n.util.mjs +0 -51
  267. package/esm2022/model/utils/model.util.mjs +0 -73
  268. package/esm2022/tableview/action/utils/i18n.util.mjs +0 -126
  269. package/esm2022/tableview/editor/utils/editor-formly.util.mjs +0 -337
  270. package/model/utils/i18n.util.d.ts +0 -15
  271. package/model/utils/model.util.d.ts +0 -8
  272. package/tableview/action/utils/i18n.util.d.ts +0 -48
  273. package/tableview/editor/utils/editor-formly.util.d.ts +0 -12
@@ -1,9 +1,9 @@
1
1
  import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, QueryList, Type, ViewChild, ViewChildren, inject, signal } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, QueryList, Type, ViewChild, ViewChildren, computed, contentChildren, inject, signal } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { ActivatedRoute } from '@angular/router';
5
5
  import { Observable, isObservable, of } from 'rxjs';
6
- import { ComponentDirective, TemplateDirective, boolean$Attribute } from '@mediusinc/mng-commons/core';
6
+ import { ComponentDirective, TemplateDirective, boolean$Attribute, findTemplateByName } from '@mediusinc/mng-commons/core';
7
7
  import { TableComponent } from '@mediusinc/mng-commons/table';
8
8
  import { TableDescriptorInst } from '@mediusinc/mng-commons/table/api';
9
9
  import { ActionPositionEnum } from '@mediusinc/mng-commons/tableview/api';
@@ -29,9 +29,12 @@ export class ActionTableComponent {
29
29
  this.selectionChangeEventEmitter = new EventEmitter();
30
30
  this.captionCmpInstEventEmitter = new EventEmitter();
31
31
  this.columnActionCmpInstEventEmitter = new EventEmitter();
32
+ // content and view queries
33
+ this.templates = contentChildren(TemplateDirective);
32
34
  // templates
33
- this.captionTemplate = signal(undefined);
34
- this.footerTemplate = signal(undefined);
35
+ this.captionTemplate = computed(() => findTemplateByName([...this.templates()], 'caption'));
36
+ this.footerTemplate = computed(() => findTemplateByName([...this.templates()], 'footer'));
37
+ this.rowExpandTemplate = computed(() => findTemplateByName([...this.templates()], 'rowExpandContent'));
35
38
  // actions
36
39
  this.rowClickActions = signal([]);
37
40
  this.rowInlineActions = signal([]);
@@ -58,18 +61,6 @@ export class ActionTableComponent {
58
61
  this.columnActionMinWidth = calculateTableColumnActionWidth(this.descriptor, this.rowInlineActions());
59
62
  }
60
63
  }
61
- ngAfterContentInit() {
62
- this.templates.forEach(template => {
63
- switch (template.getType()) {
64
- case 'caption':
65
- this.captionTemplate.set(template.template);
66
- break;
67
- case 'footer':
68
- this.footerTemplate.set(template.template);
69
- break;
70
- }
71
- });
72
- }
73
64
  reload(emitEvent = false, resetParams = false) {
74
65
  this.table.reload(emitEvent, resetParams);
75
66
  }
@@ -98,12 +89,12 @@ export class ActionTableComponent {
98
89
  this.reload();
99
90
  }
100
91
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ActionTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ActionTableComponent, isStandalone: true, selector: "mng-action-table", inputs: { descriptor: "descriptor", items: "items", result: ["result", "result", (value) => (isObservable(value) ? value : of(value))], loading: ["loading", "loading", boolean$Attribute], dataProvider: "dataProvider", useQueryParams: "useQueryParams", selectionMode: "selectionMode", selectionEnabled: "selectionEnabled", globalFilterFields: "globalFilterFields", actions: "actions", captionComponent: "captionComponent", columnActionComponent: "columnActionComponent", columnActionMinWidth: "columnActionMinWidth" }, outputs: { loadEventEmitter: "tableLoad", selectionChangeEventEmitter: "selectionChange", captionCmpInstEventEmitter: "captionComponentInstance", columnActionCmpInstEventEmitter: "columnActionComponentInstance" }, providers: [provideActionExecutor()], queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: TableComponent, descendants: true }, { propertyName: "components", predicate: ComponentDirective, descendants: true }], ngImport: i0, template: "<mng-table\n [descriptor]=\"descriptor\"\n [items]=\"items\"\n [result]=\"result\"\n [loading]=\"loading\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"useQueryParams\"\n [selectionMode]=\"selectionMode\"\n [selectionEnabled]=\"selectionEnabled\"\n [globalFilterFields]=\"globalFilterFields\"\n [captionComponent]=\"captionComponent\"\n [columnCustomLastComponent]=\"columnActionComponent\"\n [columnLastMinWidth]=\"columnActionMinWidth\"\n (tableLoad)=\"loadEventEmitter.next($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"captionCmpInstEventEmitter.next($event)\"\n (columnCustomLastComponentInstance)=\"columnActionCmpInstEventEmitter.next($event)\">\n @if (!columnActionComponent && rowInlineActions().length > 0) {\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor.model.idProperty ? item[descriptor.model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n @if (captionTemplate() && !captionComponent) {\n <ng-template mngTemplate=\"caption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()!\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()!; context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n</mng-table>\n", dependencies: [{ kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "columnLastMinWidth", "captionComponent", "columnCustomLastComponent", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnCustomLastComponentInstance"] }, { kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ActionTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ActionTableComponent, isStandalone: true, selector: "mng-action-table", inputs: { descriptor: "descriptor", items: "items", result: ["result", "result", (value) => (isObservable(value) ? value : of(value))], loading: ["loading", "loading", boolean$Attribute], dataProvider: "dataProvider", useQueryParams: "useQueryParams", selectionMode: "selectionMode", selectionEnabled: "selectionEnabled", globalFilterFields: "globalFilterFields", actions: "actions", captionComponent: "captionComponent", columnActionComponent: "columnActionComponent", columnActionMinWidth: "columnActionMinWidth" }, outputs: { loadEventEmitter: "tableLoad", selectionChangeEventEmitter: "selectionChange", captionCmpInstEventEmitter: "captionComponentInstance", columnActionCmpInstEventEmitter: "columnActionComponentInstance" }, providers: [provideActionExecutor()], queries: [{ propertyName: "templates", predicate: TemplateDirective, isSignal: true }], viewQueries: [{ propertyName: "table", first: true, predicate: TableComponent, descendants: true }, { propertyName: "components", predicate: ComponentDirective, descendants: true }], ngImport: i0, template: "<mng-table\n [descriptor]=\"descriptor\"\n [items]=\"items\"\n [result]=\"result\"\n [loading]=\"loading\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"useQueryParams\"\n [selectionMode]=\"selectionMode\"\n [selectionEnabled]=\"selectionEnabled\"\n [globalFilterFields]=\"globalFilterFields\"\n [captionComponent]=\"captionComponent\"\n [columnCustomLastComponent]=\"columnActionComponent\"\n [columnLastMinWidth]=\"columnActionMinWidth\"\n (tableLoad)=\"loadEventEmitter.next($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"captionCmpInstEventEmitter.next($event)\"\n (columnCustomLastComponentInstance)=\"columnActionCmpInstEventEmitter.next($event)\">\n @if (!columnActionComponent && rowInlineActions().length > 0) {\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor.model.idProperty ? item[descriptor.model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n @if (captionTemplate() && !captionComponent) {\n <ng-template mngTemplate=\"caption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()\"></ng-container>\n </ng-template>\n }\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n</mng-table>\n", dependencies: [{ kind: "component", type: TableComponent, selector: "mng-table", inputs: ["descriptor", "items", "result", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "columnLastMinWidth", "captionComponent", "columnCustomLastComponent", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnCustomLastComponentInstance"] }, { kind: "component", type: ActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "dataListParams", "dataProvider", "hostComponent", "route", "disabled", "loading", "selectedItems"], outputs: ["finish"] }, { kind: "directive", type: TemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
94
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ActionTableComponent, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ActionTableComponent, decorators: [{
105
96
  type: Component,
106
- args: [{ standalone: true, selector: 'mng-action-table', imports: [TableComponent, ActionComponent, TemplateDirective, NgTemplateOutlet], providers: [provideActionExecutor()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table\n [descriptor]=\"descriptor\"\n [items]=\"items\"\n [result]=\"result\"\n [loading]=\"loading\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"useQueryParams\"\n [selectionMode]=\"selectionMode\"\n [selectionEnabled]=\"selectionEnabled\"\n [globalFilterFields]=\"globalFilterFields\"\n [captionComponent]=\"captionComponent\"\n [columnCustomLastComponent]=\"columnActionComponent\"\n [columnLastMinWidth]=\"columnActionMinWidth\"\n (tableLoad)=\"loadEventEmitter.next($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"captionCmpInstEventEmitter.next($event)\"\n (columnCustomLastComponentInstance)=\"columnActionCmpInstEventEmitter.next($event)\">\n @if (!columnActionComponent && rowInlineActions().length > 0) {\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor.model.idProperty ? item[descriptor.model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n @if (captionTemplate() && !captionComponent) {\n <ng-template mngTemplate=\"caption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()!\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()!; context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n</mng-table>\n" }]
97
+ args: [{ standalone: true, selector: 'mng-action-table', imports: [TableComponent, ActionComponent, TemplateDirective, NgTemplateOutlet], providers: [provideActionExecutor()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table\n [descriptor]=\"descriptor\"\n [items]=\"items\"\n [result]=\"result\"\n [loading]=\"loading\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"useQueryParams\"\n [selectionMode]=\"selectionMode\"\n [selectionEnabled]=\"selectionEnabled\"\n [globalFilterFields]=\"globalFilterFields\"\n [captionComponent]=\"captionComponent\"\n [columnCustomLastComponent]=\"columnActionComponent\"\n [columnLastMinWidth]=\"columnActionMinWidth\"\n (tableLoad)=\"loadEventEmitter.next($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"captionCmpInstEventEmitter.next($event)\"\n (columnCustomLastComponentInstance)=\"columnActionCmpInstEventEmitter.next($event)\">\n @if (!columnActionComponent && rowInlineActions().length > 0) {\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor.model.idProperty ? item[descriptor.model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n @if (captionTemplate() && !captionComponent) {\n <ng-template mngTemplate=\"caption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()\"></ng-container>\n </ng-template>\n }\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n</mng-table>\n" }]
107
98
  }], ctorParameters: () => [], propDecorators: { descriptor: [{
108
99
  type: Input,
109
100
  args: [{ required: true }]
@@ -145,9 +136,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
145
136
  }], columnActionCmpInstEventEmitter: [{
146
137
  type: Output,
147
138
  args: ['columnActionComponentInstance']
148
- }], templates: [{
149
- type: ContentChildren,
150
- args: [TemplateDirective]
151
139
  }], components: [{
152
140
  type: ViewChildren,
153
141
  args: [ComponentDirective]
@@ -155,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
155
143
  type: ViewChild,
156
144
  args: [TableComponent]
157
145
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBRVQsSUFBSSxFQUNKLFNBQVMsRUFDVCxZQUFZLEVBRVosTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBbUIsa0JBQWtCLEVBQWtCLGlCQUFpQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkksT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBMEMsbUJBQW1CLEVBQWlCLE1BQU0sa0NBQWtDLENBQUM7QUFDOUgsT0FBTyxFQUF1QixrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRTlGLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXJFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFN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QUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxrQkFBa0I7c0JBQWpDLEtBQUs7Z0JBR1UsT0FBTztzQkFBdEIsS0FBSztnQkFHVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UscUJBQXFCO3NCQUFwQyxLQUFLO2dCQUNVLG9CQUFvQjtzQkFBbkMsS0FBSztnQkFHc0IsZ0JBQWdCO3NCQUEzQyxNQUFNO3VCQUFDLFdBQVc7Z0JBQ2UsMkJBQTJCO3NCQUE1RCxNQUFNO3VCQUFDLGlCQUFpQjtnQkFDa0IsMEJBQTBCO3NCQUFwRSxNQUFNO3VCQUFDLDBCQUEwQjtnQkFDYywrQkFBK0I7c0JBQTlFLE1BQU07dUJBQUMsK0JBQStCO2dCQUdJLFNBQVM7c0JBQW5ELGVBQWU7dUJBQUMsaUJBQWlCO2dCQUNPLFVBQVU7c0JBQWxELFlBQVk7dUJBQUMsa0JBQWtCO2dCQUNFLEtBQUs7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgV3JpdGFibGVTaWduYWwsXG4gICAgaW5qZWN0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge09ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0FjdGlvblBhcmFtZXRlcnMsIENvbXBvbmVudERpcmVjdGl2ZSwgRGF0YUxpc3RSZXN1bHQsIFRlbXBsYXRlRGlyZWN0aXZlLCBib29sZWFuJEF0dHJpYnV0ZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VGFibGVDb21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUnO1xuaW1wb3J0IHtJVGFibGVEYXRhUHJvdmlkZXIsIFRhYmxlQ2VsbENsaWNrRXZlbnQsIFRhYmxlRGVzY3JpcHRvckluc3QsIFRhYmxlTG9hZEV2ZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JJbnN0LCBBY3Rpb25Qb3NpdGlvbkVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7Y2FsY3VsYXRlVGFibGVDb2x1bW5BY3Rpb25XaWR0aH0gZnJvbSAnLi4vLi4vaGVscGVycy9zdHlsZXMnO1xuaW1wb3J0IHtBY3Rpb25JbnN0YW5jZX0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24taW5zdGFuY2UubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25FeGVjdXRvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjdGlvbi1leGVjdXRvci5zZXJ2aWNlJztcbmltcG9ydCB7cHJvdmlkZUFjdGlvbkV4ZWN1dG9yfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm92aWRlcnMvcHJvdmlkZS1hY3Rpb24tZXhlY3V0b3InO1xuaW1wb3J0IHtWaWV3Q29udGFpbmVyfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3LWNvbnRhaW5lci5zZXJ2aWNlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYWN0aW9uLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbVGFibGVDb21wb25lbnQsIEFjdGlvbkNvbXBvbmVudCwgVGVtcGxhdGVEaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVBY3Rpb25FeGVjdXRvcigpXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25UYWJsZUNvbXBvbmVudDxJdGVtID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBTb3J0cyA9IGtleW9mIEl0ZW0sIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBJdGVtPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25FeGVjdXRvciA9IGluamVjdChBY3Rpb25FeGVjdXRvclNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyPEl0ZW0sIFNlcnZpY2U+LCB7b3B0aW9uYWw6IHRydWV9KTtcblxuICAgIC8vIG1ldGFkYXRhIGlucHV0XG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBkZXNjcmlwdG9yITogVGFibGVEZXNjcmlwdG9ySW5zdDxJdGVtLCBTb3J0cywgRmlsdGVycz47XG5cbiAgICAvLyBkYXRhIHNvdXJjZSBpbnB1dHNcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbXM/OiBPYnNlcnZhYmxlPEFycmF5PEl0ZW0+PiB8IEFycmF5PEl0ZW0+O1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiAodmFsdWU6IHVua25vd24pID0+IChpc09ic2VydmFibGUodmFsdWUpID8gKHZhbHVlIGFzIE9ic2VydmFibGU8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+KSA6IG9mKHZhbHVlIGFzIERhdGFMaXN0UmVzdWx0PEl0ZW0+KSl9KVxuICAgIHB1YmxpYyByZXN1bHQ/OiBPYnNlcnZhYmxlPERhdGFMaXN0UmVzdWx0PEl0ZW0+PjtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbiRBdHRyaWJ1dGV9KSBwdWJsaWMgbG9hZGluZz86IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgQElucHV0KCkgcHVibGljIGRhdGFQcm92aWRlcj86IElUYWJsZURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz47XG4gICAgQElucHV0KCkgcHVibGljIHVzZVF1ZXJ5UGFyYW1zID0gZmFsc2U7XG5cbiAgICAvLyBleHRyYSBmZWF0dXJlcyBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgPSAnbXVsdGlwbGUnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb25FbmFibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGdsb2JhbEZpbHRlckZpZWxkcz86IHN0cmluZ1tdO1xuXG4gICAgLy8gYWN0aW9uc1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+PiA9IFtdOyAvLyBjYW4gYmUgYW55dGhpbmdcblxuICAgIC8vIGNvbXBvbmVudCBpbnB1dHNcbiAgICBASW5wdXQoKSBwdWJsaWMgY2FwdGlvbkNvbXBvbmVudD86IFR5cGU8YW55PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29sdW1uQWN0aW9uQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5BY3Rpb25NaW5XaWR0aD86IG51bWJlcjtcblxuICAgIC8vIGV2ZW50IG91dHB1dHNcbiAgICBAT3V0cHV0KCd0YWJsZUxvYWQnKSBwdWJsaWMgbG9hZEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVMb2FkRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgnc2VsZWN0aW9uQ2hhbmdlJykgcHVibGljIHNlbGVjdGlvbkNoYW5nZUV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8SXRlbT4+KCk7XG4gICAgQE91dHB1dCgnY2FwdGlvbkNvbXBvbmVudEluc3RhbmNlJykgcHVibGljIGNhcHRpb25DbXBJbnN0RXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgnY29sdW1uQWN0aW9uQ29tcG9uZW50SW5zdGFuY2UnKSBwdWJsaWMgY29sdW1uQWN0aW9uQ21wSW5zdEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSkgcHVibGljIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgQFZpZXdDaGlsZHJlbihDb21wb25lbnREaXJlY3RpdmUpIHB1YmxpYyBjb21wb25lbnRzITogUXVlcnlMaXN0PENvbXBvbmVudERpcmVjdGl2ZTxhbnk+PjtcbiAgICBAVmlld0NoaWxkKFRhYmxlQ29tcG9uZW50KSBwdWJsaWMgdGFibGUhOiBUYWJsZUNvbXBvbmVudDtcblxuICAgIC8vIHRlbXBsYXRlc1xuICAgIHB1YmxpYyBjYXB0aW9uVGVtcGxhdGU6IFdyaXRhYmxlU2lnbmFsPFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ+ID0gc2lnbmFsKHVuZGVmaW5lZCk7XG4gICAgcHVibGljIGZvb3RlclRlbXBsYXRlOiBXcml0YWJsZVNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG4gICAgLy8gYWN0aW9uc1xuICAgIHB1YmxpYyByb3dDbGlja0FjdGlvbnM6IFdyaXRhYmxlU2lnbmFsPEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10+ID0gc2lnbmFsKFtdKTtcbiAgICBwdWJsaWMgcm93SW5saW5lQWN0aW9uczogV3JpdGFibGVTaWduYWw8QWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT5bXT4gPSBzaWduYWwoW10pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lcj8udGFibGVSZWxvYWQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZShlID0+IHRoaXMucmVsb2FkKGUuZW1pdEV2ZW50LCBlLnJlc2V0UGFyYW1zKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBwcm9jZXNzIGFjdGlvbnNcbiAgICAgICAgY29uc3Qgcm93Q2xpY2tBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPltdID0gW107XG4gICAgICAgIGNvbnN0IHJvd0lubGluZUFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrOlxuICAgICAgICAgICAgICAgICAgICByb3dDbGlja0FjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmU6XG4gICAgICAgICAgICAgICAgICAgIHJvd0lubGluZUFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvd0NsaWNrQWN0aW9ucy5zZXQocm93Q2xpY2tBY3Rpb25zKTtcbiAgICAgICAgdGhpcy5yb3dJbmxpbmVBY3Rpb25zLnNldChyb3dJbmxpbmVBY3Rpb25zKTtcblxuICAgICAgICAvLyBkZWZpbmUgYWxsIHN0eWxlc1xuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yICYmICF0aGlzLmNvbHVtbkFjdGlvbk1pbldpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkFjdGlvbk1pbldpZHRoID0gY2FsY3VsYXRlVGFibGVDb2x1bW5BY3Rpb25XaWR0aCh0aGlzLmRlc2NyaXB0b3IgYXMgVGFibGVEZXNjcmlwdG9ySW5zdDxhbnk+LCB0aGlzLnJvd0lubGluZUFjdGlvbnMoKSBhcyBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+Pik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKHRlbXBsYXRlID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAodGVtcGxhdGUuZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnY2FwdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FwdGlvblRlbXBsYXRlLnNldCh0ZW1wbGF0ZS50ZW1wbGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zvb3Rlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyVGVtcGxhdGUuc2V0KHRlbXBsYXRlLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWxvYWQoZW1pdEV2ZW50ID0gZmFsc2UsIHJlc2V0UGFyYW1zID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy50YWJsZS5yZWxvYWQoZW1pdEV2ZW50LCByZXNldFBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2VsbENsaWNrKGV2ZW50OiBUYWJsZUNlbGxDbGlja0V2ZW50PEl0ZW0+KSB7XG4gICAgICAgIGlmICh0aGlzLnJvd0NsaWNrQWN0aW9ucygpLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5yb3dDbGlja0FjdGlvbnMoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkUHJvcCA9IHRoaXMuZGVzY3JpcHRvcj8udHJhY2tQcm9wZXJ0eSA/PyBhY3Rpb24/Lm1vZGVsPy5pZFByb3BlcnR5O1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IEFjdGlvblBhcmFtZXRlcnM8SXRlbT4gPSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1JZDogaWRQcm9wID8gZXZlbnQucm93SXRlbVtpZFByb3AgYXMga2V5b2Ygb2JqZWN0XSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbTogZXZlbnQucm93SXRlbSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uRGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUluZGV4OiBldmVudC5yb3dJbmRleFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByb3V0ZTogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlQ29tcG9uZW50OiB0aGlzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbkV4ZWN1dG9yLnRyaWdnZXJBY3Rpb24oYWN0aW9uLCBwYXJhbWV0ZXJzLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShpdGVtczogQXJyYXk8SXRlbT4pIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VFdmVudEVtaXR0ZXIubmV4dChpdGVtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQWN0aW9uRmluaXNoKHJ1blJlc3VsdDogQWN0aW9uSW5zdGFuY2U8SXRlbSwgU2VydmljZT4pIHtcbiAgICAgICAgaWYgKCFydW5SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bW5nLXRhYmxlXG4gICAgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvclwiXG4gICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICBbcmVzdWx0XT1cInJlc3VsdFwiXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgW2RhdGFQcm92aWRlcl09XCJkYXRhUHJvdmlkZXJcIlxuICAgIFt1c2VRdWVyeVBhcmFtc109XCJ1c2VRdWVyeVBhcmFtc1wiXG4gICAgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiXG4gICAgW3NlbGVjdGlvbkVuYWJsZWRdPVwic2VsZWN0aW9uRW5hYmxlZFwiXG4gICAgW2dsb2JhbEZpbHRlckZpZWxkc109XCJnbG9iYWxGaWx0ZXJGaWVsZHNcIlxuICAgIFtjYXB0aW9uQ29tcG9uZW50XT1cImNhcHRpb25Db21wb25lbnRcIlxuICAgIFtjb2x1bW5DdXN0b21MYXN0Q29tcG9uZW50XT1cImNvbHVtbkFjdGlvbkNvbXBvbmVudFwiXG4gICAgW2NvbHVtbkxhc3RNaW5XaWR0aF09XCJjb2x1bW5BY3Rpb25NaW5XaWR0aFwiXG4gICAgKHRhYmxlTG9hZCk9XCJsb2FkRXZlbnRFbWl0dGVyLm5leHQoJGV2ZW50KVwiXG4gICAgKGNlbGxDbGljayk9XCJvbkNlbGxDbGljaygkZXZlbnQpXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgIChjYXB0aW9uQ29tcG9uZW50SW5zdGFuY2UpPVwiY2FwdGlvbkNtcEluc3RFdmVudEVtaXR0ZXIubmV4dCgkZXZlbnQpXCJcbiAgICAoY29sdW1uQ3VzdG9tTGFzdENvbXBvbmVudEluc3RhbmNlKT1cImNvbHVtbkFjdGlvbkNtcEluc3RFdmVudEVtaXR0ZXIubmV4dCgkZXZlbnQpXCI+XG4gICAgQGlmICghY29sdW1uQWN0aW9uQ29tcG9uZW50ICYmIHJvd0lubGluZUFjdGlvbnMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtbmdUZW1wbGF0ZT1cImNvbHVtbkN1c3RvbUxhc3RcIiBsZXQtaXRlbT1cInJvd0l0ZW1cIiBsZXQtaWR4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiByb3dJbmxpbmVBY3Rpb25zKCk7IHRyYWNrIGFjdGlvbi5hY3Rpb25OYW1lTG9uZykge1xuICAgICAgICAgICAgICAgIDxtbmctYWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0Q29tcG9uZW50XT1cInRoaXNcIlxuICAgICAgICAgICAgICAgICAgICBbaXRlbUlkXT1cImRlc2NyaXB0b3IubW9kZWwuaWRQcm9wZXJ0eSA/IGl0ZW1bZGVzY3JpcHRvci5tb2RlbC5pZFByb3BlcnR5IV0gOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FjdGlvbkRhdGFdPVwie2l0ZW1JbmRleDogaWR4fVwiXG4gICAgICAgICAgICAgICAgICAgIChmaW5pc2gpPVwib25BY3Rpb25GaW5pc2goJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgQGlmIChjYXB0aW9uVGVtcGxhdGUoKSAmJiAhY2FwdGlvbkNvbXBvbmVudCkge1xuICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FwdGlvblRlbXBsYXRlKCkhXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoZm9vdGVyVGVtcGxhdGUoKSkge1xuICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJmb290ZXJcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtdG90YWxDb3VudD1cInRvdGFsQ291bnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZSgpITsgY29udGV4dDoge2RhdGEsIHRvdGFsQ291bnR9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuPC9tbmctdGFibGU+XG4iXX0=
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFHVCxJQUFJLEVBQ0osU0FBUyxFQUNULFlBQVksRUFFWixRQUFRLEVBQ1IsZUFBZSxFQUNmLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVsRCxPQUFPLEVBQW1CLGtCQUFrQixFQUFrQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNKLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQTBDLG1CQUFtQixFQUFpQixNQUFNLGtDQUFrQyxDQUFDO0FBQzlILE9BQU8sRUFBdUIsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5RixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRSxPQUFP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QUMsRUFBQztnQkFFakcsT0FBTztzQkFBcEQsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBQztnQkFDckIsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUdVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFHVSxPQUFPO3NCQUF0QixLQUFLO2dCQUdVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxxQkFBcUI7c0JBQXBDLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUdzQixnQkFBZ0I7c0JBQTNDLE1BQU07dUJBQUMsV0FBVztnQkFDZSwyQkFBMkI7c0JBQTVELE1BQU07dUJBQUMsaUJBQWlCO2dCQUNrQiwwQkFBMEI7c0JBQXBFLE1BQU07dUJBQUMsMEJBQTBCO2dCQUNjLCtCQUErQjtzQkFBOUUsTUFBTTt1QkFBQywrQkFBK0I7Z0JBSUUsVUFBVTtzQkFBbEQsWUFBWTt1QkFBQyxrQkFBa0I7Z0JBQ0UsS0FBSztzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgV3JpdGFibGVTaWduYWwsXG4gICAgY29tcHV0ZWQsXG4gICAgY29udGVudENoaWxkcmVuLFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBpc09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBY3Rpb25QYXJhbWV0ZXJzLCBDb21wb25lbnREaXJlY3RpdmUsIERhdGFMaXN0UmVzdWx0LCBUZW1wbGF0ZURpcmVjdGl2ZSwgYm9vbGVhbiRBdHRyaWJ1dGUsIGZpbmRUZW1wbGF0ZUJ5TmFtZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VGFibGVDb21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUnO1xuaW1wb3J0IHtJVGFibGVEYXRhUHJvdmlkZXIsIFRhYmxlQ2VsbENsaWNrRXZlbnQsIFRhYmxlRGVzY3JpcHRvckluc3QsIFRhYmxlTG9hZEV2ZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JJbnN0LCBBY3Rpb25Qb3NpdGlvbkVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7Y2FsY3VsYXRlVGFibGVDb2x1bW5BY3Rpb25XaWR0aH0gZnJvbSAnLi4vLi4vaGVscGVycy9zdHlsZXMnO1xuaW1wb3J0IHtBY3Rpb25JbnN0YW5jZX0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24taW5zdGFuY2UubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25FeGVjdXRvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjdGlvbi1leGVjdXRvci5zZXJ2aWNlJztcbmltcG9ydCB7cHJvdmlkZUFjdGlvbkV4ZWN1dG9yfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm92aWRlcnMvcHJvdmlkZS1hY3Rpb24tZXhlY3V0b3InO1xuaW1wb3J0IHtWaWV3Q29udGFpbmVyfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3LWNvbnRhaW5lci5zZXJ2aWNlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYWN0aW9uLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbVGFibGVDb21wb25lbnQsIEFjdGlvbkNvbXBvbmVudCwgVGVtcGxhdGVEaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVBY3Rpb25FeGVjdXRvcigpXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25UYWJsZUNvbXBvbmVudDxJdGVtID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBTb3J0cyA9IGtleW9mIEl0ZW0sIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBJdGVtPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25FeGVjdXRvciA9IGluamVjdChBY3Rpb25FeGVjdXRvclNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyPEl0ZW0sIFNlcnZpY2U+LCB7b3B0aW9uYWw6IHRydWV9KTtcblxuICAgIC8vIG1ldGFkYXRhIGlucHV0XG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBkZXNjcmlwdG9yITogVGFibGVEZXNjcmlwdG9ySW5zdDxJdGVtLCBTb3J0cywgRmlsdGVycz47XG5cbiAgICAvLyBkYXRhIHNvdXJjZSBpbnB1dHNcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbXM/OiBPYnNlcnZhYmxlPEFycmF5PEl0ZW0+PiB8IEFycmF5PEl0ZW0+O1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiAodmFsdWU6IHVua25vd24pID0+IChpc09ic2VydmFibGUodmFsdWUpID8gKHZhbHVlIGFzIE9ic2VydmFibGU8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+KSA6IG9mKHZhbHVlIGFzIERhdGFMaXN0UmVzdWx0PEl0ZW0+KSl9KVxuICAgIHB1YmxpYyByZXN1bHQ/OiBPYnNlcnZhYmxlPERhdGFMaXN0UmVzdWx0PEl0ZW0+PjtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbiRBdHRyaWJ1dGV9KSBwdWJsaWMgbG9hZGluZz86IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgQElucHV0KCkgcHVibGljIGRhdGFQcm92aWRlcj86IElUYWJsZURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz47XG4gICAgQElucHV0KCkgcHVibGljIHVzZVF1ZXJ5UGFyYW1zID0gZmFsc2U7XG5cbiAgICAvLyBleHRyYSBmZWF0dXJlcyBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgPSAnbXVsdGlwbGUnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb25FbmFibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGdsb2JhbEZpbHRlckZpZWxkcz86IHN0cmluZ1tdO1xuXG4gICAgLy8gYWN0aW9uc1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+PiA9IFtdOyAvLyBjYW4gYmUgYW55dGhpbmdcblxuICAgIC8vIGNvbXBvbmVudCBpbnB1dHNcbiAgICBASW5wdXQoKSBwdWJsaWMgY2FwdGlvbkNvbXBvbmVudD86IFR5cGU8YW55PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29sdW1uQWN0aW9uQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5BY3Rpb25NaW5XaWR0aD86IG51bWJlcjtcblxuICAgIC8vIGV2ZW50IG91dHB1dHNcbiAgICBAT3V0cHV0KCd0YWJsZUxvYWQnKSBwdWJsaWMgbG9hZEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVMb2FkRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgnc2VsZWN0aW9uQ2hhbmdlJykgcHVibGljIHNlbGVjdGlvbkNoYW5nZUV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8SXRlbT4+KCk7XG4gICAgQE91dHB1dCgnY2FwdGlvbkNvbXBvbmVudEluc3RhbmNlJykgcHVibGljIGNhcHRpb25DbXBJbnN0RXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgnY29sdW1uQWN0aW9uQ29tcG9uZW50SW5zdGFuY2UnKSBwdWJsaWMgY29sdW1uQWN0aW9uQ21wSW5zdEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgcHVibGljIHRlbXBsYXRlcyA9IGNvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSk7XG4gICAgQFZpZXdDaGlsZHJlbihDb21wb25lbnREaXJlY3RpdmUpIHB1YmxpYyBjb21wb25lbnRzITogUXVlcnlMaXN0PENvbXBvbmVudERpcmVjdGl2ZTxhbnk+PjtcbiAgICBAVmlld0NoaWxkKFRhYmxlQ29tcG9uZW50KSBwdWJsaWMgdGFibGUhOiBUYWJsZUNvbXBvbmVudDtcblxuICAgIC8vIHRlbXBsYXRlc1xuICAgIHB1YmxpYyBjYXB0aW9uVGVtcGxhdGU6IFNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD4gPSBjb21wdXRlZCgoKSA9PiBmaW5kVGVtcGxhdGVCeU5hbWUoWy4uLnRoaXMudGVtcGxhdGVzKCldLCAnY2FwdGlvbicpKTtcbiAgICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU6IFNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD4gPSBjb21wdXRlZCgoKSA9PiBmaW5kVGVtcGxhdGVCeU5hbWUoWy4uLnRoaXMudGVtcGxhdGVzKCldLCAnZm9vdGVyJykpO1xuICAgIHB1YmxpYyByb3dFeHBhbmRUZW1wbGF0ZTogU2lnbmFsPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPiA9IGNvbXB1dGVkKCgpID0+IGZpbmRUZW1wbGF0ZUJ5TmFtZShbLi4udGhpcy50ZW1wbGF0ZXMoKV0sICdyb3dFeHBhbmRDb250ZW50JykpO1xuXG4gICAgLy8gYWN0aW9uc1xuICAgIHB1YmxpYyByb3dDbGlja0FjdGlvbnM6IFdyaXRhYmxlU2lnbmFsPEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10+ID0gc2lnbmFsKFtdKTtcbiAgICBwdWJsaWMgcm93SW5saW5lQWN0aW9uczogV3JpdGFibGVTaWduYWw8QWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT5bXT4gPSBzaWduYWwoW10pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lcj8udGFibGVSZWxvYWQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZShlID0+IHRoaXMucmVsb2FkKGUuZW1pdEV2ZW50LCBlLnJlc2V0UGFyYW1zKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBwcm9jZXNzIGFjdGlvbnNcbiAgICAgICAgY29uc3Qgcm93Q2xpY2tBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPltdID0gW107XG4gICAgICAgIGNvbnN0IHJvd0lubGluZUFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrOlxuICAgICAgICAgICAgICAgICAgICByb3dDbGlja0FjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmU6XG4gICAgICAgICAgICAgICAgICAgIHJvd0lubGluZUFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvd0NsaWNrQWN0aW9ucy5zZXQocm93Q2xpY2tBY3Rpb25zKTtcbiAgICAgICAgdGhpcy5yb3dJbmxpbmVBY3Rpb25zLnNldChyb3dJbmxpbmVBY3Rpb25zKTtcblxuICAgICAgICAvLyBkZWZpbmUgYWxsIHN0eWxlc1xuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yICYmICF0aGlzLmNvbHVtbkFjdGlvbk1pbldpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkFjdGlvbk1pbldpZHRoID0gY2FsY3VsYXRlVGFibGVDb2x1bW5BY3Rpb25XaWR0aCh0aGlzLmRlc2NyaXB0b3IgYXMgVGFibGVEZXNjcmlwdG9ySW5zdDxhbnk+LCB0aGlzLnJvd0lubGluZUFjdGlvbnMoKSBhcyBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+Pik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkKGVtaXRFdmVudCA9IGZhbHNlLCByZXNldFBhcmFtcyA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMudGFibGUucmVsb2FkKGVtaXRFdmVudCwgcmVzZXRQYXJhbXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNlbGxDbGljayhldmVudDogVGFibGVDZWxsQ2xpY2tFdmVudDxJdGVtPikge1xuICAgICAgICBpZiAodGhpcy5yb3dDbGlja0FjdGlvbnMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMucm93Q2xpY2tBY3Rpb25zKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZFByb3AgPSB0aGlzLmRlc2NyaXB0b3I/LnRyYWNrUHJvcGVydHkgPz8gYWN0aW9uPy5tb2RlbD8uaWRQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbWV0ZXJzOiBBY3Rpb25QYXJhbWV0ZXJzPEl0ZW0+ID0ge1xuICAgICAgICAgICAgICAgICAgICBpdGVtSWQ6IGlkUHJvcCA/IGV2ZW50LnJvd0l0ZW1baWRQcm9wIGFzIGtleW9mIG9iamVjdF0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW06IGV2ZW50LnJvd0l0ZW0sXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbkRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1JbmRleDogZXZlbnQucm93SW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcm91dGU6IHRoaXMucm91dGUsXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZUNvbXBvbmVudDogdGhpc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25FeGVjdXRvci50cmlnZ2VyQWN0aW9uKGFjdGlvbiwgcGFyYW1ldGVycywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2UoaXRlbXM6IEFycmF5PEl0ZW0+KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlRXZlbnRFbWl0dGVyLm5leHQoaXRlbXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFjdGlvbkZpbmlzaChydW5SZXN1bHQ6IEFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+KSB7XG4gICAgICAgIGlmICghcnVuUmVzdWx0LmVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG1uZy10YWJsZVxuICAgIFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3JcIlxuICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgW3Jlc3VsdF09XCJyZXN1bHRcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIFtkYXRhUHJvdmlkZXJdPVwiZGF0YVByb3ZpZGVyXCJcbiAgICBbdXNlUXVlcnlQYXJhbXNdPVwidXNlUXVlcnlQYXJhbXNcIlxuICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxuICAgIFtzZWxlY3Rpb25FbmFibGVkXT1cInNlbGVjdGlvbkVuYWJsZWRcIlxuICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcbiAgICBbY2FwdGlvbkNvbXBvbmVudF09XCJjYXB0aW9uQ29tcG9uZW50XCJcbiAgICBbY29sdW1uQ3VzdG9tTGFzdENvbXBvbmVudF09XCJjb2x1bW5BY3Rpb25Db21wb25lbnRcIlxuICAgIFtjb2x1bW5MYXN0TWluV2lkdGhdPVwiY29sdW1uQWN0aW9uTWluV2lkdGhcIlxuICAgICh0YWJsZUxvYWQpPVwibG9hZEV2ZW50RW1pdHRlci5uZXh0KCRldmVudClcIlxuICAgIChjZWxsQ2xpY2spPVwib25DZWxsQ2xpY2soJGV2ZW50KVwiXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAoY2FwdGlvbkNvbXBvbmVudEluc3RhbmNlKT1cImNhcHRpb25DbXBJbnN0RXZlbnRFbWl0dGVyLm5leHQoJGV2ZW50KVwiXG4gICAgKGNvbHVtbkN1c3RvbUxhc3RDb21wb25lbnRJbnN0YW5jZSk9XCJjb2x1bW5BY3Rpb25DbXBJbnN0RXZlbnRFbWl0dGVyLm5leHQoJGV2ZW50KVwiPlxuICAgIEBpZiAoIWNvbHVtbkFjdGlvbkNvbXBvbmVudCAmJiByb3dJbmxpbmVBY3Rpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjb2x1bW5DdXN0b21MYXN0XCIgbGV0LWl0ZW09XCJyb3dJdGVtXCIgbGV0LWlkeD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgICBAZm9yIChhY3Rpb24gb2Ygcm93SW5saW5lQWN0aW9ucygpOyB0cmFjayBhY3Rpb24uYWN0aW9uTmFtZUxvbmcpIHtcbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvblxuICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1JZF09XCJkZXNjcmlwdG9yLm1vZGVsLmlkUHJvcGVydHkgPyBpdGVtW2Rlc2NyaXB0b3IubW9kZWwuaWRQcm9wZXJ0eSFdIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpb25EYXRhXT1cIntpdGVtSW5kZXg6IGlkeH1cIlxuICAgICAgICAgICAgICAgICAgICAoZmluaXNoKT1cIm9uQWN0aW9uRmluaXNoKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L21uZy1hY3Rpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoY2FwdGlvblRlbXBsYXRlKCkgJiYgIWNhcHRpb25Db21wb25lbnQpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhcHRpb25UZW1wbGF0ZSgpXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAocm93RXhwYW5kVGVtcGxhdGUoKSkge1xuICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJyb3dFeHBhbmRDb250ZW50XCIgbGV0LWl0ZW09XCJyb3dJdGVtXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93RXhwYW5kVGVtcGxhdGUoKTsgY29udGV4dDoge3Jvd0l0ZW06IGl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoZm9vdGVyVGVtcGxhdGUoKSkge1xuICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJmb290ZXJcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtdG90YWxDb3VudD1cInRvdGFsQ291bnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZSgpOyBjb250ZXh0OiB7ZGF0YSwgdG90YWxDb3VudH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9XG48L21uZy10YWJsZT5cbiJdfQ==
@@ -0,0 +1,82 @@
1
+ import { map, mergeMap } from 'rxjs/operators';
2
+ import { getI18n, getI18nAsync } from '@mediusinc/mng-commons/core';
3
+ import { getI18nModelParams, getI18nModelParamsAsync } from '@mediusinc/mng-commons/model';
4
+ export function getI18nForAction(translate, action, actionPathKeys, customKey, item, fallbackKey, params, missingTranslationStrategy = 'returnFirstKey') {
5
+ const keys = getKeysByPriority(action, actionPathKeys, customKey, fallbackKey);
6
+ const i18nParams = getI18nActionParams(translate, action, item, params);
7
+ const i18nValue = getI18n(translate, i18nParams, ...keys);
8
+ return getTranslationDependingOnStrategy(missingTranslationStrategy, { i18nValue, firstKey: keys[0], fallbackKey });
9
+ }
10
+ /**
11
+ * Returns async translation for given keys with given params.
12
+ * @param translate TranslateService
13
+ * @param action action descriptor
14
+ * @param actionPathKeys action path keys
15
+ * @param customKey custom key
16
+ * @param item item
17
+ * @param fallbackKey fallback key, used as fallback key
18
+ * @param params additional params for translation
19
+ * @param missingTranslationStrategy strategy when no translation is found
20
+ */
21
+ export function getI18nForActionAsync(translate, action, actionPathKeys, customKey, item, fallbackKey, params, missingTranslationStrategy = 'returnFirstKey') {
22
+ return getI18nActionParamsAsync(translate, action, item, params).pipe(mergeMap(i18nParams => {
23
+ const keys = getKeysByPriority(action, actionPathKeys, customKey, fallbackKey);
24
+ return getI18nAsync(translate, i18nParams, ...keys).pipe(map(i18nValue => getTranslationDependingOnStrategy(missingTranslationStrategy, { i18nValue, firstKey: keys[0], fallbackKey })));
25
+ }));
26
+ }
27
+ /**
28
+ * Returns translation depending on missingTranslationStrategy
29
+ * @param missingTranslationStrategy strategy when no translation is found
30
+ * @param values object with values, i18nValue is translation, firstKey is first key in array of keys, fallbackKey is fallback key
31
+ */
32
+ function getTranslationDependingOnStrategy(missingTranslationStrategy, { i18nValue, firstKey, fallbackKey }) {
33
+ if (i18nValue !== null) {
34
+ return i18nValue;
35
+ }
36
+ else {
37
+ switch (missingTranslationStrategy) {
38
+ case 'returnNull':
39
+ return null;
40
+ case 'returnFallbackKey':
41
+ return fallbackKey ?? null;
42
+ case 'returnFirstKey':
43
+ return firstKey ?? null;
44
+ }
45
+ }
46
+ }
47
+ export function getI18nActionTitleAsync(translate, action, item) {
48
+ return getI18nForActionAsync(translate, action, 'title', undefined, item);
49
+ }
50
+ export function getI18nActionEditorTitleAsync(translate, action, item) {
51
+ return getI18nForActionAsync(translate, action, ['editor.title', 'title'], action.editorTitle ?? undefined, item, undefined, action.editorTitleParams ?? undefined);
52
+ }
53
+ export function getI18nActionParams(translate, action, item, params = {}) {
54
+ const i18nParams = getI18nModelParams(translate, action.model ?? undefined, item, params);
55
+ return populateI18nActionParams(i18nParams);
56
+ }
57
+ export function getI18nActionParamsAsync(translate, action, item, params = {}) {
58
+ return getI18nModelParamsAsync(translate, action.model ?? undefined, item, params).pipe(map(i18nParams => populateI18nActionParams(i18nParams)));
59
+ }
60
+ export function populateI18nActionParams(params = {}) {
61
+ params = { ...params };
62
+ return params;
63
+ }
64
+ function getKeysByPriority(action, actionPathKeys, customKey, fallbackKey) {
65
+ const keys = [];
66
+ if (customKey) {
67
+ keys.push(customKey);
68
+ }
69
+ if (!Array.isArray(actionPathKeys)) {
70
+ actionPathKeys = [actionPathKeys];
71
+ }
72
+ actionPathKeys.forEach(k => {
73
+ const modelActionKey = `${action.i18nModelActionBaseKey}.${k}`;
74
+ const actionKey = `${action.actionName}.${k}`;
75
+ keys.push(modelActionKey, actionKey);
76
+ });
77
+ if (fallbackKey) {
78
+ keys.push(fallbackKey);
79
+ }
80
+ return keys;
81
+ }
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL2hlbHBlcnMvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsR0FBRyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBaUMsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR3pGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDNUIsU0FBMkIsRUFDM0IsTUFBaUMsRUFDakMsY0FBc0MsRUFDdEMsU0FBa0IsRUFDbEIsSUFBVSxFQUNWLFdBQW9CLEVBQ3BCLE1BQVksRUFDWiw2QkFBNkQsZ0JBQWdCO0lBRTdFLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9FLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUQsT0FBTyxpQ0FBaUMsQ0FBQywwQkFBMEIsRUFBRSxFQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7QUFDdEgsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLFNBQTJCLEVBQzNCLE1BQWlDLEVBQ2pDLGNBQXNDLEVBQ3RDLFNBQWtCLEVBQ2xCLElBQVUsRUFDVixXQUFvQixFQUNwQixNQUFZLEVBQ1osNkJBQTZELGdC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QUksR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDakMsY0FBYyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDdkIsTUFBTSxjQUFjLEdBQUcsR0FBRyxNQUFNLENBQUMsc0JBQXNCLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDL0QsTUFBTSxTQUFTLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0kxOG5NaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneSwgZ2V0STE4biwgZ2V0STE4bkFzeW5jfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtnZXRJMThuTW9kZWxQYXJhbXMsIGdldEkxOG5Nb2RlbFBhcmFtc0FzeW5jfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvckluc3QsIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bkZvckFjdGlvbihcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGFjdGlvblBhdGhLZXlzOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+LFxuICAgIGN1c3RvbUtleT86IHN0cmluZyxcbiAgICBpdGVtPzogYW55LFxuICAgIGZhbGxiYWNrS2V5Pzogc3RyaW5nLFxuICAgIHBhcmFtcz86IGFueSxcbiAgICBtaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneTogSTE4bk1pc3NpbmdUcmFuc2xhdGlvblN0cmF0ZWd5ID0gJ3JldHVybkZpcnN0S2V5J1xuKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3Qga2V5cyA9IGdldEtleXNCeVByaW9yaXR5KGFjdGlvbiwgYWN0aW9uUGF0aEtleXMsIGN1c3RvbUtleSwgZmFsbGJhY2tLZXkpO1xuICAgIGNvbnN0IGkxOG5QYXJhbXMgPSBnZXRJMThuQWN0aW9uUGFyYW1zKHRyYW5zbGF0ZSwgYWN0aW9uLCBpdGVtLCBwYXJhbXMpO1xuICAgIGNvbnN0IGkxOG5WYWx1ZSA9IGdldEkxOG4odHJhbnNsYXRlLCBpMThuUGFyYW1zLCAuLi5rZXlzKTtcbiAgICByZXR1cm4gZ2V0VHJhbnNsYXRpb25EZXBlbmRpbmdPblN0cmF0ZWd5KG1pc3NpbmdUcmFuc2xhdGlvblN0cmF0ZWd5LCB7aTE4blZhbHVlLCBmaXJzdEtleToga2V5c1swXSwgZmFsbGJhY2tLZXl9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFzeW5jIHRyYW5zbGF0aW9uIGZvciBnaXZlbiBrZXlzIHdpdGggZ2l2ZW4gcGFyYW1zLlxuICogQHBhcmFtIHRyYW5zbGF0ZSBUcmFuc2xhdGVTZXJ2aWNlXG4gKiBAcGFyYW0gYWN0aW9uIGFjdGlvbiBkZXNjcmlwdG9yXG4gKiBAcGFyYW0gYWN0aW9uUGF0aEtleXMgYWN0aW9uIHBhdGgga2V5c1xuICogQHBhcmFtIGN1c3RvbUtleSBjdXN0b20ga2V5XG4gKiBAcGFyYW0gaXRlbSBpdGVtXG4gKiBAcGFyYW0gZmFsbGJhY2tLZXkgZmFsbGJhY2sga2V5LCB1c2VkIGFzIGZhbGxiYWNrIGtleVxuICogQHBhcmFtIHBhcmFtcyBhZGRpdGlvbmFsIHBhcmFtcyBmb3IgdHJhbnNsYXRpb25cbiAqIEBwYXJhbSBtaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneSBzdHJhdGVneSB3aGVuIG5vIHRyYW5zbGF0aW9uIGlzIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuRm9yQWN0aW9uQXN5bmMoXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55PixcbiAgICBhY3Rpb25QYXRoS2V5czogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPixcbiAgICBjdXN0b21LZXk/OiBzdHJpbmcsXG4gICAgaXRlbT86IGFueSxcbiAgICBmYWxsYmFja0tleT86IHN0cmluZyxcbiAgICBwYXJhbXM/OiBhbnksXG4gICAgbWlzc2luZ1RyYW5zbGF0aW9uU3RyYXRlZ3k6IEkxOG5NaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneSA9ICdyZXR1cm5GaXJzdEtleSdcbik6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBnZXRJMThuQWN0aW9uUGFyYW1zQXN5bmModHJhbnNsYXRlLCBhY3Rpb24sIGl0ZW0sIHBhcmFtcykucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoaTE4blBhcmFtcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gZ2V0S2V5c0J5UHJpb3JpdHkoYWN0aW9uLCBhY3Rpb25QYXRoS2V5cywgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgICAgICAgICByZXR1cm4gZ2V0STE4bkFzeW5jKHRyYW5zbGF0ZSwgaTE4blBhcmFtcywgLi4ua2V5cykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoaTE4blZhbHVlID0+IGdldFRyYW5zbGF0aW9uRGVwZW5kaW5nT25TdHJhdGVneShtaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneSwge2kxOG5WYWx1ZSwgZmlyc3RLZXk6IGtleXNbMF0sIGZhbGxiYWNrS2V5fSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cmFuc2xhdGlvbiBkZXBlbmRpbmcgb24gbWlzc2luZ1RyYW5zbGF0aW9uU3RyYXRlZ3lcbiAqIEBwYXJhbSBtaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneSBzdHJhdGVneSB3aGVuIG5vIHRyYW5zbGF0aW9uIGlzIGZvdW5kXG4gKiBAcGFyYW0gdmFsdWVzIG9iamVjdCB3aXRoIHZhbHVlcywgaTE4blZhbHVlIGlzIHRyYW5zbGF0aW9uLCBmaXJzdEtleSBpcyBmaXJzdCBrZXkgaW4gYXJyYXkgb2Yga2V5cywgZmFsbGJhY2tLZXkgaXMgZmFsbGJhY2sga2V5XG4gKi9cbmZ1bmN0aW9uIGdldFRyYW5zbGF0aW9uRGVwZW5kaW5nT25TdHJhdGVneShcbiAgICBtaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneTogSTE4bk1pc3NpbmdUcmFuc2xhdGlvblN0cmF0ZWd5LFxuICAgIHtpMThuVmFsdWUsIGZpcnN0S2V5LCBmYWxsYmFja0tleX06IHtpMThuVmFsdWU6IHN0cmluZyB8IG51bGw7IGZpcnN0S2V5Pzogc3RyaW5nOyBmYWxsYmFja0tleT86IHN0cmluZ31cbik6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChpMThuVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGkxOG5WYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKG1pc3NpbmdUcmFuc2xhdGlvblN0cmF0ZWd5KSB7XG4gICAgICAgICAgICBjYXNlICdyZXR1cm5OdWxsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNhc2UgJ3JldHVybkZhbGxiYWNrS2V5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsbGJhY2tLZXkgPz8gbnVsbDtcbiAgICAgICAgICAgIGNhc2UgJ3JldHVybkZpcnN0S2V5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3RLZXkgPz8gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5BY3Rpb25UaXRsZUFzeW5jKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+LCBpdGVtPzogYW55KTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGdldEkxOG5Gb3JBY3Rpb25Bc3luYyh0cmFuc2xhdGUsIGFjdGlvbiwgJ3RpdGxlJywgdW5kZWZpbmVkLCBpdGVtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5BY3Rpb25FZGl0b3JUaXRsZUFzeW5jKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgYWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxhbnk+LCBpdGVtPzogYW55KTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGdldEkxOG5Gb3JBY3Rpb25Bc3luYyh0cmFuc2xhdGUsIGFjdGlvbiwgWydlZGl0b3IudGl0bGUnLCAndGl0bGUnXSwgYWN0aW9uLmVkaXRvclRpdGxlID8/IHVuZGVmaW5lZCwgaXRlbSwgdW5kZWZpbmVkLCBhY3Rpb24uZWRpdG9yVGl0bGVQYXJhbXMgPz8gdW5kZWZpbmVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5BY3Rpb25QYXJhbXModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4sIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBhbnkge1xuICAgIGNvbnN0IGkxOG5QYXJhbXMgPSBnZXRJMThuTW9kZWxQYXJhbXModHJhbnNsYXRlLCBhY3Rpb24ubW9kZWwgPz8gdW5kZWZpbmVkLCBpdGVtLCBwYXJhbXMpO1xuICAgIHJldHVybiBwb3B1bGF0ZUkxOG5BY3Rpb25QYXJhbXMoaTE4blBhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQWN0aW9uUGFyYW1zQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4sIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBnZXRJMThuTW9kZWxQYXJhbXNBc3luYyh0cmFuc2xhdGUsIGFjdGlvbi5tb2RlbCA/PyB1bmRlZmluZWQsIGl0ZW0sIHBhcmFtcykucGlwZShtYXAoaTE4blBhcmFtcyA9PiBwb3B1bGF0ZUkxOG5BY3Rpb25QYXJhbXMoaTE4blBhcmFtcykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcHVsYXRlSTE4bkFjdGlvblBhcmFtcyhwYXJhbXM6IGFueSA9IHt9KTogYW55IHtcbiAgICBwYXJhbXMgPSB7Li4ucGFyYW1zfTtcbiAgICByZXR1cm4gcGFyYW1zO1xufVxuXG5mdW5jdGlvbiBnZXRLZXlzQnlQcmlvcml0eShhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4sIGFjdGlvblBhdGhLZXlzOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+LCBjdXN0b21LZXk/OiBzdHJpbmcsIGZhbGxiYWNrS2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qga2V5cyA9IFtdO1xuICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAga2V5cy5wdXNoKGN1c3RvbUtleSk7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShhY3Rpb25QYXRoS2V5cykpIHtcbiAgICAgICAgYWN0aW9uUGF0aEtleXMgPSBbYWN0aW9uUGF0aEtleXNdO1xuICAgIH1cbiAgICBhY3Rpb25QYXRoS2V5cy5mb3JFYWNoKGsgPT4ge1xuICAgICAgICBjb25zdCBtb2RlbEFjdGlvbktleSA9IGAke2FjdGlvbi5pMThuTW9kZWxBY3Rpb25CYXNlS2V5fS4ke2t9YDtcbiAgICAgICAgY29uc3QgYWN0aW9uS2V5ID0gYCR7YWN0aW9uLmFjdGlvbk5hbWV9LiR7a31gO1xuICAgICAgICBrZXlzLnB1c2gobW9kZWxBY3Rpb25LZXksIGFjdGlvbktleSk7XG4gICAgfSk7XG4gICAgaWYgKGZhbGxiYWNrS2V5KSB7XG4gICAgICAgIGtleXMucHVzaChmYWxsYmFja0tleSk7XG4gICAgfVxuICAgIHJldHVybiBrZXlzO1xufVxuIl19
@@ -1,17 +1,17 @@
1
- import { toastMessage } from '@mediusinc/mng-commons/core';
2
- import { I18nUtils } from '../utils/i18n.util';
1
+ import { getI18nForError, toastMessage } from '@mediusinc/mng-commons/core';
2
+ import { getI18nForAction } from './i18n';
3
3
  export function actionNotificationSuccess(translate, action, functionName, messageService, customTitleKey, customMessageKey, item) {
4
- const actionSuccessTitle = I18nUtils.Action.get(translate, action, 'success.title', customTitleKey, item, 'general.success', functionName) ?? undefined;
5
- const actionSuccessMessage = I18nUtils.Action.get(translate, action, 'success.message', customMessageKey, item, 'general.successMessage', functionName) ?? undefined;
4
+ const actionSuccessTitle = getI18nForAction(translate, action, 'success.title', customTitleKey, item, 'general.success', functionName) ?? undefined;
5
+ const actionSuccessMessage = getI18nForAction(translate, action, 'success.message', customMessageKey, item, 'general.successMessage', functionName) ?? undefined;
6
6
  return toastMessage(messageService, actionSuccessTitle, actionSuccessMessage);
7
7
  }
8
8
  export function actionNotificationError(translate, action, error, functionName, messageService, item, severity = 'error') {
9
9
  const params = {
10
- errorMessage: I18nUtils.Error.get(translate, error) ?? error.message
10
+ errorMessage: getI18nForError(translate, error) ?? error.message
11
11
  };
12
- const actionErrorTitle = I18nUtils.Action.get(translate, action, [`error.${functionName}.title`, 'error.title'], action.runNotificationErrorTitle, item, 'general.error', params) ?? undefined;
13
- const actionErrorMessage = I18nUtils.Action.get(translate, action, [`error.${functionName}.message`, 'error.message'], action.runNotificationErrorMessage, item, 'general.errorMessage', params) ??
12
+ const actionErrorTitle = getI18nForAction(translate, action, [`error.${functionName}.title`, 'error.title'], action.runNotificationErrorTitle, item, 'general.error', params) ?? undefined;
13
+ const actionErrorMessage = getI18nForAction(translate, action, [`error.${functionName}.message`, 'error.message'], action.runNotificationErrorMessage, item, 'general.errorMessage', params) ??
14
14
  undefined;
15
15
  return toastMessage(messageService, actionErrorTitle, actionErrorMessage, severity, 'pi-exclamation-triangle');
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9hY3Rpb24vaGVscGVycy9ub3RpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFnQixZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUd4RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFN0MsTUFBTSxVQUFVLHlCQUF5QixDQUNyQyxTQUEyQixFQUMzQixNQUFpQyxFQUNqQyxZQUFvQixFQUNwQixjQUE4QixFQUM5QixjQUF1QixFQUN2QixnQkFBeUIsRUFDekIsSUFBVTtJQUVWLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDeEosTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxZQUFZLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDckssT0FBTyxZQUFZLENBQUMsY0FBYyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FDbkMsU0FBMkIsRUFDM0IsTUFBaUMsRUFDakMsS0FBb0IsRUFDcEIsWUFBb0IsRUFDcEIsY0FBOEIsRUFDOUIsSUFBVSxFQUNWLFdBQTZCLE9BQU87SUFFcEMsTUFBTSxNQUFNLEdBQUc7UUFDWCxZQUFZLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPO0tBQ3ZFLENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUNsQixTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRSxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUMseUJBQXlCLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDMUssTUFBTSxrQkFBa0IsR0FDcEIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLFNBQVMsWUFBWSxVQUFVLEVBQUUsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDLDJCQUEyQixFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLENBQUM7UUFDckssU0FBUyxDQUFDO0lBQ2QsT0FBTyxZQUFZLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0FBQ25ILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge0lDb21tb25zRXJyb3IsIHRvYXN0TWVzc2FnZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvckluc3R9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7STE4blV0aWxzfSBmcm9tICcuLi91dGlscy9pMThuLnV0aWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uTm90aWZpY2F0aW9uU3VjY2VzcyhcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBjdXN0b21UaXRsZUtleT86IHN0cmluZyxcbiAgICBjdXN0b21NZXNzYWdlS2V5Pzogc3RyaW5nLFxuICAgIGl0ZW0/OiBhbnlcbik6IE1lc3NhZ2Uge1xuICAgIGNvbnN0IGFjdGlvblN1Y2Nlc3NUaXRsZSA9IEkxOG5VdGlscy5BY3Rpb24uZ2V0KHRyYW5zbGF0ZSwgYWN0aW9uLCAnc3VjY2Vzcy50aXRsZScsIGN1c3RvbVRpdGxlS2V5LCBpdGVtLCAnZ2VuZXJhbC5zdWNjZXNzJywgZnVuY3Rpb25OYW1lKSA/PyB1bmRlZmluZWQ7XG4gICAgY29uc3QgYWN0aW9uU3VjY2Vzc01lc3NhZ2UgPSBJMThuVXRpbHMuQWN0aW9uLmdldCh0cmFuc2xhdGUsIGFjdGlvbiwgJ3N1Y2Nlc3MubWVzc2FnZScsIGN1c3RvbU1lc3NhZ2VLZXksIGl0ZW0sICdnZW5lcmFsLnN1Y2Nlc3NNZXNzYWdlJywgZnVuY3Rpb25OYW1lKSA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRvYXN0TWVzc2FnZShtZXNzYWdlU2VydmljZSwgYWN0aW9uU3VjY2Vzc1RpdGxlLCBhY3Rpb25TdWNjZXNzTWVzc2FnZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Ob3RpZmljYXRpb25FcnJvcihcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGVycm9yOiBJQ29tbW9uc0Vycm9yLFxuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBpdGVtPzogYW55LFxuICAgIHNldmVyaXR5OiAnd2FybicgfCAnZXJyb3InID0gJ2Vycm9yJ1xuKTogTWVzc2FnZSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICBlcnJvck1lc3NhZ2U6IEkxOG5VdGlscy5FcnJvci5nZXQodHJhbnNsYXRlLCBlcnJvcikgPz8gZXJyb3IubWVzc2FnZVxuICAgIH07XG4gICAgY29uc3QgYWN0aW9uRXJyb3JUaXRsZSA9XG4gICAgICAgIEkxOG5VdGlscy5BY3Rpb24uZ2V0KHRyYW5zbGF0ZSwgYWN0aW9uLCBbYGVycm9yLiR7ZnVuY3Rpb25OYW1lfS50aXRsZWAsICdlcnJvci50aXRsZSddLCBhY3Rpb24ucnVuTm90aWZpY2F0aW9uRXJyb3JUaXRsZSwgaXRlbSwgJ2dlbmVyYWwuZXJyb3InLCBwYXJhbXMpID8/IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhY3Rpb25FcnJvck1lc3NhZ2UgPVxuICAgICAgICBJMThuVXRpbHMuQWN0aW9uLmdldCh0cmFuc2xhdGUsIGFjdGlvbiwgW2BlcnJvci4ke2Z1bmN0aW9uTmFtZX0ubWVzc2FnZWAsICdlcnJvci5tZXNzYWdlJ10sIGFjdGlvbi5ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2UsIGl0ZW0sICdnZW5lcmFsLmVycm9yTWVzc2FnZScsIHBhcmFtcykgPz9cbiAgICAgICAgdW5kZWZpbmVkO1xuICAgIHJldHVybiB0b2FzdE1lc3NhZ2UobWVzc2FnZVNlcnZpY2UsIGFjdGlvbkVycm9yVGl0bGUsIGFjdGlvbkVycm9yTWVzc2FnZSwgc2V2ZXJpdHksICdwaS1leGNsYW1hdGlvbi10cmlhbmdsZScpO1xufVxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9hY3Rpb24vaGVscGVycy9ub3RpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFnQixlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHekYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXhDLE1BQU0sVUFBVSx5QkFBeUIsQ0FDckMsU0FBMkIsRUFDM0IsTUFBaUMsRUFDakMsWUFBb0IsRUFDcEIsY0FBOEIsRUFDOUIsY0FBdUIsRUFDdkIsZ0JBQXlCLEVBQ3pCLElBQVU7SUFFVixNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLElBQUksU0FBUyxDQUFDO0lBQ3BKLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLElBQUksU0FBUyxDQUFDO0lBQ2pLLE9BQU8sWUFBWSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQ25DLFNBQTJCLEVBQzNCLE1BQWlDLEVBQ2pDLEtBQW9CLEVBQ3BCLFlBQW9CLEVBQ3BCLGNBQThCLEVBQzlCLElBQVUsRUFDVixXQUE2QixPQUFPO0lBRXBDLE1BQU0sTUFBTSxHQUFHO1FBQ1gsWUFBWSxFQUFFLGVBQWUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU87S0FDbkUsQ0FBQztJQUNGLE1BQU0sZ0JBQWdCLEdBQ2xCLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxTQUFTLFlBQVksUUFBUSxFQUFFLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUN0SyxNQUFNLGtCQUFrQixHQUNwQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxZQUFZLFVBQVUsRUFBRSxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sQ0FBQztRQUNqSyxTQUFTLENBQUM7SUFDZCxPQUFPLFlBQVksQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFDbkgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lc3NhZ2UsIE1lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7SUNvbW1vbnNFcnJvciwgZ2V0STE4bkZvckVycm9yLCB0b2FzdE1lc3NhZ2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2dldEkxOG5Gb3JBY3Rpb259IGZyb20gJy4vaTE4bic7XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Ob3RpZmljYXRpb25TdWNjZXNzKFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4sXG4gICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIGN1c3RvbVRpdGxlS2V5Pzogc3RyaW5nLFxuICAgIGN1c3RvbU1lc3NhZ2VLZXk/OiBzdHJpbmcsXG4gICAgaXRlbT86IGFueVxuKTogTWVzc2FnZSB7XG4gICAgY29uc3QgYWN0aW9uU3VjY2Vzc1RpdGxlID0gZ2V0STE4bkZvckFjdGlvbih0cmFuc2xhdGUsIGFjdGlvbiwgJ3N1Y2Nlc3MudGl0bGUnLCBjdXN0b21UaXRsZUtleSwgaXRlbSwgJ2dlbmVyYWwuc3VjY2VzcycsIGZ1bmN0aW9uTmFtZSkgPz8gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFjdGlvblN1Y2Nlc3NNZXNzYWdlID0gZ2V0STE4bkZvckFjdGlvbih0cmFuc2xhdGUsIGFjdGlvbiwgJ3N1Y2Nlc3MubWVzc2FnZScsIGN1c3RvbU1lc3NhZ2VLZXksIGl0ZW0sICdnZW5lcmFsLnN1Y2Nlc3NNZXNzYWdlJywgZnVuY3Rpb25OYW1lKSA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRvYXN0TWVzc2FnZShtZXNzYWdlU2VydmljZSwgYWN0aW9uU3VjY2Vzc1RpdGxlLCBhY3Rpb25TdWNjZXNzTWVzc2FnZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Ob3RpZmljYXRpb25FcnJvcihcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGVycm9yOiBJQ29tbW9uc0Vycm9yLFxuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBpdGVtPzogYW55LFxuICAgIHNldmVyaXR5OiAnd2FybicgfCAnZXJyb3InID0gJ2Vycm9yJ1xuKTogTWVzc2FnZSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICBlcnJvck1lc3NhZ2U6IGdldEkxOG5Gb3JFcnJvcih0cmFuc2xhdGUsIGVycm9yKSA/PyBlcnJvci5tZXNzYWdlXG4gICAgfTtcbiAgICBjb25zdCBhY3Rpb25FcnJvclRpdGxlID1cbiAgICAgICAgZ2V0STE4bkZvckFjdGlvbih0cmFuc2xhdGUsIGFjdGlvbiwgW2BlcnJvci4ke2Z1bmN0aW9uTmFtZX0udGl0bGVgLCAnZXJyb3IudGl0bGUnXSwgYWN0aW9uLnJ1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGUsIGl0ZW0sICdnZW5lcmFsLmVycm9yJywgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG4gICAgY29uc3QgYWN0aW9uRXJyb3JNZXNzYWdlID1cbiAgICAgICAgZ2V0STE4bkZvckFjdGlvbih0cmFuc2xhdGUsIGFjdGlvbiwgW2BlcnJvci4ke2Z1bmN0aW9uTmFtZX0ubWVzc2FnZWAsICdlcnJvci5tZXNzYWdlJ10sIGFjdGlvbi5ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2UsIGl0ZW0sICdnZW5lcmFsLmVycm9yTWVzc2FnZScsIHBhcmFtcykgPz9cbiAgICAgICAgdW5kZWZpbmVkO1xuICAgIHJldHVybiB0b2FzdE1lc3NhZ2UobWVzc2FnZVNlcnZpY2UsIGFjdGlvbkVycm9yVGl0bGUsIGFjdGlvbkVycm9yTWVzc2FnZSwgc2V2ZXJpdHksICdwaS1leGNsYW1hdGlvbi10cmlhbmdsZScpO1xufVxuIl19
@@ -29,4 +29,4 @@ export function getActionButtonRoundedWidth(action) {
29
29
  return Styles.BUTTON_ROUNDED_WIDTH;
30
30
  }
31
31
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9hY3Rpb24vaGVscGVycy9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQXNCLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBR3BGLE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxLQUFtQyxFQUFFLE9BQTZDO0lBQzlILE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2SSxNQUFNLFlBQVksR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxPQUFPLFlBQVksR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBbUM7SUFDcEUsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ2hCLEtBQUssYUFBYSxDQUFDLEtBQUs7WUFDcEIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUM7UUFDMUMsS0FBSyxhQUFhLENBQUMsS0FBSztZQUNwQixPQUFPLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztRQUMxQztZQUNJLE9BQU8sTUFBTSxDQUFDLG9CQUFvQixDQUFDO0tBQzFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxNQUFpQztJQUN6RSxRQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtRQUNuQyxLQUFLLGFBQWEsQ0FBQyxVQUFVO1lBQ3pCLE9BQU8sTUFBTSxDQUFDLHVCQUF1QixDQUFDO1FBQzFDLEtBQUssYUFBYSxDQUFDLEtBQUs7WUFDcEIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUM7UUFDMUMsS0FBSyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ3pCLEtBQUssYUFBYSxDQUFDLFVBQVU7WUFDekIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUM7UUFDMUMsS0FBSyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQzFCO1lBQ0ksT0FBTyxNQUFNLENBQUMsb0JBQW9CLENBQUM7S0FDMUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdHlsZVNpemVFbnVtLCBTdHlsZXN9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge1RhYmxlRGVzY3JpcHRvckluc3QsIFRhYmxlU2l6ZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUvYXBpJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvckluc3R9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVUYWJsZUNvbHVtbkFjdGlvbldpZHRoKHRhYmxlOiBUYWJsZURlc2NyaXB0b3JJbnN0PHVua25vd24+LCBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDx1bmtub3duPj4pOiBudW1iZXIge1xuICAgIGNvbnN0IGJ1dHRvbnNXaWR0aCA9IGFjdGlvbnMucmVkdWNlKChhY2MsIGFjdGlvbikgPT4gYWNjICsgZ2V0QWN0aW9uQnV0dG9uUm91bmRlZFdpZHRoKGFjdGlvbikgKyAyICogU3R5bGVzLkFDVElPTl9CVVRUT05fTUFSR0lOX1gsIDApO1xuICAgIGNvbnN0IHRhYmxlUGFkZGluZyA9IGdldFRhYmxlQ2VsbFBhZGRpbmdYKHRhYmxlKTtcbiAgICByZXR1cm4gYnV0dG9uc1dpZHRoICsgMiAqIHRhYmxlUGFkZGluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhYmxlQ2VsbFBhZGRpbmdYKHRhYmxlOiBUYWJsZURlc2NyaXB0b3JJbnN0PHVua25vd24+KTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRhYmxlLnNpemUpIHtcbiAgICAgICAgY2FzZSBUYWJsZVNpemVFbnVtLlNtYWxsOlxuICAgICAgICAgICAgcmV0dXJuIFN0eWxlcy5UQUJMRV9DRUxMX1BBRERJTkdfWF9TTTtcbiAgICAgICAgY2FzZSBUYWJsZVNpemVFbnVtLkxhcmdlOlxuICAgICAgICAgICAgcmV0dXJuIFN0eWxlcy5UQUJMRV9DRUxMX1BBRERJTkdfWF9MRztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHlsZXMuVEFCTEVfQ0VMTF9QQURESU5HX1g7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aW9uQnV0dG9uUm91bmRlZFdpZHRoKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55Pik6IG51bWJlciB7XG4gICAgc3dpdGNoIChhY3Rpb24uYnV0dG9uLnN0eWxlQ2xhc3Muc2l6ZSkge1xuICAgICAgICBjYXNlIFN0eWxlU2l6ZUVudW0uRXh0cmFTbWFsbDpcbiAgICAgICAgICAgIHJldHVybiBTdHlsZXMuQlVUVE9OX1JPVU5ERURfV0lEVEhfWFM7XG4gICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5TbWFsbDpcbiAgICAgICAgICAgIHJldHVybiBTdHlsZXMuQlVUVE9OX1JPVU5ERURfV0lEVEhfU007XG4gICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5MYXJnZTpcbiAgICAgICAgY2FzZSBTdHlsZVNpemVFbnVtLkV4dHJhTGFyZ2U6XG4gICAgICAgICAgICByZXR1cm4gU3R5bGVzLkJVVFRPTl9ST1VOREVEX1dJRFRIX0xHO1xuICAgICAgICBjYXNlIFN0eWxlU2l6ZUVudW0uTm9ybWFsOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFN0eWxlcy5CVVRUT05fUk9VTkRFRF9XSURUSDtcbiAgICB9XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9hY3Rpb24vaGVscGVycy9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQXNCLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBR3BGLE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxLQUFtQyxFQUFFLE9BQTZDO0lBQzlILE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2SSxNQUFNLFlBQVksR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxPQUFPLFlBQVksR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBbUM7SUFDcEUsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsS0FBSyxhQUFhLENBQUMsS0FBSztZQUNwQixPQUFPLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztRQUMxQyxLQUFLLGFBQWEsQ0FBQyxLQUFLO1lBQ3BCLE9BQU8sTUFBTSxDQUFDLHVCQUF1QixDQUFDO1FBQzFDO1lBQ0ksT0FBTyxNQUFNLENBQUMsb0JBQW9CLENBQUM7SUFDM0MsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsTUFBaUM7SUFDekUsUUFBUSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxLQUFLLGFBQWEsQ0FBQyxVQUFVO1lBQ3pCLE9BQU8sTUFBTSxDQUFDLHVCQUF1QixDQUFDO1FBQzFDLEtBQUssYUFBYSxDQUFDLEtBQUs7WUFDcEIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUM7UUFDMUMsS0FBSyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ3pCLEtBQUssYUFBYSxDQUFDLFVBQVU7WUFDekIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUM7UUFDMUMsS0FBSyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQzFCO1lBQ0ksT0FBTyxNQUFNLENBQUMsb0JBQW9CLENBQUM7SUFDM0MsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0eWxlU2l6ZUVudW0sIFN0eWxlc30gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VGFibGVEZXNjcmlwdG9ySW5zdCwgVGFibGVTaXplRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZS9hcGknO1xuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9ySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVRhYmxlQ29sdW1uQWN0aW9uV2lkdGgodGFibGU6IFRhYmxlRGVzY3JpcHRvckluc3Q8dW5rbm93bj4sIGFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PHVua25vd24+Pik6IG51bWJlciB7XG4gICAgY29uc3QgYnV0dG9uc1dpZHRoID0gYWN0aW9ucy5yZWR1Y2UoKGFjYywgYWN0aW9uKSA9PiBhY2MgKyBnZXRBY3Rpb25CdXR0b25Sb3VuZGVkV2lkdGgoYWN0aW9uKSArIDIgKiBTdHlsZXMuQUNUSU9OX0JVVFRPTl9NQVJHSU5fWCwgMCk7XG4gICAgY29uc3QgdGFibGVQYWRkaW5nID0gZ2V0VGFibGVDZWxsUGFkZGluZ1godGFibGUpO1xuICAgIHJldHVybiBidXR0b25zV2lkdGggKyAyICogdGFibGVQYWRkaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFibGVDZWxsUGFkZGluZ1godGFibGU6IFRhYmxlRGVzY3JpcHRvckluc3Q8dW5rbm93bj4pOiBudW1iZXIge1xuICAgIHN3aXRjaCAodGFibGUuc2l6ZSkge1xuICAgICAgICBjYXNlIFRhYmxlU2l6ZUVudW0uU21hbGw6XG4gICAgICAgICAgICByZXR1cm4gU3R5bGVzLlRBQkxFX0NFTExfUEFERElOR19YX1NNO1xuICAgICAgICBjYXNlIFRhYmxlU2l6ZUVudW0uTGFyZ2U6XG4gICAgICAgICAgICByZXR1cm4gU3R5bGVzLlRBQkxFX0NFTExfUEFERElOR19YX0xHO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFN0eWxlcy5UQUJMRV9DRUxMX1BBRERJTkdfWDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25CdXR0b25Sb3VuZGVkV2lkdGgoYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+KTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi5idXR0b24uc3R5bGVDbGFzcy5zaXplKSB7XG4gICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5FeHRyYVNtYWxsOlxuICAgICAgICAgICAgcmV0dXJuIFN0eWxlcy5CVVRUT05fUk9VTkRFRF9XSURUSF9YUztcbiAgICAgICAgY2FzZSBTdHlsZVNpemVFbnVtLlNtYWxsOlxuICAgICAgICAgICAgcmV0dXJuIFN0eWxlcy5CVVRUT05fUk9VTkRFRF9XSURUSF9TTTtcbiAgICAgICAgY2FzZSBTdHlsZVNpemVFbnVtLkxhcmdlOlxuICAgICAgICBjYXNlIFN0eWxlU2l6ZUVudW0uRXh0cmFMYXJnZTpcbiAgICAgICAgICAgIHJldHVybiBTdHlsZXMuQlVUVE9OX1JPVU5ERURfV0lEVEhfTEc7XG4gICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5Ob3JtYWw6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gU3R5bGVzLkJVVFRPTl9ST1VOREVEX1dJRFRIO1xuICAgIH1cbn1cbiJdfQ==
@@ -53,4 +53,4 @@ export class ActionContext {
53
53
  return this.executionSubject.isStopped && this.executionIsRunningSubject.isStopped && (this.runSubscription?.closed ?? true);
54
54
  }
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbnRleHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2FjdGlvbi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1jb250ZXh0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFnQixvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4RixPQUFPLEVBQWlELGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBTTFHOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFRdEIsWUFDb0IsUUFBa0IsRUFDbEIsUUFBdUMsRUFDdkMsVUFBa0MsRUFDbEMsWUFBd0MsRUFDeEMsZUFBd0IsRUFDeEIsWUFBMkMsRUFDM0MsYUFBNEMsRUFDM0MsbUJBQW1CLElBQUksYUFBYSxDQUEwQixDQUFDLENBQUMsRUFDaEUsNEJBQTRCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQztRQVJ2RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQStCO1FBQ3ZDLGVBQVUsR0FBVixVQUFVLENBQXdCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUE0QjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBUztRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBK0I7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQStCO1FBQzNDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0Q7UUFDaEUsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUE2QjtRQWhCMUQsV0FBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFrQmxFLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9FLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsZUFBZSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUE2QixFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDLGVBQWUseUJBQXlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTFGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsZUFBZSx1QkFBdUIsQ0FBQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxjQUFjLENBQUMsR0FBa0I7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsZUFBZSxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU07UUFDVCxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVNLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ2pJLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0NvbmZpcm1hdGlvbiwgTWVzc2FnZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0FjdGlvblBhcmFtZXRlcnMsIElDb21tb25zRXJyb3IsIElEYXRhUHJvdmlkZXIsIExvZ2dlclNlcnZpY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0lBY3Rpb25Db250ZXh0LCBJQWN0aW9uSW5zdGFuY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbmltcG9ydCB7Vmlld0NvbnRhaW5lcn0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmlldy1jb250YWluZXIuc2VydmljZSc7XG5pbXBvcnQge0FjdGlvbkluc3RhbmNlfSBmcm9tICcuL2FjdGlvbi1pbnN0YW5jZS5tb2RlbCc7XG5cbi8qKlxuICogQ2xhc3MgY29udGFpbmluZyBhbGwgbWFpbiBkYXRhIGZvciBhY3Rpb24gdG8gYmUgZXhlY3V0ZWQgaW4gcnVuL2ZldGNoL3N1Ym1pdCBzdGF0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2UgPSB1bmRlZmluZWQ+IGltcGxlbWVudHMgSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZSwgQWN0aW9uSW5zdGFuY2U8SXRlbSwgU2VydmljZT4sIFZpZXdDb250YWluZXI8SXRlbSwgU2VydmljZT4+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlclNlcnZpY2UuZ2V0KCkuY3JlYXRlKCdBY3Rpb25Db250ZXh0Jyk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbnRleHRMb25nTmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBwcmV2aW91c0FjdGlvbkluc3RhbmNlPzogSUFjdGlvbkluc3RhbmNlPGFueSwgYW55PjtcbiAgICBwdWJsaWMgY29uZmlybWF0aW9uPzogQ29uZmlybWF0aW9uO1xuICAgIHB1YmxpYyBub3RpZmljYXRpb24/OiBNZXNzYWdlO1xuICAgIHB1YmxpYyBydW5TdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlOiBBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IEFjdGlvblBhcmFtZXRlcnM8SXRlbT4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbk5hbWU6ICdydW4nIHwgJ2ZldGNoJyB8ICdzdWJtaXQnLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZUluc3RhbmNlOiBTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHZpZXdDb250YWluZXI/OiBWaWV3Q29udGFpbmVyPEl0ZW0sIFNlcnZpY2U+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxJdGVtIHwgbnVsbCB8IHVuZGVmaW5lZD4oMSksXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29udGV4dExvbmdOYW1lID0gYCR7dGhpcy5pbnN0YW5jZS5pbnN0YW5jZUxvbmdOYW1lfV8ke2Z1bmN0aW9uTmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXhlY3V0aW9uJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV4ZWN1dGlvbklzUnVubmluZyQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0aW9uU3RhcnQoKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBDb250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIHN0YXJ0YCk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleGVjdXRpb25OZXh0KG5leHQ6IEl0ZW0gfCBudWxsIHwgdW5kZWZpbmVkLCBmaW5pc2ggPSB0cnVlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBDb250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIG5leHQgZXZlbnRgLCBuZXh0LCBmaW5pc2gpO1xuXG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5uZXh0KG5leHQpO1xuICAgICAgICBpZiAoZmluaXNoKSB7XG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGlvbkNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0aW9uQ29tcGxldGUoKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBDb250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIGNvbXBsZXRlYCk7XG5cbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0aW9uRXJyb3IoZXJyOiBJQ29tbW9uc0Vycm9yKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBDb250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIGVycm9yYCwgZXJyKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0LmVycm9yKGVycik7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmluaXNoKCkge1xuICAgICAgICB0aGlzLnJ1blN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0Nsb3NlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5pc1N0b3BwZWQgJiYgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0LmlzU3RvcHBlZCAmJiAodGhpcy5ydW5TdWJzY3JpcHRpb24/LmNsb3NlZCA/PyB0cnVlKTtcbiAgICB9XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbnRleHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2FjdGlvbi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1jb250ZXh0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFnQixvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4RixPQUFPLEVBQWlELGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBTTFHOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFRdEIsWUFDb0IsUUFBa0IsRUFDbEIsUUFBdUMsRUFDdkMsVUFBa0MsRUFDbEMsWUFBd0MsRUFDeEMsZUFBd0IsRUFDeEIsWUFBMkMsRUFDM0MsYUFBNEMsRUFDM0MsbUJBQW1CLElBQUksYUFBYSxDQUEwQixDQUFDLENBQUMsRUFDaEUsNEJBQTRCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQztRQVJ2RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQStCO1FBQ3ZDLGVBQVUsR0FBVixVQUFVLENBQXdCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUE0QjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBUztRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBK0I7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQStCO1FBQzNDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0Q7UUFDaEUsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUE2QjtRQWhCMUQsV0FBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFrQmxFLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9FLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsZUFBZSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUE2QixFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDLGVBQWUseUJBQXlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTFGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDLGVBQWUsdUJBQXVCLENBQUMsQ0FBQztRQUUxRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sY0FBYyxDQUFDLEdBQWtCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDLGVBQWUsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNqSSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtDb25maXJtYXRpb24sIE1lc3NhZ2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBY3Rpb25QYXJhbWV0ZXJzLCBJQ29tbW9uc0Vycm9yLCBJRGF0YVByb3ZpZGVyLCBMb2dnZXJTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtJQWN0aW9uQ29udGV4dCwgSUFjdGlvbkluc3RhbmNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge1ZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXctY29udGFpbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHtBY3Rpb25JbnN0YW5jZX0gZnJvbSAnLi9hY3Rpb24taW5zdGFuY2UubW9kZWwnO1xuXG4vKipcbiAqIENsYXNzIGNvbnRhaW5pbmcgYWxsIG1haW4gZGF0YSBmb3IgYWN0aW9uIHRvIGJlIGV4ZWN1dGVkIGluIHJ1bi9mZXRjaC9zdWJtaXQgc3RhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlID0gdW5kZWZpbmVkPiBpbXBsZW1lbnRzIElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2UsIEFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+LCBWaWV3Q29udGFpbmVyPEl0ZW0sIFNlcnZpY2U+PiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJTZXJ2aWNlLmdldCgpLmNyZWF0ZSgnQWN0aW9uQ29udGV4dCcpO1xuICAgIHB1YmxpYyByZWFkb25seSBjb250ZXh0TG9uZ05hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgcHJldmlvdXNBY3Rpb25JbnN0YW5jZT86IElBY3Rpb25JbnN0YW5jZTxhbnksIGFueT47XG4gICAgcHVibGljIGNvbmZpcm1hdGlvbj86IENvbmZpcm1hdGlvbjtcbiAgICBwdWJsaWMgbm90aWZpY2F0aW9uPzogTWVzc2FnZTtcbiAgICBwdWJsaWMgcnVuU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZTogQWN0aW9uSW5zdGFuY2U8SXRlbSwgU2VydmljZT4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBBY3Rpb25QYXJhbWV0ZXJzPEl0ZW0+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiAncnVuJyB8ICdmZXRjaCcgfCAnc3VibWl0JyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2VJbnN0YW5jZTogU2VydmljZSxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGRhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZT4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB2aWV3Q29udGFpbmVyPzogVmlld0NvbnRhaW5lcjxJdGVtLCBTZXJ2aWNlPixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8SXRlbSB8IG51bGwgfCB1bmRlZmluZWQ+KDEpLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICAgICkge1xuICAgICAgICB0aGlzLmNvbnRleHRMb25nTmFtZSA9IGAke3RoaXMuaW5zdGFuY2UuaW5zdGFuY2VMb25nTmFtZX1fJHtmdW5jdGlvbk5hbWV9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV4ZWN1dGlvbiQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleGVjdXRpb25Jc1J1bm5pbmckKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4ZWN1dGlvblN0YXJ0KCkge1xuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgQ29udGV4dCAke3RoaXMuY29udGV4dExvbmdOYW1lfSAtIGV4ZWN1dGlvbiBzdGFydGApO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0aW9uTmV4dChuZXh0OiBJdGVtIHwgbnVsbCB8IHVuZGVmaW5lZCwgZmluaXNoID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgQ29udGV4dCAke3RoaXMuY29udGV4dExvbmdOYW1lfSAtIGV4ZWN1dGlvbiBuZXh0IGV2ZW50YCwgbmV4dCwgZmluaXNoKTtcblxuICAgICAgICB0aGlzLmV4ZWN1dGlvblN1YmplY3QubmV4dChuZXh0KTtcbiAgICAgICAgaWYgKGZpbmlzaCkge1xuICAgICAgICAgICAgdGhpcy5leGVjdXRpb25Db21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGV4ZWN1dGlvbkNvbXBsZXRlKCkge1xuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgQ29udGV4dCAke3RoaXMuY29udGV4dExvbmdOYW1lfSAtIGV4ZWN1dGlvbiBjb21wbGV0ZWApO1xuXG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4ZWN1dGlvbkVycm9yKGVycjogSUNvbW1vbnNFcnJvcikge1xuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgQ29udGV4dCAke3RoaXMuY29udGV4dExvbmdOYW1lfSAtIGV4ZWN1dGlvbiBlcnJvcmAsIGVycik7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5lcnJvcihlcnIpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbmlzaCgpIHtcbiAgICAgICAgdGhpcy5ydW5TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDbG9zZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvblN1YmplY3QuaXNTdG9wcGVkICYmIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5pc1N0b3BwZWQgJiYgKHRoaXMucnVuU3Vic2NyaXB0aW9uPy5jbG9zZWQgPz8gdHJ1ZSk7XG4gICAgfVxufVxuIl19
@@ -167,4 +167,4 @@ export class ActionInstance {
167
167
  this.contexts.every(c => c.isClosed()));
168
168
  }
169
169
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWluc3RhbmNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9hY3Rpb24vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24taW5zdGFuY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFnQixvQkFBb0IsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbkgsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQW1CLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVFLE9BQU8sRUFDSCwyQkFBMkIsRUFHM0IsY0FBYyxFQUdqQixNQUFNLHNDQUFzQyxDQUFDO0FBRzlDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRXRFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFvQ3ZCLFlBQVksTUFBa0MsRUFBRSxLQUFLLEdBQUcsdUJBQXVCLENBQUMsWUFBWTtRQWhDNUUsZ0JBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFdkUscUJBQXFCO1FBQ0wsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFLaEQsYUFBUSxHQUF3QyxFQUFFLENBQUM7UUFDbkQscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFDMUQsOEJBQXlCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBMEIsQ0FBQyxDQUFDLENBQUM7UUFDL0Qsa0JBQWEsR0FBRyxJQUFJLGFBQWEs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aWNkaWFsb2cnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2V9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0FjdGlvblBhcmFtZXRlcnMsIExvZ2dlclNlcnZpY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge1xuICAgIEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bSxcbiAgICBBY3Rpb25EZXNjcmlwdG9ySW5zdCxcbiAgICBBY3Rpb25FeGVjdXRpb25FcnJvcixcbiAgICBBY3Rpb25UeXBlRW51bSxcbiAgICBJQWN0aW9uRWRpdG9yQ29tcG9uZW50LFxuICAgIElBY3Rpb25JbnN0YW5jZVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge0FjdGlvbkNvbnRleHR9IGZyb20gJy4vYWN0aW9uLWNvbnRleHQubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25JbnN0YW5jZVN0YXRlRW51bX0gZnJvbSAnLi9hY3Rpb24taW5zdGFuY2Utc3RhdGUubW9kZWwnO1xuXG4vKipcbiAqIEFjdGlvbiBleGVjdXRpb24gaW5zdGFuY2UgY29udGFpbmluZyBkYXRhIGFib3V0IGV4ZWN1dGlvbiBzdGF0ZSBvZiBhY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2UgPSB1bmRlZmluZWQ+IGltcGxlbWVudHMgSUFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZUxvbmdOYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT47XG4gICAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlclNlcnZpY2UuZ2V0KCkuY3JlYXRlKCdBY3Rpb25JbnN0YW5jZScpO1xuXG4gICAgLy8gZnVuY3Rpb24gZXhlY3V0aW9uXG4gICAgcHVibGljIHJlYWRvbmx5IGlzUnVuTG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8vIHBhcmFtZXRlcnMsIGNvbnRleHRzLCBzdGF0ZXNcbiAgICBwdWJsaWMgdHJpZ2dlclBhcmFtZXRlcnM/OiBBY3Rpb25QYXJhbWV0ZXJzPEl0ZW0+O1xuICAgIHB1YmxpYyBhY3RpdmF0aW9uUGFyYW1ldGVycz86IEFjdGlvblBhcmFtZXRlcnM8SXRlbT47XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0czogQXJyYXk8QWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPj4gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblN1YmplY3QgPSBuZXcgU3ViamVjdDxJdGVtIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0+KDEpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdWx0U3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PEl0ZW0gfCBudWxsPigxKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PEFjdGlvbkV4ZWN1dGlvbkVycm9yPigxKTtcblxuICAgIHByaXZhdGUgY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICAgIC8vIHJlc3VsdCBvciBlcnJvclxuICAgIHByaXZhdGUgX3Jlc3VsdD86IEl0ZW0gfCBudWxsO1xuICAgIHByaXZhdGUgX2Vycm9yPzogQWN0aW9uRXhlY3V0aW9uRXJyb3I7XG5cbiAgICAvLyBhZGRpdGlvbmFsIGRhdGEgZnJvbSB0cmlnZ2VyL2FjdGl2YXRpb25cbiAgICBwdWJsaWMgYWN0aXZhdGlvbkRpYWxvZ1JlZj86IER5bmFtaWNEaWFsb2dSZWY7XG4gICAgcHVibGljIGFjdGl2YXRpb25FZGl0b3JDb21wb25lbnRSZWY/OiBJQWN0aW9uRWRpdG9yQ29tcG9uZW50O1xuXG4gICAgLy8gbGlua2VkIGFjdGlvbnNcbiAgICBwcml2YXRlIF9yZWFjdGl2YXRpb25JbnN0YW5jZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTsgLy8gZWRpdG9yIGFjdGlvbiB3aXRoIHJlc3VibWl0IGVuYWJsZWRcbiAgICBwdWJsaWMgcHJldmlvdXNJbnN0YW5jZT86IElBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPjtcbiAgICBwdWJsaWMgbmV4dEFjdGlvbkluc3RhbmNlPzogSUFjdGlvbkluc3RhbmNlPGFueSwgYW55PjsgLy8gYXMgZGVmaW5lZCBpbiBhY3Rpb24gZGVzY3JpcHRvclxuICAgIHB1YmxpYyBlcnJvckFjdGlvbkluc3RhbmNlPzogSUFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+OyAvLyBlcnJvciBhY3Rpb24gbXVzdCByZWx5IG9uIHNhbWUgdHlwZSwgYXMgZGVmaW5lZCBpbiBhY3Rpb24gZGVzY3JpcHRvclxuXG4gICAgY29uc3RydWN0b3IoYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPiwgc3RhdGUgPSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5UcmlnZ2VyU3RhcnQpIHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZUlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuICAgICAgICB0aGlzLmluc3RhbmNlTG9uZ05hbWUgPSBgJHthY3Rpb24uYWN0aW9uTmFtZUxvbmd9XyR7dGhpcy5pbnN0YW5jZUlkfWA7XG4gICAgICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1J1bkxvYWRpbmckKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1J1bkxvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dHMubGVuZ3RoID09PSAwID8gdW5kZWZpbmVkIDogdGhpcy5jb250ZXh0c1t0aGlzLmNvbnRleHRzLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXhlY3V0aW9uJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV4ZWN1dGlvbklzUnVubmluZyQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVN1YmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzdGF0ZShzdGF0ZTogQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0pIHtcbiAgICAgICAgaWYgKHN0YXRlID4gdGhpcy5zdGF0ZVN1YmplY3QudmFsdWUgfHwgKHRoaXMuc3RhdGVTdWJqZWN0LnZhbHVlID09PSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5SdW5FcnJvciAmJiBzdGF0ZSA9PT0gQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uUnVuU3RhcnQpKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgSW5zdGFuY2UgJHt0aGlzLmluc3RhbmNlTG9uZ05hbWV9IC0gc3RhdGUgIyR7c3RhdGV9OiAke0FjdGlvbkluc3RhbmNlU3RhdGVFbnVtW3N0YXRlXX1gKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoU3VjY2Vzc0ZpbmFsOlxuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoRXJyb3JGaW5hbDpcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaERpc21pc3NlZEZpbmFsOlxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3Rpb24uYWN0aXZhdGlvblRyaWdnZXIgPT09IEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bS5PbkNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoU3VjY2Vzc1JlYWN0aXZhdGVGaW5hbDpcbiAgICAgICAgICAgICAgICAgICAgLy8gcGFydGlhbGx5IGZpbmlzaCByZWFjdGl2YXRpb24gYmVjYXVzZSBuZXcgaW5zdGFuY2UgZXZlbnQgbXVzdCBzdGlsbCBiZSBlbWl0dGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlRW51bS5FZGl0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoQ29tcG9uZW50RGVzdHJveUZpbmFsOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaFJvdXRlVW50cmlnZ2VyRW5kRmluYWw6XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5GaW5pc2hSb3V0ZVVudHJpZ2dlclRpbWVvdXRGaW5hbDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmFjdGl2YXRpb25UcmlnZ2VyID09PSBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0uT25Sb3V0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3RhdGUkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJlc3VsdChyZXN1bHQ6IEl0ZW0gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYEluc3RhbmNlICR7dGhpcy5pbnN0YW5jZUxvbmdOYW1lfSAtIHJlc3VsdGAsIHJlc3VsdCk7XG5cbiAgICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLnJlc3VsdFN1YmplY3QubmV4dChyZXN1bHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVzdWx0JCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzdWx0U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVycm9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3I7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBlcnJvcihlcnJvcjogQWN0aW9uRXhlY3V0aW9uRXJyb3IgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBJbnN0YW5jZSAke3RoaXMuaW5zdGFuY2VMb25nTmFtZX0gLSBlcnJvcmAsIGVycm9yKTtcblxuICAgICAgICB0aGlzLl9lcnJvciA9IGVycm9yO1xuICAgICAgICB0aGlzLmVycm9yU3ViamVjdC5uZXh0KGVycm9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVycm9yJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcmVhY3RpdmF0aW9uSW5zdGFuY2UoaW5zdGFuY2U6IElBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPiB8IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyB0aGlzIGlzIGFsbG93ZWQgdG8gb25seSBiZSBleGVjdXRlZCBvbmNlIGZvciBzdWJqZWN0IGFuZCBtdXN0IGJlIGluIGNvcnJlY3Qgc3RhdHVzIVxuICAgICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoU3VjY2Vzc1JlYWN0aXZhdGVGaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlYWN0aXZhdGlvbkluc3RhbmNlU3ViamVjdC5uZXh0KGluc3RhbmNlKTtcbiAgICAgICAgdGhpcy5fcmVhY3RpdmF0aW9uSW5zdGFuY2VTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZWFjdGl2YXRpb25JbnN0YW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWN0aXZhdGlvbkluc3RhbmNlU3ViamVjdC52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlYWN0aXZhdGlvbkluc3RhbmNlJCgpOiBPYnNlcnZhYmxlPElBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhY3RpdmF0aW9uSW5zdGFuY2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoaSA9PiAhIWkpLCAvLyBpZ25vcmUgdW5kZWZpbmVkIGV2ZW50cyAodXN1YWxseSBpbml0aWFsKVxuICAgICAgICAgICAgbWFwKGkgPT4gaSEpLFxuICAgICAgICAgICAgdGFrZSgxKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250ZXh0QXQoaWR4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGlkeCA8IHRoaXMuY29udGV4dHMubGVuZ3RoID8gdGhpcy5jb250ZXh0c1tpZHhdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwdWJsaWMgbmV3Q29udGV4dChjb250ZXh0OiBBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+LCBmaW5pc2hQcmV2aW91cyA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYEluc3RhbmNlICR7dGhpcy5pbnN0YW5jZUxvbmdOYW1lfSAtIG5ldyBjb250ZXh0ICR7Y29udGV4dC5jb250ZXh0TG9uZ05hbWV9YCk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudENvbnRleHQgPSB0aGlzLmNvbnRleHQ7XG4gICAgICAgIGlmIChjdXJyZW50Q29udGV4dCkge1xuICAgICAgICAgICAgY3VycmVudENvbnRleHQuZXhlY3V0aW9uQ29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLmNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zID0gW107XG4gICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIGNvbnRleHQuZXhlY3V0aW9uJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IG5leHQgPT4gdGhpcy5leGVjdXRpb25TdWJqZWN0Lm5leHQobmV4dCksXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yID0+IHRoaXMuZXhlY3V0aW9uU3ViamVjdC5lcnJvcihlcnJvcilcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIGNvbnRleHQuZXhlY3V0aW9uSXNSdW5uaW5nJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IG5leHQgPT4gdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0Lm5leHQobmV4dClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9yY2VGaW5pc2goKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEZvcmNlIGZpbmlzaGluZyBpbnN0YW5jZSAnJHt0aGlzLmluc3RhbmNlTG9uZ05hbWV9Jy4gVHJ5IGNvbXBsZXRpbmcgaW5zdGFuY2Ugd2l0aCBzdGF0ZXMgaW5zdGVhZC5gKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaERpc21pc3NlZEZpbmFsO1xuICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluaXNoKHJlYWN0aXZhdGUgPSBmYWxzZSkge1xuICAgICAgICAvLyBjb21wbGV0ZSBhbGwgc3ViamVjdHNcbiAgICAgICAgdGhpcy5jb250ZXh0cy5mb3JFYWNoKGMgPT4gYy5maW5pc2goKSk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5yZXN1bHRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZXJyb3JTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIGlmICghcmVhY3RpdmF0ZSkge1xuICAgICAgICAgICAgLy8gYWxsb3cgcmVhY3RpdmF0aW9uIGluc3RhbmNlIHRvIGJlIGVtaXR0ZWQgc2VwYXJhdGVseVxuICAgICAgICAgICAgdGhpcy5fcmVhY3RpdmF0aW9uSW5zdGFuY2VTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDbG9zZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGlvblN1YmplY3QuaXNTdG9wcGVkICYmXG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuaXNTdG9wcGVkICYmXG4gICAgICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5pc1N0b3BwZWQgJiZcbiAgICAgICAgICAgIHRoaXMucmVzdWx0U3ViamVjdC5pc1N0b3BwZWQgJiZcbiAgICAgICAgICAgIHRoaXMuZXJyb3JTdWJqZWN0LmlzU3RvcHBlZCAmJlxuICAgICAgICAgICAgdGhpcy5fcmVhY3RpdmF0aW9uSW5zdGFuY2VTdWJqZWN0LmlzU3RvcHBlZCAmJlxuICAgICAgICAgICAgdGhpcy5jb250ZXh0RXhlY3V0aW9uU3Vic2NyaXB0aW9ucy5ldmVyeShzID0+IHMuY2xvc2VkKSAmJlxuICAgICAgICAgICAgdGhpcy5jb250ZXh0cy5ldmVyeShjID0+IGMuaXNDbG9zZWQoKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWluc3RhbmNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9hY3Rpb24vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24taW5zdGFuY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFnQixvQkFBb0IsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbkgsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQW1CLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVFLE9BQU8sRUFDSCwyQkFBMkIsRUFHM0IsY0FBYyxFQUdqQixNQUFNLHNDQUFzQyxDQUFDO0FBRzlDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRXRFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFxQ3ZCLFlBQVksTUFBa0MsRUFBRSxLQUFLLEdBQUcsdUJBQXVCLENBQUMsWUFBWTtRQWpDNUUsZ0JBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFdkUscUJBQXFCO1FBQ0wsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFLaEQsYUFBUSxHQUF3QyxFQUFFLENBQUM7UUFDbkQscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFDMUQsOEJBQXlCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBMEIsQ0FBQyxDQUFDLENBQUM7UUFDL0Qsa0JBQWEsR0FBRyxJQUFJLGFBQWEs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QUFFLENBQUMsQ0FDekMsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHluYW1pY0RpYWxvZ1JlZn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBY3Rpb25QYXJhbWV0ZXJzLCBMb2dnZXJTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0sXG4gICAgQWN0aW9uRGVzY3JpcHRvckluc3QsXG4gICAgQWN0aW9uRXhlY3V0aW9uRXJyb3IsXG4gICAgQWN0aW9uVHlwZUVudW0sXG4gICAgSUFjdGlvbkVkaXRvckNvbXBvbmVudCxcbiAgICBJQWN0aW9uSW5zdGFuY2Vcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtBY3Rpb25Db250ZXh0fSBmcm9tICcuL2FjdGlvbi1jb250ZXh0Lm1vZGVsJztcbmltcG9ydCB7QWN0aW9uSW5zdGFuY2VTdGF0ZUVudW19IGZyb20gJy4vYWN0aW9uLWluc3RhbmNlLXN0YXRlLm1vZGVsJztcblxuLyoqXG4gKiBBY3Rpb24gZXhlY3V0aW9uIGluc3RhbmNlIGNvbnRhaW5pbmcgZGF0YSBhYm91dCBleGVjdXRpb24gc3RhdGUgb2YgYWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlID0gdW5kZWZpbmVkPiBpbXBsZW1lbnRzIElBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPiB7XG4gICAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VMb25nTmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+O1xuICAgIHB1YmxpYyByZWFkb25seSBjcmVhdGVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJTZXJ2aWNlLmdldCgpLmNyZWF0ZSgnQWN0aW9uSW5zdGFuY2UnKTtcblxuICAgIC8vIGZ1bmN0aW9uIGV4ZWN1dGlvblxuICAgIHB1YmxpYyByZWFkb25seSBpc1J1bkxvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvLyBwYXJhbWV0ZXJzLCBjb250ZXh0cywgc3RhdGVzXG4gICAgcHVibGljIHRyaWdnZXJQYXJhbWV0ZXJzPzogQWN0aW9uUGFyYW1ldGVyczxJdGVtPjtcbiAgICBwdWJsaWMgYWN0aXZhdGlvblBhcmFtZXRlcnM/OiBBY3Rpb25QYXJhbWV0ZXJzPEl0ZW0+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dHM6IEFycmF5PEFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4+ID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRpb25TdWJqZWN0ID0gbmV3IFN1YmplY3Q8SXRlbSB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtPigxKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3VsdFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxJdGVtIHwgbnVsbD4oMSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvclN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxBY3Rpb25FeGVjdXRpb25FcnJvcj4oMSk7XG5cbiAgICBwcml2YXRlIGNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICAvLyByZXN1bHQgb3IgZXJyb3JcbiAgICBwcml2YXRlIF9yZXN1bHQ/OiBJdGVtIHwgbnVsbDtcbiAgICBwcml2YXRlIF9lcnJvcj86IEFjdGlvbkV4ZWN1dGlvbkVycm9yO1xuXG4gICAgLy8gYWRkaXRpb25hbCBkYXRhIGZyb20gdHJpZ2dlci9hY3RpdmF0aW9uXG4gICAgcHVibGljIGFjdGl2YXRpb25EaWFsb2dSZWY/OiBEeW5hbWljRGlhbG9nUmVmO1xuICAgIHB1YmxpYyBhY3RpdmF0aW9uRWRpdG9yQ29tcG9uZW50UmVmPzogSUFjdGlvbkVkaXRvckNvbXBvbmVudDtcblxuICAgIC8vIGxpbmtlZCBhY3Rpb25zXG4gICAgcHJpdmF0ZSBfcmVhY3RpdmF0aW9uSW5zdGFuY2VTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQWN0aW9uSW5zdGFuY2U8SXRlbSwgU2VydmljZT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7IC8vIGVkaXRvciBhY3Rpb24gd2l0aCByZXN1Ym1pdCBlbmFibGVkXG4gICAgcHVibGljIHJlYWN0aXZhdGlvblByZXZpb3VzSW5zdGFuY2U/OiBJQWN0aW9uSW5zdGFuY2U8SXRlbSwgU2VydmljZT47IC8vIHVzZWQgd2hlbiBsaW5raW5nIHRvIHByZXZpb3VzIGluc3RhbmNlIGluIGNhc2Ugb2YgYWN0aW9uIHJlYWN0aXZhdGlvbiAod2l0aGluIHNhbWUgZWRpdG9yKVxuICAgIHB1YmxpYyBwcmV2aW91c0luc3RhbmNlPzogSUFjdGlvbkluc3RhbmNlPGFueSwgYW55PjsgLy8gbGlua2luZyB0byBwcmV2aW91cyBhY3Rpb24gd2hlbiB1c2luZyBuZXh0IGFjdGlvbiBmZWF0dXJlXG4gICAgcHVibGljIG5leHRBY3Rpb25JbnN0YW5jZT86IElBY3Rpb25JbnN0YW5jZTxhbnksIGFueT47IC8vIGFzIGRlZmluZWQgaW4gYWN0aW9uIGRlc2NyaXB0b3JcbiAgICBwdWJsaWMgZXJyb3JBY3Rpb25JbnN0YW5jZT86IElBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPjsgLy8gZXJyb3IgYWN0aW9uIG11c3QgcmVseSBvbiBzYW1lIHR5cGUsIGFzIGRlZmluZWQgaW4gYWN0aW9uIGRlc2NyaXB0b3JcblxuICAgIGNvbnN0cnVjdG9yKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT4sIHN0YXRlID0gQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uVHJpZ2dlclN0YXJ0KSB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VJZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZUxvbmdOYW1lID0gYCR7YWN0aW9uLmFjdGlvbk5hbWVMb25nfV8ke3RoaXMuaW5zdGFuY2VJZH1gO1xuICAgICAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNSdW5Mb2FkaW5nJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSdW5Mb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHRzLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IHRoaXMuY29udGV4dHNbdGhpcy5jb250ZXh0cy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV4ZWN1dGlvbiQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleGVjdXRpb25Jc1J1bm5pbmckKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqZWN0LnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgc3RhdGUoc3RhdGU6IEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtKSB7XG4gICAgICAgIGlmIChzdGF0ZSA+IHRoaXMuc3RhdGVTdWJqZWN0LnZhbHVlIHx8ICh0aGlzLnN0YXRlU3ViamVjdC52YWx1ZSA9PT0gQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uUnVuRXJyb3IgJiYgc3RhdGUgPT09IEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLlJ1blN0YXJ0KSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYEluc3RhbmNlICR7dGhpcy5pbnN0YW5jZUxvbmdOYW1lfSAtIHN0YXRlICMke3N0YXRlfTogJHtBY3Rpb25JbnN0YW5jZVN0YXRlRW51bVtzdGF0ZV19YCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaFN1Y2Nlc3NGaW5hbDpcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaEVycm9yRmluYWw6XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5GaW5pc2hEaXNtaXNzZWRGaW5hbDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmFjdGl2YXRpb25UcmlnZ2VyID09PSBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0uT25DbGljaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaFN1Y2Nlc3NSZWFjdGl2YXRlRmluYWw6XG4gICAgICAgICAgICAgICAgICAgIC8vIHBhcnRpYWxseSBmaW5pc2ggcmVhY3RpdmF0aW9uIGJlY2F1c2UgbmV3IGluc3RhbmNlIGV2ZW50IG11c3Qgc3RpbGwgYmUgZW1pdHRlZFxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZUVudW0uRWRpdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmlzaCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaENvbXBvbmVudERlc3Ryb3lGaW5hbDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5GaW5pc2hSb3V0ZVVudHJpZ2dlckVuZEZpbmFsOlxuICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoUm91dGVVbnRyaWdnZXJUaW1lb3V0RmluYWw6XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbi5hY3RpdmF0aW9uVHJpZ2dlciA9PT0gQWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtLk9uUm91dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN0YXRlJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1bHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByZXN1bHQocmVzdWx0OiBJdGVtIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBJbnN0YW5jZSAke3RoaXMuaW5zdGFuY2VMb25nTmFtZX0gLSByZXN1bHRgLCByZXN1bHQpO1xuXG4gICAgICAgIHRoaXMuX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5yZXN1bHRTdWJqZWN0Lm5leHQocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc3VsdCQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3VsdFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZXJyb3IoZXJyb3I6IEFjdGlvbkV4ZWN1dGlvbkVycm9yIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgSW5zdGFuY2UgJHt0aGlzLmluc3RhbmNlTG9uZ05hbWV9IC0gZXJyb3JgLCBlcnJvcik7XG5cbiAgICAgICAgdGhpcy5fZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvclN1YmplY3QubmV4dChlcnJvcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlcnJvciQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJlYWN0aXZhdGlvbkluc3RhbmNlKGluc3RhbmNlOiBJQWN0aW9uSW5zdGFuY2U8SXRlbSwgU2VydmljZT4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gdGhpcyBpcyBhbGxvd2VkIHRvIG9ubHkgYmUgZXhlY3V0ZWQgb25jZSBmb3Igc3ViamVjdCBhbmQgbXVzdCBiZSBpbiBjb3JyZWN0IHN0YXR1cyFcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaFN1Y2Nlc3NSZWFjdGl2YXRlRmluYWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZWFjdGl2YXRpb25JbnN0YW5jZVN1YmplY3QubmV4dChpbnN0YW5jZSk7XG4gICAgICAgIHRoaXMuX3JlYWN0aXZhdGlvbkluc3RhbmNlU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVhY3RpdmF0aW9uSW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFjdGl2YXRpb25JbnN0YW5jZVN1YmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZWFjdGl2YXRpb25JbnN0YW5jZSQoKTogT2JzZXJ2YWJsZTxJQWN0aW9uSW5zdGFuY2U8SXRlbSwgU2VydmljZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWN0aXZhdGlvbkluc3RhbmNlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGkgPT4gISFpKSwgLy8gaWdub3JlIHVuZGVmaW5lZCBldmVudHMgKHVzdWFsbHkgaW5pdGlhbClcbiAgICAgICAgICAgIG1hcChpID0+IGkhKSxcbiAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udGV4dEF0KGlkeDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBpZHggPCB0aGlzLmNvbnRleHRzLmxlbmd0aCA/IHRoaXMuY29udGV4dHNbaWR4XSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHVibGljIG5ld0NvbnRleHQoY29udGV4dDogQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPiwgZmluaXNoUHJldmlvdXMgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBJbnN0YW5jZSAke3RoaXMuaW5zdGFuY2VMb25nTmFtZX0gLSBuZXcgY29udGV4dCAke2NvbnRleHQuY29udGV4dExvbmdOYW1lfWApO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gdGhpcy5jb250ZXh0O1xuICAgICAgICBpZiAoY3VycmVudENvbnRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnRDb250ZXh0LmV4ZWN1dGlvbkNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0RXhlY3V0aW9uU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5jb250ZXh0RXhlY3V0aW9uU3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICBjb250ZXh0LmV4ZWN1dGlvbiQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBuZXh0ID0+IHRoaXMuZXhlY3V0aW9uU3ViamVjdC5uZXh0KG5leHQpLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvciA9PiB0aGlzLmV4ZWN1dGlvblN1YmplY3QuZXJyb3IoZXJyb3IpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICBjb250ZXh0LmV4ZWN1dGlvbklzUnVubmluZyQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBuZXh0ID0+IHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5uZXh0KG5leHQpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvcmNlRmluaXNoKCkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBGb3JjZSBmaW5pc2hpbmcgaW5zdGFuY2UgJyR7dGhpcy5pbnN0YW5jZUxvbmdOYW1lfScuIFRyeSBjb21wbGV0aW5nIGluc3RhbmNlIHdpdGggc3RhdGVzIGluc3RlYWQuYCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5GaW5pc2hEaXNtaXNzZWRGaW5hbDtcbiAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmlzaChyZWFjdGl2YXRlID0gZmFsc2UpIHtcbiAgICAgICAgLy8gY29tcGxldGUgYWxsIHN1YmplY3RzXG4gICAgICAgIHRoaXMuY29udGV4dHMuZm9yRWFjaChjID0+IGMuZmluaXNoKCkpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvblN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMucmVzdWx0U3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmVycm9yU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICBpZiAoIXJlYWN0aXZhdGUpIHtcbiAgICAgICAgICAgIC8vIGFsbG93IHJlYWN0aXZhdGlvbiBpbnN0YW5jZSB0byBiZSBlbWl0dGVkIHNlcGFyYXRlbHlcbiAgICAgICAgICAgIHRoaXMuX3JlYWN0aXZhdGlvbkluc3RhbmNlU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ2xvc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0LmlzU3RvcHBlZCAmJlxuICAgICAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0LmlzU3RvcHBlZCAmJlxuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QuaXNTdG9wcGVkICYmXG4gICAgICAgICAgICB0aGlzLnJlc3VsdFN1YmplY3QuaXNTdG9wcGVkICYmXG4gICAgICAgICAgICB0aGlzLmVycm9yU3ViamVjdC5pc1N0b3BwZWQgJiZcbiAgICAgICAgICAgIHRoaXMuX3JlYWN0aXZhdGlvbkluc3RhbmNlU3ViamVjdC5pc1N0b3BwZWQgJiZcbiAgICAgICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMuZXZlcnkocyA9PiBzLmNsb3NlZCkgJiZcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMuZXZlcnkoYyA9PiBjLmlzQ2xvc2VkKCkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -17,4 +17,4 @@ export class DefaultActionErrorMapperService extends ActionErrorMapperService {
17
17
  return commonsError;
18
18
  }
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVycm9yLW1hcHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9hY3Rpb24vc2VydmljZXMvYWN0aW9uLWVycm9yLW1hcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sT0FBZ0Isd0JBQXdCO0NBUzdDO0FBRUQsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHdCQUF3QjtJQUN6RSxjQUFjLENBQUMsS0FBVyxFQUFFLFlBQTRCO1FBQ3BELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixZQUFZLEdBQUc7Z0JBQ1gsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksY0FBYztnQkFDbkMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksZUFBZTtnQkFDekMsS0FBSyxFQUFFLEtBQUs7YUFDZixDQUFDO1NBQ0w7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lDb21tb25zRXJyb3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgdHJhbnNmb3JtaW5nIGVycm9ycyBpbiBhY3Rpb24gZXhlY3V0aW9uLlxuICogQ2FuIGJlIHVzZWQgdG8gdHJhbnNmb3JtIGVycm9ycyB0byBDb21tb25zIEVycm9yIGludGVyZmFjZSBmb3IgY29ycmVjdCBlcnJvciBtZXNzYWdlIGRpc3BsYXkuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY3Rpb25FcnJvck1hcHBlclNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIENhbiBiZSB1c2VkIHRvIGVucmljaCBkYXRhIGZyb20gZXJyb3IgYW5kIG1ha2UgaXQgbW9yZSBcInN0YWJsZVwiLiBNb3N0IHVzZSBjYXNlcyBjb3ZlciBleHRyYWN0aW5nIG1lc3NhZ2Ugb3IgbWVzc2FnZSBjb2RlIG9mIGFuXG4gICAgICogZXJyb3Igb3V0IG9mIGh0dHAgcmVzcG9uc2UgYm9keS9oZWFkZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVycm9yIE9yaWdpbmFsIGVycm9yIChjYXVzZSkuXG4gICAgICogQHBhcmFtIGNvbW1vbnNFcnJvciBDb21tb25zIGVycm9yIHRoYXQgd3JhcHMgb3JpZ2luYWwgZXJyb3IuXG4gICAgICovXG4gICAgYWJzdHJhY3QgdG9Db21tb25zRXJyb3IoZXJyb3I/OiBhbnksIGNvbW1vbnNFcnJvcj86IElDb21tb25zRXJyb3IpOiBJQ29tbW9uc0Vycm9yO1xufVxuXG5leHBvcnQgY2xhc3MgRGVmYXVsdEFjdGlvbkVycm9yTWFwcGVyU2VydmljZSBleHRlbmRzIEFjdGlvbkVycm9yTWFwcGVyU2VydmljZSB7XG4gICAgdG9Db21tb25zRXJyb3IoZXJyb3I/OiBhbnksIGNvbW1vbnNFcnJvcj86IElDb21tb25zRXJyb3IpOiBJQ29tbW9uc0Vycm9yIHtcbiAgICAgICAgaWYgKCFjb21tb25zRXJyb3IpIHtcbiAgICAgICAgICAgIGNvbW1vbnNFcnJvciA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnQ29tbW9uc0FjdGlvbkVycm9yJyxcbiAgICAgICAgICAgICAgICBuYW1lOiBlcnJvcj8ubmFtZSA/PyAnVW5rbm93bkVycm9yJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlID8/ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICAgICAgICBjYXVzZTogZXJyb3JcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tbW9uc0Vycm9yO1xuICAgIH1cbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVycm9yLW1hcHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9hY3Rpb24vc2VydmljZXMvYWN0aW9uLWVycm9yLW1hcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sT0FBZ0Isd0JBQXdCO0NBUzdDO0FBRUQsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHdCQUF3QjtJQUN6RSxjQUFjLENBQUMsS0FBVyxFQUFFLFlBQTRCO1FBQ3BELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQixZQUFZLEdBQUc7Z0JBQ1gsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksY0FBYztnQkFDbkMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksZUFBZTtnQkFDekMsS0FBSyxFQUFFLEtBQUs7YUFDZixDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SUNvbW1vbnNFcnJvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB0cmFuc2Zvcm1pbmcgZXJyb3JzIGluIGFjdGlvbiBleGVjdXRpb24uXG4gKiBDYW4gYmUgdXNlZCB0byB0cmFuc2Zvcm0gZXJyb3JzIHRvIENvbW1vbnMgRXJyb3IgaW50ZXJmYWNlIGZvciBjb3JyZWN0IGVycm9yIG1lc3NhZ2UgZGlzcGxheS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbkVycm9yTWFwcGVyU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogQ2FuIGJlIHVzZWQgdG8gZW5yaWNoIGRhdGEgZnJvbSBlcnJvciBhbmQgbWFrZSBpdCBtb3JlIFwic3RhYmxlXCIuIE1vc3QgdXNlIGNhc2VzIGNvdmVyIGV4dHJhY3RpbmcgbWVzc2FnZSBvciBtZXNzYWdlIGNvZGUgb2YgYW5cbiAgICAgKiBlcnJvciBvdXQgb2YgaHR0cCByZXNwb25zZSBib2R5L2hlYWRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXJyb3IgT3JpZ2luYWwgZXJyb3IgKGNhdXNlKS5cbiAgICAgKiBAcGFyYW0gY29tbW9uc0Vycm9yIENvbW1vbnMgZXJyb3IgdGhhdCB3cmFwcyBvcmlnaW5hbCBlcnJvci5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCB0b0NvbW1vbnNFcnJvcihlcnJvcj86IGFueSwgY29tbW9uc0Vycm9yPzogSUNvbW1vbnNFcnJvcik6IElDb21tb25zRXJyb3I7XG59XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0QWN0aW9uRXJyb3JNYXBwZXJTZXJ2aWNlIGV4dGVuZHMgQWN0aW9uRXJyb3JNYXBwZXJTZXJ2aWNlIHtcbiAgICB0b0NvbW1vbnNFcnJvcihlcnJvcj86IGFueSwgY29tbW9uc0Vycm9yPzogSUNvbW1vbnNFcnJvcik6IElDb21tb25zRXJyb3Ige1xuICAgICAgICBpZiAoIWNvbW1vbnNFcnJvcikge1xuICAgICAgICAgICAgY29tbW9uc0Vycm9yID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdDb21tb25zQWN0aW9uRXJyb3InLFxuICAgICAgICAgICAgICAgIG5hbWU6IGVycm9yPy5uYW1lID8/ICdVbmtub3duRXJyb3InLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgPz8gJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgICAgICAgIGNhdXNlOiBlcnJvclxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21tb25zRXJyb3I7XG4gICAgfVxufVxuIl19