@abp/ng.core 5.0.0-rc.1 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/README.md +3 -3
  2. package/{esm2015/abp-ng.core.js → esm2020/abp-ng.core.mjs} +0 -0
  3. package/{esm2015/lib/abstracts/index.js → esm2020/lib/abstracts/index.mjs} +1 -1
  4. package/{esm2015/lib/abstracts/ng-model.component.js → esm2020/lib/abstracts/ng-model.component.mjs} +4 -4
  5. package/esm2020/lib/components/dynamic-layout.component.mjs +88 -0
  6. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +1 -1
  7. package/{esm2015/lib/components/replaceable-route-container.component.js → esm2020/lib/components/replaceable-route-container.component.mjs} +7 -7
  8. package/{esm2015/lib/components/router-outlet.component.js → esm2020/lib/components/router-outlet.component.mjs} +4 -4
  9. package/{esm2015/lib/constants/different-locales.js → esm2020/lib/constants/different-locales.mjs} +1 -1
  10. package/{esm2015/lib/constants/index.js → esm2020/lib/constants/index.mjs} +1 -1
  11. package/esm2020/lib/core.module.mjs +281 -0
  12. package/{esm2015/lib/directives/autofocus.directive.js → esm2020/lib/directives/autofocus.directive.mjs} +4 -4
  13. package/{esm2015/lib/directives/debounce.directive.js → esm2020/lib/directives/debounce.directive.mjs} +4 -4
  14. package/{esm2015/lib/directives/for.directive.js → esm2020/lib/directives/for.directive.mjs} +4 -4
  15. package/{esm2015/lib/directives/form-submit.directive.js → esm2020/lib/directives/form-submit.directive.mjs} +4 -4
  16. package/{esm2015/lib/directives/index.js → esm2020/lib/directives/index.mjs} +1 -1
  17. package/{esm2015/lib/directives/init.directive.js → esm2020/lib/directives/init.directive.mjs} +4 -4
  18. package/{esm2015/lib/directives/permission.directive.js → esm2020/lib/directives/permission.directive.mjs} +4 -4
  19. package/esm2020/lib/directives/replaceable-template.directive.mjs +126 -0
  20. package/{esm2015/lib/directives/stop-propagation.directive.js → esm2020/lib/directives/stop-propagation.directive.mjs} +4 -4
  21. package/{esm2015/lib/enums/common.js → esm2020/lib/enums/common.mjs} +1 -1
  22. package/{esm2015/lib/enums/index.js → esm2020/lib/enums/index.mjs} +1 -1
  23. package/{esm2015/lib/guards/auth.guard.js → esm2020/lib/guards/auth.guard.mjs} +4 -4
  24. package/{esm2015/lib/guards/index.js → esm2020/lib/guards/index.mjs} +1 -1
  25. package/{esm2015/lib/guards/permission.guard.js → esm2020/lib/guards/permission.guard.mjs} +5 -5
  26. package/{esm2015/lib/handlers/oauth-configuration.handler.js → esm2020/lib/handlers/oauth-configuration.handler.mjs} +4 -4
  27. package/esm2020/lib/handlers/routes.handler.mjs +49 -0
  28. package/esm2020/lib/interceptors/api.interceptor.mjs +54 -0
  29. package/{esm2015/lib/interceptors/index.js → esm2020/lib/interceptors/index.mjs} +1 -1
  30. package/{esm2015/lib/localization.module.js → esm2020/lib/localization.module.mjs} +5 -5
  31. package/{esm2015/lib/models/auth.js → esm2020/lib/models/auth.mjs} +1 -1
  32. package/esm2020/lib/models/common.mjs +2 -0
  33. package/esm2020/lib/models/dtos.mjs +119 -0
  34. package/esm2020/lib/models/environment.mjs +2 -0
  35. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +1 -1
  36. package/{esm2015/lib/models/localization.js → esm2020/lib/models/localization.mjs} +1 -1
  37. package/esm2020/lib/models/replaceable-components.mjs +2 -0
  38. package/esm2020/lib/models/rest.mjs +2 -0
  39. package/{esm2015/lib/models/session.js → esm2020/lib/models/session.mjs} +1 -1
  40. package/esm2020/lib/models/utility.mjs +2 -0
  41. package/{esm2015/lib/pipes/index.js → esm2020/lib/pipes/index.mjs} +2 -1
  42. package/{esm2015/lib/pipes/localization.pipe.js → esm2020/lib/pipes/localization.pipe.mjs} +5 -5
  43. package/{esm2015/lib/pipes/sort.pipe.js → esm2020/lib/pipes/sort.pipe.mjs} +5 -5
  44. package/esm2020/lib/pipes/to-injector.pipe.mjs +29 -0
  45. package/{esm2015/lib/providers/cookie-language.provider.js → esm2020/lib/providers/cookie-language.provider.mjs} +1 -1
  46. package/{esm2015/lib/providers/locale.provider.js → esm2020/lib/providers/locale.provider.mjs} +1 -1
  47. package/{esm2015/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.js → esm2020/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs} +4 -4
  48. package/{esm2015/lib/proxy/pages/abp/multi-tenancy/index.js → esm2020/lib/proxy/pages/abp/multi-tenancy/index.mjs} +1 -1
  49. package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs} +4 -4
  50. package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.mjs} +1 -1
  51. package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs} +4 -4
  52. package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.mjs} +1 -1
  53. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.mjs +2 -0
  54. package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.mjs} +1 -1
  55. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.mjs +3 -0
  56. package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.mjs} +1 -1
  57. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.mjs +2 -0
  58. package/{esm2015/lib/proxy/volo/abp/http/modeling/index.js → esm2020/lib/proxy/volo/abp/http/modeling/index.mjs} +1 -1
  59. package/esm2020/lib/proxy/volo/abp/http/modeling/models.mjs +3 -0
  60. package/{esm2015/lib/proxy/volo/abp/localization/index.js → esm2020/lib/proxy/volo/abp/localization/index.mjs} +1 -1
  61. package/{esm2015/lib/proxy/volo/abp/localization/models.js → esm2020/lib/proxy/volo/abp/localization/models.mjs} +1 -1
  62. package/{esm2015/lib/proxy/volo/abp/models.js → esm2020/lib/proxy/volo/abp/models.mjs} +1 -1
  63. package/esm2020/lib/services/auth.service.mjs +44 -0
  64. package/esm2020/lib/services/config-state.service.mjs +127 -0
  65. package/{esm2015/lib/services/content-projection.service.js → esm2020/lib/services/content-projection.service.mjs} +4 -4
  66. package/{esm2015/lib/services/dom-insertion.service.js → esm2020/lib/services/dom-insertion.service.mjs} +4 -4
  67. package/{esm2015/lib/services/environment.service.js → esm2020/lib/services/environment.service.mjs} +4 -4
  68. package/{esm2015/lib/services/http-error-reporter.service.js → esm2020/lib/services/http-error-reporter.service.mjs} +4 -4
  69. package/{esm2015/lib/services/http-wait.service.js → esm2020/lib/services/http-wait.service.mjs} +4 -4
  70. package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +1 -1
  71. package/{esm2015/lib/services/lazy-load.service.js → esm2020/lib/services/lazy-load.service.mjs} +4 -4
  72. package/{esm2015/lib/services/list.service.js → esm2020/lib/services/list.service.mjs} +4 -4
  73. package/esm2020/lib/services/localization.service.mjs +182 -0
  74. package/{esm2015/lib/services/multi-tenancy.service.js → esm2020/lib/services/multi-tenancy.service.mjs} +4 -4
  75. package/{esm2015/lib/services/permission.service.js → esm2020/lib/services/permission.service.mjs} +5 -6
  76. package/{esm2015/lib/services/replaceable-components.service.js → esm2020/lib/services/replaceable-components.service.mjs} +4 -4
  77. package/{esm2015/lib/services/resource-wait.service.js → esm2020/lib/services/resource-wait.service.mjs} +4 -4
  78. package/esm2020/lib/services/rest.service.mjs +66 -0
  79. package/{esm2015/lib/services/router-events.service.js → esm2020/lib/services/router-events.service.mjs} +4 -4
  80. package/{esm2015/lib/services/router-wait.service.js → esm2020/lib/services/router-wait.service.mjs} +4 -4
  81. package/esm2020/lib/services/routes.service.mjs +145 -0
  82. package/{esm2015/lib/services/session-state.service.js → esm2020/lib/services/session-state.service.mjs} +5 -5
  83. package/{esm2015/lib/services/subscription.service.js → esm2020/lib/services/subscription.service.mjs} +4 -4
  84. package/{esm2015/lib/services/track-by.service.js → esm2020/lib/services/track-by.service.mjs} +4 -4
  85. package/esm2020/lib/strategies/auth-flow.strategy.mjs +190 -0
  86. package/{esm2015/lib/strategies/container.strategy.js → esm2020/lib/strategies/container.strategy.mjs} +1 -1
  87. package/{esm2015/lib/strategies/content-security.strategy.js → esm2020/lib/strategies/content-security.strategy.mjs} +1 -1
  88. package/{esm2015/lib/strategies/content.strategy.js → esm2020/lib/strategies/content.strategy.mjs} +1 -1
  89. package/{esm2015/lib/strategies/context.strategy.js → esm2020/lib/strategies/context.strategy.mjs} +1 -1
  90. package/{esm2015/lib/strategies/cross-origin.strategy.js → esm2020/lib/strategies/cross-origin.strategy.mjs} +1 -1
  91. package/{esm2015/lib/strategies/dom.strategy.js → esm2020/lib/strategies/dom.strategy.mjs} +1 -1
  92. package/{esm2015/lib/strategies/index.js → esm2020/lib/strategies/index.mjs} +1 -1
  93. package/{esm2015/lib/strategies/loading.strategy.js → esm2020/lib/strategies/loading.strategy.mjs} +1 -1
  94. package/{esm2015/lib/strategies/projection.strategy.js → esm2020/lib/strategies/projection.strategy.mjs} +1 -1
  95. package/{esm2015/lib/tokens/app-config.token.js → esm2020/lib/tokens/app-config.token.mjs} +1 -1
  96. package/{esm2015/lib/tokens/cookie-language-key.token.js → esm2020/lib/tokens/cookie-language-key.token.mjs} +1 -1
  97. package/{esm2015/lib/tokens/index.js → esm2020/lib/tokens/index.mjs} +1 -1
  98. package/{esm2015/lib/tokens/list.token.js → esm2020/lib/tokens/list.token.mjs} +1 -1
  99. package/{esm2015/lib/tokens/localization.token.js → esm2020/lib/tokens/localization.token.mjs} +1 -1
  100. package/{esm2015/lib/tokens/lodaer-delay.token.js → esm2020/lib/tokens/lodaer-delay.token.mjs} +1 -1
  101. package/{esm2015/lib/tokens/manage-profile.token.js → esm2020/lib/tokens/manage-profile.token.mjs} +1 -1
  102. package/esm2020/lib/tokens/options.token.mjs +8 -0
  103. package/{esm2015/lib/tokens/tenant-key.token.js → esm2020/lib/tokens/tenant-key.token.mjs} +1 -1
  104. package/esm2020/lib/utils/array-utils.mjs +7 -0
  105. package/{esm2015/lib/utils/auth-utils.js → esm2020/lib/utils/auth-utils.mjs} +1 -1
  106. package/{esm2015/lib/utils/common-utils.js → esm2020/lib/utils/common-utils.mjs} +1 -1
  107. package/{esm2015/lib/utils/date-extensions.js → esm2020/lib/utils/date-extensions.mjs} +1 -1
  108. package/{esm2015/lib/utils/date-utils.js → esm2020/lib/utils/date-utils.mjs} +1 -1
  109. package/{esm2015/lib/utils/environment-utils.js → esm2020/lib/utils/environment-utils.mjs} +1 -1
  110. package/{esm2015/lib/utils/factory-utils.js → esm2020/lib/utils/factory-utils.mjs} +1 -1
  111. package/{esm2015/lib/utils/file-utils.js → esm2020/lib/utils/file-utils.mjs} +1 -1
  112. package/{esm2015/lib/utils/form-utils.js → esm2020/lib/utils/form-utils.mjs} +1 -1
  113. package/{esm2015/lib/utils/generator-utils.js → esm2020/lib/utils/generator-utils.mjs} +1 -1
  114. package/{esm2015/lib/utils/http-utils.js → esm2020/lib/utils/http-utils.mjs} +1 -1
  115. package/{esm2015/lib/utils/index.js → esm2020/lib/utils/index.mjs} +1 -1
  116. package/esm2020/lib/utils/initial-utils.mjs +63 -0
  117. package/esm2020/lib/utils/internal-store-utils.mjs +36 -0
  118. package/{esm2015/lib/utils/lazy-load-utils.js → esm2020/lib/utils/lazy-load-utils.mjs} +1 -1
  119. package/esm2020/lib/utils/localization-utils.mjs +49 -0
  120. package/esm2020/lib/utils/multi-tenancy-utils.mjs +78 -0
  121. package/{esm2015/lib/utils/number-utils.js → esm2020/lib/utils/number-utils.mjs} +1 -1
  122. package/{esm2015/lib/utils/object-utils.js → esm2020/lib/utils/object-utils.mjs} +1 -1
  123. package/esm2020/lib/utils/route-utils.mjs +26 -0
  124. package/esm2020/lib/utils/string-utils.mjs +25 -0
  125. package/{esm2015/lib/utils/tree-utils.js → esm2020/lib/utils/tree-utils.mjs} +1 -1
  126. package/{esm2015/lib/validators/age.validator.js → esm2020/lib/validators/age.validator.mjs} +1 -1
  127. package/{esm2015/lib/validators/credit-card.validator.js → esm2020/lib/validators/credit-card.validator.mjs} +1 -1
  128. package/{esm2015/lib/validators/index.js → esm2020/lib/validators/index.mjs} +1 -1
  129. package/{esm2015/lib/validators/range.validator.js → esm2020/lib/validators/range.validator.mjs} +1 -1
  130. package/{esm2015/lib/validators/required.validator.js → esm2020/lib/validators/required.validator.mjs} +1 -1
  131. package/{esm2015/lib/validators/string-length.validator.js → esm2020/lib/validators/string-length.validator.mjs} +1 -1
  132. package/{esm2015/lib/validators/url.validator.js → esm2020/lib/validators/url.validator.mjs} +1 -1
  133. package/{esm2015/locale/abp-ng.core-locale.js → esm2020/locale/abp-ng.core-locale.mjs} +0 -0
  134. package/{esm2015/locale/public-api.js → esm2020/locale/public-api.mjs} +1 -1
  135. package/esm2020/locale/utils/register-locale.mjs +47 -0
  136. package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
  137. package/{esm2015/testing/abp-ng.core-testing.js → esm2020/testing/abp-ng.core-testing.mjs} +0 -0
  138. package/esm2020/testing/lib/core-testing.module.mjs +63 -0
  139. package/{esm2015/testing/lib/services/index.js → esm2020/testing/lib/services/index.mjs} +1 -1
  140. package/{esm2015/testing/lib/services/mock-permission.service.js → esm2020/testing/lib/services/mock-permission.service.mjs} +4 -4
  141. package/{esm2015/testing/lib/services/mock-rest.service.js → esm2020/testing/lib/services/mock-rest.service.mjs} +4 -4
  142. package/{esm2015/testing/lib/utils/clear-page.util.js → esm2020/testing/lib/utils/clear-page.util.mjs} +1 -1
  143. package/{esm2015/testing/lib/utils/index.js → esm2020/testing/lib/utils/index.mjs} +1 -1
  144. package/{esm2015/testing/lib/utils/wait.util.js → esm2020/testing/lib/utils/wait.util.mjs} +1 -1
  145. package/{esm2015/testing/public-api.js → esm2020/testing/public-api.mjs} +1 -1
  146. package/fesm2015/{abp-ng.core-locale.js → abp-ng.core-locale.mjs} +11 -4
  147. package/fesm2015/abp-ng.core-locale.mjs.map +1 -0
  148. package/fesm2015/{abp-ng.core-testing.js → abp-ng.core-testing.mjs} +18 -16
  149. package/fesm2015/abp-ng.core-testing.mjs.map +1 -0
  150. package/fesm2015/{abp-ng.core.js → abp-ng.core.mjs} +832 -793
  151. package/fesm2015/abp-ng.core.mjs.map +1 -0
  152. package/fesm2020/abp-ng.core-locale.mjs +54 -0
  153. package/fesm2020/abp-ng.core-locale.mjs.map +1 -0
  154. package/fesm2020/abp-ng.core-testing.mjs +140 -0
  155. package/fesm2020/abp-ng.core-testing.mjs.map +1 -0
  156. package/fesm2020/abp-ng.core.mjs +4211 -0
  157. package/fesm2020/abp-ng.core.mjs.map +1 -0
  158. package/lib/core.module.d.ts +9 -8
  159. package/lib/models/rest.d.ts +6 -4
  160. package/lib/pipes/index.d.ts +1 -0
  161. package/lib/pipes/to-injector.pipe.d.ts +10 -0
  162. package/lib/services/environment.service.d.ts +1 -0
  163. package/lib/services/list.service.d.ts +1 -1
  164. package/lib/services/rest.service.d.ts +1 -0
  165. package/lib/services/subscription.service.d.ts +2 -2
  166. package/lib/utils/array-utils.d.ts +1 -1
  167. package/lib/utils/string-utils.d.ts +1 -0
  168. package/lib/utils/tree-utils.d.ts +2 -2
  169. package/locale/package.json +5 -5
  170. package/package.json +37 -8
  171. package/src/lib/proxy/README.md +17 -0
  172. package/testing/package.json +5 -5
  173. package/bundles/abp-ng.core-locale.umd.js +0 -381
  174. package/bundles/abp-ng.core-locale.umd.js.map +0 -1
  175. package/bundles/abp-ng.core-testing.umd.js +0 -494
  176. package/bundles/abp-ng.core-testing.umd.js.map +0 -1
  177. package/bundles/abp-ng.core.umd.js +0 -5269
  178. package/bundles/abp-ng.core.umd.js.map +0 -1
  179. package/esm2015/lib/components/dynamic-layout.component.js +0 -99
  180. package/esm2015/lib/core.module.js +0 -281
  181. package/esm2015/lib/directives/replaceable-template.directive.js +0 -121
  182. package/esm2015/lib/handlers/routes.handler.js +0 -47
  183. package/esm2015/lib/interceptors/api.interceptor.js +0 -54
  184. package/esm2015/lib/models/common.js +0 -2
  185. package/esm2015/lib/models/dtos.js +0 -119
  186. package/esm2015/lib/models/environment.js +0 -2
  187. package/esm2015/lib/models/replaceable-components.js +0 -2
  188. package/esm2015/lib/models/rest.js +0 -2
  189. package/esm2015/lib/models/utility.js +0 -2
  190. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.js +0 -2
  191. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.js +0 -3
  192. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.js +0 -2
  193. package/esm2015/lib/proxy/volo/abp/http/modeling/models.js +0 -3
  194. package/esm2015/lib/services/auth.service.js +0 -47
  195. package/esm2015/lib/services/config-state.service.js +0 -130
  196. package/esm2015/lib/services/localization.service.js +0 -182
  197. package/esm2015/lib/services/rest.service.js +0 -59
  198. package/esm2015/lib/services/routes.service.js +0 -147
  199. package/esm2015/lib/strategies/auth-flow.strategy.js +0 -202
  200. package/esm2015/lib/tokens/options.token.js +0 -8
  201. package/esm2015/lib/utils/array-utils.js +0 -7
  202. package/esm2015/lib/utils/initial-utils.js +0 -64
  203. package/esm2015/lib/utils/internal-store-utils.js +0 -36
  204. package/esm2015/lib/utils/localization-utils.js +0 -50
  205. package/esm2015/lib/utils/multi-tenancy-utils.js +0 -83
  206. package/esm2015/lib/utils/route-utils.js +0 -27
  207. package/esm2015/lib/utils/string-utils.js +0 -21
  208. package/esm2015/locale/utils/register-locale.js +0 -43
  209. package/esm2015/testing/lib/core-testing.module.js +0 -62
  210. package/fesm2015/abp-ng.core-locale.js.map +0 -1
  211. package/fesm2015/abp-ng.core-testing.js.map +0 -1
  212. package/fesm2015/abp-ng.core.js.map +0 -1
