@mediusinc/mng-commons 5.0.0-rc.0 → 5.0.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 (245) hide show
  1. package/core/data-list/data-list-params-helpers.d.ts +82 -0
  2. package/core/descriptors/action.descriptor.d.ts +3 -3
  3. package/core/descriptors/column.descriptor.d.ts +1 -1
  4. package/core/descriptors/editor.descriptor.d.ts +6 -6
  5. package/core/descriptors/enum.descriptor.d.ts +6 -0
  6. package/core/descriptors/filter.descriptor.d.ts +1 -1
  7. package/core/descriptors/model.descriptor.d.ts +1 -1
  8. package/core/descriptors/table.descriptor.d.ts +6 -6
  9. package/core/descriptors/tableview.descriptor.d.ts +10 -10
  10. package/core/enum/enum-helpers.d.ts +49 -0
  11. package/core/error/error-helpers.d.ts +114 -0
  12. package/core/helpers/date.d.ts +14 -0
  13. package/core/helpers/object.d.ts +27 -0
  14. package/core/helpers/route.d.ts +35 -0
  15. package/core/helpers/string.d.ts +7 -0
  16. package/core/helpers/templates.d.ts +3 -0
  17. package/core/i18n/i18n-common.d.ts +6 -0
  18. package/core/i18n/i18n-error.d.ts +4 -0
  19. package/core/i18n/i18n-type.d.ts +20 -0
  20. package/core/index.d.ts +15 -9
  21. package/{model → core}/pipes/enum.pipe.d.ts +2 -2
  22. package/core/pipes/enumerate.pipe.d.ts +3 -3
  23. package/{model → core}/pipes/i18n-property.pipe.d.ts +2 -2
  24. package/core/pipes/template.pipe.d.ts +0 -2
  25. package/core/router/route-builder.d.ts +2 -4
  26. package/core/router/routes-builder.d.ts +5 -6
  27. package/core/security/permission-helpers.d.ts +3 -0
  28. package/core/security/permissions.model.d.ts +2 -2
  29. package/esm2022/core/components/notification/notification-wrapper.component.mjs +4 -4
  30. package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
  31. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
  32. package/esm2022/core/data-list/data-list-params-helpers.mjs +415 -0
  33. package/esm2022/core/data-list/filter-match.model.mjs +1 -1
  34. package/esm2022/core/data-providers/base.data-provider.mjs +1 -1
  35. package/esm2022/core/descriptors/action.descriptor.mjs +1 -1
  36. package/esm2022/core/descriptors/column.descriptor.mjs +1 -1
  37. package/esm2022/core/descriptors/editor.descriptor.mjs +1 -1
  38. package/esm2022/core/descriptors/enum.descriptor.mjs +2 -0
  39. package/esm2022/core/descriptors/filter.descriptor.mjs +1 -1
  40. package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
  41. package/esm2022/core/descriptors/table.descriptor.mjs +1 -1
  42. package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
  43. package/esm2022/core/directives/component.directive.mjs +4 -4
  44. package/esm2022/core/directives/dialog-keydown-handler.directive.mjs +4 -4
  45. package/esm2022/core/directives/template.directive.mjs +3 -3
  46. package/esm2022/core/enum/enum-helpers.mjs +81 -0
  47. package/esm2022/core/error/error-handler.mjs +3 -3
  48. package/esm2022/core/error/error-helpers.mjs +247 -0
  49. package/esm2022/core/helpers/coercion.mjs +1 -1
  50. package/esm2022/core/helpers/date.mjs +119 -0
  51. package/esm2022/core/helpers/object.mjs +145 -0
  52. package/esm2022/core/helpers/route.mjs +58 -0
  53. package/esm2022/core/helpers/string.mjs +57 -0
  54. package/esm2022/core/helpers/templates.mjs +4 -0
  55. package/esm2022/core/i18n/i18n-common.mjs +24 -0
  56. package/esm2022/core/i18n/i18n-error.mjs +27 -0
  57. package/esm2022/core/i18n/i18n-type.mjs +79 -0
  58. package/esm2022/core/index.mjs +17 -11
  59. package/esm2022/core/log/log-publisher-console.service.mjs +3 -3
  60. package/esm2022/core/log/logger.service.mjs +3 -3
  61. package/esm2022/core/pipes/boolean.pipe.mjs +4 -4
  62. package/esm2022/core/pipes/class-map.pipe.mjs +4 -4
  63. package/esm2022/core/pipes/enum.pipe.mjs +27 -0
  64. package/esm2022/core/pipes/enumerate-async.pipe.mjs +8 -8
  65. package/esm2022/core/pipes/enumerate.pipe.mjs +10 -10
  66. package/esm2022/core/pipes/getter.pipe.mjs +4 -4
  67. package/esm2022/core/pipes/i18n-property.pipe.mjs +19 -0
  68. package/esm2022/core/pipes/json-path.pipe.mjs +6 -6
  69. package/esm2022/core/pipes/parametrize.pipe.mjs +6 -6
  70. package/esm2022/core/pipes/template.pipe.mjs +7 -8
  71. package/esm2022/core/provide.mjs +1 -21
  72. package/esm2022/core/reflect/type-enum-metadata.mjs +1 -1
  73. package/esm2022/core/registry/type-registry.mjs +1 -1
  74. package/esm2022/core/router/route-builder.mjs +8 -24
  75. package/esm2022/core/router/routes-builder.mjs +17 -16
  76. package/esm2022/core/security/permission-helpers.mjs +14 -0
  77. package/esm2022/core/security/permission.guard.mjs +1 -1
  78. package/esm2022/core/security/permission.service.mjs +6 -6
  79. package/esm2022/core/security/permissions.model.mjs +1 -1
  80. package/esm2022/core/services/commons-configuration.service.mjs +6 -6
  81. package/esm2022/core/services/commons-init.service.mjs +4 -4
  82. package/esm2022/core/services/commons-router.service.mjs +4 -4
  83. package/esm2022/core/services/commons.service.mjs +4 -4
  84. package/esm2022/core/services/local-storage-config.service.mjs +4 -4
  85. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +9 -10
  86. package/esm2022/filter/descriptors/filter.descriptor.mjs +1 -1
  87. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -1
  88. package/esm2022/form/api/descriptors/button-style.builder.mjs +1 -1
  89. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +7 -7
  90. package/esm2022/form/components/date-range/date-range.component.mjs +4 -4
  91. package/esm2022/form/components/dropdown/dropdown.component.mjs +7 -7
  92. package/esm2022/form/directives/input-trim.directive.mjs +4 -4
  93. package/esm2022/model/descriptors/enum.descriptor.mjs +1 -1
  94. package/esm2022/model/descriptors/model.descriptor.mjs +4 -4
  95. package/esm2022/model/helpers/i18n.mjs +45 -0
  96. package/esm2022/model/helpers/model.mjs +71 -0
  97. package/esm2022/model/index.mjs +4 -7
  98. package/esm2022/table/api/data-providers/table.data-provider.mjs +1 -1
  99. package/esm2022/table/api/descriptors/column.descriptor.mjs +1 -1
  100. package/esm2022/table/api/descriptors/table.descriptor.mjs +36 -8
  101. package/esm2022/table/api/helpers/class-attribute-converter.mjs +1 -1
  102. package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +9 -9
  103. package/esm2022/table/components/column-value/column-value.component.mjs +12 -14
  104. package/esm2022/table/components/table/table.component.mjs +20 -37
  105. package/esm2022/table/helpers/notification.mjs +4 -4
  106. package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +4 -4
  107. package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +4 -4
  108. package/esm2022/table/services/data-list.service.mjs +3 -3
  109. package/esm2022/tableview/action/components/action/action.component.mjs +9 -9
  110. package/esm2022/tableview/action/components/editor/action-editor.component.mjs +4 -4
  111. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +6 -6
  112. package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +3 -3
  113. package/esm2022/tableview/action/components/route/action-route.component.mjs +4 -4
  114. package/esm2022/tableview/action/components/table/action-table.component.mjs +12 -24
  115. package/esm2022/tableview/action/helpers/i18n.mjs +82 -0
  116. package/esm2022/tableview/action/helpers/notification.mjs +8 -8
  117. package/esm2022/tableview/action/helpers/styles.mjs +1 -1
  118. package/esm2022/tableview/action/models/execution/action-context.model.mjs +1 -1
  119. package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
  120. package/esm2022/tableview/action/services/action-error-mapper.service.mjs +1 -1
  121. package/esm2022/tableview/action/services/action-executor.service.mjs +9 -8
  122. package/esm2022/tableview/action/services/component-action-executor.service.mjs +3 -3
  123. package/esm2022/tableview/action/services/data-provider-executor.service.mjs +3 -3
  124. package/esm2022/tableview/action/services/navigation.service.mjs +4 -4
  125. package/esm2022/tableview/action/services/providers/provide-view-container.mjs +1 -1
  126. package/esm2022/tableview/action/services/root-action-executor.service.mjs +3 -3
  127. package/esm2022/tableview/action/services/view-container.service.mjs +3 -3
  128. package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +1 -1
  129. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +1 -1
  130. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +1 -1
  131. package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +1 -1
  132. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -1
  133. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +4 -4
  134. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
  135. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +3 -3
  136. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +1 -1
  137. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +8 -8
  138. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +1 -1
  139. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +4 -4
  140. package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +1 -1
  141. package/esm2022/tableview/api/editor/helpers/field-validators.mjs +1 -1
  142. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  143. package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +3 -3
  144. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +1 -1
  145. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +4 -4
  146. package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +1 -1
  147. package/esm2022/tableview/api/tableview/helpers/files-export.mjs +1 -1
  148. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +4 -4
  149. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +1 -1
  150. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +9 -9
  151. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -4
  152. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +4 -4
  153. package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
  154. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +4 -4
  155. package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
  156. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
  157. package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
  158. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +7 -7
  159. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +4 -4
  160. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +9 -9
  161. package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
  162. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +4 -4
  163. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -4
  164. package/esm2022/tableview/editor/helpers/editor-formly.mjs +335 -0
  165. package/esm2022/tableview/editor/helpers/formly-config.mjs +1 -1
  166. package/esm2022/tableview/editor/services/formly-config.provider.mjs +1 -1
  167. package/esm2022/tableview/index.mjs +3 -5
  168. package/esm2022/tableview/provide.mjs +2 -1
  169. package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +3 -3
  170. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +10 -19
  171. package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +1 -1
  172. package/fesm2022/mediusinc-mng-commons-core.mjs +1367 -1389
  173. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  174. package/fesm2022/mediusinc-mng-commons-filter.mjs +8 -9
  175. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  176. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  177. package/fesm2022/mediusinc-mng-commons-form.mjs +17 -17
  178. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  179. package/fesm2022/mediusinc-mng-commons-model.mjs +99 -148
  180. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  181. package/fesm2022/mediusinc-mng-commons-table-api.mjs +35 -7
  182. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  183. package/fesm2022/mediusinc-mng-commons-table.mjs +48 -65
  184. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  185. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +19 -19
  186. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  187. package/fesm2022/mediusinc-mng-commons-tableview.mjs +507 -572
  188. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  189. package/filter/descriptors/filter.descriptor.d.ts +2 -2
  190. package/model/descriptors/model.descriptor.d.ts +2 -2
  191. package/model/helpers/i18n.d.ts +10 -0
  192. package/model/helpers/model.d.ts +5 -0
  193. package/model/index.d.ts +2 -4
  194. package/package.json +7 -7
  195. package/table/api/descriptors/table.descriptor.d.ts +10 -0
  196. package/table/components/column-value/column-value.component.d.ts +3 -4
  197. package/table/components/table/table.component.d.ts +13 -13
  198. package/tableview/action/components/table/action-table.component.d.ts +6 -6
  199. package/tableview/action/helpers/i18n.d.ts +22 -0
  200. package/tableview/action/models/execution/action-instance-state.model.d.ts +21 -21
  201. package/tableview/action/services/action-executor.service.d.ts +1 -1
  202. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +1 -1
  203. package/tableview/api/action/descriptors/action.descriptor.d.ts +3 -3
  204. package/tableview/api/action/models/action.type.d.ts +2 -2
  205. package/tableview/api/action/models/execution/action-instance-state.model.d.ts +21 -21
  206. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +2 -2
  207. package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +2 -2
  208. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +5 -5
  209. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +4 -4
  210. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +4 -4
  211. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +4 -4
  212. package/tableview/api/editor/descriptors/field.descriptor.d.ts +2 -2
  213. package/tableview/api/editor/models/editor-fields.model.d.ts +3 -3
  214. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +2 -2
  215. package/tableview/editor/helpers/editor-formly.d.ts +10 -0
  216. package/tableview/index.d.ts +2 -2
  217. package/tableview/tableview/components/tableview/tableview.component.d.ts +5 -5
  218. package/core/data-list/data-list-params.util.d.ts +0 -84
  219. package/core/enum/enum.util.d.ts +0 -51
  220. package/core/error/error.util.d.ts +0 -116
  221. package/core/security/permission.util.d.ts +0 -5
  222. package/core/utils/date.util.d.ts +0 -20
  223. package/core/utils/i18n.util.d.ts +0 -36
  224. package/core/utils/object.util.d.ts +0 -31
  225. package/core/utils/route.util.d.ts +0 -37
  226. package/core/utils/string.util.d.ts +0 -9
  227. package/esm2022/core/data-list/data-list-params.util.mjs +0 -417
  228. package/esm2022/core/enum/enum.util.mjs +0 -83
  229. package/esm2022/core/error/error.util.mjs +0 -249
  230. package/esm2022/core/security/permission.util.mjs +0 -16
  231. package/esm2022/core/utils/date.util.mjs +0 -136
  232. package/esm2022/core/utils/i18n.util.mjs +0 -137
  233. package/esm2022/core/utils/object.util.mjs +0 -147
  234. package/esm2022/core/utils/route.util.mjs +0 -60
  235. package/esm2022/core/utils/string.util.mjs +0 -59
  236. package/esm2022/model/pipes/enum.pipe.mjs +0 -26
  237. package/esm2022/model/pipes/i18n-property.pipe.mjs +0 -19
  238. package/esm2022/model/utils/i18n.util.mjs +0 -51
  239. package/esm2022/model/utils/model.util.mjs +0 -73
  240. package/esm2022/tableview/action/utils/i18n.util.mjs +0 -126
  241. package/esm2022/tableview/editor/utils/editor-formly.util.mjs +0 -337
  242. package/model/utils/i18n.util.d.ts +0 -15
  243. package/model/utils/model.util.d.ts +0 -8
  244. package/tableview/action/utils/i18n.util.d.ts +0 -48
  245. package/tableview/editor/utils/editor-formly.util.d.ts +0 -12
