@mediusinc/mng-commons 0.2.0 → 0.2.1-rc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/.browserslistrc +16 -0
  2. package/karma.conf.js +51 -0
  3. package/ng-package.json +14 -0
  4. package/package.json +3 -24
  5. package/src/lib/api/models/builders/query-param.builder.ts +54 -0
  6. package/src/lib/api/models/filter-match-type.model.ts +25 -0
  7. package/src/lib/api/models/filter-param.model.ts +59 -0
  8. package/{lib/api/models/index.d.ts → src/lib/api/models/index.ts} +10 -8
  9. package/src/lib/api/models/mappers.ts +18 -0
  10. package/{lib/api/models/filter-match-type.model.d.ts → src/lib/api/models/query-mode.model.ts} +18 -23
  11. package/src/lib/api/models/query-param.model.ts +99 -0
  12. package/src/lib/api/models/query-result.model.ts +77 -0
  13. package/{lib/api/models/serialization.model.d.ts → src/lib/api/models/serialization.model.ts} +9 -8
  14. package/src/lib/api/services/crud-api.abstract.service.ts +113 -0
  15. package/{lib/api/services/index.d.ts → src/lib/api/services/index.ts} +1 -1
  16. package/{lib/api/utils/index.d.ts → src/lib/api/utils/index.ts} +2 -2
  17. package/src/lib/api/utils/medius-rest.util.ts +146 -0
  18. package/src/lib/api/utils/object-serializer.util.ts +227 -0
  19. package/src/lib/components/action/action.component.html +30 -0
  20. package/src/lib/components/action/action.component.ts +77 -0
  21. package/src/lib/components/action/dialog/action-dialog.component.html +26 -0
  22. package/src/lib/components/action/dialog/action-dialog.component.ts +171 -0
  23. package/{lib/components/action/index.d.ts → src/lib/components/action/index.ts} +3 -3
  24. package/{lib/components/action/models/action-confirmation-service.model.d.ts → src/lib/components/action/models/action-confirmation-service.model.ts} +7 -6
  25. package/src/lib/components/action/models/action-execution.model.ts +81 -0
  26. package/{lib/components/action/models/index.d.ts → src/lib/components/action/models/index.ts} +2 -2
  27. package/src/lib/components/action/route/action-route.component.html +1 -0
  28. package/src/lib/components/action/route/action-route.component.ts +159 -0
  29. package/src/lib/components/form/autocomplete/autocomplete.component.html +16 -0
  30. package/src/lib/components/form/autocomplete/autocomplete.component.ts +113 -0
  31. package/src/lib/components/form/dropdown/dropdown.component.html +29 -0
  32. package/src/lib/components/form/dropdown/dropdown.component.ts +109 -0
  33. package/src/lib/components/form/editor/form-editor.component.html +5 -0
  34. package/src/lib/components/form/editor/form-editor.component.ts +149 -0
  35. package/src/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.html +7 -0
  36. package/src/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.ts +21 -0
  37. package/src/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.html +9 -0
  38. package/src/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.ts +22 -0
  39. package/src/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.html +8 -0
  40. package/src/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.ts +10 -0
  41. package/src/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.html +56 -0
  42. package/src/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.ts +22 -0
  43. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.html +13 -0
  44. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.scss +4 -0
  45. package/src/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.ts +114 -0
  46. package/src/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.html +37 -0
  47. package/src/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.ts +133 -0
  48. package/src/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.html +10 -0
  49. package/src/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.ts +10 -0
  50. package/{lib/components/form/formly/fields/index.d.ts → src/lib/components/form/formly/fields/index.ts} +7 -7
  51. package/src/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.html +7 -0
  52. package/src/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.ts +13 -0
  53. package/src/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.html +6 -0
  54. package/src/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.ts +13 -0
  55. package/{lib/components/form/formly/wrappers/index.d.ts → src/lib/components/form/formly/wrappers/index.ts} +2 -2
  56. package/{lib/components/form/index.d.ts → src/lib/components/form/index.ts} +3 -3
  57. package/src/lib/components/form/models/form-editor.event.ts +7 -0
  58. package/{lib/components/form/models/index.d.ts → src/lib/components/form/models/index.ts} +1 -1
  59. package/src/lib/components/layout/breadcrumb.component.html +5 -0
  60. package/src/lib/components/layout/breadcrumb.component.ts +12 -0
  61. package/src/lib/components/layout/footer.component.html +7 -0
  62. package/src/lib/components/layout/footer.component.ts +15 -0
  63. package/{lib/components/layout/index.d.ts → src/lib/components/layout/index.ts} +6 -6
  64. package/src/lib/components/layout/main-layout.component.html +26 -0
  65. package/src/lib/components/layout/main-layout.component.ts +54 -0
  66. package/src/lib/components/layout/menu-item.component.html +41 -0
  67. package/src/lib/components/layout/menu-item.component.ts +170 -0
  68. package/src/lib/components/layout/menu.component.html +27 -0
  69. package/src/lib/components/layout/menu.component.ts +17 -0
  70. package/{lib/components/layout/services/index.d.ts → src/lib/components/layout/services/index.ts} +1 -1
  71. package/src/lib/components/layout/services/main-layout.component.service.ts +231 -0
  72. package/src/lib/components/layout/topbar.component.html +38 -0
  73. package/src/lib/components/layout/topbar.component.ts +62 -0
  74. package/{lib/components/tableview/index.d.ts → src/lib/components/tableview/index.ts} +5 -5
  75. package/{lib/components/tableview/models/index.d.ts → src/lib/components/tableview/models/index.ts} +1 -1
  76. package/src/lib/components/tableview/models/table.event.ts +22 -0
  77. package/src/lib/components/tableview/route/tableview-route.abstract.component.ts +31 -0
  78. package/{lib/components/tableview/services/index.d.ts → src/lib/components/tableview/services/index.ts} +1 -1
  79. package/src/lib/components/tableview/services/tableview.component.service.ts +22 -0
  80. package/src/lib/components/tableview/table/column-filter/column-filter.component.html +36 -0
  81. package/src/lib/components/tableview/table/column-filter/column-filter.component.ts +70 -0
  82. package/src/lib/components/tableview/table/column-value/column-value.component.html +14 -0
  83. package/src/lib/components/tableview/table/column-value/column-value.component.ts +19 -0
  84. package/src/lib/components/tableview/table/table.component.html +110 -0
  85. package/src/lib/components/tableview/table/table.component.ts +327 -0
  86. package/src/lib/components/tableview/tableview.component.html +37 -0
  87. package/src/lib/components/tableview/tableview.component.ts +78 -0
  88. package/src/lib/config/formly.config.ts +154 -0
  89. package/{lib/config/index.d.ts → src/lib/config/index.ts} +1 -1
  90. package/{lib/config/models/index.d.ts → src/lib/config/models/index.ts} +1 -1
  91. package/{lib/config/models/mng-config.model.d.ts → src/lib/config/models/mng-config.model.ts} +35 -34
  92. package/src/lib/data-providers/base.data-provider.ts +42 -0
  93. package/src/lib/data-providers/editor.data-provider.ts +60 -0
  94. package/{lib/data-providers/index.d.ts → src/lib/data-providers/index.ts} +5 -5
  95. package/src/lib/data-providers/lookup.data-provider.ts +29 -0
  96. package/{lib/data-providers/table.data-provider.d.ts → src/lib/data-providers/table.data-provider.ts} +8 -6
  97. package/src/lib/data-providers/tableview.data-provider.ts +29 -0
  98. package/src/lib/descriptors/action.descriptor.ts +439 -0
  99. package/src/lib/descriptors/editor.descriptor.ts +880 -0
  100. package/src/lib/descriptors/field.validator.ts +35 -0
  101. package/{lib/descriptors/index.d.ts → src/lib/descriptors/index.ts} +7 -7
  102. package/{lib/descriptors/lookup.descriptor.d.ts → src/lib/descriptors/lookup.descriptor.ts} +20 -17
  103. package/src/lib/descriptors/model.descriptor.ts +47 -0
  104. package/src/lib/descriptors/table.descriptor.ts +514 -0
  105. package/src/lib/descriptors/tableview.descriptor.ts +180 -0
  106. package/src/lib/directives/component.directive.ts +18 -0
  107. package/{lib/directives/index.d.ts → src/lib/directives/index.ts} +2 -2
  108. package/src/lib/directives/template.directive.ts +24 -0
  109. package/src/lib/mng-commons.module.ts +240 -0
  110. package/{lib/models/index.d.ts → src/lib/models/index.ts} +2 -2
  111. package/src/lib/models/router.model.ts +16 -0
  112. package/{lib/models/user.model.d.ts → src/lib/models/user.model.ts} +9 -8
  113. package/src/lib/pipes/boolean.pipe.ts +17 -0
  114. package/{lib/pipes/index.d.ts → src/lib/pipes/index.ts} +2 -2
  115. package/src/lib/pipes/property-path.pipe.ts +30 -0
  116. package/src/lib/services/action.service.ts +310 -0
  117. package/src/lib/services/commons.service.ts +407 -0
  118. package/src/lib/services/configuration.service.ts +98 -0
  119. package/{lib/services/index.d.ts → src/lib/services/index.ts} +4 -4
  120. package/src/lib/services/navigation.service.ts +42 -0
  121. package/src/lib/services/providers/commons-init.provider.ts +5 -0
  122. package/src/lib/services/providers/config-service.provider.ts +22 -0
  123. package/src/lib/services/providers/formly-config.provider.ts +39 -0
  124. package/{lib/services/providers/index.d.ts → src/lib/services/providers/index.ts} +3 -3
  125. package/src/lib/services/tokens/browser-storage.token.ts +9 -0
  126. package/{lib/services/tokens/index.d.ts → src/lib/services/tokens/index.ts} +2 -2
  127. package/src/lib/services/tokens/module-config.token.ts +5 -0
  128. package/{lib/types/index.d.ts → src/lib/types/index.ts} +2 -2
  129. package/src/lib/types/type.decorator.ts +7 -0
  130. package/src/lib/types/type.model.ts +12 -0
  131. package/src/lib/utils/editor-formly.util.ts +193 -0
  132. package/src/lib/utils/i18n.util.ts +148 -0
  133. package/{lib/utils/index.d.ts → src/lib/utils/index.ts} +5 -5
  134. package/src/lib/utils/model.util.ts +66 -0
  135. package/src/lib/utils/toast.util.ts +49 -0
  136. package/src/lib/utils/type.util.ts +44 -0
  137. package/{public-api.d.ts → src/public-api.ts} +42 -25
  138. package/src/test.ts +26 -0
  139. package/tsconfig.lib.json +15 -0
  140. package/tsconfig.lib.prod.json +10 -0
  141. package/tsconfig.spec.json +17 -0
  142. package/esm2020/lib/api/models/builders/query-param.builder.mjs +0 -48
  143. package/esm2020/lib/api/models/filter-match-type.model.mjs +0 -26
  144. package/esm2020/lib/api/models/filter-param.model.mjs +0 -46
  145. package/esm2020/lib/api/models/index.mjs +0 -9
  146. package/esm2020/lib/api/models/mappers.mjs +0 -17
  147. package/esm2020/lib/api/models/query-mode.model.mjs +0 -19
  148. package/esm2020/lib/api/models/query-param.model.mjs +0 -69
  149. package/esm2020/lib/api/models/query-result.model.mjs +0 -45
  150. package/esm2020/lib/api/models/serialization.model.mjs +0 -2
  151. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +0 -72
  152. package/esm2020/lib/api/services/index.mjs +0 -2
  153. package/esm2020/lib/api/utils/index.mjs +0 -3
  154. package/esm2020/lib/api/utils/medius-rest.util.mjs +0 -122
  155. package/esm2020/lib/api/utils/object-serializer.util.mjs +0 -226
  156. package/esm2020/lib/components/action/action.component.mjs +0 -65
  157. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +0 -148
  158. package/esm2020/lib/components/action/index.mjs +0 -4
  159. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +0 -2
  160. package/esm2020/lib/components/action/models/action-execution.model.mjs +0 -58
  161. package/esm2020/lib/components/action/models/index.mjs +0 -3
  162. package/esm2020/lib/components/action/route/action-route.component.mjs +0 -144
  163. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +0 -114
  164. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +0 -113
  165. package/esm2020/lib/components/form/editor/form-editor.component.mjs +0 -141
  166. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +0 -19
  167. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +0 -19
  168. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +0 -16
  169. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +0 -26
  170. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +0 -109
  171. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +0 -122
  172. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -17
  173. package/esm2020/lib/components/form/formly/fields/index.mjs +0 -8
  174. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +0 -17
  175. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +0 -16
  176. package/esm2020/lib/components/form/formly/wrappers/index.mjs +0 -3
  177. package/esm2020/lib/components/form/index.mjs +0 -4
  178. package/esm2020/lib/components/form/models/form-editor.event.mjs +0 -7
  179. package/esm2020/lib/components/form/models/index.mjs +0 -2
  180. package/esm2020/lib/components/layout/breadcrumb.component.mjs +0 -17
  181. package/esm2020/lib/components/layout/footer.component.mjs +0 -17
  182. package/esm2020/lib/components/layout/index.mjs +0 -7
  183. package/esm2020/lib/components/layout/main-layout.component.mjs +0 -54
  184. package/esm2020/lib/components/layout/menu-item.component.mjs +0 -173
  185. package/esm2020/lib/components/layout/menu.component.mjs +0 -20
  186. package/esm2020/lib/components/layout/services/index.mjs +0 -2
  187. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +0 -190
  188. package/esm2020/lib/components/layout/topbar.component.mjs +0 -59
  189. package/esm2020/lib/components/tableview/index.mjs +0 -6
  190. package/esm2020/lib/components/tableview/models/index.mjs +0 -2
  191. package/esm2020/lib/components/tableview/models/table.event.mjs +0 -16
  192. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +0 -24
  193. package/esm2020/lib/components/tableview/services/index.mjs +0 -2
  194. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +0 -17
  195. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +0 -74
  196. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +0 -25
  197. package/esm2020/lib/components/tableview/table/table.component.mjs +0 -307
  198. package/esm2020/lib/components/tableview/tableview.component.mjs +0 -82
  199. package/esm2020/lib/config/formly.config.mjs +0 -136
  200. package/esm2020/lib/config/index.mjs +0 -2
  201. package/esm2020/lib/config/models/index.mjs +0 -2
  202. package/esm2020/lib/config/models/mng-config.model.mjs +0 -2
  203. package/esm2020/lib/data-providers/base.data-provider.mjs +0 -24
  204. package/esm2020/lib/data-providers/editor.data-provider.mjs +0 -37
  205. package/esm2020/lib/data-providers/index.mjs +0 -6
  206. package/esm2020/lib/data-providers/lookup.data-provider.mjs +0 -16
  207. package/esm2020/lib/data-providers/table.data-provider.mjs +0 -2
  208. package/esm2020/lib/data-providers/tableview.data-provider.mjs +0 -17
  209. package/esm2020/lib/descriptors/action.descriptor.mjs +0 -332
  210. package/esm2020/lib/descriptors/editor.descriptor.mjs +0 -670
  211. package/esm2020/lib/descriptors/field.validator.mjs +0 -21
  212. package/esm2020/lib/descriptors/index.mjs +0 -8
  213. package/esm2020/lib/descriptors/lookup.descriptor.mjs +0 -2
  214. package/esm2020/lib/descriptors/model.descriptor.mjs +0 -34
  215. package/esm2020/lib/descriptors/table.descriptor.mjs +0 -401
  216. package/esm2020/lib/descriptors/tableview.descriptor.mjs +0 -131
  217. package/esm2020/lib/directives/component.directive.mjs +0 -23
  218. package/esm2020/lib/directives/index.mjs +0 -3
  219. package/esm2020/lib/directives/template.directive.mjs +0 -29
  220. package/esm2020/lib/mng-commons.module.mjs +0 -410
  221. package/esm2020/lib/models/index.mjs +0 -3
  222. package/esm2020/lib/models/router.model.mjs +0 -2
  223. package/esm2020/lib/models/user.model.mjs +0 -2
  224. package/esm2020/lib/pipes/boolean.pipe.mjs +0 -22
  225. package/esm2020/lib/pipes/index.mjs +0 -3
  226. package/esm2020/lib/pipes/property-path.pipe.mjs +0 -36
  227. package/esm2020/lib/services/action.service.mjs +0 -269
  228. package/esm2020/lib/services/commons.service.mjs +0 -353
  229. package/esm2020/lib/services/configuration.service.mjs +0 -78
  230. package/esm2020/lib/services/index.mjs +0 -5
  231. package/esm2020/lib/services/navigation.service.mjs +0 -48
  232. package/esm2020/lib/services/providers/commons-init.provider.mjs +0 -4
  233. package/esm2020/lib/services/providers/config-service.provider.mjs +0 -20
  234. package/esm2020/lib/services/providers/formly-config.provider.mjs +0 -31
  235. package/esm2020/lib/services/providers/index.mjs +0 -4
  236. package/esm2020/lib/services/tokens/browser-storage.token.mjs +0 -6
  237. package/esm2020/lib/services/tokens/index.mjs +0 -3
  238. package/esm2020/lib/services/tokens/module-config.token.mjs +0 -3
  239. package/esm2020/lib/types/index.mjs +0 -3
  240. package/esm2020/lib/types/type.decorator.mjs +0 -7
  241. package/esm2020/lib/types/type.model.mjs +0 -2
  242. package/esm2020/lib/utils/editor-formly.util.mjs +0 -176
  243. package/esm2020/lib/utils/i18n.util.mjs +0 -125
  244. package/esm2020/lib/utils/index.mjs +0 -6
  245. package/esm2020/lib/utils/model.util.mjs +0 -57
  246. package/esm2020/lib/utils/toast.util.mjs +0 -39
  247. package/esm2020/lib/utils/type.util.mjs +0 -39
  248. package/esm2020/mediusinc-mng-commons.mjs +0 -5
  249. package/esm2020/public-api.mjs +0 -36
  250. package/fesm2015/mediusinc-mng-commons.mjs +0 -6250
  251. package/fesm2015/mediusinc-mng-commons.mjs.map +0 -1
  252. package/fesm2020/mediusinc-mng-commons.mjs +0 -6176
  253. package/fesm2020/mediusinc-mng-commons.mjs.map +0 -1
  254. package/lib/api/models/builders/query-param.builder.d.ts +0 -11
  255. package/lib/api/models/filter-param.model.d.ts +0 -23
  256. package/lib/api/models/mappers.d.ts +0 -6
  257. package/lib/api/models/query-mode.model.d.ts +0 -16
  258. package/lib/api/models/query-param.model.d.ts +0 -31
  259. package/lib/api/models/query-result.model.d.ts +0 -36
  260. package/lib/api/services/crud-api.abstract.service.d.ts +0 -23
  261. package/lib/api/utils/medius-rest.util.d.ts +0 -12
  262. package/lib/api/utils/object-serializer.util.d.ts +0 -30
  263. package/lib/components/action/action.component.d.ts +0 -36
  264. package/lib/components/action/dialog/action-dialog.component.d.ts +0 -46
  265. package/lib/components/action/models/action-execution.model.d.ts +0 -53
  266. package/lib/components/action/route/action-route.component.d.ts +0 -32
  267. package/lib/components/form/autocomplete/autocomplete.component.d.ts +0 -36
  268. package/lib/components/form/dropdown/dropdown.component.d.ts +0 -34
  269. package/lib/components/form/editor/form-editor.component.d.ts +0 -39
  270. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +0 -11
  271. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +0 -11
  272. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +0 -6
  273. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +0 -12
  274. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +0 -17
  275. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +0 -36
  276. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +0 -6
  277. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +0 -8
  278. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +0 -8
  279. package/lib/components/form/models/form-editor.event.d.ts +0 -5
  280. package/lib/components/layout/breadcrumb.component.d.ts +0 -8
  281. package/lib/components/layout/footer.component.d.ts +0 -9
  282. package/lib/components/layout/main-layout.component.d.ts +0 -21
  283. package/lib/components/layout/menu-item.component.d.ts +0 -29
  284. package/lib/components/layout/menu.component.d.ts +0 -10
  285. package/lib/components/layout/services/main-layout.component.service.d.ts +0 -65
  286. package/lib/components/layout/topbar.component.d.ts +0 -25
  287. package/lib/components/tableview/models/table.event.d.ts +0 -17
  288. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +0 -14
  289. package/lib/components/tableview/services/tableview.component.service.d.ts +0 -13
  290. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +0 -22
  291. package/lib/components/tableview/table/column-value/column-value.component.d.ts +0 -12
  292. package/lib/components/tableview/table/table.component.d.ts +0 -79
  293. package/lib/components/tableview/tableview.component.d.ts +0 -35
  294. package/lib/config/formly.config.d.ts +0 -14
  295. package/lib/data-providers/base.data-provider.d.ts +0 -17
  296. package/lib/data-providers/editor.data-provider.d.ts +0 -25
  297. package/lib/data-providers/lookup.data-provider.d.ts +0 -14
  298. package/lib/data-providers/tableview.data-provider.d.ts +0 -15
  299. package/lib/descriptors/action.descriptor.d.ts +0 -148
  300. package/lib/descriptors/editor.descriptor.d.ts +0 -255
  301. package/lib/descriptors/field.validator.d.ts +0 -18
  302. package/lib/descriptors/model.descriptor.d.ts +0 -15
  303. package/lib/descriptors/table.descriptor.d.ts +0 -164
  304. package/lib/descriptors/tableview.descriptor.d.ts +0 -39
  305. package/lib/directives/component.directive.d.ts +0 -11
  306. package/lib/directives/template.directive.d.ts +0 -13
  307. package/lib/mng-commons.module.d.ts +0 -79
  308. package/lib/models/router.model.d.ts +0 -14
  309. package/lib/pipes/boolean.pipe.d.ts +0 -7
  310. package/lib/pipes/property-path.pipe.d.ts +0 -7
  311. package/lib/services/action.service.d.ts +0 -92
  312. package/lib/services/commons.service.d.ts +0 -72
  313. package/lib/services/configuration.service.d.ts +0 -35
  314. package/lib/services/navigation.service.d.ts +0 -14
  315. package/lib/services/providers/commons-init.provider.d.ts +0 -2
  316. package/lib/services/providers/config-service.provider.d.ts +0 -5
  317. package/lib/services/providers/formly-config.provider.d.ts +0 -4
  318. package/lib/services/tokens/browser-storage.token.d.ts +0 -2
  319. package/lib/services/tokens/module-config.token.d.ts +0 -3
  320. package/lib/types/type.decorator.d.ts +0 -2
  321. package/lib/types/type.model.d.ts +0 -10
  322. package/lib/utils/editor-formly.util.d.ts +0 -9
  323. package/lib/utils/i18n.util.d.ts +0 -18
  324. package/lib/utils/model.util.d.ts +0 -7
  325. package/lib/utils/toast.util.d.ts +0 -13
  326. package/lib/utils/type.util.d.ts +0 -15
  327. package/mediusinc-mng-commons-0.2.0.tgz +0 -0
  328. package/mediusinc-mng-commons.d.ts +0 -5