@@ -0,0 +1,145 @@
1
+ import { Injectable, Injector } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { pushValueTo } from '../utils/array-utils';
4
+ import { BaseTreeNode, createTreeFromList } from '../utils/tree-utils';
5
+ import { ConfigStateService } from './config-state.service';
6
+ import { PermissionService } from './permission.service';
7
+ import * as i0 from "@angular/core";
8
+ // eslint-disable-next-line @typescript-eslint/ban-types
9
+ export class AbstractTreeService {
10
+ constructor() {
11
+ this._flat$ = new BehaviorSubject([]);
12
+ this._tree$ = new BehaviorSubject([]);
13
+ this._visible$ = new BehaviorSubject([]);
14
+ }
15
+ get flat() {
16
+ return this._flat$.value;
17
+ }
18
+ get flat$() {
19
+ return this._flat$.asObservable();
20
+ }
21
+ get tree() {
22
+ return this._tree$.value;
23
+ }
24
+ get tree$() {
25
+ return this._tree$.asObservable();
26
+ }
27
+ get visible() {
28
+ return this._visible$.value;
29
+ }
30
+ get visible$() {
31
+ return this._visible$.asObservable();
32
+ }
33
+ createTree(items) {
34
+ return createTreeFromList(items, item => item[this.id], item => item[this.parentId], item => BaseTreeNode.create(item));
35
+ }
36
+ filterWith(setOrMap) {
37
+ return this._flat$.value.filter(item => !setOrMap.has(item[this.id]));
38
+ }
39
+ findItemsToRemove(set) {
40
+ return this._flat$.value.reduce((acc, item) => {
41
+ if (!acc.has(item[this.parentId]))
42
+ return acc;
43
+ const childSet = new Set([item[this.id]]);
44
+ const children = this.findItemsToRemove(childSet);
45
+ return new Set([...acc, ...children]);
46
+ }, set);
47
+ }
48
+ publish(flatItems, visibleItems) {
49
+ this._flat$.next(flatItems);
50
+ this._tree$.next(this.createTree(flatItems));
51
+ this._visible$.next(this.createTree(visibleItems));
52
+ return flatItems;
53
+ }
54
+ add(items) {
55
+ const map = new Map();
56
+ items.forEach(item => map.set(item[this.id], item));
57
+ const flatItems = this.filterWith(map);
58
+ map.forEach(pushValueTo(flatItems));
59
+ flatItems.sort(this.sort);
60
+ const visibleItems = flatItems.filter(item => !this.hide(item));
61
+ return this.publish(flatItems, visibleItems);
62
+ }
63
+ find(predicate, tree = this.tree) {
64
+ return tree.reduce((acc, node) => (acc ? acc : predicate(node) ? node : this.find(predicate, node.children)), null);
65
+ }
66
+ patch(identifier, props) {
67
+ const flatItems = this._flat$.value;
68
+ const index = flatItems.findIndex(item => item[this.id] === identifier);
69
+ if (index < 0)
70
+ return false;
71
+ flatItems[index] = { ...flatItems[index], ...props };
72
+ flatItems.sort(this.sort);
73
+ const visibleItems = flatItems.filter(item => !this.hide(item));
74
+ return this.publish(flatItems, visibleItems);
75
+ }
76
+ refresh() {
77
+ return this.add([]);
78
+ }
79
+ remove(identifiers) {
80
+ const set = new Set();
81
+ identifiers.forEach(id => set.add(id));
82
+ const setToRemove = this.findItemsToRemove(set);
83
+ const flatItems = this.filterWith(setToRemove);
84
+ const visibleItems = flatItems.filter(item => !this.hide(item));
85
+ return this.publish(flatItems, visibleItems);
86
+ }
87
+ search(params, tree = this.tree) {
88
+ const searchKeys = Object.keys(params);
89
+ return tree.reduce((acc, node) => acc
90
+ ? acc
91
+ : searchKeys.every(key => node[key] === params[key])
92
+ ? node
93
+ : this.search(params, node.children), null);
94
+ }
95
+ }
96
+ export class AbstractNavTreeService extends AbstractTreeService {
97
+ constructor(injector) {
98
+ super();
99
+ this.injector = injector;
100
+ this.id = 'name';
101
+ this.parentId = 'parentName';
102
+ this.hide = (item) => item.invisible || !this.isGranted(item);
103
+ this.sort = (a, b) => {
104
+ if (!Number.isInteger(a.order))
105
+ return 1;
106
+ if (!Number.isInteger(b.order))
107
+ return -1;
108
+ return a.order - b.order;
109
+ };
110
+ const configState = this.injector.get(ConfigStateService);
111
+ this.subscription = configState
112
+ .createOnUpdateStream(state => state)
113
+ .subscribe(() => this.refresh());
114
+ this.permissionService = injector.get(PermissionService);
115
+ }
116
+ isGranted({ requiredPolicy }) {
117
+ return this.permissionService.getGrantedPolicy(requiredPolicy);
118
+ }
119
+ hasChildren(identifier) {
120
+ const node = this.find(item => item[this.id] === identifier);
121
+ return Boolean(node?.children?.length);
122
+ }
123
+ hasInvisibleChild(identifier) {
124
+ const node = this.find(item => item[this.id] === identifier);
125
+ return node?.children?.some(child => child.invisible);
126
+ }
127
+ /* istanbul ignore next */
128
+ ngOnDestroy() {
129
+ this.subscription.unsubscribe();
130
+ }
131
+ }
132
+ AbstractNavTreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AbstractNavTreeService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
133
+ AbstractNavTreeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AbstractNavTreeService });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AbstractNavTreeService, decorators: [{
135
+ type: Injectable
136
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
137
+ export class RoutesService extends AbstractNavTreeService {
138
+ }
139
+ RoutesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: RoutesService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
140
+ RoutesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: RoutesService, providedIn: 'root' });
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: RoutesService, decorators: [{
142
+ type: Injectable,
143
+ args: [{ providedIn: 'root' }]
144
+ }] });
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvcm91dGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFekQsd0RBQXdEO0FBQ3hELE1BQU0sT0FBZ0IsbUJBQW1CO0lBQXpDO1FBTVUsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7UUFDaEQsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQW9IN0QsQ0FBQztJQWxIQyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJ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a0I7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUM7UUFDN0QsT0FBTyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBa0I7UUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7O21IQTFDbUIsc0JBQXNCO3VIQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEM0MsVUFBVTs7QUErQ1gsTUFBTSxPQUFPLGFBQWMsU0FBUSxzQkFBaUM7OzBHQUF2RCxhQUFhOzhHQUFiLGFBQWEsY0FEQSxNQUFNOzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IHB1c2hWYWx1ZVRvIH0gZnJvbSAnLi4vdXRpbHMvYXJyYXktdXRpbHMnO1xyXG5pbXBvcnQgeyBCYXNlVHJlZU5vZGUsIGNyZWF0ZVRyZWVGcm9tTGlzdCwgVHJlZU5vZGUgfSBmcm9tICcuLi91dGlscy90cmVlLXV0aWxzJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWctc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHJlZVNlcnZpY2U8VCBleHRlbmRzIG9iamVjdD4ge1xyXG4gIGFic3RyYWN0IGlkOiBzdHJpbmc7XHJcbiAgYWJzdHJhY3QgcGFyZW50SWQ6IHN0cmluZztcclxuICBhYnN0cmFjdCBoaWRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbjtcclxuICBhYnN0cmFjdCBzb3J0OiAoYTogVCwgYjogVCkgPT4gbnVtYmVyO1xyXG5cclxuICBwcml2YXRlIF9mbGF0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XHJcbiAgcHJpdmF0ZSBfdHJlZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyZWVOb2RlPFQ+W10+KFtdKTtcclxuICBwcml2YXRlIF92aXNpYmxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGU8VD5bXT4oW10pO1xyXG5cclxuICBnZXQgZmxhdCgpOiBUW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZsYXQkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZsYXQkKCk6IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhdCQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgdHJlZSgpOiBUcmVlTm9kZTxUPltdIHtcclxuICAgIHJldHVybiB0aGlzLl90cmVlJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCB0cmVlJCgpOiBPYnNlcnZhYmxlPFRyZWVOb2RlPFQ+W10+IHtcclxuICAgIHJldHVybiB0aGlzLl90cmVlJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldCB2aXNpYmxlKCk6IFRyZWVOb2RlPFQ+W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZpc2libGUkKCk6IE9ic2VydmFibGU8VHJlZU5vZGU8VD5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZVRyZWUoaXRlbXM6IFRbXSk6IFRyZWVOb2RlPFQ+W10ge1xyXG4gICAgcmV0dXJuIGNyZWF0ZVRyZWVGcm9tTGlzdDxULCBUcmVlTm9kZTxUPj4oXHJcbiAgICAgIGl0ZW1zLFxyXG4gICAgICBpdGVtID0+IGl0ZW1bdGhpcy5pZF0sXHJcbiAgICAgIGl0ZW0gPT4gaXRlbVt0aGlzLnBhcmVudElkXSxcclxuICAgICAgaXRlbSA9PiBCYXNlVHJlZU5vZGUuY3JlYXRlKGl0ZW0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVyV2l0aChzZXRPck1hcDogU2V0PHN0cmluZz4gfCBNYXA8c3RyaW5nLCBUPik6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhdCQudmFsdWUuZmlsdGVyKGl0ZW0gPT4gIXNldE9yTWFwLmhhcyhpdGVtW3RoaXMuaWRdKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRJdGVtc1RvUmVtb3ZlKHNldDogU2V0PHN0cmluZz4pOiBTZXQ8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhdCQudmFsdWUucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcclxuICAgICAgaWYgKCFhY2MuaGFzKGl0ZW1bdGhpcy5wYXJlbnRJZF0pKSByZXR1cm4gYWNjO1xyXG4gICAgICBjb25zdCBjaGlsZFNldCA9IG5ldyBTZXQoW2l0ZW1bdGhpcy5pZF1dKTtcclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmZpbmRJdGVtc1RvUmVtb3ZlKGNoaWxkU2V0KTtcclxuICAgICAgcmV0dXJuIG5ldyBTZXQoWy4uLmFjYywgLi4uY2hpbGRyZW5dKTtcclxuICAgIH0sIHNldCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHB1Ymxpc2goZmxhdEl0ZW1zOiBUW10sIHZpc2libGVJdGVtczogVFtdKTogVFtdIHtcclxuICAgIHRoaXMuX2ZsYXQkLm5leHQoZmxhdEl0ZW1zKTtcclxuICAgIHRoaXMuX3RyZWUkLm5leHQodGhpcy5jcmVhdGVUcmVlKGZsYXRJdGVtcykpO1xyXG4gICAgdGhpcy5fdmlzaWJsZSQubmV4dCh0aGlzLmNyZWF0ZVRyZWUodmlzaWJsZUl0ZW1zKSk7XHJcbiAgICByZXR1cm4gZmxhdEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgYWRkKGl0ZW1zOiBUW10pOiBUW10ge1xyXG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFQ+KCk7XHJcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4gbWFwLnNldChpdGVtW3RoaXMuaWRdLCBpdGVtKSk7XHJcblxyXG4gICAgY29uc3QgZmxhdEl0ZW1zID0gdGhpcy5maWx0ZXJXaXRoKG1hcCk7XHJcbiAgICBtYXAuZm9yRWFjaChwdXNoVmFsdWVUbyhmbGF0SXRlbXMpKTtcclxuXHJcbiAgICBmbGF0SXRlbXMuc29ydCh0aGlzLnNvcnQpO1xyXG4gICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gZmxhdEl0ZW1zLmZpbHRlcihpdGVtID0+ICF0aGlzLmhpZGUoaXRlbSkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnB1Ymxpc2goZmxhdEl0ZW1zLCB2aXNpYmxlSXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZmluZChwcmVkaWNhdGU6IChpdGVtOiBUcmVlTm9kZTxUPikgPT4gYm9vbGVhbiwgdHJlZSA9IHRoaXMudHJlZSk6IFRyZWVOb2RlPFQ+IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdHJlZS5yZWR1Y2UoXHJcbiAgICAgIChhY2MsIG5vZGUpID0+IChhY2MgPyBhY2MgOiBwcmVkaWNhdGUobm9kZSkgPyBub2RlIDogdGhpcy5maW5kKHByZWRpY2F0ZSwgbm9kZS5jaGlsZHJlbikpLFxyXG4gICAgICBudWxsLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHBhdGNoKGlkZW50aWZpZXI6IHN0cmluZywgcHJvcHM6IFBhcnRpYWw8VD4pOiBUW10gfCBmYWxzZSB7XHJcbiAgICBjb25zdCBmbGF0SXRlbXMgPSB0aGlzLl9mbGF0JC52YWx1ZTtcclxuICAgIGNvbnN0IGluZGV4ID0gZmxhdEl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW1bdGhpcy5pZF0gPT09IGlkZW50aWZpZXIpO1xyXG4gICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGZsYXRJdGVtc1tpbmRleF0gPSB7IC4uLmZsYXRJdGVtc1tpbmRleF0sIC4uLnByb3BzIH07XHJcblxyXG4gICAgZmxhdEl0ZW1zLnNvcnQodGhpcy5zb3J0KTtcclxuICAgIGNvbnN0IHZpc2libGVJdGVtcyA9IGZsYXRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhdGhpcy5oaWRlKGl0ZW0pKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wdWJsaXNoKGZsYXRJdGVtcywgdmlzaWJsZUl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKTogVFtdIHtcclxuICAgIHJldHVybiB0aGlzLmFkZChbXSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoaWRlbnRpZmllcnM6IHN0cmluZ1tdKTogVFtdIHtcclxuICAgIGNvbnN0IHNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgaWRlbnRpZmllcnMuZm9yRWFjaChpZCA9PiBzZXQuYWRkKGlkKSk7XHJcblxyXG4gICAgY29uc3Qgc2V0VG9SZW1vdmUgPSB0aGlzLmZpbmRJdGVtc1RvUmVtb3ZlKHNldCk7XHJcbiAgICBjb25zdCBmbGF0SXRlbXMgPSB0aGlzLmZpbHRlcldpdGgoc2V0VG9SZW1vdmUpO1xyXG4gICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gZmxhdEl0ZW1zLmZpbHRlcihpdGVtID0+ICF0aGlzLmhpZGUoaXRlbSkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnB1Ymxpc2goZmxhdEl0ZW1zLCB2aXNpYmxlSXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoKHBhcmFtczogUGFydGlhbDxUPiwgdHJlZSA9IHRoaXMudHJlZSk6IFRyZWVOb2RlPFQ+IHwgbnVsbCB7XHJcbiAgICBjb25zdCBzZWFyY2hLZXlzID0gT2JqZWN0LmtleXMocGFyYW1zKTtcclxuXHJcbiAgICByZXR1cm4gdHJlZS5yZWR1Y2UoXHJcbiAgICAgIChhY2MsIG5vZGUpID0+XHJcbiAgICAgICAgYWNjXHJcbiAgICAgICAgICA/IGFjY1xyXG4gICAgICAgICAgOiBzZWFyY2hLZXlzLmV2ZXJ5KGtleSA9PiBub2RlW2tleV0gPT09IHBhcmFtc1trZXldKVxyXG4gICAgICAgICAgPyBub2RlXHJcbiAgICAgICAgICA6IHRoaXMuc2VhcmNoKHBhcmFtcywgbm9kZS5jaGlsZHJlbiksXHJcbiAgICAgIG51bGwsXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3ROYXZUcmVlU2VydmljZTxUIGV4dGVuZHMgQUJQLk5hdj5cclxuICBleHRlbmRzIEFic3RyYWN0VHJlZVNlcnZpY2U8VD5cclxuICBpbXBsZW1lbnRzIE9uRGVzdHJveVxyXG57XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZTtcclxuICByZWFkb25seSBpZCA9ICduYW1lJztcclxuICByZWFkb25seSBwYXJlbnRJZCA9ICdwYXJlbnROYW1lJztcclxuICByZWFkb25seSBoaWRlID0gKGl0ZW06IFQpID0+IGl0ZW0uaW52aXNpYmxlIHx8ICF0aGlzLmlzR3JhbnRlZChpdGVtKTtcclxuICByZWFkb25seSBzb3J0ID0gKGE6IFQsIGI6IFQpID0+IHtcclxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihhLm9yZGVyKSkgcmV0dXJuIDE7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoYi5vcmRlcikpIHJldHVybiAtMTtcclxuXHJcbiAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXI7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGNvbnN0IGNvbmZpZ1N0YXRlID0gdGhpcy5pbmplY3Rvci5nZXQoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gY29uZmlnU3RhdGVcclxuICAgICAgLmNyZWF0ZU9uVXBkYXRlU3RyZWFtKHN0YXRlID0+IHN0YXRlKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaCgpKTtcclxuICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoUGVybWlzc2lvblNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzR3JhbnRlZCh7IHJlcXVpcmVkUG9saWN5IH06IFQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3kocmVxdWlyZWRQb2xpY3kpO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGRyZW4oaWRlbnRpZmllcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub2RlID0gdGhpcy5maW5kKGl0ZW0gPT4gaXRlbVt0aGlzLmlkXSA9PT0gaWRlbnRpZmllcik7XHJcbiAgICByZXR1cm4gQm9vbGVhbihub2RlPy5jaGlsZHJlbj8ubGVuZ3RoKTtcclxuICB9XHJcblxyXG4gIGhhc0ludmlzaWJsZUNoaWxkKGlkZW50aWZpZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZmluZChpdGVtID0+IGl0ZW1bdGhpcy5pZF0gPT09IGlkZW50aWZpZXIpO1xyXG4gICAgcmV0dXJuIG5vZGU/LmNoaWxkcmVuPy5zb21lKGNoaWxkID0+IGNoaWxkLmludmlzaWJsZSk7XHJcbiAgfVxyXG5cclxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXNTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3ROYXZUcmVlU2VydmljZTxBQlAuUm91dGU+IHt9XHJcbiJdfQ==
@@ -56,7 +56,7 @@ export class SessionStateService {
56
56
  setTenant(tenant) {
57
57
  if (compare(tenant, this.store.state.tenant))
58
58
  return;
59
- this.store.set(Object.assign(Object.assign({}, this.store.state), { tenant }));
59
+ this.store.set({ ...this.store.state, tenant });
60
60
  }
61
61
  setLanguage(language) {
62
62
  if (language === this.store.state.language)
@@ -65,12 +65,12 @@ export class SessionStateService {
65
65
  document.documentElement.setAttribute('lang', language);
66
66
  }
67
67
  }
68
- SessionStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SessionStateService, deps: [{ token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Injectable });
69
- SessionStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SessionStateService, providedIn: 'root' });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SessionStateService, decorators: [{
68
+ SessionStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SessionStateService, deps: [{ token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Injectable });
69
+ SessionStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SessionStateService, providedIn: 'root' });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SessionStateService, decorators: [{
71
71
  type: Injectable,
72
72
  args: [{
73
73
  providedIn: 'root',
74
74
  }]
75
75
  }], ctorParameters: function () { return [{ type: i1.ConfigStateService }]; } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBSzVELE1BQU0sT0FBTyxtQkFBbUI7SUFPOUIsWUFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBTmxDLFVBQUssR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFtQixDQUFDLENBQUM7UUFFeEQsdUJBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQ2hDLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQztRQUdBLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxJQUFJO1FBQ1YsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTztRQUUvQixJQUFJLENBQUMsV0FBVzthQUNiLFFBQVEsQ0FBQyx5Q0FBeUMsQ0FBQzthQUNuRCxJQUFJLENBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUNwQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQjtZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUF3QjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTztRQUVyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsaUNBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUUsTUFBTSxJQUFHLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUVuRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0IsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFELENBQUM7O2lIQTFFVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgY29tcGFyZSBmcm9tICdqdXN0LWNvbXBhcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL21vZGVscy9zZXNzaW9uJztcbmltcG9ydCB7IEN1cnJlbnRUZW5hbnREdG8gfSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL211bHRpLXRlbmFuY3kvbW9kZWxzJztcbmltcG9ydCB7IEludGVybmFsU3RvcmUgfSBmcm9tICcuLi91dGlscy9pbnRlcm5hbC1zdG9yZS11dGlscyc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gbmV3IEludGVybmFsU3RvcmUoe30gYXMgU2Vzc2lvbi5TdGF0ZSk7XG5cbiAgcHJpdmF0ZSB1cGRhdGVMb2NhbFN0b3JhZ2UgPSAoKSA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2FicFNlc3Npb24nLCBKU09OLnN0cmluZ2lmeSh0aGlzLnN0b3JlLnN0YXRlKSk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gICAgdGhpcy5zZXRJbml0aWFsTGFuZ3VhZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICBjb25zdCBzZXNzaW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2FicFNlc3Npb24nKTtcbiAgICBpZiAoc2Vzc2lvbikge1xuICAgICAgdGhpcy5zdG9yZS5zZXQoSlNPTi5wYXJzZShzZXNzaW9uKSk7XG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZS5zbGljZVVwZGF0ZShzdGF0ZSA9PiBzdGF0ZSkuc3Vic2NyaWJlKHRoaXMudXBkYXRlTG9jYWxTdG9yYWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbExhbmd1YWdlKCkge1xuICAgIGlmICh0aGlzLmdldExhbmd1YWdlKCkpIHJldHVybjtcblxuICAgIHRoaXMuY29uZmlnU3RhdGVcbiAgICAgIC5nZXREZWVwJCgnbG9jYWxpemF0aW9uLmN1cnJlbnRDdWx0dXJlLmN1bHR1cmVOYW1lJylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoY3VsdHVyZU5hbWUgPT4gISFjdWx0dXJlTmFtZSksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGxhbmcgPT4ge1xuICAgICAgICBpZiAobGFuZy5pbmNsdWRlcygnOycpKSB7XG4gICAgICAgICAgbGFuZyA9IGxhbmcuc3BsaXQoJzsnKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UobGFuZyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlVXBkYXRlKHN0YXRlID0+IHN0YXRlLmxhbmd1YWdlKTtcbiAgfVxuXG4gIG9uVGVuYW50Q2hhbmdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVVwZGF0ZShzdGF0ZSA9PiBzdGF0ZS50ZW5hbnQpO1xuICB9XG5cbiAgZ2V0TGFuZ3VhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUubGFuZ3VhZ2U7XG4gIH1cblxuICBnZXRMYW5ndWFnZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZS5sYW5ndWFnZSk7XG4gIH1cblxuICBnZXRUZW5hbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUudGVuYW50O1xuICB9XG5cbiAgZ2V0VGVuYW50JCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLnRlbmFudCk7XG4gIH1cblxuICBzZXRUZW5hbnQodGVuYW50OiBDdXJyZW50VGVuYW50RHRvKSB7XG4gICAgaWYgKGNvbXBhcmUodGVuYW50LCB0aGlzLnN0b3JlLnN0YXRlLnRlbmFudCkpIHJldHVybjtcblxuICAgIHRoaXMuc3RvcmUuc2V0KHsgLi4udGhpcy5zdG9yZS5zdGF0ZSwgdGVuYW50IH0pO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIGlmIChsYW5ndWFnZSA9PT0gdGhpcy5zdG9yZS5zdGF0ZS5sYW5ndWFnZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zdG9yZS5wYXRjaCh7IGxhbmd1YWdlIH0pO1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2xhbmcnLCBsYW5ndWFnZSk7XG4gIH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBSzVELE1BQU0sT0FBTyxtQkFBbUI7SUFPOUIsWUFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBTmxDLFVBQUssR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFtQixDQUFDLENBQUM7UUFFeEQsdUJBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQ2hDLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQztRQUdBLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxJQUFJO1FBQ1YsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTztRQUUvQixJQUFJLENBQUMsV0FBVzthQUNiLFFBQVEsQ0FBQyx5Q0FBeUMsQ0FBQzthQUNuRCxJQUFJLENBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUNwQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQjtZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUF3QjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTztRQUVyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRW5ELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMvQixRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7Z0hBMUVVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Nlc3Npb24nO1xyXG5pbXBvcnQgeyBDdXJyZW50VGVuYW50RHRvIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9tdWx0aS10ZW5hbmN5L21vZGVscyc7XHJcbmltcG9ydCB7IEludGVybmFsU3RvcmUgfSBmcm9tICcuLi91dGlscy9pbnRlcm5hbC1zdG9yZS11dGlscyc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4vY29uZmlnLXN0YXRlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdGF0ZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBuZXcgSW50ZXJuYWxTdG9yZSh7fSBhcyBTZXNzaW9uLlN0YXRlKTtcclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVMb2NhbFN0b3JhZ2UgPSAoKSA9PiB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYWJwU2Vzc2lvbicsIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RvcmUuc3RhdGUpKTtcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgdGhpcy5zZXRJbml0aWFsTGFuZ3VhZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdCgpIHtcclxuICAgIGNvbnN0IHNlc3Npb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYWJwU2Vzc2lvbicpO1xyXG4gICAgaWYgKHNlc3Npb24pIHtcclxuICAgICAgdGhpcy5zdG9yZS5zZXQoSlNPTi5wYXJzZShzZXNzaW9uKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdG9yZS5zbGljZVVwZGF0ZShzdGF0ZSA9PiBzdGF0ZSkuc3Vic2NyaWJlKHRoaXMudXBkYXRlTG9jYWxTdG9yYWdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SW5pdGlhbExhbmd1YWdlKCkge1xyXG4gICAgaWYgKHRoaXMuZ2V0TGFuZ3VhZ2UoKSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuY29uZmlnU3RhdGVcclxuICAgICAgLmdldERlZXAkKCdsb2NhbGl6YXRpb24uY3VycmVudEN1bHR1cmUuY3VsdHVyZU5hbWUnKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoY3VsdHVyZU5hbWUgPT4gISFjdWx0dXJlTmFtZSksXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKGxhbmcgPT4ge1xyXG4gICAgICAgIGlmIChsYW5nLmluY2x1ZGVzKCc7JykpIHtcclxuICAgICAgICAgIGxhbmcgPSBsYW5nLnNwbGl0KCc7JylbMF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldExhbmd1YWdlKGxhbmcpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VVcGRhdGUoc3RhdGUgPT4gc3RhdGUubGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgb25UZW5hbnRDaGFuZ2UkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VVcGRhdGUoc3RhdGUgPT4gc3RhdGUudGVuYW50KTtcclxuICB9XHJcblxyXG4gIGdldExhbmd1YWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUubGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICBnZXRMYW5ndWFnZSQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLmxhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIGdldFRlbmFudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlLnRlbmFudDtcclxuICB9XHJcblxyXG4gIGdldFRlbmFudCQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLnRlbmFudCk7XHJcbiAgfVxyXG5cclxuICBzZXRUZW5hbnQodGVuYW50OiBDdXJyZW50VGVuYW50RHRvKSB7XHJcbiAgICBpZiAoY29tcGFyZSh0ZW5hbnQsIHRoaXMuc3RvcmUuc3RhdGUudGVuYW50KSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuc3RvcmUuc2V0KHsgLi4udGhpcy5zdG9yZS5zdGF0ZSwgdGVuYW50IH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgaWYgKGxhbmd1YWdlID09PSB0aGlzLnN0b3JlLnN0YXRlLmxhbmd1YWdlKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5zdG9yZS5wYXRjaCh7IGxhbmd1YWdlIH0pO1xyXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgnbGFuZycsIGxhbmd1YWdlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -33,9 +33,9 @@ export class SubscriptionService {
33
33
  this.subscription = new Subscription();
34
34
  }
