@mediusinc/mng-commons 0.9.1-rc.1 → 0.9.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 (304) hide show
  1. package/assets/i18n/sl.json +1 -1
  2. package/dev-scripts/version-info.js +2 -0
  3. package/esm2020/lib/api/models/builders/query-param.builder.mjs +58 -58
  4. package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -24
  5. package/esm2020/lib/api/models/filter-param.model.mjs +32 -32
  6. package/esm2020/lib/api/models/index.mjs +8 -8
  7. package/esm2020/lib/api/models/mappers.mjs +12 -12
  8. package/esm2020/lib/api/models/query-mode.model.mjs +17 -17
  9. package/esm2020/lib/api/models/query-param.model.mjs +67 -67
  10. package/esm2020/lib/api/models/query-result.model.mjs +17 -17
  11. package/esm2020/lib/api/models/serialization.model.mjs +1 -1
  12. package/esm2020/lib/api/services/api.abstract.service.mjs +55 -55
  13. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +66 -66
  14. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +22 -22
  15. package/esm2020/lib/api/services/index.mjs +3 -3
  16. package/esm2020/lib/api/utils/index.mjs +2 -2
  17. package/esm2020/lib/api/utils/medius-rest.util.mjs +151 -151
  18. package/esm2020/lib/api/utils/object-serializer.util.mjs +243 -243
  19. package/esm2020/lib/components/action/action.component.mjs +177 -177
  20. package/esm2020/lib/components/action/editor/action-editor.component.mjs +247 -247
  21. package/esm2020/lib/components/action/index.mjs +3 -3
  22. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +1 -1
  23. package/esm2020/lib/components/action/models/action-execution.model.mjs +234 -234
  24. package/esm2020/lib/components/action/models/index.mjs +2 -2
  25. package/esm2020/lib/components/action/route/action-route.component.mjs +124 -124
  26. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +268 -268
  27. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +160 -160
  28. package/esm2020/lib/components/form/editor/form-editor.component.mjs +212 -190
  29. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +48 -19
  30. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +42 -42
  31. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +24 -24
  32. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +100 -96
  33. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +16 -16
  34. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +178 -178
  35. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +173 -155
  36. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +154 -127
  37. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +16 -16
  38. package/esm2020/lib/components/form/formly/fields/index.mjs +9 -9
  39. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +14 -14
  40. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +14 -14
  41. package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
  42. package/esm2020/lib/components/form/index.mjs +3 -3
  43. package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
  44. package/esm2020/lib/components/form/models/index.mjs +1 -1
  45. package/esm2020/lib/components/layout/breadcrumb.component.mjs +16 -16
  46. package/esm2020/lib/components/layout/footer.component.mjs +17 -17
  47. package/esm2020/lib/components/layout/index.mjs +7 -7
  48. package/esm2020/lib/components/layout/main-layout.component.mjs +51 -51
  49. package/esm2020/lib/components/layout/menu-item.component.mjs +216 -216
  50. package/esm2020/lib/components/layout/menu.component.mjs +21 -21
  51. package/esm2020/lib/components/layout/services/index.mjs +1 -1
  52. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +192 -192
  53. package/esm2020/lib/components/layout/topbar.component.mjs +57 -57
  54. package/esm2020/lib/components/layout/version.component.mjs +57 -57
  55. package/esm2020/lib/components/tableview/index.mjs +6 -6
  56. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  57. package/esm2020/lib/components/tableview/models/table.event.mjs +15 -15
  58. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +57 -57
  59. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +61 -54
  60. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +102 -102
  61. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +70 -70
  62. package/esm2020/lib/components/tableview/table/table.component.mjs +433 -428
  63. package/esm2020/lib/components/tableview/tableview.component.mjs +91 -91
  64. package/esm2020/lib/config/formly.config.mjs +180 -180
  65. package/esm2020/lib/config/index.mjs +1 -1
  66. package/esm2020/lib/config/models/index.mjs +1 -1
  67. package/esm2020/lib/config/models/mng-config.model.mjs +1 -1
  68. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  69. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  70. package/esm2020/lib/data-providers/index.mjs +5 -5
  71. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  72. package/esm2020/lib/data-providers/table.data-provider.mjs +16 -16
  73. package/esm2020/lib/data-providers/tableview.data-provider.mjs +16 -16
  74. package/esm2020/lib/descriptors/action.descriptor.mjs +565 -565
  75. package/esm2020/lib/descriptors/column.descriptor.mjs +265 -261
  76. package/esm2020/lib/descriptors/editor.descriptor.mjs +146 -146
  77. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +20 -20
  78. package/esm2020/lib/descriptors/field.descriptor.mjs +806 -800
  79. package/esm2020/lib/descriptors/filter.descriptor.mjs +289 -262
  80. package/esm2020/lib/descriptors/index.mjs +9 -9
  81. package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
  82. package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
  83. package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
  84. package/esm2020/lib/descriptors/model.descriptor.mjs +33 -33
  85. package/esm2020/lib/descriptors/table.descriptor.mjs +198 -197
  86. package/esm2020/lib/descriptors/tableview.descriptor.mjs +134 -134
  87. package/esm2020/lib/descriptors/types/action.type.mjs +52 -52
  88. package/esm2020/lib/descriptors/types/column.type.mjs +10 -10
  89. package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
  90. package/esm2020/lib/descriptors/types/field.type.mjs +52 -52
  91. package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
  92. package/esm2020/lib/descriptors/types/index.mjs +6 -6
  93. package/esm2020/lib/descriptors/types/table.type.mjs +16 -16
  94. package/esm2020/lib/directives/component.directive.mjs +43 -43
  95. package/esm2020/lib/directives/index.mjs +2 -2
  96. package/esm2020/lib/directives/template.directive.mjs +27 -27
  97. package/esm2020/lib/mng-commons.module.mjs +437 -437
  98. package/esm2020/lib/models/column-value.model.mjs +1 -1
  99. package/esm2020/lib/models/enum.model.mjs +1 -1
  100. package/esm2020/lib/models/error.model.mjs +1 -1
  101. package/esm2020/lib/models/index.mjs +7 -7
  102. package/esm2020/lib/models/menu.model.mjs +1 -1
  103. package/esm2020/lib/models/user.model.mjs +1 -1
  104. package/esm2020/lib/models/version.model.mjs +1 -1
  105. package/esm2020/lib/models/view-container.model.mjs +1 -1
  106. package/esm2020/lib/pipes/boolean.pipe.mjs +26 -26
  107. package/esm2020/lib/pipes/enum.pipe.mjs +24 -24
  108. package/esm2020/lib/pipes/i18n-property.pipe.mjs +17 -17
  109. package/esm2020/lib/pipes/index.mjs +5 -5
  110. package/esm2020/lib/pipes/json-path.pipe.mjs +79 -79
  111. package/esm2020/lib/pipes/link-formatter.pipe.mjs +38 -38
  112. package/esm2020/lib/router/index.mjs +1 -1
  113. package/esm2020/lib/router/models/index.mjs +1 -1
  114. package/esm2020/lib/router/models/router.model.mjs +1 -1
  115. package/esm2020/lib/router/route-builder.mjs +431 -431
  116. package/esm2020/lib/services/action-executor.service.mjs +536 -536
  117. package/esm2020/lib/services/commons.service.mjs +331 -331
  118. package/esm2020/lib/services/configuration.service.mjs +110 -110
  119. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  120. package/esm2020/lib/services/index.mjs +6 -6
  121. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  122. package/esm2020/lib/services/internal/commons-init.service.mjs +43 -43
  123. package/esm2020/lib/services/internal/index.mjs +2 -2
  124. package/esm2020/lib/services/navigation.service.mjs +47 -47
  125. package/esm2020/lib/services/providers/config-service.provider.mjs +29 -29
  126. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  127. package/esm2020/lib/services/providers/index.mjs +2 -2
  128. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  129. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  130. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  131. package/esm2020/lib/services/tokens/index.mjs +4 -4
  132. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  133. package/esm2020/lib/services/version.service.mjs +37 -37
  134. package/esm2020/lib/services/view-container.component.service.mjs +34 -34
  135. package/esm2020/lib/types/index.mjs +2 -2
  136. package/esm2020/lib/types/type.decorator.mjs +12 -12
  137. package/esm2020/lib/types/type.model.mjs +1 -1
  138. package/esm2020/lib/utils/action-data-provider.util.mjs +144 -144
  139. package/esm2020/lib/utils/editor-formly.util.mjs +210 -210
  140. package/esm2020/lib/utils/enum.util.mjs +81 -81
  141. package/esm2020/lib/utils/i18n.util.mjs +232 -232
  142. package/esm2020/lib/utils/index.mjs +7 -7
  143. package/esm2020/lib/utils/model.util.mjs +59 -59
  144. package/esm2020/lib/utils/notification.util.mjs +45 -45
  145. package/esm2020/lib/utils/route.util.mjs +23 -23
  146. package/esm2020/lib/utils/styles.util.mjs +40 -40
  147. package/esm2020/lib/utils/type.util.mjs +76 -76
  148. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  149. package/esm2020/public-api.mjs +41 -41
  150. package/fesm2015/mediusinc-mng-commons.mjs +10101 -9952
  151. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  152. package/fesm2020/mediusinc-mng-commons.mjs +9958 -9814
  153. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  154. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  155. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  156. package/lib/api/models/filter-param.model.d.ts +23 -23
  157. package/lib/api/models/index.d.ts +8 -8
  158. package/lib/api/models/mappers.d.ts +6 -6
  159. package/lib/api/models/query-mode.model.d.ts +16 -16
  160. package/lib/api/models/query-param.model.d.ts +31 -31
  161. package/lib/api/models/query-result.model.d.ts +23 -23
  162. package/lib/api/models/serialization.model.d.ts +8 -8
  163. package/lib/api/services/api.abstract.service.d.ts +24 -24
  164. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  165. package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
  166. package/lib/api/services/index.d.ts +3 -3
  167. package/lib/api/utils/index.d.ts +2 -2
  168. package/lib/api/utils/medius-rest.util.d.ts +15 -15
  169. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  170. package/lib/components/action/action.component.d.ts +69 -69
  171. package/lib/components/action/editor/action-editor.component.d.ts +64 -64
  172. package/lib/components/action/index.d.ts +3 -3
  173. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  174. package/lib/components/action/models/action-execution.model.d.ts +129 -129
  175. package/lib/components/action/models/index.d.ts +2 -2
  176. package/lib/components/action/route/action-route.component.d.ts +31 -31
  177. package/lib/components/form/autocomplete/autocomplete.component.d.ts +53 -53
  178. package/lib/components/form/dropdown/dropdown.component.d.ts +44 -44
  179. package/lib/components/form/editor/form-editor.component.d.ts +45 -45
  180. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +15 -12
  181. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +14 -14
  182. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +13 -13
  183. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +23 -21
  184. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +6 -6
  185. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +45 -45
  186. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +23 -22
  187. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +38 -37
  188. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -6
  189. package/lib/components/form/formly/fields/index.d.ts +9 -9
  190. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +6 -6
  191. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +6 -6
  192. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  193. package/lib/components/form/index.d.ts +3 -3
  194. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  195. package/lib/components/form/models/index.d.ts +1 -1
  196. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  197. package/lib/components/layout/footer.component.d.ts +9 -9
  198. package/lib/components/layout/index.d.ts +7 -7
  199. package/lib/components/layout/main-layout.component.d.ts +20 -20
  200. package/lib/components/layout/menu-item.component.d.ts +37 -37
  201. package/lib/components/layout/menu.component.d.ts +10 -10
  202. package/lib/components/layout/services/index.d.ts +1 -1
  203. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  204. package/lib/components/layout/topbar.component.d.ts +24 -24
  205. package/lib/components/layout/version.component.d.ts +19 -19
  206. package/lib/components/tableview/index.d.ts +6 -6
  207. package/lib/components/tableview/models/index.d.ts +1 -1
  208. package/lib/components/tableview/models/table.event.d.ts +17 -17
  209. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +20 -20
  210. package/lib/components/tableview/route/tableview-route.component.d.ts +21 -18
  211. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +32 -32
  212. package/lib/components/tableview/table/column-value/column-value.component.d.ts +29 -29
  213. package/lib/components/tableview/table/table.component.d.ts +105 -105
  214. package/lib/components/tableview/tableview.component.d.ts +41 -41
  215. package/lib/config/formly.config.d.ts +15 -15
  216. package/lib/config/index.d.ts +1 -1
  217. package/lib/config/models/index.d.ts +1 -1
  218. package/lib/config/models/mng-config.model.d.ts +36 -36
  219. package/lib/data-providers/base.data-provider.d.ts +14 -14
  220. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  221. package/lib/data-providers/index.d.ts +5 -5
  222. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  223. package/lib/data-providers/table.data-provider.d.ts +14 -14
  224. package/lib/data-providers/tableview.data-provider.d.ts +15 -15
  225. package/lib/descriptors/action.descriptor.d.ts +227 -227
  226. package/lib/descriptors/column.descriptor.d.ts +82 -81
  227. package/lib/descriptors/editor.descriptor.d.ts +37 -37
  228. package/lib/descriptors/field-validation.descriptor.d.ts +18 -18
  229. package/lib/descriptors/field.descriptor.d.ts +289 -287
  230. package/lib/descriptors/filter.descriptor.d.ts +106 -97
  231. package/lib/descriptors/index.d.ts +9 -9
  232. package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
  233. package/lib/descriptors/interfaces/index.d.ts +2 -2
  234. package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
  235. package/lib/descriptors/model.descriptor.d.ts +15 -15
  236. package/lib/descriptors/table.descriptor.d.ts +66 -66
  237. package/lib/descriptors/tableview.descriptor.d.ts +42 -42
  238. package/lib/descriptors/types/action.type.d.ts +45 -45
  239. package/lib/descriptors/types/column.type.d.ts +9 -9
  240. package/lib/descriptors/types/editor.type.d.ts +6 -6
  241. package/lib/descriptors/types/field.type.d.ts +44 -44
  242. package/lib/descriptors/types/filter.type.d.ts +27 -27
  243. package/lib/descriptors/types/index.d.ts +6 -6
  244. package/lib/descriptors/types/table.type.d.ts +13 -13
  245. package/lib/directives/component.directive.d.ts +16 -16
  246. package/lib/directives/index.d.ts +2 -2
  247. package/lib/directives/template.directive.d.ts +13 -13
  248. package/lib/mng-commons.module.d.ts +87 -87
  249. package/lib/models/column-value.model.d.ts +4 -4
  250. package/lib/models/enum.model.d.ts +6 -6
  251. package/lib/models/error.model.d.ts +14 -14
  252. package/lib/models/index.d.ts +7 -7
  253. package/lib/models/menu.model.d.ts +25 -25
  254. package/lib/models/user.model.d.ts +8 -8
  255. package/lib/models/version.model.d.ts +18 -18
  256. package/lib/models/view-container.model.d.ts +6 -6
  257. package/lib/pipes/boolean.pipe.d.ts +7 -7
  258. package/lib/pipes/enum.pipe.d.ts +8 -8
  259. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  260. package/lib/pipes/index.d.ts +5 -5
  261. package/lib/pipes/json-path.pipe.d.ts +13 -13
  262. package/lib/pipes/link-formatter.pipe.d.ts +11 -11
  263. package/lib/router/index.d.ts +1 -1
  264. package/lib/router/models/index.d.ts +1 -1
  265. package/lib/router/models/router.model.d.ts +22 -22
  266. package/lib/router/route-builder.d.ts +86 -86
  267. package/lib/services/action-executor.service.d.ts +149 -149
  268. package/lib/services/commons.service.d.ts +73 -73
  269. package/lib/services/configuration.service.d.ts +36 -36
  270. package/lib/services/error-mapper.service.d.ts +7 -7
  271. package/lib/services/index.d.ts +6 -6
  272. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  273. package/lib/services/internal/commons-init.service.d.ts +16 -16
  274. package/lib/services/internal/index.d.ts +2 -2
  275. package/lib/services/navigation.service.d.ts +14 -14
  276. package/lib/services/providers/config-service.provider.d.ts +6 -6
  277. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  278. package/lib/services/providers/index.d.ts +2 -2
  279. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  280. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  281. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  282. package/lib/services/tokens/index.d.ts +4 -4
  283. package/lib/services/tokens/module-config.token.d.ts +3 -3
  284. package/lib/services/version.service.d.ts +13 -13
  285. package/lib/services/view-container.component.service.d.ts +22 -22
  286. package/lib/types/index.d.ts +2 -2
  287. package/lib/types/type.decorator.d.ts +4 -4
  288. package/lib/types/type.model.d.ts +20 -20
  289. package/lib/utils/action-data-provider.util.d.ts +20 -20
  290. package/lib/utils/editor-formly.util.d.ts +10 -10
  291. package/lib/utils/enum.util.d.ts +50 -50
  292. package/lib/utils/i18n.util.d.ts +56 -56
  293. package/lib/utils/index.d.ts +7 -7
  294. package/lib/utils/model.util.d.ts +8 -8
  295. package/lib/utils/notification.util.d.ts +11 -11
  296. package/lib/utils/route.util.d.ts +4 -4
  297. package/lib/utils/styles.util.d.ts +14 -14
  298. package/lib/utils/type.util.d.ts +36 -36
  299. package/mediusinc-mng-commons.d.ts +5 -5
  300. package/package.json +7 -6
  301. package/public-api.d.ts +30 -30
  302. package/scss/mng-overrides/_theme_tableview.scss +0 -4
  303. package/version-info.json +6 -6
  304. package/mediusinc-mng-commons-0.9.1-rc.1.tgz +0 -0
