@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
@@ -1,47 +1,50 @@
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: "14.1.0", 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: "14.1.0", ngImport: i0, type: MngAuthorizationService });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngAuthorizationService, decorators: [{
45
- type: Injectable
46
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i2.MngCommonsService }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWN1cml0eS9hdXRob3JpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQWEsYUFBYSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFlLHFCQUFxQixFQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFFbkYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFHdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxZQUFvQixRQUFrQixFQUFVLE1BQWMsRUFBVSxPQUEwQjtRQUE5RSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQUcsQ0FBQztJQUUvRixXQUFXLENBQUMsV0FBeUIsRUFBRSxLQUE4QixFQUFFLFNBQXFEO1FBQy9ILFFBQVEsV0FBVyxDQUFDLGlCQUFpQixFQUFFO1lBQ25DLEtBQUsscUJBQXFCLENBQUMsR0FBRztnQkFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUsscUJBQXFCLENBQUMsR0FBRztnQkFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUsscUJBQXFCLENBQUMsT0FBTztnQkFDOUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBa0MsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDekY7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEc7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLFVBQTJCLEVBQUUsS0FBOEIsRUFBRSxTQUFxRDtRQUNySSxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBMkIsRUFBRSxLQUE4QixFQUFFLFNBQXFEO1FBQ3JJLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0ksQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQStCLEVBQUUsS0FBOEIsRUFBRSxTQUFxRDtRQUM3SSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN2RixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU8sZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7O29IQS9CUSx1QkFBdUI7d0hBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0FjdGlvbkNvbnRleHRWYWxpZGF0aW9ufSBmcm9tICcuLi9jb21wb25lbnRzL2FjdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnMsIEF1dGhvcml6YXRpb25UeXBlRW51bSwgUGVybWlzc2lvbnN9IGZyb20gJy4uL3NlY3VyaXR5L21vZGVsJztcbmltcG9ydCB7TW5nQ29tbW9uc1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7QXV0aG9yaXphdGlvblV0aWx9IGZyb20gJy4vYXV0aG9yaXphdGlvbi51dGlsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1uZ0F1dGhvcml6YXRpb25TZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjb21tb25zOiBNbmdDb21tb25zU2VydmljZSkge31cblxuICAgIHB1YmxpYyBpc1Blcm1pdHRlZChwZXJtaXNzaW9uczogQVBlcm1pc3Npb25zLCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGFjdGlvbkN0eD86IEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHN3aXRjaCAocGVybWlzc2lvbnMuYXV0aG9yaXphdGlvblR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQXV0aG9yaXphdGlvblR5cGVFbnVtLkFsbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1Blcm1pdHRlZEFsbChwZXJtaXNzaW9ucyBhcyBQZXJtaXNzaW9ucy5BbGwsIHJvdXRlLCBhY3Rpb25DdHgpO1xuICAgICAgICAgICAgY2FzZSBBdXRob3JpemF0aW9uVHlwZUVudW0uQW55OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzUGVybWl0dGVkQW55KHBlcm1pc3Npb25zIGFzIFBlcm1pc3Npb25zLkFueSwgcm91dGUsIGFjdGlvbkN0eCk7XG4gICAgICAgICAgICBjYXNlIEF1dGhvcml6YXRpb25UeXBlRW51bS5TZXJ2aWNlOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzUGVybWl0dGVkU2VydmljZShwZXJtaXNzaW9ucyBhcyBQZXJtaXNzaW9ucy5TZXJ2aWNlLCByb3V0ZSwgYWN0aW9uQ3R4KTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tbW9ucy51c2VyUm9sZXMkLnBpcGUobWFwKHVyID0+IEF1dGhvcml6YXRpb25VdGlsLmlzUGVybWl0dGVkKHBlcm1pc3Npb25zLCB1cikpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRBbGwocGVybWlzc2lvbjogUGVybWlzc2lvbnMuQWxsLCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGFjdGlvbkN0eD86IEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KSB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHBlcm1pc3Npb24ucGVybWlzc2lvbnMubWFwKHAgPT4gdGhpcy5pc1Blcm1pdHRlZChwLCByb3V0ZSwgYWN0aW9uQ3R4KSkpLnBpcGUobWFwKHJlcyA9PiByZXMuZXZlcnkoaXAgPT4gaXAgPT09IHRydWUpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Blcm1pdHRlZEFueShwZXJtaXNzaW9uOiBQZXJtaXNzaW9ucy5BbnksIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgYWN0aW9uQ3R4PzogQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocGVybWlzc2lvbi5wZXJtaXNzaW9ucy5tYXAocCA9PiB0aGlzLmlzUGVybWl0dGVkKHAsIHJvdXRlLCBhY3Rpb25DdHgpKSkucGlwZShtYXAocmVzID0+IHJlcy5zb21lKGlwID0+IGlwID09PSB0cnVlKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRTZXJ2aWNlKHBlcm1pc3Npb246IFBlcm1pc3Npb25zLlNlcnZpY2UsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgYWN0aW9uQ3R4PzogQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgY29uc3Qgc2VydmljZUluc3RhbmNlID0gdGhpcy5pbmplY3Rvci5nZXQocGVybWlzc2lvbi5zZXJ2aWNlKTtcbiAgICAgICAgaWYgKCFzZXJ2aWNlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgU2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgYmUgcmV0cmVpdmVkIGZvciB0eXBlICR7cGVybWlzc2lvbi5zZXJ2aWNlfWApO1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VydmljZUluc3RhbmNlLmlzUGVybWl0dGVkKHJvdXRlLCB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCwgYWN0aW9uQ3R4KTtcbiAgICB9XG59XG4iXX0=
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: "15.2.1", 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: "15.2.1", ngImport: i0, type: MngAuthorizationService, providedIn: 'root' });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MngAuthorizationService, decorators: [{
45
+ type: Injectable,
46
+ args: [{
47
+ providedIn: 'root'
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i2.MngCommonsService }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWN1cml0eS9hdXRob3JpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQWEsYUFBYSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFlLHFCQUFxQixFQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFFbkYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFLdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxZQUFvQixRQUFrQixFQUFVLE1BQWMsRUFBVSxPQUEwQjtRQUE5RSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQUcsQ0FBQztJQUUvRixXQUFXLENBQUMsV0FBeUIsRUFBRSxLQUE4QixFQUFFLFNBQXFEO1FBQy9ILFFBQVEsV0FBVyxDQUFDLGlCQUFpQixFQUFFO1lBQ25DLEtBQUsscUJBQXFCLENBQUMsR0FBRztnQkFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUsscUJBQXFCLENBQUMsR0FBRztnQkFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUsscUJBQXFCLENBQUMsT0FBTztnQkFDOUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBa0MsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDekY7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEc7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLFVBQTJCLEVBQUUsS0FBOEIsRUFBRSxTQUFxRDtRQUNySSxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBMkIsRUFBRSxLQUE4QixFQUFFLFNBQXFEO1FBQ3JJLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0ksQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQStCLEVBQUUsS0FBOEIsRUFBRSxTQUFxRDtRQUM3SSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN2RixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU8sZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7O29IQS9CUSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZwQixNQUFNOzJGQUVULHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge09ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7QWN0aW9uQ29udGV4dFZhbGlkYXRpb259IGZyb20gJy4uL2NvbXBvbmVudHMvYWN0aW9uL21vZGVscyc7XG5pbXBvcnQge0FQZXJtaXNzaW9ucywgQXV0aG9yaXphdGlvblR5cGVFbnVtLCBQZXJtaXNzaW9uc30gZnJvbSAnLi4vc2VjdXJpdHkvbW9kZWwnO1xuaW1wb3J0IHtNbmdDb21tb25zU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHtBdXRob3JpemF0aW9uVXRpbH0gZnJvbSAnLi9hdXRob3JpemF0aW9uLnV0aWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0F1dGhvcml6YXRpb25TZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjb21tb25zOiBNbmdDb21tb25zU2VydmljZSkge31cblxuICAgIHB1YmxpYyBpc1Blcm1pdHRlZChwZXJtaXNzaW9uczogQVBlcm1pc3Npb25zLCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGFjdGlvbkN0eD86IEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+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==
@@ -1,87 +1,87 @@
1
- import { AuthorizationTypeEnum } from './authorization.type';
2
- export class APermissions {
3
- constructor(type) {
4
- this._authorizationType = type;
5
- }
6
- get authorizationType() {
7
- return this._authorizationType;
8
- }
9
- }
10
- export var Permissions;
11
- (function (Permissions) {
12
- class All extends APermissions {
13
- constructor() {
14
- super(AuthorizationTypeEnum.All);
15
- this._permissions = [];
16
- }
17
- static of(...permissions) {
18
- const inst = new All();
19
- inst.and(...permissions);
20
- return inst;
21
- }
22
- get permissions() {
23
- return this._permissions;
24
- }
25
- and(...permissions) {
26
- this._permissions.push(...permissions);
27
- return this;
28
- }
29
- }
30
- Permissions.All = All;
31
- class Any extends APermissions {
32
- constructor() {
33
- super(AuthorizationTypeEnum.Any);
34
- this._permissions = [];
35
- }
36
- static of(...permissions) {
37
- const inst = new Any();
38
- inst.or(...permissions);
39
- return inst;
40
- }
41
- get permissions() {
42
- return this._permissions;
43
- }
44
- or(...permissions) {
45
- this._permissions.push(...permissions);
46
- return this;
47
- }
48
- }
49
- Permissions.Any = Any;
50
- class Roles extends APermissions {
51
- constructor() {
52
- super(AuthorizationTypeEnum.Rbac);
53
- this._roles = [];
54
- }
55
- static of(...roles) {
56
- const inst = new Roles();
57
- inst.or(...roles);
58
- return inst;
59
- }
60
- get roles() {
61
- return this._roles;
62
- }
63
- and(...roles) {
64
- if (this._roles.length === 0) {
65
- this._roles.push([]);
66
- }
67
- this._roles[this._roles.length - 1].push(...roles);
68
- return this;
69
- }
70
- or(...roles) {
71
- this._roles.push(...roles.map(s => [s]));
72
- return this;
73
- }
74
- }
75
- Permissions.Roles = Roles;
76
- class Service extends APermissions {
77
- constructor(service) {
78
- super(AuthorizationTypeEnum.Service);
79
- this.service = service;
80
- }
81
- static of(service) {
82
- return new Service(service);
83
- }
84
- }
85
- Permissions.Service = Service;
86
- })(Permissions || (Permissions = {}));
1
+ import { AuthorizationTypeEnum } from './authorization.type';
2
+ export class APermissions {
3
+ constructor(type) {
4
+ this._authorizationType = type;
5
+ }
6
+ get authorizationType() {
7
+ return this._authorizationType;
8
+ }
9
+ }
10
+ export var Permissions;
11
+ (function (Permissions) {
12
+ class All extends APermissions {
13
+ constructor() {
14
+ super(AuthorizationTypeEnum.All);
15
+ this._permissions = [];
16
+ }
17
+ static of(...permissions) {
18
+ const inst = new All();
19
+ inst.and(...permissions);
20
+ return inst;
21
+ }
22
+ get permissions() {
23
+ return this._permissions;
24
+ }
25
+ and(...permissions) {
26
+ this._permissions.push(...permissions);
27
+ return this;
28
+ }
29
+ }
30
+ Permissions.All = All;
31
+ class Any extends APermissions {
32
+ constructor() {
33
+ super(AuthorizationTypeEnum.Any);
34
+ this._permissions = [];
35
+ }
36
+ static of(...permissions) {
37
+ const inst = new Any();
38
+ inst.or(...permissions);
39
+ return inst;
40
+ }
41
+ get permissions() {
42
+ return this._permissions;
43
+ }
44
+ or(...permissions) {
45
+ this._permissions.push(...permissions);
46
+ return this;
47
+ }
48
+ }
49
+ Permissions.Any = Any;
50
+ class Roles extends APermissions {
51
+ constructor() {
52
+ super(AuthorizationTypeEnum.Rbac);
53
+ this._roles = [];
54
+ }
55
+ static of(...roles) {
56
+ const inst = new Roles();
57
+ inst.or(...roles);
58
+ return inst;
59
+ }
60
+ get roles() {
61
+ return this._roles;
62
+ }
63
+ and(...roles) {
64
+ if (this._roles.length === 0) {
65
+ this._roles.push([]);
66
+ }
67
+ this._roles[this._roles.length - 1].push(...roles);
68
+ return this;
69
+ }
70
+ or(...roles) {
71
+ this._roles.push(...roles.map(s => [s]));
72
+ return this;
73
+ }
74
+ }
75
+ Permissions.Roles = Roles;
76
+ class Service extends APermissions {
77
+ constructor(service) {
78
+ super(AuthorizationTypeEnum.Service);
79
+ this.service = service;
80
+ }
81
+ static of(service) {
82
+ return new Service(service);
83
+ }
84
+ }
85
+ Permissions.Service = Service;
86
+ })(Permissions || (Permissions = {}));
87
87
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlY3VyaXR5L21vZGVsL3Blcm1pc3Npb25zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzNELE1BQU0sT0FBZ0IsWUFBWTtJQUc5QixZQUFZLElBQTJCO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7Q0FDSjtBQUVELE1BQU0sS0FBVyxXQUFXLENBdUYzQjtBQXZGRCxXQUFpQixXQUFXO0lBQ3hCLE1BQWEsR0FBSSxTQUFRLFlBQVk7UUFHakM7WUFDSSxLQUFLLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFIN0IsaUJBQVksR0FBd0IsRUFBRSxDQUFDO1FBSS9DLENBQUM7UUFFTSxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBZ0M7WUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQVcsV0FBVztZQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0IsQ0FBQztRQUVNLEdBQUcsQ0FBQyxHQUFHLFdBQWdDO1lBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztLQUNKO0lBckJZLGVBQUcsTUFxQmYsQ0FBQTtJQUVELE1BQWEsR0FBSSxTQUFRLFlBQVk7UUFHakM7WUFDSSxLQUFLLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFIN0IsaUJBQVksR0FBd0IsRUFBRSxDQUFDO1FBSS9DLENBQUM7UUFFTSxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBZ0M7WUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQVcsV0FBVztZQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0IsQ0FBQztRQUVNLEVBQUUsQ0FBQyxHQUFHLFdBQWdDO1lBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztLQUNKO0lBckJZLGVBQUcsTUFxQmYsQ0FBQTtJQUVELE1BQWEsS0FBTSxTQUFRLFlBQVk7UUFHbkM7WUFDSSxLQUFLLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFIOUIsV0FBTSxHQUF5QixFQUFFLENBQUM7UUFJMUMsQ0FBQztRQUVNLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFvQjtZQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBVyxLQUFLO1lBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7UUFFTSxHQUFHLENBQUMsR0FBRyxLQUFvQjtZQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDeEI7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ25ELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFTSxFQUFFLENBQUMsR0FBRyxLQUFvQjtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0tBQ0o7SUE3QlksaUJBQUssUUE2QmpCLENBQUE7SUFFRCxNQUFhLE9BQVEsU0FBUSxZQUFZO1FBQ3JDLFlBQW9DLE9BQWlDO1lBQ2pFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQURMLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBRXJFLENBQUM7UUFFTSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWlDO1lBQzlDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsQ0FBQztLQUNKO0lBUlksbUJBQU8sVUFRbkIsQ0FBQTtBQUNMLENBQUMsRUF2RmdCLFdBQVcsS0FBWCxXQUFXLFFBdUYzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QXV0aG9yaXphdGlvblR5cGVFbnVtfSBmcm9tICcuL2F1dGhvcml6YXRpb24udHlwZSc7XG5pbXBvcnQge0lQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnLi9wZXJtaXNzaW9uLXNlcnZpY2UuaW50ZXJmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFQZXJtaXNzaW9ucyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXV0aG9yaXphdGlvblR5cGU6IEF1dGhvcml6YXRpb25UeXBlRW51bTtcblxuICAgIGNvbnN0cnVjdG9yKHR5cGU6IEF1dGhvcml6YXRpb25UeXBlRW51bSkge1xuICAgICAgICB0aGlzLl9hdXRob3JpemF0aW9uVHlwZSA9IHR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhdXRob3JpemF0aW9uVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1dGhvcml6YXRpb25UeXBlO1xuICAgIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQZXJtaXNzaW9ucyB7XG4gICAgZXhwb3J0IGNsYXNzIEFsbCBleHRlbmRzIEFQZXJtaXNzaW9ucyB7XG4gICAgICAgIHByaXZhdGUgX3Blcm1pc3Npb25zOiBBcnJheTxBUGVybWlzc2lvbnM+ID0gW107XG5cbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIHN1cGVyKEF1dGhvcml6YXRpb25UeXBlRW51bS5BbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBvZiguLi5wZXJtaXNzaW9uczogQXJyYXk8QVBlcm1pc3Npb25zPik6IEFsbCB7XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gbmV3IEFsbCgpO1xuICAgICAgICAgICAgaW5zdC5hbmQoLi4ucGVybWlzc2lvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIGluc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgZ2V0IHBlcm1pc3Npb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGFuZCguLi5wZXJtaXNzaW9uczogQXJyYXk8QVBlcm1pc3Npb25zPik6IHRoaXMge1xuICAgICAgICAgICAgdGhpcy5fcGVybWlzc2lvbnMucHVzaCguLi5wZXJtaXNzaW9ucyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBjbGFzcyBBbnkgZXh0ZW5kcyBBUGVybWlzc2lvbnMge1xuICAgICAgICBwcml2YXRlIF9wZXJtaXNzaW9uczogQXJyYXk8QVBlcm1pc3Npb25zPiA9IFtdO1xuXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgICAgICAgICBzdXBlcihBdXRob3JpemF0aW9uVHlwZUVudW0uQW55KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgb2YoLi4ucGVybWlzc2lvbnM6IEFycmF5PEFQZXJtaXNzaW9ucz4pOiBBbnkge1xuICAgICAgICAgICAgY29uc3QgaW5zdCA9IG5ldyBBbnkoKTtcbiAgICAgICAgICAgIGluc3Qub3IoLi4ucGVybWlzc2lvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIGluc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgZ2V0IHBlcm1pc3Npb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG9yKC4uLnBlcm1pc3Npb25zOiBBcnJheTxBUGVybWlzc2lvbnM+KTogdGhpcyB7XG4gICAgICAgICAgICB0aGlzLl9wZXJtaXNzaW9ucy5wdXNoKC4uLnBlcm1pc3Npb25zKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXhwb3J0IGNsYXNzIFJvbGVzIGV4dGVuZHMgQVBlcm1pc3Npb25zIHtcbiAgICAgICAgcHJpdmF0ZSBfcm9sZXM6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG5cbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIHN1cGVyKEF1dGhvcml6YXRpb25UeXBlRW51bS5SYmFjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgb2YoLi4ucm9sZXM6IEFycmF5PHN0cmluZz4pOiBSb2xlcyB7XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gbmV3IFJvbGVzKCk7XG4gICAgICAgICAgICBpbnN0Lm9yKC4uLnJvbGVzKTtcbiAgICAgICAgICAgIHJldHVybiBpbnN0O1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGdldCByb2xlcygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yb2xlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBhbmQoLi4ucm9sZXM6IEFycmF5PHN0cmluZz4pOiB0aGlzIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9yb2xlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yb2xlcy5wdXNoKFtdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3JvbGVzW3RoaXMuX3JvbGVzLmxlbmd0aCAtIDFdLnB1c2goLi4ucm9sZXMpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3IoLi4ucm9sZXM6IEFycmF5PHN0cmluZz4pOiB0aGlzIHtcbiAgICAgICAgICAgIHRoaXMuX3JvbGVzLnB1c2goLi4ucm9sZXMubWFwKHMgPT4gW3NdKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBjbGFzcyBTZXJ2aWNlIGV4dGVuZHMgQVBlcm1pc3Npb25zIHtcbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2VydmljZTogVHlwZTxJUGVybWlzc2lvblNlcnZpY2U+KSB7XG4gICAgICAgICAgICBzdXBlcihBdXRob3JpemF0aW9uVHlwZUVudW0uU2VydmljZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIG9mKHNlcnZpY2U6IFR5cGU8SVBlcm1pc3Npb25TZXJ2aWNlPik6IFNlcnZpY2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXJ2aWNlKHNlcnZpY2UpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19