35
35
  }
36
- SubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SubscriptionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
- SubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SubscriptionService });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SubscriptionService, decorators: [{
36
+ SubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubscriptionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
+ SubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubscriptionService });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SubscriptionService, decorators: [{
39
39
  type: Injectable
40
40
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUlwQyxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBNEMzQztJQTFDQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFRRCxNQUFNLENBQ0osT0FBc0IsRUFDdEIsY0FBNkMsRUFDN0MsS0FBNEI7UUFFNUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQTZDO1FBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxDQUFDLFlBQTZDO1FBQ3JELElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7O2lIQTVDVSxtQkFBbUI7cUhBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlLCBQYXJ0aWFsT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBnZXQgaXNDbG9zZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uLmNsb3NlZDtcbiAgfVxuXG4gIGFkZE9uZTxUIGV4dGVuZHMgdW5rbm93bj4oXG4gICAgc291cmNlJDogT2JzZXJ2YWJsZTxUPixcbiAgICBuZXh0PzogKHZhbHVlOiBUKSA9PiB2b2lkLFxuICAgIGVycm9yPzogKGVycm9yOiBhbnkpID0+IHZvaWQsXG4gICk6IFN1YnNjcmlwdGlvbjtcbiAgYWRkT25lPFQgZXh0ZW5kcyB1bmtub3duPihzb3VyY2UkOiBPYnNlcnZhYmxlPFQ+LCBvYnNlcnZlcj86IFBhcnRpYWxPYnNlcnZlcjxUPik6IFN1YnNjcmlwdGlvbjtcbiAgYWRkT25lPFQgZXh0ZW5kcyB1bmtub3duPihcbiAgICBzb3VyY2UkOiBPYnNlcnZhYmxlPFQ+LFxuICAgIG5leHRPck9ic2VydmVyPzogUGFydGlhbE9ic2VydmVyPFQ+IHwgTmV4dDxUPixcbiAgICBlcnJvcj86IChlcnJvcjogYW55KSA9PiB2b2lkLFxuICApOiBTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHNvdXJjZSQuc3Vic2NyaWJlKG5leHRPck9ic2VydmVyIGFzIE5leHQ8VD4sIGVycm9yKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgY2xvc2VBbGwoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNsb3NlT25lKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIHRoaXMucmVtb3ZlT25lKHN1YnNjcmlwdGlvbik7XG4gICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcmVtb3ZlT25lKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmICghc3Vic2NyaXB0aW9uKSByZXR1cm47XG4gICAgdGhpcy5zdWJzY3JpcHRpb24ucmVtb3ZlKHN1YnNjcmlwdGlvbik7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICB9XG59XG5cbnR5cGUgTmV4dDxUPiA9ICh2YWx1ZTogVCkgPT4gdm9pZDtcbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUlwQyxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBNEMzQztJQTFDQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFRRCxNQUFNLENBQ0osT0FBc0IsRUFDdEIsY0FBNkMsRUFDN0MsS0FBNEI7UUFFNUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQTZDO1FBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxDQUFDLFlBQTZDO1FBQ3JELElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7O2dIQTVDVSxtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgdHlwZSB7IE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlLCBQYXJ0aWFsT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICBnZXQgaXNDbG9zZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb24uY2xvc2VkO1xyXG4gIH1cclxuXHJcbiAgYWRkT25lPFQ+KFxyXG4gICAgc291cmNlJDogT2JzZXJ2YWJsZTxUPixcclxuICAgIG5leHQ/OiAodmFsdWU6IFQpID0+IHZvaWQsXHJcbiAgICBlcnJvcj86IChlcnJvcjogYW55KSA9PiB2b2lkLFxyXG4gICk6IFN1YnNjcmlwdGlvbjtcclxuICBhZGRPbmU8VD4oc291cmNlJDogT2JzZXJ2YWJsZTxUPiwgb2JzZXJ2ZXI/OiBQYXJ0aWFsT2JzZXJ2ZXI8VD4pOiBTdWJzY3JpcHRpb247XHJcbiAgYWRkT25lPFQ+KFxyXG4gICAgc291cmNlJDogT2JzZXJ2YWJsZTxUPixcclxuICAgIG5leHRPck9ic2VydmVyPzogUGFydGlhbE9ic2VydmVyPFQ+IHwgTmV4dDxUPixcclxuICAgIGVycm9yPzogKGVycm9yOiBhbnkpID0+IHZvaWQsXHJcbiAgKTogU3Vic2NyaXB0aW9uIHtcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHNvdXJjZSQuc3Vic2NyaWJlKG5leHRPck9ic2VydmVyIGFzIE5leHQ8VD4sIGVycm9yKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xyXG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIGNsb3NlQWxsKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlT25lKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xyXG4gICAgdGhpcy5yZW1vdmVPbmUoc3Vic2NyaXB0aW9uKTtcclxuICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlT25lKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xyXG4gICAgaWYgKCFzdWJzY3JpcHRpb24pIHJldHVybjtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnJlbW92ZShzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIE5leHQ8VD4gPSAodmFsdWU6IFQpID0+IHZvaWQ7XHJcbiJdfQ==
@@ -10,12 +10,12 @@ export class TrackByService {
10
10
  this.byDeep = trackByDeep;
11
11
  }
12
12
  }
13
- TrackByService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TrackByService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
- TrackByService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TrackByService, providedIn: 'root' });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TrackByService, decorators: [{
13
+ TrackByService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrackByService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
+ TrackByService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrackByService, providedIn: 'root' });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrackByService, decorators: [{
16
16
  type: Injectable,
17
17
  args: [{
18
18
  providedIn: 'root',
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stYnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90cmFjay1ieS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW1CLE1BQU0sZUFBZSxDQUFDOztBQUc1RCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQ2xCLENBQVUsR0FBWSxFQUFzQixFQUFFLENBQzlDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUN0QjtBQUNFLHdEQUF3RDtBQUN4RCxHQUFHLElBQTJDLEVBQzFCLEVBQUUsQ0FDeEIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBSzlDLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSUUsT0FBRSxHQUFHLE9BQU8sQ0FBQztRQUViLFdBQU0sR0FBRyxXQUFXLENBQUM7S0FDdEI7OzRHQUpZLGNBQWM7Z0hBQWQsY0FBYyxjQUZiLE1BQU07NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE8gfSBmcm9tICd0cy10b29sYmVsdCc7XG5cbmV4cG9ydCBjb25zdCB0cmFja0J5ID1cbiAgPFQgPSBhbnk+KGtleToga2V5b2YgVCk6IFRyYWNrQnlGdW5jdGlvbjxUPiA9PlxuICAoXywgaXRlbSkgPT5cbiAgICBpdGVtW2tleV07XG5cbmV4cG9ydCBjb25zdCB0cmFja0J5RGVlcCA9XG4gIDxUID0gYW55PihcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgIC4uLmtleXM6IFQgZXh0ZW5kcyBvYmplY3QgPyBPLlBhdGhzPFQ+IDogbmV2ZXJcbiAgKTogVHJhY2tCeUZ1bmN0aW9uPFQ+ID0+XG4gIChfLCBpdGVtKSA9PlxuICAgIGtleXMucmVkdWNlKChhY2MsIGtleSkgPT4gYWNjW2tleV0sIGl0ZW0pO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHJhY2tCeVNlcnZpY2U8SXRlbVR5cGUgPSBhbnk+IHtcbiAgYnkgPSB0cmFja0J5O1xuXG4gIGJ5RGVlcCA9IHRyYWNrQnlEZWVwO1xufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stYnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90cmFjay1ieS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW1CLE1BQU0sZUFBZSxDQUFDOztBQUc1RCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQ2xCLENBQVUsR0FBWSxFQUFzQixFQUFFLENBQzlDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUN0QjtBQUNFLHdEQUF3RDtBQUN4RCxHQUFHLElBQTJDLEVBQzFCLEVBQUUsQ0FDeEIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBSzlDLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSUUsT0FBRSxHQUFHLE9BQU8sQ0FBQztRQUViLFdBQU0sR0FBRyxXQUFXLENBQUM7S0FDdEI7OzJHQUpZLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTyB9IGZyb20gJ3RzLXRvb2xiZWx0JztcclxuXHJcbmV4cG9ydCBjb25zdCB0cmFja0J5ID1cclxuICA8VCA9IGFueT4oa2V5OiBrZXlvZiBUKTogVHJhY2tCeUZ1bmN0aW9uPFQ+ID0+XHJcbiAgKF8sIGl0ZW0pID0+XHJcbiAgICBpdGVtW2tleV07XHJcblxyXG5leHBvcnQgY29uc3QgdHJhY2tCeURlZXAgPVxyXG4gIDxUID0gYW55PihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXHJcbiAgICAuLi5rZXlzOiBUIGV4dGVuZHMgb2JqZWN0ID8gTy5QYXRoczxUPiA6IG5ldmVyXHJcbiAgKTogVHJhY2tCeUZ1bmN0aW9uPFQ+ID0+XHJcbiAgKF8sIGl0ZW0pID0+XHJcbiAgICBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IGFjY1trZXldLCBpdGVtKTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFja0J5U2VydmljZTxJdGVtVHlwZSA9IGFueT4ge1xyXG4gIGJ5ID0gdHJhY2tCeTtcclxuXHJcbiAgYnlEZWVwID0gdHJhY2tCeURlZXA7XHJcbn1cclxuIl19
@@ -0,0 +1,190 @@
1
+ import { HttpHeaders } from '@angular/common/http';
2
+ import { Router } from '@angular/router';
3
+ import { OAuthErrorEvent, OAuthInfoEvent, OAuthService } from 'angular-oauth2-oidc';
4
+ import { from, of, pipe } from 'rxjs';
5
+ import { filter, switchMap, tap } from 'rxjs/operators';
6
+ import { ConfigStateService } from '../services/config-state.service';
7
+ import { EnvironmentService } from '../services/environment.service';
8
+ import { HttpErrorReporterService } from '../services/http-error-reporter.service';
9
+ import { SessionStateService } from '../services/session-state.service';
10
+ import { TENANT_KEY } from '../tokens/tenant-key.token';
11
+ import { removeRememberMe, setRememberMe } from '../utils/auth-utils';
12
+ import { noop } from '../utils/common-utils';
13
+ export const oAuthStorage = localStorage;
14
+ export class AuthFlowStrategy {
15
+ constructor(injector) {
16
+ this.injector = injector;
17
+ this.catchError = err => {
18
+ this.httpErrorReporter.reportError(err);
19
+ return of(null);
20
+ };
21
+ this.httpErrorReporter = injector.get(HttpErrorReporterService);
22
+ this.environment = injector.get(EnvironmentService);
23
+ this.configState = injector.get(ConfigStateService);
24
+ this.oAuthService = injector.get(OAuthService);
25
+ this.sessionState = injector.get(SessionStateService);
26
+ this.oAuthConfig = this.environment.getEnvironment().oAuthConfig;
27
+ this.tenantKey = injector.get(TENANT_KEY);
28
+ this.listenToOauthErrors();
29
+ }
30
+ async init() {
31
+ const shouldClear = shouldStorageClear(this.environment.getEnvironment().oAuthConfig.clientId, oAuthStorage);
32
+ if (shouldClear)
33
+ clearOAuthStorage(oAuthStorage);
34
+ this.oAuthService.configure(this.oAuthConfig);
35
+ this.oAuthService.events
36
+ .pipe(filter(event => event.type === 'token_refresh_error'))
37
+ .subscribe(() => this.navigateToLogin());
38
+ return this.oAuthService
39
+ .loadDiscoveryDocument()
40
+ .then(() => {
41
+ if (this.oAuthService.hasValidAccessToken() || !this.oAuthService.getRefreshToken()) {
42
+ return Promise.resolve();
43
+ }
44
+ return this.refreshToken();
45
+ })
46
+ .catch(this.catchError);
47
+ }
48
+ refreshToken() {
49
+ return this.oAuthService.refreshToken().catch(() => clearOAuthStorage());
50
+ }
51
+ listenToOauthErrors() {
52
+ this.oAuthService.events
53
+ .pipe(filter(event => event instanceof OAuthErrorEvent), tap(() => clearOAuthStorage()), switchMap(() => this.configState.refreshAppState()))
54
+ .subscribe();
55
+ }
56
+ }
57
+ export class AuthCodeFlowStrategy extends AuthFlowStrategy {
58
+ constructor() {
59
+ super(...arguments);
60
+ this.isInternalAuth = false;
61
+ }
62
+ async init() {
63
+ return super
64
+ .init()
65
+ .then(() => this.oAuthService.tryLogin().catch(noop))
66
+ .then(() => this.oAuthService.setupAutomaticSilentRefresh({}, 'access_token'));
67
+ }
68
+ navigateToLogin(queryParams) {
69
+ this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));
70
+ }
71
+ checkIfInternalAuth(queryParams) {
72
+ this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));
73
+ return false;
74
+ }
75
+ logout(queryParams) {
76
+ return from(this.oAuthService.revokeTokenAndLogout(this.getCultureParams(queryParams)));
77
+ }
78
+ login(queryParams) {
79
+ this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));
80
+ return of(null);
81
+ }
82
+ getCultureParams(queryParams) {
83
+ const lang = this.sessionState.getLanguage();
84
+ const culture = { culture: lang, 'ui-culture': lang };
85
+ return { ...(lang && culture), ...queryParams };
86
+ }
87
+ }
88
+ export class AuthPasswordFlowStrategy extends AuthFlowStrategy {
89
+ constructor() {
90
+ super(...arguments);
91
+ this.isInternalAuth = true;
92
+ this.cookieKey = 'rememberMe';
93
+ this.storageKey = 'passwordFlow';
94
+ }
95
+ listenToTokenExpiration() {
96
+ this.oAuthService.events
97
+ .pipe(filter(event => event instanceof OAuthInfoEvent &&
98
+ event.type === 'token_expires' &&
99
+ event.info === 'access_token'))
100
+ .subscribe(() => {
101
+ if (this.oAuthService.getRefreshToken()) {
102
+ this.refreshToken();
103
+ }
104
+ else {
105
+ this.oAuthService.logOut();
106
+ removeRememberMe();
107
+ this.configState.refreshAppState().subscribe();
108
+ }
109
+ });
110
+ }
111
+ async init() {
112
+ if (!getCookieValueByName(this.cookieKey) && localStorage.getItem(this.storageKey)) {
113
+ this.oAuthService.logOut();
114
+ }
115
+ return super.init().then(() => this.listenToTokenExpiration());
116
+ }
117
+ navigateToLogin(queryParams) {
118
+ const router = this.injector.get(Router);
119
+ router.navigate(['/account/login'], { queryParams });
120
+ }
121
+ checkIfInternalAuth() {
122
+ return true;
123
+ }
124
+ login(params) {
125
+ const tenant = this.sessionState.getTenant();
126
+ return from(this.oAuthService.fetchTokenUsingPasswordFlow(params.username, params.password, new HttpHeaders({ ...(tenant && tenant.id && { [this.tenantKey]: tenant.id }) }))).pipe(this.pipeToLogin(params));
127
+ }
128
+ pipeToLogin(params) {
129
+ const router = this.injector.get(Router);
130
+ return pipe(switchMap(() => this.configState.refreshAppState()), tap(() => {
131
+ setRememberMe(params.rememberMe);
132
+ if (params.redirectUrl)
133
+ router.navigate([params.redirectUrl]);
134
+ }));
135
+ }
136
+ logout(queryParams) {
137
+ const router = this.injector.get(Router);
138
+ return from(this.oAuthService.revokeTokenAndLogout(queryParams)).pipe(switchMap(() => this.configState.refreshAppState()), tap(() => {
139
+ router.navigateByUrl('/');
140
+ removeRememberMe();
141
+ }));
142
+ }
143
+ refreshToken() {
144
+ return this.oAuthService.refreshToken().catch(() => {
145
+ clearOAuthStorage();
146
+ removeRememberMe();
147
+ });
148
+ }
149
+ }
150
+ export const AUTH_FLOW_STRATEGY = {
151
+ Code(injector) {
152
+ return new AuthCodeFlowStrategy(injector);
153
+ },
154
+ Password(injector) {
155
+ return new AuthPasswordFlowStrategy(injector);
156
+ },
157
+ };
158
+ export function clearOAuthStorage(storage = oAuthStorage) {
159
+ const keys = [
160
+ 'access_token',
161
+ 'id_token',
162
+ 'refresh_token',
163
+ 'nonce',
164
+ 'PKCE_verifier',
165
+ 'expires_at',
166
+ 'id_token_claims_obj',
167
+ 'id_token_expires_at',
168
+ 'id_token_stored_at',
169
+ 'access_token_stored_at',
170
+ 'granted_scopes',
171
+ 'session_state',
172
+ ];
173
+ keys.forEach(key => storage.removeItem(key));
174
+ }
175
+ function shouldStorageClear(clientId, storage) {
176
+ const key = 'abpOAuthClientId';
177
+ if (!storage.getItem(key)) {
178
+ storage.setItem(key, clientId);
179
+ return false;
180
+ }
181
+ const shouldClear = storage.getItem(key) !== clientId;
182
+ if (shouldClear)
183
+ storage.setItem(key, clientId);
184
+ return shouldClear;
185
+ }
186
+ function getCookieValueByName(name) {
187
+ const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
188
+ return match ? match[2] : '';
189
+ }
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1mbG93LnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3N0cmF0ZWdpZXMvYXV0aC1mbG93LnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQVUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUVMLGVBQWUsRUFDZixjQUFjLEVBQ2QsWUFBWSxFQUViLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFnQixnQkFBZ0I7SUFxQnBDLFlBQXNCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFMaEMsZUFBVSxHQUFHLEdBQUcsQ0FBQyxF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O1FBQ1AsZUFBZTtRQUNmLFlBQVk7UUFDWixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLGVBQWU7S0FDaEIsQ0FBQztJQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsUUFBZ0IsRUFBRSxPQUFxQjtJQUNqRSxNQUFNLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztJQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN6QixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDdEQsSUFBSSxXQUFXO1FBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsSUFBWTtJQUN4QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge1xyXG4gIEF1dGhDb25maWcsXHJcbiAgT0F1dGhFcnJvckV2ZW50LFxyXG4gIE9BdXRoSW5mb0V2ZW50LFxyXG4gIE9BdXRoU2VydmljZSxcclxuICBPQXV0aFN0b3JhZ2VcclxufSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHBpcGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTG9naW5QYXJhbXMgfSBmcm9tICcuLi9tb2RlbHMvYXV0aCc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlcG9ydGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2h0dHAtZXJyb3ItcmVwb3J0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZXNzaW9uLXN0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBURU5BTlRfS0VZIH0gZnJvbSAnLi4vdG9rZW5zL3RlbmFudC1rZXkudG9rZW4nO1xyXG5pbXBvcnQgeyByZW1vdmVSZW1lbWJlck1lLCBzZXRSZW1lbWJlck1lIH0gZnJvbSAnLi4vdXRpbHMvYXV0aC11dGlscyc7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi91dGlscy9jb21tb24tdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IG9BdXRoU3RvcmFnZSA9IGxvY2FsU3RvcmFnZTtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdXRoRmxvd1N0cmF0ZWd5IHtcclxuICBhYnN0cmFjdCByZWFkb25seSBpc0ludGVybmFsQXV0aDogYm9vbGVhbjtcclxuXHJcbiAgcHJvdGVjdGVkIGh0dHBFcnJvclJlcG9ydGVyOiBIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIG9BdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCBvQXV0aENvbmZpZzogQXV0aENvbmZpZztcclxuICBwcm90ZWN0ZWQgc2Vzc2lvblN0YXRlOiBTZXNzaW9uU3RhdGVTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCB0ZW5hbnRLZXk6IHN0cmluZztcclxuXHJcbiAgYWJzdHJhY3QgY2hlY2tJZkludGVybmFsQXV0aChxdWVyeVBhcmFtcz86IFBhcmFtcyk6IGJvb2xlYW47XHJcbiAgYWJzdHJhY3QgbmF2aWdhdGVUb0xvZ2luKHF1ZXJ5UGFyYW1zPzogUGFyYW1zKTogdm9pZDtcclxuICBhYnN0cmFjdCBsb2dvdXQocXVlcnlQYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgYWJzdHJhY3QgbG9naW4ocGFyYW1zPzogTG9naW5QYXJhbXMgfCBQYXJhbXMpOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIHByaXZhdGUgY2F0Y2hFcnJvciA9IGVyciA9PiB7XHJcbiAgICB0aGlzLmh0dHBFcnJvclJlcG9ydGVyLnJlcG9ydEVycm9yKGVycik7XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgdGhpcy5odHRwRXJyb3JSZXBvcnRlciA9IGluamVjdG9yLmdldChIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UpO1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGluamVjdG9yLmdldChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG4gICAgdGhpcy5jb25maWdTdGF0ZSA9IGluamVjdG9yLmdldChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gICAgdGhpcy5vQXV0aFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoT0F1dGhTZXJ2aWNlKTtcclxuICAgIHRoaXMuc2Vzc2lvblN0YXRlID0gaW5qZWN0b3IuZ2V0KFNlc3Npb25TdGF0ZVNlcnZpY2UpO1xyXG4gICAgdGhpcy5vQXV0aENvbmZpZyA9IHRoaXMuZW52aXJvbm1lbnQuZ2V0RW52aXJvbm1lbnQoKS5vQXV0aENvbmZpZztcclxuICAgIHRoaXMudGVuYW50S2V5ID0gaW5qZWN0b3IuZ2V0KFRFTkFOVF9LRVkpO1xyXG5cclxuICAgIHRoaXMubGlzdGVuVG9PYXV0aEVycm9ycygpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgaW5pdCgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3Qgc2hvdWxkQ2xlYXIgPSBzaG91bGRTdG9yYWdlQ2xlYXIoXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQuZ2V0RW52aXJvbm1lbnQoKS5vQXV0aENvbmZpZy5jbGllbnRJZCxcclxuICAgICAgb0F1dGhTdG9yYWdlLFxyXG4gICAgKTtcclxuICAgIGlmIChzaG91bGRDbGVhcikgY2xlYXJPQXV0aFN0b3JhZ2Uob0F1dGhTdG9yYWdlKTtcclxuXHJcbiAgICB0aGlzLm9BdXRoU2VydmljZS5jb25maWd1cmUodGhpcy5vQXV0aENvbmZpZyk7XHJcblxyXG4gICAgdGhpcy5vQXV0aFNlcnZpY2UuZXZlbnRzXHJcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudC50eXBlID09PSAndG9rZW5fcmVmcmVzaF9lcnJvcicpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubmF2aWdhdGVUb0xvZ2luKCkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZVxyXG4gICAgICAubG9hZERpc2NvdmVyeURvY3VtZW50KClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9BdXRoU2VydmljZS5oYXNWYWxpZEFjY2Vzc1Rva2VuKCkgfHwgIXRoaXMub0F1dGhTZXJ2aWNlLmdldFJlZnJlc2hUb2tlbigpKSB7XHJcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW4oKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKHRoaXMuY2F0Y2hFcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVmcmVzaFRva2VuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub0F1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbigpLmNhdGNoKCgpID0+IGNsZWFyT0F1dGhTdG9yYWdlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGxpc3RlblRvT2F1dGhFcnJvcnMoKSB7XHJcbiAgICB0aGlzLm9BdXRoU2VydmljZS5ldmVudHNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgT0F1dGhFcnJvckV2ZW50KSxcclxuICAgICAgICB0YXAoKCkgPT4gY2xlYXJPQXV0aFN0b3JhZ2UoKSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlnU3RhdGUucmVmcmVzaEFwcFN0YXRlKCkpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoQ29kZUZsb3dTdHJhdGVneSBleHRlbmRzIEF1dGhGbG93U3RyYXRlZ3kge1xyXG4gIHJlYWRvbmx5IGlzSW50ZXJuYWxBdXRoID0gZmFsc2U7XHJcblxyXG4gIGFzeW5jIGluaXQoKSB7XHJcbiAgICByZXR1cm4gc3VwZXJcclxuICAgICAgLmluaXQoKVxyXG4gICAgICAudGhlbigoKSA9PiB0aGlzLm9BdXRoU2VydmljZS50cnlMb2dpbigpLmNhdGNoKG5vb3ApKVxyXG4gICAgICAudGhlbigoKSA9PiB0aGlzLm9BdXRoU2VydmljZS5zZXR1cEF1dG9tYXRpY1NpbGVudFJlZnJlc2goe30sICdhY2Nlc3NfdG9rZW4nKSk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvTG9naW4ocXVlcnlQYXJhbXM/OiBQYXJhbXMpIHtcclxuICAgIHRoaXMub0F1dGhTZXJ2aWNlLmluaXRDb2RlRmxvdygnJywgdGhpcy5nZXRDdWx0dXJlUGFyYW1zKHF1ZXJ5UGFyYW1zKSk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lmSW50ZXJuYWxBdXRoKHF1ZXJ5UGFyYW1zPzogUGFyYW1zKSB7XHJcbiAgICB0aGlzLm9BdXRoU2VydmljZS5pbml0Q29kZUZsb3coJycsIHRoaXMuZ2V0Q3VsdHVyZVBhcmFtcyhxdWVyeVBhcmFtcykpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KHF1ZXJ5UGFyYW1zPzogUGFyYW1zKSB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLm9BdXRoU2VydmljZS5yZXZva2VUb2tlbkFuZExvZ291dCh0aGlzLmdldEN1bHR1cmVQYXJhbXMocXVlcnlQYXJhbXMpKSk7XHJcbiAgfVxyXG5cclxuICBsb2dpbihxdWVyeVBhcmFtcz86IFBhcmFtcykge1xyXG4gICAgdGhpcy5vQXV0aFNlcnZpY2UuaW5pdENvZGVGbG93KCcnLCB0aGlzLmdldEN1bHR1cmVQYXJhbXMocXVlcnlQYXJhbXMpKTtcclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q3VsdHVyZVBhcmFtcyhxdWVyeVBhcmFtcz86IFBhcmFtcykge1xyXG4gICAgY29uc3QgbGFuZyA9IHRoaXMuc2Vzc2lvblN0YXRlLmdldExhbmd1YWdlKCk7XHJcbiAgICBjb25zdCBjdWx0dXJlID0geyBjdWx0dXJlOiBsYW5nLCAndWktY3VsdHVyZSc6IGxhbmcgfTtcclxuICAgIHJldHVybiB7IC4uLihsYW5nICYmIGN1bHR1cmUpLCAuLi5xdWVyeVBhcmFtcyB9O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhQYXNzd29yZEZsb3dTdHJhdGVneSBleHRlbmRzIEF1dGhGbG93U3RyYXRlZ3kge1xyXG4gIHJlYWRvbmx5IGlzSW50ZXJuYWxBdXRoID0gdHJ1ZTtcclxuICBwcml2YXRlIGNvb2tpZUtleSA9ICdyZW1lbWJlck1lJztcclxuICBwcml2YXRlIHN0b3JhZ2VLZXkgPSAncGFzc3dvcmRGbG93JztcclxuXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub1Rva2VuRXhwaXJhdGlvbigpIHtcclxuICAgIHRoaXMub0F1dGhTZXJ2aWNlLmV2ZW50c1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICBldmVudCA9PlxyXG4gICAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE9BdXRoSW5mb0V2ZW50ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LnR5cGUgPT09ICd0b2tlbl9leHBpcmVzJyAmJlxyXG4gICAgICAgICAgICBldmVudC5pbmZvID09PSAnYWNjZXNzX3Rva2VuJyxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9BdXRoU2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKSkge1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5vQXV0aFNlcnZpY2UubG9nT3V0KCk7XHJcbiAgICAgICAgICByZW1vdmVSZW1lbWJlck1lKCk7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ1N0YXRlLnJlZnJlc2hBcHBTdGF0ZSgpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBpbml0KCkge1xyXG4gICAgaWYgKCFnZXRDb29raWVWYWx1ZUJ5TmFtZSh0aGlzLmNvb2tpZUtleSkgJiYgbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KSkge1xyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS5sb2dPdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3VwZXIuaW5pdCgpLnRoZW4oKCkgPT4gdGhpcy5saXN0ZW5Ub1Rva2VuRXhwaXJhdGlvbigpKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Mb2dpbihxdWVyeVBhcmFtcz86IFBhcmFtcykge1xyXG4gICAgY29uc3Qgcm91dGVyID0gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKTtcclxuICAgIHJvdXRlci5uYXZpZ2F0ZShbJy9hY2NvdW50L2xvZ2luJ10sIHsgcXVlcnlQYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lmSW50ZXJuYWxBdXRoKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBsb2dpbihwYXJhbXM6IExvZ2luUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHRlbmFudCA9IHRoaXMuc2Vzc2lvblN0YXRlLmdldFRlbmFudCgpO1xyXG5cclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS5mZXRjaFRva2VuVXNpbmdQYXNzd29yZEZsb3coXHJcbiAgICAgICAgcGFyYW1zLnVzZXJuYW1lLFxyXG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCxcclxuICAgICAgICBuZXcgSHR0cEhlYWRlcnMoeyAuLi4odGVuYW50ICYmIHRlbmFudC5pZCAmJiB7IFt0aGlzLnRlbmFudEtleV06IHRlbmFudC5pZCB9KSB9KSxcclxuICAgICAgKSxcclxuICAgICkucGlwZSh0aGlzLnBpcGVUb0xvZ2luKHBhcmFtcykpO1xyXG4gIH1cclxuXHJcbiAgcGlwZVRvTG9naW4ocGFyYW1zOiBQaWNrPExvZ2luUGFyYW1zLCAncmVkaXJlY3RVcmwnIHwgJ3JlbWVtYmVyTWUnPikge1xyXG4gICAgY29uc3Qgcm91dGVyID0gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKTtcclxuXHJcbiAgICByZXR1cm4gcGlwZShcclxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlnU3RhdGUucmVmcmVzaEFwcFN0YXRlKCkpLFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIHNldFJlbWVtYmVyTWUocGFyYW1zLnJlbWVtYmVyTWUpO1xyXG4gICAgICAgIGlmIChwYXJhbXMucmVkaXJlY3RVcmwpIHJvdXRlci5uYXZpZ2F0ZShbcGFyYW1zLnJlZGlyZWN0VXJsXSk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvZ291dChxdWVyeVBhcmFtcz86IFBhcmFtcykge1xyXG4gICAgY29uc3Qgcm91dGVyID0gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKTtcclxuXHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLm9BdXRoU2VydmljZS5yZXZva2VUb2tlbkFuZExvZ291dChxdWVyeVBhcmFtcykpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNvbmZpZ1N0YXRlLnJlZnJlc2hBcHBTdGF0ZSgpKSxcclxuICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICByb3V0ZXIubmF2aWdhdGVCeVVybCgnLycpO1xyXG4gICAgICAgIHJlbW92ZVJlbWVtYmVyTWUoKTtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlZnJlc2hUb2tlbigpIHtcclxuICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZS5yZWZyZXNoVG9rZW4oKS5jYXRjaCgoKSA9PiB7XHJcbiAgICAgIGNsZWFyT0F1dGhTdG9yYWdlKCk7XHJcbiAgICAgIHJlbW92ZVJlbWVtYmVyTWUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEFVVEhfRkxPV19TVFJBVEVHWSA9IHtcclxuICBDb2RlKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgcmV0dXJuIG5ldyBBdXRoQ29kZUZsb3dTdHJhdGVneShpbmplY3Rvcik7XHJcbiAgfSxcclxuICBQYXNzd29yZChpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHJldHVybiBuZXcgQXV0aFBhc3N3b3JkRmxvd1N0cmF0ZWd5KGluamVjdG9yKTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyT0F1dGhTdG9yYWdlKHN0b3JhZ2U6IE9BdXRoU3RvcmFnZSA9IG9BdXRoU3RvcmFnZSkge1xyXG4gIGNvbnN0IGtleXMgPSBbXHJcbiAgICAnYWNjZXNzX3Rva2VuJyxcclxuICAgICdpZF90b2tlbicsXHJcbiAgICAncmVmcmVzaF90b2tlbicsXHJcbiAgICAnbm9uY2UnLFxyXG4gICAgJ1BLQ0VfdmVyaWZpZXInLFxyXG4gICAgJ2V4cGlyZXNfYXQnLFxyXG4gICAgJ2lkX3Rva2VuX2NsYWltc19vYmonLFxyXG4gICAgJ2lkX3Rva2VuX2V4cGlyZXNfYXQnLFxyXG4gICAgJ2lkX3Rva2VuX3N0b3JlZF9hdCcsXHJcbiAgICAnYWNjZXNzX3Rva2VuX3N0b3JlZF9hdCcsXHJcbiAgICAnZ3JhbnRlZF9zY29wZXMnLFxyXG4gICAgJ3Nlc3Npb25fc3RhdGUnLFxyXG4gIF07XHJcblxyXG4gIGtleXMuZm9yRWFjaChrZXkgPT4gc3RvcmFnZS5yZW1vdmVJdGVtKGtleSkpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaG91bGRTdG9yYWdlQ2xlYXIoY2xpZW50SWQ6IHN0cmluZywgc3RvcmFnZTogT0F1dGhTdG9yYWdlKTogYm9vbGVhbiB7XHJcbiAgY29uc3Qga2V5ID0gJ2FicE9BdXRoQ2xpZW50SWQnO1xyXG4gIGlmICghc3RvcmFnZS5nZXRJdGVtKGtleSkpIHtcclxuICAgIHN0b3JhZ2Uuc2V0SXRlbShrZXksIGNsaWVudElkKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNob3VsZENsZWFyID0gc3RvcmFnZS5nZXRJdGVtKGtleSkgIT09IGNsaWVudElkO1xyXG4gIGlmIChzaG91bGRDbGVhcikgc3RvcmFnZS5zZXRJdGVtKGtleSwgY2xpZW50SWQpO1xyXG4gIHJldHVybiBzaG91bGRDbGVhcjtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q29va2llVmFsdWVCeU5hbWUobmFtZTogc3RyaW5nKSB7XHJcbiAgY29uc3QgbWF0Y2ggPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgnKF58ICknICsgbmFtZSArICc9KFteO10rKScpKTtcclxuICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsyXSA6ICcnO1xyXG59XHJcbiJdfQ==
@@ -35,4 +35,4 @@ export const CONTAINER_STRATEGY = {
35
35
  return new InsertIntoContainerStrategy(containerRef, index);
36
36
  },
