@abp/ng.core 5.0.1 → 5.0.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 (300) hide show
  1. package/README.md +3 -3
  2. package/abp-ng.core.d.ts +5 -5
  3. package/bundles/abp-ng.core-locale.umd.js +361 -361
  4. package/bundles/abp-ng.core-locale.umd.js.map +1 -1
  5. package/bundles/abp-ng.core-testing.umd.js +442 -442
  6. package/bundles/abp-ng.core-testing.umd.js.map +1 -1
  7. package/bundles/abp-ng.core.umd.js +4873 -4868
  8. package/bundles/abp-ng.core.umd.js.map +1 -1
  9. package/esm2015/abp-ng.core.js +4 -4
  10. package/esm2015/lib/abstracts/index.js +2 -2
  11. package/esm2015/lib/abstracts/ng-model.component.js +59 -59
  12. package/esm2015/lib/components/dynamic-layout.component.js +89 -89
  13. package/esm2015/lib/components/index.js +4 -4
  14. package/esm2015/lib/components/replaceable-route-container.component.js +42 -42
  15. package/esm2015/lib/components/router-outlet.component.js +15 -15
  16. package/esm2015/lib/constants/different-locales.js +337 -337
  17. package/esm2015/lib/constants/index.js +2 -2
  18. package/esm2015/lib/core.module.js +281 -281
  19. package/esm2015/lib/directives/autofocus.directive.js +30 -30
  20. package/esm2015/lib/directives/debounce.directive.js +36 -36
  21. package/esm2015/lib/directives/for.directive.js +151 -151
  22. package/esm2015/lib/directives/form-submit.directive.js +69 -69
  23. package/esm2015/lib/directives/index.js +9 -9
  24. package/esm2015/lib/directives/init.directive.js +21 -21
  25. package/esm2015/lib/directives/permission.directive.js +48 -48
  26. package/esm2015/lib/directives/replaceable-template.directive.js +121 -121
  27. package/esm2015/lib/directives/stop-propagation.directive.js +32 -32
  28. package/esm2015/lib/enums/common.js +2 -2
  29. package/esm2015/lib/enums/index.js +2 -2
  30. package/esm2015/lib/guards/auth.guard.js +29 -29
  31. package/esm2015/lib/guards/index.js +3 -3
  32. package/esm2015/lib/guards/permission.guard.js +44 -44
  33. package/esm2015/lib/handlers/oauth-configuration.handler.js +37 -37
  34. package/esm2015/lib/handlers/routes.handler.js +47 -47
  35. package/esm2015/lib/interceptors/api.interceptor.js +54 -54
  36. package/esm2015/lib/interceptors/index.js +2 -2
  37. package/esm2015/lib/localization.module.js +16 -16
  38. package/esm2015/lib/models/auth.js +2 -2
  39. package/esm2015/lib/models/common.js +2 -2
  40. package/esm2015/lib/models/dtos.js +119 -119
  41. package/esm2015/lib/models/environment.js +2 -2
  42. package/esm2015/lib/models/index.js +10 -10
  43. package/esm2015/lib/models/localization.js +2 -2
  44. package/esm2015/lib/models/replaceable-components.js +2 -2
  45. package/esm2015/lib/models/rest.js +2 -2
  46. package/esm2015/lib/models/session.js +2 -2
  47. package/esm2015/lib/models/utility.js +2 -2
  48. package/esm2015/lib/pipes/index.js +3 -3
  49. package/esm2015/lib/pipes/localization.pipe.js +33 -33
  50. package/esm2015/lib/pipes/sort.pipe.js +49 -49
  51. package/esm2015/lib/providers/cookie-language.provider.js +22 -22
  52. package/esm2015/lib/providers/locale.provider.js +22 -22
  53. package/esm2015/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.js +29 -29
  54. package/esm2015/lib/proxy/pages/abp/multi-tenancy/index.js +2 -2
  55. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.js +24 -24
  56. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.js +2 -2
  57. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.js +25 -25
  58. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.js +5 -5
  59. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.js +2 -2
  60. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.js +2 -2
  61. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.js +3 -3
  62. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.js +2 -2
  63. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.js +2 -2
  64. package/esm2015/lib/proxy/volo/abp/http/modeling/index.js +2 -2
  65. package/esm2015/lib/proxy/volo/abp/http/modeling/models.js +3 -3
  66. package/esm2015/lib/proxy/volo/abp/localization/index.js +2 -2
  67. package/esm2015/lib/proxy/volo/abp/localization/models.js +2 -2
  68. package/esm2015/lib/proxy/volo/abp/models.js +2 -2
  69. package/esm2015/lib/services/auth.service.js +47 -47
  70. package/esm2015/lib/services/config-state.service.js +130 -130
  71. package/esm2015/lib/services/content-projection.service.js +17 -17
  72. package/esm2015/lib/services/dom-insertion.service.js +32 -32
  73. package/esm2015/lib/services/environment.service.js +35 -35
  74. package/esm2015/lib/services/http-error-reporter.service.js +29 -29
  75. package/esm2015/lib/services/http-wait.service.js +72 -72
  76. package/esm2015/lib/services/index.js +22 -22
  77. package/esm2015/lib/services/lazy-load.service.js +38 -38
  78. package/esm2015/lib/services/list.service.js +103 -103
  79. package/esm2015/lib/services/localization.service.js +182 -182
  80. package/esm2015/lib/services/multi-tenancy.service.js +48 -48
  81. package/esm2015/lib/services/permission.service.js +64 -64
  82. package/esm2015/lib/services/replaceable-components.service.js +49 -49
  83. package/esm2015/lib/services/resource-wait.service.js +39 -39
  84. package/esm2015/lib/services/rest.service.js +63 -63
  85. package/esm2015/lib/services/router-events.service.js +38 -38
  86. package/esm2015/lib/services/router-wait.service.js +51 -51
  87. package/esm2015/lib/services/routes.service.js +147 -147
  88. package/esm2015/lib/services/session-state.service.js +76 -76
  89. package/esm2015/lib/services/subscription.service.js +41 -41
  90. package/esm2015/lib/services/track-by.service.js +21 -21
  91. package/esm2015/lib/strategies/auth-flow.strategy.js +202 -202
  92. package/esm2015/lib/strategies/container.strategy.js +38 -38
  93. package/esm2015/lib/strategies/content-security.strategy.js +28 -28
  94. package/esm2015/lib/strategies/content.strategy.js +48 -48
  95. package/esm2015/lib/strategies/context.strategy.js +37 -37
  96. package/esm2015/lib/strategies/cross-origin.strategy.js +26 -26
  97. package/esm2015/lib/strategies/dom.strategy.js +27 -27
  98. package/esm2015/lib/strategies/index.js +9 -9
  99. package/esm2015/lib/strategies/loading.strategy.js +58 -58
  100. package/esm2015/lib/strategies/projection.strategy.js +80 -80
  101. package/esm2015/lib/tokens/app-config.token.js +3 -3
  102. package/esm2015/lib/tokens/cookie-language-key.token.js +5 -5
  103. package/esm2015/lib/tokens/index.js +9 -9
  104. package/esm2015/lib/tokens/list.token.js +3 -3
  105. package/esm2015/lib/tokens/localization.token.js +10 -10
  106. package/esm2015/lib/tokens/lodaer-delay.token.js +3 -3
  107. package/esm2015/lib/tokens/manage-profile.token.js +12 -12
  108. package/esm2015/lib/tokens/options.token.js +8 -8
  109. package/esm2015/lib/tokens/tenant-key.token.js +3 -3
  110. package/esm2015/lib/utils/array-utils.js +7 -7
  111. package/esm2015/lib/utils/auth-utils.js +42 -42
  112. package/esm2015/lib/utils/common-utils.js +29 -29
  113. package/esm2015/lib/utils/date-extensions.js +6 -6
  114. package/esm2015/lib/utils/date-utils.js +13 -13
  115. package/esm2015/lib/utils/environment-utils.js +36 -36
  116. package/esm2015/lib/utils/factory-utils.js +24 -24
  117. package/esm2015/lib/utils/file-utils.js +14 -14
  118. package/esm2015/lib/utils/form-utils.js +12 -12
  119. package/esm2015/lib/utils/generator-utils.js +34 -34
  120. package/esm2015/lib/utils/http-utils.js +19 -19
  121. package/esm2015/lib/utils/index.js +21 -21
  122. package/esm2015/lib/utils/initial-utils.js +64 -64
  123. package/esm2015/lib/utils/internal-store-utils.js +36 -36
  124. package/esm2015/lib/utils/lazy-load-utils.js +40 -40
  125. package/esm2015/lib/utils/localization-utils.js +50 -50
  126. package/esm2015/lib/utils/multi-tenancy-utils.js +83 -83
  127. package/esm2015/lib/utils/number-utils.js +4 -4
  128. package/esm2015/lib/utils/object-utils.js +37 -37
  129. package/esm2015/lib/utils/route-utils.js +27 -27
  130. package/esm2015/lib/utils/string-utils.js +25 -21
  131. package/esm2015/lib/utils/tree-utils.js +54 -54
  132. package/esm2015/lib/validators/age.validator.js +14 -14
  133. package/esm2015/lib/validators/credit-card.validator.js +21 -21
  134. package/esm2015/lib/validators/index.js +23 -23
  135. package/esm2015/lib/validators/range.validator.js +15 -15
  136. package/esm2015/lib/validators/required.validator.js +13 -13
  137. package/esm2015/lib/validators/string-length.validator.js +15 -15
  138. package/esm2015/lib/validators/url.validator.js +16 -16
  139. package/esm2015/locale/abp-ng.core-locale.js +4 -4
  140. package/esm2015/locale/public-api.js +2 -2
  141. package/esm2015/locale/utils/register-locale.js +43 -43
  142. package/esm2015/public-api.js +26 -26
  143. package/esm2015/testing/abp-ng.core-testing.js +4 -4
  144. package/esm2015/testing/lib/core-testing.module.js +62 -62
  145. package/esm2015/testing/lib/services/index.js +3 -3
  146. package/esm2015/testing/lib/services/mock-permission.service.js +35 -35
  147. package/esm2015/testing/lib/services/mock-rest.service.js +30 -30
  148. package/esm2015/testing/lib/utils/clear-page.util.js +10 -10
  149. package/esm2015/testing/lib/utils/index.js +3 -3
  150. package/esm2015/testing/lib/utils/wait.util.js +5 -5
  151. package/esm2015/testing/public-api.js +4 -4
  152. package/fesm2015/abp-ng.core-locale.js +40 -40
  153. package/fesm2015/abp-ng.core-locale.js.map +1 -1
  154. package/fesm2015/abp-ng.core-testing.js +113 -113
  155. package/fesm2015/abp-ng.core-testing.js.map +1 -1
  156. package/fesm2015/abp-ng.core.js +3979 -3975
  157. package/fesm2015/abp-ng.core.js.map +1 -1
  158. package/lib/abstracts/index.d.ts +1 -1
  159. package/lib/abstracts/ng-model.component.d.ts +25 -25
  160. package/lib/components/dynamic-layout.component.d.ts +27 -27
  161. package/lib/components/index.d.ts +3 -3
  162. package/lib/components/replaceable-route-container.component.d.ts +17 -17
  163. package/lib/components/router-outlet.component.d.ts +5 -5
  164. package/lib/constants/different-locales.d.ts +334 -334
  165. package/lib/constants/index.d.ts +1 -1
  166. package/lib/core.module.d.ts +56 -56
  167. package/lib/directives/autofocus.directive.d.ts +12 -12
  168. package/lib/directives/debounce.directive.d.ts +13 -13
  169. package/lib/directives/for.directive.d.ts +36 -36
  170. package/lib/directives/form-submit.directive.d.ts +19 -19
  171. package/lib/directives/index.d.ts +8 -8
  172. package/lib/directives/init.directive.d.ts +10 -10
  173. package/lib/directives/permission.directive.d.ts +18 -18
  174. package/lib/directives/replaceable-template.directive.d.ts +30 -30
  175. package/lib/directives/stop-propagation.directive.d.ts +12 -12
  176. package/lib/enums/common.d.ts +5 -5
  177. package/lib/enums/index.d.ts +1 -1
  178. package/lib/guards/auth.guard.d.ts +13 -13
  179. package/lib/guards/index.d.ts +2 -2
  180. package/lib/guards/permission.guard.d.ts +16 -16
  181. package/lib/handlers/oauth-configuration.handler.d.ts +13 -13
  182. package/lib/handlers/routes.handler.d.ts +11 -11
  183. package/lib/interceptors/api.interceptor.d.ts +16 -16
  184. package/lib/interceptors/index.d.ts +1 -1
  185. package/lib/localization.module.d.ts +7 -7
  186. package/lib/models/auth.d.ts +6 -6
  187. package/lib/models/common.d.ts +77 -77
  188. package/lib/models/dtos.d.ts +95 -95
  189. package/lib/models/environment.d.ts +35 -35
  190. package/lib/models/index.d.ts +9 -9
  191. package/lib/models/localization.d.ts +5 -5
  192. package/lib/models/replaceable-components.d.ts +45 -45
  193. package/lib/models/rest.d.ts +35 -35
  194. package/lib/models/session.d.ts +7 -7
  195. package/lib/models/utility.d.ts +14 -14
  196. package/lib/pipes/index.d.ts +2 -2
  197. package/lib/pipes/localization.pipe.d.ts +12 -12
  198. package/lib/pipes/sort.pipe.d.ts +9 -9
  199. package/lib/providers/cookie-language.provider.d.ts +3 -3
  200. package/lib/providers/locale.provider.d.ts +9 -9
  201. package/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.d.ts +12 -12
  202. package/lib/proxy/pages/abp/multi-tenancy/index.d.ts +1 -1
  203. package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.d.ts +11 -11
  204. package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.d.ts +1 -1
  205. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.d.ts +11 -11
  206. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.d.ts +4 -4
  207. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.d.ts +85 -85
  208. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.d.ts +1 -1
  209. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.d.ts +71 -71
  210. package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.d.ts +1 -1
  211. package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.d.ts +14 -14
  212. package/lib/proxy/volo/abp/http/modeling/index.d.ts +1 -1
  213. package/lib/proxy/volo/abp/http/modeling/models.d.ts +70 -70
  214. package/lib/proxy/volo/abp/localization/index.d.ts +1 -1
  215. package/lib/proxy/volo/abp/localization/models.d.ts +6 -6
  216. package/lib/proxy/volo/abp/models.d.ts +4 -4
  217. package/lib/services/auth.service.d.ts +17 -17
  218. package/lib/services/config-state.service.d.ts +339 -339
  219. package/lib/services/content-projection.service.d.ts +10 -10
  220. package/lib/services/dom-insertion.service.d.ts +10 -10
  221. package/lib/services/environment.service.d.ts +96 -96
  222. package/lib/services/http-error-reporter.service.d.ts +12 -12
  223. package/lib/services/http-wait.service.d.ts +30 -30
  224. package/lib/services/index.d.ts +21 -21
  225. package/lib/services/lazy-load.service.d.ts +13 -13
  226. package/lib/services/list.service.d.ts +39 -39
  227. package/lib/services/localization.service.d.ts +47 -47
  228. package/lib/services/multi-tenancy.service.d.ts +22 -22
  229. package/lib/services/permission.service.d.ts +19 -19
  230. package/lib/services/replaceable-components.service.d.ts +19 -19
  231. package/lib/services/resource-wait.service.d.ts +15 -15
  232. package/lib/services/rest.service.d.ts +20 -20
  233. package/lib/services/router-events.service.d.ts +29 -29
  234. package/lib/services/router-wait.service.d.ts +20 -20
  235. package/lib/services/routes.service.d.ts +50 -50
  236. package/lib/services/session-state.service.d.ts +25 -25
  237. package/lib/services/subscription.service.d.ts +17 -17
  238. package/lib/services/track-by.service.d.ts +11 -11
  239. package/lib/strategies/auth-flow.strategy.d.ts +367 -367
  240. package/lib/strategies/container.strategy.d.ts +22 -22
  241. package/lib/strategies/content-security.strategy.d.ts +17 -17
  242. package/lib/strategies/content.strategy.d.ts +26 -26
  243. package/lib/strategies/context.strategy.d.ts +23 -23
  244. package/lib/strategies/cross-origin.strategy.d.ts +14 -14
  245. package/lib/strategies/dom.strategy.d.ts +13 -13
  246. package/lib/strategies/index.d.ts +8 -8
  247. package/lib/strategies/loading.strategy.d.ts +28 -28
  248. package/lib/strategies/projection.strategy.d.ts +39 -39
  249. package/lib/tokens/app-config.token.d.ts +3 -3
  250. package/lib/tokens/cookie-language-key.token.d.ts +2 -2
  251. package/lib/tokens/index.d.ts +8 -8
  252. package/lib/tokens/list.token.d.ts +2 -2
  253. package/lib/tokens/localization.token.d.ts +6 -6
  254. package/lib/tokens/lodaer-delay.token.d.ts +2 -2
  255. package/lib/tokens/manage-profile.token.d.ts +2 -2
  256. package/lib/tokens/options.token.d.ts +4 -4
  257. package/lib/tokens/tenant-key.token.d.ts +2 -2
  258. package/lib/utils/array-utils.d.ts +1 -1
  259. package/lib/utils/auth-utils.d.ts +162 -162
  260. package/lib/utils/common-utils.d.ts +9 -9
  261. package/lib/utils/date-extensions.d.ts +6 -6
  262. package/lib/utils/date-utils.d.ts +4 -4
  263. package/lib/utils/environment-utils.d.ts +3 -3
  264. package/lib/utils/factory-utils.d.ts +9 -9
  265. package/lib/utils/file-utils.d.ts +1 -1
  266. package/lib/utils/form-utils.d.ts +2 -2
  267. package/lib/utils/generator-utils.d.ts +3 -3
  268. package/lib/utils/http-utils.d.ts +8 -8
  269. package/lib/utils/index.d.ts +20 -20
  270. package/lib/utils/initial-utils.d.ts +159 -159
  271. package/lib/utils/internal-store-utils.d.ts +14 -14
  272. package/lib/utils/lazy-load-utils.d.ts +4 -4
  273. package/lib/utils/localization-utils.d.ts +5 -5
  274. package/lib/utils/multi-tenancy-utils.d.ts +3 -3
  275. package/lib/utils/number-utils.d.ts +1 -1
  276. package/lib/utils/object-utils.d.ts +1 -1
  277. package/lib/utils/route-utils.d.ts +8 -8
  278. package/lib/utils/string-utils.d.ts +3 -2
  279. package/lib/utils/tree-utils.d.ts +19 -19
  280. package/lib/validators/age.validator.d.ts +10 -10
  281. package/lib/validators/credit-card.validator.d.ts +5 -5
  282. package/lib/validators/index.d.ts +22 -22
  283. package/lib/validators/range.validator.d.ts +12 -12
  284. package/lib/validators/required.validator.d.ts +8 -8
  285. package/lib/validators/string-length.validator.d.ts +14 -14
  286. package/lib/validators/url.validator.d.ts +5 -5
  287. package/locale/abp-ng.core-locale.d.ts +5 -5
  288. package/locale/public-api.d.ts +1 -1
  289. package/locale/utils/register-locale.d.ts +13 -13
  290. package/package.json +2 -2
  291. package/public-api.d.ts +24 -24
  292. package/testing/abp-ng.core-testing.d.ts +5 -5
  293. package/testing/lib/core-testing.module.d.ts +16 -16
  294. package/testing/lib/services/index.d.ts +2 -2
  295. package/testing/lib/services/mock-permission.service.d.ts +10 -10
  296. package/testing/lib/services/mock-rest.service.d.ts +13 -13
  297. package/testing/lib/utils/clear-page.util.d.ts +2 -2
  298. package/testing/lib/utils/index.d.ts +2 -2
  299. package/testing/lib/utils/wait.util.d.ts +2 -2
  300. package/testing/public-api.d.ts +3 -3
