@mediusinc/mng-commons 0.0.1-rc.2 → 0.2.0

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 (436) hide show
  1. package/README.md +97 -2
  2. package/assets/i18n/en.json +156 -0
  3. package/assets/i18n/sl.json +156 -0
  4. package/assets/images/effect-ondark.png +0 -0
  5. package/assets/images/effect-ondark.svg +38 -0
  6. package/assets/images/effect-ondark@2x.png +0 -0
  7. package/assets/images/effect-onlight.png +0 -0
  8. package/assets/images/effect-onlight.svg +38 -0
  9. package/assets/images/effect-onlight@2x.png +0 -0
  10. package/assets/images/pages/exception-ondark.png +0 -0
  11. package/assets/images/pages/exception-onlight.png +0 -0
  12. package/assets/images/pages/login-ondark.png +0 -0
  13. package/assets/images/pages/login-onlight.png +0 -0
  14. package/assets/templates/tableview-route.component.html +5 -0
  15. package/esm2020/lib/api/models/builders/query-param.builder.mjs +9 -10
  16. package/esm2020/lib/api/models/filter-match-type.model.mjs +14 -12
  17. package/esm2020/lib/api/models/filter-param.model.mjs +6 -6
  18. package/esm2020/lib/api/models/mappers.mjs +12 -12
  19. package/esm2020/lib/api/models/query-mode.model.mjs +7 -7
  20. package/esm2020/lib/api/models/query-param.model.mjs +5 -5
  21. package/esm2020/lib/api/models/query-result.model.mjs +15 -15
  22. package/esm2020/lib/api/services/{abstract-crud-api.service.mjs → crud-api.abstract.service.mjs} +2 -2
  23. package/esm2020/lib/api/services/index.mjs +2 -2
  24. package/esm2020/lib/api/utils/medius-rest.util.mjs +99 -47
  25. package/esm2020/lib/api/utils/object-serializer.util.mjs +1 -1
  26. package/esm2020/lib/components/action/action.component.mjs +10 -8
  27. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +24 -24
  28. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +2 -0
  29. package/esm2020/lib/components/action/models/action-execution.model.mjs +58 -0
  30. package/esm2020/lib/components/action/models/index.mjs +3 -0
  31. package/esm2020/lib/components/action/route/action-route.component.mjs +9 -9
  32. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +114 -0
  33. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +113 -0
  34. package/esm2020/lib/components/form/editor/form-editor.component.mjs +24 -23
  35. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +9 -48
  36. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +9 -41
  37. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +5 -5
  38. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +5 -5
  39. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +33 -18
  40. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +11 -13
  41. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +5 -5
  42. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +5 -5
  43. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +5 -5
  44. package/esm2020/lib/components/form/index.mjs +3 -1
  45. package/esm2020/lib/components/form/models/form-editor.event.mjs +7 -0
  46. package/esm2020/lib/components/form/models/index.mjs +2 -0
  47. package/esm2020/lib/components/layout/breadcrumb.component.mjs +17 -0
  48. package/esm2020/lib/components/layout/footer.component.mjs +17 -0
  49. package/esm2020/lib/components/layout/index.mjs +7 -7
  50. package/esm2020/lib/components/layout/main-layout.component.mjs +54 -0
  51. package/esm2020/lib/components/layout/menu-item.component.mjs +173 -0
  52. package/esm2020/lib/components/layout/menu.component.mjs +20 -0
  53. package/esm2020/lib/components/layout/services/index.mjs +2 -0
  54. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +190 -0
  55. package/esm2020/lib/components/layout/topbar.component.mjs +59 -0
  56. package/esm2020/lib/components/tableview/index.mjs +3 -1
  57. package/esm2020/lib/components/tableview/models/index.mjs +2 -0
  58. package/esm2020/lib/components/tableview/models/table.event.mjs +16 -0
  59. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +2 -9
  60. package/esm2020/lib/components/tableview/services/index.mjs +2 -0
  61. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +17 -0
  62. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +74 -0
  63. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +25 -0
  64. package/esm2020/lib/components/tableview/table/table.component.mjs +180 -46
  65. package/esm2020/lib/components/tableview/tableview.component.mjs +13 -13
  66. package/esm2020/lib/config/formly.config.mjs +35 -64
  67. package/esm2020/lib/{models/config → config/models}/index.mjs +1 -1
  68. package/esm2020/lib/config/models/mng-config.model.mjs +2 -0
  69. package/esm2020/lib/data-providers/base.data-provider.mjs +24 -0
  70. package/esm2020/lib/data-providers/editor.data-provider.mjs +37 -0
  71. package/esm2020/lib/data-providers/index.mjs +6 -0
  72. package/esm2020/lib/data-providers/lookup.data-provider.mjs +16 -0
  73. package/esm2020/lib/data-providers/table.data-provider.mjs +2 -0
  74. package/esm2020/lib/data-providers/tableview.data-provider.mjs +17 -0
  75. package/esm2020/lib/descriptors/action.descriptor.mjs +332 -0
  76. package/esm2020/lib/descriptors/editor.descriptor.mjs +670 -0
  77. package/esm2020/lib/descriptors/field.validator.mjs +21 -0
  78. package/esm2020/lib/descriptors/index.mjs +8 -0
  79. package/esm2020/lib/descriptors/lookup.descriptor.mjs +2 -0
  80. package/esm2020/lib/descriptors/model.descriptor.mjs +34 -0
  81. package/esm2020/lib/descriptors/table.descriptor.mjs +401 -0
  82. package/esm2020/lib/descriptors/tableview.descriptor.mjs +131 -0
  83. package/esm2020/lib/directives/component.directive.mjs +23 -0
  84. package/esm2020/lib/directives/index.mjs +2 -1
  85. package/esm2020/lib/directives/template.directive.mjs +11 -7
  86. package/esm2020/lib/mng-commons.module.mjs +201 -129
  87. package/esm2020/lib/models/index.mjs +3 -0
  88. package/esm2020/lib/models/router.model.mjs +2 -0
  89. package/esm2020/lib/models/user.model.mjs +2 -0
  90. package/esm2020/lib/pipes/boolean.pipe.mjs +22 -0
  91. package/esm2020/lib/pipes/index.mjs +2 -1
  92. package/esm2020/lib/pipes/property-path.pipe.mjs +5 -5
  93. package/esm2020/lib/services/action.service.mjs +55 -25
  94. package/esm2020/lib/services/commons.service.mjs +353 -0
  95. package/esm2020/lib/services/configuration.service.mjs +8 -7
  96. package/esm2020/lib/services/index.mjs +2 -4
  97. package/esm2020/lib/services/navigation.service.mjs +5 -6
  98. package/esm2020/lib/services/providers/commons-init.provider.mjs +4 -0
  99. package/esm2020/lib/services/providers/config-service.provider.mjs +14 -6
  100. package/esm2020/lib/services/providers/formly-config.provider.mjs +2 -2
  101. package/esm2020/lib/services/providers/index.mjs +2 -1
  102. package/esm2020/lib/services/tokens/browser-storage.token.mjs +6 -0
  103. package/esm2020/lib/services/tokens/index.mjs +3 -0
  104. package/esm2020/lib/services/tokens/module-config.token.mjs +3 -0
  105. package/esm2020/lib/types/index.mjs +3 -0
  106. package/esm2020/lib/types/type.decorator.mjs +7 -0
  107. package/esm2020/lib/types/type.model.mjs +2 -0
  108. package/esm2020/lib/utils/editor-formly.util.mjs +23 -12
  109. package/esm2020/lib/utils/i18n.util.mjs +63 -13
  110. package/esm2020/lib/utils/index.mjs +2 -1
  111. package/esm2020/lib/utils/model.util.mjs +20 -1
  112. package/esm2020/lib/utils/toast.util.mjs +39 -0
  113. package/esm2020/lib/utils/type.util.mjs +2 -6
  114. package/esm2020/public-api.mjs +12 -9
  115. package/fesm2015/mediusinc-mng-commons.mjs +4552 -3358
  116. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  117. package/fesm2020/mediusinc-mng-commons.mjs +4520 -3356
  118. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  119. package/lib/api/models/builders/query-param.builder.d.ts +9 -9
  120. package/lib/api/models/filter-match-type.model.d.ts +7 -5
  121. package/lib/api/models/filter-param.model.d.ts +3 -3
  122. package/lib/api/models/query-mode.model.d.ts +1 -1
  123. package/lib/api/models/query-param.model.d.ts +5 -5
  124. package/lib/api/models/query-result.model.d.ts +5 -5
  125. package/lib/api/services/{abstract-crud-api.service.d.ts → crud-api.abstract.service.d.ts} +4 -4
  126. package/lib/api/services/index.d.ts +1 -1
  127. package/lib/api/utils/medius-rest.util.d.ts +9 -3
  128. package/lib/api/utils/object-serializer.util.d.ts +1 -1
  129. package/lib/components/action/action.component.d.ts +10 -10
  130. package/lib/components/action/dialog/action-dialog.component.d.ts +13 -15
  131. package/lib/{models/interfaces/confirmation-service.model.d.ts → components/action/models/action-confirmation-service.model.d.ts} +2 -2
  132. package/lib/{models/action/action.model.d.ts → components/action/models/action-execution.model.d.ts} +3 -3
  133. package/lib/components/action/models/index.d.ts +2 -0
  134. package/lib/components/action/route/action-route.component.d.ts +8 -8
  135. package/lib/components/form/autocomplete/autocomplete.component.d.ts +36 -0
  136. package/lib/components/form/dropdown/dropdown.component.d.ts +34 -0
  137. package/lib/components/form/editor/form-editor.component.d.ts +9 -7
  138. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +4 -14
  139. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +4 -12
  140. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +3 -3
  141. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +4 -4
  142. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +4 -4
  143. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +7 -7
  144. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +3 -3
  145. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +3 -3
  146. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +3 -3
  147. package/lib/components/form/index.d.ts +2 -0
  148. package/lib/components/form/models/form-editor.event.d.ts +5 -0
  149. package/lib/components/form/models/index.d.ts +1 -0
  150. package/lib/components/layout/breadcrumb.component.d.ts +8 -0
  151. package/lib/components/layout/footer.component.d.ts +9 -0
  152. package/lib/components/layout/index.d.ts +6 -6
  153. package/lib/components/layout/main-layout.component.d.ts +21 -0
  154. package/lib/components/layout/menu-item.component.d.ts +29 -0
  155. package/lib/components/layout/menu.component.d.ts +10 -0
  156. package/lib/components/layout/services/index.d.ts +1 -0
  157. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -0
  158. package/lib/components/layout/topbar.component.d.ts +25 -0
  159. package/lib/components/tableview/index.d.ts +2 -0
  160. package/lib/components/tableview/models/index.d.ts +1 -0
  161. package/lib/{models/events/table-event.model.d.ts → components/tableview/models/table.event.d.ts} +5 -5
  162. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +2 -3
  163. package/lib/components/tableview/services/index.d.ts +1 -0
  164. package/lib/components/tableview/{tableview.component.service.d.ts → services/tableview.component.service.d.ts} +4 -2
  165. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +22 -0
  166. package/lib/components/tableview/table/column-value/column-value.component.d.ts +12 -0
  167. package/lib/components/tableview/table/table.component.d.ts +45 -13
  168. package/lib/components/tableview/tableview.component.d.ts +11 -12
  169. package/lib/config/formly.config.d.ts +8 -2
  170. package/lib/{models/config → config/models}/index.d.ts +0 -0
  171. package/lib/config/models/mng-config.model.d.ts +34 -0
  172. package/lib/data-providers/base.data-provider.d.ts +17 -0
  173. package/lib/data-providers/editor.data-provider.d.ts +25 -0
  174. package/lib/data-providers/index.d.ts +5 -0
  175. package/lib/data-providers/lookup.data-provider.d.ts +14 -0
  176. package/lib/data-providers/table.data-provider.d.ts +6 -0
  177. package/lib/data-providers/tableview.data-provider.d.ts +15 -0
  178. package/lib/{models/descriptors/action-descriptor.model.d.ts → descriptors/action.descriptor.d.ts} +27 -3
  179. package/lib/{models/descriptors/editor-descriptor.model.d.ts → descriptors/editor.descriptor.d.ts} +18 -11
  180. package/lib/{models/validators → descriptors}/field.validator.d.ts +0 -0
  181. package/lib/descriptors/index.d.ts +7 -0
  182. package/lib/descriptors/lookup.descriptor.d.ts +17 -0
  183. package/lib/{models/descriptors/model-descriptor.model.d.ts → descriptors/model.descriptor.d.ts} +0 -0
  184. package/lib/descriptors/table.descriptor.d.ts +164 -0
  185. package/lib/{models/descriptors/tableview-descriptor.model.d.ts → descriptors/tableview.descriptor.d.ts} +7 -6
  186. package/lib/directives/component.directive.d.ts +11 -0
  187. package/lib/directives/index.d.ts +1 -0
  188. package/lib/directives/template.directive.d.ts +7 -5
  189. package/lib/mng-commons.module.d.ts +70 -65
  190. package/lib/models/index.d.ts +2 -0
  191. package/lib/models/router.model.d.ts +14 -0
  192. package/lib/models/user.model.d.ts +8 -0
  193. package/lib/pipes/boolean.pipe.d.ts +7 -0
  194. package/lib/pipes/index.d.ts +1 -0
  195. package/lib/pipes/property-path.pipe.d.ts +3 -3
  196. package/lib/services/action.service.d.ts +10 -10
  197. package/lib/services/commons.service.d.ts +72 -0
  198. package/lib/services/configuration.service.d.ts +3 -3
  199. package/lib/services/index.d.ts +1 -3
  200. package/lib/services/navigation.service.d.ts +3 -3
  201. package/lib/services/providers/commons-init.provider.d.ts +2 -0
  202. package/lib/services/providers/config-service.provider.d.ts +4 -4
  203. package/lib/services/providers/formly-config.provider.d.ts +2 -2
  204. package/lib/services/providers/index.d.ts +1 -0
  205. package/lib/services/tokens/browser-storage.token.d.ts +2 -0
  206. package/lib/services/tokens/index.d.ts +2 -0
  207. package/lib/services/tokens/module-config.token.d.ts +3 -0
  208. package/lib/{models/types → types}/index.d.ts +0 -0
  209. package/lib/{models/types → types}/type.decorator.d.ts +0 -0
  210. package/lib/{models/types → types}/type.model.d.ts +0 -0
  211. package/lib/utils/editor-formly.util.d.ts +1 -1
  212. package/lib/utils/i18n.util.d.ts +8 -4
  213. package/lib/utils/index.d.ts +1 -0
  214. package/lib/utils/model.util.d.ts +3 -1
  215. package/lib/utils/toast.util.d.ts +13 -0
  216. package/lib/utils/type.util.d.ts +1 -1
  217. package/mediusinc-mng-commons-0.2.0.tgz +0 -0
  218. package/package.json +4 -4
  219. package/public-api.d.ts +10 -7
  220. package/scss/common/layout/_breadcrumb.scss +96 -0
  221. package/scss/common/layout/_config.scss +101 -0
  222. package/scss/common/layout/_dashboard.scss +16 -0
  223. package/scss/common/layout/_exception.scss +131 -0
  224. package/scss/common/layout/_footer.scss +29 -0
  225. package/scss/common/layout/_help.scss +157 -0
  226. package/scss/common/layout/_inlinemenu.scss +55 -0
  227. package/scss/common/layout/_invoice.scss +176 -0
  228. package/scss/common/layout/_landing.scss +639 -0
  229. package/scss/common/layout/_layout_dark.scss +23 -0
  230. package/scss/common/layout/_layout_light.scss +23 -0
  231. package/scss/common/layout/_loader.scss +18 -0
  232. package/scss/common/layout/_login.scss +106 -0
  233. package/scss/common/layout/_main.scss +45 -0
  234. package/scss/common/layout/_mixins.scss +214 -0
  235. package/scss/common/layout/_rightmenu.scss +125 -0
  236. package/scss/common/layout/_topbar.scss +189 -0
  237. package/scss/common/layout/_typography.scss +63 -0
  238. package/scss/common/layout/_utils.scss +96 -0
  239. package/scss/common/layout/_widgets.scss +391 -0
  240. package/scss/common/layout/menu/_menu.scss +7 -0
  241. package/scss/common/layout/menu/_menu_common.scss +183 -0
  242. package/scss/common/layout/menu/_menu_overlay.scss +52 -0
  243. package/scss/common/layout/menu/_menu_sidebar.scss +232 -0
  244. package/scss/common/layout/menu/_menu_slim.scss +138 -0
  245. package/scss/common/layout/menu/_menu_static.scss +70 -0
  246. package/scss/common/layout/menu/_menu_theme.scss +365 -0
  247. package/scss/common/theme/_theme_dark.scss +5 -0
  248. package/scss/common/theme/_theme_light.scss +5 -0
  249. package/scss/common/theme/designer/_colors.scss +18 -0
  250. package/scss/common/theme/designer/_common.scss +40 -0
  251. package/scss/common/theme/designer/_components.scss +101 -0
  252. package/scss/common/theme/designer/_mixins.scss +174 -0
  253. package/scss/common/theme/designer/components/button/_button.scss +560 -0
  254. package/scss/common/theme/designer/components/button/_speeddial.scss +79 -0
  255. package/scss/common/theme/designer/components/button/_splitbutton.scss +1 -0
  256. package/scss/common/theme/designer/components/data/_carousel.scss +37 -0
  257. package/scss/common/theme/designer/components/data/_datatable.scss +266 -0
  258. package/scss/common/theme/designer/components/data/_dataview.scss +55 -0
  259. package/scss/common/theme/designer/components/data/_filter.scss +138 -0
  260. package/scss/common/theme/designer/components/data/_fullcalendar.scss +324 -0
  261. package/scss/common/theme/designer/components/data/_orderlist.scss +91 -0
  262. package/scss/common/theme/designer/components/data/_organizationchart.scss +50 -0
  263. package/scss/common/theme/designer/components/data/_paginator.scss +83 -0
  264. package/scss/common/theme/designer/components/data/_picklist.scss +91 -0
  265. package/scss/common/theme/designer/components/data/_timeline.scss +38 -0
  266. package/scss/common/theme/designer/components/data/_tree.scss +144 -0
  267. package/scss/common/theme/designer/components/data/_treetable.scss +242 -0
  268. package/scss/common/theme/designer/components/data/_virtualscroller.scss +28 -0
  269. package/scss/common/theme/designer/components/file/_fileupload.scss +58 -0
  270. package/scss/common/theme/designer/components/input/_autocomplete.scss +103 -0
  271. package/scss/common/theme/designer/components/input/_calendar.scss +212 -0
  272. package/scss/common/theme/designer/components/input/_cascadeselect.scss +98 -0
  273. package/scss/common/theme/designer/components/input/_checkbox.scss +85 -0
  274. package/scss/common/theme/designer/components/input/_chips.scss +41 -0
  275. package/scss/common/theme/designer/components/input/_colorpicker.scss +19 -0
  276. package/scss/common/theme/designer/components/input/_dropdown.scss +136 -0
  277. package/scss/common/theme/designer/components/input/_editor.scss +122 -0
  278. package/scss/common/theme/designer/components/input/_inputgroup.scss +69 -0
  279. package/scss/common/theme/designer/components/input/_inputmask.scss +3 -0
  280. package/scss/common/theme/designer/components/input/_inputnumber.scss +3 -0
  281. package/scss/common/theme/designer/components/input/_inputswitch.scss +58 -0
  282. package/scss/common/theme/designer/components/input/_inputtext.scss +97 -0
  283. package/scss/common/theme/designer/components/input/_listbox.scss +82 -0
  284. package/scss/common/theme/designer/components/input/_multiselect.scss +164 -0
  285. package/scss/common/theme/designer/components/input/_password.scss +33 -0
  286. package/scss/common/theme/designer/components/input/_radiobutton.scss +78 -0
  287. package/scss/common/theme/designer/components/input/_rating.scss +48 -0
  288. package/scss/common/theme/designer/components/input/_selectbutton.scss +50 -0
  289. package/scss/common/theme/designer/components/input/_slider.scss +69 -0
  290. package/scss/common/theme/designer/components/input/_togglebutton.scss +48 -0
  291. package/scss/common/theme/designer/components/input/_treeselect.scss +89 -0
  292. package/scss/common/theme/designer/components/menu/_breadcrumb.scss +42 -0
  293. package/scss/common/theme/designer/components/menu/_contextmenu.scss +50 -0
  294. package/scss/common/theme/designer/components/menu/_dock.scss +51 -0
  295. package/scss/common/theme/designer/components/menu/_megamenu.scss +102 -0
  296. package/scss/common/theme/designer/components/menu/_menu.scss +41 -0
  297. package/scss/common/theme/designer/components/menu/_menubar.scss +179 -0
  298. package/scss/common/theme/designer/components/menu/_panelmenu.scss +137 -0
  299. package/scss/common/theme/designer/components/menu/_slidemenu.scss +55 -0
  300. package/scss/common/theme/designer/components/menu/_steps.scss +55 -0
  301. package/scss/common/theme/designer/components/menu/_tabmenu.scss +49 -0
  302. package/scss/common/theme/designer/components/menu/_tieredmenu.scss +56 -0
  303. package/scss/common/theme/designer/components/messages/_inlinemessage.scss +64 -0
  304. package/scss/common/theme/designer/components/messages/_message.scss +102 -0
  305. package/scss/common/theme/designer/components/messages/_toast.scss +95 -0
  306. package/scss/common/theme/designer/components/misc/_avatar.scss +30 -0
  307. package/scss/common/theme/designer/components/misc/_badge.scss +48 -0
  308. package/scss/common/theme/designer/components/misc/_blockui.scss +3 -0
  309. package/scss/common/theme/designer/components/misc/_chip.scss +36 -0
  310. package/scss/common/theme/designer/components/misc/_inplace.scss +17 -0
  311. package/scss/common/theme/designer/components/misc/_progressbar.scss +17 -0
  312. package/scss/common/theme/designer/components/misc/_scrolltop.scss +20 -0
  313. package/scss/common/theme/designer/components/misc/_skeleton.scss +8 -0
  314. package/scss/common/theme/designer/components/misc/_tag.scss +33 -0
  315. package/scss/common/theme/designer/components/misc/_terminal.scss +11 -0
  316. package/scss/common/theme/designer/components/multimedia/_galleria.scss +141 -0
  317. package/scss/common/theme/designer/components/overlay/_confirmpopup.scss +67 -0
  318. package/scss/common/theme/designer/components/overlay/_dialog.scss +63 -0
  319. package/scss/common/theme/designer/components/overlay/_overlaypanel.scss +62 -0
  320. package/scss/common/theme/designer/components/overlay/_sidebar.scss +27 -0
  321. package/scss/common/theme/designer/components/overlay/_tooltip.scss +33 -0
  322. package/scss/common/theme/designer/components/panel/_accordion.scss +119 -0
  323. package/scss/common/theme/designer/components/panel/_card.scss +30 -0
  324. package/scss/common/theme/designer/components/panel/_divider.scss +31 -0
  325. package/scss/common/theme/designer/components/panel/_fieldset.scss +47 -0
  326. package/scss/common/theme/designer/components/panel/_panel.scss +42 -0
  327. package/scss/common/theme/designer/components/panel/_scrollpanel.scss +6 -0
  328. package/scss/common/theme/designer/components/panel/_splitter.scss +19 -0
  329. package/scss/common/theme/designer/components/panel/_tabview.scss +66 -0
  330. package/scss/common/theme/designer/components/panel/_toolbar.scss +10 -0
  331. package/scss/common/theme/extensions/_button.scss +99 -0
  332. package/scss/common/theme/extensions/_calendar.scss +18 -0
  333. package/scss/common/theme/extensions/_card.scss +6 -0
  334. package/scss/common/theme/extensions/_carousel.scss +13 -0
  335. package/scss/common/theme/extensions/_checkbox.scss +10 -0
  336. package/scss/common/theme/extensions/_contextmenu.scss +16 -0
  337. package/scss/common/theme/extensions/_datatable.scss +83 -0
  338. package/scss/common/theme/extensions/_dialog.scss +14 -0
  339. package/scss/common/theme/extensions/_fieldset.scss +6 -0
  340. package/scss/common/theme/extensions/_galleria.scss +25 -0
  341. package/scss/common/theme/extensions/_megamenu.scss +18 -0
  342. package/scss/common/theme/extensions/_menu.scss +14 -0
  343. package/scss/common/theme/extensions/_menubar.scss +14 -0
  344. package/scss/common/theme/extensions/_orderlist.scss +38 -0
  345. package/scss/common/theme/extensions/_paginator.scss +19 -0
  346. package/scss/common/theme/extensions/_panelmenu.scss +20 -0
  347. package/scss/common/theme/extensions/_password.scss +5 -0
  348. package/scss/common/theme/extensions/_picklist.scss +38 -0
  349. package/scss/common/theme/extensions/_radiobutton.scss +8 -0
  350. package/scss/common/theme/extensions/_sidebar.scss +19 -0
  351. package/scss/common/theme/extensions/_slidemenu.scss +10 -0
  352. package/scss/common/theme/extensions/_slider.scss +6 -0
  353. package/scss/common/theme/extensions/_steps.scss +50 -0
  354. package/scss/common/theme/extensions/_tieredmenu.scss +14 -0
  355. package/scss/common/theme/extensions/_toast.scss +6 -0
  356. package/scss/common/theme/extensions/_tree.scss +36 -0
  357. package/scss/common/theme/extensions/_treetable.scss +35 -0
  358. package/scss/common/theme/extensions/_vendor_extensions.scss +27 -0
  359. package/scss/common/variables/layout/_common.scss +12 -0
  360. package/scss/common/variables/layout/_layout_dark.scss +71 -0
  361. package/scss/common/variables/layout/_layout_light.scss +71 -0
  362. package/scss/common/variables/theme/_theme_dark.scss +897 -0
  363. package/scss/common/variables/theme/_theme_light.scss +885 -0
  364. package/scss/layout/default/_mng-variables-layout-dark.scss +2 -0
  365. package/scss/layout/default/_mng-variables-layout-light.scss +2 -0
  366. package/scss/layout/default/layout-dark.scss +2 -0
  367. package/scss/layout/default/layout-light.scss +2 -0
  368. package/scss/mng-commons-dark.scss +5 -0
  369. package/scss/mng-commons-light.scss +5 -0
  370. package/scss/mng-overrides/_layout_action.scss +3 -0
  371. package/scss/mng-overrides/_layout_dialog.scss +34 -0
  372. package/scss/mng-overrides/_layout_forms.scss +31 -0
  373. package/scss/mng-overrides/_layout_radio.scss +3 -0
  374. package/scss/mng-overrides/_layout_styles.scss +4 -0
  375. package/scss/mng-overrides/_theme_datatable.scss +9 -0
  376. package/scss/mng-overrides/_theme_dialog.scss +9 -0
  377. package/scss/mng-overrides/_theme_dropdown.scss +6 -0
  378. package/scss/mng-overrides/_theme_styles.scss +9 -0
  379. package/scss/mng-overrides/_theme_tableview.scss +94 -0
  380. package/scss/theme/default/_mng-variables-theme-dark.scss +8 -0
  381. package/scss/theme/default/_mng-variables-theme-light.scss +8 -0
  382. package/scss/theme/default/theme-dark.scss +2 -0
  383. package/scss/theme/default/theme-light.scss +2 -0
  384. package/esm2020/lib/components/layout/app.breadcrumb.component.mjs +0 -27
  385. package/esm2020/lib/components/layout/app.footer.component.mjs +0 -35
  386. package/esm2020/lib/components/layout/app.main.component.mjs +0 -25
  387. package/esm2020/lib/components/layout/app.main.component.service.mjs +0 -133
  388. package/esm2020/lib/components/layout/app.menu.component.mjs +0 -38
  389. package/esm2020/lib/components/layout/app.menuitem.component.mjs +0 -243
  390. package/esm2020/lib/components/layout/app.topbar.component.mjs +0 -135
  391. package/esm2020/lib/components/tableview/tableview.component.service.mjs +0 -18
  392. package/esm2020/lib/models/action/action.model.mjs +0 -58
  393. package/esm2020/lib/models/action/index.mjs +0 -2
  394. package/esm2020/lib/models/config/mng-config.model.mjs +0 -3
  395. package/esm2020/lib/models/descriptors/action-descriptor.model.mjs +0 -283
  396. package/esm2020/lib/models/descriptors/editor-descriptor.model.mjs +0 -647
  397. package/esm2020/lib/models/descriptors/index.mjs +0 -6
  398. package/esm2020/lib/models/descriptors/model-descriptor.model.mjs +0 -34
  399. package/esm2020/lib/models/descriptors/table-descriptor.model.mjs +0 -123
  400. package/esm2020/lib/models/descriptors/tableview-descriptor.model.mjs +0 -124
  401. package/esm2020/lib/models/events/editor-event.model.mjs +0 -14
  402. package/esm2020/lib/models/events/index.mjs +0 -3
  403. package/esm2020/lib/models/events/table-event.model.mjs +0 -16
  404. package/esm2020/lib/models/interfaces/confirmation-service.model.mjs +0 -2
  405. package/esm2020/lib/models/interfaces/index.mjs +0 -2
  406. package/esm2020/lib/models/providers/data-provider.model.mjs +0 -86
  407. package/esm2020/lib/models/providers/index.mjs +0 -2
  408. package/esm2020/lib/models/types/index.mjs +0 -3
  409. package/esm2020/lib/models/types/type.decorator.mjs +0 -8
  410. package/esm2020/lib/models/types/type.model.mjs +0 -2
  411. package/esm2020/lib/models/validators/field.validator.mjs +0 -21
  412. package/esm2020/lib/models/validators/index.mjs +0 -2
  413. package/esm2020/lib/services/breadcrumb.service.mjs +0 -21
  414. package/esm2020/lib/services/menu.service.mjs +0 -26
  415. package/esm2020/lib/services/settings.service.mjs +0 -40
  416. package/lib/components/layout/app.breadcrumb.component.d.ts +0 -16
  417. package/lib/components/layout/app.footer.component.d.ts +0 -8
  418. package/lib/components/layout/app.main.component.d.ts +0 -12
  419. package/lib/components/layout/app.main.component.service.d.ts +0 -40
  420. package/lib/components/layout/app.menu.component.d.ts +0 -14
  421. package/lib/components/layout/app.menuitem.component.d.ts +0 -31
  422. package/lib/components/layout/app.topbar.component.d.ts +0 -16
  423. package/lib/models/action/index.d.ts +0 -1
  424. package/lib/models/config/mng-config.model.d.ts +0 -19
  425. package/lib/models/descriptors/index.d.ts +0 -5
  426. package/lib/models/descriptors/table-descriptor.model.d.ts +0 -45
  427. package/lib/models/events/editor-event.model.d.ts +0 -11
  428. package/lib/models/events/index.d.ts +0 -2
  429. package/lib/models/interfaces/index.d.ts +0 -1
  430. package/lib/models/providers/data-provider.model.d.ts +0 -62
  431. package/lib/models/providers/index.d.ts +0 -1
  432. package/lib/models/validators/index.d.ts +0 -1
  433. package/lib/services/breadcrumb.service.d.ts +0 -9
  434. package/lib/services/menu.service.d.ts +0 -11
  435. package/lib/services/settings.service.d.ts +0 -18
  436. package/mediusinc-mng-commons-0.0.1-rc.2.tgz +0 -0