37
37
  };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3N0cmF0ZWdpZXMvY29udGFpbmVyLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBZ0IsaUJBQWlCO0lBQ3JDLFlBQW1CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUFHLENBQUM7SUFJckQsT0FBTyxLQUFVLENBQUM7Q0FDbkI7QUFFRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsaUJBQWlCO0lBQzNELFFBQVE7UUFDTixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsaUJBQWlCO0lBQ2hFLFlBQVksWUFBOEIsRUFBVSxLQUFhO1FBQy9ELEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUQ4QixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBRWpFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLEtBQUssQ0FBQyxZQUE4QjtRQUNsQyxPQUFPLElBQUksc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUE4QjtRQUNuQyxPQUFPLElBQUksMkJBQTJCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsT0FBTyxDQUFDLFlBQThCO1FBQ3BDLE9BQU8sSUFBSSwyQkFBMkIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUE4QixFQUFFLEtBQWE7UUFDbEQsT0FBTyxJQUFJLDJCQUEyQixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnRhaW5lclN0cmF0ZWd5IHtcbiAgY29uc3RydWN0b3IocHVibGljIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBhYnN0cmFjdCBnZXRJbmRleCgpOiBudW1iZXI7XG5cbiAgcHJlcGFyZSgpOiB2b2lkIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhckNvbnRhaW5lclN0cmF0ZWd5IGV4dGVuZHMgQ29udGFpbmVyU3RyYXRlZ3kge1xuICBnZXRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJlcGFyZSgpIHtcbiAgICB0aGlzLmNvbnRhaW5lclJlZi5jbGVhcigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnNlcnRJbnRvQ29udGFpbmVyU3RyYXRlZ3kgZXh0ZW5kcyBDb250YWluZXJTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmRleDogbnVtYmVyKSB7XG4gICAgc3VwZXIoY29udGFpbmVyUmVmKTtcbiAgfVxuXG4gIGdldEluZGV4KCkge1xuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCgwLCB0aGlzLmluZGV4KSwgdGhpcy5jb250YWluZXJSZWYubGVuZ3RoKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQ09OVEFJTkVSX1NUUkFURUdZID0ge1xuICBDbGVhcihjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICByZXR1cm4gbmV3IENsZWFyQ29udGFpbmVyU3RyYXRlZ3koY29udGFpbmVyUmVmKTtcbiAgfSxcbiAgQXBwZW5kKGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHJldHVybiBuZXcgSW5zZXJ0SW50b0NvbnRhaW5lclN0cmF0ZWd5KGNvbnRhaW5lclJlZiwgY29udGFpbmVyUmVmLmxlbmd0aCk7XG4gIH0sXG4gIFByZXBlbmQoY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgcmV0dXJuIG5ldyBJbnNlcnRJbnRvQ29udGFpbmVyU3RyYXRlZ3koY29udGFpbmVyUmVmLCAwKTtcbiAgfSxcbiAgSW5zZXJ0KGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgSW5zZXJ0SW50b0NvbnRhaW5lclN0cmF0ZWd5KGNvbnRhaW5lclJlZiwgaW5kZXgpO1xuICB9LFxufTtcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3N0cmF0ZWdpZXMvY29udGFpbmVyLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBZ0IsaUJBQWlCO0lBQ3JDLFlBQW1CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUFHLENBQUM7SUFJckQsT0FBTyxLQUFVLENBQUM7Q0FDbkI7QUFFRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsaUJBQWlCO0lBQzNELFFBQVE7UUFDTixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsaUJBQWlCO0lBQ2hFLFlBQVksWUFBOEIsRUFBVSxLQUFhO1FBQy9ELEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUQ4QixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBRWpFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLEtBQUssQ0FBQyxZQUE4QjtRQUNsQyxPQUFPLElBQUksc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUE4QjtRQUNuQyxPQUFPLElBQUksMkJBQTJCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsT0FBTyxDQUFDLFlBQThCO1FBQ3BDLE9BQU8sSUFBSSwyQkFBMkIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUE4QixFQUFFLEtBQWE7UUFDbEQsT0FBTyxJQUFJLDJCQUEyQixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250YWluZXJTdHJhdGVneSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cclxuXHJcbiAgYWJzdHJhY3QgZ2V0SW5kZXgoKTogbnVtYmVyO1xyXG5cclxuICBwcmVwYXJlKCk6IHZvaWQge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsZWFyQ29udGFpbmVyU3RyYXRlZ3kgZXh0ZW5kcyBDb250YWluZXJTdHJhdGVneSB7XHJcbiAgZ2V0SW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgcHJlcGFyZSgpIHtcclxuICAgIHRoaXMuY29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW5zZXJ0SW50b0NvbnRhaW5lclN0cmF0ZWd5IGV4dGVuZHMgQ29udGFpbmVyU3RyYXRlZ3kge1xyXG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBzdXBlcihjb250YWluZXJSZWYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5kZXgoKSB7XHJcbiAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoMCwgdGhpcy5pbmRleCksIHRoaXMuY29udGFpbmVyUmVmLmxlbmd0aCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ09OVEFJTkVSX1NUUkFURUdZID0ge1xyXG4gIENsZWFyKGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgcmV0dXJuIG5ldyBDbGVhckNvbnRhaW5lclN0cmF0ZWd5KGNvbnRhaW5lclJlZik7XHJcbiAgfSxcclxuICBBcHBlbmQoY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICByZXR1cm4gbmV3IEluc2VydEludG9Db250YWluZXJTdHJhdGVneShjb250YWluZXJSZWYsIGNvbnRhaW5lclJlZi5sZW5ndGgpO1xyXG4gIH0sXHJcbiAgUHJlcGVuZChjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIHJldHVybiBuZXcgSW5zZXJ0SW50b0NvbnRhaW5lclN0cmF0ZWd5KGNvbnRhaW5lclJlZiwgMCk7XHJcbiAgfSxcclxuICBJbnNlcnQoY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbmV3IEluc2VydEludG9Db250YWluZXJTdHJhdGVneShjb250YWluZXJSZWYsIGluZGV4KTtcclxuICB9LFxyXG59O1xyXG4iXX0=