@@ -1,6 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const MNG_BROWSER_STORAGE_IT = new InjectionToken('Browser storage', {
3
- providedIn: 'root',
4
- factory: () => localStorage
5
- });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1zdG9yYWdlLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy90b2tlbnMvYnJvd3Nlci1zdG9yYWdlLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3BELGlCQUFpQixFQUNqQjtJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZO0NBQzlCLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgTU5HX0JST1dTRVJfU1RPUkFHRV9JVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTdG9yYWdlPihcbiAgICAnQnJvd3NlciBzdG9yYWdlJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gbG9jYWxTdG9yYWdlXG4gICAgfVxuKTtcbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './browser-storage.token';
2
- export * from './module-config.token';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3Rva2Vucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jyb3dzZXItc3RvcmFnZS50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZS1jb25maWcudG9rZW4nO1xuIl19
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const MNG_MODULE_CONFIG_IT = new InjectionToken('MngModuleConfig');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWNvbmZpZy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvc2VydmljZXMvdG9rZW5zL21vZHVsZS1jb25maWcudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUk3QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsaUJBQWlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge01uZ01vZHVsZUNvbmZpZ30gZnJvbSAnLi4vLi4vY29uZmlnL21vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBNTkdfTU9EVUxFX0NPTkZJR19JVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNbmdNb2R1bGVDb25maWc+KCdNbmdNb2R1bGVDb25maWcnKTtcbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './type.decorator';
2
- export * from './type.model';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3R5cGUuZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZS5tb2RlbCc7XG4iXX0=
@@ -1,7 +0,0 @@
1
- export const typeNameDecoratorPropertyName = 'typeName';
2
- export function TypeName(typeName) {
3
- return function (target) {
4
- target[typeNameDecoratorPropertyName] = typeName;
5
- };
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3R5cGVzL3R5cGUuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLFVBQVUsQ0FBQztBQUV4RCxNQUFNLFVBQVUsUUFBUSxDQUFDLFFBQWdCO0lBQ3JDLE9BQU8sVUFBUyxNQUFXO1FBQ3ZCLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNyRCxDQUFDLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHR5cGVOYW1lRGVjb3JhdG9yUHJvcGVydHlOYW1lID0gJ3R5cGVOYW1lJztcblxuZXhwb3J0IGZ1bmN0aW9uIFR5cGVOYW1lKHR5cGVOYW1lOiBzdHJpbmcpOiBDbGFzc0RlY29yYXRvciB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldDogYW55KSB7XG4gICAgICAgIHRhcmdldFt0eXBlTmFtZURlY29yYXRvclByb3BlcnR5TmFtZV0gPSB0eXBlTmFtZTtcbiAgICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvdHlwZXMvdHlwZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDbGFzc1R5cGU8VD4gZXh0ZW5kcyBGdW5jdGlvbiB7XG4gICAgbmV3KC4uLmFyZ3M6IGFueVtdKTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnVtVHlwZSB7XG4gICAgW2tleTogbnVtYmVyXTogRW51bU1lbWJlclR5cGU7XG59XG5leHBvcnQgdHlwZSBFbnVtTWVtYmVyVHlwZSA9IHN0cmluZ3xudW1iZXI7XG5cbmV4cG9ydCB0eXBlIElkVHlwZSA9IG51bWJlcnxzdHJpbmc7XG5leHBvcnQgdHlwZSBQcmltaXRpdmVUeXBlID0gc3RyaW5nfGJvb2xlYW58bnVtYmVyO1xuZXhwb3J0IHR5cGUgUHJvcGVydHlUeXBlID0gUHJpbWl0aXZlVHlwZXxEYXRlfEVudW1UeXBlO1xuIl19
@@ -1,176 +0,0 @@
1
- import { FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldInputDescriptor } from '../descriptors';
2
- export class EditorFormlyUtil {
3
- static createFormlyConfigFromDescriptor(descriptor) {
4
- const fields = [];
5
- if (descriptor.tabs.length === 1 && descriptor.tabs[0].default) {
6
- // dont use tabs
7
- fields.push(...EditorFormlyUtil.createFormlyGroupType(descriptor.tabs[0].fields));
8
- }
9
- else {
10
- fields.push(...EditorFormlyUtil.createFormlyTabType(descriptor.tabs));
11
- }
12
- return fields;
13
- }
14
- static createFormlyTabType(tabGroups) {
15
- const tabsField = {
16
- type: 'tabs',
17
- fieldGroup: []
18
- };
19
- for (const tab of tabGroups) {
20
- const tabField = {
21
- id: tab.name,
22
- templateOptions: {},
23
- fieldGroup: []
24
- };
25
- if (tab.title) {
26
- // @ts-ignore
27
- tabField.templateOptions.label = tab.title;
28
- }
29
- // @ts-ignore
30
- tabField.fieldGroup.push(...EditorFormlyUtil.createFormlyGroupType(tab.fields));
31
- // @ts-ignore
32
- tabsField.fieldGroup.push(tabField);
33
- }
34
- return [tabsField];
35
- }
36
- static createFormlyGroupType(groups) {
37
- if (groups.length === 1 && groups[0].default) {
38
- // dont use fieldset, just create fields
39
- return EditorFormlyUtil.createFormlyFields(groups[0]);
40
- }
41
- else {
42
- const groupsField = {
43
- type: 'fieldset',
44
- fieldGroup: []
45
- };
46
- for (const group of groups) {
47
- const groupField = {
48
- id: group.name,
49
- templateOptions: {
50
- descriptor: group
51
- },
52
- fieldGroup: []
53
- };
54
- if (group.title) {
55
- // @ts-ignore
56
- groupField.templateOptions.label = group.title;
57
- }
58
- // @ts-ignore
59
- groupField.fieldGroup.push(...EditorFormlyUtil.createFormlyFields(group));
60
- // @ts-ignore
61
- groupsField.fieldGroup.push(groupField);
62
- }
63
- return [groupsField];
64
- }
65
- }
66
- static createFormlyFields(descriptor) {
67
- const fields = [];
68
- for (const descriptorField of descriptor.fields) {
69
- fields.push(EditorFormlyUtil.createFormlyField(descriptorField));
70
- }
71
- // wrap in group to be able to use flex grid
72
- const wrapperGroup = {
73
- fieldGroupClassName: 'p-fluid formgrid grid',
74
- fieldGroup: fields,
75
- validators: {}
76
- };
77
- for (const validator of descriptor.validators) {
78
- // @ts-ignore
79
- wrapperGroup.validators[validator.name] = { expression: validator.expression, message: validator.message };
80
- }
81
- return [wrapperGroup];
82
- }
83
- static createFormlyField(descriptor) {
84
- const field = {
85
- key: descriptor.property,
86
- expressionProperties: {},
87
- templateOptions: {},
88
- validators: {}
89
- };
90
- let className = descriptor.className;
91
- if (!className) {
92
- // assign default field width through entire row
93
- className = 'col-12';
94
- }
95
- if (className.indexOf('col-') < 0) {
96
- // class was provided, but does not contain col- definition
97
- className = `col-12 ${descriptor.className}`;
98
- }
99
- field.className = className;
100
- // @ts-ignore
101
- field.templateOptions.descriptor = descriptor;
102
- if (descriptor instanceof FieldInputDescriptor) {
103
- switch (descriptor.fieldType) {
104
- case FieldInputDescriptor.TypeEnum.Textarea:
105
- field.type = 'textarea';
106
- break;
107
- case FieldInputDescriptor.TypeEnum.Number:
108
- field.type = 'number';
109
- // @ts-ignore
110
- field.templateOptions.min = descriptor.numberMin;
111
- // @ts-ignore
112
- field.templateOptions.max = descriptor.numberMax;
113
- break;
114
- case FieldInputDescriptor.TypeEnum.Switch:
115
- field.type = 'switch';
116
- break;
117
- case FieldInputDescriptor.TypeEnum.Radio:
118
- field.type = 'radio';
119
- break;
120
- case FieldInputDescriptor.TypeEnum.Datepicker:
121
- field.type = 'datepicker';
122
- break;
123
- default:
124
- field.type = 'input';
125
- // @ts-ignore
126
- field.templateOptions.minLength = descriptor.minLength;
127
- // @ts-ignore
128
- field.templateOptions.maxLength = descriptor.maxLength;
129
- // @ts-ignore
130
- field.templateOptions.pattern = descriptor.pattern;
131
- break;
132
- }
133
- }
134
- else if (descriptor instanceof FieldLookupEnumDescriptor) {
135
- field.type = 'enum';
136
- }
137
- else if (descriptor instanceof FieldLookupDescriptor) {
138
- switch (descriptor.lookupType) {
139
- case FieldLookupDescriptor.LookupTypeEnum.Autocomplete:
140
- field.type = 'autocomplete';
141
- break;
142
- case FieldLookupDescriptor.LookupTypeEnum.Dropdown:
143
- default:
144
- field.type = 'dropdown';
145
- break;
146
- }
147
- }
148
- else if (descriptor instanceof FieldManyToManyEditorDescriptor) {
149
- field.type = 'table-dialog-multiselect';
150
- }
151
- else if (descriptor instanceof FieldManyEditorDescriptor) {
152
- field.type = 'table-dialog-form';
153
- }
154
- if (descriptor.label) {
155
- // @ts-ignore
156
- field.templateOptions.label = descriptor.label;
157
- }
158
- if (descriptor.required) {
159
- // @ts-ignore
160
- field.templateOptions.required = true;
161
- }
162
- if (descriptor.disabled) {
163
- // @ts-ignore
164
- field.templateOptions.disabled = true;
165
- }
166
- else {
167
- // @ts-ignore
168
- field.expressionProperties['templateOptions.disabled'] = 'formState.disabled';
169
- }
170
- for (const validator of descriptor.validators) {
171
- field.validators[validator.name] = { expression: validator.expression, message: validator.message };
172
- }
173
- return field;
174
- }
175
- }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWZvcm1seS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi91dGlscy9lZGl0b3ItZm9ybWx5LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLHFCQUFxQixFQUV6Qix5QkFBeUIsRUFHekIseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQixvQkFBb0IsRUFFdkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixNQUFNLE9BQU8sZ0JBQWdCO0lBQ2xCLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFpQztRQUM1RSxNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO1FBRXZDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQzVELGdCQUFnQjtZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3JGO2FBQU07WUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQXlDO1FBQ3ZFLE1BQU0sU0FBUyxHQUFzQjtZQUNqQyxJQUFJLEVBQUUsTUFBTTtZQUNaLFVBQVUsRUFBRSxFQUFFO1NBQ2pCLENBQUM7UUFDRixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRTtZQUN6QixNQUFNLFFBQVEsR0FBc0I7Z0JBQ2hDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFB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VSxDQUFDLEtBQUssQ0FBQztTQUNsRDtRQUNELElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUNyQixhQUFhO1lBQ2IsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ3JCLGFBQWE7WUFDYixLQUFLLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDekM7YUFBTTtZQUNILGFBQWE7WUFDYixLQUFLLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztTQUNqRjtRQUVELEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxDQUFDLFVBQVUsRUFBRTtZQUMzQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFDLENBQUM7U0FDckc7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Zvcm1seUZpZWxkQ29uZmlnfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuaW1wb3J0IHtGaWVsZExvb2t1cERlc2NyaXB0b3IsXG4gICAgRWRpdG9yRGVzY3JpcHRvcixcbiAgICBGaWVsZExvb2t1cEVudW1EZXNjcmlwdG9yLFxuICAgIEFGaWVsZERlc2NyaXB0b3IsXG4gICAgRmllbGRUYWJHcm91cERlc2NyaXB0b3IsXG4gICAgRmllbGRNYW55RWRpdG9yRGVzY3JpcHRvcixcbiAgICBGaWVsZE1hbnlUb01hbnlFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpZWxkSW5wdXREZXNjcmlwdG9yLFxuICAgIEZpZWxkR3JvdXBEZXNjcmlwdG9yXG59IGZyb20gJy4uL2Rlc2NyaXB0b3JzJztcblxuZXhwb3J0IGNsYXNzIEVkaXRvckZvcm1seVV0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRm9ybWx5Q29uZmlnRnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvcjxhbnk+KTogRm9ybWx5RmllbGRDb25maWdbXSB7XG4gICAgICAgIGNvbnN0IGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xuXG4gICAgICAgIGlmIChkZXNjcmlwdG9yLnRhYnMubGVuZ3RoID09PSAxICYmIGRlc2NyaXB0b3IudGFic1swXS5kZWZhdWx0KSB7XG4gICAgICAgICAgICAvLyBkb250IHVzZSB0YWJzXG4gICAgICAgICAgICBmaWVsZHMucHVzaCguLi5FZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seUdyb3VwVHlwZShkZXNjcmlwdG9yLnRhYnNbMF0uZmllbGRzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMucHVzaCguLi5FZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seVRhYlR5cGUoZGVzY3JpcHRvci50YWJzKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRm9ybWx5VGFiVHlwZSh0YWJHcm91cHM6IEZpZWxkVGFiR3JvdXBEZXNjcmlwdG9yPGFueT5bXSk6IEZvcm1seUZpZWxkQ29uZmlnW10ge1xuICAgICAgICBjb25zdCB0YWJzRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgICAgICAgICAgdHlwZTogJ3RhYnMnLFxuICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCB0YWIgb2YgdGFiR3JvdXBzKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJGaWVsZDogRm9ybWx5RmllbGRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgaWQ6IHRhYi5uYW1lLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge30sXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGFiLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRhYkZpZWxkLnRlbXBsYXRlT3B0aW9ucy5sYWJlbCA9IHRhYi50aXRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRhYkZpZWxkLmZpZWxkR3JvdXAucHVzaCguLi5FZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seUdyb3VwVHlwZSh0YWIuZmllbGRzKSk7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0YWJzRmllbGQuZmllbGRHcm91cC5wdXNoKHRhYkZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RhYnNGaWVsZF07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGb3JtbHlHcm91cFR5cGUoZ3JvdXBzOiBGaWVsZEdyb3VwRGVzY3JpcHRvcjxhbnk+W10pOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICAgICAgaWYgKGdyb3Vwcy5sZW5ndGggPT09IDEgJiYgZ3JvdXBzWzBdLmRlZmF1bHQpIHtcbiAgICAgICAgICAgIC8vIGRvbnQgdXNlIGZpZWxkc2V0LCBqdXN0IGNyZWF0ZSBmaWVsZHNcbiAgICAgICAgICAgIHJldHVybiBFZGl0b3JGb3JtbHlVdGlsLmNyZWF0ZUZvcm1seUZpZWxkcyhncm91cHNbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBzRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdmaWVsZHNldCcsXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBpZDogZ3JvdXAubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiBncm91cFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBmaWVsZEdyb3VwOiBbXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKGdyb3VwLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZC50ZW1wbGF0ZU9wdGlvbnMubGFiZWwgPSBncm91cC50aXRsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGdyb3VwRmllbGQuZmllbGRHcm91cC5wdXNoKC4uLkVkaXRvckZvcm1seVV0aWwuY3JlYXRlRm9ybWx5RmllbGRzKGdyb3VwKSk7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGdyb3Vwc0ZpZWxkLmZpZWxkR3JvdXAucHVzaChncm91cEZpZWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbZ3JvdXBzRmllbGRdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGb3JtbHlGaWVsZHMoZGVzY3JpcHRvcjogRmllbGRHcm91cERlc2NyaXB0b3I8YW55Pik6IEZvcm1seUZpZWxkQ29uZmlnW10ge1xuICAgICAgICBjb25zdCBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBkZXNjcmlwdG9yRmllbGQgb2YgZGVzY3JpcHRvci5maWVsZHMpIHtcbiAgICAgICAgICAgIGZpZWxkcy5wdXNoKEVkaXRvckZvcm1seVV0aWwuY3JlYXRlRm9ybWx5RmllbGQoZGVzY3JpcHRvckZpZWxkKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gd3JhcCBpbiBncm91cCB0byBiZSBhYmxlIHRvIHVzZSBmbGV4IGdyaWRcbiAgICAgICAgY29uc3Qgd3JhcHBlckdyb3VwID0ge1xuICAgICAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTogJ3AtZmx1aWQgZm9ybWdyaWQgZ3JpZCcsXG4gICAgICAgICAgICBmaWVsZEdyb3VwOiBmaWVsZHMsXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiB7fVxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFsaWRhdG9yIG9mIGRlc2NyaXB0b3IudmFsaWRhdG9ycykge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgd3JhcHBlckdyb3VwLnZhbGlkYXRvcnNbdmFsaWRhdG9yLm5hbWVdID0ge2V4cHJlc3Npb246IHZhbGlkYXRvci5leHByZXNzaW9uLCBtZXNzYWdlOiB2YWxpZGF0b3IubWVzc2FnZX07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW3dyYXBwZXJHcm91cF07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGb3JtbHlGaWVsZChkZXNjcmlwdG9yOiBBRmllbGREZXNjcmlwdG9yPGFueSwgYW55Pik6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgICAgICAgY29uc3QgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgICAgICAgICAga2V5OiBkZXNjcmlwdG9yLnByb3BlcnR5LFxuICAgICAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7fSxcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IHt9XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGNsYXNzTmFtZSA9IGRlc2NyaXB0b3IuY2xhc3NOYW1lO1xuICAgICAgICBpZiAoIWNsYXNzTmFtZSkge1xuICAgICAgICAgICAgLy8gYXNzaWduIGRlZmF1bHQgZmllbGQgd2lkdGggdGhyb3VnaCBlbnRpcmUgcm93XG4gICAgICAgICAgICBjbGFzc05hbWUgPSAnY29sLTEyJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xhc3NOYW1lLmluZGV4T2YoJ2NvbC0nKSA8IDApIHtcbiAgICAgICAgICAgIC8vIGNsYXNzIHdhcyBwcm92aWRlZCwgYnV0IGRvZXMgbm90IGNvbnRhaW4gY29sLSBkZWZpbml0aW9uXG4gICAgICAgICAgICBjbGFzc05hbWUgPSBgY29sLTEyICR7ZGVzY3JpcHRvci5jbGFzc05hbWV9YDtcbiAgICAgICAgfVxuICAgICAgICBmaWVsZC5jbGFzc05hbWUgPSBjbGFzc05hbWU7XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRvciA9IGRlc2NyaXB0b3I7XG4gICAgICAgIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRJbnB1dERlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZGVzY3JpcHRvci5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXREZXNjcmlwdG9yLlR5cGVFbnVtLlRleHRhcmVhOlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ3RleHRhcmVhJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0RGVzY3JpcHRvci5UeXBlRW51bS5OdW1iZXI6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnbnVtYmVyJztcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMubWluID0gZGVzY3JpcHRvci5udW1iZXJNaW47XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLm1heCA9IGRlc2NyaXB0b3IubnVtYmVyTWF4O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXREZXNjcmlwdG9yLlR5cGVFbnVtLlN3aXRjaDpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdzd2l0Y2gnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXREZXNjcmlwdG9yLlR5cGVFbnVtLlJhZGlvOlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ3JhZGlvJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0RGVzY3JpcHRvci5UeXBlRW51bS5EYXRlcGlja2VyOlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2RhdGVwaWNrZXInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2lucHV0JztcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMubWluTGVuZ3RoID0gZGVzY3JpcHRvci5taW5MZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLm1heExlbmd0aCA9IGRlc2NyaXB0b3IubWF4TGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5wYXR0ZXJuID0gZGVzY3JpcHRvci5wYXR0ZXJuO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRMb29rdXBFbnVtRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgZmllbGQudHlwZSA9ICdlbnVtJztcbiAgICAgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRMb29rdXBEZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGRlc2NyaXB0b3IubG9va3VwVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRMb29rdXBEZXNjcmlwdG9yLkxvb2t1cFR5cGVFbnVtLkF1dG9jb21wbGV0ZTpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdhdXRvY29tcGxldGUnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkTG9va3VwRGVzY3JpcHRvci5Mb29rdXBUeXBlRW51bS5Ecm9wZG93bjpcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2Ryb3Bkb3duJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvciBpbnN0YW5jZW9mIEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAndGFibGUtZGlhbG9nLW11bHRpc2VsZWN0JztcbiAgICAgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRNYW55RWRpdG9yRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgZmllbGQudHlwZSA9ICd0YWJsZS1kaWFsb2ctZm9ybSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVzY3JpcHRvci5sYWJlbCkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLmxhYmVsID0gZGVzY3JpcHRvci5sYWJlbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVzY3JpcHRvci5yZXF1aXJlZCkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVzY3JpcHRvci5kaXNhYmxlZCkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGZpZWxkLmV4cHJlc3Npb25Qcm9wZXJ0aWVzWyd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnXSA9ICdmb3JtU3RhdGUuZGlzYWJsZWQnO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2YgZGVzY3JpcHRvci52YWxpZGF0b3JzKSB7XG4gICAgICAgICAgICBmaWVsZC52YWxpZGF0b3JzW3ZhbGlkYXRvci5uYW1lXSA9IHtleHByZXNzaW9uOiB2YWxpZGF0b3IuZXhwcmVzc2lvbiwgbWVzc2FnZTogdmFsaWRhdG9yLm1lc3NhZ2V9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,125 +0,0 @@
1
- import { first, map, mergeMap } from 'rxjs/operators';
2
- export class I18nUtil {
3
- static instantModelTranslation(translate, model, keyPath, customKey, item, fallbackKey, i18nParams) {
4
- const keys = I18nUtil.getModelKeysByPriority(model, keyPath, customKey, fallbackKey);
5
- const i18nModelName = I18nUtil.instantModelName(translate, model, true);
6
- const i18n = translate.instant(keys, I18nUtil.getModelI18nParams(model, item, i18nModelName ?? undefined, i18nParams));
7
- return I18nUtil.selectKeyByPriority(keys, i18n);
8
- }
9
- static instantActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, functionNameKey, i18nParams) {
10
- const keys = I18nUtil.getActionKeysByPriority(action, keyPath, customKey, fallbackKey);
11
- const i18nModelName = I18nUtil.instantModelName(translate, action?.model, true);
12
- const i18nFunctionTitle = I18nUtil.getFunctionTitle(translate, functionNameKey);
13
- const i18n = translate.instant(keys, I18nUtil.getActionI18nParams(action, item, i18nModelName ?? undefined, i18nParams, i18nFunctionTitle));
14
- return I18nUtil.selectKeyByPriority(keys, i18n);
15
- }
16
- static streamActionTranslation(translate, action, keyPath, customKey, item, fallbackKey) {
17
- return I18nUtil.getActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, false);
18
- }
19
- static getActionTranslation(translate, action, keyPath, customKey, item, fallbackKey, oneTime = true) {
20
- const keys = I18nUtil.getActionKeysByPriority(action, keyPath, customKey, fallbackKey);
21
- return I18nUtil.getModelName(translate, action?.model, oneTime, true).pipe(mergeMap(i18nModelName => translate.get(keys, I18nUtil.getActionI18nParams(action, item, i18nModelName ?? undefined))), map(i18n => I18nUtil.selectKeyByPriority(keys, i18n)));
22
- }
23
- static getModelKeysByPriority(model, keyPath, customKey, fallbackKey) {
24
- const keys = [];
25
- if (customKey) {
26
- keys.push(customKey);
27
- }
28
- const modelActionKey = `${model.typeName}.${keyPath}`;
29
- keys.push(modelActionKey);
30
- if (fallbackKey) {
31
- keys.push(fallbackKey);
32
- }
33
- return keys;
34
- }
35
- static getActionKeysByPriority(action, keyPath, customKey, fallbackKey) {
36
- const keys = [];
37
- if (customKey) {
38
- keys.push(customKey);
39
- }
40
- const modelActionKey = `${action.i18nModelActionBaseKey}.${keyPath}`;
41
- const actionKey = `${action.actionName}.${keyPath}`;
42
- keys.push(modelActionKey, actionKey);
43
- if (fallbackKey) {
44
- keys.push(fallbackKey);
45
- }
46
- return keys;
47
- }
48
- static getModelI18nParams(model, item, i18nModelName, i18nParameters = {}) {
49
- i18nParameters.itemId = '';
50
- i18nParameters.itemTitle = '';
51
- if (i18nModelName) {
52
- i18nParameters.modelName = i18nModelName;
53
- }
54
- if (item) {
55
- if (model.idPropertyName && item[model.idPropertyName]) {
56
- i18nParameters.itemId = item[model.idPropertyName];
57
- }
58
- if (model.titlePropertyName && item[model.titlePropertyName]) {
59
- i18nParameters.itemTitle = item[model.titlePropertyName];
60
- }
61
- }
62
- return i18nParameters;
63
- }
64
- static getActionI18nParams(action, item, i18nModelName, i18nParameters = {}, functionTitle) {
65
- i18nParameters.itemId = '';
66
- i18nParameters.itemTitle = '';
67
- if (functionTitle) {
68
- i18nParameters.functionTitle = functionTitle;
69
- }
70
- if (i18nModelName) {
71
- i18nParameters.modelName = i18nModelName;
72
- }
73
- if (item) {
74
- if (action.model.idPropertyName && item[action.model.idPropertyName]) {
75
- i18nParameters.itemId = item[action.model.idPropertyName];
76
- }
77
- if (action.model.titlePropertyName && item[action.model.titlePropertyName]) {
78
- i18nParameters.itemTitle = item[action.model.titlePropertyName];
79
- }
80
- }
81
- return i18nParameters;
82
- }
83
- static instantModelName(translate, model, singular) {
84
- const keys = I18nUtil.getModelNameKeys(model, singular);
85
- const i18n = translate.instant(keys);
86
- return I18nUtil.selectKeyByPriority(keys, i18n);
87
- }
88
- static getModelName(translate, model, oneTime = true, singular) {
89
- const keys = I18nUtil.getModelNameKeys(model, singular);
90
- const obs = translate.stream(keys);
91
- if (oneTime) {
92
- obs.pipe(first());
93
- }
94
- return obs.pipe(map(i18n => I18nUtil.selectKeyByPriority(keys, i18n)));
95
- }
96
- static getModelNameKeys(model, singular) {
97
- let keys = [];
98
- if (singular !== undefined) {
99
- keys.push(singular ? `${model?.typeName}.nameSingular` : `${model?.typeName}.namePlural`);
100
- }
101
- keys.push(`${model?.typeName}.name`);
102
- return keys;
103
- }
104
- static selectKeyByPriority(keys, i18n) {
105
- for (const key of keys) {
106
- if (key !== i18n[key]) {
107
- return i18n[key];
108
- }
109
- }
110
- return null;
111
- }
112
- static getFunctionTitle(translate, functionTitle) {
113
- if (functionTitle) {
114
- const translation = translate.instant(`mngAction.functions.${functionTitle}.title`);
115
- if (translation === functionTitle) {
116
- return null;
117
- }
118
- return translation;
119
- }
120
- else {
121
- return null;
122
- }
123
- }
124
- }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi91dGlscy9pMThuLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEQsTUFBTSxPQUFPLFFBQVE7SUFFVixNQUFNLENBQUMsdUJBQXVCLENBQUMsU0FBMkIsRUFBRSxLQUEyQixFQUFFLE9BQWUsRUFBRSxTQUFrQixFQUFFLElBQVUsRUFDeEcsV0FBb0IsRUFBRSxVQUFnQjtRQUN6RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckYsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxJQUFJLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLFNBQTJCLEVBQUUsTUFBNkIsRUFBRSxPQUFlLEVBQUUsU0FBa0IsRUFBRSxJQUFVLEVBQzNHLFdBQW9CLEVBQUUsZUFBd0IsRUFBRSxVQUFnQjtRQUNuRyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFD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O1NBQ2Y7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3QsIG1hcCwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yLCBNb2RlbERlc2NyaXB0b3J9IGZyb20gJy4uL2Rlc2NyaXB0b3JzJztcblxuZXhwb3J0IGNsYXNzIEkxOG5VdGlsIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFudE1vZGVsVHJhbnNsYXRpb24odHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBpdGVtPzogYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrS2V5Pzogc3RyaW5nLCBpMThuUGFyYW1zPzogYW55KTogc3RyaW5nfG51bGwge1xuICAgICAgICBjb25zdCBrZXlzID0gSTE4blV0aWwuZ2V0TW9kZWxLZXlzQnlQcmlvcml0eShtb2RlbCwga2V5UGF0aCwgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgICAgIGNvbnN0IGkxOG5Nb2RlbE5hbWUgPSBJMThuVXRpbC5pbnN0YW50TW9kZWxOYW1lKHRyYW5zbGF0ZSwgbW9kZWwsIHRydWUpO1xuICAgICAgICBjb25zdCBpMThuID0gdHJhbnNsYXRlLmluc3RhbnQoa2V5cywgSTE4blV0aWwuZ2V0TW9kZWxJMThuUGFyYW1zKG1vZGVsLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCwgaTE4blBhcmFtcykpO1xuICAgICAgICByZXR1cm4gSTE4blV0aWwuc2VsZWN0S2V5QnlQcmlvcml0eShrZXlzLCBpMThuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbnRBY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBrZXlQYXRoOiBzdHJpbmcsIGN1c3RvbUtleT86IHN0cmluZywgaXRlbT86IGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0tleT86IHN0cmluZywgZnVuY3Rpb25OYW1lS2V5Pzogc3RyaW5nLCBpMThuUGFyYW1zPzogYW55KTogc3RyaW5nfG51bGwge1xuICAgICAgICBjb25zdCBrZXlzID0gSTE4blV0aWwuZ2V0QWN0aW9uS2V5c0J5UHJpb3JpdHkoYWN0aW9uLCBrZXlQYXRoLCBjdXN0b21LZXksIGZhbGxiYWNrS2V5KTtcbiAgICAgICAgY29uc3QgaTE4bk1vZGVsTmFtZSA9IEkxOG5VdGlsLmluc3RhbnRNb2RlbE5hbWUodHJhbnNsYXRlLCBhY3Rpb24/Lm1vZGVsLCB0cnVlKTtcbiAgICAgICAgY29uc3QgaTE4bkZ1bmN0aW9uVGl0bGUgPSBJMThuVXRpbC5nZXRGdW5jdGlvblRpdGxlKHRyYW5zbGF0ZSwgZnVuY3Rpb25OYW1lS2V5KTtcbiAgICAgICAgY29uc3QgaTE4biA9IHRyYW5zbGF0ZS5pbnN0YW50KGtleXMsIEkxOG5VdGlsLmdldEFjdGlvbkkxOG5QYXJhbXMoYWN0aW9uLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCwgaTE4blBhcmFtcywgaTE4bkZ1bmN0aW9uVGl0bGUpKTtcbiAgICAgICAgcmV0dXJuIEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzdHJlYW1BY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBrZXlQYXRoOiBzdHJpbmcsIGN1c3RvbUtleT86IHN0cmluZywgaXRlbT86IGFueSwgZmFsbGJhY2tLZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ3xudWxsPiB7XG4gICAgICAgIHJldHVybiBJMThuVXRpbC5nZXRBY3Rpb25UcmFuc2xhdGlvbih0cmFuc2xhdGUsIGFjdGlvbiwga2V5UGF0aCwgY3VzdG9tS2V5LCBpdGVtLCBmYWxsYmFja0tleSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QWN0aW9uVHJhbnNsYXRpb24odHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBjdXN0b21LZXk/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIGZhbGxiYWNrS2V5Pzogc3RyaW5nLCBvbmVUaW1lOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8c3RyaW5nfG51bGw+IHtcbiAgICAgICAgY29uc3Qga2V5cyA9IEkxOG5VdGlsLmdldEFjdGlvbktleXNCeVByaW9yaXR5KGFjdGlvbiwga2V5UGF0aCwgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgICAgIHJldHVybiBJMThuVXRpbC5nZXRNb2RlbE5hbWUodHJhbnNsYXRlLCBhY3Rpb24/Lm1vZGVsLCBvbmVUaW1lLCB0cnVlKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoaTE4bk1vZGVsTmFtZSA9PiB0cmFuc2xhdGUuZ2V0KGtleXMsIEkxOG5VdGlsLmdldEFjdGlvbkkxOG5QYXJhbXMoYWN0aW9uLCBpdGVtLCBpMThuTW9kZWxOYW1lID8/IHVuZGVmaW5lZCkpKSxcbiAgICAgICAgICAgIG1hcChpMThuID0+IEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TW9kZWxLZXlzQnlQcmlvcml0eShtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBmYWxsYmFja0tleT86IHN0cmluZykge1xuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChjdXN0b21LZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vZGVsQWN0aW9uS2V5ID0gYCR7bW9kZWwudHlwZU5hbWV9LiR7a2V5UGF0aH1gO1xuICAgICAgICBrZXlzLnB1c2gobW9kZWxBY3Rpb25LZXkpO1xuICAgICAgICBpZiAoZmFsbGJhY2tLZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChmYWxsYmFja0tleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0QWN0aW9uS2V5c0J5UHJpb3JpdHkoYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBmYWxsYmFja0tleT86IHN0cmluZykge1xuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAgICAgIGtleXMucHVzaChjdXN0b21LZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vZGVsQWN0aW9uS2V5ID0gYCR7YWN0aW9uLmkxOG5Nb2RlbEFjdGlvbkJhc2VLZXl9LiR7a2V5UGF0aH1gO1xuICAgICAgICBjb25zdCBhY3Rpb25LZXkgPSBgJHthY3Rpb24uYWN0aW9uTmFtZX0uJHtrZXlQYXRofWA7XG4gICAgICAgIGtleXMucHVzaChtb2RlbEFjdGlvbktleSwgYWN0aW9uS2V5KTtcbiAgICAgICAgaWYgKGZhbGxiYWNrS2V5KSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goZmFsbGJhY2tLZXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TW9kZWxJMThuUGFyYW1zKG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55PiwgaXRlbTogYW55LCBpMThuTW9kZWxOYW1lPzogc3RyaW5nLCBpMThuUGFyYW1ldGVyczogYW55ID0ge30pIHtcbiAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbUlkID0gJydcbiAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbVRpdGxlID0gJydcblxuICAgICAgICBpZiAoaTE4bk1vZGVsTmFtZSkge1xuICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMubW9kZWxOYW1lID0gaTE4bk1vZGVsTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaWYgKG1vZGVsLmlkUHJvcGVydHlOYW1lICYmIGl0ZW1bbW9kZWwuaWRQcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMuaXRlbUlkID0gaXRlbVttb2RlbC5pZFByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW9kZWwudGl0bGVQcm9wZXJ0eU5hbWUgJiYgaXRlbVttb2RlbC50aXRsZVByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtVGl0bGUgPSBpdGVtW21vZGVsLnRpdGxlUHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4blBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBY3Rpb25JMThuUGFyYW1zKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+LCBpdGVtOiBhbnksIGkxOG5Nb2RlbE5hbWU/OiBzdHJpbmcsIGkxOG5QYXJhbWV0ZXJzOiBhbnkgPSB7fSwgZnVuY3Rpb25UaXRsZT86IHN0cmluZykge1xuICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtSWQgPSAnJ1xuICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtVGl0bGUgPSAnJ1xuXG4gICAgICAgIGlmIChmdW5jdGlvblRpdGxlKSB7XG4gICAgICAgICAgICBpMThuUGFyYW1ldGVycy5mdW5jdGlvblRpdGxlID0gZnVuY3Rpb25UaXRsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaTE4bk1vZGVsTmFtZSkge1xuICAgICAgICAgICAgaTE4blBhcmFtZXRlcnMubW9kZWxOYW1lID0gaTE4bk1vZGVsTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZSAmJiBpdGVtW2FjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICBpMThuUGFyYW1ldGVycy5pdGVtSWQgPSBpdGVtW2FjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lICYmIGl0ZW1bYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lXSkge1xuICAgICAgICAgICAgICAgIGkxOG5QYXJhbWV0ZXJzLml0ZW1UaXRsZSA9IGl0ZW1bYWN0aW9uLm1vZGVsLnRpdGxlUHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4blBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW50TW9kZWxOYW1lKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBzaW5ndWxhcj86IGJvb2xlYW4pOiBzdHJpbmd8bnVsbCB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBJMThuVXRpbC5nZXRNb2RlbE5hbWVLZXlzKG1vZGVsLCBzaW5ndWxhcik7XG4gICAgICAgIGNvbnN0IGkxOG4gPSB0cmFuc2xhdGUuaW5zdGFudChrZXlzKTtcbiAgICAgICAgcmV0dXJuIEkxOG5VdGlsLnNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5cywgaTE4bik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNb2RlbE5hbWUodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIG9uZVRpbWU6IGJvb2xlYW4gPSB0cnVlLCBzaW5ndWxhcj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZ3xudWxsPiB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBJMThuVXRpbC5nZXRNb2RlbE5hbWVLZXlzKG1vZGVsLCBzaW5ndWxhcik7XG4gICAgICAgIGNvbnN0IG9icyA9IHRyYW5zbGF0ZS5zdHJlYW0oa2V5cyk7XG4gICAgICAgIGlmIChvbmVUaW1lKSB7XG4gICAgICAgICAgICBvYnMucGlwZShmaXJzdCgpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYnMucGlwZShtYXAoaTE4biA9PiBJMThuVXRpbC5zZWxlY3RLZXlCeVByaW9yaXR5KGtleXMsIGkxOG4pKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRNb2RlbE5hbWVLZXlzKG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwgc2luZ3VsYXI/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBrZXlzID0gW107XG4gICAgICAgIGlmIChzaW5ndWxhciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goc2luZ3VsYXIgPyBgJHttb2RlbD8udHlwZU5hbWV9Lm5hbWVTaW5ndWxhcmAgOiBgJHttb2RlbD8udHlwZU5hbWV9Lm5hbWVQbHVyYWxgKTtcbiAgICAgICAgfVxuICAgICAgICBrZXlzLnB1c2goYCR7bW9kZWw/LnR5cGVOYW1lfS5uYW1lYCk7XG4gICAgICAgIHJldHVybiBrZXlzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHNlbGVjdEtleUJ5UHJpb3JpdHkoa2V5czogc3RyaW5nW10sIGkxOG46IGFueSk6IHN0cmluZ3xudWxsIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgaWYgKGtleSAhPT0gaTE4bltrZXldKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGkxOG5ba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRGdW5jdGlvblRpdGxlKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgZnVuY3Rpb25UaXRsZT86IHN0cmluZykge1xuICAgICAgICBpZiAoZnVuY3Rpb25UaXRsZSkge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGUuaW5zdGFudChgbW5nQWN0aW9uLmZ1bmN0aW9ucy4ke2Z1bmN0aW9uVGl0bGV9LnRpdGxlYCk7XG4gICAgICAgICAgICBpZiAodHJhbnNsYXRpb24gPT09IGZ1bmN0aW9uVGl0bGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2xhdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,6 +0,0 @@
1
- export * from './editor-formly.util';
2
- export * from './i18n.util';
3
- export * from './model.util';
4
- export * from './toast.util';
5
- export * from './type.util';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VkaXRvci1mb3JtbHkudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4udXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZS51dGlsJztcbiJdfQ==
@@ -1,57 +0,0 @@
1
- import { ObjectSerializer } from '../api/utils';
2
- export class ModelUtil {
3
- static findIdAttribute(classType) {
4
- const objSerializer = ObjectSerializer.get();
5
- const attributes = objSerializer.findAttributesDefinitionByClassType(classType);
6
- if (!attributes) {
7
- return null;
8
- }
9
- let idAttribute = attributes.find(a => a.name === 'id');
10
- if (!idAttribute) {
11
- // if no id, try with code
12
- idAttribute = attributes.find(a => a.name === 'code');
13
- if (!idAttribute) {
14
- // if no id or code, take the first attribute
15
- idAttribute = attributes[0];
16
- }
17
- }
18
- return idAttribute?.name ?? null;
19
- }
20
- static findTitleAttribute(classType) {
21
- const objSerializer = ObjectSerializer.get();
22
- const attributes = objSerializer.findAttributesDefinitionByClassType(classType);
23
- if (!attributes) {
24
- return null;
25
- }
26
- let titleAttribute = attributes.find(a => a.type === 'string' && a.name === 'name');
27
- if (!titleAttribute) {
28
- // if no name, try with title
29
- titleAttribute = attributes.find(a => a.type === 'string' && a.name === 'title');
30
- if (!titleAttribute) {
31
- // if no name or title, take the first attribute
32
- titleAttribute = attributes[0];
33
- }
34
- }
35
- return titleAttribute?.name ?? null;
36
- }
37
- static trySetLookupItemsProperties(lookup) {
38
- if (lookup.modelType) {
39
- if (!lookup.itemsValueProperty || !lookup.dataKeyProperty) {
40
- const idProperty = ModelUtil.findIdAttribute(lookup.modelType) ?? undefined;
41
- if (idProperty && !lookup.itemsValueProperty) {
42
- lookup.withItemsValueProperty(idProperty);
43
- }
44
- if (idProperty && !lookup.dataKeyProperty) {
45
- lookup.withDataKeyProperty(idProperty);
46
- }
47
- }
48
- if (!lookup.itemsLabelProperty) {
49
- const labelProperty = ModelUtil.findTitleAttribute(lookup.modelType);
50
- if (labelProperty) {
51
- lookup.withItemsLabelProperty(labelProperty);
52
- }
53
- }
54
- }
55
- }
56
- }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvdXRpbHMvbW9kZWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHOUMsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsZUFBZSxDQUFJLFNBQXVCO1FBQ3BELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxtQ0FBbUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDZCwwQkFBMEI7WUFDMUIsV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2QsNkNBQTZDO2dCQUM3QyxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9CO1NBQ0o7UUFFRCxPQUFPLFdBQVcsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUksU0FBdUI7UUFDdkQsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLG1DQUFtQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQiw2QkFBNkI7WUFDN0IsY0FBYyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ2pCLGdEQUFnRDtnQkFDaEQsY0FBYyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQztTQUNKO1FBRUQsT0FBTyxjQUFjLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFBTSxDQUFDLDJCQUEyQixDQUFJLE1BQTRCO1FBQ3JFLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRTtnQkFDdkQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDO2dCQUM1RSxJQUFJLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDMUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUM3QztnQkFDRCxJQUFJLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7b0JBQ3ZDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDMUM7YUFDSjtZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzVCLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JFLElBQUksYUFBYSxFQUFFO29CQUNmLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDaEQ7YUFDSjtTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJy4uL3R5cGVzJztcblxuaW1wb3J0IHtPYmplY3RTZXJpYWxpemVyfSBmcm9tICcuLi9hcGkvdXRpbHMnO1xuaW1wb3J0IHtJTG9va3VwRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMnO1xuXG5leHBvcnQgY2xhc3MgTW9kZWxVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIGZpbmRJZEF0dHJpYnV0ZTxUPihjbGFzc1R5cGU6IENsYXNzVHlwZTxUPik6IHN0cmluZ3xudWxsIHtcbiAgICAgICAgY29uc3Qgb2JqU2VyaWFsaXplciA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBvYmpTZXJpYWxpemVyLmZpbmRBdHRyaWJ1dGVzRGVmaW5pdGlvbkJ5Q2xhc3NUeXBlKGNsYXNzVHlwZSk7XG4gICAgICAgIGlmICghYXR0cmlidXRlcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09ICdpZCcpO1xuICAgICAgICBpZiAoIWlkQXR0cmlidXRlKSB7XG4gICAgICAgICAgICAvLyBpZiBubyBpZCwgdHJ5IHdpdGggY29kZVxuICAgICAgICAgICAgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09ICdjb2RlJyk7XG4gICAgICAgICAgICBpZiAoIWlkQXR0cmlidXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgbm8gaWQgb3IgY29kZSwgdGFrZSB0aGUgZmlyc3QgYXR0cmlidXRlXG4gICAgICAgICAgICAgICAgaWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlkQXR0cmlidXRlPy5uYW1lID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmaW5kVGl0bGVBdHRyaWJ1dGU8VD4oY2xhc3NUeXBlOiBDbGFzc1R5cGU8VD4pOiBzdHJpbmd8bnVsbCB7XG4gICAgICAgIGNvbnN0IG9ialNlcmlhbGl6ZXIgPSBPYmplY3RTZXJpYWxpemVyLmdldCgpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gb2JqU2VyaWFsaXplci5maW5kQXR0cmlidXRlc0RlZmluaXRpb25CeUNsYXNzVHlwZShjbGFzc1R5cGUpO1xuICAgICAgICBpZiAoIWF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRpdGxlQXR0cmlidXRlID0gYXR0cmlidXRlcy5maW5kKGEgPT4gYS50eXBlID09PSAnc3RyaW5nJyAmJiBhLm5hbWUgPT09ICduYW1lJyk7XG4gICAgICAgIGlmICghdGl0bGVBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIC8vIGlmIG5vIG5hbWUsIHRyeSB3aXRoIHRpdGxlXG4gICAgICAgICAgICB0aXRsZUF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuZmluZChhID0+IGEudHlwZSA9PT0gJ3N0cmluZycgJiYgYS5uYW1lID09PSAndGl0bGUnKTtcbiAgICAgICAgICAgIGlmICghdGl0bGVBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiBubyBuYW1lIG9yIHRpdGxlLCB0YWtlIHRoZSBmaXJzdCBhdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICB0aXRsZUF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGl0bGVBdHRyaWJ1dGU/Lm5hbWUgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRyeVNldExvb2t1cEl0ZW1zUHJvcGVydGllczxUPihsb29rdXA6IElMb29rdXBEZXNjcmlwdG9yPFQ+KSB7XG4gICAgICAgIGlmIChsb29rdXAubW9kZWxUeXBlKSB7XG4gICAgICAgICAgICBpZiAoIWxvb2t1cC5pdGVtc1ZhbHVlUHJvcGVydHkgfHwgIWxvb2t1cC5kYXRhS2V5UHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZFByb3BlcnR5ID0gTW9kZWxVdGlsLmZpbmRJZEF0dHJpYnV0ZShsb29rdXAubW9kZWxUeXBlKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlkUHJvcGVydHkgJiYgIWxvb2t1cC5pdGVtc1ZhbHVlUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9va3VwLndpdGhJdGVtc1ZhbHVlUHJvcGVydHkoaWRQcm9wZXJ0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpZFByb3BlcnR5ICYmICFsb29rdXAuZGF0YUtleVByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxvb2t1cC53aXRoRGF0YUtleVByb3BlcnR5KGlkUHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbG9va3VwLml0ZW1zTGFiZWxQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsUHJvcGVydHkgPSBNb2RlbFV0aWwuZmluZFRpdGxlQXR0cmlidXRlKGxvb2t1cC5tb2RlbFR5cGUpO1xuICAgICAgICAgICAgICAgIGlmIChsYWJlbFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxvb2t1cC53aXRoSXRlbXNMYWJlbFByb3BlcnR5KGxhYmVsUHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,39 +0,0 @@
1
- import { I18nUtil } from './i18n.util';
2
- export class ToastUtil {
3
- static tableNotificationError(translationService, table, error, tableview) {
4
- const params = {};
5
- if (error?.message) {
6
- params.errorMessage = `: ${error.message}`;
7
- }
8
- else {
9
- params.errorMessage = '.';
10
- }
11
- console.log(params);
12
- const tableErrorTitle = I18nUtil.instantModelTranslation(translationService, table.model, 'table.error.title', undefined, undefined, 'general.error', params) ?? undefined;
13
- const tableErrorMessage = I18nUtil.instantModelTranslation(translationService, table.model, 'table.error.message', undefined, undefined, 'general.errorMessage', params) ?? undefined;
14
- tableview?.messageService?.add({ severity: 'error', summary: tableErrorTitle, detail: tableErrorMessage });
15
- }
16
- static actionNotificationSuccess(translationService, action, functionName, customTitleKey, customMessageKey, tableview, item) {
17
- const actionSuccessTitle = I18nUtil.instantActionTranslation(translationService, action, 'success.title', customTitleKey, item, 'general.success', functionName) ?? undefined;
18
- const actionSuccessMessage = I18nUtil.instantActionTranslation(translationService, action, 'success.message', customMessageKey, item, 'general.successMessage', functionName) ?? undefined;
19
- tableview?.messageService?.add({ severity: 'success', summary: actionSuccessTitle, detail: actionSuccessMessage });
20
- }
21
- static actionNotificationError(translationService, action, error, functionName, tableview, item) {
22
- const params = {};
23
- if (error?.message) {
24
- params.errorMessage = `: ${error.message}`;
25
- }
26
- else {
27
- params.errorMessage = '.';
28
- }
29
- const actionErrorTitle = I18nUtil.instantActionTranslation(translationService, action, 'error.title', action.runNotificationErrorTitle, item, 'general.error', functionName, params) ?? undefined;
30
- const actionErrorMessage = I18nUtil.instantActionTranslation(translationService, action, 'error.message', action.runNotificationErrorMessage, item, 'general.errorMessage', functionName, params) ?? undefined;
31
- tableview?.messageService?.add({ severity: 'error', summary: actionErrorTitle, detail: actionErrorMessage });
32
- }
33
- static getFormEditorWarningMessage(translationService, title, message) {
34
- const actionErrorTitle = translationService.instant(title) ?? undefined;
35
- const actionErrorMessage = translationService.instant(message) ?? undefined;
36
- return { severity: 'warn', summary: actionErrorTitle, detail: actionErrorMessage };
37
- }
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvdXRpbHMvdG9hc3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxTQUFTO0lBRVgsTUFBTSxDQUFDLHNCQUFzQixDQUFDLGtCQUFvQyxFQUFFLEtBQTJCLEVBQUUsS0FBVSxFQUFFLFNBQStDO1FBQy9KLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQTtRQUN0QixJQUFJLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDaEIsTUFBTSxDQUFDLFlBQVksR0FBRyxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM5QzthQUFNO1lBQ0gsTUFBTSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7U0FDN0I7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ25CLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUMzSyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDO1FBRXRMLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVNLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBb0MsRUFBRSxNQUE2QixFQUFFLFlBQW9CLEVBQUUsY0FBdUIsRUFBRSxnQkFBeUIsRUFBRSxTQUErQyxFQUFFLElBQVU7UUFDOU8sTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM5SyxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUUzTCxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBQyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBb0MsRUFBRSxNQUE2QixFQUFFLEtBQVUsRUFBRSxZQUFvQixFQUFFLFNBQStDLEVBQUUsSUFBVTtRQUNwTSxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUE7UUFDdEIsSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZLEdBQUcsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDOUM7YUFBTTtZQUNILE1BQU0sQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1NBQzdCO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMseUJBQXlCLEVBQ2xJLElBQUksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM5RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQywyQkFBMkIsRUFDeEksSUFBSSxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUM7UUFFckUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFTSxNQUFNLENBQUMsMkJBQTJCLENBQUMsa0JBQW9DLEVBQUUsS0FBYSxFQUFFLE9BQWU7UUFDMUcsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDO1FBQ3hFLE1BQU0sa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM1RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFDLENBQUM7SUFDcEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgVGFibGVEZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycyc7XG5pbXBvcnQge1RhYmxldmlld0NvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uL2NvbXBvbmVudHMvdGFibGV2aWV3L3NlcnZpY2VzJztcbmltcG9ydCB7STE4blV0aWx9IGZyb20gJy4vaTE4bi51dGlsJztcblxuZXhwb3J0IGNsYXNzIFRvYXN0VXRpbCB7XG5cbiAgICBwdWJsaWMgc3RhdGljIHRhYmxlTm90aWZpY2F0aW9uRXJyb3IodHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCB0YWJsZTogVGFibGVEZXNjcmlwdG9yPGFueT4sIGVycm9yOiBhbnksIHRhYmxldmlldz86IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8YW55LCBhbnk+KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge31cbiAgICAgICAgaWYgKGVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gYDogJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gJy4nO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKHBhcmFtcylcbiAgICAgICAgY29uc3QgdGFibGVFcnJvclRpdGxlID0gSTE4blV0aWwuaW5zdGFudE1vZGVsVHJhbnNsYXRpb24odHJhbnNsYXRpb25TZXJ2aWNlLCB0YWJsZS5tb2RlbCwgJ3RhYmxlLmVycm9yLnRpdGxlJywgdW5kZWZpbmVkLCB1bmRlZmluZWQsICdnZW5lcmFsLmVycm9yJywgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHRhYmxlRXJyb3JNZXNzYWdlID0gSTE4blV0aWwuaW5zdGFudE1vZGVsVHJhbnNsYXRpb24odHJhbnNsYXRpb25TZXJ2aWNlLCB0YWJsZS5tb2RlbCwgJ3RhYmxlLmVycm9yLm1lc3NhZ2UnLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgJ2dlbmVyYWwuZXJyb3JNZXNzYWdlJywgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGFibGV2aWV3Py5tZXNzYWdlU2VydmljZT8uYWRkKHtzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogdGFibGVFcnJvclRpdGxlLCBkZXRhaWw6IHRhYmxlRXJyb3JNZXNzYWdlfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhY3Rpb25Ob3RpZmljYXRpb25TdWNjZXNzKHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPGFueT4sIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBjdXN0b21UaXRsZUtleT86IHN0cmluZywgY3VzdG9tTWVzc2FnZUtleT86IHN0cmluZywgdGFibGV2aWV3PzogVGFibGV2aWV3Q29tcG9uZW50U2VydmljZTxhbnksIGFueT4sIGl0ZW0/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uU3VjY2Vzc1RpdGxlID0gSTE4blV0aWwuaW5zdGFudEFjdGlvblRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uU2VydmljZSwgYWN0aW9uLCAnc3VjY2Vzcy50aXRsZScsIGN1c3RvbVRpdGxlS2V5LCBpdGVtLCAnZ2VuZXJhbC5zdWNjZXNzJywgZnVuY3Rpb25OYW1lKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGFjdGlvblN1Y2Nlc3NNZXNzYWdlID0gSTE4blV0aWwuaW5zdGFudEFjdGlvblRyYW5zbGF0aW9uKHRyYW5zbGF0aW9uU2VydmljZSwgYWN0aW9uLCAnc3VjY2Vzcy5tZXNzYWdlJywgY3VzdG9tTWVzc2FnZUtleSwgaXRlbSwgJ2dlbmVyYWwuc3VjY2Vzc01lc3NhZ2UnLCBmdW5jdGlvbk5hbWUpID8/IHVuZGVmaW5lZDtcblxuICAgICAgICB0YWJsZXZpZXc/Lm1lc3NhZ2VTZXJ2aWNlPy5hZGQoe3NldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6IGFjdGlvblN1Y2Nlc3NUaXRsZSwgZGV0YWlsOiBhY3Rpb25TdWNjZXNzTWVzc2FnZX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWN0aW9uTm90aWZpY2F0aW9uRXJyb3IodHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8YW55PiwgZXJyb3I6IGFueSwgZnVuY3Rpb25OYW1lOiBzdHJpbmcsIHRhYmxldmlldz86IFRhYmxldmlld0NvbXBvbmVudFNlcnZpY2U8YW55LCBhbnk+LCBpdGVtPzogYW55KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge31cbiAgICAgICAgaWYgKGVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gYDogJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMuZXJyb3JNZXNzYWdlID0gJy4nO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbkVycm9yVGl0bGUgPSBJMThuVXRpbC5pbnN0YW50QWN0aW9uVHJhbnNsYXRpb24odHJhbnNsYXRpb25TZXJ2aWNlLCBhY3Rpb24sICdlcnJvci50aXRsZScsIGFjdGlvbi5ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlLFxuICAgICAgICAgICAgaXRlbSwgJ2dlbmVyYWwuZXJyb3InLCBmdW5jdGlvbk5hbWUsIHBhcmFtcykgPz8gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBhY3Rpb25FcnJvck1lc3NhZ2UgPSBJMThuVXRpbC5pbnN0YW50QWN0aW9uVHJhbnNsYXRpb24odHJhbnNsYXRpb25TZXJ2aWNlLCBhY3Rpb24sICdlcnJvci5tZXNzYWdlJywgYWN0aW9uLnJ1bk5vdGlmaWNhdGlvbkVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgIGl0ZW0sICdnZW5lcmFsLmVycm9yTWVzc2FnZScsIGZ1bmN0aW9uTmFtZSwgcGFyYW1zKSA/PyB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGFibGV2aWV3Py5tZXNzYWdlU2VydmljZT8uYWRkKHtzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogYWN0aW9uRXJyb3JUaXRsZSwgZGV0YWlsOiBhY3Rpb25FcnJvck1lc3NhZ2V9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEZvcm1FZGl0b3JXYXJuaW5nTWVzc2FnZSh0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsIHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY3Rpb25FcnJvclRpdGxlID0gdHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQodGl0bGUpID8/IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgYWN0aW9uRXJyb3JNZXNzYWdlID0gdHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQobWVzc2FnZSkgPz8gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4ge3NldmVyaXR5Oid3YXJuJywgc3VtbWFyeTogYWN0aW9uRXJyb3JUaXRsZSwgZGV0YWlsOiBhY3Rpb25FcnJvck1lc3NhZ2V9O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,39 +0,0 @@
1
- import 'reflect-metadata';
2
- import { typeNameDecoratorPropertyName } from '../types';
3
- export class TypeUtil {
4
- static defineReflectTypeName(targetType, typeName) {
5
- if (!typeName) {
6
- typeName = TypeUtil.getDecoratorTypeName(targetType);
7
- if (!typeName) {
8
- console.warn(`Type name not provided for target ${targetType}, nor could be retrieved from decorator. Type name was not registered to reflect.`);
9
- return;
10
- }
11
- }
12
- if (!Reflect.hasOwnMetadata(typeNameDecoratorPropertyName, targetType)) {
13
- Reflect.defineMetadata(typeNameDecoratorPropertyName, typeName, targetType);
14
- }
15
- }
16
- /**
17
- * Gets type name from either decorator or reflect metadata.
18
- * @param type Class.
19
- */
20
- static findTypeName(type) {
21
- let decoratorName = TypeUtil.getDecoratorTypeName(type);
22
- if (decoratorName) {
23
- return decoratorName;
24
- }
25
- decoratorName = Reflect.getMetadata(typeNameDecoratorPropertyName, type);
26
- if (decoratorName) {
27
- return decoratorName;
28
- }
29
- return type.name;
30
- }
31
- /**
32
- * Get value from decorator defined property name
33
- * @param type Class.
34
- */
35
- static getDecoratorTypeName(type) {
36
- return type[typeNameDecoratorPropertyName];
37
- }
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL2xpYi91dGlscy90eXBlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQVksNkJBQTZCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFbEUsTUFBTSxPQUFPLFFBQVE7SUFFVixNQUFNLENBQUMscUJBQXFCLENBQUMsVUFBMEIsRUFBRSxRQUFpQjtRQUM3RSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsUUFBUSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMscUNBQXFDLFVBQVUsbUZBQW1GLENBQUMsQ0FBQztnQkFDakosT0FBTzthQUNWO1NBQ0o7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNwRSxPQUFPLENBQUMsY0FBYyxDQUFDLDZCQUE2QixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMvRTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQW9CO1FBQzNDLElBQUksYUFBYSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLGFBQWEsRUFBRTtZQUNmLE9BQU8sYUFBYSxDQUFDO1NBQ3hCO1FBQ0QsYUFBYSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsNkJBQTZCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxhQUFhLEVBQUU7WUFDZixPQUFPLGFBQWEsQ0FBQztTQUN4QjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQWM7UUFDN0MsT0FBUSxJQUFZLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG5pbXBvcnQge0NsYXNzVHlwZSwgdHlwZU5hbWVEZWNvcmF0b3JQcm9wZXJ0eU5hbWV9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFR5cGVVdGlsIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgZGVmaW5lUmVmbGVjdFR5cGVOYW1lKHRhcmdldFR5cGU6IENsYXNzVHlwZTxhbnk+LCB0eXBlTmFtZT86IHN0cmluZykge1xuICAgICAgICBpZiAoIXR5cGVOYW1lKSB7XG4gICAgICAgICAgICB0eXBlTmFtZSA9IFR5cGVVdGlsLmdldERlY29yYXRvclR5cGVOYW1lKHRhcmdldFR5cGUpO1xuICAgICAgICAgICAgaWYgKCF0eXBlTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVHlwZSBuYW1lIG5vdCBwcm92aWRlZCBmb3IgdGFyZ2V0ICR7dGFyZ2V0VHlwZX0sIG5vciBjb3VsZCBiZSByZXRyaWV2ZWQgZnJvbSBkZWNvcmF0b3IuIFR5cGUgbmFtZSB3YXMgbm90IHJlZ2lzdGVyZWQgdG8gcmVmbGVjdC5gKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVJlZmxlY3QuaGFzT3duTWV0YWRhdGEodHlwZU5hbWVEZWNvcmF0b3JQcm9wZXJ0eU5hbWUsIHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKHR5cGVOYW1lRGVjb3JhdG9yUHJvcGVydHlOYW1lLCB0eXBlTmFtZSwgdGFyZ2V0VHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHR5cGUgbmFtZSBmcm9tIGVpdGhlciBkZWNvcmF0b3Igb3IgcmVmbGVjdCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbmRUeXBlTmFtZSh0eXBlOiBDbGFzc1R5cGU8YW55Pik6IHN0cmluZyB7XG4gICAgICAgIGxldCBkZWNvcmF0b3JOYW1lID0gVHlwZVV0aWwuZ2V0RGVjb3JhdG9yVHlwZU5hbWUodHlwZSk7XG4gICAgICAgIGlmIChkZWNvcmF0b3JOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVjb3JhdG9yTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBkZWNvcmF0b3JOYW1lID0gUmVmbGVjdC5nZXRNZXRhZGF0YSh0eXBlTmFtZURlY29yYXRvclByb3BlcnR5TmFtZSwgdHlwZSk7XG4gICAgICAgIGlmIChkZWNvcmF0b3JOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVjb3JhdG9yTmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHlwZS5uYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB2YWx1ZSBmcm9tIGRlY29yYXRvciBkZWZpbmVkIHByb3BlcnR5IG5hbWVcbiAgICAgKiBAcGFyYW0gdHlwZSBDbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldERlY29yYXRvclR5cGVOYW1lKHR5cGU6IEZ1bmN0aW9uKTogc3RyaW5nfHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiAodHlwZSBhcyBhbnkpW3R5cGVOYW1lRGVjb3JhdG9yUHJvcGVydHlOYW1lXTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbW5nLWNvbW1vbnMvc3JjL21lZGl1c2luYy1tbmctY29tbW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19