@mediusinc/mng-commons 0.7.1 → 0.8.0-rc.1

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 (281) hide show
  1. package/esm2020/lib/api/models/builders/query-param.builder.mjs +58 -58
  2. package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -24
  3. package/esm2020/lib/api/models/filter-param.model.mjs +32 -32
  4. package/esm2020/lib/api/models/index.mjs +8 -8
  5. package/esm2020/lib/api/models/mappers.mjs +12 -12
  6. package/esm2020/lib/api/models/query-mode.model.mjs +17 -17
  7. package/esm2020/lib/api/models/query-param.model.mjs +67 -67
  8. package/esm2020/lib/api/models/query-result.model.mjs +17 -17
  9. package/esm2020/lib/api/models/serialization.model.mjs +1 -1
  10. package/esm2020/lib/api/services/api.abstract.service.mjs +55 -55
  11. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +66 -66
  12. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +22 -22
  13. package/esm2020/lib/api/services/index.mjs +3 -3
  14. package/esm2020/lib/api/utils/index.mjs +2 -2
  15. package/esm2020/lib/api/utils/medius-rest.util.mjs +152 -152
  16. package/esm2020/lib/api/utils/object-serializer.util.mjs +243 -243
  17. package/esm2020/lib/components/action/action.component.mjs +174 -161
  18. package/esm2020/lib/components/action/editor/action-editor.component.mjs +230 -236
  19. package/esm2020/lib/components/action/index.mjs +3 -3
  20. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +1 -1
  21. package/esm2020/lib/components/action/models/action-execution.model.mjs +231 -59
  22. package/esm2020/lib/components/action/models/index.mjs +2 -2
  23. package/esm2020/lib/components/action/route/action-route.component.mjs +125 -127
  24. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +268 -268
  25. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +160 -160
  26. package/esm2020/lib/components/form/editor/form-editor.component.mjs +189 -189
  27. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +18 -18
  28. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +43 -43
  29. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +24 -24
  30. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +79 -56
  31. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +16 -16
  32. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +179 -179
  33. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +156 -156
  34. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +126 -126
  35. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +16 -16
  36. package/esm2020/lib/components/form/formly/fields/index.mjs +9 -9
  37. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +14 -14
  38. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +14 -14
  39. package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
  40. package/esm2020/lib/components/form/index.mjs +3 -3
  41. package/esm2020/lib/components/form/models/form-editor.event.mjs +34 -34
  42. package/esm2020/lib/components/form/models/index.mjs +1 -1
  43. package/esm2020/lib/components/layout/breadcrumb.component.mjs +16 -16
  44. package/esm2020/lib/components/layout/footer.component.mjs +16 -16
  45. package/esm2020/lib/components/layout/index.mjs +6 -6
  46. package/esm2020/lib/components/layout/main-layout.component.mjs +51 -51
  47. package/esm2020/lib/components/layout/menu-item.component.mjs +216 -216
  48. package/esm2020/lib/components/layout/menu.component.mjs +19 -19
  49. package/esm2020/lib/components/layout/services/index.mjs +1 -1
  50. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +192 -192
  51. package/esm2020/lib/components/layout/topbar.component.mjs +57 -57
  52. package/esm2020/lib/components/tableview/index.mjs +6 -6
  53. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  54. package/esm2020/lib/components/tableview/models/table.event.mjs +15 -15
  55. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +35 -35
  56. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +53 -53
  57. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +101 -101
  58. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +41 -41
  59. package/esm2020/lib/components/tableview/table/table.component.mjs +430 -425
  60. package/esm2020/lib/components/tableview/tableview.component.mjs +88 -88
  61. package/esm2020/lib/config/formly.config.mjs +172 -163
  62. package/esm2020/lib/config/index.mjs +1 -1
  63. package/esm2020/lib/config/models/index.mjs +1 -1
  64. package/esm2020/lib/config/models/mng-config.model.mjs +1 -1
  65. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  66. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  67. package/esm2020/lib/data-providers/index.mjs +5 -5
  68. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  69. package/esm2020/lib/data-providers/table.data-provider.mjs +16 -16
  70. package/esm2020/lib/data-providers/tableview.data-provider.mjs +16 -16
  71. package/esm2020/lib/descriptors/action.descriptor.mjs +623 -602
  72. package/esm2020/lib/descriptors/column.descriptor.mjs +227 -227
  73. package/esm2020/lib/descriptors/editor.descriptor.mjs +154 -154
  74. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +20 -20
  75. package/esm2020/lib/descriptors/field.descriptor.interface.mjs +1 -1
  76. package/esm2020/lib/descriptors/field.descriptor.mjs +823 -793
  77. package/esm2020/lib/descriptors/filter.descriptor.mjs +294 -294
  78. package/esm2020/lib/descriptors/index.mjs +11 -11
  79. package/esm2020/lib/descriptors/lookup.descriptor.mjs +1 -1
  80. package/esm2020/lib/descriptors/model.descriptor.mjs +33 -33
  81. package/esm2020/lib/descriptors/table.descriptor.mjs +213 -213
  82. package/esm2020/lib/descriptors/tableview.descriptor.mjs +134 -134
  83. package/esm2020/lib/directives/component.directive.mjs +43 -43
  84. package/esm2020/lib/directives/index.mjs +2 -2
  85. package/esm2020/lib/directives/template.directive.mjs +27 -27
  86. package/esm2020/lib/mng-commons.module.mjs +426 -426
  87. package/esm2020/lib/models/column-value.model.mjs +1 -1
  88. package/esm2020/lib/models/enum.model.mjs +1 -1
  89. package/esm2020/lib/models/error.model.mjs +1 -1
  90. package/esm2020/lib/models/index.mjs +6 -6
  91. package/esm2020/lib/models/menu.model.mjs +1 -1
  92. package/esm2020/lib/models/user.model.mjs +1 -1
  93. package/esm2020/lib/models/view-container.model.mjs +1 -1
  94. package/esm2020/lib/pipes/boolean.pipe.mjs +26 -26
  95. package/esm2020/lib/pipes/enum.pipe.mjs +24 -24
  96. package/esm2020/lib/pipes/i18n-property.pipe.mjs +17 -17
  97. package/esm2020/lib/pipes/index.mjs +5 -5
  98. package/esm2020/lib/pipes/json-path.pipe.mjs +79 -79
  99. package/esm2020/lib/pipes/link-formatter.pipe.mjs +38 -38
  100. package/esm2020/lib/router/index.mjs +1 -1
  101. package/esm2020/lib/router/models/index.mjs +1 -1
  102. package/esm2020/lib/router/models/router.model.mjs +1 -1
  103. package/esm2020/lib/router/route-builder.mjs +431 -431
  104. package/esm2020/lib/services/action-executor.service.mjs +535 -361
  105. package/esm2020/lib/services/commons.service.mjs +343 -343
  106. package/esm2020/lib/services/configuration.service.mjs +110 -110
  107. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  108. package/esm2020/lib/services/index.mjs +6 -6
  109. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  110. package/esm2020/lib/services/internal/commons-init.service.mjs +43 -43
  111. package/esm2020/lib/services/internal/index.mjs +2 -2
  112. package/esm2020/lib/services/navigation.service.mjs +47 -47
  113. package/esm2020/lib/services/providers/config-service.provider.mjs +29 -29
  114. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  115. package/esm2020/lib/services/providers/index.mjs +2 -2
  116. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  117. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  118. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  119. package/esm2020/lib/services/tokens/index.mjs +4 -4
  120. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  121. package/esm2020/lib/services/view-container.component.service.mjs +34 -34
  122. package/esm2020/lib/types/index.mjs +2 -2
  123. package/esm2020/lib/types/type.decorator.mjs +12 -12
  124. package/esm2020/lib/types/type.model.mjs +2 -2
  125. package/esm2020/lib/utils/action-data-provider.util.mjs +116 -116
  126. package/esm2020/lib/utils/editor-formly.util.mjs +205 -202
  127. package/esm2020/lib/utils/enum.util.mjs +81 -81
  128. package/esm2020/lib/utils/i18n.util.mjs +232 -232
  129. package/esm2020/lib/utils/index.mjs +7 -7
  130. package/esm2020/lib/utils/model.util.mjs +59 -59
  131. package/esm2020/lib/utils/notification.util.mjs +45 -45
  132. package/esm2020/lib/utils/route.util.mjs +23 -23
  133. package/esm2020/lib/utils/styles.util.mjs +40 -40
  134. package/esm2020/lib/utils/type.util.mjs +76 -76
  135. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  136. package/esm2020/public-api.mjs +39 -39
  137. package/fesm2015/mediusinc-mng-commons.mjs +9698 -9261
  138. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  139. package/fesm2020/mediusinc-mng-commons.mjs +9570 -9130
  140. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  141. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  142. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  143. package/lib/api/models/filter-param.model.d.ts +23 -23
  144. package/lib/api/models/index.d.ts +8 -8
  145. package/lib/api/models/mappers.d.ts +6 -6
  146. package/lib/api/models/query-mode.model.d.ts +16 -16
  147. package/lib/api/models/query-param.model.d.ts +31 -31
  148. package/lib/api/models/query-result.model.d.ts +23 -23
  149. package/lib/api/models/serialization.model.d.ts +8 -8
  150. package/lib/api/services/api.abstract.service.d.ts +24 -24
  151. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  152. package/lib/api/services/get-all-api.abstract.service.d.ts +11 -11
  153. package/lib/api/services/index.d.ts +3 -3
  154. package/lib/api/utils/index.d.ts +2 -2
  155. package/lib/api/utils/medius-rest.util.d.ts +14 -14
  156. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  157. package/lib/components/action/action.component.d.ts +66 -65
  158. package/lib/components/action/editor/action-editor.component.d.ts +62 -59
  159. package/lib/components/action/index.d.ts +3 -3
  160. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  161. package/lib/components/action/models/action-execution.model.d.ts +126 -57
  162. package/lib/components/action/models/index.d.ts +2 -2
  163. package/lib/components/action/route/action-route.component.d.ts +31 -31
  164. package/lib/components/form/autocomplete/autocomplete.component.d.ts +53 -53
  165. package/lib/components/form/dropdown/dropdown.component.d.ts +44 -44
  166. package/lib/components/form/editor/form-editor.component.d.ts +45 -45
  167. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +12 -12
  168. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +14 -14
  169. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +12 -12
  170. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +19 -14
  171. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +6 -6
  172. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +44 -44
  173. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +22 -22
  174. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +37 -37
  175. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -6
  176. package/lib/components/form/formly/fields/index.d.ts +9 -9
  177. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +6 -6
  178. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +6 -6
  179. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  180. package/lib/components/form/index.d.ts +3 -3
  181. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  182. package/lib/components/form/models/index.d.ts +1 -1
  183. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  184. package/lib/components/layout/footer.component.d.ts +9 -9
  185. package/lib/components/layout/index.d.ts +6 -6
  186. package/lib/components/layout/main-layout.component.d.ts +20 -20
  187. package/lib/components/layout/menu-item.component.d.ts +37 -37
  188. package/lib/components/layout/menu.component.d.ts +10 -10
  189. package/lib/components/layout/services/index.d.ts +1 -1
  190. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  191. package/lib/components/layout/topbar.component.d.ts +24 -24
  192. package/lib/components/tableview/index.d.ts +6 -6
  193. package/lib/components/tableview/models/index.d.ts +1 -1
  194. package/lib/components/tableview/models/table.event.d.ts +17 -17
  195. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +19 -19
  196. package/lib/components/tableview/route/tableview-route.component.d.ts +18 -18
  197. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +31 -31
  198. package/lib/components/tableview/table/column-value/column-value.component.d.ts +17 -17
  199. package/lib/components/tableview/table/table.component.d.ts +104 -102
  200. package/lib/components/tableview/tableview.component.d.ts +37 -37
  201. package/lib/config/formly.config.d.ts +15 -15
  202. package/lib/config/index.d.ts +1 -1
  203. package/lib/config/models/index.d.ts +1 -1
  204. package/lib/config/models/mng-config.model.d.ts +34 -34
  205. package/lib/data-providers/base.data-provider.d.ts +14 -14
  206. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  207. package/lib/data-providers/index.d.ts +5 -5
  208. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  209. package/lib/data-providers/table.data-provider.d.ts +14 -14
  210. package/lib/data-providers/tableview.data-provider.d.ts +15 -15
  211. package/lib/descriptors/action.descriptor.d.ts +277 -270
  212. package/lib/descriptors/column.descriptor.d.ts +76 -76
  213. package/lib/descriptors/editor.descriptor.d.ts +44 -44
  214. package/lib/descriptors/field-validation.descriptor.d.ts +18 -18
  215. package/lib/descriptors/field.descriptor.d.ts +326 -314
  216. package/lib/descriptors/field.descriptor.interface.d.ts +9 -9
  217. package/lib/descriptors/filter.descriptor.d.ts +127 -127
  218. package/lib/descriptors/index.d.ts +11 -11
  219. package/lib/descriptors/lookup.descriptor.d.ts +17 -17
  220. package/lib/descriptors/model.descriptor.d.ts +15 -15
  221. package/lib/descriptors/table.descriptor.d.ts +80 -80
  222. package/lib/descriptors/tableview.descriptor.d.ts +42 -42
  223. package/lib/directives/component.directive.d.ts +16 -16
  224. package/lib/directives/index.d.ts +2 -2
  225. package/lib/directives/template.directive.d.ts +13 -13
  226. package/lib/mng-commons.module.d.ts +86 -86
  227. package/lib/models/column-value.model.d.ts +4 -4
  228. package/lib/models/enum.model.d.ts +6 -6
  229. package/lib/models/error.model.d.ts +14 -14
  230. package/lib/models/index.d.ts +6 -6
  231. package/lib/models/menu.model.d.ts +25 -25
  232. package/lib/models/user.model.d.ts +8 -8
  233. package/lib/models/view-container.model.d.ts +6 -6
  234. package/lib/pipes/boolean.pipe.d.ts +7 -7
  235. package/lib/pipes/enum.pipe.d.ts +8 -8
  236. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  237. package/lib/pipes/index.d.ts +5 -5
  238. package/lib/pipes/json-path.pipe.d.ts +13 -13
  239. package/lib/pipes/link-formatter.pipe.d.ts +11 -11
  240. package/lib/router/index.d.ts +1 -1
  241. package/lib/router/models/index.d.ts +1 -1
  242. package/lib/router/models/router.model.d.ts +22 -22
  243. package/lib/router/route-builder.d.ts +86 -86
  244. package/lib/services/action-executor.service.d.ts +149 -104
  245. package/lib/services/commons.service.d.ts +72 -72
  246. package/lib/services/configuration.service.d.ts +36 -36
  247. package/lib/services/error-mapper.service.d.ts +7 -7
  248. package/lib/services/index.d.ts +6 -6
  249. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  250. package/lib/services/internal/commons-init.service.d.ts +16 -16
  251. package/lib/services/internal/index.d.ts +2 -2
  252. package/lib/services/navigation.service.d.ts +14 -14
  253. package/lib/services/providers/config-service.provider.d.ts +6 -6
  254. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  255. package/lib/services/providers/index.d.ts +2 -2
  256. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  257. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  258. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  259. package/lib/services/tokens/index.d.ts +4 -4
  260. package/lib/services/tokens/module-config.token.d.ts +3 -3
  261. package/lib/services/view-container.component.service.d.ts +22 -22
  262. package/lib/types/index.d.ts +2 -2
  263. package/lib/types/type.decorator.d.ts +4 -4
  264. package/lib/types/type.model.d.ts +20 -17
  265. package/lib/utils/action-data-provider.util.d.ts +16 -17
  266. package/lib/utils/editor-formly.util.d.ts +10 -10
  267. package/lib/utils/enum.util.d.ts +50 -50
  268. package/lib/utils/i18n.util.d.ts +56 -56
  269. package/lib/utils/index.d.ts +7 -7
  270. package/lib/utils/model.util.d.ts +8 -8
  271. package/lib/utils/notification.util.d.ts +11 -11
  272. package/lib/utils/route.util.d.ts +4 -4
  273. package/lib/utils/styles.util.d.ts +14 -14
  274. package/lib/utils/type.util.d.ts +36 -36
  275. package/mediusinc-mng-commons-0.8.0-rc.1.tgz +0 -0
  276. package/mediusinc-mng-commons.d.ts +5 -5
  277. package/package.json +1 -1
  278. package/public-api.d.ts +28 -28
  279. package/scss/common/theme/designer/_components.scss +1 -1
  280. package/scss/mng-overrides/_theme_forms.scss +16 -0
  281. package/scss/mng-overrides/_theme_styles.scss +1 -0
