@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,7 +1,83 @@
1
- import { FilterMatchType, QueryParamBuilder } from '../models';
1
+ import { MediusFilterMatchType, MediusQueryParamBuilder } from '../models';
2
2
  export class MediusRestUtil {
3
- static fromLazyLoadEventToQueryParams(event) {
4
- const queryParamBuilder = QueryParamBuilder.create(event.rows, event.first);
3
+ static fromAngularQueryParamsToMediusQueryParams(params, filterDescriptors, defaultItemsPerPage = 10, defaultOffset = 0) {
4
+ const offset = params['first'] ? parseInt(params['first']) : defaultOffset;
5
+ const itemsPerPage = params['rows'] ? parseInt(params['rows']) : defaultItemsPerPage;
6
+ const mediusParamsBuilder = MediusQueryParamBuilder.create(itemsPerPage, offset);
7
+ if (params['sort']) {
8
+ for (const sort of params['sort'].split(',')) {
9
+ const qpSortSplit = sort.split(':');
10
+ const field = qpSortSplit[0];
11
+ const asc = qpSortSplit.length > 1 ? qpSortSplit[1] === 'asc' : true;
12
+ mediusParamsBuilder.withSort(field, asc);
13
+ }
14
+ }
15
+ if (params['filter']) {
16
+ const filterSplit = params['filter'].split(',');
17
+ for (const filterField of filterSplit) {
18
+ const filterFieldSplit = filterField.split(':');
19
+ const field = filterFieldSplit[0];
20
+ const operator = filterFieldSplit.length > 1 ? filterFieldSplit[1] : 'eq';
21
+ // prepare value
22
+ let value = filterFieldSplit.length > 2 ? filterFieldSplit[2] : '';
23
+ let valueTo = undefined;
24
+ if (value.startsWith('\'')) {
25
+ value = value.substring(1, value.length - 1);
26
+ }
27
+ if (value.startsWith('[') && value.endsWith(']')) {
28
+ value = value.substring(1, value.length - 1).split(',').map((v) => v.startsWith('\'') ? v.substring(1, v.length - 1) : v);
29
+ }
30
+ const operatorMapping = MediusRestUtil.matchModeMapping.find(mapping => mapping[1] === operator);
31
+ const filterDescriptor = filterDescriptors.find(f => f.property === field);
32
+ if (operatorMapping && filterDescriptor) {
33
+ const fieldFilterProperty = filterDescriptor.filterProperty ?? filterDescriptor.property;
34
+ mediusParamsBuilder.withFilter(fieldFilterProperty, value, valueTo, MediusRestUtil.getMediusFilterMatchTypeFromPrimeMatchMode(operatorMapping[0]));
35
+ }
36
+ }
37
+ }
38
+ return mediusParamsBuilder.build();
39
+ }
40
+ static fromPrimeLazyLoadEventToAngularQueryParams(event, defaultItemsPerPage = 10, defaultOffset = 0) {
41
+ const params = {
42
+ first: null,
43
+ rows: null,
44
+ sort: null,
45
+ filter: null
46
+ };
47
+ if (event.first && event.first !== defaultOffset && event.first > 0) {
48
+ params['first'] = event.first;
49
+ }
50
+ if (event.rows && event.rows !== defaultItemsPerPage && event.rows > 0) {
51
+ params['rows'] = event.rows;
52
+ }
53
+ if (event.multiSortMeta?.length ?? 0 > 0) {
54
+ params['sort'] = event.multiSortMeta?.map(s => `${s.field}${s.order === 1 ? '' : ':desc'}`).join(',');
55
+ }
56
+ if (event.filters) {
57
+ const filters = [];
58
+ for (const field in event.filters) {
59
+ const primeOperator = event.filters[field].matchMode;
60
+ let value = event.filters[field].value;
61
+ const operatorMapping = MediusRestUtil.matchModeMapping.find(mapping => mapping[0] === primeOperator);
62
+ if (operatorMapping && typeof value !== 'undefined' && value !== null &&
63
+ ((typeof value === 'string' && value.length > 0) || (Array.isArray(value) && value.length > 0))) {
64
+ if (Array.isArray(value)) {
65
+ value = `[${value.map(v => `'${v}'`).join(',')}]`;
66
+ }
67
+ else {
68
+ value = `'${value}'`;
69
+ }
70
+ filters.push(`${field}:${operatorMapping[1]}:${value}`);
71
+ }
72
+ }
73
+ if (filters.length > 0) {
74
+ params['filter'] = filters.join(',');
75
+ }
76
+ }
77
+ return params;
78
+ }
79
+ static fromPrimeLazyLoadEventToMediusQueryParams(event) {
80
+ const queryParamBuilder = MediusQueryParamBuilder.create(event.rows, event.first);
5
81
  // apply sorting
6
82
  if (event.multiSortMeta) {
7
83
  event.multiSortMeta.forEach(msm => queryParamBuilder.withSort(msm.field, msm.order === 1));
@@ -12,59 +88,35 @@ export class MediusRestUtil {
12
88
  const filterEvent = event.filters[key];
13
89
  if (Array.isArray(filterEvent)) {
14
90
  filterEvent.filter(e => e.value)
15
- .forEach(e => MediusRestUtil.addFilterFromFilterMetadata(queryParamBuilder, key, e));
91
+ .forEach(e => MediusRestUtil.addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, key, e));
16
92
  }
17
93
  else if (typeof filterEvent === 'object') {
18
94
  if (filterEvent.value) {
19
- MediusRestUtil.addFilterFromFilterMetadata(queryParamBuilder, key, filterEvent);
95
+ MediusRestUtil.addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, key, filterEvent);
20
96
  }
21
97
  }
22
98
  }
23
99
  }
24
100
  return queryParamBuilder.build();
25
101
  }
26
- static addFilterFromFilterMetadata(queryParamBuilder, property, filterMetadata) {
27
- let matchType;
28
- switch (filterMetadata.matchMode) {
29
- case 'startsWith':
30
- matchType = FilterMatchType.StartsWith;
31
- break;
32
- case 'endsWith':
33
- matchType = FilterMatchType.EndsWith;
34
- break;
35
- case 'equals':
36
- matchType = FilterMatchType.Equals;
37
- break;
38
- case 'notEquals':
39
- matchType = FilterMatchType.NotEquals;
40
- break;
41
- case 'in':
42
- matchType = FilterMatchType.In;
43
- break;
44
- case 'notIn':
45
- matchType = FilterMatchType.NotIn;
46
- break;
47
- case 'notContains':
48
- case 'lt':
49
- case 'lte':
50
- case 'gt':
51
- case 'gte':
52
- case 'is':
53
- case 'isNot':
54
- case 'before':
55
- case 'after':
56
- case 'dateIs':
57
- case 'dateIsNot':
58
- case 'dateBefore':
59
- case 'dateAfter':
60
- case 'between':
61
- throw new Error(`Match mode ${filterMetadata.matchMode} not implemented.`);
62
- case 'contains':
63
- default:
64
- matchType = FilterMatchType.Contains;
65
- break;
66
- }
102
+ static addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, property, filterMetadata) {
103
+ const matchType = MediusRestUtil.getMediusFilterMatchTypeFromPrimeMatchMode(filterMetadata.matchMode ?? 'contains');
67
104
  queryParamBuilder.withFilter(property, filterMetadata.value, undefined, matchType);
68
105
  }
