@igo2/core 16.3.0 → 17.0.0-next.10

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 (323) hide show
  1. package/activity/index.d.ts +5 -0
  2. package/{lib/activity/index.d.ts → activity/public_api.d.ts} +1 -0
  3. package/{lib/analytics/shared → analytics}/analytics.interface.d.ts +1 -1
  4. package/{lib/analytics/shared → analytics}/analytics.service.d.ts +1 -1
  5. package/analytics/index.d.ts +5 -0
  6. package/{lib/config → config}/config.interface.d.ts +2 -3
  7. package/{lib/config → config}/config.module.d.ts +3 -0
  8. package/config/config.provider.d.ts +6 -0
  9. package/{lib/config → config}/config.service.d.ts +1 -1
  10. package/config/index.d.ts +5 -0
  11. package/{lib/config/index.d.ts → config/public_api.d.ts} +2 -0
  12. package/environment/environment.interface.d.ts +16 -0
  13. package/environment/index.d.ts +5 -0
  14. package/esm2022/activity/activity.interceptor.mjs +32 -0
  15. package/esm2022/activity/activity.module.mjs +30 -0
  16. package/esm2022/activity/activity.service.mjs +32 -0
  17. package/esm2022/activity/igo2-core-activity.mjs +5 -0
  18. package/esm2022/activity/public_api.mjs +4 -0
  19. package/esm2022/analytics/analytics.interface.mjs +2 -0
  20. package/esm2022/analytics/analytics.service.mjs +87 -0
  21. package/esm2022/analytics/igo2-core-analytics.mjs +5 -0
  22. package/esm2022/analytics/public_api.mjs +3 -0
  23. package/esm2022/config/config-deprecated.mjs +27 -0
  24. package/esm2022/config/config.interface.mjs +2 -0
  25. package/esm2022/config/config.module.mjs +26 -0
  26. package/esm2022/config/config.provider.mjs +21 -0
  27. package/esm2022/config/config.service.mjs +98 -0
  28. package/esm2022/config/igo2-core-config.mjs +5 -0
  29. package/esm2022/config/public_api.mjs +6 -0
  30. package/esm2022/config/version.mjs +5 -0
  31. package/esm2022/environment/environment.interface.mjs +2 -0
  32. package/esm2022/environment/igo2-core-environment.mjs +5 -0
  33. package/esm2022/environment/public_api.mjs +2 -0
  34. package/esm2022/gesture/gesture.module.mjs +29 -0
  35. package/esm2022/gesture/gesture.provider.mjs +16 -0
  36. package/esm2022/gesture/igo2-core-gesture.mjs +5 -0
  37. package/esm2022/gesture/public_api.mjs +3 -0
  38. package/esm2022/language/igo2-core-language.mjs +5 -0
  39. package/esm2022/language/language.module.mjs +15 -0
  40. package/esm2022/language/public_api.mjs +3 -0
  41. package/esm2022/language/shared/index.mjs +7 -0
  42. package/esm2022/language/shared/language-mock.provider.mjs +13 -0
  43. package/esm2022/language/shared/language.interface.mjs +3 -0
  44. package/esm2022/language/shared/language.loader.mjs +38 -0
  45. package/esm2022/language/shared/language.provider.mjs +47 -0
  46. package/esm2022/language/shared/language.service.mjs +38 -0
  47. package/esm2022/language/shared/missing-translation.guard.mjs +16 -0
  48. package/esm2022/lib/core.module.mjs +21 -49
  49. package/esm2022/media/igo2-core-media.mjs +5 -0
  50. package/esm2022/media/media.enum.mjs +12 -0
  51. package/esm2022/media/media.service.mjs +82 -0
  52. package/esm2022/media/public_api.mjs +3 -0
  53. package/esm2022/message/igo2-core-message.mjs +5 -0
  54. package/esm2022/message/message.module.mjs +26 -0
  55. package/esm2022/message/public_api.mjs +3 -0
  56. package/esm2022/message/shared/index.mjs +5 -0
  57. package/esm2022/message/shared/message.enum.mjs +10 -0
  58. package/esm2022/message/shared/message.interface.mjs +2 -0
  59. package/esm2022/message/shared/message.provider.mjs +22 -0
  60. package/esm2022/message/shared/message.service.mjs +225 -0
  61. package/esm2022/monitoring/__mocks__/index.mjs +2 -0
  62. package/esm2022/monitoring/__mocks__/monitoring-mock.mjs +7 -0
  63. package/esm2022/monitoring/igo2-core-monitoring.mjs +5 -0
  64. package/esm2022/monitoring/monitoring.provider.mjs +20 -0
  65. package/esm2022/monitoring/public_api.mjs +5 -0
  66. package/esm2022/monitoring/sentry/index.mjs +4 -0
  67. package/esm2022/monitoring/sentry/sentry.interface.mjs +2 -0
  68. package/esm2022/monitoring/sentry/sentry.mjs +29 -0
  69. package/esm2022/monitoring/sentry/sentry.provider.mjs +31 -0
  70. package/esm2022/monitoring/sentry/sentry.utils.mjs +14 -0
  71. package/esm2022/monitoring/shared/any-monitoring.interface.mjs +2 -0
  72. package/esm2022/monitoring/shared/index.mjs +3 -0
  73. package/esm2022/monitoring/shared/monitoring.interface.mjs +2 -0
  74. package/esm2022/network/igo2-core-network.mjs +5 -0
  75. package/esm2022/network/network.interfaces.mjs +2 -0
  76. package/esm2022/network/network.service.mjs +66 -0
  77. package/esm2022/network/public_api.mjs +3 -0
  78. package/esm2022/public_api.mjs +3 -27
  79. package/esm2022/regex/igo2-core-regex.mjs +5 -0
  80. package/esm2022/regex/public_api.mjs +3 -0
  81. package/esm2022/regex/regex.interface.mjs +2 -0
  82. package/esm2022/regex/regex.service.mjs +30 -0
  83. package/esm2022/request/error.interceptor.mjs +72 -0
  84. package/esm2022/request/error.module.mjs +39 -0
  85. package/esm2022/request/igo2-core-request.mjs +5 -0
  86. package/esm2022/request/logging.interceptor.mjs +29 -0
  87. package/esm2022/request/logging.module.mjs +30 -0
  88. package/esm2022/request/public_api.mjs +5 -0
  89. package/esm2022/route/igo2-core-route.mjs +5 -0
  90. package/esm2022/route/public_api.mjs +3 -0
  91. package/esm2022/route/route.interface.mjs +2 -0
  92. package/esm2022/route/route.service.mjs +75 -0
  93. package/esm2022/storage/igo2-core-storage.mjs +5 -0
  94. package/esm2022/storage/public_api.mjs +4 -0
  95. package/esm2022/storage/storage.interface.mjs +13 -0
  96. package/esm2022/storage/storage.mjs +76 -0
  97. package/esm2022/storage/storage.service.mjs +21 -0
  98. package/esm2022/user/igo2-core-user.mjs +5 -0
  99. package/esm2022/user/public_api.mjs +2 -0
  100. package/esm2022/user/user.interface.mjs +2 -0
  101. package/fesm2022/igo2-core-activity.mjs +94 -0
  102. package/fesm2022/igo2-core-activity.mjs.map +1 -0
  103. package/fesm2022/igo2-core-analytics.mjs +93 -0
  104. package/fesm2022/igo2-core-analytics.mjs.map +1 -0
  105. package/fesm2022/igo2-core-config.mjs +177 -0
  106. package/fesm2022/igo2-core-config.mjs.map +1 -0
  107. package/fesm2022/igo2-core-environment.mjs +4 -0
  108. package/fesm2022/igo2-core-environment.mjs.map +1 -0
  109. package/fesm2022/igo2-core-gesture.mjs +48 -0
  110. package/fesm2022/igo2-core-gesture.mjs.map +1 -0
  111. package/fesm2022/igo2-core-language.mjs +164 -0
  112. package/fesm2022/igo2-core-language.mjs.map +1 -0
  113. package/fesm2022/igo2-core-media.mjs +100 -0
  114. package/fesm2022/igo2-core-media.mjs.map +1 -0
  115. package/fesm2022/igo2-core-message.mjs +282 -0
  116. package/fesm2022/igo2-core-message.mjs.map +1 -0
  117. package/fesm2022/igo2-core-monitoring.mjs +101 -0
  118. package/fesm2022/igo2-core-monitoring.mjs.map +1 -0
  119. package/fesm2022/igo2-core-network.mjs +72 -0
  120. package/fesm2022/igo2-core-network.mjs.map +1 -0
  121. package/fesm2022/igo2-core-regex.mjs +36 -0
  122. package/fesm2022/igo2-core-regex.mjs.map +1 -0
  123. package/fesm2022/igo2-core-request.mjs +164 -0
  124. package/fesm2022/igo2-core-request.mjs.map +1 -0
  125. package/fesm2022/igo2-core-route.mjs +81 -0
  126. package/fesm2022/igo2-core-route.mjs.map +1 -0
  127. package/fesm2022/igo2-core-storage.mjs +114 -0
  128. package/fesm2022/igo2-core-storage.mjs.map +1 -0
  129. package/fesm2022/igo2-core-user.mjs +4 -0
  130. package/fesm2022/igo2-core-user.mjs.map +1 -0
  131. package/fesm2022/igo2-core.mjs +25 -1539
  132. package/fesm2022/igo2-core.mjs.map +1 -1
  133. package/gesture/index.d.ts +5 -0
  134. package/gesture/public_api.d.ts +2 -0
  135. package/language/index.d.ts +5 -0
  136. package/{lib/language → language}/language.module.d.ts +1 -3
  137. package/language/public_api.d.ts +2 -0
  138. package/{lib/language → language}/shared/index.d.ts +2 -0
  139. package/language/shared/language-mock.provider.d.ts +2 -0
  140. package/language/shared/language.interface.d.ts +9 -0
  141. package/language/shared/language.loader.d.ts +13 -0
  142. package/language/shared/language.provider.d.ts +8 -0
  143. package/lib/core.module.d.ts +8 -11
  144. package/locale/en.core.json +28 -28
  145. package/locale/en.json +1 -1
  146. package/locale/fr.core.json +28 -28
  147. package/locale/fr.json +1 -1
  148. package/media/index.d.ts +5 -0
  149. package/message/index.d.ts +5 -0
  150. package/{lib/message → message}/message.module.d.ts +4 -3
  151. package/message/public_api.d.ts +2 -0
  152. package/{lib/message → message}/shared/index.d.ts +1 -0
  153. package/{lib/message → message}/shared/message.enum.d.ts +1 -1
  154. package/message/shared/message.provider.d.ts +2 -0
  155. package/{lib/message → message}/shared/message.service.d.ts +2 -2
  156. package/{src/lib/message → message/src}/message.theming.scss +26 -26
  157. package/monitoring/__mocks__/index.d.ts +1 -0
  158. package/monitoring/__mocks__/monitoring-mock.d.ts +4 -0
  159. package/monitoring/index.d.ts +5 -0
  160. package/{lib/monitoring/index.d.ts → monitoring/public_api.d.ts} +1 -0
  161. package/{lib/monitoring → monitoring}/sentry/sentry.utils.d.ts +1 -1
  162. package/monitoring/shared/any-monitoring.interface.d.ts +2 -0
  163. package/network/index.d.ts +5 -0
  164. package/{lib/network → network}/network.service.d.ts +1 -1
  165. package/package.json +101 -9
  166. package/public_api.d.ts +1 -26
  167. package/regex/index.d.ts +5 -0
  168. package/{lib/regex → regex}/regex.service.d.ts +1 -1
  169. package/{lib/request → request}/error.interceptor.d.ts +1 -1
  170. package/request/index.d.ts +5 -0
  171. package/{lib/request/index.d.ts → request/public_api.d.ts} +2 -0
  172. package/route/index.d.ts +5 -0
  173. package/route/public_api.d.ts +2 -0
  174. package/src/core-theme.scss +5 -5
  175. package/src/index.scss +6 -6
  176. package/src/packages.import.scss +5 -4
  177. package/src/style/all-style.scss +3 -3
  178. package/src/style/layout.scss +163 -163
  179. package/src/style/partial/core-utils.scss +5 -5
  180. package/src/style/partial/core.variables.scss +5 -5
  181. package/src/style/style.scss +19 -19
  182. package/src/theming/all-theme.scss +15 -14
  183. package/src/theming/material-theme-override.scss +39 -39
  184. package/src/theming/prebuilt-themes/blue-theme.scss +27 -27
  185. package/src/theming/prebuilt-themes/bluedark-theme.scss +60 -60
  186. package/src/theming/prebuilt-themes/bluedq-theme.scss +60 -60
  187. package/src/theming/prebuilt-themes/bluegrey-theme.scss +26 -26
  188. package/src/theming/prebuilt-themes/dark-theme.scss +26 -26
  189. package/src/theming/prebuilt-themes/deeppurple-theme.scss +26 -26
  190. package/src/theming/prebuilt-themes/indigo-theme.scss +26 -26
  191. package/src/theming/prebuilt-themes/orange-theme.scss +26 -26
  192. package/src/theming/prebuilt-themes/teal-theme.scss +26 -26
  193. package/src/theming/typography.scss +28 -28
  194. package/src/theming/utils/_foreground.scss +22 -22
  195. package/storage/index.d.ts +5 -0
  196. package/{lib/storage → storage}/storage.d.ts +1 -1
  197. package/{lib/storage → storage}/storage.service.d.ts +1 -1
  198. package/style/all-style.css +2 -1
  199. package/theming/prebuilt-themes/blue-theme.css +857 -994
  200. package/theming/prebuilt-themes/bluedark-theme.css +857 -994
  201. package/theming/prebuilt-themes/bluedq-theme.css +857 -994
  202. package/theming/prebuilt-themes/bluegrey-theme.css +857 -994
  203. package/theming/prebuilt-themes/dark-theme.css +857 -1001
  204. package/theming/prebuilt-themes/deeppurple-theme.css +857 -994
  205. package/theming/prebuilt-themes/indigo-theme.css +857 -994
  206. package/theming/prebuilt-themes/orange-theme.css +857 -994
  207. package/theming/prebuilt-themes/teal-theme.css +857 -994
  208. package/user/index.d.ts +5 -0
  209. package/esm2022/lib/activity/activity.interceptor.mjs +0 -32
  210. package/esm2022/lib/activity/activity.module.mjs +0 -30
  211. package/esm2022/lib/activity/activity.service.mjs +0 -32
  212. package/esm2022/lib/activity/index.mjs +0 -3
  213. package/esm2022/lib/analytics/index.mjs +0 -2
  214. package/esm2022/lib/analytics/shared/analytics.interface.mjs +0 -2
  215. package/esm2022/lib/analytics/shared/analytics.service.mjs +0 -87
  216. package/esm2022/lib/analytics/shared/index.mjs +0 -3
  217. package/esm2022/lib/compression/compressedData.interface.mjs +0 -2
  218. package/esm2022/lib/compression/compression.service.mjs +0 -142
  219. package/esm2022/lib/compression/index.mjs +0 -3
  220. package/esm2022/lib/config/config-deprecated.mjs +0 -27
  221. package/esm2022/lib/config/config.interface.mjs +0 -2
  222. package/esm2022/lib/config/config.module.mjs +0 -23
  223. package/esm2022/lib/config/config.provider.mjs +0 -21
  224. package/esm2022/lib/config/config.service.mjs +0 -97
  225. package/esm2022/lib/config/index.mjs +0 -4
  226. package/esm2022/lib/config/version.mjs +0 -5
  227. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  228. package/esm2022/lib/environment/index.mjs +0 -2
  229. package/esm2022/lib/gesture/gesture.module.mjs +0 -29
  230. package/esm2022/lib/gesture/gesture.provider.mjs +0 -16
  231. package/esm2022/lib/language/index.mjs +0 -2
  232. package/esm2022/lib/language/language.module.mjs +0 -38
  233. package/esm2022/lib/language/shared/index.mjs +0 -5
  234. package/esm2022/lib/language/shared/language.interface.mjs +0 -2
  235. package/esm2022/lib/language/shared/language.loader.mjs +0 -31
  236. package/esm2022/lib/language/shared/language.provider.mjs +0 -22
  237. package/esm2022/lib/language/shared/language.service.mjs +0 -38
  238. package/esm2022/lib/language/shared/missing-translation.guard.mjs +0 -16
  239. package/esm2022/lib/media/index.mjs +0 -3
  240. package/esm2022/lib/media/media.enum.mjs +0 -12
  241. package/esm2022/lib/media/media.service.mjs +0 -82
  242. package/esm2022/lib/message/index.mjs +0 -2
  243. package/esm2022/lib/message/message.module.mjs +0 -59
  244. package/esm2022/lib/message/shared/index.mjs +0 -4
  245. package/esm2022/lib/message/shared/message.enum.mjs +0 -10
  246. package/esm2022/lib/message/shared/message.interface.mjs +0 -2
  247. package/esm2022/lib/message/shared/message.service.mjs +0 -224
  248. package/esm2022/lib/monitoring/index.mjs +0 -4
  249. package/esm2022/lib/monitoring/monitoring.provider.mjs +0 -20
  250. package/esm2022/lib/monitoring/sentry/index.mjs +0 -4
  251. package/esm2022/lib/monitoring/sentry/sentry.interface.mjs +0 -2
  252. package/esm2022/lib/monitoring/sentry/sentry.mjs +0 -29
  253. package/esm2022/lib/monitoring/sentry/sentry.provider.mjs +0 -31
  254. package/esm2022/lib/monitoring/sentry/sentry.utils.mjs +0 -12
  255. package/esm2022/lib/monitoring/shared/any-monitoring.interface.mjs +0 -2
  256. package/esm2022/lib/monitoring/shared/index.mjs +0 -3
  257. package/esm2022/lib/monitoring/shared/monitoring.interface.mjs +0 -2
  258. package/esm2022/lib/network/index.mjs +0 -3
  259. package/esm2022/lib/network/network.interfaces.mjs +0 -2
  260. package/esm2022/lib/network/network.service.mjs +0 -66
  261. package/esm2022/lib/regex/index.mjs +0 -3
  262. package/esm2022/lib/regex/regex.interface.mjs +0 -2
  263. package/esm2022/lib/regex/regex.service.mjs +0 -30
  264. package/esm2022/lib/request/error.interceptor.mjs +0 -72
  265. package/esm2022/lib/request/error.module.mjs +0 -39
  266. package/esm2022/lib/request/index.mjs +0 -3
  267. package/esm2022/lib/request/logging.interceptor.mjs +0 -29
  268. package/esm2022/lib/request/logging.module.mjs +0 -30
  269. package/esm2022/lib/route/route.interface.mjs +0 -2
  270. package/esm2022/lib/route/route.service.mjs +0 -75
  271. package/esm2022/lib/storage/index.mjs +0 -4
  272. package/esm2022/lib/storage/storage.interface.mjs +0 -13
  273. package/esm2022/lib/storage/storage.mjs +0 -76
  274. package/esm2022/lib/storage/storage.service.mjs +0 -21
  275. package/esm2022/lib/user/index.mjs +0 -2
  276. package/esm2022/lib/user/user.interface.mjs +0 -2
  277. package/lib/analytics/index.d.ts +0 -1
  278. package/lib/compression/compressedData.interface.d.ts +0 -5
  279. package/lib/compression/compression.service.d.ts +0 -15
  280. package/lib/compression/index.d.ts +0 -2
  281. package/lib/config/config.provider.d.ts +0 -23
  282. package/lib/environment/environment.interface.d.ts +0 -18
  283. package/lib/language/index.d.ts +0 -1
  284. package/lib/language/shared/language.interface.d.ts +0 -3
  285. package/lib/language/shared/language.loader.d.ts +0 -11
  286. package/lib/language/shared/language.provider.d.ts +0 -15
  287. package/lib/message/index.d.ts +0 -1
  288. package/lib/monitoring/shared/any-monitoring.interface.d.ts +0 -2
  289. package/{lib/activity → activity}/activity.interceptor.d.ts +0 -0
  290. package/{lib/activity → activity}/activity.module.d.ts +0 -0
  291. package/{lib/activity → activity}/activity.service.d.ts +0 -0
  292. package/{lib/analytics/shared/index.d.ts → analytics/public_api.d.ts} +1 -1
  293. /package/{lib/config → config}/config-deprecated.d.ts +0 -0
  294. /package/{lib/config → config}/version.d.ts +0 -0
  295. /package/{lib/environment/index.d.ts → environment/public_api.d.ts} +0 -0
  296. /package/{lib/gesture → gesture}/gesture.module.d.ts +0 -0
  297. /package/{lib/gesture → gesture}/gesture.provider.d.ts +0 -0
  298. /package/{lib/language → language}/shared/language.service.d.ts +0 -0
  299. /package/{lib/language → language}/shared/missing-translation.guard.d.ts +0 -0
  300. /package/{lib/media → media}/media.enum.d.ts +0 -0
  301. /package/{lib/media → media}/media.service.d.ts +0 -0
  302. /package/{lib/media/index.d.ts → media/public_api.d.ts} +0 -0
  303. /package/{lib/message → message}/shared/message.interface.d.ts +0 -0
  304. /package/{lib/monitoring → monitoring}/monitoring.provider.d.ts +0 -0
  305. /package/{lib/monitoring → monitoring}/sentry/index.d.ts +0 -0
  306. /package/{lib/monitoring → monitoring}/sentry/sentry.d.ts +0 -0
  307. /package/{lib/monitoring → monitoring}/sentry/sentry.interface.d.ts +0 -0
  308. /package/{lib/monitoring → monitoring}/sentry/sentry.provider.d.ts +0 -0
  309. /package/{lib/monitoring → monitoring}/shared/index.d.ts +0 -0
  310. /package/{lib/monitoring → monitoring}/shared/monitoring.interface.d.ts +0 -0
  311. /package/{lib/network → network}/network.interfaces.d.ts +0 -0
  312. /package/{lib/network/index.d.ts → network/public_api.d.ts} +0 -0
  313. /package/{lib/regex/index.d.ts → regex/public_api.d.ts} +0 -0
  314. /package/{lib/regex → regex}/regex.interface.d.ts +0 -0
  315. /package/{lib/request → request}/error.module.d.ts +0 -0
  316. /package/{lib/request → request}/logging.interceptor.d.ts +0 -0
  317. /package/{lib/request → request}/logging.module.d.ts +0 -0
  318. /package/{lib/route → route}/route.interface.d.ts +0 -0
  319. /package/{lib/route → route}/route.service.d.ts +0 -0
  320. /package/{lib/storage/index.d.ts → storage/public_api.d.ts} +0 -0
  321. /package/{lib/storage → storage}/storage.interface.d.ts +0 -0
  322. /package/{lib/user/index.d.ts → user/public_api.d.ts} +0 -0
  323. /package/{lib/user → user}/user.interface.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-core-activity.mjs","sources":["../../../packages/core/activity/src/activity.service.ts","../../../packages/core/activity/src/activity.interceptor.ts","../../../packages/core/activity/src/activity.module.ts","../../../packages/core/activity/src/igo2-core-activity.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { uuid } from '@igo2/utils';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityService {\n public counter$ = new BehaviorSubject<number>(0);\n\n private ids: string[] = [];\n\n constructor() {}\n\n register(): string {\n const id = uuid();\n this.ids.push(id);\n this.counter$.next(this.ids.length);\n\n return id;\n }\n\n unregister(id: string) {\n const index = this.ids.indexOf(id);\n if (index === -1) {\n return;\n }\n this.ids.splice(index, 1);\n\n this.counter$.next(this.ids.length);\n }\n}\n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nimport { ActivityService } from './activity.service';\n\n@Injectable()\nexport class ActivityInterceptor implements HttpInterceptor {\n constructor(private activityService: ActivityService) {}\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const activity = req.headers.get('activityInterceptor');\n if (activity) {\n const actReq = req.clone({\n headers: req.headers.delete('activityInterceptor')\n });\n if (activity === 'false') {\n return next.handle(actReq);\n }\n }\n\n const id = this.activityService.register();\n\n return next.handle(req).pipe(\n finalize(() => {\n this.activityService.unregister(id);\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ActivityInterceptor } from './activity.interceptor';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoActivityModule {\n static forRoot(): ModuleWithProviders<IgoActivityModule> {\n return {\n ngModule: IgoActivityModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ActivityInterceptor,\n multi: true\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ActivityService"],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i1 from '@igo2/core/config';
4
+
5
+ class AnalyticsService {
6
+ config;
7
+ options;
8
+ get paq() {
9
+ return (window._paq = window._paq || []);
10
+ }
11
+ constructor(config) {
12
+ this.config = config;
13
+ this.options = this.config.getConfig('analytics') || {};
14
+ if (this.options.provider === 'matomo') {
15
+ this.initMatomo();
16
+ }
17
+ }
18
+ initMatomo() {
19
+ if (!this.options.url || !this.options.id) {
20
+ return;
21
+ }
22
+ const url = this.options.url.substr(-1) === '/'
23
+ ? this.options.url + 'matomo'
24
+ : this.options.url;
25
+ // this.paq.push(['trackPageView']);
26
+ // this.paq.push(['enableLinkTracking']);
27
+ (() => {
28
+ this.paq.push(['setTrackerUrl', url + '.php']);
29
+ this.paq.push(['setSiteId', this.options.id]);
30
+ const g = document.createElement('script');
31
+ const s = document.getElementsByTagName('script')[0];
32
+ g.type = 'text/javascript';
33
+ g.async = true;
34
+ g.defer = true;
35
+ g.src = url + '.js';
36
+ s.parentNode.insertBefore(g, s);
37
+ })();
38
+ }
39
+ /**
40
+ * Pass `null` to unset the user.
41
+ */
42
+ setUser(user, profils) {
43
+ if (this.options.provider === 'matomo') {
44
+ if (!user) {
45
+ this.paq.push(['resetUserId']);
46
+ this.paq.push(['deleteCustomVariable', 1, 'user']);
47
+ this.paq.push(['deleteCustomVariable', 2, 'name']);
48
+ this.paq.push(['deleteCustomVariable', 3, 'profils']);
49
+ }
50
+ else {
51
+ this.paq.push(['setUserId', user.id]);
52
+ const name = `${user.firstName} ${user.lastName}`;
53
+ this.paq.push(['setCustomVariable', 1, 'user', user.sourceId, 'visit']);
54
+ this.paq.push(['setCustomVariable', 2, 'name', name, 'visit']);
55
+ this.paq.push(['setCustomVariable', 3, 'profils', profils, 'visit']);
56
+ }
57
+ this.paq.push(['trackPageView']);
58
+ this.paq.push(['enableLinkTracking']);
59
+ }
60
+ }
61
+ trackSearch(term, nbResults) {
62
+ if (this.options.provider === 'matomo') {
63
+ this.paq.push(['trackSiteSearch', term, false, nbResults]);
64
+ }
65
+ }
66
+ trackEvent(category, action, name) {
67
+ if (this.options.provider === 'matomo') {
68
+ this.paq.push(['trackEvent', category, action, name]);
69
+ }
70
+ }
71
+ /**
72
+ * Function that tracks layers added to the map
73
+ */
74
+ trackLayer(category, action, parameters) {
75
+ if (this.options.provider === 'matomo')
76
+ this.paq.push(['trackEvent', category, action, parameters]);
77
+ }
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AnalyticsService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
79
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AnalyticsService, providedIn: 'root' });
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AnalyticsService, decorators: [{
82
+ type: Injectable,
83
+ args: [{
84
+ providedIn: 'root'
85
+ }]
86
+ }], ctorParameters: () => [{ type: i1.ConfigService }] });
87
+
88
+ /**
89
+ * Generated bundle index. Do not edit.
90
+ */
91
+
92
+ export { AnalyticsService };
93
+ //# sourceMappingURL=igo2-core-analytics.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-core-analytics.mjs","sources":["../../../packages/core/analytics/src/analytics.service.ts","../../../packages/core/analytics/src/igo2-core-analytics.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { AnalyticsBaseUser, AnalyticsOptions } from './analytics.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnalyticsService {\n private options: AnalyticsOptions;\n\n get paq() {\n return ((window as any)._paq = (window as any)._paq || []);\n }\n\n constructor(private config: ConfigService) {\n this.options = this.config.getConfig('analytics') || {};\n\n if (this.options.provider === 'matomo') {\n this.initMatomo();\n }\n }\n\n private initMatomo() {\n if (!this.options.url || !this.options.id) {\n return;\n }\n const url =\n this.options.url.substr(-1) === '/'\n ? this.options.url + 'matomo'\n : this.options.url;\n\n // this.paq.push(['trackPageView']);\n // this.paq.push(['enableLinkTracking']);\n (() => {\n this.paq.push(['setTrackerUrl', url + '.php']);\n this.paq.push(['setSiteId', this.options.id]);\n const g = document.createElement('script');\n const s = document.getElementsByTagName('script')[0];\n g.type = 'text/javascript';\n g.async = true;\n g.defer = true;\n g.src = url + '.js';\n s.parentNode.insertBefore(g, s);\n })();\n }\n\n /**\n * Pass `null` to unset the user.\n */\n public setUser(user: AnalyticsBaseUser | null, profils?: string[]) {\n if (this.options.provider === 'matomo') {\n if (!user) {\n this.paq.push(['resetUserId']);\n this.paq.push(['deleteCustomVariable', 1, 'user']);\n this.paq.push(['deleteCustomVariable', 2, 'name']);\n this.paq.push(['deleteCustomVariable', 3, 'profils']);\n } else {\n this.paq.push(['setUserId', user.id]);\n\n const name = `${user.firstName} ${user.lastName}`;\n this.paq.push(['setCustomVariable', 1, 'user', user.sourceId, 'visit']);\n this.paq.push(['setCustomVariable', 2, 'name', name, 'visit']);\n this.paq.push(['setCustomVariable', 3, 'profils', profils, 'visit']);\n }\n\n this.paq.push(['trackPageView']);\n this.paq.push(['enableLinkTracking']);\n }\n }\n\n public trackSearch(term: string, nbResults: number) {\n if (this.options.provider === 'matomo') {\n this.paq.push(['trackSiteSearch', term, false, nbResults]);\n }\n }\n\n public trackEvent(category: string, action: string, name: string) {\n if (this.options.provider === 'matomo') {\n this.paq.push(['trackEvent', category, action, name]);\n }\n }\n\n /**\n * Function that tracks layers added to the map\n */\n public trackLayer(category: string, action: string, parameters: any) {\n if (this.options.provider === 'matomo')\n this.paq.push(['trackEvent', category, action, parameters]);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MASa,gBAAgB,CAAA;AAOP,IAAA,MAAA,CAAA;AANZ,IAAA,OAAO,CAAmB;AAElC,IAAA,IAAI,GAAG,GAAA;QACL,QAAS,MAAc,CAAC,IAAI,GAAI,MAAc,CAAC,IAAI,IAAI,EAAE,EAAE;KAC5D;AAED,IAAA,WAAA,CAAoB,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;YACzC,OAAO;SACR;AACD,QAAA,MAAM,GAAG,GACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;AACjC,cAAE,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ;AAC7B,cAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;AAIvB,QAAA,CAAC,MAAK;AACJ,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,YAAA,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAC3B,YAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AACf,YAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AACf,YAAA,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;YACpB,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACjC,GAAG,CAAC;KACN;AAED;;AAEG;IACI,OAAO,CAAC,IAA8B,EAAE,OAAkB,EAAA;QAC/D,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,IAAI,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/B,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACnD,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACnD,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;aACvD;iBAAM;AACL,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEtC,MAAM,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAA,CAAE,CAAC;AAClD,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACxE,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/D,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;aACtE;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;SACvC;KACF;IAEM,WAAW,CAAC,IAAY,EAAE,SAAiB,EAAA;QAChD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;SAC5D;KACF;AAEM,IAAA,UAAU,CAAC,QAAgB,EAAE,MAAc,EAAE,IAAY,EAAA;QAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;SACvD;KACF;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,QAAgB,EAAE,MAAc,EAAE,UAAe,EAAA;AACjE,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;AACpC,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;KAC/D;uGAjFU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
@@ -0,0 +1,177 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, InjectionToken, makeEnvironmentProviders, APP_INITIALIZER, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common/http';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { ObjectUtils } from '@igo2/utils';
6
+ import { BehaviorSubject, throwError } from 'rxjs';
7
+ import { catchError } from 'rxjs/operators';
8
+
9
+ const CONFIG_DEPRECATED = {
10
+ showMenuButton: {
11
+ alternativeKey: 'menu.button.visible',
12
+ mayBeRemoveIn: new Date('2024-06-06')
13
+ },
14
+ menuButtonReverseColor: {
15
+ alternativeKey: 'menu.button.useThemeColor',
16
+ mayBeRemoveIn: new Date('2024-06-06')
17
+ },
18
+ importWithStyle: {
19
+ alternativeKey: 'importExport.importWithStyle',
20
+ mayBeRemoveIn: new Date('2024-06-06')
21
+ },
22
+ hasGeolocateButton: {
23
+ alternativeKey: 'geolocate.button.visible',
24
+ mayBeRemoveIn: new Date('2024-06-06')
25
+ }
26
+ };
27
+ const ALTERNATE_CONFIG_FROM_DEPRECATION = new Map(Object.entries(CONFIG_DEPRECATED)
28
+ .filter(([_, options]) => options.alternativeKey)
29
+ .map(([key, options]) => [
30
+ options.alternativeKey,
31
+ {
32
+ deprecatedKey: key
33
+ }
34
+ ]));
35
+
36
+ const version = {
37
+ lib: '17.0.0-next.10',
38
+ releaseDate: 1717162699470
39
+ };
40
+
41
+ class ConfigService {
42
+ config;
43
+ httpClient;
44
+ configDeprecated = new Map(Object.entries(CONFIG_DEPRECATED));
45
+ _isLoaded$ = new BehaviorSubject(null);
46
+ isLoaded$ = this._isLoaded$.asObservable();
47
+ constructor(handler) {
48
+ this.httpClient = new HttpClient(handler);
49
+ }
50
+ /**
51
+ * Use to get the all config file (merge from environnement.ts and config.json)
52
+ */
53
+ getConfigs() {
54
+ Array.from(this.configDeprecated.keys()).map((deprecatedKey) => {
55
+ const deprecatedValue = ObjectUtils.resolve(this.config, deprecatedKey);
56
+ if (deprecatedValue !== undefined) {
57
+ this.handleDeprecatedConfig(deprecatedKey);
58
+ }
59
+ });
60
+ return this.config;
61
+ }
62
+ /**
63
+ * Use to get the data found in config file
64
+ */
65
+ getConfig(key, defaultValue) {
66
+ let value = ObjectUtils.resolve(this.config, key);
67
+ const isDeprecated = this.configDeprecated.get(key);
68
+ if (isDeprecated && value !== undefined) {
69
+ this.handleDeprecatedConfig(key);
70
+ }
71
+ else if (value === undefined) {
72
+ value = this.handleDeprecationPossibility(key);
73
+ }
74
+ return value ?? defaultValue;
75
+ }
76
+ handleDeprecatedConfig(key) {
77
+ const options = this.configDeprecated.get(key);
78
+ let message = `This config (${key}) is deprecated and will be removed shortly`;
79
+ if (options.alternativeKey) {
80
+ message += ` You should use this key (${options.alternativeKey}) as an alternate solution`;
81
+ }
82
+ const currentDate = new Date();
83
+ currentDate >= options.mayBeRemoveIn
84
+ ? console.error(message)
85
+ : console.warn(message);
86
+ }
87
+ handleDeprecationPossibility(key) {
88
+ const options = ALTERNATE_CONFIG_FROM_DEPRECATION.get(key);
89
+ if (!options) {
90
+ return;
91
+ }
92
+ return this.getConfig(options.deprecatedKey);
93
+ }
94
+ /**
95
+ * This method loads "[path]" to get all config's variables
96
+ */
97
+ load(options) {
98
+ const baseConfig = options.default;
99
+ if (!options.path) {
100
+ this.config = baseConfig;
101
+ this._isLoaded$.next(true);
102
+ return true;
103
+ }
104
+ return new Promise((resolve, _reject) => {
105
+ this.httpClient
106
+ .get(options.path)
107
+ .pipe(catchError((error) => {
108
+ console.log(`Configuration file ${options.path} could not be read`);
109
+ this._isLoaded$.next(false);
110
+ resolve(true);
111
+ return throwError(error.error || 'Server error');
112
+ }))
113
+ .subscribe((configResponse) => {
114
+ this.config = ObjectUtils.mergeDeep(ObjectUtils.mergeDeep({ version }, baseConfig), configResponse);
115
+ this._isLoaded$.next(true);
116
+ resolve(true);
117
+ });
118
+ });
119
+ }
120
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ConfigService, deps: [{ token: i1.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable });
121
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ConfigService, providedIn: 'root' });
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ConfigService, decorators: [{
124
+ type: Injectable,
125
+ args: [{
126
+ providedIn: 'root'
127
+ }]
128
+ }], ctorParameters: () => [{ type: i1.HttpBackend }] });
129
+
130
+ let CONFIG_OPTIONS = new InjectionToken('configOptions');
131
+ function provideConfig(options) {
132
+ return makeEnvironmentProviders([
133
+ {
134
+ provide: CONFIG_OPTIONS,
135
+ useValue: options
136
+ },
137
+ {
138
+ provide: APP_INITIALIZER,
139
+ useFactory: configFactory,
140
+ multi: true,
141
+ deps: [ConfigService, CONFIG_OPTIONS]
142
+ }
143
+ ]);
144
+ }
145
+ function configFactory(configService, options) {
146
+ return () => configService.load(options);
147
+ }
148
+
149
+ /**
150
+ * @deprecated import the provideConfig directly
151
+ */
152
+ class IgoConfigModule {
153
+ static forRoot() {
154
+ return {
155
+ ngModule: IgoConfigModule,
156
+ providers: [provideConfig({})]
157
+ };
158
+ }
159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
160
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: IgoConfigModule });
161
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoConfigModule });
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoConfigModule, decorators: [{
164
+ type: NgModule,
165
+ args: [{
166
+ imports: [],
167
+ declarations: [],
168
+ exports: []
169
+ }]
170
+ }] });
171
+
172
+ /**
173
+ * Generated bundle index. Do not edit.
174
+ */
175
+
176
+ export { CONFIG_OPTIONS, ConfigService, IgoConfigModule, provideConfig, version };
177
+ //# sourceMappingURL=igo2-core-config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-core-config.mjs","sources":["../../../packages/core/config/src/config-deprecated.ts","../../../packages/core/config/src/version.ts","../../../packages/core/config/src/config.service.ts","../../../packages/core/config/src/config.provider.ts","../../../packages/core/config/src/config.module.ts","../../../packages/core/config/src/igo2-core-config.ts"],"sourcesContent":["import { AlternateConfigOptions, DeprecatedOptions } from './config.interface';\n\nexport const CONFIG_DEPRECATED: { [key: string]: DeprecatedOptions } = {\n showMenuButton: {\n alternativeKey: 'menu.button.visible',\n mayBeRemoveIn: new Date('2024-06-06')\n },\n menuButtonReverseColor: {\n alternativeKey: 'menu.button.useThemeColor',\n mayBeRemoveIn: new Date('2024-06-06')\n },\n importWithStyle: {\n alternativeKey: 'importExport.importWithStyle',\n mayBeRemoveIn: new Date('2024-06-06')\n },\n hasGeolocateButton: {\n alternativeKey: 'geolocate.button.visible',\n mayBeRemoveIn: new Date('2024-06-06')\n }\n};\n\nexport const ALTERNATE_CONFIG_FROM_DEPRECATION = new Map<\n string,\n AlternateConfigOptions\n>(\n Object.entries(CONFIG_DEPRECATED)\n .filter(([_, options]) => options.alternativeKey)\n .map(([key, options]) => [\n options.alternativeKey,\n {\n deprecatedKey: key\n } satisfies AlternateConfigOptions\n ])\n);\n","export interface Version {\r\n app?: string;\r\n lib?: string;\r\n releaseDateApp?: number;\r\n releaseDate?: number;\r\n}\r\n\r\nexport const version: Version = {\r\n lib: '17.0.0-next.10',\r\n releaseDate: 1717162699470\r\n};\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { BehaviorSubject, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport {\n ALTERNATE_CONFIG_FROM_DEPRECATION,\n CONFIG_DEPRECATED\n} from './config-deprecated';\nimport { ConfigOptions } from './config.interface';\nimport { version } from './version';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService<T extends object = { [key: string]: any }> {\n private config: T | null;\n private httpClient: HttpClient;\n private configDeprecated = new Map(Object.entries(CONFIG_DEPRECATED));\n\n private _isLoaded$ = new BehaviorSubject<boolean>(null);\n isLoaded$ = this._isLoaded$.asObservable();\n\n constructor(handler: HttpBackend) {\n this.httpClient = new HttpClient(handler);\n }\n\n /**\n * Use to get the all config file (merge from environnement.ts and config.json)\n */\n public getConfigs(): any {\n Array.from(this.configDeprecated.keys()).map((deprecatedKey) => {\n const deprecatedValue = ObjectUtils.resolve(this.config, deprecatedKey);\n if (deprecatedValue !== undefined) {\n this.handleDeprecatedConfig(deprecatedKey);\n }\n });\n return this.config;\n }\n\n /**\n * Use to get the data found in config file\n */\n public getConfig<T = any>(key: string, defaultValue?: unknown): T {\n let value = ObjectUtils.resolve(this.config, key);\n\n const isDeprecated = this.configDeprecated.get(key);\n if (isDeprecated && value !== undefined) {\n this.handleDeprecatedConfig(key);\n } else if (value === undefined) {\n value = this.handleDeprecationPossibility(key);\n }\n\n return value ?? defaultValue;\n }\n\n private handleDeprecatedConfig(key: string): void {\n const options = this.configDeprecated.get(key);\n\n let message = `This config (${key}) is deprecated and will be removed shortly`;\n if (options.alternativeKey) {\n message += ` You should use this key (${options.alternativeKey}) as an alternate solution`;\n }\n\n const currentDate = new Date();\n currentDate >= options.mayBeRemoveIn\n ? console.error(message)\n : console.warn(message);\n }\n\n private handleDeprecationPossibility(key: string): any {\n const options = ALTERNATE_CONFIG_FROM_DEPRECATION.get(key);\n if (!options) {\n return;\n }\n\n return this.getConfig(options.deprecatedKey);\n }\n\n /**\n * This method loads \"[path]\" to get all config's variables\n */\n public load(options: ConfigOptions<T>) {\n const baseConfig = options.default;\n if (!options.path) {\n this.config = baseConfig;\n this._isLoaded$.next(true);\n return true;\n }\n\n return new Promise((resolve, _reject) => {\n this.httpClient\n .get(options.path)\n .pipe(\n catchError((error: any): any => {\n console.log(`Configuration file ${options.path} could not be read`);\n this._isLoaded$.next(false);\n resolve(true);\n return throwError(error.error || 'Server error');\n })\n )\n .subscribe((configResponse: object) => {\n this.config = ObjectUtils.mergeDeep(\n ObjectUtils.mergeDeep({ version }, baseConfig),\n configResponse\n );\n this._isLoaded$.next(true);\n resolve(true);\n });\n });\n }\n}\n","import {\n APP_INITIALIZER,\n EnvironmentProviders,\n InjectionToken,\n makeEnvironmentProviders\n} from '@angular/core';\n\nimport { ConfigOptions } from './config.interface';\nimport { ConfigService } from './config.service';\n\nexport let CONFIG_OPTIONS = new InjectionToken<ConfigOptions>('configOptions');\n\nexport function provideConfig(options: ConfigOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: CONFIG_OPTIONS,\n useValue: options\n },\n {\n provide: APP_INITIALIZER,\n useFactory: configFactory,\n multi: true,\n deps: [ConfigService, CONFIG_OPTIONS]\n }\n ]);\n}\n\nfunction configFactory(configService: ConfigService, options: ConfigOptions) {\n return () => configService.load(options);\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { provideConfig } from './config.provider';\n\n/**\n * @deprecated import the provideConfig directly\n */\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoConfigModule {\n static forRoot(): ModuleWithProviders<IgoConfigModule> {\n return {\n ngModule: IgoConfigModule,\n providers: [provideConfig({})]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ //# sourceMappingURL=igo2-core-environment.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-core-environment.mjs","sources":["../../../packages/core/environment/src/igo2-core-environment.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -0,0 +1,48 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { HammerGestureConfig, HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';
4
+
5
+ class IgoGestureConfig extends HammerGestureConfig {
6
+ buildHammer(element) {
7
+ const mc = super.buildHammer(element);
8
+ mc.set({ touchAction: 'pan-y' });
9
+ return mc;
10
+ }
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoGestureConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
12
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoGestureConfig });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoGestureConfig, decorators: [{
15
+ type: Injectable
16
+ }] });
17
+
18
+ class IgoGestureModule {
19
+ static forRoot() {
20
+ return {
21
+ ngModule: IgoGestureModule,
22
+ providers: [
23
+ {
24
+ provide: HAMMER_GESTURE_CONFIG,
25
+ useClass: IgoGestureConfig
26
+ }
27
+ ]
28
+ };
29
+ }
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoGestureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
31
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: IgoGestureModule, imports: [HammerModule] });
32
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoGestureModule, imports: [HammerModule] });
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoGestureModule, decorators: [{
35
+ type: NgModule,
36
+ args: [{
37
+ imports: [HammerModule],
38
+ declarations: [],
39
+ exports: []
40
+ }]
41
+ }] });
42
+
43
+ /**
44
+ * Generated bundle index. Do not edit.
45
+ */
46
+
47
+ export { IgoGestureConfig, IgoGestureModule };
48
+ //# sourceMappingURL=igo2-core-gesture.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-core-gesture.mjs","sources":["../../../packages/core/gesture/src/gesture.provider.ts","../../../packages/core/gesture/src/gesture.module.ts","../../../packages/core/gesture/src/igo2-core-gesture.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\n\n@Injectable()\nexport class IgoGestureConfig extends HammerGestureConfig {\n buildHammer(element: HTMLElement) {\n const mc = super.buildHammer(element) as any;\n mc.set({ touchAction: 'pan-y' });\n return mc;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';\n\nimport { IgoGestureConfig } from './gesture.provider';\n\n@NgModule({\n imports: [HammerModule],\n declarations: [],\n exports: []\n})\nexport class IgoGestureModule {\n static forRoot(): ModuleWithProviders<IgoGestureModule> {\n return {\n ngModule: IgoGestureModule,\n providers: [\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: IgoGestureConfig\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;AAIM,MAAO,gBAAiB,SAAQ,mBAAmB,CAAA;AACvD,IAAA,WAAW,CAAC,OAAoB,EAAA;QAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAQ,CAAC;QAC7C,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AACjC,QAAA,OAAO,EAAE,CAAC;KACX;uGALU,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2GAAhB,gBAAgB,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;MCOE,gBAAgB,CAAA;AAC3B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,qBAAqB;AAC9B,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA;AACF,aAAA;SACF,CAAC;KACH;uGAXU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJjB,YAAY,CAAA,EAAA,CAAA,CAAA;AAIX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJjB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAIX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
@@ -0,0 +1,164 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, Injectable, makeEnvironmentProviders, importProvidersFrom, APP_INITIALIZER } from '@angular/core';
3
+ import * as i1 from '@ngx-translate/core';
4
+ import { TranslateModule, MissingTranslationHandler, TranslateLoader, TranslateFakeLoader } from '@ngx-translate/core';
5
+ import { HttpClient, HttpBackend } from '@angular/common/http';
6
+ import { ObjectUtils } from '@igo2/utils';
7
+ import { BehaviorSubject, first, switchMap, forkJoin, map, tap, combineLatest } from 'rxjs';
8
+ import { ConfigService } from '@igo2/core/config';
9
+ import { timeout, catchError } from 'rxjs/operators';
10
+
11
+ class IgoLanguageModule {
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoLanguageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: IgoLanguageModule, exports: [TranslateModule] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoLanguageModule, imports: [TranslateModule] });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoLanguageModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ exports: [TranslateModule]
20
+ }]
21
+ }] });
22
+
23
+ class LanguageLoaderBase {
24
+ }
25
+
26
+ class LanguageLoader {
27
+ configService;
28
+ prefix;
29
+ suffix;
30
+ httpClient;
31
+ _isLoaded$ = new BehaviorSubject(null);
32
+ isLoaded$ = this._isLoaded$.asObservable();
33
+ constructor(handler, configService, prefix, suffix = '.json') {
34
+ this.configService = configService;
35
+ this.prefix = prefix;
36
+ this.suffix = suffix;
37
+ this.httpClient = new HttpClient(handler);
38
+ }
39
+ getTranslation(lang) {
40
+ const igoLocale$ = this.httpClient.get(`locale/libs_locale/${lang}.json`);
41
+ return this.configService.isLoaded$.pipe(first((isLoaded) => isLoaded), switchMap(() => {
42
+ if (this.configService && !this.prefix) {
43
+ const prefix = this.configService.getConfig('language.prefix');
44
+ this.prefix = !prefix || Array.isArray(prefix) ? prefix : [prefix];
45
+ }
46
+ if (!this.prefix || this.prefix.length === 0) {
47
+ this._isLoaded$.next(true);
48
+ return igoLocale$;
49
+ }
50
+ const appLocale$ = this.prefix.map((prefix) => this.httpClient.get(`${prefix}${lang}${this.suffix}`));
51
+ const locale$ = forkJoin([igoLocale$, ...appLocale$]);
52
+ return locale$.pipe(map((translations) => {
53
+ return translations.reduce((acc, current) => ObjectUtils.mergeDeep(acc, current), {});
54
+ }), tap(() => {
55
+ this._isLoaded$.next(true);
56
+ }));
57
+ }));
58
+ }
59
+ }
60
+
61
+ class LanguageService {
62
+ translate;
63
+ language;
64
+ language$ = new BehaviorSubject(undefined);
65
+ constructor(translate) {
66
+ this.translate = translate;
67
+ this.language = this.translate.getBrowserLang();
68
+ const lang = this.getLanguage();
69
+ this.translate.setDefaultLang(lang);
70
+ this.language$.next(lang);
71
+ }
72
+ getLanguage() {
73
+ return this.language.match(/en|fr/) ? this.language : 'en';
74
+ }
75
+ setLanguage(language) {
76
+ this.language = language.match(/en|fr/) ? language : 'en';
77
+ combineLatest([
78
+ this.translate.use(this.language),
79
+ this.translate.reloadLang(this.language)
80
+ ]).subscribe(() => {
81
+ this.language$.next(this.language);
82
+ });
83
+ }
84
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: LanguageService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
85
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: LanguageService, providedIn: 'root' });
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: LanguageService, decorators: [{
88
+ type: Injectable,
89
+ args: [{
90
+ providedIn: 'root'
91
+ }]
92
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
93
+
94
+ class IgoMissingTranslationHandler {
95
+ handle(params) {
96
+ if (!params.translateService.langs.length) {
97
+ const error = 'Translations are not yet loaded. \
98
+ Check that the LanguageService is injected.';
99
+ throw new Error(error);
100
+ }
101
+ if (params.key.substr(0, 4) === 'igo.') {
102
+ throw new Error(`The Key "${params.key}" is missing in locale file.`);
103
+ }
104
+ else {
105
+ return params.key;
106
+ }
107
+ }
108
+ }
109
+
110
+ // 5 seconds
111
+ const TIMEOUT_DURATION = 5000;
112
+ /**
113
+ * Make sure you only call this method in the root module of your application, most of the time called AppModule.
114
+ */
115
+ function provideTranslation(loader) {
116
+ return makeEnvironmentProviders([
117
+ importProvidersFrom(TranslateModule.forRoot(setTranslationConfig(loader))),
118
+ {
119
+ provide: APP_INITIALIZER,
120
+ useFactory: (languageService) => () => {
121
+ return languageService.translate.currentLoader.isLoaded$?.pipe(timeout(TIMEOUT_DURATION), first((isLoaded) => isLoaded === true), catchError((error) => {
122
+ error.message += ` - Request timed out for language loader after: ${TIMEOUT_DURATION}`;
123
+ throw error;
124
+ }));
125
+ },
126
+ deps: [LanguageService],
127
+ multi: true
128
+ }
129
+ ]);
130
+ }
131
+ const setTranslationConfig = (loader) => ({
132
+ defaultLanguage: 'fr',
133
+ loader: loader ?? DEFAULT_LANGUAGE_LOADER,
134
+ missingTranslationHandler: {
135
+ provide: MissingTranslationHandler,
136
+ useClass: IgoMissingTranslationHandler
137
+ }
138
+ });
139
+ const DEFAULT_LANGUAGE_LOADER = {
140
+ provide: TranslateLoader,
141
+ useFactory: defaultLanguageLoader,
142
+ deps: [HttpBackend, ConfigService]
143
+ };
144
+ function defaultLanguageLoader(http, config) {
145
+ return new LanguageLoader(http, config, undefined, undefined);
146
+ }
147
+
148
+ function provideMockTranslation(loader) {
149
+ return makeEnvironmentProviders([
150
+ importProvidersFrom(TranslateModule.forRoot({
151
+ loader: {
152
+ provide: TranslateLoader,
153
+ useClass: TranslateFakeLoader
154
+ }
155
+ }))
156
+ ]);
157
+ }
158
+
159
+ /**
160
+ * Generated bundle index. Do not edit.
161
+ */
162
+
163
+ export { DEFAULT_LANGUAGE_LOADER, IgoLanguageModule, IgoMissingTranslationHandler, LanguageLoader, LanguageLoaderBase, LanguageService, provideMockTranslation, provideTranslation, setTranslationConfig };
164
+ //# sourceMappingURL=igo2-core-language.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-core-language.mjs","sources":["../../../packages/core/language/src/language.module.ts","../../../packages/core/language/src/shared/language.interface.ts","../../../packages/core/language/src/shared/language.loader.ts","../../../packages/core/language/src/shared/language.service.ts","../../../packages/core/language/src/shared/missing-translation.guard.ts","../../../packages/core/language/src/shared/language.provider.ts","../../../packages/core/language/src/shared/language-mock.provider.ts","../../../packages/core/language/src/igo2-core-language.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n exports: [TranslateModule]\n})\nexport class IgoLanguageModule {}\n","import { TranslateLoader } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\n\nexport interface LanguageOptions {\n prefix?: string | string[];\n}\n\nexport abstract class LanguageLoaderBase implements TranslateLoader {\n abstract isLoaded$: Observable<boolean>;\n abstract getTranslation(lang: string): Observable<any>;\n}\n","import { HttpBackend, HttpClient } from '@angular/common/http';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { BehaviorSubject, first, forkJoin, map, switchMap, tap } from 'rxjs';\n\nimport { LanguageLoaderBase } from './language.interface';\n\nexport class LanguageLoader implements LanguageLoaderBase {\n private httpClient: HttpClient;\n\n private _isLoaded$ = new BehaviorSubject<boolean>(null);\n isLoaded$ = this._isLoaded$.asObservable();\n\n constructor(\n handler: HttpBackend,\n private configService: ConfigService,\n private prefix?: string | string[],\n private suffix: string = '.json'\n ) {\n this.httpClient = new HttpClient(handler);\n }\n\n public getTranslation(lang: string): any {\n const igoLocale$ = this.httpClient.get(`locale/libs_locale/${lang}.json`);\n return this.configService.isLoaded$.pipe(\n first((isLoaded) => isLoaded),\n switchMap(() => {\n if (this.configService && !this.prefix) {\n const prefix = this.configService.getConfig('language.prefix');\n this.prefix = !prefix || Array.isArray(prefix) ? prefix : [prefix];\n }\n\n if (!this.prefix || this.prefix.length === 0) {\n this._isLoaded$.next(true);\n return igoLocale$;\n }\n\n const appLocale$ = (this.prefix as string[]).map((prefix) =>\n this.httpClient.get(`${prefix}${lang}${this.suffix}`)\n );\n\n const locale$ = forkJoin([igoLocale$, ...appLocale$]);\n\n return locale$.pipe(\n map((translations) => {\n return translations.reduce(\n (acc, current) => ObjectUtils.mergeDeep(acc, current),\n {}\n );\n }),\n tap(() => {\n this._isLoaded$.next(true);\n })\n );\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n private language: string;\n readonly language$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n constructor(public translate: TranslateService) {\n this.language = this.translate.getBrowserLang();\n const lang = this.getLanguage();\n this.translate.setDefaultLang(lang);\n this.language$.next(lang);\n }\n\n public getLanguage(): string {\n return this.language.match(/en|fr/) ? this.language : 'en';\n }\n\n public setLanguage(language: string) {\n this.language = language.match(/en|fr/) ? language : 'en';\n combineLatest([\n this.translate.use(this.language),\n this.translate.reloadLang(this.language)\n ]).subscribe(() => {\n this.language$.next(this.language);\n });\n }\n}\n","import {\n MissingTranslationHandler,\n MissingTranslationHandlerParams\n} from '@ngx-translate/core';\n\nexport class IgoMissingTranslationHandler implements MissingTranslationHandler {\n handle(params: MissingTranslationHandlerParams) {\n if (!params.translateService.langs.length) {\n const error =\n 'Translations are not yet loaded. \\\n Check that the LanguageService is injected.';\n throw new Error(error);\n }\n\n if (params.key.substr(0, 4) === 'igo.') {\n throw new Error(`The Key \"${params.key}\" is missing in locale file.`);\n } else {\n return params.key;\n }\n }\n}\n","import { HttpBackend } from '@angular/common/http';\nimport {\n APP_INITIALIZER,\n EnvironmentProviders,\n Provider,\n importProvidersFrom,\n makeEnvironmentProviders\n} from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport {\n MissingTranslationHandler,\n TranslateLoader,\n TranslateModule,\n TranslateModuleConfig\n} from '@ngx-translate/core';\nimport { first } from 'rxjs';\nimport { catchError, timeout } from 'rxjs/operators';\n\nimport { LanguageLoaderBase } from './language.interface';\nimport { LanguageLoader } from './language.loader';\nimport { LanguageService } from './language.service';\nimport { IgoMissingTranslationHandler } from './missing-translation.guard';\n\n// 5 seconds\nconst TIMEOUT_DURATION = 5000;\n\n/**\n * Make sure you only call this method in the root module of your application, most of the time called AppModule.\n */\nexport function provideTranslation(loader?: Provider): EnvironmentProviders {\n return makeEnvironmentProviders([\n importProvidersFrom(TranslateModule.forRoot(setTranslationConfig(loader))),\n {\n provide: APP_INITIALIZER,\n useFactory: (languageService: LanguageService) => () => {\n return (\n languageService.translate.currentLoader as LanguageLoaderBase\n ).isLoaded$?.pipe(\n timeout(TIMEOUT_DURATION),\n first((isLoaded) => isLoaded === true),\n catchError((error) => {\n error.message += ` - Request timed out for language loader after: ${TIMEOUT_DURATION}`;\n throw error;\n })\n );\n },\n deps: [LanguageService],\n multi: true\n }\n ]);\n}\n\nexport const setTranslationConfig = (\n loader?: Provider\n): TranslateModuleConfig => ({\n defaultLanguage: 'fr',\n loader: loader ?? DEFAULT_LANGUAGE_LOADER,\n missingTranslationHandler: {\n provide: MissingTranslationHandler,\n useClass: IgoMissingTranslationHandler\n }\n});\n\nexport const DEFAULT_LANGUAGE_LOADER: Provider = {\n provide: TranslateLoader,\n useFactory: defaultLanguageLoader,\n deps: [HttpBackend, ConfigService]\n};\n\nfunction defaultLanguageLoader(http: HttpBackend, config?: ConfigService) {\n return new LanguageLoader(http, config, undefined, undefined);\n}\n","import {\n EnvironmentProviders,\n Provider,\n importProvidersFrom,\n makeEnvironmentProviders\n} from '@angular/core';\n\nimport {\n TranslateFakeLoader,\n TranslateLoader,\n TranslateModule\n} from '@ngx-translate/core';\n\nexport function provideMockTranslation(\n loader?: Provider\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n importProvidersFrom(\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useClass: TranslateFakeLoader\n }\n })\n )\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}