@mediusinc/mng-commons 5.0.0-rc.0 → 5.0.0-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 (273) 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 +151 -30
  26. package/core/router/routes-builder.d.ts +29 -15
  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 +218 -107
  75. package/esm2022/core/router/routes-builder.mjs +42 -43
  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 +39 -45
  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 +22 -21
  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 +6 -5
  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 +10 -9
  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 +9 -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/action/models/execution/action-instance.model.mjs +1 -1
  133. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -1
  134. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +21 -32
  135. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
  136. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +3 -3
  137. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +3 -3
  138. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +8 -8
  139. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +1 -1
  140. package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +1 -1
  141. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +39 -10
  142. package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +1 -1
  143. package/esm2022/tableview/api/editor/helpers/field-validators.mjs +15 -25
  144. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  145. package/esm2022/tableview/api/editor/models/field.model.mjs +1 -1
  146. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
  147. package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
  148. package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +3 -3
  149. package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
  150. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +1 -1
  151. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +15 -22
  152. package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +1 -1
  153. package/esm2022/tableview/api/tableview/helpers/files-export.mjs +1 -1
  154. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +4 -4
  155. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +1 -1
  156. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +158 -138
  157. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -4
  158. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +5 -7
  159. package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
  160. package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +103 -0
  161. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +5 -7
  162. package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
  163. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +33 -50
  164. package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
  165. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +8 -10
  166. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +6 -8
  167. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +19 -18
  168. package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
  169. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +4 -4
  170. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -4
  171. package/esm2022/tableview/editor/helpers/editor-formly.mjs +343 -0
  172. package/esm2022/tableview/editor/helpers/formly-config.mjs +5 -3
  173. package/esm2022/tableview/editor/models/formly-config.model.mjs +1 -1
  174. package/esm2022/tableview/editor/services/formly-config.provider.mjs +1 -1
  175. package/esm2022/tableview/index.mjs +3 -5
  176. package/esm2022/tableview/provide.mjs +2 -1
  177. package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +10 -10
  178. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +30 -56
  179. package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +17 -43
  180. package/fesm2022/mediusinc-mng-commons-core.mjs +1599 -1496
  181. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  182. package/fesm2022/mediusinc-mng-commons-filter.mjs +8 -9
  183. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  184. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  185. package/fesm2022/mediusinc-mng-commons-form.mjs +51 -56
  186. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  187. package/fesm2022/mediusinc-mng-commons-model.mjs +99 -148
  188. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  189. package/fesm2022/mediusinc-mng-commons-table-api.mjs +35 -7
  190. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  191. package/fesm2022/mediusinc-mng-commons-table.mjs +48 -65
  192. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  193. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +105 -96
  194. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  195. package/fesm2022/mediusinc-mng-commons-tableview.mjs +865 -868
  196. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  197. package/filter/descriptors/filter.descriptor.d.ts +2 -2
  198. package/form/components/autocomplete/autocomplete.component.d.ts +8 -7
  199. package/model/descriptors/model.descriptor.d.ts +2 -2
  200. package/model/helpers/i18n.d.ts +10 -0
  201. package/model/helpers/model.d.ts +5 -0
  202. package/model/index.d.ts +2 -4
  203. package/package.json +7 -7
  204. package/table/api/descriptors/table.descriptor.d.ts +10 -0
  205. package/table/components/column-value/column-value.component.d.ts +3 -4
  206. package/table/components/table/table.component.d.ts +13 -13
  207. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +1 -3
  208. package/tableview/action/components/route/action-route.component.d.ts +1 -1
  209. package/tableview/action/components/table/action-table.component.d.ts +6 -6
  210. package/tableview/action/helpers/i18n.d.ts +22 -0
  211. package/tableview/action/models/execution/action-instance-state.model.d.ts +21 -21
  212. package/tableview/action/models/execution/action-instance.model.d.ts +2 -1
  213. package/tableview/action/services/action-executor.service.d.ts +1 -1
  214. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +9 -1
  215. package/tableview/api/action/descriptors/action.descriptor.d.ts +3 -3
  216. package/tableview/api/action/models/action.type.d.ts +2 -2
  217. package/tableview/api/action/models/execution/action-instance-state.model.d.ts +21 -21
  218. package/tableview/api/action/models/execution/action-instance.model.d.ts +2 -1
  219. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +16 -21
  220. package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +2 -2
  221. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +29 -29
  222. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +9 -9
  223. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +4 -4
  224. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +4 -4
  225. package/tableview/api/editor/descriptors/field-validation.descriptor.d.ts +10 -13
  226. package/tableview/api/editor/descriptors/field.descriptor.d.ts +17 -2
  227. package/tableview/api/editor/helpers/field-validators.d.ts +6 -2
  228. package/tableview/api/editor/models/editor-fields.model.d.ts +9 -7
  229. package/tableview/api/editor/models/field.model.d.ts +16 -7
  230. package/tableview/api/editor/models/form-editor.event.d.ts +6 -4
  231. package/tableview/api/editor/models/form-editor.interface.d.ts +37 -8
  232. package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
  233. package/tableview/api/editor/models/formly-field.model.d.ts +9 -7
  234. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +8 -9
  235. package/tableview/editor/components/editor/form-editor.component.d.ts +51 -35
  236. package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +22 -0
  237. package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +5 -7
  238. package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +0 -1
  239. package/tableview/editor/helpers/editor-formly.d.ts +11 -0
  240. package/tableview/editor/models/formly-config.model.d.ts +1 -1
  241. package/tableview/index.d.ts +2 -2
  242. package/tableview/tableview/components/route/tableview-route.component.d.ts +2 -2
  243. package/tableview/tableview/components/tableview/tableview.component.d.ts +16 -15
  244. package/tableview/tableview/router/tableview-route-builder.d.ts +7 -13
  245. package/version-info.json +11 -0
  246. package/core/data-list/data-list-params.util.d.ts +0 -84
  247. package/core/enum/enum.util.d.ts +0 -51
  248. package/core/error/error.util.d.ts +0 -116
  249. package/core/security/permission.util.d.ts +0 -5
  250. package/core/utils/date.util.d.ts +0 -20
  251. package/core/utils/i18n.util.d.ts +0 -36
  252. package/core/utils/object.util.d.ts +0 -31
  253. package/core/utils/route.util.d.ts +0 -37
  254. package/core/utils/string.util.d.ts +0 -9
  255. package/esm2022/core/data-list/data-list-params.util.mjs +0 -417
  256. package/esm2022/core/enum/enum.util.mjs +0 -83
  257. package/esm2022/core/error/error.util.mjs +0 -249
  258. package/esm2022/core/security/permission.util.mjs +0 -16
  259. package/esm2022/core/utils/date.util.mjs +0 -136
  260. package/esm2022/core/utils/i18n.util.mjs +0 -137
  261. package/esm2022/core/utils/object.util.mjs +0 -147
  262. package/esm2022/core/utils/route.util.mjs +0 -60
  263. package/esm2022/core/utils/string.util.mjs +0 -59
  264. package/esm2022/model/pipes/enum.pipe.mjs +0 -26
  265. package/esm2022/model/pipes/i18n-property.pipe.mjs +0 -19
  266. package/esm2022/model/utils/i18n.util.mjs +0 -51
  267. package/esm2022/model/utils/model.util.mjs +0 -73
  268. package/esm2022/tableview/action/utils/i18n.util.mjs +0 -126
  269. package/esm2022/tableview/editor/utils/editor-formly.util.mjs +0 -337
  270. package/model/utils/i18n.util.d.ts +0 -15
  271. package/model/utils/model.util.d.ts +0 -8
  272. package/tableview/action/utils/i18n.util.d.ts +0 -48
  273. package/tableview/editor/utils/editor-formly.util.d.ts +0 -12