106
+ static getMediusFilterMatchTypeFromPrimeMatchMode(matchMode) {
107
+ const mapping = MediusRestUtil.matchModeMapping.find(m => m[0] === matchMode);
108
+ return mapping?.[2] ?? MediusFilterMatchType.Contains;
109
+ }
69
110
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzLXJlc3QudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvYXBpL3V0aWxzL21lZGl1cy1yZXN0LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGVBQWUsRUFBYyxpQkFBaUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUV6RSxNQUFNLE9BQU8sY0FBYztJQUVoQixNQUFNLENBQUMsOEJBQThCLENBQUMsS0FBb0I7UUFFN0QsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUUsZ0JBQWdCO1FBQ2hCLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUNyQixLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RjtRQUVELGtCQUFrQjtRQUNsQixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDZixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQzNCLFdBQWdDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzt5QkFDakQsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM1RjtxQkFBTSxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtvQkFDeEMsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFO3dCQUNuQixjQUFjLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO3FCQUNuRjtpQkFDSjthQUNKO1NBQ0o7UUFFRCxPQUFPLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLENBQUMsMkJBQTJCLENBQUMsaUJBQW9DLEVBQUUsUUFBZ0IsRUFBRSxjQUE4QjtRQUU1SCxJQUFJLFNBQTBCLENBQUM7UUFFL0IsUUFBUSxjQUFjLENBQUMsU0FBUyxFQUFFO1lBQzlCLEtBQUssWUFBWTtnQkFDYixTQUFTLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztnQkFDdkMsTUFBTTtZQUNWLEtBQUssVUFBVTtnQkFDWCxTQUFTLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCxTQUFTLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsTUFBTTtZQUNWLEtBQUssV0FBVztnQkFDWixTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQztnQkFDdEMsTUFBTTtZQUNWLEtBQUssSUFBSTtnQkFDTCxTQUFTLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssT0FBTztnQkFDUixTQUFTLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztnQkFDbEMsTUFBTTtZQUNWLEtBQUssYUFBYSxDQUFDO1lBQ25CLEtBQUssSUFBSSxDQUFDO1lBQ1YsS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLElBQUksQ0FBQztZQUNWLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssV0FBVyxDQUFDO1lBQ2pCLEtBQUssWUFBWSxDQUFDO1lBQ2xCLEtBQUssV0FBVyxDQUFDO1lBQ2pCLEtBQUssU0FBUztnQkFDVixNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsY0FBYyxDQUFDLFNBQVMsbUJBQW1CLENBQUMsQ0FBQztZQUMvRSxLQUFLLFVBQVUsQ0FBQztZQUNoQjtnQkFDSSxTQUFTLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsTUFBTTtTQUNiO1FBRUQsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2RixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbHRlck1ldGFkYXRhLCBMYXp5TG9hZEV2ZW50fSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7RmlsdGVyTWF0Y2hUeXBlLCBRdWVyeVBhcmFtLCBRdWVyeVBhcmFtQnVpbGRlcn0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIE1lZGl1c1Jlc3RVdGlsIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUxhenlMb2FkRXZlbnRUb1F1ZXJ5UGFyYW1zKGV2ZW50OiBMYXp5TG9hZEV2ZW50KTogUXVlcnlQYXJhbSB7XG5cbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoZXZlbnQucm93cywgZXZlbnQuZmlyc3QpO1xuXG4gICAgICAgIC8vIGFwcGx5IHNvcnRpbmdcbiAgICAgICAgaWYgKGV2ZW50Lm11bHRpU29ydE1ldGEpIHtcbiAgICAgICAgICAgIGV2ZW50Lm11bHRpU29ydE1ldGEuZm9yRWFjaChtc20gPT4gcXVlcnlQYXJhbUJ1aWxkZXIud2l0aFNvcnQobXNtLmZpZWxkLCBtc20ub3JkZXIgPT09IDEpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFwcGx5IGZpbHRlcmluZ1xuICAgICAgICBpZiAoZXZlbnQuZmlsdGVycykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZXZlbnQuZmlsdGVycykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJFdmVudCA9IGV2ZW50LmZpbHRlcnNba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJFdmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgKGZpbHRlckV2ZW50IGFzIEZpbHRlck1ldGFkYXRhW10pLmZpbHRlcihlID0+IGUudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaChlID0+IE1lZGl1c1Jlc3RVdGlsLmFkZEZpbHRlckZyb21GaWx0ZXJNZXRhZGF0YShxdWVyeVBhcmFtQnVpbGRlciwga2V5LCBlKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyRXZlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJFdmVudC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgTWVkaXVzUmVzdFV0aWwuYWRkRmlsdGVyRnJvbUZpbHRlck1ldGFkYXRhKHF1ZXJ5UGFyYW1CdWlsZGVyLCBrZXksIGZpbHRlckV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWRkRmlsdGVyRnJvbUZpbHRlck1ldGFkYXRhKHF1ZXJ5UGFyYW1CdWlsZGVyOiBRdWVyeVBhcmFtQnVpbGRlciwgcHJvcGVydHk6IHN0cmluZywgZmlsdGVyTWV0YWRhdGE6IEZpbHRlck1ldGFkYXRhKSB7XG5cbiAgICAgICAgbGV0IG1hdGNoVHlwZTogRmlsdGVyTWF0Y2hUeXBlO1xuXG4gICAgICAgIHN3aXRjaCAoZmlsdGVyTWV0YWRhdGEubWF0Y2hNb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdzdGFydHNXaXRoJzpcbiAgICAgICAgICAgICAgICBtYXRjaFR5cGUgPSBGaWx0ZXJNYXRjaFR5cGUuU3RhcnRzV2l0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VuZHNXaXRoJzpcbiAgICAgICAgICAgICAgICBtYXRjaFR5cGUgPSBGaWx0ZXJNYXRjaFR5cGUuRW5kc1dpdGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlcXVhbHMnOlxuICAgICAgICAgICAgICAgIG1hdGNoVHlwZSA9IEZpbHRlck1hdGNoVHlwZS5FcXVhbHM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdub3RFcXVhbHMnOlxuICAgICAgICAgICAgICAgIG1hdGNoVHlwZSA9IEZpbHRlck1hdGNoVHlwZS5Ob3RFcXVhbHM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpbic6XG4gICAgICAgICAgICAgICAgbWF0Y2hUeXBlID0gRmlsdGVyTWF0Y2hUeXBlLkluO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbm90SW4nOlxuICAgICAgICAgICAgICAgIG1hdGNoVHlwZSA9IEZpbHRlck1hdGNoVHlwZS5Ob3RJbjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ25vdENvbnRhaW5zJzpcbiAgICAgICAgICAgIGNhc2UgJ2x0JzpcbiAgICAgICAgICAgIGNhc2UgJ2x0ZSc6XG4gICAgICAgICAgICBjYXNlICdndCc6XG4gICAgICAgICAgICBjYXNlICdndGUnOlxuICAgICAgICAgICAgY2FzZSAnaXMnOlxuICAgICAgICAgICAgY2FzZSAnaXNOb3QnOlxuICAgICAgICAgICAgY2FzZSAnYmVmb3JlJzpcbiAgICAgICAgICAgIGNhc2UgJ2FmdGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVJcyc6XG4gICAgICAgICAgICBjYXNlICdkYXRlSXNOb3QnOlxuICAgICAgICAgICAgY2FzZSAnZGF0ZUJlZm9yZSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlQWZ0ZXInOlxuICAgICAgICAgICAgY2FzZSAnYmV0d2Vlbic6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXRjaCBtb2RlICR7ZmlsdGVyTWV0YWRhdGEubWF0Y2hNb2RlfSBub3QgaW1wbGVtZW50ZWQuYCk7XG4gICAgICAgICAgICBjYXNlICdjb250YWlucyc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIG1hdGNoVHlwZSA9IEZpbHRlck1hdGNoVHlwZS5Db250YWlucztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHF1ZXJ5UGFyYW1CdWlsZGVyLndpdGhGaWx0ZXIocHJvcGVydHksIGZpbHRlck1ldGFkYXRhLnZhbHVlLCB1bmRlZmluZWQsIG1hdGNoVHlwZSk7XG4gICAgfVxufVxuIl19
111
+ // first value is from primeNG, second is for use in query params
112
+ MediusRestUtil.matchModeMapping = [
113
+ ['contains', 'c', MediusFilterMatchType.Contains],
114
+ ['endsWith', 'ew', MediusFilterMatchType.EndsWith],
115
+ ['equals', 'eq', MediusFilterMatchType.Equals],
116
+ ['gte', 'gte', MediusFilterMatchType.GreaterThan],
117
+ ['leq', 'leq', MediusFilterMatchType.SmallerThan],
118
+ ['startsWith', 'sw', MediusFilterMatchType.StartsWith],
119
+ ['in', 'in', MediusFilterMatchType.In],
120
+ ['notEquals', 'neq', MediusFilterMatchType.NotEquals]
121
+ ];
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzLXJlc3QudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvYXBpL3V0aWxzL21lZGl1cy1yZXN0LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLHFCQUFxQixFQUFvQix1QkFBdUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUczRixNQUFNLE9BQU8sY0FBYztJQWNoQixNQUFNLENBQUMseUNBQXlDLENBQUMsTUFBYyxFQUFFLGlCQUErQyxFQUFFLG1CQUFtQixHQUFHLEVBQUUsRUFBRSxhQUFhLEdBQUUsQ0FBQztRQUMvSixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQUVyRixNQUFNLG1CQUFtQixHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFakYsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FB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QUMzSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTSxNQUFNLENBQUMsMENBQTBDLENBQUMsU0FBaUI7UUFDdEUsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUM5RSxPQUFPLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztJQUMxRCxDQUFDOztBQXZJRCxpRUFBaUU7QUFDMUMsK0JBQWdCLEdBQW1EO0lBQ3RGLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7SUFDakQsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztJQUNsRCxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxXQUFXLENBQUM7SUFDakQsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztJQUNqRCxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsVUFBVSxDQUFDO0lBQ3RELENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7SUFDdEMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztDQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7RmlsdGVyTWV0YWRhdGEsIExhenlMb2FkRXZlbnR9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtNZWRpdXNGaWx0ZXJNYXRjaFR5cGUsIE1lZGl1c1F1ZXJ5UGFyYW0sIE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtGaWx0ZXJEZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBNZWRpdXNSZXN0VXRpbCB7XG5cbiAgICAvLyBmaXJzdCB2YWx1ZSBpcyBmcm9tIHByaW1lTkcsIHNlY29uZCBpcyBmb3IgdXNlIGluIHF1ZXJ5IHBhcmFtc1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgbWF0Y2hNb2RlTWFwcGluZzogQXJyYXk8W3N0cmluZywgc3RyaW5nLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGVdPiA9IFtcbiAgICAgICAgWydjb250YWlucycsICdjJywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkNvbnRhaW5zXSxcbiAgICAgICAgWydlbmRzV2l0aCcsICdldycsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5FbmRzV2l0aF0sXG4gICAgICAgIFsnZXF1YWxzJywgJ2VxJywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkVxdWFsc10sXG4gICAgICAgIFsnZ3RlJywgJ2d0ZScsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5HcmVhdGVyVGhhbl0sXG4gICAgICAgIFsnbGVxJywgJ2xlcScsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5TbWFsbGVyVGhhbl0sXG4gICAgICAgIFsnc3RhcnRzV2l0aCcsICdzdycsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5TdGFydHNXaXRoXSxcbiAgICAgICAgWydpbicsICdpbicsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Jbl0sXG4gICAgICAgIFsnbm90RXF1YWxzJywgJ25lcScsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Ob3RFcXVhbHNdXG4gICAgXTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUFuZ3VsYXJRdWVyeVBhcmFtc1RvTWVkaXVzUXVlcnlQYXJhbXMocGFyYW1zOiBQYXJhbXMsIGZpbHRlckRlc2NyaXB0b3JzOiBBcnJheTxGaWx0ZXJEZXNjcmlwdG9yPGFueT4+LCBkZWZhdWx0SXRlbXNQZXJQYWdlID0gMTAsIGRlZmF1bHRPZmZzZXQ9IDApOiBNZWRpdXNRdWVyeVBhcmFtIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gcGFyYW1zWydmaXJzdCddID8gcGFyc2VJbnQocGFyYW1zWydmaXJzdCddKSA6IGRlZmF1bHRPZmZzZXQ7XG4gICAgICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IHBhcmFtc1sncm93cyddID8gcGFyc2VJbnQocGFyYW1zWydyb3dzJ10pIDogZGVmYXVsdEl0ZW1zUGVyUGFnZTtcblxuICAgICAgICBjb25zdCBtZWRpdXNQYXJhbXNCdWlsZGVyID0gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKGl0ZW1zUGVyUGFnZSwgb2Zmc2V0KTtcblxuICAgICAgICBpZiAocGFyYW1zWydzb3J0J10pIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc29ydCBvZiBwYXJhbXNbJ3NvcnQnXS5zcGxpdCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcXBTb3J0U3BsaXQgPSBzb3J0LnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBxcFNvcnRTcGxpdFswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhc2MgPSBxcFNvcnRTcGxpdC5sZW5ndGggPiAxID8gcXBTb3J0U3BsaXRbMV0gPT09ICdhc2MnIDogdHJ1ZTtcbiAgICAgICAgICAgICAgICBtZWRpdXNQYXJhbXNCdWlsZGVyLndpdGhTb3J0KGZpZWxkLCBhc2MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbXNbJ2ZpbHRlciddKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJTcGxpdCA9IHBhcmFtc1snZmlsdGVyJ10uc3BsaXQoJywnKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsdGVyRmllbGQgb2YgZmlsdGVyU3BsaXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJGaWVsZFNwbGl0ID0gZmlsdGVyRmllbGQuc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpbHRlckZpZWxkU3BsaXRbMF07XG4gICAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSBmaWx0ZXJGaWVsZFNwbGl0Lmxlbmd0aCA+IDEgPyBmaWx0ZXJGaWVsZFNwbGl0WzFdIDogJ2VxJztcblxuICAgICAgICAgICAgICAgIC8vIHByZXBhcmUgdmFsdWVcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWU6IGFueSA9IGZpbHRlckZpZWxkU3BsaXQubGVuZ3RoID4gMiA/IGZpbHRlckZpZWxkU3BsaXRbMl0gOiAnJztcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVUbzogYW55ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCdcXCcnKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygxLCB2YWx1ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ1snKSAmJiB2YWx1ZS5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDEsIHZhbHVlLmxlbmd0aCAtIDEpLnNwbGl0KCcsJykubWFwKCh2OiBzdHJpbmcpICA9PiB2LnN0YXJ0c1dpdGgoJ1xcJycpID8gdi5zdWJzdHJpbmcoMSwgdi5sZW5ndGggLSAxKSA6IHYpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yTWFwcGluZyA9IE1lZGl1c1Jlc3RVdGlsLm1hdGNoTW9kZU1hcHBpbmcuZmluZChtYXBwaW5nID0+IG1hcHBpbmdbMV0gPT09IG9wZXJhdG9yKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJEZXNjcmlwdG9yID0gZmlsdGVyRGVzY3JpcHRvcnMuZmluZChmID0+IGYucHJvcGVydHkgPT09IGZpZWxkKTtcbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3JNYXBwaW5nICYmIGZpbHRlckRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRGaWx0ZXJQcm9wZXJ0eSA9IGZpbHRlckRlc2NyaXB0b3IuZmlsdGVyUHJvcGVydHkgPz8gZmlsdGVyRGVzY3JpcHRvci5wcm9wZXJ0eTtcbiAgICAgICAgICAgICAgICAgICAgbWVkaXVzUGFyYW1zQnVpbGRlci53aXRoRmlsdGVyKGZpZWxkRmlsdGVyUHJvcGVydHksIHZhbHVlLCB2YWx1ZVRvLCBNZWRpdXNSZXN0VXRpbC5nZXRNZWRpdXNGaWx0ZXJNYXRjaFR5cGVGcm9tUHJpbWVNYXRjaE1vZGUob3BlcmF0b3JNYXBwaW5nWzBdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lZGl1c1BhcmFtc0J1aWxkZXIuYnVpbGQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21QcmltZUxhenlMb2FkRXZlbnRUb0FuZ3VsYXJRdWVyeVBhcmFtcyhldmVudDogTGF6eUxvYWRFdmVudCwgZGVmYXVsdEl0ZW1zUGVyUGFnZSA9IDEwLCBkZWZhdWx0T2Zmc2V0PSAwKTogUGFyYW1zIHtcbiAgICAgICAgY29uc3QgcGFyYW1zOiBQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaXJzdDogbnVsbCxcbiAgICAgICAgICAgIHJvd3M6IG51bGwsXG4gICAgICAgICAgICBzb3J0OiBudWxsLFxuICAgICAgICAgICAgZmlsdGVyOiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGV2ZW50LmZpcnN0ICYmIGV2ZW50LmZpcnN0ICE9PSBkZWZhdWx0T2Zmc2V0ICYmIGV2ZW50LmZpcnN0ID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zWydmaXJzdCddID0gZXZlbnQuZmlyc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnJvd3MgJiYgZXZlbnQucm93cyAhPT0gZGVmYXVsdEl0ZW1zUGVyUGFnZSAmJiBldmVudC5yb3dzID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zWydyb3dzJ10gPSBldmVudC5yb3dzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50Lm11bHRpU29ydE1ldGE/Lmxlbmd0aCA/PyAwID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zWydzb3J0J10gPSBldmVudC5tdWx0aVNvcnRNZXRhPy5tYXAocyA9PiBgJHtzLmZpZWxkfSR7cy5vcmRlciA9PT0gMSA/ICcnIDogJzpkZXNjJ31gKS5qb2luKCcsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuZmlsdGVycykge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBpbiBldmVudC5maWx0ZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJpbWVPcGVyYXRvciA9IGV2ZW50LmZpbHRlcnNbZmllbGRdLm1hdGNoTW9kZTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBldmVudC5maWx0ZXJzW2ZpZWxkXS52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRvck1hcHBpbmcgPSBNZWRpdXNSZXN0VXRpbC5tYXRjaE1vZGVNYXBwaW5nLmZpbmQobWFwcGluZyA9PiBtYXBwaW5nWzBdID09PSBwcmltZU9wZXJhdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3JNYXBwaW5nICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgKCh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA+IDApIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSkpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYFske3ZhbHVlLm1hcCh2ID0+IGAnJHt2fSdgKS5qb2luKCcsJyl9XWA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGAnJHt2YWx1ZX0nYDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaChgJHtmaWVsZH06JHtvcGVyYXRvck1hcHBpbmdbMV19OiR7dmFsdWV9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHBhcmFtc1snZmlsdGVyJ10gPSBmaWx0ZXJzLmpvaW4oJywnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tUHJpbWVMYXp5TG9hZEV2ZW50VG9NZWRpdXNRdWVyeVBhcmFtcyhldmVudDogTGF6eUxvYWRFdmVudCk6IE1lZGl1c1F1ZXJ5UGFyYW0ge1xuXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1CdWlsZGVyID0gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKGV2ZW50LnJvd3MsIGV2ZW50LmZpcnN0KTtcblxuICAgICAgICAvLyBhcHBseSBzb3J0aW5nXG4gICAgICAgIGlmIChldmVudC5tdWx0aVNvcnRNZXRhKSB7XG4gICAgICAgICAgICBldmVudC5tdWx0aVNvcnRNZXRhLmZvckVhY2gobXNtID0+IHF1ZXJ5UGFyYW1CdWlsZGVyLndpdGhTb3J0KG1zbS5maWVsZCwgbXNtLm9yZGVyID09PSAxKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhcHBseSBmaWx0ZXJpbmdcbiAgICAgICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGV2ZW50LmZpbHRlcnMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRXZlbnQgPSBldmVudC5maWx0ZXJzW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyRXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIChmaWx0ZXJFdmVudCBhcyBGaWx0ZXJNZXRhZGF0YVtdKS5maWx0ZXIoZSA9PiBlLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goZSA9PiBNZWRpdXNSZXN0VXRpbC5hZGRNZWRpdXNGaWx0ZXJGcm9tUHJpbWVGaWx0ZXJNZXRhZGF0YShxdWVyeVBhcmFtQnVpbGRlciwga2V5LCBlKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyRXZlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJFdmVudC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgTWVkaXVzUmVzdFV0aWwuYWRkTWVkaXVzRmlsdGVyRnJvbVByaW1lRmlsdGVyTWV0YWRhdGEocXVlcnlQYXJhbUJ1aWxkZXIsIGtleSwgZmlsdGVyRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1CdWlsZGVyLmJ1aWxkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhZGRNZWRpdXNGaWx0ZXJGcm9tUHJpbWVGaWx0ZXJNZXRhZGF0YShxdWVyeVBhcmFtQnVpbGRlcjogTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIsIHByb3BlcnR5OiBzdHJpbmcsIGZpbHRlck1ldGFkYXRhOiBGaWx0ZXJNZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBtYXRjaFR5cGU6IE1lZGl1c0ZpbHRlck1hdGNoVHlwZSA9IE1lZGl1c1Jlc3RVdGlsLmdldE1lZGl1c0ZpbHRlck1hdGNoVHlwZUZyb21QcmltZU1hdGNoTW9kZShmaWx0ZXJNZXRhZGF0YS5tYXRjaE1vZGUgPz8gJ2NvbnRhaW5zJyk7XG4gICAgICAgIHF1ZXJ5UGFyYW1CdWlsZGVyLndpdGhGaWx0ZXIocHJvcGVydHksIGZpbHRlck1ldGFkYXRhLnZhbHVlLCB1bmRlZmluZWQsIG1hdGNoVHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNZWRpdXNGaWx0ZXJNYXRjaFR5cGVGcm9tUHJpbWVNYXRjaE1vZGUobWF0Y2hNb2RlOiBzdHJpbmcpOiBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUge1xuICAgICAgICBjb25zdCBtYXBwaW5nID0gTWVkaXVzUmVzdFV0aWwubWF0Y2hNb2RlTWFwcGluZy5maW5kKG0gPT4gbVswXSA9PT0gbWF0Y2hNb2RlKTtcbiAgICAgICAgcmV0dXJuIG1hcHBpbmc/LlsyXSA/PyBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuQ29udGFpbnM7XG4gICAgfVxufVxuIl19
@@ -223,4 +223,4 @@ export class ObjectSerializer {
223
223
  }