@@ -1,36 +1,36 @@
1
- import compare from 'just-compare';
2
- import { BehaviorSubject, Subject } from 'rxjs';
3
- import { distinctUntilChanged, filter, map } from 'rxjs/operators';
4
- import { deepMerge } from './object-utils';
5
- export class InternalStore {
6
- constructor(initialState) {
7
- this.initialState = initialState;
8
- this.state$ = new BehaviorSubject(this.initialState);
9
- this.update$ = new Subject();
10
- this.sliceState = (selector, compareFn = compare) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));
11
- this.sliceUpdate = (selector, filterFn = (x) => x !== undefined) => this.update$.pipe(map(selector), filter(filterFn));
12
- }
13
- get state() {
14
- return this.state$.value;
15
- }
16
- patch(state) {
17
- let patchedState = state;
18
- if (typeof state === 'object' && !Array.isArray(state)) {
19
- patchedState = Object.assign(Object.assign({}, this.state), state);
20
- }
21
- this.state$.next(patchedState);
22
- this.update$.next(patchedState);
23
- }
24
- deepPatch(state) {
25
- this.state$.next(deepMerge(this.state, state));
26
- this.update$.next(state);
27
- }
28
- set(state) {
29
- this.state$.next(state);
30
- this.update$.next(state);
31
- }
32
- reset() {
33
- this.set(this.initialState);
34
- }
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtc3RvcmUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxhQUFhO0lBbUJ4QixZQUFvQixZQUFtQjtRQUFuQixpQkFBWSxHQUFaLFlBQVksQ0FBTztRQWxCL0IsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFNcEQsZUFBVSxHQUFHLENBQ1gsUUFBaUMsRUFDakMsWUFBK0MsT0FBTyxFQUN0RCxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdEUsZ0JBQVcsR0FBRyxDQUNaLFFBQThDLEVBQzlDLFdBQVcsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQ3hDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZCxDQUFDO0lBZDNDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWNELEtBQUssQ0FBQyxLQUFxQjtRQUN6QixJQUFJLFlBQVksR0FBRyxLQUFjLENBQUM7UUFFbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RELFlBQVksbUNBQVEsSUFBSSxDQUFDLEtBQUssR0FBSyxLQUFLLENBQUUsQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQWtDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXlCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFZO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBMkIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICcuL29iamVjdC11dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTdG9yZTxTdGF0ZT4ge1xyXG4gIHByaXZhdGUgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdGF0ZT4odGhpcy5pbml0aWFsU3RhdGUpO1xyXG5cclxuICBwcml2YXRlIHVwZGF0ZSQgPSBuZXcgU3ViamVjdDxEZWVwUGFydGlhbDxTdGF0ZT4+KCk7XHJcblxyXG4gIGdldCBzdGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNsaWNlU3RhdGUgPSA8U2xpY2U+KFxyXG4gICAgc2VsZWN0b3I6IChzdGF0ZTogU3RhdGUpID0+IFNsaWNlLFxyXG4gICAgY29tcGFyZUZuOiAoczE6IFNsaWNlLCBzMjogU2xpY2UpID0+IGJvb2xlYW4gPSBjb21wYXJlLFxyXG4gICkgPT4gdGhpcy5zdGF0ZSQucGlwZShtYXAoc2VsZWN0b3IpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZChjb21wYXJlRm4pKTtcclxuXHJcbiAgc2xpY2VVcGRhdGUgPSA8U2xpY2U+KFxyXG4gICAgc2VsZWN0b3I6IChzdGF0ZTogRGVlcFBhcnRpYWw8U3RhdGU+KSA9PiBTbGljZSxcclxuICAgIGZpbHRlckZuID0gKHg6IFNsaWNlKSA9PiB4ICE9PSB1bmRlZmluZWQsXHJcbiAgKSA9PiB0aGlzLnVwZGF0ZSQucGlwZShtYXAoc2VsZWN0b3IpLCBmaWx0ZXIoZmlsdGVyRm4pKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbml0aWFsU3RhdGU6IFN0YXRlKSB7fVxyXG5cclxuICBwYXRjaChzdGF0ZTogUGFydGlhbDxTdGF0ZT4pIHtcclxuICAgIGxldCBwYXRjaGVkU3RhdGUgPSBzdGF0ZSBhcyBTdGF0ZTtcclxuXHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShzdGF0ZSkpIHtcclxuICAgICAgcGF0Y2hlZFN0YXRlID0geyAuLi50aGlzLnN0YXRlLCAuLi5zdGF0ZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RhdGUkLm5leHQocGF0Y2hlZFN0YXRlKTtcclxuICAgIHRoaXMudXBkYXRlJC5uZXh0KHBhdGNoZWRTdGF0ZSBhcyBEZWVwUGFydGlhbDxTdGF0ZT4pO1xyXG4gIH1cclxuXHJcbiAgZGVlcFBhdGNoKHN0YXRlOiBEZWVwUGFydGlhbDxTdGF0ZT4pIHtcclxuICAgIHRoaXMuc3RhdGUkLm5leHQoZGVlcE1lcmdlKHRoaXMuc3RhdGUsIHN0YXRlKSk7XHJcbiAgICB0aGlzLnVwZGF0ZSQubmV4dChzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBzZXQoc3RhdGU6IFN0YXRlKSB7XHJcbiAgICB0aGlzLnN0YXRlJC5uZXh0KHN0YXRlKTtcclxuICAgIHRoaXMudXBkYXRlJC5uZXh0KHN0YXRlIGFzIERlZXBQYXJ0aWFsPFN0YXRlPik7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuc2V0KHRoaXMuaW5pdGlhbFN0YXRlKTtcclxuICB9XHJcbn1cclxuIl19
1
+ import compare from 'just-compare';
2
+ import { BehaviorSubject, Subject } from 'rxjs';
3
+ import { distinctUntilChanged, filter, map } from 'rxjs/operators';
4
+ import { deepMerge } from './object-utils';
5
+ export class InternalStore {
6
+ constructor(initialState) {
7
+ this.initialState = initialState;
8
+ this.state$ = new BehaviorSubject(this.initialState);
9
+ this.update$ = new Subject();
10
+ this.sliceState = (selector, compareFn = compare) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));
11
+ this.sliceUpdate = (selector, filterFn = (x) => x !== undefined) => this.update$.pipe(map(selector), filter(filterFn));
12
+ }
13
+ get state() {
14
+ return this.state$.value;
15
+ }
16
+ patch(state) {
17
+ let patchedState = state;
18
+ if (typeof state === 'object' && !Array.isArray(state)) {
19
+ patchedState = Object.assign(Object.assign({}, this.state), state);
20
+ }
21
+ this.state$.next(patchedState);
22
+ this.update$.next(patchedState);
23
+ }
24
+ deepPatch(state) {
25
+ this.state$.next(deepMerge(this.state, state));
26
+ this.update$.next(state);
27
+ }
28
+ set(state) {
29
+ this.state$.next(state);
30
+ this.update$.next(state);
31
+ }
32
+ reset() {
33
+ this.set(this.initialState);
34
+ }
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtc3RvcmUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxhQUFhO0lBbUJ4QixZQUFvQixZQUFtQjtRQUFuQixpQkFBWSxHQUFaLFlBQVksQ0FBTztRQWxCL0IsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFNcEQsZUFBVSxHQUFHLENBQ1gsUUFBaUMsRUFDakMsWUFBK0MsT0FBTyxFQUN0RCxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdEUsZ0JBQVcsR0FBRyxDQUNaLFFBQThDLEVBQzlDLFdBQVcsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQ3hDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZCxDQUFDO0lBZDNDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWNELEtBQUssQ0FBQyxLQUFxQjtRQUN6QixJQUFJLFlBQVksR0FBRyxLQUFjLENBQUM7UUFFbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RELFlBQVksbUNBQVEsSUFBSSxDQUFDLEtBQUssR0FBSyxLQUFLLENBQUUsQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQWtDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXlCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFZO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBMkIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAnLi9vYmplY3QtdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTdG9yZTxTdGF0ZT4ge1xuICBwcml2YXRlIHN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3RhdGU+KHRoaXMuaW5pdGlhbFN0YXRlKTtcblxuICBwcml2YXRlIHVwZGF0ZSQgPSBuZXcgU3ViamVjdDxEZWVwUGFydGlhbDxTdGF0ZT4+KCk7XG5cbiAgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIHNsaWNlU3RhdGUgPSA8U2xpY2U+KFxuICAgIHNlbGVjdG9yOiAoc3RhdGU6IFN0YXRlKSA9PiBTbGljZSxcbiAgICBjb21wYXJlRm46IChzMTogU2xpY2UsIHMyOiBTbGljZSkgPT4gYm9vbGVhbiA9IGNvbXBhcmUsXG4gICkgPT4gdGhpcy5zdGF0ZSQucGlwZShtYXAoc2VsZWN0b3IpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZChjb21wYXJlRm4pKTtcblxuICBzbGljZVVwZGF0ZSA9IDxTbGljZT4oXG4gICAgc2VsZWN0b3I6IChzdGF0ZTogRGVlcFBhcnRpYWw8U3RhdGU+KSA9PiBTbGljZSxcbiAgICBmaWx0ZXJGbiA9ICh4OiBTbGljZSkgPT4geCAhPT0gdW5kZWZpbmVkLFxuICApID0+IHRoaXMudXBkYXRlJC5waXBlKG1hcChzZWxlY3RvciksIGZpbHRlcihmaWx0ZXJGbikpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5pdGlhbFN0YXRlOiBTdGF0ZSkge31cblxuICBwYXRjaChzdGF0ZTogUGFydGlhbDxTdGF0ZT4pIHtcbiAgICBsZXQgcGF0Y2hlZFN0YXRlID0gc3RhdGUgYXMgU3RhdGU7XG5cbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShzdGF0ZSkpIHtcbiAgICAgIHBhdGNoZWRTdGF0ZSA9IHsgLi4udGhpcy5zdGF0ZSwgLi4uc3RhdGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlJC5uZXh0KHBhdGNoZWRTdGF0ZSk7XG4gICAgdGhpcy51cGRhdGUkLm5leHQocGF0Y2hlZFN0YXRlIGFzIERlZXBQYXJ0aWFsPFN0YXRlPik7XG4gIH1cblxuICBkZWVwUGF0Y2goc3RhdGU6IERlZXBQYXJ0aWFsPFN0YXRlPikge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoZGVlcE1lcmdlKHRoaXMuc3RhdGUsIHN0YXRlKSk7XG4gICAgdGhpcy51cGRhdGUkLm5leHQoc3RhdGUpO1xuICB9XG5cbiAgc2V0KHN0YXRlOiBTdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xuICAgIHRoaXMudXBkYXRlJC5uZXh0KHN0YXRlIGFzIERlZXBQYXJ0aWFsPFN0YXRlPik7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnNldCh0aGlzLmluaXRpYWxTdGF0ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,40 +1,40 @@
1
- import { Observable } from 'rxjs';
2
- import { CROSS_ORIGIN_STRATEGY } from '../strategies/cross-origin.strategy';
3
- import { DOM_STRATEGY } from '../strategies/dom.strategy';
4
- export function fromLazyLoad(element, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {
5
- crossOriginStrategy.setCrossOrigin(element);
6
- domStrategy.insertElement(element);
7
- return new Observable((observer) => {
8
- element.onload = (event) => {
9
- clearCallbacks(element);
10
- observer.next(event);
11
- observer.complete();
12
- };
13
- const handleError = createErrorHandler(observer, element);
14
- element.onerror = handleError;
15
- element.onabort = handleError;
16
- element.onemptied = handleError;
17
- element.onstalled = handleError;
18
- element.onsuspend = handleError;
19
- return () => {
20
- clearCallbacks(element);
21
- observer.complete();
22
- };
23
- });
24
- }
25
- function createErrorHandler(observer, element) {
26
- return function (event) {
27
- clearCallbacks(element);
28
- element.parentNode.removeChild(element);
29
- observer.error(event);
30
- };
31
- }
32
- function clearCallbacks(element) {
33
- element.onload = null;
34
- element.onerror = null;
35
- element.onabort = null;
36
- element.onemptied = null;
37
- element.onstalled = null;
38
- element.onsuspend = null;
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xhenktbG9hZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRyxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsT0FBNEMsRUFDNUMsY0FBMkIsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUN0RCxzQkFBMkMscUJBQXFCLENBQUMsU0FBUyxFQUFFO0lBRTVFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5DLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7UUFDOUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQVEsRUFBRSxFQUFFO1lBQzVCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFMUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7UUFDOUIsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7UUFDOUIsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFFaEMsT0FBTyxHQUFHLEVBQUU7WUFDVixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsUUFBeUIsRUFBRSxPQUFvQjtJQUN6RSxPQUFPLFVBQVUsS0FBcUI7UUFDcEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLE9BQW9CO0lBQzFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDcm9zc09yaWdpblN0cmF0ZWd5LCBDUk9TU19PUklHSU5fU1RSQVRFR1kgfSBmcm9tICcuLi9zdHJhdGVnaWVzL2Nyb3NzLW9yaWdpbi5zdHJhdGVneSc7XHJcbmltcG9ydCB7IERvbVN0cmF0ZWd5LCBET01fU1RSQVRFR1kgfSBmcm9tICcuLi9zdHJhdGVnaWVzL2RvbS5zdHJhdGVneSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZnJvbUxhenlMb2FkPFQgZXh0ZW5kcyBFdmVudD4oXHJcbiAgZWxlbWVudDogSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MTGlua0VsZW1lbnQsXHJcbiAgZG9tU3RyYXRlZ3k6IERvbVN0cmF0ZWd5ID0gRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLFxyXG4gIGNyb3NzT3JpZ2luU3RyYXRlZ3k6IENyb3NzT3JpZ2luU3RyYXRlZ3kgPSBDUk9TU19PUklHSU5fU1RSQVRFR1kuQW5vbnltb3VzKCksXHJcbik6IE9ic2VydmFibGU8VD4ge1xyXG4gIGNyb3NzT3JpZ2luU3RyYXRlZ3kuc2V0Q3Jvc3NPcmlnaW4oZWxlbWVudCk7XHJcbiAgZG9tU3RyYXRlZ3kuaW5zZXJ0RWxlbWVudChlbGVtZW50KTtcclxuXHJcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHtcclxuICAgIGVsZW1lbnQub25sb2FkID0gKGV2ZW50OiBUKSA9PiB7XHJcbiAgICAgIGNsZWFyQ2FsbGJhY2tzKGVsZW1lbnQpO1xyXG4gICAgICBvYnNlcnZlci5uZXh0KGV2ZW50KTtcclxuICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaGFuZGxlRXJyb3IgPSBjcmVhdGVFcnJvckhhbmRsZXIob2JzZXJ2ZXIsIGVsZW1lbnQpO1xyXG5cclxuICAgIGVsZW1lbnQub25lcnJvciA9IGhhbmRsZUVycm9yO1xyXG4gICAgZWxlbWVudC5vbmFib3J0ID0gaGFuZGxlRXJyb3I7XHJcbiAgICBlbGVtZW50Lm9uZW1wdGllZCA9IGhhbmRsZUVycm9yO1xyXG4gICAgZWxlbWVudC5vbnN0YWxsZWQgPSBoYW5kbGVFcnJvcjtcclxuICAgIGVsZW1lbnQub25zdXNwZW5kID0gaGFuZGxlRXJyb3I7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgY2xlYXJDYWxsYmFja3MoZWxlbWVudCk7XHJcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICB9O1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVFcnJvckhhbmRsZXIob2JzZXJ2ZXI6IE9ic2VydmVyPEV2ZW50PiwgZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50OiBFdmVudCB8IHN0cmluZykge1xyXG4gICAgY2xlYXJDYWxsYmFja3MoZWxlbWVudCk7XHJcbiAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XHJcbiAgICBvYnNlcnZlci5lcnJvcihldmVudCk7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2xlYXJDYWxsYmFja3MoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICBlbGVtZW50Lm9ubG9hZCA9IG51bGw7XHJcbiAgZWxlbWVudC5vbmVycm9yID0gbnVsbDtcclxuICBlbGVtZW50Lm9uYWJvcnQgPSBudWxsO1xyXG4gIGVsZW1lbnQub25lbXB0aWVkID0gbnVsbDtcclxuICBlbGVtZW50Lm9uc3RhbGxlZCA9IG51bGw7XHJcbiAgZWxlbWVudC5vbnN1c3BlbmQgPSBudWxsO1xyXG59XHJcbiJdfQ==
1
+ import { Observable } from 'rxjs';
2
+ import { CROSS_ORIGIN_STRATEGY } from '../strategies/cross-origin.strategy';
3
+ import { DOM_STRATEGY } from '../strategies/dom.strategy';
4
+ export function fromLazyLoad(element, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {
5
+ crossOriginStrategy.setCrossOrigin(element);
6
+ domStrategy.insertElement(element);
7
+ return new Observable((observer) => {
8
+ element.onload = (event) => {
9
+ clearCallbacks(element);
10
+ observer.next(event);
11
+ observer.complete();
12
+ };
13
+ const handleError = createErrorHandler(observer, element);
14
+ element.onerror = handleError;
15
+ element.onabort = handleError;
16
+ element.onemptied = handleError;
17
+ element.onstalled = handleError;
18
+ element.onsuspend = handleError;
19
+ return () => {
20
+ clearCallbacks(element);
21
+ observer.complete();
22
+ };
23
+ });
24
+ }
25
+ function createErrorHandler(observer, element) {
26
+ return function (event) {
27
+ clearCallbacks(element);
28
+ element.parentNode.removeChild(element);
29
+ observer.error(event);
30
+ };
31
+ }
32
+ function clearCallbacks(element) {
33
+ element.onload = null;
34
+ element.onerror = null;
35
+ element.onabort = null;
36
+ element.onemptied = null;
37
+ element.onstalled = null;
38
+ element.onsuspend = null;
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xhenktbG9hZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRyxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsT0FBNEMsRUFDNUMsY0FBMkIsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUN0RCxzQkFBMkMscUJBQXFCLENBQUMsU0FBUyxFQUFFO0lBRTVFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5DLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7UUFDOUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQVEsRUFBRSxFQUFFO1lBQzVCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFMUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7UUFDOUIsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7UUFDOUIsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFFaEMsT0FBTyxHQUFHLEVBQUU7WUFDVixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsUUFBeUIsRUFBRSxPQUFvQjtJQUN6RSxPQUFPLFVBQVUsS0FBcUI7UUFDcEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLE9BQW9CO0lBQzFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3Jvc3NPcmlnaW5TdHJhdGVneSwgQ1JPU1NfT1JJR0lOX1NUUkFURUdZIH0gZnJvbSAnLi4vc3RyYXRlZ2llcy9jcm9zcy1vcmlnaW4uc3RyYXRlZ3knO1xuaW1wb3J0IHsgRG9tU3RyYXRlZ3ksIERPTV9TVFJBVEVHWSB9IGZyb20gJy4uL3N0cmF0ZWdpZXMvZG9tLnN0cmF0ZWd5JztcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21MYXp5TG9hZDxUIGV4dGVuZHMgRXZlbnQ+KFxuICBlbGVtZW50OiBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxMaW5rRWxlbWVudCxcbiAgZG9tU3RyYXRlZ3k6IERvbVN0cmF0ZWd5ID0gRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLFxuICBjcm9zc09yaWdpblN0cmF0ZWd5OiBDcm9zc09yaWdpblN0cmF0ZWd5ID0gQ1JPU1NfT1JJR0lOX1NUUkFURUdZLkFub255bW91cygpLFxuKTogT2JzZXJ2YWJsZTxUPiB7XG4gIGNyb3NzT3JpZ2luU3RyYXRlZ3kuc2V0Q3Jvc3NPcmlnaW4oZWxlbWVudCk7XG4gIGRvbVN0cmF0ZWd5Lmluc2VydEVsZW1lbnQoZWxlbWVudCk7XG5cbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHtcbiAgICBlbGVtZW50Lm9ubG9hZCA9IChldmVudDogVCkgPT4ge1xuICAgICAgY2xlYXJDYWxsYmFja3MoZWxlbWVudCk7XG4gICAgICBvYnNlcnZlci5uZXh0KGV2ZW50KTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUVycm9yID0gY3JlYXRlRXJyb3JIYW5kbGVyKG9ic2VydmVyLCBlbGVtZW50KTtcblxuICAgIGVsZW1lbnQub25lcnJvciA9IGhhbmRsZUVycm9yO1xuICAgIGVsZW1lbnQub25hYm9ydCA9IGhhbmRsZUVycm9yO1xuICAgIGVsZW1lbnQub25lbXB0aWVkID0gaGFuZGxlRXJyb3I7XG4gICAgZWxlbWVudC5vbnN0YWxsZWQgPSBoYW5kbGVFcnJvcjtcbiAgICBlbGVtZW50Lm9uc3VzcGVuZCA9IGhhbmRsZUVycm9yO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyQ2FsbGJhY2tzKGVsZW1lbnQpO1xuICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXJyb3JIYW5kbGVyKG9ic2VydmVyOiBPYnNlcnZlcjxFdmVudD4sIGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoZXZlbnQ6IEV2ZW50IHwgc3RyaW5nKSB7XG4gICAgY2xlYXJDYWxsYmFja3MoZWxlbWVudCk7XG4gICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIG9ic2VydmVyLmVycm9yKGV2ZW50KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xlYXJDYWxsYmFja3MoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgZWxlbWVudC5vbmxvYWQgPSBudWxsO1xuICBlbGVtZW50Lm9uZXJyb3IgPSBudWxsO1xuICBlbGVtZW50Lm9uYWJvcnQgPSBudWxsO1xuICBlbGVtZW50Lm9uZW1wdGllZCA9IG51bGw7XG4gIGVsZW1lbnQub25zdGFsbGVkID0gbnVsbDtcbiAgZWxlbWVudC5vbnN1c3BlbmQgPSBudWxsO1xufVxuIl19
@@ -1,50 +1,50 @@
1
- // This will not be necessary when only Angukar 9.1+ is supported
2
- export function getLocaleDirection(locale) {
3
- return /^(ar(-[A-Z]{2})?|ckb(-IR)?|fa(-AF)?|he|ks|lrc(-IQ)?|mzn|pa-Arab|ps(-PK)?|sd|ug|ur(-IN)?|uz-Arab|yi)$/.test(locale)
4
- ? 'rtl'
5
- : 'ltr';
6
- }
7
- export function createLocalizer(localization) {
8
- return (resourceName, key, defaultValue) => {
9
- var _a;
10
- if (resourceName === '_')
11
- return key;
12
- const resource = (_a = localization === null || localization === void 0 ? void 0 : localization.values) === null || _a === void 0 ? void 0 : _a[resourceName];
13
- if (!resource)
14
- return defaultValue;
15
- return resource[key] || defaultValue;
16
- };
17
- }
18
- export function createLocalizerWithFallback(localization) {
19
- const findLocalization = createLocalizationFinder(localization);
20
- return (resourceNames, keys, defaultValue) => {
21
- const { localized } = findLocalization(resourceNames, keys);
22
- return localized || defaultValue;
23
- };
24
- }
25
- export function createLocalizationPipeKeyGenerator(localization) {
26
- const findLocalization = createLocalizationFinder(localization);
27
- return (resourceNames, keys, defaultKey) => {
28
- const { resourceName, key } = findLocalization(resourceNames, keys);
29
- return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;
30
- };
31
- }
32
- function createLocalizationFinder(localization) {
33
- const localize = createLocalizer(localization);
34
- return (resourceNames, keys) => {
35
- resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);
36
- const resourceCount = resourceNames.length;
37
- const keyCount = keys.length;
38
- for (let i = 0; i < resourceCount; i++) {
39
- const resourceName = resourceNames[i];
40
- for (let j = 0; j < keyCount; j++) {
41
- const key = keys[j];
42
- const localized = localize(resourceName, key, null);
43
- if (localized)
44
- return { resourceName, key, localized };
45
- }
46
- }
47
- return { resourceName: undefined, key: undefined, localized: undefined };
48
- };
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xvY2FsaXphdGlvbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxpRUFBaUU7QUFDakUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxzR0FBc0csQ0FBQyxJQUFJLENBQ2hILE1BQU0sQ0FDUDtRQUNDLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFlBQXFEO0lBQ25GLE9BQU8sQ0FBQyxZQUFvQixFQUFFLEdBQVcsRUFBRSxZQUFvQixFQUFFLEVBQUU7O1FBQ2pFLElBQUksWUFBWSxLQUFLLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUVyQyxNQUFNLFFBQVEsR0FBRyxNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLDBDQUFHLFlBQVksQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxZQUFZLENBQUM7UUFFbkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsWUFBcUQ7SUFDL0YsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVoRSxPQUFPLENBQUMsYUFBdUIsRUFBRSxJQUFjLEVBQUUsWUFBb0IsRUFBRSxFQUFFO1FBQ3ZFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxTQUFTLElBQUksWUFBWSxDQUFDO0lBQ25DLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0NBQWtDLENBQ2hELFlBQXFEO0lBRXJELE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEUsT0FBTyxDQUFDLGFBQXVCLEVBQUUsSUFBYyxFQUFFLFVBQThCLEVBQUUsRUFBRTtRQUNqRixNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDN0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsWUFBcUQ7SUFDckYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRS9DLE9BQU8sQ0FBQyxhQUF1QixFQUFFLElBQWMsRUFBRSxFQUFFO1FBQ2pELGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0YsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXRDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELElBQUksU0FBUztvQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQzthQUN4RDtTQUNGO1FBRUQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvbW9kZWxzJztcclxuXHJcbi8vIFRoaXMgd2lsbCBub3QgYmUgbmVjZXNzYXJ5IHdoZW4gb25seSBBbmd1a2FyIDkuMSsgaXMgc3VwcG9ydGVkXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVEaXJlY3Rpb24obG9jYWxlOiBzdHJpbmcpOiAnbHRyJyB8ICdydGwnIHtcclxuICByZXR1cm4gL14oYXIoLVtBLVpdezJ9KT98Y2tiKC1JUik/fGZhKC1BRik/fGhlfGtzfGxyYygtSVEpP3xtem58cGEtQXJhYnxwcygtUEspP3xzZHx1Z3x1cigtSU4pP3x1ei1BcmFifHlpKSQvLnRlc3QoXHJcbiAgICBsb2NhbGUsXHJcbiAgKVxyXG4gICAgPyAncnRsJ1xyXG4gICAgOiAnbHRyJztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXplcihsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0bykge1xyXG4gIHJldHVybiAocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgaWYgKHJlc291cmNlTmFtZSA9PT0gJ18nKSByZXR1cm4ga2V5O1xyXG5cclxuICAgIGNvbnN0IHJlc291cmNlID0gbG9jYWxpemF0aW9uPy52YWx1ZXM/LltyZXNvdXJjZU5hbWVdO1xyXG5cclxuICAgIGlmICghcmVzb3VyY2UpIHJldHVybiBkZWZhdWx0VmFsdWU7XHJcblxyXG4gICAgcmV0dXJuIHJlc291cmNlW2tleV0gfHwgZGVmYXVsdFZhbHVlO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2NhbGl6ZXJXaXRoRmFsbGJhY2sobG9jYWxpemF0aW9uOiBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8pIHtcclxuICBjb25zdCBmaW5kTG9jYWxpemF0aW9uID0gY3JlYXRlTG9jYWxpemF0aW9uRmluZGVyKGxvY2FsaXphdGlvbik7XHJcblxyXG4gIHJldHVybiAocmVzb3VyY2VOYW1lczogc3RyaW5nW10sIGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgeyBsb2NhbGl6ZWQgfSA9IGZpbmRMb2NhbGl6YXRpb24ocmVzb3VyY2VOYW1lcywga2V5cyk7XHJcbiAgICByZXR1cm4gbG9jYWxpemVkIHx8IGRlZmF1bHRWYWx1ZTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9jYWxpemF0aW9uUGlwZUtleUdlbmVyYXRvcihcclxuICBsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuKSB7XHJcbiAgY29uc3QgZmluZExvY2FsaXphdGlvbiA9IGNyZWF0ZUxvY2FsaXphdGlvbkZpbmRlcihsb2NhbGl6YXRpb24pO1xyXG5cclxuICByZXR1cm4gKHJlc291cmNlTmFtZXM6IHN0cmluZ1tdLCBrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdEtleTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICBjb25zdCB7IHJlc291cmNlTmFtZSwga2V5IH0gPSBmaW5kTG9jYWxpemF0aW9uKHJlc291cmNlTmFtZXMsIGtleXMpO1xyXG4gICAgcmV0dXJuICFyZXNvdXJjZU5hbWUgPyBkZWZhdWx0S2V5IDogcmVzb3VyY2VOYW1lID09PSAnXycgPyBrZXkgOiBgJHtyZXNvdXJjZU5hbWV9Ojoke2tleX1gO1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXphdGlvbkZpbmRlcihsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0bykge1xyXG4gIGNvbnN0IGxvY2FsaXplID0gY3JlYXRlTG9jYWxpemVyKGxvY2FsaXphdGlvbik7XHJcblxyXG4gIHJldHVybiAocmVzb3VyY2VOYW1lczogc3RyaW5nW10sIGtleXM6IHN0cmluZ1tdKSA9PiB7XHJcbiAgICByZXNvdXJjZU5hbWVzID0gcmVzb3VyY2VOYW1lcy5jb25jYXQobG9jYWxpemF0aW9uLmRlZmF1bHRSZXNvdXJjZU5hbWUgfHwgJycpLmZpbHRlcihCb29sZWFuKTtcclxuXHJcbiAgICBjb25zdCByZXNvdXJjZUNvdW50ID0gcmVzb3VyY2VOYW1lcy5sZW5ndGg7XHJcbiAgICBjb25zdCBrZXlDb3VudCA9IGtleXMubGVuZ3RoO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzb3VyY2VDb3VudDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IHJlc291cmNlTmFtZXNbaV07XHJcblxyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGtleUNvdW50OyBqKyspIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBrZXlzW2pdO1xyXG4gICAgICAgIGNvbnN0IGxvY2FsaXplZCA9IGxvY2FsaXplKHJlc291cmNlTmFtZSwga2V5LCBudWxsKTtcclxuICAgICAgICBpZiAobG9jYWxpemVkKSByZXR1cm4geyByZXNvdXJjZU5hbWUsIGtleSwgbG9jYWxpemVkIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyByZXNvdXJjZU5hbWU6IHVuZGVmaW5lZCwga2V5OiB1bmRlZmluZWQsIGxvY2FsaXplZDogdW5kZWZpbmVkIH07XHJcbiAgfTtcclxufVxyXG4iXX0=
1
+ // This will not be necessary when only Angukar 9.1+ is supported
2
+ export function getLocaleDirection(locale) {
3
+ return /^(ar(-[A-Z]{2})?|ckb(-IR)?|fa(-AF)?|he|ks|lrc(-IQ)?|mzn|pa-Arab|ps(-PK)?|sd|ug|ur(-IN)?|uz-Arab|yi)$/.test(locale)
4
+ ? 'rtl'
5
+ : 'ltr';
6
+ }
7
+ export function createLocalizer(localization) {
8
+ return (resourceName, key, defaultValue) => {
9
+ var _a;
10
+ if (resourceName === '_')
11
+ return key;
12
+ const resource = (_a = localization === null || localization === void 0 ? void 0 : localization.values) === null || _a === void 0 ? void 0 : _a[resourceName];
13
+ if (!resource)
14
+ return defaultValue;
15
+ return resource[key] || defaultValue;
16
+ };
17
+ }
18
+ export function createLocalizerWithFallback(localization) {
19
+ const findLocalization = createLocalizationFinder(localization);
20
+ return (resourceNames, keys, defaultValue) => {
21
+ const { localized } = findLocalization(resourceNames, keys);
22
+ return localized || defaultValue;
23
+ };
24
+ }
25
+ export function createLocalizationPipeKeyGenerator(localization) {
26
+ const findLocalization = createLocalizationFinder(localization);
27
+ return (resourceNames, keys, defaultKey) => {
28
+ const { resourceName, key } = findLocalization(resourceNames, keys);
29
+ return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;
30
+ };
31
+ }
32
+ function createLocalizationFinder(localization) {
33
+ const localize = createLocalizer(localization);
34
+ return (resourceNames, keys) => {
35
+ resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);
36
+ const resourceCount = resourceNames.length;
37
+ const keyCount = keys.length;
38
+ for (let i = 0; i < resourceCount; i++) {
39
+ const resourceName = resourceNames[i];
40
+ for (let j = 0; j < keyCount; j++) {
41
+ const key = keys[j];
42
+ const localized = localize(resourceName, key, null);
43
+ if (localized)
44
+ return { resourceName, key, localized };
45
+ }
46
+ }
47
+ return { resourceName: undefined, key: undefined, localized: undefined };
48
+ };
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xvY2FsaXphdGlvbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxpRUFBaUU7QUFDakUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxzR0FBc0csQ0FBQyxJQUFJLENBQ2hILE1BQU0sQ0FDUDtRQUNDLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFlBQXFEO0lBQ25GLE9BQU8sQ0FBQyxZQUFvQixFQUFFLEdBQVcsRUFBRSxZQUFvQixFQUFFLEVBQUU7O1FBQ2pFLElBQUksWUFBWSxLQUFLLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUVyQyxNQUFNLFFBQVEsR0FBRyxNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLDBDQUFHLFlBQVksQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxZQUFZLENBQUM7UUFFbkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsWUFBcUQ7SUFDL0YsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVoRSxPQUFPLENBQUMsYUFBdUIsRUFBRSxJQUFjLEVBQUUsWUFBb0IsRUFBRSxFQUFFO1FBQ3ZFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxTQUFTLElBQUksWUFBWSxDQUFDO0lBQ25DLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0NBQWtDLENBQ2hELFlBQXFEO0lBRXJELE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEUsT0FBTyxDQUFDLGFBQXVCLEVBQUUsSUFBYyxFQUFFLFVBQThCLEVBQUUsRUFBRTtRQUNqRixNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDN0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsWUFBcUQ7SUFDckYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRS9DLE9BQU8sQ0FBQyxhQUF1QixFQUFFLElBQWMsRUFBRSxFQUFFO1FBQ2pELGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0YsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXRDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELElBQUksU0FBUztvQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQzthQUN4RDtTQUNGO1FBRUQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvbW9kZWxzJztcblxuLy8gVGhpcyB3aWxsIG5vdCBiZSBuZWNlc3Nhcnkgd2hlbiBvbmx5IEFuZ3VrYXIgOS4xKyBpcyBzdXBwb3J0ZWRcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVEaXJlY3Rpb24obG9jYWxlOiBzdHJpbmcpOiAnbHRyJyB8ICdydGwnIHtcbiAgcmV0dXJuIC9eKGFyKC1bQS1aXXsyfSk/fGNrYigtSVIpP3xmYSgtQUYpP3xoZXxrc3xscmMoLUlRKT98bXpufHBhLUFyYWJ8cHMoLVBLKT98c2R8dWd8dXIoLUlOKT98dXotQXJhYnx5aSkkLy50ZXN0KFxuICAgIGxvY2FsZSxcbiAgKVxuICAgID8gJ3J0bCdcbiAgICA6ICdsdHInO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9jYWxpemVyKGxvY2FsaXphdGlvbjogQXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvKSB7XG4gIHJldHVybiAocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChyZXNvdXJjZU5hbWUgPT09ICdfJykgcmV0dXJuIGtleTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbG9jYWxpemF0aW9uPy52YWx1ZXM/LltyZXNvdXJjZU5hbWVdO1xuXG4gICAgaWYgKCFyZXNvdXJjZSkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcblxuICAgIHJldHVybiByZXNvdXJjZVtrZXldIHx8IGRlZmF1bHRWYWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXplcldpdGhGYWxsYmFjayhsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0bykge1xuICBjb25zdCBmaW5kTG9jYWxpemF0aW9uID0gY3JlYXRlTG9jYWxpemF0aW9uRmluZGVyKGxvY2FsaXphdGlvbik7XG5cbiAgcmV0dXJuIChyZXNvdXJjZU5hbWVzOiBzdHJpbmdbXSwga2V5czogc3RyaW5nW10sIGRlZmF1bHRWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgeyBsb2NhbGl6ZWQgfSA9IGZpbmRMb2NhbGl6YXRpb24ocmVzb3VyY2VOYW1lcywga2V5cyk7XG4gICAgcmV0dXJuIGxvY2FsaXplZCB8fCBkZWZhdWx0VmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yKFxuICBsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcbikge1xuICBjb25zdCBmaW5kTG9jYWxpemF0aW9uID0gY3JlYXRlTG9jYWxpemF0aW9uRmluZGVyKGxvY2FsaXphdGlvbik7XG5cbiAgcmV0dXJuIChyZXNvdXJjZU5hbWVzOiBzdHJpbmdbXSwga2V5czogc3RyaW5nW10sIGRlZmF1bHRLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGNvbnN0IHsgcmVzb3VyY2VOYW1lLCBrZXkgfSA9IGZpbmRMb2NhbGl6YXRpb24ocmVzb3VyY2VOYW1lcywga2V5cyk7XG4gICAgcmV0dXJuICFyZXNvdXJjZU5hbWUgPyBkZWZhdWx0S2V5IDogcmVzb3VyY2VOYW1lID09PSAnXycgPyBrZXkgOiBgJHtyZXNvdXJjZU5hbWV9Ojoke2tleX1gO1xuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2NhbGl6YXRpb25GaW5kZXIobG9jYWxpemF0aW9uOiBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8pIHtcbiAgY29uc3QgbG9jYWxpemUgPSBjcmVhdGVMb2NhbGl6ZXIobG9jYWxpemF0aW9uKTtcblxuICByZXR1cm4gKHJlc291cmNlTmFtZXM6IHN0cmluZ1tdLCBrZXlzOiBzdHJpbmdbXSkgPT4ge1xuICAgIHJlc291cmNlTmFtZXMgPSByZXNvdXJjZU5hbWVzLmNvbmNhdChsb2NhbGl6YXRpb24uZGVmYXVsdFJlc291cmNlTmFtZSB8fCAnJykuZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VDb3VudCA9IHJlc291cmNlTmFtZXMubGVuZ3RoO1xuICAgIGNvbnN0IGtleUNvdW50ID0ga2V5cy5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc291cmNlQ291bnQ7IGkrKykge1xuICAgICAgY29uc3QgcmVzb3VyY2VOYW1lID0gcmVzb3VyY2VOYW1lc1tpXTtcblxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBrZXlDb3VudDsgaisrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNbal07XG4gICAgICAgIGNvbnN0IGxvY2FsaXplZCA9IGxvY2FsaXplKHJlc291cmNlTmFtZSwga2V5LCBudWxsKTtcbiAgICAgICAgaWYgKGxvY2FsaXplZCkgcmV0dXJuIHsgcmVzb3VyY2VOYW1lLCBrZXksIGxvY2FsaXplZCB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHJlc291cmNlTmFtZTogdW5kZWZpbmVkLCBrZXk6IHVuZGVmaW5lZCwgbG9jYWxpemVkOiB1bmRlZmluZWQgfTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,83 +1,83 @@
1
- import { __awaiter } from "tslib";
2
- import clone from 'just-clone';
3
- import { tap } from 'rxjs/operators';
4
- import { EnvironmentService } from '../services/environment.service';
5
- import { MultiTenancyService } from '../services/multi-tenancy.service';
6
- import { createTokenParser } from './string-utils';
7
- const tenancyPlaceholder = '{0}';
8
- function getCurrentTenancyName(appBaseUrl) {
9
- var _a;
10
- if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')
11
- appBaseUrl += '/';
12
- const parseTokens = createTokenParser(appBaseUrl);
13
- const token = tenancyPlaceholder.replace(/[}{]/g, '');
14
- return (_a = parseTokens(window.location.href)[token]) === null || _a === void 0 ? void 0 : _a[0];
15
- }
16
- function getCurrentTenancyNameFromUrl(tenantKey) {
17
- const urlParams = new URLSearchParams(window.location.search);
18
- return urlParams.get(tenantKey);
19
- }
20
- export function parseTenantFromUrl(injector) {
21
- var _a, _b;
22
- return __awaiter(this, void 0, void 0, function* () {
23
- const environmentService = injector.get(EnvironmentService);
24
- const multiTenancyService = injector.get(MultiTenancyService);
25
- const baseUrl = ((_b = (_a = environmentService.getEnvironment()) === null || _a === void 0 ? void 0 : _a.application) === null || _b === void 0 ? void 0 : _b.baseUrl) || '';
26
- const tenancyName = getCurrentTenancyName(baseUrl);
27
- const hideTenantBox = () => {
28
- multiTenancyService.isTenantBoxVisible = false;
29
- };
30
- const setDomainTenant = (tenant) => {
31
- multiTenancyService.domainTenant = {
32
- id: tenant.tenantId,
33
- name: tenant.name,
34
- isAvailable: true,
35
- };
36
- };
37
- const setEnvironmentWithDomainTenant = (tenant) => {
38
- hideTenantBox();
39
- setDomainTenant(tenant);
40
- };
41
- if (tenancyName) {
42
- /**
43
- * We have to replace tenant name within the urls from environment,
44
- * because the code below will make a http request to find information about the domain tenant.
45
- * Before this request takes place, we need to replace placeholders aka "{0}".
46
- */
47
- replaceTenantNameWithinEnvironment(injector, tenancyName);
48
- return multiTenancyService
49
- .setTenantByName(tenancyName)
50
- .pipe(tap(setEnvironmentWithDomainTenant))
51
- .toPromise();
52
- }
53
- else {
54
- /**
55
- * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
56
- */
57
- replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
58
- const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
59
- if (tenantIdFromQueryParams) {
60
- return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();
61
- }
62
- }
63
- return Promise.resolve();
64
- });
65
- }
66
- function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder = tenancyPlaceholder) {
67
- const environmentService = injector.get(EnvironmentService);
68
- const environment = clone(environmentService.getEnvironment());
69
- if (environment.application.baseUrl) {
70
- environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);
71
- }
72
- if (environment.oAuthConfig.redirectUri) {
73
- environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);
74
- }
75
- environment.oAuthConfig.issuer = environment.oAuthConfig.issuer.replace(placeholder, tenancyName);
76
- Object.keys(environment.apis).forEach(api => {
77
- Object.keys(environment.apis[api]).forEach(key => {
78
- environment.apis[api][key] = environment.apis[api][key].replace(placeholder, tenancyName);
79
- });
80
- });
81
- return environmentService.setState(environment);
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGVuYW5jeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9tdWx0aS10ZW5hbmN5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFFL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBRWpDLFNBQVMscUJBQXFCLENBQUMsVUFBa0I7O0lBQy9DLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUc7UUFBRSxVQUFVLElBQUksR0FBRyxDQUFDO0lBRXhFLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsT0FBTyxNQUFBLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyw0QkFBNEIsQ0FBQyxTQUFpQjtJQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztB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QU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgY2xvbmUgZnJvbSAnanVzdC1jbG9uZSc7XHJcblxyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbW9kZWxzL2Vudmlyb25tZW50JztcclxuXHJcbmltcG9ydCB7IEZpbmRUZW5hbnRSZXN1bHREdG8gfSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL211bHRpLXRlbmFuY3kvbW9kZWxzJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpVGVuYW5jeVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tdWx0aS10ZW5hbmN5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBjcmVhdGVUb2tlblBhcnNlciB9IGZyb20gJy4vc3RyaW5nLXV0aWxzJztcclxuXHJcbmNvbnN0IHRlbmFuY3lQbGFjZWhvbGRlciA9ICd7MH0nO1xyXG5cclxuZnVuY3Rpb24gZ2V0Q3VycmVudFRlbmFuY3lOYW1lKGFwcEJhc2VVcmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgaWYgKGFwcEJhc2VVcmwuY2hhckF0KGFwcEJhc2VVcmwubGVuZ3RoIC0gMSkgIT09ICcvJykgYXBwQmFzZVVybCArPSAnLyc7XHJcblxyXG4gIGNvbnN0IHBhcnNlVG9rZW5zID0gY3JlYXRlVG9rZW5QYXJzZXIoYXBwQmFzZVVybCk7XHJcbiAgY29uc3QgdG9rZW4gPSB0ZW5hbmN5UGxhY2Vob2xkZXIucmVwbGFjZSgvW317XS9nLCAnJyk7XHJcbiAgcmV0dXJuIHBhcnNlVG9rZW5zKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVt0b2tlbl0/LlswXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q3VycmVudFRlbmFuY3lOYW1lRnJvbVVybCh0ZW5hbnRLZXk6IHN0cmluZykge1xyXG4gIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgcmV0dXJuIHVybFBhcmFtcy5nZXQodGVuYW50S2V5KTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlVGVuYW50RnJvbVVybChpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuICBjb25zdCBtdWx0aVRlbmFuY3lTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE11bHRpVGVuYW5jeVNlcnZpY2UpO1xyXG5cclxuICBjb25zdCBiYXNlVXJsID0gZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCk/LmFwcGxpY2F0aW9uPy5iYXNlVXJsIHx8ICcnO1xyXG4gIGNvbnN0IHRlbmFuY3lOYW1lID0gZ2V0Q3VycmVudFRlbmFuY3lOYW1lKGJhc2VVcmwpO1xyXG5cclxuICBjb25zdCBoaWRlVGVuYW50Qm94ID0gKCkgPT4ge1xyXG4gICAgbXVsdGlUZW5hbmN5U2VydmljZS5pc1RlbmFudEJveFZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG5cclxuICBjb25zdCBzZXREb21haW5UZW5hbnQgPSAodGVuYW50OiBGaW5kVGVuYW50UmVzdWx0RHRvKSA9PiB7XHJcbiAgICBtdWx0aVRlbmFuY3lTZXJ2aWNlLmRvbWFpblRlbmFudCA9IHtcclxuICAgICAgaWQ6IHRlbmFudC50ZW5hbnRJZCxcclxuICAgICAgbmFtZTogdGVuYW50Lm5hbWUsXHJcbiAgICAgIGlzQXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICBjb25zdCBzZXRFbnZpcm9ubWVudFdpdGhEb21haW5UZW5hbnQgPSAodGVuYW50OiBGaW5kVGVuYW50UmVzdWx0RHRvKSA9PiB7XHJcbiAgICBoaWRlVGVuYW50Qm94KCk7XHJcbiAgICBzZXREb21haW5UZW5hbnQodGVuYW50KTtcclxuICB9O1xyXG5cclxuICBpZiAodGVuYW5jeU5hbWUpIHtcclxuICAgIC8qKlxyXG4gICAgICogV2UgaGF2ZSB0byByZXBsYWNlIHRlbmFudCBuYW1lIHdpdGhpbiB0aGUgdXJscyBmcm9tIGVudmlyb25tZW50LFxyXG4gICAgICogYmVjYXVzZSB0aGUgY29kZSBiZWxvdyB3aWxsIG1ha2UgYSBodHRwIHJlcXVlc3QgdG8gZmluZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZG9tYWluIHRlbmFudC5cclxuICAgICAqIEJlZm9yZSB0aGlzIHJlcXVlc3QgdGFrZXMgcGxhY2UsIHdlIG5lZWQgdG8gcmVwbGFjZSBwbGFjZWhvbGRlcnMgYWthIFwiezB9XCIuXHJcbiAgICAgKi9cclxuICAgIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsIHRlbmFuY3lOYW1lKTtcclxuICAgIHJldHVybiBtdWx0aVRlbmFuY3lTZXJ2aWNlXHJcbiAgICAgIC5zZXRUZW5hbnRCeU5hbWUodGVuYW5jeU5hbWUpXHJcbiAgICAgIC5waXBlKHRhcChzZXRFbnZpcm9ubWVudFdpdGhEb21haW5UZW5hbnQpKVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlcmUgaXMgbm8gdGVuYW50LCB3ZSBzdGlsbCBoYXZlIHRvIGNsZWFuIHVwIHswfS4gZnJvbSBiYXNlVXJsIHRvIGF2b2lkIGluY29ycmVjdCBodHRwIHJlcXVlc3RzLlxyXG4gICAgICovXHJcbiAgICByZXBsYWNlVGVuYW50TmFtZVdpdGhpbkVudmlyb25tZW50KGluamVjdG9yLCAnJywgdGVuYW5jeVBsYWNlaG9sZGVyICsgJy4nKTtcclxuXHJcbiAgICBjb25zdCB0ZW5hbnRJZEZyb21RdWVyeVBhcmFtcyA9IGdldEN1cnJlbnRUZW5hbmN5TmFtZUZyb21VcmwobXVsdGlUZW5hbmN5U2VydmljZS50ZW5hbnRLZXkpO1xyXG4gICAgaWYgKHRlbmFudElkRnJvbVF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgIHJldHVybiBtdWx0aVRlbmFuY3lTZXJ2aWNlLnNldFRlbmFudEJ5SWQodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZXBsYWNlVGVuYW50TmFtZVdpdGhpbkVudmlyb25tZW50KFxyXG4gIGluamVjdG9yOiBJbmplY3RvcixcclxuICB0ZW5hbmN5TmFtZTogc3RyaW5nLFxyXG4gIHBsYWNlaG9sZGVyID0gdGVuYW5jeVBsYWNlaG9sZGVyLFxyXG4pIHtcclxuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuXHJcbiAgY29uc3QgZW52aXJvbm1lbnQgPSBjbG9uZShlbnZpcm9ubWVudFNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKSkgYXMgRW52aXJvbm1lbnQ7XHJcblxyXG4gIGlmIChlbnZpcm9ubWVudC5hcHBsaWNhdGlvbi5iYXNlVXJsKSB7XHJcbiAgICBlbnZpcm9ubWVudC5hcHBsaWNhdGlvbi5iYXNlVXJsID0gZW52aXJvbm1lbnQuYXBwbGljYXRpb24uYmFzZVVybC5yZXBsYWNlKFxyXG4gICAgICBwbGFjZWhvbGRlcixcclxuICAgICAgdGVuYW5jeU5hbWUsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaWYgKGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLnJlZGlyZWN0VXJpKSB7XHJcbiAgICBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5yZWRpcmVjdFVyaSA9IGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLnJlZGlyZWN0VXJpLnJlcGxhY2UoXHJcbiAgICAgIHBsYWNlaG9sZGVyLFxyXG4gICAgICB0ZW5hbmN5TmFtZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIgPSBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIucmVwbGFjZShwbGFjZWhvbGRlciwgdGVuYW5jeU5hbWUpO1xyXG5cclxuICBPYmplY3Qua2V5cyhlbnZpcm9ubWVudC5hcGlzKS5mb3JFYWNoKGFwaSA9PiB7XHJcbiAgICBPYmplY3Qua2V5cyhlbnZpcm9ubWVudC5hcGlzW2FwaV0pLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgZW52aXJvbm1lbnQuYXBpc1thcGldW2tleV0gPSBlbnZpcm9ubWVudC5hcGlzW2FwaV1ba2V5XS5yZXBsYWNlKHBsYWNlaG9sZGVyLCB0ZW5hbmN5TmFtZSk7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGVudmlyb25tZW50U2VydmljZS5zZXRTdGF0ZShlbnZpcm9ubWVudCk7XHJcbn1cclxuIl19
1
+ import { __awaiter } from "tslib";
2
+ import clone from 'just-clone';
3
+ import { tap } from 'rxjs/operators';
4
+ import { EnvironmentService } from '../services/environment.service';
5
+ import { MultiTenancyService } from '../services/multi-tenancy.service';
6
+ import { createTokenParser } from './string-utils';
7
+ const tenancyPlaceholder = '{0}';
8
+ function getCurrentTenancyName(appBaseUrl) {
9
+ var _a;
10
+ if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')
11
+ appBaseUrl += '/';
12
+ const parseTokens = createTokenParser(appBaseUrl);
13
+ const token = tenancyPlaceholder.replace(/[}{]/g, '');
14
+ return (_a = parseTokens(window.location.href)[token]) === null || _a === void 0 ? void 0 : _a[0];
15
+ }
16
+ function getCurrentTenancyNameFromUrl(tenantKey) {
17
+ const urlParams = new URLSearchParams(window.location.search);
18
+ return urlParams.get(tenantKey);
19
+ }
20
+ export function parseTenantFromUrl(injector) {
21
+ var _a, _b;
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const environmentService = injector.get(EnvironmentService);
24
+ const multiTenancyService = injector.get(MultiTenancyService);
25
+ const baseUrl = ((_b = (_a = environmentService.getEnvironment()) === null || _a === void 0 ? void 0 : _a.application) === null || _b === void 0 ? void 0 : _b.baseUrl) || '';
26
+ const tenancyName = getCurrentTenancyName(baseUrl);
27
+ const hideTenantBox = () => {
28
+ multiTenancyService.isTenantBoxVisible = false;
29
+ };
30
+ const setDomainTenant = (tenant) => {
31
+ multiTenancyService.domainTenant = {
32
+ id: tenant.tenantId,
33
+ name: tenant.name,
34
+ isAvailable: true,
35
+ };
36
+ };
37
+ const setEnvironmentWithDomainTenant = (tenant) => {
38
+ hideTenantBox();
39
+ setDomainTenant(tenant);
40
+ };
41
+ if (tenancyName) {
42
+ /**
43
+ * We have to replace tenant name within the urls from environment,
44
+ * because the code below will make a http request to find information about the domain tenant.
45
+ * Before this request takes place, we need to replace placeholders aka "{0}".
46
+ */
47
+ replaceTenantNameWithinEnvironment(injector, tenancyName);
48
+ return multiTenancyService
49
+ .setTenantByName(tenancyName)
50
+ .pipe(tap(setEnvironmentWithDomainTenant))
51
+ .toPromise();
52
+ }
53
+ else {
54
+ /**
55
+ * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
56
+ */
57
+ replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
58
+ const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
59
+ if (tenantIdFromQueryParams) {
60
+ return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();
61
+ }
62
+ }
63
+ return Promise.resolve();
64
+ });
65
+ }
66
+ function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder = tenancyPlaceholder) {
67
+ const environmentService = injector.get(EnvironmentService);
68
+ const environment = clone(environmentService.getEnvironment());
69
+ if (environment.application.baseUrl) {
70
+ environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);
71
+ }
72
+ if (environment.oAuthConfig.redirectUri) {
73
+ environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);
74
+ }
75
+ environment.oAuthConfig.issuer = environment.oAuthConfig.issuer.replace(placeholder, tenancyName);
76
+ Object.keys(environment.apis).forEach(api => {
77
+ Object.keys(environment.apis[api]).forEach(key => {
78
+ environment.apis[api][key] = environment.apis[api][key].replace(placeholder, tenancyName);
79
+ });
80
+ });
81
+ return environmentService.setState(environment);
82
+ }
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGVuYW5jeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9tdWx0aS10ZW5hbmN5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFFL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBRWpDLFNBQVMscUJBQXFCLENBQUMsVUFBa0I7O0lBQy9DLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUc7UUFBRSxVQUFVLElBQUksR0FBRyxDQUFDO0lBRXhFLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsT0FBTyxNQUFBLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyw0QkFBNEIsQ0FBQyxTQUFpQjtJQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztB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QU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnO1xuXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscy9lbnZpcm9ubWVudCc7XG5cbmltcG9ydCB7IEZpbmRUZW5hbnRSZXN1bHREdG8gfSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL211bHRpLXRlbmFuY3kvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTXVsdGlUZW5hbmN5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL211bHRpLXRlbmFuY3kuc2VydmljZSc7XG5pbXBvcnQgeyBjcmVhdGVUb2tlblBhcnNlciB9IGZyb20gJy4vc3RyaW5nLXV0aWxzJztcblxuY29uc3QgdGVuYW5jeVBsYWNlaG9sZGVyID0gJ3swfSc7XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRUZW5hbmN5TmFtZShhcHBCYXNlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYXBwQmFzZVVybC5jaGFyQXQoYXBwQmFzZVVybC5sZW5ndGggLSAxKSAhPT0gJy8nKSBhcHBCYXNlVXJsICs9ICcvJztcblxuICBjb25zdCBwYXJzZVRva2VucyA9IGNyZWF0ZVRva2VuUGFyc2VyKGFwcEJhc2VVcmwpO1xuICBjb25zdCB0b2tlbiA9IHRlbmFuY3lQbGFjZWhvbGRlci5yZXBsYWNlKC9bfXtdL2csICcnKTtcbiAgcmV0dXJuIHBhcnNlVG9rZW5zKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVt0b2tlbl0/LlswXTtcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudFRlbmFuY3lOYW1lRnJvbVVybCh0ZW5hbnRLZXk6IHN0cmluZykge1xuICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICByZXR1cm4gdXJsUGFyYW1zLmdldCh0ZW5hbnRLZXkpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VUZW5hbnRGcm9tVXJsKGluamVjdG9yOiBJbmplY3Rvcikge1xuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcbiAgY29uc3QgbXVsdGlUZW5hbmN5U2VydmljZSA9IGluamVjdG9yLmdldChNdWx0aVRlbmFuY3lTZXJ2aWNlKTtcblxuICBjb25zdCBiYXNlVXJsID0gZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCk/LmFwcGxpY2F0aW9uPy5iYXNlVXJsIHx8ICcnO1xuICBjb25zdCB0ZW5hbmN5TmFtZSA9IGdldEN1cnJlbnRUZW5hbmN5TmFtZShiYXNlVXJsKTtcblxuICBjb25zdCBoaWRlVGVuYW50Qm94ID0gKCkgPT4ge1xuICAgIG11bHRpVGVuYW5jeVNlcnZpY2UuaXNUZW5hbnRCb3hWaXNpYmxlID0gZmFsc2U7XG4gIH07XG5cbiAgY29uc3Qgc2V0RG9tYWluVGVuYW50ID0gKHRlbmFudDogRmluZFRlbmFudFJlc3VsdER0bykgPT4ge1xuICAgIG11bHRpVGVuYW5jeVNlcnZpY2UuZG9tYWluVGVuYW50ID0ge1xuICAgICAgaWQ6IHRlbmFudC50ZW5hbnRJZCxcbiAgICAgIG5hbWU6IHRlbmFudC5uYW1lLFxuICAgICAgaXNBdmFpbGFibGU6IHRydWUsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBzZXRFbnZpcm9ubWVudFdpdGhEb21haW5UZW5hbnQgPSAodGVuYW50OiBGaW5kVGVuYW50UmVzdWx0RHRvKSA9PiB7XG4gICAgaGlkZVRlbmFudEJveCgpO1xuICAgIHNldERvbWFpblRlbmFudCh0ZW5hbnQpO1xuICB9O1xuXG4gIGlmICh0ZW5hbmN5TmFtZSkge1xuICAgIC8qKlxuICAgICAqIFdlIGhhdmUgdG8gcmVwbGFjZSB0ZW5hbnQgbmFtZSB3aXRoaW4gdGhlIHVybHMgZnJvbSBlbnZpcm9ubWVudCxcbiAgICAgKiBiZWNhdXNlIHRoZSBjb2RlIGJlbG93IHdpbGwgbWFrZSBhIGh0dHAgcmVxdWVzdCB0byBmaW5kIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkb21haW4gdGVuYW50LlxuICAgICAqIEJlZm9yZSB0aGlzIHJlcXVlc3QgdGFrZXMgcGxhY2UsIHdlIG5lZWQgdG8gcmVwbGFjZSBwbGFjZWhvbGRlcnMgYWthIFwiezB9XCIuXG4gICAgICovXG4gICAgcmVwbGFjZVRlbmFudE5hbWVXaXRoaW5FbnZpcm9ubWVudChpbmplY3RvciwgdGVuYW5jeU5hbWUpO1xuICAgIHJldHVybiBtdWx0aVRlbmFuY3lTZXJ2aWNlXG4gICAgICAuc2V0VGVuYW50QnlOYW1lKHRlbmFuY3lOYW1lKVxuICAgICAgLnBpcGUodGFwKHNldEVudmlyb25tZW50V2l0aERvbWFpblRlbmFudCkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH0gZWxzZSB7XG4gICAgLyoqXG4gICAgICogSWYgdGhlcmUgaXMgbm8gdGVuYW50LCB3ZSBzdGlsbCBoYXZlIHRvIGNsZWFuIHVwIHswfS4gZnJvbSBiYXNlVXJsIHRvIGF2b2lkIGluY29ycmVjdCBodHRwIHJlcXVlc3RzLlxuICAgICAqL1xuICAgIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsICcnLCB0ZW5hbmN5UGxhY2Vob2xkZXIgKyAnLicpO1xuXG4gICAgY29uc3QgdGVuYW50SWRGcm9tUXVlcnlQYXJhbXMgPSBnZXRDdXJyZW50VGVuYW5jeU5hbWVGcm9tVXJsKG11bHRpVGVuYW5jeVNlcnZpY2UudGVuYW50S2V5KTtcbiAgICBpZiAodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpIHtcbiAgICAgIHJldHVybiBtdWx0aVRlbmFuY3lTZXJ2aWNlLnNldFRlbmFudEJ5SWQodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpLnRvUHJvbWlzZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZVRlbmFudE5hbWVXaXRoaW5FbnZpcm9ubWVudChcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuICB0ZW5hbmN5TmFtZTogc3RyaW5nLFxuICBwbGFjZWhvbGRlciA9IHRlbmFuY3lQbGFjZWhvbGRlcixcbikge1xuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcblxuICBjb25zdCBlbnZpcm9ubWVudCA9IGNsb25lKGVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpKSBhcyBFbnZpcm9ubWVudDtcblxuICBpZiAoZW52aXJvbm1lbnQuYXBwbGljYXRpb24uYmFzZVVybCkge1xuICAgIGVudmlyb25tZW50LmFwcGxpY2F0aW9uLmJhc2VVcmwgPSBlbnZpcm9ubWVudC5hcHBsaWNhdGlvbi5iYXNlVXJsLnJlcGxhY2UoXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIHRlbmFuY3lOYW1lLFxuICAgICk7XG4gIH1cblxuICBpZiAoZW52aXJvbm1lbnQub0F1dGhDb25maWcucmVkaXJlY3RVcmkpIHtcbiAgICBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5yZWRpcmVjdFVyaSA9IGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLnJlZGlyZWN0VXJpLnJlcGxhY2UoXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIHRlbmFuY3lOYW1lLFxuICAgICk7XG4gIH1cblxuICBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIgPSBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIucmVwbGFjZShwbGFjZWhvbGRlciwgdGVuYW5jeU5hbWUpO1xuXG4gIE9iamVjdC5rZXlzKGVudmlyb25tZW50LmFwaXMpLmZvckVhY2goYXBpID0+IHtcbiAgICBPYmplY3Qua2V5cyhlbnZpcm9ubWVudC5hcGlzW2FwaV0pLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGVudmlyb25tZW50LmFwaXNbYXBpXVtrZXldID0gZW52aXJvbm1lbnQuYXBpc1thcGldW2tleV0ucmVwbGFjZShwbGFjZWhvbGRlciwgdGVuYW5jeU5hbWUpO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZW52aXJvbm1lbnRTZXJ2aWNlLnNldFN0YXRlKGVudmlyb25tZW50KTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- export function isNumber(value) {
2
- return value == Number(value);
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL251bWJlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXNCO0lBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcclxuICByZXR1cm4gdmFsdWUgPT0gTnVtYmVyKHZhbHVlKTtcclxufVxyXG4iXX0=
1
+ export function isNumber(value) {
2
+ return value == Number(value);
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL251bWJlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXNCO0lBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlID09IE51bWJlcih2YWx1ZSk7XG59XG4iXX0=
@@ -1,37 +1,37 @@
1
- import { exists, isArray, isNode, isNullOrUndefined, isObject, isObjectAndNotArrayNotNode, } from './common-utils';
2
- export function deepMerge(target, source) {
3
- if (isObjectAndNotArrayNotNode(target) && isObjectAndNotArrayNotNode(source)) {
4
- return deepMergeRecursively(target, source);
5
- }
6
- else if (isNullOrUndefined(target) && isNullOrUndefined(source)) {
7
- return {};
8
- }
9
- else {
10
- return exists(source) ? source : target;
11
- }
12
- }
13
- function deepMergeRecursively(target, source) {
14
- const shouldNotRecurse = isNullOrUndefined(target) ||
15
- isNullOrUndefined(source) || // at least one not defined
16
- isArray(target) ||
17
- isArray(source) || // at least one array
18
- !isObject(target) ||
19
- !isObject(source) || // at least one not an object
20
- isNode(target) ||
21
- isNode(source); // at least one node
22
- /**
23
- * if we will not recurse any further,
24
- * we will prioritize source if it is a defined value.
25
- */
26
- if (shouldNotRecurse) {
27
- return exists(source) ? source : target;
28
- }
29
- const keysOfTarget = Object.keys(target);
30
- const keysOfSource = Object.keys(source);
31
- const uniqueKeys = new Set(keysOfTarget.concat(keysOfSource));
32
- return [...uniqueKeys].reduce((retVal, key) => {
33
- retVal[key] = deepMergeRecursively(target[key], source[key]);
34
- return retVal;
35
- }, {});
36
- }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUiwwQkFBMEIsR0FDM0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ3RDLElBQUksMEJBQTBCLENBQUMsTUFBTSxDQUFDLElBQUksMEJBQTBCLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDNUUsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDN0M7U0FBTSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2pFLE9BQU8sRUFBRSxDQUFDO0tBQ1g7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztLQUN6QztBQUNILENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNO0lBQzFDLE1BQU0sZ0JBQWdCLEdBQ3BCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSwyQkFBMkI7UUFDeEQsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxxQkFBcUI7UUFDeEMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDZCQUE2QjtRQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBRXRDOzs7T0FHRztJQUNILElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQ3pDO0lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM5RCxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDNUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBleGlzdHMsXHJcbiAgaXNBcnJheSxcclxuICBpc05vZGUsXHJcbiAgaXNOdWxsT3JVbmRlZmluZWQsXHJcbiAgaXNPYmplY3QsXHJcbiAgaXNPYmplY3RBbmROb3RBcnJheU5vdE5vZGUsXHJcbn0gZnJvbSAnLi9jb21tb24tdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xyXG4gIGlmIChpc09iamVjdEFuZE5vdEFycmF5Tm90Tm9kZSh0YXJnZXQpICYmIGlzT2JqZWN0QW5kTm90QXJyYXlOb3ROb2RlKHNvdXJjZSkpIHtcclxuICAgIHJldHVybiBkZWVwTWVyZ2VSZWN1cnNpdmVseSh0YXJnZXQsIHNvdXJjZSk7XHJcbiAgfSBlbHNlIGlmIChpc051bGxPclVuZGVmaW5lZCh0YXJnZXQpICYmIGlzTnVsbE9yVW5kZWZpbmVkKHNvdXJjZSkpIHtcclxuICAgIHJldHVybiB7fTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGV4aXN0cyhzb3VyY2UpID8gc291cmNlIDogdGFyZ2V0O1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZGVlcE1lcmdlUmVjdXJzaXZlbHkodGFyZ2V0LCBzb3VyY2UpIHtcclxuICBjb25zdCBzaG91bGROb3RSZWN1cnNlID1cclxuICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRhcmdldCkgfHxcclxuICAgIGlzTnVsbE9yVW5kZWZpbmVkKHNvdXJjZSkgfHwgLy8gYXQgbGVhc3Qgb25lIG5vdCBkZWZpbmVkXHJcbiAgICBpc0FycmF5KHRhcmdldCkgfHxcclxuICAgIGlzQXJyYXkoc291cmNlKSB8fCAvLyBhdCBsZWFzdCBvbmUgYXJyYXlcclxuICAgICFpc09iamVjdCh0YXJnZXQpIHx8XHJcbiAgICAhaXNPYmplY3Qoc291cmNlKSB8fCAvLyBhdCBsZWFzdCBvbmUgbm90IGFuIG9iamVjdFxyXG4gICAgaXNOb2RlKHRhcmdldCkgfHxcclxuICAgIGlzTm9kZShzb3VyY2UpOyAvLyBhdCBsZWFzdCBvbmUgbm9kZVxyXG5cclxuICAvKipcclxuICAgKiBpZiB3ZSB3aWxsIG5vdCByZWN1cnNlIGFueSBmdXJ0aGVyLFxyXG4gICAqIHdlIHdpbGwgcHJpb3JpdGl6ZSBzb3VyY2UgaWYgaXQgaXMgYSBkZWZpbmVkIHZhbHVlLlxyXG4gICAqL1xyXG4gIGlmIChzaG91bGROb3RSZWN1cnNlKSB7XHJcbiAgICByZXR1cm4gZXhpc3RzKHNvdXJjZSkgPyBzb3VyY2UgOiB0YXJnZXQ7XHJcbiAgfVxyXG5cclxuICBjb25zdCBrZXlzT2ZUYXJnZXQgPSBPYmplY3Qua2V5cyh0YXJnZXQpO1xyXG4gIGNvbnN0IGtleXNPZlNvdXJjZSA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XHJcbiAgY29uc3QgdW5pcXVlS2V5cyA9IG5ldyBTZXQoa2V5c09mVGFyZ2V0LmNvbmNhdChrZXlzT2ZTb3VyY2UpKTtcclxuICByZXR1cm4gWy4uLnVuaXF1ZUtleXNdLnJlZHVjZSgocmV0VmFsLCBrZXkpID0+IHtcclxuICAgIHJldFZhbFtrZXldID0gZGVlcE1lcmdlUmVjdXJzaXZlbHkodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcclxuICAgIHJldHVybiByZXRWYWw7XHJcbiAgfSwge30pO1xyXG59XHJcbiJdfQ==
1
+ import { exists, isArray, isNode, isNullOrUndefined, isObject, isObjectAndNotArrayNotNode, } from './common-utils';
2
+ export function deepMerge(target, source) {
3
+ if (isObjectAndNotArrayNotNode(target) && isObjectAndNotArrayNotNode(source)) {
4
+ return deepMergeRecursively(target, source);
5
+ }
6
+ else if (isNullOrUndefined(target) && isNullOrUndefined(source)) {
7
+ return {};
8
+ }
9
+ else {
10
+ return exists(source) ? source : target;
11
+ }
12
+ }
13
+ function deepMergeRecursively(target, source) {
14
+ const shouldNotRecurse = isNullOrUndefined(target) ||
15
+ isNullOrUndefined(source) || // at least one not defined
16
+ isArray(target) ||
17
+ isArray(source) || // at least one array
18
+ !isObject(target) ||
19
+ !isObject(source) || // at least one not an object
20
+ isNode(target) ||
21
+ isNode(source); // at least one node
22
+ /**
23
+ * if we will not recurse any further,
24
+ * we will prioritize source if it is a defined value.
25
+ */
26
+ if (shouldNotRecurse) {
27
+ return exists(source) ? source : target;
28
+ }
29
+ const keysOfTarget = Object.keys(target);
30
+ const keysOfSource = Object.keys(source);
31
+ const uniqueKeys = new Set(keysOfTarget.concat(keysOfSource));
32
+ return [...uniqueKeys].reduce((retVal, key) => {
33
+ retVal[key] = deepMergeRecursively(target[key], source[key]);
34
+ return retVal;
35
+ }, {});
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUiwwQkFBMEIsR0FDM0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ3RDLElBQUksMEJBQTBCLENBQUMsTUFBTSxDQUFDLElBQUksMEJBQTBCLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDNUUsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDN0M7U0FBTSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2pFLE9BQU8sRUFBRSxDQUFDO0tBQ1g7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztLQUN6QztBQUNILENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNO0lBQzFDLE1BQU0sZ0JBQWdCLEdBQ3BCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSwyQkFBMkI7UUFDeEQsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxxQkFBcUI7UUFDeEMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDZCQUE2QjtRQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBRXRDOzs7T0FHRztJQUNILElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQ3pDO0lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM5RCxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDNUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZXhpc3RzLFxuICBpc0FycmF5LFxuICBpc05vZGUsXG4gIGlzTnVsbE9yVW5kZWZpbmVkLFxuICBpc09iamVjdCxcbiAgaXNPYmplY3RBbmROb3RBcnJheU5vdE5vZGUsXG59IGZyb20gJy4vY29tbW9uLXV0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoaXNPYmplY3RBbmROb3RBcnJheU5vdE5vZGUodGFyZ2V0KSAmJiBpc09iamVjdEFuZE5vdEFycmF5Tm90Tm9kZShzb3VyY2UpKSB7XG4gICAgcmV0dXJuIGRlZXBNZXJnZVJlY3Vyc2l2ZWx5KHRhcmdldCwgc291cmNlKTtcbiAgfSBlbHNlIGlmIChpc051bGxPclVuZGVmaW5lZCh0YXJnZXQpICYmIGlzTnVsbE9yVW5kZWZpbmVkKHNvdXJjZSkpIHtcbiAgICByZXR1cm4ge307XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGV4aXN0cyhzb3VyY2UpID8gc291cmNlIDogdGFyZ2V0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlZXBNZXJnZVJlY3Vyc2l2ZWx5KHRhcmdldCwgc291cmNlKSB7XG4gIGNvbnN0IHNob3VsZE5vdFJlY3Vyc2UgPVxuICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRhcmdldCkgfHxcbiAgICBpc051bGxPclVuZGVmaW5lZChzb3VyY2UpIHx8IC8vIGF0IGxlYXN0IG9uZSBub3QgZGVmaW5lZFxuICAgIGlzQXJyYXkodGFyZ2V0KSB8fFxuICAgIGlzQXJyYXkoc291cmNlKSB8fCAvLyBhdCBsZWFzdCBvbmUgYXJyYXlcbiAgICAhaXNPYmplY3QodGFyZ2V0KSB8fFxuICAgICFpc09iamVjdChzb3VyY2UpIHx8IC8vIGF0IGxlYXN0IG9uZSBub3QgYW4gb2JqZWN0XG4gICAgaXNOb2RlKHRhcmdldCkgfHxcbiAgICBpc05vZGUoc291cmNlKTsgLy8gYXQgbGVhc3Qgb25lIG5vZGVcblxuICAvKipcbiAgICogaWYgd2Ugd2lsbCBub3QgcmVjdXJzZSBhbnkgZnVydGhlcixcbiAgICogd2Ugd2lsbCBwcmlvcml0aXplIHNvdXJjZSBpZiBpdCBpcyBhIGRlZmluZWQgdmFsdWUuXG4gICAqL1xuICBpZiAoc2hvdWxkTm90UmVjdXJzZSkge1xuICAgIHJldHVybiBleGlzdHMoc291cmNlKSA/IHNvdXJjZSA6IHRhcmdldDtcbiAgfVxuXG4gIGNvbnN0IGtleXNPZlRhcmdldCA9IE9iamVjdC5rZXlzKHRhcmdldCk7XG4gIGNvbnN0IGtleXNPZlNvdXJjZSA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIGNvbnN0IHVuaXF1ZUtleXMgPSBuZXcgU2V0KGtleXNPZlRhcmdldC5jb25jYXQoa2V5c09mU291cmNlKSk7XG4gIHJldHVybiBbLi4udW5pcXVlS2V5c10ucmVkdWNlKChyZXRWYWwsIGtleSkgPT4ge1xuICAgIHJldFZhbFtrZXldID0gZGVlcE1lcmdlUmVjdXJzaXZlbHkodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICByZXR1cm4gcmV0VmFsO1xuICB9LCB7fSk7XG59XG4iXX0=