@mediusinc/mng-commons 0.10.1 → 0.10.3-rc

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 (319) 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 +17 -17
  9. package/esm2020/lib/api/models/serialization.model.mjs +1 -1
  10. package/esm2020/lib/api/services/api.abstract.service.mjs +55 -55
  11. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +67 -67
  12. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +22 -22
  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 +151 -151
  16. package/esm2020/lib/api/utils/object-serializer.util.mjs +243 -243
  17. package/esm2020/lib/components/action/action.component.mjs +199 -199
  18. package/esm2020/lib/components/action/editor/action-editor.component.mjs +247 -247
  19. package/esm2020/lib/components/action/index.mjs +3 -3
  20. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +1 -1
  21. package/esm2020/lib/components/action/models/action-execution.model.mjs +235 -235
  22. package/esm2020/lib/components/action/models/index.mjs +2 -2
  23. package/esm2020/lib/components/action/route/action-route.component.mjs +124 -124
  24. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +277 -277
  25. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +168 -168
  26. package/esm2020/lib/components/form/editor/form-editor.component.mjs +211 -211
  27. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +48 -48
  28. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +43 -43
  29. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +24 -24
  30. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +101 -101
  31. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +22 -22
  32. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +179 -179
  33. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +173 -173
  34. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +155 -155
  35. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +16 -16
  36. package/esm2020/lib/components/form/formly/fields/index.mjs +9 -9
  37. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +14 -14
  38. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +14 -14
  39. package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
  40. package/esm2020/lib/components/form/index.mjs +3 -3
  41. package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
  42. package/esm2020/lib/components/form/models/index.mjs +1 -1
  43. package/esm2020/lib/components/layout/breadcrumb.component.mjs +16 -16
  44. package/esm2020/lib/components/layout/footer.component.mjs +16 -16
  45. package/esm2020/lib/components/layout/index.mjs +7 -7
  46. package/esm2020/lib/components/layout/main-layout.component.mjs +51 -51
  47. package/esm2020/lib/components/layout/menu-item.component.mjs +238 -238
  48. package/esm2020/lib/components/layout/menu.component.mjs +20 -20
  49. package/esm2020/lib/components/layout/services/index.mjs +1 -1
  50. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +192 -192
  51. package/esm2020/lib/components/layout/topbar.component.mjs +57 -57
  52. package/esm2020/lib/components/layout/version.component.mjs +57 -57
  53. package/esm2020/lib/components/tableview/index.mjs +6 -6
  54. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  55. package/esm2020/lib/components/tableview/models/table.event.mjs +15 -15
  56. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +57 -57
  57. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +60 -60
  58. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +101 -101
  59. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +70 -70
  60. package/esm2020/lib/components/tableview/table/table.component.mjs +497 -497
  61. package/esm2020/lib/components/tableview/tableview.component.mjs +91 -91
  62. package/esm2020/lib/config/formly.config.mjs +180 -180
  63. package/esm2020/lib/config/index.mjs +1 -1
  64. package/esm2020/lib/config/models/index.mjs +1 -1
  65. package/esm2020/lib/config/models/mng-config.model.mjs +1 -1
  66. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  67. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  68. package/esm2020/lib/data-providers/index.mjs +5 -5
  69. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  70. package/esm2020/lib/data-providers/table.data-provider.mjs +16 -16
  71. package/esm2020/lib/data-providers/tableview.data-provider.mjs +16 -16
  72. package/esm2020/lib/descriptors/action.descriptor.mjs +587 -587
  73. package/esm2020/lib/descriptors/column.descriptor.mjs +264 -264
  74. package/esm2020/lib/descriptors/editor.descriptor.mjs +146 -146
  75. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +20 -20
  76. package/esm2020/lib/descriptors/field.descriptor.mjs +819 -819
  77. package/esm2020/lib/descriptors/filter.descriptor.mjs +288 -288
  78. package/esm2020/lib/descriptors/index.mjs +9 -9
  79. package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
  80. package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
  81. package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
  82. package/esm2020/lib/descriptors/model.descriptor.mjs +33 -33
  83. package/esm2020/lib/descriptors/table.descriptor.mjs +197 -197
  84. package/esm2020/lib/descriptors/tableview.descriptor.mjs +134 -134
  85. package/esm2020/lib/descriptors/types/action.type.mjs +52 -52
  86. package/esm2020/lib/descriptors/types/column.type.mjs +10 -10
  87. package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
  88. package/esm2020/lib/descriptors/types/field.type.mjs +52 -52
  89. package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
  90. package/esm2020/lib/descriptors/types/index.mjs +6 -6
  91. package/esm2020/lib/descriptors/types/table.type.mjs +16 -16
  92. package/esm2020/lib/directives/component.directive.mjs +43 -43
  93. package/esm2020/lib/directives/index.mjs +2 -2
  94. package/esm2020/lib/directives/template.directive.mjs +27 -27
  95. package/esm2020/lib/mng-commons.module.mjs +441 -441
  96. package/esm2020/lib/models/column-value.model.mjs +1 -1
  97. package/esm2020/lib/models/enum.model.mjs +1 -1
  98. package/esm2020/lib/models/error.model.mjs +1 -1
  99. package/esm2020/lib/models/index.mjs +7 -7
  100. package/esm2020/lib/models/menu.model.mjs +1 -1
  101. package/esm2020/lib/models/user.model.mjs +1 -1
  102. package/esm2020/lib/models/version.model.mjs +1 -1
  103. package/esm2020/lib/models/view-container.model.mjs +1 -1
  104. package/esm2020/lib/pipes/boolean.pipe.mjs +26 -26
  105. package/esm2020/lib/pipes/enum.pipe.mjs +24 -24
  106. package/esm2020/lib/pipes/i18n-property.pipe.mjs +17 -17
  107. package/esm2020/lib/pipes/index.mjs +5 -5
  108. package/esm2020/lib/pipes/json-path.pipe.mjs +79 -79
  109. package/esm2020/lib/pipes/link-formatter.pipe.mjs +38 -38
  110. package/esm2020/lib/router/index.mjs +2 -2
  111. package/esm2020/lib/router/models/index.mjs +1 -1
  112. package/esm2020/lib/router/models/router.model.mjs +1 -1
  113. package/esm2020/lib/router/route-builder.mjs +425 -425
  114. package/esm2020/lib/router/tableview-route-builder.mjs +159 -159
  115. package/esm2020/lib/security/authorization.guard.mjs +25 -25
  116. package/esm2020/lib/security/authorization.service.mjs +46 -46
  117. package/esm2020/lib/security/authorization.util.mjs +15 -15
  118. package/esm2020/lib/security/index.mjs +3 -3
  119. package/esm2020/lib/security/model/authorization.type.mjs +7 -7
  120. package/esm2020/lib/security/model/index.mjs +3 -3
  121. package/esm2020/lib/security/model/permission-service.interface.mjs +1 -1
  122. package/esm2020/lib/security/model/permissions.model.mjs +94 -94
  123. package/esm2020/lib/services/action-executor.service.mjs +535 -535
  124. package/esm2020/lib/services/commons.service.mjs +342 -342
  125. package/esm2020/lib/services/configuration.service.mjs +110 -110
  126. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  127. package/esm2020/lib/services/index.mjs +6 -6
  128. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  129. package/esm2020/lib/services/internal/commons-init.service.mjs +43 -43
  130. package/esm2020/lib/services/internal/index.mjs +2 -2
  131. package/esm2020/lib/services/navigation.service.mjs +47 -47
  132. package/esm2020/lib/services/providers/config-service.provider.mjs +29 -29
  133. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  134. package/esm2020/lib/services/providers/index.mjs +2 -2
  135. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  136. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  137. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  138. package/esm2020/lib/services/tokens/index.mjs +4 -4
  139. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  140. package/esm2020/lib/services/version.service.mjs +38 -38
  141. package/esm2020/lib/services/view-container.component.service.mjs +34 -34
  142. package/esm2020/lib/types/index.mjs +2 -2
  143. package/esm2020/lib/types/type.decorator.mjs +12 -12
  144. package/esm2020/lib/types/type.model.mjs +1 -1
  145. package/esm2020/lib/utils/action-data-provider.util.mjs +144 -144
  146. package/esm2020/lib/utils/editor-formly.util.mjs +242 -242
  147. package/esm2020/lib/utils/enum.util.mjs +81 -81
  148. package/esm2020/lib/utils/i18n.util.mjs +232 -232
  149. package/esm2020/lib/utils/index.mjs +7 -7
  150. package/esm2020/lib/utils/model.util.mjs +59 -59
  151. package/esm2020/lib/utils/notification.util.mjs +45 -45
  152. package/esm2020/lib/utils/route.util.mjs +23 -23
  153. package/esm2020/lib/utils/styles.util.mjs +40 -40
  154. package/esm2020/lib/utils/type.util.mjs +76 -76
  155. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  156. package/esm2020/public-api.mjs +51 -51
  157. package/fesm2015/mediusinc-mng-commons.mjs +10637 -10637
  158. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  159. package/fesm2020/mediusinc-mng-commons.mjs +10486 -10486
  160. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  161. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  162. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  163. package/lib/api/models/filter-param.model.d.ts +23 -23
  164. package/lib/api/models/index.d.ts +8 -8
  165. package/lib/api/models/mappers.d.ts +6 -6
  166. package/lib/api/models/query-mode.model.d.ts +16 -16
  167. package/lib/api/models/query-param.model.d.ts +31 -31
  168. package/lib/api/models/query-result.model.d.ts +23 -23
  169. package/lib/api/models/serialization.model.d.ts +8 -8
  170. package/lib/api/services/api.abstract.service.d.ts +24 -24
  171. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  172. package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
  173. package/lib/api/services/index.d.ts +3 -3
  174. package/lib/api/utils/index.d.ts +2 -2
  175. package/lib/api/utils/medius-rest.util.d.ts +15 -15
  176. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  177. package/lib/components/action/action.component.d.ts +75 -75
  178. package/lib/components/action/editor/action-editor.component.d.ts +64 -64
  179. package/lib/components/action/index.d.ts +3 -3
  180. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  181. package/lib/components/action/models/action-execution.model.d.ts +129 -129
  182. package/lib/components/action/models/index.d.ts +2 -2
  183. package/lib/components/action/route/action-route.component.d.ts +31 -31
  184. package/lib/components/form/autocomplete/autocomplete.component.d.ts +56 -56
  185. package/lib/components/form/dropdown/dropdown.component.d.ts +47 -47
  186. package/lib/components/form/editor/form-editor.component.d.ts +45 -45
  187. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +15 -15
  188. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +14 -14
  189. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +13 -13
  190. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +23 -23
  191. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +10 -10
  192. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +45 -45
  193. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +23 -23
  194. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +38 -38
  195. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -6
  196. package/lib/components/form/formly/fields/index.d.ts +9 -9
  197. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +6 -6
  198. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +6 -6
  199. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  200. package/lib/components/form/index.d.ts +3 -3
  201. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  202. package/lib/components/form/models/index.d.ts +1 -1
  203. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  204. package/lib/components/layout/footer.component.d.ts +9 -9
  205. package/lib/components/layout/index.d.ts +7 -7
  206. package/lib/components/layout/main-layout.component.d.ts +20 -20
  207. package/lib/components/layout/menu-item.component.d.ts +44 -44
  208. package/lib/components/layout/menu.component.d.ts +10 -10
  209. package/lib/components/layout/services/index.d.ts +1 -1
  210. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  211. package/lib/components/layout/topbar.component.d.ts +24 -24
  212. package/lib/components/layout/version.component.d.ts +19 -19
  213. package/lib/components/tableview/index.d.ts +6 -6
  214. package/lib/components/tableview/models/index.d.ts +1 -1
  215. package/lib/components/tableview/models/table.event.d.ts +17 -17
  216. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +20 -20
  217. package/lib/components/tableview/route/tableview-route.component.d.ts +23 -23
  218. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +32 -32
  219. package/lib/components/tableview/table/column-value/column-value.component.d.ts +29 -29
  220. package/lib/components/tableview/table/table.component.d.ts +108 -108
  221. package/lib/components/tableview/tableview.component.d.ts +41 -41
  222. package/lib/config/formly.config.d.ts +15 -15
  223. package/lib/config/index.d.ts +1 -1
  224. package/lib/config/models/index.d.ts +1 -1
  225. package/lib/config/models/mng-config.model.d.ts +36 -36
  226. package/lib/data-providers/base.data-provider.d.ts +14 -14
  227. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  228. package/lib/data-providers/index.d.ts +5 -5
  229. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  230. package/lib/data-providers/table.data-provider.d.ts +14 -14
  231. package/lib/data-providers/tableview.data-provider.d.ts +15 -15
  232. package/lib/descriptors/action.descriptor.d.ts +234 -234
  233. package/lib/descriptors/column.descriptor.d.ts +82 -82
  234. package/lib/descriptors/editor.descriptor.d.ts +37 -37
  235. package/lib/descriptors/field-validation.descriptor.d.ts +18 -18
  236. package/lib/descriptors/field.descriptor.d.ts +294 -294
  237. package/lib/descriptors/filter.descriptor.d.ts +106 -106
  238. package/lib/descriptors/index.d.ts +9 -9
  239. package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
  240. package/lib/descriptors/interfaces/index.d.ts +2 -2
  241. package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
  242. package/lib/descriptors/model.descriptor.d.ts +15 -15
  243. package/lib/descriptors/table.descriptor.d.ts +66 -66
  244. package/lib/descriptors/tableview.descriptor.d.ts +42 -42
  245. package/lib/descriptors/types/action.type.d.ts +45 -45
  246. package/lib/descriptors/types/column.type.d.ts +9 -9
  247. package/lib/descriptors/types/editor.type.d.ts +6 -6
  248. package/lib/descriptors/types/field.type.d.ts +44 -44
  249. package/lib/descriptors/types/filter.type.d.ts +27 -27
  250. package/lib/descriptors/types/index.d.ts +6 -6
  251. package/lib/descriptors/types/table.type.d.ts +13 -13
  252. package/lib/directives/component.directive.d.ts +16 -16
  253. package/lib/directives/index.d.ts +2 -2
  254. package/lib/directives/template.directive.d.ts +13 -13
  255. package/lib/mng-commons.module.d.ts +87 -87
  256. package/lib/models/column-value.model.d.ts +4 -4
  257. package/lib/models/enum.model.d.ts +6 -6
  258. package/lib/models/error.model.d.ts +14 -14
  259. package/lib/models/index.d.ts +7 -7
  260. package/lib/models/menu.model.d.ts +27 -27
  261. package/lib/models/user.model.d.ts +8 -8
  262. package/lib/models/version.model.d.ts +18 -18
  263. package/lib/models/view-container.model.d.ts +6 -6
  264. package/lib/pipes/boolean.pipe.d.ts +7 -7
  265. package/lib/pipes/enum.pipe.d.ts +8 -8
  266. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  267. package/lib/pipes/index.d.ts +5 -5
  268. package/lib/pipes/json-path.pipe.d.ts +13 -13
  269. package/lib/pipes/link-formatter.pipe.d.ts +11 -11
  270. package/lib/router/index.d.ts +2 -2
  271. package/lib/router/models/index.d.ts +1 -1
  272. package/lib/router/models/router.model.d.ts +27 -27
  273. package/lib/router/route-builder.d.ts +98 -98
  274. package/lib/router/tableview-route-builder.d.ts +34 -34
  275. package/lib/security/authorization.guard.d.ts +11 -11
  276. package/lib/security/authorization.service.d.ts +19 -19
  277. package/lib/security/authorization.util.d.ts +5 -5
  278. package/lib/security/index.d.ts +3 -3
  279. package/lib/security/model/authorization.type.d.ts +6 -6
  280. package/lib/security/model/index.d.ts +3 -3
  281. package/lib/security/model/permission-service.interface.d.ts +6 -6
  282. package/lib/security/model/permissions.model.d.ts +44 -44
  283. package/lib/services/action-executor.service.d.ts +149 -149
  284. package/lib/services/commons.service.d.ts +78 -78
  285. package/lib/services/configuration.service.d.ts +36 -36
  286. package/lib/services/error-mapper.service.d.ts +7 -7
  287. package/lib/services/index.d.ts +6 -6
  288. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  289. package/lib/services/internal/commons-init.service.d.ts +16 -16
  290. package/lib/services/internal/index.d.ts +2 -2
  291. package/lib/services/navigation.service.d.ts +14 -14
  292. package/lib/services/providers/config-service.provider.d.ts +6 -6
  293. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  294. package/lib/services/providers/index.d.ts +2 -2
  295. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  296. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  297. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  298. package/lib/services/tokens/index.d.ts +4 -4
  299. package/lib/services/tokens/module-config.token.d.ts +3 -3
  300. package/lib/services/version.service.d.ts +13 -13
  301. package/lib/services/view-container.component.service.d.ts +22 -22
  302. package/lib/types/index.d.ts +2 -2
  303. package/lib/types/type.decorator.d.ts +4 -4
  304. package/lib/types/type.model.d.ts +23 -23
  305. package/lib/utils/action-data-provider.util.d.ts +20 -20
  306. package/lib/utils/editor-formly.util.d.ts +11 -11
  307. package/lib/utils/enum.util.d.ts +50 -50
  308. package/lib/utils/i18n.util.d.ts +56 -56
  309. package/lib/utils/index.d.ts +7 -7
  310. package/lib/utils/model.util.d.ts +8 -8
  311. package/lib/utils/notification.util.d.ts +11 -11
  312. package/lib/utils/route.util.d.ts +4 -4
  313. package/lib/utils/styles.util.d.ts +14 -14
  314. package/lib/utils/type.util.d.ts +36 -36
  315. package/mediusinc-mng-commons-0.10.3-rc.tgz +0 -0
  316. package/mediusinc-mng-commons.d.ts +5 -5
  317. package/package.json +1 -1
  318. package/public-api.d.ts +32 -32
  319. package/version-info.json +6 -6