@@ -1,10 +1,10 @@
1
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, ViewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChildren, Input, ViewChild } from '@angular/core';
2
2
  import { of, ReplaySubject } from 'rxjs';
3
- import { finalize, first, mergeMap } from 'rxjs/operators';
4
- import { ActionError, ActionRunResult } from '../../../models/action';
5
- import { TemplateDirective } from '../../../directives';
6
- import { FormEditorComponent } from '../../../components/form';
7
- import { I18nUtil } from '../../../utils';
3
+ import { catchError, finalize, first, mergeMap } from 'rxjs/operators';
4
+ import { ActionError, ActionRunResult } from '../models';
5
+ import { MngTemplateDirective } from '../../../directives';
6
+ import { MngFormEditorComponent } from '../../form';
7
+ import { I18nUtil, ToastUtil } from '../../../utils';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@ngx-translate/core";
10
10
  import * as i2 from "primeng/dynamicdialog";
@@ -14,16 +14,13 @@ import * as i5 from "../../form/editor/form-editor.component";
14
14
  import * as i6 from "@angular/common";
15
15
  import * as i7 from "primeng/button";
16
16
  import * as i8 from "primeng/ripple";
17
- export class ActionDialogComponent {
17
+ export class MngActionDialogComponent {
18
18
  constructor(injector, translate, dialogRef, dialogConfig, actionService) {
19
19
  this.injector = injector;
20
20
  this.translate = translate;
21
21
  this.dialogRef = dialogRef;
22
22
  this.dialogConfig = dialogConfig;
23
23
  this.actionService = actionService;
24
- // event outputs
25
- this.createEventEmitter = new EventEmitter();
26
- this.visibleChangeEventEmitter = new EventEmitter();
27
24
  this.cmpId = Math.random().toString(36).substring(2);
28
25
  this.loadingSubject = new ReplaySubject(1);
29
26
  this.submitLoadingSubject = new ReplaySubject(1);
@@ -89,9 +86,17 @@ export class ActionDialogComponent {
89
86
  }
90
87
  this.loadingSubject.next(true);
91
88
  this.actionService.runEditorFetch(this.action, this.itemId, this.dataProvider, this.sourceComponent, this.tableviewService)
92
- .pipe(first(), finalize(() => this.loadingSubject.next(false)))
89
+ .pipe(first(), catchError(err => {
90
+ if (this.action.hasRunNotificationError) {
91
+ ToastUtil.actionNotificationError(this.translate, this.action, err, 'fetch', this.tableviewService, this.item);
92
+ }
93
+ throw err;
94
+ }), finalize(() => this.loadingSubject.next(false)))
93
95
  .subscribe(res => {
94
96
  this.item = res.result;
97
+ if (this.action.hasFetchNotificationSuccess) {
98
+ ToastUtil.actionNotificationSuccess(this.translate, this.action, 'fetch', this.action.fetchNotificationSuccessTitle, this.action.fetchNotificationSuccessMessage, this.tableviewService, this.item);
99
+ }
95
100
  this.setDialogHeaderTitle();
96
101
  });
97
102
  }
@@ -109,17 +114,18 @@ export class ActionDialogComponent {
109
114
  .subscribe(t => {
110
115
  requestAnimationFrame(() => {
111
116
  this.dialogConfig.header = t ?? undefined;
117
+ // this.mngCommonsService.setPageTitle(t ?? undefined);
112
118
  });
113
119
  });
114
120
  this.subscriptions.push(subscription);
115
121
  }
116
122
  }
117
- ActionDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionDialogComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.DynamicDialogRef }, { token: i2.DynamicDialogConfig }, { token: i3.ActionService }], target: i0.ɵɵFactoryTarget.Component });
118
- ActionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ActionDialogComponent, selector: "mng-action-dialog", inputs: { action: "action", itemId: "itemId", item: "item", actionData: "actionData", dataProvider: "dataProvider" }, outputs: { createEventEmitter: "onFinished", visibleChangeEventEmitter: "onVisibleChange" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true }, { propertyName: "editorComponent", first: true, predicate: FormEditorComponent, descendants: true }], ngImport: i0, template: "<div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1\">\n <div class=\"text-center\" *ngIf=\"loading$ | async\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n <mng-form-editor *ngIf=\"action.editorDescriptor && !(loading$ | async)\"\n [descriptor]=\"action.editorDescriptor\"\n [item]=\"item\"\n (onSubmit)=\"onSubmit($event)\">\n </mng-form-editor>\n </div>\n <div class=\"flex flex-row justify-content-between\">\n <div></div>\n <div>\n <button type=\"button\" pButton pRipple [label]=\"'general.close' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"closeDialog()\" [disabled]=\"submitLoading$ | async\"></button>\n <button *ngIf=\"isSaveButton\" #submitButton type=\"button\" pButton pRipple\n [label]=\"'general.save' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"saveItem()\"\n [loading]=\"(submitLoading$ | async) ?? false\"\n [disabled]=\"(submitLoading$ | async) ?? false\">\n </button>\n </div>\n </div>\n</div>\n", components: [{ type: i4.ProgressSpinner, selector: "p-progressSpinner", inputs: ["style", "styleClass", "strokeWidth", "fill", "animationDuration"] }, { type: i5.FormEditorComponent, selector: "mng-form-editor", inputs: ["descriptor", "submitLoading", "item", "isSubmitButtonVisible", "isFormDisabled"], outputs: ["onSubmit"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i8.Ripple, selector: "[pRipple]" }], pipes: { "async": i6.AsyncPipe, "translate": i1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionDialogComponent, decorators: [{
123
+ MngActionDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngActionDialogComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.DynamicDialogRef }, { token: i2.DynamicDialogConfig }, { token: i3.MngActionService }], target: i0.ɵɵFactoryTarget.Component });
124
+ MngActionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MngActionDialogComponent, selector: "mng-action-dialog", inputs: { action: "action", itemId: "itemId", item: "item", actionData: "actionData", dataProvider: "dataProvider" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true }, { propertyName: "editorComponent", first: true, predicate: MngFormEditorComponent, descendants: true }], ngImport: i0, template: "<div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1\">\n <div class=\"text-center\" *ngIf=\"loading$ | async\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n <mng-form-editor *ngIf=\"action.editorDescriptor && !(loading$ | async)\"\n [descriptor]=\"action.editorDescriptor\"\n [item]=\"item\"\n (onSubmit)=\"onSubmit($event)\">\n </mng-form-editor>\n </div>\n <div class=\"flex flex-row justify-content-between\">\n <div></div>\n <div>\n <button type=\"button\" pButton pRipple [label]=\"'general.close' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"closeDialog()\" [disabled]=\"submitLoading$ | async\"></button>\n <button *ngIf=\"isSaveButton\" #submitButton type=\"button\" pButton pRipple\n [label]=\"'general.save' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"saveItem()\"\n [loading]=\"(submitLoading$ | async) ?? false\"\n [disabled]=\"(submitLoading$ | async) ?? false\">\n </button>\n </div>\n </div>\n</div>\n", components: [{ type: i4.ProgressSpinner, selector: "p-progressSpinner", inputs: ["style", "styleClass", "strokeWidth", "fill", "animationDuration"] }, { type: i5.MngFormEditorComponent, selector: "mng-form-editor", inputs: ["descriptor", "submitLoading", "item", "isSubmitButtonVisible", "isFormDisabled"], outputs: ["onSubmit"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i8.Ripple, selector: "[pRipple]" }], pipes: { "async": i6.AsyncPipe, "translate": i1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngActionDialogComponent, decorators: [{
120
126
  type: Component,
121
127
  args: [{ selector: 'mng-action-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1\">\n <div class=\"text-center\" *ngIf=\"loading$ | async\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n <mng-form-editor *ngIf=\"action.editorDescriptor && !(loading$ | async)\"\n [descriptor]=\"action.editorDescriptor\"\n [item]=\"item\"\n (onSubmit)=\"onSubmit($event)\">\n </mng-form-editor>\n </div>\n <div class=\"flex flex-row justify-content-between\">\n <div></div>\n <div>\n <button type=\"button\" pButton pRipple [label]=\"'general.close' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"closeDialog()\" [disabled]=\"submitLoading$ | async\"></button>\n <button *ngIf=\"isSaveButton\" #submitButton type=\"button\" pButton pRipple\n [label]=\"'general.save' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"saveItem()\"\n [loading]=\"(submitLoading$ | async) ?? false\"\n [disabled]=\"(submitLoading$ | async) ?? false\">\n </button>\n </div>\n </div>\n</div>\n" }]
122
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TranslateService }, { type: i2.DynamicDialogRef }, { type: i2.DynamicDialogConfig }, { type: i3.ActionService }]; }, propDecorators: { action: [{
128
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TranslateService }, { type: i2.DynamicDialogRef }, { type: i2.DynamicDialogConfig }, { type: i3.MngActionService }]; }, propDecorators: { action: [{
123
129
  type: Input
124
130
  }], itemId: [{
125
131
  type: Input
@@ -129,20 +135,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
129
135
  type: Input
130
136
  }], dataProvider: [{
131
137
  type: Input
132
- }], createEventEmitter: [{
133
- type: Output,
134
- args: ['onFinished']
135
- }], visibleChangeEventEmitter: [{
136
- type: Output,
137
- args: ['onVisibleChange']
138
138
  }], templates: [{
139
139
  type: ContentChildren,
140
- args: [TemplateDirective]
140
+ args: [MngTemplateDirective]
141
141
  }], submitButtonElementRef: [{
142
142
  type: ViewChild,
143
143
  args: ['submitButton']
144
144
  }], editorComponent: [{
145
145
  type: ViewChild,
146
- args: [FormEditorComponent]
146
+ args: [MngFormEditorComponent]
147
147
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL2RpYWxvZy9hY3Rpb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vZGlhbG9nL2FjdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFZLEtBQUssRUFBcUIsTUFBTSxFQUFhLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUk5SyxPQUFPLEVBQWEsRUFBRSxFQUFFLGFBQWEsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQWEsV0FBVyxFQUFFLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBTWhGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVF4QyxNQUFNLE9BQU8scUJBQXFCO0lBaUM5QixZQUNZLFFBQWtCLEVBQ2xCLFNBQTJCLEVBQzVCLFNBQTJCLEVBQzNCLFlBQWlDLEVBQ2hDLGFBQTRCO1FBSjVCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsaUJB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QVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7a0hBeklRLHFCQUFxQjtzR0FBckIscUJBQXFCLHNTQWdCYixpQkFBaUIsdUxBR3ZCLG1CQUFtQixnREMxQ2xDLHN6Q0EwQkE7MkZESGEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLG1CQUFtQixtQkFFWix1QkFBdUIsQ0FBQyxNQUFNOzJOQUsvQixNQUFNO3NCQUFyQixLQUFLO2dCQUdVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBR3dCLGtCQUFrQjtzQkFBL0MsTUFBTTt1QkFBQyxZQUFZO2dCQUNlLHlCQUF5QjtzQkFBM0QsTUFBTTt1QkFBQyxpQkFBaUI7Z0JBR1csU0FBUztzQkFBNUMsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBRUMsc0JBQXNCO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWM7Z0JBQ2UsZUFBZTtzQkFBdEQsU0FBUzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbmFsaXplLCBmaXJzdCwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBY3Rpb25EYXRhLCBBY3Rpb25FcnJvciwgQWN0aW9uUnVuUmVzdWx0fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYWN0aW9uJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7SWRUeXBlfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHtJRWRpdG9yRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcHJvdmlkZXJzJztcbmltcG9ydCB7TW5nRWRpdG9ySXRlbUV2ZW50LCBNbmdFZGl0b3JTdWJtaXRFdmVudH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50cyc7XG5pbXBvcnQge0FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7VGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtGb3JtRWRpdG9yQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHtJMThuVXRpbH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctYWN0aW9uLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkRpYWxvZ0NvbXBvbmVudDxULCBTPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIG1ldGFkYXRhIGFuZCBlZGl0b3IgbW9kZSBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb24hOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yPFQ+O1xuXG4gICAgLy8gZGF0YSBzb3VyY2UgaW5wdXRzXG4gICAgQElucHV0KCkgcHVibGljIGl0ZW1JZD86IElkVHlwZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbT86IFQ7XG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbkRhdGE/OiBBY3Rpb25EYXRhO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIFM+O1xuXG4gICAgLy8gZXZlbnQgb3V0cHV0c1xuICAgIEBPdXRwdXQoJ29uRmluaXNoZWQnKSBwcml2YXRlIGNyZWF0ZUV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8TW5nRWRpdG9ySXRlbUV2ZW50PFQ+PigpO1xuICAgIEBPdXRwdXQoJ29uVmlzaWJsZUNoYW5nZScpIHByaXZhdGUgdmlzaWJsZUNoYW5nZUV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8vIGNvbnRlbnQgYW5kIHZpZXcgcXVlcmllc1xuICAgIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICBAVmlld0NoaWxkKCdzdWJtaXRCdXR0b24nKSBwcml2YXRlIHN1Ym1pdEJ1dHRvbkVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoRm9ybUVkaXRvckNvbXBvbmVudCkgcHJpdmF0ZSBlZGl0b3JDb21wb25lbnQhOiBGb3JtRWRpdG9yQ29tcG9uZW50PFQ+O1xuXG4gICAgcHVibGljIGNtcElkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG5cbiAgICBwcml2YXRlIGxvYWRpbmdTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHJpdmF0ZSBzdWJtaXRMb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHB1YmxpYyBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIHN1Ym1pdExvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5zdWJtaXRMb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgaXNTYXZlQnV0dG9uID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgdGFibGV2aWV3U2VydmljZT86IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8VCwgUz47XG4gICAgcHJpdmF0ZSBzb3VyY2VDb21wb25lbnQ6IGFueSA9IHRoaXM7XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmLFxuICAgICAgICBwdWJsaWMgZGlhbG9nQ29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnLFxuICAgICAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmFjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5hY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS5pdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5pdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtSWQgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLml0ZW1JZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmFjdGlvbkRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbkRhdGEgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmFjdGlvbkRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS50YWJsZXZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxldmlld1NlcnZpY2UgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLnRhYmxldmlldztcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGF0YVByb3ZpZGVyICYmIHRoaXMudGFibGV2aWV3U2VydmljZT8uZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gdGhpcy50YWJsZXZpZXdTZXJ2aWNlLmRhdGFQcm92aWRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS5zb3VyY2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZUNvbXBvbmVudCA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuc291cmNlQ29tcG9uZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1NhdmVCdXR0b24gPSB0eXBlb2YgdGhpcy5hY3Rpb24uc3VibWl0RnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgICAgIHRoaXMuc2V0RGlhbG9nSGVhZGVyVGl0bGUoKTtcblxuICAgICAgICB0aGlzLmxvYWRJdGVtV2l0aERhdGFQcm92aWRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblN1Ym1pdChldmVudDogTW5nRWRpdG9yU3VibWl0RXZlbnQ8VD4pIHtcbiAgICAgICAgaWYgKGV2ZW50LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY3Rpb24uc3VibWl0RnVuY3Rpb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdExvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmFjdGlvblNlcnZpY2UucnVuRWRpdG9yU2F2ZSh0aGlzLmFjdGlvbiwgdGhpcy5pdGVtSWQsIGV2ZW50LmZvcm1JdGVtLCB0aGlzLmRhdGFQcm92aWRlciwgdGhpcy5zb3VyY2VDb21wb25lbnQsIHRoaXMudGFibGV2aWV3U2VydmljZSwgdGhpcy5hY3Rpb25EYXRhKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnN1Ym1pdExvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEaWFsb2cocmVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZURpYWxvZyhyZXN1bHQ/OiBBY3Rpb25SdW5SZXN1bHQ8VCwgYW55LCBhbnk+KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlc3VsdCA/IHJlc3VsdCA6IG5ldyBBY3Rpb25SdW5SZXN1bHQodW5kZWZpbmVkLCB1bmRlZmluZWQsIG5ldyBBY3Rpb25FcnJvcihudWxsLCB0cnVlKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlSXRlbSgpIHtcbiAgICAgICAgdGhpcy5lZGl0b3JDb21wb25lbnQuc3VibWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkSXRlbVdpdGhEYXRhUHJvdmlkZXIoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hY3Rpb24uZmV0Y2hGdW5jdGlvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnJ1bkVkaXRvckZldGNoKHRoaXMuYWN0aW9uLCB0aGlzLml0ZW1JZCwgdGhpcy5kYXRhUHJvdmlkZXIsIHRoaXMuc291cmNlQ29tcG9uZW50LCB0aGlzLnRhYmxldmlld1NlcnZpY2UpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtID0gcmVzLnJlc3VsdDtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpYWxvZ0hlYWRlclRpdGxlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERpYWxvZ0hlYWRlclRpdGxlKCkge1xuICAgICAgICBpZiAodGhpcy5hY3Rpb24uZWRpdG9yVGl0bGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dDb25maWcuaGVhZGVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gSTE4blV0aWwuc3RyZWFtQWN0aW9uVHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGUsIHRoaXMuYWN0aW9uIGFzIEFjdGlvbkRlc2NyaXB0b3I8VD4sICdkaWFsb2cudGl0bGUnLCB1bmRlZmluZWQsIHRoaXMuaXRlbSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKGkxOG5EaWFsb2dUaXRsZSA9PiBpMThuRGlhbG9nVGl0bGUgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBJMThuVXRpbC5nZXRBY3Rpb25UcmFuc2xhdGlvbih0aGlzLnRyYW5zbGF0ZSwgdGhpcy5hY3Rpb24gYXMgQWN0aW9uRGVzY3JpcHRvcjxUPiwgJ3RpdGxlJywgdGhpcy5hY3Rpb24uZWRpdG9yVGl0bGUsIHRoaXMuaXRlbSlcbiAgICAgICAgICAgICAgICAgICAgOiBvZihpMThuRGlhbG9nVGl0bGUpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0ID0+IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZy5oZWFkZXIgPSB0ID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbHVtblwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImxvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxwLXByb2dyZXNzU3Bpbm5lciBbc3R5bGVdPVwie3dpZHRoOiAnM3JlbScsIGhlaWdodDogJzNyZW0nfVwiIHN0cm9rZVdpZHRoPVwiM1wiPjwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bW5nLWZvcm0tZWRpdG9yICpuZ0lmPVwiYWN0aW9uLmVkaXRvckRlc2NyaXB0b3IgJiYgIShsb2FkaW5nJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdG9yXT1cImFjdGlvbi5lZGl0b3JEZXNjcmlwdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIChvblN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgICAgIDwvbW5nLWZvcm0tZWRpdG9yPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGUgW2xhYmVsXT1cIidnZW5lcmFsLmNsb3NlJyB8IHRyYW5zbGF0ZVwiIGljb249XCJwaSBwaS10aW1lc1wiIGNsYXNzPVwicC1idXR0b24tdGV4dFwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgW2Rpc2FibGVkXT1cInN1Ym1pdExvYWRpbmckIHwgYXN5bmNcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpc1NhdmVCdXR0b25cIiAjc3VibWl0QnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidnZW5lcmFsLnNhdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVJdGVtKClcIlxuICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCIoc3VibWl0TG9hZGluZyQgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKHN1Ym1pdExvYWRpbmckIHwgYXN5bmMpID8/IGZhbHNlXCI+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL2RpYWxvZy9hY3Rpb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vZGlhbG9nL2FjdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQXNDLEtBQUssRUFBd0MsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSTlLLE9BQU8sRUFBYSxFQUFFLEVBQUUsYUFBYSxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRSxPQUFPLEVBQWEsV0FBVyxFQUFFLGVBQWUsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQU1uRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVFuRCxNQUFNLE9BQU8sd0JBQXdCO0lBNkJqQyxZQUNZLFFBQWtCLEVBQ2xCLFNBQTJCLEVBQzVCLFNBQTJCLEVBQzNCLFlBQWlDLEVBQ2hDLGFBQStCO1FBSi9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsaUJBQVks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b0JBQW9CO2dCQUVGLHNCQUFzQjtzQkFBeEQsU0FBUzt1QkFBQyxjQUFjO2dCQUNrQixlQUFlO3NCQUF6RCxTQUFTO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmluYWxpemUsIGZpcnN0LCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0FjdGlvbkRhdGEsIEFjdGlvbkVycm9yLCBBY3Rpb25SdW5SZXN1bHR9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7SWRUeXBlfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQge0lFZGl0b3JEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7TW5nRm9ybUVkaXRvclN1Ym1pdEV2ZW50fSBmcm9tICcuLi8uLi9mb3JtL21vZGVscyc7XG5pbXBvcnQge01uZ0FjdGlvblNlcnZpY2UsIE1uZ0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7TW5nRm9ybUVkaXRvckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vZm9ybSc7XG5pbXBvcnQge0kxOG5VdGlsLCBUb2FzdFV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFibGV2aWV3L3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctYWN0aW9uLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0FjdGlvbkRpYWxvZ0NvbXBvbmVudDxULCBTPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIG1ldGFkYXRhIGFuZCBlZGl0b3IgbW9kZSBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb24hOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yPFQ+O1xuXG4gICAgLy8gZGF0YSBzb3VyY2UgaW5wdXRzXG4gICAgQElucHV0KCkgcHVibGljIGl0ZW1JZD86IElkVHlwZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbT86IFQ7XG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbkRhdGE/OiBBY3Rpb25EYXRhO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPFQsIFM+O1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgQENvbnRlbnRDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzITogUXVlcnlMaXN0PE1uZ1RlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIEBWaWV3Q2hpbGQoJ3N1Ym1pdEJ1dHRvbicpIHByaXZhdGUgc3VibWl0QnV0dG9uRWxlbWVudFJlZiE6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZChNbmdGb3JtRWRpdG9yQ29tcG9uZW50KSBwcml2YXRlIGVkaXRvckNvbXBvbmVudCE6IE1uZ0Zvcm1FZGl0b3JDb21wb25lbnQ8VD47XG5cbiAgICBwdWJsaWMgY21wSWQ6IHN0cmluZyA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcblxuICAgIHByaXZhdGUgbG9hZGluZ1N1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwcml2YXRlIHN1Ym1pdExvYWRpbmdTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHVibGljIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgc3VibWl0TG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnN1Ym1pdExvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHB1YmxpYyBpc1NhdmVCdXR0b24gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSB0YWJsZXZpZXdTZXJ2aWNlPzogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxULCBTPjtcbiAgICBwcml2YXRlIHNvdXJjZUNvbXBvbmVudDogYW55ID0gdGhpcztcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBkaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYsXG4gICAgICAgIHB1YmxpYyBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXG4gICAgICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogTW5nQWN0aW9uU2VydmljZSxcbiAgICAgICAgLy8gcHJpdmF0ZSBtbmdDb21tb25zU2VydmljZTogTW5nQ29tbW9uc1NlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmFjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5hY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS5pdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5pdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtSWQgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLml0ZW1JZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmFjdGlvbkRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbkRhdGEgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmFjdGlvbkRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS50YWJsZXZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxldmlld1NlcnZpY2UgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLnRhYmxldmlldztcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGF0YVByb3ZpZGVyICYmIHRoaXMudGFibGV2aWV3U2VydmljZT8uZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gdGhpcy50YWJsZXZpZXdTZXJ2aWNlLmRhdGFQcm92aWRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS5zb3VyY2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZUNvbXBvbmVudCA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuc291cmNlQ29tcG9uZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1NhdmVCdXR0b24gPSB0eXBlb2YgdGhpcy5hY3Rpb24uc3VibWl0RnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgICAgIHRoaXMuc2V0RGlhbG9nSGVhZGVyVGl0bGUoKTtcblxuICAgICAgICB0aGlzLmxvYWRJdGVtV2l0aERhdGFQcm92aWRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblN1Ym1pdChldmVudDogTW5nRm9ybUVkaXRvclN1Ym1pdEV2ZW50PFQ+KSB7XG4gICAgICAgIGlmIChldmVudC5zdWNjZXNzKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uLnN1Ym1pdEZ1bmN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdWJtaXRMb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnJ1bkVkaXRvclNhdmUodGhpcy5hY3Rpb24sIHRoaXMuaXRlbUlkLCBldmVudC5mb3JtSXRlbSwgdGhpcy5kYXRhUHJvdmlkZXIsIHRoaXMuc291cmNlQ29tcG9uZW50LCB0aGlzLnRhYmxldmlld1NlcnZpY2UsIHRoaXMuYWN0aW9uRGF0YSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5zdWJtaXRMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRGlhbG9nKHJlcyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VEaWFsb2cocmVzdWx0PzogQWN0aW9uUnVuUmVzdWx0PFQsIGFueSwgYW55Pikge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQgPyByZXN1bHQgOiBuZXcgQWN0aW9uUnVuUmVzdWx0KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBuZXcgQWN0aW9uRXJyb3IobnVsbCwgdHJ1ZSkpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZUl0ZW0oKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yQ29tcG9uZW50LnN1Ym1pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZEl0ZW1XaXRoRGF0YVByb3ZpZGVyKCkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aW9uLmZldGNoRnVuY3Rpb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5ydW5FZGl0b3JGZXRjaCh0aGlzLmFjdGlvbiwgdGhpcy5pdGVtSWQsIHRoaXMuZGF0YVByb3ZpZGVyLCB0aGlzLnNvdXJjZUNvbXBvbmVudCwgdGhpcy50YWJsZXZpZXdTZXJ2aWNlKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbi5oYXNSdW5Ob3RpZmljYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgVG9hc3RVdGlsLmFjdGlvbk5vdGlmaWNhdGlvbkVycm9yKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgZXJyLCAnZmV0Y2gnLCB0aGlzLnRhYmxldmlld1NlcnZpY2UsIHRoaXMuaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtID0gcmVzLnJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3Rpb24uaGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIFRvYXN0VXRpbC5hY3Rpb25Ob3RpZmljYXRpb25TdWNjZXNzKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgJ2ZldGNoJywgdGhpcy5hY3Rpb24uZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbi5mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlLHRoaXMudGFibGV2aWV3U2VydmljZSwgdGhpcy5pdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREaWFsb2dIZWFkZXJUaXRsZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREaWFsb2dIZWFkZXJUaXRsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmVkaXRvclRpdGxlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnLmhlYWRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IEkxOG5VdGlsLnN0cmVhbUFjdGlvblRyYW5zbGF0aW9uKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiBhcyBBY3Rpb25EZXNjcmlwdG9yPFQ+LCAnZGlhbG9nLnRpdGxlJywgdW5kZWZpbmVkLCB0aGlzLml0ZW0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtZXJnZU1hcChpMThuRGlhbG9nVGl0bGUgPT4gaTE4bkRpYWxvZ1RpdGxlID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gSTE4blV0aWwuZ2V0QWN0aW9uVHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGUsIHRoaXMuYWN0aW9uIGFzIEFjdGlvbkRlc2NyaXB0b3I8VD4sICd0aXRsZScsIHRoaXMuYWN0aW9uLmVkaXRvclRpdGxlLCB0aGlzLml0ZW0pXG4gICAgICAgICAgICAgICAgICAgIDogb2YoaTE4bkRpYWxvZ1RpdGxlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodCA9PiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dDb25maWcuaGVhZGVyID0gdCA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMubW5nQ29tbW9uc1NlcnZpY2Uuc2V0UGFnZVRpdGxlKHQgPz8gdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbHVtblwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiAqbmdJZj1cImxvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxwLXByb2dyZXNzU3Bpbm5lciBbc3R5bGVdPVwie3dpZHRoOiAnM3JlbScsIGhlaWdodDogJzNyZW0nfVwiIHN0cm9rZVdpZHRoPVwiM1wiPjwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bW5nLWZvcm0tZWRpdG9yICpuZ0lmPVwiYWN0aW9uLmVkaXRvckRlc2NyaXB0b3IgJiYgIShsb2FkaW5nJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdG9yXT1cImFjdGlvbi5lZGl0b3JEZXNjcmlwdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIChvblN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgICAgIDwvbW5nLWZvcm0tZWRpdG9yPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGUgW2xhYmVsXT1cIidnZW5lcmFsLmNsb3NlJyB8IHRyYW5zbGF0ZVwiIGljb249XCJwaSBwaS10aW1lc1wiIGNsYXNzPVwicC1idXR0b24tdGV4dFwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgW2Rpc2FibGVkXT1cInN1Ym1pdExvYWRpbmckIHwgYXN5bmNcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpc1NhdmVCdXR0b25cIiAjc3VibWl0QnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidnZW5lcmFsLnNhdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVJdGVtKClcIlxuICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCIoc3VibWl0TG9hZGluZyQgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKHN1Ym1pdExvYWRpbmckIHwgYXN5bmMpID8/IGZhbHNlXCI+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbmZpcm1hdGlvbi1zZXJ2aWNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi9tb2RlbHMvYWN0aW9uLWNvbmZpcm1hdGlvbi1zZXJ2aWNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBY3Rpb25Db25maXJtYXRpb25TZXJ2aWNlIHtcbiAgICBnZXRDb25maXJtYXRpb25TZXJ2aWNlKCk6IENvbmZpcm1hdGlvblNlcnZpY2U7XG4gICAgZ2V0Q29uZmlybWF0aW9uU2VydmljZUluc3RhbmNlS2V5KGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+KTogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,58 @@
1
+ export class ActionExecContext {
2
+ constructor(dataProvider, serviceInstance, data, sourceComponent = null, tableview = null) {
3
+ this.dataProvider = dataProvider;
4
+ this.serviceInstance = serviceInstance;
5
+ this.data = data;
6
+ this.sourceComponent = sourceComponent;
7
+ this.tableview = tableview;
8
+ }
9
+ }
10
+ export class ActionError {
11
+ constructor(error, // error details
12
+ dismissed = false // by user
13
+ ) {
14
+ this.error = error;
15
+ this.dismissed = dismissed;
16
+ }
17
+ }
18
+ export class ActionRunResult {
19
+ constructor(context, result, error) {
20
+ this.context = context;
21
+ this.result = result;
22
+ this.error = error;
23
+ }
24
+ }
25
+ export class ActionActivationResult {
26
+ constructor(runResult, dialogRef) {
27
+ this.runResult = runResult;
28
+ this.dialogRef = dialogRef;
29
+ }
30
+ get runContext() {
31
+ return this.runResult ? this.runResult.context : null;
32
+ }
33
+ get result() {
34
+ return this.runResult ? this.runResult.result : null;
35
+ }
36
+ get error() {
37
+ return this.runResult ? this.runResult.error : null;
38
+ }
39
+ }
40
+ export class ActionTriggerResult {
41
+ constructor(activationResult, routerNavigation) {
42
+ this.activationResult = activationResult;
43
+ this.routerNavigation = routerNavigation;
44
+ }
45
+ get runContext() {
46
+ return this.activationResult ? this.activationResult.runResult : null;
47
+ }
48
+ get result() {
49
+ return this.activationResult ? this.activationResult.result : null;
50
+ }
51
+ get error() {
52
+ return this.activationResult ? this.activationResult.error : null;
53
+ }
54
+ get dialogRef() {
55
+ return this.activationResult ? this.activationResult.dialogRef : null;
56
+ }
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWV4ZWN1dGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzL2FjdGlvbi1leGVjdXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUNvQixZQUFpQixFQUNqQixlQUFtQixFQUNuQixJQUlmLEVBQ2Usa0JBQXVCLElBQUksRUFDM0IsWUFBa0QsSUFBSTtRQVJ0RCxpQkFBWSxHQUFaLFlBQVksQ0FBSztRQUNqQixvQkFBZSxHQUFmLGVBQWUsQ0FBSTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUluQjtRQUNlLG9CQUFlLEdBQWYsZUFBZSxDQUFZO1FBQzNCLGNBQVMsR0FBVCxTQUFTLENBQTZDO0lBQ3ZFLENBQUM7Q0FDUDtBQUVELE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQ29CLEtBQVUsRUFBRyxnQkFBZ0I7SUFDN0IsWUFBcUIsS0FBSyxDQUFDLFVBQVU7O1FBRHJDLFVBQUssR0FBTCxLQUFLLENBQUs7UUFDVixjQUFTLEdBQVQsU0FBUyxDQUFpQjtJQUMzQyxDQUFDO0NBQ1A7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQUN4QixZQUNvQixPQUFxQyxFQUNyQyxNQUFVLEVBQ1YsS0FBbUI7UUFGbkIsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBSTtRQUNWLFVBQUssR0FBTCxLQUFLLENBQWM7SUFDcEMsQ0FBQztDQUNQO0FBRUQsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixZQUNvQixTQUFxQyxFQUNyQyxTQUE0QjtRQUQ1QixjQUFTLEdBQVQsU0FBUyxDQUE0QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFtQjtJQUM3QyxDQUFDO0lBRUosSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEQsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUNvQixnQkFBbUQsRUFDbkQsZ0JBQXNDO1FBRHRDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUM7UUFDbkQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtJQUN2RCxDQUFDO0lBRUosSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHluYW1pY0RpYWxvZ1JlZn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7SWRUeXBlfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQge0lEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFibGV2aWV3L3NlcnZpY2VzJztcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkV4ZWNDb250ZXh0PFQsIFMsIERQIGV4dGVuZHMgSURhdGFQcm92aWRlcjxULCBTPj4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YVByb3ZpZGVyPzogRFAsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlSW5zdGFuY2U/OiBTLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YT86IHtcbiAgICAgICAgICAgIGl0ZW0/OiBUO1xuICAgICAgICAgICAgaXRlbUlkPzogSWRUeXBlO1xuICAgICAgICAgICAgYWN0aW9uRGF0YT86IEFjdGlvbkRhdGE7XG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzb3VyY2VDb21wb25lbnQ6IGFueSA9IG51bGwsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZXZpZXc6IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8VCwgUz58bnVsbCA9IG51bGxcbiAgICApIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FcnJvciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlcnJvcjogYW55LCAgLy8gZXJyb3IgZGV0YWlsc1xuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZGlzbWlzc2VkOiBib29sZWFuID0gZmFsc2UgLy8gYnkgdXNlclxuICAgICkge31cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvblJ1blJlc3VsdDxULCBTLCBEUCBleHRlbmRzIElEYXRhUHJvdmlkZXI8VCwgUz4+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGNvbnRleHQ/OiBBY3Rpb25FeGVjQ29udGV4dDxULCBTLCBEUD4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSByZXN1bHQ/OiBULFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZXJyb3I/OiBBY3Rpb25FcnJvclxuICAgICkge31cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkFjdGl2YXRpb25SZXN1bHQ8VCwgUywgRFAgZXh0ZW5kcyBJRGF0YVByb3ZpZGVyPFQsIFM+PiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBydW5SZXN1bHQ/OiBBY3Rpb25SdW5SZXN1bHQ8VCwgUywgRFA+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZGlhbG9nUmVmPzogRHluYW1pY0RpYWxvZ1JlZlxuICAgICkge31cblxuICAgIHB1YmxpYyBnZXQgcnVuQ29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnVuUmVzdWx0ID8gdGhpcy5ydW5SZXN1bHQuY29udGV4dCA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1bHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJ1blJlc3VsdCA/IHRoaXMucnVuUmVzdWx0LnJlc3VsdCA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnVuUmVzdWx0ID8gdGhpcy5ydW5SZXN1bHQuZXJyb3IgOiBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvblRyaWdnZXJSZXN1bHQ8VCwgUywgRFAgZXh0ZW5kcyBJRGF0YVByb3ZpZGVyPFQsIFM+PiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBhY3RpdmF0aW9uUmVzdWx0PzogQWN0aW9uQWN0aXZhdGlvblJlc3VsdDxULCBTLCBEUD4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSByb3V0ZXJOYXZpZ2F0aW9uPzogT2JzZXJ2YWJsZTxib29sZWFuPlxuICAgICkge31cblxuICAgIHB1YmxpYyBnZXQgcnVuQ29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZhdGlvblJlc3VsdCA/IHRoaXMuYWN0aXZhdGlvblJlc3VsdC5ydW5SZXN1bHQgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVzdWx0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmF0aW9uUmVzdWx0ID8gdGhpcy5hY3RpdmF0aW9uUmVzdWx0LnJlc3VsdCA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZhdGlvblJlc3VsdCA/IHRoaXMuYWN0aXZhdGlvblJlc3VsdC5lcnJvciA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaWFsb2dSZWYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2YXRpb25SZXN1bHQgPyB0aGlzLmFjdGl2YXRpb25SZXN1bHQuZGlhbG9nUmVmIDogbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRhdGEgPSB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufTtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './action-confirmation-service.model';
2
+ export * from './action-execution.model';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbi1jb25maXJtYXRpb24tc2VydmljZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi1leGVjdXRpb24ubW9kZWwnO1xuIl19
@@ -1,14 +1,14 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { ConfirmationService, MessageService } from 'primeng/api';
3
3
  import { first } from 'rxjs/operators';
4
- import { ActionActivationTriggerEnum } from '../../../models/descriptors';
4
+ import { ActionActivationTriggerEnum } from '../../../descriptors';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/router";
7
7
  import * as i2 from "primeng/api";
8
8
  import * as i3 from "../../../services";
9
- import * as i4 from "../../tableview/tableview.component.service";
9
+ import * as i4 from "../../tableview/services";
10
10
  import * as i5 from "primeng/confirmdialog";
11
- export class ActionRouteComponent {
11
+ export class MngActionRouteComponent {
12
12
  constructor(router, route, confirmationService, navigationService, actionService, tableviewService) {
13
13
  this.router = router;
14
14
  this.route = route;
@@ -60,7 +60,7 @@ export class ActionRouteComponent {
60
60
  .subscribe(res => {
61
61
  if (res.dialogRef) {
62
62
  this.dialogRef = res.dialogRef;
63
- this.dialogCloseSubscription = this.dialogRef.onClose.subscribe(e => {
63
+ this.dialogCloseSubscription = this.dialogRef?.onClose.subscribe(e => {
64
64
  const actionEv = e;
65
65
  if (!actionEv?.error || !actionEv?.error?.dismissed) {
66
66
  this.tableviewService.reloadTable(); // reload only if no error in action and
@@ -135,10 +135,10 @@ export class ActionRouteComponent {
135
135
  return null;
136
136
  }
137
137
  }
138
- ActionRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionRouteComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ConfirmationService }, { token: i3.NavigationService }, { token: i3.ActionService }, { token: i4.TableviewComponentService }], target: i0.ɵɵFactoryTarget.Component });
139
- ActionRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ActionRouteComponent, selector: "mng-action-route", providers: [MessageService, ConfirmationService], ngImport: i0, template: "<p-confirmDialog [key]=\"'actionRoute_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n", components: [{ type: i5.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionRouteComponent, decorators: [{
138
+ MngActionRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngActionRouteComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ConfirmationService }, { token: i3.MngNavigationService }, { token: i3.MngActionService }, { token: i4.TableviewComponentService }], target: i0.ɵɵFactoryTarget.Component });
139
+ MngActionRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MngActionRouteComponent, selector: "mng-action-route", providers: [MessageService, ConfirmationService], ngImport: i0, template: "<p-confirmDialog [key]=\"'actionRoute_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n", components: [{ type: i5.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngActionRouteComponent, decorators: [{
141
141
  type: Component,
142
142
  args: [{ selector: 'mng-action-route', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageService, ConfirmationService], template: "<p-confirmDialog [key]=\"'actionRoute_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n" }]
143
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ConfirmationService }, { type: i3.NavigationService }, { type: i3.ActionService }, { type: i4.TableviewComponentService }]; } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXJvdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vcm91dGUvYWN0aW9uLXJvdXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vcm91dGUvYWN0aW9uLXJvdXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBR3BGLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFHaEUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBbUIsMkJBQTJCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7OztBQVcxRixNQUFNLE9BQU8sb0JBQW9CO0lBWTdCLFlBQ1ksTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLG1CQUF3QyxFQUN4QyxpQkFBb0MsRUFDcEMsYUFBNEIsRUFDNUIsZ0JBQWlEO1FBTGpELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQztRQWhCckQsWUFBTyxHQUErQixFQUFFLENBQUM7UUFNekMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBRXpDLFVBQUssR0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxD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RTtvQkFDdEMsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUNwQixPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNoQixNQUFNO3FCQUNUO2lCQUNKO3FCQUFNLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtvQkFDckQsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDaEIsTUFBTTtpQkFDVDthQUNKO1lBQ0QsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxNQUFNLENBQUM7YUFDakI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O2lIQTFJUSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwyQ0FGbEIsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsMEJDbEJwRCw4R0FDQTsyRkRtQmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtEeW5hbWljRGlhbG9nUmVmfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0FjdGlvbkRhdGEsIEFjdGlvblJ1blJlc3VsdH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2FjdGlvbic7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3IsIEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bX0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7SUNvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbnRlcmZhY2VzJztcbmltcG9ydCB7QWN0aW9uU2VydmljZSwgTmF2aWdhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFibGV2aWV3L3RhYmxldmlldy5jb21wb25lbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWFjdGlvbi1yb3V0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1yb3V0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2UsIENvbmZpcm1hdGlvblNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvblJvdXRlQ29tcG9uZW50PFQsIFM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIElDb25maXJtYXRpb25TZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj4gPSBbXTtcbiAgICBwcml2YXRlIGFjdGl2ZUFjdGlvbj86IEFjdGlvbkRlc2NyaXB0b3I8VD47XG5cbiAgICBwcml2YXRlIGRpYWxvZ1JlZj86IER5bmFtaWNEaWFsb2dSZWY7XG4gICAgcHJpdmF0ZSBkaWFsb2dDbG9zZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gICAgcHVibGljIGNtcElkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogQWN0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0YWJsZXZpZXdTZXJ2aWNlOiBUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlPFQsIFM+XG4gICAgKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMudGFibGV2aWV3U2VydmljZT8uYWN0aW9ucy5maWx0ZXIoYSA9PiBhLmFjdGl2YXRpb25UcmlnZ2VyID09PSBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0uT25Sb3V0ZSkgPz8gW107XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuZmluZEFjdGl2ZUFjdGlvbihwKTtcbiAgICAgICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlQWN0aW9uKGFjdGlvbiwgcCwgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZmlybWF0aW9uU2VydmljZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybWF0aW9uU2VydmljZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZmlybWF0aW9uU2VydmljZUluc3RhbmNlS2V5KGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+KSB7XG4gICAgICAgIHJldHVybiBgYWN0aW9uUm91dGVfJHt0aGlzLmNtcElkfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZUFjdGlvbihhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8VD4sIHA6IFBhcmFtcywgcXA6IFBhcmFtcykge1xuICAgICAgICB0aGlzLmFjdGl2ZUFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgY29uc3QgaXRlbUlkID0gcFsnaXRlbUlkJ107XG4gICAgICAgIGNvbnN0IGFjdGlvbkRhdGE6IEFjdGlvbkRhdGEgPSB7fTtcbiAgICAgICAgZm9yIChsZXQga2V5IGluIHApIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdpdGVtSWQnKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY3Rpb25EYXRhW2tleV0gPSBwW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQga2V5IGluIHFwKSB7XG4gICAgICAgICAgICBhY3Rpb25EYXRhW2tleV0gPSBwW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmFjdGl2YXRlQWN0aW9uKGFjdGlvbiwgaXRlbUlkLCB1bmRlZmluZWQsIGFjdGlvbkRhdGEsIHRoaXMudGFibGV2aWV3U2VydmljZSwgdGhpcylcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlcy5kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSByZXMuZGlhbG9nUmVmO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0Nsb3NlU3Vic2NyaXB0aW9uID0gdGhpcy5kaWFsb2dSZWYub25DbG9zZS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25FdiA9IGUgYXMgQWN0aW9uUnVuUmVzdWx0PFQsIFMsIGFueT47XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGlvbkV2Py5lcnJvciB8fCAhYWN0aW9uRXY/LmVycm9yPy5kaXNtaXNzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxldmlld1NlcnZpY2UucmVsb2FkVGFibGUoKTsgLy8gcmVsb2FkIG9ubHkgaWYgbm8gZXJyb3IgaW4gYWN0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWFjdGl2YXRlQWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVhY3RpdmF0ZUFjdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ2xvc2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ2xvc2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ2xvc2VTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0UHJldmlvdXNMb2NhdGlvbigpKSB7XG4gICAgICAgICAgICAvLyB0aGVyZSBhcmUgaW50ZXJuYWwgaGlzdG9yeSByZWNvcmRzLCBzbyBiYWNrIGNhbiBiZSBub3JtYWxseSBjYWxsZWRcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuYmFjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhlcmUgaXMgbm8gaW50ZXJuYWwgaGlzdG9yeSByZWNvcmRzLCBmaWd1cmUgb3V0IHRoZSBiYXNlIHVybCBieSBlbGltaW5hdGluZyBhY3Rpb24gc3BlY2lmaWMgdXJsXG4gICAgICAgICAgICBsZXQgdXJsID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb24oKTtcbiAgICAgICAgICAgIGlmICghdXJsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5iYWNrKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHVybFBhdGhTZWdtZW50cyA9IHVybC5zcGxpdCgnPycpWzBdLnNwbGl0KCcjJylbMF0uc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgICBsZXQgYWN0aW9uVXJsID0gdGhpcy5hY3RpdmVBY3Rpb24/LnJvdXRlVXJsID8/ICcnO1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb25Vcmwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvblVybCA9IGFjdGlvblVybC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvblVybFNlZ21lbnRzID0gYWN0aW9uVXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RVcmwgPSB1cmxQYXRoU2VnbWVudHMuc2xpY2UoMCwgdXJsUGF0aFNlZ21lbnRzLmxlbmd0aCAtIGFjdGlvblVybFNlZ21lbnRzLmxlbmd0aCkuam9pbignLycpO1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC8ke3JlZGlyZWN0VXJsfWAsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZUFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kQWN0aXZlQWN0aW9uKHBhcmFtczogUGFyYW1zKTogQWN0aW9uRGVzY3JpcHRvcjxUPnxudWxsIHtcbiAgICAgICAgY29uc3QgdXJsU2VnbWVudHMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnVybDtcbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICBsZXQgYWN0aW9uVXJsID0gYWN0aW9uLnJvdXRlVXJsID8/ICcnO1xuICAgICAgICAgICAgLy8gVE9ETzogZG9udCBzdHJpcCAnLycsIGJ1dCB1c2UgaXQgYWNjb3JkaW5nbHkgd2l0aCBBbmd1bGFyJ3Mgcm91dGVyIHBhdHRlcm5zICgvLCAuLywgLi4vKVxuICAgICAgICAgICAgaWYgKGFjdGlvblVybC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25VcmwgPSBhY3Rpb25Vcmwuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWN0aW9uVXJsU2VnbWVudHMgPSBhY3Rpb25Vcmwuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIGlmIChhY3Rpb25VcmxTZWdtZW50cy5sZW5ndGggIT09IHVybFNlZ21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGlzTWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3Rpb25VcmxTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb25VcmxTZWdtZW50c1tpXS5zdGFydHNXaXRoKCc6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gYWN0aW9uVXJsU2VnbWVudHNbaV0uc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcmFtc1twYXJhbU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uVXJsU2VnbWVudHNbaV0gIT09IHVybFNlZ21lbnRzW2ldLnBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNNYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIiwiPHAtY29uZmlybURpYWxvZyBba2V5XT1cIidhY3Rpb25Sb3V0ZV8nICsgY21wSWRcIiBbYmFzZVpJbmRleF09XCI1MFwiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1jb25maXJtRGlhbG9nPlxuIl19
143
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ConfirmationService }, { type: i3.MngNavigationService }, { type: i3.MngActionService }, { type: i4.TableviewComponentService }]; } });
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXJvdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vcm91dGUvYWN0aW9uLXJvdXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vcm91dGUvYWN0aW9uLXJvdXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBR3BGLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFHaEUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBbUIsMkJBQTJCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVduRixNQUFNLE9BQU8sdUJBQXVCO0lBWWhDLFlBQ1ksTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLG1CQUF3QyxFQUN4QyxpQkFBdUMsRUFDdkMsYUFBK0IsRUFDL0IsZ0JBQWlEO1FBTGpELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBc0I7UUFDdkMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFoQnJELFlBQU8sR0FBK0IsRUFBRSxDQUFDO1FBTXpDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQUV6QyxVQUFLLEdBQVcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMs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QUU7b0JBQ3RDLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTt3QkFDcEIsT0FBTyxHQUFHLEtBQUssQ0FBQzt3QkFDaEIsTUFBTTtxQkFDVDtpQkFDSjtxQkFBTSxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7b0JBQ3JELE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ2hCLE1BQU07aUJBQ1Q7YUFDSjtZQUNELElBQUksT0FBTyxFQUFFO2dCQUNULE9BQU8sTUFBTSxDQUFDO2FBQ2pCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztvSEExSVEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkNBRnJCLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLDBCQ2pCcEQsOEdBQ0E7MkZEa0JhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBRVgsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7Q29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7RHluYW1pY0RpYWxvZ1JlZn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3R9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yLCBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW19IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7SUFjdGlvbkNvbmZpcm1hdGlvblNlcnZpY2UsIEFjdGlvbkRhdGEsIEFjdGlvblJ1blJlc3VsdH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7TW5nQWN0aW9uU2VydmljZSwgTW5nTmF2aWdhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFibGV2aWV3L3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctYWN0aW9uLXJvdXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLXJvdXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTW5nQWN0aW9uUm91dGVDb21wb25lbnQ8VCwgUz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgSUFjdGlvbkNvbmZpcm1hdGlvblNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PiA9IFtdO1xuICAgIHByaXZhdGUgYWN0aXZlQWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvcjxUPjtcblxuICAgIHByaXZhdGUgZGlhbG9nUmVmPzogRHluYW1pY0RpYWxvZ1JlZjtcbiAgICBwcml2YXRlIGRpYWxvZ0Nsb3NlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICBwdWJsaWMgY21wSWQ6IHN0cmluZyA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBNbmdOYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBNbmdBY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRhYmxldmlld1NlcnZpY2U6IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8VCwgUz5cbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdGhpcy50YWJsZXZpZXdTZXJ2aWNlPy5hY3Rpb25zLmZpbHRlcihhID0+IGEuYWN0aXZhdGlvblRyaWdnZXIgPT09IEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bS5PblJvdXRlKSA/PyBbXTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHAgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5maW5kQWN0aXZlQWN0aW9uKHApO1xuICAgICAgICAgICAgaWYgKGFjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVBY3Rpb24oYWN0aW9uLCBwLCB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb25maXJtYXRpb25TZXJ2aWNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb25maXJtYXRpb25TZXJ2aWNlSW5zdGFuY2VLZXkoYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4pIHtcbiAgICAgICAgcmV0dXJuIGBhY3Rpb25Sb3V0ZV8ke3RoaXMuY21wSWR9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFjdGl2YXRlQWN0aW9uKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxUPiwgcDogUGFyYW1zLCBxcDogUGFyYW1zKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICBjb25zdCBpdGVtSWQgPSBwWydpdGVtSWQnXTtcbiAgICAgICAgY29uc3QgYWN0aW9uRGF0YTogQWN0aW9uRGF0YSA9IHt9O1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcCkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2l0ZW1JZCcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjdGlvbkRhdGFba2V5XSA9IHBba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcXApIHtcbiAgICAgICAgICAgIGFjdGlvbkRhdGFba2V5XSA9IHBba2V5XTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aXZhdGVBY3Rpb24oYWN0aW9uLCBpdGVtSWQsIHVuZGVmaW5lZCwgYWN0aW9uRGF0YSwgdGhpcy50YWJsZXZpZXdTZXJ2aWNlLCB0aGlzKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRpYWxvZ1JlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHJlcy5kaWFsb2dSZWY7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQ2xvc2VTdWJzY3JpcHRpb24gPSB0aGlzLmRpYWxvZ1JlZj8ub25DbG9zZS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25FdiA9IGUgYXMgQWN0aW9uUnVuUmVzdWx0PFQsIFMsIGFueT47XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGlvbkV2Py5lcnJvciB8fCAhYWN0aW9uRXY/LmVycm9yPy5kaXNtaXNzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxldmlld1NlcnZpY2UucmVsb2FkVGFibGUoKTsgLy8gcmVsb2FkIG9ubHkgaWYgbm8gZXJyb3IgaW4gYWN0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWFjdGl2YXRlQWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVhY3RpdmF0ZUFjdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ2xvc2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ2xvc2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQ2xvc2VTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0UHJldmlvdXNMb2NhdGlvbigpKSB7XG4gICAgICAgICAgICAvLyB0aGVyZSBhcmUgaW50ZXJuYWwgaGlzdG9yeSByZWNvcmRzLCBzbyBiYWNrIGNhbiBiZSBub3JtYWxseSBjYWxsZWRcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuYmFjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhlcmUgaXMgbm8gaW50ZXJuYWwgaGlzdG9yeSByZWNvcmRzLCBmaWd1cmUgb3V0IHRoZSBiYXNlIHVybCBieSBlbGltaW5hdGluZyBhY3Rpb24gc3BlY2lmaWMgdXJsXG4gICAgICAgICAgICBsZXQgdXJsID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb24oKTtcbiAgICAgICAgICAgIGlmICghdXJsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5iYWNrKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHVybFBhdGhTZWdtZW50cyA9IHVybC5zcGxpdCgnPycpWzBdLnNwbGl0KCcjJylbMF0uc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgICBsZXQgYWN0aW9uVXJsID0gdGhpcy5hY3RpdmVBY3Rpb24/LnJvdXRlVXJsID8/ICcnO1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb25Vcmwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvblVybCA9IGFjdGlvblVybC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvblVybFNlZ21lbnRzID0gYWN0aW9uVXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RVcmwgPSB1cmxQYXRoU2VnbWVudHMuc2xpY2UoMCwgdXJsUGF0aFNlZ21lbnRzLmxlbmd0aCAtIGFjdGlvblVybFNlZ21lbnRzLmxlbmd0aCkuam9pbignLycpO1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC8ke3JlZGlyZWN0VXJsfWAsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZUFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kQWN0aXZlQWN0aW9uKHBhcmFtczogUGFyYW1zKTogQWN0aW9uRGVzY3JpcHRvcjxUPnxudWxsIHtcbiAgICAgICAgY29uc3QgdXJsU2VnbWVudHMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnVybDtcbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb25zKSB7XG4gICAgICAgICAgICBsZXQgYWN0aW9uVXJsID0gYWN0aW9uLnJvdXRlVXJsID8/ICcnO1xuICAgICAgICAgICAgLy8gVE9ETzogZG9udCBzdHJpcCAnLycsIGJ1dCB1c2UgaXQgYWNjb3JkaW5nbHkgd2l0aCBBbmd1bGFyJ3Mgcm91dGVyIHBhdHRlcm5zICgvLCAuLywgLi4vKVxuICAgICAgICAgICAgaWYgKGFjdGlvblVybC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25VcmwgPSBhY3Rpb25Vcmwuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWN0aW9uVXJsU2VnbWVudHMgPSBhY3Rpb25Vcmwuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIGlmIChhY3Rpb25VcmxTZWdtZW50cy5sZW5ndGggIT09IHVybFNlZ21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGlzTWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3Rpb25VcmxTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb25VcmxTZWdtZW50c1tpXS5zdGFydHNXaXRoKCc6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gYWN0aW9uVXJsU2VnbWVudHNbaV0uc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcmFtc1twYXJhbU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uVXJsU2VnbWVudHNbaV0gIT09IHVybFNlZ21lbnRzW2ldLnBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNNYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIiwiPHAtY29uZmlybURpYWxvZyBba2V5XT1cIidhY3Rpb25Sb3V0ZV8nICsgY21wSWRcIiBbYmFzZVpJbmRleF09XCI1MFwiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1jb25maXJtRGlhbG9nPlxuIl19
@@ -0,0 +1,114 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
2
+ import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { Subject } from 'rxjs';
4
+ import { finalize, first } from 'rxjs/operators';
5
+ import { AutoComplete } from 'primeng/autocomplete';
6
+ import { MediusFilterMatchType, MediusQueryParamBuilder } from '../../../api/models';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "primeng/autocomplete";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "@angular/common";
11
+ import * as i4 from "@ngx-translate/core";
12
+ export const MNG_AUTOCOMPLETE_VALUE_ACCESSOR = {
13
+ provide: NG_VALUE_ACCESSOR,
14
+ useExisting: forwardRef(() => MngAutocompleteComponent),
15
+ multi: true
16
+ };
17
+ export class MngAutocompleteComponent {
18
+ constructor(injector) {
19
+ this.injector = injector;
20
+ this.multiselect = false;
21
+ this.className = null;
22
+ this.dropdownClassName = null;
23
+ this.onChange = new EventEmitter();
24
+ this.suggestionsSubject = new Subject();
25
+ this.searchSubscription = null;
26
+ this.dataProviderService = null;
27
+ this.onChangeFn = () => { };
28
+ this.onTouchedFn = () => { };
29
+ this.autocompleteFormControl = new FormControl();
30
+ this.suggestions$ = this.suggestionsSubject.asObservable();
31
+ this.isLoading = false;
32
+ }
33
+ ngOnInit() {
34
+ if (this.dataProvider) {
35
+ this.dataProviderService = this.dataProvider.serviceType
36
+ ? this.injector.get(this.dataProvider.serviceType)
37
+ : null;
38
+ }
39
+ else {
40
+ console.warn(`Data provider should be provided for MngAutocompleteComponent.`);
41
+ }
42
+ }
43
+ onSearch(event) {
44
+ if (this.searchSubscription) {
45
+ // try to cancel existing HTTP request subscription
46
+ this.searchSubscription.unsubscribe();
47
+ }
48
+ if (this.dataProvider) {
49
+ this.isLoading = true;
50
+ const queryParamBuilder = MediusQueryParamBuilder.create();
51
+ if (this.itemsLabelProperty) {
52
+ queryParamBuilder.withSort(this.itemsLabelProperty);
53
+ }
54
+ if (event.query && event.query.length > 0 && this.itemsLabelProperty) {
55
+ queryParamBuilder.withFilter(this.itemsLabelProperty, event.query, undefined, MediusFilterMatchType.StartsWith);
56
+ }
57
+ this.searchSubscription = this.dataProvider.lookup(queryParamBuilder.build(), this.dataProviderService, event.query)
58
+ .pipe(first(), finalize(() => this.isLoading = false))
59
+ .subscribe((res) => {
60
+ this.suggestionsSubject.next(res);
61
+ });
62
+ }
63
+ }
64
+ onSelect(value) {
65
+ this.onChangeFn(value);
66
+ this.onChange.next(value);
67
+ }
68
+ registerOnChange(fn) {
69
+ this.onChangeFn = fn;
70
+ }
71
+ registerOnTouched(fn) {
72
+ this.onTouchedFn = fn;
73
+ }
74
+ setDisabledState(isDisabled) {
75
+ if (isDisabled) {
76
+ this.autocompleteFormControl.disable();
77
+ }
78
+ else {
79
+ this.autocompleteFormControl.enable();
80
+ }
81
+ }
82
+ writeValue(obj) {
83
+ this.autocompleteFormControl.setValue(obj, { emitEvent: false });
84
+ if (this.primeAutocomplete) {
85
+ this.primeAutocomplete.writeValue(obj);
86
+ }
87
+ }
88
+ }
89
+ MngAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngAutocompleteComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
90
+ MngAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: { dataProvider: "dataProvider", dataKeyProperty: "dataKeyProperty", itemsLabelProperty: "itemsLabelProperty", multiselect: "multiselect", placeholder: "placeholder", className: "className", dropdownClassName: "dropdownClassName" }, outputs: { onChange: "onChange" }, providers: [MNG_AUTOCOMPLETE_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeAutocomplete", first: true, predicate: AutoComplete, descendants: true }], ngImport: i0, template: "<p-autoComplete [formControl]=\"autocompleteFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dropdown]=\"true\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [field]=\"$any(itemsLabelProperty)\"\n [suggestions]=\"(suggestions$ | async) ?? []\"\n [multiple]=\"multiselect\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutcomplete.noMatches' | translate\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n", components: [{ type: i1.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "virtualScroll", "itemSize", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "field", "scrollHeight", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "suggestions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe, "translate": i4.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngAutocompleteComponent, decorators: [{
92
+ type: Component,
93
+ args: [{ selector: 'mng-autocomplete', providers: [MNG_AUTOCOMPLETE_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-autoComplete [formControl]=\"autocompleteFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dropdown]=\"true\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [field]=\"$any(itemsLabelProperty)\"\n [suggestions]=\"(suggestions$ | async) ?? []\"\n [multiple]=\"multiselect\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutcomplete.noMatches' | translate\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n" }]
94
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { dataProvider: [{
95
+ type: Input
96
+ }], dataKeyProperty: [{
97
+ type: Input
98
+ }], itemsLabelProperty: [{
99
+ type: Input
100
+ }], multiselect: [{
101
+ type: Input
102
+ }], placeholder: [{
103
+ type: Input
104
+ }], className: [{
105
+ type: Input
106
+ }], dropdownClassName: [{
107
+ type: Input
108
+ }], onChange: [{
109
+ type: Output
110
+ }], primeAutocomplete: [{
111
+ type: ViewChild,
112
+ args: [AutoComplete]
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBb0IsVUFBVSxFQUFZLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pKLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFckYsT0FBTyxFQUFhLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBR25GLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFxQjtJQUM3RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7SUFDdkQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBUUYsTUFBTSxPQUFPLHdCQUF3QjtJQXdCakMsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQW5CN0IsZ0JBQVcsR0FBWSxL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O0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLFVBQVUsRUFBRTtZQUNaLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUMxQzthQUFNO1lBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQzs7cUhBekZRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDhUQUh0QixDQUFDLCtCQUErQixDQUFDLDZFQWVqQyxZQUFZLGdEQ2xDM0IsZ3lCQWdCQTsyRkRNYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0ksa0JBQWtCLGFBRWpCLENBQUMsK0JBQStCLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU07K0ZBSXRDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRTBCLGlCQUFpQjtzQkFBakQsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEV4aXN0aW5nUHJvdmlkZXIsIGZvcndhcmRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCAgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmluYWxpemUsIGZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0F1dG9Db21wbGV0ZX0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuXG5pbXBvcnQge01lZGl1c0ZpbHRlck1hdGNoVHlwZSwgTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXJ9IGZyb20gJy4uLy4uLy4uL2FwaS9tb2RlbHMnO1xuaW1wb3J0IHtJTG9va3VwRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9kYXRhLXByb3ZpZGVycyc7XG5cbmV4cG9ydCBjb25zdCBNTkdfQVVUT0NPTVBMRVRFX1ZBTFVFX0FDQ0VTU09SOiBFeGlzdGluZ1Byb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1uZ0F1dG9jb21wbGV0ZUNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWF1dG9jb21wbGV0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbTU5HX0FVVE9DT01QTEVURV9WQUxVRV9BQ0NFU1NPUl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBASW5wdXQoKSBkYXRhUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPGFueSwgYW55PjtcbiAgICBASW5wdXQoKSBkYXRhS2V5UHJvcGVydHk/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXRlbXNMYWJlbFByb3BlcnR5Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG11bHRpc2VsZWN0OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmd8bnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZHJvcGRvd25DbGFzc05hbWU6IHN0cmluZ3xudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlKSBwcml2YXRlIHByaW1lQXV0b2NvbXBsZXRlPzogQXV0b0NvbXBsZXRlO1xuXG4gICAgcHJpdmF0ZSBzdWdnZXN0aW9uc1N1YmplY3Q6IFN1YmplY3Q8QXJyYXk8YW55Pj4gPSBuZXcgU3ViamVjdDxBcnJheTxhbnk+PigpO1xuICAgIHByaXZhdGUgc2VhcmNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb258bnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJTZXJ2aWNlOiBhbnkgPSBudWxsO1xuICAgIHByaXZhdGUgb25DaGFuZ2VGbjogYW55ID0gKCkgPT4geyB9O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkRm46IGFueSA9ICgpID0+IHsgfTtcblxuICAgIHB1YmxpYyBhdXRvY29tcGxldGVGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PGFueT4+ID0gdGhpcy5zdWdnZXN0aW9uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmRhdGFQcm92aWRlci5zZXJ2aWNlVHlwZVxuICAgICAgICAgICAgICAgID8gdGhpcy5pbmplY3Rvci5nZXQ8YW55Pih0aGlzLmRhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSlcbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYERhdGEgcHJvdmlkZXIgc2hvdWxkIGJlIHByb3ZpZGVkIGZvciBNbmdBdXRvY29tcGxldGVDb21wb25lbnQuYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlYXJjaChldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgLy8gdHJ5IHRvIGNhbmNlbCBleGlzdGluZyBIVFRQIHJlcXVlc3Qgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtQnVpbGRlciA9IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXNMYWJlbFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbUJ1aWxkZXIud2l0aFNvcnQodGhpcy5pdGVtc0xhYmVsUHJvcGVydHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2ZW50LnF1ZXJ5ICYmIGV2ZW50LnF1ZXJ5Lmxlbmd0aCA+IDAgJiYgdGhpcy5pdGVtc0xhYmVsUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtQnVpbGRlci53aXRoRmlsdGVyKHRoaXMuaXRlbXNMYWJlbFByb3BlcnR5LCBldmVudC5xdWVyeSwgdW5kZWZpbmVkLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU3RhcnRzV2l0aClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhUHJvdmlkZXIubG9va3VwKHF1ZXJ5UGFyYW1CdWlsZGVyLmJ1aWxkKCksIHRoaXMuZGF0YVByb3ZpZGVyU2VydmljZSwgZXZlbnQucXVlcnkpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VnZ2VzdGlvbnNTdWJqZWN0Lm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0KHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRm9ybUNvbnRyb2wuc2V0VmFsdWUob2JqLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIGlmICh0aGlzLnByaW1lQXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLnByaW1lQXV0b2NvbXBsZXRlLndyaXRlVmFsdWUob2JqKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxwLWF1dG9Db21wbGV0ZSBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlRm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIkYW55KHBsYWNlaG9sZGVyKVwiXG4gICAgICAgICAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtkYXRhS2V5XT1cIiRhbnkoZGF0YUtleVByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgW2ZpZWxkXT1cIiRhbnkoaXRlbXNMYWJlbFByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgW3N1Z2dlc3Rpb25zXT1cIihzdWdnZXN0aW9ucyQgfCBhc3luYykgPz8gW11cIlxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW3Nob3dFbXB0eU1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2VtcHR5TWVzc2FnZV09XCInbW5nQXV0Y29tcGxldGUubm9NYXRjaGVzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlQ2xhc3NdPVwiJGFueShjbGFzc05hbWUpXCJcbiAgICAgICAgICAgICAgICBbcGFuZWxTdHlsZUNsYXNzXT1cIiRhbnkoZHJvcGRvd25DbGFzc05hbWUpXCJcbiAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgZHJvcGRvd25Nb2RlPVwiY3VycmVudFwiPlxuPC9wLWF1dG9Db21wbGV0ZT5cbiJdfQ==