224
224
  }
225
225
  ObjectSerializer._instance = new ObjectSerializer();
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXNlcmlhbGl6ZXIudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvYXBpL3V0aWxzL29iamVjdC1zZXJpYWxpemVyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFlBQVksRUFBdUIsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXZGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFckMsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUVxQixnQkFBVyxHQUFhO1lBQ3JDLFFBQVE7WUFDUixTQUFTO1lBQ1QsUUFBUTtZQUNSLFNBQVM7WUFDVCxNQUFNO1lBQ04sT0FBTztZQUNQLFFBQVE7WUFDUixLQUFLO1NBQ1IsQ0FBQztRQUNlLGFBQVEsR0FBd0I7WUFDN0MsR0FBRyxXQUFXO1NBQ2pCLENBQUE7UUFDZ0IsYUFBUSxHQUF3QjtZQUM3QyxHQUFHLFlBQVk7U0FDbEIsQ0FBQTtJQTZNTCxDQUFDO0lBek1HOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQUc7UUFDYixPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFBLENBQUMsQ0FBQztJQUNuRCxJQUFXLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBQzdDLElBQVcsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQSxDQUFDLENBQUM7SUFFdEMsa0NBQWtDLENBQUMsSUFBb0IsRUFBRSxhQUFxQjtRQUNqRixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDTSx1QkFBdUIsQ0FBQyxR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RCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUF5QixDQUFDO1lBQ3hGLHlDQUF5QztZQUN6QyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDeEQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFDeEUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsT0FBTyxRQUFRLENBQUM7U0FDbkI7SUFDTCxDQUFDOztBQTFNYywwQkFBUyxHQUFxQixJQUFJLGdCQUFnQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F0dHJpYnV0ZURlZiwgZW51bXNNYXBCYXNlLCBTZXJpYWxpemFibGVUeXBlTWFwLCB0eXBlTWFwQmFzZX0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7Q2xhc3NUeXBlfSBmcm9tICcuLi8uLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHtUeXBlVXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgT2JqZWN0U2VyaWFsaXplciB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcmltaXRpdmVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgJ3N0cmluZycsXG4gICAgICAgICdib29sZWFuJyxcbiAgICAgICAgJ2RvdWJsZScsXG4gICAgICAgICdpbnRlZ2VyJyxcbiAgICAgICAgJ2xvbmcnLFxuICAgICAgICAnZmxvYXQnLFxuICAgICAgICAnbnVtYmVyJyxcbiAgICAgICAgJ2FueSdcbiAgICBdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3R5cGVNYXA6IFNlcmlhbGl6YWJsZVR5cGVNYXAgPSB7XG4gICAgICAgIC4uLnR5cGVNYXBCYXNlXG4gICAgfVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VudW1NYXA6IFNlcmlhbGl6YWJsZVR5cGVNYXAgPSB7XG4gICAgICAgIC4uLmVudW1zTWFwQmFzZVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogT2JqZWN0U2VyaWFsaXplciA9IG5ldyBPYmplY3RTZXJpYWxpemVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBPbmx5IHVzZSBvbmUgaW5zdGFuY2Ugb2Ygb2JqZWN0IChvdXQgb2YgQW5ndWxhciBjb250ZXh0KVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0KCk6IE9iamVjdFNlcmlhbGl6ZXIge1xuICAgICAgICByZXR1cm4gT2JqZWN0U2VyaWFsaXplci5faW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwcmltaXRpdmVzKCkgeyByZXR1cm4gdGhpcy5fcHJpbWl0aXZlcyB9XG4gICAgcHVibGljIGdldCB0eXBlTWFwKCkgeyByZXR1cm4gdGhpcy5fdHlwZU1hcCB9XG4gICAgcHVibGljIGdldCBlbnVtTWFwKCkgeyByZXR1cm4gdGhpcy5fZW51bU1hcCB9XG5cbiAgICBwdWJsaWMgZmluZEF0dHJpYnV0ZURlZmluaXRpb25CeUNsYXNzVHlwZSh0eXBlOiBDbGFzc1R5cGU8YW55PiwgYXR0cmlidXRlTmFtZTogc3RyaW5nKTogQXR0cmlidXRlRGVmfG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kQXR0cmlidXRlRGVmaW5pdGlvbihUeXBlVXRpbC5maW5kVHlwZU5hbWUodHlwZSksIGF0dHJpYnV0ZU5hbWUpO1xuICAgIH1cbiAgICBwdWJsaWMgZmluZEF0dHJpYnV0ZURlZmluaXRpb24odHlwZU5hbWU6IHN0cmluZywgYXR0cmlidXRlTmFtZTogc3RyaW5nKTogQXR0cmlidXRlRGVmfG51bGwge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVEZWZzID0gdGhpcy5maW5kQXR0cmlidXRlc0RlZmluaXRpb24odHlwZU5hbWUpO1xuICAgICAgICBpZiAoIWF0dHJpYnV0ZURlZnMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVEZWZzKSB7XG4gICAgICAgICAgICBpZiAoYXR0cmlidXRlLm5hbWUgPT09IGF0dHJpYnV0ZU5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBwdWJsaWMgZmluZEF0dHJpYnV0ZXNEZWZpbml0aW9uQnlDbGFzc1R5cGUodHlwZTogQ2xhc3NUeXBlPGFueT4pOiBBcnJheTxBdHRyaWJ1dGVEZWY+fG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kQXR0cmlidXRlc0RlZmluaXRpb24oVHlwZVV0aWwuZmluZFR5cGVOYW1lKHR5cGUpKTtcbiAgICB9XG4gICAgcHVibGljIGZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbih0eXBlTmFtZTogc3RyaW5nKTogQXJyYXk8QXR0cmlidXRlRGVmPnxudWxsIHtcbiAgICAgICAgY29uc3QgdHlwZURlZiA9IHRoaXMuZmluZFR5cGUodHlwZU5hbWUpO1xuICAgICAgICBpZiAoIXR5cGVEZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eXBlRGVmLmdldEF0dHJpYnV0ZVR5cGVNYXAoKSBhcyBBcnJheTxBdHRyaWJ1dGVEZWY+O1xuICAgIH1cbiAgICBwdWJsaWMgZmluZEJ5Q2xhc3NUeXBlKHR5cGU6IENsYXNzVHlwZTxhbnk+KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFR5cGUoVHlwZVV0aWwuZmluZFR5cGVOYW1lKHR5cGUpKTtcbiAgICB9XG4gICAgcHVibGljIGZpbmRUeXBlKHR5cGVOYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZU1hcFt0eXBlTmFtZV07XG4gICAgfVxuICAgIHB1YmxpYyBmaW5kRW51bShlbnVtTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VudW1NYXBbZW51bU5hbWVdO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlclR5cGVzKHR5cGVzOiBTZXJpYWxpemFibGVUeXBlTWFwKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHR5cGVzKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyVHlwZSh0eXBlc1trZXldLCBrZXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyVHlwZSh0eXBlOiBDbGFzc1R5cGU8YW55Piwgb3B0VHlwZU5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgLy8gdHJ5IHRvIGZpbmQgbmFtZSBmcm9tIGRlY29yYXRvclxuICAgICAgICBsZXQgdHlwZU5hbWUgPSBUeXBlVXRpbC5nZXREZWNvcmF0b3JUeXBlTmFtZSh0eXBlKTtcbiAgICAgICAgaWYgKCF0eXBlTmFtZSkge1xuICAgICAgICAgICAgLy8gZGVmaW5lZCBuYW1lIGZyb20gb3B0aW9uYWwgdHlwZSBuYW1lXG4gICAgICAgICAgICB0eXBlTmFtZSA9IG9wdFR5cGVOYW1lO1xuICAgICAgICAgICAgaWYgKCF0eXBlTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgUmVnaXN0ZXJpbmcgdHlwZSAke3R5cGV9IGZhaWxlZCwgYmVjYXVzZSB0eXBlTmFtZSBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBhbmQgb3B0aW9uYWwgbmFtZSB3YXMgbm90IHByb3ZpZGVkLmApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3R5cGVNYXBbdHlwZU5hbWVdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBSZWdpc3RlcmluZyB0eXBlICR7dHlwZX0gdW5kZXIga2V5ICR7dHlwZU5hbWV9IHNraXBwZWQsIGJlY2F1c2UgdHlwZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBrZXkuYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBUeXBlVXRpbC5kZWZpbmVSZWZsZWN0VHlwZU5hbWUodHlwZSwgdHlwZU5hbWUpO1xuICAgICAgICAgICAgdGhpcy5fdHlwZU1hcFt0eXBlTmFtZV0gPSB0eXBlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRW51bXMoZW51bXM6IFNlcmlhbGl6YWJsZVR5cGVNYXApIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZW51bXMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZW51bU1hcFtrZXldICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgUmVnaXN0ZXJpbmcgZW51bSAke2tleX0gc2tpcHBlZCwgYmVjYXVzZSBlbnVtIGFscmVhZHkgZXhpc3RzLmApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbnVtTWFwW2tleV0gPSBlbnVtc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGZpbmRDb3JyZWN0VHlwZShkYXRhOiBhbnksIGV4cGVjdGVkVHlwZTogc3RyaW5nKSB7XG4gICAgICAgIGlmIChkYXRhID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkVHlwZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9wcmltaXRpdmVzLmluZGV4T2YoZXhwZWN0ZWRUeXBlLnRvTG93ZXJDYXNlKCkpICE9PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkVHlwZTtcbiAgICAgICAgfSBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdEYXRlJykge1xuICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkVHlwZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9lbnVtTWFwW2V4cGVjdGVkVHlwZV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX3R5cGVNYXBbZXhwZWN0ZWRUeXBlXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFR5cGU7IC8vIHcvZSB3ZSBkb24ndCBrbm93IHRoZSB0eXBlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENoZWNrIHRoZSBkaXNjcmltaW5hdG9yXG4gICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yUHJvcGVydHkgPSB0aGlzLl90eXBlTWFwW2V4cGVjdGVkVHlwZV0uZGlzY3JpbWluYXRvcjtcbiAgICAgICAgICAgIGlmIChkaXNjcmltaW5hdG9yUHJvcGVydHkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFR5cGU7IC8vIHRoZSB0eXBlIGRvZXMgbm90IGhhdmUgYSBkaXNjcmltaW5hdG9yLiB1c2UgaXQuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhW2Rpc2NyaW1pbmF0b3JQcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzY3JpbWluYXRvclR5cGUgPSBkYXRhW2Rpc2NyaW1pbmF0b3JQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl90eXBlTWFwW2Rpc2NyaW1pbmF0b3JUeXBlXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRpc2NyaW1pbmF0b3JUeXBlOyAvLyB1c2UgdGhlIHR5cGUgZ2l2ZW4gaW4gdGhlIGRpc2NyaW1pbmF0b3JcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFR5cGU7IC8vIGRpc2NyaW1pbmF0b3IgZGlkIG5vdCBtYXAgdG8gYSB0eXBlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlOyAvLyBkaXNjcmltaW5hdG9yIHdhcyBub3QgcHJlc2VudCAob3IgYW4gZW1wdHkgc3RyaW5nKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXJpYWxpemVDbGFzczxUPihkYXRhOiBhbnksIHR5cGU6IENsYXNzVHlwZTxUPikge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoZGF0YSwgVHlwZVV0aWwuZmluZFR5cGVOYW1lKHR5cGUpKTtcbiAgICB9XG4gICAgcHVibGljIHNlcmlhbGl6ZShkYXRhOiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgICAgICBpZiAoZGF0YSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3ByaW1pdGl2ZXMuaW5kZXhPZih0eXBlLnRvTG93ZXJDYXNlKCkpICE9PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZS5sYXN0SW5kZXhPZignQXJyYXk8JywgMCkgPT09IDApIHsgLy8gc3RyaW5nLnN0YXJ0c1dpdGggcHJlIGVzNlxuICAgICAgICAgICAgbGV0IHN1YlR5cGU6IHN0cmluZyA9IHR5cGUucmVwbGFjZSgnQXJyYXk8JywgJycpOyAvLyBBcnJheTxUeXBlPiA9PiBUeXBlPlxuICAgICAgICAgICAgc3ViVHlwZSA9IHN1YlR5cGUuc3Vic3RyaW5nKDAsIHN1YlR5cGUubGVuZ3RoIC0gMSk7IC8vIFR5cGU+ID0+IFR5cGVcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YTogYW55W10gPSBbXTtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItZm9yLW9mXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXR1bSA9IGRhdGFbaW5kZXhdO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkRGF0YS5wdXNoKHRoaXMuc2VyaWFsaXplKGRhdHVtLCBzdWJUeXBlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWREYXRhO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdEYXRlJykge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEudG9JU09TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9lbnVtTWFwW3R5cGVdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3R5cGVNYXBbdHlwZV0pIHsgLy8gaW4gY2FzZSB3ZSBkb250IGtub3cgdGhlIHR5cGVcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gR2V0IHRoZSBhY3R1YWwgdHlwZSBvZiB0aGlzIG9iamVjdFxuICAgICAgICAgICAgdHlwZSA9IHRoaXMuZmluZENvcnJlY3RUeXBlKGRhdGEsIHR5cGUpO1xuXG4gICAgICAgICAgICAvLyBnZXQgdGhlIG1hcCBmb3IgdGhlIGNvcnJlY3QgdHlwZS5cbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGVzID0gdGhpcy5fdHlwZU1hcFt0eXBlXS5nZXRBdHRyaWJ1dGVUeXBlTWFwKCkgYXMgQXJyYXk8QXR0cmlidXRlRGVmPjtcbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlOiB7W2luZGV4OiBzdHJpbmddOiBhbnl9ID0ge307XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGF0dHJpYnV0ZVR5cGVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGUgPSBhdHRyaWJ1dGVUeXBlc1tpbmRleF07XG4gICAgICAgICAgICAgICAgaW5zdGFuY2VbYXR0cmlidXRlVHlwZS5iYXNlTmFtZV0gPSB0aGlzLnNlcmlhbGl6ZShkYXRhW2F0dHJpYnV0ZVR5cGUubmFtZV0sXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGUudHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzZXJpYWxpemVDbGFzczxUPihkYXRhOiBhbnksIHR5cGU6IENsYXNzVHlwZTxUPikge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZShkYXRhLCBUeXBlVXRpbC5maW5kVHlwZU5hbWUodHlwZSkpO1xuICAgIH1cbiAgICBwdWJsaWMgZGVzZXJpYWxpemUoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gcG9seW1vcnBoaXNtIG1heSBjaGFuZ2UgdGhlIGFjdHVhbCB0eXBlLlxuICAgICAgICB0eXBlID0gdGhpcy5maW5kQ29ycmVjdFR5cGUoZGF0YSwgdHlwZSk7XG4gICAgICAgIGlmIChkYXRhID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcHJpbWl0aXZlcy5pbmRleE9mKHR5cGUudG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlLmxhc3RJbmRleE9mKCdBcnJheTwnLCAwKSA9PT0gMCkgeyAvLyBzdHJpbmcuc3RhcnRzV2l0aCBwcmUgZXM2XG4gICAgICAgICAgICBsZXQgc3ViVHlwZTogc3RyaW5nID0gdHlwZS5yZXBsYWNlKCdBcnJheTwnLCAnJyk7IC8vIEFycmF5PFR5cGU+ID0+IFR5cGU+XG4gICAgICAgICAgICBzdWJUeXBlID0gc3ViVHlwZS5zdWJzdHJpbmcoMCwgc3ViVHlwZS5sZW5ndGggLSAxKTsgLy8gVHlwZT4gPT4gVHlwZVxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWREYXRhOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdHVtID0gZGF0YVtpbmRleF07XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZWREYXRhLnB1c2godGhpcy5kZXNlcmlhbGl6ZShkYXR1bSwgc3ViVHlwZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVkRGF0YTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnRGF0ZScpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9lbnVtTWFwW3R5cGVdKSB7Ly8gaXMgRW51bVxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX3R5cGVNYXBbdHlwZV0pIHsgLy8gZG9udCBrbm93IHRoZSB0eXBlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyB0aGlzLl90eXBlTWFwW3R5cGVdKCk7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVUeXBlcyA9IHRoaXMuX3R5cGVNYXBbdHlwZV0uZ2V0QXR0cmlidXRlVHlwZU1hcCgpIGFzIEFycmF5PEF0dHJpYnV0ZURlZj47XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGF0dHJpYnV0ZVR5cGVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGUgPSBhdHRyaWJ1dGVUeXBlc1tpbmRleF07XG4gICAgICAgICAgICAgICAgaW5zdGFuY2VbYXR0cmlidXRlVHlwZS5uYW1lXSA9IHRoaXMuZGVzZXJpYWxpemUoZGF0YVthdHRyaWJ1dGVUeXBlLmJhc2VOYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZS50eXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXNlcmlhbGl6ZXIudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvYXBpL3V0aWxzL29iamVjdC1zZXJpYWxpemVyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFlBQVksRUFBdUIsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXZGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFckMsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUVxQixnQkFBVyxHQUFhO1lBQ3JDLFFBQVE7WUFDUixTQUFTO1lBQ1QsUUFBUTtZQUNSLFNBQVM7WUFDVCxNQUFNO1lBQ04sT0FBTztZQUNQLFFBQVE7WUFDUixLQUFLO1NBQ1IsQ0FBQztRQUNlLGFBQVEsR0FBd0I7WUFDN0MsR0FBRyxXQUFXO1NBQ2pCLENBQUE7UUFDZ0IsYUFBUSxHQUF3QjtZQUM3QyxHQUFHLFlBQVk7U0FDbEIsQ0FBQTtJQTZNTCxDQUFDO0lBek1HOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQUc7UUFDYixPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFBLENBQUMsQ0FBQztJQUNuRCxJQUFXLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBQzdDLElBQVcsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQSxDQUFDLENBQUM7SUFFdEMsa0NBQWtDLENBQUMsSUFBb0IsRUFBRSxhQUFxQjtRQUNqRixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDTSx1QkFBdUIsQ0FBQyxR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RCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUF5QixDQUFDO1lBQ3hGLHlDQUF5QztZQUN6QyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDeEQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFDeEUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsT0FBTyxRQUFRLENBQUM7U0FDbkI7SUFDTCxDQUFDOztBQTFNYywwQkFBUyxHQUFxQixJQUFJLGdCQUFnQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F0dHJpYnV0ZURlZiwgZW51bXNNYXBCYXNlLCBTZXJpYWxpemFibGVUeXBlTWFwLCB0eXBlTWFwQmFzZX0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7Q2xhc3NUeXBlfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge1R5cGVVdGlsfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RTZXJpYWxpemVyIHtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ByaW1pdGl2ZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAnc3RyaW5nJyxcbiAgICAgICAgJ2Jvb2xlYW4nLFxuICAgICAgICAnZG91YmxlJyxcbiAgICAgICAgJ2ludGVnZXInLFxuICAgICAgICAnbG9uZycsXG4gICAgICAgICdmbG9hdCcsXG4gICAgICAgICdudW1iZXInLFxuICAgICAgICAnYW55J1xuICAgIF07XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHlwZU1hcDogU2VyaWFsaXphYmxlVHlwZU1hcCA9IHtcbiAgICAgICAgLi4udHlwZU1hcEJhc2VcbiAgICB9XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZW51bU1hcDogU2VyaWFsaXphYmxlVHlwZU1hcCA9IHtcbiAgICAgICAgLi4uZW51bXNNYXBCYXNlXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBPYmplY3RTZXJpYWxpemVyID0gbmV3IE9iamVjdFNlcmlhbGl6ZXIoKTtcblxuICAgIC8qKlxuICAgICAqIE9ubHkgdXNlIG9uZSBpbnN0YW5jZSBvZiBvYmplY3QgKG91dCBvZiBBbmd1bGFyIGNvbnRleHQpXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXQoKTogT2JqZWN0U2VyaWFsaXplciB7XG4gICAgICAgIHJldHVybiBPYmplY3RTZXJpYWxpemVyLl9pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByaW1pdGl2ZXMoKSB7IHJldHVybiB0aGlzLl9wcmltaXRpdmVzIH1cbiAgICBwdWJsaWMgZ2V0IHR5cGVNYXAoKSB7IHJldHVybiB0aGlzLl90eXBlTWFwIH1cbiAgICBwdWJsaWMgZ2V0IGVudW1NYXAoKSB7IHJldHVybiB0aGlzLl9lbnVtTWFwIH1cblxuICAgIHB1YmxpYyBmaW5kQXR0cmlidXRlRGVmaW5pdGlvbkJ5Q2xhc3NUeXBlKHR5cGU6IENsYXNzVHlwZTxhbnk+LCBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcpOiBBdHRyaWJ1dGVEZWZ8bnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRBdHRyaWJ1dGVEZWZpbml0aW9uKFR5cGVVdGlsLmZpbmRUeXBlTmFtZSh0eXBlKSwgYXR0cmlidXRlTmFtZSk7XG4gICAgfVxuICAgIHB1YmxpYyBmaW5kQXR0cmlidXRlRGVmaW5pdGlvbih0eXBlTmFtZTogc3RyaW5nLCBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcpOiBBdHRyaWJ1dGVEZWZ8bnVsbCB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZURlZnMgPSB0aGlzLmZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbih0eXBlTmFtZSk7XG4gICAgICAgIGlmICghYXR0cmlidXRlRGVmcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZURlZnMpIHtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUubmFtZSA9PT0gYXR0cmlidXRlTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBmaW5kQXR0cmlidXRlc0RlZmluaXRpb25CeUNsYXNzVHlwZSh0eXBlOiBDbGFzc1R5cGU8YW55Pik6IEFycmF5PEF0dHJpYnV0ZURlZj58bnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbihUeXBlVXRpbC5maW5kVHlwZU5hbWUodHlwZSkpO1xuICAgIH1cbiAgICBwdWJsaWMgZmluZEF0dHJpYnV0ZXNEZWZpbml0aW9uKHR5cGVOYW1lOiBzdHJpbmcpOiBBcnJheTxBdHRyaWJ1dGVEZWY+fG51bGwge1xuICAgICAgICBjb25zdCB0eXBlRGVmID0gdGhpcy5maW5kVHlwZSh0eXBlTmFtZSk7XG4gICAgICAgIGlmICghdHlwZURlZikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHR5cGVEZWYuZ2V0QXR0cmlidXRlVHlwZU1hcCgpIGFzIEFycmF5PEF0dHJpYnV0ZURlZj47XG4gICAgfVxuICAgIHB1YmxpYyBmaW5kQnlDbGFzc1R5cGUodHlwZTogQ2xhc3NUeXBlPGFueT4pOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kVHlwZShUeXBlVXRpbC5maW5kVHlwZU5hbWUodHlwZSkpO1xuICAgIH1cbiAgICBwdWJsaWMgZmluZFR5cGUodHlwZU5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlTWFwW3R5cGVOYW1lXTtcbiAgICB9XG4gICAgcHVibGljIGZpbmRFbnVtKGVudW1OYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW51bU1hcFtlbnVtTmFtZV07XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyVHlwZXModHlwZXM6IFNlcmlhbGl6YWJsZVR5cGVNYXApIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdHlwZXMpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJUeXBlKHR5cGVzW2tleV0sIGtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJUeXBlKHR5cGU6IENsYXNzVHlwZTxhbnk+LCBvcHRUeXBlTmFtZT86IHN0cmluZykge1xuICAgICAgICAvLyB0cnkgdG8gZmluZCBuYW1lIGZyb20gZGVjb3JhdG9yXG4gICAgICAgIGxldCB0eXBlTmFtZSA9IFR5cGVVdGlsLmdldERlY29yYXRvclR5cGVOYW1lKHR5cGUpO1xuICAgICAgICBpZiAoIXR5cGVOYW1lKSB7XG4gICAgICAgICAgICAvLyBkZWZpbmVkIG5hbWUgZnJvbSBvcHRpb25hbCB0eXBlIG5hbWVcbiAgICAgICAgICAgIHR5cGVOYW1lID0gb3B0VHlwZU5hbWU7XG4gICAgICAgICAgICBpZiAoIXR5cGVOYW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBSZWdpc3RlcmluZyB0eXBlICR7dHlwZX0gZmFpbGVkLCBiZWNhdXNlIHR5cGVOYW1lIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGFuZCBvcHRpb25hbCBuYW1lIHdhcyBub3QgcHJvdmlkZWQuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fdHlwZU1hcFt0eXBlTmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFJlZ2lzdGVyaW5nIHR5cGUgJHt0eXBlfSB1bmRlciBrZXkgJHt0eXBlTmFtZX0gc2tpcHBlZCwgYmVjYXVzZSB0eXBlIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIGtleS5gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFR5cGVVdGlsLmRlZmluZVJlZmxlY3RUeXBlTmFtZSh0eXBlLCB0eXBlTmFtZSk7XG4gICAgICAgICAgICB0aGlzLl90eXBlTWFwW3R5cGVOYW1lXSA9IHR5cGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJFbnVtcyhlbnVtczogU2VyaWFsaXphYmxlVHlwZU1hcCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlbnVtcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9lbnVtTWFwW2tleV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBSZWdpc3RlcmluZyBlbnVtICR7a2V5fSBza2lwcGVkLCBiZWNhdXNlIGVudW0gYWxyZWFkeSBleGlzdHMuYCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VudW1NYXBba2V5XSA9IGVudW1zW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZmluZENvcnJlY3RUeXBlKGRhdGE6IGFueSwgZXhwZWN0ZWRUeXBlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGRhdGEgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3ByaW1pdGl2ZXMuaW5kZXhPZihleHBlY3RlZFR5cGUudG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlO1xuICAgICAgICB9IGVsc2UgaWYgKGV4cGVjdGVkVHlwZSA9PT0gJ0RhdGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2VudW1NYXBbZXhwZWN0ZWRUeXBlXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFR5cGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fdHlwZU1hcFtleHBlY3RlZFR5cGVdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkVHlwZTsgLy8gdy9lIHdlIGRvbid0IGtub3cgdGhlIHR5cGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIGRpc2NyaW1pbmF0b3JcbiAgICAgICAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3JQcm9wZXJ0eSA9IHRoaXMuX3R5cGVNYXBbZXhwZWN0ZWRUeXBlXS5kaXNjcmltaW5hdG9yO1xuICAgICAgICAgICAgaWYgKGRpc2NyaW1pbmF0b3JQcm9wZXJ0eSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkVHlwZTsgLy8gdGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBhIGRpc2NyaW1pbmF0b3IuIHVzZSBpdC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGFbZGlzY3JpbWluYXRvclByb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yVHlwZSA9IGRhdGFbZGlzY3JpbWluYXRvclByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3R5cGVNYXBbZGlzY3JpbWluYXRvclR5cGVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGlzY3JpbWluYXRvclR5cGU7IC8vIHVzZSB0aGUgdHlwZSBnaXZlbiBpbiB0aGUgZGlzY3JpbWluYXRvclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkVHlwZTsgLy8gZGlzY3JpbWluYXRvciBkaWQgbm90IG1hcCB0byBhIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFR5cGU7IC8vIGRpc2NyaW1pbmF0b3Igd2FzIG5vdCBwcmVzZW50IChvciBhbiBlbXB0eSBzdHJpbmcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNlcmlhbGl6ZUNsYXNzPFQ+KGRhdGE6IGFueSwgdHlwZTogQ2xhc3NUeXBlPFQ+KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZShkYXRhLCBUeXBlVXRpbC5maW5kVHlwZU5hbWUodHlwZSkpO1xuICAgIH1cbiAgICBwdWJsaWMgc2VyaWFsaXplKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nKSB7XG4gICAgICAgIGlmIChkYXRhID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcHJpbWl0aXZlcy5pbmRleE9mKHR5cGUudG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlLmxhc3RJbmRleE9mKCdBcnJheTwnLCAwKSA9PT0gMCkgeyAvLyBzdHJpbmcuc3RhcnRzV2l0aCBwcmUgZXM2XG4gICAgICAgICAgICBsZXQgc3ViVHlwZTogc3RyaW5nID0gdHlwZS5yZXBsYWNlKCdBcnJheTwnLCAnJyk7IC8vIEFycmF5PFR5cGU+ID0+IFR5cGU+XG4gICAgICAgICAgICBzdWJUeXBlID0gc3ViVHlwZS5zdWJzdHJpbmcoMCwgc3ViVHlwZS5sZW5ndGggLSAxKTsgLy8gVHlwZT4gPT4gVHlwZVxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWREYXRhOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdHVtID0gZGF0YVtpbmRleF07XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZWREYXRhLnB1c2godGhpcy5zZXJpYWxpemUoZGF0dW0sIHN1YlR5cGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1lZERhdGE7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ0RhdGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2VudW1NYXBbdHlwZV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5fdHlwZU1hcFt0eXBlXSkgeyAvLyBpbiBjYXNlIHdlIGRvbnQga25vdyB0aGUgdHlwZVxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBHZXQgdGhlIGFjdHVhbCB0eXBlIG9mIHRoaXMgb2JqZWN0XG4gICAgICAgICAgICB0eXBlID0gdGhpcy5maW5kQ29ycmVjdFR5cGUoZGF0YSwgdHlwZSk7XG5cbiAgICAgICAgICAgIC8vIGdldCB0aGUgbWFwIGZvciB0aGUgY29ycmVjdCB0eXBlLlxuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlVHlwZXMgPSB0aGlzLl90eXBlTWFwW3R5cGVdLmdldEF0dHJpYnV0ZVR5cGVNYXAoKSBhcyBBcnJheTxBdHRyaWJ1dGVEZWY+O1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2U6IHtbaW5kZXg6IHN0cmluZ106IGFueX0gPSB7fTtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItZm9yLW9mXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXR0cmlidXRlVHlwZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IGF0dHJpYnV0ZVR5cGVzW2luZGV4XTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZVthdHRyaWJ1dGVUeXBlLmJhc2VOYW1lXSA9IHRoaXMuc2VyaWFsaXplKGRhdGFbYXR0cmlidXRlVHlwZS5uYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZS50eXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZXNlcmlhbGl6ZUNsYXNzPFQ+KGRhdGE6IGFueSwgdHlwZTogQ2xhc3NUeXBlPFQ+KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplKGRhdGEsIFR5cGVVdGlsLmZpbmRUeXBlTmFtZSh0eXBlKSk7XG4gICAgfVxuICAgIHB1YmxpYyBkZXNlcmlhbGl6ZShkYXRhOiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgICAgICAvLyBwb2x5bW9ycGhpc20gbWF5IGNoYW5nZSB0aGUgYWN0dWFsIHR5cGUuXG4gICAgICAgIHR5cGUgPSB0aGlzLmZpbmRDb3JyZWN0VHlwZShkYXRhLCB0eXBlKTtcbiAgICAgICAgaWYgKGRhdGEgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9wcmltaXRpdmVzLmluZGV4T2YodHlwZS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUubGFzdEluZGV4T2YoJ0FycmF5PCcsIDApID09PSAwKSB7IC8vIHN0cmluZy5zdGFydHNXaXRoIHByZSBlczZcbiAgICAgICAgICAgIGxldCBzdWJUeXBlOiBzdHJpbmcgPSB0eXBlLnJlcGxhY2UoJ0FycmF5PCcsICcnKTsgLy8gQXJyYXk8VHlwZT4gPT4gVHlwZT5cbiAgICAgICAgICAgIHN1YlR5cGUgPSBzdWJUeXBlLnN1YnN0cmluZygwLCBzdWJUeXBlLmxlbmd0aCAtIDEpOyAvLyBUeXBlPiA9PiBUeXBlXG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGE6IGFueVtdID0gW107XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGRhdGEubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0dW0gPSBkYXRhW2luZGV4XTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZERhdGEucHVzaCh0aGlzLmRlc2VyaWFsaXplKGRhdHVtLCBzdWJUeXBlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWREYXRhO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdEYXRlJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2VudW1NYXBbdHlwZV0pIHsvLyBpcyBFbnVtXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fdHlwZU1hcFt0eXBlXSkgeyAvLyBkb250IGtub3cgdGhlIHR5cGVcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IHRoaXMuX3R5cGVNYXBbdHlwZV0oKTtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGVzID0gdGhpcy5fdHlwZU1hcFt0eXBlXS5nZXRBdHRyaWJ1dGVUeXBlTWFwKCkgYXMgQXJyYXk8QXR0cmlidXRlRGVmPjtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItZm9yLW9mXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXR0cmlidXRlVHlwZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IGF0dHJpYnV0ZVR5cGVzW2luZGV4XTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZVthdHRyaWJ1dGVUeXBlLm5hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZShkYXRhW2F0dHJpYnV0ZVR5cGUuYmFzZU5hbWVdLFxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -8,12 +8,13 @@ import * as i1 from "@angular/router";
8
8
  import * as i2 from "@ngx-translate/core";