@@ -1,160 +1,160 @@
1
- import { MngActionRouteComponent } from '../components/action';
2
- import { MngTableviewRouteComponent } from '../components/tableview';
3
- import { ActionEditorAddDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor } from '../descriptors';
4
- import { Permissions } from '../security/model';
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
- }
16
- static fromComponent(path, component) {
17
- const inst = new TableviewRouteBuilder(path);
18
- inst.component = component;
19
- return inst;
20
- }
21
- static from(path, descriptor, dataProvider, actions) {
22
- const inst = new TableviewRouteBuilder(path);
23
- inst.descriptor = descriptor;
24
- inst.dataProvider = dataProvider;
25
- inst.actions = actions;
26
- inst.hasDetails = false;
27
- inst.hasAdd = false;
28
- inst.hasEdit = false;
29
- for (const action of inst.actions) {
30
- if (action instanceof ActionEditorDetailsDescriptor) {
31
- inst.hasDetails = true;
32
- }
33
- else if (action instanceof ActionEditorAddDescriptor) {
34
- inst.hasAdd = true;
35
- }
36
- else if (action instanceof ActionEditorEditDescriptor) {
37
- inst.hasEdit = true;
38
- }
39
- }
40
- return inst;
41
- }
42
- withDetails(hasDetails = true, permissions, path) {
43
- this.hasDetails = hasDetails;
44
- if (permissions) {
45
- this.withPermissions(undefined, undefined, undefined, undefined, permissions);
46
- }
47
- if (path) {
48
- this.detailsPath = path;
49
- }
50
- return this;
51
- }
52
- withAdd(hasAdd = true, permissions, path) {
53
- this.hasAdd = hasAdd;
54
- if (permissions) {
55
- this.withPermissions(undefined, permissions);
56
- }
57
- if (path) {
58
- this.addPath = path;
59
- }
60
- return this;
61
- }
62
- withEdit(hasEdit = true, permissions, path) {
63
- this.hasEdit = hasEdit;
64
- if (permissions) {
65
- this.withPermissions(undefined, undefined, permissions);
66
- }
67
- if (path) {
68
- this.editPath = path;
69
- }
70
- return this;
71
- }
72
- withPermissions(read, add, edit, delet, details) {
73
- if (!this.permissions) {
74
- this.permissions = {};
75
- }
76
- if (read) {
77
- this.permissions[Permissions.ActionTypes.READ] = read;
78
- }
79
- if (add) {
80
- this.permissions[Permissions.ActionTypes.ADD] = add;
81
- }
82
- if (edit) {
83
- this.permissions[Permissions.ActionTypes.EDIT] = edit;
84
- }
85
- if (delet) {
86
- this.permissions[Permissions.ActionTypes.DELETE] = delet;
87
- }
88
- if (details) {
89
- this.permissions[Permissions.ActionTypes.DETAILS] = details;
90
- }
91
- return this;
92
- }
93
- withPermissionsOther(key, permissions) {
94
- if (!this.permissions) {
95
- this.permissions = {};
96
- }
97
- this.permissions[key] = permissions;
98
- return this;
99
- }
100
- withPermissionsObject(permissions) {
101
- this.permissions = permissions;
102
- return this;
103
- }
104
- build() {
105
- return this.toRouteBuilder().buildRoute();
106
- }
107
- toRouteBuilder() {
108
- const tableviewRouteBuilder = RouteBuilder.createFromRoute({
109
- path: this.path,
110
- component: this.component ? this.component : MngTableviewRouteComponent
111
- });
112
- const routeData = {};
113
- if (!this.component) {
114
- routeData.tableview = {
115
- descriptor: this.descriptor,
116
- dataProvider: this.dataProvider
117
- };
118
- if (this.actions) {
119
- routeData.tableview.actions = this.actions;
120
- }
121
- }
122
- if (this.permissions) {
123
- routeData.tableviewPermissions = { ...this.permissions };
124
- }
125
- tableviewRouteBuilder.withData(routeData);
126
- if (this.permissions?.[Permissions.ActionTypes.READ]) {
127
- tableviewRouteBuilder.withPermissions(this.permissions[Permissions.ActionTypes.READ]);
128
- }
129
- // list route
130
- const rootChildRouteBuilder = RouteBuilder.create('', MngActionRouteComponent);
131
- if (this.permissions?.[Permissions.ActionTypes.READ]) {
132
- rootChildRouteBuilder.withPermissions(this.permissions[Permissions.ActionTypes.READ]);
133
- }
134
- tableviewRouteBuilder.addChildBuilder(rootChildRouteBuilder);
135
- // add route
136
- if (this.hasAdd) {
137
- const routeBuilder = RouteBuilder.create(this.addPath, MngActionRouteComponent);
138
- if (this.permissions?.[Permissions.ActionTypes.ADD]) {
139
- routeBuilder.withPermissions(this.permissions[Permissions.ActionTypes.ADD]);
140
- }
141
- tableviewRouteBuilder.addChildBuilder(routeBuilder);
142
- }
143
- if (this.hasDetails) {
144
- const routeBuilder = RouteBuilder.create(this.detailsPath, MngActionRouteComponent);
145
- if (this.permissions?.[Permissions.ActionTypes.DETAILS]) {
146
- routeBuilder.withPermissions(this.permissions[Permissions.ActionTypes.DETAILS]);
147
- }
148
- tableviewRouteBuilder.addChildBuilder(routeBuilder);
149
- }
150
- if (this.hasEdit) {
151
- const routeBuilder = RouteBuilder.create(this.editPath, MngActionRouteComponent);
152
- if (this.permissions?.[Permissions.ActionTypes.EDIT]) {
153
- routeBuilder.withPermissions(this.permissions[Permissions.ActionTypes.EDIT]);
154
- }
155
- tableviewRouteBuilder.addChildBuilder(routeBuilder);
156
- }
157
- return tableviewRouteBuilder;
158
- }
159
- }
1
+ import { MngActionRouteComponent } from '../components/action';
2
+ import { MngTableviewRouteComponent } from '../components/tableview';
3
+ import { ActionEditorAddDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor } from '../descriptors';
4
+ import { Permissions } from '../security/model';
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
+ }
16
+ static fromComponent(path, component) {
17
+ const inst = new TableviewRouteBuilder(path);
18
+ inst.component = component;
19
+ return inst;
20
+ }
21
+ static from(path, descriptor, dataProvider, actions) {
22
+ const inst = new TableviewRouteBuilder(path);
23
+ inst.descriptor = descriptor;
24
+ inst.dataProvider = dataProvider;
25
+ inst.actions = actions;
26
+ inst.hasDetails = false;
27
+ inst.hasAdd = false;
28
+ inst.hasEdit = false;
29
+ for (const action of inst.actions) {
30
+ if (action instanceof ActionEditorDetailsDescriptor) {
31
+ inst.hasDetails = true;
32
+ }
33
+ else if (action instanceof ActionEditorAddDescriptor) {
34
+ inst.hasAdd = true;
35
+ }
36
+ else if (action instanceof ActionEditorEditDescriptor) {
37
+ inst.hasEdit = true;
38
+ }
39
+ }
40
+ return inst;
41
+ }
42
+ withDetails(hasDetails = true, permissions, path) {
43
+ this.hasDetails = hasDetails;
44
+ if (permissions) {
45
+ this.withPermissions(undefined, undefined, undefined, undefined, permissions);
46
+ }
47
+ if (path) {
48
+ this.detailsPath = path;
49
+ }
50
+ return this;
51
+ }
52
+ withAdd(hasAdd = true, permissions, path) {
53
+ this.hasAdd = hasAdd;
54
+ if (permissions) {
55
+ this.withPermissions(undefined, permissions);
56
+ }
57
+ if (path) {
58
+ this.addPath = path;
59
+ }
60
+ return this;
61
+ }
62
+ withEdit(hasEdit = true, permissions, path) {
63
+ this.hasEdit = hasEdit;
64
+ if (permissions) {
65
+ this.withPermissions(undefined, undefined, permissions);
66
+ }
67
+ if (path) {
68
+ this.editPath = path;
69
+ }
70
+ return this;
71
+ }
72
+ withPermissions(read, add, edit, delet, details) {
73
+ if (!this.permissions) {
74
+ this.permissions = {};
75
+ }
76
+ if (read) {
77
+ this.permissions[Permissions.ActionTypes.READ] = read;
78
+ }
79
+ if (add) {
80
+ this.permissions[Permissions.ActionTypes.ADD] = add;
81
+ }
82
+ if (edit) {
83
+ this.permissions[Permissions.ActionTypes.EDIT] = edit;
84
+ }
85
+ if (delet) {
86
+ this.permissions[Permissions.ActionTypes.DELETE] = delet;
87
+ }
88
+ if (details) {
89
+ this.permissions[Permissions.ActionTypes.DETAILS] = details;
90
+ }
91
+ return this;
92
+ }
93
+ withPermissionsOther(key, permissions) {
94
+ if (!this.permissions) {
95
+ this.permissions = {};
96
+ }
97
+ this.permissions[key] = permissions;
98
+ return this;
99
+ }
100
+ withPermissionsObject(permissions) {
101
+ this.permissions = permissions;
102
+ return this;
103
+ }
104
+ build() {
105
+ return this.toRouteBuilder().buildRoute();
106
+ }
107
+ toRouteBuilder() {
108
+ const tableviewRouteBuilder = RouteBuilder.createFromRoute({
109
+ path: this.path,
110
+ component: this.component ? this.component : MngTableviewRouteComponent
111
+ });
112
+ const routeData = {};
113
+ if (!this.component) {
114
+ routeData.tableview = {
115
+ descriptor: this.descriptor,
116
+ dataProvider: this.dataProvider
117
+ };
118
+ if (this.actions) {
119
+ routeData.tableview.actions = this.actions;
120
+ }
121
+ }
122
+ if (this.permissions) {
123
+ routeData.tableviewPermissions = { ...this.permissions };
124
+ }
125
+ tableviewRouteBuilder.withData(routeData);
126
+ if (this.permissions?.[Permissions.ActionTypes.READ]) {
127
+ tableviewRouteBuilder.withPermissions(this.permissions[Permissions.ActionTypes.READ]);
128
+ }
129
+ // list route
130
+ const rootChildRouteBuilder = RouteBuilder.create('', MngActionRouteComponent);
131
+ if (this.permissions?.[Permissions.ActionTypes.READ]) {
132
+ rootChildRouteBuilder.withPermissions(this.permissions[Permissions.ActionTypes.READ]);
133
+ }
134
+ tableviewRouteBuilder.addChildBuilder(rootChildRouteBuilder);
135
+ // add route
136
+ if (this.hasAdd) {
137
+ const routeBuilder = RouteBuilder.create(this.addPath, MngActionRouteComponent);
138
+ if (this.permissions?.[Permissions.ActionTypes.ADD]) {
139
+ routeBuilder.withPermissions(this.permissions[Permissions.ActionTypes.ADD]);
140
+ }
141
+ tableviewRouteBuilder.addChildBuilder(routeBuilder);
142
+ }
143
+ if (this.hasDetails) {
144
+ const routeBuilder = RouteBuilder.create(this.detailsPath, MngActionRouteComponent);
145
+ if (this.permissions?.[Permissions.ActionTypes.DETAILS]) {
146
+ routeBuilder.withPermissions(this.permissions[Permissions.ActionTypes.DETAILS]);
147
+ }
148
+ tableviewRouteBuilder.addChildBuilder(routeBuilder);
149
+ }
150
+ if (this.hasEdit) {
151
+ const routeBuilder = RouteBuilder.create(this.editPath, MngActionRouteComponent);
152
+ if (this.permissions?.[Permissions.ActionTypes.EDIT]) {
153
+ routeBuilder.withPermissions(this.permissions[Permissions.ActionTypes.EDIT]);
154
+ }
155
+ tableviewRouteBuilder.addChildBuilder(routeBuilder);
156
+ }
157
+ return tableviewRouteBuilder;
158
+ }
159
+ }
160
160
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JvdXRlci90YWJsZXZpZXctcm91dGUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQThCLDBCQUEwQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEcsT0FBTyxFQUFtQix5QkFBeUIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzSixPQUFPLEVBQWUsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE1BQU0sT0FBTyxxQkFBcUI7SUFrQjlCLFlBQTRCLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBWGhDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFNbUIsQ0FBQztJQUVyQyxNQUFNLENBQUMsYUFBYSxDQUFrRCxJQUFZLEVBQUUsU0FBa0I7UUFDekcsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBcUIsQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FDZCxJQUFZLEVBQ1osVUFBb0MsRUFDcEMsWUFBOEMsRUFDOUMsT0FBcUM7UUFFckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBcUIsQ0FB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WSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMvRTtZQUNELHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUNwRixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNyRCxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ25GO1lBQ0QscUJBQXFCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDakYsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEQsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNoRjtZQUNELHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RDtRQUVELE9BQU8scUJBQXFCLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7TW5nQWN0aW9uUm91dGVDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvYWN0aW9uJztcbmltcG9ydCB7QU1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LCBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZXZpZXcnO1xuaW1wb3J0IHtJVGFibGV2aWV3RGF0YVByb3ZpZGVyfSBmcm9tICcuLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvciwgVGFibGV2aWV3RGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnMsIFBlcm1pc3Npb25zfSBmcm9tICcuLi9zZWN1cml0eS9tb2RlbCc7XG5pbXBvcnQge01uZ1JvdXRlckRhdGF9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7Um91dGVCdWlsZGVyfSBmcm9tICcuL3JvdXRlLWJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVGFibGV2aWV3Um91dGVCdWlsZGVyPEMgZXh0ZW5kcyBBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQ8YW55LCBhbnk+PiB7XG4gICAgcHJpdmF0ZSBkZXNjcmlwdG9yPzogVGFibGV2aWV3RGVzY3JpcHRvcjxhbnk+O1xuICAgIHByaXZhdGUgZGF0YVByb3ZpZGVyPzogSVRhYmxldmlld0RhdGFQcm92aWRlcjxhbnksIGFueT47XG4gICAgcHJpdmF0ZSBhY3Rpb25zPzogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxhbnk+PjtcblxuICAgIHByaXZhdGUgY29tcG9uZW50PzogVHlwZTxDPjtcblxuICAgIHByaXZhdGUgaGFzRGV0YWlscyA9IHRydWU7XG4gICAgcHJpdmF0ZSBkZXRhaWxzUGF0aCA9ICc6aXRlbUlkJztcbiAgICBwcml2YXRlIGhhc0VkaXQgPSB0cnVlO1xuICAgIHByaXZhdGUgZWRpdFBhdGggPSAnOml0ZW1JZC9lZGl0JztcbiAgICBwcml2YXRlIGhhc0FkZCA9IHRydWU7XG4gICAgcHJpdmF0ZSBhZGRQYXRoID0gJ2FkZCc7XG5cbiAgICBwcml2YXRlIHBlcm1pc3Npb25zPzoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBUGVybWlzc2lvbnM7XG4gICAgfTtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSBwYXRoOiBzdHJpbmcpIHt9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Db21wb25lbnQ8QyBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxhbnksIGFueT4+KHBhdGg6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPEM+KTogVGFibGV2aWV3Um91dGVCdWlsZGVyPEM+IHtcbiAgICAgICAgY29uc3QgaW5zdCA9IG5ldyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXI8Qz4ocGF0aCk7XG4gICAgICAgIGluc3QuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gaW5zdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvcjxhbnk+LFxuICAgICAgICBkYXRhUHJvdmlkZXI6IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8YW55LCBhbnk+LFxuICAgICAgICBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPGFueT4+XG4gICAgKTogVGFibGV2aWV3Um91dGVCdWlsZGVyPG5ldmVyPiB7XG4gICAgICAgIGNvbnN0IGluc3QgPSBuZXcgVGFibGV2aWV3Um91dGVCdWlsZGVyPG5ldmVyPihwYXRoKTtcbiAgICAgICAgaW5zdC5kZXNjcmlwdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgaW5zdC5kYXRhUHJvdmlkZXIgPSBkYXRhUHJvdmlkZXI7XG4gICAgICAgIGluc3QuYWN0aW9ucyA9IGFjdGlvbnM7XG5cbiAgICAgICAgaW5zdC5oYXNEZXRhaWxzID0gZmFsc2U7XG4gICAgICAgIGluc3QuaGFzQWRkID0gZmFsc2U7XG4gICAgICAgIGluc3QuaGFzRWRpdCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBpbnN0LmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgICAgIGluc3QuaGFzRGV0YWlscyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICBpbnN0Lmhhc0FkZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICAgICAgaW5zdC5oYXNFZGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbnN0O1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGV0YWlscyhoYXNEZXRhaWxzID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNEZXRhaWxzID0gaGFzRGV0YWlscztcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgdGhpcy5kZXRhaWxzUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBZGQoaGFzQWRkID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNBZGQgPSBoYXNBZGQ7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnModW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0KGhhc0VkaXQgPSB0cnVlLCBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucywgcGF0aD86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhhc0VkaXQgPSBoYXNFZGl0O1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdFBhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGVybWlzc2lvbnMocmVhZD86IEFQZXJtaXNzaW9ucywgYWRkPzogQVBlcm1pc3Npb25zLCBlZGl0PzogQVBlcm1pc3Npb25zLCBkZWxldD86IEFQZXJtaXNzaW9ucywgZGV0YWlscz86IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICBpZiAoIXRoaXMucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVhZCkge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1tQZXJtaXNzaW9ucy5BY3Rpb25UeXBlcy5SRUFEXSA9IHJlYWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFkZCkge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1tQZXJtaXNzaW9ucy5BY3Rpb25UeXBlcy5BRERdID0gYWRkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlZGl0KSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zW1Blcm1pc3Npb25zLkFjdGlvblR5cGVzLkVESVRdID0gZWRpdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVsZXQpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnNbUGVybWlzc2lvbnMuQWN0aW9uVHlwZXMuREVMRVRFXSA9IGRlbGV0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZXRhaWxzKSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zW1Blcm1pc3Npb25zLkFjdGlvblR5cGVzLkRFVEFJTFNdID0gZGV0YWlscztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25zT3RoZXIoa2V5OiBzdHJpbmcsIHBlcm1pc3Npb25zOiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKCF0aGlzLnBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1trZXldID0gcGVybWlzc2lvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGVybWlzc2lvbnNPYmplY3QocGVybWlzc2lvbnM6IHtba2V5OiBzdHJpbmddOiBBUGVybWlzc2lvbnN9KTogdGhpcyB7XG4gICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IFJvdXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9Sb3V0ZUJ1aWxkZXIoKS5idWlsZFJvdXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvUm91dGVCdWlsZGVyKCk6IFJvdXRlQnVpbGRlciB7XG4gICAgICAgIGNvbnN0IHRhYmxldmlld1JvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGVGcm9tUm91dGUoe1xuICAgICAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLmNvbXBvbmVudCA/IHRoaXMuY29tcG9uZW50IDogTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVEYXRhOiBNbmdSb3V0ZXJEYXRhID0ge307XG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJvdXRlRGF0YS50YWJsZXZpZXcgPSB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5kZXNjcmlwdG9yISxcbiAgICAgICAgICAgICAgICBkYXRhUHJvdmlkZXI6IHRoaXMuZGF0YVByb3ZpZGVyIVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByb3V0ZURhdGEudGFibGV2aWV3LmFjdGlvbnMgPSB0aGlzLmFjdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHJvdXRlRGF0YS50YWJsZXZpZXdQZXJtaXNzaW9ucyA9IHsuLi50aGlzLnBlcm1pc3Npb25zfTtcbiAgICAgICAgfVxuICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIud2l0aERhdGEocm91dGVEYXRhKTtcbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltQZXJtaXNzaW9ucy5BY3Rpb25UeXBlcy5SRUFEXSkge1xuICAgICAgICAgICAgdGFibGV2aWV3Um91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnBlcm1pc3Npb25zW1Blcm1pc3Npb25zLkFjdGlvblR5cGVzLlJFQURdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGxpc3Qgcm91dGVcbiAgICAgICAgY29uc3Qgcm9vdENoaWxkUm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSgnJywgTW5nQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9ucz8uW1Blcm1pc3Npb25zLkFjdGlvblR5cGVzLlJFQURdKSB7XG4gICAgICAgICAgICByb290Q2hpbGRSb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMucGVybWlzc2lvbnNbUGVybWlzc2lvbnMuQWN0aW9uVHlwZXMuUkVBRF0pO1xuICAgICAgICB9XG4gICAgICAgIHRhYmxldmlld1JvdXRlQnVpbGRlci5hZGRDaGlsZEJ1aWxkZXIocm9vdENoaWxkUm91dGVCdWlsZGVyKTtcblxuICAgICAgICAvLyBhZGQgcm91dGVcbiAgICAgICAgaWYgKHRoaXMuaGFzQWRkKSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZUJ1aWxkZXIgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlKHRoaXMuYWRkUGF0aCwgTW5nQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltQZXJtaXNzaW9ucy5BY3Rpb25UeXBlcy5BRERdKSB7XG4gICAgICAgICAgICAgICAgcm91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnBlcm1pc3Npb25zW1Blcm1pc3Npb25zLkFjdGlvblR5cGVzLkFERF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFibGV2aWV3Um91dGVCdWlsZGVyLmFkZENoaWxkQnVpbGRlcihyb3V0ZUJ1aWxkZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc0RldGFpbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUodGhpcy5kZXRhaWxzUGF0aCwgTW5nQWN0aW9uUm91dGVDb21wb25lbnQpO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltQZXJtaXNzaW9ucy5BY3Rpb25UeXBlcy5ERVRBSUxTXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tQZXJtaXNzaW9ucy5BY3Rpb25UeXBlcy5ERVRBSUxTXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzRWRpdCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmVkaXRQYXRoLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9ucz8uW1Blcm1pc3Npb25zLkFjdGlvblR5cGVzLkVESVRdKSB7XG4gICAgICAgICAgICAgICAgcm91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnBlcm1pc3Npb25zW1Blcm1pc3Npb25zLkFjdGlvblR5cGVzLkVESVRdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhYmxldmlld1JvdXRlQnVpbGRlci5hZGRDaGlsZEJ1aWxkZXIocm91dGVCdWlsZGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXI7XG4gICAgfVxufVxuIl19
@@ -1,26 +1,26 @@
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: "13.3.8", ngImport: i0, type: MngAuthorizationGuard, deps: [{ token: i1.MngAuthorizationService }], target: i0.ɵɵFactoryTarget.Injectable });
22
- MngAuthorizationGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationGuard });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationGuard, decorators: [{
24
- type: Injectable
25
- }], ctorParameters: function () { return [{ type: i1.MngAuthorizationService }]; } });
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: "13.3.8", ngImport: i0, type: MngAuthorizationGuard, deps: [{ token: i1.MngAuthorizationService }], target: i0.ɵɵFactoryTarget.Injectable });
22
+ MngAuthorizationGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationGuard });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationGuard, decorators: [{
24
+ type: Injectable
25
+ }], ctorParameters: function () { return [{ type: i1.MngAuthorizationService }]; } });
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VjdXJpdHkvYXV0aG9yaXphdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFNckMsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUFvQixhQUFzQztRQUF0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7SUFBRyxDQUFDO0lBRTlELDZEQUE2RDtJQUM3RCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNqRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBcUIsQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQzs7a0hBWlEscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3R9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtNbmdSb3V0ZXJEYXRhfSBmcm9tICcuLi9yb3V0ZXIvbW9kZWxzJztcbmltcG9ydCB7TW5nQXV0aG9yaXphdGlvblNlcnZpY2V9IGZyb20gJy4vYXV0aG9yaXphdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ0F1dGhvcml6YXRpb25HdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhvcml6YXRpb246IE1uZ0F1dGhvcml6YXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSByb3V0ZS5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG5cbiAgICAgICAgaWYgKGRhdGEucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF1dGhvcml6YXRpb24uaXNQZXJtaXR0ZWQoZGF0YS5wZXJtaXNzaW9ucykucGlwZShmaXJzdCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,47 +1,47 @@
1
- import { Injectable } from '@angular/core';
2
- import { combineLatest, of } from 'rxjs';
3
- import { map } from 'rxjs/operators';
4
- import { AuthorizationTypeEnum } from '../security/model';
5
- import { AuthorizationUtil } from './authorization.util';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- import * as i2 from "../services";
9
- export class MngAuthorizationService {
10
- constructor(injector, router, commons) {
11
- this.injector = injector;
12
- this.router = router;
13
- this.commons = commons;
14
- }
15
- isPermitted(permissions, route, actionCtx) {
16
- switch (permissions.authorizationType) {
17
- case AuthorizationTypeEnum.All:
18
- return this.isPermittedAll(permissions, route, actionCtx);
19
- case AuthorizationTypeEnum.Any:
20
- return this.isPermittedAny(permissions, route, actionCtx);
21
- case AuthorizationTypeEnum.Service:
22
- return this.isPermittedService(permissions, route, actionCtx);
23
- default:
24
- return this.commons.userRoles$.pipe(map(ur => AuthorizationUtil.isPermitted(permissions, ur)));
25
- }
26
- }
27
- isPermittedAll(permission, route, actionCtx) {
28
- return combineLatest(permission.permissions.map(p => this.isPermitted(p, route, actionCtx))).pipe(map(res => res.every(ip => ip === true)));
29
- }
30
- isPermittedAny(permission, route, actionCtx) {
31
- return combineLatest(permission.permissions.map(p => this.isPermitted(p, route, actionCtx))).pipe(map(res => res.some(ip => ip === true)));
32
- }
33
- isPermittedService(permission, route, actionCtx) {
34
- const serviceInstance = this.injector.get(permission.service);
35
- if (!serviceInstance) {
36
- console.warn(`Service instance could not be retreived for type ${permission.service}`);
37
- return of(false);
38
- }
39
- return serviceInstance.isPermitted(route, this.router.routerState.snapshot, actionCtx);
40
- }
41
- }
42
- MngAuthorizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.MngCommonsService }], target: i0.ɵɵFactoryTarget.Injectable });
43
- MngAuthorizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationService });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationService, decorators: [{
45
- type: Injectable
46
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i2.MngCommonsService }]; } });
1
+ import { Injectable } from '@angular/core';
2
+ import { combineLatest, of } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { AuthorizationTypeEnum } from '../security/model';
5
+ import { AuthorizationUtil } from './authorization.util';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ import * as i2 from "../services";
9
+ export class MngAuthorizationService {
10
+ constructor(injector, router, commons) {
11
+ this.injector = injector;
12
+ this.router = router;
13
+ this.commons = commons;
14
+ }
15
+ isPermitted(permissions, route, actionCtx) {
16
+ switch (permissions.authorizationType) {
17
+ case AuthorizationTypeEnum.All:
18
+ return this.isPermittedAll(permissions, route, actionCtx);
19
+ case AuthorizationTypeEnum.Any:
20
+ return this.isPermittedAny(permissions, route, actionCtx);
21
+ case AuthorizationTypeEnum.Service:
22
+ return this.isPermittedService(permissions, route, actionCtx);
23
+ default:
24
+ return this.commons.userRoles$.pipe(map(ur => AuthorizationUtil.isPermitted(permissions, ur)));
25
+ }
26
+ }
27
+ isPermittedAll(permission, route, actionCtx) {
28
+ return combineLatest(permission.permissions.map(p => this.isPermitted(p, route, actionCtx))).pipe(map(res => res.every(ip => ip === true)));
29
+ }
30
+ isPermittedAny(permission, route, actionCtx) {
31
+ return combineLatest(permission.permissions.map(p => this.isPermitted(p, route, actionCtx))).pipe(map(res => res.some(ip => ip === true)));
32
+ }
33
+ isPermittedService(permission, route, actionCtx) {
34
+ const serviceInstance = this.injector.get(permission.service);
35
+ if (!serviceInstance) {
36
+ console.warn(`Service instance could not be retreived for type ${permission.service}`);
37
+ return of(false);
38
+ }
39
+ return serviceInstance.isPermitted(route, this.router.routerState.snapshot, actionCtx);
40
+ }
41
+ }
42
+ MngAuthorizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.MngCommonsService }], target: i0.ɵɵFactoryTarget.Injectable });
43
+ MngAuthorizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationService });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngAuthorizationService, decorators: [{
45
+ type: Injectable
46
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i2.MngCommonsService }]; } });
47
47
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWN1cml0eS9hdXRob3JpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQWEsYUFBYSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFlLHFCQUFxQixFQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFFbkYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFHdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxZQUFvQixRQUFrQixFQUFVLE1BQWMsRUFBVSxPQUEwQjtRQUE5RSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQUcsQ0FBQztJQUUvRixXQUFXLENBQUMsV0FBeUIsRUFBRSxLQUE4QixFQUFFLFNBQXFEO1FBQy9ILFFBQVEsV0FBVyxDQUFDLGlCQUFpQixFQUFFO1lBQ25DLEtBQUsscUJBQXFCLENBQUMsR0FBRztnQkFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUsscUJBQXFCLENBQUMsR0FBRztnQkFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUsscUJBQXFCLENBQUMsT0FBTztnQkFDOUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBa0MsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDekY7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEc7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLFVBQTJCLEVBQUUsS0FBOEIsRUFBRSxTQUFxRDtRQUNySSxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBMkIsRUFBRSxLQUE4QixFQUFFLFNBQXFEO1FBQ3JJLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0ksQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQStCLEVBQUUsS0FBOEIsRUFBRSxTQUFxRDtRQUM3SSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN2RixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU8sZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7O29IQS9CUSx1QkFBdUI7d0hBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0FjdGlvbkNvbnRleHRWYWxpZGF0aW9ufSBmcm9tICcuLi9jb21wb25lbnRzL2FjdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnMsIEF1dGhvcml6YXRpb25UeXBlRW51bSwgUGVybWlzc2lvbnN9IGZyb20gJy4uL3NlY3VyaXR5L21vZGVsJztcbmltcG9ydCB7TW5nQ29tbW9uc1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7QXV0aG9yaXphdGlvblV0aWx9IGZyb20gJy4vYXV0aG9yaXphdGlvbi51dGlsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ0F1dGhvcml6YXRpb25TZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjb21tb25zOiBNbmdDb21tb25zU2VydmljZSkge31cblxuICAgIHB1YmxpYyBpc1Blcm1pdHRlZChwZXJtaXNzaW9uczogQVBlcm1pc3Npb25zLCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGFjdGlvbkN0eD86IEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHN3aXRjaCAocGVybWlzc2lvbnMuYXV0aG9yaXphdGlvblR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQXV0aG9yaXphdGlvblR5cGVFbnVtLkFsbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1Blcm1pdHRlZEFsbChwZXJtaXNzaW9ucyBhcyBQZXJtaXNzaW9ucy5BbGwsIHJvdXRlLCBhY3Rpb25DdHgpO1xuICAgICAgICAgICAgY2FzZSBBdXRob3JpemF0aW9uVHlwZUVudW0uQW55OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzUGVybWl0dGVkQW55KHBlcm1pc3Npb25zIGFzIFBlcm1pc3Npb25zLkFueSwgcm91dGUsIGFjdGlvbkN0eCk7XG4gICAgICAgICAgICBjYXNlIEF1dGhvcml6YXRpb25UeXBlRW51bS5TZXJ2aWNlOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzUGVybWl0dGVkU2VydmljZShwZXJtaXNzaW9ucyBhcyBQZXJtaXNzaW9ucy5TZXJ2aWNlLCByb3V0ZSwgYWN0aW9uQ3R4KTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tbW9ucy51c2VyUm9sZXMkLnBpcGUobWFwKHVyID0+IEF1dGhvcml6YXRpb25VdGlsLmlzUGVybWl0dGVkKHBlcm1pc3Npb25zLCB1cikpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRBbGwocGVybWlzc2lvbjogUGVybWlzc2lvbnMuQWxsLCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGFjdGlvbkN0eD86IEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KSB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHBlcm1pc3Npb24ucGVybWlzc2lvbnMubWFwKHAgPT4gdGhpcy5pc1Blcm1pdHRlZChwLCByb3V0ZSwgYWN0aW9uQ3R4KSkpLnBpcGUobWFwKHJlcyA9PiByZXMuZXZlcnkoaXAgPT4gaXAgPT09IHRydWUpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Blcm1pdHRlZEFueShwZXJtaXNzaW9uOiBQZXJtaXNzaW9ucy5BbnksIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgYWN0aW9uQ3R4PzogQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocGVybWlzc2lvbi5wZXJtaXNzaW9ucy5tYXAocCA9PiB0aGlzLmlzUGVybWl0dGVkKHAsIHJvdXRlLCBhY3Rpb25DdHgpKSkucGlwZShtYXAocmVzID0+IHJlcy5zb21lKGlwID0+IGlwID09PSB0cnVlKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRTZXJ2aWNlKHBlcm1pc3Npb246IFBlcm1pc3Npb25zLlNlcnZpY2UsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgYWN0aW9uQ3R4PzogQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgY29uc3Qgc2VydmljZUluc3RhbmNlID0gdGhpcy5pbmplY3Rvci5nZXQocGVybWlzc2lvbi5zZXJ2aWNlKTtcbiAgICAgICAgaWYgKCFzZXJ2aWNlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgU2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgYmUgcmV0cmVpdmVkIGZvciB0eXBlICR7cGVybWlzc2lvbi5zZXJ2aWNlfWApO1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VydmljZUluc3RhbmNlLmlzUGVybWl0dGVkKHJvdXRlLCB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCwgYWN0aW9uQ3R4KTtcbiAgICB9XG59XG4iXX0=
@@ -1,16 +1,16 @@
1
- import { AuthorizationTypeEnum } from './model';
2
- export class AuthorizationUtil {
3
- static isPermitted(permissions, userRoles) {
4
- switch (permissions.authorizationType) {
5
- case AuthorizationTypeEnum.Rbac:
6
- return AuthorizationUtil.isRbacPermitted(permissions, userRoles);
7
- default:
8
- console.error(`Permission type "${permissions.authorizationType}" not implemented`);
9
- return false;
10
- }
11
- }
12
- static isRbacPermitted(permissions, userRoles) {
13
- return permissions.roles.some(prg => prg.every(pr => userRoles.indexOf(pr) > -1));
14
- }
15
- }
1
+ import { AuthorizationTypeEnum } from './model';
2
+ export class AuthorizationUtil {
3
+ static isPermitted(permissions, userRoles) {
4
+ switch (permissions.authorizationType) {
5
+ case AuthorizationTypeEnum.Rbac:
6
+ return AuthorizationUtil.isRbacPermitted(permissions, userRoles);
7
+ default:
8
+ console.error(`Permission type "${permissions.authorizationType}" not implemented`);
9
+ return false;
10
+ }
11
+ }
12
+ static isRbacPermitted(permissions, userRoles) {
13
+ return permissions.roles.some(prg => prg.every(pr => userRoles.indexOf(pr) > -1));
14
+ }
15
+ }
16
16
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWN1cml0eS9hdXRob3JpemF0aW9uLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLHFCQUFxQixFQUFjLE1BQU0sU0FBUyxDQUFDO0FBRXpFLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUF5QixFQUFFLFNBQXdCO1FBQ3pFLFFBQVEsV0FBVyxDQUFDLGlCQUFpQixFQUFFO1lBQ25DLEtBQUsscUJBQXFCLENBQUMsSUFBSTtnQkFDM0IsT0FBTyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsV0FBZ0MsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMxRjtnQkFDSSxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixXQUFXLENBQUMsaUJBQWlCLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3BGLE9BQU8sS0FBSyxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsV0FBOEIsRUFBRSxTQUF3QjtRQUNsRixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVBlcm1pc3Npb25zLCBBdXRob3JpemF0aW9uVHlwZUVudW0sIFBlcm1pc3Npb25zfSBmcm9tICcuL21vZGVsJztcblxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25VdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIGlzUGVybWl0dGVkKHBlcm1pc3Npb25zOiBBUGVybWlzc2lvbnMsIHVzZXJSb2xlczogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW4ge1xuICAgICAgICBzd2l0Y2ggKHBlcm1pc3Npb25zLmF1dGhvcml6YXRpb25UeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEF1dGhvcml6YXRpb25UeXBlRW51bS5SYmFjOlxuICAgICAgICAgICAgICAgIHJldHVybiBBdXRob3JpemF0aW9uVXRpbC5pc1JiYWNQZXJtaXR0ZWQocGVybWlzc2lvbnMgYXMgUGVybWlzc2lvbnMuUm9sZXMsIHVzZXJSb2xlcyk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFBlcm1pc3Npb24gdHlwZSBcIiR7cGVybWlzc2lvbnMuYXV0aG9yaXphdGlvblR5cGV9XCIgbm90IGltcGxlbWVudGVkYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc1JiYWNQZXJtaXR0ZWQocGVybWlzc2lvbnM6IFBlcm1pc3Npb25zLlJvbGVzLCB1c2VyUm9sZXM6IEFycmF5PHN0cmluZz4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25zLnJvbGVzLnNvbWUocHJnID0+IHByZy5ldmVyeShwciA9PiB1c2VyUm9sZXMuaW5kZXhPZihwcikgPiAtMSkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- export * from './authorization.guard';
2
- export * from './authorization.service';
3
- export * from './authorization.util';
1
+ export * from './authorization.guard';
2
+ export * from './authorization.service';
3
+ export * from './authorization.util';
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlY3VyaXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRob3JpemF0aW9uLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aG9yaXphdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aG9yaXphdGlvbi51dGlsJztcbiJdfQ==
@@ -1,8 +1,8 @@
1
- export var AuthorizationTypeEnum;
2
- (function (AuthorizationTypeEnum) {
3
- AuthorizationTypeEnum["All"] = "ALL";
4
- AuthorizationTypeEnum["Any"] = "ANY";
5
- AuthorizationTypeEnum["Rbac"] = "ROLE_BASED_ACCESS_CONTROL";
6
- AuthorizationTypeEnum["Service"] = "SERVICE";
7
- })(AuthorizationTypeEnum || (AuthorizationTypeEnum = {}));
1
+ export var AuthorizationTypeEnum;
2
+ (function (AuthorizationTypeEnum) {
3
+ AuthorizationTypeEnum["All"] = "ALL";
4
+ AuthorizationTypeEnum["Any"] = "ANY";
5
+ AuthorizationTypeEnum["Rbac"] = "ROLE_BASED_ACCESS_CONTROL";
6
+ AuthorizationTypeEnum["Service"] = "SERVICE";
7
+ })(AuthorizationTypeEnum || (AuthorizationTypeEnum = {}));
8
8
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWN1cml0eS9tb2RlbC9hdXRob3JpemF0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUM3QixvQ0FBVyxDQUFBO0lBQ1gsb0NBQVcsQ0FBQTtJQUNYLDJEQUFrQyxDQUFBO0lBQ2xDLDRDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBS2hDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQXV0aG9yaXphdGlvblR5cGVFbnVtIHtcbiAgICBBbGwgPSAnQUxMJyxcbiAgICBBbnkgPSAnQU5ZJyxcbiAgICBSYmFjID0gJ1JPTEVfQkFTRURfQUNDRVNTX0NPTlRST0wnLFxuICAgIFNlcnZpY2UgPSAnU0VSVklDRSdcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- export * from './authorization.type';
2
- export * from './permission-service.interface';
3
- export * from './permissions.model';
1
+ export * from './authorization.type';
2
+ export * from './permission-service.interface';
3
+ export * from './permissions.model';
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlY3VyaXR5L21vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRob3JpemF0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLXNlcnZpY2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbnMubW9kZWwnO1xuIl19
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1zZXJ2aWNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VjdXJpdHkvbW9kZWwvcGVybWlzc2lvbi1zZXJ2aWNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0FjdGlvbkNvbnRleHRWYWxpZGF0aW9ufSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2FjdGlvbi9tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQZXJtaXNzaW9uU2VydmljZSB7XG4gICAgaXNQZXJtaXR0ZWQocm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCByb3V0ZXJTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QsIGFjdGlvbkN0eD86IEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cbiJdfQ==