@mediusinc/mng-commons 1.0.0-rc.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) 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 +75 -75
  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 +212 -212
  16. package/esm2020/lib/api/utils/object-serializer.util.mjs +247 -247
  17. package/esm2020/lib/components/action/action.component.mjs +224 -224
  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 +44 -44
  21. package/esm2020/lib/components/action/models/action-component.model.mjs +1 -1
  22. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +1 -1
  23. package/esm2020/lib/components/action/models/action-execution.model.mjs +248 -248
  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 +129 -129
  27. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +299 -299
  28. package/esm2020/lib/components/form/date-range/date-range.component.mjs +108 -108
  29. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +193 -193
  30. package/esm2020/lib/components/form/editor/form-editor.component.mjs +242 -242
  31. package/esm2020/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +38 -38
  32. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +49 -49
  33. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +44 -44
  34. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +25 -25
  35. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +149 -149
  36. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +23 -23
  37. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +180 -180
  38. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +177 -177
  39. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +148 -148
  40. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +16 -16
  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 +1 -1
  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 +14 -14
  48. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +82 -82
  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 +1 -1
  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 +16 -16
  56. package/esm2020/lib/components/layout/footer.component.mjs +16 -16
  57. package/esm2020/lib/components/layout/index.mjs +7 -7
  58. package/esm2020/lib/components/layout/main-layout.component.mjs +51 -51
  59. package/esm2020/lib/components/layout/menu-item.component.mjs +271 -271
  60. package/esm2020/lib/components/layout/menu.component.mjs +20 -20
  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.component.mjs +64 -64
  64. package/esm2020/lib/components/layout/version.component.mjs +57 -57
  65. package/esm2020/lib/components/tableview/index.mjs +6 -6
  66. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  67. package/esm2020/lib/components/tableview/models/table.event.mjs +15 -15
  68. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +122 -122
  69. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +52 -52
  70. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +119 -119
  71. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +83 -83
  72. package/esm2020/lib/components/tableview/table/table.component.mjs +593 -593
  73. package/esm2020/lib/components/tableview/tableview.component.mjs +112 -112
  74. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  75. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  76. package/esm2020/lib/data-providers/index.mjs +6 -6
  77. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  78. package/esm2020/lib/data-providers/table.data-provider.mjs +37 -37
  79. package/esm2020/lib/data-providers/tableview-crud.data-provider.mjs +23 -23
  80. package/esm2020/lib/data-providers/tableview.data-provider.mjs +44 -44
  81. package/esm2020/lib/descriptors/action/action-confirmation.descriptor.mjs +76 -76
  82. package/esm2020/lib/descriptors/action-button.descriptor.mjs +59 -59
  83. package/esm2020/lib/descriptors/action.descriptor.mjs +559 -559
  84. package/esm2020/lib/descriptors/column.descriptor.mjs +404 -404
  85. package/esm2020/lib/descriptors/editor.descriptor.mjs +289 -289
  86. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +24 -24
  87. package/esm2020/lib/descriptors/field.descriptor.mjs +978 -978
  88. package/esm2020/lib/descriptors/filter.descriptor.mjs +320 -320
  89. package/esm2020/lib/descriptors/index.mjs +11 -11
  90. package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
  91. package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
  92. package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
  93. package/esm2020/lib/descriptors/model.descriptor.mjs +44 -44
  94. package/esm2020/lib/descriptors/table.descriptor.mjs +481 -481
  95. package/esm2020/lib/descriptors/tableview.descriptor.mjs +343 -343
  96. package/esm2020/lib/descriptors/types/action.type.mjs +25 -25
  97. package/esm2020/lib/descriptors/types/column.type.mjs +20 -20
  98. package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
  99. package/esm2020/lib/descriptors/types/field.type.mjs +54 -54
  100. package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
  101. package/esm2020/lib/descriptors/types/index.mjs +6 -6
  102. package/esm2020/lib/descriptors/types/table.type.mjs +26 -26
  103. package/esm2020/lib/directives/component.directive.mjs +43 -43
  104. package/esm2020/lib/directives/index.mjs +2 -2
  105. package/esm2020/lib/directives/template.directive.mjs +27 -27
  106. package/esm2020/lib/mng-commons.module.mjs +475 -472
  107. package/esm2020/lib/models/column-value.model.mjs +1 -1
  108. package/esm2020/lib/models/config.model.mjs +1 -1
  109. package/esm2020/lib/models/enum.model.mjs +1 -1
  110. package/esm2020/lib/models/error.model.mjs +1 -1
  111. package/esm2020/lib/models/index.mjs +9 -9
  112. package/esm2020/lib/models/menu.model.mjs +1 -1
  113. package/esm2020/lib/models/tableview-attr.model.mjs +1 -1
  114. package/esm2020/lib/models/user.model.mjs +1 -1
  115. package/esm2020/lib/models/version.model.mjs +1 -1
  116. package/esm2020/lib/models/view-container.model.mjs +1 -1
  117. package/esm2020/lib/pipes/boolean.pipe.mjs +26 -26
  118. package/esm2020/lib/pipes/class-map.pipe.mjs +21 -21
  119. package/esm2020/lib/pipes/enum.pipe.mjs +24 -24
  120. package/esm2020/lib/pipes/enumerate-async.pipe.mjs +37 -37
  121. package/esm2020/lib/pipes/enumerate.pipe.mjs +54 -54
  122. package/esm2020/lib/pipes/getter.pipe.mjs +19 -19
  123. package/esm2020/lib/pipes/i18n-property.pipe.mjs +17 -17
  124. package/esm2020/lib/pipes/index.mjs +12 -12
  125. package/esm2020/lib/pipes/json-path.pipe.mjs +78 -78
  126. package/esm2020/lib/pipes/{mngLocaleDefaultRowClass.pipe.mjs → locale-default-row-class.pipe.mjs} +26 -26
  127. package/esm2020/lib/pipes/models/internal/enumrate-pipe-i18n.model.mjs +1 -1
  128. package/esm2020/lib/pipes/models/internal/index.mjs +1 -1
  129. package/esm2020/lib/pipes/parametrize.pipe.mjs +84 -84
  130. package/esm2020/lib/pipes/template.pipe.mjs +23 -23
  131. package/esm2020/lib/router/index.mjs +2 -2
  132. package/esm2020/lib/router/models/index.mjs +1 -1
  133. package/esm2020/lib/router/models/router.model.mjs +1 -1
  134. package/esm2020/lib/router/route-builder.mjs +425 -425
  135. package/esm2020/lib/router/tableview-route-builder.mjs +186 -186
  136. package/esm2020/lib/security/authorization.guard.mjs +25 -25
  137. package/esm2020/lib/security/authorization.service.mjs +46 -46
  138. package/esm2020/lib/security/authorization.util.mjs +15 -15
  139. package/esm2020/lib/security/index.mjs +3 -3
  140. package/esm2020/lib/security/model/authorization.type.mjs +7 -7
  141. package/esm2020/lib/security/model/index.mjs +3 -3
  142. package/esm2020/lib/security/model/permission-service.interface.mjs +1 -1
  143. package/esm2020/lib/security/model/permissions.model.mjs +86 -86
  144. package/esm2020/lib/services/action-executor.service.mjs +551 -551
  145. package/esm2020/lib/services/commons.service.mjs +445 -445
  146. package/esm2020/lib/services/configuration.service.mjs +134 -134
  147. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  148. package/esm2020/lib/services/index.mjs +6 -6
  149. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  150. package/esm2020/lib/services/internal/commons-init.service.mjs +43 -43
  151. package/esm2020/lib/services/internal/index.mjs +2 -2
  152. package/esm2020/lib/services/navigation.service.mjs +47 -47
  153. package/esm2020/lib/services/providers/config-service.provider.mjs +29 -29
  154. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  155. package/esm2020/lib/services/providers/index.mjs +2 -2
  156. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  157. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  158. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  159. package/esm2020/lib/services/tokens/index.mjs +4 -4
  160. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  161. package/esm2020/lib/services/version.service.mjs +38 -38
  162. package/esm2020/lib/services/view-container.component.service.mjs +54 -54
  163. package/esm2020/lib/styles/button-style.builder.mjs +164 -164
  164. package/esm2020/lib/styles/index.mjs +2 -2
  165. package/esm2020/lib/styles/models/index.mjs +2 -2
  166. package/esm2020/lib/styles/models/style-level.enum.mjs +11 -11
  167. package/esm2020/lib/styles/models/style-size.enum.mjs +8 -8
  168. package/esm2020/lib/styles/styles.util.mjs +41 -41
  169. package/esm2020/lib/types/index.mjs +2 -2
  170. package/esm2020/lib/types/type.decorator.mjs +21 -21
  171. package/esm2020/lib/types/type.model.mjs +1 -1
  172. package/esm2020/lib/utils/action-data-provider.util.mjs +144 -144
  173. package/esm2020/lib/utils/date.util.mjs +117 -117
  174. package/esm2020/lib/utils/editor-formly.util.mjs +276 -276
  175. package/esm2020/lib/utils/enum.util.mjs +81 -81
  176. package/esm2020/lib/utils/i18n.util.mjs +232 -232
  177. package/esm2020/lib/utils/index.mjs +9 -9
  178. package/esm2020/lib/utils/model.util.mjs +68 -68
  179. package/esm2020/lib/utils/notification.util.mjs +50 -50
  180. package/esm2020/lib/utils/route.util.mjs +23 -23
  181. package/esm2020/lib/utils/string.util.mjs +26 -26
  182. package/esm2020/lib/utils/tableview.util.mjs +159 -159
  183. package/esm2020/lib/utils/type.util.mjs +92 -92
  184. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  185. package/esm2020/public-api.mjs +54 -54
  186. package/fesm2015/mediusinc-mng-commons.mjs +13608 -13605
  187. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  188. package/fesm2020/mediusinc-mng-commons.mjs +13446 -13443
  189. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  190. package/index.d.ts +5 -5
  191. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  192. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  193. package/lib/api/models/filter-param.model.d.ts +23 -23
  194. package/lib/api/models/index.d.ts +8 -8
  195. package/lib/api/models/mappers.d.ts +6 -6
  196. package/lib/api/models/query-mode.model.d.ts +16 -16
  197. package/lib/api/models/query-param.model.d.ts +31 -31
  198. package/lib/api/models/query-result.model.d.ts +24 -24
  199. package/lib/api/models/serialization.model.d.ts +8 -8
  200. package/lib/api/services/api.abstract.service.d.ts +24 -24
  201. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  202. package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
  203. package/lib/api/services/index.d.ts +3 -3
  204. package/lib/api/utils/index.d.ts +2 -2
  205. package/lib/api/utils/medius-rest.util.d.ts +16 -16
  206. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  207. package/lib/components/action/action.component.d.ts +74 -74
  208. package/lib/components/action/editor/action-editor.component.d.ts +69 -69
  209. package/lib/components/action/index.d.ts +4 -4
  210. package/lib/components/action/localization/data-language-dropdown.component.d.ts +25 -25
  211. package/lib/components/action/models/action-component.model.d.ts +15 -15
  212. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  213. package/lib/components/action/models/action-execution.model.d.ts +135 -135
  214. package/lib/components/action/models/index.d.ts +4 -4
  215. package/lib/components/action/models/tableview-action-default-categories.model.d.ts +10 -10
  216. package/lib/components/action/route/action-route.component.d.ts +31 -31
  217. package/lib/components/form/autocomplete/autocomplete.component.d.ts +61 -61
  218. package/lib/components/form/date-range/date-range.component.d.ts +28 -28
  219. package/lib/components/form/dropdown/dropdown.component.d.ts +52 -52
  220. package/lib/components/form/editor/form-editor.component.d.ts +52 -52
  221. package/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.d.ts +13 -13
  222. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +16 -16
  223. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +15 -15
  224. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +14 -14
  225. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +29 -29
  226. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +11 -11
  227. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +46 -46
  228. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +24 -24
  229. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +37 -37
  230. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +7 -7
  231. package/lib/components/form/formly/fields/index.d.ts +10 -10
  232. package/lib/components/form/formly/formly.config.d.ts +14 -14
  233. package/lib/components/form/formly/index.d.ts +1 -1
  234. package/lib/components/form/formly/models/formly-config.model.d.ts +11 -11
  235. package/lib/components/form/formly/models/formly-field.model.d.ts +16 -16
  236. package/lib/components/form/formly/models/index.d.ts +2 -2
  237. package/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +6 -6
  238. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +11 -11
  239. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  240. package/lib/components/form/index.d.ts +4 -4
  241. package/lib/components/form/models/field-action-context.model.d.ts +17 -17
  242. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  243. package/lib/components/form/models/form-editor.interface.d.ts +10 -10
  244. package/lib/components/form/models/index.d.ts +2 -2
  245. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  246. package/lib/components/layout/footer.component.d.ts +9 -9
  247. package/lib/components/layout/index.d.ts +7 -7
  248. package/lib/components/layout/main-layout.component.d.ts +20 -20
  249. package/lib/components/layout/menu-item.component.d.ts +52 -52
  250. package/lib/components/layout/menu.component.d.ts +10 -10
  251. package/lib/components/layout/services/index.d.ts +1 -1
  252. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  253. package/lib/components/layout/topbar.component.d.ts +28 -28
  254. package/lib/components/layout/version.component.d.ts +19 -19
  255. package/lib/components/tableview/index.d.ts +6 -6
  256. package/lib/components/tableview/models/index.d.ts +1 -1
  257. package/lib/components/tableview/models/table.event.d.ts +17 -17
  258. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +29 -29
  259. package/lib/components/tableview/route/tableview-route.component.d.ts +18 -18
  260. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +38 -38
  261. package/lib/components/tableview/table/column-value/column-value.component.d.ts +35 -35
  262. package/lib/components/tableview/table/table.component.d.ts +115 -115
  263. package/lib/components/tableview/tableview.component.d.ts +48 -48
  264. package/lib/data-providers/base.data-provider.d.ts +14 -14
  265. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  266. package/lib/data-providers/index.d.ts +6 -6
  267. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  268. package/lib/data-providers/table.data-provider.d.ts +27 -27
  269. package/lib/data-providers/tableview-crud.data-provider.d.ts +8 -8
  270. package/lib/data-providers/tableview.data-provider.d.ts +33 -33
  271. package/lib/descriptors/action/action-confirmation.descriptor.d.ts +36 -36
  272. package/lib/descriptors/action-button.descriptor.d.ts +22 -22
  273. package/lib/descriptors/action.descriptor.d.ts +217 -217
  274. package/lib/descriptors/column.descriptor.d.ts +130 -130
  275. package/lib/descriptors/editor.descriptor.d.ts +116 -116
  276. package/lib/descriptors/field-validation.descriptor.d.ts +19 -19
  277. package/lib/descriptors/field.descriptor.d.ts +342 -342
  278. package/lib/descriptors/filter.descriptor.d.ts +112 -112
  279. package/lib/descriptors/index.d.ts +11 -11
  280. package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
  281. package/lib/descriptors/interfaces/index.d.ts +2 -2
  282. package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
  283. package/lib/descriptors/model.descriptor.d.ts +18 -18
  284. package/lib/descriptors/table.descriptor.d.ts +188 -188
  285. package/lib/descriptors/tableview.descriptor.d.ts +129 -129
  286. package/lib/descriptors/types/action.type.d.ts +21 -21
  287. package/lib/descriptors/types/column.type.d.ts +18 -18
  288. package/lib/descriptors/types/editor.type.d.ts +6 -6
  289. package/lib/descriptors/types/field.type.d.ts +46 -46
  290. package/lib/descriptors/types/filter.type.d.ts +27 -27
  291. package/lib/descriptors/types/index.d.ts +6 -6
  292. package/lib/descriptors/types/table.type.d.ts +22 -22
  293. package/lib/directives/component.directive.d.ts +16 -16
  294. package/lib/directives/index.d.ts +2 -2
  295. package/lib/directives/template.directive.d.ts +13 -13
  296. package/lib/mng-commons.module.d.ts +97 -97
  297. package/lib/models/column-value.model.d.ts +4 -4
  298. package/lib/models/config.model.d.ts +40 -40
  299. package/lib/models/enum.model.d.ts +6 -6
  300. package/lib/models/error.model.d.ts +14 -14
  301. package/lib/models/index.d.ts +9 -9
  302. package/lib/models/menu.model.d.ts +30 -30
  303. package/lib/models/tableview-attr.model.d.ts +10 -10
  304. package/lib/models/user.model.d.ts +8 -8
  305. package/lib/models/version.model.d.ts +18 -18
  306. package/lib/models/view-container.model.d.ts +43 -43
  307. package/lib/pipes/boolean.pipe.d.ts +7 -7
  308. package/lib/pipes/class-map.pipe.d.ts +7 -7
  309. package/lib/pipes/enum.pipe.d.ts +8 -8
  310. package/lib/pipes/enumerate-async.pipe.d.ts +14 -14
  311. package/lib/pipes/enumerate.pipe.d.ts +21 -21
  312. package/lib/pipes/getter.pipe.d.ts +7 -7
  313. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  314. package/lib/pipes/index.d.ts +11 -11
  315. package/lib/pipes/json-path.pipe.d.ts +13 -13
  316. package/lib/pipes/{mngLocaleDefaultRowClass.pipe.d.ts → locale-default-row-class.pipe.d.ts} +10 -10
  317. package/lib/pipes/models/internal/enumrate-pipe-i18n.model.d.ts +5 -5
  318. package/lib/pipes/models/internal/index.d.ts +1 -1
  319. package/lib/pipes/parametrize.pipe.d.ts +13 -13
  320. package/lib/pipes/template.pipe.d.ts +10 -10
  321. package/lib/router/index.d.ts +2 -2
  322. package/lib/router/models/index.d.ts +1 -1
  323. package/lib/router/models/router.model.d.ts +33 -33
  324. package/lib/router/route-builder.d.ts +98 -98
  325. package/lib/router/tableview-route-builder.d.ts +37 -37
  326. package/lib/security/authorization.guard.d.ts +11 -11
  327. package/lib/security/authorization.service.d.ts +19 -19
  328. package/lib/security/authorization.util.d.ts +5 -5
  329. package/lib/security/index.d.ts +3 -3
  330. package/lib/security/model/authorization.type.d.ts +6 -6
  331. package/lib/security/model/index.d.ts +3 -3
  332. package/lib/security/model/permission-service.interface.d.ts +6 -6
  333. package/lib/security/model/permissions.model.d.ts +37 -37
  334. package/lib/services/action-executor.service.d.ts +149 -149
  335. package/lib/services/commons.service.d.ts +89 -89
  336. package/lib/services/configuration.service.d.ts +52 -52
  337. package/lib/services/error-mapper.service.d.ts +7 -7
  338. package/lib/services/index.d.ts +6 -6
  339. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  340. package/lib/services/internal/commons-init.service.d.ts +16 -16
  341. package/lib/services/internal/index.d.ts +2 -2
  342. package/lib/services/navigation.service.d.ts +14 -14
  343. package/lib/services/providers/config-service.provider.d.ts +6 -6
  344. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  345. package/lib/services/providers/index.d.ts +2 -2
  346. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  347. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  348. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  349. package/lib/services/tokens/index.d.ts +4 -4
  350. package/lib/services/tokens/module-config.token.d.ts +3 -3
  351. package/lib/services/version.service.d.ts +13 -13
  352. package/lib/services/view-container.component.service.d.ts +31 -31
  353. package/lib/styles/button-style.builder.d.ts +67 -67
  354. package/lib/styles/index.d.ts +2 -2
  355. package/lib/styles/models/index.d.ts +2 -2
  356. package/lib/styles/models/style-level.enum.d.ts +10 -10
  357. package/lib/styles/models/style-size.enum.d.ts +7 -7
  358. package/lib/styles/styles.util.d.ts +14 -14
  359. package/lib/types/index.d.ts +2 -2
  360. package/lib/types/type.decorator.d.ts +4 -4
  361. package/lib/types/type.model.d.ts +23 -23
  362. package/lib/utils/action-data-provider.util.d.ts +20 -20
  363. package/lib/utils/date.util.d.ts +7 -7
  364. package/lib/utils/editor-formly.util.d.ts +12 -12
  365. package/lib/utils/enum.util.d.ts +50 -50
  366. package/lib/utils/i18n.util.d.ts +56 -56
  367. package/lib/utils/index.d.ts +9 -9
  368. package/lib/utils/model.util.d.ts +8 -8
  369. package/lib/utils/notification.util.d.ts +12 -12
  370. package/lib/utils/route.util.d.ts +4 -4
  371. package/lib/utils/string.util.d.ts +4 -4
  372. package/lib/utils/tableview.util.d.ts +40 -40
  373. package/lib/utils/type.util.d.ts +57 -57
  374. package/package.json +1 -1
  375. package/public-api.d.ts +34 -34
  376. package/version-info.json +7 -7
  377. package/mediusinc-mng-commons-1.0.0-rc.1.tgz +0 -0