9
9
  import * as i3 from "../../services";
10
10
  import * as i4 from "primeng/api";
11
- import * as i5 from "../tableview/tableview.component.service";
11
+ import * as i5 from "../tableview/services";
12
12
  import * as i6 from "primeng/confirmdialog";
13
13
  import * as i7 from "@angular/common";
14
14
  import * as i8 from "primeng/button";
15
15
  import * as i9 from "primeng/ripple";
16
- export class ActionComponent {
16
+ import * as i10 from "primeng/tooltip";
17
+ export class MngActionComponent {
17
18
  constructor(route, translate, actionService, confirmationService, tableviewService) {
18
19
  this.route = route;
19
20
  this.translate = translate;
@@ -30,6 +31,7 @@ export class ActionComponent {
30
31
  this.$isVisible = typeof this.action.isVisibleFunction === 'function' ? this.action.isVisibleFunction(context) : of(true);
31
32
  this.$isEnabled = typeof this.action.isEnabledFunction === 'function' ? this.action.isEnabledFunction(context) : of(true);
32
33
  this.$label = I18nUtil.streamActionTranslation(this.translate, this.action, 'title', this.action?.title ?? undefined, this.item);
34
+ this.$tooltip = I18nUtil.streamActionTranslation(this.translate, this.action, 'tooltip', this.action?.tooltip ?? undefined, this.item);
33
35
  }
34
36
  triggerAction(event) {
35
37
  this.loadingSubject.next(true);
@@ -46,12 +48,12 @@ export class ActionComponent {
46
48
  return `${action.actionName}_${this.cmpId}`;
47
49
  }
48
50
  }
49
- ActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.ActionService }, { token: i4.ConfirmationService }, { token: i5.TableviewComponentService }], target: i0.ɵɵFactoryTarget.Component });
50
- ActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ActionComponent, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData" }, providers: [MessageService, ConfirmationService], ngImport: i0, template: "<ng-container *ngIf=\"$isVisible | async\">\n <button *ngIf=\"action.icon && action.title === null; else noIcon\" type=\"button\"\n pButton pRipple\n [icon]=\"action.icon\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"!($isEnabled | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button mng-action-button-icon p-button-rounded\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\">\n </button>\n <ng-template #noIcon>\n <button type=\"button\"\n pButton pRipple\n [icon]=\"$any(action.icon)\"\n [label]=\"($label | async) ?? ''\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"!($isEnabled | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button p-button-text\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\">\n </button>\n </ng-template>\n <p-confirmDialog *ngIf=\"action.hasRunConfirmation\" [key]=\"action.actionName + '_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n</ng-container>\n", components: [{ type: i6.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"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ActionComponent, decorators: [{
51
+ MngActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngActionComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.MngActionService }, { token: i4.ConfirmationService }, { token: i5.TableviewComponentService }], target: i0.ɵɵFactoryTarget.Component });
52
+ MngActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MngActionComponent, selector: "mng-action", inputs: { action: "action", item: "item", itemId: "itemId", actionData: "actionData" }, providers: [MessageService, ConfirmationService], ngImport: i0, template: "<ng-container *ngIf=\"$isVisible | async\">\n <button *ngIf=\"action.icon && action.title === null; else noIcon\" type=\"button\"\n pButton pRipple\n [icon]=\"action.icon\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"!($isEnabled | async)\"\n [pTooltip]=\"$any($tooltip | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button mng-action-button-icon p-button-rounded\"\n [class.p-button-primary]=\"action.level === 1\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\">\n </button>\n <ng-template #noIcon>\n <button type=\"button\"\n pButton pRipple\n [icon]=\"$any(action.icon)\"\n [label]=\"($label | async) ?? ''\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"!($isEnabled | async)\"\n [pTooltip]=\"$any($tooltip | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button p-button-text\"\n [class.p-button-primary]=\"action.level === 1\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\">\n </button>\n </ng-template>\n <p-confirmDialog *ngIf=\"action.hasRunConfirmation\" [key]=\"action.actionName + '_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n</ng-container>\n", components: [{ type: i6.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"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i9.Ripple, selector: "[pRipple]" }, { type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngActionComponent, decorators: [{
52
54
  type: Component,
53
- args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageService, ConfirmationService], template: "<ng-container *ngIf=\"$isVisible | async\">\n <button *ngIf=\"action.icon && action.title === null; else noIcon\" type=\"button\"\n pButton pRipple\n [icon]=\"action.icon\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"!($isEnabled | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button mng-action-button-icon p-button-rounded\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\">\n </button>\n <ng-template #noIcon>\n <button type=\"button\"\n pButton pRipple\n [icon]=\"$any(action.icon)\"\n [label]=\"($label | async) ?? ''\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"!($isEnabled | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button p-button-text\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\">\n </button>\n </ng-template>\n <p-confirmDialog *ngIf=\"action.hasRunConfirmation\" [key]=\"action.actionName + '_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n</ng-container>\n" }]
54
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.ActionService }, { type: i4.ConfirmationService }, { type: i5.TableviewComponentService }]; }, propDecorators: { action: [{
55
+ args: [{ selector: 'mng-action', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageService, ConfirmationService], template: "<ng-container *ngIf=\"$isVisible | async\">\n <button *ngIf=\"action.icon && action.title === null; else noIcon\" type=\"button\"\n pButton pRipple\n [icon]=\"action.icon\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"!($isEnabled | async)\"\n [pTooltip]=\"$any($tooltip | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button mng-action-button-icon p-button-rounded\"\n [class.p-button-primary]=\"action.level === 1\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\">\n </button>\n <ng-template #noIcon>\n <button type=\"button\"\n pButton pRipple\n [icon]=\"$any(action.icon)\"\n [label]=\"($label | async) ?? ''\"\n [loading]=\"($loading | async) ?? false\"\n [disabled]=\"!($isEnabled | async)\"\n [pTooltip]=\"$any($tooltip | async)\"\n (click)=\"triggerAction($event)\"\n class=\"mng-action-button p-button-text\"\n [class.p-button-primary]=\"action.level === 1\"\n [class.p-button-success]=\"action.level === 5\"\n [class.p-button-danger]=\"action.level === 7\">\n </button>\n </ng-template>\n <p-confirmDialog *ngIf=\"action.hasRunConfirmation\" [key]=\"action.actionName + '_' + cmpId\" [baseZIndex]=\"50\" appendTo=\"body\"></p-confirmDialog>\n</ng-container>\n" }]
56
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.MngActionService }, { type: i4.ConfirmationService }, { type: i5.TableviewComponentService }]; }, propDecorators: { action: [{
55
57
  type: Input
56
58
  }], item: [{
57
59
  type: Input
@@ -60,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
60
62
  }], actionData: [{
61
63
  type: Input
62
64
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUsxRixPQUFPLEVBQWEsRUFBRSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFPaEUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7QUFTckMsTUFBTSxPQUFPLGVBQWU7SUFnQnhCLFlBQ1ksS0FBcUIsRUFDckIsU0FBMkIsRUFDM0IsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLGdCQUFpRDtRQUpqRCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFickQsbUJBQWMsR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQztRQUNoRCxhQUFRLEdBQXdCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbkUsVUFBSyxHQUFXLElBQUksQ0FBQyxN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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaW5hbGl6ZSwgZmlyc3R9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtJZFR5cGV9IGZyb20gJy4uLy4uL21vZGVscy90eXBlcyc7XG5pbXBvcnQge0FjdGlvbkRhdGF9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24nO1xuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9tb2RlbHMvZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtJQ29uZmlybWF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vbW9kZWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0kxOG5VdGlsfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1RhYmxldmlld0NvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uL3RhYmxldmlldy90YWJsZXZpZXcuY29tcG9uZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1hY3Rpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25Db21wb25lbnQ8VCwgUz4gaW1wbGVtZW50cyBPbkluaXQsIElDb25maXJtYXRpb25TZXJ2aWNlIHtcblxuICAgIC8vIG1ldGFkYXRhIGFuZCBlZGl0b3IgbW9kZSBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb24hOiBBY3Rpb25EZXNjcmlwdG9yPFQ+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtPzogVDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbUlkPzogSWRUeXBlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YTtcblxuICAgIHByaXZhdGUgbG9hZGluZ1N1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwdWJsaWMgJGxvYWRpbmc6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmxvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHVibGljIGNtcElkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG4gICAgcHVibGljICRpc1Zpc2libGUhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHB1YmxpYyAkaXNFbmFibGVkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwdWJsaWMgJGxhYmVsITogT2JzZXJ2YWJsZTxzdHJpbmd8bnVsbD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0YWJsZXZpZXdTZXJ2aWNlOiBUYWJsZXZpZXdDb21wb25lbnRTZXJ2aWNlPFQsIFM+XG4gICAgKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmdldEFjdGlvbkV4ZWNDb250ZXh0KHRoaXMuYWN0aW9uLCB0aGlzLml0ZW1JZCwgdGhpcy5pdGVtLCB0aGlzLnRhYmxldmlld1NlcnZpY2U/LmRhdGFQcm92aWRlciA/PyB1bmRlZmluZWQsIHRoaXMudGFibGV2aWV3U2VydmljZSwgdGhpcywgdGhpcy5hY3Rpb25EYXRhKTtcbiAgICAgICAgdGhpcy4kaXNWaXNpYmxlID0gdHlwZW9mIHRoaXMuYWN0aW9uLmlzVmlzaWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nID8gdGhpcy5hY3Rpb24uaXNWaXNpYmxlRnVuY3Rpb24oY29udGV4dCkgOiBvZih0cnVlKTtcbiAgICAgICAgdGhpcy4kaXNFbmFibGVkID0gdHlwZW9mIHRoaXMuYWN0aW9uLmlzRW5hYmxlZEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nID8gdGhpcy5hY3Rpb24uaXNFbmFibGVkRnVuY3Rpb24oY29udGV4dCkgOiBvZih0cnVlKTtcbiAgICAgICAgdGhpcy4kbGFiZWwgPSBJMThuVXRpbC5zdHJlYW1BY3Rpb25UcmFuc2xhdGlvbih0aGlzLnRyYW5zbGF0ZSwgdGhpcy5hY3Rpb24sICd0aXRsZScsIHRoaXMuYWN0aW9uPy50aXRsZSA/PyB1bmRlZmluZWQsIHRoaXMuaXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyaWdnZXJBY3Rpb24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgY29uc3QgYWN0aW9uRGF0YSA9IHRoaXMuYWN0aW9uRGF0YSA/IHRoaXMuYWN0aW9uRGF0YSA6IHt9O1xuICAgICAgICBhY3Rpb25EYXRhWydjbXBJZCddID0gdGhpcy5jbXBJZDtcbiAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnRyaWdnZXJBY3Rpb24odGhpcy5hY3Rpb24sIHRoaXMuaXRlbUlkLCB0aGlzLml0ZW0sIGFjdGlvbkRhdGEsIHRoaXMucm91dGUsIHRoaXMudGFibGV2aWV3U2VydmljZSwgdGhpcylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHt9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZmlybWF0aW9uU2VydmljZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybWF0aW9uU2VydmljZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZmlybWF0aW9uU2VydmljZUluc3RhbmNlS2V5KGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+KSB7XG4gICAgICAgIHJldHVybiBgJHthY3Rpb24uYWN0aW9uTmFtZX1fJHt0aGlzLmNtcElkfWA7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiRpc1Zpc2libGUgfCBhc3luY1wiPlxuICAgIDxidXR0b24gKm5nSWY9XCJhY3Rpb24uaWNvbiAmJiBhY3Rpb24udGl0bGUgPT09IG51bGw7IGVsc2Ugbm9JY29uXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBwQnV0dG9uIHBSaXBwbGVcbiAgICAgICAgICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cIigkbG9hZGluZyB8IGFzeW5jKSA/PyBmYWxzZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiISgkaXNFbmFibGVkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0cmlnZ2VyQWN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJtbmctYWN0aW9uLWJ1dHRvbiBtbmctYWN0aW9uLWJ1dHRvbi1pY29uIHAtYnV0dG9uLXJvdW5kZWRcIlxuICAgICAgICAgICAgW2NsYXNzLnAtYnV0dG9uLXN1Y2Nlc3NdPVwiYWN0aW9uLmxldmVsID09PSA1XCJcbiAgICAgICAgICAgIFtjbGFzcy5wLWJ1dHRvbi1kYW5nZXJdPVwiYWN0aW9uLmxldmVsID09PSA3XCI+XG4gICAgPC9idXR0b24+XG4gICAgPG5nLXRlbXBsYXRlICNub0ljb24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgcEJ1dHRvbiBwUmlwcGxlXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiJGFueShhY3Rpb24uaWNvbilcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIoJGxhYmVsIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgICAgICAgICBbbG9hZGluZ109XCIoJGxvYWRpbmcgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKCRpc0VuYWJsZWQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0cmlnZ2VyQWN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW5nLWFjdGlvbi1idXR0b24gcC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnAtYnV0dG9uLXN1Y2Nlc3NdPVwiYWN0aW9uLmxldmVsID09PSA1XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucC1idXR0b24tZGFuZ2VyXT1cImFjdGlvbi5sZXZlbCA9PT0gN1wiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxwLWNvbmZpcm1EaWFsb2cgKm5nSWY9XCJhY3Rpb24uaGFzUnVuQ29uZmlybWF0aW9uXCIgW2tleV09XCJhY3Rpb24uYWN0aW9uTmFtZSArICdfJyArIGNtcElkXCIgW2Jhc2VaSW5kZXhdPVwiNTBcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtY29uZmlybURpYWxvZz5cbjwvbmctY29udGFpbmVyPlxuIl19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBS2hGLE9BQU8sRUFBYSxFQUFFLEVBQUUsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQU1oRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7QUFTckMsTUFBTSxPQUFPLGtCQUFrQjtJQWlCM0IsWUFDWSxLQUFxQixFQUNyQixTQUEyQixFQUMzQixhQUErQixFQUMvQixtQkFBd0MsRUFDeEMsZ0JBQWlEO1FBSmpELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFkckQsbUJBQWMsR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQztRQUNoRCxhQUFRLEdBQXdCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbkUsVUFBSyxHQUFXLElBQUksQ0FB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QkFOOUIsU0FBUzsrQkFDSSxZQUFZLG1CQUVMLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUM7Nk9BS2hDLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbmFsaXplLCBmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge0lkVHlwZX0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge0lBY3Rpb25Db25maXJtYXRpb25TZXJ2aWNlLCBBY3Rpb25EYXRhfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge01uZ0FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7STE4blV0aWx9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7VGFibGV2aWV3Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vdGFibGV2aWV3L3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctYWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTW5nQWN0aW9uQ29tcG9uZW50PFQsIFM+IGltcGxlbWVudHMgT25Jbml0LCBJQWN0aW9uQ29uZmlybWF0aW9uU2VydmljZSB7XG5cbiAgICAvLyBtZXRhZGF0YSBhbmQgZWRpdG9yIG1vZGUgaW5wdXRcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uITogQWN0aW9uRGVzY3JpcHRvcjxUPjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbT86IFQ7XG4gICAgQElucHV0KCkgcHVibGljIGl0ZW1JZD86IElkVHlwZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uRGF0YT86IEFjdGlvbkRhdGE7XG5cbiAgICBwcml2YXRlIGxvYWRpbmdTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gICAgcHVibGljICRsb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHB1YmxpYyBjbXBJZDogc3RyaW5nID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuICAgIHB1YmxpYyAkaXNWaXNpYmxlITogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwdWJsaWMgJGlzRW5hYmxlZCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHVibGljICRsYWJlbCE6IE9ic2VydmFibGU8c3RyaW5nfG51bGw+O1xuICAgIHB1YmxpYyAkdG9vbHRpcCE6IE9ic2VydmFibGU8c3RyaW5nfG51bGw+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBNbmdBY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGFibGV2aWV3U2VydmljZTogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxULCBTPlxuICAgICkge1xuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuYWN0aW9uU2VydmljZS5nZXRBY3Rpb25FeGVjQ29udGV4dCh0aGlzLmFjdGlvbiwgdGhpcy5pdGVtSWQsIHRoaXMuaXRlbSwgdGhpcy50YWJsZXZpZXdTZXJ2aWNlPy5kYXRhUHJvdmlkZXIgPz8gdW5kZWZpbmVkLCB0aGlzLnRhYmxldmlld1NlcnZpY2UsIHRoaXMsIHRoaXMuYWN0aW9uRGF0YSk7XG4gICAgICAgIHRoaXMuJGlzVmlzaWJsZSA9IHR5cGVvZiB0aGlzLmFjdGlvbi5pc1Zpc2libGVGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuYWN0aW9uLmlzVmlzaWJsZUZ1bmN0aW9uKGNvbnRleHQpIDogb2YodHJ1ZSk7XG4gICAgICAgIHRoaXMuJGlzRW5hYmxlZCA9IHR5cGVvZiB0aGlzLmFjdGlvbi5pc0VuYWJsZWRGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuYWN0aW9uLmlzRW5hYmxlZEZ1bmN0aW9uKGNvbnRleHQpIDogb2YodHJ1ZSk7XG4gICAgICAgIHRoaXMuJGxhYmVsID0gSTE4blV0aWwuc3RyZWFtQWN0aW9uVHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGUsIHRoaXMuYWN0aW9uLCAndGl0bGUnLCB0aGlzLmFjdGlvbj8udGl0bGUgPz8gdW5kZWZpbmVkLCB0aGlzLml0ZW0pO1xuICAgICAgICB0aGlzLiR0b29sdGlwID0gSTE4blV0aWwuc3RyZWFtQWN0aW9uVHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGUsIHRoaXMuYWN0aW9uLCAndG9vbHRpcCcsIHRoaXMuYWN0aW9uPy50b29sdGlwID8/IHVuZGVmaW5lZCwgdGhpcy5pdGVtKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJpZ2dlckFjdGlvbihldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICBjb25zdCBhY3Rpb25EYXRhID0gdGhpcy5hY3Rpb25EYXRhID8gdGhpcy5hY3Rpb25EYXRhIDoge307XG4gICAgICAgIGFjdGlvbkRhdGFbJ2NtcElkJ10gPSB0aGlzLmNtcElkO1xuICAgICAgICB0aGlzLmFjdGlvblNlcnZpY2UudHJpZ2dlckFjdGlvbih0aGlzLmFjdGlvbiwgdGhpcy5pdGVtSWQsIHRoaXMuaXRlbSwgYWN0aW9uRGF0YSwgdGhpcy5yb3V0ZSwgdGhpcy50YWJsZXZpZXdTZXJ2aWNlLCB0aGlzKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb25maXJtYXRpb25TZXJ2aWNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb25maXJtYXRpb25TZXJ2aWNlSW5zdGFuY2VLZXkoYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4pIHtcbiAgICAgICAgcmV0dXJuIGAke2FjdGlvbi5hY3Rpb25OYW1lfV8ke3RoaXMuY21wSWR9YDtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiJGlzVmlzaWJsZSB8IGFzeW5jXCI+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImFjdGlvbi5pY29uICYmIGFjdGlvbi50aXRsZSA9PT0gbnVsbDsgZWxzZSBub0ljb25cIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHBCdXR0b24gcFJpcHBsZVxuICAgICAgICAgICAgW2ljb25dPVwiYWN0aW9uLmljb25cIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiKCRsb2FkaW5nIHwgYXN5bmMpID8/IGZhbHNlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKCRpc0VuYWJsZWQgfCBhc3luYylcIlxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIiRhbnkoJHRvb2x0aXAgfCBhc3luYylcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRyaWdnZXJBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1uZy1hY3Rpb24tYnV0dG9uIG1uZy1hY3Rpb24tYnV0dG9uLWljb24gcC1idXR0b24tcm91bmRlZFwiXG4gICAgICAgICAgICBbY2xhc3MucC1idXR0b24tcHJpbWFyeV09XCJhY3Rpb24ubGV2ZWwgPT09IDFcIlxuICAgICAgICAgICAgW2NsYXNzLnAtYnV0dG9uLXN1Y2Nlc3NdPVwiYWN0aW9uLmxldmVsID09PSA1XCJcbiAgICAgICAgICAgIFtjbGFzcy5wLWJ1dHRvbi1kYW5nZXJdPVwiYWN0aW9uLmxldmVsID09PSA3XCI+XG4gICAgPC9idXR0b24+XG4gICAgPG5nLXRlbXBsYXRlICNub0ljb24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgcEJ1dHRvbiBwUmlwcGxlXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiJGFueShhY3Rpb24uaWNvbilcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIoJGxhYmVsIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgICAgICAgICBbbG9hZGluZ109XCIoJGxvYWRpbmcgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKCRpc0VuYWJsZWQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCIkYW55KCR0b29sdGlwIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidHJpZ2dlckFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1uZy1hY3Rpb24tYnV0dG9uIHAtYnV0dG9uLXRleHRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5wLWJ1dHRvbi1wcmltYXJ5XT1cImFjdGlvbi5sZXZlbCA9PT0gMVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnAtYnV0dG9uLXN1Y2Nlc3NdPVwiYWN0aW9uLmxldmVsID09PSA1XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucC1idXR0b24tZGFuZ2VyXT1cImFjdGlvbi5sZXZlbCA9PT0gN1wiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxwLWNvbmZpcm1EaWFsb2cgKm5nSWY9XCJhY3Rpb24uaGFzUnVuQ29uZmlybWF0aW9uXCIgW2tleV09XCJhY3Rpb24uYWN0aW9uTmFtZSArICdfJyArIGNtcElkXCIgW2Jhc2VaSW5kZXhdPVwiNTBcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtY29uZmlybURpYWxvZz5cbjwvbmctY29udGFpbmVyPlxuIl19