@sumaris-net/ngx-components 18.16.6 → 18.16.7

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.
@@ -109,6 +109,7 @@ export const environment = Object.freeze({
109
109
  feed: {
110
110
  jsonFeed: {
111
111
  fr: [
112
+ '/api/feed.json',
112
113
  'https://gitlab.ifremer.fr/sih-public/sumaris/ngx-sumaris-components/-/raw/master/doc/feed/feed-fr.json',
113
114
  // Example with JsonFeed version 1 (and not 1.1)
114
115
  //'https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/feed-fr.json',
@@ -123,4 +124,4 @@ export const environment = Object.freeze({
123
124
  },
124
125
  buildDate: new Date().toISOString(),
125
126
  });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRiwyRUFBMkU7QUFDM0UsZ0VBQWdFO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdyRTs7Ozs7R0FLRztBQUNILHNDQUFzQztBQUV0QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxNQUFNLENBQWM7SUFDakUsSUFBSSxFQUFFLDZCQUE2QixFQUFFLGtDQUFrQztJQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLGtDQUFrQztJQUVsRCxvRUFBb0U7SUFDcEUsVUFBVSxFQUFFLElBQUk7SUFFaEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixPQUFPLEVBQUUsR0FBRztJQUNaLGFBQWEsRUFBRSxJQUFJO0lBQ25CLG9CQUFvQixFQUFFLE1BQU07SUFDNUIsaUJBQWlCLEVBQUUsYUFBYTtJQUNoQyxPQUFPLEVBQUUsS0FBSztJQUNkLGFBQWEsRUFBRSxJQUFJO0lBRW5CLHdCQUF3QjtJQUN4QixtQkFBbUI7SUFFbkIsc0JBQXNCO0lBQ3RCLFlBQVksRUFBRSxLQUFLO0lBRW5CLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFFaEIsY0FBYyxFQUFFLE9BQU87SUFFdkIseUJBQXlCLEVBQUUsSUFBSTtJQUUvQixxQkFBcUIsRUFBRSxJQUFJO0lBRTNCLFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxJQUFJO0tBQ1g7SUFFRCxZQUFZLEVBQUU7UUFDWjtZQUNFLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxlQUFlO1lBQ3JCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxHQUFHO1NBQ1Y7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsSUFBSSxFQUFFLEdBQUc7U0FDVjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixJQUFJLEVBQUUsR0FBRztTQUNWO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLElBQUksRUFBRSxHQUFHO1NBQ1Y7S0FDRjtJQUNELGNBQWMsRUFBRSxTQUFTO0lBQ3pCLHdCQUF3QixFQUFFLCtEQUErRDtJQUN6RixvQkFBb0IsRUFBRSxvREFBb0Q7SUFDMUUsd0JBQXdCLEVBQUUscUVBQXFFO0lBRS9GLFVBQVU7SUFDVixPQUFPLEVBQUU7UUFDUCxXQUFXLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsWUFBWSxDQUFDO0tBQ3BIO0lBRUQsUUFBUTtJQUNSLFNBQVMsRUFBRSxxRUFBcUU7SUFDaEYsY0FBYyxFQUFFLDhFQUE4RTtJQUM5RixRQUFRLEVBQUUsSUFBSSxFQUFFLDhCQUE4QjtJQUM5QyxPQUFPLEVBQUUsZ0dBQWdHO0lBQ3pHLGdCQUFnQixFQUFFLGdHQUFnRztJQUNsSCxhQUFhLEVBQUUsNkdBQTZHO0lBRTVILGNBQWM7SUFDZCxpQkFBaUIsRUFBRTtRQUNqQixtQ0FBbUM7UUFDbkMsUUFBUSxFQUFFLG1CQUFtQjtRQUM3QixRQUFRLEVBQUUsT0FBTztLQUNsQjtJQUVELE9BQU8sRUFBRTtRQUNQLG1CQUFtQixFQUFFLElBQUk7UUFDekIsdUJBQXVCLEVBQUUsRUFBRTtLQUM1QjtJQUVELFlBQVksRUFBRTtRQUNaLG1CQUFtQixFQUFFLElBQUk7UUFDekIsdUJBQXVCLEVBQUUsRUFBRTtLQUM1QjtJQUVELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRTtZQUNSLEVBQUUsRUFBRTtnQkFDRix3R0FBd0c7Z0JBQ3hHLGdEQUFnRDtnQkFDaEQsa0ZBQWtGO2dCQUNsRiwrQkFBK0I7Z0JBQy9CLHlGQUF5RjthQUMxRjtZQUVELEVBQUUsRUFBRSxDQUFDLHdHQUF3RyxDQUFDO1NBQy9HO1FBQ0QsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLFFBQVEsRUFBRSxDQUFDO0tBQ1o7SUFFRCxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7Q0FDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGNhbiBiZSByZXBsYWNlZCBkdXJpbmcgYnVpbGQgYnkgdXNpbmcgdGhlIGBmaWxlUmVwbGFjZW1lbnRzYCBhcnJheS5cbi8vIGBuZyBidWlsZCAtLS1wcm9kYCByZXBsYWNlcyBgZW52aXJvbm1lbnQudHNgIHdpdGggYGVudmlyb25tZW50LnByb2QudHNgLlxuLy8gVGhlIGxpc3Qgb2YgZmlsZSByZXBsYWNlbWVudHMgY2FuIGJlIGZvdW5kIGluIGBhbmd1bGFyLmpzb25gLlxuaW1wb3J0IHsgU3RvcmFnZURyaXZlcnMgfSBmcm9tICcuLi9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS51dGlscyc7XG5cbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi9lbnZpcm9ubWVudC5jbGFzcyc7XG4vKlxuICogSW4gZGV2ZWxvcG1lbnQgbW9kZSwgdG8gaWdub3JlIHpvbmUgcmVsYXRlZCBlcnJvciBzdGFjayBmcmFtZXMgc3VjaCBhc1xuICogYHpvbmUucnVuYCwgYHpvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrYCBmb3IgZWFzaWVyIGRlYnVnZ2luZywgeW91IGNhblxuICogaW1wb3J0IHRoZSBmb2xsb3dpbmcgZmlsZSwgYnV0IHBsZWFzZSBjb21tZW50IGl0IG91dCBpbiBwcm9kdWN0aW9uIG1vZGVcbiAqIGJlY2F1c2UgaXQgd2lsbCBoYXZlIHBlcmZvcm1hbmNlIGltcGFjdCB3aGVuIHRocm93IGVycm9yXG4gKi9cbi8vaW1wb3J0ICd6b25lLmpzL3BsdWdpbnMvem9uZS1lcnJvcic7XG5cbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBPYmplY3QuZnJlZXplKDxFbnZpcm9ubWVudD57XG4gIG5hbWU6ICdAc3VtYXJpcy1uZXQvbmd4LWNvbXBvbmVudHMnLCAvLyBvdmVycmlkZGVuIGJ5IEVOVklST05NRU5UIHRva2VuXG4gIHZlcnNpb246ICcxLjAnLCAvLyBvdmVycmlkZGVuIGJ5IEVOVklST05NRU5UIHRva2VuXG5cbiAgLy8gRG8gTk9UIHNldCB0byBmYWxzZSAtIGJlY2F1c2UgdGhpcyB2YWx1ZSB3aWxsIGJlIHVzZWQgYnkgcmVsZWFzZXNcbiAgcHJvZHVjdGlvbjogdHJ1ZSxcblxuICAvLyBEbyBOT1Qgc2V0IC0gYmVjYXVzZSB0aGlzIHZhbHVlIHdpbGwgYmUgdXNlZCBieSByZWxlYXNlc1xuICAvL2V4dGVybmFsRW52aXJvbm1lbnRVcmw6IG51bGwsXG5cbiAgYmFzZVVybDogJy8nLFxuICBkZWZhdWx0TG9jYWxlOiAnZnInLFxuICBkZWZhdWx0TGF0TG9uZ0Zvcm1hdDogJ0RETU0nLFxuICBhcG9sbG9GZXRjaFBvbGljeTogJ2NhY2hlLWZpcnN0JyxcbiAgdXNlSGFzaDogZmFsc2UsXG4gIGFsbG93RGFya01vZGU6IHRydWUsXG5cbiAgLy9kZWZhdWx0Um91dGU6ICcvaG9tZScsXG4gIC8vZW5hYmxlTWVudTogdHJ1ZSxcblxuICAvLyBGSVhNRTogZW5hYmxlIGNhY2hlXG4gIHBlcnNpc3RDYWNoZTogZmFsc2UsXG5cbiAgLy8gVE9ETzogbWFrZSB0aGlzIHdvcmtzXG4gIC8vb2ZmbGluZTogdHJ1ZSxcblxuICBwZWVyTWluVmVyc2lvbjogJzEuOC4wJyxcblxuICBlbmFibGVTZWxlY3RQZWVyQnlGZWF0dXJlOiB0cnVlLFxuXG4gIHNlbmRBcHBWZXJzaW9uSGVhZGVyczogdHJ1ZSxcblxuICBkZWZhdWx0UGVlcjoge1xuICAgIGhvc3Q6ICdsb2NhbGhvc3QnLFxuICAgIHBvcnQ6IDgwODEsXG4gIH0sXG5cbiAgZGVmYXVsdFBlZXJzOiBbXG4gICAge1xuICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICBwb3J0OiA4MDgxLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC40NScsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC4yNCcsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC4yOScsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC4xMDcnLFxuICAgICAgcG9ydDogODA4MCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICdzaWguc2ZhLnNjJyxcbiAgICAgIHBvcnQ6IDQ0MyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICd0ZXN0LnN1bWFyaXMubmV0JyxcbiAgICAgIHBvcnQ6IDQ0MyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICdvcGVuLnN1bWFyaXMubmV0JyxcbiAgICAgIHBvcnQ6IDQ0MyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICdzZXJ2ZXIuZS1pcy5wcm8nLFxuICAgICAgcG9ydDogNDQzLFxuICAgIH0sXG4gIF0sXG4gIGRlZmF1bHRBcHBOYW1lOiAnU1VNQVJpUycsXG4gIGRlZmF1bHRBbmRyb2lkSW5zdGFsbFVybDogJ2h0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1uZXQuc3VtYXJpcy5hcHAnLFxuICBkZWZhdWx0SU9TSW5zdGFsbFVybDogJ2h0dHBzOi8vYXBwcy5hcHBsZS5jb20vdXMvYXBwL3N1bWFyaXMvaWQ2NzM2NzQ3NTIzJyxcbiAgZGVmYXVsdERlc2t0b3BJbnN0YWxsVXJsOiAnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvc3VtYXJpcy1hcHAvLS9yZWxlYXNlcycsXG5cbiAgLy8gU3RvcmFnZVxuICBzdG9yYWdlOiB7XG4gICAgZHJpdmVyT3JkZXI6IFtTdG9yYWdlRHJpdmVycy5TUUxMaXRlLCBTdG9yYWdlRHJpdmVycy5JbmRleGVkREIsIFN0b3JhZ2VEcml2ZXJzLldlYlNRTCwgU3RvcmFnZURyaXZlcnMuTG9jYWxTdG9yYWdlXSxcbiAgfSxcblxuICAvLyBBYm91dFxuICBzb3VyY2VVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9uZ3gtc3VtYXJpcy1jb21wb25lbnRzJyxcbiAgcmVwb3J0SXNzdWVVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9uZ3gtc3VtYXJpcy1jb21wb25lbnRzLy0vaXNzdWVzJyxcbiAgZm9ydW1Vcmw6IG51bGwsIC8vJ2h0dHBzOi8vZm9ydW0uc3VtYXJpcy5uZXQnLFxuICBoZWxwVXJsOiAnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvc3VtYXJpcy1kb2MvLS9ibG9iL21hc3Rlci91c2VyLW1hbnVhbC9pbmRleF9mci5tZCcsXG4gIHByaXZhY3lQb2xpY3lVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9zdW1hcmlzLWFwcC8tL3Jhdy9tYXN0ZXIvZG9jL3ByaXZhY3lfcG9saWN5X2ZyLm1kJyxcbiAgdGVybXNPZlVzZVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL3N1bWFyaXMtYXBwLy0vcmF3L21hc3Rlci9kb2MvdGVybXNfb2ZfdXNlX2ZyLm1kP3JlZl90eXBlPWhlYWRzJyxcblxuICAvLyBEZXZlbG9wbWVudFxuICBkZWZhdWx0QXV0aFZhbHVlczoge1xuICAgIC8vIFRva2VuIGF1dGggKHVzaW5nIFBlcnNvbi5wdWJrZXkpXG4gICAgdXNlcm5hbWU6ICdhZG1pbkBzdW1hcmlzLm5ldCcsXG4gICAgcGFzc3dvcmQ6ICdhZG1pbicsXG4gIH0sXG5cbiAgYWNjb3VudDoge1xuICAgIGVuYWJsZUxpc3RlbkNoYW5nZXM6IHRydWUsXG4gICAgbGlzdGVuSW50ZXJ2YWxJblNlY29uZHM6IDYwLFxuICB9LFxuXG4gIGVudGl0eUVkaXRvcjoge1xuICAgIGVuYWJsZUxpc3RlbkNoYW5nZXM6IHRydWUsXG4gICAgbGlzdGVuSW50ZXJ2YWxJblNlY29uZHM6IDYwLFxuICB9LFxuXG4gIGZlZWQ6IHtcbiAgICBqc29uRmVlZDoge1xuICAgICAgZnI6IFtcbiAgICAgICAgJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMvLS9yYXcvbWFzdGVyL2RvYy9mZWVkL2ZlZWQtZnIuanNvbicsXG4gICAgICAgIC8vIEV4YW1wbGUgd2l0aCBKc29uRmVlZCB2ZXJzaW9uIDEgKGFuZCBub3QgMS4xKVxuICAgICAgICAvLydodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZHVuaXRlci9jZXNpdW0vbWFzdGVyL2RvYy9mZWVkL2ZlZWQtZnIuanNvbicsXG4gICAgICAgIC8vIEV4YW1wbGUgd2l0aCBkaXNjb3Vyc2UgQVBJIDpcbiAgICAgICAgLy8naHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2R1bml0ZXIvY2VzaXVtL21hc3Rlci9kb2MvZmVlZC8xLjEvZmVlZC1mci1GUi5qc29uJyxcbiAgICAgIF0sXG5cbiAgICAgIGVuOiBbJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMvLS9yYXcvbWFzdGVyL2RvYy9mZWVkL2ZlZWQtZW4uanNvbiddLFxuICAgIH0sXG4gICAgbWF4Q29udGVudExlbmd0aDogMTAwMCxcbiAgICBtYXhBZ2VJbk1vbnRoczogLTEsXG4gICAgbWF4Q291bnQ6IDMsXG4gIH0sXG5cbiAgYnVpbGREYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG59KTtcbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRiwyRUFBMkU7QUFDM0UsZ0VBQWdFO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdyRTs7Ozs7R0FLRztBQUNILHNDQUFzQztBQUV0QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQWdCLE1BQU0sQ0FBQyxNQUFNLENBQWM7SUFDakUsSUFBSSxFQUFFLDZCQUE2QixFQUFFLGtDQUFrQztJQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLGtDQUFrQztJQUVsRCxvRUFBb0U7SUFDcEUsVUFBVSxFQUFFLElBQUk7SUFFaEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixPQUFPLEVBQUUsR0FBRztJQUNaLGFBQWEsRUFBRSxJQUFJO0lBQ25CLG9CQUFvQixFQUFFLE1BQU07SUFDNUIsaUJBQWlCLEVBQUUsYUFBYTtJQUNoQyxPQUFPLEVBQUUsS0FBSztJQUNkLGFBQWEsRUFBRSxJQUFJO0lBRW5CLHdCQUF3QjtJQUN4QixtQkFBbUI7SUFFbkIsc0JBQXNCO0lBQ3RCLFlBQVksRUFBRSxLQUFLO0lBRW5CLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFFaEIsY0FBYyxFQUFFLE9BQU87SUFFdkIseUJBQXlCLEVBQUUsSUFBSTtJQUUvQixxQkFBcUIsRUFBRSxJQUFJO0lBRTNCLFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxJQUFJO0tBQ1g7SUFFRCxZQUFZLEVBQUU7UUFDWjtZQUNFLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxlQUFlO1lBQ3JCLElBQUksRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNFLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxHQUFHO1NBQ1Y7UUFDRDtZQUNFLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsSUFBSSxFQUFFLEdBQUc7U0FDVjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixJQUFJLEVBQUUsR0FBRztTQUNWO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLElBQUksRUFBRSxHQUFHO1NBQ1Y7S0FDRjtJQUNELGNBQWMsRUFBRSxTQUFTO0lBQ3pCLHdCQUF3QixFQUFFLCtEQUErRDtJQUN6RixvQkFBb0IsRUFBRSxvREFBb0Q7SUFDMUUsd0JBQXdCLEVBQUUscUVBQXFFO0lBRS9GLFVBQVU7SUFDVixPQUFPLEVBQUU7UUFDUCxXQUFXLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsWUFBWSxDQUFDO0tBQ3BIO0lBRUQsUUFBUTtJQUNSLFNBQVMsRUFBRSxxRUFBcUU7SUFDaEYsY0FBYyxFQUFFLDhFQUE4RTtJQUM5RixRQUFRLEVBQUUsSUFBSSxFQUFFLDhCQUE4QjtJQUM5QyxPQUFPLEVBQUUsZ0dBQWdHO0lBQ3pHLGdCQUFnQixFQUFFLGdHQUFnRztJQUNsSCxhQUFhLEVBQUUsNkdBQTZHO0lBRTVILGNBQWM7SUFDZCxpQkFBaUIsRUFBRTtRQUNqQixtQ0FBbUM7UUFDbkMsUUFBUSxFQUFFLG1CQUFtQjtRQUM3QixRQUFRLEVBQUUsT0FBTztLQUNsQjtJQUVELE9BQU8sRUFBRTtRQUNQLG1CQUFtQixFQUFFLElBQUk7UUFDekIsdUJBQXVCLEVBQUUsRUFBRTtLQUM1QjtJQUVELFlBQVksRUFBRTtRQUNaLG1CQUFtQixFQUFFLElBQUk7UUFDekIsdUJBQXVCLEVBQUUsRUFBRTtLQUM1QjtJQUVELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRTtZQUNSLEVBQUUsRUFBRTtnQkFDRixnQkFBZ0I7Z0JBQ2hCLHdHQUF3RztnQkFDeEcsZ0RBQWdEO2dCQUNoRCxrRkFBa0Y7Z0JBQ2xGLCtCQUErQjtnQkFDL0IseUZBQXlGO2FBQzFGO1lBRUQsRUFBRSxFQUFFLENBQUMsd0dBQXdHLENBQUM7U0FDL0c7UUFDRCxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDbEIsUUFBUSxFQUFFLENBQUM7S0FDWjtJQUVELFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtDQUNwQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcGxhY2VkIGR1cmluZyBidWlsZCBieSB1c2luZyB0aGUgYGZpbGVSZXBsYWNlbWVudHNgIGFycmF5LlxuLy8gYG5nIGJ1aWxkIC0tLXByb2RgIHJlcGxhY2VzIGBlbnZpcm9ubWVudC50c2Agd2l0aCBgZW52aXJvbm1lbnQucHJvZC50c2AuXG4vLyBUaGUgbGlzdCBvZiBmaWxlIHJlcGxhY2VtZW50cyBjYW4gYmUgZm91bmQgaW4gYGFuZ3VsYXIuanNvbmAuXG5pbXBvcnQgeyBTdG9yYWdlRHJpdmVycyB9IGZyb20gJy4uL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLnV0aWxzJztcblxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuL2Vudmlyb25tZW50LmNsYXNzJztcbi8qXG4gKiBJbiBkZXZlbG9wbWVudCBtb2RlLCB0byBpZ25vcmUgem9uZSByZWxhdGVkIGVycm9yIHN0YWNrIGZyYW1lcyBzdWNoIGFzXG4gKiBgem9uZS5ydW5gLCBgem9uZURlbGVnYXRlLmludm9rZVRhc2tgIGZvciBlYXNpZXIgZGVidWdnaW5nLCB5b3UgY2FuXG4gKiBpbXBvcnQgdGhlIGZvbGxvd2luZyBmaWxlLCBidXQgcGxlYXNlIGNvbW1lbnQgaXQgb3V0IGluIHByb2R1Y3Rpb24gbW9kZVxuICogYmVjYXVzZSBpdCB3aWxsIGhhdmUgcGVyZm9ybWFuY2UgaW1wYWN0IHdoZW4gdGhyb3cgZXJyb3JcbiAqL1xuLy9pbXBvcnQgJ3pvbmUuanMvcGx1Z2lucy96b25lLWVycm9yJztcblxuZXhwb3J0IGNvbnN0IGVudmlyb25tZW50OiBFbnZpcm9ubWVudCA9IE9iamVjdC5mcmVlemUoPEVudmlyb25tZW50PntcbiAgbmFtZTogJ0BzdW1hcmlzLW5ldC9uZ3gtY29tcG9uZW50cycsIC8vIG92ZXJyaWRkZW4gYnkgRU5WSVJPTk1FTlQgdG9rZW5cbiAgdmVyc2lvbjogJzEuMCcsIC8vIG92ZXJyaWRkZW4gYnkgRU5WSVJPTk1FTlQgdG9rZW5cblxuICAvLyBEbyBOT1Qgc2V0IHRvIGZhbHNlIC0gYmVjYXVzZSB0aGlzIHZhbHVlIHdpbGwgYmUgdXNlZCBieSByZWxlYXNlc1xuICBwcm9kdWN0aW9uOiB0cnVlLFxuXG4gIC8vIERvIE5PVCBzZXQgLSBiZWNhdXNlIHRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIGJ5IHJlbGVhc2VzXG4gIC8vZXh0ZXJuYWxFbnZpcm9ubWVudFVybDogbnVsbCxcblxuICBiYXNlVXJsOiAnLycsXG4gIGRlZmF1bHRMb2NhbGU6ICdmcicsXG4gIGRlZmF1bHRMYXRMb25nRm9ybWF0OiAnRERNTScsXG4gIGFwb2xsb0ZldGNoUG9saWN5OiAnY2FjaGUtZmlyc3QnLFxuICB1c2VIYXNoOiBmYWxzZSxcbiAgYWxsb3dEYXJrTW9kZTogdHJ1ZSxcblxuICAvL2RlZmF1bHRSb3V0ZTogJy9ob21lJyxcbiAgLy9lbmFibGVNZW51OiB0cnVlLFxuXG4gIC8vIEZJWE1FOiBlbmFibGUgY2FjaGVcbiAgcGVyc2lzdENhY2hlOiBmYWxzZSxcblxuICAvLyBUT0RPOiBtYWtlIHRoaXMgd29ya3NcbiAgLy9vZmZsaW5lOiB0cnVlLFxuXG4gIHBlZXJNaW5WZXJzaW9uOiAnMS44LjAnLFxuXG4gIGVuYWJsZVNlbGVjdFBlZXJCeUZlYXR1cmU6IHRydWUsXG5cbiAgc2VuZEFwcFZlcnNpb25IZWFkZXJzOiB0cnVlLFxuXG4gIGRlZmF1bHRQZWVyOiB7XG4gICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgcG9ydDogODA4MSxcbiAgfSxcblxuICBkZWZhdWx0UGVlcnM6IFtcbiAgICB7XG4gICAgICBob3N0OiAnbG9jYWxob3N0JyxcbiAgICAgIHBvcnQ6IDgwODAsXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnbG9jYWxob3N0JyxcbiAgICAgIHBvcnQ6IDgwODEsXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnMTkyLjE2OC4wLjQ1JyxcbiAgICAgIHBvcnQ6IDgwODAsXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnMTkyLjE2OC4wLjI0JyxcbiAgICAgIHBvcnQ6IDgwODAsXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnMTkyLjE2OC4wLjI5JyxcbiAgICAgIHBvcnQ6IDgwODAsXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnMTkyLjE2OC4wLjEwNycsXG4gICAgICBwb3J0OiA4MDgwLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ3NpaC5zZmEuc2MnLFxuICAgICAgcG9ydDogNDQzLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ3Rlc3Quc3VtYXJpcy5uZXQnLFxuICAgICAgcG9ydDogNDQzLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ29wZW4uc3VtYXJpcy5uZXQnLFxuICAgICAgcG9ydDogNDQzLFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ3NlcnZlci5lLWlzLnBybycsXG4gICAgICBwb3J0OiA0NDMsXG4gICAgfSxcbiAgXSxcbiAgZGVmYXVsdEFwcE5hbWU6ICdTVU1BUmlTJyxcbiAgZGVmYXVsdEFuZHJvaWRJbnN0YWxsVXJsOiAnaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPW5ldC5zdW1hcmlzLmFwcCcsXG4gIGRlZmF1bHRJT1NJbnN0YWxsVXJsOiAnaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS91cy9hcHAvc3VtYXJpcy9pZDY3MzY3NDc1MjMnLFxuICBkZWZhdWx0RGVza3RvcEluc3RhbGxVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9zdW1hcmlzLWFwcC8tL3JlbGVhc2VzJyxcblxuICAvLyBTdG9yYWdlXG4gIHN0b3JhZ2U6IHtcbiAgICBkcml2ZXJPcmRlcjogW1N0b3JhZ2VEcml2ZXJzLlNRTExpdGUsIFN0b3JhZ2VEcml2ZXJzLkluZGV4ZWREQiwgU3RvcmFnZURyaXZlcnMuV2ViU1FMLCBTdG9yYWdlRHJpdmVycy5Mb2NhbFN0b3JhZ2VdLFxuICB9LFxuXG4gIC8vIEFib3V0XG4gIHNvdXJjZVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMnLFxuICByZXBvcnRJc3N1ZVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMvLS9pc3N1ZXMnLFxuICBmb3J1bVVybDogbnVsbCwgLy8naHR0cHM6Ly9mb3J1bS5zdW1hcmlzLm5ldCcsXG4gIGhlbHBVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9zdW1hcmlzLWRvYy8tL2Jsb2IvbWFzdGVyL3VzZXItbWFudWFsL2luZGV4X2ZyLm1kJyxcbiAgcHJpdmFjeVBvbGljeVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL3N1bWFyaXMtYXBwLy0vcmF3L21hc3Rlci9kb2MvcHJpdmFjeV9wb2xpY3lfZnIubWQnLFxuICB0ZXJtc09mVXNlVXJsOiAnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvc3VtYXJpcy1hcHAvLS9yYXcvbWFzdGVyL2RvYy90ZXJtc19vZl91c2VfZnIubWQ/cmVmX3R5cGU9aGVhZHMnLFxuXG4gIC8vIERldmVsb3BtZW50XG4gIGRlZmF1bHRBdXRoVmFsdWVzOiB7XG4gICAgLy8gVG9rZW4gYXV0aCAodXNpbmcgUGVyc29uLnB1YmtleSlcbiAgICB1c2VybmFtZTogJ2FkbWluQHN1bWFyaXMubmV0JyxcbiAgICBwYXNzd29yZDogJ2FkbWluJyxcbiAgfSxcblxuICBhY2NvdW50OiB7XG4gICAgZW5hYmxlTGlzdGVuQ2hhbmdlczogdHJ1ZSxcbiAgICBsaXN0ZW5JbnRlcnZhbEluU2Vjb25kczogNjAsXG4gIH0sXG5cbiAgZW50aXR5RWRpdG9yOiB7XG4gICAgZW5hYmxlTGlzdGVuQ2hhbmdlczogdHJ1ZSxcbiAgICBsaXN0ZW5JbnRlcnZhbEluU2Vjb25kczogNjAsXG4gIH0sXG5cbiAgZmVlZDoge1xuICAgIGpzb25GZWVkOiB7XG4gICAgICBmcjogW1xuICAgICAgICAnL2FwaS9mZWVkLmpzb24nLFxuICAgICAgICAnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvbmd4LXN1bWFyaXMtY29tcG9uZW50cy8tL3Jhdy9tYXN0ZXIvZG9jL2ZlZWQvZmVlZC1mci5qc29uJyxcbiAgICAgICAgLy8gRXhhbXBsZSB3aXRoIEpzb25GZWVkIHZlcnNpb24gMSAoYW5kIG5vdCAxLjEpXG4gICAgICAgIC8vJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9kdW5pdGVyL2Nlc2l1bS9tYXN0ZXIvZG9jL2ZlZWQvZmVlZC1mci5qc29uJyxcbiAgICAgICAgLy8gRXhhbXBsZSB3aXRoIGRpc2NvdXJzZSBBUEkgOlxuICAgICAgICAvLydodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZHVuaXRlci9jZXNpdW0vbWFzdGVyL2RvYy9mZWVkLzEuMS9mZWVkLWZyLUZSLmpzb24nLFxuICAgICAgXSxcblxuICAgICAgZW46IFsnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvbmd4LXN1bWFyaXMtY29tcG9uZW50cy8tL3Jhdy9tYXN0ZXIvZG9jL2ZlZWQvZmVlZC1lbi5qc29uJ10sXG4gICAgfSxcbiAgICBtYXhDb250ZW50TGVuZ3RoOiAxMDAwLFxuICAgIG1heEFnZUluTW9udGhzOiAtMSxcbiAgICBtYXhDb3VudDogMyxcbiAgfSxcblxuICBidWlsZERhdGU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbn0pO1xuIl19
@@ -13135,6 +13135,7 @@ const environment = Object.freeze({
13135
13135
  feed: {
13136
13136
  jsonFeed: {
13137
13137
  fr: [
13138
+ '/api/feed.json',
13138
13139
  'https://gitlab.ifremer.fr/sih-public/sumaris/ngx-sumaris-components/-/raw/master/doc/feed/feed-fr.json',
13139
13140
  // Example with JsonFeed version 1 (and not 1.1)
13140
13141
  //'https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/feed-fr.json',
@@ -13967,7 +13968,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
13967
13968
  type: Injectable,
13968
13969
  args: [{
13969
13970
  providedIn: 'root',
13970
- //deps: [APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS]
13971
+ deps: [APP_LOCALES],
13971
13972
  }]
13972
13973
  }], ctorParameters: () => [{ type: i2$1.Platform }, { type: i1$1.TranslateService }, { type: i2$2.Storage }, { type: Environment, decorators: [{
13973
13974
  type: Inject,
@@ -19649,12 +19650,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
19649
19650
  type: Optional
19650
19651
  }] }] });
19651
19652
 
19653
+ const PEER_URL_REGEXP = /^(http|https):\/\/[^ "?#@]+$/;
19654
+ const NETWORK_DEFAULT_CONNECTION_TIMEOUT = 10000; // 10s - /!\ should be high (e.g. for poor connection)
19652
19655
  const NetworkRefreshTimerPeriod = {
19653
19656
  MOBILE: 1000 * 60 * 10 /* every 10 min */,
19654
19657
  DESKTOP: 1000 * 60 * 5 /* every 5 min */,
19655
19658
  };
19656
- const PEER_URL_REGEXP = /^(http|https):\/\/[^ "?#@]+$/;
19657
- const NETWORK_DEFAULT_CONNECTION_TIMEOUT = 10000; // 10s - /!\ should be high (e.g. for poor connection)
19658
19659
  /* -- DEV only (to debug refresh timer)
19659
19660
  NetworkRefreshTimerPeriod.MOBILE = 1000;
19660
19661
  NetworkRefreshTimerPeriod.DESKTOP = 1000; */
@@ -19680,6 +19681,7 @@ class NetworkService extends StartableObservableService {
19680
19681
  _deviceConnectionType;
19681
19682
  _forceOffline;
19682
19683
  _connectionTimeout;
19684
+ _connectionParams = {};
19683
19685
  _listeners = {};
19684
19686
  get online() {
19685
19687
  return this.connectionType !== 'none';
@@ -19708,6 +19710,9 @@ class NetworkService extends StartableObservableService {
19708
19710
  get connectionTimeout() {
19709
19711
  return this._connectionTimeout;
19710
19712
  }
19713
+ get connectionParams() {
19714
+ return this._connectionParams;
19715
+ }
19711
19716
  constructor(_document, platform, modalCtrl, storage, settings, cache, http, environment, loggingService, translate, toastController) {
19712
19717
  super(platform);
19713
19718
  this._document = _document;
@@ -20026,15 +20031,47 @@ class NetworkService extends StartableObservableService {
20026
20031
  console.debug(`[network] All cache cleared, in ${Date.now() - now}ms`);
20027
20032
  });
20028
20033
  }
20029
- async fetch(url) {
20030
- if (!url)
20031
- throw new Error('Missing url');
20032
- try {
20033
- return firstValueFrom(this.http.get(url));
20034
+ /**
20035
+ * Sends a GET request to the specified path and returns a promise of the response.
20036
+ *
20037
+ * @param {string} path The endpoint path to send the GET request to.
20038
+ * @param {Object} [opts] Optional parameters for the GET request.
20039
+ * @param {HttpHeaders | Object} [opts.headers] Headers to include in the request. Can be an instance of HttpHeaders or an object with header key-value pairs.
20040
+ * @param {'json'} [opts.responseType] The type of response expected. Defaults to 'json'.
20041
+ * @param {boolean} [opts.nocache] If true, indicates that the response should not be cached.
20042
+ * @param {number} [opts.timeout] The timeout for the request in milliseconds.
20043
+ * @return {Promise<T>} A promise that resolves with the response of type T.
20044
+ */
20045
+ get(path, opts) {
20046
+ const url = this.getUri(path);
20047
+ // Add App headers only if on same peer
20048
+ if (this.peer && url?.startsWith(this.peer.url)) {
20049
+ opts = this.addAppHeaders(opts);
20034
20050
  }
20035
- catch (err) {
20036
- console.error(`[network] Error fetching data from ${url}:`, err);
20037
- return null;
20051
+ return HttpUtils.getJson(this.http, url, opts);
20052
+ }
20053
+ async setAuthToken(token) {
20054
+ if (token) {
20055
+ console.debug('[network] Apply token authentication to headers');
20056
+ this._connectionParams.authToken = token;
20057
+ }
20058
+ // Clean auth token
20059
+ else if (this._connectionParams.authToken) {
20060
+ console.debug('[network] Remove token authentication from headers');
20061
+ delete this._connectionParams.authToken;
20062
+ await this.clearCache();
20063
+ }
20064
+ }
20065
+ async setAuthBasic(basic) {
20066
+ if (basic) {
20067
+ console.debug('[graphql] Apply basic authentication to headers');
20068
+ this._connectionParams.authBasic = basic;
20069
+ }
20070
+ // Clean auth basic
20071
+ else if (this._connectionParams.authBasic) {
20072
+ console.debug('[graphql] Remove basic authentication from headers');
20073
+ delete this._connectionParams.authBasic;
20074
+ await this.clearCache();
20038
20075
  }
20039
20076
  }
20040
20077
  /* -- protected functions -- */
@@ -20168,16 +20205,10 @@ class NetworkService extends StartableObservableService {
20168
20205
  this._timerSubscription.add(() => console.debug('[network] Refresh timer stopped'));
20169
20206
  }
20170
20207
  async getText(path, opts) {
20171
- return HttpUtils.getText(this.http, this.getUri(path), this.addVersionHeader(opts));
20172
- }
20173
- get(path, opts) {
20174
- return HttpUtils.getJson(this.http, this.getUri(path), this.addVersionHeader(opts));
20208
+ return HttpUtils.getText(this.http, this.getUri(path), this.addAppHeaders(opts));
20175
20209
  }
20176
20210
  /* -- Protected methods -- */
20177
- addVersionHeader(opts) {
20178
- // Only add version headers if enabled in environment
20179
- if (!this.environment.sendAppVersionHeaders)
20180
- return opts;
20211
+ addAppHeaders(opts) {
20181
20212
  const updatedOpts = { ...opts };
20182
20213
  if (!updatedOpts.headers) {
20183
20214
  updatedOpts.headers = {};
@@ -20185,25 +20216,63 @@ class NetworkService extends StartableObservableService {
20185
20216
  // Handle HttpHeaders instance
20186
20217
  if (updatedOpts.headers instanceof HttpHeaders) {
20187
20218
  let headers = updatedOpts.headers;
20188
- // Add application version header
20189
- if (this.environment.version) {
20190
- headers = headers.append('X-App-Version', this.environment.version);
20191
- }
20192
- // Add application name header
20193
- if (this.environment.defaultAppName) {
20194
- headers = headers.append('X-App-Name', this.environment.defaultAppName);
20219
+ // Add Authorization header
20220
+ const authorization = [];
20221
+ if (this._connectionParams.authToken) {
20222
+ authorization.push(`token ${this._connectionParams.authToken}`);
20223
+ }
20224
+ if (this._connectionParams.authBasic) {
20225
+ authorization.push(`Basic ${this._connectionParams.authBasic}`);
20226
+ }
20227
+ if (authorization.length > 0) {
20228
+ headers = headers.append('Authorization', authorization);
20229
+ }
20230
+ // Add Accept-Language header using settings.locale
20231
+ const locale = this.settings.locale;
20232
+ if (locale) {
20233
+ headers = headers.append('Accept-Language', locale);
20234
+ }
20235
+ // Only add version headers if enabled in environment
20236
+ if (this.environment.sendAppVersionHeaders) {
20237
+ // Add application version header
20238
+ if (this.environment.version) {
20239
+ headers = headers.append('X-App-Version', this.environment.version);
20240
+ }
20241
+ // Add application name header
20242
+ if (this.environment.defaultAppName) {
20243
+ headers = headers.append('X-App-Name', this.environment.defaultAppName);
20244
+ }
20195
20245
  }
20196
20246
  updatedOpts.headers = headers;
20197
20247
  }
20198
20248
  else {
20199
20249
  // Handle plain object headers
20200
- // Add application version header
20201
- if (this.environment.version) {
20202
- updatedOpts.headers['X-App-Version'] = this.environment.version;
20203
- }
20204
- // Add application name header
20205
- if (this.environment.defaultAppName) {
20206
- updatedOpts.headers['X-App-Name'] = this.environment.defaultAppName;
20250
+ // Add Authorization header
20251
+ const authorization = [];
20252
+ if (this._connectionParams.authToken) {
20253
+ authorization.push(`token ${this._connectionParams.authToken}`);
20254
+ }
20255
+ if (this._connectionParams.authBasic) {
20256
+ authorization.push(`Basic ${this._connectionParams.authBasic}`);
20257
+ }
20258
+ if (authorization.length > 0) {
20259
+ updatedOpts.headers['Authorization'] = authorization;
20260
+ }
20261
+ // Add Accept-Language header using settings.locale
20262
+ const locale = this.settings.locale;
20263
+ if (locale) {
20264
+ updatedOpts.headers['Accept-Language'] = locale;
20265
+ }
20266
+ // Only add version headers if enabled in environment
20267
+ if (this.environment.sendAppVersionHeaders) {
20268
+ // Add application version header
20269
+ if (this.environment.version) {
20270
+ updatedOpts.headers['X-App-Version'] = this.environment.version;
20271
+ }
20272
+ // Add application name header
20273
+ if (this.environment.defaultAppName) {
20274
+ updatedOpts.headers['X-App-Name'] = this.environment.defaultAppName;
20275
+ }
20207
20276
  }
20208
20277
  }
20209
20278
  return updatedOpts;
@@ -20212,7 +20281,7 @@ class NetworkService extends StartableObservableService {
20212
20281
  let uri = path;
20213
20282
  // If path is not an URI: prepend with peer URL
20214
20283
  if (!uri.startsWith('http://') && !uri.startsWith('https://')) {
20215
- let peerUrl = this.peer && this.peer.url;
20284
+ let peerUrl = this.peer?.url;
20216
20285
  // Remove trailing slash
20217
20286
  if (peerUrl.endsWith('/')) {
20218
20287
  peerUrl = peerUrl.substring(0, peerUrl.length - 1);
@@ -20319,13 +20388,13 @@ class GraphqlService extends StartableService {
20319
20388
  httpLink;
20320
20389
  network;
20321
20390
  storage;
20391
+ settings;
20322
20392
  environment;
20323
20393
  typePolicies;
20324
20394
  fragments;
20325
20395
  _networkStatusChanged$;
20326
20396
  httpParams;
20327
20397
  wsParams;
20328
- connectionParams = {};
20329
20398
  _defaultFetchPolicy;
20330
20399
  onNetworkError = new Subject();
20331
20400
  customErrors = {};
@@ -20339,13 +20408,17 @@ class GraphqlService extends StartableService {
20339
20408
  get defaultFetchPolicy() {
20340
20409
  return this._defaultFetchPolicy;
20341
20410
  }
20342
- constructor(platform, apollo, httpLink, network, storage, environment, typePolicies, fragments) {
20411
+ get connectionParams() {
20412
+ return this.network.connectionParams;
20413
+ }
20414
+ constructor(platform, apollo, httpLink, network, storage, settings, environment, typePolicies, fragments) {
20343
20415
  super(platform); // Wait platform
20344
20416
  this.platform = platform;
20345
20417
  this.apollo = apollo;
20346
20418
  this.httpLink = httpLink;
20347
20419
  this.network = network;
20348
20420
  this.storage = storage;
20421
+ this.settings = settings;
20349
20422
  this.environment = environment;
20350
20423
  this.typePolicies = typePolicies;
20351
20424
  this.fragments = fragments;
@@ -20358,30 +20431,6 @@ class GraphqlService extends StartableService {
20358
20431
  .pipe(throttleTime(300), filter(() => this.network.online), mergeMap(() => this.network.checkPeerAlive()), filter((alive) => !alive))
20359
20432
  .subscribe(() => this.network.setForceOffline(true, { showToast: true }));
20360
20433
  }
20361
- async setAuthToken(token) {
20362
- if (token) {
20363
- console.debug('[graphql] Apply token authentication to headers');
20364
- this.connectionParams.authToken = token;
20365
- }
20366
- // Clean auth token
20367
- else if (this.connectionParams.authToken) {
20368
- console.debug('[graphql] Remove token authentication from headers');
20369
- delete this.connectionParams.authToken;
20370
- await this.clearCache();
20371
- }
20372
- }
20373
- async setAuthBasic(basic) {
20374
- if (basic) {
20375
- console.debug('[graphql] Apply basic authentication to headers');
20376
- this.connectionParams.authBasic = basic;
20377
- }
20378
- // Clean auth basic
20379
- else if (this.connectionParams.authBasic) {
20380
- console.debug('[graphql] Remove basic authentication from headers');
20381
- delete this.connectionParams.authBasic;
20382
- await this.clearCache();
20383
- }
20384
- }
20385
20434
  /**
20386
20435
  * Allow to add a field resolver
20387
20436
  * (see doc: https://www.apollographql.com/docs/react/data/local-state/#handling-client-fields-with-resolvers)
@@ -20826,6 +20875,11 @@ class GraphqlService extends StartableService {
20826
20875
  if (authorization.length > 0) {
20827
20876
  headers = headers.append('Authorization', authorization);
20828
20877
  }
20878
+ // Add Accept-Language header using settings.locale
20879
+ const locale = this.settings.locale;
20880
+ if (locale) {
20881
+ headers = headers.append('Accept-Language', locale);
20882
+ }
20829
20883
  // Add application version headers (if enabled)
20830
20884
  if (this.environment.sendAppVersionHeaders) {
20831
20885
  if (this.environment.version) {
@@ -21049,7 +21103,7 @@ class GraphqlService extends StartableService {
21049
21103
  }
21050
21104
  return undefined;
21051
21105
  }
21052
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraphqlService, deps: [{ token: i2$1.Platform }, { token: i2$5.Apollo }, { token: i3$4.HttpLink }, { token: NetworkService }, { token: StorageService }, { token: ENVIRONMENT }, { token: APP_GRAPHQL_TYPE_POLICIES, optional: true }, { token: APP_GRAPHQL_FRAGMENTS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
21106
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraphqlService, deps: [{ token: i2$1.Platform }, { token: i2$5.Apollo }, { token: i3$4.HttpLink }, { token: NetworkService }, { token: StorageService }, { token: LocalSettingsService }, { token: ENVIRONMENT }, { token: APP_GRAPHQL_TYPE_POLICIES, optional: true }, { token: APP_GRAPHQL_FRAGMENTS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
21053
21107
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraphqlService, providedIn: 'root' });
21054
21108
  }
21055
21109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraphqlService, decorators: [{
@@ -21057,7 +21111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
21057
21111
  args: [{
21058
21112
  providedIn: 'root',
21059
21113
  }]
21060
- }], ctorParameters: () => [{ type: i2$1.Platform }, { type: i2$5.Apollo }, { type: i3$4.HttpLink }, { type: NetworkService }, { type: StorageService }, { type: Environment, decorators: [{
21114
+ }], ctorParameters: () => [{ type: i2$1.Platform }, { type: i2$5.Apollo }, { type: i3$4.HttpLink }, { type: NetworkService }, { type: StorageService }, { type: LocalSettingsService }, { type: Environment, decorators: [{
21061
21115
  type: Inject,
21062
21116
  args: [ENVIRONMENT]
21063
21117
  }] }, { type: undefined, decorators: [{
@@ -23173,8 +23227,8 @@ class AccountService extends BaseGraphqlService {
23173
23227
  this._remoteLocalSettingsKeys = options?.remoteLocalSettingsKeys || [];
23174
23228
  this.resetData();
23175
23229
  // Send auth token to the graphql layer, when changed
23176
- this.onAuthTokenChange.subscribe((token) => this.graphql.setAuthToken(token));
23177
- this.onAuthBasicChange.subscribe((basic) => this.graphql.setAuthBasic(basic));
23230
+ this.onAuthTokenChange.subscribe((token) => this.network.setAuthToken(token));
23231
+ this.onAuthBasicChange.subscribe((basic) => this.network.setAuthBasic(basic));
23178
23232
  // Force network to wait account service, after getting connection to the peer
23179
23233
  this.network.on('beforeTryOnlineFinish', async (online) => {
23180
23234
  // If online, wait a full restart, because it can force offline mode
@@ -33795,7 +33849,7 @@ class FeedService extends StartableService {
33795
33849
  const feeds = await Promise.all((urls || []).map(async (url) => {
33796
33850
  try {
33797
33851
  // Get JSON
33798
- const json = await this.network.fetch(url);
33852
+ const json = await this.network.get(url);
33799
33853
  console.debug(`${this._logPrefix}Loaded JSON from ${url}`, json);
33800
33854
  // Resolve feed
33801
33855
  return await this.resolveFeed(json, url, opts);