@igo2/core 1.8.2 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/__ivy_ngcc__/locale/en.common.json +43 -43
  2. package/__ivy_ngcc__/locale/en.core.json +23 -23
  3. package/__ivy_ngcc__/locale/en.geo.json +15 -3
  4. package/__ivy_ngcc__/locale/en.integration.json +31 -3
  5. package/__ivy_ngcc__/locale/en.json +45 -5
  6. package/__ivy_ngcc__/locale/fr.common.json +43 -43
  7. package/__ivy_ngcc__/locale/fr.core.json +23 -23
  8. package/__ivy_ngcc__/locale/fr.geo.json +16 -4
  9. package/__ivy_ngcc__/locale/fr.integration.json +33 -4
  10. package/__ivy_ngcc__/locale/fr.json +46 -6
  11. package/bundles/igo2-core.umd.js +1492 -1441
  12. package/bundles/igo2-core.umd.js.map +1 -1
  13. package/esm2015/igo2-core.js +5 -5
  14. package/esm2015/lib/activity/activity.interceptor.js +30 -31
  15. package/esm2015/lib/activity/activity.module.js +30 -29
  16. package/esm2015/lib/activity/activity.service.js +33 -33
  17. package/esm2015/lib/activity/index.js +3 -3
  18. package/esm2015/lib/analytics/index.js +2 -2
  19. package/esm2015/lib/analytics/shared/analytics.interface.js +2 -1
  20. package/esm2015/lib/analytics/shared/analytics.service.js +74 -75
  21. package/esm2015/lib/analytics/shared/index.js +3 -3
  22. package/esm2015/lib/config/config.interface.js +2 -1
  23. package/esm2015/lib/config/config.module.js +23 -22
  24. package/esm2015/lib/config/config.provider.js +21 -21
  25. package/esm2015/lib/config/config.service.js +52 -52
  26. package/esm2015/lib/config/index.js +4 -4
  27. package/esm2015/lib/config/version.js +5 -5
  28. package/esm2015/lib/core.module.js +71 -72
  29. package/esm2015/lib/gesture/gesture.module.js +30 -29
  30. package/esm2015/lib/gesture/gesture.provider.js +16 -17
  31. package/esm2015/lib/language/index.js +2 -2
  32. package/esm2015/lib/language/language.module.js +41 -40
  33. package/esm2015/lib/language/shared/index.js +5 -5
  34. package/esm2015/lib/language/shared/language.interface.js +2 -1
  35. package/esm2015/lib/language/shared/language.loader.js +28 -28
  36. package/esm2015/lib/language/shared/language.provider.js +22 -22
  37. package/esm2015/lib/language/shared/language.service.js +28 -29
  38. package/esm2015/lib/language/shared/missing-translation.guard.js +16 -16
  39. package/esm2015/lib/media/index.js +3 -3
  40. package/esm2015/lib/media/media.enum.js +12 -12
  41. package/esm2015/lib/media/media.service.js +76 -76
  42. package/esm2015/lib/message/index.js +3 -3
  43. package/esm2015/lib/message/message-center/index.js +2 -2
  44. package/esm2015/lib/message/message-center/message-center.component.js +43 -43
  45. package/esm2015/lib/message/message.module.js +27 -26
  46. package/esm2015/lib/message/shared/index.js +4 -4
  47. package/esm2015/lib/message/shared/message.enum.js +8 -8
  48. package/esm2015/lib/message/shared/message.interface.js +2 -1
  49. package/esm2015/lib/message/shared/message.service.js +130 -132
  50. package/esm2015/lib/network/index.js +3 -3
  51. package/esm2015/lib/network/network.interfaces.js +2 -1
  52. package/esm2015/lib/network/network.service.js +59 -60
  53. package/esm2015/lib/request/error.interceptor.js +62 -63
  54. package/esm2015/lib/request/error.module.js +39 -38
  55. package/esm2015/lib/request/index.js +3 -3
  56. package/esm2015/lib/request/logging.interceptor.js +29 -29
  57. package/esm2015/lib/request/logging.module.js +30 -29
  58. package/esm2015/lib/route/route.interface.js +2 -1
  59. package/esm2015/lib/route/route.service.js +55 -56
  60. package/esm2015/lib/storage/index.js +3 -3
  61. package/esm2015/lib/storage/storage.interface.js +13 -13
  62. package/esm2015/lib/storage/storage.service.js +79 -80
  63. package/esm2015/public_api.js +26 -26
  64. package/fesm2015/igo2-core.js +1029 -1016
  65. package/fesm2015/igo2-core.js.map +1 -1
  66. package/igo2-core.d.ts +5 -5
  67. package/lib/activity/activity.interceptor.d.ts +11 -11
  68. package/lib/activity/activity.module.d.ts +8 -7
  69. package/lib/activity/activity.service.d.ts +11 -11
  70. package/lib/activity/index.d.ts +2 -2
  71. package/lib/analytics/index.d.ts +1 -1
  72. package/lib/analytics/shared/analytics.interface.d.ts +6 -6
  73. package/lib/analytics/shared/analytics.service.d.ts +19 -19
  74. package/lib/analytics/shared/index.d.ts +2 -2
  75. package/lib/config/config.interface.d.ts +6 -6
  76. package/lib/config/config.module.d.ts +8 -7
  77. package/lib/config/config.provider.d.ts +15 -15
  78. package/lib/config/config.service.d.ts +18 -18
  79. package/lib/config/index.d.ts +3 -3
  80. package/lib/config/version.d.ts +5 -5
  81. package/lib/core.module.d.ts +18 -17
  82. package/lib/gesture/gesture.module.d.ts +9 -8
  83. package/lib/gesture/gesture.provider.d.ts +7 -7
  84. package/lib/language/index.d.ts +1 -1
  85. package/lib/language/language.module.d.ts +9 -8
  86. package/lib/language/shared/index.d.ts +4 -4
  87. package/lib/language/shared/language.interface.d.ts +3 -3
  88. package/lib/language/shared/language.loader.d.ts +11 -11
  89. package/lib/language/shared/language.provider.d.ts +15 -15
  90. package/lib/language/shared/language.service.d.ts +11 -11
  91. package/lib/language/shared/missing-translation.guard.d.ts +4 -4
  92. package/lib/media/index.d.ts +2 -2
  93. package/lib/media/media.enum.d.ts +9 -9
  94. package/lib/media/media.service.d.ts +16 -16
  95. package/lib/message/index.d.ts +2 -2
  96. package/lib/message/message-center/index.d.ts +1 -1
  97. package/lib/message/message-center/message-center.component.d.ts +19 -19
  98. package/lib/message/message.module.d.ts +11 -10
  99. package/lib/message/shared/index.d.ts +4 -4
  100. package/lib/message/shared/message.enum.d.ts +6 -6
  101. package/lib/message/shared/message.interface.d.ts +18 -18
  102. package/lib/message/shared/message.service.d.ts +25 -25
  103. package/lib/network/index.d.ts +2 -2
  104. package/lib/network/network.interfaces.d.ts +3 -3
  105. package/lib/network/network.service.d.ts +20 -20
  106. package/lib/request/error.interceptor.d.ts +16 -16
  107. package/lib/request/error.module.d.ts +9 -8
  108. package/lib/request/index.d.ts +2 -2
  109. package/lib/request/logging.interceptor.d.ts +8 -8
  110. package/lib/request/logging.module.d.ts +8 -7
  111. package/lib/route/route.interface.d.ts +22 -22
  112. package/lib/route/route.service.d.ts +18 -18
  113. package/lib/storage/index.d.ts +2 -2
  114. package/lib/storage/storage.interface.d.ts +20 -20
  115. package/lib/storage/storage.service.d.ts +19 -19
  116. package/locale/en.common.json +43 -43
  117. package/locale/en.core.json +23 -23
  118. package/locale/en.geo.json +15 -3
  119. package/locale/en.integration.json +31 -3
  120. package/locale/en.json +45 -5
  121. package/locale/fr.common.json +43 -43
  122. package/locale/fr.core.json +23 -23
  123. package/locale/fr.geo.json +16 -4
  124. package/locale/fr.integration.json +33 -4
  125. package/locale/fr.json +46 -6
  126. package/package.json +8 -8
  127. package/public_api.d.ts +22 -22
  128. package/style/all.theming.scss +0 -7655
  129. package/style/core.theming.scss +0 -43
  130. package/style/foreground.scss +1 -1
  131. package/style/index.theming.scss +1006 -0
  132. package/style/material.font.scss +9 -9
  133. package/style/partial/core.variables.scss +3 -3
  134. package/style/partial/media.scss +80 -80
  135. package/style/setup.scss +1 -0
  136. package/style/themes/blue.theme.scss +16 -11
  137. package/style/themes/bluedq.theme.scss +49 -43
  138. package/style/themes/bluegrey.theme.scss +15 -8
  139. package/style/themes/dark.theme.scss +15 -8
  140. package/style/themes/deeppurple.theme.scss +15 -8
  141. package/style/themes/indigo.theme.scss +15 -8
  142. package/style/themes/orange.theme.scss +15 -8
  143. package/style/themes/teal.theme.scss +15 -8
  144. package/style/theming.scss +2 -7180
  145. package/style/typography.scss +14 -14
  146. package/bundles/igo2-core.umd.min.js +0 -17
  147. package/bundles/igo2-core.umd.min.js.map +0 -1