@@ -25,4 +25,4 @@ export const CONTENT_SECURITY_STRATEGY = {
25
25
  return new NoContentSecurityStrategy();
26
26
  },
27
27
  };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zZWN1cml0eS5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRlbnQtc2VjdXJpdHkuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQix1QkFBdUI7SUFDM0MsWUFBbUIsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBRyxDQUFDO0NBR3RDO0FBRUQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUF1QjtJQUN2RSxZQUFZLEtBQWE7UUFDdkIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUE2QztRQUNwRCxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUNwRTtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUF1QyxJQUFHLENBQUM7Q0FDckQ7QUFFRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxLQUFLLENBQUMsS0FBYTtRQUNqQixPQUFPLElBQUksNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELElBQUk7UUFDRixPQUFPLElBQUkseUJBQXlCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZW50U2VjdXJpdHlTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBub25jZT86IHN0cmluZykge31cblxuICBhYnN0cmFjdCBhcHBseUNTUChlbGVtZW50OiBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgTG9vc2VDb250ZW50U2VjdXJpdHlTdHJhdGVneSBleHRlbmRzIENvbnRlbnRTZWN1cml0eVN0cmF0ZWd5IHtcbiAgY29uc3RydWN0b3Iobm9uY2U6IHN0cmluZykge1xuICAgIHN1cGVyKG5vbmNlKTtcbiAgfVxuXG4gIGFwcGx5Q1NQKGVsZW1lbnQ6IEhUTUxTY3JpcHRFbGVtZW50IHwgSFRNTFN0eWxlRWxlbWVudCkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdub25jZScsIHRoaXMubm9uY2UpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb0NvbnRlbnRTZWN1cml0eVN0cmF0ZWd5IGV4dGVuZHMgQ29udGVudFNlY3VyaXR5U3RyYXRlZ3kge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgYXBwbHlDU1AoXzogSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MU3R5bGVFbGVtZW50KSB7fVxufVxuXG5leHBvcnQgY29uc3QgQ09OVEVOVF9TRUNVUklUWV9TVFJBVEVHWSA9IHtcbiAgTG9vc2Uobm9uY2U6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgTG9vc2VDb250ZW50U2VjdXJpdHlTdHJhdGVneShub25jZSk7XG4gIH0sXG4gIE5vbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBOb0NvbnRlbnRTZWN1cml0eVN0cmF0ZWd5KCk7XG4gIH0sXG59O1xuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zZWN1cml0eS5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRlbnQtc2VjdXJpdHkuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQix1QkFBdUI7SUFDM0MsWUFBbUIsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBRyxDQUFDO0NBR3RDO0FBRUQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUF1QjtJQUN2RSxZQUFZLEtBQWE7UUFDdkIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUE2QztRQUNwRCxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUNwRTtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUF1QyxJQUFHLENBQUM7Q0FDckQ7QUFFRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxLQUFLLENBQUMsS0FBYTtRQUNqQixPQUFPLElBQUksNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELElBQUk7UUFDRixPQUFPLElBQUkseUJBQXlCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZW50U2VjdXJpdHlTdHJhdGVneSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG5vbmNlPzogc3RyaW5nKSB7fVxyXG5cclxuICBhYnN0cmFjdCBhcHBseUNTUChlbGVtZW50OiBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9vc2VDb250ZW50U2VjdXJpdHlTdHJhdGVneSBleHRlbmRzIENvbnRlbnRTZWN1cml0eVN0cmF0ZWd5IHtcclxuICBjb25zdHJ1Y3Rvcihub25jZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihub25jZSk7XHJcbiAgfVxyXG5cclxuICBhcHBseUNTUChlbGVtZW50OiBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQpIHtcclxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdub25jZScsIHRoaXMubm9uY2UpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5vQ29udGVudFNlY3VyaXR5U3RyYXRlZ3kgZXh0ZW5kcyBDb250ZW50U2VjdXJpdHlTdHJhdGVneSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlDU1AoXzogSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MU3R5bGVFbGVtZW50KSB7fVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ09OVEVOVF9TRUNVUklUWV9TVFJBVEVHWSA9IHtcclxuICBMb29zZShub25jZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IExvb3NlQ29udGVudFNlY3VyaXR5U3RyYXRlZ3kobm9uY2UpO1xyXG4gIH0sXHJcbiAgTm9uZSgpIHtcclxuICAgIHJldHVybiBuZXcgTm9Db250ZW50U2VjdXJpdHlTdHJhdGVneSgpO1xyXG4gIH0sXHJcbn07XHJcbiJdfQ==
