@igo2/core 16.3.0 → 17.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/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.provider.d.ts +1 -1
  8. package/{lib/config → config}/config.service.d.ts +1 -1
  9. package/config/index.d.ts +5 -0
  10. package/{lib/config/index.d.ts → config/public_api.d.ts} +2 -0
  11. package/environment/environment.interface.d.ts +16 -0
  12. package/environment/index.d.ts +5 -0
  13. package/esm2022/activity/activity.interceptor.mjs +32 -0
  14. package/esm2022/activity/activity.module.mjs +30 -0
  15. package/esm2022/activity/activity.service.mjs +32 -0
  16. package/esm2022/activity/igo2-core-activity.mjs +5 -0
  17. package/esm2022/activity/public_api.mjs +4 -0
  18. package/esm2022/analytics/analytics.interface.mjs +2 -0
  19. package/esm2022/analytics/analytics.service.mjs +87 -0
  20. package/esm2022/analytics/igo2-core-analytics.mjs +5 -0
  21. package/esm2022/analytics/public_api.mjs +3 -0
  22. package/esm2022/config/config-deprecated.mjs +27 -0
  23. package/esm2022/config/config.interface.mjs +2 -0
  24. package/esm2022/config/config.module.mjs +23 -0
  25. package/esm2022/config/config.provider.mjs +21 -0
  26. package/esm2022/config/config.service.mjs +97 -0
  27. package/esm2022/config/igo2-core-config.mjs +5 -0
  28. package/esm2022/config/public_api.mjs +6 -0
  29. package/esm2022/config/version.mjs +5 -0
  30. package/esm2022/environment/environment.interface.mjs +2 -0
  31. package/esm2022/environment/igo2-core-environment.mjs +5 -0
  32. package/esm2022/environment/public_api.mjs +2 -0
  33. package/esm2022/gesture/gesture.module.mjs +29 -0
  34. package/esm2022/gesture/gesture.provider.mjs +16 -0
  35. package/esm2022/gesture/igo2-core-gesture.mjs +5 -0
  36. package/esm2022/gesture/public_api.mjs +3 -0
  37. package/esm2022/language/igo2-core-language.mjs +5 -0
  38. package/esm2022/language/language.module.mjs +15 -0
  39. package/esm2022/language/public_api.mjs +3 -0
  40. package/esm2022/language/shared/index.mjs +7 -0
  41. package/esm2022/language/shared/language-mock.provider.mjs +5 -0
  42. package/esm2022/language/shared/language.interface.mjs +3 -0
  43. package/esm2022/language/shared/language.loader.mjs +38 -0
  44. package/esm2022/language/shared/language.provider.mjs +41 -0
  45. package/esm2022/language/shared/language.service.mjs +38 -0
  46. package/esm2022/language/shared/missing-translation.guard.mjs +16 -0
  47. package/esm2022/lib/core.module.mjs +19 -22
  48. package/esm2022/media/igo2-core-media.mjs +5 -0
  49. package/esm2022/media/media.enum.mjs +12 -0
  50. package/esm2022/media/media.service.mjs +82 -0
  51. package/esm2022/media/public_api.mjs +3 -0
  52. package/esm2022/message/igo2-core-message.mjs +5 -0
  53. package/esm2022/message/message.module.mjs +56 -0
  54. package/esm2022/message/public_api.mjs +3 -0
  55. package/esm2022/message/shared/index.mjs +4 -0
  56. package/esm2022/message/shared/message.enum.mjs +10 -0
  57. package/esm2022/message/shared/message.interface.mjs +2 -0
  58. package/esm2022/message/shared/message.service.mjs +225 -0
  59. package/esm2022/monitoring/__mocks__/index.mjs +2 -0
  60. package/esm2022/monitoring/__mocks__/monitoring-mock.mjs +7 -0
  61. package/esm2022/monitoring/igo2-core-monitoring.mjs +5 -0
  62. package/esm2022/monitoring/monitoring.provider.mjs +20 -0
  63. package/esm2022/monitoring/public_api.mjs +5 -0
  64. package/esm2022/monitoring/sentry/index.mjs +4 -0
  65. package/esm2022/monitoring/sentry/sentry.interface.mjs +2 -0
  66. package/esm2022/monitoring/sentry/sentry.mjs +29 -0
  67. package/esm2022/monitoring/sentry/sentry.provider.mjs +31 -0
  68. package/esm2022/monitoring/sentry/sentry.utils.mjs +14 -0
  69. package/esm2022/monitoring/shared/any-monitoring.interface.mjs +2 -0
  70. package/esm2022/monitoring/shared/index.mjs +3 -0
  71. package/esm2022/monitoring/shared/monitoring.interface.mjs +2 -0
  72. package/esm2022/network/igo2-core-network.mjs +5 -0
  73. package/esm2022/network/network.interfaces.mjs +2 -0
  74. package/esm2022/network/network.service.mjs +66 -0
  75. package/esm2022/network/public_api.mjs +3 -0
  76. package/esm2022/public_api.mjs +3 -27
  77. package/esm2022/regex/igo2-core-regex.mjs +5 -0
  78. package/esm2022/regex/public_api.mjs +3 -0
  79. package/esm2022/regex/regex.interface.mjs +2 -0
  80. package/esm2022/regex/regex.service.mjs +30 -0
  81. package/esm2022/request/error.interceptor.mjs +72 -0
  82. package/esm2022/request/error.module.mjs +39 -0
  83. package/esm2022/request/igo2-core-request.mjs +5 -0
  84. package/esm2022/request/logging.interceptor.mjs +29 -0
  85. package/esm2022/request/logging.module.mjs +30 -0
  86. package/esm2022/request/public_api.mjs +5 -0
  87. package/esm2022/route/igo2-core-route.mjs +5 -0
  88. package/esm2022/route/public_api.mjs +3 -0
  89. package/esm2022/route/route.interface.mjs +2 -0
  90. package/esm2022/route/route.service.mjs +75 -0
  91. package/esm2022/storage/igo2-core-storage.mjs +5 -0
  92. package/esm2022/storage/public_api.mjs +4 -0
  93. package/esm2022/storage/storage.interface.mjs +13 -0
  94. package/esm2022/storage/storage.mjs +76 -0
  95. package/esm2022/storage/storage.service.mjs +21 -0
  96. package/esm2022/user/igo2-core-user.mjs +5 -0
  97. package/esm2022/user/public_api.mjs +2 -0
  98. package/esm2022/user/user.interface.mjs +2 -0
  99. package/fesm2022/igo2-core-activity.mjs +94 -0
  100. package/fesm2022/igo2-core-activity.mjs.map +1 -0
  101. package/fesm2022/igo2-core-analytics.mjs +93 -0
  102. package/fesm2022/igo2-core-analytics.mjs.map +1 -0
  103. package/fesm2022/igo2-core-config.mjs +173 -0
  104. package/fesm2022/igo2-core-config.mjs.map +1 -0
  105. package/fesm2022/igo2-core-environment.mjs +4 -0
  106. package/fesm2022/igo2-core-environment.mjs.map +1 -0
  107. package/fesm2022/igo2-core-gesture.mjs +48 -0
  108. package/fesm2022/igo2-core-gesture.mjs.map +1 -0
  109. package/fesm2022/igo2-core-language.mjs +151 -0
  110. package/fesm2022/igo2-core-language.mjs.map +1 -0
  111. package/fesm2022/igo2-core-media.mjs +100 -0
  112. package/fesm2022/igo2-core-media.mjs.map +1 -0
  113. package/fesm2022/igo2-core-message.mjs +292 -0
  114. package/fesm2022/igo2-core-message.mjs.map +1 -0
  115. package/fesm2022/igo2-core-monitoring.mjs +101 -0
  116. package/fesm2022/igo2-core-monitoring.mjs.map +1 -0
  117. package/fesm2022/igo2-core-network.mjs +72 -0
  118. package/fesm2022/igo2-core-network.mjs.map +1 -0
  119. package/fesm2022/igo2-core-regex.mjs +36 -0
  120. package/fesm2022/igo2-core-regex.mjs.map +1 -0
  121. package/fesm2022/igo2-core-request.mjs +164 -0
  122. package/fesm2022/igo2-core-request.mjs.map +1 -0
  123. package/fesm2022/igo2-core-route.mjs +81 -0
  124. package/fesm2022/igo2-core-route.mjs.map +1 -0
  125. package/fesm2022/igo2-core-storage.mjs +114 -0
  126. package/fesm2022/igo2-core-storage.mjs.map +1 -0
  127. package/fesm2022/igo2-core-user.mjs +4 -0
  128. package/fesm2022/igo2-core-user.mjs.map +1 -0
  129. package/fesm2022/igo2-core.mjs +24 -1515
  130. package/fesm2022/igo2-core.mjs.map +1 -1
  131. package/gesture/index.d.ts +5 -0
  132. package/gesture/public_api.d.ts +2 -0
  133. package/language/index.d.ts +5 -0
  134. package/{lib/language → language}/language.module.d.ts +1 -3
  135. package/language/public_api.d.ts +2 -0
  136. package/{lib/language → language}/shared/index.d.ts +2 -0
  137. package/language/shared/language-mock.provider.d.ts +2 -0
  138. package/language/shared/language.interface.d.ts +9 -0
  139. package/language/shared/language.loader.d.ts +13 -0
  140. package/language/shared/language.provider.d.ts +8 -0
  141. package/lib/core.module.d.ts +7 -7
  142. package/locale/en.json +1 -1
  143. package/locale/fr.json +1 -1
  144. package/media/index.d.ts +5 -0
  145. package/message/index.d.ts +5 -0
  146. package/{lib/message → message}/message.module.d.ts +2 -3
  147. package/message/public_api.d.ts +2 -0
  148. package/{lib/message → message}/shared/message.enum.d.ts +1 -1
  149. package/{lib/message → message}/shared/message.service.d.ts +2 -2
  150. package/monitoring/__mocks__/index.d.ts +1 -0
  151. package/monitoring/__mocks__/monitoring-mock.d.ts +4 -0
  152. package/monitoring/index.d.ts +5 -0
  153. package/{lib/monitoring/index.d.ts → monitoring/public_api.d.ts} +1 -0
  154. package/{lib/monitoring → monitoring}/sentry/sentry.utils.d.ts +1 -1
  155. package/monitoring/shared/any-monitoring.interface.d.ts +2 -0
  156. package/network/index.d.ts +5 -0
  157. package/{lib/network → network}/network.service.d.ts +1 -1
  158. package/package.json +99 -9
  159. package/public_api.d.ts +1 -26
  160. package/regex/index.d.ts +5 -0
  161. package/{lib/regex → regex}/regex.service.d.ts +1 -1
  162. package/{lib/request → request}/error.interceptor.d.ts +1 -1
  163. package/request/index.d.ts +5 -0
  164. package/{lib/request/index.d.ts → request/public_api.d.ts} +2 -0
  165. package/route/index.d.ts +5 -0
  166. package/route/public_api.d.ts +2 -0
  167. package/src/core-theme.scss +1 -1
  168. package/src/packages.import.scss +1 -0
  169. package/src/style/partial/media.scss +80 -80
  170. package/src/theming/all-theme.scss +1 -0
  171. package/storage/index.d.ts +5 -0
  172. package/{lib/storage → storage}/storage.d.ts +1 -1
  173. package/{lib/storage → storage}/storage.service.d.ts +1 -1
  174. package/theming/prebuilt-themes/blue-theme.css +857 -994
  175. package/theming/prebuilt-themes/bluedark-theme.css +857 -994
  176. package/theming/prebuilt-themes/bluedq-theme.css +857 -994
  177. package/theming/prebuilt-themes/bluegrey-theme.css +857 -994
  178. package/theming/prebuilt-themes/dark-theme.css +857 -1001
  179. package/theming/prebuilt-themes/deeppurple-theme.css +857 -994
  180. package/theming/prebuilt-themes/indigo-theme.css +857 -994
  181. package/theming/prebuilt-themes/orange-theme.css +857 -994
  182. package/theming/prebuilt-themes/teal-theme.css +857 -994
  183. package/user/index.d.ts +5 -0
  184. package/esm2022/lib/activity/activity.interceptor.mjs +0 -32
  185. package/esm2022/lib/activity/activity.module.mjs +0 -30
  186. package/esm2022/lib/activity/activity.service.mjs +0 -32
  187. package/esm2022/lib/activity/index.mjs +0 -3
  188. package/esm2022/lib/analytics/index.mjs +0 -2
  189. package/esm2022/lib/analytics/shared/analytics.interface.mjs +0 -2
  190. package/esm2022/lib/analytics/shared/analytics.service.mjs +0 -87
  191. package/esm2022/lib/analytics/shared/index.mjs +0 -3
  192. package/esm2022/lib/compression/compressedData.interface.mjs +0 -2
  193. package/esm2022/lib/compression/compression.service.mjs +0 -142
  194. package/esm2022/lib/compression/index.mjs +0 -3
  195. package/esm2022/lib/config/config-deprecated.mjs +0 -27
  196. package/esm2022/lib/config/config.interface.mjs +0 -2
  197. package/esm2022/lib/config/config.module.mjs +0 -23
  198. package/esm2022/lib/config/config.provider.mjs +0 -21
  199. package/esm2022/lib/config/config.service.mjs +0 -97
  200. package/esm2022/lib/config/index.mjs +0 -4
  201. package/esm2022/lib/config/version.mjs +0 -5
  202. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  203. package/esm2022/lib/environment/index.mjs +0 -2
  204. package/esm2022/lib/gesture/gesture.module.mjs +0 -29
  205. package/esm2022/lib/gesture/gesture.provider.mjs +0 -16
  206. package/esm2022/lib/language/index.mjs +0 -2
  207. package/esm2022/lib/language/language.module.mjs +0 -38
  208. package/esm2022/lib/language/shared/index.mjs +0 -5
  209. package/esm2022/lib/language/shared/language.interface.mjs +0 -2
  210. package/esm2022/lib/language/shared/language.loader.mjs +0 -31
  211. package/esm2022/lib/language/shared/language.provider.mjs +0 -22
  212. package/esm2022/lib/language/shared/language.service.mjs +0 -38
  213. package/esm2022/lib/language/shared/missing-translation.guard.mjs +0 -16
  214. package/esm2022/lib/media/index.mjs +0 -3
  215. package/esm2022/lib/media/media.enum.mjs +0 -12
  216. package/esm2022/lib/media/media.service.mjs +0 -82
  217. package/esm2022/lib/message/index.mjs +0 -2
  218. package/esm2022/lib/message/message.module.mjs +0 -59
  219. package/esm2022/lib/message/shared/index.mjs +0 -4
  220. package/esm2022/lib/message/shared/message.enum.mjs +0 -10
  221. package/esm2022/lib/message/shared/message.interface.mjs +0 -2
  222. package/esm2022/lib/message/shared/message.service.mjs +0 -224
  223. package/esm2022/lib/monitoring/index.mjs +0 -4
  224. package/esm2022/lib/monitoring/monitoring.provider.mjs +0 -20
  225. package/esm2022/lib/monitoring/sentry/index.mjs +0 -4
  226. package/esm2022/lib/monitoring/sentry/sentry.interface.mjs +0 -2
  227. package/esm2022/lib/monitoring/sentry/sentry.mjs +0 -29
  228. package/esm2022/lib/monitoring/sentry/sentry.provider.mjs +0 -31
  229. package/esm2022/lib/monitoring/sentry/sentry.utils.mjs +0 -12
  230. package/esm2022/lib/monitoring/shared/any-monitoring.interface.mjs +0 -2
  231. package/esm2022/lib/monitoring/shared/index.mjs +0 -3
  232. package/esm2022/lib/monitoring/shared/monitoring.interface.mjs +0 -2
  233. package/esm2022/lib/network/index.mjs +0 -3
  234. package/esm2022/lib/network/network.interfaces.mjs +0 -2
  235. package/esm2022/lib/network/network.service.mjs +0 -66
  236. package/esm2022/lib/regex/index.mjs +0 -3
  237. package/esm2022/lib/regex/regex.interface.mjs +0 -2
  238. package/esm2022/lib/regex/regex.service.mjs +0 -30
  239. package/esm2022/lib/request/error.interceptor.mjs +0 -72
  240. package/esm2022/lib/request/error.module.mjs +0 -39
  241. package/esm2022/lib/request/index.mjs +0 -3
  242. package/esm2022/lib/request/logging.interceptor.mjs +0 -29
  243. package/esm2022/lib/request/logging.module.mjs +0 -30
  244. package/esm2022/lib/route/route.interface.mjs +0 -2
  245. package/esm2022/lib/route/route.service.mjs +0 -75
  246. package/esm2022/lib/storage/index.mjs +0 -4
  247. package/esm2022/lib/storage/storage.interface.mjs +0 -13
  248. package/esm2022/lib/storage/storage.mjs +0 -76
  249. package/esm2022/lib/storage/storage.service.mjs +0 -21
  250. package/esm2022/lib/user/index.mjs +0 -2
  251. package/esm2022/lib/user/user.interface.mjs +0 -2
  252. package/lib/analytics/index.d.ts +0 -1
  253. package/lib/compression/compressedData.interface.d.ts +0 -5
  254. package/lib/compression/compression.service.d.ts +0 -15
  255. package/lib/compression/index.d.ts +0 -2
  256. package/lib/environment/environment.interface.d.ts +0 -18
  257. package/lib/language/index.d.ts +0 -1
  258. package/lib/language/shared/language.interface.d.ts +0 -3
  259. package/lib/language/shared/language.loader.d.ts +0 -11
  260. package/lib/language/shared/language.provider.d.ts +0 -15
  261. package/lib/message/index.d.ts +0 -1
  262. package/lib/monitoring/shared/any-monitoring.interface.d.ts +0 -2
  263. package/{lib/activity → activity}/activity.interceptor.d.ts +0 -0
  264. package/{lib/activity → activity}/activity.module.d.ts +0 -0
  265. package/{lib/activity → activity}/activity.service.d.ts +0 -0
  266. package/{lib/analytics/shared/index.d.ts → analytics/public_api.d.ts} +1 -1
  267. /package/{lib/config → config}/config-deprecated.d.ts +0 -0
  268. /package/{lib/config → config}/config.module.d.ts +0 -0
  269. /package/{lib/config → config}/version.d.ts +0 -0
  270. /package/{lib/environment/index.d.ts → environment/public_api.d.ts} +0 -0
  271. /package/{lib/gesture → gesture}/gesture.module.d.ts +0 -0
  272. /package/{lib/gesture → gesture}/gesture.provider.d.ts +0 -0
  273. /package/{lib/language → language}/shared/language.service.d.ts +0 -0
  274. /package/{lib/language → language}/shared/missing-translation.guard.d.ts +0 -0
  275. /package/{lib/media → media}/media.enum.d.ts +0 -0
  276. /package/{lib/media → media}/media.service.d.ts +0 -0
  277. /package/{lib/media/index.d.ts → media/public_api.d.ts} +0 -0
  278. /package/{lib/message → message}/shared/index.d.ts +0 -0
  279. /package/{lib/message → message}/shared/message.interface.d.ts +0 -0
  280. /package/{src/lib/message → message/src}/message.theming.scss +0 -0
  281. /package/{lib/monitoring → monitoring}/monitoring.provider.d.ts +0 -0
  282. /package/{lib/monitoring → monitoring}/sentry/index.d.ts +0 -0
  283. /package/{lib/monitoring → monitoring}/sentry/sentry.d.ts +0 -0
  284. /package/{lib/monitoring → monitoring}/sentry/sentry.interface.d.ts +0 -0
  285. /package/{lib/monitoring → monitoring}/sentry/sentry.provider.d.ts +0 -0
  286. /package/{lib/monitoring → monitoring}/shared/index.d.ts +0 -0
  287. /package/{lib/monitoring → monitoring}/shared/monitoring.interface.d.ts +0 -0
  288. /package/{lib/network → network}/network.interfaces.d.ts +0 -0
  289. /package/{lib/network/index.d.ts → network/public_api.d.ts} +0 -0
  290. /package/{lib/regex/index.d.ts → regex/public_api.d.ts} +0 -0
  291. /package/{lib/regex → regex}/regex.interface.d.ts +0 -0
  292. /package/{lib/request → request}/error.module.d.ts +0 -0
  293. /package/{lib/request → request}/logging.interceptor.d.ts +0 -0
  294. /package/{lib/request → request}/logging.module.d.ts +0 -0
  295. /package/{lib/route → route}/route.interface.d.ts +0 -0
  296. /package/{lib/route → route}/route.service.d.ts +0 -0
  297. /package/{lib/storage/index.d.ts → storage/public_api.d.ts} +0 -0
  298. /package/{lib/storage → storage}/storage.interface.d.ts +0 -0
  299. /package/{lib/user/index.d.ts → user/public_api.d.ts} +0 -0
  300. /package/{lib/user → user}/user.interface.d.ts +0 -0