@@ -1,122 +1,122 @@
1
- import { Directive, inject } from '@angular/core';
2
- import { ActivatedRoute } from '@angular/router';
3
- import * as FileSaver from 'file-saver';
4
- import { of, tap } from 'rxjs';
5
- import { map } from 'rxjs/operators';
6
- import { MediusQueryParamBuilder } from '../../../api/models/builders/query-param.builder';
7
- import { ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionLinkDescriptor } from '../../../descriptors';
8
- import { ActionPositionEnum } from '../../../descriptors/types';
9
- import { StyleLevelEnum, StyleSizeEnum } from '../../../styles/models';
10
- import { ActionDataProviderUtil } from '../../../utils';
11
- import { MngDataLanguageDropdownComponent } from '../../action/localization/data-language-dropdown.component';
12
- import { TableviewActionDefaultCategories } from '../../action/models';
13
- import * as i0 from "@angular/core";
14
- export class AMngTableviewRouteComponent {
15
- constructor() {
16
- this.route = inject(ActivatedRoute);
17
- }
18
- get routeData() {
19
- return this.route.snapshot.data;
20
- }
21
- ngOnInit() {
22
- this.descriptor = this.createTableviewDescriptor();
23
- this.dataProvider = this.createTableviewDataProvider();
24
- this.actions = this.createActionDescriptors();
25
- }
26
- createActionDescriptors() {
27
- return [
28
- this.createActionDescriptorForDetails(),
29
- this.createActionDescriptorForAdd(),
30
- this.createActionDescriptorForEdit(),
31
- this.createActionDescriptorForDelete(),
32
- this.createActionDescriptorForRefresh(),
33
- this.createActionDescriptorForExport(),
34
- this.createActionDescriptorForDataTranslate(),
35
- //details actions
36
- this.createActionDescriptorForDetailsEditLink(),
37
- this.createActionDescriptorForDetailsDelete()
38
- ].filter(e => e != null);
39
- }
40
- createActionDescriptorForDetails(descriptor = this.descriptor.detailsEditor) {
41
- return !this.routeData.tableviewActions || this.routeData.tableviewActions.hasDetails ? new ActionEditorDetailsDescriptor(descriptor) : null;
42
- }
43
- createActionDescriptorForAdd(descriptor = this.descriptor.addEditor) {
44
- return !this.routeData.tableviewActions || this.routeData.tableviewActions.hasAdd ? new ActionEditorAddDescriptor(descriptor) : null;
45
- }
46
- createActionDescriptorForEdit(descriptor = this.descriptor.editEditor) {
47
- return !this.routeData.tableviewActions || this.routeData.tableviewActions.hasEdit ? new ActionEditorEditDescriptor(descriptor) : null;
48
- }
49
- createActionDescriptorForDetailsEditLink(descriptor = this.descriptor.model) {
50
- if (!this.routeData.tableviewActions || this.routeData.tableviewActions.hasEdit) {
51
- const action = new ActionLinkDescriptor(descriptor, ActionEditorEditDescriptor.ACTION_NAME)
52
- .withTableviewCategory(TableviewActionDefaultCategories.EDIT)
53
- .withPositionTableviewCategories([TableviewActionDefaultCategories.DETAILS])
54
- .withPosition(ActionPositionEnum.FooterLeft)
55
- .withRouterLink('./edit');
56
- action.button.styleClass.withActionLevel(StyleLevelEnum.Secondary);
57
- action.button.withIcon('pi pi-pencil');
58
- return action;
59
- }
60
- return null;
61
- }
62
- createActionDescriptorForDetailsDelete(descriptor = this.descriptor.model) {
63
- const action = this.createActionDescriptorForDelete();
64
- if (action) {
65
- action
66
- .withTableviewCategory(TableviewActionDefaultCategories.DELETE)
67
- .withPositionTableviewCategories([TableviewActionDefaultCategories.DETAILS])
68
- .withPosition(ActionPositionEnum.FooterLeft)
69
- .withRunFunction(ctx => ActionDataProviderUtil.runDeleteOrFail(ctx).pipe(tap(() => {
70
- ctx.parameters.viewContainer?.reloadTable?.({});
71
- ctx.parameters.viewContainer?.closeEditor?.();
72
- })));
73
- action.button.withLabel(undefined);
74
- action.button.styleClass.withSize(StyleSizeEnum.Normal);
75
- return action;
76
- }
77
- return null;
78
- }
79
- createActionDescriptorForDelete(descriptor = this.descriptor.model) {
80
- return !this.routeData.tableviewActions || this.routeData.tableviewActions.hasDelete ? new ActionDeleteDescriptor(descriptor) : null;
81
- }
82
- createActionDescriptorForExport(descriptor = this.descriptor.model) {
83
- const action = new ActionDescriptor(descriptor, 'export')
84
- .withRunFunction(ctx => {
85
- const queryParamBuilder = ctx.parameters.queryParam ? MediusQueryParamBuilder.createFromExisting(ctx.parameters.queryParam) : MediusQueryParamBuilder.create();
86
- queryParamBuilder.withItemsOffset(0).withItemsPerPage(500);
87
- ctx.parameters.withQueryParam(queryParamBuilder.build());
88
- return ActionDataProviderUtil.runGetAllOrFail(ctx).pipe(map(res => {
89
- const blob = new Blob([JSON.stringify(res.pageData, undefined, 4)], { type: 'application/json;charset=utf-8' });
90
- const typeName = ctx.instance.action.model?.typeName ?? '';
91
- FileSaver.saveAs(blob, `${typeName ? typeName + '_' : ''}${ctx.instance.action.actionName}.json`);
92
- return undefined;
93
- }));
94
- })
95
- .withPosition(ActionPositionEnum.ToolbarRight);
96
- action.button.withIcon('pi pi-upload');
97
- return action;
98
- }
99
- createActionDescriptorForRefresh(descriptor = this.descriptor.model) {
100
- const action = new ActionDescriptor(descriptor, 'refresh')
101
- .withPosition(ActionPositionEnum.ToolbarRight)
102
- .withTableviewCategory(TableviewActionDefaultCategories.READ)
103
- .withRunNotificationSuccess(undefined, undefined, false)
104
- .withRunFunction((ctx) => {
105
- ctx.parameters.viewContainer?.reloadTable?.({});
106
- return of(null);
107
- });
108
- action.button.withIcon('pi pi-refresh').styleClass.withActionLevel(StyleLevelEnum.Secondary);
109
- return action;
110
- }
111
- createActionDescriptorForDataTranslate(descriptor = this.descriptor.model) {
112
- return this.descriptor.isLocalized()
113
- ? new ActionDescriptor(descriptor, 'translator').withPosition(ActionPositionEnum.ToolbarLeft).withComponent(MngDataLanguageDropdownComponent)
114
- : null;
115
- }
116
- }
117
- AMngTableviewRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AMngTableviewRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
118
- AMngTableviewRouteComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: AMngTableviewRouteComponent, ngImport: i0 });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AMngTableviewRouteComponent, decorators: [{
120
- type: Directive
121
- }], ctorParameters: function () { return []; } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvcm91dGUvdGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRXpGLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUl2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzlELE9BQU8sRUFBQyxjQUFjLEVBQUUsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDNUcsT0FBTyxFQUFnQixnQ0FBZ0MsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUdwRixNQUFNLE9BQWdCLDJCQUEyQjtJQU83QztRQUNJLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lB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LFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQztZQUNoSixDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2YsQ0FBQzs7d0hBdElpQiwyQkFBMkI7NEdBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQURoRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIE9uSW5pdCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7b2YsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzL2J1aWxkZXJzL3F1ZXJ5LXBhcmFtLmJ1aWxkZXInO1xuaW1wb3J0IHtJVGFibGV2aWV3RGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIEFjdGlvbkRlbGV0ZURlc2NyaXB0b3IsXG4gICAgQWN0aW9uRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yLFxuICAgIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yLFxuICAgIEFjdGlvbkxpbmtEZXNjcmlwdG9yLFxuICAgIEVkaXRvckRlc2NyaXB0b3IsXG4gICAgTW9kZWxEZXNjcmlwdG9yLFxuICAgIFRhYmxldmlld0Rlc2NyaXB0b3Jcbn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtBY3Rpb25Qb3NpdGlvbkVudW19IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXJFZGl0b3IsIElWaWV3Q29udGFpbmVyVGFibGV9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ1JvdXRlckRhdGF9IGZyb20gJy4uLy4uLy4uL3JvdXRlci9tb2RlbHMnO1xuaW1wb3J0IHtTdHlsZUxldmVsRW51bSwgU3R5bGVTaXplRW51bX0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL21vZGVscyc7XG5pbXBvcnQge0FjdGlvbkRhdGFQcm92aWRlclV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7TW5nRGF0YUxhbmd1YWdlRHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uLy4uL2FjdGlvbi9sb2NhbGl6YXRpb24vZGF0YS1sYW5ndWFnZS1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25Db250ZXh0LCBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vLi4vYWN0aW9uL21vZGVscyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxULCBTPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBUYWJsZXZpZXdEZXNjcmlwdG9yPFQ+O1xuICAgIHB1YmxpYyBkYXRhUHJvdmlkZXIhOiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIHB1YmxpYyBhY3Rpb25zITogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj47XG5cbiAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgcm91dGVEYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLmNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTtcbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIgPSB0aGlzLmNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpO1xuICAgICAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxUPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVUYWJsZXZpZXdEYXRhUHJvdmlkZXIoKTogSVRhYmxldmlld0RhdGFQcm92aWRlcjxULCBTPjtcblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9ycygpOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzKCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JBZGQoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckVkaXQoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRlbGV0ZSgpLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yUmVmcmVzaCgpLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRXhwb3J0KCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEYXRhVHJhbnNsYXRlKCksXG5cbiAgICAgICAgICAgIC8vZGV0YWlscyBhY3Rpb25zXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzRWRpdExpbmsoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRldGFpbHNEZWxldGUoKVxuICAgICAgICBdLmZpbHRlcihlID0+IGUgIT0gbnVsbCkgYXMgQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuZGV0YWlsc0VkaXRvcik6IEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0RldGFpbHMgPyBuZXcgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yQWRkKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuYWRkRWRpdG9yKTogQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMgfHwgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucy5oYXNBZGQgPyBuZXcgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvcihkZXNjcmlwdG9yKSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JFZGl0KGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuZWRpdEVkaXRvcik6IEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0VkaXQgPyBuZXcgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGV0YWlsc0VkaXRMaW5rKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkxpbmtEZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0VkaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBBY3Rpb25MaW5rRGVzY3JpcHRvcihkZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvci5BQ1RJT05fTkFNRSlcbiAgICAgICAgICAgICAgICAud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkVESVQpXG4gICAgICAgICAgICAgICAgLndpdGhQb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMoW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFVEFJTFNdKVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLkZvb3RlckxlZnQpXG4gICAgICAgICAgICAgICAgLndpdGhSb3V0ZXJMaW5rKCcuL2VkaXQnKTtcbiAgICAgICAgICAgIGFjdGlvbi5idXR0b24uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoU3R5bGVMZXZlbEVudW0uU2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGFjdGlvbi5idXR0b24ud2l0aEljb24oJ3BpIHBpLXBlbmNpbCcpO1xuXG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzRGVsZXRlKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGVsZXRlKCk7XG4gICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGFjdGlvblxuICAgICAgICAgICAgICAgIC53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVMRVRFKVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzKFtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Gb290ZXJMZWZ0KVxuICAgICAgICAgICAgICAgIC53aXRoUnVuRnVuY3Rpb24oY3R4ID0+XG4gICAgICAgICAgICAgICAgICAgIEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuRGVsZXRlT3JGYWlsKGN0eCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eC5wYXJhbWV0ZXJzLnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXJUYWJsZTx1bmtub3duLCB1bmtub3duPik/LnJlbG9hZFRhYmxlPy4oe30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdHgucGFyYW1ldGVycy52aWV3Q29udGFpbmVyIGFzIElWaWV3Q29udGFpbmVyRWRpdG9yPHVua25vd24sIHVua25vd24+KT8uY2xvc2VFZGl0b3I/LigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhMYWJlbCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgYWN0aW9uLmJ1dHRvbi5zdHlsZUNsYXNzLndpdGhTaXplKFN0eWxlU2l6ZUVudW0uTm9ybWFsKTtcblxuICAgICAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGVsZXRlKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zIHx8IHRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMuaGFzRGVsZXRlID8gbmV3IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRXhwb3J0KGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gbmV3IEFjdGlvbkRlc2NyaXB0b3IoZGVzY3JpcHRvciwgJ2V4cG9ydCcpXG4gICAgICAgICAgICAud2l0aFJ1bkZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBjdHgucGFyYW1ldGVycy5xdWVyeVBhcmFtID8gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlRnJvbUV4aXN0aW5nKGN0eC5wYXJhbWV0ZXJzLnF1ZXJ5UGFyYW0pIDogTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKCk7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbUJ1aWxkZXIud2l0aEl0ZW1zT2Zmc2V0KDApLndpdGhJdGVtc1BlclBhZ2UoNTAwKTtcbiAgICAgICAgICAgICAgICBjdHgucGFyYW1ldGVycy53aXRoUXVlcnlQYXJhbShxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5HZXRBbGxPckZhaWwoY3R4KS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkocmVzLnBhZ2VEYXRhLCB1bmRlZmluZWQsIDQpXSwge3R5cGU6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTgnfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlTmFtZSA9IGN0eC5pbnN0YW5jZS5hY3Rpb24ubW9kZWw/LnR5cGVOYW1lID8/ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhibG9iLCBgJHt0eXBlTmFtZSA/IHR5cGVOYW1lICsgJ18nIDogJyd9JHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWV9Lmpzb25gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQpO1xuICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhJY29uKCdwaSBwaS11cGxvYWQnKTtcbiAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvclJlZnJlc2goZGVzY3JpcHRvcjogTW9kZWxEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLm1vZGVsKTogQWN0aW9uRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICBjb25zdCBhY3Rpb24gPSBuZXcgQWN0aW9uRGVzY3JpcHRvcjxUPihkZXNjcmlwdG9yLCAncmVmcmVzaCcpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQpXG4gICAgICAgICAgICAud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQUQpXG4gICAgICAgICAgICAud2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgLndpdGhSdW5GdW5jdGlvbigoY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KSA9PiB7XG4gICAgICAgICAgICAgICAgKGN0eC5wYXJhbWV0ZXJzLnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXJUYWJsZTxULCBTPik/LnJlbG9hZFRhYmxlPy4oe30pO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhJY29uKCdwaSBwaS1yZWZyZXNoJykuc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoU3R5bGVMZXZlbEVudW0uU2Vjb25kYXJ5KTtcbiAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRhdGFUcmFuc2xhdGUoZGVzY3JpcHRvcjogTW9kZWxEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLm1vZGVsKTogQWN0aW9uRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yLmlzTG9jYWxpemVkKClcbiAgICAgICAgICAgID8gbmV3IEFjdGlvbkRlc2NyaXB0b3I8VD4oZGVzY3JpcHRvciwgJ3RyYW5zbGF0b3InKS53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJMZWZ0KS53aXRoQ29tcG9uZW50KE1uZ0RhdGFMYW5ndWFnZURyb3Bkb3duQ29tcG9uZW50KVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { Directive, inject } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import * as FileSaver from 'file-saver';
4
+ import { of, tap } from 'rxjs';
5
+ import { map } from 'rxjs/operators';
6
+ import { MediusQueryParamBuilder } from '../../../api/models/builders/query-param.builder';
7
+ import { ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionLinkDescriptor } from '../../../descriptors';
8
+ import { ActionPositionEnum } from '../../../descriptors/types';
9
+ import { StyleLevelEnum, StyleSizeEnum } from '../../../styles/models';
10
+ import { ActionDataProviderUtil } from '../../../utils';
11
+ import { MngDataLanguageDropdownComponent } from '../../action';
12
+ import { TableviewActionDefaultCategories } from '../../action/models';
13
+ import * as i0 from "@angular/core";
14
+ export class AMngTableviewRouteComponent {
15
+ constructor() {
16
+ this.route = inject(ActivatedRoute);
17
+ }
18
+ get routeData() {
19
+ return this.route.snapshot.data;
20
+ }
21
+ ngOnInit() {
22
+ this.descriptor = this.createTableviewDescriptor();
23
+ this.dataProvider = this.createTableviewDataProvider();
24
+ this.actions = this.createActionDescriptors();
25
+ }
26
+ createActionDescriptors() {
27
+ return [
28
+ this.createActionDescriptorForDetails(),
29
+ this.createActionDescriptorForAdd(),
30
+ this.createActionDescriptorForEdit(),
31
+ this.createActionDescriptorForDelete(),
32
+ this.createActionDescriptorForRefresh(),
33
+ this.createActionDescriptorForExport(),
34
+ this.createActionDescriptorForDataTranslate(),
35
+ //details actions
36
+ this.createActionDescriptorForDetailsEditLink(),
37
+ this.createActionDescriptorForDetailsDelete()
38
+ ].filter(e => e != null);
39
+ }
40
+ createActionDescriptorForDetails(descriptor = this.descriptor.detailsEditor) {
41
+ return !this.routeData.tableviewActions || this.routeData.tableviewActions.hasDetails ? new ActionEditorDetailsDescriptor(descriptor) : null;
42
+ }
43
+ createActionDescriptorForAdd(descriptor = this.descriptor.addEditor) {
44
+ return !this.routeData.tableviewActions || this.routeData.tableviewActions.hasAdd ? new ActionEditorAddDescriptor(descriptor) : null;
45
+ }
46
+ createActionDescriptorForEdit(descriptor = this.descriptor.editEditor) {
47
+ return !this.routeData.tableviewActions || this.routeData.tableviewActions.hasEdit ? new ActionEditorEditDescriptor(descriptor) : null;
48
+ }
49
+ createActionDescriptorForDetailsEditLink(descriptor = this.descriptor.model) {
50
+ if (!this.routeData.tableviewActions || this.routeData.tableviewActions.hasEdit) {
51
+ const action = new ActionLinkDescriptor(descriptor, ActionEditorEditDescriptor.ACTION_NAME)
52
+ .withTableviewCategory(TableviewActionDefaultCategories.EDIT)
53
+ .withPositionTableviewCategories([TableviewActionDefaultCategories.DETAILS])
54
+ .withPosition(ActionPositionEnum.FooterLeft)
55
+ .withRouterLink('./edit');
56
+ action.button.styleClass.withActionLevel(StyleLevelEnum.Secondary);
57
+ action.button.withIcon('pi pi-pencil');
58
+ return action;
59
+ }
60
+ return null;
61
+ }
62
+ createActionDescriptorForDetailsDelete() {
63
+ const action = this.createActionDescriptorForDelete();
64
+ if (action) {
65
+ action
66
+ .withTableviewCategory(TableviewActionDefaultCategories.DELETE)
67
+ .withPositionTableviewCategories([TableviewActionDefaultCategories.DETAILS])
68
+ .withPosition(ActionPositionEnum.FooterLeft)
69
+ .withRunFunction(ctx => ActionDataProviderUtil.runDeleteOrFail(ctx).pipe(tap(() => {
70
+ ctx.parameters.viewContainer?.reloadTable?.({});
71
+ ctx.parameters.viewContainer?.closeEditor?.();
72
+ })));
73
+ action.button.withLabel(undefined);
74
+ action.button.styleClass.withSize(StyleSizeEnum.Normal);
75
+ return action;
76
+ }
77
+ return null;
78
+ }
79
+ createActionDescriptorForDelete(descriptor = this.descriptor.model) {
80
+ return !this.routeData.tableviewActions || this.routeData.tableviewActions.hasDelete ? new ActionDeleteDescriptor(descriptor) : null;
81
+ }
82
+ createActionDescriptorForExport(descriptor = this.descriptor.model) {
83
+ const action = new ActionDescriptor(descriptor, 'export')
84
+ .withRunFunction(ctx => {
85
+ const queryParamBuilder = ctx.parameters.queryParam ? MediusQueryParamBuilder.createFromExisting(ctx.parameters.queryParam) : MediusQueryParamBuilder.create();
86
+ queryParamBuilder.withItemsOffset(0).withItemsPerPage(500);
87
+ ctx.parameters.withQueryParam(queryParamBuilder.build());
88
+ return ActionDataProviderUtil.runGetAllOrFail(ctx).pipe(map(res => {
89
+ const blob = new Blob([JSON.stringify(res.pageData, undefined, 4)], { type: 'application/json;charset=utf-8' });
90
+ const typeName = ctx.instance.action.model?.typeName ?? '';
91
+ FileSaver.saveAs(blob, `${typeName ? typeName + '_' : ''}${ctx.instance.action.actionName}.json`);
92
+ return undefined;
93
+ }));
94
+ })
95
+ .withPosition(ActionPositionEnum.ToolbarRight);
96
+ action.button.withIcon('pi pi-upload');
97
+ return action;
98
+ }
99
+ createActionDescriptorForRefresh(descriptor = this.descriptor.model) {
100
+ const action = new ActionDescriptor(descriptor, 'refresh')
101
+ .withPosition(ActionPositionEnum.ToolbarRight)
102
+ .withTableviewCategory(TableviewActionDefaultCategories.READ)
103
+ .withRunNotificationSuccess(undefined, undefined, false)
104
+ .withRunFunction((ctx) => {
105
+ ctx.parameters.viewContainer?.reloadTable?.({});
106
+ return of(null);
107
+ });
108
+ action.button.withIcon('pi pi-refresh').styleClass.withActionLevel(StyleLevelEnum.Secondary);
109
+ return action;
110
+ }
111
+ createActionDescriptorForDataTranslate(descriptor = this.descriptor.model) {
112
+ return this.descriptor.isLocalized()
113
+ ? new ActionDescriptor(descriptor, 'translator').withPosition(ActionPositionEnum.ToolbarLeft).withComponent(MngDataLanguageDropdownComponent)
114
+ : null;
115
+ }
116
+ }
117
+ AMngTableviewRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AMngTableviewRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
118
+ AMngTableviewRouteComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: AMngTableviewRouteComponent, ngImport: i0 });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AMngTableviewRouteComponent, decorators: [{
120
+ type: Directive
121
+ }], ctorParameters: function () { return []; } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvcm91dGUvdGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRXpGLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUl2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzlELE9BQU8sRUFBQyxjQUFjLEVBQUUsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBZ0IsZ0NBQWdDLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHcEYsTUFBTSxPQUFnQiwyQkFBMkI7SUFPN0M7UUFDSSxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4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WUFDaEosQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNmLENBQUM7O3dIQXRJaUIsMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEaEQsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBPbkluaXQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQge29mLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtQnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscy9idWlsZGVycy9xdWVyeS1wYXJhbS5idWlsZGVyJztcbmltcG9ydCB7SVRhYmxldmlld0RhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vZGF0YS1wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBBY3Rpb25EZWxldGVEZXNjcmlwdG9yLFxuICAgIEFjdGlvbkRlc2NyaXB0b3IsXG4gICAgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvcixcbiAgICBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvcixcbiAgICBBY3Rpb25MaW5rRGVzY3JpcHRvcixcbiAgICBFZGl0b3JEZXNjcmlwdG9yLFxuICAgIE1vZGVsRGVzY3JpcHRvcixcbiAgICBUYWJsZXZpZXdEZXNjcmlwdG9yXG59IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7QWN0aW9uUG9zaXRpb25FbnVtfSBmcm9tICcuLi8uLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5pbXBvcnQge0lWaWV3Q29udGFpbmVyRWRpdG9yLCBJVmlld0NvbnRhaW5lclRhYmxlfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtNbmdSb3V0ZXJEYXRhfSBmcm9tICcuLi8uLi8uLi9yb3V0ZXIvbW9kZWxzJztcbmltcG9ydCB7U3R5bGVMZXZlbEVudW0sIFN0eWxlU2l6ZUVudW19IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9tb2RlbHMnO1xuaW1wb3J0IHtBY3Rpb25EYXRhUHJvdmlkZXJVdGlsfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge01uZ0RhdGFMYW5ndWFnZURyb3Bkb3duQ29tcG9uZW50fSBmcm9tICcuLi8uLi9hY3Rpb24nO1xuaW1wb3J0IHtBY3Rpb25Db250ZXh0LCBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vLi4vYWN0aW9uL21vZGVscyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxULCBTPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBUYWJsZXZpZXdEZXNjcmlwdG9yPFQ+O1xuICAgIHB1YmxpYyBkYXRhUHJvdmlkZXIhOiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIHB1YmxpYyBhY3Rpb25zITogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj47XG5cbiAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgcm91dGVEYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLmNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTtcbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIgPSB0aGlzLmNyZWF0ZVRhYmxldmlld0RhdGFQcm92aWRlcigpO1xuICAgICAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxUPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVUYWJsZXZpZXdEYXRhUHJvdmlkZXIoKTogSVRhYmxldmlld0RhdGFQcm92aWRlcjxULCBTPjtcblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9ycygpOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzKCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JBZGQoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckVkaXQoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRlbGV0ZSgpLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yUmVmcmVzaCgpLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRXhwb3J0KCksXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEYXRhVHJhbnNsYXRlKCksXG5cbiAgICAgICAgICAgIC8vZGV0YWlscyBhY3Rpb25zXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzRWRpdExpbmsoKSxcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRldGFpbHNEZWxldGUoKVxuICAgICAgICBdLmZpbHRlcihlID0+IGUgIT0gbnVsbCkgYXMgQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuZGV0YWlsc0VkaXRvcik6IEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0RldGFpbHMgPyBuZXcgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yQWRkKGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuYWRkRWRpdG9yKTogQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMgfHwgdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucy5oYXNBZGQgPyBuZXcgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvcihkZXNjcmlwdG9yKSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JFZGl0KGRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3I8VD4gPSB0aGlzLmRlc2NyaXB0b3IuZWRpdEVkaXRvcik6IEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0VkaXQgPyBuZXcgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGV0YWlsc0VkaXRMaW5rKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkxpbmtEZXNjcmlwdG9yPFQ+IHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5yb3V0ZURhdGEudGFibGV2aWV3QWN0aW9ucyB8fCB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zLmhhc0VkaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBBY3Rpb25MaW5rRGVzY3JpcHRvcihkZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvci5BQ1RJT05fTkFNRSlcbiAgICAgICAgICAgICAgICAud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkVESVQpXG4gICAgICAgICAgICAgICAgLndpdGhQb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMoW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFVEFJTFNdKVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLkZvb3RlckxlZnQpXG4gICAgICAgICAgICAgICAgLndpdGhSb3V0ZXJMaW5rKCcuL2VkaXQnKTtcbiAgICAgICAgICAgIGFjdGlvbi5idXR0b24uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoU3R5bGVMZXZlbEVudW0uU2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGFjdGlvbi5idXR0b24ud2l0aEljb24oJ3BpIHBpLXBlbmNpbCcpO1xuXG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFjdGlvbkRlc2NyaXB0b3JGb3JEZXRhaWxzRGVsZXRlKCk6IEFjdGlvbkRlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5jcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGVsZXRlKCk7XG4gICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGFjdGlvblxuICAgICAgICAgICAgICAgIC53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVMRVRFKVxuICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzKFtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSlcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Gb290ZXJMZWZ0KVxuICAgICAgICAgICAgICAgIC53aXRoUnVuRnVuY3Rpb24oY3R4ID0+XG4gICAgICAgICAgICAgICAgICAgIEFjdGlvbkRhdGFQcm92aWRlclV0aWwucnVuRGVsZXRlT3JGYWlsKGN0eCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eC5wYXJhbWV0ZXJzLnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXJUYWJsZTx1bmtub3duLCB1bmtub3duPik/LnJlbG9hZFRhYmxlPy4oe30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdHgucGFyYW1ldGVycy52aWV3Q29udGFpbmVyIGFzIElWaWV3Q29udGFpbmVyRWRpdG9yPHVua25vd24sIHVua25vd24+KT8uY2xvc2VFZGl0b3I/LigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhMYWJlbCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgYWN0aW9uLmJ1dHRvbi5zdHlsZUNsYXNzLndpdGhTaXplKFN0eWxlU2l6ZUVudW0uTm9ybWFsKTtcblxuICAgICAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRGVsZXRlKGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zIHx8IHRoaXMucm91dGVEYXRhLnRhYmxldmlld0FjdGlvbnMuaGFzRGVsZXRlID8gbmV3IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3IoZGVzY3JpcHRvcikgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVBY3Rpb25EZXNjcmlwdG9yRm9yRXhwb3J0KGRlc2NyaXB0b3I6IE1vZGVsRGVzY3JpcHRvcjxUPiA9IHRoaXMuZGVzY3JpcHRvci5tb2RlbCk6IEFjdGlvbkRlc2NyaXB0b3I8VD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gbmV3IEFjdGlvbkRlc2NyaXB0b3IoZGVzY3JpcHRvciwgJ2V4cG9ydCcpXG4gICAgICAgICAgICAud2l0aFJ1bkZ1bmN0aW9uKGN0eCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBjdHgucGFyYW1ldGVycy5xdWVyeVBhcmFtID8gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlRnJvbUV4aXN0aW5nKGN0eC5wYXJhbWV0ZXJzLnF1ZXJ5UGFyYW0pIDogTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKCk7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbUJ1aWxkZXIud2l0aEl0ZW1zT2Zmc2V0KDApLndpdGhJdGVtc1BlclBhZ2UoNTAwKTtcbiAgICAgICAgICAgICAgICBjdHgucGFyYW1ldGVycy53aXRoUXVlcnlQYXJhbShxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQWN0aW9uRGF0YVByb3ZpZGVyVXRpbC5ydW5HZXRBbGxPckZhaWwoY3R4KS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkocmVzLnBhZ2VEYXRhLCB1bmRlZmluZWQsIDQpXSwge3R5cGU6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTgnfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlTmFtZSA9IGN0eC5pbnN0YW5jZS5hY3Rpb24ubW9kZWw/LnR5cGVOYW1lID8/ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhibG9iLCBgJHt0eXBlTmFtZSA/IHR5cGVOYW1lICsgJ18nIDogJyd9JHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWV9Lmpzb25gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQpO1xuICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhJY29uKCdwaSBwaS11cGxvYWQnKTtcbiAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvclJlZnJlc2goZGVzY3JpcHRvcjogTW9kZWxEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLm1vZGVsKTogQWN0aW9uRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICBjb25zdCBhY3Rpb24gPSBuZXcgQWN0aW9uRGVzY3JpcHRvcjxUPihkZXNjcmlwdG9yLCAncmVmcmVzaCcpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQpXG4gICAgICAgICAgICAud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQUQpXG4gICAgICAgICAgICAud2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgLndpdGhSdW5GdW5jdGlvbigoY3R4OiBBY3Rpb25Db250ZXh0PFQsIFM+KSA9PiB7XG4gICAgICAgICAgICAgICAgKGN0eC5wYXJhbWV0ZXJzLnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXJUYWJsZTxULCBTPik/LnJlbG9hZFRhYmxlPy4oe30pO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBhY3Rpb24uYnV0dG9uLndpdGhJY29uKCdwaSBwaS1yZWZyZXNoJykuc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoU3R5bGVMZXZlbEVudW0uU2Vjb25kYXJ5KTtcbiAgICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQWN0aW9uRGVzY3JpcHRvckZvckRhdGFUcmFuc2xhdGUoZGVzY3JpcHRvcjogTW9kZWxEZXNjcmlwdG9yPFQ+ID0gdGhpcy5kZXNjcmlwdG9yLm1vZGVsKTogQWN0aW9uRGVzY3JpcHRvcjxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yLmlzTG9jYWxpemVkKClcbiAgICAgICAgICAgID8gbmV3IEFjdGlvbkRlc2NyaXB0b3I8VD4oZGVzY3JpcHRvciwgJ3RyYW5zbGF0b3InKS53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJMZWZ0KS53aXRoQ29tcG9uZW50KE1uZ0RhdGFMYW5ndWFnZURyb3Bkb3duQ29tcG9uZW50KVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,53 +1,53 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { MngTableviewComponent } from '../tableview.component';
3
- import { AMngTableviewRouteComponent } from './tableview-route.abstract.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../tableview.component";
6
- export class MngTableviewRouteComponent extends AMngTableviewRouteComponent {
7
- createTableviewDescriptor() {
8
- if (this.descriptorInit) {
9
- return this.descriptorInit;
10
- }
11
- if (this.routeData?.tableview?.descriptor) {
12
- throw Error('Tableview requires a descriptor.');
13
- }
14
- return this.routeData.tableview.descriptor;
15
- }
16
- createTableviewDataProvider() {
17
- if (this.dataProviderInit) {
18
- return this.dataProviderInit;
19
- }
20
- if (this.routeData?.tableview?.dataProvider) {
21
- throw Error('Tableview requires a data provider.');
22
- }
23
- return this.routeData.tableview.dataProvider;
24
- }
25
- createActionDescriptors() {
26
- if (this.actionsInit) {
27
- return this.actionsInit;
28
- }
29
- return this.routeData?.tableview?.actions ?? super.createActionDescriptors();
30
- }
31
- reloadTable() {
32
- this.tableviewComponent?.reloadTable();
33
- }
34
- }
35
- MngTableviewRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableviewRouteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
36
- MngTableviewRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableviewRouteComponent, selector: "mng-tableview-route", inputs: { descriptorInit: ["descriptor", "descriptorInit"], dataProviderInit: ["dataProvider", "dataProviderInit"], actionsInit: ["actions", "actionsInit"] }, viewQueries: [{ propertyName: "tableviewComponent", first: true, predicate: MngTableviewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"grid\">\n <div class=\"col-12\">\n <mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"> </mng-tableview>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1.MngTableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }] });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableviewRouteComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'mng-tableview-route', template: "<div class=\"grid\">\n <div class=\"col-12\">\n <mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"> </mng-tableview>\n </div>\n</div>\n" }]
40
- }], propDecorators: { descriptorInit: [{
41
- type: Input,
42
- args: ['descriptor']
43
- }], dataProviderInit: [{
44
- type: Input,
45
- args: ['dataProvider']
46
- }], actionsInit: [{
47
- type: Input,
48
- args: ['actions']
49
- }], tableviewComponent: [{
50
- type: ViewChild,
51
- args: [MngTableviewComponent]
52
- }] } });
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { MngTableviewComponent } from '../tableview.component';
3
+ import { AMngTableviewRouteComponent } from './tableview-route.abstract.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../tableview.component";
6
+ export class MngTableviewRouteComponent extends AMngTableviewRouteComponent {
7
+ createTableviewDescriptor() {
8
+ if (this.descriptorInit) {
9
+ return this.descriptorInit;
10
+ }
11
+ if (this.routeData?.tableview?.descriptor) {
12
+ throw Error('Tableview requires a descriptor.');
13
+ }
14
+ return this.routeData.tableview.descriptor;
15
+ }
16
+ createTableviewDataProvider() {
17
+ if (this.dataProviderInit) {
18
+ return this.dataProviderInit;
19
+ }
20
+ if (this.routeData?.tableview?.dataProvider) {
21
+ throw Error('Tableview requires a data provider.');
22
+ }
23
+ return this.routeData.tableview.dataProvider;
24
+ }
25
+ createActionDescriptors() {
26
+ if (this.actionsInit) {
27
+ return this.actionsInit;
28
+ }
29
+ return this.routeData?.tableview?.actions ?? super.createActionDescriptors();
30
+ }
31
+ reloadTable() {
32
+ this.tableviewComponent?.reloadTable();
33
+ }
34
+ }
35
+ MngTableviewRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableviewRouteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
36
+ MngTableviewRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MngTableviewRouteComponent, selector: "mng-tableview-route", inputs: { descriptorInit: ["descriptor", "descriptorInit"], dataProviderInit: ["dataProvider", "dataProviderInit"], actionsInit: ["actions", "actionsInit"] }, viewQueries: [{ propertyName: "tableviewComponent", first: true, predicate: MngTableviewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"grid\">\n <div class=\"col-12\">\n <mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"> </mng-tableview>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1.MngTableviewComponent, selector: "mng-tableview", inputs: ["descriptor", "dataProvider", "actions"] }] });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MngTableviewRouteComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'mng-tableview-route', template: "<div class=\"grid\">\n <div class=\"col-12\">\n <mng-tableview [descriptor]=\"descriptor\" [dataProvider]=\"dataProvider\" [actions]=\"actions\"> </mng-tableview>\n </div>\n</div>\n" }]
40
+ }], propDecorators: { descriptorInit: [{
41
+ type: Input,
42
+ args: ['descriptor']
43
+ }], dataProviderInit: [{
44
+ type: Input,
45
+ args: ['dataProvider']
46
+ }], actionsInit: [{
47
+ type: Input,
48
+ args: ['actions']
49
+ }], tableviewComponent: [{
50
+ type: ViewChild,
51
+ args: [MngTableviewComponent]
52
+ }] } });
53
53
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvcm91dGUvdGFibGV2aWV3LXJvdXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3RlbXBsYXRlcy90YWJsZXZpZXctcm91dGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSWxFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDOzs7QUFNakYsTUFBTSxPQUFPLDBCQUFpQyxTQUFRLDJCQUFpQztJQU96RSx5QkFBeUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM5QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFO1lBQ3ZDLE1BQU0sS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBVSxDQUFDLFVBQVUsQ0FBQztJQUNoRCxDQUFDO0lBRVMsMkJBQTJCO1FBQ2pDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUU7WUFDekMsTUFBTSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN0RDtRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFVLENBQUMsWUFBWSxDQUFDO0lBQ2xELENBQUM7SUFFa0IsdUJBQXVCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDM0I7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzt1SEFwQ1EsMEJBQTBCOzJHQUExQiwwQkFBMEIsOFFBS3hCLHFCQUFxQix1RUNoQnBDLG9NQUtBOzJGRE1hLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDSSxxQkFBcUI7OEJBSUgsY0FBYztzQkFBekMsS0FBSzt1QkFBQyxZQUFZO2dCQUNXLGdCQUFnQjtzQkFBN0MsS0FBSzt1QkFBQyxjQUFjO2dCQUNJLFdBQVc7c0JBQW5DLEtBQUs7dUJBQUMsU0FBUztnQkFFeUIsa0JBQWtCO3NCQUExRCxTQUFTO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0lUYWJsZXZpZXdEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgVGFibGV2aWV3RGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtNbmdUYWJsZXZpZXdDb21wb25lbnR9IGZyb20gJy4uL3RhYmxldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnR9IGZyb20gJy4vdGFibGV2aWV3LXJvdXRlLmFic3RyYWN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxldmlldy1yb3V0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuLi8uLi8uLi8uLi8uLi90ZW1wbGF0ZXMvdGFibGV2aWV3LXJvdXRlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxULCBTPiBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxULCBTPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdkZXNjcmlwdG9yJykgcHVibGljIGRlc2NyaXB0b3JJbml0PzogVGFibGV2aWV3RGVzY3JpcHRvcjxUPjtcbiAgICBASW5wdXQoJ2RhdGFQcm92aWRlcicpIHB1YmxpYyBkYXRhUHJvdmlkZXJJbml0PzogSVRhYmxldmlld0RhdGFQcm92aWRlcjxULCBTPjtcbiAgICBASW5wdXQoJ2FjdGlvbnMnKSBwdWJsaWMgYWN0aW9uc0luaXQ/OiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PjtcblxuICAgIEBWaWV3Q2hpbGQoTW5nVGFibGV2aWV3Q29tcG9uZW50KSBwdWJsaWMgdGFibGV2aWV3Q29tcG9uZW50PzogTW5nVGFibGV2aWV3Q29tcG9uZW50PFQsIFM+O1xuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVRhYmxldmlld0Rlc2NyaXB0b3IoKTogVGFibGV2aWV3RGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3JJbml0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9ySW5pdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yb3V0ZURhdGE/LnRhYmxldmlldz8uZGVzY3JpcHRvcikge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1RhYmxldmlldyByZXF1aXJlcyBhIGRlc2NyaXB0b3IuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVEYXRhLnRhYmxldmlldyEuZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlVGFibGV2aWV3RGF0YVByb3ZpZGVyKCk6IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8VCwgUz4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhUHJvdmlkZXJJbml0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhUHJvdmlkZXJJbml0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJvdXRlRGF0YT8udGFibGV2aWV3Py5kYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdUYWJsZXZpZXcgcmVxdWlyZXMgYSBkYXRhIHByb3ZpZGVyLicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlRGF0YS50YWJsZXZpZXchLmRhdGFQcm92aWRlcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlQWN0aW9uRGVzY3JpcHRvcnMoKTogQXJyYXk8QWN0aW9uRGVzY3JpcHRvcjxUPj4ge1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25zSW5pdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uc0luaXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVEYXRhPy50YWJsZXZpZXc/LmFjdGlvbnMgPz8gc3VwZXIuY3JlYXRlQWN0aW9uRGVzY3JpcHRvcnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkVGFibGUoKSB7XG4gICAgICAgIHRoaXMudGFibGV2aWV3Q29tcG9uZW50Py5yZWxvYWRUYWJsZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncmlkXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICA8bW5nLXRhYmxldmlldyBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yXCIgW2RhdGFQcm92aWRlcl09XCJkYXRhUHJvdmlkZXJcIiBbYWN0aW9uc109XCJhY3Rpb25zXCI+IDwvbW5nLXRhYmxldmlldz5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19