@@ -45,4 +45,4 @@ export const CONTENT_STRATEGY = {
45
45
  return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);
46
46
  },
47
47
  };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRlbnQuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQix5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0zRCxNQUFNLE9BQWdCLGVBQWU7SUFDbkMsWUFDUyxPQUFlLEVBQ1osY0FBMkIsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUN0RCwwQkFBbUQseUJBQXlCLENBQUMsSUFBSSxFQUFFLEVBQ25GLFVBQTZCLEVBQUU7UUFIbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUEyQztRQUN0RCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQTREO1FBQ25GLFlBQU8sR0FBUCxPQUFPLENBQXdCO0lBQ3hDLENBQUM7SUFJSixhQUFhO1FBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBaUM7SUFDekUsYUFBYTtRQUNYLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRW5DLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFrQztJQUMzRSxhQUFhO1FBQ1gsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFbkMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsa0JBQWtCLENBQUMsT0FBZSxFQUFFLE9BQTJDO1FBQzdFLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBZSxFQUFFLE9BQTJDO1FBQzdFLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsT0FBZSxFQUFFLE9BQTBDO1FBQzNFLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBZSxFQUFFLE9BQTBDO1FBQzVFLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRTZWN1cml0eVN0cmF0ZWd5LCBDT05URU5UX1NFQ1VSSVRZX1NUUkFURUdZIH0gZnJvbSAnLi9jb250ZW50LXNlY3VyaXR5LnN0cmF0ZWd5JztcbmltcG9ydCB7IERvbVN0cmF0ZWd5LCBET01fU1RSQVRFR1kgfSBmcm9tICcuL2RvbS5zdHJhdGVneSc7XG5cbmV4cG9ydCB0eXBlIEVsZW1lbnRPcHRpb25zPFQgZXh0ZW5kcyBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQgPSBhbnk+ID0gUGFydGlhbDx7XG4gIFtrZXkgaW4ga2V5b2YgVF06IFRba2V5XTtcbn0+O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29udGVudFN0cmF0ZWd5PFQgZXh0ZW5kcyBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRlbnQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgZG9tU3RyYXRlZ3k6IERvbVN0cmF0ZWd5ID0gRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLFxuICAgIHByb3RlY3RlZCBjb250ZW50U2VjdXJpdHlTdHJhdGVneTogQ29udGVudFNlY3VyaXR5U3RyYXRlZ3kgPSBDT05URU5UX1NFQ1VSSVRZX1NUUkFURUdZLk5vbmUoKSxcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogRWxlbWVudE9wdGlvbnM8VD4gPSB7fSxcbiAgKSB7fVxuXG4gIGFic3RyYWN0IGNyZWF0ZUVsZW1lbnQoKTogVDtcblxuICBpbnNlcnRFbGVtZW50KCk6IFQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNyZWF0ZUVsZW1lbnQoKTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgT2JqZWN0LmtleXModGhpcy5vcHRpb25zKS5sZW5ndGggPiAwKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMpLmZvckVhY2goa2V5ID0+IChlbGVtZW50W2tleV0gPSB0aGlzLm9wdGlvbnNba2V5XSkpO1xuICAgIH1cblxuICAgIHRoaXMuY29udGVudFNlY3VyaXR5U3RyYXRlZ3kuYXBwbHlDU1AoZWxlbWVudCk7XG4gICAgdGhpcy5kb21TdHJhdGVneS5pbnNlcnRFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0eWxlQ29udGVudFN0cmF0ZWd5IGV4dGVuZHMgQ29udGVudFN0cmF0ZWd5PEhUTUxTdHlsZUVsZW1lbnQ+IHtcbiAgY3JlYXRlRWxlbWVudCgpOiBIVE1MU3R5bGVFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBlbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5jb250ZW50O1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNjcmlwdENvbnRlbnRTdHJhdGVneSBleHRlbmRzIENvbnRlbnRTdHJhdGVneTxIVE1MU2NyaXB0RWxlbWVudD4ge1xuICBjcmVhdGVFbGVtZW50KCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgZWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuY29udGVudDtcblxuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDT05URU5UX1NUUkFURUdZID0ge1xuICBBcHBlbmRTY3JpcHRUb0JvZHkoY29udGVudDogc3RyaW5nLCBvcHRpb25zPzogRWxlbWVudE9wdGlvbnM8SFRNTFNjcmlwdEVsZW1lbnQ+KSB7XG4gICAgcmV0dXJuIG5ldyBTY3JpcHRDb250ZW50U3RyYXRlZ3koY29udGVudCwgRE9NX1NUUkFURUdZLkFwcGVuZFRvQm9keSgpLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xuICB9LFxuICBBcHBlbmRTY3JpcHRUb0hlYWQoY29udGVudDogc3RyaW5nLCBvcHRpb25zPzogRWxlbWVudE9wdGlvbnM8SFRNTFNjcmlwdEVsZW1lbnQ+KSB7XG4gICAgcmV0dXJuIG5ldyBTY3JpcHRDb250ZW50U3RyYXRlZ3koY29udGVudCwgRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xuICB9LFxuICBBcHBlbmRTdHlsZVRvSGVhZChjb250ZW50OiBzdHJpbmcsIG9wdGlvbnM/OiBFbGVtZW50T3B0aW9uczxIVE1MU3R5bGVFbGVtZW50Pikge1xuICAgIHJldHVybiBuZXcgU3R5bGVDb250ZW50U3RyYXRlZ3koY29udGVudCwgRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xuICB9LFxuICBQcmVwZW5kU3R5bGVUb0hlYWQoY29udGVudDogc3RyaW5nLCBvcHRpb25zPzogRWxlbWVudE9wdGlvbnM8SFRNTFN0eWxlRWxlbWVudD4pIHtcbiAgICByZXR1cm4gbmV3IFN0eWxlQ29udGVudFN0cmF0ZWd5KGNvbnRlbnQsIERPTV9TVFJBVEVHWS5QcmVwZW5kVG9IZWFkKCksIHVuZGVmaW5lZCwgb3B0aW9ucyk7XG4gIH0sXG59O1xuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRlbnQuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQix5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0zRCxNQUFNLE9BQWdCLGVBQWU7SUFDbkMsWUFDUyxPQUFlLEVBQ1osY0FBMkIsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUN0RCwwQkFBbUQseUJBQXlCLENBQUMsSUFBSSxFQUFFLEVBQ25GLFVBQTZCLEVBQUU7UUFIbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUEyQztRQUN0RCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQTREO1FBQ25GLFlBQU8sR0FBUCxPQUFPLENBQXdCO0lBQ3hDLENBQUM7SUFJSixhQUFhO1FBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBaUM7SUFDekUsYUFBYTtRQUNYLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRW5DLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFrQztJQUMzRSxhQUFhO1FBQ1gsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFbkMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsa0JBQWtCLENBQUMsT0FBZSxFQUFFLE9BQTJDO1FBQzdFLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBZSxFQUFFLE9BQTJDO1FBQzdFLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsT0FBZSxFQUFFLE9BQTBDO1FBQzNFLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBZSxFQUFFLE9BQTBDO1FBQzVFLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRTZWN1cml0eVN0cmF0ZWd5LCBDT05URU5UX1NFQ1VSSVRZX1NUUkFURUdZIH0gZnJvbSAnLi9jb250ZW50LXNlY3VyaXR5LnN0cmF0ZWd5JztcclxuaW1wb3J0IHsgRG9tU3RyYXRlZ3ksIERPTV9TVFJBVEVHWSB9IGZyb20gJy4vZG9tLnN0cmF0ZWd5JztcclxuXHJcbmV4cG9ydCB0eXBlIEVsZW1lbnRPcHRpb25zPFQgZXh0ZW5kcyBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQgPSBhbnk+ID0gUGFydGlhbDx7XHJcbiAgW2tleSBpbiBrZXlvZiBUXTogVFtrZXldO1xyXG59PjtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZW50U3RyYXRlZ3k8VCBleHRlbmRzIEhUTUxTY3JpcHRFbGVtZW50IHwgSFRNTFN0eWxlRWxlbWVudCA9IGFueT4ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbnRlbnQ6IHN0cmluZyxcclxuICAgIHByb3RlY3RlZCBkb21TdHJhdGVneTogRG9tU3RyYXRlZ3kgPSBET01fU1RSQVRFR1kuQXBwZW5kVG9IZWFkKCksXHJcbiAgICBwcm90ZWN0ZWQgY29udGVudFNlY3VyaXR5U3RyYXRlZ3k6IENvbnRlbnRTZWN1cml0eVN0cmF0ZWd5ID0gQ09OVEVOVF9TRUNVUklUWV9TVFJBVEVHWS5Ob25lKCksXHJcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogRWxlbWVudE9wdGlvbnM8VD4gPSB7fSxcclxuICApIHt9XHJcblxyXG4gIGFic3RyYWN0IGNyZWF0ZUVsZW1lbnQoKTogVDtcclxuXHJcbiAgaW5zZXJ0RWxlbWVudCgpOiBUIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNyZWF0ZUVsZW1lbnQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIE9iamVjdC5rZXlzKHRoaXMub3B0aW9ucykubGVuZ3RoID4gMCkge1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMpLmZvckVhY2goa2V5ID0+IChlbGVtZW50W2tleV0gPSB0aGlzLm9wdGlvbnNba2V5XSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29udGVudFNlY3VyaXR5U3RyYXRlZ3kuYXBwbHlDU1AoZWxlbWVudCk7XHJcbiAgICB0aGlzLmRvbVN0cmF0ZWd5Lmluc2VydEVsZW1lbnQoZWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3R5bGVDb250ZW50U3RyYXRlZ3kgZXh0ZW5kcyBDb250ZW50U3RyYXRlZ3k8SFRNTFN0eWxlRWxlbWVudD4ge1xyXG4gIGNyZWF0ZUVsZW1lbnQoKTogSFRNTFN0eWxlRWxlbWVudCB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XHJcblxyXG4gICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2NyaXB0Q29udGVudFN0cmF0ZWd5IGV4dGVuZHMgQ29udGVudFN0cmF0ZWd5PEhUTUxTY3JpcHRFbGVtZW50PiB7XHJcbiAgY3JlYXRlRWxlbWVudCgpOiBIVE1MU2NyaXB0RWxlbWVudCB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICBlbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5jb250ZW50O1xyXG5cclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IENPTlRFTlRfU1RSQVRFR1kgPSB7XHJcbiAgQXBwZW5kU2NyaXB0VG9Cb2R5KGNvbnRlbnQ6IHN0cmluZywgb3B0aW9ucz86IEVsZW1lbnRPcHRpb25zPEhUTUxTY3JpcHRFbGVtZW50Pikge1xyXG4gICAgcmV0dXJuIG5ldyBTY3JpcHRDb250ZW50U3RyYXRlZ3koY29udGVudCwgRE9NX1NUUkFURUdZLkFwcGVuZFRvQm9keSgpLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xyXG4gIH0sXHJcbiAgQXBwZW5kU2NyaXB0VG9IZWFkKGNvbnRlbnQ6IHN0cmluZywgb3B0aW9ucz86IEVsZW1lbnRPcHRpb25zPEhUTUxTY3JpcHRFbGVtZW50Pikge1xyXG4gICAgcmV0dXJuIG5ldyBTY3JpcHRDb250ZW50U3RyYXRlZ3koY29udGVudCwgRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xyXG4gIH0sXHJcbiAgQXBwZW5kU3R5bGVUb0hlYWQoY29udGVudDogc3RyaW5nLCBvcHRpb25zPzogRWxlbWVudE9wdGlvbnM8SFRNTFN0eWxlRWxlbWVudD4pIHtcclxuICAgIHJldHVybiBuZXcgU3R5bGVDb250ZW50U3RyYXRlZ3koY29udGVudCwgRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xyXG4gIH0sXHJcbiAgUHJlcGVuZFN0eWxlVG9IZWFkKGNvbnRlbnQ6IHN0cmluZywgb3B0aW9ucz86IEVsZW1lbnRPcHRpb25zPEhUTUxTdHlsZUVsZW1lbnQ+KSB7XHJcbiAgICByZXR1cm4gbmV3IFN0eWxlQ29udGVudFN0cmF0ZWd5KGNvbnRlbnQsIERPTV9TVFJBVEVHWS5QcmVwZW5kVG9IZWFkKCksIHVuZGVmaW5lZCwgb3B0aW9ucyk7XHJcbiAgfSxcclxufTtcclxuIl19