@@ -0,0 +1,119 @@
1
+ const ngPrimerFormatSupported = [/d{1,2}/g, /E{1,5}/g, /c{1,5}/g, /M{1,5}/g, /L{1,5}/g, /y{1,4}/g, /Y{1,4}/g];
2
+ const ngPrimeFormatOther = [/G{1,5}/g, /w{1,2}/g, /W/g, /a{1,5}/g, /B{1,5}/g, /b{1,5}/g, /h{1,2}/g, /H{1,2}/g, /m{1,2}/g, /s{1,2}/g, /S{1,3}/g, /z{1,4}/g, /Z{1,5}/g, /O{1,4}/g];
3
+ const ngPrimerFormatMap = {
4
+ // days
5
+ d: 'd',
6
+ dd: 'dd',
7
+ E: 'D',
8
+ EE: 'D',
9
+ EEE: 'D',
10
+ EEEE: 'DD',
11
+ EEEEE: 'D',
12
+ EEEEEE: 'D',
13
+ c: 'd',
14
+ cc: 'dd',
15
+ ccc: 'D',
16
+ cccc: 'DD',
17
+ ccccc: 'D',
18
+ cccccc: 'D',
19
+ // months
20
+ M: 'm',
21
+ MM: 'mm',
22
+ MMM: 'M',
23
+ MMMM: 'MM',
24
+ MMMMM: 'M',
25
+ L: 'm',
26
+ LL: 'mm',
27
+ LLL: 'M',
28
+ LLLL: 'MM',
29
+ LLLLL: 'M',
30
+ // year
31
+ y: 'y',
32
+ yy: 'y',
33
+ yyy: 'yy',
34
+ yyyy: 'yy',
35
+ Y: 'y',
36
+ YY: 'y',
37
+ YYY: 'yy',
38
+ YYYY: 'yy'
39
+ };
40
+ function padNumber(num, size = 2) {
41
+ let str = String(num);
42
+ while (str.length < size) {
43
+ str = '0' + str;
44
+ }
45
+ return str;
46
+ }
47
+ export function dateToIsoString(value, type = 'date-time', dateTimeOpts = {}) {
48
+ if (typeof value === 'string') {
49
+ value = new Date(value);
50
+ }
51
+ if (typeof value === 'number') {
52
+ value = new Date(value);
53
+ }
54
+ if (!(value instanceof Date)) {
55
+ return null;
56
+ }
57
+ if (type === 'date') {
58
+ // date only, no time part (and timezone, millis, utc does not matter ...)
59
+ return value.getFullYear() + '-' + padNumber(value.getMonth() + 1) + '-' + padNumber(value.getDate());
60
+ }
61
+ if (dateTimeOpts.utc) {
62
+ let str = value.toISOString();
63
+ if (dateTimeOpts.noMillis) {
64
+ const dotIdx = str.lastIndexOf('.');
65
+ str = str.substring(0, dotIdx) + str.substring(dotIdx + 4, str.length);
66
+ }
67
+ if (dateTimeOpts.noTimezone) {
68
+ str = str.substring(0, str.length - 1);
69
+ }
70
+ return str;
71
+ }
72
+ else {
73
+ let base = value.getFullYear() +
74
+ '-' +
75
+ padNumber(value.getMonth() + 1) +
76
+ '-' +
77
+ padNumber(value.getDate()) +
78
+ 'T' +
79
+ padNumber(value.getHours()) +
80
+ ':' +
81
+ padNumber(value.getMinutes()) +
82
+ ':' +
83
+ padNumber(value.getSeconds());
84
+ if (!dateTimeOpts.noMillis) {
85
+ base += '.' + padNumber(value.getMilliseconds());
86
+ }
87
+ if (!dateTimeOpts.noTimezone) {
88
+ const tzo = -value.getTimezoneOffset(), dif = tzo >= 0 ? '+' : '-';
89
+ base = base + (dif + padNumber(Math.floor(Math.abs(tzo) / 60)) + ':' + padNumber(Math.abs(tzo) % 60));
90
+ }
91
+ return base;
92
+ }
93
+ }
94
+ export function fromAngularDateFormatToPrime(ngDateFormat) {
95
+ let primeDateFormat = ngDateFormat;
96
+ for (const regex of ngPrimeFormatOther) {
97
+ primeDateFormat = primeDateFormat.replace(regex, ' ');
98
+ }
99
+ for (const regex of ngPrimerFormatSupported) {
100
+ const matches = [...primeDateFormat.matchAll(regex)].reverse();
101
+ for (const match of matches) {
102
+ if (match.index) {
103
+ const matchStr = match[0];
104
+ const replacement = ngPrimerFormatMap[matchStr] ?? match[0];
105
+ primeDateFormat = primeDateFormat.substring(0, match.index) + replacement + primeDateFormat.substring(match.index + matchStr.length);
106
+ }
107
+ }
108
+ }
109
+ primeDateFormat = primeDateFormat.replace(/\s+\W\s+/g, ' ');
110
+ primeDateFormat = primeDateFormat.replace(/\s\s+/g, ' ');
111
+ return primeDateFormat.trim();
112
+ }
113
+ export function angularDateFormatHasTime(ngDateFormat) {
114
+ return /[hHmsS]/.test(ngDateFormat);
115
+ }
116
+ export function angularDateFormatHasSeconds(ngDateFormat) {
117
+ return /[sS]/.test(ngDateFormat);
118
+ }
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2hlbHBlcnMvZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLHVCQUF1QixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDOUcsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNqTCxNQUFNLGlCQUFpQixHQUFHO0lBQ3RCLE9BQU87SUFDUCxDQUFDLEVBQUUsR0FBRztJQUNOLEVBQUUsRUFBRSxJQUFJO0lBQ1IsQ0FBQyxFQUFFLEdBQUc7SUFDTixFQUFFLEVBQUUsR0FBRztJQUNQLEdBQUcsRUFBRSxHQUFHO0lBQ1IsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsQ0FBQyxFQUFFLEdBQUc7SUFDTixFQUFFLEVBQUUsSUFBSTtJQUNSLEdBQUcsRUFBRSxHQUFHO0lBQ1IsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsU0FBUztJQUNULENBQUMsRUFBRSxHQUFHO0lBQ04sRUFBRSxFQUFFLElBQUk7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLEdBQUc7SUFDVixDQUFDLEVBQUUsR0FBRztJQUNOLEVBQUUsRUFBRSxJQUFJO0lBQ1IsR0FBRyxFQUFFLEdBQUc7SUFDUixJQUFJLEVBQUUsSUFBSTtJ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QUFDLENBQUM7Z0JBQzFCLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLFFBQXdCLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVFLGVBQWUsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsV0FBVyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekksQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQ0QsZUFBZSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVELGVBQWUsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUV6RCxPQUFPLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFlBQW9CO0lBQ3pELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFlBQW9CO0lBQzVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgdG9Jc29TdHJpbmdUeXBlT3B0VHlwZSA9ICdkYXRlJyB8ICdkYXRlLXRpbWUnIHwgJ2RhdGVUaW1lJztcbmV4cG9ydCB0eXBlIHRvSXNvU3RyaW5nRGF0ZVRpbWVPcHRzVHlwZSA9IHt1dGM/OiBib29sZWFuOyBub1RpbWV6b25lPzogYm9vbGVhbjsgbm9NaWxsaXM/OiBib29sZWFufTtcblxuY29uc3QgbmdQcmltZXJGb3JtYXRTdXBwb3J0ZWQgPSBbL2R7MSwyfS9nLCAvRXsxLDV9L2csIC9jezEsNX0vZywgL017MSw1fS9nLCAvTHsxLDV9L2csIC95ezEsNH0vZywgL1l7MSw0fS9nXTtcbmNvbnN0IG5nUHJpbWVGb3JtYXRPdGhlciA9IFsvR3sxLDV9L2csIC93ezEsMn0vZywgL1cvZywgL2F7MSw1fS9nLCAvQnsxLDV9L2csIC9iezEsNX0vZywgL2h7MSwyfS9nLCAvSHsxLDJ9L2csIC9tezEsMn0vZywgL3N7MSwyfS9nLCAvU3sxLDN9L2csIC96ezEsNH0vZywgL1p7MSw1fS9nLCAvT3sxLDR9L2ddO1xuY29uc3QgbmdQcmltZXJGb3JtYXRNYXAgPSB7XG4gICAgLy8gZGF5c1xuICAgIGQ6ICdkJyxcbiAgICBkZDogJ2RkJyxcbiAgICBFOiAnRCcsXG4gICAgRUU6ICdEJyxcbiAgICBFRUU6ICdEJyxcbiAgICBFRUVFOiAnREQnLFxuICAgIEVFRUVFOiAnRCcsXG4gICAgRUVFRUVFOiAnRCcsXG4gICAgYzogJ2QnLFxuICAgIGNjOiAnZGQnLFxuICAgIGNjYzogJ0QnLFxuICAgIGNjY2M6ICdERCcsXG4gICAgY2NjY2M6ICdEJyxcbiAgICBjY2NjY2M6ICdEJyxcbiAgICAvLyBtb250aHNcbiAgICBNOiAnbScsXG4gICAgTU06ICdtbScsXG4gICAgTU1NOiAnTScsXG4gICAgTU1NTTogJ01NJyxcbiAgICBNTU1NTTogJ00nLFxuICAgIEw6ICdtJyxcbiAgICBMTDogJ21tJyxcbiAgICBMTEw6ICdNJyxcbiAgICBMTExMOiAnTU0nLFxuICAgIExMTExMOiAnTScsXG4gICAgLy8geWVhclxuICAgIHk6ICd5JyxcbiAgICB5eTogJ3knLFxuICAgIHl5eTogJ3l5JyxcbiAgICB5eXl5OiAneXknLFxuICAgIFk6ICd5JyxcbiAgICBZWTogJ3knLFxuICAgIFlZWTogJ3l5JyxcbiAgICBZWVlZOiAneXknXG59O1xuXG5mdW5jdGlvbiBwYWROdW1iZXIobnVtOiBudW1iZXIsIHNpemUgPSAyKSB7XG4gICAgbGV0IHN0ciA9IFN0cmluZyhudW0pO1xuICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgc2l6ZSkge1xuICAgICAgICBzdHIgPSAnMCcgKyBzdHI7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlVG9Jc29TdHJpbmcodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUsIHR5cGU/OiAnZGF0ZScpOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gZGF0ZVRvSXNvU3RyaW5nKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlLCB0eXBlOiAnZGF0ZS10aW1lJyB8ICdkYXRlVGltZScsIGRhdGVUaW1lT3B0cz86IHRvSXNvU3RyaW5nRGF0ZVRpbWVPcHRzVHlwZSk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBkYXRlVG9Jc29TdHJpbmcodmFsdWU6IHVuZGVmaW5lZCB8IG51bGwgfCB1bmtub3duLCB0eXBlPzogJ2RhdGUnKTogbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBkYXRlVG9Jc29TdHJpbmcodmFsdWU6IHVuZGVmaW5lZCB8IG51bGwgfCB1bmtub3duLCB0eXBlOiAnZGF0ZS10aW1lJyB8ICdkYXRlVGltZScsIGRhdGVUaW1lT3B0cz86IHRvSXNvU3RyaW5nRGF0ZVRpbWVPcHRzVHlwZSk6IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZGF0ZVRvSXNvU3RyaW5nKHZhbHVlOiB1bmtub3duLCB0eXBlPzogdG9Jc29TdHJpbmdUeXBlT3B0VHlwZSwgZGF0ZVRpbWVPcHRzPzogdG9Jc29TdHJpbmdEYXRlVGltZU9wdHNUeXBlKTogc3RyaW5nIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBkYXRlVG9Jc29TdHJpbmcodmFsdWU6IHVua25vd24sIHR5cGU6IHRvSXNvU3RyaW5nVHlwZU9wdFR5cGUgPSAnZGF0ZS10aW1lJywgZGF0ZVRpbWVPcHRzOiB0b0lzb1N0cmluZ0RhdGVUaW1lT3B0c1R5cGUgPSB7fSk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAvLyBkYXRlIG9ubHksIG5vIHRpbWUgcGFydCAoYW5kIHRpbWV6b25lLCBtaWxsaXMsIHV0YyBkb2VzIG5vdCBtYXR0ZXIgLi4uKVxuICAgICAgICByZXR1cm4gdmFsdWUuZ2V0RnVsbFllYXIoKSArICctJyArIHBhZE51bWJlcih2YWx1ZS5nZXRNb250aCgpICsgMSkgKyAnLScgKyBwYWROdW1iZXIodmFsdWUuZ2V0RGF0ZSgpKTtcbiAgICB9XG4gICAgaWYgKGRhdGVUaW1lT3B0cy51dGMpIHtcbiAgICAgICAgbGV0IHN0ciA9IHZhbHVlLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIGlmIChkYXRlVGltZU9wdHMubm9NaWxsaXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvdElkeCA9IHN0ci5sYXN0SW5kZXhPZignLicpO1xuICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBkb3RJZHgpICsgc3RyLnN1YnN0cmluZyhkb3RJZHggKyA0LCBzdHIubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0ZVRpbWVPcHRzLm5vVGltZXpvbmUpIHtcbiAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGJhc2UgPVxuICAgICAgICAgICAgdmFsdWUuZ2V0RnVsbFllYXIoKSArXG4gICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgcGFkTnVtYmVyKHZhbHVlLmdldE1vbnRoKCkgKyAxKSArXG4gICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgcGFkTnVtYmVyKHZhbHVlLmdldERhdGUoKSkgK1xuICAgICAgICAgICAgJ1QnICtcbiAgICAgICAgICAgIHBhZE51bWJlcih2YWx1ZS5nZXRIb3VycygpKSArXG4gICAgICAgICAgICAnOicgK1xuICAgICAgICAgICAgcGFkTnVtYmVyKHZhbHVlLmdldE1pbnV0ZXMoKSkgK1xuICAgICAgICAgICAgJzonICtcbiAgICAgICAgICAgIHBhZE51bWJlcih2YWx1ZS5nZXRTZWNvbmRzKCkpO1xuXG4gICAgICAgIGlmICghZGF0ZVRpbWVPcHRzLm5vTWlsbGlzKSB7XG4gICAgICAgICAgICBiYXNlICs9ICcuJyArIHBhZE51bWJlcih2YWx1ZS5nZXRNaWxsaXNlY29uZHMoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFkYXRlVGltZU9wdHMubm9UaW1lem9uZSkge1xuICAgICAgICAgICAgY29uc3QgdHpvID0gLXZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCksXG4gICAgICAgICAgICAgICAgZGlmID0gdHpvID49IDAgPyAnKycgOiAnLSc7XG5cbiAgICAgICAgICAgIGJhc2UgPSBiYXNlICsgKGRpZiArIHBhZE51bWJlcihNYXRoLmZsb29yKE1hdGguYWJzKHR6bykgLyA2MCkpICsgJzonICsgcGFkTnVtYmVyKE1hdGguYWJzKHR6bykgJSA2MCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUFuZ3VsYXJEYXRlRm9ybWF0VG9QcmltZShuZ0RhdGVGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHByaW1lRGF0ZUZvcm1hdCA9IG5nRGF0ZUZvcm1hdDtcbiAgICBmb3IgKGNvbnN0IHJlZ2V4IG9mIG5nUHJpbWVGb3JtYXRPdGhlcikge1xuICAgICAgICBwcmltZURhdGVGb3JtYXQgPSBwcmltZURhdGVGb3JtYXQucmVwbGFjZShyZWdleCwgJyAnKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCByZWdleCBvZiBuZ1ByaW1lckZvcm1hdFN1cHBvcnRlZCkge1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gWy4uLnByaW1lRGF0ZUZvcm1hdC5tYXRjaEFsbChyZWdleCldLnJldmVyc2UoKTtcbiAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2guaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaFN0ciA9IG1hdGNoWzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gbmdQcmltZXJGb3JtYXRNYXBbbWF0Y2hTdHIgYXMga2V5b2Ygb2JqZWN0XSA/PyBtYXRjaFswXTtcbiAgICAgICAgICAgICAgICBwcmltZURhdGVGb3JtYXQgPSBwcmltZURhdGVGb3JtYXQuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KSArIHJlcGxhY2VtZW50ICsgcHJpbWVEYXRlRm9ybWF0LnN1YnN0cmluZyhtYXRjaC5pbmRleCArIG1hdGNoU3RyLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpbWVEYXRlRm9ybWF0ID0gcHJpbWVEYXRlRm9ybWF0LnJlcGxhY2UoL1xccytcXFdcXHMrL2csICcgJyk7XG4gICAgcHJpbWVEYXRlRm9ybWF0ID0gcHJpbWVEYXRlRm9ybWF0LnJlcGxhY2UoL1xcc1xccysvZywgJyAnKTtcblxuICAgIHJldHVybiBwcmltZURhdGVGb3JtYXQudHJpbSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYW5ndWxhckRhdGVGb3JtYXRIYXNUaW1lKG5nRGF0ZUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIC9baEhtc1NdLy50ZXN0KG5nRGF0ZUZvcm1hdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbmd1bGFyRGF0ZUZvcm1hdEhhc1NlY29uZHMobmdEYXRlRm9ybWF0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL1tzU10vLnRlc3QobmdEYXRlRm9ybWF0KTtcbn1cbiJdfQ==
@@ -0,0 +1,145 @@
1
+ export function objectDeepCopy(obj, options) {
2
+ if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
3
+ return obj;
4
+ }
5
+ if (obj instanceof Date) {
6
+ return new Date(+obj);
7
+ }
8
+ let copy;
9
+ if (options?.mapGettersToProperties) {
10
+ copy = {};
11
+ }
12
+ else {
13
+ copy = options?.objectPrototype ? Object.create(options.objectPrototype['prototype']) : Object.create(Object.getPrototypeOf(obj));
14
+ Object.assign(copy, obj);
15
+ }
16
+ for (const key of getObjectProperties(obj)) {
17
+ const prop = obj[key];
18
+ copy[key] = handleProp(prop, { mapGettersToProperties: options?.mapGettersToProperties });
19
+ }
20
+ if (options?.mapGettersToProperties) {
21
+ for (const getterKey of getObjectGetters(obj)) {
22
+ const prop = obj[getterKey];
23
+ copy[getterKey] = handleProp(prop, { mapGettersToProperties: options?.mapGettersToProperties });
24
+ }
25
+ }
26
+ return copy;
27
+ }
28
+ export function objectDeepMerge(target, source) {
29
+ if (!isObject(source)) {
30
+ return target;
31
+ }
32
+ for (const key of getObjectProperties(source)) {
33
+ if (isObject(source[key])) {
34
+ if (isObject(target[key])) {
35
+ target[key] = objectDeepMerge(target[key], source[key]);
36
+ }
37
+ else {
38
+ target[key] = objectDeepCopy(source[key]);
39
+ }
40
+ }
41
+ else if (Array.isArray(source[key])) {
42
+ if (!Array.isArray(target[key])) {
43
+ target[key] = source[key].map(i => (isObject(i) ? objectDeepMerge({}, i) : i));
44
+ }
45
+ }
46
+ else if (typeof target[key] === 'undefined') {
47
+ target[key] = source[key];
48
+ }
49
+ }
50
+ return target;
51
+ }
52
+ function isObject(obj) {
53
+ return typeof obj === 'object' && obj !== null && !Array.isArray(obj);
54
+ }
55
+ function handleProp(prop, options) {
56
+ if (Array.isArray(prop)) {
57
+ return prop.map(i => objectDeepCopy(i, options));
58
+ }
59
+ else if (typeof prop === 'object' && prop !== null) {
60
+ return objectDeepCopy(prop, options);
61
+ }
62
+ else {
63
+ return prop;
64
+ }
65
+ }
66
+ export function getObjectProperties(obj) {
67
+ return Object.keys(obj);
68
+ }
69
+ export function getObjectGetters(obj) {
70
+ const getterSet = new Set();
71
+ let currObj = obj;
72
+ while (currObj) {
73
+ const getters = Object.entries(Object.getOwnPropertyDescriptors(currObj))
74
+ .filter(([, descriptor]) => typeof descriptor.get === 'function')
75
+ .filter(([key]) => key !== '__proto__')
76
+ .map(([key]) => key);
77
+ for (const getter of getters) {
78
+ getterSet.add(getter);
79
+ }
80
+ currObj = Object.getPrototypeOf(currObj);
81
+ }
82
+ return Array.from(getterSet);
83
+ }
84
+ export function getObjectPropertyByPath(value, path) {
85
+ if (path === '$') {
86
+ // only return the root
87
+ return value;
88
+ }
89
+ // Check for leading root object notation
90
+ if (path.startsWith('$')) {
91
+ path = path.substring(1);
92
+ }
93
+ // Check for leading .
94
+ if (path.startsWith('.')) {
95
+ path = path.substring(1);
96
+ }
97
+ if (path.indexOf('.') >= 0) {
98
+ const pathSplit = path.split('.');
99
+ let currValue = value;
100
+ for (const p of pathSplit) {
101
+ if (typeof currValue === 'undefined' || currValue === null) {
102
+ return currValue;
103
+ }
104
+ if (!p.length) {
105
+ // empty path, return current value
106
+ return currValue;
107
+ }
108
+ const leftBracketIdx = p.indexOf('[');
109
+ if (leftBracketIdx >= 0 && p.endsWith(']')) {
110
+ // should be reference to array
111
+ const arrayPath = p.substring(0, leftBracketIdx);
112
+ const arrayIdx = +p.substring(leftBracketIdx + 1, p.length - 1);
113
+ const array = currValue[arrayPath];
114
+ if (Array.isArray(array)) {
115
+ if (arrayIdx >= 0 && arrayIdx < array.length) {
116
+ // valid index, continue on the path
117
+ currValue = array[arrayIdx];
118
+ continue;
119
+ }
120
+ }
121
+ return undefined;
122
+ }
123
+ else if (typeof currValue === 'object') {
124
+ currValue = currValue[p];
125
+ }
126
+ }
127
+ return currValue;
128
+ }
129
+ else {
130
+ return value[path];
131
+ }
132
+ }
133
+ export function flattenObjectKeys(objectModel) {
134
+ const flatten = (object, parent) => {
135
+ let results = [];
136
+ for (const key in object) {
137
+ const value = object[key];
138
+ const thisKey = parent ? `${parent}.${key}` : `${key}`;
139
+ results = results.concat(isObject(value) ? flatten(value, thisKey) : [[`${thisKey}`, value]]);
140
+ }
141
+ return results;
142
+ };
143
+ return flatten(objectModel);
144
+ }
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvaGVscGVycy9vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sVUFBVSxjQUFjLENBQXlCLEdBQU0sRUFBRSxPQUE0QjtJQUN2RixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNoRSxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDO0lBQ1QsSUFBSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2QsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLEdBQUcsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFdBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsSixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFtQixDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxJQUFJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xDLEtBQUssTUFBTSxTQUFTLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsU0FBeUIsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUMsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFDLENBQUMsQ0FBQztRQUNsRyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQTJCLEVBQUUsTUFBMkI7SUFDcEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBSSxNQUFNLENBQUMsR0FBRyxDQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLENBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsSSxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFRO0lBQ3RCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFTLEVBQUUsT0FBOEI7SUFDekQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7U0FBTSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbkQsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBVztJQUMzQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFRO0lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDcEMsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBRWxCLE9BQU8sT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNwRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sVUFBVSxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUM7YUFDaEUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLFdBQVcsQ0FBQzthQUN0QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUVELE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxLQUFVLEVBQUUsSUFBWTtJQUM1RCxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLHVCQUF1QjtRQUN2QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixLQUFLLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDekQsT0FBTyxTQUFTLENBQUM7WUFDckIsQ0FBQztZQUVELElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osbUNBQW1DO2dCQUNuQyxPQUFPLFNBQVMsQ0FBQztZQUNyQixDQUFDO1lBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxJQUFJLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6QywrQkFBK0I7Z0JBQy9CLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUNqRCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN2QixJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDM0Msb0NBQW9DO3dCQUNwQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUM1QixTQUFTO29CQUNiLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxPQUFPLFNBQVMsQ0FBQztZQUNyQixDQUFDO2lCQUFNLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFdBQWdCO0lBQzlDLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBVyxFQUFFLE1BQVksRUFBRSxFQUFFO1FBQzFDLElBQUksT0FBTyxHQUFVLEVBQUUsQ0FBQztRQUN4QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBRXZELE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJy4uL21vZGVscy9jbGFzcy1zZXJ2aWNlLm1vZGVsJztcblxuaW50ZXJmYWNlIERlZXBDb3B5UHJvcHNPcHRpb25zIHtcbiAgICBtYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWVwQ29weU9wdGlvbnM8UCA9IG9iamVjdD4gZXh0ZW5kcyBEZWVwQ29weVByb3BzT3B0aW9ucyB7XG4gICAgb2JqZWN0UHJvdG90eXBlPzogQ2xhc3NUeXBlPFA+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0RGVlcENvcHk8VCA9IG9iamVjdCwgUCA9IG9iamVjdD4ob2JqOiBULCBvcHRpb25zOiBEZWVwQ29weU9wdGlvbnM8UD4gJiB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pOiBUIHwgUmVjb3JkPHN0cmluZywgYW55PjtcbmV4cG9ydCBmdW5jdGlvbiBvYmplY3REZWVwQ29weTxUID0gb2JqZWN0LCBQID0gb2JqZWN0PihvYmo6IFQsIG9wdGlvbnM6IERlZXBDb3B5T3B0aW9uczxQPiAmIHtvYmplY3RQcm90b3R5cGU6IENsYXNzVHlwZTxQPn0gJiB7bWFwR2V0dGVyc1RvUHJvcGVydGllcz86IGZhbHNlfSk6IFA7XG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0RGVlcENvcHk8VCA9IG9iamVjdCwgUCA9IG9iamVjdD4oXG4gICAgb2JqOiBULFxuICAgIG9wdGlvbnM6IERlZXBDb3B5T3B0aW9uczxQPiAmIHtvYmplY3RQcm90b3R5cGU6IENsYXNzVHlwZTxQPn0gJiB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX1cbik6IFAgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuZXhwb3J0IGZ1bmN0aW9uIG9iamVjdERlZXBDb3B5PFQgPSBvYmplY3QsIFAgPSBvYmplY3Q+KG9iajogVCwgb3B0aW9ucz86IERlZXBDb3B5T3B0aW9uczxQPik6IFQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3REZWVwQ29weTxUID0gb2JqZWN0LCBQID0gb2JqZWN0PihvYmo6IFQsIG9wdGlvbnM/OiBEZWVwQ29weU9wdGlvbnM8UD4pOiBUIHwgUCB8IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwgfHwgQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCtvYmopO1xuICAgIH1cblxuICAgIGxldCBjb3B5O1xuICAgIGlmIChvcHRpb25zPy5tYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvcHkgPSB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb3B5ID0gb3B0aW9ucz8ub2JqZWN0UHJvdG90eXBlID8gT2JqZWN0LmNyZWF0ZShvcHRpb25zLm9iamVjdFByb3RvdHlwZVsncHJvdG90eXBlJyBhcyBrZXlvZiBvYmplY3RdKSA6IE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpO1xuICAgICAgICBPYmplY3QuYXNzaWduKGNvcHksIG9iaik7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgZ2V0T2JqZWN0UHJvcGVydGllcyhvYmopKSB7XG4gICAgICAgIGNvbnN0IHByb3AgPSBvYmpba2V5IGFzIGtleW9mIG9iamVjdF07XG4gICAgICAgIGNvcHlba2V5XSA9IGhhbmRsZVByb3AocHJvcCwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IG9wdGlvbnM/Lm1hcEdldHRlcnNUb1Byb3BlcnRpZXN9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8ubWFwR2V0dGVyc1RvUHJvcGVydGllcykge1xuICAgICAgICBmb3IgKGNvbnN0IGdldHRlcktleSBvZiBnZXRPYmplY3RHZXR0ZXJzKG9iaikpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3AgPSBvYmpbZ2V0dGVyS2V5IGFzIGtleW9mIG9iamVjdF07XG4gICAgICAgICAgICBjb3B5W2dldHRlcktleV0gPSBoYW5kbGVQcm9wKHByb3AsIHttYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzOiBvcHRpb25zPy5tYXBHZXR0ZXJzVG9Qcm9wZXJ0aWVzfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29weTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9iamVjdERlZXBNZXJnZSh0YXJnZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIHNvdXJjZTogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGlmICghaXNPYmplY3Qoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIGdldE9iamVjdFByb3BlcnRpZXMoc291cmNlKSkge1xuICAgICAgICBpZiAoaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3QodGFyZ2V0W2tleV0pKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBvYmplY3REZWVwTWVyZ2UodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBvYmplY3REZWVwQ29weShzb3VyY2Vba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh0YXJnZXRba2V5XSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IChzb3VyY2Vba2V5XSBhcyBBcnJheTx1bmtub3duPikubWFwKGkgPT4gKGlzT2JqZWN0KGkpID8gb2JqZWN0RGVlcE1lcmdlKHt9LCBpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA6IGkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGFyZ2V0W2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3Qob2JqOiBhbnkpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KG9iaik7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVByb3AocHJvcDogYW55LCBvcHRpb25zPzogRGVlcENvcHlQcm9wc09wdGlvbnMpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wKSkge1xuICAgICAgICByZXR1cm4gcHJvcC5tYXAoaSA9PiBvYmplY3REZWVwQ29weShpLCBvcHRpb25zKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcCA9PT0gJ29iamVjdCcgJiYgcHJvcCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0RGVlcENvcHkocHJvcCwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHByb3A7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0UHJvcGVydGllcyhvYmo6IG9iamVjdCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0R2V0dGVycyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBnZXR0ZXJTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBsZXQgY3Vyck9iaiA9IG9iajtcblxuICAgIHdoaWxlIChjdXJyT2JqKSB7XG4gICAgICAgIGNvbnN0IGdldHRlcnMgPSBPYmplY3QuZW50cmllcyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhjdXJyT2JqKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKFssIGRlc2NyaXB0b3JdKSA9PiB0eXBlb2YgZGVzY3JpcHRvci5nZXQgPT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICAuZmlsdGVyKChba2V5XSkgPT4ga2V5ICE9PSAnX19wcm90b19fJylcbiAgICAgICAgICAgIC5tYXAoKFtrZXldKSA9PiBrZXkpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZ2V0dGVyIG9mIGdldHRlcnMpIHtcbiAgICAgICAgICAgIGdldHRlclNldC5hZGQoZ2V0dGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJPYmogPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3Vyck9iaik7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZ2V0dGVyU2V0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFByb3BlcnR5QnlQYXRoKHZhbHVlOiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHBhdGggPT09ICckJykge1xuICAgICAgICAvLyBvbmx5IHJldHVybiB0aGUgcm9vdFxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGxlYWRpbmcgcm9vdCBvYmplY3Qgbm90YXRpb25cbiAgICBpZiAocGF0aC5zdGFydHNXaXRoKCckJykpIHtcbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDEpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsZWFkaW5nIC5cbiAgICBpZiAocGF0aC5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDEpO1xuICAgIH1cblxuICAgIGlmIChwYXRoLmluZGV4T2YoJy4nKSA+PSAwKSB7XG4gICAgICAgIGNvbnN0IHBhdGhTcGxpdCA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICAgICAgbGV0IGN1cnJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcGF0aFNwbGl0KSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJWYWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgY3VyclZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJWYWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIC8vIGVtcHR5IHBhdGgsIHJldHVybiBjdXJyZW50IHZhbHVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJWYWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbGVmdEJyYWNrZXRJZHggPSBwLmluZGV4T2YoJ1snKTtcbiAgICAgICAgICAgIGlmIChsZWZ0QnJhY2tldElkeCA+PSAwICYmIHAuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICAgICAgICAgIC8vIHNob3VsZCBiZSByZWZlcmVuY2UgdG8gYXJyYXlcbiAgICAgICAgICAgICAgICBjb25zdCBhcnJheVBhdGggPSBwLnN1YnN0cmluZygwLCBsZWZ0QnJhY2tldElkeCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJyYXlJZHggPSArcC5zdWJzdHJpbmcobGVmdEJyYWNrZXRJZHggKyAxLCBwLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5ID0gY3VyclZhbHVlW2FycmF5UGF0aF07XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhcnJheUlkeCA+PSAwICYmIGFycmF5SWR4IDwgYXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWxpZCBpbmRleCwgY29udGludWUgb24gdGhlIHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJWYWx1ZSA9IGFycmF5W2FycmF5SWR4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGN1cnJWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBjdXJyVmFsdWUgPSBjdXJyVmFsdWVbcF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGN1cnJWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsdWVbcGF0aF07XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbk9iamVjdEtleXMob2JqZWN0TW9kZWw6IGFueSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmbGF0dGVuID0gKG9iamVjdDogYW55LCBwYXJlbnQ/OiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdHM6IGFueVtdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iamVjdCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICAgICAgICAgIGNvbnN0IHRoaXNLZXkgPSBwYXJlbnQgPyBgJHtwYXJlbnR9LiR7a2V5fWAgOiBgJHtrZXl9YDtcblxuICAgICAgICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuY29uY2F0KGlzT2JqZWN0KHZhbHVlKSA/IGZsYXR0ZW4odmFsdWUsIHRoaXNLZXkpIDogW1tgJHt0aGlzS2V5fWAsIHZhbHVlXV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH07XG5cbiAgICByZXR1cm4gZmxhdHRlbihvYmplY3RNb2RlbCk7XG59XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { CommonsInternalError } from '../error/error.model';
2
+ export function removeRouteEmptyPathSegments(path) {
3
+ const filteredPath = path.filter(ps => typeof ps === 'string' && ps.length > 0);
4
+ return filteredPath.length > 0 ? filteredPath : [''];
5
+ }
6
+ export function appendRoutePathToBasePath(basePath, path) {
7
+ if (path.length > 0) {
8
+ if (path[0].startsWith('/')) {
9
+ return path;
10
+ }
11
+ else if (path[0].startsWith('../')) {
12
+ throw new CommonsInternalError('Not implemented', { name: 'RouteUtilsError' });
13
+ }
14
+ else {
15
+ return removeRouteEmptyPathSegments([...basePath, ...path]);
16
+ }
17
+ }
18
+ else {
19
+ return basePath;
20
+ }
21
+ }
22
+ export function doesUrlMatchRouterLink(link, url) {
23
+ if (typeof url === 'string' && url.startsWith('/')) {
24
+ url = url.substring(1);
25
+ }
26
+ else if (Array.isArray(url) && url.length > 0 && url[0].startsWith('/')) {
27
+ url[0] = url[0].substring(1);
28
+ }
29
+ const routeSegments = Array.isArray(link) ? link : link.split('/');
30
+ const urlSegments = Array.isArray(url) ? url : url.split('#')[0].split('?')[0].split('/');
31
+ if (routeSegments.length > 0 && urlSegments.length > 0) {
32
+ for (let i = 0; i < routeSegments.length; i++) {
33
+ if (i < urlSegments.length) {
34
+ if (routeSegments[i] !== urlSegments[i]) {
35
+ return false;
36
+ }
37
+ }
38
+ else {
39
+ break;
40
+ }
41
+ }
42
+ return true;
43
+ }
44
+ return false;
45
+ }
46
+ export function adjustRouteMenuLazyChildrenRouterLinks(rootMenuItem, lazyChildren) {
47
+ return lazyChildren.map(i => {
48
+ const childMenuItem = { ...i };
49
+ if (childMenuItem.routerLink) {
50
+ childMenuItem.routerLink = appendRoutePathToBasePath(rootMenuItem.routerLink, typeof childMenuItem.routerLink === 'string' ? [childMenuItem.routerLink] : childMenuItem.routerLink);
51
+ }
52
+ if (Array.isArray(childMenuItem.items)) {
53
+ childMenuItem.items = adjustRouteMenuLazyChildrenRouterLinks(rootMenuItem, childMenuItem.items);
54
+ }
55
+ return childMenuItem;
56
+ });
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9oZWxwZXJzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzFELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxJQUFtQjtJQUM1RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEYsT0FBTyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsUUFBdUIsRUFBRSxJQUFtQjtJQUNsRixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7UUFDakYsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLDRCQUE0QixDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLElBQTRCLEVBQUUsR0FBMkI7SUFDNUYsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pELEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUYsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN6QixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsT0FBTyxLQUFLLENBQUM7Z0JBQ2pCLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTTtZQUNWLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsc0NBQXNDLENBQUMsWUFBMkIsRUFBRSxZQUFvQztJQUNwSCxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDeEIsTUFBTSxhQUFhLEdBQUcsRUFBQyxHQUFHLENBQUMsRUFBQyxDQUFDO1FBQzdCLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzNCLGFBQWEsQ0FBQyxVQUFVLEdBQUcseUJBQXlCLENBQ2hELFlBQVksQ0FBQyxVQUFVLEVBQ3ZCLE9BQU8sYUFBYSxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUN2RyxDQUFDO1FBQ04sQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxhQUFhLENBQUMsS0FBSyxHQUFHLHNDQUFzQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWVudUl0ZW0gYXMgUHJpbWVNZW51SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yfSBmcm9tICcuLi9lcnJvci9lcnJvci5tb2RlbCc7XG5pbXBvcnQge0NvbW1vbnNNZW51SXRlbX0gZnJvbSAnLi4vbW9kZWxzL21lbnUubW9kZWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUm91dGVFbXB0eVBhdGhTZWdtZW50cyhwYXRoOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgY29uc3QgZmlsdGVyZWRQYXRoID0gcGF0aC5maWx0ZXIocHMgPT4gdHlwZW9mIHBzID09PSAnc3RyaW5nJyAmJiBwcy5sZW5ndGggPiAwKTtcbiAgICByZXR1cm4gZmlsdGVyZWRQYXRoLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZFBhdGggOiBbJyddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kUm91dGVQYXRoVG9CYXNlUGF0aChiYXNlUGF0aDogQXJyYXk8c3RyaW5nPiwgcGF0aDogQXJyYXk8c3RyaW5nPikge1xuICAgIGlmIChwYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKHBhdGhbMF0uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgfSBlbHNlIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy4uLycpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcsIHtuYW1lOiAnUm91dGVVdGlsc0Vycm9yJ30pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlbW92ZVJvdXRlRW1wdHlQYXRoU2VnbWVudHMoWy4uLmJhc2VQYXRoLCAuLi5wYXRoXSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYmFzZVBhdGg7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9lc1VybE1hdGNoUm91dGVyTGluayhsaW5rOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nLCB1cmw6IEFycmF5PHN0cmluZz4gfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHVybCA9PT0gJ3N0cmluZycgJiYgdXJsLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICB1cmwgPSB1cmwuc3Vic3RyaW5nKDEpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh1cmwpICYmIHVybC5sZW5ndGggPiAwICYmIHVybFswXS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgdXJsWzBdID0gdXJsWzBdLnN1YnN0cmluZygxKTtcbiAgICB9XG5cbiAgICBjb25zdCByb3V0ZVNlZ21lbnRzID0gQXJyYXkuaXNBcnJheShsaW5rKSA/IGxpbmsgOiBsaW5rLnNwbGl0KCcvJyk7XG4gICAgY29uc3QgdXJsU2VnbWVudHMgPSBBcnJheS5pc0FycmF5KHVybCkgPyB1cmwgOiB1cmwuc3BsaXQoJyMnKVswXS5zcGxpdCgnPycpWzBdLnNwbGl0KCcvJyk7XG5cbiAgICBpZiAocm91dGVTZWdtZW50cy5sZW5ndGggPiAwICYmIHVybFNlZ21lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3V0ZVNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoaSA8IHVybFNlZ21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZVNlZ21lbnRzW2ldICE9PSB1cmxTZWdtZW50c1tpXSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0Um91dGVNZW51TGF6eUNoaWxkcmVuUm91dGVyTGlua3Mocm9vdE1lbnVJdGVtOiBQcmltZU1lbnVJdGVtLCBsYXp5Q2hpbGRyZW46IEFycmF5PENvbW1vbnNNZW51SXRlbT4pIHtcbiAgICByZXR1cm4gbGF6eUNoaWxkcmVuLm1hcChpID0+IHtcbiAgICAgICAgY29uc3QgY2hpbGRNZW51SXRlbSA9IHsuLi5pfTtcbiAgICAgICAgaWYgKGNoaWxkTWVudUl0ZW0ucm91dGVyTGluaykge1xuICAgICAgICAgICAgY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rID0gYXBwZW5kUm91dGVQYXRoVG9CYXNlUGF0aChcbiAgICAgICAgICAgICAgICByb290TWVudUl0ZW0ucm91dGVyTGluayxcbiAgICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rID09PSAnc3RyaW5nJyA/IFtjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmtdIDogY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkTWVudUl0ZW0uaXRlbXMpKSB7XG4gICAgICAgICAgICBjaGlsZE1lbnVJdGVtLml0ZW1zID0gYWRqdXN0Um91dGVNZW51TGF6eUNoaWxkcmVuUm91dGVyTGlua3Mocm9vdE1lbnVJdGVtLCBjaGlsZE1lbnVJdGVtLml0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hpbGRNZW51SXRlbTtcbiAgICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { dateToIsoString } from './date';
2
+ import { objectDeepCopy } from './object';
3
+ export function escapeHtml(value) {
4
+ return value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
5
+ }
6
+ export function escapeHtmlAny(value) {
7
+ if (typeof value === 'string') {
8
+ return escapeHtml(value);
9
+ }
10
+ else if (typeof value === 'object') {
11
+ const escapedValue = objectDeepCopy(value, { mapGettersToProperties: true });
12
+ for (const key in value) {
13
+ if (typeof value[key] === 'string') {
14
+ escapedValue[key] = escapeHtml(value[key]);
15
+ }
16
+ else if (typeof value[key] === 'object') {
17
+ escapedValue[key] = escapeHtmlAny(value[key]);
18
+ }
19
+ else {
20
+ escapedValue[key] = value[key];
21
+ }
22
+ }
23
+ return escapedValue;
24
+ }
25
+ return value;
26
+ }
27
+ /**
28
+ * Stringifies a value - primitives with toString, dates with dateUtil, objects with JSON.stringify.
29
+ * @param value Any value.
30
+ */
31
+ export function stringify(value) {
32
+ if (value === null) {
33
+ return 'null';
34
+ }
35
+ if (typeof value === 'undefined') {
36
+ return 'undefined';
37
+ }
38
+ // eliminate functions, cause they could fall into objects
39
+ if (typeof value === 'function') {
40
+ return `Function ${value.name ?? 'anonymous'}()`;
41
+ }
42
+ if (typeof value === 'object') {
43
+ // date is object, but would like it in ISO string representation
44
+ if (value instanceof Date) {
45
+ return dateToIsoString(value) ?? 'null';
46
+ }
47
+ try {
48
+ return JSON.stringify(value);
49
+ }
50
+ catch (e) {
51
+ return value.toString();
52
+ }
53
+ }
54
+ // only primitives should be left to be printed like this (string, number, boolean)
55
+ return value.toString();
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvaGVscGVycy9zdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYTtJQUNwQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVztJQUNyQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sWUFBWSxHQUFRLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBRWhGLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDdEIsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDakMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvQyxDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3hDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUMvQixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBQ0QsMERBQTBEO0lBQzFELElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDOUIsT0FBTyxZQUFZLEtBQUssQ0FBQyxJQUFJLElBQUksV0FBVyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsaUVBQWlFO1FBQ2pFLElBQUksS0FBSyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQ3hCLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFDRCxtRkFBbUY7SUFDbkYsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGF0ZVRvSXNvU3RyaW5nfSBmcm9tICcuL2RhdGUnO1xuaW1wb3J0IHtvYmplY3REZWVwQ29weX0gZnJvbSAnLi9vYmplY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlSHRtbCh2YWx1ZTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUh0bWxBbnkodmFsdWU/OiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVIdG1sKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgZXNjYXBlZFZhbHVlOiBhbnkgPSBvYmplY3REZWVwQ29weSh2YWx1ZSwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IHRydWV9KTtcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVtrZXldID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGVzY2FwZWRWYWx1ZVtrZXldID0gZXNjYXBlSHRtbCh2YWx1ZVtrZXldKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgZXNjYXBlZFZhbHVlW2tleV0gPSBlc2NhcGVIdG1sQW55KHZhbHVlW2tleV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlc2NhcGVkVmFsdWVba2V5XSA9IHZhbHVlW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVzY2FwZWRWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG59XG5cbi8qKlxuICogU3RyaW5naWZpZXMgYSB2YWx1ZSAtIHByaW1pdGl2ZXMgd2l0aCB0b1N0cmluZywgZGF0ZXMgd2l0aCBkYXRlVXRpbCwgb2JqZWN0cyB3aXRoIEpTT04uc3RyaW5naWZ5LlxuICogQHBhcmFtIHZhbHVlIEFueSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuICdudWxsJztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgIH1cbiAgICAvLyBlbGltaW5hdGUgZnVuY3Rpb25zLCBjYXVzZSB0aGV5IGNvdWxkIGZhbGwgaW50byBvYmplY3RzXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gYEZ1bmN0aW9uICR7dmFsdWUubmFtZSA/PyAnYW5vbnltb3VzJ30oKWA7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIGRhdGUgaXMgb2JqZWN0LCBidXQgd291bGQgbGlrZSBpdCBpbiBJU08gc3RyaW5nIHJlcHJlc2VudGF0aW9uXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRlVG9Jc29TdHJpbmcodmFsdWUpID8/ICdudWxsJztcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gb25seSBwcmltaXRpdmVzIHNob3VsZCBiZSBsZWZ0IHRvIGJlIHByaW50ZWQgbGlrZSB0aGlzIChzdHJpbmcsIG51bWJlciwgYm9vbGVhbilcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export function findTemplateByName(templates, name) {
2
+ return templates.find(t => t.getType() === name)?.template ?? null;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvaGVscGVycy90ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFNBQThCLEVBQUUsSUFBWTtJQUMzRSxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7VGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uL2RpcmVjdGl2ZXMvdGVtcGxhdGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRUZW1wbGF0ZUJ5TmFtZSh0ZW1wbGF0ZXM6IFRlbXBsYXRlRGlyZWN0aXZlW10sIG5hbWU6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsIHtcbiAgICByZXR1cm4gdGVtcGxhdGVzLmZpbmQodCA9PiB0LmdldFR5cGUoKSA9PT0gbmFtZSk/LnRlbXBsYXRlID8/IG51bGw7XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { map } from 'rxjs/operators';
2
+ export function getI18nAsync(translate, params, ...keys) {
3
+ return translate.stream(keys, params).pipe(map(i18n => selectI18n(keys, i18n)));
4
+ }
5
+ export function getI18n(translate, params, ...keys) {
6
+ const i18n = translate.instant(keys, params);
7
+ return selectI18n(keys, i18n);
8
+ }
9
+ export function populateI18nParams(item, params = {}) {
10
+ const paramsRes = { ...params };
11
+ if (item) {
12
+ paramsRes.item = item;
13
+ }
14
+ return paramsRes;
15
+ }
16
+ export function selectI18n(keys, i18n) {
17
+ for (const key of keys) {
18
+ if (key !== i18n[key]) {
19
+ return i18n[key];
20
+ }
21
+ }
22
+ return null;
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9pMThuL2kxOG4tY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxNQUFNLFVBQVUsWUFBWSxDQUFDLFNBQTJCLEVBQUUsTUFBWSxFQUFFLEdBQUcsSUFBbUI7SUFDMUYsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEYsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsU0FBMkIsRUFBRSxNQUFZLEVBQUUsR0FBRyxJQUFtQjtJQUNyRixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFVLEVBQUUsU0FBYyxFQUFFO0lBQzNELE1BQU0sU0FBUyxHQUFHLEVBQUMsR0FBRyxNQUFNLEVBQUMsQ0FBQztJQUM5QixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1AsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQWMsRUFBRSxJQUFTO0lBQ2hELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bkFzeW5jKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcGFyYW1zPzogYW55LCAuLi5rZXlzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5zdHJlYW0oa2V5cywgcGFyYW1zKS5waXBlKG1hcChpMThuID0+IHNlbGVjdEkxOG4oa2V5cywgaTE4bikpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG4odHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwYXJhbXM/OiBhbnksIC4uLmtleXM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBpMThuID0gdHJhbnNsYXRlLmluc3RhbnQoa2V5cywgcGFyYW1zKTtcbiAgICByZXR1cm4gc2VsZWN0STE4bihrZXlzLCBpMThuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcHVsYXRlSTE4blBhcmFtcyhpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgcGFyYW1zUmVzID0gey4uLnBhcmFtc307XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgcGFyYW1zUmVzLml0ZW0gPSBpdGVtO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zUmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0STE4bihrZXlzOiBzdHJpbmdbXSwgaTE4bjogYW55KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBpZiAoa2V5ICE9PSBpMThuW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBpMThuW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { getHttpErrorResponse, isHttpErrorResponse } from '../error/error-helpers';
2
+ import { getI18n } from './i18n-common';
3
+ export function getI18nForError(translate, error, params = {}) {
4
+ const i18nParams = getI18nErrorParams(error, params);
5
+ if (error.messageCode) {
6
+ const keys = [`errors.${error.messageCode}`, `messages.${error.messageCode}`];
7
+ const i18n = getI18n(translate, i18nParams, ...keys);
8
+ if (i18n) {
9
+ return i18n;
10
+ }
11
+ }
12
+ return getI18n(translate, i18nParams, error.message);
13
+ }
14
+ export function getI18nErrorParams(error, params = {}) {
15
+ const paramsRes = { ...params };
16
+ paramsRes.errorStatus = '';
17
+ paramsRes.errorMessage = '';
18
+ if (isHttpErrorResponse(error)) {
19
+ const httpError = getHttpErrorResponse(error);
20
+ paramsRes.errorStatus = httpError?.status;
21
+ paramsRes.errorMessage = httpError?.message;
22
+ paramsRes.errorStatusDescription = httpError?.statusText;
23
+ }
24
+ paramsRes.error = error;
25
+ return paramsRes;
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2kxOG4vaTE4bi1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVqRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXRDLE1BQU0sVUFBVSxlQUFlLENBQUMsU0FBMkIsRUFBRSxLQUFvQixFQUFFLFNBQWMsRUFBRTtJQUMvRixNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxZQUFZLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFvQixFQUFFLFNBQWMsRUFBRTtJQUNyRSxNQUFNLFNBQVMsR0FBRyxFQUFDLEdBQUcsTUFBTSxFQUFDLENBQUM7SUFDOUIsU0FBUyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDM0IsU0FBUyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFFNUIsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsU0FBUyxFQUFFLE1BQU0sQ0FBQztRQUMxQyxTQUFTLENBQUMsWUFBWSxHQUFHLFNBQVMsRUFBRSxPQUFPLENBQUM7UUFDNUMsU0FBUyxDQUFDLHNCQUFzQixHQUFHLFNBQVMsRUFBRSxVQUFVLENBQUM7SUFDN0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQge2dldEh0dHBFcnJvclJlc3BvbnNlLCBpc0h0dHBFcnJvclJlc3BvbnNlfSBmcm9tICcuLi9lcnJvci9lcnJvci1oZWxwZXJzJztcbmltcG9ydCB7SUNvbW1vbnNFcnJvcn0gZnJvbSAnLi4vZXJyb3IvZXJyb3IubW9kZWwnO1xuaW1wb3J0IHtnZXRJMThufSBmcm9tICcuL2kxOG4tY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5Gb3JFcnJvcih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGVycm9yOiBJQ29tbW9uc0Vycm9yLCBwYXJhbXM6IGFueSA9IHt9KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgaTE4blBhcmFtcyA9IGdldEkxOG5FcnJvclBhcmFtcyhlcnJvciwgcGFyYW1zKTtcbiAgICBpZiAoZXJyb3IubWVzc2FnZUNvZGUpIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IFtgZXJyb3JzLiR7ZXJyb3IubWVzc2FnZUNvZGV9YCwgYG1lc3NhZ2VzLiR7ZXJyb3IubWVzc2FnZUNvZGV9YF07XG4gICAgICAgIGNvbnN0IGkxOG4gPSBnZXRJMThuKHRyYW5zbGF0ZSwgaTE4blBhcmFtcywgLi4ua2V5cyk7XG4gICAgICAgIGlmIChpMThuKSB7XG4gICAgICAgICAgICByZXR1cm4gaTE4bjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ2V0STE4bih0cmFuc2xhdGUsIGkxOG5QYXJhbXMsIGVycm9yLm1lc3NhZ2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bkVycm9yUGFyYW1zKGVycm9yOiBJQ29tbW9uc0Vycm9yLCBwYXJhbXM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgcGFyYW1zUmVzID0gey4uLnBhcmFtc307XG4gICAgcGFyYW1zUmVzLmVycm9yU3RhdHVzID0gJyc7XG4gICAgcGFyYW1zUmVzLmVycm9yTWVzc2FnZSA9ICcnO1xuXG4gICAgaWYgKGlzSHR0cEVycm9yUmVzcG9uc2UoZXJyb3IpKSB7XG4gICAgICAgIGNvbnN0IGh0dHBFcnJvciA9IGdldEh0dHBFcnJvclJlc3BvbnNlKGVycm9yKTtcbiAgICAgICAgcGFyYW1zUmVzLmVycm9yU3RhdHVzID0gaHR0cEVycm9yPy5zdGF0dXM7XG4gICAgICAgIHBhcmFtc1Jlcy5lcnJvck1lc3NhZ2UgPSBodHRwRXJyb3I/Lm1lc3NhZ2U7XG4gICAgICAgIHBhcmFtc1Jlcy5lcnJvclN0YXR1c0Rlc2NyaXB0aW9uID0gaHR0cEVycm9yPy5zdGF0dXNUZXh0O1xuICAgIH1cblxuICAgIHBhcmFtc1Jlcy5lcnJvciA9IGVycm9yO1xuICAgIHJldHVybiBwYXJhbXNSZXM7XG59XG4iXX0=
@@ -0,0 +1,79 @@
1
+ import { of } from 'rxjs';
2
+ import { map } from 'rxjs/operators';
3
+ import { findReflectTypeName } from '../reflect/type-enum-metadata';
4
+ import { getI18n, getI18nAsync, populateI18nParams } from './i18n-common';
5
+ export function getI18nClassNameAsync(translate, classType, singular) {
6
+ const typeName = findReflectTypeName(classType);
7
+ return getI18nTypeNameAsync(translate, typeName ?? '', singular);
8
+ }
9
+ export function getI18nClassName(translate, classType, singular) {
10
+ const typeName = findReflectTypeName(classType);
11
+ return getI18nTypeName(translate, typeName ?? '', singular);
12
+ }
13
+ export function getI18nTypeNameAsync(translate, typeName, singular) {
14
+ const keys = getI18nTypeNameKeys(typeName, singular);
15
+ return getI18nAsync(translate, undefined, ...keys);
16
+ }
17
+ export function getI18nTypeName(translate, typeName, singular) {
18
+ const keys = getI18nTypeNameKeys(typeName, singular);
19
+ return getI18n(translate, undefined, ...keys);
20
+ }
21
+ export function getI18nClassTabKey(classType, tab) {
22
+ const typeName = findReflectTypeName(classType);
23
+ return getI18nTypeTabKey(typeName ?? '', tab);
24
+ }
25
+ export function getI18nTypeTabKey(typeName, tab) {
26
+ return getI18nTypeKeyBasePath(typeName, 'tabs', tab);
27
+ }
28
+ export function getI18nClassGroupKey(classType, group) {
29
+ const typeName = findReflectTypeName(classType);
30
+ return getI18nTypeGroupKey(typeName ?? '', group);
31
+ }
32
+ export function getI18nTypeGroupKey(typeName, group) {
33
+ return getI18nTypeKeyBasePath(typeName, 'groups', group);
34
+ }
35
+ export function getI18nClassPropertyKey(classType, property) {
36
+ const typeName = findReflectTypeName(classType);
37
+ return getI18nTypePropertyKey(typeName ?? '', property);
38
+ }
39
+ export function getI18nTypePropertyKey(typeName, property) {
40
+ return getI18nTypeKeyBasePath(typeName, 'properties', property);
41
+ }
42
+ export function getI18nClassKeyBasePath(classType, ...path) {
43
+ const typeName = findReflectTypeName(classType);
44
+ return getI18nTypeKeyBasePath(typeName ?? '', ...path);
45
+ }
46
+ export function getI18nTypeKeyBasePath(typeName, ...path) {
47
+ return `${typeName.length ? `${typeName}.` : ''}${path.join('.')}`;
48
+ }
49
+ export function getI18nClassParams(translate, classType, item, params = {}) {
50
+ const typeName = findReflectTypeName(classType);
51
+ return getI18nTypeParams(translate, typeName ?? undefined, item, params);
52
+ }
53
+ export function getI18nTypeParams(translate, typeName, item, params = {}) {
54
+ const i18nTypeName = typeName ? getI18nTypeName(translate, typeName, true) : null;
55
+ return populateI18nTypeParams(i18nTypeName ?? undefined, item, params);
56
+ }
57
+ export function getI18nClassParamsAsync(translate, classType, item, params = {}) {
58
+ const typeName = findReflectTypeName(classType);
59
+ return getI18nTypeParamsAsync(translate, typeName ?? undefined, item, params);
60
+ }
61
+ export function getI18nTypeParamsAsync(translate, typeName, item, params = {}) {
62
+ return (typeName ? getI18nTypeNameAsync(translate, typeName, true) : of(null)).pipe(map(i18nTypeName => populateI18nTypeParams(i18nTypeName ?? undefined, item, params)));
63
+ }
64
+ export function populateI18nTypeParams(i18nTypeName, item, params = {}) {
65
+ const paramsRes = { ...params };
66
+ if (i18nTypeName) {
67
+ paramsRes.typeName = i18nTypeName;
68
+ }
69
+ return populateI18nParams(item, paramsRes);
70
+ }
71
+ function getI18nTypeNameKeys(typeName, singular) {
72
+ const keys = [];
73
+ if (typeof singular !== 'undefined') {
74
+ keys.push(singular ? `${typeName}.nameSingular` : `${typeName}.namePlural`);
75
+ }
76
+ keys.push(`${typeName.length ? `${typeName}.` : ''}name`);
77
+ return keys;
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvaTE4bi9pMThuLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFNBQTJCLEVBQUUsU0FBeUIsRUFBRSxRQUFrQjtJQUM1RyxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxPQUFPLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBMkIsRUFBRSxTQUF5QixFQUFFLFFBQWtCO0lBQ3ZHLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sZUFBZSxDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBMkIsRUFBRSxRQUFnQixFQUFFLFFBQWtCO0lBQ2xHLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRCxPQUFPLFlBQVksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsU0FBMkIsRUFB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LGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLGFBQWEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJy4uL21vZGVscy9jbGFzcy1zZXJ2aWNlLm1vZGVsJztcbmltcG9ydCB7ZmluZFJlZmxlY3RUeXBlTmFtZX0gZnJvbSAnLi4vcmVmbGVjdC90eXBlLWVudW0tbWV0YWRhdGEnO1xuaW1wb3J0IHtnZXRJMThuLCBnZXRJMThuQXN5bmMsIHBvcHVsYXRlSTE4blBhcmFtc30gZnJvbSAnLi9pMThuLWNvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NOYW1lQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBjbGFzc1R5cGU6IENsYXNzVHlwZTxhbnk+LCBzaW5ndWxhcj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2xhc3NUeXBlKTtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVOYW1lQXN5bmModHJhbnNsYXRlLCB0eXBlTmFtZSA/PyAnJywgc2luZ3VsYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bkNsYXNzTmFtZSh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGNsYXNzVHlwZTogQ2xhc3NUeXBlPGFueT4sIHNpbmd1bGFyPzogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgIHJldHVybiBnZXRJMThuVHlwZU5hbWUodHJhbnNsYXRlLCB0eXBlTmFtZSA/PyAnJywgc2luZ3VsYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVOYW1lQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCB0eXBlTmFtZTogc3RyaW5nLCBzaW5ndWxhcj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBrZXlzID0gZ2V0STE4blR5cGVOYW1lS2V5cyh0eXBlTmFtZSwgc2luZ3VsYXIpO1xuICAgIHJldHVybiBnZXRJMThuQXN5bmModHJhbnNsYXRlLCB1bmRlZmluZWQsIC4uLmtleXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVOYW1lKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdHlwZU5hbWU6IHN0cmluZywgc2luZ3VsYXI/OiBib29sZWFuKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3Qga2V5cyA9IGdldEkxOG5UeXBlTmFtZUtleXModHlwZU5hbWUsIHNpbmd1bGFyKTtcbiAgICByZXR1cm4gZ2V0STE4bih0cmFuc2xhdGUsIHVuZGVmaW5lZCwgLi4ua2V5cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NUYWJLZXkoY2xhc3NUeXBlOiBDbGFzc1R5cGU8YW55PiwgdGFiOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgIHJldHVybiBnZXRJMThuVHlwZVRhYktleSh0eXBlTmFtZSA/PyAnJywgdGFiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5UeXBlVGFiS2V5KHR5cGVOYW1lOiBzdHJpbmcsIHRhYjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVLZXlCYXNlUGF0aCh0eXBlTmFtZSwgJ3RhYnMnLCB0YWIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bkNsYXNzR3JvdXBLZXkoY2xhc3NUeXBlOiBDbGFzc1R5cGU8YW55PiwgZ3JvdXA6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBmaW5kUmVmbGVjdFR5cGVOYW1lKGNsYXNzVHlwZSk7XG4gICAgcmV0dXJuIGdldEkxOG5UeXBlR3JvdXBLZXkodHlwZU5hbWUgPz8gJycsIGdyb3VwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5UeXBlR3JvdXBLZXkodHlwZU5hbWU6IHN0cmluZywgZ3JvdXA6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldEkxOG5UeXBlS2V5QmFzZVBhdGgodHlwZU5hbWUsICdncm91cHMnLCBncm91cCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NQcm9wZXJ0eUtleShjbGFzc1R5cGU6IENsYXNzVHlwZTxhbnk+LCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2xhc3NUeXBlKTtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVQcm9wZXJ0eUtleSh0eXBlTmFtZSA/PyAnJywgcHJvcGVydHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVQcm9wZXJ0eUtleSh0eXBlTmFtZTogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVLZXlCYXNlUGF0aCh0eXBlTmFtZSwgJ3Byb3BlcnRpZXMnLCBwcm9wZXJ0eSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NLZXlCYXNlUGF0aChjbGFzc1R5cGU6IENsYXNzVHlwZTxhbnk+LCAuLi5wYXRoOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2xhc3NUeXBlKTtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVLZXlCYXNlUGF0aCh0eXBlTmFtZSA/PyAnJywgLi4ucGF0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuVHlwZUtleUJhc2VQYXRoKHR5cGVOYW1lOiBzdHJpbmcsIC4uLnBhdGg6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0eXBlTmFtZS5sZW5ndGggPyBgJHt0eXBlTmFtZX0uYCA6ICcnfSR7cGF0aC5qb2luKCcuJyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5DbGFzc1BhcmFtcyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGNsYXNzVHlwZTogQ2xhc3NUeXBlPGFueT4sIGl0ZW06IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBmaW5kUmVmbGVjdFR5cGVOYW1lKGNsYXNzVHlwZSk7XG4gICAgcmV0dXJuIGdldEkxOG5UeXBlUGFyYW1zKHRyYW5zbGF0ZSwgdHlwZU5hbWUgPz8gdW5kZWZpbmVkLCBpdGVtLCBwYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVQYXJhbXModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCB0eXBlTmFtZT86IHN0cmluZywgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgaTE4blR5cGVOYW1lID0gdHlwZU5hbWUgPyBnZXRJMThuVHlwZU5hbWUodHJhbnNsYXRlLCB0eXBlTmFtZSwgdHJ1ZSkgOiBudWxsO1xuICAgIHJldHVybiBwb3B1bGF0ZUkxOG5UeXBlUGFyYW1zKGkxOG5UeXBlTmFtZSA/PyB1bmRlZmluZWQsIGl0ZW0sIHBhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NQYXJhbXNBc3luYyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGNsYXNzVHlwZTogQ2xhc3NUeXBlPGFueT4sIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgIHJldHVybiBnZXRJMThuVHlwZVBhcmFtc0FzeW5jKHRyYW5zbGF0ZSwgdHlwZU5hbWUgPz8gdW5kZWZpbmVkLCBpdGVtLCBwYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVQYXJhbXNBc3luYyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHR5cGVOYW1lPzogc3RyaW5nLCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gKHR5cGVOYW1lID8gZ2V0STE4blR5cGVOYW1lQXN5bmModHJhbnNsYXRlLCB0eXBlTmFtZSwgdHJ1ZSkgOiBvZihudWxsKSkucGlwZShtYXAoaTE4blR5cGVOYW1lID0+IHBvcHVsYXRlSTE4blR5cGVQYXJhbXMoaTE4blR5cGVOYW1lID8/IHVuZGVmaW5lZCwgaXRlbSwgcGFyYW1zKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9wdWxhdGVJMThuVHlwZVBhcmFtcyhpMThuVHlwZU5hbWU/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBhbnkge1xuICAgIGNvbnN0IHBhcmFtc1JlcyA9IHsuLi5wYXJhbXN9O1xuICAgIGlmIChpMThuVHlwZU5hbWUpIHtcbiAgICAgICAgcGFyYW1zUmVzLnR5cGVOYW1lID0gaTE4blR5cGVOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gcG9wdWxhdGVJMThuUGFyYW1zKGl0ZW0sIHBhcmFtc1Jlcyk7XG59XG5cbmZ1bmN0aW9uIGdldEkxOG5UeXBlTmFtZUtleXModHlwZU5hbWU6IHN0cmluZywgc2luZ3VsYXI/OiBib29sZWFuKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3Qga2V5cyA9IFtdO1xuICAgIGlmICh0eXBlb2Ygc2luZ3VsYXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGtleXMucHVzaChzaW5ndWxhciA/IGAke3R5cGVOYW1lfS5uYW1lU2luZ3VsYXJgIDogYCR7dHlwZU5hbWV9Lm5hbWVQbHVyYWxgKTtcbiAgICB9XG4gICAga2V5cy5wdXNoKGAke3R5cGVOYW1lLmxlbmd0aCA/IGAke3R5cGVOYW1lfS5gIDogJyd9bmFtZWApO1xuICAgIHJldHVybiBrZXlzO1xufVxuIl19