@@ -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.2.4", ngImport: i0, type: AnalyticsService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
79
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AnalyticsService, providedIn: 'root' });
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", 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';\r\n\r\nimport { ConfigService } from '@igo2/core/config';\r\n\r\nimport { AnalyticsBaseUser, AnalyticsOptions } from './analytics.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalyticsService {\r\n private options: AnalyticsOptions;\r\n\r\n get paq() {\r\n return ((window as any)._paq = (window as any)._paq || []);\r\n }\r\n\r\n constructor(private config: ConfigService) {\r\n this.options = this.config.getConfig('analytics') || {};\r\n\r\n if (this.options.provider === 'matomo') {\r\n this.initMatomo();\r\n }\r\n }\r\n\r\n private initMatomo() {\r\n if (!this.options.url || !this.options.id) {\r\n return;\r\n }\r\n const url =\r\n this.options.url.substr(-1) === '/'\r\n ? this.options.url + 'matomo'\r\n : this.options.url;\r\n\r\n // this.paq.push(['trackPageView']);\r\n // this.paq.push(['enableLinkTracking']);\r\n (() => {\r\n this.paq.push(['setTrackerUrl', url + '.php']);\r\n this.paq.push(['setSiteId', this.options.id]);\r\n const g = document.createElement('script');\r\n const s = document.getElementsByTagName('script')[0];\r\n g.type = 'text/javascript';\r\n g.async = true;\r\n g.defer = true;\r\n g.src = url + '.js';\r\n s.parentNode.insertBefore(g, s);\r\n })();\r\n }\r\n\r\n /**\r\n * Pass `null` to unset the user.\r\n */\r\n public setUser(user: AnalyticsBaseUser | null, profils?: string[]) {\r\n if (this.options.provider === 'matomo') {\r\n if (!user) {\r\n this.paq.push(['resetUserId']);\r\n this.paq.push(['deleteCustomVariable', 1, 'user']);\r\n this.paq.push(['deleteCustomVariable', 2, 'name']);\r\n this.paq.push(['deleteCustomVariable', 3, 'profils']);\r\n } else {\r\n this.paq.push(['setUserId', user.id]);\r\n\r\n const name = `${user.firstName} ${user.lastName}`;\r\n this.paq.push(['setCustomVariable', 1, 'user', user.sourceId, 'visit']);\r\n this.paq.push(['setCustomVariable', 2, 'name', name, 'visit']);\r\n this.paq.push(['setCustomVariable', 3, 'profils', profils, 'visit']);\r\n }\r\n\r\n this.paq.push(['trackPageView']);\r\n this.paq.push(['enableLinkTracking']);\r\n }\r\n }\r\n\r\n public trackSearch(term: string, nbResults: number) {\r\n if (this.options.provider === 'matomo') {\r\n this.paq.push(['trackSiteSearch', term, false, nbResults]);\r\n }\r\n }\r\n\r\n public trackEvent(category: string, action: string, name: string) {\r\n if (this.options.provider === 'matomo') {\r\n this.paq.push(['trackEvent', category, action, name]);\r\n }\r\n }\r\n\r\n /**\r\n * Function that tracks layers added to the map\r\n */\r\n public trackLayer(category: string, action: string, parameters: any) {\r\n if (this.options.provider === 'matomo')\r\n this.paq.push(['trackEvent', category, action, parameters]);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, InjectionToken, 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.2',
38
+ releaseDate: 1709907969664
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
+ resolve(true);
110
+ return throwError(error.error || 'Server error');
111
+ }))
112
+ .subscribe((configResponse) => {
113
+ this.config = ObjectUtils.mergeDeep(ObjectUtils.mergeDeep({ version }, baseConfig), configResponse);
114
+ this._isLoaded$.next(true);
115
+ resolve(true);
116
+ });
117
+ });
118
+ }
119
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ConfigService, deps: [{ token: i1.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable });
120
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ConfigService, providedIn: 'root' });
121
+ }
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ConfigService, decorators: [{
123
+ type: Injectable,
124
+ args: [{
125
+ providedIn: 'root'
126
+ }]
127
+ }], ctorParameters: () => [{ type: i1.HttpBackend }] });
128
+
129
+ let CONFIG_OPTIONS = new InjectionToken('configOptions');
130
+ function provideConfigOptions(options) {
131
+ return {
132
+ provide: CONFIG_OPTIONS,
133
+ useValue: options
134
+ };
135
+ }
136
+ function configFactory(configService, options) {
137
+ return () => configService.load(options);
138
+ }
139
+ function provideConfigLoader() {
140
+ return {
141
+ provide: APP_INITIALIZER,
142
+ useFactory: configFactory,
143
+ multi: true,
144
+ deps: [ConfigService, CONFIG_OPTIONS]
145
+ };
146
+ }
147
+
148
+ class IgoConfigModule {
149
+ static forRoot() {
150
+ return {
151
+ ngModule: IgoConfigModule,
152
+ providers: [provideConfigOptions({}), provideConfigLoader()]
153
+ };
154
+ }
155
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
156
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IgoConfigModule });
157
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoConfigModule });
158
+ }
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoConfigModule, decorators: [{
160
+ type: NgModule,
161
+ args: [{
162
+ imports: [],
163
+ declarations: [],
164
+ exports: []
165
+ }]
166
+ }] });
167
+
168
+ /**
169
+ * Generated bundle index. Do not edit.
170
+ */
171
+
172
+ export { CONFIG_OPTIONS, ConfigService, IgoConfigModule, configFactory, provideConfigLoader, provideConfigOptions, version };
173
+ //# 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';\r\n\r\nexport const CONFIG_DEPRECATED: { [key: string]: DeprecatedOptions } = {\r\n showMenuButton: {\r\n alternativeKey: 'menu.button.visible',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n menuButtonReverseColor: {\r\n alternativeKey: 'menu.button.useThemeColor',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n importWithStyle: {\r\n alternativeKey: 'importExport.importWithStyle',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n hasGeolocateButton: {\r\n alternativeKey: 'geolocate.button.visible',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n }\r\n};\r\n\r\nexport const ALTERNATE_CONFIG_FROM_DEPRECATION = new Map<\r\n string,\r\n AlternateConfigOptions\r\n>(\r\n Object.entries(CONFIG_DEPRECATED)\r\n .filter(([_, options]) => options.alternativeKey)\r\n .map(([key, options]) => [\r\n options.alternativeKey,\r\n {\r\n deprecatedKey: key\r\n } satisfies AlternateConfigOptions\r\n ])\r\n);\r\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.2',\r\n releaseDate: 1709907969664\r\n};\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport {\r\n ALTERNATE_CONFIG_FROM_DEPRECATION,\r\n CONFIG_DEPRECATED\r\n} from './config-deprecated';\r\nimport { ConfigOptions } from './config.interface';\r\nimport { version } from './version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService<T extends object = { [key: string]: any }> {\r\n private config: T | null;\r\n private httpClient: HttpClient;\r\n private configDeprecated = new Map(Object.entries(CONFIG_DEPRECATED));\r\n\r\n private _isLoaded$ = new BehaviorSubject<boolean>(null);\r\n isLoaded$ = this._isLoaded$.asObservable();\r\n\r\n constructor(handler: HttpBackend) {\r\n this.httpClient = new HttpClient(handler);\r\n }\r\n\r\n /**\r\n * Use to get the all config file (merge from environnement.ts and config.json)\r\n */\r\n public getConfigs(): any {\r\n Array.from(this.configDeprecated.keys()).map((deprecatedKey) => {\r\n const deprecatedValue = ObjectUtils.resolve(this.config, deprecatedKey);\r\n if (deprecatedValue !== undefined) {\r\n this.handleDeprecatedConfig(deprecatedKey);\r\n }\r\n });\r\n return this.config;\r\n }\r\n\r\n /**\r\n * Use to get the data found in config file\r\n */\r\n public getConfig<T = any>(key: string, defaultValue?: unknown): T {\r\n let value = ObjectUtils.resolve(this.config, key);\r\n\r\n const isDeprecated = this.configDeprecated.get(key);\r\n if (isDeprecated && value !== undefined) {\r\n this.handleDeprecatedConfig(key);\r\n } else if (value === undefined) {\r\n value = this.handleDeprecationPossibility(key);\r\n }\r\n\r\n return value ?? defaultValue;\r\n }\r\n\r\n private handleDeprecatedConfig(key: string): void {\r\n const options = this.configDeprecated.get(key);\r\n\r\n let message = `This config (${key}) is deprecated and will be removed shortly`;\r\n if (options.alternativeKey) {\r\n message += ` You should use this key (${options.alternativeKey}) as an alternate solution`;\r\n }\r\n\r\n const currentDate = new Date();\r\n currentDate >= options.mayBeRemoveIn\r\n ? console.error(message)\r\n : console.warn(message);\r\n }\r\n\r\n private handleDeprecationPossibility(key: string): any {\r\n const options = ALTERNATE_CONFIG_FROM_DEPRECATION.get(key);\r\n if (!options) {\r\n return;\r\n }\r\n\r\n return this.getConfig(options.deprecatedKey);\r\n }\r\n\r\n /**\r\n * This method loads \"[path]\" to get all config's variables\r\n */\r\n public load(options: ConfigOptions<T>) {\r\n const baseConfig = options.default;\r\n if (!options.path) {\r\n this.config = baseConfig;\r\n this._isLoaded$.next(true);\r\n return true;\r\n }\r\n\r\n return new Promise((resolve, _reject) => {\r\n this.httpClient\r\n .get(options.path)\r\n .pipe(\r\n catchError((error: any): any => {\r\n console.log(`Configuration file ${options.path} could not be read`);\r\n resolve(true);\r\n return throwError(error.error || 'Server error');\r\n })\r\n )\r\n .subscribe((configResponse: object) => {\r\n this.config = ObjectUtils.mergeDeep(\r\n ObjectUtils.mergeDeep({ version }, baseConfig),\r\n configResponse\r\n );\r\n this._isLoaded$.next(true);\r\n resolve(true);\r\n });\r\n });\r\n }\r\n}\r\n","import { APP_INITIALIZER, InjectionToken } from '@angular/core';\r\n\r\nimport { ConfigOptions } from './config.interface';\r\nimport { ConfigService } from './config.service';\r\n\r\nexport let CONFIG_OPTIONS = new InjectionToken<ConfigOptions>('configOptions');\r\n\r\nexport function provideConfigOptions(options: ConfigOptions) {\r\n return {\r\n provide: CONFIG_OPTIONS,\r\n useValue: options\r\n };\r\n}\r\n\r\nexport function configFactory(\r\n configService: ConfigService,\r\n options: ConfigOptions\r\n) {\r\n return () => configService.load(options);\r\n}\r\n\r\nexport function provideConfigLoader() {\r\n return {\r\n provide: APP_INITIALIZER,\r\n useFactory: configFactory,\r\n multi: true,\r\n deps: [ConfigService, CONFIG_OPTIONS]\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { provideConfigLoader, provideConfigOptions } from './config.provider';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoConfigModule {\r\n static forRoot(): ModuleWithProviders<IgoConfigModule> {\r\n return {\r\n ngModule: IgoConfigModule,\r\n providers: [provideConfigOptions({}), provideConfigLoader()]\r\n };\r\n }\r\n}\r\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.2.4", ngImport: i0, type: IgoGestureConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
12
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoGestureConfig });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", 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.2.4", ngImport: i0, type: IgoGestureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
31
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IgoGestureModule, imports: [HammerModule] });
32
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoGestureModule, imports: [HammerModule] });
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", 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';\r\nimport { HammerGestureConfig } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\nexport class IgoGestureConfig extends HammerGestureConfig {\r\n buildHammer(element: HTMLElement) {\r\n const mc = super.buildHammer(element) as any;\r\n mc.set({ touchAction: 'pan-y' });\r\n return mc;\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';\r\n\r\nimport { IgoGestureConfig } from './gesture.provider';\r\n\r\n@NgModule({\r\n imports: [HammerModule],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoGestureModule {\r\n static forRoot(): ModuleWithProviders<IgoGestureModule> {\r\n return {\r\n ngModule: IgoGestureModule,\r\n providers: [\r\n {\r\n provide: HAMMER_GESTURE_CONFIG,\r\n useClass: IgoGestureConfig\r\n }\r\n ]\r\n };\r\n }\r\n}\r\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,151 @@
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 } 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
+
10
+ class IgoLanguageModule {
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoLanguageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IgoLanguageModule, exports: [TranslateModule] });
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoLanguageModule, imports: [TranslateModule] });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoLanguageModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ exports: [TranslateModule]
19
+ }]
20
+ }] });
21
+
22
+ class LanguageLoaderBase {
23
+ }
24
+
25
+ class LanguageLoader {
26
+ configService;
27
+ prefix;
28
+ suffix;
29
+ httpClient;
30
+ _isLoaded$ = new BehaviorSubject(null);
31
+ isLoaded$ = this._isLoaded$.asObservable();
32
+ constructor(handler, configService, prefix, suffix = '.json') {
33
+ this.configService = configService;
34
+ this.prefix = prefix;
35
+ this.suffix = suffix;
36
+ this.httpClient = new HttpClient(handler);
37
+ }
38
+ getTranslation(lang) {
39
+ const igoLocale$ = this.httpClient.get(`locale/libs_locale/${lang}.json`);
40
+ return this.configService.isLoaded$.pipe(first((isLoaded) => isLoaded), switchMap(() => {
41
+ if (this.configService && !this.prefix) {
42
+ const prefix = this.configService.getConfig('language.prefix');
43
+ this.prefix = !prefix || Array.isArray(prefix) ? prefix : [prefix];
44
+ }
45
+ if (!this.prefix || this.prefix.length === 0) {
46
+ this._isLoaded$.next(true);
47
+ return igoLocale$;
48
+ }
49
+ const appLocale$ = this.prefix.map((prefix) => this.httpClient.get(`${prefix}${lang}${this.suffix}`));
50
+ const locale$ = forkJoin([igoLocale$, ...appLocale$]);
51
+ return locale$.pipe(map((translations) => {
52
+ return translations.reduce((acc, current) => ObjectUtils.mergeDeep(acc, current), {});
53
+ }), tap(() => {
54
+ this._isLoaded$.next(true);
55
+ }));
56
+ }));
57
+ }
58
+ }
59
+
60
+ class LanguageService {
61
+ translate;
62
+ language;
63
+ language$ = new BehaviorSubject(undefined);
64
+ constructor(translate) {
65
+ this.translate = translate;
66
+ this.language = this.translate.getBrowserLang();
67
+ const lang = this.getLanguage();
68
+ this.translate.setDefaultLang(lang);
69
+ this.language$.next(lang);
70
+ }
71
+ getLanguage() {
72
+ return this.language.match(/en|fr/) ? this.language : 'en';
73
+ }
74
+ setLanguage(language) {
75
+ this.language = language.match(/en|fr/) ? language : 'en';
76
+ combineLatest([
77
+ this.translate.use(this.language),
78
+ this.translate.reloadLang(this.language)
79
+ ]).subscribe(() => {
80
+ this.language$.next(this.language);
81
+ });
82
+ }
83
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LanguageService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
84
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LanguageService, providedIn: 'root' });
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LanguageService, decorators: [{
87
+ type: Injectable,
88
+ args: [{
89
+ providedIn: 'root'
90
+ }]
91
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
92
+
93
+ class IgoMissingTranslationHandler {
94
+ handle(params) {
95
+ if (!params.translateService.langs.length) {
96
+ const error = 'Translations are not yet loaded. \
97
+ Check that the LanguageService is injected.';
98
+ throw new Error(error);
99
+ }
100
+ if (params.key.substr(0, 4) === 'igo.') {
101
+ throw new Error(`The Key "${params.key}" is missing in locale file.`);
102
+ }
103
+ else {
104
+ return params.key;
105
+ }
106
+ }
107
+ }
108
+
109
+ /**
110
+ * Make sure you only call this method in the root module of your application, most of the time called AppModule.
111
+ */
112
+ function provideRootTranslation(loader) {
113
+ return makeEnvironmentProviders([
114
+ importProvidersFrom(TranslateModule.forRoot(setTranslationConfig(loader))),
115
+ {
116
+ provide: APP_INITIALIZER,
117
+ useFactory: (languageService) => () => {
118
+ return languageService.translate.currentLoader.isLoaded$?.pipe(first((isLoaded) => isLoaded === true));
119
+ },
120
+ deps: [LanguageService],
121
+ multi: true
122
+ }
123
+ ]);
124
+ }
125
+ const setTranslationConfig = (loader) => ({
126
+ defaultLanguage: 'fr',
127
+ loader: loader ?? DEFAULT_LANGUAGE_LOADER,
128
+ missingTranslationHandler: {
129
+ provide: MissingTranslationHandler,
130
+ useClass: IgoMissingTranslationHandler
131
+ }
132
+ });
133
+ const DEFAULT_LANGUAGE_LOADER = {
134
+ provide: TranslateLoader,
135
+ useFactory: defaultLanguageLoader,
136
+ deps: [HttpBackend, ConfigService]
137
+ };
138
+ function defaultLanguageLoader(http, config) {
139
+ return new LanguageLoader(http, config, undefined, undefined);
140
+ }
141
+
142
+ function provideMockRootTranslation(loader) {
143
+ return TranslateModule.forRoot();
144
+ }
145
+
146
+ /**
147
+ * Generated bundle index. Do not edit.
148
+ */
149
+
150
+ export { DEFAULT_LANGUAGE_LOADER, IgoLanguageModule, IgoMissingTranslationHandler, LanguageLoader, LanguageLoaderBase, LanguageService, provideMockRootTranslation, provideRootTranslation, setTranslationConfig };
151
+ //# 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';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@NgModule({\r\n exports: [TranslateModule]\r\n})\r\nexport class IgoLanguageModule {}\r\n","import { TranslateLoader } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface LanguageOptions {\r\n prefix?: string | string[];\r\n}\r\n\r\nexport abstract class LanguageLoaderBase implements TranslateLoader {\r\n abstract isLoaded$: Observable<boolean>;\r\n abstract getTranslation(lang: string): Observable<any>;\r\n}\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\n\r\nimport { ConfigService } from '@igo2/core/config';\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject, first, forkJoin, map, switchMap, tap } from 'rxjs';\r\n\r\nimport { LanguageLoaderBase } from './language.interface';\r\n\r\nexport class LanguageLoader implements LanguageLoaderBase {\r\n private httpClient: HttpClient;\r\n\r\n private _isLoaded$ = new BehaviorSubject<boolean>(null);\r\n isLoaded$ = this._isLoaded$.asObservable();\r\n\r\n constructor(\r\n handler: HttpBackend,\r\n private configService: ConfigService,\r\n private prefix?: string | string[],\r\n private suffix: string = '.json'\r\n ) {\r\n this.httpClient = new HttpClient(handler);\r\n }\r\n\r\n public getTranslation(lang: string): any {\r\n const igoLocale$ = this.httpClient.get(`locale/libs_locale/${lang}.json`);\r\n return this.configService.isLoaded$.pipe(\r\n first((isLoaded) => isLoaded),\r\n switchMap(() => {\r\n if (this.configService && !this.prefix) {\r\n const prefix = this.configService.getConfig('language.prefix');\r\n this.prefix = !prefix || Array.isArray(prefix) ? prefix : [prefix];\r\n }\r\n\r\n if (!this.prefix || this.prefix.length === 0) {\r\n this._isLoaded$.next(true);\r\n return igoLocale$;\r\n }\r\n\r\n const appLocale$ = (this.prefix as string[]).map((prefix) =>\r\n this.httpClient.get(`${prefix}${lang}${this.suffix}`)\r\n );\r\n\r\n const locale$ = forkJoin([igoLocale$, ...appLocale$]);\r\n\r\n return locale$.pipe(\r\n map((translations) => {\r\n return translations.reduce(\r\n (acc, current) => ObjectUtils.mergeDeep(acc, current),\r\n {}\r\n );\r\n }),\r\n tap(() => {\r\n this._isLoaded$.next(true);\r\n })\r\n );\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, combineLatest } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageService {\r\n private language: string;\r\n readonly language$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n constructor(public translate: TranslateService) {\r\n this.language = this.translate.getBrowserLang();\r\n const lang = this.getLanguage();\r\n this.translate.setDefaultLang(lang);\r\n this.language$.next(lang);\r\n }\r\n\r\n public getLanguage(): string {\r\n return this.language.match(/en|fr/) ? this.language : 'en';\r\n }\r\n\r\n public setLanguage(language: string) {\r\n this.language = language.match(/en|fr/) ? language : 'en';\r\n combineLatest([\r\n this.translate.use(this.language),\r\n this.translate.reloadLang(this.language)\r\n ]).subscribe(() => {\r\n this.language$.next(this.language);\r\n });\r\n }\r\n}\r\n","import {\r\n MissingTranslationHandler,\r\n MissingTranslationHandlerParams\r\n} from '@ngx-translate/core';\r\n\r\nexport class IgoMissingTranslationHandler implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n if (!params.translateService.langs.length) {\r\n const error =\r\n 'Translations are not yet loaded. \\\r\n Check that the LanguageService is injected.';\r\n throw new Error(error);\r\n }\r\n\r\n if (params.key.substr(0, 4) === 'igo.') {\r\n throw new Error(`The Key \"${params.key}\" is missing in locale file.`);\r\n } else {\r\n return params.key;\r\n }\r\n }\r\n}\r\n","import { HttpBackend } from '@angular/common/http';\r\nimport {\r\n APP_INITIALIZER,\r\n EnvironmentProviders,\r\n Provider,\r\n importProvidersFrom,\r\n makeEnvironmentProviders\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core/config';\r\n\r\nimport {\r\n MissingTranslationHandler,\r\n TranslateLoader,\r\n TranslateModule,\r\n TranslateModuleConfig\r\n} from '@ngx-translate/core';\r\nimport { first } from 'rxjs';\r\n\r\nimport { LanguageLoaderBase } from './language.interface';\r\nimport { LanguageLoader } from './language.loader';\r\nimport { LanguageService } from './language.service';\r\nimport { IgoMissingTranslationHandler } from './missing-translation.guard';\r\n\r\n/**\r\n * Make sure you only call this method in the root module of your application, most of the time called AppModule.\r\n */\r\nexport function provideRootTranslation(\r\n loader?: Provider\r\n): EnvironmentProviders {\r\n return makeEnvironmentProviders([\r\n importProvidersFrom(TranslateModule.forRoot(setTranslationConfig(loader))),\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: (languageService: LanguageService) => () => {\r\n return (\r\n languageService.translate.currentLoader as LanguageLoaderBase\r\n ).isLoaded$?.pipe(first((isLoaded) => isLoaded === true));\r\n },\r\n deps: [LanguageService],\r\n multi: true\r\n }\r\n ]);\r\n}\r\n\r\nexport const setTranslationConfig = (\r\n loader?: Provider\r\n): TranslateModuleConfig => ({\r\n defaultLanguage: 'fr',\r\n loader: loader ?? DEFAULT_LANGUAGE_LOADER,\r\n missingTranslationHandler: {\r\n provide: MissingTranslationHandler,\r\n useClass: IgoMissingTranslationHandler\r\n }\r\n});\r\n\r\nexport const DEFAULT_LANGUAGE_LOADER: Provider = {\r\n provide: TranslateLoader,\r\n useFactory: defaultLanguageLoader,\r\n deps: [HttpBackend, ConfigService]\r\n};\r\n\r\nfunction defaultLanguageLoader(http: HttpBackend, config?: ConfigService) {\r\n return new LanguageLoader(http, config, undefined, undefined);\r\n}\r\n","import { ImportProvidersSource, Provider } from '@angular/core';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nexport function provideMockRootTranslation(\r\n loader?: Provider\r\n): ImportProvidersSource {\r\n return TranslateModule.forRoot();\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import * as i1 from '@angular/cdk/layout';
2
+ import { Breakpoints } from '@angular/cdk/layout';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable } from '@angular/core';
5
+ import { BehaviorSubject } from 'rxjs';
6
+
7
+ var Media;
8
+ (function (Media) {
9
+ Media["Mobile"] = "mobile";
10
+ Media["Tablet"] = "tablet";
11
+ Media["Desktop"] = "desktop";
12
+ })(Media || (Media = {}));
13
+ var MediaOrientation;
14
+ (function (MediaOrientation) {
15
+ MediaOrientation["Portrait"] = "portrait";
16
+ MediaOrientation["Landscape"] = "landscape";
17
+ })(MediaOrientation || (MediaOrientation = {}));
18
+
19
+ class MediaService {
20
+ media$ = new BehaviorSubject(undefined);
21
+ orientation$ = new BehaviorSubject(undefined);
22
+ constructor(breakpointObserver) {
23
+ breakpointObserver
24
+ .observe([Breakpoints.HandsetLandscape])
25
+ .subscribe((res) => {
26
+ if (res.matches) {
27
+ this.media$.next(Media.Mobile);
28
+ this.orientation$.next(MediaOrientation.Landscape);
29
+ }
30
+ });
31
+ breakpointObserver
32
+ .observe([Breakpoints.HandsetPortrait])
33
+ .subscribe((res) => {
34
+ if (res.matches) {
35
+ this.media$.next(Media.Mobile);
36
+ this.orientation$.next(MediaOrientation.Portrait);
37
+ }
38
+ });
39
+ breakpointObserver
40
+ .observe([Breakpoints.TabletLandscape])
41
+ .subscribe((res) => {
42
+ if (res.matches) {
43
+ this.media$.next(Media.Tablet);
44
+ this.orientation$.next(MediaOrientation.Landscape);
45
+ }
46
+ });
47
+ breakpointObserver
48
+ .observe([Breakpoints.TabletPortrait])
49
+ .subscribe((res) => {
50
+ if (res.matches) {
51
+ this.media$.next(Media.Tablet);
52
+ this.orientation$.next(MediaOrientation.Portrait);
53
+ }
54
+ });
55
+ breakpointObserver.observe([Breakpoints.WebLandscape]).subscribe((res) => {
56
+ if (res.matches) {
57
+ this.media$.next(Media.Desktop);
58
+ this.orientation$.next(MediaOrientation.Landscape);
59
+ }
60
+ });
61
+ breakpointObserver.observe([Breakpoints.WebPortrait]).subscribe((res) => {
62
+ if (res.matches) {
63
+ this.media$.next(Media.Desktop);
64
+ this.orientation$.next(MediaOrientation.Portrait);
65
+ }
66
+ });
67
+ }
68
+ getMedia() {
69
+ return this.media$.value;
70
+ }
71
+ getOrientation() {
72
+ return this.orientation$.value;
73
+ }
74
+ isTouchScreen() {
75
+ return 'ontouchstart' in document.documentElement ? true : false;
76
+ }
77
+ isMobile() {
78
+ const media = this.getMedia();
79
+ return media === 'mobile';
80
+ }
81
+ isDesktop() {
82
+ const media = this.getMedia();
83
+ return media === 'desktop';
84
+ }
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
86
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaService, providedIn: 'root' });
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaService, decorators: [{
89
+ type: Injectable,
90
+ args: [{
91
+ providedIn: 'root'
92
+ }]
93
+ }], ctorParameters: () => [{ type: i1.BreakpointObserver }] });
94
+
95
+ /**
96
+ * Generated bundle index. Do not edit.
97
+ */
98
+
99
+ export { Media, MediaOrientation, MediaService };
100
+ //# sourceMappingURL=igo2-core-media.mjs.map