@mediusinc/mng-commons 1.4.0 → 2.0.0-rc.1-b808fba6

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 (419) hide show
  1. package/esm2020/lib/api/models/builders/query-param.builder.mjs +58 -58
  2. package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -24
  3. package/esm2020/lib/api/models/filter-param.model.mjs +32 -32
  4. package/esm2020/lib/api/models/index.mjs +8 -8
  5. package/esm2020/lib/api/models/mappers.mjs +12 -12
  6. package/esm2020/lib/api/models/query-mode.model.mjs +17 -17
  7. package/esm2020/lib/api/models/query-param.model.mjs +67 -67
  8. package/esm2020/lib/api/models/query-result.model.mjs +23 -23
  9. package/esm2020/lib/api/models/serialization.model.mjs +1 -1
  10. package/esm2020/lib/api/services/api.abstract.service.mjs +57 -57
  11. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +74 -74
  12. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +29 -29
  13. package/esm2020/lib/api/services/index.mjs +3 -3
  14. package/esm2020/lib/api/utils/index.mjs +2 -2
  15. package/esm2020/lib/api/utils/medius-rest.util.mjs +213 -213
  16. package/esm2020/lib/api/utils/object-serializer.util.mjs +247 -247
  17. package/esm2020/lib/components/action/action.component.mjs +281 -275
  18. package/esm2020/lib/components/action/editor/action-editor.component.mjs +303 -303
  19. package/esm2020/lib/components/action/index.mjs +4 -4
  20. package/esm2020/lib/components/action/localization/data-language-dropdown.component.mjs +45 -45
  21. package/esm2020/lib/components/action/models/action-component.model.mjs +2 -2
  22. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +2 -2
  23. package/esm2020/lib/components/action/models/action-execution.model.mjs +249 -249
  24. package/esm2020/lib/components/action/models/index.mjs +4 -4
  25. package/esm2020/lib/components/action/models/tableview-action-default-categories.model.mjs +10 -10
  26. package/esm2020/lib/components/action/route/action-route.component.mjs +131 -130
  27. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +301 -300
  28. package/esm2020/lib/components/form/date-range/date-range.component.mjs +110 -109
  29. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +209 -194
  30. package/esm2020/lib/components/form/editor/form-editor.component.mjs +246 -243
  31. package/esm2020/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +43 -39
  32. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +51 -50
  33. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +46 -45
  34. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +28 -26
  35. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +180 -150
  36. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +24 -24
  37. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +191 -186
  38. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +198 -197
  39. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +158 -154
  40. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +19 -17
  41. package/esm2020/lib/components/form/formly/fields/index.mjs +10 -10
  42. package/esm2020/lib/components/form/formly/formly.config.mjs +211 -211
  43. package/esm2020/lib/components/form/formly/index.mjs +1 -1
  44. package/esm2020/lib/components/form/formly/models/formly-config.model.mjs +1 -1
  45. package/esm2020/lib/components/form/formly/models/formly-field.model.mjs +2 -2
  46. package/esm2020/lib/components/form/formly/models/index.mjs +2 -2
  47. package/esm2020/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +16 -15
  48. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +84 -83
  49. package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
  50. package/esm2020/lib/components/form/index.mjs +4 -4
  51. package/esm2020/lib/components/form/models/field-action-context.model.mjs +2 -2
  52. package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
  53. package/esm2020/lib/components/form/models/form-editor.interface.mjs +1 -1
  54. package/esm2020/lib/components/form/models/index.mjs +2 -2
  55. package/esm2020/lib/components/layout/breadcrumb.component.mjs +18 -17
  56. package/esm2020/lib/components/layout/footer.component.mjs +18 -17
  57. package/esm2020/lib/components/layout/index.mjs +9 -8
  58. package/esm2020/lib/components/layout/main-layout.component.mjs +56 -52
  59. package/esm2020/lib/components/layout/menu-item.component.mjs +292 -272
  60. package/esm2020/lib/components/layout/menu.component.mjs +32 -21
  61. package/esm2020/lib/components/layout/services/index.mjs +1 -1
  62. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +194 -194
  63. package/esm2020/lib/components/layout/topbar-user.component.mjs +41 -0
  64. package/esm2020/lib/components/layout/topbar.component.mjs +64 -65
  65. package/esm2020/lib/components/layout/version.component.mjs +58 -58
  66. package/esm2020/lib/components/tableview/index.mjs +6 -6
  67. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  68. package/esm2020/lib/components/tableview/models/table.event.mjs +16 -16
  69. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +150 -147
  70. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +52 -53
  71. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +121 -120
  72. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +101 -84
  73. package/esm2020/lib/components/tableview/table/table.component.mjs +611 -595
  74. package/esm2020/lib/components/tableview/tableview.component.mjs +115 -113
  75. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  76. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  77. package/esm2020/lib/data-providers/index.mjs +6 -6
  78. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  79. package/esm2020/lib/data-providers/table.data-provider.mjs +37 -37
  80. package/esm2020/lib/data-providers/tableview-crud.data-provider.mjs +23 -23
  81. package/esm2020/lib/data-providers/tableview.data-provider.mjs +44 -44
  82. package/esm2020/lib/descriptors/action/action-button.descriptor.mjs +60 -0
  83. package/esm2020/lib/descriptors/action/action-confirmation.descriptor.mjs +77 -77
  84. package/esm2020/lib/descriptors/action/action.descriptor.mjs +579 -0
  85. package/esm2020/lib/descriptors/action/index.mjs +4 -0
  86. package/esm2020/lib/descriptors/editor/editor.descriptor.mjs +291 -0
  87. package/esm2020/lib/descriptors/editor/field-validation.descriptor.mjs +25 -0
  88. package/esm2020/lib/descriptors/editor/field.descriptor.mjs +990 -0
  89. package/esm2020/lib/descriptors/editor/index.mjs +4 -0
  90. package/esm2020/lib/descriptors/filter/filter.descriptor.mjs +370 -0
  91. package/esm2020/lib/descriptors/filter/index.mjs +2 -0
  92. package/esm2020/lib/descriptors/index.mjs +2 -12
  93. package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
  94. package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
  95. package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
  96. package/esm2020/lib/descriptors/model.descriptor.mjs +44 -44
  97. package/esm2020/lib/descriptors/table/column.descriptor.mjs +406 -0
  98. package/esm2020/lib/descriptors/table/index.mjs +3 -0
  99. package/esm2020/lib/descriptors/table/table.descriptor.mjs +497 -0
  100. package/esm2020/lib/descriptors/tableview/index.mjs +2 -0
  101. package/esm2020/lib/descriptors/tableview/tableview.descriptor.mjs +346 -0
  102. package/esm2020/lib/descriptors/types/action.type.mjs +25 -25
  103. package/esm2020/lib/descriptors/types/column.type.mjs +20 -20
  104. package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
  105. package/esm2020/lib/descriptors/types/field.type.mjs +55 -55
  106. package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
  107. package/esm2020/lib/descriptors/types/index.mjs +6 -6
  108. package/esm2020/lib/descriptors/types/table.type.mjs +26 -26
  109. package/esm2020/lib/directives/component.directive.mjs +62 -44
  110. package/esm2020/lib/directives/index.mjs +2 -2
  111. package/esm2020/lib/directives/template.directive.mjs +29 -28
  112. package/esm2020/lib/mng-commons.module.mjs +450 -485
  113. package/esm2020/lib/models/column-value.model.mjs +2 -2
  114. package/esm2020/lib/models/config.model.mjs +2 -2
  115. package/esm2020/lib/models/enum.model.mjs +1 -1
  116. package/esm2020/lib/models/error.model.mjs +1 -1
  117. package/esm2020/lib/models/index.mjs +9 -9
  118. package/esm2020/lib/models/menu.model.mjs +2 -2
  119. package/esm2020/lib/models/tableview-attr.model.mjs +1 -1
  120. package/esm2020/lib/models/user.model.mjs +1 -1
  121. package/esm2020/lib/models/version.model.mjs +1 -1
  122. package/esm2020/lib/models/view-container.model.mjs +2 -2
  123. package/esm2020/lib/pipes/boolean.pipe.mjs +28 -27
  124. package/esm2020/lib/pipes/class-map.pipe.mjs +23 -22
  125. package/esm2020/lib/pipes/enum.pipe.mjs +26 -25
  126. package/esm2020/lib/pipes/enumerate-async.pipe.mjs +39 -38
  127. package/esm2020/lib/pipes/enumerate.pipe.mjs +56 -55
  128. package/esm2020/lib/pipes/getter.pipe.mjs +21 -20
  129. package/esm2020/lib/pipes/i18n-property.pipe.mjs +19 -18
  130. package/esm2020/lib/pipes/index.mjs +11 -11
  131. package/esm2020/lib/pipes/json-path.pipe.mjs +80 -79
  132. package/esm2020/lib/pipes/locale-default-row-class.pipe.mjs +27 -26
  133. package/esm2020/lib/pipes/models/internal/enumrate-pipe-i18n.model.mjs +1 -1
  134. package/esm2020/lib/pipes/models/internal/index.mjs +1 -1
  135. package/esm2020/lib/pipes/parametrize.pipe.mjs +86 -85
  136. package/esm2020/lib/pipes/template.pipe.mjs +25 -24
  137. package/esm2020/lib/provide-commons.mjs +73 -0
  138. package/esm2020/lib/router/index.mjs +4 -3
  139. package/esm2020/lib/router/models/index.mjs +1 -1
  140. package/esm2020/lib/router/models/router.model.mjs +2 -2
  141. package/esm2020/lib/router/route-builder.mjs +293 -426
  142. package/esm2020/lib/router/routes-builder.mjs +67 -0
  143. package/esm2020/lib/router/tableview-route-builder.mjs +184 -187
  144. package/esm2020/lib/security/authorization.guard.mjs +29 -26
  145. package/esm2020/lib/security/authorization.service.mjs +50 -47
  146. package/esm2020/lib/security/authorization.util.mjs +15 -15
  147. package/esm2020/lib/security/index.mjs +3 -3
  148. package/esm2020/lib/security/model/authorization.type.mjs +7 -7
  149. package/esm2020/lib/security/model/index.mjs +3 -3
  150. package/esm2020/lib/security/model/permission-service.interface.mjs +1 -1
  151. package/esm2020/lib/security/model/permissions.model.mjs +86 -86
  152. package/esm2020/lib/services/action-executor.service.mjs +558 -555
  153. package/esm2020/lib/services/commons.service.mjs +464 -461
  154. package/esm2020/lib/services/configuration.service.mjs +149 -142
  155. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  156. package/esm2020/lib/services/index.mjs +6 -6
  157. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  158. package/esm2020/lib/services/internal/commons-init.service.mjs +50 -44
  159. package/esm2020/lib/services/internal/index.mjs +2 -2
  160. package/esm2020/lib/services/navigation.service.mjs +51 -48
  161. package/esm2020/lib/services/providers/config-service.provider.mjs +31 -30
  162. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  163. package/esm2020/lib/services/providers/index.mjs +2 -2
  164. package/esm2020/lib/services/router.service.mjs +97 -0
  165. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  166. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  167. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  168. package/esm2020/lib/services/tokens/index.mjs +4 -4
  169. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  170. package/esm2020/lib/services/version.service.mjs +42 -39
  171. package/esm2020/lib/services/view-container.component.service.mjs +55 -55
  172. package/esm2020/lib/styles/button-style.builder.mjs +164 -164
  173. package/esm2020/lib/styles/index.mjs +2 -2
  174. package/esm2020/lib/styles/models/index.mjs +2 -2
  175. package/esm2020/lib/styles/models/style-level.enum.mjs +11 -11
  176. package/esm2020/lib/styles/models/style-size.enum.mjs +8 -8
  177. package/esm2020/lib/styles/styles.util.mjs +42 -42
  178. package/esm2020/lib/types/index.mjs +2 -2
  179. package/esm2020/lib/types/type.decorator.mjs +21 -21
  180. package/esm2020/lib/types/type.model.mjs +1 -1
  181. package/esm2020/lib/utils/action-data-provider.util.mjs +145 -145
  182. package/esm2020/lib/utils/date.util.mjs +117 -117
  183. package/esm2020/lib/utils/editor-formly.util.mjs +288 -288
  184. package/esm2020/lib/utils/enum.util.mjs +81 -81
  185. package/esm2020/lib/utils/export.util.mjs +20 -20
  186. package/esm2020/lib/utils/i18n.util.mjs +233 -233
  187. package/esm2020/lib/utils/index.mjs +10 -10
  188. package/esm2020/lib/utils/model.util.mjs +68 -68
  189. package/esm2020/lib/utils/notification.util.mjs +51 -51
  190. package/esm2020/lib/utils/route.util.mjs +36 -24
  191. package/esm2020/lib/utils/string.util.mjs +26 -26
  192. package/esm2020/lib/utils/tableview.util.mjs +160 -160
  193. package/esm2020/lib/utils/type.util.mjs +92 -92
  194. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  195. package/esm2020/public-api.mjs +61 -55
  196. package/fesm2015/mediusinc-mng-commons.mjs +14198 -13932
  197. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  198. package/fesm2020/mediusinc-mng-commons.mjs +14024 -13769
  199. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  200. package/index.d.ts +5 -5
  201. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  202. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  203. package/lib/api/models/filter-param.model.d.ts +23 -23
  204. package/lib/api/models/index.d.ts +8 -8
  205. package/lib/api/models/mappers.d.ts +6 -6
  206. package/lib/api/models/query-mode.model.d.ts +16 -16
  207. package/lib/api/models/query-param.model.d.ts +31 -31
  208. package/lib/api/models/query-result.model.d.ts +24 -24
  209. package/lib/api/models/serialization.model.d.ts +8 -8
  210. package/lib/api/services/api.abstract.service.d.ts +24 -24
  211. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  212. package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
  213. package/lib/api/services/index.d.ts +3 -3
  214. package/lib/api/utils/index.d.ts +2 -2
  215. package/lib/api/utils/medius-rest.util.d.ts +16 -16
  216. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  217. package/lib/components/action/action.component.d.ts +79 -79
  218. package/lib/components/action/editor/action-editor.component.d.ts +69 -69
  219. package/lib/components/action/index.d.ts +4 -4
  220. package/lib/components/action/localization/data-language-dropdown.component.d.ts +25 -25
  221. package/lib/components/action/models/action-component.model.d.ts +15 -15
  222. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  223. package/lib/components/action/models/action-execution.model.d.ts +135 -135
  224. package/lib/components/action/models/index.d.ts +4 -4
  225. package/lib/components/action/models/tableview-action-default-categories.model.d.ts +10 -10
  226. package/lib/components/action/route/action-route.component.d.ts +31 -31
  227. package/lib/components/form/autocomplete/autocomplete.component.d.ts +61 -61
  228. package/lib/components/form/date-range/date-range.component.d.ts +28 -28
  229. package/lib/components/form/dropdown/dropdown.component.d.ts +59 -52
  230. package/lib/components/form/editor/form-editor.component.d.ts +52 -52
  231. package/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.d.ts +13 -13
  232. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +16 -16
  233. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +15 -15
  234. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +14 -14
  235. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +29 -29
  236. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +11 -11
  237. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +46 -46
  238. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +25 -24
  239. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +37 -37
  240. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +7 -7
  241. package/lib/components/form/formly/fields/index.d.ts +10 -10
  242. package/lib/components/form/formly/formly.config.d.ts +14 -14
  243. package/lib/components/form/formly/index.d.ts +1 -1
  244. package/lib/components/form/formly/models/formly-config.model.d.ts +11 -11
  245. package/lib/components/form/formly/models/formly-field.model.d.ts +16 -16
  246. package/lib/components/form/formly/models/index.d.ts +2 -2
  247. package/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +6 -6
  248. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +11 -11
  249. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  250. package/lib/components/form/index.d.ts +4 -4
  251. package/lib/components/form/models/field-action-context.model.d.ts +17 -17
  252. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  253. package/lib/components/form/models/form-editor.interface.d.ts +10 -10
  254. package/lib/components/form/models/index.d.ts +2 -2
  255. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  256. package/lib/components/layout/footer.component.d.ts +9 -9
  257. package/lib/components/layout/index.d.ts +8 -7
  258. package/lib/components/layout/main-layout.component.d.ts +22 -20
  259. package/lib/components/layout/menu-item.component.d.ts +56 -52
  260. package/lib/components/layout/menu.component.d.ts +16 -10
  261. package/lib/components/layout/services/index.d.ts +1 -1
  262. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  263. package/lib/components/layout/topbar-user.component.d.ts +21 -0
  264. package/lib/components/layout/topbar.component.d.ts +26 -28
  265. package/lib/components/layout/version.component.d.ts +19 -19
  266. package/lib/components/tableview/index.d.ts +6 -6
  267. package/lib/components/tableview/models/index.d.ts +1 -1
  268. package/lib/components/tableview/models/table.event.d.ts +17 -17
  269. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +36 -33
  270. package/lib/components/tableview/route/tableview-route.component.d.ts +19 -18
  271. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +38 -38
  272. package/lib/components/tableview/table/column-value/column-value.component.d.ts +35 -35
  273. package/lib/components/tableview/table/table.component.d.ts +117 -115
  274. package/lib/components/tableview/tableview.component.d.ts +49 -48
  275. package/lib/data-providers/base.data-provider.d.ts +14 -14
  276. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  277. package/lib/data-providers/index.d.ts +6 -6
  278. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  279. package/lib/data-providers/table.data-provider.d.ts +27 -27
  280. package/lib/data-providers/tableview-crud.data-provider.d.ts +8 -8
  281. package/lib/data-providers/tableview.data-provider.d.ts +33 -33
  282. package/lib/descriptors/{action-button.descriptor.d.ts → action/action-button.descriptor.d.ts} +22 -22
  283. package/lib/descriptors/action/action-confirmation.descriptor.d.ts +36 -36
  284. package/lib/descriptors/{action.descriptor.d.ts → action/action.descriptor.d.ts} +225 -223
  285. package/lib/descriptors/action/index.d.ts +3 -0
  286. package/lib/descriptors/{editor.descriptor.d.ts → editor/editor.descriptor.d.ts} +119 -116
  287. package/lib/descriptors/{field-validation.descriptor.d.ts → editor/field-validation.descriptor.d.ts} +19 -19
  288. package/lib/descriptors/{field.descriptor.d.ts → editor/field.descriptor.d.ts} +349 -345
  289. package/lib/descriptors/editor/index.d.ts +3 -0
  290. package/lib/descriptors/{filter.descriptor.d.ts → filter/filter.descriptor.d.ts} +120 -118
  291. package/lib/descriptors/filter/index.d.ts +1 -0
  292. package/lib/descriptors/index.d.ts +1 -11
  293. package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
  294. package/lib/descriptors/interfaces/index.d.ts +2 -2
  295. package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
  296. package/lib/descriptors/model.descriptor.d.ts +18 -18
  297. package/lib/descriptors/{column.descriptor.d.ts → table/column.descriptor.d.ts} +130 -130
  298. package/lib/descriptors/table/index.d.ts +2 -0
  299. package/lib/descriptors/{table.descriptor.d.ts → table/table.descriptor.d.ts} +193 -193
  300. package/lib/descriptors/tableview/index.d.ts +1 -0
  301. package/lib/descriptors/{tableview.descriptor.d.ts → tableview/tableview.descriptor.d.ts} +131 -129
  302. package/lib/descriptors/types/action.type.d.ts +21 -21
  303. package/lib/descriptors/types/column.type.d.ts +18 -18
  304. package/lib/descriptors/types/editor.type.d.ts +6 -6
  305. package/lib/descriptors/types/field.type.d.ts +47 -47
  306. package/lib/descriptors/types/filter.type.d.ts +27 -27
  307. package/lib/descriptors/types/index.d.ts +6 -6
  308. package/lib/descriptors/types/table.type.d.ts +22 -22
  309. package/lib/directives/component.directive.d.ts +20 -16
  310. package/lib/directives/index.d.ts +2 -2
  311. package/lib/directives/template.directive.d.ts +13 -13
  312. package/lib/mng-commons.module.d.ts +100 -99
  313. package/lib/models/column-value.model.d.ts +4 -4
  314. package/lib/models/config.model.d.ts +51 -40
  315. package/lib/models/enum.model.d.ts +6 -6
  316. package/lib/models/error.model.d.ts +14 -14
  317. package/lib/models/index.d.ts +9 -9
  318. package/lib/models/menu.model.d.ts +30 -30
  319. package/lib/models/tableview-attr.model.d.ts +10 -10
  320. package/lib/models/user.model.d.ts +8 -8
  321. package/lib/models/version.model.d.ts +18 -18
  322. package/lib/models/view-container.model.d.ts +43 -43
  323. package/lib/pipes/boolean.pipe.d.ts +7 -7
  324. package/lib/pipes/class-map.pipe.d.ts +7 -7
  325. package/lib/pipes/enum.pipe.d.ts +8 -8
  326. package/lib/pipes/enumerate-async.pipe.d.ts +14 -14
  327. package/lib/pipes/enumerate.pipe.d.ts +21 -21
  328. package/lib/pipes/getter.pipe.d.ts +7 -7
  329. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  330. package/lib/pipes/index.d.ts +11 -11
  331. package/lib/pipes/json-path.pipe.d.ts +13 -13
  332. package/lib/pipes/locale-default-row-class.pipe.d.ts +10 -10
  333. package/lib/pipes/models/internal/enumrate-pipe-i18n.model.d.ts +5 -5
  334. package/lib/pipes/models/internal/index.d.ts +1 -1
  335. package/lib/pipes/parametrize.pipe.d.ts +13 -13
  336. package/lib/pipes/template.pipe.d.ts +10 -10
  337. package/lib/provide-commons.d.ts +3 -0
  338. package/lib/router/index.d.ts +3 -2
  339. package/lib/router/models/index.d.ts +1 -1
  340. package/lib/router/models/router.model.d.ts +31 -33
  341. package/lib/router/route-builder.d.ts +60 -98
  342. package/lib/router/routes-builder.d.ts +28 -0
  343. package/lib/router/tableview-route-builder.d.ts +44 -37
  344. package/lib/security/authorization.guard.d.ts +11 -11
  345. package/lib/security/authorization.service.d.ts +19 -19
  346. package/lib/security/authorization.util.d.ts +5 -5
  347. package/lib/security/index.d.ts +3 -3
  348. package/lib/security/model/authorization.type.d.ts +6 -6
  349. package/lib/security/model/index.d.ts +3 -3
  350. package/lib/security/model/permission-service.interface.d.ts +6 -6
  351. package/lib/security/model/permissions.model.d.ts +37 -37
  352. package/lib/services/action-executor.service.d.ts +150 -149
  353. package/lib/services/commons.service.d.ts +93 -93
  354. package/lib/services/configuration.service.d.ts +60 -57
  355. package/lib/services/error-mapper.service.d.ts +7 -7
  356. package/lib/services/index.d.ts +6 -6
  357. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  358. package/lib/services/internal/commons-init.service.d.ts +18 -16
  359. package/lib/services/internal/index.d.ts +2 -2
  360. package/lib/services/navigation.service.d.ts +14 -14
  361. package/lib/services/providers/config-service.provider.d.ts +6 -6
  362. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  363. package/lib/services/providers/index.d.ts +2 -2
  364. package/lib/services/router.service.d.ts +22 -0
  365. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  366. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  367. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  368. package/lib/services/tokens/index.d.ts +4 -4
  369. package/lib/services/tokens/module-config.token.d.ts +3 -3
  370. package/lib/services/version.service.d.ts +13 -13
  371. package/lib/services/view-container.component.service.d.ts +31 -31
  372. package/lib/styles/button-style.builder.d.ts +67 -67
  373. package/lib/styles/index.d.ts +2 -2
  374. package/lib/styles/models/index.d.ts +2 -2
  375. package/lib/styles/models/style-level.enum.d.ts +10 -10
  376. package/lib/styles/models/style-size.enum.d.ts +7 -7
  377. package/lib/styles/styles.util.d.ts +15 -14
  378. package/lib/types/index.d.ts +2 -2
  379. package/lib/types/type.decorator.d.ts +4 -4
  380. package/lib/types/type.model.d.ts +23 -23
  381. package/lib/utils/action-data-provider.util.d.ts +20 -20
  382. package/lib/utils/date.util.d.ts +7 -7
  383. package/lib/utils/editor-formly.util.d.ts +12 -12
  384. package/lib/utils/enum.util.d.ts +50 -50
  385. package/lib/utils/export.util.d.ts +5 -5
  386. package/lib/utils/i18n.util.d.ts +57 -56
  387. package/lib/utils/index.d.ts +10 -10
  388. package/lib/utils/model.util.d.ts +8 -8
  389. package/lib/utils/notification.util.d.ts +13 -12
  390. package/lib/utils/route.util.d.ts +59 -4
  391. package/lib/utils/string.util.d.ts +4 -4
  392. package/lib/utils/tableview.util.d.ts +40 -40
  393. package/lib/utils/type.util.d.ts +57 -57
  394. package/package.json +6 -6
  395. package/public-api.d.ts +40 -34
  396. package/scss/common/layout/_breadcrumb.scss +12 -2
  397. package/scss/common/layout/_exception.scss +1 -1
  398. package/scss/common/layout/_inlinemenu.scss +13 -0
  399. package/scss/common/layout/_login.scss +1 -0
  400. package/scss/common/layout/_rightmenu.scss +5 -0
  401. package/scss/common/layout/menu/_menu_common.scss +1 -1
  402. package/scss/common/theme/designer/_mixins.scss +29 -0
  403. package/scss/common/theme/extensions/_datatable.scss +2 -2
  404. package/scss/common/variables/layout/_layout_dark.scss +0 -1
  405. package/scss/common/variables/layout/_layout_light.scss +0 -1
  406. package/scss/common/variables/theme/_theme_dark.scss +72 -46
  407. package/scss/common/variables/theme/_theme_light.scss +70 -33
  408. package/scss/theme/default/_mng-variables-theme-light.scss +2 -0
  409. package/version-info.json +7 -7
  410. package/esm2020/lib/descriptors/action-button.descriptor.mjs +0 -60
  411. package/esm2020/lib/descriptors/action.descriptor.mjs +0 -577
  412. package/esm2020/lib/descriptors/column.descriptor.mjs +0 -405
  413. package/esm2020/lib/descriptors/editor.descriptor.mjs +0 -290
  414. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +0 -25
  415. package/esm2020/lib/descriptors/field.descriptor.mjs +0 -987
  416. package/esm2020/lib/descriptors/filter.descriptor.mjs +0 -368
  417. package/esm2020/lib/descriptors/table.descriptor.mjs +0 -497
  418. package/esm2020/lib/descriptors/tableview.descriptor.mjs +0 -344
  419. package/mediusinc-mng-commons-1.4.0.tgz +0 -0