@@ -1,235 +1,235 @@
1
- import { BehaviorSubject, ReplaySubject, Subject, distinctUntilChanged } from 'rxjs';
2
- export class ActionError {
3
- constructor(error, // error details
4
- dismissed = false // by user
5
- ) {
6
- this.error = error;
7
- this.dismissed = dismissed;
8
- }
9
- }
10
- /**
11
- * Action execution instance containing data about execution state of action
12
- */
13
- export class ActionInstance {
14
- constructor(action, state = ActionInstanceStateEnum.TriggerStart, debug = false) {
15
- this.debug = debug;
16
- // function execution
17
- this.isRunLoadingSubject = new BehaviorSubject(false);
18
- this.contexts = [];
19
- this.executionSubject = new Subject();
20
- this.executionIsRunningSubject = new BehaviorSubject(false);
21
- this.stateSubject = new BehaviorSubject(1);
22
- this.resultSubject = new ReplaySubject(1);
23
- this.errorSubject = new ReplaySubject(1);
24
- this.contextExecutionSubscriptions = [];
25
- this.instanceId = Math.random().toString(36).substring(2);
26
- this.instanceLongName = `${action.actionNameLong}_${this.instanceId}`;
27
- this.action = action;
28
- this.state = state;
29
- }
30
- get isRunLoading$() {
31
- return this.isRunLoadingSubject.asObservable();
32
- }
33
- get context() {
34
- return this.contexts.length === 0 ? undefined : this.contexts[this.contexts.length - 1];
35
- }
36
- get execution$() {
37
- return this.executionSubject.asObservable();
38
- }
39
- get executionIsRunning$() {
40
- return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());
41
- }
42
- get state() {
43
- return this.stateSubject.value;
44
- }
45
- set state(state) {
46
- if (state > this.stateSubject.value) {
47
- if (this.debug) {
48
- console.debug(`ActionInstance ${this.instanceLongName} - state #${state}: ${ActionInstanceStateEnum[state]}`);
49
- }
50
- this.stateSubject.next(state);
51
- }
52
- }
53
- get state$() {
54
- return this.stateSubject.asObservable().pipe(distinctUntilChanged());
55
- }
56
- get result() {
57
- return this._result;
58
- }
59
- set result(result) {
60
- if (typeof result === 'undefined') {
61
- return;
62
- }
63
- if (this.debug) {
64
- console.debug(`ActionInstance ${this.instanceLongName} - result`, result);
65
- }
66
- this._result = result;
67
- this.resultSubject.next(result);
68
- }
69
- get result$() {
70
- return this.resultSubject.asObservable();
71
- }
72
- get error() {
73
- return this._error;
74
- }
75
- set error(error) {
76
- if (typeof error === 'undefined') {
77
- return;
78
- }
79
- if (this.debug) {
80
- console.debug(`ActionInstance ${this.instanceLongName} - error`, error);
81
- }
82
- this._error = error;
83
- this.errorSubject.next(error);
84
- }
85
- get error$() {
86
- return this.errorSubject.asObservable();
87
- }
88
- contextAt(idx) {
89
- return idx < this.contexts.length ? this.contexts[idx] : undefined;
90
- }
91
- newContext(context, finishPrevious = true) {
92
- if (this.debug) {
93
- console.debug(`ActionInstance ${this.instanceLongName} - new context ${context.contextLongName}`);
94
- }
95
- const currentContext = this.context;
96
- if (currentContext) {
97
- currentContext.executionComplete();
98
- }
99
- this.contextExecutionSubscriptions.forEach(s => s.unsubscribe());
100
- this.contextExecutionSubscriptions = [];
101
- this.contextExecutionSubscriptions.push(context.execution$.subscribe({
102
- next: next => this.executionSubject.next(next),
103
- error: error => this.executionSubject.error(error)
104
- }));
105
- this.contextExecutionSubscriptions.push(context.executionIsRunning$.subscribe({
106
- next: next => this.executionIsRunningSubject.next(next)
107
- }));
108
- this.contexts.push(context);
109
- }
110
- finish() {
111
- if (this.stateSubject.value < ActionInstanceStateEnum.FinishSuccess) {
112
- this.state = ActionInstanceStateEnum.FinishSuccess;
113
- }
114
- // complete all subjects
115
- this.contexts.forEach(c => c.finish());
116
- this.executionSubject.complete();
117
- this.executionIsRunningSubject.complete();
118
- this.stateSubject.complete();
119
- this.resultSubject.complete();
120
- this.errorSubject.complete();
121
- }
122
- }
123
- /**
124
- * Class containing all main data for action to be executed in run/fetch/submit states.
125
- */
126
- export class ActionContext {
127
- constructor(instance, parameters, functionName, dataProvider, serviceInstance, executionSubject = new ReplaySubject(1), executionIsRunningSubject = new BehaviorSubject(false)) {
128
- this.instance = instance;
129
- this.parameters = parameters;
130
- this.functionName = functionName;
131
- this.dataProvider = dataProvider;
132
- this.serviceInstance = serviceInstance;
133
- this.executionSubject = executionSubject;
134
- this.executionIsRunningSubject = executionIsRunningSubject;
135
- this.contextLongName = `${this.instance.instanceLongName}_${functionName}`;
136
- }
137
- get execution$() {
138
- return this.executionSubject.asObservable();
139
- }
140
- get executionIsRunning$() {
141
- return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());
142
- }
143
- executionStart() {
144
- if (this.instance.debug) {
145
- console.debug(`ActionContext ${this.contextLongName} - execution start`);
146
- }
147
- this.executionIsRunningSubject.next(true);
148
- }
149
- executionNext(next, finish = true) {
150
- if (this.instance.debug) {
151
- console.debug(`ActionContext ${this.contextLongName} - execution next event`, next, finish);
152
- }
153
- this.executionSubject.next(next);
154
- if (finish) {
155
- this.executionComplete();
156
- }
157
- }
158
- executionComplete() {
159
- if (this.instance.debug) {
160
- console.debug(`ActionContext ${this.contextLongName} - execution complete`);
161
- }
162
- this.executionSubject.complete();
163
- this.executionIsRunningSubject.next(false);
164
- }
165
- executionError(err) {
166
- if (this.instance.debug) {
167
- console.debug(`ActionContext ${this.contextLongName} - execution error`, err);
168
- }
169
- this.executionSubject.error(err);
170
- this.executionIsRunningSubject.next(false);
171
- }
172
- finish() {
173
- this.executionSubject.complete();
174
- this.executionIsRunningSubject.complete();
175
- }
176
- }
177
- /**
178
- * Class containing all main data for action validations (enabled/visible) to be executed in validation states.
179
- */
180
- export class ActionContextValidation {
181
- constructor(descriptor, parameters, dataProvider, serviceInstance) {
182
- this.descriptor = descriptor;
183
- this.parameters = parameters;
184
- this.dataProvider = dataProvider;
185
- this.serviceInstance = serviceInstance;
186
- }
187
- }
188
- export class ActionParameters {
189
- constructor(itemId, item) {
190
- this.itemId = itemId;
191
- this.item = item;
192
- }
193
- withActionData(actionData) {
194
- this.actionData = actionData;
195
- return this;
196
- }
197
- withQueryParam(queryParam) {
198
- this.queryParam = queryParam;
199
- return this;
200
- }
201
- withViewContainer(viewContainer) {
202
- this.viewContainer = viewContainer;
203
- return this;
204
- }
205
- withSourceComponent(sourceComponent) {
206
- this.sourceComponent = sourceComponent;
207
- return this;
208
- }
209
- withRoute(route) {
210
- this.route = route;
211
- return this;
212
- }
213
- }
214
- export var ActionInstanceStateEnum;
215
- (function (ActionInstanceStateEnum) {
216
- ActionInstanceStateEnum[ActionInstanceStateEnum["TriggerStart"] = 0] = "TriggerStart";
217
- ActionInstanceStateEnum[ActionInstanceStateEnum["TriggerEnd"] = 1] = "TriggerEnd";
218
- ActionInstanceStateEnum[ActionInstanceStateEnum["ActivationStart"] = 2] = "ActivationStart";
219
- ActionInstanceStateEnum[ActionInstanceStateEnum["ActivationEnd"] = 3] = "ActivationEnd";
220
- ActionInstanceStateEnum[ActionInstanceStateEnum["FetchStart"] = 4] = "FetchStart";
221
- ActionInstanceStateEnum[ActionInstanceStateEnum["FetchEnd"] = 5] = "FetchEnd";
222
- ActionInstanceStateEnum[ActionInstanceStateEnum["FetchError"] = 6] = "FetchError";
223
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationStart"] = 7] = "RunConfirmationStart";
224
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationEndAccept"] = 8] = "RunConfirmationEndAccept";
225
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationEndReject"] = 9] = "RunConfirmationEndReject";
226
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunStart"] = 10] = "RunStart";
227
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunEnd"] = 11] = "RunEnd";
228
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunError"] = 12] = "RunError";
229
- ActionInstanceStateEnum[ActionInstanceStateEnum["NextActionStart"] = 13] = "NextActionStart";
230
- ActionInstanceStateEnum[ActionInstanceStateEnum["NextActionEnd"] = 14] = "NextActionEnd";
231
- ActionInstanceStateEnum[ActionInstanceStateEnum["FinishSuccess"] = 15] = "FinishSuccess";
232
- ActionInstanceStateEnum[ActionInstanceStateEnum["FinishError"] = 16] = "FinishError";
233
- ActionInstanceStateEnum[ActionInstanceStateEnum["FinishDismissed"] = 17] = "FinishDismissed"; // action was dismissed by user
234
- })(ActionInstanceStateEnum || (ActionInstanceStateEnum = {}));
1
+ import { BehaviorSubject, ReplaySubject, Subject, distinctUntilChanged } from 'rxjs';
2
+ export class ActionError {
3
+ constructor(error, // error details
4
+ dismissed = false // by user
5
+ ) {
6
+ this.error = error;
7
+ this.dismissed = dismissed;
8
+ }
9
+ }
10
+ /**
11
+ * Action execution instance containing data about execution state of action
12
+ */
13
+ export class ActionInstance {
14
+ constructor(action, state = ActionInstanceStateEnum.TriggerStart, debug = false) {
15
+ this.debug = debug;
16
+ // function execution
17
+ this.isRunLoadingSubject = new BehaviorSubject(false);
18
+ this.contexts = [];
19
+ this.executionSubject = new Subject();
20
+ this.executionIsRunningSubject = new BehaviorSubject(false);
21
+ this.stateSubject = new BehaviorSubject(1);
22
+ this.resultSubject = new ReplaySubject(1);
23
+ this.errorSubject = new ReplaySubject(1);
24
+ this.contextExecutionSubscriptions = [];
25
+ this.instanceId = Math.random().toString(36).substring(2);
26
+ this.instanceLongName = `${action.actionNameLong}_${this.instanceId}`;
27
+ this.action = action;
28
+ this.state = state;
29
+ }
30
+ get isRunLoading$() {
31
+ return this.isRunLoadingSubject.asObservable();
32
+ }
33
+ get context() {
34
+ return this.contexts.length === 0 ? undefined : this.contexts[this.contexts.length - 1];
35
+ }
36
+ get execution$() {
37
+ return this.executionSubject.asObservable();
38
+ }
39
+ get executionIsRunning$() {
40
+ return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());
41
+ }
42
+ get state() {
43
+ return this.stateSubject.value;
44
+ }
45
+ set state(state) {
46
+ if (state > this.stateSubject.value) {
47
+ if (this.debug) {
48
+ console.debug(`ActionInstance ${this.instanceLongName} - state #${state}: ${ActionInstanceStateEnum[state]}`);
49
+ }
50
+ this.stateSubject.next(state);
51
+ }
52
+ }
53
+ get state$() {
54
+ return this.stateSubject.asObservable().pipe(distinctUntilChanged());
55
+ }
56
+ get result() {
57
+ return this._result;
58
+ }
59
+ set result(result) {
60
+ if (typeof result === 'undefined') {
61
+ return;
62
+ }
63
+ if (this.debug) {
64
+ console.debug(`ActionInstance ${this.instanceLongName} - result`, result);
65
+ }
66
+ this._result = result;
67
+ this.resultSubject.next(result);
68
+ }
69
+ get result$() {
70
+ return this.resultSubject.asObservable();
71
+ }
72
+ get error() {
73
+ return this._error;
74
+ }
75
+ set error(error) {
76
+ if (typeof error === 'undefined') {
77
+ return;
78
+ }
79
+ if (this.debug) {
80
+ console.debug(`ActionInstance ${this.instanceLongName} - error`, error);
81
+ }
82
+ this._error = error;
83
+ this.errorSubject.next(error);
84
+ }
85
+ get error$() {
86
+ return this.errorSubject.asObservable();
87
+ }
88
+ contextAt(idx) {
89
+ return idx < this.contexts.length ? this.contexts[idx] : undefined;
90
+ }
91
+ newContext(context, finishPrevious = true) {
92
+ if (this.debug) {
93
+ console.debug(`ActionInstance ${this.instanceLongName} - new context ${context.contextLongName}`);
94
+ }
95
+ const currentContext = this.context;
96
+ if (currentContext) {
97
+ currentContext.executionComplete();
98
+ }
99
+ this.contextExecutionSubscriptions.forEach(s => s.unsubscribe());
100
+ this.contextExecutionSubscriptions = [];
101
+ this.contextExecutionSubscriptions.push(context.execution$.subscribe({
102
+ next: next => this.executionSubject.next(next),
103
+ error: error => this.executionSubject.error(error)
104
+ }));
105
+ this.contextExecutionSubscriptions.push(context.executionIsRunning$.subscribe({
106
+ next: next => this.executionIsRunningSubject.next(next)
107
+ }));
108
+ this.contexts.push(context);
109
+ }
110
+ finish() {
111
+ if (this.stateSubject.value < ActionInstanceStateEnum.FinishSuccess) {
112
+ this.state = ActionInstanceStateEnum.FinishSuccess;
113
+ }
114
+ // complete all subjects
115
+ this.contexts.forEach(c => c.finish());
116
+ this.executionSubject.complete();
117
+ this.executionIsRunningSubject.complete();
118
+ this.stateSubject.complete();
119
+ this.resultSubject.complete();
120
+ this.errorSubject.complete();
121
+ }
122
+ }
123
+ /**
124
+ * Class containing all main data for action to be executed in run/fetch/submit states.
125
+ */
126
+ export class ActionContext {
127
+ constructor(instance, parameters, functionName, dataProvider, serviceInstance, executionSubject = new ReplaySubject(1), executionIsRunningSubject = new BehaviorSubject(false)) {
128
+ this.instance = instance;
129
+ this.parameters = parameters;
130
+ this.functionName = functionName;
131
+ this.dataProvider = dataProvider;
132
+ this.serviceInstance = serviceInstance;
133
+ this.executionSubject = executionSubject;
134
+ this.executionIsRunningSubject = executionIsRunningSubject;
135
+ this.contextLongName = `${this.instance.instanceLongName}_${functionName}`;
136
+ }
137
+ get execution$() {
138
+ return this.executionSubject.asObservable();
139
+ }
140
+ get executionIsRunning$() {
141
+ return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());
142
+ }
143
+ executionStart() {
144
+ if (this.instance.debug) {
145
+ console.debug(`ActionContext ${this.contextLongName} - execution start`);
146
+ }
147
+ this.executionIsRunningSubject.next(true);
148
+ }
149
+ executionNext(next, finish = true) {
150
+ if (this.instance.debug) {
151
+ console.debug(`ActionContext ${this.contextLongName} - execution next event`, next, finish);
152
+ }
153
+ this.executionSubject.next(next);
154
+ if (finish) {
155
+ this.executionComplete();
156
+ }
157
+ }
158
+ executionComplete() {
159
+ if (this.instance.debug) {
160
+ console.debug(`ActionContext ${this.contextLongName} - execution complete`);
161
+ }
162
+ this.executionSubject.complete();
163
+ this.executionIsRunningSubject.next(false);
164
+ }
165
+ executionError(err) {
166
+ if (this.instance.debug) {
167
+ console.debug(`ActionContext ${this.contextLongName} - execution error`, err);
168
+ }
169
+ this.executionSubject.error(err);
170
+ this.executionIsRunningSubject.next(false);
171
+ }
172
+ finish() {
173
+ this.executionSubject.complete();
174
+ this.executionIsRunningSubject.complete();
175
+ }
176
+ }
177
+ /**
178
+ * Class containing all main data for action validations (enabled/visible) to be executed in validation states.
179
+ */
180
+ export class ActionContextValidation {
181
+ constructor(descriptor, parameters, dataProvider, serviceInstance) {
182
+ this.descriptor = descriptor;
183
+ this.parameters = parameters;
184
+ this.dataProvider = dataProvider;
185
+ this.serviceInstance = serviceInstance;
186
+ }
187
+ }
188
+ export class ActionParameters {
189
+ constructor(itemId, item) {
190
+ this.itemId = itemId;
191
+ this.item = item;
192
+ }
193
+ withActionData(actionData) {
194
+ this.actionData = actionData;
195
+ return this;
196
+ }
197
+ withQueryParam(queryParam) {
198
+ this.queryParam = queryParam;
199
+ return this;
200
+ }
201
+ withViewContainer(viewContainer) {
202
+ this.viewContainer = viewContainer;
203
+ return this;
204
+ }
205
+ withSourceComponent(sourceComponent) {
206
+ this.sourceComponent = sourceComponent;
207
+ return this;
208
+ }
209
+ withRoute(route) {
210
+ this.route = route;
211
+ return this;
212
+ }
213
+ }
214
+ export var ActionInstanceStateEnum;
215
+ (function (ActionInstanceStateEnum) {
216
+ ActionInstanceStateEnum[ActionInstanceStateEnum["TriggerStart"] = 0] = "TriggerStart";
217
+ ActionInstanceStateEnum[ActionInstanceStateEnum["TriggerEnd"] = 1] = "TriggerEnd";
218
+ ActionInstanceStateEnum[ActionInstanceStateEnum["ActivationStart"] = 2] = "ActivationStart";
219
+ ActionInstanceStateEnum[ActionInstanceStateEnum["ActivationEnd"] = 3] = "ActivationEnd";
220
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FetchStart"] = 4] = "FetchStart";
221
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FetchEnd"] = 5] = "FetchEnd";
222
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FetchError"] = 6] = "FetchError";
223
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationStart"] = 7] = "RunConfirmationStart";
224
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationEndAccept"] = 8] = "RunConfirmationEndAccept";
225
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationEndReject"] = 9] = "RunConfirmationEndReject";
226
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunStart"] = 10] = "RunStart";
227
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunEnd"] = 11] = "RunEnd";
228
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunError"] = 12] = "RunError";
229
+ ActionInstanceStateEnum[ActionInstanceStateEnum["NextActionStart"] = 13] = "NextActionStart";
230
+ ActionInstanceStateEnum[ActionInstanceStateEnum["NextActionEnd"] = 14] = "NextActionEnd";
231
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FinishSuccess"] = 15] = "FinishSuccess";
232
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FinishError"] = 16] = "FinishError";
233
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FinishDismissed"] = 17] = "FinishDismissed"; // action was dismissed by user
234
+ })(ActionInstanceStateEnum || (ActionInstanceStateEnum = {}));
235
235
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWV4ZWN1dGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzL2FjdGlvbi1leGVjdXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFnQixvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQVE3RyxNQUFNLE9BQU8sV0FBVztJQUNwQixZQUNvQixLQUFVLEVBQUUsZ0JBQWdCO0lBQzVCLFlBQXFCLEtBQUssQ0FBQyxVQUFVOztRQURyQyxVQUFLLEdBQUwsS0FBSyxDQUFLO1FBQ1YsY0FBUyxHQUFULFNBQVMsQ0FBaUI7SUFDM0MsQ0FBQztDQUNQO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQWdDdkIsWUFBWSxNQUEyQixFQUFFLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxZQUFZLEVBQVMsUUFBUSxLQUFLO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQTNCM0cscUJBQXFCO1FBQ0wsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFLaEQsYUFBUSxHQUErQixFQUFFLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7UUFDdkQsOEJBQXlCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBMEIsQ0FBQyxDQUFDLENBQUM7UUFDL0Qsa0JBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvQyxpQkFBWSxHQUFHLElBQUksYUFBYSxDQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTFELGtDQUE2QixHQUF3QixFQUFFLENBQUM7UUFlNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxNQUFNLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0RSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLEtBQThCO1FBQzNDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDWixPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUMsZ0JBQWdCLGFBQWEsS0FBSyxLQUFLLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNqSDtZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsTUFBTSxDQUFDLE1BQTRCO1FBQzFDLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQy9CLE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLElBQUksQ0FBQyxnQkFBZ0IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLEtBQUssQ0FBQyxLQUE4QjtRQUMzQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUM5QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUMsZ0JBQWdCLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMzRTtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFXO1FBQ3hCLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkUsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUE0QixFQUFFLGNBQWMsR0FBRyxJQUFJO1FBQ2pFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLElBQUksQ0FBQyxnQkFBZ0Isa0JBQWtCLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1NBQ3JHO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNwQyxJQUFJLGNBQWMsRUFBRTtZQUNoQixjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUN0QztRQUNELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQ25DLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzlDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ3JELENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDbkMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztZQUNsQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUMxRCxDQUFDLENBQ0wsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxhQUFhLEVBQUU7WUFDakUsSUFBSSxDQUFDLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxhQUFhLENBQUM7U0FDdEQ7UUFDRCx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7Q0FDSjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFNdEIsWUFDb0IsUUFBOEIsRUFDOUIsVUFBK0IsRUFDL0IsWUFBd0MsRUFDeEMsWUFBa0MsRUFDbEMsZUFBbUIsRUFDbEIsbUJBQW1CLElBQUksYUFBYSxDQUF1QixDQUFDLENBQUMsRUFDN0QsNEJBQTRCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQztRQU52RCxhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBNEI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFJO1FBQ2xCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNkM7UUFDN0QsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUE2QjtRQUV2RSxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLGVBQWUsb0JBQW9CLENBQUMsQ0FBQztTQUM1RTtRQUNELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUEwQixFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQzFELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLGVBQWUseUJBQXlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9GO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxlQUFlLHVCQUF1QixDQUFDLENBQUM7U0FDL0U7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sY0FBYyxDQUFDLEdBQWE7UUFDL0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtZQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsZUFBZSxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNqRjtRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNKO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQ29CLFVBQStCLEVBQy9CLFVBQStCLEVBQy9CLFlBQWtDLEVBQ2xDLGVBQW1CO1FBSG5CLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBSTtJQUNwQyxDQUFDO0NBQ1A7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0lBT3pCLFlBQW1CLE1BQWUsRUFBUyxJQUFRO1FBQWhDLFdBQU0sR0FBTixNQUFNLENBQVM7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFJO0lBQUcsQ0FBQztJQUVoRCxjQUFjLENBQUMsVUFBdUI7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxVQUE2QjtRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0saUJBQWlCLENBQUksYUFBb0M7UUFDNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLGVBQXFCO1FBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBc0I7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxDQUFOLElBQVksdUJBbUJYO0FBbkJELFdBQVksdUJBQXVCO0lBQy9CLHFGQUFZLENBQUE7SUFDWixpRkFBVSxDQUFBO0lBQ1YsMkZBQWUsQ0FBQTtJQUNmLHVGQUFhLENBQUE7SUFDYixpRkFBVSxDQUFBO0lBQ1YsNkVBQVEsQ0FBQTtJQUNSLGlGQUFVLENBQUE7SUFDVixxR0FBb0IsQ0FBQTtJQUNwQiw2R0FBd0IsQ0FBQTtJQUN4Qiw2R0FBd0IsQ0FBQTtJQUN4Qiw4RUFBUSxDQUFBO0lBQ1IsMEVBQU0sQ0FBQTtJQUNOLDhFQUFRLENBQUE7SUFDUiw0RkFBZSxDQUFBO0lBQ2Ysd0ZBQWEsQ0FBQTtJQUNiLHdGQUFhLENBQUE7SUFDYixvRkFBVyxDQUFBO0lBQ1gsNEZBQWUsQ0FBQSxDQUFDLCtCQUErQjtBQUNuRCxDQUFDLEVBbkJXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFtQmxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtDb25maXJtYXRpb24sIE1lc3NhZ2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7RHluYW1pY0RpYWxvZ1JlZn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7SURhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vZGF0YS1wcm92aWRlcnMnO1xuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yfSBmcm9tICcuLi8uLi8uLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge0lWaWV3Q29udGFpbmVyLCBNbmdFcnJvcn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7SWRUeXBlfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FcnJvciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlcnJvcjogYW55LCAvLyBlcnJvciBkZXRhaWxzXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBkaXNtaXNzZWQ6IGJvb2xlYW4gPSBmYWxzZSAvLyBieSB1c2VyXG4gICAgKSB7fVxufVxuXG4vKipcbiAqIEFjdGlvbiBleGVjdXRpb24gaW5zdGFuY2UgY29udGFpbmluZyBkYXRhIGFib3V0IGV4ZWN1dGlvbiBzdGF0ZSBvZiBhY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEFjdGlvbkluc3RhbmNlPFQsIFM+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZUxvbmdOYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxUPjtcblxuICAgIC8vIGZ1bmN0aW9uIGV4ZWN1dGlvblxuICAgIHB1YmxpYyByZWFkb25seSBpc1J1bkxvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvLyBwYXJhbWV0ZXJzLCBjb250ZXh0cywgc3RhdGVzXG4gICAgcHVibGljIHRyaWdnZXJQYXJhbWV0ZXJzPzogQWN0aW9uUGFyYW1ldGVyczxUPjtcbiAgICBwdWJsaWMgYWN0aXZhdGlvblBhcmFtZXRlcnM/OiBBY3Rpb25QYXJhbWV0ZXJzPFQ+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dHM6IEFycmF5PEFjdGlvbkNvbnRleHQ8VCwgUz4+ID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRpb25TdWJqZWN0ID0gbmV3IFN1YmplY3Q8VCB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtPigxKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3VsdFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxUIHwgbnVsbD4oMSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvclN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxBY3Rpb25FcnJvcj4oMSk7XG5cbiAgICBwcml2YXRlIGNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICAvLyByZXN1bHQgb3IgZXJyb3JcbiAgICBwcml2YXRlIF9yZXN1bHQ/OiBUIHwgbnVsbDtcbiAgICBwcml2YXRlIF9lcnJvcj86IEFjdGlvbkVycm9yO1xuXG4gICAgLy8gYWRkaXRpb25hbCBkYXRhIGZyb20gdHJpZ2dlci9hY3RpdmF0aW9uXG4gICAgcHVibGljIHRyaWdnZXJSb3V0ZU5hdmlnYXRpb24/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHB1YmxpYyBhY3RpdmF0aW9uRGlhbG9nUmVmPzogRHluYW1pY0RpYWxvZ1JlZjtcblxuICAgIC8vIGxpbmtlZCBhY3Rpb25zXG4gICAgcHVibGljIG5leHRBY3Rpb25JbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPHVua25vd24sIHVua25vd24+O1xuICAgIHB1YmxpYyBlcnJvckFjdGlvbkluc3RhbmNlPzogQWN0aW9uSW5zdGFuY2U8dW5rbm93biwgdW5rbm93bj47XG5cbiAgICBjb25zdHJ1Y3RvcihhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8VD4sIHN0YXRlID0gQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uVHJpZ2dlclN0YXJ0LCBwdWJsaWMgZGVidWcgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLmluc3RhbmNlSWQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VMb25nTmFtZSA9IGAke2FjdGlvbi5hY3Rpb25OYW1lTG9uZ31fJHt0aGlzLmluc3RhbmNlSWR9YDtcbiAgICAgICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzUnVuTG9hZGluZyQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUnVuTG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0cy5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiB0aGlzLmNvbnRleHRzW3RoaXMuY29udGV4dHMubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleGVjdXRpb24kKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb25TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXhlY3V0aW9uSXNSdW5uaW5nJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlU3ViamVjdC52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHN0YXRlKHN0YXRlOiBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bSkge1xuICAgICAgICBpZiAoc3RhdGUgPiB0aGlzLnN0YXRlU3ViamVjdC52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25JbnN0YW5jZSAke3RoaXMuaW5zdGFuY2VMb25nTmFtZX0gLSBzdGF0ZSAjJHtzdGF0ZX06ICR7QWN0aW9uSW5zdGFuY2VTdGF0ZUVudW1bc3RhdGVdfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN0YXRlJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1bHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByZXN1bHQocmVzdWx0OiBUIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgQWN0aW9uSW5zdGFuY2UgJHt0aGlzLmluc3RhbmNlTG9uZ05hbWV9IC0gcmVzdWx0YCwgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMucmVzdWx0U3ViamVjdC5uZXh0KHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1bHQkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXN1bHRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXJyb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGVycm9yKGVycm9yOiBBY3Rpb25FcnJvciB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25JbnN0YW5jZSAke3RoaXMuaW5zdGFuY2VMb25nTmFtZX0gLSBlcnJvcmAsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lcnJvciA9IGVycm9yO1xuICAgICAgICB0aGlzLmVycm9yU3ViamVjdC5uZXh0KGVycm9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVycm9yJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250ZXh0QXQoaWR4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGlkeCA8IHRoaXMuY29udGV4dHMubGVuZ3RoID8gdGhpcy5jb250ZXh0c1tpZHhdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZXdDb250ZXh0KGNvbnRleHQ6IEFjdGlvbkNvbnRleHQ8VCwgUz4sIGZpbmlzaFByZXZpb3VzID0gdHJ1ZSkge1xuICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgQWN0aW9uSW5zdGFuY2UgJHt0aGlzLmluc3RhbmNlTG9uZ05hbWV9IC0gbmV3IGNvbnRleHQgJHtjb250ZXh0LmNvbnRleHRMb25nTmFtZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dDtcbiAgICAgICAgaWYgKGN1cnJlbnRDb250ZXh0KSB7XG4gICAgICAgICAgICBjdXJyZW50Q29udGV4dC5leGVjdXRpb25Db21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5jb250ZXh0RXhlY3V0aW9uU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgY29udGV4dC5leGVjdXRpb24kLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogbmV4dCA9PiB0aGlzLmV4ZWN1dGlvblN1YmplY3QubmV4dChuZXh0KSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IgPT4gdGhpcy5leGVjdXRpb25TdWJqZWN0LmVycm9yKGVycm9yKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb250ZXh0RXhlY3V0aW9uU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgY29udGV4dC5leGVjdXRpb25Jc1J1bm5pbmckLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogbmV4dCA9PiB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QubmV4dChuZXh0KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5pc2goKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlU3ViamVjdC52YWx1ZSA8IEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaFN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5GaW5pc2hTdWNjZXNzO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbXBsZXRlIGFsbCBzdWJqZWN0c1xuICAgICAgICB0aGlzLmNvbnRleHRzLmZvckVhY2goYyA9PiBjLmZpbmlzaCgpKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnJlc3VsdFN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5lcnJvclN1YmplY3QuY29tcGxldGUoKTtcbiAgICB9XG59XG5cbi8qKlxuICogQ2xhc3MgY29udGFpbmluZyBhbGwgbWFpbiBkYXRhIGZvciBhY3Rpb24gdG8gYmUgZXhlY3V0ZWQgaW4gcnVuL2ZldGNoL3N1Ym1pdCBzdGF0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db250ZXh0PFQsIFM+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGV4dExvbmdOYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHByZXZpb3VzQWN0aW9uSW5zdGFuY2U/OiBBY3Rpb25JbnN0YW5jZTx1bmtub3duLCB1bmtub3duPjtcbiAgICBwdWJsaWMgY29uZmlybWF0aW9uPzogQ29uZmlybWF0aW9uO1xuICAgIHB1YmxpYyBub3RpZmljYXRpb24/OiBNZXNzYWdlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZTogQWN0aW9uSW5zdGFuY2U8VCwgUz4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBBY3Rpb25QYXJhbWV0ZXJzPFQ+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiAncnVuJyB8ICdmZXRjaCcgfCAnc3VibWl0JyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGRhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8VCwgUz4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlSW5zdGFuY2U/OiBTLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxUIHwgbnVsbCB8IHVuZGVmaW5lZD4oMSksXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29udGV4dExvbmdOYW1lID0gYCR7dGhpcy5pbnN0YW5jZS5pbnN0YW5jZUxvbmdOYW1lfV8ke2Z1bmN0aW9uTmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXhlY3V0aW9uJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV4ZWN1dGlvbklzUnVubmluZyQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0aW9uU3RhcnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25Db250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIHN0YXJ0YCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4ZWN1dGlvbk5leHQobmV4dDogVCB8IG51bGwgfCB1bmRlZmluZWQsIGZpbmlzaCA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYEFjdGlvbkNvbnRleHQgJHt0aGlzLmNvbnRleHRMb25nTmFtZX0gLSBleGVjdXRpb24gbmV4dCBldmVudGAsIG5leHQsIGZpbmlzaCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0Lm5leHQobmV4dCk7XG4gICAgICAgIGlmIChmaW5pc2gpIHtcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0aW9uQ29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBleGVjdXRpb25Db21wbGV0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYEFjdGlvbkNvbnRleHQgJHt0aGlzLmNvbnRleHRMb25nTmFtZX0gLSBleGVjdXRpb24gY29tcGxldGVgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4ZWN1dGlvblN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleGVjdXRpb25FcnJvcihlcnI6IE1uZ0Vycm9yKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25Db250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIGVycm9yYCwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4ZWN1dGlvblN1YmplY3QuZXJyb3IoZXJyKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5pc2goKSB7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuY29tcGxldGUoKTtcbiAgICB9XG59XG5cbi8qKlxuICogQ2xhc3MgY29udGFpbmluZyBhbGwgbWFpbiBkYXRhIGZvciBhY3Rpb24gdmFsaWRhdGlvbnMgKGVuYWJsZWQvdmlzaWJsZSkgdG8gYmUgZXhlY3V0ZWQgaW4gdmFsaWRhdGlvbiBzdGF0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db250ZXh0VmFsaWRhdGlvbjxULCBTPiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdG9yOiBBY3Rpb25EZXNjcmlwdG9yPFQ+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogQWN0aW9uUGFyYW1ldGVyczxUPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGRhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8VCwgUz4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlSW5zdGFuY2U/OiBTXG4gICAgKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uUGFyYW1ldGVyczxUPiB7XG4gICAgcHVibGljIGFjdGlvbkRhdGE/OiBBY3Rpb25EYXRhO1xuICAgIHB1YmxpYyBxdWVyeVBhcmFtPzogTWVkaXVzUXVlcnlQYXJhbTtcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcj86IElWaWV3Q29udGFpbmVyPFQsIHVua25vd24+O1xuICAgIHB1YmxpYyBzb3VyY2VDb21wb25lbnQ/OiBhbnk7XG4gICAgcHVibGljIHJvdXRlPzogQWN0aXZhdGVkUm91dGU7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXRlbUlkPzogSWRUeXBlLCBwdWJsaWMgaXRlbT86IFQpIHt9XG5cbiAgICBwdWJsaWMgd2l0aEFjdGlvbkRhdGEoYWN0aW9uRGF0YT86IEFjdGlvbkRhdGEpIHtcbiAgICAgICAgdGhpcy5hY3Rpb25EYXRhID0gYWN0aW9uRGF0YTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhRdWVyeVBhcmFtKHF1ZXJ5UGFyYW0/OiBNZWRpdXNRdWVyeVBhcmFtKSB7XG4gICAgICAgIHRoaXMucXVlcnlQYXJhbSA9IHF1ZXJ5UGFyYW07XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVmlld0NvbnRhaW5lcjxTPih2aWV3Q29udGFpbmVyPzogSVZpZXdDb250YWluZXI8VCwgUz4pIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyID0gdmlld0NvbnRhaW5lcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTb3VyY2VDb21wb25lbnQoc291cmNlQ29tcG9uZW50PzogYW55KSB7XG4gICAgICAgIHRoaXMuc291cmNlQ29tcG9uZW50ID0gc291cmNlQ29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJvdXRlKHJvdXRlPzogQWN0aXZhdGVkUm91dGUpIHtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtIHtcbiAgICBUcmlnZ2VyU3RhcnQsIC8vIGFjdGlvbiB3YXMgdHJpZ2dlcmVkIChjbGljayBvciBkaXJlY3QpXG4gICAgVHJpZ2dlckVuZCxcbiAgICBBY3RpdmF0aW9uU3RhcnQsIC8vIGFjdGlvbiBhY3RpdmF0aW9uIHN0YXJ0ZWQgKGRpcmVjdCwgZXZlbnQgb3IgZWRpdG9yKVxuICAgIEFjdGl2YXRpb25FbmQsIC8vIGFjdGlvbiBhY3RpdmF0aW9uIGVuZGVkXG4gICAgRmV0Y2hTdGFydCwgLy8gZmV0Y2ggc3RhcnRlZFxuICAgIEZldGNoRW5kLCAvLyBmZXRjaCBlbmRlZFxuICAgIEZldGNoRXJyb3IsIC8vIGZldGNoIGVycm9yXG4gICAgUnVuQ29uZmlybWF0aW9uU3RhcnQsIC8vIGNvbmZpcm1hdGlvbiBmb3IgcnVuIGlzIHN0YXJ0ZWRcbiAgICBSdW5Db25maXJtYXRpb25FbmRBY2NlcHQsIC8vIGNvbmZpcm1hdGlvbiBhY2NlcHRlZFxuICAgIFJ1bkNvbmZpcm1hdGlvbkVuZFJlamVjdCwgLy8gY29uZmlybWF0aW9uIHJlamVjdGVkXG4gICAgUnVuU3RhcnQsIC8vIGFjdGlvbiB3YXMgcnVuIGJ5IGNhbGxpbmcgbWFpbiBmdW5jdGlvblxuICAgIFJ1bkVuZCwgLy8gYWN0aW9uIHJ1biBmdW5jdGlvbiBleGVjdXRlZFxuICAgIFJ1bkVycm9yLCAvLyBhY3Rpb24gcnVuIGZ1bmN0aW9uIGV4ZWN1dGVkXG4gICAgTmV4dEFjdGlvblN0YXJ0LCAvLyBuZXh0IGFjdGlvbiBzdGFydGVkXG4gICAgTmV4dEFjdGlvbkVuZCwgLy8gbmV4dCBhY3Rpb24gZmluaXNoZWRcbiAgICBGaW5pc2hTdWNjZXNzLCAvLyBhY3Rpb24gZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAgRmluaXNoRXJyb3IsIC8vIGFjdGlvbiBleGVjdXRlZCB3aXRoIGVycm9yXG4gICAgRmluaXNoRGlzbWlzc2VkIC8vIGFjdGlvbiB3YXMgZGlzbWlzc2VkIGJ5IHVzZXJcbn1cblxuZXhwb3J0IHR5cGUgQWN0aW9uRGF0YSA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuIl19
@@ -1,3 +1,3 @@
1
- export * from './action-confirmation-service.model';
2
- export * from './action-execution.model';
1
+ export * from './action-confirmation-service.model';
2
+ export * from './action-execution.model';
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbi1jb25maXJtYXRpb24tc2VydmljZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi1leGVjdXRpb24ubW9kZWwnO1xuIl19