@@ -34,4 +34,4 @@ export const CONTEXT_STRATEGY = {
34
34
  return new TemplateContextStrategy(context);
35
35
  },
36
36
  };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRleHQuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixlQUFlO0lBQ25DLFlBQW1CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO0lBQUcsQ0FBQztJQUV2RCxVQUFVLENBQUMsWUFBa0Q7UUFDM0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFFWCxTQUFRLGVBQWtCO0lBQzFCO1FBQ0UsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx3QkFBb0QsU0FBUSxlQUFrQjtJQUN6RixVQUFVLENBQUMsWUFBaUQ7UUFDMUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHVCQUEwRCxTQUFRLGVBQWtCO0lBQy9GLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsSUFBSTtRQUNGLE9BQU8sSUFBSSxpQkFBaUIsRUFBSyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxTQUFTLENBQTRCLE9BQXVDO1FBQzFFLE9BQU8sSUFBSSx3QkFBd0IsQ0FBSSxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsUUFBUSxDQUFtQyxPQUFzQztRQUMvRSxPQUFPLElBQUksdUJBQXVCLENBQUksT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmZlcnJlZENvbnRleHRPZiwgSW5mZXJyZWRJbnN0YW5jZU9mIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnRleHRTdHJhdGVneTxUID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZXh0OiBQYXJ0aWFsPENvbnRleHRUeXBlPFQ+Pikge31cblxuICBzZXRDb250ZXh0KGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+KTogUGFydGlhbDxDb250ZXh0VHlwZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vQ29udGV4dFN0cmF0ZWd5PFxuICBUIGV4dGVuZHMgVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8YW55PiA9IGFueSxcbj4gZXh0ZW5kcyBDb250ZXh0U3RyYXRlZ3k8VD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih1bmRlZmluZWQpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRDb250ZXh0U3RyYXRlZ3k8VCBleHRlbmRzIFR5cGU8YW55PiA9IGFueT4gZXh0ZW5kcyBDb250ZXh0U3RyYXRlZ3k8VD4ge1xuICBzZXRDb250ZXh0KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEluZmVycmVkSW5zdGFuY2VPZjxUPj4pOiBQYXJ0aWFsPEluZmVycmVkSW5zdGFuY2VPZjxUPj4ge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuY29udGV4dCkuZm9yRWFjaChrZXkgPT4gKGNvbXBvbmVudFJlZi5pbnN0YW5jZVtrZXldID0gdGhpcy5jb250ZXh0W2tleV0pKTtcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29udGV4dFN0cmF0ZWd5PFQgZXh0ZW5kcyBUZW1wbGF0ZVJlZjxhbnk+ID0gYW55PiBleHRlbmRzIENvbnRleHRTdHJhdGVneTxUPiB7XG4gIHNldENvbnRleHQoKTogUGFydGlhbDxJbmZlcnJlZENvbnRleHRPZjxUPj4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IENPTlRFWFRfU1RSQVRFR1kgPSB7XG4gIE5vbmU8VCBleHRlbmRzIFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT4gPSBhbnk+KCkge1xuICAgIHJldHVybiBuZXcgTm9Db250ZXh0U3RyYXRlZ3k8VD4oKTtcbiAgfSxcbiAgQ29tcG9uZW50PFQgZXh0ZW5kcyBUeXBlPGFueT4gPSBhbnk+KGNvbnRleHQ6IFBhcnRpYWw8SW5mZXJyZWRJbnN0YW5jZU9mPFQ+Pikge1xuICAgIHJldHVybiBuZXcgQ29tcG9uZW50Q29udGV4dFN0cmF0ZWd5PFQ+KGNvbnRleHQpO1xuICB9LFxuICBUZW1wbGF0ZTxUIGV4dGVuZHMgVGVtcGxhdGVSZWY8YW55PiA9IGFueT4oY29udGV4dDogUGFydGlhbDxJbmZlcnJlZENvbnRleHRPZjxUPj4pIHtcbiAgICByZXR1cm4gbmV3IFRlbXBsYXRlQ29udGV4dFN0cmF0ZWd5PFQ+KGNvbnRleHQpO1xuICB9LFxufTtcblxudHlwZSBDb250ZXh0VHlwZTxUPiA9IFQgZXh0ZW5kcyBUeXBlPGluZmVyIFU+IHwgVGVtcGxhdGVSZWY8aW5mZXIgVT4gPyBVIDogbmV2ZXI7XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRleHQuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixlQUFlO0lBQ25DLFlBQW1CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO0lBQUcsQ0FBQztJQUV2RCxVQUFVLENBQUMsWUFBa0Q7UUFDM0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFFWCxTQUFRLGVBQWtCO0lBQzFCO1FBQ0UsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx3QkFBb0QsU0FBUSxlQUFrQjtJQUN6RixVQUFVLENBQUMsWUFBaUQ7UUFDMUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHVCQUEwRCxTQUFRLGVBQWtCO0lBQy9GLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsSUFBSTtRQUNGLE9BQU8sSUFBSSxpQkFBaUIsRUFBSyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxTQUFTLENBQTRCLE9BQXVDO1FBQzFFLE9BQU8sSUFBSSx3QkFBd0IsQ0FBSSxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsUUFBUSxDQUFtQyxPQUFzQztRQUMvRSxPQUFPLElBQUksdUJBQXVCLENBQUksT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZmVycmVkQ29udGV4dE9mLCBJbmZlcnJlZEluc3RhbmNlT2YgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnRleHRTdHJhdGVneTxUID0gYW55PiB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbnRleHQ6IFBhcnRpYWw8Q29udGV4dFR5cGU8VD4+KSB7fVxyXG5cclxuICBzZXRDb250ZXh0KGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+KTogUGFydGlhbDxDb250ZXh0VHlwZTxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOb0NvbnRleHRTdHJhdGVneTxcclxuICBUIGV4dGVuZHMgVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8YW55PiA9IGFueSxcclxuPiBleHRlbmRzIENvbnRleHRTdHJhdGVneTxUPiB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcih1bmRlZmluZWQpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudENvbnRleHRTdHJhdGVneTxUIGV4dGVuZHMgVHlwZTxhbnk+ID0gYW55PiBleHRlbmRzIENvbnRleHRTdHJhdGVneTxUPiB7XHJcbiAgc2V0Q29udGV4dChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+KTogUGFydGlhbDxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+IHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuY29udGV4dCkuZm9yRWFjaChrZXkgPT4gKGNvbXBvbmVudFJlZi5pbnN0YW5jZVtrZXldID0gdGhpcy5jb250ZXh0W2tleV0pKTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29udGV4dFN0cmF0ZWd5PFQgZXh0ZW5kcyBUZW1wbGF0ZVJlZjxhbnk+ID0gYW55PiBleHRlbmRzIENvbnRleHRTdHJhdGVneTxUPiB7XHJcbiAgc2V0Q29udGV4dCgpOiBQYXJ0aWFsPEluZmVycmVkQ29udGV4dE9mPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IENPTlRFWFRfU1RSQVRFR1kgPSB7XHJcbiAgTm9uZTxUIGV4dGVuZHMgVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8YW55PiA9IGFueT4oKSB7XHJcbiAgICByZXR1cm4gbmV3IE5vQ29udGV4dFN0cmF0ZWd5PFQ+KCk7XHJcbiAgfSxcclxuICBDb21wb25lbnQ8VCBleHRlbmRzIFR5cGU8YW55PiA9IGFueT4oY29udGV4dDogUGFydGlhbDxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+KSB7XHJcbiAgICByZXR1cm4gbmV3IENvbXBvbmVudENvbnRleHRTdHJhdGVneTxUPihjb250ZXh0KTtcclxuICB9LFxyXG4gIFRlbXBsYXRlPFQgZXh0ZW5kcyBUZW1wbGF0ZVJlZjxhbnk+ID0gYW55Pihjb250ZXh0OiBQYXJ0aWFsPEluZmVycmVkQ29udGV4dE9mPFQ+Pikge1xyXG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZUNvbnRleHRTdHJhdGVneTxUPihjb250ZXh0KTtcclxuICB9LFxyXG59O1xyXG5cclxudHlwZSBDb250ZXh0VHlwZTxUPiA9IFQgZXh0ZW5kcyBUeXBlPGluZmVyIFU+IHwgVGVtcGxhdGVSZWY8aW5mZXIgVT4gPyBVIDogbmV2ZXI7XHJcbiJdfQ==