@igo2/core 1.15.4 → 16.0.0-rc.0

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 (241) hide show
  1. package/_index.scss +8 -0
  2. package/assets/icons/mdi.svg +1 -1
  3. package/core-theme.scss +5 -0
  4. package/{esm2020 → esm2022}/igo2-core.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/activity/activity.interceptor.mjs +32 -30
  6. package/{esm2020 → esm2022}/lib/activity/activity.module.mjs +30 -30
  7. package/esm2022/lib/activity/activity.service.mjs +32 -0
  8. package/{esm2020 → esm2022}/lib/activity/index.mjs +3 -3
  9. package/{esm2020 → esm2022}/lib/analytics/index.mjs +2 -2
  10. package/{esm2020 → esm2022}/lib/analytics/shared/analytics.interface.mjs +2 -2
  11. package/esm2022/lib/analytics/shared/analytics.service.mjs +84 -0
  12. package/{esm2020 → esm2022}/lib/analytics/shared/index.mjs +3 -3
  13. package/{esm2020 → esm2022}/lib/compression/compressedData.interface.mjs +2 -2
  14. package/esm2022/lib/compression/compression.service.mjs +142 -0
  15. package/{esm2020 → esm2022}/lib/compression/index.mjs +3 -3
  16. package/{esm2020 → esm2022}/lib/config/config.interface.mjs +1 -1
  17. package/{esm2020 → esm2022}/lib/config/config.module.mjs +23 -23
  18. package/{esm2020 → esm2022}/lib/config/config.provider.mjs +21 -21
  19. package/esm2022/lib/config/config.service.mjs +53 -0
  20. package/{esm2020 → esm2022}/lib/config/index.mjs +4 -4
  21. package/esm2022/lib/config/version.mjs +5 -0
  22. package/esm2022/lib/core.module.mjs +104 -0
  23. package/{esm2020 → esm2022}/lib/gesture/gesture.module.mjs +30 -30
  24. package/{esm2020 → esm2022}/lib/gesture/gesture.provider.mjs +16 -16
  25. package/{esm2020 → esm2022}/lib/language/index.mjs +2 -2
  26. package/esm2022/lib/language/language.module.mjs +39 -0
  27. package/{esm2020 → esm2022}/lib/language/shared/index.mjs +5 -5
  28. package/{esm2020 → esm2022}/lib/language/shared/language.interface.mjs +2 -2
  29. package/esm2022/lib/language/shared/language.loader.mjs +31 -0
  30. package/esm2022/lib/language/shared/language.provider.mjs +22 -0
  31. package/esm2022/lib/language/shared/language.service.mjs +38 -0
  32. package/{esm2020 → esm2022}/lib/language/shared/missing-translation.guard.mjs +16 -16
  33. package/{esm2020 → esm2022}/lib/media/index.mjs +3 -3
  34. package/{esm2020 → esm2022}/lib/media/media.enum.mjs +12 -12
  35. package/esm2022/lib/media/media.service.mjs +82 -0
  36. package/{esm2020 → esm2022}/lib/message/index.mjs +2 -2
  37. package/esm2022/lib/message/message.module.mjs +60 -0
  38. package/{esm2020 → esm2022}/lib/message/shared/index.mjs +4 -4
  39. package/{esm2020 → esm2022}/lib/message/shared/message.enum.mjs +10 -10
  40. package/{esm2020 → esm2022}/lib/message/shared/message.interface.mjs +2 -2
  41. package/esm2022/lib/message/shared/message.service.mjs +218 -0
  42. package/{esm2020 → esm2022}/lib/network/index.mjs +3 -3
  43. package/{esm2020 → esm2022}/lib/network/network.interfaces.mjs +2 -2
  44. package/esm2022/lib/network/network.service.mjs +66 -0
  45. package/{esm2020 → esm2022}/lib/regex/index.mjs +3 -3
  46. package/{esm2020 → esm2022}/lib/regex/regex.interface.mjs +2 -2
  47. package/esm2022/lib/regex/regex.service.mjs +30 -0
  48. package/esm2022/lib/request/error.interceptor.mjs +67 -0
  49. package/esm2022/lib/request/error.module.mjs +39 -0
  50. package/{esm2020 → esm2022}/lib/request/index.mjs +3 -3
  51. package/esm2022/lib/request/logging.interceptor.mjs +29 -0
  52. package/{esm2020 → esm2022}/lib/request/logging.module.mjs +30 -30
  53. package/esm2022/lib/route/route.interface.mjs +2 -0
  54. package/esm2022/lib/route/route.service.mjs +75 -0
  55. package/esm2022/lib/storage/index.mjs +4 -0
  56. package/{esm2020 → esm2022}/lib/storage/storage.interface.mjs +13 -13
  57. package/esm2022/lib/storage/storage.mjs +76 -0
  58. package/esm2022/lib/storage/storage.service.mjs +21 -0
  59. package/{esm2020 → esm2022}/public_api.mjs +27 -27
  60. package/{fesm2020 → fesm2022}/igo2-core.mjs +1364 -1288
  61. package/fesm2022/igo2-core.mjs.map +1 -0
  62. package/index.d.ts +5 -5
  63. package/lib/activity/activity.interceptor.d.ts +11 -11
  64. package/lib/activity/activity.module.d.ts +8 -8
  65. package/lib/activity/activity.service.d.ts +11 -11
  66. package/lib/activity/index.d.ts +2 -2
  67. package/lib/analytics/index.d.ts +1 -1
  68. package/lib/analytics/shared/analytics.interface.d.ts +6 -6
  69. package/lib/analytics/shared/analytics.service.d.ts +23 -23
  70. package/lib/analytics/shared/index.d.ts +2 -2
  71. package/lib/compression/compressedData.interface.d.ts +5 -5
  72. package/lib/compression/compression.service.d.ts +15 -15
  73. package/lib/compression/index.d.ts +2 -2
  74. package/lib/config/config.interface.d.ts +6 -6
  75. package/lib/config/config.module.d.ts +8 -8
  76. package/lib/config/config.provider.d.ts +15 -15
  77. package/lib/config/config.service.d.ts +18 -18
  78. package/lib/config/index.d.ts +3 -3
  79. package/lib/config/version.d.ts +5 -5
  80. package/lib/core.module.d.ts +19 -19
  81. package/lib/gesture/gesture.module.d.ts +9 -9
  82. package/lib/gesture/gesture.provider.d.ts +7 -7
  83. package/lib/language/index.d.ts +1 -1
  84. package/lib/language/language.module.d.ts +9 -9
  85. package/lib/language/shared/index.d.ts +4 -4
  86. package/lib/language/shared/language.interface.d.ts +3 -3
  87. package/lib/language/shared/language.loader.d.ts +11 -11
  88. package/lib/language/shared/language.provider.d.ts +15 -15
  89. package/lib/language/shared/language.service.d.ts +13 -13
  90. package/lib/language/shared/missing-translation.guard.d.ts +4 -4
  91. package/lib/media/index.d.ts +2 -2
  92. package/lib/media/media.enum.d.ts +9 -9
  93. package/lib/media/media.service.d.ts +16 -16
  94. package/lib/message/index.d.ts +1 -1
  95. package/lib/message/message.module.d.ts +10 -10
  96. package/lib/message/message.theming.scss +26 -0
  97. package/lib/message/shared/index.d.ts +4 -4
  98. package/lib/message/shared/message.enum.d.ts +8 -8
  99. package/lib/message/shared/message.interface.d.ts +21 -21
  100. package/lib/message/shared/message.service.d.ts +31 -31
  101. package/lib/network/index.d.ts +2 -2
  102. package/lib/network/network.interfaces.d.ts +3 -3
  103. package/lib/network/network.service.d.ts +21 -21
  104. package/lib/regex/index.d.ts +2 -2
  105. package/lib/regex/regex.interface.d.ts +3 -3
  106. package/lib/regex/regex.service.d.ts +12 -12
  107. package/lib/request/error.interceptor.d.ts +14 -14
  108. package/lib/request/error.module.d.ts +9 -9
  109. package/lib/request/index.d.ts +2 -2
  110. package/lib/request/logging.interceptor.d.ts +8 -8
  111. package/lib/request/logging.module.d.ts +8 -8
  112. package/lib/route/route.interface.d.ts +23 -23
  113. package/lib/route/route.service.d.ts +19 -19
  114. package/lib/storage/index.d.ts +3 -2
  115. package/lib/storage/storage.d.ts +15 -0
  116. package/lib/storage/storage.interface.d.ts +20 -20
  117. package/lib/storage/storage.service.d.ts +10 -19
  118. package/locale/en.core.json +1 -2
  119. package/locale/en.json +1 -1205
  120. package/locale/fr.core.json +1 -2
  121. package/locale/fr.json +1 -1210
  122. package/package.json +40 -30
  123. package/packages.import.scss +4 -0
  124. package/public_api.d.ts +24 -24
  125. package/style/all-style.css +793 -0
  126. package/style/all-style.scss +3 -0
  127. package/style/layout.scss +163 -0
  128. package/style/partial/core-utils.scss +5 -0
  129. package/style/partial/core.variables.scss +1 -1
  130. package/style/partial/media.scss +80 -80
  131. package/style/style.css +237 -0
  132. package/style/style.scss +19 -0
  133. package/theming/all-theme.scss +14 -0
  134. package/theming/material-theme-override.scss +39 -0
  135. package/theming/prebuilt-themes/blue-theme.css +2986 -0
  136. package/theming/prebuilt-themes/blue-theme.scss +34 -0
  137. package/theming/prebuilt-themes/bluedark-theme.css +2986 -0
  138. package/theming/prebuilt-themes/bluedark-theme.scss +67 -0
  139. package/theming/prebuilt-themes/bluedq-theme.css +2986 -0
  140. package/theming/prebuilt-themes/bluedq-theme.scss +66 -0
  141. package/theming/prebuilt-themes/bluegrey-theme.css +2986 -0
  142. package/theming/prebuilt-themes/bluegrey-theme.scss +25 -0
  143. package/theming/prebuilt-themes/dark-theme.css +2993 -0
  144. package/theming/prebuilt-themes/dark-theme.scss +25 -0
  145. package/theming/prebuilt-themes/deeppurple-theme.css +2986 -0
  146. package/theming/prebuilt-themes/deeppurple-theme.scss +25 -0
  147. package/theming/prebuilt-themes/indigo-theme.css +2986 -0
  148. package/theming/prebuilt-themes/indigo-theme.scss +25 -0
  149. package/theming/prebuilt-themes/orange-theme.css +2986 -0
  150. package/theming/prebuilt-themes/orange-theme.scss +25 -0
  151. package/theming/prebuilt-themes/qcca/_index.scss +2 -0
  152. package/theming/prebuilt-themes/qcca/base/_index.scss +4 -0
  153. package/theming/prebuilt-themes/qcca/base/breakpoints.scss +57 -0
  154. package/theming/prebuilt-themes/qcca/base/colors.scss +40 -0
  155. package/theming/prebuilt-themes/qcca/base/palette.scss +50 -0
  156. package/theming/prebuilt-themes/qcca/base/typography/_index.scss +2 -0
  157. package/theming/prebuilt-themes/qcca/base/typography/typography.scss +138 -0
  158. package/theming/prebuilt-themes/qcca/base/typography/typography.utils.scss +18 -0
  159. package/theming/prebuilt-themes/qcca/components/_index.scss +9 -0
  160. package/theming/prebuilt-themes/qcca/components/_index.theme.scss +5 -0
  161. package/theming/prebuilt-themes/qcca/components/button.scss +24 -0
  162. package/theming/prebuilt-themes/qcca/components/dialog.scss +36 -0
  163. package/theming/prebuilt-themes/qcca/components/form-field.scss +5 -0
  164. package/theming/prebuilt-themes/qcca/components/input.scss +6 -0
  165. package/theming/prebuilt-themes/qcca/components/list.scss +24 -0
  166. package/theming/prebuilt-themes/qcca/components/panel.scss +8 -0
  167. package/theming/prebuilt-themes/qcca/components/search-bar.scss +41 -0
  168. package/theming/prebuilt-themes/qcca/components/search-bar.theme.scss +29 -0
  169. package/theming/prebuilt-themes/qcca-theme.css +3373 -0
  170. package/theming/prebuilt-themes/qcca-theme.scss +47 -0
  171. package/theming/prebuilt-themes/teal-theme.css +2986 -0
  172. package/theming/prebuilt-themes/teal-theme.scss +25 -0
  173. package/theming/typography.scss +28 -0
  174. package/theming/utils/_foreground.scss +22 -0
  175. package/__ivy_ngcc__/locale/en.auth.json +0 -29
  176. package/__ivy_ngcc__/locale/en.common.json +0 -43
  177. package/__ivy_ngcc__/locale/en.context.json +0 -199
  178. package/__ivy_ngcc__/locale/en.core.json +0 -29
  179. package/__ivy_ngcc__/locale/en.geo.json +0 -805
  180. package/__ivy_ngcc__/locale/en.integration.json +0 -124
  181. package/__ivy_ngcc__/locale/en.json +0 -1205
  182. package/__ivy_ngcc__/locale/fr.auth.json +0 -32
  183. package/__ivy_ngcc__/locale/fr.common.json +0 -43
  184. package/__ivy_ngcc__/locale/fr.context.json +0 -199
  185. package/__ivy_ngcc__/locale/fr.core.json +0 -29
  186. package/__ivy_ngcc__/locale/fr.geo.json +0 -805
  187. package/__ivy_ngcc__/locale/fr.integration.json +0 -125
  188. package/__ivy_ngcc__/locale/fr.json +0 -1210
  189. package/esm2020/lib/activity/activity.service.mjs +0 -33
  190. package/esm2020/lib/analytics/shared/analytics.service.mjs +0 -81
  191. package/esm2020/lib/compression/compression.service.mjs +0 -140
  192. package/esm2020/lib/config/config.service.mjs +0 -52
  193. package/esm2020/lib/config/version.mjs +0 -5
  194. package/esm2020/lib/core.module.mjs +0 -92
  195. package/esm2020/lib/language/language.module.mjs +0 -39
  196. package/esm2020/lib/language/shared/language.loader.mjs +0 -26
  197. package/esm2020/lib/language/shared/language.provider.mjs +0 -22
  198. package/esm2020/lib/language/shared/language.service.mjs +0 -32
  199. package/esm2020/lib/media/media.service.mjs +0 -76
  200. package/esm2020/lib/message/message.module.mjs +0 -56
  201. package/esm2020/lib/message/shared/message.service.mjs +0 -201
  202. package/esm2020/lib/network/network.service.mjs +0 -60
  203. package/esm2020/lib/regex/regex.service.mjs +0 -27
  204. package/esm2020/lib/request/error.interceptor.mjs +0 -66
  205. package/esm2020/lib/request/error.module.mjs +0 -39
  206. package/esm2020/lib/request/logging.interceptor.mjs +0 -29
  207. package/esm2020/lib/route/route.interface.mjs +0 -2
  208. package/esm2020/lib/route/route.service.mjs +0 -71
  209. package/esm2020/lib/storage/index.mjs +0 -3
  210. package/esm2020/lib/storage/storage.service.mjs +0 -79
  211. package/fesm2015/igo2-core.mjs +0 -1418
  212. package/fesm2015/igo2-core.mjs.map +0 -1
  213. package/fesm2020/igo2-core.mjs.map +0 -1
  214. package/locale/en.auth.json +0 -29
  215. package/locale/en.common.json +0 -43
  216. package/locale/en.context.json +0 -199
  217. package/locale/en.geo.json +0 -805
  218. package/locale/en.integration.json +0 -124
  219. package/locale/fr.auth.json +0 -32
  220. package/locale/fr.common.json +0 -43
  221. package/locale/fr.context.json +0 -199
  222. package/locale/fr.geo.json +0 -805
  223. package/locale/fr.integration.json +0 -125
  224. package/style/all.theming.scss +0 -5
  225. package/style/core.theming.scss +0 -9
  226. package/style/foreground.scss +0 -20
  227. package/style/index.theming.scss +0 -1465
  228. package/style/material.font.scss +0 -10
  229. package/style/setup.scss +0 -2
  230. package/style/themes/blue.theme.scss +0 -19
  231. package/style/themes/bluedark.theme.scss +0 -52
  232. package/style/themes/bluedq.theme.scss +0 -52
  233. package/style/themes/bluegrey.theme.scss +0 -16
  234. package/style/themes/dark.theme.scss +0 -16
  235. package/style/themes/deeppurple.theme.scss +0 -16
  236. package/style/themes/indigo.theme.scss +0 -16
  237. package/style/themes/orange.theme.scss +0 -16
  238. package/style/themes/qcca.theme.scss +0 -98
  239. package/style/themes/teal.theme.scss +0 -16
  240. package/style/theming.scss +0 -5
  241. package/style/typography.scss +0 -17
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpResponse } from '@angular/common/http';
3
- import { tap, finalize } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class LoggingInterceptor {
6
- intercept(req, next) {
7
- const started = Date.now();
8
- let ok;
9
- // extend server response observable with logging
10
- return next.handle(req).pipe(tap(
11
- // Succeeds when there is a response; ignore other events
12
- event => (ok = event instanceof HttpResponse ? 'succeeded' : ''),
13
- // Operation failed; error is an HttpErrorResponse
14
- error => (ok = 'failed')),
15
- // Log when response observable either completes or errors
16
- finalize(() => {
17
- const elapsed = Date.now() - started;
18
- const msg = `${req.method} "${req.urlWithParams}"
19
- ${ok} in ${elapsed} ms.`;
20
- console.log(msg);
21
- }));
22
- }
23
- }
24
- LoggingInterceptor.ɵfac = function LoggingInterceptor_Factory(t) { return new (t || LoggingInterceptor)(); };
25
- LoggingInterceptor.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LoggingInterceptor, factory: LoggingInterceptor.ɵfac });
26
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoggingInterceptor, [{
27
- type: Injectable
28
- }], null, null); })();
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9yZXF1ZXN0L2xvZ2dpbmcuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBS0wsWUFBWSxFQUNiLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHL0MsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixTQUFTLENBQ1AsR0FBcUIsRUFDckIsSUFBaUI7UUFFakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksRUFBVSxDQUFDO1FBRWYsaURBQWlEO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLEdBQUc7UUFDRCx5REFBeUQ7UUFDekQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLFlBQVksWUFBWSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRSxrREFBa0Q7UUFDbEQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FDekI7UUFDRCwwREFBMEQ7UUFDMUQsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDckMsTUFBTSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxhQUFhO2VBQ3hDLEVBQUUsT0FBTyxPQUFPLE1BQU0sQ0FBQztZQUU5QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztvRkF6QlUsa0JBQWtCO3dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCO3VGQUFsQixrQkFBa0I7Y0FEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBSZXNwb25zZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIExvZ2dpbmdJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBjb25zdCBzdGFydGVkID0gRGF0ZS5ub3coKTtcclxuICAgIGxldCBvazogc3RyaW5nO1xyXG5cclxuICAgIC8vIGV4dGVuZCBzZXJ2ZXIgcmVzcG9uc2Ugb2JzZXJ2YWJsZSB3aXRoIGxvZ2dpbmdcclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXHJcbiAgICAgIHRhcChcclxuICAgICAgICAvLyBTdWNjZWVkcyB3aGVuIHRoZXJlIGlzIGEgcmVzcG9uc2U7IGlnbm9yZSBvdGhlciBldmVudHNcclxuICAgICAgICBldmVudCA9PiAob2sgPSBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSA/ICdzdWNjZWVkZWQnIDogJycpLFxyXG4gICAgICAgIC8vIE9wZXJhdGlvbiBmYWlsZWQ7IGVycm9yIGlzIGFuIEh0dHBFcnJvclJlc3BvbnNlXHJcbiAgICAgICAgZXJyb3IgPT4gKG9rID0gJ2ZhaWxlZCcpXHJcbiAgICAgICksXHJcbiAgICAgIC8vIExvZyB3aGVuIHJlc3BvbnNlIG9ic2VydmFibGUgZWl0aGVyIGNvbXBsZXRlcyBvciBlcnJvcnNcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVsYXBzZWQgPSBEYXRlLm5vdygpIC0gc3RhcnRlZDtcclxuICAgICAgICBjb25zdCBtc2cgPSBgJHtyZXEubWV0aG9kfSBcIiR7cmVxLnVybFdpdGhQYXJhbXN9XCJcclxuICAgICAgICAgICAgICR7b2t9IGluICR7ZWxhcHNlZH0gbXMuYDtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2cobXNnKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3JvdXRlL3JvdXRlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSb3V0ZVNlcnZpY2VPcHRpb25zIHtcclxuICBjZW50ZXJLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIHpvb21LZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIHByb2plY3Rpb25LZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIGNvbnRleHRLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIHNlYXJjaEtleT86IGJvb2xlYW4gfCBzdHJpbmc7XHJcbiAgdmlzaWJsZU9uTGF5ZXJzS2V5PzogYm9vbGVhbiB8IHN0cmluZztcclxuICB2aXNpYmxlT2ZmTGF5ZXJzS2V5PzogYm9vbGVhbiB8IHN0cmluZztcclxuICBkaXJlY3Rpb25zQ29vcmRLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIGRpcmVjdGlvbnNPcHRpb25zS2V5PzogYm9vbGVhbiB8IHN0cmluZztcclxuICB0b29sS2V5PzogYm9vbGVhbiB8IHN0cmluZztcclxuICB3bXNVcmxLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIHdtc0xheWVyc0tleT86IGJvb2xlYW4gfCBzdHJpbmc7XHJcbiAgd210c1VybEtleT86IGJvb2xlYW4gfCBzdHJpbmc7XHJcbiAgd210c0xheWVyc0tleT86IGJvb2xlYW4gfCBzdHJpbmc7XHJcbiAgYXJjZ2lzVXJsS2V5PzogYm9vbGVhbiB8IHN0cmluZztcclxuICBhcmNnaXNMYXllcnNLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIGlhcmNnaXNVcmxLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIGlhcmNnaXNMYXllcnNLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIHRhcmNnaXNVcmxLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIHRhcmNnaXNMYXllcnNLZXk/OiBib29sZWFuIHwgc3RyaW5nO1xyXG4gIHZlY3RvcktleT86IGJvb2xlYW4gfCBzdHJpbmc7XHJcbn1cclxuIl19
@@ -1,71 +0,0 @@
1
- import { Injectable, Inject, InjectionToken, Optional } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/router";
4
- export let ROUTE_SERVICE_OPTIONS = new InjectionToken('routeServiceOptions');
5
- export function provideRouteServiceOptions(options) {
6
- return {
7
- provide: ROUTE_SERVICE_OPTIONS,
8
- useValue: options
9
- };
10
- }
11
- export class RouteService {
12
- constructor(router, route, options) {
13
- this.router = router;
14
- this.route = route;
15
- const defaultOptions = {
16
- centerKey: 'center',
17
- zoomKey: 'zoom',
18
- projectionKey: 'projection',
19
- contextKey: 'context',
20
- searchKey: 'search',
21
- visibleOnLayersKey: 'visiblelayers',
22
- visibleOffLayersKey: 'invisiblelayers',
23
- directionsCoordKey: 'routing',
24
- directionsOptionsKey: 'routingOptions',
25
- toolKey: 'tool',
26
- wmsUrlKey: 'wmsUrl',
27
- wmsLayersKey: 'wmsLayers',
28
- wmtsUrlKey: 'wmtsUrl',
29
- wmtsLayersKey: 'wmtsLayers',
30
- arcgisUrlKey: 'arcgisUrl',
31
- arcgisLayersKey: 'arcgisLayers',
32
- iarcgisUrlKey: 'iarcgisUrl',
33
- iarcgisLayersKey: 'iarcgisLayers',
34
- tarcgisUrlKey: 'tarcgisUrl',
35
- tarcgisLayersKey: 'tarcgisLayers',
36
- vectorKey: 'vector'
37
- };
38
- this.options = Object.assign({}, defaultOptions, options);
39
- }
40
- get queryParams() {
41
- let url = decodeURIComponent(location.search);
42
- if (url.includes('¢er=')) {
43
- url = url.replace('¢er', '&center');
44
- const queryParams = url
45
- .slice(1)
46
- .split('&')
47
- .map(p => p.split('='))
48
- .reduce((obj, pair) => {
49
- const [key, value] = pair.map(decodeURIComponent);
50
- obj[key] = value;
51
- return obj;
52
- }, {});
53
- this.router.navigate([], { queryParams });
54
- }
55
- return this.route.queryParams;
56
- }
57
- }
58
- RouteService.ɵfac = function RouteService_Factory(t) { return new (t || RouteService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i1.ActivatedRoute), i0.ɵɵinject(ROUTE_SERVICE_OPTIONS, 8)); };
59
- RouteService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: RouteService, factory: RouteService.ɵfac, providedIn: 'root' });
60
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RouteService, [{
61
- type: Injectable,
62
- args: [{
63
- providedIn: 'root'
64
- }]
65
- }], function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: undefined, decorators: [{
66
- type: Inject,
67
- args: [ROUTE_SERVICE_OPTIONS]
68
- }, {
69
- type: Optional
70
- }] }]; }, null); })();
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9yb3V0ZS9yb3V0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU03RSxNQUFNLENBQUMsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQscUJBQXFCLENBQ3RCLENBQUM7QUFFRixNQUFNLFVBQVUsMEJBQTBCLENBQUMsT0FBNEI7SUFDckUsT0FBTztRQUNMLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUNVLE1BQWMsRUFDZixLQUFxQixFQUc1QixPQUE0QjtRQUpwQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFLNUIsTUFBTSxjQUFjLEdBQUc7WUFDckIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsT0FBTyxFQUFFLE1BQU07WUFDZixhQUFhLEVBQUUsWUFBWTtZQUMzQixVQUFVLEVBQUUsU0FBUztZQUNyQixTQUFTLEVBQUUsUUFBUTtZQUNuQixrQkFBa0IsRUFBRSxlQUFlO1lBQ25DLG1CQUFtQixFQUFFLGlCQUFpQjtZQUN0QyxrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLG9CQUFvQixFQUFFLGdCQUFnQjtZQUN0QyxPQUFPLEVBQUUsTUFBTTtZQUNmLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFlBQVksRUFBRyxXQUFXO1lBQzFCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGFBQWEsRUFBRyxZQUFZO1lBQzVCLFlBQVksRUFBRSxXQUFXO1lBQ3pCLGVBQWUsRUFBRyxjQUFjO1lBQ2hDLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGdCQUFnQixFQUFHLGVBQWU7WUFDbEMsYUFBYSxFQUFFLFlBQVk7WUFDM0IsZ0JBQWdCLEVBQUcsZUFBZTtZQUNsQyxTQUFTLEVBQUUsUUFBUTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLElBQUksR0FBRyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sV0FBVyxHQUFRLEdBQUc7aUJBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ1IsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN0QixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNsRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUNqQixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7O3dFQXBEVSxZQUFZLHNFQU1iLHFCQUFxQjtrRUFOcEIsWUFBWSxXQUFaLFlBQVksbUJBRlgsTUFBTTt1RkFFUCxZQUFZO2NBSHhCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBT0ksTUFBTTt1QkFBQyxxQkFBcUI7O3NCQUM1QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUm91dGVTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJy4vcm91dGUuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBsZXQgUk9VVEVfU0VSVklDRV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFJvdXRlU2VydmljZU9wdGlvbnM+KFxyXG4gICdyb3V0ZVNlcnZpY2VPcHRpb25zJ1xyXG4pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSb3V0ZVNlcnZpY2VPcHRpb25zKG9wdGlvbnM6IFJvdXRlU2VydmljZU9wdGlvbnMpIHtcclxuICByZXR1cm4ge1xyXG4gICAgcHJvdmlkZTogUk9VVEVfU0VSVklDRV9PUFRJT05TLFxyXG4gICAgdXNlVmFsdWU6IG9wdGlvbnNcclxuICB9O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBvcHRpb25zOiBSb3V0ZVNlcnZpY2VPcHRpb25zO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgQEluamVjdChST1VURV9TRVJWSUNFX09QVElPTlMpXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgb3B0aW9uczogUm91dGVTZXJ2aWNlT3B0aW9uc1xyXG4gICkge1xyXG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICAgIGNlbnRlcktleTogJ2NlbnRlcicsXHJcbiAgICAgIHpvb21LZXk6ICd6b29tJyxcclxuICAgICAgcHJvamVjdGlvbktleTogJ3Byb2plY3Rpb24nLFxyXG4gICAgICBjb250ZXh0S2V5OiAnY29udGV4dCcsXHJcbiAgICAgIHNlYXJjaEtleTogJ3NlYXJjaCcsXHJcbiAgICAgIHZpc2libGVPbkxheWVyc0tleTogJ3Zpc2libGVsYXllcnMnLFxyXG4gICAgICB2aXNpYmxlT2ZmTGF5ZXJzS2V5OiAnaW52aXNpYmxlbGF5ZXJzJyxcclxuICAgICAgZGlyZWN0aW9uc0Nvb3JkS2V5OiAncm91dGluZycsXHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zS2V5OiAncm91dGluZ09wdGlvbnMnLFxyXG4gICAgICB0b29sS2V5OiAndG9vbCcsXHJcbiAgICAgIHdtc1VybEtleTogJ3dtc1VybCcsXHJcbiAgICAgIHdtc0xheWVyc0tleTogICd3bXNMYXllcnMnLFxyXG4gICAgICB3bXRzVXJsS2V5OiAnd210c1VybCcsXHJcbiAgICAgIHdtdHNMYXllcnNLZXk6ICAnd210c0xheWVycycsXHJcbiAgICAgIGFyY2dpc1VybEtleTogJ2FyY2dpc1VybCcsXHJcbiAgICAgIGFyY2dpc0xheWVyc0tleTogICdhcmNnaXNMYXllcnMnLFxyXG4gICAgICBpYXJjZ2lzVXJsS2V5OiAnaWFyY2dpc1VybCcsXHJcbiAgICAgIGlhcmNnaXNMYXllcnNLZXk6ICAnaWFyY2dpc0xheWVycycsXHJcbiAgICAgIHRhcmNnaXNVcmxLZXk6ICd0YXJjZ2lzVXJsJyxcclxuICAgICAgdGFyY2dpc0xheWVyc0tleTogICd0YXJjZ2lzTGF5ZXJzJyxcclxuICAgICAgdmVjdG9yS2V5OiAndmVjdG9yJ1xyXG4gICAgfTtcclxuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGdldCBxdWVyeVBhcmFtcygpOiBPYnNlcnZhYmxlPFBhcmFtcz4ge1xyXG4gICAgbGV0IHVybCA9IGRlY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgaWYgKHVybC5pbmNsdWRlcygnwqJlcj0nKSkge1xyXG4gICAgICB1cmwgPSB1cmwucmVwbGFjZSgnwqJlcicsICcmY2VudGVyJyk7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBhbnkgPSB1cmxcclxuICAgICAgLnNsaWNlKDEpXHJcbiAgICAgIC5zcGxpdCgnJicpXHJcbiAgICAgIC5tYXAocCA9PiBwLnNwbGl0KCc9JykpXHJcbiAgICAgIC5yZWR1Y2UoKG9iaiwgcGFpcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhaXIubWFwKGRlY29kZVVSSUNvbXBvbmVudCk7XHJcbiAgICAgICAgb2JqW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICB9LCB7fSk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucm91dGUucXVlcnlQYXJhbXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './storage.service';
2
- export * from './storage.interface';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5pbnRlcmZhY2UnO1xyXG4iXX0=
@@ -1,79 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { StorageScope, StorageServiceEventEnum } from './storage.interface';
3
- import { BehaviorSubject } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../config/config.service";
6
- export class StorageService {
7
- constructor(config) {
8
- this.config = config;
9
- this.storageChange$ = new BehaviorSubject(undefined);
10
- this.options = this.config.getConfig('storage') || { key: 'igo' };
11
- }
12
- /**
13
- * Use to get the data found in storage file
14
- */
15
- get(key, scope) {
16
- let value;
17
- if (!scope || scope === StorageScope.SESSION) {
18
- value = sessionStorage.getItem(`${this.options.key}.${key}`);
19
- }
20
- if (scope === StorageScope.LOCAL || (!value && !scope)) {
21
- value = localStorage.getItem(`${this.options.key}.${key}`);
22
- }
23
- if (value) {
24
- try {
25
- value = JSON.parse(value);
26
- }
27
- catch {
28
- value = value;
29
- }
30
- }
31
- return value;
32
- }
33
- set(key, value, scope = StorageScope.LOCAL) {
34
- const previousValue = this.get(key, scope);
35
- if (scope === StorageScope.SESSION) {
36
- sessionStorage.setItem(`${this.options.key}.${key}`, JSON.stringify(value));
37
- }
38
- else {
39
- localStorage.setItem(`${this.options.key}.${key}`, JSON.stringify(value));
40
- }
41
- const currentValue = this.get(key, scope);
42
- if (currentValue !== previousValue) {
43
- this.storageChange$.next({
44
- key, scope,
45
- event: previousValue !== undefined ? StorageServiceEventEnum.MODIFIED : StorageServiceEventEnum.ADDED,
46
- previousValue,
47
- currentValue
48
- });
49
- }
50
- }
51
- remove(key, scope = StorageScope.LOCAL) {
52
- const previousValue = this.get(key, scope);
53
- if (scope === StorageScope.SESSION) {
54
- sessionStorage.removeItem(`${this.options.key}.${key}`);
55
- }
56
- else {
57
- localStorage.removeItem(`${this.options.key}.${key}`);
58
- }
59
- this.storageChange$.next({ key, scope, event: StorageServiceEventEnum.REMOVED, previousValue });
60
- }
61
- clear(scope = StorageScope.LOCAL) {
62
- if (scope === StorageScope.SESSION) {
63
- sessionStorage.clear();
64
- }
65
- else {
66
- localStorage.clear();
67
- }
68
- this.storageChange$.next({ scope, event: StorageServiceEventEnum.CLEARED });
69
- }
70
- }
71
- StorageService.ɵfac = function StorageService_Factory(t) { return new (t || StorageService)(i0.ɵɵinject(i1.ConfigService)); };
72
- StorageService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StorageService, factory: StorageService.ɵfac, providedIn: 'root' });
73
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StorageService, [{
74
- type: Injectable,
75
- args: [{
76
- providedIn: 'root'
77
- }]
78
- }], function () { return [{ type: i1.ConfigService }]; }, null); })();
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFlBQVksRUFBdUMsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLdkMsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUZsQyxtQkFBYyxHQUF5QyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUczRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFDRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBb0I7UUFDbkMsSUFBSSxLQUFVLENBQUM7UUFFZixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxZQUFZLENBQUMsT0FBTyxFQUFFO1lBQzVDLEtBQUssR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksS0FBSyxLQUFLLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RELEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSTtnQkFDRixLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQjtZQUFDLE1BQU07Z0JBQ04sS0FBSyxHQUFHLEtBQUssQ0FBQzthQUNmO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxHQUFHLENBQ0QsR0FBVyxFQUNYLEtBQXlDLEVBQ3pDLFFBQXNCLFlBQVksQ0FBQyxLQUFLO1FBRXhDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxLQUFLLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDbEMsY0FBYyxDQUFDLE9BQU8sQ0FDcEIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDdEIsQ0FBQztTQUNIO2FBQU07WUFDTCxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzNFO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFMUMsSUFBSSxZQUFZLEtBQUssYUFBYSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixHQUFHLEVBQUUsS0FBSztnQkFDVixLQUFLLEVBQUUsYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLO2dCQUNyRyxhQUFhO2dCQUNiLFlBQVk7YUFDYixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVyxFQUFFLFFBQXNCLFlBQVksQ0FBQyxLQUFLO1FBQzFELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxLQUFLLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDbEMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNMLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQXNCLFlBQVksQ0FBQyxLQUFLO1FBQzVDLElBQUksS0FBSyxLQUFLLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDbEMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hCO2FBQU07WUFDTCxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDOzs0RUE1RVUsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTY29wZSwgU3RvcmFnZU9wdGlvbnMsIFN0b3JhZ2VTZXJ2aWNlRXZlbnQsIFN0b3JhZ2VTZXJ2aWNlRXZlbnRFbnVtIH0gZnJvbSAnLi9zdG9yYWdlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG4gIHByb3RlY3RlZCBvcHRpb25zOiBTdG9yYWdlT3B0aW9ucztcclxuXHJcbiAgcHVibGljIHN0b3JhZ2VDaGFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8U3RvcmFnZVNlcnZpY2VFdmVudD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ3N0b3JhZ2UnKSB8fCB7IGtleTogJ2lnbycgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVXNlIHRvIGdldCB0aGUgZGF0YSBmb3VuZCBpbiBzdG9yYWdlIGZpbGVcclxuICAgKi9cclxuICBnZXQoa2V5OiBzdHJpbmcsIHNjb3BlPzogU3RvcmFnZVNjb3BlKTogc3RyaW5nIHwgb2JqZWN0IHwgYm9vbGVhbiB8IG51bWJlciB7XHJcbiAgICBsZXQgdmFsdWU6IGFueTtcclxuXHJcbiAgICBpZiAoIXNjb3BlIHx8IHNjb3BlID09PSBTdG9yYWdlU2NvcGUuU0VTU0lPTikge1xyXG4gICAgICB2YWx1ZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5vcHRpb25zLmtleX0uJHtrZXl9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNjb3BlID09PSBTdG9yYWdlU2NvcGUuTE9DQUwgfHwgKCF2YWx1ZSAmJiAhc2NvcGUpKSB7XHJcbiAgICAgIHZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5vcHRpb25zLmtleX0uJHtrZXl9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdmFsdWUgPSBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldChcclxuICAgIGtleTogc3RyaW5nLFxyXG4gICAgdmFsdWU6IHN0cmluZyB8IG9iamVjdCB8IGJvb2xlYW4gfCBudW1iZXIsXHJcbiAgICBzY29wZTogU3RvcmFnZVNjb3BlID0gU3RvcmFnZVNjb3BlLkxPQ0FMXHJcbiAgKSB7XHJcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gdGhpcy5nZXQoa2V5LCBzY29wZSk7XHJcbiAgICBpZiAoc2NvcGUgPT09IFN0b3JhZ2VTY29wZS5TRVNTSU9OKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgYCR7dGhpcy5vcHRpb25zLmtleX0uJHtrZXl9YCxcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh2YWx1ZSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke3RoaXMub3B0aW9ucy5rZXl9LiR7a2V5fWAsIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLmdldChrZXksIHNjb3BlKTtcclxuXHJcbiAgICBpZiAoY3VycmVudFZhbHVlICE9PSBwcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmFnZUNoYW5nZSQubmV4dCh7XHJcbiAgICAgICAga2V5LCBzY29wZSxcclxuICAgICAgICBldmVudDogcHJldmlvdXNWYWx1ZSAhPT0gdW5kZWZpbmVkID8gU3RvcmFnZVNlcnZpY2VFdmVudEVudW0uTU9ESUZJRUQgOiBTdG9yYWdlU2VydmljZUV2ZW50RW51bS5BRERFRCxcclxuICAgICAgICBwcmV2aW91c1ZhbHVlLFxyXG4gICAgICAgIGN1cnJlbnRWYWx1ZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZShrZXk6IHN0cmluZywgc2NvcGU6IFN0b3JhZ2VTY29wZSA9IFN0b3JhZ2VTY29wZS5MT0NBTCkge1xyXG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMuZ2V0KGtleSwgc2NvcGUpO1xyXG4gICAgaWYgKHNjb3BlID09PSBTdG9yYWdlU2NvcGUuU0VTU0lPTikge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGAke3RoaXMub3B0aW9ucy5rZXl9LiR7a2V5fWApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYCR7dGhpcy5vcHRpb25zLmtleX0uJHtrZXl9YCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JhZ2VDaGFuZ2UkLm5leHQoe2tleSwgc2NvcGUsIGV2ZW50OiBTdG9yYWdlU2VydmljZUV2ZW50RW51bS5SRU1PVkVELCBwcmV2aW91c1ZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoc2NvcGU6IFN0b3JhZ2VTY29wZSA9IFN0b3JhZ2VTY29wZS5MT0NBTCkge1xyXG4gICAgaWYgKHNjb3BlID09PSBTdG9yYWdlU2NvcGUuU0VTU0lPTikge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JhZ2VDaGFuZ2UkLm5leHQoe3Njb3BlLCBldmVudDogU3RvcmFnZVNlcnZpY2VFdmVudEVudW0uQ0xFQVJFRCB9KTtcclxuICB9XHJcbn1cclxuIl19