@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.
- package/activity/index.d.ts +5 -0
- package/{lib/activity/index.d.ts → activity/public_api.d.ts} +1 -0
- package/{lib/analytics/shared → analytics}/analytics.interface.d.ts +1 -1
- package/{lib/analytics/shared → analytics}/analytics.service.d.ts +1 -1
- package/analytics/index.d.ts +5 -0
- package/{lib/config → config}/config.interface.d.ts +2 -3
- package/{lib/config → config}/config.provider.d.ts +1 -1
- package/{lib/config → config}/config.service.d.ts +1 -1
- package/config/index.d.ts +5 -0
- package/{lib/config/index.d.ts → config/public_api.d.ts} +2 -0
- package/environment/environment.interface.d.ts +16 -0
- package/environment/index.d.ts +5 -0
- package/esm2022/activity/activity.interceptor.mjs +32 -0
- package/esm2022/activity/activity.module.mjs +30 -0
- package/esm2022/activity/activity.service.mjs +32 -0
- package/esm2022/activity/igo2-core-activity.mjs +5 -0
- package/esm2022/activity/public_api.mjs +4 -0
- package/esm2022/analytics/analytics.interface.mjs +2 -0
- package/esm2022/analytics/analytics.service.mjs +87 -0
- package/esm2022/analytics/igo2-core-analytics.mjs +5 -0
- package/esm2022/analytics/public_api.mjs +3 -0
- package/esm2022/config/config-deprecated.mjs +27 -0
- package/esm2022/config/config.interface.mjs +2 -0
- package/esm2022/config/config.module.mjs +23 -0
- package/esm2022/config/config.provider.mjs +21 -0
- package/esm2022/config/config.service.mjs +97 -0
- package/esm2022/config/igo2-core-config.mjs +5 -0
- package/esm2022/config/public_api.mjs +6 -0
- package/esm2022/config/version.mjs +5 -0
- package/esm2022/environment/environment.interface.mjs +2 -0
- package/esm2022/environment/igo2-core-environment.mjs +5 -0
- package/esm2022/environment/public_api.mjs +2 -0
- package/esm2022/gesture/gesture.module.mjs +29 -0
- package/esm2022/gesture/gesture.provider.mjs +16 -0
- package/esm2022/gesture/igo2-core-gesture.mjs +5 -0
- package/esm2022/gesture/public_api.mjs +3 -0
- package/esm2022/language/igo2-core-language.mjs +5 -0
- package/esm2022/language/language.module.mjs +15 -0
- package/esm2022/language/public_api.mjs +3 -0
- package/esm2022/language/shared/index.mjs +7 -0
- package/esm2022/language/shared/language-mock.provider.mjs +5 -0
- package/esm2022/language/shared/language.interface.mjs +3 -0
- package/esm2022/language/shared/language.loader.mjs +38 -0
- package/esm2022/language/shared/language.provider.mjs +41 -0
- package/esm2022/language/shared/language.service.mjs +38 -0
- package/esm2022/language/shared/missing-translation.guard.mjs +16 -0
- package/esm2022/lib/core.module.mjs +19 -22
- package/esm2022/media/igo2-core-media.mjs +5 -0
- package/esm2022/media/media.enum.mjs +12 -0
- package/esm2022/media/media.service.mjs +82 -0
- package/esm2022/media/public_api.mjs +3 -0
- package/esm2022/message/igo2-core-message.mjs +5 -0
- package/esm2022/message/message.module.mjs +56 -0
- package/esm2022/message/public_api.mjs +3 -0
- package/esm2022/message/shared/index.mjs +4 -0
- package/esm2022/message/shared/message.enum.mjs +10 -0
- package/esm2022/message/shared/message.interface.mjs +2 -0
- package/esm2022/message/shared/message.service.mjs +225 -0
- package/esm2022/monitoring/__mocks__/index.mjs +2 -0
- package/esm2022/monitoring/__mocks__/monitoring-mock.mjs +7 -0
- package/esm2022/monitoring/igo2-core-monitoring.mjs +5 -0
- package/esm2022/monitoring/monitoring.provider.mjs +20 -0
- package/esm2022/monitoring/public_api.mjs +5 -0
- package/esm2022/monitoring/sentry/index.mjs +4 -0
- package/esm2022/monitoring/sentry/sentry.interface.mjs +2 -0
- package/esm2022/monitoring/sentry/sentry.mjs +29 -0
- package/esm2022/monitoring/sentry/sentry.provider.mjs +31 -0
- package/esm2022/monitoring/sentry/sentry.utils.mjs +14 -0
- package/esm2022/monitoring/shared/any-monitoring.interface.mjs +2 -0
- package/esm2022/monitoring/shared/index.mjs +3 -0
- package/esm2022/monitoring/shared/monitoring.interface.mjs +2 -0
- package/esm2022/network/igo2-core-network.mjs +5 -0
- package/esm2022/network/network.interfaces.mjs +2 -0
- package/esm2022/network/network.service.mjs +66 -0
- package/esm2022/network/public_api.mjs +3 -0
- package/esm2022/public_api.mjs +3 -27
- package/esm2022/regex/igo2-core-regex.mjs +5 -0
- package/esm2022/regex/public_api.mjs +3 -0
- package/esm2022/regex/regex.interface.mjs +2 -0
- package/esm2022/regex/regex.service.mjs +30 -0
- package/esm2022/request/error.interceptor.mjs +72 -0
- package/esm2022/request/error.module.mjs +39 -0
- package/esm2022/request/igo2-core-request.mjs +5 -0
- package/esm2022/request/logging.interceptor.mjs +29 -0
- package/esm2022/request/logging.module.mjs +30 -0
- package/esm2022/request/public_api.mjs +5 -0
- package/esm2022/route/igo2-core-route.mjs +5 -0
- package/esm2022/route/public_api.mjs +3 -0
- package/esm2022/route/route.interface.mjs +2 -0
- package/esm2022/route/route.service.mjs +75 -0
- package/esm2022/storage/igo2-core-storage.mjs +5 -0
- package/esm2022/storage/public_api.mjs +4 -0
- package/esm2022/storage/storage.interface.mjs +13 -0
- package/esm2022/storage/storage.mjs +76 -0
- package/esm2022/storage/storage.service.mjs +21 -0
- package/esm2022/user/igo2-core-user.mjs +5 -0
- package/esm2022/user/public_api.mjs +2 -0
- package/esm2022/user/user.interface.mjs +2 -0
- package/fesm2022/igo2-core-activity.mjs +94 -0
- package/fesm2022/igo2-core-activity.mjs.map +1 -0
- package/fesm2022/igo2-core-analytics.mjs +93 -0
- package/fesm2022/igo2-core-analytics.mjs.map +1 -0
- package/fesm2022/igo2-core-config.mjs +173 -0
- package/fesm2022/igo2-core-config.mjs.map +1 -0
- package/fesm2022/igo2-core-environment.mjs +4 -0
- package/fesm2022/igo2-core-environment.mjs.map +1 -0
- package/fesm2022/igo2-core-gesture.mjs +48 -0
- package/fesm2022/igo2-core-gesture.mjs.map +1 -0
- package/fesm2022/igo2-core-language.mjs +151 -0
- package/fesm2022/igo2-core-language.mjs.map +1 -0
- package/fesm2022/igo2-core-media.mjs +100 -0
- package/fesm2022/igo2-core-media.mjs.map +1 -0
- package/fesm2022/igo2-core-message.mjs +292 -0
- package/fesm2022/igo2-core-message.mjs.map +1 -0
- package/fesm2022/igo2-core-monitoring.mjs +101 -0
- package/fesm2022/igo2-core-monitoring.mjs.map +1 -0
- package/fesm2022/igo2-core-network.mjs +72 -0
- package/fesm2022/igo2-core-network.mjs.map +1 -0
- package/fesm2022/igo2-core-regex.mjs +36 -0
- package/fesm2022/igo2-core-regex.mjs.map +1 -0
- package/fesm2022/igo2-core-request.mjs +164 -0
- package/fesm2022/igo2-core-request.mjs.map +1 -0
- package/fesm2022/igo2-core-route.mjs +81 -0
- package/fesm2022/igo2-core-route.mjs.map +1 -0
- package/fesm2022/igo2-core-storage.mjs +114 -0
- package/fesm2022/igo2-core-storage.mjs.map +1 -0
- package/fesm2022/igo2-core-user.mjs +4 -0
- package/fesm2022/igo2-core-user.mjs.map +1 -0
- package/fesm2022/igo2-core.mjs +24 -1515
- package/fesm2022/igo2-core.mjs.map +1 -1
- package/gesture/index.d.ts +5 -0
- package/gesture/public_api.d.ts +2 -0
- package/language/index.d.ts +5 -0
- package/{lib/language → language}/language.module.d.ts +1 -3
- package/language/public_api.d.ts +2 -0
- package/{lib/language → language}/shared/index.d.ts +2 -0
- package/language/shared/language-mock.provider.d.ts +2 -0
- package/language/shared/language.interface.d.ts +9 -0
- package/language/shared/language.loader.d.ts +13 -0
- package/language/shared/language.provider.d.ts +8 -0
- package/lib/core.module.d.ts +7 -7
- package/locale/en.json +1 -1
- package/locale/fr.json +1 -1
- package/media/index.d.ts +5 -0
- package/message/index.d.ts +5 -0
- package/{lib/message → message}/message.module.d.ts +2 -3
- package/message/public_api.d.ts +2 -0
- package/{lib/message → message}/shared/message.enum.d.ts +1 -1
- package/{lib/message → message}/shared/message.service.d.ts +2 -2
- package/monitoring/__mocks__/index.d.ts +1 -0
- package/monitoring/__mocks__/monitoring-mock.d.ts +4 -0
- package/monitoring/index.d.ts +5 -0
- package/{lib/monitoring/index.d.ts → monitoring/public_api.d.ts} +1 -0
- package/{lib/monitoring → monitoring}/sentry/sentry.utils.d.ts +1 -1
- package/monitoring/shared/any-monitoring.interface.d.ts +2 -0
- package/network/index.d.ts +5 -0
- package/{lib/network → network}/network.service.d.ts +1 -1
- package/package.json +99 -9
- package/public_api.d.ts +1 -26
- package/regex/index.d.ts +5 -0
- package/{lib/regex → regex}/regex.service.d.ts +1 -1
- package/{lib/request → request}/error.interceptor.d.ts +1 -1
- package/request/index.d.ts +5 -0
- package/{lib/request/index.d.ts → request/public_api.d.ts} +2 -0
- package/route/index.d.ts +5 -0
- package/route/public_api.d.ts +2 -0
- package/src/core-theme.scss +1 -1
- package/src/packages.import.scss +1 -0
- package/src/style/partial/media.scss +80 -80
- package/src/theming/all-theme.scss +1 -0
- package/storage/index.d.ts +5 -0
- package/{lib/storage → storage}/storage.d.ts +1 -1
- package/{lib/storage → storage}/storage.service.d.ts +1 -1
- package/theming/prebuilt-themes/blue-theme.css +857 -994
- package/theming/prebuilt-themes/bluedark-theme.css +857 -994
- package/theming/prebuilt-themes/bluedq-theme.css +857 -994
- package/theming/prebuilt-themes/bluegrey-theme.css +857 -994
- package/theming/prebuilt-themes/dark-theme.css +857 -1001
- package/theming/prebuilt-themes/deeppurple-theme.css +857 -994
- package/theming/prebuilt-themes/indigo-theme.css +857 -994
- package/theming/prebuilt-themes/orange-theme.css +857 -994
- package/theming/prebuilt-themes/teal-theme.css +857 -994
- package/user/index.d.ts +5 -0
- package/esm2022/lib/activity/activity.interceptor.mjs +0 -32
- package/esm2022/lib/activity/activity.module.mjs +0 -30
- package/esm2022/lib/activity/activity.service.mjs +0 -32
- package/esm2022/lib/activity/index.mjs +0 -3
- package/esm2022/lib/analytics/index.mjs +0 -2
- package/esm2022/lib/analytics/shared/analytics.interface.mjs +0 -2
- package/esm2022/lib/analytics/shared/analytics.service.mjs +0 -87
- package/esm2022/lib/analytics/shared/index.mjs +0 -3
- package/esm2022/lib/compression/compressedData.interface.mjs +0 -2
- package/esm2022/lib/compression/compression.service.mjs +0 -142
- package/esm2022/lib/compression/index.mjs +0 -3
- package/esm2022/lib/config/config-deprecated.mjs +0 -27
- package/esm2022/lib/config/config.interface.mjs +0 -2
- package/esm2022/lib/config/config.module.mjs +0 -23
- package/esm2022/lib/config/config.provider.mjs +0 -21
- package/esm2022/lib/config/config.service.mjs +0 -97
- package/esm2022/lib/config/index.mjs +0 -4
- package/esm2022/lib/config/version.mjs +0 -5
- package/esm2022/lib/environment/environment.interface.mjs +0 -2
- package/esm2022/lib/environment/index.mjs +0 -2
- package/esm2022/lib/gesture/gesture.module.mjs +0 -29
- package/esm2022/lib/gesture/gesture.provider.mjs +0 -16
- package/esm2022/lib/language/index.mjs +0 -2
- package/esm2022/lib/language/language.module.mjs +0 -38
- package/esm2022/lib/language/shared/index.mjs +0 -5
- package/esm2022/lib/language/shared/language.interface.mjs +0 -2
- package/esm2022/lib/language/shared/language.loader.mjs +0 -31
- package/esm2022/lib/language/shared/language.provider.mjs +0 -22
- package/esm2022/lib/language/shared/language.service.mjs +0 -38
- package/esm2022/lib/language/shared/missing-translation.guard.mjs +0 -16
- package/esm2022/lib/media/index.mjs +0 -3
- package/esm2022/lib/media/media.enum.mjs +0 -12
- package/esm2022/lib/media/media.service.mjs +0 -82
- package/esm2022/lib/message/index.mjs +0 -2
- package/esm2022/lib/message/message.module.mjs +0 -59
- package/esm2022/lib/message/shared/index.mjs +0 -4
- package/esm2022/lib/message/shared/message.enum.mjs +0 -10
- package/esm2022/lib/message/shared/message.interface.mjs +0 -2
- package/esm2022/lib/message/shared/message.service.mjs +0 -224
- package/esm2022/lib/monitoring/index.mjs +0 -4
- package/esm2022/lib/monitoring/monitoring.provider.mjs +0 -20
- package/esm2022/lib/monitoring/sentry/index.mjs +0 -4
- package/esm2022/lib/monitoring/sentry/sentry.interface.mjs +0 -2
- package/esm2022/lib/monitoring/sentry/sentry.mjs +0 -29
- package/esm2022/lib/monitoring/sentry/sentry.provider.mjs +0 -31
- package/esm2022/lib/monitoring/sentry/sentry.utils.mjs +0 -12
- package/esm2022/lib/monitoring/shared/any-monitoring.interface.mjs +0 -2
- package/esm2022/lib/monitoring/shared/index.mjs +0 -3
- package/esm2022/lib/monitoring/shared/monitoring.interface.mjs +0 -2
- package/esm2022/lib/network/index.mjs +0 -3
- package/esm2022/lib/network/network.interfaces.mjs +0 -2
- package/esm2022/lib/network/network.service.mjs +0 -66
- package/esm2022/lib/regex/index.mjs +0 -3
- package/esm2022/lib/regex/regex.interface.mjs +0 -2
- package/esm2022/lib/regex/regex.service.mjs +0 -30
- package/esm2022/lib/request/error.interceptor.mjs +0 -72
- package/esm2022/lib/request/error.module.mjs +0 -39
- package/esm2022/lib/request/index.mjs +0 -3
- package/esm2022/lib/request/logging.interceptor.mjs +0 -29
- package/esm2022/lib/request/logging.module.mjs +0 -30
- package/esm2022/lib/route/route.interface.mjs +0 -2
- package/esm2022/lib/route/route.service.mjs +0 -75
- package/esm2022/lib/storage/index.mjs +0 -4
- package/esm2022/lib/storage/storage.interface.mjs +0 -13
- package/esm2022/lib/storage/storage.mjs +0 -76
- package/esm2022/lib/storage/storage.service.mjs +0 -21
- package/esm2022/lib/user/index.mjs +0 -2
- package/esm2022/lib/user/user.interface.mjs +0 -2
- package/lib/analytics/index.d.ts +0 -1
- package/lib/compression/compressedData.interface.d.ts +0 -5
- package/lib/compression/compression.service.d.ts +0 -15
- package/lib/compression/index.d.ts +0 -2
- package/lib/environment/environment.interface.d.ts +0 -18
- package/lib/language/index.d.ts +0 -1
- package/lib/language/shared/language.interface.d.ts +0 -3
- package/lib/language/shared/language.loader.d.ts +0 -11
- package/lib/language/shared/language.provider.d.ts +0 -15
- package/lib/message/index.d.ts +0 -1
- package/lib/monitoring/shared/any-monitoring.interface.d.ts +0 -2
- package/{lib/activity → activity}/activity.interceptor.d.ts +0 -0
- package/{lib/activity → activity}/activity.module.d.ts +0 -0
- package/{lib/activity → activity}/activity.service.d.ts +0 -0
- package/{lib/analytics/shared/index.d.ts → analytics/public_api.d.ts} +1 -1
- /package/{lib/config → config}/config-deprecated.d.ts +0 -0
- /package/{lib/config → config}/config.module.d.ts +0 -0
- /package/{lib/config → config}/version.d.ts +0 -0
- /package/{lib/environment/index.d.ts → environment/public_api.d.ts} +0 -0
- /package/{lib/gesture → gesture}/gesture.module.d.ts +0 -0
- /package/{lib/gesture → gesture}/gesture.provider.d.ts +0 -0
- /package/{lib/language → language}/shared/language.service.d.ts +0 -0
- /package/{lib/language → language}/shared/missing-translation.guard.d.ts +0 -0
- /package/{lib/media → media}/media.enum.d.ts +0 -0
- /package/{lib/media → media}/media.service.d.ts +0 -0
- /package/{lib/media/index.d.ts → media/public_api.d.ts} +0 -0
- /package/{lib/message → message}/shared/index.d.ts +0 -0
- /package/{lib/message → message}/shared/message.interface.d.ts +0 -0
- /package/{src/lib/message → message/src}/message.theming.scss +0 -0
- /package/{lib/monitoring → monitoring}/monitoring.provider.d.ts +0 -0
- /package/{lib/monitoring → monitoring}/sentry/index.d.ts +0 -0
- /package/{lib/monitoring → monitoring}/sentry/sentry.d.ts +0 -0
- /package/{lib/monitoring → monitoring}/sentry/sentry.interface.d.ts +0 -0
- /package/{lib/monitoring → monitoring}/sentry/sentry.provider.d.ts +0 -0
- /package/{lib/monitoring → monitoring}/shared/index.d.ts +0 -0
- /package/{lib/monitoring → monitoring}/shared/monitoring.interface.d.ts +0 -0
- /package/{lib/network → network}/network.interfaces.d.ts +0 -0
- /package/{lib/network/index.d.ts → network/public_api.d.ts} +0 -0
- /package/{lib/regex/index.d.ts → regex/public_api.d.ts} +0 -0
- /package/{lib/regex → regex}/regex.interface.d.ts +0 -0
- /package/{lib/request → request}/error.module.d.ts +0 -0
- /package/{lib/request → request}/logging.interceptor.d.ts +0 -0
- /package/{lib/request → request}/logging.module.d.ts +0 -0
- /package/{lib/route → route}/route.interface.d.ts +0 -0
- /package/{lib/route → route}/route.service.d.ts +0 -0
- /package/{lib/storage/index.d.ts → storage/public_api.d.ts} +0 -0
- /package/{lib/storage → storage}/storage.interface.d.ts +0 -0
- /package/{lib/user/index.d.ts → user/public_api.d.ts} +0 -0
- /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 @@
|
|
|
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
|