@@ -0,0 +1,67 @@
1
+ import { MngMainLayoutComponent } from '../components/layout';
2
+ import { RouteBuilder } from './route-builder';
3
+ export class RoutesBuilder {
4
+ constructor(layoutRoute) {
5
+ this.routes = [];
6
+ this.layoutRoute = layoutRoute?.withRoot(this);
7
+ this.currentRoute = layoutRoute;
8
+ }
9
+ static create() {
10
+ return new RoutesBuilder();
11
+ }
12
+ static createWithLayout(layoutComponent = MngMainLayoutComponent) {
13
+ const layoutRoute = RouteBuilder.createLayoutRoute('', layoutComponent);
14
+ return new RoutesBuilder(layoutRoute);
15
+ }
16
+ addAngularRoute(route) {
17
+ return this.addRouteBuilder(RouteBuilder.createFromRoute(route));
18
+ }
19
+ addRouteRedirect(path, redirectTo, pathMatch = 'prefix') {
20
+ return this.addRouteBuilder(RouteBuilder.createRedirect(path, redirectTo, pathMatch));
21
+ }
22
+ /**
23
+ * @deprecated This method is deprecated and should not be used.
24
+ * Use method {@link addLazyRouteComponent} or {@link addLazyRouteModule} instead.
25
+ */
26
+ addLazyRoute(path, loadChildren, canLoad) {
27
+ return this.addRouteBuilder(RouteBuilder.createLazyRoute(path, loadChildren, canLoad));
28
+ }
29
+ addLazyRouteComponent(path, loadComponent, canMatch) {
30
+ return this.addRouteBuilder(RouteBuilder.createLazyRouteComponent(path, loadComponent, canMatch));
31
+ }
32
+ addLazyRouteModule(path, loadChildren, canMatch) {
33
+ return this.addRouteBuilder(RouteBuilder.createLazyRouteModule(path, loadChildren, canMatch));
34
+ }
35
+ addRoute(path, component) {
36
+ return this.addRouteBuilder(RouteBuilder.create(path, component));
37
+ }
38
+ addTableview(builder) {
39
+ return this.addRouteBuilder(builder);
40
+ }
41
+ addRouteBuilder(routeBuilder) {
42
+ this.currentRoute = routeBuilder.withRoot(this);
43
+ this.routes.push(routeBuilder);
44
+ return this;
45
+ }
46
+ toRoute() {
47
+ if (!this.currentRoute) {
48
+ throw new Error('No routes were added!');
49
+ }
50
+ return this.currentRoute;
51
+ }
52
+ build() {
53
+ let angularRoutes = [];
54
+ for (const route of this.routes) {
55
+ angularRoutes.push(route.build());
56
+ }
57
+ if (this.layoutRoute) {
58
+ const layoutAngularRoute = this.layoutRoute.build();
59
+ if (angularRoutes.length > 0) {
60
+ layoutAngularRoute.children = angularRoutes;
61
+ }
62
+ angularRoutes = [layoutAngularRoute];
63
+ }
64
+ return angularRoutes;
65
+ }
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JvdXRlci9yb3V0ZXMtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHN0MsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFBb0IsV0FBMEI7UUFIdEMsV0FBTSxHQUF3QixFQUFFLENBQUM7UUFJckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTTtRQUNoQixPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsc0JBQXNCO1FBQ25FLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQVk7UUFDL0IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsWUFBK0IsUUFBUTtRQUM3RixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxJQUFZLEVBQUUsWUFBMEIsRUFBRSxPQUFvQjtRQUM5RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVNLHFCQUFxQixDQUN4QixJQUFZLEVBQ1osYUFBcUosRUFDckosUUFBcUI7UUFFckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVNLGtCQUFrQixDQUFDLElBQVksRUFBRSxZQUEwQixFQUFFLFFBQXFCO1FBQ3JGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBWSxFQUFFLFNBQW9CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxZQUFZLENBQUMsT0FBc0M7UUFDdEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxlQUFlLENBQUMsWUFBMEI7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxhQUFhLEdBQVcsRUFBRSxDQUFDO1FBQy9CLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM3QixhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO2FBQy9DO1lBQ0QsYUFBYSxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RlZmF1bHRFeHBvcnQsIExvYWRDaGlsZHJlbiwgUm91dGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNbmdNYWluTGF5b3V0Q29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2xheW91dCc7XG5pbXBvcnQge0FNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZXZpZXcnO1xuaW1wb3J0IHtSb3V0ZUJ1aWxkZXJ9IGZyb20gJy4vcm91dGUtYnVpbGRlcic7XG5pbXBvcnQge1RhYmxldmlld1JvdXRlQnVpbGRlckludGVybmFsfSBmcm9tICcuL3RhYmxldmlldy1yb3V0ZS1idWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFJvdXRlc0J1aWxkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbGF5b3V0Um91dGU/OiBSb3V0ZUJ1aWxkZXI7XG4gICAgcHJpdmF0ZSByb3V0ZXM6IEFycmF5PFJvdXRlQnVpbGRlcj4gPSBbXTtcbiAgICBwcml2YXRlIGN1cnJlbnRSb3V0ZT86IFJvdXRlQnVpbGRlcjtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IobGF5b3V0Um91dGU/OiBSb3V0ZUJ1aWxkZXIpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRSb3V0ZSA9IGxheW91dFJvdXRlPy53aXRoUm9vdCh0aGlzKTtcbiAgICAgICAgdGhpcy5jdXJyZW50Um91dGUgPSBsYXlvdXRSb3V0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZSgpOiBSb3V0ZXNCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSb3V0ZXNCdWlsZGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVXaXRoTGF5b3V0KGxheW91dENvbXBvbmVudCA9IE1uZ01haW5MYXlvdXRDb21wb25lbnQpOiBSb3V0ZXNCdWlsZGVyIHtcbiAgICAgICAgY29uc3QgbGF5b3V0Um91dGUgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlTGF5b3V0Um91dGUoJycsIGxheW91dENvbXBvbmVudCk7XG4gICAgICAgIHJldHVybiBuZXcgUm91dGVzQnVpbGRlcihsYXlvdXRSb3V0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEFuZ3VsYXJSb3V0ZShyb3V0ZTogUm91dGUpOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUm91dGVCdWlsZGVyKFJvdXRlQnVpbGRlci5jcmVhdGVGcm9tUm91dGUocm91dGUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUm91dGVSZWRpcmVjdChwYXRoOiBzdHJpbmcsIHJlZGlyZWN0VG86IHN0cmluZywgcGF0aE1hdGNoOiAnZnVsbCcgfCAncHJlZml4JyA9ICdwcmVmaXgnKTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZFJvdXRlQnVpbGRlcihSb3V0ZUJ1aWxkZXIuY3JlYXRlUmVkaXJlY3QocGF0aCwgcmVkaXJlY3RUbywgcGF0aE1hdGNoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICAgICAqIFVzZSBtZXRob2Qge0BsaW5rIGFkZExhenlSb3V0ZUNvbXBvbmVudH0gb3Ige0BsaW5rIGFkZExhenlSb3V0ZU1vZHVsZX0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkTGF6eVJvdXRlKHBhdGg6IHN0cmluZywgbG9hZENoaWxkcmVuOiBMb2FkQ2hpbGRyZW4sIGNhbkxvYWQ/OiBBcnJheTxhbnk+KTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZFJvdXRlQnVpbGRlcihSb3V0ZUJ1aWxkZXIuY3JlYXRlTGF6eVJvdXRlKHBhdGgsIGxvYWRDaGlsZHJlbiwgY2FuTG9hZCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRMYXp5Um91dGVDb21wb25lbnQoXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4gVHlwZTx1bmtub3duPiB8IE9ic2VydmFibGU8VHlwZTx1bmtub3duPiB8IERlZmF1bHRFeHBvcnQ8VHlwZTx1bmtub3duPj4+IHwgUHJvbWlzZTxUeXBlPHVua25vd24+IHwgRGVmYXVsdEV4cG9ydDxUeXBlPHVua25vd24+Pj4sXG4gICAgICAgIGNhbk1hdGNoPzogQXJyYXk8YW55PlxuICAgICk6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRSb3V0ZUJ1aWxkZXIoUm91dGVCdWlsZGVyLmNyZWF0ZUxhenlSb3V0ZUNvbXBvbmVudChwYXRoLCBsb2FkQ29tcG9uZW50LCBjYW5NYXRjaCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRMYXp5Um91dGVNb2R1bGUocGF0aDogc3RyaW5nLCBsb2FkQ2hpbGRyZW46IExvYWRDaGlsZHJlbiwgY2FuTWF0Y2g/OiBBcnJheTxhbnk+KTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZFJvdXRlQnVpbGRlcihSb3V0ZUJ1aWxkZXIuY3JlYXRlTGF6eVJvdXRlTW9kdWxlKHBhdGgsIGxvYWRDaGlsZHJlbiwgY2FuTWF0Y2gpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUm91dGUocGF0aDogc3RyaW5nLCBjb21wb25lbnQ6IFR5cGU8YW55Pik6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRSb3V0ZUJ1aWxkZXIoUm91dGVCdWlsZGVyLmNyZWF0ZShwYXRoLCBjb21wb25lbnQpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVGFibGV2aWV3KGJ1aWxkZXI6IFRhYmxldmlld1JvdXRlQnVpbGRlckludGVybmFsKTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZFJvdXRlQnVpbGRlcihidWlsZGVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUm91dGVCdWlsZGVyKHJvdXRlQnVpbGRlcjogUm91dGVCdWlsZGVyKTogdGhpcyB7XG4gICAgICAgIHRoaXMuY3VycmVudFJvdXRlID0gcm91dGVCdWlsZGVyLndpdGhSb290KHRoaXMpO1xuICAgICAgICB0aGlzLnJvdXRlcy5wdXNoKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1JvdXRlKCk6IFJvdXRlQnVpbGRlciB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50Um91dGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcm91dGVzIHdlcmUgYWRkZWQhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFJvdXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBidWlsZCgpOiBSb3V0ZXMge1xuICAgICAgICBsZXQgYW5ndWxhclJvdXRlczogUm91dGVzID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgcm91dGUgb2YgdGhpcy5yb3V0ZXMpIHtcbiAgICAgICAgICAgIGFuZ3VsYXJSb3V0ZXMucHVzaChyb3V0ZS5idWlsZCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxheW91dFJvdXRlKSB7XG4gICAgICAgICAgICBjb25zdCBsYXlvdXRBbmd1bGFyUm91dGUgPSB0aGlzLmxheW91dFJvdXRlLmJ1aWxkKCk7XG4gICAgICAgICAgICBpZiAoYW5ndWxhclJvdXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgbGF5b3V0QW5ndWxhclJvdXRlLmNoaWxkcmVuID0gYW5ndWxhclJvdXRlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFuZ3VsYXJSb3V0ZXMgPSBbbGF5b3V0QW5ndWxhclJvdXRlXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhbmd1bGFyUm91dGVzO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,187 +1,184 @@
1
- import { MngActionRouteComponent } from '../components/action';
2
- import { TableviewActionDefaultCategories } from '../components/action/models';
3
- import { MngTableviewRouteComponent } from '../components/tableview';
4
- import { ActionEditorAddDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor } from '../descriptors';
5
- import { RouteBuilder } from './route-builder';
6
- export class TableviewRouteBuilder {
7
- constructor(path) {
8
- this.path = path;
9
- this.hasDetails = true;
10
- this.detailsPath = ':itemId';
11
- this.hasEdit = true;
12
- this.editPath = ':itemId/edit';
13
- this.hasAdd = true;
14
- this.addPath = 'add';
15
- this.hasDelete = true;
16
- }
17
- static fromComponent(path, component) {
18
- const inst = new TableviewRouteBuilder(path);
19
- inst.component = component;
20
- return inst;
21
- }
22
- static from(path, descriptor, dataProvider, actions) {
23
- const inst = new TableviewRouteBuilder(path);
24
- inst.descriptor = descriptor;
25
- inst.dataProvider = dataProvider;
26
- inst.actions = actions;
27
- inst.hasDetails = false;
28
- inst.hasAdd = false;
29
- inst.hasEdit = false;
30
- for (const action of inst.actions) {
31
- if (action instanceof ActionEditorDetailsDescriptor) {
32
- inst.hasDetails = true;
33
- }
34
- else if (action instanceof ActionEditorAddDescriptor) {
35
- inst.hasAdd = true;
36
- }
37
- else if (action instanceof ActionEditorEditDescriptor) {
38
- inst.hasEdit = true;
39
- }
40
- }
41
- return inst;
42
- }
43
- withReadOnly(permissions) {
44
- if (permissions) {
45
- this.withPermissions(permissions);
46
- }
47
- this.withAdd(false);
48
- this.withEdit(false);
49
- this.withDelete(false);
50
- return this;
51
- }
52
- withDetails(hasDetails = true, permissions, path) {
53
- this.hasDetails = hasDetails;
54
- if (permissions) {
55
- this.withPermissions(undefined, undefined, undefined, undefined, permissions);
56
- }
57
- if (path) {
58
- this.detailsPath = path;
59
- }
60
- return this;
61
- }
62
- withAdd(hasAdd = true, permissions, path) {
63
- this.hasAdd = hasAdd;
64
- if (permissions) {
65
- this.withPermissions(undefined, permissions);
66
- }
67
- if (path) {
68
- this.addPath = path;
69
- }
70
- return this;
71
- }
72
- withEdit(hasEdit = true, permissions, path) {
73
- this.hasEdit = hasEdit;
74
- if (permissions) {
75
- this.withPermissions(undefined, undefined, permissions);
76
- }
77
- if (path) {
78
- this.editPath = path;
79
- }
80
- return this;
81
- }
82
- withDelete(hasDelete = true, permissions) {
83
- this.hasDelete = hasDelete;
84
- if (permissions) {
85
- this.withPermissions(undefined, undefined, undefined, permissions);
86
- }
87
- return this;
88
- }
89
- withPermissions(read, add, edit, delet, details) {
90
- if (!this.permissions) {
91
- this.permissions = {};
92
- }
93
- if (read) {
94
- this.permissions[TableviewActionDefaultCategories.READ] = read;
95
- }
96
- if (add) {
97
- this.permissions[TableviewActionDefaultCategories.ADD] = add;
98
- }
99
- if (edit) {
100
- this.permissions[TableviewActionDefaultCategories.EDIT] = edit;
101
- }
102
- if (delet) {
103
- this.permissions[TableviewActionDefaultCategories.DELETE] = delet;
104
- }
105
- if (details) {
106
- this.permissions[TableviewActionDefaultCategories.DETAILS] = details;
107
- }
108
- return this;
109
- }
110
- withPermissionByCategory(key, permissions) {
111
- if (!this.permissions) {
112
- this.permissions = {};
113
- }
114
- this.permissions[key] = permissions;
115
- return this;
116
- }
117
- withPermissionsObject(permissions) {
118
- this.permissions = permissions;
119
- return this;
120
- }
121
- build() {
122
- return this.toRouteBuilder().buildRoute();
123
- }
124
- toRouteBuilder() {
125
- const tableviewRouteBuilder = RouteBuilder.createFromRoute({
126
- path: this.path,
127
- component: this.component ? this.component : MngTableviewRouteComponent
128
- });
129
- const routeData = {};
130
- if (!this.component) {
131
- routeData.tableview = {
132
- descriptor: this.descriptor,
133
- dataProvider: this.dataProvider
134
- };
135
- if (this.actions) {
136
- routeData.tableview.actions = this.actions;
137
- }
138
- }
139
- if (this.permissions) {
140
- routeData.tableviewPermissions = { ...this.permissions };
141
- }
142
- routeData.tableviewActions = {
143
- hasAdd: this.hasAdd,
144
- hasEdit: this.hasEdit,
145
- hasDetails: this.hasDetails,
146
- hasDelete: this.hasDelete
147
- };
148
- tableviewRouteBuilder.withData(routeData);
149
- if (this.permissions?.[TableviewActionDefaultCategories.READ]) {
150
- tableviewRouteBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.READ]);
151
- }
152
- // list route
153
- const rootChildRouteBuilder = RouteBuilder.create('', MngActionRouteComponent);
154
- rootChildRouteBuilder.withData({ ...routeData });
155
- if (this.permissions?.[TableviewActionDefaultCategories.READ]) {
156
- rootChildRouteBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.READ]);
157
- }
158
- tableviewRouteBuilder.addChildBuilder(rootChildRouteBuilder);
159
- // add route
160
- if (this.hasAdd) {
161
- const routeBuilder = RouteBuilder.create(this.addPath, MngActionRouteComponent);
162
- routeBuilder.withData({ ...routeData });
163
- if (this.permissions?.[TableviewActionDefaultCategories.ADD]) {
164
- routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.ADD]);
165
- }
166
- tableviewRouteBuilder.addChildBuilder(routeBuilder);
167
- }
168
- if (this.hasDetails) {
169
- const routeBuilder = RouteBuilder.create(this.detailsPath, MngActionRouteComponent);
170
- routeBuilder.withData({ ...routeData });
171
- if (this.permissions?.[TableviewActionDefaultCategories.DETAILS]) {
172
- routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.DETAILS]);
173
- }
174
- tableviewRouteBuilder.addChildBuilder(routeBuilder);
175
- }
176
- if (this.hasEdit) {
177
- const routeBuilder = RouteBuilder.create(this.editPath, MngActionRouteComponent);
178
- routeBuilder.withData({ ...routeData });
179
- if (this.permissions?.[TableviewActionDefaultCategories.EDIT]) {
180
- routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.EDIT]);
181
- }
182
- tableviewRouteBuilder.addChildBuilder(routeBuilder);
183
- }
184
- return tableviewRouteBuilder;
185
- }
186
- }
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JvdXRlci90YWJsZXZpZXctcm91dGUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEVBQThCLDBCQUEwQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEcsT0FBTyxFQUFtQix5QkFBeUIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUczSixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsTUFBTSxPQUFPLHFCQUFxQjtJQW1COUIsWUFBNEIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFaaEMsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsYUFBUSxHQUFHLGNBQWMsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO0lBTWtCLENBQUM7SUFFckMsTUFBTSxDQUFDLGFBQWEsQ0FBa0QsSUFBWSxFQUFFLFNBQWtCO1FBQ3pHLE1BQU0sSUFBSSxHQUFHLElBQUkscUJBQXFCLENBQUksSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQ2QsSUFBWSxFQUNaLFVBQW9DLEVBQ3BDLFlBQThDLEVBQzlDLE9BQXFDO1FBRXJDLE1BQU0sSUFBSSxHQUFHLElBQUkscUJBQXFCLENBQVEsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQy9CLElBQUksTUFBTSxZQUFZLDZCQUE2QixFQUFFO2dCQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUMxQjtpQkFBTSxJQUFJLE1BQU0sWUFBWSx5QkFBeUIsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDdEI7aUJBQU0sSUFBSSxNQUFNLFlBQVksMEJBQTBCLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLFdBQTBCO1FBQzFDLElBQUksV0FBVyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNyQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxXQUEwQixFQUFFLElBQWE7UUFDM0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxXQUFXLEVBQUU7WUFDYixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNqRjtRQUNELElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDM0I7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsV0FBMEIsRUFBRSxJQUFhO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksV0FBVyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDaEQ7UUFDRCxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLFdBQTBCLEVBQUUsSUFBYTtRQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLFdBQVcsRUFBRTtZQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUMzRDtRQUNELElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQUUsV0FBMEI7UUFDMUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxXQUFXLEVBQUU7WUFDYixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3RFO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxJQUFtQixFQUFFLEdBQWtCLEVBQUUsSUFBbUIsRUFBRSxLQUFvQixFQUFFLE9BQXNCO1FBQzdILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNsRTtRQUNELElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDaEU7UUFDRCxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNyRTtRQUNELElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDeEU7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sd0JBQXdCLENBQUMsR0FBVyxFQUFFLFdBQXlCO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFdBQTBDO1FBQ25FLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxLQUFLO1FBQ1IsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVNLGNBQWM7UUFDakIsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1lBQ3ZELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7U0FDMUUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxTQUFTLEdBQWtCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixTQUFTLENBQUMsU0FBUyxHQUFHO2dCQUNsQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVc7Z0JBQzVCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBYTthQUNuQyxDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDOUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixTQUFTLENBQUMsb0JBQW9CLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQztTQUMxRDtRQUNELFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRztZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDNUIsQ0FBQztRQUNGLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzRCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2xHO1FBRUQsYUFBYTtRQUNiLE1BQU0scUJBQXFCLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUMvRSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsRUFBQyxHQUFHLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0QscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNsRztRQUNELHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTdELFlBQVk7UUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUNoRixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxTQUFTLEVBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMxRCxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUN4RjtZQUNELHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUNwRixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxTQUFTLEVBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM5RCxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM1RjtZQUNELHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2pGLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBQyxHQUFHLFNBQVMsRUFBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzNELFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3pGO1lBQ0QscUJBQXFCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsT0FBTyxxQkFBcUIsQ0FBQztJQUNqQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24nO1xuaW1wb3J0IHtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzJztcbmltcG9ydCB7QU1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LCBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZXZpZXcnO1xuaW1wb3J0IHtJVGFibGV2aWV3RGF0YVByb3ZpZGVyfSBmcm9tICcuLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvciwgVGFibGV2aWV3RGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnN9IGZyb20gJy4uL3NlY3VyaXR5L21vZGVsJztcbmltcG9ydCB7TW5nUm91dGVyRGF0YX0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtSb3V0ZUJ1aWxkZXJ9IGZyb20gJy4vcm91dGUtYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXI8QyBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxhbnksIGFueT4+IHtcbiAgICBwcml2YXRlIGRlc2NyaXB0b3I/OiBUYWJsZXZpZXdEZXNjcmlwdG9yPGFueT47XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXI/OiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPGFueSwgYW55PjtcbiAgICBwcml2YXRlIGFjdGlvbnM/OiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPGFueT4+O1xuXG4gICAgcHJpdmF0ZSBjb21wb25lbnQ/OiBUeXBlPEM+O1xuXG4gICAgcHJpdmF0ZSBoYXNEZXRhaWxzID0gdHJ1ZTtcbiAgICBwcml2YXRlIGRldGFpbHNQYXRoID0gJzppdGVtSWQnO1xuICAgIHByaXZhdGUgaGFzRWRpdCA9IHRydWU7XG4gICAgcHJpdmF0ZSBlZGl0UGF0aCA9ICc6aXRlbUlkL2VkaXQnO1xuICAgIHByaXZhdGUgaGFzQWRkID0gdHJ1ZTtcbiAgICBwcml2YXRlIGFkZFBhdGggPSAnYWRkJztcbiAgICBwcml2YXRlIGhhc0RlbGV0ZSA9IHRydWU7XG5cbiAgICBwcml2YXRlIHBlcm1pc3Npb25zPzoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBUGVybWlzc2lvbnM7XG4gICAgfTtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSBwYXRoOiBzdHJpbmcpIHt9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Db21wb25lbnQ8QyBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxhbnksIGFueT4+KHBhdGg6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPEM+KTogVGFibGV2aWV3Um91dGVCdWlsZGVyPEM+IHtcbiAgICAgICAgY29uc3QgaW5zdCA9IG5ldyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXI8Qz4ocGF0aCk7XG4gICAgICAgIGluc3QuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gaW5zdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvcjxhbnk+LFxuICAgICAgICBkYXRhUHJvdmlkZXI6IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8YW55LCBhbnk+LFxuICAgICAgICBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPGFueT4+XG4gICAgKTogVGFibGV2aWV3Um91dGVCdWlsZGVyPG5ldmVyPiB7XG4gICAgICAgIGNvbnN0IGluc3QgPSBuZXcgVGFibGV2aWV3Um91dGVCdWlsZGVyPG5ldmVyPihwYXRoKTtcbiAgICAgICAgaW5zdC5kZXNjcmlwdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgaW5zdC5kYXRhUHJvdmlkZXIgPSBkYXRhUHJvdmlkZXI7XG4gICAgICAgIGluc3QuYWN0aW9ucyA9IGFjdGlvbnM7XG5cbiAgICAgICAgaW5zdC5oYXNEZXRhaWxzID0gZmFsc2U7XG4gICAgICAgIGluc3QuaGFzQWRkID0gZmFsc2U7XG4gICAgICAgIGluc3QuaGFzRWRpdCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBpbnN0LmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgICAgIGluc3QuaGFzRGV0YWlscyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICBpbnN0Lmhhc0FkZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICAgICAgaW5zdC5oYXNFZGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbnN0O1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUmVhZE9ubHkocGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyhwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53aXRoQWRkKGZhbHNlKTtcbiAgICAgICAgdGhpcy53aXRoRWRpdChmYWxzZSk7XG4gICAgICAgIHRoaXMud2l0aERlbGV0ZShmYWxzZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGV0YWlscyhoYXNEZXRhaWxzID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNEZXRhaWxzID0gaGFzRGV0YWlscztcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgdGhpcy5kZXRhaWxzUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBZGQoaGFzQWRkID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNBZGQgPSBoYXNBZGQ7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnModW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0KGhhc0VkaXQgPSB0cnVlLCBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucywgcGF0aD86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhhc0VkaXQgPSBoYXNFZGl0O1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdFBhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGVsZXRlKGhhc0RlbGV0ZSA9IHRydWUsIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGFzRGVsZXRlID0gaGFzRGVsZXRlO1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25zKHJlYWQ/OiBBUGVybWlzc2lvbnMsIGFkZD86IEFQZXJtaXNzaW9ucywgZWRpdD86IEFQZXJtaXNzaW9ucywgZGVsZXQ/OiBBUGVybWlzc2lvbnMsIGRldGFpbHM/OiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKCF0aGlzLnBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlYWQpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0gPSByZWFkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZGQpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuQUREXSA9IGFkZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWRpdCkge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSA9IGVkaXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlbGV0KSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFTEVURV0gPSBkZWxldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSA9IGRldGFpbHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQZXJtaXNzaW9uQnlDYXRlZ29yeShrZXk6IHN0cmluZywgcGVybWlzc2lvbnM6IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICBpZiAoIXRoaXMucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zW2tleV0gPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQZXJtaXNzaW9uc09iamVjdChwZXJtaXNzaW9uczoge1trZXk6IHN0cmluZ106IEFQZXJtaXNzaW9uc30pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogUm91dGUge1xuICAgICAgICByZXR1cm4gdGhpcy50b1JvdXRlQnVpbGRlcigpLmJ1aWxkUm91dGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9Sb3V0ZUJ1aWxkZXIoKTogUm91dGVCdWlsZGVyIHtcbiAgICAgICAgY29uc3QgdGFibGV2aWV3Um91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZUZyb21Sb3V0ZSh7XG4gICAgICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuY29tcG9uZW50ID8gdGhpcy5jb21wb25lbnQgOiBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByb3V0ZURhdGE6IE1uZ1JvdXRlckRhdGEgPSB7fTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgcm91dGVEYXRhLnRhYmxldmlldyA9IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiB0aGlzLmRlc2NyaXB0b3IhLFxuICAgICAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdGhpcy5kYXRhUHJvdmlkZXIhXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHJvdXRlRGF0YS50YWJsZXZpZXcuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zID0gey4uLnRoaXMucGVybWlzc2lvbnN9O1xuICAgICAgICB9XG4gICAgICAgIHJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zID0ge1xuICAgICAgICAgICAgaGFzQWRkOiB0aGlzLmhhc0FkZCxcbiAgICAgICAgICAgIGhhc0VkaXQ6IHRoaXMuaGFzRWRpdCxcbiAgICAgICAgICAgIGhhc0RldGFpbHM6IHRoaXMuaGFzRGV0YWlscyxcbiAgICAgICAgICAgIGhhc0RlbGV0ZTogdGhpcy5oYXNEZWxldGVcbiAgICAgICAgfTtcbiAgICAgICAgdGFibGV2aWV3Um91dGVCdWlsZGVyLndpdGhEYXRhKHJvdXRlRGF0YSk7XG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0pIHtcbiAgICAgICAgICAgIHRhYmxldmlld1JvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBsaXN0IHJvdXRlXG4gICAgICAgIGNvbnN0IHJvb3RDaGlsZFJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUoJycsIE1uZ0FjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgcm9vdENoaWxkUm91dGVCdWlsZGVyLndpdGhEYXRhKHsuLi5yb3V0ZURhdGF9KTtcbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSkge1xuICAgICAgICAgICAgcm9vdENoaWxkUm91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnBlcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQURdKTtcbiAgICAgICAgfVxuICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvb3RDaGlsZFJvdXRlQnVpbGRlcik7XG5cbiAgICAgICAgLy8gYWRkIHJvdXRlXG4gICAgICAgIGlmICh0aGlzLmhhc0FkZCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmFkZFBhdGgsIE1uZ0FjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoRGF0YSh7Li4ucm91dGVEYXRhfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9ucz8uW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERF0pIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuQUREXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzRGV0YWlscykge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmRldGFpbHNQYXRoLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLnJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzRWRpdCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmVkaXRQYXRoLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLnJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFibGV2aWV3Um91dGVCdWlsZGVyO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { MngActionRouteComponent } from '../components/action';
2
+ import { TableviewActionDefaultCategories } from '../components/action/models';
3
+ import { ActionEditorAddDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor } from '../descriptors/action';
4
+ import { RouteBuilder } from './route-builder';
5
+ export class TableviewRouteBuilderInternal extends RouteBuilder {
6
+ constructor(path, options) {
7
+ super({ path: path, component: options.component ?? TableviewRouteBuilder });
8
+ this.path = path;
9
+ this.isFromComponent = true;
10
+ this.hasDetails = true;
11
+ this.detailsPath = ':itemId';
12
+ this.hasEdit = true;
13
+ this.editPath = ':itemId/edit';
14
+ this.hasAdd = true;
15
+ this.addPath = 'add';
16
+ this.hasDelete = true;
17
+ if (!options.component) {
18
+ this.isFromComponent = false;
19
+ this.descriptor = options.descriptor;
20
+ this.dataProvider = options.dataProvider;
21
+ this.actions = options.actions;
22
+ this.hasDetails = false;
23
+ this.hasAdd = false;
24
+ this.hasEdit = false;
25
+ if (this.actions) {
26
+ for (const action of this.actions) {
27
+ if (action instanceof ActionEditorDetailsDescriptor) {
28
+ this.hasDetails = true;
29
+ }
30
+ else if (action instanceof ActionEditorAddDescriptor) {
31
+ this.hasAdd = true;
32
+ }
33
+ else if (action instanceof ActionEditorEditDescriptor) {
34
+ this.hasEdit = true;
35
+ }
36
+ }
37
+ }
38
+ }
39
+ }
40
+ withReadOnly(permissions) {
41
+ if (permissions) {
42
+ this.withPermissions(permissions);
43
+ }
44
+ this.withAdd(false);
45
+ this.withEdit(false);
46
+ this.withDelete(false);
47
+ return this;
48
+ }
49
+ withDetails(hasDetails = true, permissions, path) {
50
+ this.hasDetails = hasDetails;
51
+ if (permissions) {
52
+ this.withPermissions(undefined, undefined, undefined, undefined, permissions);
53
+ }
54
+ if (path) {
55
+ this.detailsPath = path;
56
+ }
57
+ return this;
58
+ }
59
+ withAdd(hasAdd = true, permissions, path) {
60
+ this.hasAdd = hasAdd;
61
+ if (permissions) {
62
+ this.withPermissions(undefined, permissions);
63
+ }
64
+ if (path) {
65
+ this.addPath = path;
66
+ }
67
+ return this;
68
+ }
69
+ withEdit(hasEdit = true, permissions, path) {
70
+ this.hasEdit = hasEdit;
71
+ if (permissions) {
72
+ this.withPermissions(undefined, undefined, permissions);
73
+ }
74
+ if (path) {
75
+ this.editPath = path;
76
+ }
77
+ return this;
78
+ }
79
+ withDelete(hasDelete = true, permissions) {
80
+ this.hasDelete = hasDelete;
81
+ if (permissions) {
82
+ this.withPermissions(undefined, undefined, undefined, permissions);
83
+ }
84
+ return this;
85
+ }
86
+ withPermissions(read, add, edit, delet, details) {
87
+ if (!this.tableviewPermissions) {
88
+ this.tableviewPermissions = {};
89
+ }
90
+ if (read) {
91
+ this.tableviewPermissions[TableviewActionDefaultCategories.READ] = read;
92
+ }
93
+ if (add) {
94
+ this.tableviewPermissions[TableviewActionDefaultCategories.ADD] = add;
95
+ }
96
+ if (edit) {
97
+ this.tableviewPermissions[TableviewActionDefaultCategories.EDIT] = edit;
98
+ }
99
+ if (delet) {
100
+ this.tableviewPermissions[TableviewActionDefaultCategories.DELETE] = delet;
101
+ }
102
+ if (details) {
103
+ this.tableviewPermissions[TableviewActionDefaultCategories.DETAILS] = details;
104
+ }
105
+ return this;
106
+ }
107
+ withPermissionByCategory(key, permissions) {
108
+ if (!this.tableviewPermissions) {
109
+ this.tableviewPermissions = {};
110
+ }
111
+ this.tableviewPermissions[key] = permissions;
112
+ return this;
113
+ }
114
+ withPermissionsObject(permissions) {
115
+ this.tableviewPermissions = permissions;
116
+ return this;
117
+ }
118
+ build() {
119
+ if (!this.isFromComponent) {
120
+ this.routeData.tableview = {
121
+ descriptor: this.descriptor,
122
+ dataProvider: this.dataProvider
123
+ };
124
+ if (this.actions) {
125
+ this.routeData.tableview.actions = this.actions;
126
+ }
127
+ }
128
+ if (this.tableviewPermissions) {
129
+ this.routeData.tableviewPermissions = { ...this.tableviewPermissions };
130
+ }
131
+ this.routeData.tableviewActions = {
132
+ hasAdd: this.hasAdd,
133
+ hasEdit: this.hasEdit,
134
+ hasDetails: this.hasDetails,
135
+ hasDelete: this.hasDelete
136
+ };
137
+ this.withData(this.routeData);
138
+ if (this.tableviewPermissions?.[TableviewActionDefaultCategories.READ]) {
139
+ this.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.READ]);
140
+ }
141
+ // list route
142
+ const rootChildRouteBuilder = RouteBuilder.create('', MngActionRouteComponent);
143
+ rootChildRouteBuilder.withData({ ...this.routeData });
144
+ if (this.tableviewPermissions?.[TableviewActionDefaultCategories.READ]) {
145
+ rootChildRouteBuilder.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.READ]);
146
+ }
147
+ this.addChildBuilder(rootChildRouteBuilder);
148
+ // add route
149
+ if (this.hasAdd) {
150
+ const routeBuilder = RouteBuilder.create(this.addPath, MngActionRouteComponent);
151
+ routeBuilder.withData({ ...this.routeData });
152
+ if (this.tableviewPermissions?.[TableviewActionDefaultCategories.ADD]) {
153
+ routeBuilder.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.ADD]);
154
+ }
155
+ this.addChildBuilder(routeBuilder);
156
+ }
157
+ if (this.hasDetails) {
158
+ const routeBuilder = RouteBuilder.create(this.detailsPath, MngActionRouteComponent);
159
+ routeBuilder.withData({ ...this.routeData });
160
+ if (this.tableviewPermissions?.[TableviewActionDefaultCategories.DETAILS]) {
161
+ routeBuilder.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.DETAILS]);
162
+ }
163
+ this.addChildBuilder(routeBuilder);
164
+ }
165
+ if (this.hasEdit) {
166
+ const routeBuilder = RouteBuilder.create(this.editPath, MngActionRouteComponent);
167
+ routeBuilder.withData({ ...this.routeData });
168
+ if (this.tableviewPermissions?.[TableviewActionDefaultCategories.EDIT]) {
169
+ routeBuilder.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.EDIT]);
170
+ }
171
+ this.addChildBuilder(routeBuilder);
172
+ }
173
+ return super.build();
174
+ }
175
+ }
176
+ export class TableviewRouteBuilder {
177
+ static fromComponent(path, component) {
178
+ return new TableviewRouteBuilderInternal(path, { component });
179
+ }
180
+ static from(path, descriptor, dataProvider, actions) {
181
+ return new TableviewRouteBuilderInternal(path, { descriptor, dataProvider, actions });
182
+ }
183
+ }
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JvdXRlci90YWJsZXZpZXctcm91dGUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUc3RSxPQUFPLEVBQW1CLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLDBCQUEwQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHN0ksT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxZQUFZO0lBa0IzRCxZQUNZLElBQVksRUFDcEIsT0FLRTtRQUVGLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUkscUJBQXFCLEVBQUMsQ0FBQyxDQUFDO1FBUm5FLFNBQUksR0FBSixJQUFJLENBQVE7UUFmUCxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUV6QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsY0FBYyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFpQnJCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZ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QVksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDakYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEUsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNsRztZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDdEM7UUFFRCxPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLE1BQU0sQ0FBQyxhQUFhLENBQWtELElBQVksRUFBRSxTQUFrQjtRQUN6RyxPQUFPLElBQUksNkJBQTZCLENBQUMsSUFBSSxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FDZCxJQUFZLEVBQ1osVUFBb0MsRUFDcEMsWUFBOEMsRUFDOUMsT0FBcUM7UUFFckMsT0FBTyxJQUFJLDZCQUE2QixDQUFDLElBQUksRUFBRSxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24nO1xuaW1wb3J0IHtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzJztcbmltcG9ydCB7QU1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL3RhYmxldmlldyc7XG5pbXBvcnQge0lUYWJsZXZpZXdEYXRhUHJvdmlkZXJ9IGZyb20gJy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy9hY3Rpb24nO1xuaW1wb3J0IHtUYWJsZXZpZXdEZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy90YWJsZXZpZXcnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnN9IGZyb20gJy4uL3NlY3VyaXR5L21vZGVsJztcbmltcG9ydCB7Um91dGVCdWlsZGVyfSBmcm9tICcuL3JvdXRlLWJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVGFibGV2aWV3Um91dGVCdWlsZGVySW50ZXJuYWwgZXh0ZW5kcyBSb3V0ZUJ1aWxkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzY3JpcHRvcj86IFRhYmxldmlld0Rlc2NyaXB0b3I8YW55PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFQcm92aWRlcj86IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8YW55LCBhbnk+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9ucz86IEFycmF5PEFjdGlvbkRlc2NyaXB0b3I8YW55Pj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Zyb21Db21wb25lbnQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBoYXNEZXRhaWxzID0gdHJ1ZTtcbiAgICBwcml2YXRlIGRldGFpbHNQYXRoID0gJzppdGVtSWQnO1xuICAgIHByaXZhdGUgaGFzRWRpdCA9IHRydWU7XG4gICAgcHJpdmF0ZSBlZGl0UGF0aCA9ICc6aXRlbUlkL2VkaXQnO1xuICAgIHByaXZhdGUgaGFzQWRkID0gdHJ1ZTtcbiAgICBwcml2YXRlIGFkZFBhdGggPSAnYWRkJztcbiAgICBwcml2YXRlIGhhc0RlbGV0ZSA9IHRydWU7XG5cbiAgICBwcml2YXRlIHRhYmxldmlld1Blcm1pc3Npb25zPzoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBUGVybWlzc2lvbnM7XG4gICAgfTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBwYXRoOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IFBhcnRpYWw8e1xuICAgICAgICAgICAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gICAgICAgICAgICBkZXNjcmlwdG9yOiBUYWJsZXZpZXdEZXNjcmlwdG9yPGFueT47XG4gICAgICAgICAgICBkYXRhUHJvdmlkZXI6IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8YW55LCBhbnk+O1xuICAgICAgICAgICAgYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxhbnk+PjtcbiAgICAgICAgfT5cbiAgICApIHtcbiAgICAgICAgc3VwZXIoe3BhdGg6IHBhdGgsIGNvbXBvbmVudDogb3B0aW9ucy5jb21wb25lbnQgPz8gVGFibGV2aWV3Um91dGVCdWlsZGVyfSk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5pc0Zyb21Db21wb25lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvciA9IG9wdGlvbnMuZGVzY3JpcHRvcjtcbiAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gb3B0aW9ucy5kYXRhUHJvdmlkZXI7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSBvcHRpb25zLmFjdGlvbnM7XG5cbiAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlscyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5oYXNBZGQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaGFzRWRpdCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9ucykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMuYWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aW9uIGluc3RhbmNlb2YgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlscyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uIGluc3RhbmNlb2YgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNBZGQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc0VkaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSZWFkT25seShwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndpdGhBZGQoZmFsc2UpO1xuICAgICAgICB0aGlzLndpdGhFZGl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy53aXRoRGVsZXRlKGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEZXRhaWxzKGhhc0RldGFpbHMgPSB0cnVlLCBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucywgcGF0aD86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhhc0RldGFpbHMgPSBoYXNEZXRhaWxzO1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmRldGFpbHNQYXRoID0gcGF0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEFkZChoYXNBZGQgPSB0cnVlLCBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucywgcGF0aD86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhhc0FkZCA9IGhhc0FkZDtcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgdGhpcy5hZGRQYXRoID0gcGF0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXQoaGFzRWRpdCA9IHRydWUsIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zLCBwYXRoPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGFzRWRpdCA9IGhhc0VkaXQ7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnModW5kZWZpbmVkLCB1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgdGhpcy5lZGl0UGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEZWxldGUoaGFzRGVsZXRlID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNEZWxldGUgPSBoYXNEZWxldGU7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnModW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgcGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3aXRoUGVybWlzc2lvbnMocmVhZD86IEFQZXJtaXNzaW9ucywgYWRkPzogQVBlcm1pc3Npb25zLCBlZGl0PzogQVBlcm1pc3Npb25zLCBkZWxldD86IEFQZXJtaXNzaW9ucywgZGV0YWlscz86IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICBpZiAoIXRoaXMudGFibGV2aWV3UGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVhZCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSA9IHJlYWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFkZCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5BRERdID0gYWRkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlZGl0KSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkVESVRdID0gZWRpdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVsZXQpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVMRVRFXSA9IGRlbGV0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXRhaWxzKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFVEFJTFNdID0gZGV0YWlscztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25CeUNhdGVnb3J5KGtleTogc3RyaW5nLCBwZXJtaXNzaW9uczogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIGlmICghdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy50YWJsZXZpZXdQZXJtaXNzaW9ucyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNba2V5XSA9IHBlcm1pc3Npb25zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25zT2JqZWN0KHBlcm1pc3Npb25zOiB7W2tleTogc3RyaW5nXTogQVBlcm1pc3Npb25zfSk6IHRoaXMge1xuICAgICAgICB0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zID0gcGVybWlzc2lvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBidWlsZCgpOiBSb3V0ZSB7XG4gICAgICAgIGlmICghdGhpcy5pc0Zyb21Db21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVEYXRhLnRhYmxldmlldyA9IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiB0aGlzLmRlc2NyaXB0b3IhLFxuICAgICAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdGhpcy5kYXRhUHJvdmlkZXIhXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVEYXRhLnRhYmxldmlldy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdQZXJtaXNzaW9ucyA9IHsuLi50aGlzLnRhYmxldmlld1Blcm1pc3Npb25zfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zID0ge1xuICAgICAgICAgICAgaGFzQWRkOiB0aGlzLmhhc0FkZCxcbiAgICAgICAgICAgIGhhc0VkaXQ6IHRoaXMuaGFzRWRpdCxcbiAgICAgICAgICAgIGhhc0RldGFpbHM6IHRoaXMuaGFzRGV0YWlscyxcbiAgICAgICAgICAgIGhhc0RlbGV0ZTogdGhpcy5oYXNEZWxldGVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy53aXRoRGF0YSh0aGlzLnJvdXRlRGF0YSk7XG4gICAgICAgIGlmICh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0pIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbGlzdCByb3V0ZVxuICAgICAgICBjb25zdCByb290Q2hpbGRSb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKCcnLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgIHJvb3RDaGlsZFJvdXRlQnVpbGRlci53aXRoRGF0YSh7Li4udGhpcy5yb3V0ZURhdGF9KTtcbiAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSkge1xuICAgICAgICAgICAgcm9vdENoaWxkUm91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnRhYmxldmlld1Blcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQURdKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZENoaWxkQnVpbGRlcihyb290Q2hpbGRSb3V0ZUJ1aWxkZXIpO1xuXG4gICAgICAgIC8vIGFkZCByb3V0ZVxuICAgICAgICBpZiAodGhpcy5oYXNBZGQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUodGhpcy5hZGRQYXRoLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLnRoaXMucm91dGVEYXRhfSk7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZXZpZXdQZXJtaXNzaW9ucz8uW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERF0pIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuQUREXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFkZENoaWxkQnVpbGRlcihyb3V0ZUJ1aWxkZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc0RldGFpbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUodGhpcy5kZXRhaWxzUGF0aCwgTW5nQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICAgICAgcm91dGVCdWlsZGVyLndpdGhEYXRhKHsuLi50aGlzLnJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFkZENoaWxkQnVpbGRlcihyb3V0ZUJ1aWxkZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc0VkaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUodGhpcy5lZGl0UGF0aCwgTW5nQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICAgICAgcm91dGVCdWlsZGVyLndpdGhEYXRhKHsuLi50aGlzLnJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudGFibGV2aWV3UGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy50YWJsZXZpZXdQZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFkZENoaWxkQnVpbGRlcihyb3V0ZUJ1aWxkZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1cGVyLmJ1aWxkKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGV2aWV3Um91dGVCdWlsZGVyIHtcbiAgICBwdWJsaWMgc3RhdGljIGZyb21Db21wb25lbnQ8QyBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxhbnksIGFueT4+KHBhdGg6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPEM+KTogVGFibGV2aWV3Um91dGVCdWlsZGVySW50ZXJuYWwge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxldmlld1JvdXRlQnVpbGRlckludGVybmFsKHBhdGgsIHtjb21wb25lbnR9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvcjxhbnk+LFxuICAgICAgICBkYXRhUHJvdmlkZXI6IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8YW55LCBhbnk+LFxuICAgICAgICBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPGFueT4+XG4gICAgKTogVGFibGV2aWV3Um91dGVCdWlsZGVySW50ZXJuYWwge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxldmlld1JvdXRlQnVpbGRlckludGVybmFsKHBhdGgsIHtkZXNjcmlwdG9yLCBkYXRhUHJvdmlkZXIsIGFjdGlvbnN9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,26 +1,29 @@
1
- import { Injectable } from '@angular/core';
2
- import { of } from 'rxjs';
3
- import { first } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./authorization.service";
6
- export class MngAuthorizationGuard {
7
- constructor(authorization) {
8
- this.authorization = authorization;
9
- }
10
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
- canActivate(route, state) {
12
- const data = route.data;
13
- if (data.permissions) {
14
- return this.authorization.isPermitted(data.permissions).pipe(first());
15
- }
16
- else {
17
- return of(true);
18
- }
19
- }
20
- }
21
- MngAuthorizationGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngAuthorizationGuard, deps: [{ token: i1.MngAuthorizationService }], target: i0.ɵɵFactoryTarget.Injectable });
22
- MngAuthorizationGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngAuthorizationGuard });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngAuthorizationGuard, decorators: [{
24
- type: Injectable
25
- }], ctorParameters: function () { return [{ type: i1.MngAuthorizationService }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VjdXJpdHkvYXV0aG9yaXphdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFNckMsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUFvQixhQUFzQztRQUF0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7SUFBRyxDQUFDO0lBRTlELDZEQUE2RDtJQUM3RCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNqRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBcUIsQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQzs7a0hBWlEscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3R9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtNbmdSb3V0ZXJEYXRhfSBmcm9tICcuLi9yb3V0ZXIvbW9kZWxzJztcbmltcG9ydCB7TW5nQXV0aG9yaXphdGlvblNlcnZpY2V9IGZyb20gJy4vYXV0aG9yaXphdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ0F1dGhvcml6YXRpb25HdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhvcml6YXRpb246IE1uZ0F1dGhvcml6YXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSByb3V0ZS5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG5cbiAgICAgICAgaWYgKGRhdGEucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF1dGhvcml6YXRpb24uaXNQZXJtaXR0ZWQoZGF0YS5wZXJtaXNzaW9ucykucGlwZShmaXJzdCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { first } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./authorization.service";
6
+ export class MngAuthorizationGuard {
7
+ constructor(authorization) {
8
+ this.authorization = authorization;
9
+ }
10
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
+ canActivate(route, state) {
12
+ const data = route.data;
13
+ if (data.permissions) {
14
+ return this.authorization.isPermitted(data.permissions).pipe(first());
15
+ }
16
+ else {
17
+ return of(true);
18
+ }
19
+ }
20
+ }
21
+ MngAuthorizationGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MngAuthorizationGuard, deps: [{ token: i1.MngAuthorizationService }], target: i0.ɵɵFactoryTarget.Injectable });
22
+ MngAuthorizationGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MngAuthorizationGuard, providedIn: 'root' });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MngAuthorizationGuard, decorators: [{
24
+ type: Injectable,
25
+ args: [{
26
+ providedIn: 'root'
27
+ }]
28
+ }], ctorParameters: function () { return [{ type: i1.MngAuthorizationService }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VjdXJpdHkvYXV0aG9yaXphdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFRckMsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUFvQixhQUFzQztRQUF0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7SUFBRyxDQUFDO0lBRTlELDZEQUE2RDtJQUM3RCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNqRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBcUIsQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQzs7a0hBWlEscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGbEIsTUFBTTsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01uZ1JvdXRlckRhdGF9IGZyb20gJy4uL3JvdXRlci9tb2RlbHMnO1xuaW1wb3J0IHtNbmdBdXRob3JpemF0aW9uU2VydmljZX0gZnJvbSAnLi9hdXRob3JpemF0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0F1dGhvcml6YXRpb25HdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhvcml6YXRpb246IE1uZ0F1dGhvcml6YXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSByb3V0ZS5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG5cbiAgICAgICAgaWYgKGRhdGEucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF1dGhvcml6YXRpb24uaXNQZXJtaXR0ZWQoZGF0YS5wZXJtaXNzaW9ucykucGlwZShmaXJzdCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==