@@ -1,137 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { map } from 'rxjs/operators';
3
- import { ErrorUtil } from '../error/error.util';
4
- import { findReflectTypeName } from '../reflect/type-enum-metadata';
5
- export var I18nUtils;
6
- (function (I18nUtils) {
7
- class Common {
8
- static getAsync(translate, params, ...keys) {
9
- return translate.stream(keys, params).pipe(map(i18n => I18nUtils.Common.selectI18n(keys, i18n)));
10
- }
11
- static get(translate, params, ...keys) {
12
- const i18n = translate.instant(keys, params);
13
- return I18nUtils.Common.selectI18n(keys, i18n);
14
- }
15
- static populateParams(item, params = {}) {
16
- const paramsRes = { ...params };
17
- if (item) {
18
- paramsRes.item = item;
19
- }
20
- return paramsRes;
21
- }
22
- static selectI18n(keys, i18n) {
23
- for (const key of keys) {
24
- if (key !== i18n[key]) {
25
- return i18n[key];
26
- }
27
- }
28
- return null;
29
- }
30
- }
31
- I18nUtils.Common = Common;
32
- class Type {
33
- static getClassNameAsync(translate, classType, singular) {
34
- const typeName = findReflectTypeName(classType);
35
- return I18nUtils.Type.getNameAsync(translate, typeName ?? '', singular);
36
- }
37
- static getClassName(translate, classType, singular) {
38
- const typeName = findReflectTypeName(classType);
39
- return I18nUtils.Type.getName(translate, typeName ?? '', singular);
40
- }
41
- static getNameAsync(translate, typeName, singular) {
42
- const keys = I18nUtils.Type.getNameKeys(typeName, singular);
43
- return I18nUtils.Common.getAsync(translate, undefined, ...keys);
44
- }
45
- static getName(translate, typeName, singular) {
46
- const keys = I18nUtils.Type.getNameKeys(typeName, singular);
47
- return I18nUtils.Common.get(translate, undefined, ...keys);
48
- }
49
- static getClassTabKey(classType, tab) {
50
- const typeName = findReflectTypeName(classType);
51
- return I18nUtils.Type.getTabKey(typeName ?? '', tab);
52
- }
53
- static getTabKey(typeName, tab) {
54
- return I18nUtils.Type.getPath(typeName, 'tabs', tab);
55
- }
56
- static getClassGroupKey(classType, group) {
57
- const typeName = findReflectTypeName(classType);
58
- return I18nUtils.Type.getGroupKey(typeName ?? '', group);
59
- }
60
- static getGroupKey(typeName, group) {
61
- return I18nUtils.Type.getPath(typeName, 'groups', group);
62
- }
63
- static getClassPropertyKey(classType, property) {
64
- const typeName = findReflectTypeName(classType);
65
- return I18nUtils.Type.getPropertyKey(typeName ?? '', property);
66
- }
67
- static getPropertyKey(typeName, property) {
68
- return I18nUtils.Type.getPath(typeName, 'properties', property);
69
- }
70
- static getClassPath(classType, ...path) {
71
- const typeName = findReflectTypeName(classType);
72
- return I18nUtils.Type.getPath(typeName ?? '', ...path);
73
- }
74
- static getPath(typeName, ...path) {
75
- return `${typeName.length ? `${typeName}.` : ''}${path.join('.')}`;
76
- }
77
- static getClassParams(translate, classType, item, params = {}) {
78
- const typeName = findReflectTypeName(classType);
79
- return I18nUtils.Type.getParams(translate, typeName ?? undefined, item, params);
80
- }
81
- static getParams(translate, typeName, item, params = {}) {
82
- const i18nTypeName = typeName ? I18nUtils.Type.getName(translate, typeName, true) : null;
83
- return I18nUtils.Type.populateParams(i18nTypeName ?? undefined, item, params);
84
- }
85
- static getClassParamsAsync(translate, classType, item, params = {}) {
86
- const typeName = findReflectTypeName(classType);
87
- return I18nUtils.Type.getParamsAsync(translate, typeName ?? undefined, item, params);
88
- }
89
- static getParamsAsync(translate, typeName, item, params = {}) {
90
- return (typeName ? I18nUtils.Type.getNameAsync(translate, typeName, true) : of(null)).pipe(map(i18nTypeName => I18nUtils.Type.populateParams(i18nTypeName ?? undefined, item, params)));
91
- }
92
- static populateParams(i18nTypeName, item, params = {}) {
93
- const paramsRes = { ...params };
94
- if (i18nTypeName) {
95
- paramsRes.typeName = i18nTypeName;
96
- }
97
- return I18nUtils.Common.populateParams(item, paramsRes);
98
- }
99
- static getNameKeys(typeName, singular) {
100
- const keys = [];
101
- if (typeof singular !== 'undefined') {
102
- keys.push(singular ? `${typeName}.nameSingular` : `${typeName}.namePlural`);
103
- }
104
- keys.push(`${typeName.length ? `${typeName}.` : ''}name`);
105
- return keys;
106
- }
107
- }
108
- I18nUtils.Type = Type;
109
- class Error {
110
- static get(translate, error, params = {}) {
111
- const i18nParams = I18nUtils.Error.getParams(error, params);
112
- if (error.messageCode) {
113
- const keys = [`errors.${error.messageCode}`, `messages.${error.messageCode}`];
114
- const i18n = I18nUtils.Common.get(translate, i18nParams, ...keys);
115
- if (i18n) {
116
- return i18n;
117
- }
118
- }
119
- return I18nUtils.Common.get(translate, i18nParams, error.message);
120
- }
121
- static getParams(error, params = {}) {
122
- const paramsRes = { ...params };
123
- paramsRes.errorStatus = '';
124
- paramsRes.errorMessage = '';
125
- if (ErrorUtil.isHttpErrorResponse(error)) {
126
- const httpError = ErrorUtil.getHttpErrorResponse(error);
127
- paramsRes.errorStatus = httpError?.status;
128
- paramsRes.errorMessage = httpError?.message;
129
- paramsRes.errorStatusDescription = httpError?.statusText;
130
- }
131
- paramsRes.error = error;
132
- return paramsRes;
133
- }
134
- }
135
- I18nUtils.Error = Error;
136
- })(I18nUtils || (I18nUtils = {}));
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvdXRpbHMvaTE4bi51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR25DLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUU5QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxNQUFNLEtBQVcsU0FBUyxDQTBKekI7QUExSkQsV0FBaUIsU0FBUztJQUN0QixNQUFhLE1BQU07UUFDUixNQUFNLENBQUMsUUFBUSxDQUFDLFNBQTJCLEVBQUUsTUFBWSxFQUFFLEdBQUcsSUFBbUI7WUFDcEYsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBRU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUEyQixFQUFFLE1BQVksRUFBRSxHQUFHLElBQW1CO1lBQy9FLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVUsRUFBRSxTQUFjLEVBQUU7WUFDckQsTUFBTSxTQUFTLEdBQUcsRUFBQyxHQUFHLE1BQU0sRUFBQyxDQUFDO1lBQzlCLElBQUksSUFBSSxFQUFF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RSxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLElBQUksRUFBRTtvQkFDTixPQUFPLElBQUksQ0FBQztpQkFDZjthQUNKO1lBQ0QsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFvQixFQUFFLFNBQWMsRUFBRTtZQUMxRCxNQUFNLFNBQVMsR0FBRyxFQUFDLEdBQUcsTUFBTSxFQUFDLENBQUM7WUFDOUIsU0FBUyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDM0IsU0FBUyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFFNUIsSUFBSSxTQUFTLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEQsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLEVBQUUsTUFBTSxDQUFDO2dCQUMxQyxTQUFTLENBQUMsWUFBWSxHQUFHLFNBQVMsRUFBRSxPQUFPLENBQUM7Z0JBQzVDLFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLEVBQUUsVUFBVSxDQUFDO2FBQzVEO1lBRUQsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDeEIsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztLQUNKO0lBNUJZLGVBQUssUUE0QmpCLENBQUE7QUFDTCxDQUFDLEVBMUpnQixTQUFTLEtBQVQsU0FBUyxRQTBKekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0lDb21tb25zRXJyb3J9IGZyb20gJy4uL2Vycm9yL2Vycm9yLm1vZGVsJztcbmltcG9ydCB7RXJyb3JVdGlsfSBmcm9tICcuLi9lcnJvci9lcnJvci51dGlsJztcbmltcG9ydCB7Q2xhc3NUeXBlfSBmcm9tICcuLi9tb2RlbHMvY2xhc3Mtc2VydmljZS5tb2RlbCc7XG5pbXBvcnQge2ZpbmRSZWZsZWN0VHlwZU5hbWV9IGZyb20gJy4uL3JlZmxlY3QvdHlwZS1lbnVtLW1ldGFkYXRhJztcblxuZXhwb3J0IG5hbWVzcGFjZSBJMThuVXRpbHMge1xuICAgIGV4cG9ydCBjbGFzcyBDb21tb24ge1xuICAgICAgICBwdWJsaWMgc3RhdGljIGdldEFzeW5jKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcGFyYW1zPzogYW55LCAuLi5rZXlzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNsYXRlLnN0cmVhbShrZXlzLCBwYXJhbXMpLnBpcGUobWFwKGkxOG4gPT4gSTE4blV0aWxzLkNvbW1vbi5zZWxlY3RJMThuKGtleXMsIGkxOG4pKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIGdldCh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHBhcmFtcz86IGFueSwgLi4ua2V5czogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB8IG51bGwge1xuICAgICAgICAgICAgY29uc3QgaTE4biA9IHRyYW5zbGF0ZS5pbnN0YW50KGtleXMsIHBhcmFtcyk7XG4gICAgICAgICAgICByZXR1cm4gSTE4blV0aWxzLkNvbW1vbi5zZWxlY3RJMThuKGtleXMsIGkxOG4pO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBwb3B1bGF0ZVBhcmFtcyhpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXNSZXMgPSB7Li4ucGFyYW1zfTtcbiAgICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zUmVzLml0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBhcmFtc1JlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgc2VsZWN0STE4bihrZXlzOiBzdHJpbmdbXSwgaTE4bjogYW55KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSAhPT0gaTE4bltrZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpMThuW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgY2xhc3MgVHlwZSB7XG4gICAgICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2xhc3NOYW1lQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBjbGFzc1R5cGU6IENsYXNzVHlwZTxhbnk+LCBzaW5ndWxhcj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIEkxOG5VdGlscy5UeXBlLmdldE5hbWVBc3luYyh0cmFuc2xhdGUsIHR5cGVOYW1lID8/ICcnLCBzaW5ndWxhcik7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIGdldENsYXNzTmFtZSh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGNsYXNzVHlwZTogQ2xhc3NUeXBlPGFueT4sIHNpbmd1bGFyPzogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xuICAgICAgICAgICAgY29uc3QgdHlwZU5hbWUgPSBmaW5kUmVmbGVjdFR5cGVOYW1lKGNsYXNzVHlwZSk7XG4gICAgICAgICAgICByZXR1cm4gSTE4blV0aWxzLlR5cGUuZ2V0TmFtZSh0cmFuc2xhdGUsIHR5cGVOYW1lID8/ICcnLCBzaW5ndWxhcik7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIGdldE5hbWVBc3luYyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHR5cGVOYW1lOiBzdHJpbmcsIHNpbmd1bGFyPzogYm9vbGVhbik6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICAgICAgY29uc3Qga2V5cyA9IEkxOG5VdGlscy5UeXBlLmdldE5hbWVLZXlzKHR5cGVOYW1lLCBzaW5ndWxhcik7XG4gICAgICAgICAgICByZXR1cm4gSTE4blV0aWxzLkNvbW1vbi5nZXRBc3luYyh0cmFuc2xhdGUsIHVuZGVmaW5lZCwgLi4ua2V5cyk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIGdldE5hbWUodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCB0eXBlTmFtZTogc3RyaW5nLCBzaW5ndWxhcj86IGJvb2xlYW4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBJMThuVXRpbHMuVHlwZS5nZXROYW1lS2V5cyh0eXBlTmFtZSwgc2luZ3VsYXIpO1xuICAgICAgICAgICAgcmV0dXJuIEkxOG5VdGlscy5Db21tb24uZ2V0KHRyYW5zbGF0ZSwgdW5kZWZpbmVkLCAuLi5rZXlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2xhc3NUYWJLZXkoY2xhc3NUeXBlOiBDbGFzc1R5cGU8YW55PiwgdGFiOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAgICAgY29uc3QgdHlwZU5hbWUgPSBmaW5kUmVmbGVjdFR5cGVOYW1lKGNsYXNzVHlwZSk7XG4gICAgICAgICAgICByZXR1cm4gSTE4blV0aWxzLlR5cGUuZ2V0VGFiS2V5KHR5cGVOYW1lID8/ICcnLCB0YWIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBnZXRUYWJLZXkodHlwZU5hbWU6IHN0cmluZywgdGFiOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAgICAgcmV0dXJuIEkxOG5VdGlscy5UeXBlLmdldFBhdGgodHlwZU5hbWUsICd0YWJzJywgdGFiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2xhc3NHcm91cEtleShjbGFzc1R5cGU6IENsYXNzVHlwZTxhbnk+LCBncm91cDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIEkxOG5VdGlscy5UeXBlLmdldEdyb3VwS2V5KHR5cGVOYW1lID8/ICcnLCBncm91cCk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIGdldEdyb3VwS2V5KHR5cGVOYW1lOiBzdHJpbmcsIGdyb3VwOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAgICAgcmV0dXJuIEkxOG5VdGlscy5UeXBlLmdldFBhdGgodHlwZU5hbWUsICdncm91cHMnLCBncm91cCk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIGdldENsYXNzUHJvcGVydHlLZXkoY2xhc3NUeXBlOiBDbGFzc1R5cGU8YW55PiwgcHJvcGVydHk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgICAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2xhc3NUeXBlKTtcbiAgICAgICAgICAgIHJldHVybiBJMThuVXRpbHMuVHlwZS5nZXRQcm9wZXJ0eUtleSh0eXBlTmFtZSA/PyAnJywgcHJvcGVydHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBnZXRQcm9wZXJ0eUtleSh0eXBlTmFtZTogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgICAgIHJldHVybiBJMThuVXRpbHMuVHlwZS5nZXRQYXRoKHR5cGVOYW1lLCAncHJvcGVydGllcycsIHByb3BlcnR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2xhc3NQYXRoKGNsYXNzVHlwZTogQ2xhc3NUeXBlPGFueT4sIC4uLnBhdGg6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcge1xuICAgICAgICAgICAgY29uc3QgdHlwZU5hbWUgPSBmaW5kUmVmbGVjdFR5cGVOYW1lKGNsYXNzVHlwZSk7XG4gICAgICAgICAgICByZXR1cm4gSTE4blV0aWxzLlR5cGUuZ2V0UGF0aCh0eXBlTmFtZSA/PyAnJywgLi4ucGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIGdldFBhdGgodHlwZU5hbWU6IHN0cmluZywgLi4ucGF0aDogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dHlwZU5hbWUubGVuZ3RoID8gYCR7dHlwZU5hbWV9LmAgOiAnJ30ke3BhdGguam9pbignLicpfWA7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIGdldENsYXNzUGFyYW1zKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgY2xhc3NUeXBlOiBDbGFzc1R5cGU8YW55PiwgaXRlbTogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogYW55IHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIEkxOG5VdGlscy5UeXBlLmdldFBhcmFtcyh0cmFuc2xhdGUsIHR5cGVOYW1lID8/IHVuZGVmaW5lZCwgaXRlbSwgcGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1zKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdHlwZU5hbWU/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBhbnkge1xuICAgICAgICAgICAgY29uc3QgaTE4blR5cGVOYW1lID0gdHlwZU5hbWUgPyBJMThuVXRpbHMuVHlwZS5nZXROYW1lKHRyYW5zbGF0ZSwgdHlwZU5hbWUsIHRydWUpIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBJMThuVXRpbHMuVHlwZS5wb3B1bGF0ZVBhcmFtcyhpMThuVHlwZU5hbWUgPz8gdW5kZWZpbmVkLCBpdGVtLCBwYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBnZXRDbGFzc1BhcmFtc0FzeW5jKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgY2xhc3NUeXBlOiBDbGFzc1R5cGU8YW55PiwgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2xhc3NUeXBlKTtcbiAgICAgICAgICAgIHJldHVybiBJMThuVXRpbHMuVHlwZS5nZXRQYXJhbXNBc3luYyh0cmFuc2xhdGUsIHR5cGVOYW1lID8/IHVuZGVmaW5lZCwgaXRlbSwgcGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1zQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCB0eXBlTmFtZT86IHN0cmluZywgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgICByZXR1cm4gKHR5cGVOYW1lID8gSTE4blV0aWxzLlR5cGUuZ2V0TmFtZUFzeW5jKHRyYW5zbGF0ZSwgdHlwZU5hbWUsIHRydWUpIDogb2YobnVsbCkpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGkxOG5UeXBlTmFtZSA9PiBJMThuVXRpbHMuVHlwZS5wb3B1bGF0ZVBhcmFtcyhpMThuVHlwZU5hbWUgPz8gdW5kZWZpbmVkLCBpdGVtLCBwYXJhbXMpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgcG9wdWxhdGVQYXJhbXMoaTE4blR5cGVOYW1lPzogc3RyaW5nLCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogYW55IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtc1JlcyA9IHsuLi5wYXJhbXN9O1xuICAgICAgICAgICAgaWYgKGkxOG5UeXBlTmFtZSkge1xuICAgICAgICAgICAgICAgIHBhcmFtc1Jlcy50eXBlTmFtZSA9IGkxOG5UeXBlTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBJMThuVXRpbHMuQ29tbW9uLnBvcHVsYXRlUGFyYW1zKGl0ZW0sIHBhcmFtc1Jlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIHN0YXRpYyBnZXROYW1lS2V5cyh0eXBlTmFtZTogc3RyaW5nLCBzaW5ndWxhcj86IGJvb2xlYW4pOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2luZ3VsYXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAga2V5cy5wdXNoKHNpbmd1bGFyID8gYCR7dHlwZU5hbWV9Lm5hbWVTaW5ndWxhcmAgOiBgJHt0eXBlTmFtZX0ubmFtZVBsdXJhbGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5cy5wdXNoKGAke3R5cGVOYW1lLmxlbmd0aCA/IGAke3R5cGVOYW1lfS5gIDogJyd9bmFtZWApO1xuICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBvcnQgY2xhc3MgRXJyb3Ige1xuICAgICAgICBwdWJsaWMgc3RhdGljIGdldCh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGVycm9yOiBJQ29tbW9uc0Vycm9yLCBwYXJhbXM6IGFueSA9IHt9KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgICAgICBjb25zdCBpMThuUGFyYW1zID0gSTE4blV0aWxzLkVycm9yLmdldFBhcmFtcyhlcnJvciwgcGFyYW1zKTtcbiAgICAgICAgICAgIGlmIChlcnJvci5tZXNzYWdlQ29kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBbYGVycm9ycy4ke2Vycm9yLm1lc3NhZ2VDb2RlfWAsIGBtZXNzYWdlcy4ke2Vycm9yLm1lc3NhZ2VDb2RlfWBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGkxOG4gPSBJMThuVXRpbHMuQ29tbW9uLmdldCh0cmFuc2xhdGUsIGkxOG5QYXJhbXMsIC4uLmtleXMpO1xuICAgICAgICAgICAgICAgIGlmIChpMThuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpMThuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBJMThuVXRpbHMuQ29tbW9uLmdldCh0cmFuc2xhdGUsIGkxOG5QYXJhbXMsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBnZXRQYXJhbXMoZXJyb3I6IElDb21tb25zRXJyb3IsIHBhcmFtczogYW55ID0ge30pIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtc1JlcyA9IHsuLi5wYXJhbXN9O1xuICAgICAgICAgICAgcGFyYW1zUmVzLmVycm9yU3RhdHVzID0gJyc7XG4gICAgICAgICAgICBwYXJhbXNSZXMuZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICAgICAgICAgIGlmIChFcnJvclV0aWwuaXNIdHRwRXJyb3JSZXNwb25zZShlcnJvcikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBodHRwRXJyb3IgPSBFcnJvclV0aWwuZ2V0SHR0cEVycm9yUmVzcG9uc2UoZXJyb3IpO1xuICAgICAgICAgICAgICAgIHBhcmFtc1Jlcy5lcnJvclN0YXR1cyA9IGh0dHBFcnJvcj8uc3RhdHVzO1xuICAgICAgICAgICAgICAgIHBhcmFtc1Jlcy5lcnJvck1lc3NhZ2UgPSBodHRwRXJyb3I/Lm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgcGFyYW1zUmVzLmVycm9yU3RhdHVzRGVzY3JpcHRpb24gPSBodHRwRXJyb3I/LnN0YXR1c1RleHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcmFtc1Jlcy5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtc1JlcztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,147 +0,0 @@
1
- export class ObjectUtil {
2
- static deepCopy(obj, options) {
3
- if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
4
- return obj;
5
- }
6
- if (obj instanceof Date) {
7
- return new Date(+obj);
8
- }
9
- let copy;
10
- if (options?.mapGettersToProperties) {
11
- copy = {};
12
- }
13
- else {
14
- copy = options?.objectPrototype ? Object.create(options.objectPrototype['prototype']) : Object.create(Object.getPrototypeOf(obj));
15
- Object.assign(copy, obj);
16
- }
17
- for (const key of ObjectUtil.getProperties(obj)) {
18
- const prop = obj[key];
19
- copy[key] = ObjectUtil.handleProp(prop, { mapGettersToProperties: options?.mapGettersToProperties });
20
- }
21
- if (options?.mapGettersToProperties) {
22
- for (const getterKey of ObjectUtil.getGetters(obj)) {
23
- const prop = obj[getterKey];
24
- copy[getterKey] = ObjectUtil.handleProp(prop, { mapGettersToProperties: options?.mapGettersToProperties });
25
- }
26
- }
27
- return copy;
28
- }
29
- static deepMerge(target, source) {
30
- if (!ObjectUtil.isObject(source)) {
31
- return target;
32
- }
33
- for (const key of ObjectUtil.getProperties(source)) {
34
- if (ObjectUtil.isObject(source[key])) {
35
- if (ObjectUtil.isObject(target[key])) {
36
- target[key] = ObjectUtil.deepMerge(target[key], source[key]);
37
- }
38
- else {
39
- target[key] = ObjectUtil.deepCopy(source[key]);
40
- }
41
- }
42
- else if (Array.isArray(source[key])) {
43
- if (!Array.isArray(target[key])) {
44
- target[key] = source[key].map(i => (ObjectUtil.isObject(i) ? ObjectUtil.deepMerge({}, i) : i));
45
- }
46
- }
47
- else if (typeof target[key] === 'undefined') {
48
- target[key] = source[key];
49
- }
50
- }
51
- return target;
52
- }
53
- static isObject(obj) {
54
- return typeof obj === 'object' && obj !== null && !Array.isArray(obj);
55
- }
56
- static handleProp(prop, options) {
57
- if (Array.isArray(prop)) {
58
- return prop.map(i => ObjectUtil.deepCopy(i, options));
59
- }
60
- else if (typeof prop === 'object' && prop !== null) {
61
- return ObjectUtil.deepCopy(prop, options);
62
- }
63
- else {
64
- return prop;
65
- }
66
- }
67
- static getProperties(obj) {
68
- return Object.keys(obj);
69
- }
70
- static getGetters(obj) {
71
- const getterSet = new Set();
72
- let currObj = obj;
73
- while (currObj) {
74
- const getters = Object.entries(Object.getOwnPropertyDescriptors(currObj))
75
- .filter(([, descriptor]) => typeof descriptor.get === 'function')
76
- .filter(([key]) => key !== '__proto__')
77
- .map(([key]) => key);
78
- for (const getter of getters) {
79
- getterSet.add(getter);
80
- }
81
- currObj = Object.getPrototypeOf(currObj);
82
- }
83
- return Array.from(getterSet);
84
- }
85
- static getPropertyByPath(value, path) {
86
- if (path === '$') {
87
- // only return the root
88
- return value;
89
- }
90
- // Check for leading root object notation
91
- if (path.startsWith('$')) {
92
- path = path.substring(1);
93
- }
94
- // Check for leading .
95
- if (path.startsWith('.')) {
96
- path = path.substring(1);
97
- }
98
- if (path.indexOf('.') >= 0) {
99
- const pathSplit = path.split('.');
100
- let currValue = value;
101
- for (const p of pathSplit) {
102
- if (typeof currValue === 'undefined' || currValue === null) {
103
- return currValue;
104
- }
105
- if (!p.length) {
106
- // empty path, return current value
107
- return currValue;
108
- }
109
- const leftBracketIdx = p.indexOf('[');
110
- if (leftBracketIdx >= 0 && p.endsWith(']')) {
111
- // should be reference to array
112
- const arrayPath = p.substring(0, leftBracketIdx);
113
- const arrayIdx = +p.substring(leftBracketIdx + 1, p.length - 1);
114
- const array = currValue[arrayPath];
115
- if (Array.isArray(array)) {
116
- if (arrayIdx >= 0 && arrayIdx < array.length) {
117
- // valid index, continue on the path
118
- currValue = array[arrayIdx];
119
- continue;
120
- }
121
- }
122
- return undefined;
123
- }
124
- else if (typeof currValue === 'object') {
125
- currValue = currValue[p];
126
- }
127
- }
128
- return currValue;
129
- }
130
- else {
131
- return value[path];
132
- }
133
- }
134
- static flattenObjectKeys(objectModel) {
135
- const flatten = (object, parent) => {
136
- let results = [];
137
- for (const key in object) {
138
- const value = object[key];
139
- const thisKey = parent ? `${parent}.${key}` : `${key}`;
140
- results = results.concat(ObjectUtil.isObject(value) ? flatten(value, thisKey) : [[`${thisKey}`, value]]);
141
- }
142
- return results;
143
- };
144
- return flatten(objectModel);
145
- }
146
- }
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy91dGlscy9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLE9BQU8sVUFBVTtJQU1aLE1BQU0sQ0FBQyxRQUFRLENBQXlCLEdBQU0sRUFBRSxPQUE0QjtRQUMvRSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0QsT0FBTyxHQUFHLENBQUM7U0FDZDtRQUVELElBQUksR0FBRyxZQUFZLElBQUksRUFBRTtZQUNyQixPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCxJQUFJLElBQUksQ0FBQztRQUNULElBQUksT0FBTyxFQUFFLHNCQUFzQixFQUFFO1lBQ2pDLElBQUksR0FBRyxFQUFFLENBQUM7U0FDYjthQUFNO1lBQ0gsSUFBSSxHQUFHLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxXQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEosTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDNUI7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0MsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQW1CLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxP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QUM7UUFFRixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnLi4vbW9kZWxzL2NsYXNzLXNlcnZpY2UubW9kZWwnO1xuXG5pbnRlcmZhY2UgRGVlcENvcHlQcm9wc09wdGlvbnMge1xuICAgIG1hcEdldHRlcnNUb1Byb3BlcnRpZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZXBDb3B5T3B0aW9uczxQID0gb2JqZWN0PiBleHRlbmRzIERlZXBDb3B5UHJvcHNPcHRpb25zIHtcbiAgICBvYmplY3RQcm90b3R5cGU/OiBDbGFzc1R5cGU8UD47XG59XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIGRlZXBDb3B5PFQgPSBvYmplY3QsIFAgPSBvYmplY3Q+KG9iajogVCwgb3B0aW9uczogRGVlcENvcHlPcHRpb25zPFA+ICYge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IHRydWV9KTogVCB8IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgcHVibGljIHN0YXRpYyBkZWVwQ29weTxUID0gb2JqZWN0LCBQID0gb2JqZWN0PihvYmo6IFQsIG9wdGlvbnM6IERlZXBDb3B5T3B0aW9uczxQPiAmIHtvYmplY3RQcm90b3R5cGU6IENsYXNzVHlwZTxQPn0gJiB7bWFwR2V0dGVyc1RvUHJvcGVydGllcz86IGZhbHNlfSk6IFA7XG4gICAgcHVibGljIHN0YXRpYyBkZWVwQ29weTxUID0gb2JqZWN0LCBQID0gb2JqZWN0PihvYmo6IFQsIG9wdGlvbnM6IERlZXBDb3B5T3B0aW9uczxQPiAmIHtvYmplY3RQcm90b3R5cGU6IENsYXNzVHlwZTxQPn0gJiB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pOiBQIHwgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBwdWJsaWMgc3RhdGljIGRlZXBDb3B5PFQgPSBvYmplY3QsIFAgPSBvYmplY3Q+KG9iajogVCwgb3B0aW9ucz86IERlZXBDb3B5T3B0aW9uczxQPik6IFQ7XG5cbiAgICBwdWJsaWMgc3RhdGljIGRlZXBDb3B5PFQgPSBvYmplY3QsIFAgPSBvYmplY3Q+KG9iajogVCwgb3B0aW9ucz86IERlZXBDb3B5T3B0aW9uczxQPik6IFQgfCBQIHwgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwgfHwgQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSgrb2JqKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjb3B5O1xuICAgICAgICBpZiAob3B0aW9ucz8ubWFwR2V0dGVyc1RvUHJvcGVydGllcykge1xuICAgICAgICAgICAgY29weSA9IHt9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29weSA9IG9wdGlvbnM/Lm9iamVjdFByb3RvdHlwZSA/IE9iamVjdC5jcmVhdGUob3B0aW9ucy5vYmplY3RQcm90b3R5cGVbJ3Byb3RvdHlwZScgYXMga2V5b2Ygb2JqZWN0XSkgOiBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29weSwgb2JqKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdFV0aWwuZ2V0UHJvcGVydGllcyhvYmopKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wID0gb2JqW2tleSBhcyBrZXlvZiBvYmplY3RdO1xuICAgICAgICAgICAgY29weVtrZXldID0gT2JqZWN0VXRpbC5oYW5kbGVQcm9wKHByb3AsIHttYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzOiBvcHRpb25zPy5tYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucz8ubWFwR2V0dGVyc1RvUHJvcGVydGllcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBnZXR0ZXJLZXkgb2YgT2JqZWN0VXRpbC5nZXRHZXR0ZXJzKG9iaikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wID0gb2JqW2dldHRlcktleSBhcyBrZXlvZiBvYmplY3RdO1xuICAgICAgICAgICAgICAgIGNvcHlbZ2V0dGVyS2V5XSA9IE9iamVjdFV0aWwuaGFuZGxlUHJvcChwcm9wLCB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogb3B0aW9ucz8ubWFwR2V0dGVyc1RvUHJvcGVydGllc30pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBkZWVwTWVyZ2UodGFyZ2V0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBzb3VyY2U6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3RVdGlsLmdldFByb3BlcnRpZXMoc291cmNlKSkge1xuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWwuaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdFV0aWwuaXNPYmplY3QodGFyZ2V0W2tleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gT2JqZWN0VXRpbC5kZWVwTWVyZ2UodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IE9iamVjdFV0aWwuZGVlcENvcHkoc291cmNlW2tleV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodGFyZ2V0W2tleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gKHNvdXJjZVtrZXldIGFzIEFycmF5PHVua25vd24+KS5tYXAoaSA9PiAoT2JqZWN0VXRpbC5pc09iamVjdChpKSA/IE9iamVjdFV0aWwuZGVlcE1lcmdlKHt9LCBpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA6IGkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0YXJnZXRba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBpc09iamVjdChvYmo6IGFueSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KG9iaik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgaGFuZGxlUHJvcChwcm9wOiBhbnksIG9wdGlvbnM/OiBEZWVwQ29weVByb3BzT3B0aW9ucykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wKSkge1xuICAgICAgICAgICAgcmV0dXJuIHByb3AubWFwKGkgPT4gT2JqZWN0VXRpbC5kZWVwQ29weShpLCBvcHRpb25zKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3AgPT09ICdvYmplY3QnICYmIHByb3AgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3RVdGlsLmRlZXBDb3B5KHByb3AsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHByb3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFByb3BlcnRpZXMob2JqOiBvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRHZXR0ZXJzKG9iajogYW55KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBnZXR0ZXJTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgbGV0IGN1cnJPYmogPSBvYmo7XG5cbiAgICAgICAgd2hpbGUgKGN1cnJPYmopIHtcbiAgICAgICAgICAgIGNvbnN0IGdldHRlcnMgPSBPYmplY3QuZW50cmllcyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhjdXJyT2JqKSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChbLCBkZXNjcmlwdG9yXSkgPT4gdHlwZW9mIGRlc2NyaXB0b3IuZ2V0ID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKFtrZXldKSA9PiBrZXkgIT09ICdfX3Byb3RvX18nKVxuICAgICAgICAgICAgICAgIC5tYXAoKFtrZXldKSA9PiBrZXkpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdldHRlciBvZiBnZXR0ZXJzKSB7XG4gICAgICAgICAgICAgICAgZ2V0dGVyU2V0LmFkZChnZXR0ZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjdXJyT2JqID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGN1cnJPYmopO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oZ2V0dGVyU2V0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFByb3BlcnR5QnlQYXRoKHZhbHVlOiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChwYXRoID09PSAnJCcpIHtcbiAgICAgICAgICAgIC8vIG9ubHkgcmV0dXJuIHRoZSByb290XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3IgbGVhZGluZyByb290IG9iamVjdCBub3RhdGlvblxuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKCckJykpIHtcbiAgICAgICAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGZvciBsZWFkaW5nIC5cbiAgICAgICAgaWYgKHBhdGguc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF0aC5pbmRleE9mKCcuJykgPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgcGF0aFNwbGl0ID0gcGF0aC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgbGV0IGN1cnJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhdGhTcGxpdCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY3VyclZhbHVlID09PSAndW5kZWZpbmVkJyB8fCBjdXJyVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXAubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVtcHR5IHBhdGgsIHJldHVybiBjdXJyZW50IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdEJyYWNrZXRJZHggPSBwLmluZGV4T2YoJ1snKTtcbiAgICAgICAgICAgICAgICBpZiAobGVmdEJyYWNrZXRJZHggPj0gMCAmJiBwLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkIGJlIHJlZmVyZW5jZSB0byBhcnJheVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhcnJheVBhdGggPSBwLnN1YnN0cmluZygwLCBsZWZ0QnJhY2tldElkeCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5SWR4ID0gK3Auc3Vic3RyaW5nKGxlZnRCcmFja2V0SWR4ICsgMSwgcC5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJyYXkgPSBjdXJyVmFsdWVbYXJyYXlQYXRoXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJyYXlJZHggPj0gMCAmJiBhcnJheUlkeCA8IGFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkIGluZGV4LCBjb250aW51ZSBvbiB0aGUgcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJWYWx1ZSA9IGFycmF5W2FycmF5SWR4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY3VyclZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBjdXJyVmFsdWUgPSBjdXJyVmFsdWVbcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGN1cnJWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZVtwYXRoXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZmxhdHRlbk9iamVjdEtleXMob2JqZWN0TW9kZWw6IGFueSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgZmxhdHRlbiA9IChvYmplY3Q6IGFueSwgcGFyZW50PzogYW55KSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0czogYW55W10gPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICAgICAgICAgICAgY29uc3QgdGhpc0tleSA9IHBhcmVudCA/IGAke3BhcmVudH0uJHtrZXl9YCA6IGAke2tleX1gO1xuXG4gICAgICAgICAgICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuY29uY2F0KE9iamVjdFV0aWwuaXNPYmplY3QodmFsdWUpID8gZmxhdHRlbih2YWx1ZSwgdGhpc0tleSkgOiBbW2Ake3RoaXNLZXl9YCwgdmFsdWVdXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZmxhdHRlbihvYmplY3RNb2RlbCk7XG4gICAgfVxufVxuIl19
@@ -1,60 +0,0 @@
1
- import { CommonsInternalError } from '../error/error.model';
2
- export class RouteUtil {
3
- static removeEmptyPathSegments(path) {
4
- const filteredPath = path.filter(ps => typeof ps === 'string' && ps.length > 0);
5
- return filteredPath.length > 0 ? filteredPath : [''];
6
- }
7
- static appendPathToBasePath(basePath, path) {
8
- if (path.length > 0) {
9
- if (path[0].startsWith('/')) {
10
- return path;
11
- }
12
- else if (path[0].startsWith('../')) {
13
- throw new CommonsInternalError('Not implemented', { name: 'RouteUtilsError' });
14
- }
15
- else {
16
- return RouteUtil.removeEmptyPathSegments([...basePath, ...path]);
17
- }
18
- }
19
- else {
20
- return basePath;
21
- }
22
- }
23
- static doesUrlMatchRouterLink(link, url) {
24
- if (typeof url === 'string' && url.startsWith('/')) {
25
- url = url.substring(1);
26
- }
27
- else if (Array.isArray(url) && url.length > 0 && url[0].startsWith('/')) {
28
- url[0] = url[0].substring(1);
29
- }
30
- const routeSegments = Array.isArray(link) ? link : link.split('/');
31
- const urlSegments = Array.isArray(url) ? url : url.split('#')[0].split('?')[0].split('/');
32
- if (routeSegments.length > 0 && urlSegments.length > 0) {
33
- for (let i = 0; i < routeSegments.length; i++) {
34
- if (i < urlSegments.length) {
35
- if (routeSegments[i] !== urlSegments[i]) {
36
- return false;
37
- }
38
- }
39
- else {
40
- break;
41
- }
42
- }
43
- return true;
44
- }
45
- return false;
46
- }
47
- static adjustMenuLazyChildrenRouterLinks(rootMenuItem, lazyChildren) {
48
- return lazyChildren.map(i => {
49
- const childMenuItem = { ...i };
50
- if (childMenuItem.routerLink) {
51
- childMenuItem.routerLink = RouteUtil.appendPathToBasePath(rootMenuItem.routerLink, typeof childMenuItem.routerLink === 'string' ? [childMenuItem.routerLink] : childMenuItem.routerLink);
52
- }
53
- if (Array.isArray(childMenuItem.items)) {
54
- childMenuItem.items = this.adjustMenuLazyChildrenRouterLinks(rootMenuItem, childMenuItem.items);
55
- }
56
- return childMenuItem;
57
- });
58
- }
59
- }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL3V0aWxzL3JvdXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBbUI7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQXVCLEVBQUUsSUFBbUI7UUFDM0UsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDO2FBQ2hGO2lCQUFNO2dCQUNILE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3BFO1NBQ0o7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUE0QixFQUFFLEdBQTJCO1FBQzFGLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxRixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFO29CQUN4QixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ3JDLE9BQU8sS0FBSyxDQUFDO3FCQUNoQjtpQkFDSjtxQkFBTTtvQkFDSCxNQUFNO2lCQUNUO2FBQ0o7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxZQUEyQixFQUFFLFlBQW9DO1FBQzdHLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixNQUFNLGFBQWEsR0FBRyxFQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDN0IsSUFBSSxhQUFhLENBQUMsVUFBVSxFQUFFO2dCQUMxQixhQUFhLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDckQsWUFBWSxDQUFDLFVBQVUsRUFDdkIsT0FBTyxhQUFhLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3ZHLENBQUM7YUFDTDtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkc7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWVudUl0ZW0gYXMgUHJpbWVNZW51SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yfSBmcm9tICcuLi9lcnJvci9lcnJvci5tb2RlbCc7XG5pbXBvcnQge0NvbW1vbnNNZW51SXRlbX0gZnJvbSAnLi4vbW9kZWxzL21lbnUubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgUm91dGVVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUVtcHR5UGF0aFNlZ21lbnRzKHBhdGg6IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRQYXRoID0gcGF0aC5maWx0ZXIocHMgPT4gdHlwZW9mIHBzID09PSAnc3RyaW5nJyAmJiBwcy5sZW5ndGggPiAwKTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkUGF0aC5sZW5ndGggPiAwID8gZmlsdGVyZWRQYXRoIDogWycnXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFwcGVuZFBhdGhUb0Jhc2VQYXRoKGJhc2VQYXRoOiBBcnJheTxzdHJpbmc+LCBwYXRoOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy4uLycpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnLCB7bmFtZTogJ1JvdXRlVXRpbHNFcnJvcid9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJvdXRlVXRpbC5yZW1vdmVFbXB0eVBhdGhTZWdtZW50cyhbLi4uYmFzZVBhdGgsIC4uLnBhdGhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZG9lc1VybE1hdGNoUm91dGVyTGluayhsaW5rOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nLCB1cmw6IEFycmF5PHN0cmluZz4gfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnICYmIHVybC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh1cmwpICYmIHVybC5sZW5ndGggPiAwICYmIHVybFswXS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIHVybFswXSA9IHVybFswXS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb3V0ZVNlZ21lbnRzID0gQXJyYXkuaXNBcnJheShsaW5rKSA/IGxpbmsgOiBsaW5rLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IHVybFNlZ21lbnRzID0gQXJyYXkuaXNBcnJheSh1cmwpID8gdXJsIDogdXJsLnNwbGl0KCcjJylbMF0uc3BsaXQoJz8nKVswXS5zcGxpdCgnLycpO1xuXG4gICAgICAgIGlmIChyb3V0ZVNlZ21lbnRzLmxlbmd0aCA+IDAgJiYgdXJsU2VnbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3V0ZVNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgPCB1cmxTZWdtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlU2VnbWVudHNbaV0gIT09IHVybFNlZ21lbnRzW2ldKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhZGp1c3RNZW51TGF6eUNoaWxkcmVuUm91dGVyTGlua3Mocm9vdE1lbnVJdGVtOiBQcmltZU1lbnVJdGVtLCBsYXp5Q2hpbGRyZW46IEFycmF5PENvbW1vbnNNZW51SXRlbT4pIHtcbiAgICAgICAgcmV0dXJuIGxhenlDaGlsZHJlbi5tYXAoaSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZE1lbnVJdGVtID0gey4uLml9O1xuICAgICAgICAgICAgaWYgKGNoaWxkTWVudUl0ZW0ucm91dGVyTGluaykge1xuICAgICAgICAgICAgICAgIGNoaWxkTWVudUl0ZW0ucm91dGVyTGluayA9IFJvdXRlVXRpbC5hcHBlbmRQYXRoVG9CYXNlUGF0aChcbiAgICAgICAgICAgICAgICAgICAgcm9vdE1lbnVJdGVtLnJvdXRlckxpbmssXG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmsgPT09ICdzdHJpbmcnID8gW2NoaWxkTWVudUl0ZW0ucm91dGVyTGlua10gOiBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmtcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRNZW51SXRlbS5pdGVtcykpIHtcbiAgICAgICAgICAgICAgICBjaGlsZE1lbnVJdGVtLml0ZW1zID0gdGhpcy5hZGp1c3RNZW51TGF6eUNoaWxkcmVuUm91dGVyTGlua3Mocm9vdE1lbnVJdGVtLCBjaGlsZE1lbnVJdGVtLml0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGlsZE1lbnVJdGVtO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,59 +0,0 @@
1
- import { DateUtil } from './date.util';
2
- import { ObjectUtil } from './object.util';
3
- export class StringUtil {
4
- static escapeHtml(value) {
5
- return value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
6
- }
7
- static escapeHtmlAny(value) {
8
- if (typeof value === 'string') {
9
- return StringUtil.escapeHtml(value);
10
- }
11
- else if (typeof value === 'object') {
12
- const escapedValue = ObjectUtil.deepCopy(value, { mapGettersToProperties: true });
13
- for (const key in value) {
14
- if (typeof value[key] === 'string') {
15
- escapedValue[key] = StringUtil.escapeHtml(value[key]);
16
- }
17
- else if (typeof value[key] === 'object') {
18
- escapedValue[key] = StringUtil.escapeHtmlAny(value[key]);
19
- }
20
- else {
21
- escapedValue[key] = value[key];
22
- }
23
- }
24
- return escapedValue;
25
- }
26
- return value;
27
- }
28
- /**
29
- * Stringifies a value - primitives with toString, dates with dateUtil, objects with JSON.stringify.
30
- * @param value Any value.
31
- */
32
- static stringify(value) {
33
- if (value === null) {
34
- return 'null';
35
- }
36
- if (typeof value === 'undefined') {
37
- return 'undefined';
38
- }
39
- // eliminate functions, cause they could fall into objects
40
- if (typeof value === 'function') {
41
- return `Function ${value.name ?? 'anonymous'}()`;
42
- }
43
- if (typeof value === 'object') {
44
- // date is object, but would like it in ISO string representation
45
- if (value instanceof Date) {
46
- return DateUtil.toIsoString(value) ?? 'null';
47
- }
48
- try {
49
- return JSON.stringify(value);
50
- }
51
- catch (e) {
52
- return value.toString();
53
- }
54
- }
55
- // only primitives should be left to be printed like this (string, number, boolean)
56
- return value.toString();
57
- }
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy91dGlscy9zdHJpbmcudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxPQUFPLFVBQVU7SUFDWixNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDbEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQVc7UUFDbkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDbEMsTUFBTSxZQUFZLEdBQVEsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1lBRXJGLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFO2dCQUNyQixJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDaEMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3pEO3FCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUN2QyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDNUQ7cUJBQU07b0JBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDbEM7YUFDSjtZQUNELE9BQU8sWUFBWSxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUM5QixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDaEIsT0FBTyxNQUFNLENBQUM7U0FDakI7UUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUM5QixPQUFPLFdBQVcsQ0FBQztTQUN0QjtRQUNELDBEQUEwRDtRQUMxRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUM3QixPQUFPLFlBQVksS0FBSyxDQUFDLElBQUksSUFBSSxXQUFXLElBQUksQ0FBQztTQUNwRDtRQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLGlFQUFpRTtZQUNqRSxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7Z0JBQ3ZCLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7YUFDaEQ7WUFDRCxJQUFJO2dCQUNBLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQztZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNSLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQzNCO1NBQ0o7UUFDRCxtRkFBbUY7UUFDbkYsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlVXRpbH0gZnJvbSAnLi9kYXRlLnV0aWwnO1xuaW1wb3J0IHtPYmplY3RVdGlsfSBmcm9tICcuL29iamVjdC51dGlsJztcblxuZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgZXNjYXBlSHRtbCh2YWx1ZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBlc2NhcGVIdG1sQW55KHZhbHVlPzogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmdVdGlsLmVzY2FwZUh0bWwodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGVzY2FwZWRWYWx1ZTogYW55ID0gT2JqZWN0VXRpbC5kZWVwQ29weSh2YWx1ZSwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IHRydWV9KTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWRWYWx1ZVtrZXldID0gU3RyaW5nVXRpbC5lc2NhcGVIdG1sKHZhbHVlW2tleV0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWRWYWx1ZVtrZXldID0gU3RyaW5nVXRpbC5lc2NhcGVIdG1sQW55KHZhbHVlW2tleV0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWRWYWx1ZVtrZXldID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZXNjYXBlZFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0cmluZ2lmaWVzIGEgdmFsdWUgLSBwcmltaXRpdmVzIHdpdGggdG9TdHJpbmcsIGRhdGVzIHdpdGggZGF0ZVV0aWwsIG9iamVjdHMgd2l0aCBKU09OLnN0cmluZ2lmeS5cbiAgICAgKiBAcGFyYW0gdmFsdWUgQW55IHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5naWZ5KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAnbnVsbCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICAgICAgfVxuICAgICAgICAvLyBlbGltaW5hdGUgZnVuY3Rpb25zLCBjYXVzZSB0aGV5IGNvdWxkIGZhbGwgaW50byBvYmplY3RzXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBgRnVuY3Rpb24gJHt2YWx1ZS5uYW1lID8/ICdhbm9ueW1vdXMnfSgpYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgLy8gZGF0ZSBpcyBvYmplY3QsIGJ1dCB3b3VsZCBsaWtlIGl0IGluIElTTyBzdHJpbmcgcmVwcmVzZW50YXRpb25cbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRGF0ZVV0aWwudG9Jc29TdHJpbmcodmFsdWUpID8/ICdudWxsJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBvbmx5IHByaW1pdGl2ZXMgc2hvdWxkIGJlIGxlZnQgdG8gYmUgcHJpbnRlZCBsaWtlIHRoaXMgKHN0cmluZywgbnVtYmVyLCBib29sZWFuKVxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { EnumUtil, findReflectEnumName } from '@mediusinc/mng-commons/core';
3
- import * as i0 from "@angular/core";
4
- export class EnumPipe {
5
- transform(value, enumDesc, i18nPath) {
6
- if (!value || (typeof value !== 'number' && typeof value !== 'string')) {
7
- return value;
8
- }
9
- const enumConstantName = !enumDesc || enumDesc.nameAsValue ? value : EnumUtil.getConstantNameFromEnumObject(enumDesc.type, value) ?? value;
10
- if (typeof i18nPath === 'undefined' && enumDesc) {
11
- i18nPath = enumDesc.i18nBaseKey === undefined ? findReflectEnumName(enumDesc.type) : null;
12
- }
13
- return i18nPath ? `${i18nPath}.${enumConstantName}` : enumConstantName;
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EnumPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
16
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: EnumPipe, isStandalone: true, name: "mngEnum" }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EnumPipe, decorators: [{
19
- type: Pipe,
20
- args: [{
21
- standalone: true,
22
- name: 'mngEnum',
23
- pure: true
24
- }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kZWwvc3JjL3BpcGVzL2VudW0ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQVcsUUFBUSxFQUFFLG1CQUFtQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBU3BGLE1BQU0sT0FBTyxRQUFRO0lBQ2pCLFNBQVMsQ0FBQyxLQUFjLEVBQUUsUUFBOEIsRUFBRSxRQUF3QjtRQUM5RSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxFQUFFO1lBQ3BFLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUMzSSxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsSUFBSSxRQUFRLEVBQUU7WUFDN0MsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsSUFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDekc7UUFDRCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7SUFDM0UsQ0FBQzs4R0FWUSxRQUFROzRHQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBTHBCLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxJQUFJO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtFbnVtVHlwZSwgRW51bVV0aWwsIGZpbmRSZWZsZWN0RW51bU5hbWV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7RW51bURlc2NyaXB0b3J9IGZyb20gJy4uL2Rlc2NyaXB0b3JzL2VudW0uZGVzY3JpcHRvcic7XG5cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdtbmdFbnVtJyxcbiAgICBwdXJlOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVudW1QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiB1bmtub3duLCBlbnVtRGVzYz86IEVudW1EZXNjcmlwdG9yPGFueT4sIGkxOG5QYXRoPzogc3RyaW5nIHwgbnVsbCk6IGFueSB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbnVtQ29uc3RhbnROYW1lID0gIWVudW1EZXNjIHx8IGVudW1EZXNjLm5hbWVBc1ZhbHVlID8gdmFsdWUgOiBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWVGcm9tRW51bU9iamVjdChlbnVtRGVzYy50eXBlLCB2YWx1ZSkgPz8gdmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgaTE4blBhdGggPT09ICd1bmRlZmluZWQnICYmIGVudW1EZXNjKSB7XG4gICAgICAgICAgICBpMThuUGF0aCA9IGVudW1EZXNjLmkxOG5CYXNlS2V5ID09PSB1bmRlZmluZWQgPyBmaW5kUmVmbGVjdEVudW1OYW1lKGVudW1EZXNjLnR5cGUgYXMgRW51bVR5cGUpIDogbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4blBhdGggPyBgJHtpMThuUGF0aH0uJHtlbnVtQ29uc3RhbnROYW1lfWAgOiBlbnVtQ29uc3RhbnROYW1lO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { I18nUtils } from '@mediusinc/mng-commons/core';
3
- import * as i0 from "@angular/core";
4
- export class I18nPropertyPipe {
5
- transform(property, model) {
6
- return I18nUtils.Type.getPropertyKey(model.i18nBaseKey, property);
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: I18nPropertyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: I18nPropertyPipe, isStandalone: true, name: "mngI18nProperty" }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: I18nPropertyPipe, decorators: [{
12
- type: Pipe,
13
- args: [{
14
- standalone: true,
15
- name: 'mngI18nProperty',
16
- pure: true
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1wcm9wZXJ0eS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kZWwvc3JjL3BpcGVzL2kxOG4tcHJvcGVydHkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBU3RELE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsU0FBUyxDQUFDLFFBQWdCLEVBQUUsS0FBMkI7UUFDbkQsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7OEdBSFEsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBTDVCLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxpQkFBaUI7b0JBQ3ZCLElBQUksRUFBRSxJQUFJO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtJMThuVXRpbHN9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yJztcblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ21uZ0kxOG5Qcm9wZXJ0eScsXG4gICAgcHVyZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJMThuUHJvcGVydHlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHByb3BlcnR5OiBzdHJpbmcsIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Pik6IGFueSB7XG4gICAgICAgIHJldHVybiBJMThuVXRpbHMuVHlwZS5nZXRQcm9wZXJ0eUtleShtb2RlbC5pMThuQmFzZUtleSwgcHJvcGVydHkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,51 +0,0 @@
1
- import { map } from 'rxjs/operators';
2
- import { I18nUtils as CoreI18nUtils } from '@mediusinc/mng-commons/core';
3
- export var I18nUtils;
4
- (function (I18nUtils) {
5
- class Model {
6
- static get(translate, model, keyPath, customKey, item, fallbackKey, params) {
7
- const keys = I18nUtils.Model.getKeysByPriority(model, keyPath, customKey, fallbackKey);
8
- const i18nParams = I18nUtils.Model.getParams(translate, model, item, params);
9
- return CoreI18nUtils.Common.get(translate, i18nParams, ...keys);
10
- }
11
- static getName(translate, model, singular) {
12
- return CoreI18nUtils.Type.getName(translate, model.i18nBaseKey, singular);
13
- }
14
- static getNameAsync(translate, model, singular) {
15
- return CoreI18nUtils.Type.getNameAsync(translate, model.i18nBaseKey, singular);
16
- }
17
- static getParams(translate, model, item, params = {}) {
18
- const i18nParams = CoreI18nUtils.Type.getParams(translate, model?.i18nBaseKey, item, params);
19
- return I18nUtils.Model.populateParams(model?.idProperty, model?.titleProperty, item, i18nParams);
20
- }
21
- static getParamsAsync(translate, model, item, params = {}) {
22
- return CoreI18nUtils.Type.getParamsAsync(translate, model?.i18nBaseKey, item, params).pipe(map(i18nParams => I18nUtils.Model.populateParams(model?.idProperty, model?.titleProperty, item, i18nParams)));
23
- }
24
- static populateParams(idProperty, titleProperty, item, params = {}) {
25
- const paramsRes = { ...params, itemId: '', itemTitle: '' };
26
- if (item) {
27
- if (idProperty && item[idProperty]) {
28
- paramsRes.itemId = item[idProperty];
29
- }
30
- if (titleProperty && item[titleProperty]) {
31
- paramsRes.itemTitle = item[titleProperty];
32
- }
33
- }
34
- return paramsRes;
35
- }
36
- static getKeysByPriority(model, keyPath, customKey, fallbackKey) {
37
- const keys = [];
38
- if (customKey) {
39
- keys.push(customKey);
40
- }
41
- const modelActionKey = CoreI18nUtils.Type.getPath(model.i18nBaseKey, ...keyPath);
42
- keys.push(modelActionKey);
43
- if (fallbackKey) {
44
- keys.push(fallbackKey);
45
- }
46
- return keys;
47
- }
48
- }
49
- I18nUtils.Model = Model;
50
- })(I18nUtils || (I18nUtils = {}));
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kZWwvc3JjL3V0aWxzL2kxOG4udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLFNBQVMsSUFBSSxhQUFhLEVBQVksTUFBTSw2QkFBNkIsQ0FBQztBQUlsRixNQUFNLEtBQVcsU0FBUyxDQTZEekI7QUE3REQsV0FBaUIsU0FBUztJQUN0QixNQUFhLEtBQUs7UUFDUCxNQUFNLENBQUMsR0FBRyxDQUNiLFNBQTJCLEVBQzNCLEtBQTJCLEVBQzNCLE9BQWUsRUFDZixTQUFrQixFQUNsQixJQUFVLEVBQ1YsV0FBb0IsRUFDcEIsTUFBWTtZQUVaLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDdkYsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDN0UsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBMkIsRUFBRSxLQUEyQixFQUFFLFFBQWtCO1lBQzlGLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBMkIsRUFBRSxLQUEyQixFQUFFLFFBQWtCO1lBQ25HLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUVNLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBMkIsRUFBRSxLQUE0QixFQUFFLElBQVUsRUFBRSxTQUFjLEVBQUU7WUFDM0csTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdGLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUEyQixFQUFFLEtBQTRCLEVBQUUsSUFBVSxFQUFFLFNBQWMsRUFBRTtZQUNoSCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RGLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FDL0csQ0FBQztRQUNOLENBQUM7UUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQXNCLEVBQUUsYUFBeUIsRUFBRSxJQUFVLEVBQUUsU0FBYyxFQUFFO1lBQ3hHLE1BQU0sU0FBUyxHQUFHLEVBQUMsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFDLENBQUM7WUFDekQsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUNoQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDdkM7Z0JBQ0QsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUN0QyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDN0M7YUFDSjtZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFFTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBMkIsRUFBRSxPQUFlLEVBQUUsU0FBa0IsRUFBRSxXQUFvQjtZQUNuSCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN4QjtZQUNELE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLElBQUksV0FBVyxFQUFFO2dCQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUI7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0tBQ0o7SUEzRFksZUFBSyxRQTJEakIsQ0FBQTtBQUNMLENBQUMsRUE3RGdCLFNBQVMsS0FBVCxTQUFTLFFBNkR6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtJMThuVXRpbHMgYXMgQ29yZUkxOG5VdGlscywgS2V5T2ZUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvbW9kZWwuZGVzY3JpcHRvcic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgSTE4blV0aWxzIHtcbiAgICBleHBvcnQgY2xhc3MgTW9kZWwge1xuICAgICAgICBwdWJsaWMgc3RhdGljIGdldChcbiAgICAgICAgICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55PixcbiAgICAgICAgICAgIGtleVBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgIGN1c3RvbUtleT86IHN0cmluZyxcbiAgICAgICAgICAgIGl0ZW0/OiBhbnksXG4gICAgICAgICAgICBmYWxsYmFja0tleT86IHN0cmluZyxcbiAgICAgICAgICAgIHBhcmFtcz86IGFueVxuICAgICAgICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBJMThuVXRpbHMuTW9kZWwuZ2V0S2V5c0J5UHJpb3JpdHkobW9kZWwsIGtleVBhdGgsIGN1c3RvbUtleSwgZmFsbGJhY2tLZXkpO1xuICAgICAgICAgICAgY29uc3QgaTE4blBhcmFtcyA9IEkxOG5VdGlscy5Nb2RlbC5nZXRQYXJhbXModHJhbnNsYXRlLCBtb2RlbCwgaXRlbSwgcGFyYW1zKTtcbiAgICAgICAgICAgIHJldHVybiBDb3JlSTE4blV0aWxzLkNvbW1vbi5nZXQodHJhbnNsYXRlLCBpMThuUGFyYW1zLCAuLi5rZXlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgZ2V0TmFtZSh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwgc2luZ3VsYXI/OiBib29sZWFuKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgICAgICByZXR1cm4gQ29yZUkxOG5VdGlscy5UeXBlLmdldE5hbWUodHJhbnNsYXRlLCBtb2RlbC5pMThuQmFzZUtleSwgc2luZ3VsYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBnZXROYW1lQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIHNpbmd1bGFyPzogYm9vbGVhbik6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICAgICAgcmV0dXJuIENvcmVJMThuVXRpbHMuVHlwZS5nZXROYW1lQXN5bmModHJhbnNsYXRlLCBtb2RlbC5pMThuQmFzZUtleSwgc2luZ3VsYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBnZXRQYXJhbXModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogYW55IHtcbiAgICAgICAgICAgIGNvbnN0IGkxOG5QYXJhbXMgPSBDb3JlSTE4blV0aWxzLlR5cGUuZ2V0UGFyYW1zKHRyYW5zbGF0ZSwgbW9kZWw/LmkxOG5CYXNlS2V5LCBpdGVtLCBwYXJhbXMpO1xuICAgICAgICAgICAgcmV0dXJuIEkxOG5VdGlscy5Nb2RlbC5wb3B1bGF0ZVBhcmFtcyhtb2RlbD8uaWRQcm9wZXJ0eSwgbW9kZWw/LnRpdGxlUHJvcGVydHksIGl0ZW0sIGkxOG5QYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBnZXRQYXJhbXNBc3luYyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIG1vZGVsPzogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAgICAgcmV0dXJuIENvcmVJMThuVXRpbHMuVHlwZS5nZXRQYXJhbXNBc3luYyh0cmFuc2xhdGUsIG1vZGVsPy5pMThuQmFzZUtleSwgaXRlbSwgcGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChpMThuUGFyYW1zID0+IEkxOG5VdGlscy5Nb2RlbC5wb3B1bGF0ZVBhcmFtcyhtb2RlbD8uaWRQcm9wZXJ0eSwgbW9kZWw/LnRpdGxlUHJvcGVydHksIGl0ZW0sIGkxOG5QYXJhbXMpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgcG9wdWxhdGVQYXJhbXMoaWRQcm9wZXJ0eT86IEtleU9mVHlwZSwgdGl0bGVQcm9wZXJ0eT86IEtleU9mVHlwZSwgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXNSZXMgPSB7Li4ucGFyYW1zLCBpdGVtSWQ6ICcnLCBpdGVtVGl0bGU6ICcnfTtcbiAgICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlkUHJvcGVydHkgJiYgaXRlbVtpZFByb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXNSZXMuaXRlbUlkID0gaXRlbVtpZFByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRpdGxlUHJvcGVydHkgJiYgaXRlbVt0aXRsZVByb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXNSZXMuaXRlbVRpdGxlID0gaXRlbVt0aXRsZVByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGFyYW1zUmVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZ2V0S2V5c0J5UHJpb3JpdHkobW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBrZXlQYXRoOiBzdHJpbmcsIGN1c3RvbUtleT86IHN0cmluZywgZmFsbGJhY2tLZXk/OiBzdHJpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgICAgICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAgICAgICAgICBrZXlzLnB1c2goY3VzdG9tS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1vZGVsQWN0aW9uS2V5ID0gQ29yZUkxOG5VdGlscy5UeXBlLmdldFBhdGgobW9kZWwuaTE4bkJhc2VLZXksIC4uLmtleVBhdGgpO1xuICAgICAgICAgICAga2V5cy5wdXNoKG1vZGVsQWN0aW9uS2V5KTtcbiAgICAgICAgICAgIGlmIChmYWxsYmFja0tleSkge1xuICAgICAgICAgICAgICAgIGtleXMucHVzaChmYWxsYmFja0tleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ga2V5cztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==