@@ -1,15 +1,15 @@
1
- $igo-typography: mat-typography-config(
2
- $display-4: mat-typography-level(110px, 110px, 300),
3
- $display-3: mat-typography-level(54px, 54px, 400),
4
- $display-2: mat-typography-level(43px, 46px, 400),
5
- $display-1: mat-typography-level(32px, 38px, 400),
6
- $headline: mat-typography-level(22px, 30px, 400),
7
- $title: mat-typography-level(18px, 30px, 500),
8
- $subheading-2: mat-typography-level(14px, 26px, 400),
9
- $subheading-1: mat-typography-level(13px, 22px, 400),
10
- $body-2: mat-typography-level(12px, 22px, 500),
11
- $body-1: mat-typography-level(12px, 18px, 400),
12
- $caption: mat-typography-level(12px, 18px, 400),
13
- $button: mat-typography-level(13px, 13px, 500),
14
- $input: mat-typography-level(14px, 1.25, 400)
1
+ $igo-typography: mat.define-typography-config(
2
+ $display-4: mat.define-typography-level(110px, 110px, 300),
3
+ $display-3: mat.define-typography-level(54px, 54px, 400),
4
+ $display-2: mat.define-typography-level(43px, 46px, 400),
5
+ $display-1: mat.define-typography-level(32px, 38px, 400),
6
+ $headline: mat.define-typography-level(22px, 30px, 400),
7
+ $title: mat.define-typography-level(18px, 30px, 500),
8
+ $subheading-2: mat.define-typography-level(14px, 26px, 400),
9
+ $subheading-1: mat.define-typography-level(13px, 22px, 400),
10
+ $body-2: mat.define-typography-level(12px, 22px, 500),
11
+ $body-1: mat.define-typography-level(12px, 18px, 400),
12
+ $caption: mat.define-typography-level(12px, 18px, 400),
13
+ $button: mat.define-typography-level(13px, 13px, 500),
14
+ $input: mat.define-typography-level(14px, 1.25, 400)
15
15
  );
@@ -1,17 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/common/http"),require("rxjs/operators"),require("rxjs"),require("@igo2/utils"),require("@ngx-translate/core"),require("angular2-notifications"),require("@angular/material/icon"),require("@angular/platform-browser"),require("@angular/router"),require("@angular/cdk/layout")):"function"==typeof define&&define.amd?define("@igo2/core",["exports","@angular/core","@angular/common","@angular/common/http","rxjs/operators","rxjs","@igo2/utils","@ngx-translate/core","angular2-notifications","@angular/material/icon","@angular/platform-browser","@angular/router","@angular/cdk/layout"],t):t(((e=e||self).igo2=e.igo2||{},e.igo2.core={}),e.ng.core,e.ng.common,e.ng.common.http,e.rxjs.operators,e.rxjs,e.utils,e["ngxt-core"],e.ng2notify,e.ng.material.icon,e.ng.platformBrowser,e.ng.router,e.ng.cdk.layout)}(this,(function(e,t,o,n,r,i,a,s,c,u,p,f,l){"use strict";var d=function(){function e(){this.counter$=new i.BehaviorSubject(0),this.ids=[]}return e.prototype.register=function(){var e=a.uuid();return this.ids.push(e),this.counter$.next(this.ids.length),e},e.prototype.unregister=function(e){var t=this.ids.indexOf(e);-1!==t&&(this.ids.splice(t,1),this.counter$.next(this.ids.length))},e}();d.ɵfac=function(e){return new(e||d)},d.ɵprov=t.ɵɵdefineInjectable({token:d,factory:d.ɵfac,providedIn:"root"});var g=function(){function e(e){this.activityService=e}return e.prototype.intercept=function(e,t){var o=this,n=e.headers.get("activityInterceptor");if(n){var i=e.clone({headers:e.headers.delete("activityInterceptor")});if("false"===n)return t.handle(i)}var a=this.activityService.register();return t.handle(e).pipe(r.finalize((function(){o.activityService.unregister(a)})))},e}();g.ɵfac=function(e){return new(e||g)(t.ɵɵinject(d))},g.ɵprov=t.ɵɵdefineInjectable({token:g,factory:g.ɵfac});var h=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[{provide:n.HTTP_INTERCEPTORS,useClass:g,multi:!0}]}},e}();h.ɵmod=t.ɵɵdefineNgModule({type:h}),h.ɵinj=t.ɵɵdefineInjector({factory:function(e){return new(e||h)},imports:[[]]});var v={lib:"1.8.2",releaseDate:1628779296901},m=function(){function e(e){this.injector=e,this.config={}}return e.prototype.getConfig=function(e){return a.ObjectUtils.resolve(this.config,e)},e.prototype.load=function(e){var t=this,o=e.default||{};if(!e.path)return this.config=o,!0;var s=this.injector.get(n.HttpClient);return new Promise((function(n,c){s.get(e.path).pipe(r.catchError((function(t){return console.log("Configuration file "+e.path+" could not be read"),n(!0),i.throwError(t.error||"Server error")}))).subscribe((function(e){t.config=a.ObjectUtils.mergeDeep(a.ObjectUtils.mergeDeep({version:v},o),e),n(!0)}))}))},e}();m.ɵfac=function(e){return new(e||m)(t.ɵɵinject(t.Injector))},m.ɵprov=t.ɵɵdefineInjectable({token:m,factory:m.ɵfac,providedIn:"root"});var y=new t.InjectionToken("configOptions");function S(e){return{provide:y,useValue:e}}function b(e,t){return function(){return e.load(t)}}function M(){return{provide:t.APP_INITIALIZER,useFactory:b,multi:!0,deps:[m,y]}}var I=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[S({}),M()]}},e}();I.ɵmod=t.ɵɵdefineNgModule({type:I}),I.ɵinj=t.ɵɵdefineInjector({factory:function(e){return new(e||I)},imports:[[]]});
2
- /*! *****************************************************************************
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
- PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */
16
- var w=function(e,t){return(w=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])})(e,t)};Object.create;function j(e){var t="function"==typeof Symbol&&Symbol.iterator,o=t&&e[t],n=0;if(o)return o.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function E(e,t){var o="function"==typeof Symbol&&e[Symbol.iterator];if(!o)return e;var n,r,i=o.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){r={error:e}}finally{try{n&&!n.done&&(o=i.return)&&o.call(i)}finally{if(r)throw r.error}}return a}Object.create;var x=function(){function e(e,t,o,n){void 0===o&&(o=".json"),this.http=e,this.prefix=t,this.suffix=o,this.config=n}return e.prototype.getTranslation=function(e){var t=this,o=require("../locale/"+e+".json"),n=i.of(o);if(this.config&&!this.prefix){var s=this.config.getConfig("language.prefix");this.prefix=!s||Array.isArray(s)?s:[s]}if(!this.prefix||0===this.prefix.length)return n;var c=this.prefix.map((function(o){return t.http.get(""+o+e+t.suffix)}));return i.combineLatest(function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(E(arguments[t]));return e}([n],c)).pipe(r.map((function(e){return e.reduce((function(e,t){return a.ObjectUtils.mergeDeep(e,t)}),{})})))},e}();function C(e,t){return new x(e,void 0,void 0,t)}function O(e){return{provide:s.TranslateLoader,useFactory:e||C,deps:[n.HttpClient,m]}}var k=function(){function e(){}return e.prototype.handle=function(e){if(!e.translateService.langs.length){throw new Error("Translations are not yet loaded. Check that the LanguageService is injected.")}if("igo."===e.key.substr(0,4))throw new Error('The Key "'+e.key+'" is missing in locale file.');return e.key},e}(),L=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[O()]}},e}();L.ɵmod=t.ɵɵdefineNgModule({type:L}),L.ɵinj=t.ɵɵdefineInjector({factory:function(e){return new(e||L)},imports:[[s.TranslateModule.forRoot({missingTranslationHandler:{provide:s.MissingTranslationHandler,useClass:k}})],s.TranslateModule]}),("undefined"==typeof ngJitMode||ngJitMode)&&t.ɵɵsetNgModuleScope(L,{imports:[s.TranslateModule],exports:[s.TranslateModule]});var T=function(e){return{closeIcon:e}},R=function(){function e(){this._options={}}return Object.defineProperty(e.prototype,"options",{get:function(){return Object.assign({},e.defaultOptions,this._options)},set:function(e){this._options=e},enumerable:!1,configurable:!0}),e}();R.defaultOptions={timeOut:5e3,hasCloseIcon:!1,showProgressBar:!0,pauseOnHover:!0,clickToClose:!0,maxLength:100,maxStack:3,preventDuplicates:!0},R.ɵfac=function(e){return new(e||R)},R.ɵcmp=t.ɵɵdefineComponent({type:R,selectors:[["igo-message-center"]],inputs:{options:"options"},decls:1,vars:4,consts:[[1,"mat-typography",3,"ngClass","options"]],template:function(e,o){1&e&&t.ɵɵelement(0,"simple-notifications",0),2&e&&t.ɵɵproperty("ngClass",t.ɵɵpureFunction1(2,T,o.options.hasCloseIcon))("options",o.options)},directives:[c.SimpleNotificationsComponent,o.NgClass],styles:['@charset "UTF-8";[_nghost-%COMP%] div.simple-notification-wrapper{bottom:0;right:calc(50% - 150px)}@media only screen and (orientation:landscape) and (max-width:959px),only screen and (orientation:portrait) and (max-width:599px){[_nghost-%COMP%] div.simple-notification-wrapper{left:0;right:0;width:100%}}[_nghost-%COMP%] div.simple-notification{margin-bottom:5px;min-height:50px;padding-left:45px;padding-right:25px}[_nghost-%COMP%] div.simple-notification.noIcon{padding-left:25px}@media only screen and (orientation:landscape) and (max-width:959px),only screen and (orientation:portrait) and (max-width:599px){[_nghost-%COMP%] div.simple-notification{margin-bottom:0}}[_nghost-%COMP%] div.simple-notification .sn-title{font-size:15px;font-weight:700;line-height:23px}[_nghost-%COMP%] div.simple-notification .sn-content{font-size:15px;line-height:18px}[_nghost-%COMP%] div.simple-notification .icon{height:100%;left:0;padding:7px;top:0;width:45px}[_nghost-%COMP%] div.simple-notification .icon  mat-icon{align-items:center;display:flex;font-size:32px;height:100%}[_nghost-%COMP%] .closeIcon .sn-title:after{content:"close";font-family:Material Icons;font-feature-settings:"liga" 1;font-size:24px;font-weight:400;position:absolute;right:5px;top:5px}']});var N=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e}();N.ɵmod=t.ɵɵdefineNgModule({type:N}),N.ɵinj=t.ɵɵdefineInjector({factory:function(e){return new(e||N)},imports:[[o.CommonModule,c.SimpleNotificationsModule.forRoot()]]}),("undefined"==typeof ngJitMode||ngJitMode)&&t.ɵɵsetNgModuleScope(N,{declarations:[R],imports:[o.CommonModule,c.SimpleNotificationsModule],exports:[R]});var P,D=function(){function e(e){this.translate=e,this.language=this.translate.getBrowserLang();var t=this.getLanguage();this.translate.setDefaultLang(t)}return e.prototype.getLanguage=function(){return this.language.match(/en|fr/)?this.language:"en"},e.prototype.setLanguage=function(e){this.language=e.match(/en|fr/)?e:"en",this.translate.use(this.language),this.translate.reloadLang(this.language)},e}();D.ɵfac=function(e){return new(e||D)(t.ɵɵinject(s.TranslateService))},D.ɵprov=t.ɵɵdefineInjectable({token:D,factory:D.ɵfac,providedIn:"root"}),(P=e.MessageType||(e.MessageType={})).ERROR="error",P.ALERT="alert",P.INFO="info",P.SUCCESS="success";var _=function(){function t(e,t){this.notificationService=e,this.configService=t,this.messages$=new i.BehaviorSubject([]),this.options=this.configService.getConfig("message")||{}}return t.prototype.showError=function(e){return e.error.caught=!0,this.error(e.error.message,e.error.title)},t.prototype.message=function(e){this.messages$.next(this.messages$.value.concat([e])),e.options=e.options||{};var t=new Date;if(e.options.from=e.options.from?e.options.from:new Date("1 jan 1900"),e.options.to=e.options.to?e.options.to:new Date("1 jan 3000"),"string"==typeof e.options.from&&(e.options.from=new Date(Date.parse(e.options.from.replace(/-/g," ")))),"string"==typeof e.options.to&&(e.options.to=new Date(Date.parse(e.options.to.replace(/-/g," ")))),t>e.options.from&&t<e.options.to){var o=void 0;if((e=this.handleTemplate(e)).text)o=this.notificationService.create(e.title,e.text,e.type,e.options);else{if(!e.html)return;e.icon||(e.options.theClass=e.options.theClass?e.options.theClass+" noIcon":"noIcon"),o=this.notificationService.html(e.html,e.type,e.options)}return void 0!==e.icon&&this.addIcon(o,e.icon),e.options.id=o.id,o}},t.prototype.success=function(t,o,n){return void 0===n&&(n={}),this.message({text:t,title:o,icon:n.icon||"check",options:n,type:e.MessageType.SUCCESS})},t.prototype.error=function(t,o,n){return void 0===n&&(n={}),this.message({text:t,title:o,icon:n.icon||"error_outline",options:n,type:e.MessageType.ERROR})},t.prototype.info=function(t,o,n){return void 0===n&&(n={}),this.message({text:t,title:o,icon:n.icon||"info_outline",options:n,type:e.MessageType.INFO})},t.prototype.alert=function(t,o,n){return void 0===n&&(n={}),this.message({text:t,title:o,icon:n.icon||"access_alarm",options:n,type:e.MessageType.ALERT})},t.prototype.remove=function(e){this.notificationService.remove(e)},t.prototype.removeAllAreNotError=function(){var e,t;try{for(var o=j(this.messages$.value),n=o.next();!n.done;n=o.next()){var r=n.value;"error"!==r.type&&this.remove(r.options.id)}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},t.prototype.addIcon=function(e,t){e.icon='\n <mat-icon class="material-icons mat-icon mat-list-avatar" svgIcon="'+t+'">\n </mat-icon>'},t.prototype.handleTemplate=function(e){if(!this.options.template||e.html)return e;var t=this.options.template;return t=(t=(t=t.replace("${text}",e.text)).replace("${title}",e.title)).replace("${icon}",e.icon),e.html=t,e.text=void 0,e.title=void 0,e.icon=void 0,e},t}();_.ɵfac=function(e){return new(e||_)(t.ɵɵinject(c.NotificationsService),t.ɵɵinject(m))},_.ɵprov=t.ɵɵdefineInjectable({token:_,factory:_.ɵfac,providedIn:"root"});var q=function(){function e(e,t){this.messageService=e,this.injector=t}return e.prototype.intercept=function(e,t){var o=this,n={httpError:void 0};return t.handle(e).pipe(r.catchError((function(e){return o.handleError(e,n)})),r.finalize((function(){o.handleCaughtError(n),o.handleUncaughtError(n)})))},e.prototype.handleError=function(e,t){if(e instanceof n.HttpErrorResponse){var o="object"===e.error?e.error:{};o.message=e.error.message||e.statusText,o.caught=!1,e=new n.HttpErrorResponse({error:o,headers:e.headers,status:e.status,statusText:e.statusText,url:e.url})}return t.httpError=e,i.throwError(e)},e.prototype.handleCaughtError=function(e){var t=e.httpError;t&&t.error.toDisplay&&(t.error.caught=!0,this.messageService.error(t.error.message,t.error.title))},e.prototype.handleUncaughtError=function(e){var t=e.httpError;if(t&&!t.error.caught){var o=this.injector.get(D).translate,n=o.instant("igo.core.errors.uncaught.message"),r=o.instant("igo.core.errors.uncaught.title");t.error.caught=!0,this.messageService.error(n,r)}},e}();q.ɵfac=function(e){return new(e||q)(t.ɵɵinject(_),t.ɵɵinject(t.Injector))},q.ɵprov=t.ɵɵdefineInjectable({token:q,factory:q.ɵfac,providedIn:"root"});var $=function(){function e(e){if(e)throw new Error("IgoErrorModule is already loaded. Import it in the AppModule only")}return e.forRoot=function(){return{ngModule:e,providers:[{provide:n.HTTP_INTERCEPTORS,useClass:q,multi:!0}]}},e}();$.ɵmod=t.ɵɵdefineNgModule({type:$}),$.ɵinj=t.ɵɵdefineInjector({factory:function(e){return new(e||$)(t.ɵɵinject($,12))},imports:[[]]});var A=function(){function e(e,t){e.addSvgIconSet(t.bypassSecurityTrustResourceUrl("./assets/igo2/core/icons/mdi.svg"))}return e.forRoot=function(){return{ngModule:e,providers:[]}},e}();A.ɵmod=t.ɵɵdefineNgModule({type:A}),A.ɵinj=t.ɵɵdefineInjector({factory:function(e){return new(e||A)(t.ɵɵinject(u.MatIconRegistry),t.ɵɵinject(p.DomSanitizer))},imports:[[o.CommonModule,n.HttpClientModule,h.forRoot(),I.forRoot(),$.forRoot(),L.forRoot(),N.forRoot()],h,I,$,L,N]}),("undefined"==typeof ngJitMode||ngJitMode)&&t.ɵɵsetNgModuleScope(A,{imports:[o.CommonModule,n.HttpClientModule,h,I,$,L,N],exports:[h,I,$,L,N]});var U=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function o(){this.constructor=e}w(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}(t,e),t.prototype.buildHammer=function(t){var o=e.prototype.buildHammer.call(this,t);return o.set({touchAction:"pan-y"}),o},t}(p.HammerGestureConfig);U.ɵfac=function(e){return H(e||U)},U.ɵprov=t.ɵɵdefineInjectable({token:U,factory:U.ɵfac});var H=t.ɵɵgetInheritedFactory(U),K=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[{provide:p.HAMMER_GESTURE_CONFIG,useClass:U}]}},e}();K.ɵmod=t.ɵɵdefineNgModule({type:K}),K.ɵinj=t.ɵɵdefineInjector({factory:function(e){return new(e||K)},imports:[[p.HammerModule]]}),("undefined"==typeof ngJitMode||ngJitMode)&&t.ɵɵsetNgModuleScope(K,{imports:[p.HammerModule]});var B=function(){function e(){}return e.prototype.intercept=function(e,t){var o,i=Date.now();return t.handle(e).pipe(r.tap((function(e){return o=e instanceof n.HttpResponse?"succeeded":""}),(function(e){return o="failed"})),r.finalize((function(){var t=Date.now()-i,n=e.method+' "'+e.urlWithParams+'"\n '+o+" in "+t+" ms.";console.log(n)})))},e}();B.ɵfac=function(e){return new(e||B)},B.ɵprov=t.ɵɵdefineInjectable({token:B,factory:B.ɵfac});var V=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[{provide:n.HTTP_INTERCEPTORS,useClass:B,multi:!0}]}},e}();V.ɵmod=t.ɵɵdefineNgModule({type:V}),V.ɵinj=t.ɵɵdefineInjector({factory:function(e){return new(e||V)},imports:[[]]});var F=new t.InjectionToken("routeServiceOptions");var J=function(){function e(e,t){this.route=e;this.options=Object.assign({},{centerKey:"center",zoomKey:"zoom",projectionKey:"projection",contextKey:"context",searchKey:"search",visibleOnLayersKey:"visiblelayers",visibleOffLayersKey:"invisiblelayers",directionsCoordKey:"routing",toolKey:"tool",wmsUrlKey:"wmsUrl",wmsLayersKey:"wmsLayers",wmtsUrlKey:"wmtsUrl",wmtsLayersKey:"wmtsLayers",arcgisUrlKey:"arcgisUrl",arcgisLayersKey:"arcgisLayers",iarcgisUrlKey:"iarcgisUrl",iarcgisLayersKey:"iarcgisLayers",tarcgisUrlKey:"tarcgisUrl",tarcgisLayersKey:"tarcgisLayers",vectorKey:"vector"},t)}return Object.defineProperty(e.prototype,"queryParams",{get:function(){return this.route.queryParams},enumerable:!1,configurable:!0}),e}();J.ɵfac=function(e){return new(e||J)(t.ɵɵinject(f.ActivatedRoute),t.ɵɵinject(F,8))},J.ɵprov=t.ɵɵdefineInjectable({token:J,factory:J.ɵfac,providedIn:"root"});var z,G,W=function(){function e(e){this.config=e,this.options=this.config.getConfig("analytics")||{},"matomo"===this.options.provider&&this.initMatomo()}return Object.defineProperty(e.prototype,"paq",{get:function(){return window._paq=window._paq||[]},enumerable:!1,configurable:!0}),e.prototype.initMatomo=function(){var e=this;if(this.options.url&&this.options.id){var t="/"===this.options.url.substr(-1)?this.options.url+"matomo":this.options.url;!function(){e.paq.push(["setTrackerUrl",t+".php"]),e.paq.push(["setSiteId",e.options.id]);var o=document.createElement("script"),n=document.getElementsByTagName("script")[0];o.type="text/javascript",o.async=!0,o.defer=!0,o.src=t+".js",n.parentNode.insertBefore(o,n)}()}},e.prototype.setUser=function(e,t){if("matomo"===this.options.provider){if(e){this.paq.push(["setUserId",e.id]);var o=e.firstName+" "+e.lastName;this.paq.push(["setCustomVariable",1,"user",e.sourceId,"visit"]),this.paq.push(["setCustomVariable",2,"name",o,"visit"]),this.paq.push(["setCustomVariable",3,"profils",t,"visit"])}else this.paq.push(["resetUserId"]),this.paq.push(["deleteCustomVariable",1,"user"]),this.paq.push(["deleteCustomVariable",2,"name"]),this.paq.push(["deleteCustomVariable",3,"profils"]);this.paq.push(["trackPageView"]),this.paq.push(["enableLinkTracking"])}},e.prototype.trackSearch=function(e,t){"matomo"===this.options.provider&&this.paq.push(["trackSiteSearch",e,!1,t])},e.prototype.trackEvent=function(e,t,o){"matomo"===this.options.provider&&this.paq.push(["trackEvent",e,t,o])},e}();W.ɵfac=function(e){return new(e||W)(t.ɵɵinject(m))},W.ɵprov=t.ɵɵdefineInjectable({token:W,factory:W.ɵfac,providedIn:"root"}),(z=e.Media||(e.Media={})).Mobile="mobile",z.Tablet="tablet",z.Desktop="desktop",(G=e.MediaOrientation||(e.MediaOrientation={})).Portrait="portrait",G.Landscape="landscape";var Z,Q,X=function(){function t(t){var o=this;this.media$=new i.BehaviorSubject(void 0),this.orientation$=new i.BehaviorSubject(void 0),t.observe([l.Breakpoints.HandsetLandscape]).subscribe((function(t){t.matches&&(o.media$.next(e.Media.Mobile),o.orientation$.next(e.MediaOrientation.Landscape))})),t.observe([l.Breakpoints.HandsetPortrait]).subscribe((function(t){t.matches&&(o.media$.next(e.Media.Mobile),o.orientation$.next(e.MediaOrientation.Portrait))})),t.observe([l.Breakpoints.TabletLandscape]).subscribe((function(t){t.matches&&(o.media$.next(e.Media.Tablet),o.orientation$.next(e.MediaOrientation.Landscape))})),t.observe([l.Breakpoints.TabletPortrait]).subscribe((function(t){t.matches&&(o.media$.next(e.Media.Tablet),o.orientation$.next(e.MediaOrientation.Portrait))})),t.observe([l.Breakpoints.WebLandscape]).subscribe((function(t){t.matches&&(o.media$.next(e.Media.Desktop),o.orientation$.next(e.MediaOrientation.Landscape))})),t.observe([l.Breakpoints.WebPortrait]).subscribe((function(t){t.matches&&(o.media$.next(e.Media.Desktop),o.orientation$.next(e.MediaOrientation.Portrait))}))}return t.prototype.getMedia=function(){return this.media$.value},t.prototype.getOrientation=function(){return this.orientation$.value},t.prototype.isTouchScreen=function(){return"ontouchstart"in document.documentElement},t.prototype.isMobile=function(){return"mobile"===this.getMedia()},t.prototype.isDesktop=function(){return"desktop"===this.getMedia()},t}();X.ɵfac=function(e){return new(e||X)(t.ɵɵinject(l.BreakpointObserver))},X.ɵprov=t.ɵɵdefineInjectable({token:X,factory:X.ɵfac,providedIn:"root"}),(Z=e.StorageScope||(e.StorageScope={})).SESSION="Session",Z.LOCAL="Local",(Q=e.StorageServiceEventEnum||(e.StorageServiceEventEnum={})).ADDED="Added",Q.MODIFIED="Modified",Q.REMOVED="Removed",Q.CLEARED="Cleared";var Y=function(){function t(e){this.config=e,this.storageChange$=new i.BehaviorSubject(void 0),this.options=this.config.getConfig("storage")||{key:"igo"}}return t.prototype.get=function(t,o){var n;if(o&&o!==e.StorageScope.SESSION||(n=sessionStorage.getItem(this.options.key+"."+t)),o!==e.StorageScope.LOCAL&&(n||o)||(n=localStorage.getItem(this.options.key+"."+t)),n)try{n=JSON.parse(n)}catch(e){n=n}return n},t.prototype.set=function(t,o,n){void 0===n&&(n=e.StorageScope.LOCAL);var r=this.get(t,n);n===e.StorageScope.SESSION?sessionStorage.setItem(this.options.key+"."+t,JSON.stringify(o)):localStorage.setItem(this.options.key+"."+t,JSON.stringify(o));var i=this.get(t,n);i!==r&&this.storageChange$.next({key:t,scope:n,event:void 0!==r?e.StorageServiceEventEnum.MODIFIED:e.StorageServiceEventEnum.ADDED,previousValue:r,currentValue:i})},t.prototype.remove=function(t,o){void 0===o&&(o=e.StorageScope.LOCAL);var n=this.get(t,o);o===e.StorageScope.SESSION?sessionStorage.removeItem(this.options.key+"."+t):localStorage.removeItem(this.options.key+"."+t),this.storageChange$.next({key:t,scope:o,event:e.StorageServiceEventEnum.REMOVED,previousValue:n})},t.prototype.clear=function(t){void 0===t&&(t=e.StorageScope.LOCAL),t===e.StorageScope.SESSION?sessionStorage.clear():localStorage.clear(),this.storageChange$.next({scope:t,event:e.StorageServiceEventEnum.CLEARED})},t}();Y.ɵfac=function(e){return new(e||Y)(t.ɵɵinject(m))},Y.ɵprov=t.ɵɵdefineInjectable({token:Y,factory:Y.ɵfac,providedIn:"root"});var ee=function(){function e(e,o){this.messageService=e,this.injector=o,this.stateChangeEventEmitter=new t.EventEmitter,this.state={connection:window.navigator.onLine},this.checkNetworkState()}return e.prototype.checkNetworkState=function(){var e=this;this.onlineSubscription=i.fromEvent(window,"online").subscribe((function(){var t=e.injector.get(D).translate,o=t.instant("igo.core.network.online.message"),n=t.instant("igo.core.network.online.title");e.messageService.info(o,n),e.state.connection=!0,e.emitEvent()})),this.offlineSubscription=i.fromEvent(window,"offline").subscribe((function(){var t=e.injector.get(D).translate,o=t.instant("igo.core.network.offline.message"),n=t.instant("igo.core.network.offline.title");e.messageService.info(o,n),e.state.connection=!1,e.emitEvent()}))},e.prototype.emitEvent=function(){this.stateChangeEventEmitter.emit(this.state)},e.prototype.ngOnDestroy=function(){try{this.offlineSubscription.unsubscribe(),this.onlineSubscription.unsubscribe()}catch(e){}},e.prototype.currentState=function(e){return void 0===e&&(e=!0),e?this.stateChangeEventEmitter.pipe(r.debounceTime(300),r.startWith(this.state)):this.stateChangeEventEmitter.pipe(r.debounceTime(300))},e}();ee.ɵfac=function(e){return new(e||ee)(t.ɵɵinject(_),t.ɵɵinject(t.Injector))},ee.ɵprov=t.ɵɵdefineInjectable({token:ee,factory:ee.ɵfac,providedIn:"root"}),e.ActivityInterceptor=g,e.ActivityService=d,e.AnalyticsService=W,e.CONFIG_OPTIONS=y,e.ConfigService=m,e.ErrorInterceptor=q,e.IgoActivityModule=h,e.IgoConfigModule=I,e.IgoCoreModule=A,e.IgoErrorModule=$,e.IgoGestureConfig=U,e.IgoGestureModule=K,e.IgoLanguageModule=L,e.IgoLoggingModule=V,e.IgoMessageModule=N,e.IgoMissingTranslationHandler=k,e.LanguageLoader=x,e.LanguageService=D,e.LoggingInterceptor=B,e.MediaService=X,e.MessageCenterComponent=R,e.MessageService=_,e.NetworkService=ee,e.ROUTE_SERVICE_OPTIONS=F,e.RouteService=J,e.StorageService=Y,e.configFactory=b,e.defaultLanguageLoader=C,e.provideConfigLoader=M,e.provideConfigOptions=S,e.provideDefaultLanguageLoader=O,e.provideLanguageLoader=function(e){return{provide:s.TranslateLoader,useFactory:e||C,deps:[n.HttpClient]}},e.provideRouteServiceOptions=function(e){return{provide:F,useValue:e}},e.version=v,Object.defineProperty(e,"__esModule",{value:!0})}));
17
- //# sourceMappingURL=igo2-core.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/core/src/lib/activity/activity.service.ts","../../../packages/core/src/lib/activity/activity.interceptor.ts","../../../packages/core/src/lib/activity/activity.module.ts","../../../packages/core/src/lib/config/version.ts","../../../packages/core/src/lib/config/config.service.ts","../../../packages/core/src/lib/config/config.provider.ts","../../../packages/core/src/lib/config/config.module.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/core/src/lib/language/shared/language.loader.ts","../../../packages/core/src/lib/language/shared/language.provider.ts","../../../packages/core/src/lib/language/shared/missing-translation.guard.ts","../../../packages/core/src/lib/language/language.module.ts","../../../packages/core/src/lib/message/message-center/message-center.component.ts","../../../packages/core/src/lib/message/message-center/message-center.component.html","../../../packages/core/src/lib/message/message.module.ts","../../../packages/core/src/lib/message/shared/message.enum.ts","../../../packages/core/src/lib/language/shared/language.service.ts","../../../packages/core/src/lib/message/shared/message.service.ts","../../../packages/core/src/lib/request/error.interceptor.ts","../../../packages/core/src/lib/request/error.module.ts","../../../packages/core/src/lib/core.module.ts","../../../packages/core/src/lib/gesture/gesture.provider.ts","../../../packages/core/src/lib/gesture/gesture.module.ts","../../../packages/core/src/lib/request/logging.interceptor.ts","../../../packages/core/src/lib/request/logging.module.ts","../../../packages/core/src/lib/route/route.service.ts","../../../packages/core/src/lib/media/media.enum.ts","../../../packages/core/src/lib/analytics/shared/analytics.service.ts","../../../packages/core/src/lib/storage/storage.interface.ts","../../../packages/core/src/lib/media/media.service.ts","../../../packages/core/src/lib/storage/storage.service.ts","../../../packages/core/src/lib/network/network.service.ts"],"names":["ActivityService","this","counter$","BehaviorSubject","ids","prototype","register","id","uuid","push","next","length","unregister","index","indexOf","splice","factory","ɵfac","providedIn","ActivityInterceptor","activityService","intercept","req","_this","activity","headers","get","actReq","clone","delete","handle","pipe","finalize","i0","ɵɵinject","IgoActivityModule","forRoot","ngModule","providers","provide","HTTP_INTERCEPTORS","useClass","multi","imports","version","lib","releaseDate","ConfigService","injector","config","getConfig","key","ObjectUtils","resolve","load","options","baseConfig","default","path","http","HttpClient","Promise","_reject","catchError","error","console","log","throwError","subscribe","configResponse","mergeDeep","Injector","CONFIG_OPTIONS","InjectionToken","provideConfigOptions","useValue","configFactory","configService","provideConfigLoader","APP_INITIALIZER","useFactory","deps","IgoConfigModule","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","create","__values","o","s","Symbol","iterator","m","i","value","done","TypeError","__read","n","r","e","ar","LanguageLoader","prefix","suffix","getTranslation","lang","translation","require","igoLocale$","of","isArray","appLocale$","map","combineLatest","arguments","concat","__spread","translations","reduce","acc","current","defaultLanguageLoader","undefined","provideDefaultLanguageLoader","loader","TranslateLoader","IgoMissingTranslationHandler","params","translateService","langs","Error","substr","IgoLanguageModule","TranslateModule","missingTranslationHandler","MissingTranslationHandler","i1","exports","MessageCenterComponent","_options","defineProperty","assign","defaultOptions","timeOut","hasCloseIcon","showProgressBar","pauseOnHover","clickToClose","maxLength","maxStack","preventDuplicates","selectors","inputs","decls","vars","consts","template","rf","ctx","i0.ɵɵelement","i0.ɵɵproperty","IgoMessageModule","CommonModule","SimpleNotificationsModule","declarations","i1$1","MessageType","LanguageService","translate","language","getBrowserLang","getLanguage","setDefaultLang","match","setLanguage","use","reloadLang","TranslateService","MessageService","notificationService","messages$","showError","httpError","caught","message","title","currentDate","Date","from","to","parse","replace","notification","handleTemplate","text","type","html","icon","theClass","addIcon","success","SUCCESS","ERROR","info","INFO","alert","ALERT","remove","removeAllAreNotError","_b","_c","mess","NotificationsService","ErrorInterceptor","messageService","errorContainer","handleError","handleCaughtError","handleUncaughtError","HttpErrorResponse","errorObj","statusText","status","url","toDisplay","instant","IgoErrorModule","parentModule","IgoCoreModule","matIconRegistry","domSanitizer","addSvgIconSet","bypassSecurityTrustResourceUrl","i6","MatIconRegistry","i7","DomSanitizer","HttpClientModule","IgoGestureConfig","String","__","constructor","__extends","_super","buildHammer","element","mc","set","touchAction","HammerGestureConfig","IgoGestureModule","HAMMER_GESTURE_CONFIG","HammerModule","LoggingInterceptor","ok","started","now","tap","event","HttpResponse","elapsed","msg","method","urlWithParams","IgoLoggingModule","ROUTE_SERVICE_OPTIONS","RouteService","route","centerKey","zoomKey","projectionKey","contextKey","searchKey","visibleOnLayersKey","visibleOffLayersKey","directionsCoordKey","toolKey","wmsUrlKey","wmsLayersKey","wmtsUrlKey","wmtsLayersKey","arcgisUrlKey","arcgisLayersKey","iarcgisUrlKey","iarcgisLayersKey","tarcgisUrlKey","tarcgisLayersKey","vectorKey","queryParams","i1$2","ActivatedRoute","Media","MediaOrientation","AnalyticsService","provider","initMatomo","window","_paq","paq","g","document","createElement","getElementsByTagName","async","defer","src","parentNode","insertBefore","setUser","user","profils","name","firstName","lastName","sourceId","trackSearch","term","nbResults","trackEvent","category","action","StorageScope","StorageServiceEventEnum","MediaService","breakpointObserver","media$","orientation$","observe","Breakpoints","HandsetLandscape","res","matches","Mobile","Landscape","HandsetPortrait","Portrait","TabletLandscape","Tablet","TabletPortrait","WebLandscape","Desktop","WebPortrait","getMedia","getOrientation","isTouchScreen","documentElement","isMobile","isDesktop","i1$3","BreakpointObserver","StorageService","storageChange$","scope","SESSION","sessionStorage","getItem","LOCAL","localStorage","JSON","_a","previousValue","setItem","stringify","currentValue","MODIFIED","ADDED","removeItem","REMOVED","clear","CLEARED","NetworkService","stateChangeEventEmitter","EventEmitter","state","connection","navigator","onLine","checkNetworkState","onlineSubscription","fromEvent","emitEvent","offlineSubscription","emit","ngOnDestroy","unsubscribe","currentState","reportState","debounceTime","startWith"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { uuid } from '@igo2/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityService {\n public counter$ = new BehaviorSubject<number>(0);\n\n private ids: string[] = [];\n\n constructor() {}\n\n register(): string {\n const id = uuid();\n this.ids.push(id);\n this.counter$.next(this.ids.length);\n\n return id;\n }\n\n unregister(id: string) {\n const index = this.ids.indexOf(id);\n if (index === -1) {\n return;\n }\n this.ids.splice(index, 1);\n\n this.counter$.next(this.ids.length);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nimport { ActivityService } from './activity.service';\n\n@Injectable()\nexport class ActivityInterceptor implements HttpInterceptor {\n constructor(private activityService: ActivityService) {}\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const activity = req.headers.get('activityInterceptor');\n if (activity) {\n const actReq = req.clone({\n headers: req.headers.delete('activityInterceptor')\n });\n if (activity === 'false') {\n return next.handle(actReq);\n }\n }\n\n const id = this.activityService.register();\n\n return next.handle(req).pipe(\n finalize(() => {\n this.activityService.unregister(id);\n })\n );\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { ActivityInterceptor } from './activity.interceptor';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoActivityModule {\n static forRoot(): ModuleWithProviders<IgoActivityModule> {\n return {\n ngModule: IgoActivityModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ActivityInterceptor,\n multi: true\n }\n ]\n };\n }\n}\n","export interface Version {\n lib: string;\n releaseDate: number;\n}\n\nexport const version: Version = {\n lib: '1.8.2',\n releaseDate: 1628779296901\n};\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { ConfigOptions } from './config.interface';\nimport { version } from './version';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n private config: object = {};\n\n constructor(private injector: Injector) {}\n\n /**\n * Use to get the data found in config file\n */\n public getConfig(key: string): any {\n return ObjectUtils.resolve(this.config, key);\n }\n\n /**\n * This method loads \"[path]\" to get all config's variables\n */\n public load(options: ConfigOptions) {\n const baseConfig = options.default || {};\n if (!options.path) {\n this.config = baseConfig;\n return true;\n }\n\n const http = this.injector.get(HttpClient);\n\n return new Promise((resolve, _reject) => {\n http\n .get(options.path)\n .pipe(\n catchError((error: any): any => {\n console.log(`Configuration file ${options.path} could not be read`);\n resolve(true);\n return throwError(error.error || 'Server error');\n })\n )\n .subscribe((configResponse: object) => {\n this.config = ObjectUtils.mergeDeep(\n ObjectUtils.mergeDeep({ version }, baseConfig),\n configResponse\n );\n resolve(true);\n });\n });\n }\n}\n","import { APP_INITIALIZER, InjectionToken } from '@angular/core';\n\nimport { ConfigService } from './config.service';\nimport { ConfigOptions } from './config.interface';\n\nexport let CONFIG_OPTIONS = new InjectionToken<ConfigOptions>('configOptions');\n\nexport function provideConfigOptions(options: ConfigOptions) {\n return {\n provide: CONFIG_OPTIONS,\n useValue: options\n };\n}\n\nexport function configFactory(\n configService: ConfigService,\n options: ConfigOptions\n) {\n return () => configService.load(options);\n}\n\nexport function provideConfigLoader() {\n return {\n provide: APP_INITIALIZER,\n useFactory: configFactory,\n multi: true,\n deps: [ConfigService, CONFIG_OPTIONS]\n };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { provideConfigOptions, provideConfigLoader } from './config.provider';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoConfigModule {\n static forRoot(): ModuleWithProviders<IgoConfigModule> {\n return {\n ngModule: IgoConfigModule,\n providers: [provideConfigOptions({}), provideConfigLoader()]\n };\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { HttpClient } from '@angular/common/http';\n\nimport { of, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { TranslateLoader } from '@ngx-translate/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { ConfigService } from '../../config/config.service';\n\ndeclare function require(arg: string): any;\n\nexport class LanguageLoader implements TranslateLoader {\n constructor(\n private http: HttpClient,\n private prefix?: string | string[],\n private suffix: string = '.json',\n private config?: ConfigService\n ) {}\n\n public getTranslation(lang: string): any {\n const translation = require(`../locale/${lang}.json`);\n const igoLocale$ = of(translation);\n\n if (this.config && !this.prefix) {\n const prefix = this.config.getConfig('language.prefix');\n this.prefix = !prefix || Array.isArray(prefix) ? prefix : [prefix];\n }\n\n if (!this.prefix || this.prefix.length === 0) {\n return igoLocale$;\n }\n\n const appLocale$ = (this.prefix as string[]).map((prefix) =>\n this.http.get(`${prefix}${lang}${this.suffix}`)\n );\n\n const locale$ = combineLatest([igoLocale$, ...appLocale$]);\n\n return locale$.pipe(\n map((translations) => {\n return translations.reduce(\n (acc, current) => ObjectUtils.mergeDeep(acc, current),\n {}\n );\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\n\nimport { ConfigService } from '../../config/config.service';\nimport { LanguageLoader } from './language.loader';\n\nexport function defaultLanguageLoader(\n http: HttpClient,\n config?: ConfigService\n) {\n return new LanguageLoader(http, undefined, undefined, config);\n}\n\nexport function provideLanguageLoader(loader?) {\n return {\n provide: TranslateLoader,\n useFactory: loader || defaultLanguageLoader,\n deps: [HttpClient]\n };\n}\n\nexport function provideDefaultLanguageLoader(loader?) {\n return {\n provide: TranslateLoader,\n useFactory: loader || defaultLanguageLoader,\n deps: [HttpClient, ConfigService]\n };\n}\n","import {\n MissingTranslationHandler,\n MissingTranslationHandlerParams\n} from '@ngx-translate/core';\n\nexport class IgoMissingTranslationHandler implements MissingTranslationHandler {\n handle(params: MissingTranslationHandlerParams) {\n if (!params.translateService.langs.length) {\n const error =\n 'Translations are not yet loaded. \\\n Check that the LanguageService is injected.';\n throw new Error(error);\n }\n\n if (params.key.substr(0, 4) === 'igo.') {\n throw new Error(`The Key \"${params.key}\" is missing in locale file.`);\n } else {\n return params.key;\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport {\n TranslateModule,\n MissingTranslationHandler\n} from '@ngx-translate/core';\n\nimport { provideDefaultLanguageLoader } from './shared/language.provider';\nimport { IgoMissingTranslationHandler } from './shared/missing-translation.guard';\n\n@NgModule({\n imports: [\n TranslateModule.forRoot({\n missingTranslationHandler: {\n provide: MissingTranslationHandler,\n useClass: IgoMissingTranslationHandler\n }\n })\n ],\n declarations: [],\n exports: [TranslateModule]\n})\nexport class IgoLanguageModule {\n static forRoot(): ModuleWithProviders<IgoLanguageModule> {\n return {\n ngModule: IgoLanguageModule,\n providers: [provideDefaultLanguageLoader()]\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'igo-message-center',\n templateUrl: './message-center.component.html',\n styleUrls: ['./message-center.component.scss']\n})\nexport class MessageCenterComponent {\n static defaultOptions = {\n timeOut: 5000,\n hasCloseIcon: false,\n showProgressBar: true,\n pauseOnHover: true,\n clickToClose: true,\n maxLength: 100,\n maxStack: 3,\n preventDuplicates: true\n };\n\n @Input()\n get options(): any {\n return Object.assign(\n {},\n MessageCenterComponent.defaultOptions,\n this._options\n );\n }\n set options(value: any) {\n this._options = value;\n }\n private _options: any = {};\n\n constructor() {}\n}\n","<simple-notifications\n class=\"mat-typography\"\n [ngClass]=\"{closeIcon: options.hasCloseIcon}\"\n [options]=\"options\">\n</simple-notifications>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SimpleNotificationsModule } from 'angular2-notifications';\n\nimport { MessageCenterComponent } from './message-center/message-center.component';\n\n@NgModule({\n imports: [CommonModule, SimpleNotificationsModule.forRoot()],\n declarations: [MessageCenterComponent],\n exports: [MessageCenterComponent]\n})\nexport class IgoMessageModule {\n static forRoot(): ModuleWithProviders<IgoMessageModule> {\n return {\n ngModule: IgoMessageModule,\n providers: []\n };\n }\n}\n","export enum MessageType {\n ERROR = 'error',\n ALERT = 'alert',\n INFO = 'info',\n SUCCESS = 'success'\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n private language: string = this.translate.getBrowserLang();\n\n constructor(public translate: TranslateService) {\n const lang = this.getLanguage();\n this.translate.setDefaultLang(lang);\n }\n\n public getLanguage(): string {\n return this.language.match(/en|fr/) ? this.language : 'en';\n }\n\n public setLanguage(language: string) {\n this.language = language.match(/en|fr/) ? language : 'en';\n this.translate.use(this.language);\n this.translate.reloadLang(this.language);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n Notification,\n NotificationsService,\n NotificationType\n} from 'angular2-notifications';\n\nimport { ConfigService } from '../../config/config.service';\n\nimport { Message, MessageOptions } from './message.interface';\nimport { MessageType } from './message.enum';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService {\n public messages$ = new BehaviorSubject<Message[]>([]);\n private options: MessageOptions;\n\n constructor(\n private notificationService: NotificationsService,\n private configService: ConfigService\n ) {\n this.options = this.configService.getConfig('message') || {};\n }\n\n showError(httpError: HttpErrorResponse) {\n httpError.error.caught = true;\n return this.error(httpError.error.message, httpError.error.title);\n }\n\n message(message: Message) {\n this.messages$.next(this.messages$.value.concat([message]));\n\n message.options = message.options || {} as MessageOptions;\n const currentDate = new Date();\n\n message.options.from = message.options.from ? message.options.from : new Date('1 jan 1900');\n message.options.to = message.options.to ? message.options.to : new Date('1 jan 3000');\n if (typeof message.options.from === 'string') {\n message.options.from = new Date(Date.parse(message.options.from.replace(/-/g, ' ')));\n }\n if (typeof message.options.to === 'string') {\n message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));\n }\n if (\n currentDate > message.options.from && currentDate < message.options.to) {\n\n message = this.handleTemplate(message);\n\n let notification: Notification;\n if (message.text) {\n notification = this.notificationService.create(\n message.title,\n message.text,\n (message.type as any) as NotificationType,\n message.options\n );\n } else if (message.html) {\n if (!message.icon) {\n message.options.theClass = message.options.theClass\n ? message.options.theClass + ' noIcon'\n : 'noIcon';\n }\n\n notification = this.notificationService.html(\n message.html,\n (message.type as any) as NotificationType,\n message.options\n );\n } else {\n return;\n }\n\n if (message.icon !== undefined) {\n this.addIcon(notification, message.icon);\n }\n message.options.id = notification.id;\n return notification;\n }\n return;\n }\n\n success(text: string, title?: string, options: any = {}) {\n return this.message({\n text,\n title,\n icon: options.icon || 'check',\n options,\n type: MessageType.SUCCESS\n });\n }\n\n error(text: string, title?: string, options: any = {}) {\n return this.message({\n text,\n title,\n icon: options.icon || 'error_outline',\n options,\n type: MessageType.ERROR\n });\n }\n\n info(text: string, title?: string, options: any = {}) {\n return this.message({\n text,\n title,\n icon: options.icon || 'info_outline',\n options,\n type: MessageType.INFO\n });\n }\n\n alert(text: string, title?: string, options: any = {}) {\n return this.message({\n text,\n title,\n icon: options.icon || 'access_alarm',\n options,\n type: MessageType.ALERT\n });\n }\n\n remove(id?: string) {\n this.notificationService.remove(id);\n }\n\n removeAllAreNotError() {\n for (const mess of this.messages$.value) {\n if (mess.type !== 'error') {\n this.remove(mess.options.id);\n }\n }\n }\n\n private addIcon(notification: Notification, icon: string) {\n // There is no way to add an icon to a notification when reating\n // it so we simply set it on the notification directly.\n // See https://github.com/flauc/angular2-notifications/issues/165\n notification.icon = `\n <mat-icon class=\"material-icons mat-icon mat-list-avatar\" svgIcon=\"${icon}\">\n </mat-icon>`;\n }\n\n private handleTemplate(message: Message): Message {\n if (!this.options.template || message.html) {\n return message;\n }\n\n let html = this.options.template;\n html = html.replace('${text}', message.text);\n html = html.replace('${title}', message.title);\n html = html.replace('${icon}', message.icon);\n\n message.html = html;\n message.text = undefined;\n message.title = undefined;\n message.icon = undefined;\n return message;\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n HttpEvent,\n HttpErrorResponse\n} from '@angular/common/http';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\n\nimport { MessageService } from '../message/shared/message.service';\nimport { LanguageService } from '../language/shared/language.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorInterceptor implements HttpInterceptor {\n constructor(\n private messageService: MessageService,\n private injector: Injector\n ) {}\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const errorContainer = { httpError: undefined };\n return next.handle(req).pipe(\n catchError(error => this.handleError(error, errorContainer)),\n finalize(() => {\n this.handleCaughtError(errorContainer);\n this.handleUncaughtError(errorContainer);\n })\n );\n }\n\n private handleError(\n httpError: HttpErrorResponse,\n errorContainer: { httpError: HttpErrorResponse }\n ) {\n if (httpError instanceof HttpErrorResponse) {\n const errorObj = httpError.error === 'object' ? httpError.error : {};\n errorObj.message = httpError.error.message || httpError.statusText;\n errorObj.caught = false;\n\n httpError = new HttpErrorResponse({\n error: errorObj,\n headers: httpError.headers,\n status: httpError.status,\n statusText: httpError.statusText,\n url: httpError.url\n });\n }\n\n errorContainer.httpError = httpError;\n return throwError(httpError);\n }\n\n private handleCaughtError(errorContainer: { httpError: HttpErrorResponse }) {\n const httpError = errorContainer.httpError;\n if (httpError && httpError.error.toDisplay) {\n httpError.error.caught = true;\n this.messageService.error(httpError.error.message, httpError.error.title);\n }\n }\n\n private handleUncaughtError(errorContainer: {\n httpError: HttpErrorResponse;\n }) {\n const httpError = errorContainer.httpError;\n if (httpError && !httpError.error.caught) {\n const translate = this.injector.get(LanguageService).translate;\n const message = translate.instant('igo.core.errors.uncaught.message');\n const title = translate.instant('igo.core.errors.uncaught.title');\n httpError.error.caught = true;\n this.messageService.error(message, title);\n }\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n Optional,\n SkipSelf\n} from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { ErrorInterceptor } from './error.interceptor';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoErrorModule {\n static forRoot(): ModuleWithProviders<IgoErrorModule> {\n return {\n ngModule: IgoErrorModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptor,\n multi: true\n }\n ]\n };\n }\n\n constructor(@Optional() @SkipSelf() parentModule: IgoErrorModule) {\n if (parentModule) {\n throw new Error(\n 'IgoErrorModule is already loaded. Import it in the AppModule only'\n );\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatIconRegistry } from '@angular/material/icon';\n\nimport { IgoActivityModule } from './activity/activity.module';\nimport { IgoConfigModule } from './config/config.module';\nimport { IgoLanguageModule } from './language/language.module';\nimport { IgoMessageModule } from './message/message.module';\nimport { IgoErrorModule } from './request/error.module';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n IgoActivityModule.forRoot(),\n IgoConfigModule.forRoot(),\n IgoErrorModule.forRoot(),\n IgoLanguageModule.forRoot(),\n IgoMessageModule.forRoot()\n ],\n declarations: [],\n exports: [\n IgoActivityModule,\n IgoConfigModule,\n IgoErrorModule,\n IgoLanguageModule,\n IgoMessageModule\n ]\n})\nexport class IgoCoreModule {\n static forRoot(): ModuleWithProviders<IgoCoreModule> {\n return {\n ngModule: IgoCoreModule,\n providers: []\n };\n }\n\n constructor(matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) {\n matIconRegistry.addSvgIconSet(\n domSanitizer.bypassSecurityTrustResourceUrl(\n './assets/igo2/core/icons/mdi.svg'\n )\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\n\n\n@Injectable()\nexport class IgoGestureConfig extends HammerGestureConfig {\n buildHammer(element: HTMLElement) {\n const mc = super.buildHammer(element) as any;\n mc.set({ touchAction: 'pan-y' });\n return mc;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HammerModule, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';\n\nimport { IgoGestureConfig } from './gesture.provider';\n\n@NgModule({\n imports: [HammerModule],\n declarations: [],\n exports: []\n})\nexport class IgoGestureModule {\n static forRoot(): ModuleWithProviders<IgoGestureModule> {\n return {\n ngModule: IgoGestureModule,\n providers: [\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: IgoGestureConfig\n }\n ]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpHandler,\n HttpEvent,\n HttpRequest,\n HttpResponse\n} from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { tap, finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class LoggingInterceptor implements HttpInterceptor {\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const started = Date.now();\n let ok: string;\n\n // extend server response observable with logging\n return next.handle(req).pipe(\n tap(\n // Succeeds when there is a response; ignore other events\n event => (ok = event instanceof HttpResponse ? 'succeeded' : ''),\n // Operation failed; error is an HttpErrorResponse\n error => (ok = 'failed')\n ),\n // Log when response observable either completes or errors\n finalize(() => {\n const elapsed = Date.now() - started;\n const msg = `${req.method} \"${req.urlWithParams}\"\n ${ok} in ${elapsed} ms.`;\n\n console.log(msg);\n })\n );\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { LoggingInterceptor } from './logging.interceptor';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoLoggingModule {\n static forRoot(): ModuleWithProviders<IgoLoggingModule> {\n return {\n ngModule: IgoLoggingModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: LoggingInterceptor,\n multi: true\n }\n ]\n };\n }\n}\n","import { Injectable, Inject, InjectionToken, Optional } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { RouteServiceOptions } from './route.interface';\n\nexport let ROUTE_SERVICE_OPTIONS = new InjectionToken<RouteServiceOptions>(\n 'routeServiceOptions'\n);\n\nexport function provideRouteServiceOptions(options: RouteServiceOptions) {\n return {\n provide: ROUTE_SERVICE_OPTIONS,\n useValue: options\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RouteService {\n public options: RouteServiceOptions;\n\n constructor(\n public route: ActivatedRoute,\n @Inject(ROUTE_SERVICE_OPTIONS)\n @Optional()\n options: RouteServiceOptions\n ) {\n const defaultOptions = {\n centerKey: 'center',\n zoomKey: 'zoom',\n projectionKey: 'projection',\n contextKey: 'context',\n searchKey: 'search',\n visibleOnLayersKey: 'visiblelayers',\n visibleOffLayersKey: 'invisiblelayers',\n directionsCoordKey: 'routing',\n toolKey: 'tool',\n wmsUrlKey: 'wmsUrl',\n wmsLayersKey: 'wmsLayers',\n wmtsUrlKey: 'wmtsUrl',\n wmtsLayersKey: 'wmtsLayers',\n arcgisUrlKey: 'arcgisUrl',\n arcgisLayersKey: 'arcgisLayers',\n iarcgisUrlKey: 'iarcgisUrl',\n iarcgisLayersKey: 'iarcgisLayers',\n tarcgisUrlKey: 'tarcgisUrl',\n tarcgisLayersKey: 'tarcgisLayers',\n vectorKey: 'vector'\n };\n this.options = Object.assign({}, defaultOptions, options);\n }\n\n get queryParams(): Observable<Params> {\n return this.route.queryParams;\n }\n}\n","export enum Media {\n Mobile = 'mobile',\n Tablet = 'tablet',\n Desktop = 'desktop'\n}\n\nexport enum MediaOrientation {\n Portrait = 'portrait',\n Landscape = 'landscape'\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConfigService } from '../../config/config.service';\n\nimport { AnalyticsOptions } from './analytics.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnalyticsService {\n private options: AnalyticsOptions;\n\n get paq() {\n return ((window as any)._paq = (window as any)._paq || []);\n }\n\n constructor(private config: ConfigService) {\n this.options = this.config.getConfig('analytics') || {};\n\n if (this.options.provider === 'matomo') {\n this.initMatomo();\n }\n }\n\n private initMatomo() {\n if (!this.options.url || !this.options.id) {\n return;\n }\n const url =\n this.options.url.substr(-1) === '/'\n ? this.options.url + 'matomo'\n : this.options.url;\n\n // this.paq.push(['trackPageView']);\n // this.paq.push(['enableLinkTracking']);\n (() => {\n this.paq.push(['setTrackerUrl', url + '.php']);\n this.paq.push(['setSiteId', this.options.id]);\n const g = document.createElement('script');\n const s = document.getElementsByTagName('script')[0];\n g.type = 'text/javascript';\n g.async = true;\n g.defer = true;\n g.src = url + '.js';\n s.parentNode.insertBefore(g, s);\n })();\n }\n\n public setUser(\n user?: {\n id: number;\n sourceId?: string;\n firstName?: string;\n lastName?: string;\n },\n profils?: string[]\n ) {\n if (this.options.provider === 'matomo') {\n if (!user) {\n this.paq.push(['resetUserId']);\n this.paq.push(['deleteCustomVariable', 1, 'user']);\n this.paq.push(['deleteCustomVariable', 2, 'name']);\n this.paq.push(['deleteCustomVariable', 3, 'profils']);\n } else {\n this.paq.push(['setUserId', user.id]);\n\n const name = `${user.firstName} ${user.lastName}`;\n this.paq.push(['setCustomVariable', 1, 'user', user.sourceId, 'visit']);\n this.paq.push(['setCustomVariable', 2, 'name', name, 'visit']);\n this.paq.push(['setCustomVariable', 3, 'profils', profils, 'visit']);\n }\n\n this.paq.push(['trackPageView']);\n this.paq.push(['enableLinkTracking']);\n }\n }\n\n public trackSearch(term: string, nbResults: number) {\n if (this.options.provider === 'matomo') {\n this.paq.push(['trackSiteSearch', term, false, nbResults]);\n }\n }\n\n public trackEvent(category: string, action: string, name: string) {\n if (this.options.provider === 'matomo') {\n this.paq.push(['trackEvent', category, action, name]);\n }\n }\n}\n","export enum StorageScope {\n SESSION = 'Session',\n LOCAL = 'Local'\n}\n\nexport interface StorageOptions {\n key: string;\n}\n\nexport interface StorageServiceEvent {\n key?: string;\n scope: StorageScope;\n event: StorageServiceEventEnum;\n previousValue?: any;\n currentValue?: any;\n}\n\nexport enum StorageServiceEventEnum {\n ADDED = 'Added',\n MODIFIED = 'Modified',\n REMOVED = 'Removed',\n CLEARED = 'Cleared'\n}\n","import { Injectable } from '@angular/core';\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Media, MediaOrientation } from './media.enum';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MediaService {\n public media$ = new BehaviorSubject<Media>(undefined);\n public orientation$ = new BehaviorSubject<MediaOrientation>(undefined);\n\n constructor(breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe([Breakpoints.HandsetLandscape])\n .subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Mobile);\n this.orientation$.next(MediaOrientation.Landscape);\n }\n });\n\n breakpointObserver.observe([Breakpoints.HandsetPortrait]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Mobile);\n this.orientation$.next(MediaOrientation.Portrait);\n }\n });\n\n breakpointObserver.observe([Breakpoints.TabletLandscape]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Tablet);\n this.orientation$.next(MediaOrientation.Landscape);\n }\n });\n\n breakpointObserver.observe([Breakpoints.TabletPortrait]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Tablet);\n this.orientation$.next(MediaOrientation.Portrait);\n }\n });\n\n breakpointObserver.observe([Breakpoints.WebLandscape]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Desktop);\n this.orientation$.next(MediaOrientation.Landscape);\n }\n });\n\n breakpointObserver.observe([Breakpoints.WebPortrait]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Desktop);\n this.orientation$.next(MediaOrientation.Portrait);\n }\n });\n }\n\n getMedia(): Media {\n return this.media$.value;\n }\n\n getOrientation(): MediaOrientation {\n return this.orientation$.value;\n }\n\n isTouchScreen(): boolean {\n return 'ontouchstart' in document.documentElement ? true : false;\n }\n\n isMobile(): boolean {\n const media = this.getMedia();\n return media === 'mobile';\n }\n\n isDesktop(): boolean {\n const media = this.getMedia();\n return media === 'desktop';\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConfigService } from '../config/config.service';\nimport { StorageScope, StorageOptions, StorageServiceEvent, StorageServiceEventEnum } from './storage.interface';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n protected options: StorageOptions;\n\n public storageChange$: BehaviorSubject<StorageServiceEvent> = new BehaviorSubject(undefined);\n\n constructor(private config: ConfigService) {\n this.options = this.config.getConfig('storage') || { key: 'igo' };\n }\n /**\n * Use to get the data found in storage file\n */\n get(key: string, scope?: StorageScope): string | object | boolean | number {\n let value: any;\n\n if (!scope || scope === StorageScope.SESSION) {\n value = sessionStorage.getItem(`${this.options.key}.${key}`);\n }\n\n if (scope === StorageScope.LOCAL || (!value && !scope)) {\n value = localStorage.getItem(`${this.options.key}.${key}`);\n }\n\n if (value) {\n try {\n value = JSON.parse(value);\n } catch {\n value = value;\n }\n }\n\n return value;\n }\n\n set(\n key: string,\n value: string | object | boolean | number,\n scope: StorageScope = StorageScope.LOCAL\n ) {\n const previousValue = this.get(key, scope);\n if (scope === StorageScope.SESSION) {\n sessionStorage.setItem(\n `${this.options.key}.${key}`,\n JSON.stringify(value)\n );\n } else {\n localStorage.setItem(`${this.options.key}.${key}`, JSON.stringify(value));\n }\n const currentValue = this.get(key, scope);\n\n if (currentValue !== previousValue) {\n this.storageChange$.next({\n key, scope,\n event: previousValue !== undefined ? StorageServiceEventEnum.MODIFIED : StorageServiceEventEnum.ADDED,\n previousValue,\n currentValue\n });\n }\n }\n\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\n const previousValue = this.get(key, scope);\n if (scope === StorageScope.SESSION) {\n sessionStorage.removeItem(`${this.options.key}.${key}`);\n } else {\n localStorage.removeItem(`${this.options.key}.${key}`);\n }\n this.storageChange$.next({key, scope, event: StorageServiceEventEnum.REMOVED, previousValue });\n }\n\n clear(scope: StorageScope = StorageScope.LOCAL) {\n if (scope === StorageScope.SESSION) {\n sessionStorage.clear();\n } else {\n localStorage.clear();\n }\n this.storageChange$.next({scope, event: StorageServiceEventEnum.CLEARED });\n }\n}\n","import { Injectable, EventEmitter, OnDestroy, Injector } from '@angular/core';\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { debounceTime, startWith } from 'rxjs/operators';\n\nimport { MessageService } from '../message/shared/message.service';\nimport { LanguageService } from '../language/shared/language.service';\nimport { ConnectionState } from './network.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NetworkService implements OnDestroy {\n private stateChangeEventEmitter = new EventEmitter<ConnectionState>();\n private onlineSubscription: Subscription;\n private offlineSubscription: Subscription;\n\n private state: ConnectionState = {\n connection: window.navigator.onLine\n };\n\n constructor(\n private messageService: MessageService,\n private injector: Injector\n ) {\n this.checkNetworkState();\n }\n\n private checkNetworkState() {\n this.onlineSubscription = fromEvent(window, 'online').subscribe(() => {\n const translate = this.injector.get(LanguageService).translate;\n const message = translate.instant('igo.core.network.online.message');\n const title = translate.instant('igo.core.network.online.title');\n this.messageService.info(message, title);\n this.state.connection = true;\n this.emitEvent();\n });\n\n this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {\n const translate = this.injector.get(LanguageService).translate;\n const message = translate.instant('igo.core.network.offline.message');\n const title = translate.instant('igo.core.network.offline.title');\n this.messageService.info(message, title);\n this.state.connection = false;\n this.emitEvent();\n });\n }\n\n private emitEvent() {\n this.stateChangeEventEmitter.emit(this.state);\n }\n\n ngOnDestroy(): void {\n try {\n this.offlineSubscription.unsubscribe();\n this.onlineSubscription.unsubscribe();\n } catch (e) {}\n }\n\n currentState(reportState = true): Observable<ConnectionState> {\n return reportState\n ? this.stateChangeEventEmitter.pipe(\n debounceTime(300),\n startWith(this.state)\n )\n : this.stateChangeEventEmitter.pipe(debounceTime(300));\n }\n}\n"]}