@@ -1,82 +1,82 @@
1
- export class EnumUtil {
2
- /**
3
- * Returns array of names for constants in enum.
4
- * @param enumType Enum object.
5
- */
6
- static getConstantNames(enumType) {
7
- return EnumUtil.getConstantNamesFromEnumObject(enumType);
8
- }
9
- /**
10
- * Returns array of names for constants in enum.
11
- * @param enumObj Enum object.
12
- */
13
- static getConstantNamesFromEnumObject(enumObj) {
14
- // in number enum, the numbers are also represented in objects and should be filtered out
15
- return Object.keys(enumObj).filter(v => isNaN(+v));
16
- }
17
- /**
18
- * Returns array of string values for constants in enum.
19
- * @param enumType Enum object.
20
- */
21
- static getConstantValuesAsString(enumType) {
22
- return Object.keys(enumType).map(v => enumType[v]);
23
- }
24
- /**
25
- * Returns array of number values for constants in enum.
26
- * @param enumType Enum object.
27
- */
28
- static getConstantValuesAsNumber(enumType) {
29
- return Object.keys(enumType)
30
- .filter(v => !isNaN(+v))
31
- .map(v => +v);
32
- }
33
- /**
34
- * Returns array of type EnumValue for all constants in enum.
35
- * @param enumType Enum object.
36
- * @param nameAsValue If use name of constant as value (optional, default: false).
37
- * @param titlePath Base path for title to use as translation (optional).
38
- */
39
- static fromConstantsAsEnumValueArray(enumType, nameAsValue = false, titlePath) {
40
- return EnumUtil.getConstantNames(enumType).map(n => ({ name: n, title: `${titlePath ? `${titlePath}.` : ''}${n}`, value: nameAsValue ? n : enumType[n] }));
41
- }
42
- /**
43
- * Returns array of type EnumValue for provided values in enum.
44
- * @param enumType Enum object.
45
- * @param nameAsValue If use name of constant as value (optional, default: false).
46
- * @param titlePath Base path for title to use as translation (optional).
47
- */
48
- static fromValuesAsEnumValueArray(enumType, values, nameAsValue = false, titlePath) {
49
- return values.map(v => {
50
- const k = EnumUtil.getConstantName(enumType, v);
51
- return { name: k, title: `${titlePath ? `${titlePath}.` : ''}${k}`, value: nameAsValue ? k : v };
52
- });
53
- }
54
- /**
55
- * Gets constant name for value.
56
- * @param enumType Enum object.
57
- * @param value Value of enum constant.
58
- */
59
- static getConstantName(enumType, value) {
60
- if (typeof value === 'string') {
61
- return EnumUtil.getConstantNames(enumType).find(c => enumType[c] === value) ?? null;
62
- }
63
- else {
64
- return typeof enumType[value] !== 'undefined' ? enumType[value] : null;
65
- }
66
- }
67
- /**
68
- * Gets constant name for value.
69
- * @param enumObj Enum object.
70
- * @param value Value of enum constant.
71
- */
72
- static getConstantNameFromEnumObject(enumObj, value) {
73
- const enumObjAny = enumObj;
74
- if (typeof value === 'string') {
75
- return EnumUtil.getConstantNamesFromEnumObject(enumObj).find(c => enumObjAny[c] === value) ?? null;
76
- }
77
- else {
78
- return typeof enumObjAny[value] !== 'undefined' ? enumObjAny[value] : null;
79
- }
80
- }
81
- }
1
+ export class EnumUtil {
2
+ /**
3
+ * Returns array of names for constants in enum.
4
+ * @param enumType Enum object.
5
+ */
6
+ static getConstantNames(enumType) {
7
+ return EnumUtil.getConstantNamesFromEnumObject(enumType);
8
+ }
9
+ /**
10
+ * Returns array of names for constants in enum.
11
+ * @param enumObj Enum object.
12
+ */
13
+ static getConstantNamesFromEnumObject(enumObj) {
14
+ // in number enum, the numbers are also represented in objects and should be filtered out
15
+ return Object.keys(enumObj).filter(v => isNaN(+v));
16
+ }
17
+ /**
18
+ * Returns array of string values for constants in enum.
19
+ * @param enumType Enum object.
20
+ */
21
+ static getConstantValuesAsString(enumType) {
22
+ return Object.keys(enumType).map(v => enumType[v]);
23
+ }
24
+ /**
25
+ * Returns array of number values for constants in enum.
26
+ * @param enumType Enum object.
27
+ */
28
+ static getConstantValuesAsNumber(enumType) {
29
+ return Object.keys(enumType)
30
+ .filter(v => !isNaN(+v))
31
+ .map(v => +v);
32
+ }
33
+ /**
34
+ * Returns array of type EnumValue for all constants in enum.
35
+ * @param enumType Enum object.
36
+ * @param nameAsValue If use name of constant as value (optional, default: false).
37
+ * @param titlePath Base path for title to use as translation (optional).
38
+ */
39
+ static fromConstantsAsEnumValueArray(enumType, nameAsValue = false, titlePath) {
40
+ return EnumUtil.getConstantNames(enumType).map(n => ({ name: n, title: `${titlePath ? `${titlePath}.` : ''}${n}`, value: nameAsValue ? n : enumType[n] }));
41
+ }
42
+ /**
43
+ * Returns array of type EnumValue for provided values in enum.
44
+ * @param enumType Enum object.
45
+ * @param nameAsValue If use name of constant as value (optional, default: false).
46
+ * @param titlePath Base path for title to use as translation (optional).
47
+ */
48
+ static fromValuesAsEnumValueArray(enumType, values, nameAsValue = false, titlePath) {
49
+ return values.map(v => {
50
+ const k = EnumUtil.getConstantName(enumType, v);
51
+ return { name: k, title: `${titlePath ? `${titlePath}.` : ''}${k}`, value: nameAsValue ? k : v };
52
+ });
53
+ }
54
+ /**
55
+ * Gets constant name for value.
56
+ * @param enumType Enum object.
57
+ * @param value Value of enum constant.
58
+ */
59
+ static getConstantName(enumType, value) {
60
+ if (typeof value === 'string') {
61
+ return EnumUtil.getConstantNames(enumType).find(c => enumType[c] === value) ?? null;
62
+ }
63
+ else {
64
+ return typeof enumType[value] !== 'undefined' ? enumType[value] : null;
65
+ }
66
+ }
67
+ /**
68
+ * Gets constant name for value.
69
+ * @param enumObj Enum object.
70
+ * @param value Value of enum constant.
71
+ */
72
+ static getConstantNameFromEnumObject(enumObj, value) {
73
+ const enumObjAny = enumObj;
74
+ if (typeof value === 'string') {
75
+ return EnumUtil.getConstantNamesFromEnumObject(enumObj).find(c => enumObjAny[c] === value) ?? null;
76
+ }
77
+ else {
78
+ return typeof enumObjAny[value] !== 'undefined' ? enumObjAny[value] : null;
79
+ }
80
+ }
81
+ }
82
82
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy9lbnVtLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLFFBQVE7SUFDakI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWtCO1FBQzdDLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsOEJBQThCLENBQUMsT0FBZTtRQUN4RCx5RkFBeUY7UUFDekYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUFrQjtRQUN0RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQWlCLENBQVcsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMseUJBQXlCLENBQUMsUUFBa0I7UUFDdEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLFFBQWtCLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxTQUFrQjtRQUNuRyxPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBNEIsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUEsQ0FDckksQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxRQUFrQixFQUFFLE1BQStCLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxTQUFrQjtRQUNqSSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsT0FBTyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQStCLENBQUM7UUFDakksQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsUUFBa0IsRUFBRSxLQUF1QjtRQUNyRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3ZGO2FBQU07WUFDSCxPQUFPLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLEtBQUssQ0FBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDdEY7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxPQUFlLEVBQUUsS0FBdUI7UUFDaEYsTUFBTSxVQUFVLEdBQUcsT0FBYyxDQUFDO1FBQ2xDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDdEc7YUFBTTtZQUNILE9BQU8sT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBRSxVQUFVLENBQUMsS0FBSyxDQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUMxRjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW51bVZhbHVlfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtFbnVtQ29uc3RhbnRUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRW51bVV0aWwge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZXMoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWVzRnJvbUVudW1PYmplY3QoZW51bVR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtT2JqIEVudW0gb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29uc3RhbnROYW1lc0Zyb21FbnVtT2JqZWN0KGVudW1PYmo6IG9iamVjdCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICAvLyBpbiBudW1iZXIgZW51bSwgdGhlIG51bWJlcnMgYXJlIGFsc28gcmVwcmVzZW50ZWQgaW4gb2JqZWN0cyBhbmQgc2hvdWxkIGJlIGZpbHRlcmVkIG91dFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bU9iaikuZmlsdGVyKHYgPT4gaXNOYU4oK3YpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50VmFsdWVzQXNTdHJpbmcoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSkubWFwKHYgPT4gZW51bVR5cGVbdiBhcyBrZXlvZiBvYmplY3RdIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiBudW1iZXIgdmFsdWVzIGZvciBjb25zdGFudHMgaW4gZW51bS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgRW51bSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb25zdGFudFZhbHVlc0FzTnVtYmVyKGVudW1UeXBlOiBFbnVtVHlwZSk6IEFycmF5PG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bVR5cGUpXG4gICAgICAgICAgICAuZmlsdGVyKHYgPT4gIWlzTmFOKCt2KSlcbiAgICAgICAgICAgIC5tYXAodiA9PiArdik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiB0eXBlIEVudW1WYWx1ZSBmb3IgYWxsIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gbmFtZUFzVmFsdWUgSWYgdXNlIG5hbWUgb2YgY29uc3RhbnQgYXMgdmFsdWUgKG9wdGlvbmFsLCBkZWZhdWx0OiBmYWxzZSkuXG4gICAgICogQHBhcmFtIHRpdGxlUGF0aCBCYXNlIHBhdGggZm9yIHRpdGxlIHRvIHVzZSBhcyB0cmFuc2xhdGlvbiAob3B0aW9uYWwpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNvbnN0YW50c0FzRW51bVZhbHVlQXJyYXkoZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIEVudW1VdGlsLmdldENvbnN0YW50TmFtZXMoZW51bVR5cGUpLm1hcChcbiAgICAgICAgICAgIG4gPT4gPEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+PntuYW1lOiBuLCB0aXRsZTogYCR7dGl0bGVQYXRoID8gYCR7dGl0bGVQYXRofS5gIDogJyd9JHtufWAsIHZhbHVlOiBuYW1lQXNWYWx1ZSA/IG4gOiBlbnVtVHlwZVtuXX1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFycmF5IG9mIHR5cGUgRW51bVZhbHVlIGZvciBwcm92aWRlZCB2YWx1ZXMgaW4gZW51bS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgRW51bSBvYmplY3QuXG4gICAgICogQHBhcmFtIG5hbWVBc1ZhbHVlIElmIHVzZSBuYW1lIG9mIGNvbnN0YW50IGFzIHZhbHVlIChvcHRpb25hbCwgZGVmYXVsdDogZmFsc2UpLlxuICAgICAqIEBwYXJhbSB0aXRsZVBhdGggQmFzZSBwYXRoIGZvciB0aXRsZSB0byB1c2UgYXMgdHJhbnNsYXRpb24gKG9wdGlvbmFsKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21WYWx1ZXNBc0VudW1WYWx1ZUFycmF5KGVudW1UeXBlOiBFbnVtVHlwZSwgdmFsdWVzOiBBcnJheTxFbnVtQ29uc3RhbnRUeXBlPiwgbmFtZUFzVmFsdWUgPSBmYWxzZSwgdGl0bGVQYXRoPzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXMubWFwKHYgPT4ge1xuICAgICAgICAgICAgY29uc3QgayA9IEVudW1VdGlsLmdldENvbnN0YW50TmFtZShlbnVtVHlwZSwgdik7XG4gICAgICAgICAgICByZXR1cm4ge25hbWU6IGssIHRpdGxlOiBgJHt0aXRsZVBhdGggPyBgJHt0aXRsZVBhdGh9LmAgOiAnJ30ke2t9YCwgdmFsdWU6IG5hbWVBc1ZhbHVlID8gayA6IHZ9IGFzIEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGNvbnN0YW50IG5hbWUgZm9yIHZhbHVlLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgZW51bSBjb25zdGFudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZShlbnVtVHlwZTogRW51bVR5cGUsIHZhbHVlOiBFbnVtQ29uc3RhbnRUeXBlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gRW51bVV0aWwuZ2V0Q29uc3RhbnROYW1lcyhlbnVtVHlwZSkuZmluZChjID0+IGVudW1UeXBlW2NdID09PSB2YWx1ZSkgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgZW51bVR5cGVbdmFsdWVdICE9PSAndW5kZWZpbmVkJyA/IChlbnVtVHlwZVt2YWx1ZV0gYXMgc3RyaW5nKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGNvbnN0YW50IG5hbWUgZm9yIHZhbHVlLlxuICAgICAqIEBwYXJhbSBlbnVtT2JqIEVudW0gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBvZiBlbnVtIGNvbnN0YW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29uc3RhbnROYW1lRnJvbUVudW1PYmplY3QoZW51bU9iajogb2JqZWN0LCB2YWx1ZTogRW51bUNvbnN0YW50VHlwZSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCBlbnVtT2JqQW55ID0gZW51bU9iaiBhcyBhbnk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gRW51bVV0aWwuZ2V0Q29uc3RhbnROYW1lc0Zyb21FbnVtT2JqZWN0KGVudW1PYmopLmZpbmQoYyA9PiBlbnVtT2JqQW55W2NdID09PSB2YWx1ZSkgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgZW51bU9iakFueVt2YWx1ZV0gIT09ICd1bmRlZmluZWQnID8gKGVudW1PYmpBbnlbdmFsdWVdIGFzIHN0cmluZykgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19