@mediusinc/mng-commons 0.10.1 → 0.10.3-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/esm2020/lib/api/models/builders/query-param.builder.mjs +58 -58
  2. package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -24
  3. package/esm2020/lib/api/models/filter-param.model.mjs +32 -32
  4. package/esm2020/lib/api/models/index.mjs +8 -8
  5. package/esm2020/lib/api/models/mappers.mjs +12 -12
  6. package/esm2020/lib/api/models/query-mode.model.mjs +17 -17
  7. package/esm2020/lib/api/models/query-param.model.mjs +67 -67
  8. package/esm2020/lib/api/models/query-result.model.mjs +17 -17
  9. package/esm2020/lib/api/models/serialization.model.mjs +1 -1
  10. package/esm2020/lib/api/services/api.abstract.service.mjs +55 -55
  11. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +67 -67
  12. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +22 -22
  13. package/esm2020/lib/api/services/index.mjs +3 -3
  14. package/esm2020/lib/api/utils/index.mjs +2 -2
  15. package/esm2020/lib/api/utils/medius-rest.util.mjs +151 -151
  16. package/esm2020/lib/api/utils/object-serializer.util.mjs +243 -243
  17. package/esm2020/lib/components/action/action.component.mjs +199 -199
  18. package/esm2020/lib/components/action/editor/action-editor.component.mjs +247 -247
  19. package/esm2020/lib/components/action/index.mjs +3 -3
  20. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +1 -1
  21. package/esm2020/lib/components/action/models/action-execution.model.mjs +235 -235
  22. package/esm2020/lib/components/action/models/index.mjs +2 -2
  23. package/esm2020/lib/components/action/route/action-route.component.mjs +124 -124
  24. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +277 -277
  25. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +168 -168
  26. package/esm2020/lib/components/form/editor/form-editor.component.mjs +211 -211
  27. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +48 -48
  28. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +43 -43
  29. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +24 -24
  30. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +102 -102
  31. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +22 -22
  32. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +179 -179
  33. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +173 -173
  34. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +150 -155
  35. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +16 -16
  36. package/esm2020/lib/components/form/formly/fields/index.mjs +9 -9
  37. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +14 -14
  38. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +14 -14
  39. package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
  40. package/esm2020/lib/components/form/index.mjs +3 -3
  41. package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
  42. package/esm2020/lib/components/form/models/index.mjs +1 -1
  43. package/esm2020/lib/components/layout/breadcrumb.component.mjs +16 -16
  44. package/esm2020/lib/components/layout/footer.component.mjs +16 -16
  45. package/esm2020/lib/components/layout/index.mjs +7 -7
  46. package/esm2020/lib/components/layout/main-layout.component.mjs +51 -51
  47. package/esm2020/lib/components/layout/menu-item.component.mjs +238 -238
  48. package/esm2020/lib/components/layout/menu.component.mjs +20 -20
  49. package/esm2020/lib/components/layout/services/index.mjs +1 -1
  50. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +192 -192
  51. package/esm2020/lib/components/layout/topbar.component.mjs +57 -57
  52. package/esm2020/lib/components/layout/version.component.mjs +57 -57
  53. package/esm2020/lib/components/tableview/index.mjs +6 -6
  54. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  55. package/esm2020/lib/components/tableview/models/table.event.mjs +15 -15
  56. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +57 -57
  57. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +60 -60
  58. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +101 -101
  59. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +70 -70
  60. package/esm2020/lib/components/tableview/table/table.component.mjs +497 -497
  61. package/esm2020/lib/components/tableview/tableview.component.mjs +91 -91
  62. package/esm2020/lib/config/formly.config.mjs +180 -180
  63. package/esm2020/lib/config/index.mjs +1 -1
  64. package/esm2020/lib/config/models/index.mjs +1 -1
  65. package/esm2020/lib/config/models/mng-config.model.mjs +1 -1
  66. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  67. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  68. package/esm2020/lib/data-providers/index.mjs +5 -5
  69. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  70. package/esm2020/lib/data-providers/table.data-provider.mjs +16 -16
  71. package/esm2020/lib/data-providers/tableview.data-provider.mjs +16 -16
  72. package/esm2020/lib/descriptors/action.descriptor.mjs +587 -587
  73. package/esm2020/lib/descriptors/column.descriptor.mjs +264 -264
  74. package/esm2020/lib/descriptors/editor.descriptor.mjs +146 -146
  75. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +20 -20
  76. package/esm2020/lib/descriptors/field.descriptor.mjs +819 -819
  77. package/esm2020/lib/descriptors/filter.descriptor.mjs +288 -288
  78. package/esm2020/lib/descriptors/index.mjs +9 -9
  79. package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
  80. package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
  81. package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
  82. package/esm2020/lib/descriptors/model.descriptor.mjs +33 -33
  83. package/esm2020/lib/descriptors/table.descriptor.mjs +197 -197
  84. package/esm2020/lib/descriptors/tableview.descriptor.mjs +134 -134
  85. package/esm2020/lib/descriptors/types/action.type.mjs +52 -52
  86. package/esm2020/lib/descriptors/types/column.type.mjs +10 -10
  87. package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
  88. package/esm2020/lib/descriptors/types/field.type.mjs +52 -52
  89. package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
  90. package/esm2020/lib/descriptors/types/index.mjs +6 -6
  91. package/esm2020/lib/descriptors/types/table.type.mjs +16 -16
  92. package/esm2020/lib/directives/component.directive.mjs +43 -43
  93. package/esm2020/lib/directives/index.mjs +2 -2
  94. package/esm2020/lib/directives/template.directive.mjs +27 -27
  95. package/esm2020/lib/mng-commons.module.mjs +441 -441
  96. package/esm2020/lib/models/column-value.model.mjs +1 -1
  97. package/esm2020/lib/models/enum.model.mjs +1 -1
  98. package/esm2020/lib/models/error.model.mjs +1 -1
  99. package/esm2020/lib/models/index.mjs +7 -7
  100. package/esm2020/lib/models/menu.model.mjs +1 -1
  101. package/esm2020/lib/models/user.model.mjs +1 -1
  102. package/esm2020/lib/models/version.model.mjs +1 -1
  103. package/esm2020/lib/models/view-container.model.mjs +1 -1
  104. package/esm2020/lib/pipes/boolean.pipe.mjs +26 -26
  105. package/esm2020/lib/pipes/enum.pipe.mjs +24 -24
  106. package/esm2020/lib/pipes/i18n-property.pipe.mjs +17 -17
  107. package/esm2020/lib/pipes/index.mjs +5 -5
  108. package/esm2020/lib/pipes/json-path.pipe.mjs +79 -79
  109. package/esm2020/lib/pipes/link-formatter.pipe.mjs +38 -38
  110. package/esm2020/lib/router/index.mjs +2 -2
  111. package/esm2020/lib/router/models/index.mjs +1 -1
  112. package/esm2020/lib/router/models/router.model.mjs +1 -1
  113. package/esm2020/lib/router/route-builder.mjs +425 -425
  114. package/esm2020/lib/router/tableview-route-builder.mjs +159 -159
  115. package/esm2020/lib/security/authorization.guard.mjs +25 -25
  116. package/esm2020/lib/security/authorization.service.mjs +46 -46
  117. package/esm2020/lib/security/authorization.util.mjs +15 -15
  118. package/esm2020/lib/security/index.mjs +3 -3
  119. package/esm2020/lib/security/model/authorization.type.mjs +7 -7
  120. package/esm2020/lib/security/model/index.mjs +3 -3
  121. package/esm2020/lib/security/model/permission-service.interface.mjs +1 -1
  122. package/esm2020/lib/security/model/permissions.model.mjs +94 -94
  123. package/esm2020/lib/services/action-executor.service.mjs +535 -535
  124. package/esm2020/lib/services/commons.service.mjs +342 -342
  125. package/esm2020/lib/services/configuration.service.mjs +110 -110
  126. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  127. package/esm2020/lib/services/index.mjs +6 -6
  128. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  129. package/esm2020/lib/services/internal/commons-init.service.mjs +43 -43
  130. package/esm2020/lib/services/internal/index.mjs +2 -2
  131. package/esm2020/lib/services/navigation.service.mjs +47 -47
  132. package/esm2020/lib/services/providers/config-service.provider.mjs +29 -29
  133. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  134. package/esm2020/lib/services/providers/index.mjs +2 -2
  135. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  136. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  137. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  138. package/esm2020/lib/services/tokens/index.mjs +4 -4
  139. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  140. package/esm2020/lib/services/version.service.mjs +38 -38
  141. package/esm2020/lib/services/view-container.component.service.mjs +34 -34
  142. package/esm2020/lib/types/index.mjs +2 -2
  143. package/esm2020/lib/types/type.decorator.mjs +12 -12
  144. package/esm2020/lib/types/type.model.mjs +1 -1
  145. package/esm2020/lib/utils/action-data-provider.util.mjs +144 -144
  146. package/esm2020/lib/utils/editor-formly.util.mjs +242 -242
  147. package/esm2020/lib/utils/enum.util.mjs +81 -81
  148. package/esm2020/lib/utils/i18n.util.mjs +232 -232
  149. package/esm2020/lib/utils/index.mjs +7 -7
  150. package/esm2020/lib/utils/model.util.mjs +59 -59
  151. package/esm2020/lib/utils/notification.util.mjs +45 -45
  152. package/esm2020/lib/utils/route.util.mjs +23 -23
  153. package/esm2020/lib/utils/styles.util.mjs +40 -40
  154. package/esm2020/lib/utils/type.util.mjs +76 -76
  155. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  156. package/esm2020/public-api.mjs +51 -51
  157. package/fesm2015/mediusinc-mng-commons.mjs +10632 -10637
  158. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  159. package/fesm2020/mediusinc-mng-commons.mjs +10481 -10486
  160. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  161. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  162. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  163. package/lib/api/models/filter-param.model.d.ts +23 -23
  164. package/lib/api/models/index.d.ts +8 -8
  165. package/lib/api/models/mappers.d.ts +6 -6
  166. package/lib/api/models/query-mode.model.d.ts +16 -16
  167. package/lib/api/models/query-param.model.d.ts +31 -31
  168. package/lib/api/models/query-result.model.d.ts +23 -23
  169. package/lib/api/models/serialization.model.d.ts +8 -8
  170. package/lib/api/services/api.abstract.service.d.ts +24 -24
  171. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  172. package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
  173. package/lib/api/services/index.d.ts +3 -3
  174. package/lib/api/utils/index.d.ts +2 -2
  175. package/lib/api/utils/medius-rest.util.d.ts +15 -15
  176. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  177. package/lib/components/action/action.component.d.ts +75 -75
  178. package/lib/components/action/editor/action-editor.component.d.ts +64 -64
  179. package/lib/components/action/index.d.ts +3 -3
  180. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  181. package/lib/components/action/models/action-execution.model.d.ts +129 -129
  182. package/lib/components/action/models/index.d.ts +2 -2
  183. package/lib/components/action/route/action-route.component.d.ts +31 -31
  184. package/lib/components/form/autocomplete/autocomplete.component.d.ts +56 -56
  185. package/lib/components/form/dropdown/dropdown.component.d.ts +47 -47
  186. package/lib/components/form/editor/form-editor.component.d.ts +45 -45
  187. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +15 -15
  188. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +14 -14
  189. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +13 -13
  190. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +23 -23
  191. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +10 -10
  192. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +45 -45
  193. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +23 -23
  194. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +38 -38
  195. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -6
  196. package/lib/components/form/formly/fields/index.d.ts +9 -9
  197. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +6 -6
  198. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +6 -6
  199. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  200. package/lib/components/form/index.d.ts +3 -3
  201. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  202. package/lib/components/form/models/index.d.ts +1 -1
  203. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  204. package/lib/components/layout/footer.component.d.ts +9 -9
  205. package/lib/components/layout/index.d.ts +7 -7
  206. package/lib/components/layout/main-layout.component.d.ts +20 -20
  207. package/lib/components/layout/menu-item.component.d.ts +44 -44
  208. package/lib/components/layout/menu.component.d.ts +10 -10
  209. package/lib/components/layout/services/index.d.ts +1 -1
  210. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  211. package/lib/components/layout/topbar.component.d.ts +24 -24
  212. package/lib/components/layout/version.component.d.ts +19 -19
  213. package/lib/components/tableview/index.d.ts +6 -6
  214. package/lib/components/tableview/models/index.d.ts +1 -1
  215. package/lib/components/tableview/models/table.event.d.ts +17 -17
  216. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +20 -20
  217. package/lib/components/tableview/route/tableview-route.component.d.ts +23 -23
  218. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +32 -32
  219. package/lib/components/tableview/table/column-value/column-value.component.d.ts +29 -29
  220. package/lib/components/tableview/table/table.component.d.ts +108 -108
  221. package/lib/components/tableview/tableview.component.d.ts +41 -41
  222. package/lib/config/formly.config.d.ts +15 -15
  223. package/lib/config/index.d.ts +1 -1
  224. package/lib/config/models/index.d.ts +1 -1
  225. package/lib/config/models/mng-config.model.d.ts +36 -36
  226. package/lib/data-providers/base.data-provider.d.ts +14 -14
  227. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  228. package/lib/data-providers/index.d.ts +5 -5
  229. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  230. package/lib/data-providers/table.data-provider.d.ts +14 -14
  231. package/lib/data-providers/tableview.data-provider.d.ts +15 -15
  232. package/lib/descriptors/action.descriptor.d.ts +234 -234
  233. package/lib/descriptors/column.descriptor.d.ts +82 -82
  234. package/lib/descriptors/editor.descriptor.d.ts +37 -37
  235. package/lib/descriptors/field-validation.descriptor.d.ts +18 -18
  236. package/lib/descriptors/field.descriptor.d.ts +294 -294
  237. package/lib/descriptors/filter.descriptor.d.ts +106 -106
  238. package/lib/descriptors/index.d.ts +9 -9
  239. package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
  240. package/lib/descriptors/interfaces/index.d.ts +2 -2
  241. package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
  242. package/lib/descriptors/model.descriptor.d.ts +15 -15
  243. package/lib/descriptors/table.descriptor.d.ts +66 -66
  244. package/lib/descriptors/tableview.descriptor.d.ts +42 -42
  245. package/lib/descriptors/types/action.type.d.ts +45 -45
  246. package/lib/descriptors/types/column.type.d.ts +9 -9
  247. package/lib/descriptors/types/editor.type.d.ts +6 -6
  248. package/lib/descriptors/types/field.type.d.ts +44 -44
  249. package/lib/descriptors/types/filter.type.d.ts +27 -27
  250. package/lib/descriptors/types/index.d.ts +6 -6
  251. package/lib/descriptors/types/table.type.d.ts +13 -13
  252. package/lib/directives/component.directive.d.ts +16 -16
  253. package/lib/directives/index.d.ts +2 -2
  254. package/lib/directives/template.directive.d.ts +13 -13
  255. package/lib/mng-commons.module.d.ts +87 -87
  256. package/lib/models/column-value.model.d.ts +4 -4
  257. package/lib/models/enum.model.d.ts +6 -6
  258. package/lib/models/error.model.d.ts +14 -14
  259. package/lib/models/index.d.ts +7 -7
  260. package/lib/models/menu.model.d.ts +27 -27
  261. package/lib/models/user.model.d.ts +8 -8
  262. package/lib/models/version.model.d.ts +18 -18
  263. package/lib/models/view-container.model.d.ts +6 -6
  264. package/lib/pipes/boolean.pipe.d.ts +7 -7
  265. package/lib/pipes/enum.pipe.d.ts +8 -8
  266. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  267. package/lib/pipes/index.d.ts +5 -5
  268. package/lib/pipes/json-path.pipe.d.ts +13 -13
  269. package/lib/pipes/link-formatter.pipe.d.ts +11 -11
  270. package/lib/router/index.d.ts +2 -2
  271. package/lib/router/models/index.d.ts +1 -1
  272. package/lib/router/models/router.model.d.ts +27 -27
  273. package/lib/router/route-builder.d.ts +98 -98
  274. package/lib/router/tableview-route-builder.d.ts +34 -34
  275. package/lib/security/authorization.guard.d.ts +11 -11
  276. package/lib/security/authorization.service.d.ts +19 -19
  277. package/lib/security/authorization.util.d.ts +5 -5
  278. package/lib/security/index.d.ts +3 -3
  279. package/lib/security/model/authorization.type.d.ts +6 -6
  280. package/lib/security/model/index.d.ts +3 -3
  281. package/lib/security/model/permission-service.interface.d.ts +6 -6
  282. package/lib/security/model/permissions.model.d.ts +44 -44
  283. package/lib/services/action-executor.service.d.ts +149 -149
  284. package/lib/services/commons.service.d.ts +78 -78
  285. package/lib/services/configuration.service.d.ts +36 -36
  286. package/lib/services/error-mapper.service.d.ts +7 -7
  287. package/lib/services/index.d.ts +6 -6
  288. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  289. package/lib/services/internal/commons-init.service.d.ts +16 -16
  290. package/lib/services/internal/index.d.ts +2 -2
  291. package/lib/services/navigation.service.d.ts +14 -14
  292. package/lib/services/providers/config-service.provider.d.ts +6 -6
  293. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  294. package/lib/services/providers/index.d.ts +2 -2
  295. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  296. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  297. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  298. package/lib/services/tokens/index.d.ts +4 -4
  299. package/lib/services/tokens/module-config.token.d.ts +3 -3
  300. package/lib/services/version.service.d.ts +13 -13
  301. package/lib/services/view-container.component.service.d.ts +22 -22
  302. package/lib/types/index.d.ts +2 -2
  303. package/lib/types/type.decorator.d.ts +4 -4
  304. package/lib/types/type.model.d.ts +23 -23
  305. package/lib/utils/action-data-provider.util.d.ts +20 -20
  306. package/lib/utils/editor-formly.util.d.ts +11 -11
  307. package/lib/utils/enum.util.d.ts +50 -50
  308. package/lib/utils/i18n.util.d.ts +56 -56
  309. package/lib/utils/index.d.ts +7 -7
  310. package/lib/utils/model.util.d.ts +8 -8
  311. package/lib/utils/notification.util.d.ts +11 -11
  312. package/lib/utils/route.util.d.ts +4 -4
  313. package/lib/utils/styles.util.d.ts +14 -14
  314. package/lib/utils/type.util.d.ts +36 -36
  315. package/mediusinc-mng-commons-0.10.3-rc.2.tgz +0 -0
  316. package/mediusinc-mng-commons.d.ts +5 -5
  317. package/package.json +1 -1
  318. package/public-api.d.ts +32 -32
  319. package/version-info.json +7 -7
@@ -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