diff --git a/app/app-upgraded-providers.js b/app/app-upgraded-providers.js
new file mode 100644
index 000000000..af96cf9e4
--- /dev/null
+++ b/app/app-upgraded-providers.js
@@ -0,0 +1,130 @@
+export function kommonitorCacheHelperServiceFactory(injector) {
+ return injector.get('kommonitorCacheHelperService');
+}
+export const ajskommonitorCacheHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorCacheHelperService',
+ useFactory: kommonitorCacheHelperServiceFactory,
+};
+export function kommonitorBatchUpdateHelperServiceFactory(injector) {
+ return injector.get('kommonitorBatchUpdateHelperService');
+}
+export const ajskommonitorBatchUpdateHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorBatchUpdateHelperService',
+ useFactory: kommonitorBatchUpdateHelperServiceFactory,
+};
+export function kommonitorConfigStorageServiceFactory(injector) {
+ return injector.get('kommonitorConfigStorageService');
+}
+export const ajskommonitorConfigStorageServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorConfigStorageService',
+ useFactory: kommonitorConfigStorageServiceFactory,
+};
+//data exchange
+export function kommonitorDataExchangeServiceFactory(injector) {
+ return injector.get('kommonitorDataExchangeService');
+}
+export const ajskommonitorDataExchangeServiceeProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorDataExchangeService',
+ useFactory: kommonitorDataExchangeServiceFactory,
+};
+//data grid helper
+export function kommonitorDataGridHelperServiceFactory(injector) {
+ return injector.get('kommonitorDataGridHelperService');
+}
+export const ajskommonitorDataGridHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorDataGridHelperService',
+ useFactory: kommonitorDataGridHelperServiceFactory,
+};
+//diagram helper
+export function kommonitorDiagramHelperServiceFactory(injector) {
+ return injector.get('kommonitorDiagramHelperService');
+}
+export const ajskommonitorDiagramHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorDiagramHelperService',
+ useFactory: kommonitorDiagramHelperServiceFactory,
+};
+//filter helper
+export function kommonitorFilterHelperServiceFactory(injector) {
+ return injector.get('kommonitorFilterHelperService');
+}
+export const ajskommonitorFilterHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorFilterHelperService',
+ useFactory: kommonitorFilterHelperServiceFactory,
+};
+//keycloack helper
+export function kommonitorKeycloackHelperServiceFactory(injector) {
+ return injector.get('kommonitorKeycloackHelperService');
+}
+export const ajskommonitorKeycloackHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorKeycloackHelperService',
+ useFactory: kommonitorKeycloackHelperServiceFactory,
+};
+//multistep form
+export function kommonitorMultiStepFormHelperServiceFactory(injector) {
+ return injector.get('kommonitorMultiStepFormHelperService');
+}
+export const ajskommonitorMultiStepFormHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorMultiStepFormHelperService',
+ useFactory: kommonitorMultiStepFormHelperServiceFactory,
+};
+//script helpet
+export function kommonitorScriptHelperServiceFactory(injector) {
+ return injector.get('kommonitorScriptHelperService');
+}
+export const ajskommonitorScriptHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorScriptHelperService',
+ useFactory: kommonitorScriptHelperServiceFactory,
+};
+//share Helper
+export function kommonitorShareHelperServiceFactory(injector) {
+ return injector.get('kommonitorShareHelperService');
+}
+export const ajskommonitorShareHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorShareHelperService',
+ useFactory: kommonitorShareHelperServiceFactory,
+};
+//single feature map helper
+export function kommonitorSingleFeatureMapServiceFactory(injector) {
+ return injector.get('kommonitorSingleFeatureMapService');
+}
+export const ajskommonitorSingleFeatureMapServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorSingleFeatureMapService',
+ useFactory: kommonitorSingleFeatureMapServiceFactory,
+};
+//visually style helper
+export function kommonitorVisualStyleHelperServiceFactory(injector) {
+ return injector.get('kommonitorVisualStyleHelperService');
+}
+export const ajskommonitorVisualStyleHelperServiceProvider = {
+ deps: ['$injector'],
+ provide: 'kommonitorVisualStyleHelperService',
+ useFactory: kommonitorVisualStyleHelperServiceFactory,
+};
+export const serviceProviders = [
+ ajskommonitorCacheHelperServiceProvider,
+ ajskommonitorBatchUpdateHelperServiceProvider,
+ ajskommonitorConfigStorageServiceProvider,
+ ajskommonitorDataExchangeServiceeProvider,
+ ajskommonitorDataGridHelperServiceProvider,
+ ajskommonitorDiagramHelperServiceProvider,
+ ajskommonitorFilterHelperServiceProvider,
+ ajskommonitorKeycloackHelperServiceProvider,
+ ajskommonitorMultiStepFormHelperServiceProvider,
+ ajskommonitorScriptHelperServiceProvider,
+ ajskommonitorShareHelperServiceProvider,
+ ajskommonitorSingleFeatureMapServiceProvider,
+ ajskommonitorVisualStyleHelperServiceProvider
+];
+//# sourceMappingURL=app-upgraded-providers.js.map
\ No newline at end of file
diff --git a/app/app-upgraded-providers.js.map b/app/app-upgraded-providers.js.map
new file mode 100644
index 000000000..2bada0d1b
--- /dev/null
+++ b/app/app-upgraded-providers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"app-upgraded-providers.js","sourceRoot":"","sources":["app-upgraded-providers.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/app-upgraded-providers.ts b/app/app-upgraded-providers.ts
index 025d6c4f0..d11794ce1 100644
--- a/app/app-upgraded-providers.ts
+++ b/app/app-upgraded-providers.ts
@@ -15,6 +15,9 @@ import {kommonitorShareHelperService} from 'util/genericServices/kommonitorShare
import {kommonitorSingleFeatureMapHelperService} from 'util/genericServices/kommonitorSingleFeatureMapHelperService/kommonitor-single-feature-map-helper-service.module'
import {kommonitorVisualStyleHelperService} from 'util/genericServices/kommonitorVisualStyleHelperService/kommonitor-visual-style-helper-service.module'
+
+//cache helper service
+
export function kommonitorCacheHelperServiceFactory(injector:any){
return injector.get('kommonitorCacheHelperService');
}
@@ -24,7 +27,7 @@ export const ajskommonitorCacheHelperServiceProvider: any = {
useFactory:kommonitorCacheHelperServiceFactory ,
};
-
+ //batch update helper service
export function kommonitorBatchUpdateHelperServiceFactory (injector:any){
return injector.get('kommonitorBatchUpdateHelperService')
}
@@ -35,6 +38,7 @@ export const ajskommonitorBatchUpdateHelperServiceProvider: any = {
useFactory:kommonitorBatchUpdateHelperServiceFactory ,
};
+ //config storage
export function kommonitorConfigStorageServiceFactory (injector:any){
return injector.get('kommonitorConfigStorageService')
}
@@ -65,9 +69,8 @@ export const ajskommonitorDataGridHelperServiceProvider: any = {
useFactory:kommonitorDataGridHelperServiceFactory,
};
//diagram helper
- export function kommonitorDiagramHelperServiceFactory (injector:any){
- return injector.get('kommonitorDiagramHelperService')
-}
+
+export const kommonitorDiagramHelperServiceFactory = (injector: any) => injector.get('KommonitorDiagramHelperService');
export const ajskommonitorDiagramHelperServiceProvider: any = {
deps: ['$injector'],
diff --git a/app/app.module.js b/app/app.module.js
new file mode 100644
index 000000000..8ce767982
--- /dev/null
+++ b/app/app.module.js
@@ -0,0 +1,453 @@
+import { __decorate } from "tslib";
+import { NgModule } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import { UpgradeModule } from '@angular/upgrade/static';
+import { downgradeComponent } from '@angular/upgrade/static';
+import * as $ from 'jquery';
+import Keycloak from 'keycloak-js';
+import angular from "angular";
+import { RouterModule } from '@angular/router';
+import { HashLocationStrategy, LocationStrategy } from '@angular/common';
+import { NgxEchartsModule } from 'ngx-echarts';
+import { EchartsxModule } from 'echarts-for-angular';
+import { InfoModalComponent } from 'components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component';
+import { VersionInfoComponent } from 'components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component';
+import { KommonitorDiagramsComponent } from 'components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component';
+// import { InfoModalModule } from 'components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module';
+// import { VersionInfoModule } from 'components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module';
+import { ajskommonitorCacheHelperServiceProvider, ajskommonitorBatchUpdateHelperServiceProvider, ajskommonitorConfigStorageServiceProvider, ajskommonitorDataExchangeServiceeProvider, ajskommonitorDataGridHelperServiceProvider, ajskommonitorDiagramHelperServiceProvider, ajskommonitorFilterHelperServiceProvider, ajskommonitorKeycloackHelperServiceProvider, ajskommonitorMultiStepFormHelperServiceProvider, ajskommonitorSingleFeatureMapServiceProvider } from 'app-upgraded-providers';
+// currently the AngularJS routing is still used as part of kommonitorClient module
+const routes = [];
+export let AppModule = class AppModule {
+ constructor(upgrade) {
+ this.upgrade = upgrade;
+ this.env = {};
+ }
+ async ngDoBootstrap() {
+ this.checkBrowser();
+ await this.loadConfigs();
+ // instantiate env variable
+ this.env = window.__env || {};
+ this.downgradeDependencies();
+ // initialize kommonitorClient module
+ await this.initKomMonitorClientModule();
+ // init keycloak authentication
+ await this.initKeycloak();
+ this.upgrade.bootstrap(document.documentElement, ['kommonitorClient']);
+ // setUpLocationSync(this.upgrade);
+ }
+ downgradeDependencies() {
+ // to inject already upgraded KomMonitor Angular components into "old" AngluarJS components, we must do 2 things
+ // 1. downgrade the new Angular component and register it as directive within each requiring AngularJS module/component
+ // --> this especially means all components, where the downgraded component is used within the HTML part as directive
+ // 2. in order to prevent no module errors we must remove the old module reference within the .module file of the AngularJS modules/components
+ angular.module('kommonitorUserInterface')
+ .directive('infoModal', downgradeComponent({ component: InfoModalComponent }));
+ angular.module('kommonitorUserInterface')
+ .directive('versionInfo', downgradeComponent({ component: VersionInfoComponent }));
+ angular.module('kommonitorUserInterface')
+ .directive('kommonitor-diagrams', downgradeComponent({ component: KommonitorDiagramsComponent }));
+ console.log("registered downgraded Angular components for AngularJS usage");
+ }
+ checkBrowser() {
+ if (/MSIE 9/i.test(navigator.userAgent) || /MSIE 10/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent)) {
+ // This is internet explorer 9, 10 or 11
+ window.alert('Internet Explorer erkannt. Für eine optimale Nutzung von KomMonitor nutzen Sie nach Möglichkeit die Browser Firefox oder Chrome.');
+ }
+ if (/Edge\/\d./i.test(navigator.userAgent)) {
+ // This is Microsoft Edge
+ window.alert('Microsoft Edge erkannt. Für eine optimale Nutzung von KomMonitor nutzen Sie nach Möglichkeit die Browser Firefox oder Chrome.');
+ }
+ }
+ async loadConfigs() {
+ console.log("start loading required config files");
+ let self = this;
+ await $.when(this.ajaxCall_keycloakConfig_localBackup(window.__env.configStorageServerConfig), this.ajaxCall_controlsConfig_localBackup(window.__env.configStorageServerConfig)).then(async function (ajax1Results, ajax2Results) {
+ console.log("local backup configs have been loaded in case config server is not reachable.");
+ await self.ajaxCall_configServerFile();
+ }, async function () {
+ // on fail
+ console.log("all configs have been loaded - at least some from local backup values. See console log for details");
+ await self.ajaxCall_configServerFile();
+ });
+ }
+ ;
+ /*
+ LOAD CONFIG FILES FROM CONFIG STORAGE SERVER
+ */
+ ajaxCall_keycloakConfig(configStorageServerConfig) {
+ console.log("try to fetch keycloak config file");
+ return $.ajax({
+ url: configStorageServerConfig.targetUrlToConfigStorageServer_keycloakConfig,
+ success: function (result) {
+ console.log("keycloak config file fetched");
+ window.__env.keycloakConfig = result;
+ return;
+ },
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
+ console.log("Use keycloak.json local backup default values");
+ }
+ });
+ }
+ ajaxCall_appConfig(configStorageServerConfig) {
+ console.log("try to fetch app config file");
+ return $.ajax({
+ url: configStorageServerConfig.targetUrlToConfigStorageServer_appConfig,
+ success: function (result) {
+ console.log("app config file fetched");
+ window.__env.appConfig = result;
+ return;
+ },
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
+ console.log("Use env.js local backup default values");
+ }
+ });
+ }
+ ajaxCall_controlsConfig(configStorageServerConfig) {
+ console.log("try to fetch controls config file");
+ return $.ajax({
+ url: configStorageServerConfig.targetUrlToConfigStorageServer_controlsConfig,
+ success: function (result) {
+ console.log("controls config file fetched");
+ window.__env.controlsConfig = result;
+ return;
+ },
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
+ console.log("Use controls-config.json local backup default values that has no widget restrictions.");
+ }
+ });
+ }
+ /*
+ LOAD CONFIG FILES FROM LOCAL BACKUP FILES
+ */
+ ajaxCall_keycloakConfig_localBackup(configStorageServerConfig) {
+ return $.ajax({
+ url: "./config/keycloak_backup.json",
+ success: function (result) {
+ console.log("local keycloak config file with default values fetched");
+ window.__env.keycloakConfig = result;
+ return;
+ },
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
+ console.log("Error parsing local keycloak.json backup file");
+ }
+ });
+ }
+ ajaxCall_controlsConfig_localBackup(configStorageServerConfig) {
+ return $.ajax({
+ url: "./config/controls-config_backup.json",
+ success: function (result) {
+ console.log("local controls-config file with default values fetched");
+ window.__env.controlsConfig = result;
+ return;
+ },
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
+ console.log("Error parsing local controlsConfig.json backup file");
+ }
+ });
+ }
+ loadAppConfigScriptDynamically(scriptUrl) {
+ return new Promise(function (res, rej) {
+ let script = document.createElement('script');
+ script.src = scriptUrl;
+ script.type = 'text/javascript';
+ script.onerror = rej;
+ script.async = true;
+ script.onload = res;
+ script.addEventListener('error', rej);
+ script.addEventListener('load', res);
+ document.head.appendChild(script);
+ });
+ }
+ initEnvVariables() {
+ // Import variables if present (from env.js)
+ if (window) {
+ Object.assign(this.env, window.__env);
+ }
+ if (!this.env.enableDebug) {
+ if (window) {
+ window.console.log = function () { };
+ }
+ }
+ }
+ ajaxCall_configServerFile() {
+ let self = this;
+ return $.ajax({
+ url: "./config/config-storage-server.json",
+ success: function (result) {
+ window.__env = window.__env || {};
+ window.__env.configStorageServerConfig = result;
+ // inject script tag dynamically to DOM to load ENV variables
+ console.log("dynamically load env.js");
+ const event = self.loadAppConfigScriptDynamically(window.__env.configStorageServerConfig.targetUrlToConfigStorageServer_appConfig)
+ .then(() => { console.log("loaded"); })
+ .catch(() => {
+ console.log("Error while loading app config from client config storage server. Will use defaults instead");
+ alert("Error while loading app config from client config storage server. Will use defaults instead.");
+ });
+ return $.when(self.ajaxCall_keycloakConfig(window.__env.configStorageServerConfig), self.ajaxCall_controlsConfig(window.__env.configStorageServerConfig), self.ajaxCall_appConfig(window.__env.configStorageServerConfig)).then(function (ajax1Results, ajax2Results, ajax3Results) {
+ console.log("all configs have been loaded");
+ self.initEnvVariables();
+ return;
+ }, function () {
+ // on fail
+ console.log("all configs have been loaded - at least some from local backup values. See console log for details");
+ self.initEnvVariables();
+ return;
+ });
+ }
+ });
+ }
+ initKomMonitorClientModule() {
+ let self = this;
+ // Register environment in AngularJS as constant
+ angular.module('kommonitorClient').constant('__env', window.__env);
+ // MathJx directive
+ angular.module('kommonitorClient').directive("mathjaxBind", function () {
+ return {
+ restrict: "EA",
+ controller: [
+ "$scope",
+ "$element",
+ "$attrs",
+ function ($scope, $element, $attrs) {
+ $scope.$watch($attrs.mathjaxBind, function (texExpression) {
+ $element.html(texExpression);
+ // only if texExpression contains the special character '$' which is used to mark tex code
+ // then call MathJax function
+ if (texExpression && texExpression.includes("$")) {
+ MathJax.typesetPromise([$element[0]]);
+ }
+ });
+ },
+ ],
+ };
+ });
+ // custom unique filter
+ angular.module('kommonitorClient').filter('unique', function () {
+ return function (collection, primaryKey) {
+ var output = [], keys = [];
+ var splitKeys = primaryKey.split('.'); //split by period
+ angular.forEach(collection, function (item) {
+ let key = "";
+ angular.copy(item, key);
+ for (var i = 0; i < splitKeys.length; i++) {
+ key = key[splitKeys[i]];
+ }
+ if (keys.indexOf(key) === -1) {
+ keys.push(key);
+ output.push(item);
+ }
+ });
+ return output;
+ };
+ });
+ angular.module('kommonitorClient').service("ControlsConfigService", ['$http', function ($http) {
+ window.__env.config = null;
+ // var resourcePath = window.__env.configStorageServerConfig ? window.__env.configStorageServerConfig.targetUrlToConfigStorageServer_controlsConfig : './config/controls-config_backup.json';
+ var resourcePath = './config/controls-config_backup.json';
+ var promise = $http.get(resourcePath).then(function (response) {
+ // window.__env.config = response.data;
+ window.__env.config = window.__env.controlsConfig;
+ });
+ return {
+ promise: promise,
+ setData: function (response) {
+ window.__env.config = window.__env.controlsConfig;
+ },
+ getControlsConfig: function () {
+ return window.__env.config;
+ }
+ };
+ }]);
+ // init/configure SPA routing
+ angular.module('kommonitorClient').
+ config(['$routeProvider', '$locationProvider',
+ function config($routeProvider, $locationProvider) {
+ $locationProvider.hashPrefix('!');
+ $routeProvider.
+ when('/', {
+ template: ' ',
+ resolve: {
+ "ControlsConfigService": function (ControlsConfigService) {
+ return ControlsConfigService.promise;
+ }
+ }
+ }).
+ when('/administration', {
+ template: ' ',
+ resolve: {
+ 'auth': function (Auth, $q, $location) {
+ if (window.__env.enableKeycloakSecurity) {
+ if (Auth.keycloak.authenticated) {
+ if (Auth.keycloak.tokenParsed
+ && Auth.keycloak.tokenParsed.realm_access
+ && Auth.keycloak.tokenParsed.realm_access.roles
+ && Auth.keycloak.tokenParsed.realm_access.roles.some(role => role.endsWith("-creator") || role.endsWith("-publisher") || role.endsWith("-editor"))) {
+ Auth.keycloak.showAdminView = true;
+ }
+ if (Auth.keycloak.showAdminView) {
+ return true;
+ }
+ else {
+ return $q.reject('Not Authenticated');
+ }
+ }
+ else {
+ Auth.keycloak.login({
+ redirectUri: $location.absUrl()
+ });
+ }
+ }
+ }
+ }
+ })
+ .otherwise('/');
+ }
+ ]);
+ // register auth interceptor to refresh Keycloak login on each user request
+ angular.module('kommonitorClient').factory('authInterceptor', ['$q', 'Auth', function ($q, Auth) {
+ return {
+ request: function (config) {
+ var deferred = $q.defer();
+ if (Auth.keycloak.token && self.urlRequiresKeycloakAuthHeader(config.url)) {
+ Auth.keycloak.updateToken(5).then(function () {
+ config.headers = config.headers || {};
+ config.headers.Authorization = 'Bearer ' + Auth.keycloak.token;
+ deferred.resolve(config);
+ }).catch(function () {
+ deferred.reject('Failed to refresh token');
+ console.error('Failed to refresh token. Will redirect to Login screen');
+ Auth.keycloak.login();
+ });
+ return deferred.promise;
+ }
+ else {
+ return config;
+ }
+ }
+ };
+ }]);
+ angular.module('kommonitorClient').config(['$httpProvider', function ($httpProvider) {
+ $httpProvider.interceptors.push('authInterceptor');
+ }]);
+ }
+ urlRequiresKeycloakAuthHeader(url) {
+ // /admin/ is used to make admin requests against keycloak
+ if (url.includes("/admin/")) {
+ return false;
+ }
+ // ORS isochrones and directions requests
+ if (url.includes("isochrones")) {
+ return false;
+ }
+ if (url.includes("routes")) {
+ return false;
+ }
+ // for KomMonitor public requests we do not need any authentication
+ if (url.includes("/public/")) {
+ return false;
+ }
+ return true;
+ }
+ ;
+ isBase64(str) {
+ var notBase64 = /[^A-Z0-9+\/=]/i;
+ const len = str.length;
+ if (!len || len % 4 !== 0 || notBase64.test(str)) {
+ return false;
+ }
+ const firstPaddingChar = str.indexOf('=');
+ return firstPaddingChar === -1 ||
+ firstPaddingChar === len - 1 ||
+ (firstPaddingChar === len - 2 && str[len - 1] === '=');
+ }
+ ;
+ // private decryptAesCBC(encryptedString: string) {
+ // var hashedKey = CryptoJS.SHA256(this.env.encryption.password);
+ // // from BASE64 encoded encrypted string
+ // var encryptedWordArray = CryptoJS.enc.Base64.parse(encryptedString);
+ // // get IV from beginning
+ // var iv = CryptoJS.lib.WordArray.create(
+ // encryptedWordArray.words.slice(0, (this.env.encryption.ivLength_byte) / 4)
+ // );
+ // var decrypted = CryptoJS.AES.decrypt(
+ // {
+ // ciphertext: CryptoJS.lib.WordArray.create(
+ // encryptedWordArray.words.slice(this.env.encryption.ivLength_byte / 4)
+ // )
+ // },
+ // hashedKey,
+ // { iv: iv }
+ // );
+ // var decryptedString = decrypted.toString(CryptoJS.enc.Utf8);
+ // var decryptedJson = JSON.parse(decryptedString);
+ // // sometimes a response might still be BASE64 encoded in addition
+ // // if so, then resolve that
+ // if (typeof decryptedJson === 'string' && this.isBase64(decryptedJson)) {
+ // decryptedJson = CryptoJS.enc.Base64.parse(decryptedJson).toString(CryptoJS.enc.Utf8);
+ // decryptedJson = JSON.parse(decryptedJson);
+ // }
+ // return decryptedJson;
+ // };
+ async initKeycloak() {
+ let auth = {
+ keycloak: {}
+ };
+ if (window.__env.enableKeycloakSecurity) {
+ var keycloakAdapter = new Keycloak(window.__env.configStorageServerConfig.targetUrlToConfigStorageServer_keycloakConfig);
+ // https://www.keycloak.org/docs/latest/securing_apps/#session-status-iframe
+ // https://www.keycloak.org/docs/latest/securing_apps/#_modern_browsers
+ return await keycloakAdapter.init({
+ onLoad: 'check-sso',
+ checkLoginIframe: false,
+ silentCheckSsoFallback: false
+ }).then(function (authenticated) {
+ console.log(authenticated ? 'User is authenticated!' : 'User is not authenticated!');
+ auth.keycloak = keycloakAdapter;
+ angular.module('kommonitorClient').factory('Auth', function () {
+ return auth;
+ });
+ try {
+ console.debug('Trying to bootstrap application.');
+ }
+ catch (e) {
+ console.error('Application bootstrapping failed.');
+ console.error(e);
+ }
+ }).catch(function () {
+ console.log('Failed to initialize authentication adapter. Will try to bootstrap application without keycloak security');
+ alert('Failed to initialize keycloak authentication adapter. Will try to bootstrap application without keycloak security');
+ });
+ }
+ }
+};
+AppModule = __decorate([
+ NgModule({
+ imports: [
+ BrowserModule,
+ UpgradeModule,
+ RouterModule.forRoot(routes, { useHash: true }),
+ NgxEchartsModule.forRoot({
+ echarts: () => import('echarts')
+ }),
+ EchartsxModule,
+ // InfoModalModule,
+ // VersionInfoModule
+ ],
+ providers: [
+ { provide: LocationStrategy, useClass: HashLocationStrategy },
+ ajskommonitorCacheHelperServiceProvider, ajskommonitorBatchUpdateHelperServiceProvider,
+ ajskommonitorConfigStorageServiceProvider, ajskommonitorKeycloackHelperServiceProvider,
+ ajskommonitorMultiStepFormHelperServiceProvider, ajskommonitorDataExchangeServiceeProvider,
+ ajskommonitorDataGridHelperServiceProvider, ajskommonitorSingleFeatureMapServiceProvider,
+ ajskommonitorDiagramHelperServiceProvider, ajskommonitorFilterHelperServiceProvider,
+ ],
+ declarations: [
+ InfoModalComponent,
+ VersionInfoComponent,
+ KommonitorDiagramsComponent
+ ]
+ })
+], AppModule);
+//# sourceMappingURL=app.module.js.map
\ No newline at end of file
diff --git a/app/app.module.js.map b/app/app.module.js.map
new file mode 100644
index 000000000..2c0ce8637
--- /dev/null
+++ b/app/app.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"app.module.js","sourceRoot":"","sources":["app.module.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/app.module.ts b/app/app.module.ts
index dcbea29be..26aea6d48 100644
--- a/app/app.module.ts
+++ b/app/app.module.ts
@@ -13,11 +13,14 @@ import { NgxEchartsModule } from 'ngx-echarts';
import { EchartsDirective, EchartsxModule } from 'echarts-for-angular';
import { InfoModalComponent } from 'components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component';
import { VersionInfoComponent } from 'components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component';
+import { KommonitorDiagramsComponent } from 'components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component';
+import { IndicatorRadarComponent } from 'components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar';
// import { InfoModalModule } from 'components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module';
// import { VersionInfoModule } from 'components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module';
+import { RegressionDiagramComponent } from 'components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component';
import { ajskommonitorCacheHelperServiceProvider,ajskommonitorBatchUpdateHelperServiceProvider,ajskommonitorConfigStorageServiceProvider,ajskommonitorDataExchangeServiceeProvider,ajskommonitorDataGridHelperServiceProvider,ajskommonitorDiagramHelperServiceProvider,ajskommonitorFilterHelperServiceProvider,ajskommonitorKeycloackHelperServiceProvider,ajskommonitorMultiStepFormHelperServiceProvider, ajskommonitorSingleFeatureMapServiceProvider } from 'app-upgraded-providers';
//import { KommonitorDiagramsComponent } from 'components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component';
-import { KommonitorDiagramsModule } from 'components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module';
+
// currently the AngularJS routing is still used as part of kommonitorClient module
const routes: Routes = [];
@@ -28,7 +31,6 @@ declare var MathJax;
BrowserModule,
UpgradeModule,
RouterModule.forRoot(routes , { useHash: true }),
- KommonitorDiagramsModule,
NgxEchartsModule.forRoot({
echarts: () => import('echarts')
}),
@@ -47,17 +49,28 @@ declare var MathJax;
declarations: [
InfoModalComponent,
-
+ VersionInfoComponent,
+ KommonitorDiagramsComponent,
+ IndicatorRadarComponent,
+ RegressionDiagramComponent
+
+
+
]
})
export class AppModule implements DoBootstrap {
+
+
+
+
private env: any = {};
constructor(private upgrade: UpgradeModule) {
}
+
async ngDoBootstrap() {
this.checkBrowser();
@@ -90,9 +103,11 @@ export class AppModule implements DoBootstrap {
angular.module('kommonitorUserInterface')
.directive('versionInfo', downgradeComponent({ component: VersionInfoComponent }) as angular.IDirectiveFactory);
+
+
- //angular.module('kommonitorUserInterface')
- //.directive('kommonitor-diagrams', downgradeComponent({ component: KommonitorDiagramsComponent }) as angular.IDirectiveFactory);
+ angular.module('kommonitorUserInterface')
+ .directive('kommonitorDiagrams', downgradeComponent({ component: KommonitorDiagramsComponent }) as angular.IDirectiveFactory);
console.log("registered downgraded Angular components for AngularJS usage");
}
@@ -534,4 +549,8 @@ export class AppModule implements DoBootstrap {
}
}
+
+
+
+
}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitor-user-interface.module.js b/app/components/kommonitorUserInterface/kommonitor-user-interface.module.js
index 38c7f98b4..310280377 100644
--- a/app/components/kommonitorUserInterface/kommonitor-user-interface.module.js
+++ b/app/components/kommonitorUserInterface/kommonitor-user-interface.module.js
@@ -1,6 +1,6 @@
"use strict";
-angular.module('kommonitorUserInterface', ['kommonitorMap', 'kommonitorDataSetup',
+angular.module('kommonitorUserInterface', ['kommonitorMap', 'kommonitorDataSetup', 'kommonitorAdmin',
'kommonitorIndividualIndicatorComputation', 'kommonitorDiagrams', 'indicatorRadar', 'regressionDiagram', 'kommonitorFilter', 'kommonitorBalance',
- 'kommonitorReachability', 'poi', 'spatialUnitNotificationModal', 'feedbackModal', 'reportingModal', 'wmsModal', 'wfsModal', 'kommonitorDataImport',
+ 'kommonitorReachability', 'poi', 'infoModal', 'spatialUnitNotificationModal', 'feedbackModal', 'reportingModal', 'wmsModal', 'wfsModal', 'kommonitorDataImport',
'kommonitorLegend', 'kommonitorElementVisibilityHelper', 'kommonitorShareHelper']);
//# sourceMappingURL=kommonitor-user-interface.module.js.map
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.component.js b/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.component.js
index 57b899a81..6f79825e1 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.component.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.component.js
@@ -77,6 +77,7 @@ angular
}
modifyRadarContent(kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
};
+ //here
$scope.onChangeSelectedDate = function (input) {
if (input.isSelected) {
modifyRadarContent(kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.component.ts b/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.component.ts
deleted file mode 100644
index 95cceef81..000000000
--- a/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.component.ts
+++ /dev/null
@@ -1,612 +0,0 @@
-angular
- .module('indicatorRadar')
- .component(
- 'indicatorRadar',
- {
- templateUrl: "components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.template.html",
-
- controller: [
- 'kommonitorDataExchangeService', 'kommonitorDiagramHelperService', 'kommonitorFilterHelperService', '$scope', '$rootScope', '$timeout', '$http', '__env',
- function indicatorRadarController(
- kommonitorDataExchangeService, kommonitorDiagramHelperService, kommonitorFilterHelperService, $scope, $rootScope, $timeout, $http, __env) {
- /*
- * reference to kommonitorDataExchangeService instances
- */
- this.kommonitorDataExchangeServiceInstance = kommonitorDataExchangeService;
- this.kommonitorDiagramHelperServiceInstance = kommonitorDiagramHelperService;
-
- var self = this;
-
- $scope.activeTab = 0;
-
- // initialize any adminLTE box widgets
- $('.box').boxWidget();
-
- $(window).on('resize', function () {
- if ($scope.radarChart != null && $scope.radarChart != undefined) {
- $scope.radarChart.resize();
- }
- });
-
- $scope.$on("resizeDiagrams", function (event) {
-
- setTimeout(function () {
- if ($scope.radarChart != null && $scope.radarChart != undefined) {
- $scope.radarChart.resize();
- }
- }, 350);
- });
-
- const DATE_PREFIX = __env.indicatorDatePrefix;
-
- $scope.indicatorNameFilter = undefined;
-
- $scope.eventsRegistered = false;
-
- var numberOfDecimals = __env.numberOfDecimals;
-
- $scope.setupCompleted = true;
-
- $scope.onChangeFilterSameUnitAndSameTime = function(){
- if($scope.radarChart){
- $scope.radarChart.dispose();
- $scope.radarChart = echarts.init(document.getElementById('radarDiagram'));
- }
- kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime = [];
-
- kommonitorDiagramHelperService.setupIndicatorPropertiesForCurrentSpatialUnitAndTime(kommonitorDiagramHelperService.filterSameUnitAndSameTime);
- };
-
- $scope.date;
- $scope.spatialUnitName;
-
- $scope.$on("updateDiagrams", function (event, indicatorMetadataAndGeoJSON, spatialUnitName, spatialUnitId, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, justRestyling) {
-
- // if the layer is just restyled (i.e. due to change of measureOfValue)
- // then we do not need to costly update the radar diagram
- if (justRestyling) {
- return;
- }
-
- console.log("updating radar diagram");
-
- $scope.setupCompleted = false;
-
- updateRadarChart(indicatorMetadataAndGeoJSON, spatialUnitName, spatialUnitId, date);
-
- $rootScope.$broadcast("preserveHighlightedFeatures");
-
- });
-
- // RADAR CHART TIME SERIES FUNCTION
- var updateRadarChart = async function (indicatorMetadataAndGeoJSON, spatialUnitName, spatialUnitId, date) {
- // based on prepared DOM, initialize echarts instance
- $scope.date = date;
- $scope.spatialUnitName = spatialUnitName;
-
- if (!$scope.radarChart)
- $scope.radarChart = echarts.init(document.getElementById('radarDiagram'));
- else {
- // explicitly kill and reinstantiate radar diagram to avoid zombie states on spatial unit change
- $scope.radarChart.dispose();
- $scope.radarChart = echarts.init(document.getElementById('radarDiagram'));
- kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime = new Array();
- }
-
- await $scope.radarChart.showLoading();
-
- kommonitorDiagramHelperService.setupIndicatorPropertiesForCurrentSpatialUnitAndTime();
-
- $scope.activeTab = 0;
- if(kommonitorDataExchangeService.selectedIndicator.creationType == "COMPUTATION"){
- $scope.activeTab = 1;
- }
- if(kommonitorDataExchangeService.selectedIndicator.isHeadlineIndicator){
- $scope.activeTab = 2;
- }
-
- modifyRadarContent(kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
- };
-
- $scope.onChangeSelectedDate = function(input){
- if(input.isSelected){
- modifyRadarContent(kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
- }
- };
-
- var wait = ms => new Promise((r, j) => setTimeout(r, ms));
-
- $scope.$on("allIndicatorPropertiesForCurrentSpatialUnitAndTime setup begin", async function (event) {
-
- await wait(130);
- $scope.setupCompleted = false;
-
-
- $timeout(function(){
- $scope.$digest();
- }, 500);
-
- });
-
- $scope.$on("allIndicatorPropertiesForCurrentSpatialUnitAndTime setup completed", async function (event) {
-
- await wait(130);
- $scope.setupCompleted = true;
-
-
- $timeout(function(){
- $scope.$digest();
- self.filterDisplayedIndicatorsOnRadar();
- }, 500);
-
- });
-
- var modifyRadarContent = async function (indicatorsForRadar) {
- var indicatorArrayForRadarChart = new Array();
- var defaultSeriesValueArray = new Array();
-
- var sampleProperties = null;
-
- for (var i = 0; i < indicatorsForRadar.length; i++) {
- if (indicatorsForRadar[i].isSelected) {
-
- await kommonitorDiagramHelperService.fetchIndicatorPropertiesIfNotExists(i);
-
- // make object to hold indicatorName, max value and average value
- var indicatorProperties = indicatorsForRadar[i].indicatorProperties;
-
- if(kommonitorFilterHelperService.completelyRemoveFilteredFeaturesFromDisplay && kommonitorFilterHelperService.filteredIndicatorFeatureIds.size > 0){
- indicatorProperties = indicatorProperties.filter(featureProperties => ! kommonitorFilterHelperService.featureIsCurrentlyFiltered(featureProperties[__env.FEATURE_ID_PROPERTY_NAME]));
- }
-
- sampleProperties = indicatorsForRadar[i].indicatorProperties;
-
- // var closestApplicableTimestamp = kommonitorDiagramHelperService.findClostestTimestamForTargetDate(indicatorsForRadar[i], $scope.date);
- // indicatorsForRadar[i].closestTimestamp = closestApplicableTimestamp;
-
- var sample = indicatorProperties[0];
- var maxValue = sample[DATE_PREFIX + indicatorsForRadar[i].selectedDate];
- var minValue = sample[DATE_PREFIX + indicatorsForRadar[i].selectedDate];
- var valueSum = 0;
-
- for (var indicatorPropertyInstance of indicatorProperties) {
- // for average only apply real numeric values
- if (!kommonitorDataExchangeService.indicatorValueIsNoData(indicatorPropertyInstance[DATE_PREFIX + indicatorsForRadar[i].selectedDate])) {
- var value = kommonitorDataExchangeService.getIndicatorValueFromArray_asNumber(indicatorPropertyInstance, indicatorsForRadar[i].selectedDate)
- valueSum += value;
-
- if (value > maxValue)
- maxValue = value;
-
- if (value < minValue)
- minValue = value;
- }
- }
-
- if (minValue == null) {
- minValue = 0;
- }
-
- if (maxValue == null) {
- maxValue = 1;
- }
-
- // IT MIGHT HAPPEN THAT AN INDICATOR IS INSPECTED THAT DOES NOT SUPPORT THE DATE
- // HENCE ONLY ADD VALUES TO DEFAULT IF THEY SHOW MEANINGFUL VALUES
- // if(valueSum != null){
- indicatorArrayForRadarChart.push({
- name: indicatorsForRadar[i].indicatorMetadata.indicatorName + " - " + indicatorsForRadar[i].selectedDate,
- unit: indicatorsForRadar[i].indicatorMetadata.unit,
- max: maxValue,
- min: minValue
- });
-
- defaultSeriesValueArray.push(kommonitorDataExchangeService.getIndicatorValue_asNumber(Number(valueSum / indicatorProperties.length)));
- // }
- }
-
- }
-
- if (defaultSeriesValueArray.length === 0) {
-
- if ($scope.radarChart) {
- $scope.radarChart.dispose();
- $scope.radarChart = undefined;
- }
-
- }
- else {
-
- if (!$scope.radarChart)
- $scope.radarChart = echarts.init(document.getElementById('radarDiagram'));
- // else{
- // // explicitly kill and reinstantiate radar diagram to avoid zombie states on spatial unit change
- // $scope.radarChart.dispose();
- // $scope.radarChart = echarts.init(document.getElementById('radarDiagram'));
- // }
-
- $scope.radarOption = {
- grid: {
- left: '4%',
- top: 0,
- right: '4%',
- bottom: 30,
- containLabel: true
- },
- title: {
- text: 'Indikatorenradar - ' + $scope.spatialUnitName + ' - ' + $scope.date,
- left: 'center',
- top: 0,
- show: false
- },
- tooltip: {
- confine: 'true',
- formatter: function (params) {
-
- var string = "" + params.name + " ";
-
- for (var index = 0; index < params.value.length; index++) {
- string += $scope.radarOption.radar.indicator[index].name + ": " + kommonitorDataExchangeService.getIndicatorValue_asFormattedText(params.value[index]) + " [" + $scope.radarOption.radar.indicator[index].unit + "] ";
- };
-
- return string;
- }
- // position: ['50%', '50%']
- },
- toolbox: {
- show: true,
- right: '15',
- feature: {
- // mark : {show: true},
- dataView: {
- show: kommonitorDataExchangeService.showDiagramExportButtons, readOnly: true, title: "Datenansicht", lang: ['Datenansicht - Indikatorenradar', 'schließen', 'refresh'], optionToContent: function (opt) {
-
- //
- //
- //
- // Indikator-Name
- // Beschreibung der Verknüpfung
- //
- //
- //
- //
- // {{indicator.referencedIndicatorName}}
- // {{indicator.referencedIndicatorDescription}}
- //
- //
- //
-
- var radarSeries = opt.series[0].data;
- var indicators = opt.radar[0].indicator;
-
- var dataTableId = "radarDataTable";
- var tableExportName = opt.title[0].text;
-
- var htmlString = '';
- htmlString += "";
- htmlString += "";
- htmlString += "Feature-Name ";
-
- for (var i = 0; i < indicators.length; i++) {
- htmlString += "" + indicators[i].name + " [" + indicators[i].unit + "] ";
- }
-
- htmlString += " ";
- htmlString += " ";
-
- htmlString += "";
-
-
-
- for (var j = 0; j < radarSeries.length; j++) {
- htmlString += "";
- htmlString += "" + radarSeries[j].name + " ";
- for (var k = 0; k < indicators.length; k++) {
- htmlString += "" + kommonitorDataExchangeService.getIndicatorValue_asNumber(radarSeries[j].value[k]) + " ";
- }
- htmlString += " ";
- }
-
- htmlString += " ";
- htmlString += "
";
-
- $rootScope.$broadcast("AppendExportButtonsForTable", dataTableId, tableExportName);
-
- return htmlString;
- }
- },
- restore: { show: false, title: "Darstellung erneuern" },
- saveAsImage: { show: true, title: "Export", pixelRatio: 4 }
- }
- },
- legend: {
- type: "scroll",
- bottom: 0,
- align: 'left',
- left: 5,
- data: ['Arithmetisches Mittel']
- },
- radar: {
- // shape: 'circle',
- // name: {
- // textStyle: {
- // color: '#fff',
- // backgroundColor: '#999',
- // borderRadius: 3,
- // padding: [3, 5]
- // }
- // },
- name: {
- formatter: function (value, indicator) {
-
- return kommonitorDataExchangeService.formatIndicatorNameForLabel(value, 15);
- },
- textStyle: {
- color: '#525252'
- },
- fontSize: 11
- },
- indicator: indicatorArrayForRadarChart
- },
- series: [{
- name: 'Indikatorvergleich',
- type: 'radar',
- symbolSize: 8,
- data: [
- {
- value: defaultSeriesValueArray,
- name: 'Arithmetisches Mittel',
- lineStyle: {
- color: 'gray',
- type: 'dashed',
- width: 3
- },
- itemStyle: {
- borderWidth: 2,
- color: 'gray'
- },
- emphasis: {
- lineStyle: {
- width: 4
- },
- itemStyle: {
- borderType: 'dashed'
- }
- }
- }
- ]
- }]
- };
-
- // check if any feature is still clicked/selected
- // then append those as series within radar chart
- appendSelectedFeaturesIfNecessary(sampleProperties);
-
- // use configuration item and data specified to show chart
- $scope.radarChart.setOption($scope.radarOption);
-
- $scope.radarChart.hideLoading();
- setTimeout(function () {
- $scope.radarChart.resize();
- $scope.$digest();
- }, 350);
- registerEventsIfNecessary();
-
- }
-
- }
-
- var appendSelectedFeaturesIfNecessary = function (sampleProperties) {
-
- for (var propertiesInstance of sampleProperties) {
- if (kommonitorFilterHelperService.featureIsCurrentlySelected(propertiesInstance[__env.FEATURE_ID_PROPERTY_NAME])) {
- appendSeriesToRadarChart(propertiesInstance);
- }
- }
- };
-
- function registerEventsIfNecessary() {
- if (!$scope.eventsRegistered) {
- // when hovering over elements of the chart then highlight them in the map.
- $scope.radarChart.on('mouseOver', function (params) {
- // $scope.userHoveresOverItem = true;
- var spatialFeatureName = params.data.name;
- // console.log(spatialFeatureName);
- if(spatialFeatureName){
- $rootScope.$broadcast("highlightFeatureOnMap", spatialFeatureName);
- }
-
- });
-
- $scope.radarChart.on('mouseOut', function (params) {
- // $scope.userHoveresOverItem = false;
-
- var spatialFeatureName = params.data.name;
- // console.log(spatialFeatureName);
- if(spatialFeatureName){
- $rootScope.$broadcast("unhighlightFeatureOnMap", spatialFeatureName);
- }
-
- });
-
- //disable feature removal for radar chart - seems to be unintuititve
- // $scope.radarChart.on('click', function(params){
- // var spatialFeatureName = params.data.name;
- // // console.log(spatialFeatureName);
- // if(spatialFeatureName){
- // $rootScope.$broadcast("switchHighlightFeatureOnMap", spatialFeatureName);
- // }
- // });
-
- $scope.eventsRegistered = true;
- }
- };
-
-
- $scope.$on("updateDiagramsForHoveredFeature", function (event, featureProperties) {
-
- if (!$scope.radarChart || !$scope.radarOption || !$scope.radarOption.legend || !$scope.radarOption.series) {
- return;
- }
-
- if (!kommonitorFilterHelperService.featureIsCurrentlySelected(featureProperties[__env.FEATURE_ID_PROPERTY_NAME])) {
- appendSeriesToRadarChart(featureProperties);
- }
-
- highlightFeatureInRadarChart(featureProperties);
- });
-
- var appendSeriesToRadarChart = function (featureProperties) {
- // append feature name to legend
- $scope.radarOption.legend.data.push(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
-
- // create feature data series
- var featureSeries = {};
- featureSeries.name = featureProperties[__env.FEATURE_NAME_PROPERTY_NAME];
- featureSeries.value = new Array();
- featureSeries.emphasis = {
- lineStyle: {
- width: 4,
- type: 'dotted'
- }
- };
- featureSeries.lineStyle = {
- width: 3,
- type: 'solid'
- };
- featureSeries.itemStyle = {
- borderWidth: 2
- };
-
-
- // for each indicator create series data entry for feature
- for (var i = 0; i < kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime.length; i++) {
- if (kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime[i].isSelected) {
- // make object to hold indicatorName, max value and average value
- var indicatorProperties = kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime[i].indicatorProperties;
- var date = kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime[i].selectedDate;
-
- for (var indicatorPropertyInstance of indicatorProperties) {
- if (indicatorPropertyInstance[__env.FEATURE_NAME_PROPERTY_NAME] == featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]) {
- if (!kommonitorDataExchangeService.indicatorValueIsNoData(indicatorPropertyInstance[DATE_PREFIX + date])) {
- featureSeries.value.push(kommonitorDataExchangeService.getIndicatorValueFromArray_asNumber(indicatorPropertyInstance, date));
- }
- else {
- featureSeries.value.push(null);
- }
- break;
- }
- }
- }
-
- }
-
- $scope.radarOption.series[0].data.push(featureSeries);
-
- $scope.radarChart.setOption($scope.radarOption);
- setTimeout(function () {
- $scope.radarChart.resize();
- }, 350);
- registerEventsIfNecessary();
- };
-
- var highlightFeatureInRadarChart = function (featureProperties) {
- // highlight the corresponding bar diagram item
- // get series index of series
- var dataIndex = getSeriesDataIndexByFeatureName(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
-
- if (dataIndex > -1) {
- $scope.radarChart.dispatchAction({
- type: 'highlight',
- seriesIndex: 0,
- dataIndex: dataIndex
- });
- }
- };
-
- $scope.$on("updateDiagramsForUnhoveredFeature", function (event, featureProperties) {
-
- if (!$scope.radarChart || !$scope.radarOption || !$scope.radarOption.legend || !$scope.radarOption.series) {
- return;
- }
-
- unhighlightFeatureInRadarChart(featureProperties);
-
- if (!kommonitorFilterHelperService.featureIsCurrentlySelected(featureProperties[__env.FEATURE_ID_PROPERTY_NAME])) {
- removeSeriesFromRadarChart(featureProperties);
- }
- });
-
- var getSeriesDataIndexByFeatureName = function (featureName) {
- for (var index = 0; index < $scope.radarOption.series[0].data.length; index++) {
- if ($scope.radarOption.series[0].data[index].name == featureName)
- return index;
- }
-
- //return -1 if none was found
- return -1;
- };
-
- var removeSeriesFromRadarChart = function (featureProperties) {
- // remove feature from legend
- var legendIndex = $scope.radarOption.legend.data.indexOf(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
- if (legendIndex > -1) {
- $scope.radarOption.legend.data.splice(legendIndex, 1);
- }
-
- // remove feature data series
- var dataIndex = getSeriesDataIndexByFeatureName(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
- if (dataIndex > -1) {
- $scope.radarOption.series[0].data.splice(dataIndex, 1);
- }
-
- // second parameter tells echarts to not merge options with previous data. hence really remove series from graphic
- $scope.radarChart.setOption($scope.radarOption, true);
- setTimeout(function () {
- $scope.radarChart.resize();
- }, 350);
- registerEventsIfNecessary();
- };
-
- var unhighlightFeatureInRadarChart = function (featureProperties) {
- // highlight the corresponding bar diagram item
- // get series index of series
- var dataIndex = getSeriesDataIndexByFeatureName(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
-
- if (dataIndex > -1) {
- $scope.radarChart.dispatchAction({
- type: 'downplay',
- seriesIndex: 0,
- dataIndex: dataIndex
- });
- }
- };
-
- this.filterDisplayedIndicatorsOnRadar = function () {
- console.log("Filtering indicator radar");
-
- modifyRadarContent(kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
-
- }
-
- this.selectAllIndicatorsForRadar = function () {
-
- for (var indicator of kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime) {
- indicator.isSelected = true;
- }
-
- modifyRadarContent(kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
- }
-
- this.deselectAllIndicatorsForRadar = function () {
-
- for (var indicator of kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime) {
- indicator.isSelected = false;
- }
-
- modifyRadarContent(kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
- }
-
-
- }]
- });
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.module.ts b/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.module.ts
index 4358673cd..5ffb451cc 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.module.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.module.ts
@@ -1 +1,16 @@
-angular.module('indicatorRadar', [ 'kommonitorDataExchange', 'kommonitorDiagramHelper']);
+// indicator-radar.module.ts
+
+import { NgModule } from '@angular/core';
+import { ajskommonitorDiagramHelperServiceProvider } from 'app-upgraded-providers';
+import { ajskommonitorDataExchangeServiceeProvider } from 'app-upgraded-providers';
+import { ajskommonitorFilterHelperServiceProvider } from 'app-upgraded-providers';
+import { IndicatorRadarComponent } from './indicator-radar';
+@NgModule({
+ imports: [
+
+ ],
+ providers: [ajskommonitorDiagramHelperServiceProvider,ajskommonitorDataExchangeServiceeProvider,ajskommonitorFilterHelperServiceProvider],
+ declarations: [IndicatorRadarComponent],
+ exports: []
+})
+export class IndicatorRadarModule { }
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.ts b/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.ts
new file mode 100644
index 000000000..2c9eda4c1
--- /dev/null
+++ b/app/components/kommonitorUserInterface/kommonitorControls/indicatorRadar/indicator-radar.ts
@@ -0,0 +1,571 @@
+import { Component, OnInit, OnDestroy, ViewChild, ElementRef, Inject,AfterViewInit } from '@angular/core';
+import { Subscription, fromEvent } from 'rxjs';
+import { environment } from 'env_backup';
+import * as echarts from 'echarts';
+import { Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
+import { ajskommonitorDataExchangeServiceeProvider, ajskommonitorDiagramHelperServiceProvider, ajskommonitorFilterHelperServiceProvider } from 'app-upgraded-providers';
+@Component({
+ selector: 'app-indicator-radar',
+ templateUrl: 'indicator-radar.template.html',
+ providers:[ajskommonitorDataExchangeServiceeProvider,ajskommonitorDiagramHelperServiceProvider,ajskommonitorFilterHelperServiceProvider]
+})
+export class IndicatorRadarComponent implements OnInit, OnDestroy, AfterViewInit {
+ @ViewChild('radarDiagram', { static: false }) radarDiagram: ElementRef | undefined;
+ private destroy$ = new Subject();
+ setupCompleted = false;
+ private ngUnsubscribe: Subject = new Subject();
+ eventsRegistered=false
+ private resizeSubscription= new Subscription;
+ public activeTab = 0;
+ // public radarChart;
+ radarOption;
+ private DATE_PREFIX = environment.indicatorDatePrefix;
+ public indicatorNameFilter = undefined;
+ private numberOfDecimals = environment.numberOfDecimals;
+ public date='';
+ public spatialUnitName:string | undefined;
+ public indicatorPropertiesForCurrentSpatialUnitAndTime: any[] = [];
+ @ViewChild('radarChart') radarChart: any;
+
+ FEATURE_ID_PROPERTY_NAME = environment.FEATURE_ID_PROPERTY_NAME;
+ defaultSeriesValueArray: any[] = [];
+ resizeTimeout: any;
+
+
+ constructor(
+ @Inject('ajsKommonitorDataExchangeService') private kommonitorDataExchangeService:any,
+ @Inject('ajsKommonitorDiagramHelperService') private kommonitorDiagramHelperService:any,
+ @Inject('ajsKommonitorFilterHelperService') private kommonitorFilterHelperService:any,
+
+ ) {
+
+ }
+
+ ngOnInit() {
+ // Your initialization logic
+ $('.box').boxWidget();
+
+ $(window).on('resize', this.resizeChart.bind(this));
+
+ // subscribe to the "resizeDiagrams" event
+ // assuming that it's a Subject in your service
+ this.kommonitorDiagramHelperService.resizeDiagrams.subscribe(() => {
+ this.resizeTimeout = setTimeout(this.resizeChart.bind(this), 350);
+ });
+
+ this.kommonitorDiagramHelperService.allIndicatorPropertiesForCurrentSpatialUnitAndTimeSetupBegin$
+ .pipe(takeUntil(this.destroy$))
+ .subscribe(async () => {
+ await this.wait(130);
+ this.setupCompleted = false;
+ setTimeout(() => this.filterDisplayedIndicatorsOnRadar(), 500);
+ });
+
+ this.kommonitorDiagramHelperService.allIndicatorPropertiesForCurrentSpatialUnitAndTimeSetupCompleted$
+ .pipe(takeUntil(this.destroy$))
+ .subscribe(async () => {
+ await this.wait(130);
+ this.setupCompleted = true;
+ setTimeout(() => this.filterDisplayedIndicatorsOnRadar(), 500);
+ });
+
+
+ }
+ resizeChart() {
+ if (this.radarChart) {
+ this.radarChart.resize();
+ }
+ }
+
+ ngAfterViewInit() {
+ this.resizeSubscription = fromEvent(window, 'resize').subscribe(e => {
+ if (this.radarChart) {
+ this.radarChart.resize();
+ }
+ });
+ }
+
+
+ ngOnDestroy() {
+ this.resizeSubscription.unsubscribe();
+ this.destroy$.next();
+ this.destroy$.complete();
+ $(window).off('resize', this.resizeChart.bind(this));
+ if (this.resizeTimeout) {
+ clearTimeout(this.resizeTimeout);
+ }
+ }
+
+ onChangeFilterSameUnitAndSameTime() {
+ if (this.radarChart && this.radarDiagram && this.radarDiagram.nativeElement) {
+ this.radarChart.dispose();
+ this.radarChart = echarts.init(this.radarDiagram.nativeElement);
+ }
+
+ this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime = [];
+ this.kommonitorDiagramHelperService.setupIndicatorPropertiesForCurrentSpatialUnitAndTime(this.kommonitorDiagramHelperService.filterSameUnitAndSameTime);
+ }
+
+ updateDiagrams(event, indicatorMetadataAndGeoJSON, spatialUnitName, spatialUnitId, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, justRestyling) {
+ if (justRestyling) {
+ return;
+ }
+ console.log("updating radar diagram");
+ this.setupCompleted = false;
+ this.updateRadarChart(indicatorMetadataAndGeoJSON, spatialUnitName, spatialUnitId, date);
+ // this.preserveHighlightedFeatures.emit();
+ }
+
+ async updateRadarChart(indicatorMetadataAndGeoJSON: any, spatialUnitName: string, spatialUnitId: string, date: any) {
+ this.date = date;
+ this.spatialUnitName = spatialUnitName;
+
+ if (!this.radarChart) {
+ this.radarChart = echarts.init(document.getElementById('radarDiagram'));
+ } else {
+ this.radarChart.dispose();
+ this.radarChart = echarts.init(document.getElementById('radarDiagram'));
+ this.indicatorPropertiesForCurrentSpatialUnitAndTime = [];
+ }
+
+ await this.radarChart.showLoading();
+ this.kommonitorDiagramHelperService.setupIndicatorPropertiesForCurrentSpatialUnitAndTime();
+
+ this.activeTab = 0;
+
+ if (this.kommonitorDataExchangeService.selectedIndicator.creationType === 'COMPUTATION') {
+ this.activeTab = 1;
+ }
+
+ if (this.kommonitorDataExchangeService.selectedIndicator.isHeadlineIndicator) {
+ this.activeTab = 2;
+ }
+
+ this.modifyRadarContent(this.indicatorPropertiesForCurrentSpatialUnitAndTime);
+ }
+
+ private wait(ms: number): Promise {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
+ onChangeSelectedDate(input: any): void {
+ if (input.isSelected) {
+ this.modifyRadarContent(this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
+ }
+ }
+ appendSelectedFeaturesIfNecessary(sampleProperties: any[]) { // adjust the type of sampleProperties
+ for (const propertiesInstance of sampleProperties) {
+ if (this.kommonitorFilterHelperService.featureIsCurrentlySelected(propertiesInstance[environment.FEATURE_ID_PROPERTY_NAME])) {
+ this.appendSeriesToRadarChart(propertiesInstance);
+ }
+ }
+ }
+ async modifyRadarContent(indicatorsForRadar: any[]): Promise {
+ const indicatorArrayForRadarChart:any[] = [];
+ const defaultSeriesValueArray: any[] = [];
+ let sampleProperties:any = undefined;
+
+
+ for (let i = 0; i < indicatorsForRadar.length; i++) {
+ if (indicatorsForRadar[i].isSelected) {
+ await this.kommonitorDiagramHelperService.fetchIndicatorPropertiesIfNotExists(i);
+ let indicatorProperties = indicatorsForRadar[i].indicatorProperties;
+ if (this.kommonitorFilterHelperService.completelyRemoveFilteredFeaturesFromDisplay && this.kommonitorFilterHelperService.filteredIndicatorFeatureIds.size > 0) {
+ indicatorProperties = indicatorProperties.filter(featureProperties => !this.kommonitorFilterHelperService.featureIsCurrentlyFiltered(featureProperties[this.FEATURE_ID_PROPERTY_NAME]));
+ }
+ sampleProperties = indicatorsForRadar[i].indicatorProperties;
+ const sample = indicatorProperties[0];
+ let maxValue = sample[this.DATE_PREFIX + indicatorsForRadar[i].selectedDate];
+ let minValue = sample[this.DATE_PREFIX + indicatorsForRadar[i].selectedDate];
+ let valueSum = 0;
+
+ for (const indicatorPropertyInstance of indicatorProperties) {
+ if (!this.kommonitorDataExchangeService.indicatorValueIsNoData(indicatorPropertyInstance[this.DATE_PREFIX + indicatorsForRadar[i].selectedDate])) {
+ const value = this.kommonitorDataExchangeService.getIndicatorValueFromArray_asNumber(indicatorPropertyInstance, indicatorsForRadar[i].selectedDate);
+ valueSum += value;
+ if (value > maxValue)
+ maxValue = value;
+ if (value < minValue)
+ minValue = value;
+ }
+ }
+ if (minValue == null) {
+ minValue = 0;
+ }
+ if (maxValue == null) {
+ maxValue = 1;
+ }
+ let object = {
+ name: indicatorsForRadar[i].indicatorMetadata.indicatorName + " - " + indicatorsForRadar[i].selectedDate,
+ unit: indicatorsForRadar[i].indicatorMetadata.unit,
+ max:maxValue,
+ min: minValue
+ };
+ indicatorArrayForRadarChart.push(object);
+ defaultSeriesValueArray.push(this.kommonitorDataExchangeService.getIndicatorValue_asNumber(Number(valueSum / indicatorProperties.length)));
+ }
+ };//end of for loop
+ if (this.defaultSeriesValueArray.length === 0) {
+ this.disposeRadarChart();
+ }
+ else
+ {
+ if (!this.radarChart) {
+ this.radarChart = echarts.init(document.getElementById('radarDiagram'));
+ }
+ this.radarOption = {
+ grid: {
+ left: '4%',
+ top: 0,
+ right: '4%',
+ bottom: 30,
+ containLabel: true
+ },
+ title: {
+ text: 'Indikatorenradar - ' + this.spatialUnitName + ' - ' + this.date,
+ left: 'center',
+ top: 0,
+ show: false
+ },
+ tooltip: {
+ confine: 'true',
+ formatter: (params) => {
+ let string = "" + params.name + " ";
+ for (let index = 0; index < params.value.length; index++) {
+ string += this.radarOption.radar.indicator[index].name + ": " + this.kommonitorDataExchangeService.getIndicatorValue_asFormattedText(params.value[index]) + " [" + this.radarOption.radar.indicator[index].unit + "] ";
+ }
+ return string;
+ }
+ },
+ toolbox :{
+ show: true,
+ right: '15',
+ feature: {
+ dataView: {
+ show: this.kommonitorDataExchangeService.showDiagramExportButtons,
+ readOnly: true,
+ title: "Datenansicht",
+ lang: ['Datenansicht - Indikatorenradar', 'schließen', 'refresh'],
+ optionToContent: (opt: any) => {
+ let radarSeries = opt.series[0].data;
+ let indicators = opt.radar[0].indicator;
+ let dataTableId = "radarDataTable";
+ let tableExportName = opt.title[0].text;
+ let htmlString = '';
+ htmlString += "";
+ htmlString += "";
+ htmlString += "Feature-Name ";
+ for (let i = 0; i < indicators.length; i++) {
+ htmlString += "" + indicators[i].name + " [" + indicators[i].unit + "] ";
+ }
+ htmlString += " ";
+ htmlString += " ";
+ htmlString += "";
+ for (let j = 0; j < radarSeries.length; j++) {
+ htmlString += "";
+ htmlString += "" + radarSeries[j].name + " ";
+ for (let k = 0; k < indicators.length; k++) {
+ htmlString += "" + this.kommonitorDataExchangeService.getIndicatorValue_asNumber(radarSeries[j].value[k]) + " ";
+ }
+ htmlString += " ";
+ }
+ htmlString += " ";
+ htmlString += "
";
+ // Broadcast event to append export buttons for table
+ // $rootScope.$broadcast("AppendExportButtonsForTable", dataTableId, tableExportName);
+ return htmlString;
+ }
+ },
+ restore: { show: false, title: "Darstellung erneuern" },
+ saveAsImage: { show: true, title: "Export", pixelRatio: 4 }
+ }
+ },
+
+ legend : {
+ type: "scroll",
+ bottom: 0,
+ align: 'left',
+ left: 5,
+ data: ['Arithmetisches Mittel']
+ },
+
+ radar : {
+ name: {
+ formatter: (value: any, indicator: any) => {
+ return this.kommonitorDataExchangeService.formatIndicatorNameForLabel(value, 15);
+ },
+ textStyle: {
+ color: '#525252'
+ },
+ fontSize: 11
+ },
+ indicator: [] // indicatorArrayForRadarChart
+ },
+ series:[{
+ name: 'Indikatorvergleich',
+ type: 'radar',
+ symbolSize: 8,
+ data: [
+ {
+ value: this.defaultSeriesValueArray,
+ name: 'Arithmetisches Mittel',
+ lineStyle: {
+ color: 'gray',
+ type: 'dashed',
+ width: 3
+ },
+ itemStyle: {
+ borderWidth: 2,
+ color: 'gray'
+ },
+ emphasis: {
+ lineStyle: {
+ width: 4
+ },
+ itemStyle: {
+ borderType: 'dashed'
+ }
+ }
+ }
+ ]
+ }]
+
+
+
+ // Add other options here
+ }//end of radar options
+ }// end of else
+ this.appendSelectedFeaturesIfNecessary(sampleProperties);
+ this.radarChart.setOption(this.radarChart.nativeElement, this.radarOption); // Assuming you have a method to set the option
+ this.radarChart.hideLoading(this.radarChart.nativeElement); // Assuming you have a method to hide loading
+ setTimeout(() => {
+ this.radarChart.resize(this.radarChart.nativeElement); // Assuming you have a method to resize the chart
+ }, 350);
+ this.registerEventsIfNecessary(); // Assuming you have this method
+
+
+
+ } // endof modifycharater
+
+
+
+ registerEventsIfNecessary() {
+ if (!this.eventsRegistered) {
+ this.radarChart.on('mouseOver', (params: any) => { // adjust the type of params
+ const spatialFeatureName = params.data.name;
+ if (spatialFeatureName) {
+ // broadcast event
+ }
+ });
+
+ this.radarChart.on('mouseOut', (params: any) => { // adjust the type of params
+ const spatialFeatureName = params.data.name;
+ if (spatialFeatureName) {
+ // broadcast event
+ }
+ });
+
+ this.eventsRegistered = true;
+ }
+ }
+
+ updateDiagramsForHoveredFeature(featureProperties: any) { // adjust the type of featureProperties
+ if (!this.radarChart || !this.radarOption || !this.radarOption.legend || !this.radarOption.series) {
+ return;
+ }
+ if (!this.kommonitorFilterHelperService.featureIsCurrentlySelected(featureProperties[environment.FEATURE_ID_PROPERTY_NAME])) {
+ this.appendSeriesToRadarChart(featureProperties);
+ }
+ this.highlightFeatureInRadarChart(featureProperties);
+ }
+
+ appendSeriesToRadarChart(featureProperties: any): void {
+ this.radarOption.legend.data.push(featureProperties[environment.FEATURE_NAME_PROPERTY_NAME]);
+ let valueArray: any[] = [];
+ let featureSeries = {
+ name: featureProperties[environment.FEATURE_NAME_PROPERTY_NAME],
+ value: valueArray,
+ emphasis: {
+ lineStyle: {
+ width: 4,
+ type: 'dotted'
+ }
+ },
+ lineStyle: {
+ width: 3,
+ type: 'solid'
+ },
+ itemStyle: {
+ borderWidth: 2
+ }
+ };
+
+ for (let i = 0; i < this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime.length; i++) {
+ if (this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime[i].isSelected) {
+ let indicatorProperties = this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime[i].indicatorProperties;
+ let date = this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime[i].selectedDate;
+ for (let indicatorPropertyInstance of indicatorProperties) {
+ if (indicatorPropertyInstance[environment.FEATURE_NAME_PROPERTY_NAME] == featureProperties[environment.FEATURE_NAME_PROPERTY_NAME]) {
+ if (!this.kommonitorDataExchangeService.indicatorValueIsNoData(indicatorPropertyInstance[date])) {
+ featureSeries.value.push(this.kommonitorDataExchangeService.getIndicatorValueFromArray_asNumber(indicatorPropertyInstance, date));
+ }
+ else {
+ featureSeries.value.push();
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ this.radarOption.series[0].data.push(featureSeries);
+ this.radarChart.setOption(this.radarOption);
+ setTimeout(() => {
+ this.radarChart.resize();
+ }, 350);
+ this.registerEventsIfNecessary();
+ }
+
+ highlightFeatureInRadarChart(featureProperties: any): void {
+ let dataIndex = this.getSeriesDataIndexByFeatureName(featureProperties[environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (dataIndex > -1) {
+ this.radarChart.dispatchAction({
+ type: 'highlight',
+ seriesIndex: 0,
+ dataIndex: dataIndex
+ });
+ }
+ }
+
+ updateDiagramsForUnhoveredFeature(event: any, featureProperties: any): void {
+ if (!this.radarChart || !this.radarOption || !this.radarOption.legend || !this.radarOption.series) {
+ return;
+ }
+ this.unhighlightFeatureInRadarChart(featureProperties);
+ if (!this.kommonitorFilterHelperService.featureIsCurrentlySelected(featureProperties[environment.FEATURE_ID_PROPERTY_NAME])) {
+ this.removeSeriesFromRadarChart(featureProperties);
+ }
+ }
+
+
+ getSeriesDataIndexByFeatureName(featureName: string): number {
+ for (let index = 0; index < this.radarOption.series[0].data.length; index++) {
+ if (this.radarOption.series[0].data[index].name == featureName)
+ return index;
+ }
+ //return -1 if none was found
+ return -1;
+ }
+
+ removeSeriesFromRadarChart(featureProperties: any): void {
+ // remove feature from legend
+ let legendIndex = this.radarOption.legend.data.indexOf(featureProperties[environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (legendIndex > -1) {
+ this.radarOption.legend.data.splice(legendIndex, 1);
+ }
+ // remove feature data series
+ let dataIndex = this.getSeriesDataIndexByFeatureName(featureProperties[environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (dataIndex > -1) {
+ this.radarOption.series[0].data.splice(dataIndex, 1);
+ }
+ // second parameter tells echarts to not merge options with previous data. hence really remove series from graphic
+ this.radarChart.setOption(this.radarOption, true);
+ setTimeout(() => {
+ this.radarChart.resize();
+ }, 350);
+ this.registerEventsIfNecessary();
+ }
+
+ unhighlightFeatureInRadarChart(featureProperties: any): void {
+ // highlight the corresponding bar diagram item
+ // get series index of series
+ let dataIndex = this.getSeriesDataIndexByFeatureName(featureProperties[environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (dataIndex > -1) {
+ this.radarChart.dispatchAction({
+ type: 'downplay',
+ seriesIndex: 0,
+ dataIndex: dataIndex
+ });
+ }
+ }
+
+ filterDisplayedIndicatorsOnRadar(): void {
+ console.log("Filtering indicator radar");
+ this.modifyRadarContent(this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
+ }
+
+ selectAllIndicatorsForRadar() {
+ for (let indicator of this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime) {
+ indicator.isSelected = true;
+ }
+ this.modifyRadarContent(this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
+}
+
+deselectAllIndicatorsForRadar() {
+ for (let indicator of this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime) {
+ indicator.isSelected = false;
+ }
+ this.modifyRadarContent(this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+ disposeRadarChart() {
+ if (this.radarChart) {
+ this.radarChart.dispose();
+ this.radarChart = undefined;
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+} // class ending of IndicatorRadarComponent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.js b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.js
new file mode 100644
index 000000000..634cc1722
--- /dev/null
+++ b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.js
@@ -0,0 +1,85 @@
+import { __decorate } from "tslib";
+import { Component } from '@angular/core';
+import { environment } from 'env_backup';
+import { kommonitorDataExchangeServiceFactory } from 'app-upgraded-providers';
+export let InfoModalComponent = class InfoModalComponent {
+ constructor(modalService) {
+ this.modalService = modalService;
+ this.isHideGreetings = false;
+ this.tab1 = 'null';
+ this.customGreetingsContact_name = "Test";
+ this.customGreetingsContact_organisation = "Test";
+ this.customGreetingsContact_mail = "Test";
+ this.customGreetingsTextInfoMessage = "Test";
+ this.customGreetingsContact_name = "Test";
+ this.customGreetingsContact_organisation = "Test";
+ this.customGreetingsContact_mail = "Test";
+ this.customGreetingsTextInfoMessage = "Test";
+ }
+ ngOnInit() {
+ this.modalService.startGuidedTour$.subscribe(() => {
+ // Call a method to handle the guided tour event
+ this.callStartGuidedTour();
+ });
+ this.kommonitorDataExchangeServiceInstance = kommonitorDataExchangeServiceFactory;
+ if (!(localStorage.getItem("hideKomMonitorAppGreeting") === "true")) {
+ this.isHideGreetings = false;
+ $('#infoModal').modal('show');
+ }
+ else {
+ this.isHideGreetings = true;
+ $("#changeHideGreetingsInput").prop('checked', true);
+ }
+ const tab1 = document.getElementById("infoModalTab1");
+ if (tab1) {
+ tab1.innerHTML = environment.standardInfoModalTabTitle;
+ tab1.click();
+ tab1.focus();
+ if (environment.enableExtendedInfoModal) {
+ const tab3 = document.getElementById("infoModalTab3");
+ const tab3content = document.getElementById("infoModalTab3Content");
+ if (tab3 && tab3content) {
+ tab3.innerHTML = environment.extendedInfoModalTabTitle;
+ tab3content.innerHTML = environment.extendedInfoModalHTMLMessage;
+ }
+ else {
+ alert("not founde");
+ }
+ }
+ else {
+ console.log("content hasnt be loaded");
+ }
+ }
+ setTimeout(() => {
+ // You might need to use Angular's change detection instead of $digest
+ }, 250);
+ }
+ onChangeHideGreetings() {
+ if (this.isHideGreetings) {
+ localStorage.setItem("hideKomMonitorAppGreeting", "true");
+ }
+ else {
+ localStorage.setItem("hideKomMonitorAppGreeting", "false");
+ }
+ }
+ onToggleHideGreetings() {
+ this.isHideGreetings = !this.isHideGreetings;
+ localStorage.setItem("hideKomMonitorAppGreeting", this.isHideGreetings ? "true" : "false");
+ }
+ callStartGuidedTour() {
+ $('#infoModal').modal('hide');
+ this.modalService.startGuidedTour();
+ }
+ showFeedbackForm() {
+ $('#infoModal').modal('hide');
+ $('#feedbackModal').modal('show');
+ }
+};
+InfoModalComponent = __decorate([
+ Component({
+ selector: 'info-modal',
+ templateUrl: 'info-modal.template.html',
+ styleUrls: ['info-modal.component.css'],
+ })
+], InfoModalComponent);
+//# sourceMappingURL=info-modal.component.js.map
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.js.map b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.js.map
new file mode 100644
index 000000000..70883bd9f
--- /dev/null
+++ b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"info-modal.component.js","sourceRoot":"","sources":["info-modal.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.ts b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.ts
index 03905f2a2..dc26139bb 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.component.ts
@@ -1,25 +1,23 @@
-import { Component, OnInit,AfterViewInit } from '@angular/core';
+import { Component, OnInit,AfterViewInit, Inject } from '@angular/core';
import { environment } from 'env_backup';
-import { kommonitorDataExchangeServiceFactory } from 'app-upgraded-providers';
+import { ajskommonitorDataExchangeServiceeProvider, kommonitorDataExchangeServiceFactory } from 'app-upgraded-providers';
import { ModalService } from 'util/genericServices/modal.service';
import { VersionInfoComponent } from '../versionInfo/version-info.component';
@Component({
selector: 'info-modal',
templateUrl: 'info-modal.template.html',
styleUrls: ['info-modal.component.css'],
-
+ providers:[ModalService,ajskommonitorDataExchangeServiceeProvider]
})
export class InfoModalComponent implements OnInit{
- kommonitorDataExchangeServiceInstance: any;
+
isHideGreetings: boolean = false;
tab1:any='null';
-
-
customGreetingsContact_name = "Test";
customGreetingsContact_organisation = "Test";
customGreetingsContact_mail = "Test";
customGreetingsTextInfoMessage = "Test";
- constructor(private modalService: ModalService) {
+ constructor(private modalService: ModalService,@Inject('ajsKommonitorDataExchangeService') public kommonitorDataExchangeService: any) {
this.customGreetingsContact_name = "Test";
this.customGreetingsContact_organisation = "Test";
this.customGreetingsContact_mail = "Test";
@@ -35,7 +33,7 @@ export class InfoModalComponent implements OnInit{
// Call a method to handle the guided tour event
this.callStartGuidedTour();
});
- this.kommonitorDataExchangeServiceInstance = kommonitorDataExchangeServiceFactory;
+ this.kommonitorDataExchangeService = kommonitorDataExchangeServiceFactory(this.kommonitorDataExchangeService);
if (!(localStorage.getItem("hideKomMonitorAppGreeting") === "true")) {
this.isHideGreetings = false;
@@ -75,11 +73,6 @@ export class InfoModalComponent implements OnInit{
}, 250);
-
-
-
-
-
}
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.js b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.js
new file mode 100644
index 000000000..69738db8d
--- /dev/null
+++ b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.js
@@ -0,0 +1,16 @@
+import { __decorate } from "tslib";
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { InfoModalComponent } from './info-modal.component';
+import { VersionInfoModule } from '../versionInfo/version-info.module';
+export let InfoModalModule = class InfoModalModule {
+};
+InfoModalModule = __decorate([
+ NgModule({
+ declarations: [InfoModalComponent],
+ imports: [CommonModule, VersionInfoModule],
+ exports: [InfoModalComponent],
+ bootstrap: [InfoModalComponent]
+ })
+], InfoModalModule);
+//# sourceMappingURL=info-modal.module.js.map
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.js.map b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.js.map
new file mode 100644
index 000000000..8f295cf72
--- /dev/null
+++ b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"info-modal.module.js","sourceRoot":"","sources":["info-modal.module.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAShE,WAAM,eAAe,GAArB,MAAM,eAAe;CAE3B,CAAA;AAFY,eAAe;IAR3B,QAAQ,CAAC;QACV,YAAY,EAAC,CAAC,kBAAkB,CAAC;QACjC,OAAO,EAAC,CAAC,YAAY,EAAC,iBAAiB,CAAC;QACxC,OAAO,EAAC,CAAC,kBAAkB,CAAC;QAC5B,SAAS,EAAC,CAAC,kBAAkB,CAAC;KAE7B,CAAC;GAEW,eAAe,CAE3B"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.ts b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.ts
index f862dfcd0..50e84e70f 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.module.ts
@@ -2,12 +2,14 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { InfoModalComponent } from './info-modal.component';
import { VersionInfoModule } from '../versionInfo/version-info.module';
+import { ajskommonitorDataExchangeServiceeProvider } from 'app-upgraded-providers';
+
@NgModule({
declarations:[InfoModalComponent],
imports:[CommonModule,VersionInfoModule],
exports:[InfoModalComponent],
-bootstrap:[InfoModalComponent]
-
+bootstrap:[InfoModalComponent],
+providers:[ajskommonitorDataExchangeServiceeProvider]
})
export class InfoModalModule{
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.template.html b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.template.html
index b7396f364..e3f89c3d3 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.template.html
+++ b/app/components/kommonitorUserInterface/kommonitorControls/infoModal/info-modal.template.html
@@ -63,8 +63,8 @@ Wichtige Informationen zu KomMonitor - Version
-->
-
-
+ {{kommonitorDataExchangeService.customGreetingsContact_name}}
+ {{kommonitorDataExchangeService.customGreetingsContact_organisation}}
@@ -91,8 +91,7 @@ Wichtige Informationen zu KomMonitor - Version
-
-
+
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.js b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.js
index f35a8c56a..0cfc75b1d 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.js
@@ -1,363 +1,35 @@
-"use strict";
-angular
- .module('kommonitorDiagrams')
- .component('kommonitorDiagrams', {
- templateUrl: "components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.template.html",
- /*
- * injected with a modules service method that manages
- * enabled tabs
- */
- controller: [
- 'kommonitorDataExchangeService', 'kommonitorDiagramHelperService', 'kommonitorFilterHelperService',
- '$scope', '$rootScope', '__env',
- function kommonitorDiagramsController(kommonitorDataExchangeService, kommonitorDiagramHelperService, kommonitorFilterHelperService, $scope, $rootScope, __env) {
- this.kommonitorDataExchangeServiceInstance = kommonitorDataExchangeService;
- this.kommonitorDiagramHelperServiceInstance = kommonitorDiagramHelperService;
- // initialize any adminLTE box widgets
- $('.box').boxWidget();
- $(window).on('resize', function () {
- if ($scope.histogramChart != null && $scope.histogramChart != undefined) {
- $scope.histogramChart.resize();
- }
- if ($scope.barChart != null && $scope.barChart != undefined) {
- $scope.barChart.resize();
- }
- if ($scope.lineChart != null && $scope.lineChart != undefined) {
- $scope.lineChart.resize();
- }
- });
- $scope.$on("resizeDiagrams", function (event) {
- setTimeout(function () {
- if ($scope.histogramChart != null && $scope.histogramChart != undefined) {
- $scope.histogramChart.resize();
- }
- if ($scope.barChart != null && $scope.barChart != undefined) {
- $scope.barChart.resize();
- }
- if ($scope.lineChart != null && $scope.lineChart != undefined) {
- $scope.lineChart.resize();
- }
- }, 350);
- });
- const INDICATOR_DATE_PREFIX = __env.indicatorDatePrefix;
- const defaultColorForHoveredFeatures = __env.defaultColorForHoveredFeatures;
- const defaultColorForClickedFeatures = __env.defaultColorForClickedFeatures;
- // $scope.userHoveresOverBarItem = false;
- $scope.eventsRegistered = false;
- $scope.isTooManyFeatures = false;
- $scope.histogramCanBeDisplayed = false;
- $scope.spatialUnitName;
- $scope.date;
- var numberOfDecimals = __env.numberOfDecimals;
- var defaultColorForZeroValues = __env.defaultColorForZeroValues;
- var defaultColorForNoDataValues = __env.defaultColorForNoDataValues;
- var defaultColorForFilteredValues = __env.defaultColorForFilteredValues;
- const defaultColorForOutliers_high = __env.defaultColorForOutliers_high;
- const defaultBorderColorForOutliers_high = __env.defaultBorderColorForOutliers_high;
- const defaultFillOpacityForOutliers_high = __env.defaultFillOpacityForOutliers_high;
- const defaultColorForOutliers_low = __env.defaultColorForOutliers_low;
- const defaultBorderColorForOutliers_low = __env.defaultBorderColorForOutliers_low;
- const defaultFillOpacityForOutliers_low = __env.defaultFillOpacityForOutliers_low;
- var compareFeaturesByIndicatorValue = function (featureA, featureB) {
- if (featureA.properties[$scope.indicatorPropertyName] < featureB.properties[$scope.indicatorPropertyName])
- return -1;
- if (featureA.properties[$scope.indicatorPropertyName] > featureB.properties[$scope.indicatorPropertyName])
- return 1;
- return 0;
- };
- var showLoadingIcons = function () {
- if ($scope.histogramChart)
- $scope.histogramChart.showLoading();
- if ($scope.barChart)
- $scope.barChart.showLoading();
- if ($scope.lineChart)
- $scope.lineChart.showLoading();
- };
- $scope.$on("updateDiagrams", function (event, indicatorMetadataAndGeoJSON, spatialUnitName, spatialUnitId, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, justRestyling) {
- // console.log("Updating diagrams!");
- $scope.loadingData = true;
- showLoadingIcons();
- $scope.spatialUnitName = spatialUnitName;
- $scope.date = date;
- kommonitorDiagramHelperService.prepareAllDiagramResources_forCurrentMapIndicator(indicatorMetadataAndGeoJSON, spatialUnitName, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, false);
- // updateHistogramChart();
- updateLineChart();
- updateBarChart();
- $scope.loadingData = false;
- });
- //HISTOGRAM CHART FUNCTION
- var updateHistogramChart = function () {
- $scope.histogramCanBeDisplayed = false;
- if (!$scope.histogramChart)
- $scope.histogramChart = echarts.init(document.getElementById('histogramDiagram'));
- else {
- // explicitly kill and reinstantiate histogram diagram to avoid zombie states on spatial unit change
- $scope.histogramChart.dispose();
- $scope.histogramChart = echarts.init(document.getElementById('histogramDiagram'));
- }
- $scope.histogramOption = kommonitorDiagramHelperService.getHistogramChartOptions();
- $scope.histogramChart.setOption($scope.histogramOption);
- $scope.histogramChart.hideLoading();
- $scope.histogramCanBeDisplayed = true;
- setTimeout(function () {
- $scope.histogramChart.resize();
- }, 350);
- };
- // BAR CHART FUNCTION
- var updateBarChart = function (indicatorMetadataAndGeoJSON, featureNamesArray, indicatorValueBarChartArray) {
- // based on prepared DOM, initialize echarts instance
- $scope.eventsRegistered = false;
- if (!$scope.barChart)
- $scope.barChart = echarts.init(document.getElementById('barDiagram'));
- else {
- // explicitly kill and reinstantiate bar diagram to avoid zombie states on spatial unit change
- $scope.barChart.dispose();
- $scope.barChart = echarts.init(document.getElementById('barDiagram'));
- }
- // use configuration item and data specified to show chart
- $scope.barOption = kommonitorDiagramHelperService.getBarChartOptions();
- $scope.barChart.setOption($scope.barOption);
- $scope.barChart.hideLoading();
- setTimeout(function () {
- $scope.barChart.resize();
- }, 350);
- registerEventsIfNecessary();
- };
- function registerEventsIfNecessary() {
- if (!$scope.eventsRegistered) {
- // when hovering over elements of the chart then highlight them in the map.
- $scope.barChart.on('mouseOver', function (params) {
- // $scope.userHoveresOverBarItem = true;
- var seriesIndex = params.seriesIndex;
- var dataIndex = params.dataIndex;
- // console.log("Series: " + seriesIndex + ", dataIndex: " + dataIndex);
- //
- // var barElement = $scope.barOption.series[seriesIndex].data[dataIndex];
- //
- // console.log(barElement);
- var spatialFeatureName = $scope.barOption.xAxis.data[dataIndex];
- if (spatialFeatureName) {
- // console.log(spatialFeatureName);
- $rootScope.$broadcast("highlightFeatureOnMap", spatialFeatureName);
- }
- });
- $scope.barChart.on('mouseOut', function (params) {
- // $scope.userHoveresOverBarItem = false;
- var seriesIndex = params.seriesIndex;
- var dataIndex = params.dataIndex;
- // console.log("Series: " + seriesIndex + ", dataIndex: " + dataIndex);
- //
- // var barElement = $scope.barOption.series[seriesIndex].data[dataIndex];
- //
- // console.log(barElement);
- var spatialFeatureName = $scope.barOption.xAxis.data[dataIndex];
- // console.log(spatialFeatureName);
- if (spatialFeatureName) {
- $rootScope.$broadcast("unhighlightFeatureOnMap", spatialFeatureName);
- }
- });
- $scope.barChart.on('click', function (params) {
- var seriesIndex = params.seriesIndex;
- var dataIndex = params.dataIndex;
- // console.log("Series: " + seriesIndex + ", dataIndex: " + dataIndex);
- //
- // var barElement = $scope.barOption.series[seriesIndex].data[dataIndex];
- //
- // console.log(barElement);
- var spatialFeatureName = $scope.barOption.xAxis.data[dataIndex];
- // console.log(spatialFeatureName);
- if (spatialFeatureName) {
- $rootScope.$broadcast("switchHighlightFeatureOnMap", spatialFeatureName);
- }
- });
- $scope.eventsRegistered = true;
- }
- }
- ;
- // LINE CHART TIME SERIES FUNCTION
- var updateLineChart = function (indicatorMetadataAndGeoJSON, indicatorTimeSeriesDatesArray, indicatorTimeSeriesAverageArray) {
- // based on prepared DOM, initialize echarts instance
- if (!$scope.lineChart)
- $scope.lineChart = echarts.init(document.getElementById('lineDiagram'));
- else {
- // explicitly kill and reinstantiate line diagram to avoid zombie states on spatial unit change
- $scope.lineChart.dispose();
- $scope.lineChart = echarts.init(document.getElementById('lineDiagram'));
- }
- // use configuration item and data specified to show chart
- $scope.lineOption = kommonitorDiagramHelperService.getLineChartOptions();
- $scope.lineChart.setOption($scope.lineOption);
- $scope.lineChart.hideLoading();
- setTimeout(function () {
- $scope.lineChart.resize();
- }, 350);
- };
- $scope.$on("updateDiagramsForHoveredFeature", function (event, featureProperties) {
- if (!$scope.lineOption.legend.data.includes(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME])) {
- appendSeriesToLineChart(featureProperties);
- }
- highlightFeatureInBarChart(featureProperties);
- highlightFeatureInLineChart(featureProperties);
- });
- var appendSeriesToLineChart = function (featureProperties) {
- // in case of activated balance mode, we must use the properties of kommonitorDataExchangeService.selectedIndicator, to aquire the correct time series item!
- if (kommonitorDataExchangeService.isBalanceChecked) {
- featureProperties = findPropertiesForTimeSeries(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
- }
- // append feature name to legend
- $scope.lineOption.legend.data.push(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
- // create feature data series
- var featureSeries = {};
- featureSeries.name = featureProperties[__env.FEATURE_NAME_PROPERTY_NAME];
- featureSeries.type = 'line';
- featureSeries.data = new Array();
- // for each date create series data entry for feature
- for (var date of $scope.lineOption.xAxis.data) {
- var value;
- if (kommonitorDataExchangeService.indicatorValueIsNoData(featureProperties[INDICATOR_DATE_PREFIX + date])) {
- value = null;
- }
- else {
- value = kommonitorDataExchangeService.getIndicatorValue_asNumber(featureProperties[INDICATOR_DATE_PREFIX + date]);
- }
- featureSeries.data.push(value);
- }
- $scope.lineOption.series.push(featureSeries);
- $scope.lineChart.setOption($scope.lineOption);
- setTimeout(function () {
- $scope.lineChart.resize();
- }, 350);
- };
- var findPropertiesForTimeSeries = function (spatialUnitFeatureName) {
- for (var feature of kommonitorDataExchangeService.selectedIndicator.geoJSON.features) {
- if (feature.properties[__env.FEATURE_NAME_PROPERTY_NAME] == spatialUnitFeatureName) {
- return feature.properties;
- }
- }
- };
- var highlightFeatureInBarChart = function (featureProperties) {
- // highlight the corresponding bar diagram item
- // get index of bar item
- // if($scope.userHoveresOverBarItem){
- // return;
- // }
- var index = -1;
- for (var i = 0; i < $scope.barOption.xAxis.data.length; i++) {
- if ($scope.barOption.xAxis.data[i] === featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]) {
- index = i;
- break;
- }
- }
- if (index > -1) {
- $scope.barChart.dispatchAction({
- type: 'highlight',
- seriesIndex: 0,
- dataIndex: index
- });
- // tooltip
- $scope.barChart.dispatchAction({
- type: 'showTip',
- seriesIndex: 0,
- dataIndex: index
- });
- }
- };
- var highlightFeatureInLineChart = function (featureProperties) {
- // highlight the corresponding bar diagram item
- // get series index of series
- var seriesIndex = getSeriesIndexByFeatureName(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
- if (seriesIndex > -1) {
- $scope.lineChart.dispatchAction({
- type: 'highlight',
- seriesIndex: seriesIndex
- });
- }
- };
- $scope.$on("updateDiagramsForUnhoveredFeature", function (event, featureProperties) {
- if (!kommonitorFilterHelperService.featureIsCurrentlySelected(featureProperties[__env.FEATURE_ID_PROPERTY_NAME])) {
- unhighlightFeatureInLineChart(featureProperties);
- removeSeriesFromLineChart(featureProperties);
- unhighlightFeatureInBarChart(featureProperties);
- }
- });
- var getSeriesIndexByFeatureName = function (featureName) {
- for (var index = 0; index < $scope.lineOption.series.length; index++) {
- if ($scope.lineOption.series[index].name === featureName)
- return index;
- }
- //return -1 if none was found
- return -1;
- };
- var removeSeriesFromLineChart = function (featureProperties) {
- // remove feature from legend
- var legendIndex = $scope.lineOption.legend.data.indexOf(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
- if (legendIndex > -1) {
- $scope.lineOption.legend.data.splice(legendIndex, 1);
- }
- // remove feature data series
- var seriesIndex = getSeriesIndexByFeatureName(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
- if (seriesIndex > -1) {
- $scope.lineOption.series.splice(seriesIndex, 1);
- }
- // second parameter tells echarts to not merge options with previous data. hence really remove series from graphic
- $scope.lineChart.setOption($scope.lineOption, true);
- setTimeout(function () {
- $scope.lineChart.resize();
- }, 350);
- };
- var unhighlightFeatureInBarChart = function (featureProperties) {
- // highlight the corresponding bar diagram item
- // get index of bar item
- var index = -1;
- for (var i = 0; i < $scope.barOption.xAxis.data.length; i++) {
- if ($scope.barOption.xAxis.data[i] === featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]) {
- index = i;
- break;
- }
- }
- if (index > -1) {
- $scope.barChart.dispatchAction({
- type: 'downplay',
- seriesIndex: 0,
- dataIndex: index
- });
- // tooltip
- $scope.barChart.dispatchAction({
- type: 'hideTip',
- seriesIndex: 0,
- dataIndex: index
- });
- }
- };
- var unhighlightFeatureInLineChart = function (featureProperties) {
- // highlight the corresponding bar diagram item
- // get series index of series
- var seriesIndex = getSeriesIndexByFeatureName(featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]);
- if (seriesIndex > -1) {
- $scope.lineChart.dispatchAction({
- type: 'downplay',
- seriesIndex: seriesIndex
- });
- }
- };
- $scope.$on("AppendExportButtonsForTable", function (event, tableId, tableExportName) {
- setTimeout(function () {
- // new TableExport(document.getElementsByTagName("table"), {
- new TableExport(document.getElementById(tableId), {
- headers: true,
- footers: true,
- formats: ['xlsx', 'csv', 'txt'],
- filename: tableExportName,
- bootstrap: true,
- exportButtons: true,
- position: 'top',
- ignoreRows: null,
- ignoreCols: null,
- trimWhitespace: true // (Boolean), remove all leading/trailing newlines, spaces, and tabs from cell text in the exported file(s) (default: false)
- });
- }, 50);
- });
- }
- ]
-});
+import { __decorate } from "tslib";
+import { Component } from '@angular/core';
+import * as echarts from 'echarts'; // Import echarts library
+export let KommonitorDiagramsComponent = class KommonitorDiagramsComponent {
+ constructor() { }
+ ngOnInit() {
+ var chartDom = document.getElementById('main-diag');
+ var myChart = echarts.init(chartDom);
+ var option;
+ option = {
+ xAxis: {
+ type: 'category',
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+ },
+ yAxis: {
+ type: 'value'
+ },
+ series: [
+ {
+ data: [150, 230, 224, 218, 135, 147, 260],
+ type: 'line'
+ }
+ ]
+ };
+ option && myChart.setOption(option);
+ }
+};
+KommonitorDiagramsComponent = __decorate([
+ Component({
+ selector: 'kommonitor-diagrams',
+ templateUrl: 'kommonitor-diagrams.template.html', // Replace with your actual HTML file path
+ // Replace with your actual CSS file path
+ })
+], KommonitorDiagramsComponent);
//# sourceMappingURL=kommonitor-diagrams.component.js.map
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.js.map b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.js.map
index d2ba2e0f5..f6469d732 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.js.map
+++ b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.js.map
@@ -1 +1 @@
-{"version":3,"file":"kommonitor-diagrams.component.js","sourceRoot":"","sources":["kommonitor-diagrams.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"kommonitor-diagrams.component.js","sourceRoot":"","sources":["kommonitor-diagrams.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAmC,MAAM,eAAe,CAAC;AAG3E,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC,CAAC,yBAAyB;AAWtD,WAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEtC,gBAEG,CAAC;IAEJ,QAAQ;QAGV,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC;QACrD,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,MAAqB,CAAC;QAE1B,MAAM,GAAG;YACP,KAAK,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;aACxD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;aACd;YACD,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;oBACzC,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC;QAEF,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAGlC,CAAC;CAKF,CAAA;AArCY,2BAA2B;IALvC,SAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,WAAW,EAAE,mCAAmC,EAAE,0CAA0C;QAC7F,yCAAyC;KACzC,CAAC;GACW,2BAA2B,CAqCvC"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.ts b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.ts
index e69de29bb..6dfca7886 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.component.ts
@@ -0,0 +1,427 @@
+import { Component, OnInit, OnDestroy, HostListener } from '@angular/core';
+import { Subscription } from 'rxjs';
+//import { KommonitorDataExchangeService } from 'your-data-exchange-service-path'; // Replace with your actual service path
+//import { KommonitorDiagramHelperService } from 'your-diagram-helper-service-path'; // Replace with your actual service path
+//import { KommonitorFilterHelperService } from 'your-filter-helper-service-path'; // Replace with your actual service path
+import * as echarts from 'echarts'; // Import echarts library
+
+ import { environment } from 'env_backup';
+@Component({
+ selector: 'kommonitor-diagrams',
+ templateUrl: 'kommonitor-diagrams.template.html', // Replace with your actual HTML file path
+
+})
+export class KommonitorDiagramsComponent implements OnInit{
+ //private subscription: Subscription;
+ private eventsRegistered = false;
+ private isTooManyFeatures = false;
+ private histogramCanBeDisplayed = false;
+ private spatialUnitName: string | undefined;
+ private date: string | undefined;
+ private numberOfDecimals: number | undefined;
+ private defaultColorForZeroValues: string | undefined;
+ private defaultColorForNoDataValues: string | undefined;
+ private defaultColorForFilteredValues: string | undefined;
+ private defaultColorForOutliers_high:string | undefined;
+ private defaultBorderColorForOutliers_high: string | undefined;
+ private defaultFillOpacityForOutliers_high: string | undefined;
+ private defaultColorForOutliers_low: string | undefined;
+ private defaultBorderColorForOutliers_low: string | undefined;
+ private defaultFillOpacityForOutliers_low: string | undefined;
+ private histogramChart: echarts.ECharts | undefined; // Define chart properties
+ private BarChart: echarts.ECharts | undefined; // Define chart properties
+ private lineChart: echarts.ECharts | undefined;
+ histogramOption: any;
+ barOption!: echarts.EChartsOption;
+ appendSeriesToLineChart: any;
+
+ constructor(
+
+ ) {}
+
+ ngOnInit() {
+ // Initialize your component here
+ // this.initializeComponent();
+ }
+/*
+ ngOnDestroy() {
+ // Unsubscribe from any subscriptions if needed
+ if (this.subscription) {
+ this.subscription.unsubscribe();
+ }
+ }
+
+ private initializeComponent() {
+ // Add your component initialization logic here
+ this.numberOfDecimals = environment.numberOfDecimals;
+ this.defaultColorForZeroValues = environment.defaultColorForZeroValues;
+ this.defaultColorForNoDataValues = environment.defaultColorForNoDataValues;
+ this.defaultColorForFilteredValues = environment.defaultColorForFilteredValues;
+ this.defaultColorForOutliers_high = environment.defaultColorForOutliers_high;
+ this.defaultBorderColorForOutliers_high = environment.defaultBorderColorForOutliers_high;
+ this.defaultFillOpacityForOutliers_high = environment.defaultFillOpacityForOutliers_high;
+ this.defaultColorForOutliers_low = environment.defaultColorForOutliers_low;
+ this.defaultBorderColorForOutliers_low = environment.defaultBorderColorForOutliers_low;
+ this.defaultFillOpacityForOutliers_low = environment.defaultFillOpacityForOutliers_low;
+
+
+
+ }
+
+ private compareFeaturesByIndicatorValue(featureA, featureB): number {
+ if (featureA.properties[this.indicatorPropertyName] < featureB.properties[this.indicatorPropertyName])
+ return -1;
+ if (featureA.properties[this.indicatorPropertyName] > featureB.properties[this.indicatorPropertyName])
+ return 1;
+ return 0;
+ }
+
+ private showLoadingIcons(): void {
+ if (this.histogramChart) {
+ this.histogramChart.showLoading();
+ }
+ if (this.barChart) {
+ this.barChart.showLoading();
+ }
+ if (this.lineChart) {
+ this.lineChart.showLoading();
+ }
+ }
+
+ // Handle window resize event and trigger chart resizes
+ @HostListener('window:resize', ['$event'])
+ onResize(event: Event): void {
+ if (this.histogramChart) {
+ this.histogramChart.resize();
+ }
+ if (this.barChart) {
+ this.barChart.resize();
+ }
+ if (this.lineChart) {
+ this.lineChart.resize();
+ }
+ }
+
+
+ //HISTOGRAM CHART FUNCTION
+
+private updateHistogramChart(): void {
+ this.histogramCanBeDisplayed = false;
+ if (!this.histogramChart) {
+ this.histogramChart = echarts.init(document.getElementById('histogramDiagram'));
+ } else {
+ // explicitly kill and reinstantiate histogram diagram to avoid zombie states on spatial unit change
+ this.histogramChart.dispose();
+ this.histogramChart = echarts.init(document.getElementById('histogramDiagram'));
+ }
+ this.histogramOption = this.kommonitorDiagramHelperService.getHistogramChartOptions();
+ this.histogramChart.setOption(this.histogramOption);
+ this.histogramChart.hideLoading();
+ this.histogramCanBeDisplayed = true;
+ setTimeout(() => {
+ this.kommonitorDiagramHelperService.histogramChart.resize();
+ }, 350);
+ }
+
+// BAR CHART FUNCTION
+// Inside your Angular component class
+private updateBarChart(
+ indicatorMetadataAndGeoJSON: any, // Replace with the appropriate type
+ featureNamesArray: any[], // Replace with the appropriate type
+ indicatorValueBarChartArray: any[] // Replace with the appropriate type
+ ): void {
+ // based on prepared DOM, initialize echarts instance
+ this.eventsRegistered = false;
+ if (!this.barChart) {
+ this.barChart = echarts.init(document.getElementById('barDiagram'));
+ } else {
+ // explicitly kill and reinstantiate bar diagram to avoid zombie states on spatial unit change
+ this.barChart.dispose();
+ this.barChart = echarts.init(document.getElementById('barDiagram'));
+ }
+ // use configuration item and data specified to show chart
+ this.barOption = this.kommonitorDiagramHelperService.getBarChartOptions();
+ this.barChart.setOption(this.barOption);
+ this.barChart.hideLoading();
+ setTimeout(() => {
+ this.barChart.resize();
+ }, 350);
+ this.registerEventsIfNecessary();
+ }
+
+ // registering events if necessary
+private registerEventsIfNecessary(): void {
+ if (!this.eventsRegistered) {
+ // when hovering over elements of the chart then highlight them in the map.
+ this.barChart.on('mouseOver', (params) => {
+ const seriesIndex = params.seriesIndex;
+ const dataIndex = params.dataIndex;
+ const spatialFeatureName = this.barOption.xAxis.data[dataIndex];
+ if (spatialFeatureName) {
+ this.$rootScope.$broadcast("highlightFeatureOnMap", spatialFeatureName);
+ }
+ });
+
+ this.barChart.on('mouseOut', (params) => {
+ const seriesIndex = params.seriesIndex;
+ const dataIndex = params.dataIndex;
+ const spatialFeatureName = this.barOption.xAxis.data[dataIndex];
+ if (spatialFeatureName) {
+ this.$rootScope.$broadcast("unhighlightFeatureOnMap", spatialFeatureName);
+ }
+ });
+
+ this.barChart.on('click', (params) => {
+ const seriesIndex = params.seriesIndex;
+ const dataIndex = params.dataIndex;
+ const spatialFeatureName = this.barOption.xAxis.data[dataIndex];
+ if (spatialFeatureName) {
+ this.$rootScope.$broadcast("switchHighlightFeatureOnMap", spatialFeatureName);
+ }
+ });
+
+ this.eventsRegistered = true;
+ }
+ }
+
+ // Inside your Angular component class
+private updateLineChart(
+ indicatorMetadataAndGeoJSON: any, // Replace with the appropriate type
+ indicatorTimeSeriesDatesArray: any[], // Replace with the appropriate type
+ indicatorTimeSeriesAverageArray: any[] // Replace with the appropriate type
+ ): void {
+ // based on prepared DOM, initialize echarts instance
+ if (!this.lineChart) {
+ this.lineChart = echarts.init(document.getElementById('lineDiagram'));
+ } else {
+ // explicitly kill and reinstantiate line diagram to avoid zombie states on spatial unit change
+ this.lineChart.dispose();
+ this.lineChart = echarts.init(document.getElementById('lineDiagram'));
+ }
+ // use configuration item and data specified to show chart
+ this.lineOption = this.kommonitorDiagramHelperService.getLineChartOptions();
+ this.lineChart.setOption(this.lineOption);
+ this.lineChart.hideLoading();
+ setTimeout(() => {
+ this.lineChart.resize();
+ }, 350);
+ }
+
+@HostListener('updateDiagramsForHoveredFeature', ['$event', 'featureProperties'])
+private onUpdateDiagramsForHoveredFeature(event: any, featureProperties: any): void {
+ if (!this.lineOption.legend.data.includes(featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME])) {
+ this.appendSeriesToLineChart(featureProperties);
+ }
+ this.highlightFeatureInBarChart(featureProperties);
+ this.highlightFeatureInLineChart(featureProperties);
+}
+
+
+// Inside your Angular component class
+private appendSeriesToLineChart(featureProperties: any): void {
+ // In case of activated balance mode, we must use the properties of kommonitorDataExchangeService.selectedIndicator to acquire the correct time series item
+ if (this.kommonitorDataExchangeServiceInstance.isBalanceChecked) {
+ featureProperties = this.findPropertiesForTimeSeries(featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ }
+
+ this.lineOption.legend.data.push(featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ // Create feature data series
+ const featureSeries: any = {};
+ featureSeries.name = featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME];
+ featureSeries.type = 'line';
+ featureSeries.data = new Array();
+ // For each date, create a series data entry for the feature
+ for (const date of this.lineOption.xAxis.data) {
+ let value;
+ if (this.kommonitorDataExchangeServiceInstance.indicatorValueIsNoData(featureProperties[this.INDICATOR_DATE_PREFIX + date])) {
+ value = null;
+ } else {
+ value = this.kommonitorDataExchangeServiceInstance.getIndicatorValue_asNumber(featureProperties[this.INDICATOR_DATE_PREFIX + date]);
+ }
+ featureSeries.data.push(value);
+ }
+ this.lineOption.series.push(featureSeries);
+ this.lineChart.setOption(this.lineOption);
+ setTimeout(() => {
+ this.lineChart.resize();
+ }, 350);
+ }
+
+ private findPropertiesForTimeSeries(spatialUnitFeatureName: string): any {
+ for (const feature of this.kommonitorDataExchangeServiceInstance.selectedIndicator.geoJSON.features) {
+ if (feature.properties[this.environment.FEATURE_NAME_PROPERTY_NAME] === spatialUnitFeatureName) {
+ return feature.properties;
+ }
+ }
+ }
+
+ // Inside your Angular component class
+private highlightFeatureInBarChart(featureProperties: any): void {
+ // Highlight the corresponding bar diagram item
+ // Get index of bar item
+ const index = this.barOption.xAxis.data.findIndex(item => item === featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (index > -1) {
+ this.barChart.dispatchAction({
+ type: 'highlight',
+ seriesIndex: 0,
+ dataIndex: index,
+ });
+ // Tooltip
+ this.barChart.dispatchAction({
+ type: 'showTip',
+ seriesIndex: 0,
+ dataIndex: index,
+ });
+ }
+ }
+
+ private highlightFeatureInLineChart(featureProperties: any): void {
+ // Highlight the corresponding bar diagram item
+ // Get series index of series
+ const seriesIndex = this.getSeriesIndexByFeatureName(featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (seriesIndex > -1) {
+ this.lineChart.dispatchAction({
+ type: 'highlight',
+ seriesIndex: seriesIndex,
+ });
+ }
+ }
+
+ private unhighlightFeatureInBarChart(featureProperties: any): void {
+ // Unhighlight the corresponding bar diagram item
+ // Get index of bar item
+ const index = this.barOption.xAxis.data.findIndex(item => item === featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (index > -1) {
+ this.barChart.dispatchAction({
+ type: 'downplay',
+ seriesIndex: 0,
+ dataIndex: index,
+ });
+ // Tooltip
+ this.barChart.dispatchAction({
+ type: 'hideTip',
+ seriesIndex: 0,
+ dataIndex: index,
+ });
+ }
+ }
+
+ private unhighlightFeatureInLineChart(featureProperties: any): void {
+ // Unhighlight the corresponding bar diagram item
+ // Get series index of series
+ const seriesIndex = this.getSeriesIndexByFeatureName(featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (seriesIndex > -1) {
+ this.lineChart.dispatchAction({
+ type: 'downplay',
+ seriesIndex: seriesIndex,
+ });
+ }
+ }
+
+ private getSeriesIndexByFeatureName(featureName: string): number {
+ for (let index = 0; index < this.lineOption.series.length; index++) {
+ if (this.lineOption.series[index].name === featureName) {
+ return index;
+ }
+ }
+ // Return -1 if none was found
+ return -1;
+ }
+ // Inside your Angular component class
+private removeSeriesFromLineChart(featureProperties: any): void {
+ // Remove feature from legend
+ const legendIndex = this.lineOption.legend.data.indexOf(featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (legendIndex > -1) {
+ this.lineOption.legend.data.splice(legendIndex, 1);
+ }
+ // Remove feature data series
+ const seriesIndex = this.getSeriesIndexByFeatureName(featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (seriesIndex > -1) {
+ this.lineOption.series.splice(seriesIndex, 1);
+ }
+ // Second parameter tells echarts to not merge options with previous data, hence really remove series from graphic
+ this.lineChart.setOption(this.lineOption, true);
+ setTimeout(() => {
+ this.lineChart.resize();
+ }, 350);
+ }
+
+ private unhighlightFeatureInBarChart(featureProperties: any): void {
+ // Unhighlight the corresponding bar diagram item
+ // Get index of bar item
+ const index = this.barOption.xAxis.data.findIndex(item => item === featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (index > -1) {
+ this.barChart.dispatchAction({
+ type: 'downplay',
+ seriesIndex: 0,
+ dataIndex: index,
+ });
+ // Tooltip
+ this.barChart.dispatchAction({
+ type: 'hideTip',
+ seriesIndex: 0,
+ dataIndex: index,
+ });
+ }
+ }
+
+ private unhighlightFeatureInLineChart(featureProperties: any): void {
+ // Unhighlight the corresponding bar diagram item
+ // Get series index of series
+ const seriesIndex = this.getSeriesIndexByFeatureName(featureProperties[this.environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (seriesIndex > -1) {
+ this.lineChart.dispatchAction({
+ type: 'downplay',
+ seriesIndex: seriesIndex,
+ });
+ }
+ }
+
+
+ // Use @HostListener to listen for the event
+ document: any.addEventListener('AppendExportButtonsForTable', (event: CustomEvent) => {
+ const tableId = event.detail.tableId;
+ const tableExportName = event.detail.tableExportName;
+
+ setTimeout(() => {
+ new TableExport(document.getElementById(tableId), {
+ headers: true,
+ footers: true,
+ formats: ['xlsx', 'csv', 'txt'],
+ filename: tableExportName,
+ bootstrap: true,
+ exportButtons: true,
+ position: 'top',
+ ignoreRows: null,
+ ignoreCols: null,
+ trimWhitespace: true, // (Boolean), remove all leading/trailing newlines, spaces, and tabs from cell text in the exported file(s) (default: false)
+ });
+ }, 50);
+ });
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+*/
+
+
+
+
+ // Define your methods for updating charts, handling events, etc.
+}
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.js b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.js
index b909c5448..f0c2fcfb0 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.js
@@ -1,3 +1,15 @@
-"use strict";
-angular.module('kommonitorDiagrams', ['kommonitorDataExchange', 'kommonitorDiagramHelper']);
+import { __decorate } from "tslib";
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { KommonitorDiagramsComponent } from './kommonitor-diagrams.component';
+export let KommonitorDiagramsModule = class KommonitorDiagramsModule {
+};
+KommonitorDiagramsModule = __decorate([
+ NgModule({
+ declarations: [KommonitorDiagramsComponent],
+ imports: [CommonModule],
+ providers: [],
+ bootstrap: [KommonitorDiagramsComponent]
+ })
+], KommonitorDiagramsModule);
//# sourceMappingURL=kommonitor-diagrams.module.js.map
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.js.map b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.js.map
index a940e2e05..319105315 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.js.map
+++ b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.js.map
@@ -1 +1 @@
-{"version":3,"file":"kommonitor-diagrams.module.js","sourceRoot":"","sources":["kommonitor-diagrams.module.ts"],"names":[],"mappings":";AAAA,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAE,wBAAwB,EAAE,yBAAyB,CAAC,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"kommonitor-diagrams.module.js","sourceRoot":"","sources":["kommonitor-diagrams.module.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAOvE,WAAM,wBAAwB,GAA9B,MAAM,wBAAwB;CAAG,CAAA;AAA3B,wBAAwB;IANpC,QAAQ,CAAC;QACV,YAAY,EAAC,CAAC,2BAA2B,CAAC;QAC1C,OAAO,EAAC,CAAC,YAAY,CAAC;QACtB,SAAS,EAAC,EAAE;QACZ,SAAS,EAAC,CAAC,2BAA2B,CAAC;KACtC,CAAC;GACW,wBAAwB,CAAG"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.ts b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.ts
index d6ac2f2e5..74c0ed1ee 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.module.ts
@@ -1,9 +1,12 @@
import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
import { kommonitorDataExchangeServiceFactory } from 'app-upgraded-providers';
import { kommonitorDiagramHelperServiceFactory } from 'app-upgraded-providers';
-
+import { KommonitorDiagramsComponent } from './kommonitor-diagrams.component';
@NgModule({
declarations:[],
-providers:[]
+imports:[CommonModule],
+providers:[],
+bootstrap:[]
})
export class KommonitorDiagramsModule {}
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.template.html b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.template.html
index e2d5e7c54..182fb2acd 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.template.html
+++ b/app/components/kommonitorUserInterface/kommonitorControls/kommonitorDiagrams/kommonitor-diagrams.template.html
@@ -60,3 +60,6 @@
Feature-Vergleich - {{spatialUn
+
+
+
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component.js b/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component.js
index 7660a9257..db3973490 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component.js
@@ -76,6 +76,8 @@ angular
};
};
var wait = ms => new Promise((r, j) => setTimeout(r, ms));
+
+
$scope.$on("allIndicatorPropertiesForCurrentSpatialUnitAndTime setup begin", async function (event) {
await wait(130);
$scope.setupCompleted = false;
@@ -91,6 +93,7 @@ angular
$scope.onChangeSelectedIndicators();
}, 500);
});
+
$scope.onChangeSelectedDate = function (input) {
$scope.onChangeSelectedIndicators();
};
@@ -151,6 +154,7 @@ angular
$scope.onChangeSelectedIndicators();
}, 500);
});
+
$scope.$on("updateDiagramsForHoveredFeature", function (event, featureProperties) {
if (!$scope.regressionChart) {
return;
@@ -179,6 +183,7 @@ angular
});
}
});
+
$scope.$on("updateDiagramsForUnhoveredFeature", function (event, featureProperties) {
if (!$scope.regressionChart) {
return;
@@ -207,6 +212,8 @@ angular
}
}
});
+
+
$scope.getAllIndicatorPropertiesSortedBySpatialUnitFeatureName = function () {
for (var i = 0; i < kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime.length; i++) {
// make object to hold indicatorName, max value and average value
@@ -226,6 +233,7 @@ angular
}
return kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime;
};
+
$scope.getPropertiesForIndicatorName = async function (indicatorName) {
for (var [index, indicator] of kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime.entries()) {
if (indicator.indicatorMetadata.indicatorName == indicatorName) {
@@ -247,6 +255,8 @@ angular
}
return color;
};
+
+
function mapRegressionData(indicatorPropertiesArray, timestamp, map, axisValueName) {
for (const indicatorPropertiesEntry of indicatorPropertiesArray) {
let featureName = indicatorPropertiesEntry[__env.FEATURE_NAME_PROPERTY_NAME];
@@ -276,6 +286,8 @@ angular
}
return map;
}
+
+
$scope.buildDataArrayForSelectedIndicators = async function () {
$scope.data = new Array();
$scope.dataWithLabels = new Array();
@@ -287,22 +299,6 @@ angular
}
var timestamp_xAxis = $scope.selection.selectedIndicatorForXAxis.selectedDate;
var timestamp_yAxis = $scope.selection.selectedIndicatorForYAxis.selectedDate;
- /*
- consider several cases
- across data timestamps or whole features might not exist
- --> cope with that and only preserve those result objects that have both timestamp values
- for x and y axis
- */
- // store data in a map to check above prerequesits
- // key = ID,
- // value = regressionObject = {
- // name: featureName,
- // itemStyle: {
- // color: color
- // },
- // xAxisName: indicatorValue_x,
- // yAxisName: indicatorValue_y
- //}
let xAxisName = "xValue";
let yAxisName = "yValue";
let dataCandidateMap = mapRegressionData(indicatorPropertiesArrayForXAxis, timestamp_xAxis, new Map(), xAxisName);
@@ -368,6 +364,7 @@ angular
var answer = step1 / step4;
return Number(+answer.toFixed(2));
}
+ // currently here
$scope.calculatePearsonCorrelation = function (data) {
// data is an array of arrays containing the pairs of [x, y]
var xArray = new Array();
@@ -468,23 +465,7 @@ angular
feature: {
// mark : {show: true},
dataView: { show: kommonitorDataExchangeService.showDiagramExportButtons, readOnly: true, title: "Datenansicht", lang: ['Datenansicht - lineare Regression', 'schließen', 'refresh'], optionToContent: function (opt) {
- //
- //
- //
- // Indikator-Name
- // Beschreibung der Verknüpfung
- //
- //
- //
- //
- // {{indicator.referencedIndicatorName}}
- // {{indicator.referencedIndicatorDescription}}
- //
- //
- //
- // has properties "name" and "value"
- // value: [Number(xAxisDataElement.toFixed(4)), Number(yAxisDataElement.toFixed(4))]
- var scatterSeries = opt.series[0].data;
+ var scatterSeries = opt.series[0].data;
var lineSeries = opt.series[1].data;
var dataTableId = "regressionDataTable";
var tableExportName = opt.title[0].text + " - Scatter Table";
@@ -586,7 +567,9 @@ angular
}]
}
}]
- };
+ }; //regressiojoptions
+
+
$scope.regressionChart.setOption($scope.regressionOption);
await $scope.regressionChart.hideLoading();
setTimeout(function () {
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component.ts b/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component.ts
index 7418e3107..6bd4540f0 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.component.ts
@@ -1,774 +1,679 @@
-angular
- .module('regressionDiagram')
- .component(
- 'regressionDiagram',
- {
- templateUrl : "components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.template.html",
-
- controller : [
- 'kommonitorDataExchangeService', 'kommonitorDiagramHelperService', 'kommonitorFilterHelperService', '$scope', '$rootScope', '$http', '__env', '$timeout',
- function indicatorRadarController(
- kommonitorDataExchangeService, kommonitorDiagramHelperService, kommonitorFilterHelperService, $scope, $rootScope, $http, __env, $timeout) {
- /*
- * reference to kommonitorDataExchangeService instances
- */
- this.kommonitorDataExchangeServiceInstance = kommonitorDataExchangeService;
- this.kommonitorDiagramHelperServiceInstance = kommonitorDiagramHelperService;
-
- var self = this;
-
- $scope.activeTab = 0;
-
- // initialize any adminLTE box widgets
- $('.box').boxWidget();
-
- $(window).on('resize', function(){
- if($scope.regressionChart != null && $scope.regressionChart != undefined){
- $scope.regressionChart.resize();
- }
- });
-
- $scope.$on("resizeDiagrams", function (event) {
-
- setTimeout(function(){
- if($scope.regressionChart != null && $scope.regressionChart != undefined){
- $scope.regressionChart.resize();
- }
- }, 350);
- });
-
- $scope.selection = {};
- $scope.selection.indicatorNameFilterForXAxis = undefined;
- $scope.selection.indicatorNameFilterForYAxis = undefined;
-
- const DATE_PREFIX = __env.indicatorDatePrefix;
- var numberOfDecimals = __env.numberOfDecimals;
- const defaultColorForFilteredValues = __env.defaultColorForFilteredValues;
- const defaultColorForZeroValues = __env.defaultColorForZeroValues;
- const defaultColorForNoDataValues = __env.defaultColorForNoDataValues;
- const defaultColorForHoveredFeatures = __env.defaultColorForHoveredFeatures;
- const defaultColorForClickedFeatures = __env.defaultColorForClickedFeatures;
-
- const defaultColorForOutliers_high = __env.defaultColorForOutliers_high;
- const defaultBorderColorForOutliers_high = __env.defaultBorderColorForOutliers_high;
- const defaultFillOpacityForOutliers_high = __env.defaultFillOpacityForOutliers_high;
- const defaultColorForOutliers_low = __env.defaultColorForOutliers_low;
- const defaultBorderColorForOutliers_low = __env.defaultBorderColorForOutliers_low;
- const defaultFillOpacityForOutliers_low = __env.defaultFillOpacityForOutliers_low;
-
- $scope.setupCompleted = true;
-
- //$scope.allIndicatorProperties;
- $scope.selection.selectedIndicatorForXAxis;
- $scope.selection.selectedIndicatorForXAxis_backup;
- $scope.selection.selectedIndicatorForYAxis;
- $scope.selection.selectedIndicatorForYAxis_backup;
- $scope.correlation;
- $scope.linearRegression;
- $scope.regressionOption;
- $scope.regressionChart;
- $scope.data;
- $scope.dataWithLabels;
- $scope.eventsRegistered = false;
- // $scope.userHoveresOverItem = false;
-
- $scope.sortedIndicatorProps;
- $scope.spatialUnitName;
- $scope.date;
-
- $scope.filterIndicators = function() {
-
- return kommonitorDataExchangeService.filterIndicators();
- };
-
- $scope.filterIndicatorsBySpatialUnitAndDate = function() {
- return async function( item ) {
- //
- // await wait(2000);
-
- if(item.applicableSpatialUnits.some(o => o.spatialUnitName == kommonitorDataExchangeService.selectedSpatialUnit.spatialUnitLevel)){
- return item.applicableDates.includes(kommonitorDataExchangeService.selectedDate);
- }
- else{
- return false;
- }
-
- };
- };
-
- var wait = ms => new Promise((r, j)=>setTimeout(r, ms));
-
- $scope.$on("allIndicatorPropertiesForCurrentSpatialUnitAndTime setup begin", async function (event) {
-
- await wait(130);
- $scope.setupCompleted = false;
-
-
- $timeout(function(){
- $scope.$digest();
- }, 500);
-
- });
-
- $scope.$on("allIndicatorPropertiesForCurrentSpatialUnitAndTime setup completed", async function (event) {
-
- await wait(100);
-
- $timeout(function(){
- $scope.setupCompleted = true;
- $scope.$digest();
- $scope.onChangeSelectedIndicators();
- }, 500);
-
- });
-
- $scope.onChangeSelectedDate = function(input){
- $scope.onChangeSelectedIndicators();
- };
-
- $scope.onChangeFilterSameUnitAndSameTime = function(){
- if($scope.regressionChart){
- $scope.regressionChart.dispose();
- $scope.regressionChart = echarts.init(document.getElementById('regressionDiagram'));
- }
- kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime = [];
-
- kommonitorDiagramHelperService.setupIndicatorPropertiesForCurrentSpatialUnitAndTime(kommonitorDiagramHelperService.filterSameUnitAndSameTime);
- };
-
- $scope.$on("updateDiagrams", function (event, indicatorMetadataAndGeoJSON, spatialUnitName, spatialUnitId, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, justRestyling) {
-
- $scope.correlation = undefined;
- $scope.linearRegression = undefined;
- $scope.regressionOption = undefined;
- $scope.sortedIndicatorProps = undefined;
- $scope.data = undefined;
- $scope.dataWithLabels = undefined;
- $scope.eventsRegistered = false;
- // $scope.userHoveresOverItem = false;
- $scope.indicatorPropertyName = DATE_PREFIX + kommonitorDataExchangeService.selectedDate;
- $scope.spatialUnitName = spatialUnitName;
- $scope.date = date;
- $scope.indicatorMetadataAndGeoJSON = indicatorMetadataAndGeoJSON;
- $scope.defaultBrew = defaultBrew;
- $scope.gtMeasureOfValueBrew = gtMeasureOfValueBrew;
- $scope.ltMeasureOfValueBrew = ltMeasureOfValueBrew;
- $scope.dynamicIncreaseBrew = dynamicIncreaseBrew;
- $scope.dynamicDecreaseBrew = dynamicDecreaseBrew;
- $scope.isMeasureOfValueChecked = isMeasureOfValueChecked;
- $scope.measureOfValue = measureOfValue;
-
- if(justRestyling){
- $scope.onChangeSelectedIndicators();
- }
- else{
- if($scope.regressionChart){
- $scope.regressionChart.dispose();
- $scope.regressionChart = undefined;
- }
-
- $scope.setupCompleted = false;
-
- $scope.selection.selectedIndicatorForXAxis = undefined;
- $scope.selection.selectedIndicatorForYAxis = undefined;
-
- $timeout(function () {
- $("option").each(function (index, element) {
- var text = $(element).text();
- $(element).attr("title", text);
- });
- });
-
- }
-
- $scope.activeTab = 0;
- if(kommonitorDataExchangeService.selectedIndicator.creationType == "COMPUTATION"){
- $scope.activeTab = 1;
- }
- if(kommonitorDataExchangeService.selectedIndicator.isHeadlineIndicator){
- $scope.activeTab = 2;
- }
- $timeout(function(){
- $scope.onChangeSelectedIndicators();
- }, 500);
-
- });
-
- $scope.$on("updateDiagramsForHoveredFeature", function (event, featureProperties) {
-
- if(!$scope.regressionChart){
- return;
- }
-
- // if($scope.userHoveresOverItem){
- // return;
- // }
-
- var index = -1;
- for(var i=0; i<$scope.regressionOption.series[0].data.length; i++){
- if($scope.regressionOption.series[0].data[i].name == featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]){
- index = i;
- break;
- }
- }
-
- if(index > -1){
- $scope.regressionChart.dispatchAction({
- type: 'highlight',
- seriesIndex: 0,
- dataIndex: index
- });
- // tooltip
- $scope.regressionChart.dispatchAction({
- type: 'showTip',
- seriesIndex: 0,
- dataIndex: index
- });
- }
- });
-
- $scope.$on("updateDiagramsForUnhoveredFeature", function (event, featureProperties) {
-
- if(!$scope.regressionChart){
- return;
- }
-
- if(! kommonitorFilterHelperService.featureIsCurrentlySelected(featureProperties[__env.FEATURE_ID_PROPERTY_NAME])){
- // highlight the corresponding bar diagram item
- var index = -1;
- for(var i=0; i<$scope.regressionOption.series[0].data.length; i++){
- if($scope.regressionOption.series[0].data[i].name == featureProperties[__env.FEATURE_NAME_PROPERTY_NAME]){
- index = i;
- break;
- }
- }
-
- if(index > -1){
- $scope.regressionChart.dispatchAction({
- type: 'downplay',
- seriesIndex: 0,
- dataIndex: index
- });
- // tooltip
- $scope.regressionChart.dispatchAction({
- type: 'hideTip',
- seriesIndex: 0,
- dataIndex: index
- });
- }
- }
- });
-
-
-
- $scope.getAllIndicatorPropertiesSortedBySpatialUnitFeatureName = function(){
- for(var i=0; i nameB) {
- return 1;
- }
-
- // names are equal
- return 0;
- });
- }
-
- return kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime;
- };
-
- $scope.getPropertiesForIndicatorName = async function(indicatorName){
- for (var [index, indicator] of kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime.entries()){
- if(indicator.indicatorMetadata.indicatorName == indicatorName){
- await kommonitorDiagramHelperService.fetchIndicatorPropertiesIfNotExists(index);
-
- // var closestApplicableTimestamp = kommonitorDiagramHelperService.findClostestTimestamForTargetDate(indicator, kommonitorDataExchangeService.selectedDate);
- // indicator.closestTimestamp = closestApplicableTimestamp;
-
- return indicator.indicatorProperties;
- }
- }
- };
-
- var getColor = function(featureName){
-
- var color;
-
- for (var index=0; index<$scope.indicatorMetadataAndGeoJSON.geoJSON.features.length; index++){
- var feature = $scope.indicatorMetadataAndGeoJSON.geoJSON.features[index];
- if (feature.properties[__env.FEATURE_NAME_PROPERTY_NAME] == featureName){
- color = kommonitorDiagramHelperService.getColorForFeature(feature, $scope.indicatorMetadataAndGeoJSON, $scope.indicatorPropertyName, $scope.defaultBrew, $scope.gtMeasureOfValueBrew, $scope.ltMeasureOfValueBrew, $scope.dynamicIncreaseBrew, $scope.dynamicDecreaseBrew, $scope.isMeasureOfValueChecked, $scope.measureOfValue);
- break;
- }
- }
-
- return color;
- };
-
- function mapRegressionData(indicatorPropertiesArray, timestamp, map, axisValueName){
-
- for (const indicatorPropertiesEntry of indicatorPropertiesArray) {
- let featureName = indicatorPropertiesEntry[__env.FEATURE_NAME_PROPERTY_NAME];
- let indicatorValue;
-
- if (kommonitorDataExchangeService.indicatorValueIsNoData(indicatorPropertiesEntry[DATE_PREFIX + timestamp])){
- indicatorValue = null;
- }
- else{
- indicatorValue = kommonitorDataExchangeService.getIndicatorValue_asNumber(indicatorPropertiesEntry[DATE_PREFIX + timestamp]);
- }
-
- if(map.has(featureName)){
- let oldObject = map.get(featureName);
- oldObject[axisValueName] = indicatorValue;
- map.set(featureName, oldObject);
- }
- else{
- let color = getColor(featureName);
- let regressionObject = {
- name: featureName,
- itemStyle: {
- color: color
- }
- };
-
- regressionObject[axisValueName] = indicatorValue;
- map.set(featureName, regressionObject);
- }
-
- }
-
- return map;
- }
-
- $scope.buildDataArrayForSelectedIndicators = async function(){
- $scope.data = new Array();
- $scope.dataWithLabels = new Array();
-
- var indicatorPropertiesArrayForXAxis = await $scope.getPropertiesForIndicatorName($scope.selection.selectedIndicatorForXAxis.indicatorMetadata.indicatorName);
- var indicatorPropertiesArrayForYAxis = await $scope.getPropertiesForIndicatorName($scope.selection.selectedIndicatorForYAxis.indicatorMetadata.indicatorName);
-
- if(kommonitorFilterHelperService.completelyRemoveFilteredFeaturesFromDisplay && kommonitorFilterHelperService.filteredIndicatorFeatureIds.size > 0){
- indicatorPropertiesArrayForXAxis = indicatorPropertiesArrayForXAxis.filter(featureProperties => ! kommonitorFilterHelperService.featureIsCurrentlyFiltered(featureProperties[__env.FEATURE_ID_PROPERTY_NAME]));
- indicatorPropertiesArrayForYAxis = indicatorPropertiesArrayForYAxis.filter(featureProperties => ! kommonitorFilterHelperService.featureIsCurrentlyFiltered(featureProperties[__env.FEATURE_ID_PROPERTY_NAME]));
- }
-
-
- var timestamp_xAxis = $scope.selection.selectedIndicatorForXAxis.selectedDate;
- var timestamp_yAxis = $scope.selection.selectedIndicatorForYAxis.selectedDate;
-
- /*
- consider several cases
- across data timestamps or whole features might not exist
- --> cope with that and only preserve those result objects that have both timestamp values
- for x and y axis
- */
-
- // store data in a map to check above prerequesits
- // key = ID,
- // value = regressionObject = {
- // name: featureName,
- // itemStyle: {
- // color: color
- // },
- // xAxisName: indicatorValue_x,
- // yAxisName: indicatorValue_y
- //}
- let xAxisName = "xValue";
- let yAxisName = "yValue";
- let dataCandidateMap = mapRegressionData(indicatorPropertiesArrayForXAxis, timestamp_xAxis, new Map(), xAxisName);
- dataCandidateMap = mapRegressionData(indicatorPropertiesArrayForYAxis, timestamp_yAxis, dataCandidateMap, yAxisName);
-
- // now iterate over map and identify those objects that have both indicator axis values set
- // put those into resulting lists
-
- dataCandidateMap.forEach(function(regressionObject, key, map){
- // $scope.data.push([xAxisDataElement, yAxisDataElement])
- if (regressionObject[xAxisName] && regressionObject[yAxisName]){
- $scope.data.push([regressionObject[xAxisName], regressionObject[yAxisName]]);
-
- regressionObject.value = [regressionObject[xAxisName], regressionObject[yAxisName]];
-
- $scope.dataWithLabels.push(
- regressionObject
- );
- }
- });
-
- return $scope.data;
- };
-
- /*
- * Source: http://stevegardner.net/2012/06/11/javascript-code-to-calculate-the-pearson-correlation-coefficient/
- */
- function getPearsonCorrelation(x, y) {
- var shortestArrayLength = 0;
-
- if(x.length == y.length) {
- shortestArrayLength = x.length;
- } else if(x.length > y.length) {
- shortestArrayLength = y.length;
- console.error('x has more items in it, the last ' + (x.length - shortestArrayLength) + ' item(s) will be ignored');
- } else {
- shortestArrayLength = x.length;
- console.error('y has more items in it, the last ' + (y.length - shortestArrayLength) + ' item(s) will be ignored');
- }
-
- var x_numeric = [];
- var y_numeric = [];
- var xy = [];
- var x2 = [];
- var y2 = [];
-
- for(var i=0; i ";
-
- string += $scope.selection.selectedIndicatorForXAxis.indicatorMetadata.indicatorName + ": " + kommonitorDataExchangeService.getIndicatorValue_asFormattedText(params.value[0]) + " [" + $scope.selection.selectedIndicatorForXAxis.indicatorMetadata.unit + "] ";
- string += $scope.selection.selectedIndicatorForYAxis.indicatorMetadata.indicatorName + ": " + kommonitorDataExchangeService.getIndicatorValue_asFormattedText(params.value[1]) + " [" + $scope.selection.selectedIndicatorForYAxis.indicatorMetadata.unit + "] ";
- return string;
- }
- },
- xAxis: {
- name: kommonitorDataExchangeService.formatIndicatorNameForLabel($scope.selection.selectedIndicatorForXAxis.indicatorMetadata.indicatorName + " - " + $scope.selection.selectedIndicatorForXAxis.selectedDate + " [" + $scope.selection.selectedIndicatorForXAxis.indicatorMetadata.unit + "]", 100),
- nameLocation: 'center',
- nameGap: 22,
- scale: true,
- type: 'value',
- splitLine: {
- lineStyle: {
- type: 'dashed'
- }
- },
- },
- yAxis: {
- name: kommonitorDataExchangeService.formatIndicatorNameForLabel($scope.selection.selectedIndicatorForYAxis.indicatorMetadata.indicatorName + " - " + $scope.selection.selectedIndicatorForYAxis.selectedDate + " [" + $scope.selection.selectedIndicatorForYAxis.indicatorMetadata.unit + "]", 75),
- nameLocation: 'center',
- nameGap: 50,
- type: 'value',
- splitLine: {
- lineStyle: {
- type: 'dashed'
- }
- },
- },
- toolbox: {
- show : true,
- right: '15',
- feature : {
- // mark : {show: true},
- dataView : {show: kommonitorDataExchangeService.showDiagramExportButtons, readOnly: true, title: "Datenansicht", lang: ['Datenansicht - lineare Regression', 'schließen', 'refresh'], optionToContent: function(opt){
-
- //
- //
- //
- // Indikator-Name
- // Beschreibung der Verknüpfung
- //
- //
- //
- //
- // {{indicator.referencedIndicatorName}}
- // {{indicator.referencedIndicatorDescription}}
- //
- //
- //
-
- // has properties "name" and "value"
- // value: [Number(xAxisDataElement.toFixed(4)), Number(yAxisDataElement.toFixed(4))]
- var scatterSeries = opt.series[0].data;
- var lineSeries = opt.series[1].data;
-
- var dataTableId = "regressionDataTable";
- var tableExportName = opt.title[0].text + " - Scatter Table";
-
- var htmlString = "Data View enthält zwei nachstehende Tabellen, die Tabelle des Scatter Plots und die Tabelle der Punkte der Regressionsgeraden.
";
- htmlString += 'Scatter Plot Tabelle ';
- htmlString += '';
- htmlString += "";
- htmlString += "";
- htmlString += "Feature-Name ";
- htmlString += "" + opt.xAxis[0].name + " ";
- htmlString += "" + opt.yAxis[0].name + " ";
-
- htmlString += " ";
- htmlString += " ";
-
- htmlString += "";
-
- for (var j=0; j";
- htmlString += "" + scatterSeries[j].name + " ";
-
- htmlString += "" + kommonitorDataExchangeService.getIndicatorValue_asNumber(scatterSeries[j].value[0]) + " ";
- htmlString += "" + kommonitorDataExchangeService.getIndicatorValue_asNumber(scatterSeries[j].value[1]) + " ";
- htmlString += "";
- }
-
- htmlString += " ";
- htmlString += "
";
-
- var lineTableId = "lineDataTable";
- var lineTableExportName = opt.title[0].text + " - Line Table";
-
- htmlString += "Referenzpunkte der Regressionsgraden '" + $scope.linearRegression.expression + "' ";
-
- htmlString += '';
- htmlString += "";
- htmlString += "";
- htmlString += "X ";
- htmlString += "Y ";
- htmlString += " ";
- htmlString += " ";
-
- htmlString += "";
-
- for (var j=0; j";
- htmlString += "" + kommonitorDataExchangeService.getIndicatorValue_asNumber(lineSeries[j][0]) + " ";
- htmlString += "" + kommonitorDataExchangeService.getIndicatorValue_asNumber(lineSeries[j][1]) + " ";
- htmlString += "";
- }
-
- htmlString += " ";
- htmlString += "
";
-
- $rootScope.$broadcast("AppendExportButtonsForTable", dataTableId, tableExportName);
- $rootScope.$broadcast("AppendExportButtonsForTable", lineTableId, lineTableExportName);
-
- return htmlString;
- }},
- restore : {show: false, title: "Erneuern"},
- saveAsImage : {show: true, title: "Export", pixelRatio: 4}
- }
- },
- series: [{
- name: "scatter",
- type: 'scatter',
- // label: {
- // emphasis: {
- // show: false,
- // position: 'left',
- // textStyle: {
- // color: 'blue',
- // fontSize: 16
- // }
- // }
- // },
- itemStyle: {
- borderWidth: 1,
- borderColor: 'black'
- },
- emphasis: {
- itemStyle: {
- borderWidth: 4,
- borderColor: defaultColorForClickedFeatures
- }
- },
- data: $scope.dataWithLabels
- }, {
- name: 'line',
- type: 'line',
- showSymbol: false,
- data: $scope.linearRegression.points,
- markPoint: {
- itemStyle: {
- normal: {
- color: 'transparent'
- }
- },
- label: {
- normal: {
- show: true,
- position: 'left',
- formatter: $scope.linearRegression.expression,
- textStyle: {
- color: '#333',
- fontSize: 14
- }
- }
- },
- data: [{
- coord: $scope.linearRegression.points[$scope.linearRegression.points.length - 1]
- }]
- }
- }]
- };
-
-
- $scope.regressionChart.setOption($scope.regressionOption);
-
- await $scope.regressionChart.hideLoading();
- setTimeout(function(){
- $scope.regressionChart.resize();
- }, 350);
-
- registerEventsIfNecessary();
-
- $rootScope.$broadcast("preserveHighlightedFeatures");
-
- $timeout(function(){
- $scope.$digest();
- }, 500);
- }
- };
-
- function registerEventsIfNecessary(){
- if(!$scope.eventsRegistered){
- // when hovering over elements of the chart then highlight them in the map.
- $scope.regressionChart.on('mouseOver', function(params){
- // $scope.userHoveresOverItem = true;
- var spatialFeatureName = params.data.name;
- // console.log(spatialFeatureName);
- if(spatialFeatureName){
- $rootScope.$broadcast("highlightFeatureOnMap", spatialFeatureName);
- }
-
- });
-
- $scope.regressionChart.on('mouseOut', function(params){
- // $scope.userHoveresOverItem = false;
-
- var spatialFeatureName = params.data.name;
- // console.log(spatialFeatureName);
- if(spatialFeatureName){
- $rootScope.$broadcast("unhighlightFeatureOnMap", spatialFeatureName);
- }
- });
-
- $scope.regressionChart.on('click', function(params){
- var spatialFeatureName = params.data.name;
- // console.log(spatialFeatureName);
- if(spatialFeatureName){
- $rootScope.$broadcast("switchHighlightFeatureOnMap", spatialFeatureName);
- }
-
- });
-
- $scope.eventsRegistered = true;
- }
- };
-
-
- } ]
- });
+import { Component, OnInit, OnDestroy, Output,ViewChild,ElementRef ,ChangeDetectorRef} from '@angular/core';
+import { EventEmitter,Inject } from '@angular/core';
+import { Subscription ,Subject} from 'rxjs';
+import { ajskommonitorDataExchangeServiceeProvider, ajskommonitorDiagramHelperServiceProvider, ajskommonitorFilterHelperServiceProvider } from 'app-upgraded-providers';
+import { environment } from 'env_backup';
+import { takeUntil } from 'rxjs';
+declare var $: any;
+import * as echarts from 'echarts';
+import * as ecStat from 'echarts-stat';
+
+@Component({
+ selector: 'app-regression-diagram',
+ templateUrl: 'regression-diagram.template.html',
+ providers:[ajskommonitorDataExchangeServiceeProvider,ajskommonitorDiagramHelperServiceProvider,ajskommonitorFilterHelperServiceProvider]
+})
+export class RegressionDiagramComponent implements OnInit, OnDestroy {
+private ngUnsubscribe: Subject = new Subject();
+@Output() appendExportButtonsForTable = new EventEmitter<{ id: string, name: string }>();
+ activeTab = 0;
+ DATE_PREFIX = environment.indicatorDatePrefix;
+ numberOfDecimals = environment.numberOfDecimals;
+ defaultColorForFilteredValues = environment.defaultColorForFilteredValues;
+ defaultColorForZeroValues = environment.defaultColorForZeroValues;
+ defaultColorForNoDataValues = environment.defaultColorForNoDataValues;
+ defaultColorForHoveredFeatures = environment.defaultColorForHoveredFeatures;
+ defaultColorForClickedFeatures = environment.defaultColorForClickedFeatures;
+ defaultColorForOutliers_high = environment.defaultColorForOutliers_high;
+ defaultBorderColorForOutliers_high = environment.defaultBorderColorForOutliers_high;
+ defaultFillOpacityForOutliers_high = environment.defaultFillOpacityForOutliers_high;
+ defaultColorForOutliers_low = environment.defaultColorForOutliers_low;
+ defaultBorderColorForOutliers_low = environment.defaultBorderColorForOutliers_low;
+ defaultFillOpacityForOutliers_low = environment.defaultFillOpacityForOutliers_low;
+ selectedIndicatorForXAxis: any;
+ selectedIndicatorForXAxis_backup: any;
+ selectedIndicatorForYAxis: any;
+ selectedIndicatorForYAxis_backup: any;
+ correlation: any;
+ public linearRegression: any;
+ public regressionOption: any;
+ public regressionChart: any;
+ data: any;
+ dataWithLabels: any;
+ eventsRegistered = false;
+ sortedIndicatorProps: any;
+ spatialUnitName: any;
+ date:string='';
+ @ViewChild('regressionDiagram') regressionDiagram: ElementRef | undefined;
+ @Output() updateDiagrams = new EventEmitter();
+ indicatorPropertyName: string | undefined;
+ indicatorMetadataAndGeoJSON: any;
+ defaultBrew: any;
+ gtMeasureOfValueBrew: any;
+ ltMeasureOfValueBrew: any;
+ dynamicIncreaseBrew: any;
+ dynamicDecreaseBrew: any;
+ isMeasureOfValueChecked: boolean | undefined;
+ measureOfValue: any;
+ setupCompleted = false;
+ selection :any= {
+ selectedIndicatorForXAxis: null,
+ selectedIndicatorForXAxis_backup: null,
+ selectedIndicatorForYAxis: null,
+ selectedIndicatorForYAxis_backup: null
+ };
+ resizeDiagramsSubscription: Subscription=new Subscription();
+ private resizeSubscription: Subscription = new Subscription();
+ toolbox: any;
+ dataTableId: string | undefined;
+ tableExportName: string | undefined;
+ htmlString: string | undefined;
+ scatterSeries: any;
+ lineSeries: any;
+ lineTableId: string | undefined;
+ lineTableExportName: string |undefined
+
+ constructor( private cd:ChangeDetectorRef,
+ @Inject('ajsKommonitorDataExchangeService') private kommonitorDataExchangeService:any,
+ @Inject('ajsKommonitorDiagramHelperService') private kommonitorDiagramHelperService:any,
+ @Inject('ajsKommonitorFilterHelperService') private kommonitorFilterHelperService:any,
+ ) { }
+
+
+ ngOnInit() {
+ this.regressionChart = echarts.init(document.getElementById('regressionDiagram'));
+ $('.box').boxWidget();
+ $(window).on('resize', () => {
+ if (this.regressionChart) {
+ this.regressionChart.resize();
+ }
+ });
+ this.resizeDiagramsSubscription = this.kommonitorDiagramHelperService.resizeDiagrams.subscribe(() => {
+ setTimeout(() => {
+ if (this.regressionChart) {
+ this.regressionChart.resize();
+ }
+ }, 350);
+ });
+ this.kommonitorDataExchangeService.allIndicatorPropertiesForCurrentSpatialUnitAndTimeSetupBegin.subscribe(async () => {
+ await this.wait(130);
+ this.setupCompleted = false;
+ });
+
+ this.kommonitorDataExchangeService.allIndicatorPropertiesForCurrentSpatialUnitAndTimeSetupCompleted.subscribe(async () => {
+ await this.wait(100);
+ this.setupCompleted = true;
+ this.onChangeSelectedIndicators();
+ });
+
+
+
+
+ this.updateDiagrams.subscribe((eventData: any) => {
+ this.resetValues();
+ this.indicatorPropertyName = 'DATE_PREFIX' + this.kommonitorDataExchangeService.selectedDate;
+ this.spatialUnitName = eventData.spatialUnitName;
+ this.date = eventData.date;
+ this.indicatorMetadataAndGeoJSON = eventData.indicatorMetadataAndGeoJSON;
+ this.defaultBrew = eventData.defaultBrew;
+ this.gtMeasureOfValueBrew = eventData.gtMeasureOfValueBrew;
+ this.ltMeasureOfValueBrew = eventData.ltMeasureOfValueBrew;
+ this.dynamicIncreaseBrew = eventData.dynamicIncreaseBrew;
+ this.dynamicDecreaseBrew = eventData.dynamicDecreaseBrew;
+ this.isMeasureOfValueChecked = eventData.isMeasureOfValueChecked;
+ this.measureOfValue = eventData.measureOfValue;
+ if (eventData.justRestyling) {
+ this.onChangeSelectedIndicators();
+ } else {
+ if (this.regressionChart) {
+ this.regressionChart.dispose();
+ this.regressionChart = undefined;
+ }
+ this.setupCompleted = false;
+ this.selection.selectedIndicatorForXAxis = undefined;
+ this.selection.selectedIndicatorForYAxis = undefined;
+
+
+ setTimeout(() => {
+ let options = document.querySelectorAll('option');
+ options.forEach((element) => {
+ let text = element.textContent || '';
+ element.setAttribute("title", text);
+ });
+ }, 0);
+
+ }
+ this.activeTab = 0;
+ if (this.kommonitorDataExchangeService.selectedIndicator.creationType == 'COMPUTATION') {
+ this.activeTab = 1;
+ }
+ if (this.kommonitorDataExchangeService.selectedIndicator.isHeadlineIndicator) {
+ this.activeTab = 2;
+ }
+ setTimeout(() => {
+ this.onChangeSelectedIndicators();
+ }, 500);
+ });
+
+//updatediagramsforhoveredfeature
+ this.kommonitorFilterHelperService.updateDiagramsForHoveredFeature.pipe(takeUntil(this.ngUnsubscribe)).subscribe(featureProperties => {
+ if (!this.regressionChart) {
+ return;
+ }
+ let index = this.regressionOption.series[0].data.findIndex(data => data.name === featureProperties[environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (index > -1) {
+ this.regressionChart.dispatchAction({
+ type: 'highlight',
+ seriesIndex: 0,
+ dataIndex: index
+ });
+ this.regressionChart.dispatchAction({
+ type: 'showTip',
+ seriesIndex: 0,
+ dataIndex: index
+ });
+ }
+ });
+ //updatediagramforunhiveredfeature
+ this.kommonitorFilterHelperService.updateDiagramsForUnhoveredFeature.pipe(takeUntil(this.ngUnsubscribe)).subscribe(featureProperties => {
+ if (!this.regressionChart) {
+ return;
+ }
+ if (!this.kommonitorFilterHelperService.featureIsCurrentlySelected(featureProperties[environment.FEATURE_ID_PROPERTY_NAME])) {
+ let index = this.regressionOption.series[0].data.findIndex(data => data.name === featureProperties[environment.FEATURE_NAME_PROPERTY_NAME]);
+ if (index > -1) {
+ this.regressionChart.dispatchAction({
+ type: 'downplay',
+ seriesIndex: 0,
+ dataIndex: index
+ });
+ this.regressionChart.dispatchAction({
+ type: 'hideTip',
+ seriesIndex: 0,
+ dataIndex: index
+ });
+ }
+ }
+ });
+
+
+
+
+
+ } // closing for thr nginit
+
+ ngOnDestroy() {
+ $(window).off('resize');
+ this.resizeDiagramsSubscription.unsubscribe();
+ this.ngUnsubscribe.next();
+ this.ngUnsubscribe.complete();
+ }
+
+ filterIndicators() {
+ return this.kommonitorDataExchangeService.filterIndicators();
+ }
+
+ async filterIndicatorsBySpatialUnitAndDate(item) {
+ if (item.applicableSpatialUnits.some(o => o.spatialUnitName === this.kommonitorDataExchangeService.selectedSpatialUnit.spatialUnitLevel)) {
+ return item.applicableDates.includes(this.kommonitorDataExchangeService.selectedDate);
+ } else {
+ return false;
+ }
+ }
+
+ wait(ms: number) {
+ return new Promise((resolve) => setTimeout(resolve, ms));
+ }
+
+// this function is gonna be coming in later parts of the code as line number 340
+ onChangeSelectedIndicators():void {
+
+ if (this.selection.selectedIndicatorForXAxis) {
+ this.selection.selectedIndicatorForXAxis_backup = this.selection.selectedIndicatorForXAxis;
+ }
+ else if (this.selection.selectedIndicatorForXAxis_backup) {
+ this.selection.selectedIndicatorForXAxis = this.selection.selectedIndicatorForXAxis_backup;
+ }
+ if (this.selection.selectedIndicatorForYAxis) {
+ this.selection.selectedIndicatorForYAxis_backup = this.selection.selectedIndicatorForYAxis;
+ }
+ else if (this.selection.selectedIndicatorForYAxis_backup) {
+ this.selection.selectedIndicatorForYAxis = this.selection.selectedIndicatorForYAxis_backup;
+ }
+ if (this.selection.selectedIndicatorForXAxis && this.selection.selectedIndicatorForYAxis) {
+ this.eventsRegistered = false;
+ if (!this.regressionChart)
+ this.regressionChart = echarts.init(this.regressionDiagram.nativeElement);
+ else {
+ // explicitly kill and reinstantiate histogram diagram to avoid zombie states on spatial unit change
+ this.regressionChart.dispose();
+ this.regressionChart = echarts.init(this.regressionDiagram.nativeElement);
+ }
+ this.regressionChart.showLoading();
+ // if(!this.sortedIndicatorProps){
+ // this.sortedIndicatorProps = this.getAllIndicatorPropertiesSortedBySpatialUnitFeatureName();
+ // }
+ this.buildDataArrayForSelectedIndicators().then(data => {
+ data.sort(function (a, b) {
+ return a[0] - b[0];
+ });
+ });
+
+ this.correlation = this.calculatePearsonCorrelation(this.data);
+ this.linearRegression = ecStat.regression('linear', this.data,0 );
+ this.regressionOption = {
+ grid: {
+ left: '10%',
+ top: 10,
+ right: '5%',
+ bottom: 55,
+ containLabel: true
+ },
+ title: {
+ text: 'Lineare Regression - ' + this.spatialUnitName + ' - ' + this.date,
+ left: 'center',
+ show: false
+ },
+ tooltip: {
+ trigger: 'item',
+ confine: 'true',
+ axisPointer: {
+ type: 'cross'
+ },
+ formatter: function (params) {
+ if (!(params && params.value && params.value[0] && params.value[1])) {
+ return "";
+ }
+ var string = "" + params.name + " ";
+ string += this.selection.selectedIndicatorForXAxis.indicatorMetadata.indicatorName + ": " + this.kommonitorDataExchangeService.getIndicatorValue_asFormattedText(params.value[0]) + " [" + this.selection.selectedIndicatorForXAxis.indicatorMetadata.unit + "] ";
+ string += this.selection.selectedIndicatorForYAxis.indicatorMetadata.indicatorName + ": " + this.kommonitorDataExchangeService.getIndicatorValue_asFormattedText(params.value[1]) + " [" + this.selection.selectedIndicatorForYAxis.indicatorMetadata.unit + "] ";
+ return string;
+ }
+ },
+
+ xAxis :{
+ name: this.kommonitorDataExchangeService.formatIndicatorNameForLabel(`${this.selection.selectedIndicatorForXAxis.indicatorMetadata.indicatorName} - ${this.selection.selectedIndicatorForXAxis.selectedDate} [${this.selection.selectedIndicatorForXAxis.indicatorMetadata.unit}]`, 100),
+ nameLocation: 'center',
+ nameGap: 22,
+ scale: true,
+ type: 'value',
+ splitLine: {
+ lineStyle: {
+ type: 'dashed'
+ }
+ },
+ },
+
+ yAxis: {
+ name: this.kommonitorDataExchangeService.formatIndicatorNameForLabel(`${this.selection.selectedIndicatorForYAxis.indicatorMetadata.indicatorName} - ${this.selection.selectedIndicatorForYAxis.selectedDate} [${this.selection.selectedIndicatorForYAxis.indicatorMetadata.unit}]`, 75),
+ nameLocation: 'center',
+ nameGap: 50,
+ type: 'value',
+ splitLine: {
+ lineStyle: {
+ type: 'dashed'
+ }
+ },
+ },
+ toolbox : {
+ show: true,
+ right: '15',
+ feature: {
+ dataView: {
+ show: this.kommonitorDataExchangeService.showDiagramExportButtons,
+ readOnly: true,
+ title: "Datenansicht",
+ lang: ['Datenansicht - lineare Regression', 'schließ;en', 'refresh'],
+ optionToContent(opt: any) {
+ let scatterSeries = opt.series[0].data;
+ let lineSeries = opt.series[1].data;
+ let dataTableId = "regressionDataTable";
+ let tableExportName = `${opt.title[0].text} - Scatter Table`;
+ let htmlString = "Data View enthä;lt zwei nachstehende Tabellen, die Tabelle des Scatter Plots und die Tabelle der Punkte der Regressionsgeraden.
";
+ htmlString += 'Scatter Plot Tabelle ';
+ htmlString += ``;
+ htmlString += "";
+ htmlString += "";
+ htmlString += "Feature-Name ";
+ htmlString += `${opt.xAxis[0].name} `;
+ htmlString += `${opt.yAxis[0].name} `;
+ htmlString += " ";
+ htmlString += " ";
+ htmlString += "";
+ for (let j = 0; j < scatterSeries.length; j++) {
+ htmlString += "";
+ htmlString += `${scatterSeries[j].name} `;
+ htmlString += `${this.kommonitorDataExchangeService.getIndicatorValue_asNumber(scatterSeries[j].value[0])} `;
+ htmlString += `${this.kommonitorDataExchangeService.getIndicatorValue_asNumber(scatterSeries[j].value[1])} `;
+ htmlString += " ";
+ }
+ htmlString += " ";
+ htmlString += "
";
+ let lineTableId = "lineDataTable";
+ let lineTableExportName = `${opt.title[0].text} - Line Table`;
+ htmlString += `Referenzpunkte der Regressionsgraden '${this.scope.linearRegression.expression}' `;
+ htmlString += ``;
+ htmlString += "";
+ htmlString += "";
+ htmlString += "X ";
+ htmlString += "Y ";
+ htmlString += " ";
+ htmlString += " ";
+ htmlString += "";
+ for (let j = 0; j < lineSeries.length; j++) {
+ htmlString += "";
+ htmlString += `${this.kommonitorDataExchangeService.getIndicatorValue_asNumber(lineSeries[j][0])} `;
+ htmlString += `${this.kommonitorDataExchangeService.getIndicatorValue_asNumber(lineSeries[j][1])} `;
+ htmlString += " ";
+ }
+ htmlString += " ";
+ htmlString += "
";
+ this.$rootScope.$broadcast("AppendExportButtonsForTable", dataTableId, tableExportName);
+ this.rootScope.$broadcast("AppendExportButtonsForTable", lineTableId, lineTableExportName);
+ return htmlString;
+ }
+
+ },//data view
+ restore: { show: false, title: "Erneuern" },
+ saveAsImage: { show: true, title: "Export", pixelRatio: 4 }
+
+ }
+ },// end of tool tip
+ series: [{
+ name: "scatter",
+ type: 'scatter',
+ itemStyle: {
+ borderWidth: 1,
+ borderColor: 'black'
+ },
+ emphasis: {
+ itemStyle: {
+ borderWidth: 4,
+ borderColor: this.defaultColorForClickedFeatures
+ }
+ },
+ data: this.dataWithLabels
+ }, {
+ name: 'line',
+ type: 'line',
+ showSymbol: false,
+ data: this.linearRegression.points,
+ markPoint: {
+ itemStyle: {
+ normal: {
+ color: 'transparent'
+ }
+ },
+ label: {
+ normal: {
+ show: true,
+ position: 'left',
+ formatter: this.linearRegression.expression,
+ textStyle: {
+ color: '#333',
+ fontSize: 14
+ }
+ }
+ },
+ data: [{
+ coord: this.linearRegression.points[this.linearRegression.points.length - 1]
+ }]
+ }
+ }]
+
+
+
+
+ }//regression options end here
+
+
+
+
+
+
+ }// ifcondition class ends here
+
+
+
+ this.regressionChart.setOption(this.regressionOption);
+ await this.regressionChart.hideLoading();
+ setTimeout(() => {
+ this.regressionChart.resize();
+ }, 350);
+ this.registerEventsIfNecessary();
+ this.rootScope.$broadcast('preserveHighlightedFeatures');
+ setTimeout(() => {
+ this.cd.detectChanges();
+ }, 500);
+
+
+
+
+ }// classfor ending the indicators diagram
+
+ onChangeSelectedDate(input: any): void {
+ this.onChangeSelectedIndicators();
+}
+
+
+
+
+registerEventsIfNecessary(): void {
+ if (!this.eventsRegistered) {
+ // when hovering over elements of the chart then highlight them in the map.
+ this.regressionChart.on('mouseOver', (params: any) => { // define the type of params
+ const spatialFeatureName = params.data.name;
+
+ if (spatialFeatureName) {
+ this.rootScope.$broadcast("highlightFeatureOnMap", spatialFeatureName);
+ }
+ });
+
+ this.regressionChart.on('mouseOut', (params: any) => { // define the type of params
+ const spatialFeatureName = params.data.name;
+
+ if (spatialFeatureName) {
+ this.rootScope.$broadcast("unhighlightFeatureOnMap", spatialFeatureName);
+ }
+ });
+
+ this.regressionChart.on('click', (params: any) => { // define the type of params
+ const spatialFeatureName = params.data.name;
+
+ if (spatialFeatureName) {
+ this.rootScope.$broadcast("switchHighlightFeatureOnMap", spatialFeatureName);
+ }
+ });
+
+ this.eventsRegistered = true;
+ }
+}
+
+
+
+onChangeFilterSameUnitAndSameTime() {
+ if (this.regressionChart) {
+ this.regressionChart.dispose();
+ this.regressionChart = echarts.init(document.getElementById('regressionDiagram'));
+ }
+ this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime = [];
+ this.kommonitorDiagramHelperService.setupIndicatorPropertiesForCurrentSpatialUnitAndTime(this.kommonitorDiagramHelperService.filterSameUnitAndSameTime);
+}
+
+resetValues(): void {
+ this.correlation = undefined;
+ this.linearRegression = undefined;
+ this.regressionOption = undefined;
+ this.sortedIndicatorProps = undefined;
+ this.data = undefined;
+ this.dataWithLabels = undefined;
+ this.eventsRegistered = false;
+}
+
+getAllIndicatorPropertiesSortedBySpatialUnitFeatureName(): any {
+ for (let i = 0; i < this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime.length; i++) {
+ // make object to hold indicatorName, max value and average value
+ this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime[i].indicatorProperties.sort((a, b) => {
+ // a and b are arrays of indicatorProperties for all features of the selected spatialUnit. We sort them by their property "spatialUnitFeatureName"
+ let nameA = a[environment.FEATURE_NAME_PROPERTY_NAME].toUpperCase(); // ignore upper and lowercase
+ let nameB = b[environment.FEATURE_NAME_PROPERTY_NAME].toUpperCase(); // ignore upper and lowercase
+ if (nameA < nameB) {
+ return -1;
+ }
+ if (nameA > nameB) {
+ return 1;
+ }
+ // names are equal
+ return 0;
+ });
+ }
+ return this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime;
+}
+
+async getPropertiesForIndicatorName(indicatorName: string): Promise {
+ for (let [index, indicator] of this.kommonitorDiagramHelperService.indicatorPropertiesForCurrentSpatialUnitAndTime.entries()) {
+ if (indicator.indicatorMetadata.indicatorName === indicatorName) {
+ await this.kommonitorDiagramHelperService.fetchIndicatorPropertiesIfNotExists(index);
+ return indicator.indicatorProperties;
+ }
+ }
+}
+
+getColor(featureName: string): string {
+ let color: string='defaultcolour'
+ for (let index = 0; index < this.indicatorMetadataAndGeoJSON.geoJSON.features.length; index++) {
+ let feature = this.indicatorMetadataAndGeoJSON.geoJSON.features[index];
+ if (feature.properties[environment.FEATURE_NAME_PROPERTY_NAME] === featureName) {
+ color = this.kommonitorDiagramHelperService.getColorForFeature(feature, this.indicatorMetadataAndGeoJSON, this.indicatorPropertyName, this.defaultBrew, this.gtMeasureOfValueBrew, this.ltMeasureOfValueBrew, this.dynamicIncreaseBrew, this.dynamicDecreaseBrew, this.isMeasureOfValueChecked, this.measureOfValue);
+ break;
+ }
+ }
+ return color;
+}
+
+mapRegressionData(indicatorPropertiesArray: any[], timestamp: string, map: Map, axisValueName: string): Map {
+ for (const indicatorPropertiesEntry of indicatorPropertiesArray) {
+ let featureName = indicatorPropertiesEntry[environment.FEATURE_NAME_PROPERTY_NAME];
+ let indicatorValue: number | null;
+ if (this.kommonitorDataExchangeService.indicatorValueIsNoData(indicatorPropertiesEntry[DATE_PREFIX + timestamp])) {
+ indicatorValue = null;
+ }
+ else {
+ indicatorValue = this.kommonitorDataExchangeService.getIndicatorValue_asNumber(indicatorPropertiesEntry[DATE_PREFIX + timestamp]);
+ }
+ if (map.has(featureName)) {
+ let oldObject = map.get(featureName);
+ oldObject[axisValueName] = indicatorValue;
+ map.set(featureName, oldObject);
+ }
+ else {
+ let color = this.getColor(featureName);
+ let regressionObject = {
+ name: featureName,
+ itemStyle: {
+ color: color
+ }
+ };
+ regressionObject[axisValueName] = indicatorValue;
+ map.set(featureName, regressionObject);
+ }
+ }
+ return map;
+}
+
+async buildDataArrayForSelectedIndicators() {
+ this.data = [];
+ this.dataWithLabels = [];
+ let indicatorPropertiesArrayForXAxis = await this.getPropertiesForIndicatorName(this.selection.selectedIndicatorForXAxis.indicatorMetadata.indicatorName);
+ let indicatorPropertiesArrayForYAxis = await this.getPropertiesForIndicatorName(this.selection.selectedIndicatorForYAxis.indicatorMetadata.indicatorName);
+ if (this.kommonitorFilterHelperService.completelyRemoveFilteredFeaturesFromDisplay && this.kommonitorFilterHelperService.filteredIndicatorFeatureIds.size > 0) {
+ indicatorPropertiesArrayForXAxis = indicatorPropertiesArrayForXAxis.filter(featureProperties => !this.kommonitorFilterHelperService.featureIsCurrentlyFiltered(featureProperties[this.environment.FEATURE_ID_PROPERTY_NAME]));
+ indicatorPropertiesArrayForYAxis = indicatorPropertiesArrayForYAxis.filter(featureProperties => !this.kommonitorFilterHelperService.featureIsCurrentlyFiltered(featureProperties[this.environment.FEATURE_ID_PROPERTY_NAME]));
+ }
+ let timestamp_xAxis = this.selection.selectedIndicatorForXAxis.selectedDate;
+ let timestamp_yAxis = this.selection.selectedIndicatorForYAxis.selectedDate;
+ let xAxisName = "xValue";
+ let yAxisName = "yValue";
+ let dataCandidateMap = this.mapRegressionData(indicatorPropertiesArrayForXAxis, timestamp_xAxis, new Map(), xAxisName);
+ dataCandidateMap = this.mapRegressionData(indicatorPropertiesArrayForYAxis, timestamp_yAxis, dataCandidateMap, yAxisName);
+ // now iterate over map and identify those objects that have both indicator axis values set
+ // put those into resulting lists
+ dataCandidateMap.forEach((regressionObject, key) => {
+ // this.data.push([xAxisDataElement, yAxisDataElement])
+ if (regressionObject[xAxisName] && regressionObject[yAxisName]) {
+ this.data.push([regressionObject[xAxisName], regressionObject[yAxisName]]);
+ regressionObject.value = [regressionObject[xAxisName], regressionObject[yAxisName]];
+ this.dataWithLabels.push(regressionObject);
+ }
+ });
+ return this.data;
+}
+getPearsonCorrelation(x: number[], y: number[]): number {
+ let shortestArrayLength = 0;
+ if (x.length === y.length) {
+ shortestArrayLength = x.length;
+ } else if (x.length > y.length) {
+ shortestArrayLength = y.length;
+ console.error(`x has more items in it, the last ${x.length - shortestArrayLength} item(s) will be ignored`);
+ } else {
+ shortestArrayLength = x.length;
+ console.error(`y has more items in it, the last ${y.length - shortestArrayLength} item(s) will be ignored`);
+ }
+
+ const x_numeric: number[] = [];
+ const y_numeric: number[] = [];
+ const xy: number[] = [];
+ const x2: number[] = [];
+ const y2: number[] = [];
+
+ for (let i = 0; i < shortestArrayLength; i++) {
+ if (x[i] && y[i]) {
+ x_numeric.push(x[i]);
+ y_numeric.push(y[i]);
+ xy.push(x[i] * y[i]);
+ x2.push(x[i] * x[i]);
+ y2.push(y[i] * y[i]);
+ }
+ }
+
+ let sum_x = 0;
+ let sum_y = 0;
+ let sum_xy = 0;
+ let sum_x2 = 0;
+ let sum_y2 = 0;
+
+ for (let i = 0; i < x_numeric.length; i++) {
+ sum_x += x_numeric[i];
+ sum_y += y_numeric[i];
+ sum_xy += xy[i];
+ sum_x2 += x2[i];
+ sum_y2 += y2[i];
+ }
+
+ const step1 = (shortestArrayLength * sum_xy) - (sum_x * sum_y);
+ const step2 = (shortestArrayLength * sum_x2) - (sum_x * sum_x);
+ const step3 = (shortestArrayLength * sum_y2) - (sum_y * sum_y);
+ const step4 = Math.sqrt(step2 * step3);
+ const answer = step1 / step4;
+
+ return Number(answer.toFixed(2));
+}
+
+
+calculatePearsonCorrelation(data: [number, number][]): number {
+ const xArray: number[] = [];
+ const yArray: number[] = [];
+
+ data.forEach((xyPair: [number, number]) => {
+ xArray.push(xyPair[0]);
+ yArray.push(xyPair[1]);
+ });
+
+ return this.getPearsonCorrelation(xArray, yArray);
+}
+
+
+
+
+
+} //closing for the class
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.module.ts b/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.module.ts
index 771d2f50a..6f6c9833e 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.module.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/regressionDiagram/regression-diagram.module.ts
@@ -1 +1,11 @@
-angular.module('regressionDiagram', [ 'kommonitorDataExchange', 'kommonitorDiagramHelper']);
+import { NgModule } from '@angular/core';
+import { ajskommonitorDiagramHelperServiceProvider } from 'app-upgraded-providers';
+import { ajskommonitorDataExchangeServiceeProvider } from 'app-upgraded-providers';
+@NgModule({
+ imports: [
+
+ ],
+ declarations: [], // Add your module-level components, directives, or pipes here
+ providers: [ajskommonitorDiagramHelperServiceProvider,ajskommonitorDataExchangeServiceeProvider],
+})
+export class RegressionDiagramModule { }
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reporting-modal.component.js b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reporting-modal.component.js
index 4026c0c17..9f09dbad9 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reporting-modal.component.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reporting-modal.component.js
@@ -6,14 +6,11 @@ angular.module('reportingModal').component('reportingModal', {
$scope.workflowSelected = false;
$scope.templateSelected = false;
$scope.addingNewIndicator = false;
-
//prevent bootrap modals tabs opened by a tag with href elements from adding their anchor location to
// URL
- $("a[href^='#']").click(function(e) {
+ $("a[href^='#']").click(function (e) {
e.preventDefault();
-
- });
-
+ });
let modalDialog = document.querySelector("#reporting-modal .modal-dialog");
$scope.$on('reportingWorkflowSelected', function (event, data) {
// make modal wide
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reporting-modal.component.js.map b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reporting-modal.component.js.map
index e329ed847..01bb929d0 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reporting-modal.component.js.map
+++ b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reporting-modal.component.js.map
@@ -1 +1 @@
-{"version":3,"file":"reporting-modal.component.js","sourceRoot":"","sources":["reporting-modal.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"reporting-modal.component.js","sourceRoot":"","sources":["reporting-modal.component.ts"],"names":[],"mappings":";AAAA,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE;IAC5D,WAAW,EAAG,oGAAoG;IAClH,UAAU,EAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU;QAC3C,SAAS,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ;YAExD,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAElC,sGAAsG;YAChG,MAAM;YACN,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAS,CAAC;gBAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;YAEvB,CAAC,CAAC,CAAC;YAET,IAAI,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;YAE3E,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,UAAS,KAAK,EAAE,IAAI;gBAC3D,kBAAkB;gBAClB,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAEtC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,wBAAwB;gBACxD,2CAA2C;gBAC3C,IAAG,IAAI,EAAE;oBACR,mDAAmD;oBACnD,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC/B,MAAM,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA,CAAC,iBAAiB;iBAChF;qBAAM;oBACN,wCAAwC;oBACxC,MAAM,CAAC,UAAU,CAAC,mCAAmC,CAAC,CAAC;iBACvD;gBAED,kFAAkF;gBAClF,QAAQ,CAAC;oBACR,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,UAAS,KAAK,EAAE,IAAI;gBAC3D,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,iBAAiB;gBACjD,MAAM,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;YAChE,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,uCAAuC,EAAE,UAAS,KAAK,EAAE,IAAI;gBACvE,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,6BAA6B;gBAC/D,2CAA2C;gBAC3C,MAAM,CAAC,UAAU,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAA;YAC/D,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE,UAAS,KAAK,EAAE,IAAI;gBACtE,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,6BAA6B;gBAC/D,2CAA2C;gBAC3C,MAAM,CAAC,UAAU,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAA;YAC9D,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,UAAS,KAAK,EAAE,IAAI;gBACjE,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,qBAAqB;gBACxD,MAAM,CAAC,UAAU,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAA;YACpE,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,UAAS,KAAK,EAAE,IAAI;gBAChE,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,qBAAqB;gBACxD,MAAM,CAAC,UAAU,CAAC,yCAAyC,EAAE,IAAI,CAAC,CAAA;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE;gBAC5C,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,oCAAoC;YACxE,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,yCAAyC,EAAE;gBACrD,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,yCAAyC,EAAE;gBACrD,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAChC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACzC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,cAAc,GAAG,UAAS,MAAM;gBACtC,CAAC,CAAC,qCAAqC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACtD,MAAM,CAAC,UAAU,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;YACrD,CAAC,CAAA;YAED,+DAA+D;YAC/D,oCAAoC;YACpC,kCAAkC;YAClC,iCAAiC;YACjC,mDAAmD;YACnD,KAAK;YACL,4EAA4E;YAC5E,yFAAyF;YAEzF,+CAA+C;YAC/C,mDAAmD;YACnD,KAAK;YAEL,MAAM;YAIN,MAAM,CAAC,uBAAuB,GAAG;gBAChC,QAAQ,CAAE;oBACT,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;wBACzB,MAAM,EAAE,SAAS;wBACjB,cAAc,EAAE,CAAC;wBACjB,QAAQ,EAAE,CAAC,CAAC,iCAAiC,CAAC;wBAC9C,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,OAAO;qBACf,CAAC,CAAC;gBACJ,CAAC,EAAE,GAAG,CAAC,CAAC;YACT,CAAC,CAAA;QACF,CAAC;KACD;CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.component.js b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.component.js
index 29186fbc1..f84145759 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.component.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.component.js
@@ -3,14 +3,11 @@ angular.module('reportingIndicatorAdd').component('reportingIndicatorAdd', {
templateUrl: "components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.template.html",
controller: ['$scope', '$http', '$timeout', '$interval', '__env', 'kommonitorDataExchangeService', 'kommonitorDiagramHelperService', 'kommonitorVisualStyleHelperService',
function ReportingIndicatorAddController($scope, $http, $timeout, $interval, __env, kommonitorDataExchangeService, kommonitorDiagramHelperService, kommonitorVisualStyleHelperService) {
-
//prevent bootrap modals tabs opened by a tag with href elements from adding their anchor location to
- // URL
- $("a[href^='#']").click(function(e) {
- e.preventDefault();
-
- });
-
+ // URL
+ $("a[href^='#']").click(function (e) {
+ e.preventDefault();
+ });
$scope.template = undefined;
$scope.untouchedTemplateAsString = "";
$scope.indicatorNameFilter = "";
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.component.js.map b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.component.js.map
index 2373ecb5d..e5a388f79 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.component.js.map
+++ b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingIndicatorAdd/reporting-indicator-add.component.js.map
@@ -1 +1 @@
-{"version":3,"file":"reporting-indicator-add.component.js","sourceRoot":"","sources":["reporting-indicator-add.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"reporting-indicator-add.component.js","sourceRoot":"","sources":["reporting-indicator-add.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.component.js b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.component.js
index 7796dfcaf..56deb776d 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.component.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.component.js
@@ -3,14 +3,11 @@ angular.module('reportingTemplateSelect').component('reportingTemplateSelect', {
templateUrl: "components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.template.html",
controller: ['$scope', '$rootScope', '__env', '$timeout', 'kommonitorDataExchangeService',
function ReportingTemplateSelectController($scope, $rootScope, __env, $timeout, kommonitorDataExchangeService) {
-
//prevent bootrap modals tabs opened by a tag with href elements from adding their anchor location to
- // URL
- $("a[href^='#']").click(function(e) {
- e.preventDefault();
-
- });
-
+ // URL
+ $("a[href^='#']").click(function (e) {
+ e.preventDefault();
+ });
$scope.generalSettings = {
creator: "M. Mustermann",
commune: "Testkommune",
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.component.js.map b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.component.js.map
index 9309f7112..9275f9414 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.component.js.map
+++ b/app/components/kommonitorUserInterface/kommonitorControls/reportingModal/reportingTemplateSelect/reporting-template-select.component.js.map
@@ -1 +1 @@
-{"version":3,"file":"reporting-template-select.component.js","sourceRoot":"","sources":["reporting-template-select.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"reporting-template-select.component.js","sourceRoot":"","sources":["reporting-template-select.component.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.js b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.js
index 15eed0c58..4594abe7f 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.js
@@ -1,13 +1,23 @@
-"use strict";
-angular.module('versionInfo').component('versionInfo', {
- templateUrl: "components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.template.html",
- controller: [
- 'kommonitorDataExchangeService', '$scope', '$rootScope', '__env', '$timeout',
- function VersionInfoController(kommonitorDataExchangeService, $scope, $rootScope, __env, $timeout) {
- this.kommonitorDataExchangeServiceInstance = kommonitorDataExchangeService;
- // initialize any adminLTE box widgets
- $('.box').boxWidget();
- }
- ]
-});
+import { __decorate } from "tslib";
+import { Component } from '@angular/core';
+export let VersionInfoComponent = class VersionInfoComponent {
+ constructor(
+ // private kommonitorDataExchangeService: KommonitorDataExchangeService
+ ) {
+ this.isCollapsed = false;
+ }
+ ngOnInit() {
+ // Initialize any adminLTE box widgets
+ this.initializeBoxWidget();
+ }
+ initializeBoxWidget() {
+ $('.box').boxWidget();
+ }
+};
+VersionInfoComponent = __decorate([
+ Component({
+ selector: 'version-info',
+ templateUrl: 'version-info.template.html',
+ })
+], VersionInfoComponent);
//# sourceMappingURL=version-info.component.js.map
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.js.map b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.js.map
new file mode 100644
index 000000000..097fc9397
--- /dev/null
+++ b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"version-info.component.js","sourceRoot":"","sources":["version-info.component.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAQ3C,WAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE/B;IACC,uEAAuE;;QAFnE,gBAAW,GAAC,KAAK,CAAC;IAGpB,CAAC;IAEJ,QAAQ;QACN,sCAAsC;QACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;IAEO,mBAAmB;QACzB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;CAEA,CAAA;AAfY,oBAAoB;IAJhC,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,4BAA4B;KAC1C,CAAC;GACW,oBAAoB,CAehC"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.ts b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.ts
index 923d08ca9..83a8e7f28 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.component.ts
@@ -1,25 +1,30 @@
-import { Component, OnInit } from '@angular/core';
-//import { KommonitorDataExchangeService } from '../../../../util/genericServices/kommonitorDataExchangeService' // Update the path accordingly
+import { Component, Inject, OnInit } from '@angular/core';
-declare var $:any;
+import { kommonitorDataExchangeService } from 'util/genericServices/kommonitorDataExchangeService/kommonitor-data-exchange-service.module';
+import { environment } from 'env_backup';
+import { kommonitorBatchUpdateHelperService } from 'util/genericServices/kommonitorBatchUpdateHelperService/kommonitor-batch-update-helper-service.module';
+import { ajskommonitorDataExchangeServiceeProvider} from 'app-upgraded-providers';
@Component({
selector: 'version-info',
templateUrl: 'version-info.template.html',
+ providers:[ajskommonitorDataExchangeServiceeProvider]
})
export class VersionInfoComponent implements OnInit {
public isCollapsed=false;
- constructor(
- // private kommonitorDataExchangeService: KommonitorDataExchangeService
- ) {}
+ constructor(@Inject('kommonitorDataExchangeService') private kommonitorDataExchangeService: any)
+ {
+ }
ngOnInit(): void {
+ this.kommonitorDataExchangeService = kommonitorDataExchangeService;
// Initialize any adminLTE box widgets
this.initializeBoxWidget();
}
private initializeBoxWidget(): void {
- $('.box').boxWidget();
+ ($('.box')).boxWidget();
}
+
}
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.js b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.js
index 0e1ffa5fc..5e95162f3 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.js
+++ b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.js
@@ -1,3 +1,22 @@
-"use strict";
-angular.module('versionInfo', []);
+import { __decorate } from "tslib";
+import { BrowserModule } from '@angular/platform-browser';
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { VersionInfoComponent } from './version-info.component'; // Update the path accordingly
+export let VersionInfoModule = class VersionInfoModule {
+};
+VersionInfoModule = __decorate([
+ NgModule({
+ declarations: [
+ VersionInfoComponent
+ ],
+ imports: [
+ CommonModule, BrowserModule
+ ],
+ exports: [
+ VersionInfoComponent
+ ],
+ bootstrap: [VersionInfoComponent]
+ })
+], VersionInfoModule);
//# sourceMappingURL=version-info.module.js.map
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.js.map b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.js.map
new file mode 100644
index 000000000..5b78daf99
--- /dev/null
+++ b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"version-info.module.js","sourceRoot":"","sources":["version-info.module.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC,CAAA,8BAA8B;AAcvF,WAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAI,CAAA;AAArB,iBAAiB;IAZ7B,QAAQ,CAAC;QACR,YAAY,EAAE;YAChB,oBAAoB;SACjB;QACD,OAAO,EAAE;YACP,YAAY,EAAC,aAAa;SAC3B;QACD,OAAO,EAAE;YACP,oBAAoB;SACrB;QACD,SAAS,EAAC,CAAC,oBAAoB,CAAC;KACjC,CAAC;GACW,iBAAiB,CAAI"}
\ No newline at end of file
diff --git a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.ts b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.ts
index f38db28b2..e9c8c0226 100644
--- a/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.ts
+++ b/app/components/kommonitorUserInterface/kommonitorControls/versionInfo/version-info.module.ts
@@ -2,7 +2,7 @@ import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { VersionInfoComponent } from './version-info.component';// Update the path accordingly
-
+import { ajskommonitorDataExchangeServiceeProvider } from 'app-upgraded-providers';
@NgModule({
declarations: [
VersionInfoComponent
@@ -13,7 +13,8 @@ VersionInfoComponent
exports: [
VersionInfoComponent
],
- bootstrap:[VersionInfoComponent]
+ bootstrap:[VersionInfoComponent],
+ providers:[ajskommonitorDataExchangeServiceeProvider]
})
export class VersionInfoModule { }
diff --git a/app/config/env_backup.js b/app/config/env_backup.js
index 046ce4101..7a23e88ea 100644
--- a/app/config/env_backup.js
+++ b/app/config/env_backup.js
@@ -1,539 +1,56 @@
-"use strict";
-try {
- window.__env = window.__env || {};
- window.__env.appTitle = "KomMonitor (Pilotversion)";
- // a unique prefix for the respective KomMonitor instance
- // it is used to distuingish between various KomMonitor instances in order to write/read data to/from browser cache
- window.__env.localStoragePrefix = "kommonitor-develop";
- // Whether or not to enable debug mode
- // Setting this to false will disable console output
- window.__env.enableDebug = true;
- // enable/disable role based access using keycloak
- window.__env.enableKeycloakSecurity = true;
- // keycloak super admin role name
- window.__env.keycloakKomMonitorAdminRoleName = "kommonitor-creator";
- // enable and show/hide switch to toggle basic and advanced mode
- // this feature can hide certain app elements via ID if in basic mode
- // configure elements in admin page app settings via controls-config file
- window.__env.isAdvancedMode = true; // controls if advanced mode is activated on startup
- window.__env.showAdvancedModeSwitch = true; // controls if toggle switch is at all displayed for toggling basinc/advanced mode
- // encrypted data transfer from Data Management API settings
- window.__env.encryption = {
+export const environment = {
+ production: false,
+ appTitle: "KomMonitor (Pilotversion)",
+ localStoragePrefix: "kommonitor-develop",
+ enableDebug: true,
+ enableKeycloakSecurity: true,
+ keycloakKomMonitorAdminRoleName: "kommonitor-creator",
+ isAdvancedMode: true,
+ showAdvancedModeSwitch: true,
+ encryption: {
enabled: false,
password: "password",
ivLength_byte: 16
- };
+ },
/*
PROPERTIES used within greetings window (infoModal component)
to insert custom LOGO by URL with custom width
and adjust individual information text
as well as contact information
*/
- window.__env.customLogoURL = "data:image/png;base64,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"; // image format allows all types usable within HTML tag
- window.__env.customLogo_onClickURL = "https://www.hochschule-bochum.de/fbg/forschung-und-entwicklung/kommonitor/"; // uses tag to insert clickable link on logo
- window.__env.customLogoWidth = "35px"; // height is fixed to 35px; so adjust your custom width to keep aspect ratio
- window.__env.customGreetingsContact_name = "Christian Danowski-Buhren";
- window.__env.customGreetingsContact_organisation = "Hochschule Bochum, Fachbereich Geodäsie";
- window.__env.customGreetingsContact_mail = "christian.danowski-buhren@hs-bochum.de";
- window.__env.customGreetingsTextInfoMessage = ""; // as HTML; only set if you want to give users some extra hints; if empty will be ignored
+ customLogoURL: "data:image/pngbase64,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::",
+ customLogo_onClickURL: "https://www.hochschule-bochum.de/fbg/forschung-und-entwicklung/kommonitor/",
+ customLogoWidth: "35px",
+ customGreetingsContact_name: "Christian Danowski-Buhren",
+ customGreetingsContact_organisation: "Hochschule Bochum, Fachbereich Geodä,sie",
+ customGreetingsContact_mail: "christian.danowski-buhren@hs-bochum.de",
+ customGreetingsTextInfoMessage: "",
/*
PROPERTIES used within special modal (spatialUnitNotification component)
to show a customizable HTMLText only when user selects a certian spatial unit for any indicator
*/
- window.__env.enableSpatialUnitNotificationSelection = false; // controls if a notification should be shown when selecting certain spatial units
- window.__env.enableSpatialUnitNotificationButton = false; // enables button to manually open spatial unit notification
- window.__env.spatialUnitNotificationSelection = ["Baublockebene"]; // unit(s) for which the notification is shown
- window.__env.spatialUnitNotificationTitle = "Informationsverlust auf kleinräumigen Ebenen (Bau- und Mittelblock)"; // title of the notification window
- window.__env.spatialUnitNotificationMessage = "Alle Daten, die im KomMonitor dargestellt werden, halten die statistische Geheimhaltung ein. Das bedeutet, dass Angaben zu einzelnen Personen nicht offengelegt werden, insbesondere auch, wenn aus aggregierten Werten Rückschlüsse zu Einzelangaben ermöglicht werden. Aus diesem Grund werden Indikatorenwerte, die in einem räumlichen Aggregat eine absolute Fallzahl von < 3 Einwohnern aufweisen, so behandelt, als hätten diese 0 Einwohner.\
- Diese Methode der statistischen Geheimhaltung kann zu einem teilweise hohen Informationsverlust auf kleinräumigen Ebenen führen. Stark differenzierte Indikatoren auf kleinräumigen Ebenen, die insgesamt nur wenige Fallzahlen aufweisen, könnten so an vielen Stellen entsprechend bereinigt worden seien und somit keine validen Werte liefern. \
- Dies lässt sich daran erkennen, dass die Fallzahlen insgesamt niedrig sind und viele Gebiete 0-Werte haben. Eine flächendeckendes Bild ist somit nicht möglich. \
- Dennoch bieten diese Indikatoren trotz ungenauer Wertedie Möglichkeit, „Hot-Spots“ und „Cluster“ der jeweiligen Indikatoren zu ermitteln. \
- Zahlen auf kleinräumige Ebenen sollten vor diesem Hintergrund vorsichtig und sorgfältig interpretiert werden."; // message shown when previous spatial unit is selected
+ enableSpatialUnitNotificationSelection: false,
+ enableSpatialUnitNotificationButton: false,
+ spatialUnitNotificationSelection: ["Baublockebene"],
+ spatialUnitNotificationTitle: "Informationsverlust auf kleinräumigen Ebenen (Bau- und Mittelblock)",
+ spatialUnitNotificationMessage: "Alle Daten, die im KomMonitor dargestellt werden, halten die statistische Geheimhaltung ein. Das bedeutet, dass Angaben zu einzelnen Personen nicht offengelegt werden, insbesondere auch, wenn aus aggregierten Werten Rückschlüsse zu Einzelangaben ermöglicht werden. Aus diesem Grund werden Indikatorenwerte, die in einem räumlichen Aggregat eine absolute Fallzahl von < 3 Einwohnern aufweisen, so behandelt, als hätten diese 0 Einwohner.\
+ Diese Methode der statistischen Geheimhaltung kann zu einem teilweise hohen Informationsverlust auf kleinräumigen Ebenen führen. Stark differenzierte Indikatoren auf kleinräumigen Ebenen, die insgesamt nur wenige Fallzahlen aufweisen, könnten so an vielen Stellen entsprechend bereinigt worden seien und somit keine validen Werte liefern. \
+ Dies lässt sich daran erkennen, dass die Fallzahlen insgesamt niedrig sind und viele Gebiete 0-Werte haben. Eine flächendeckendes Bild ist somit nicht möglich. \
+ Dennoch bieten diese Indikatoren trotz ungenauer Wertedie Möglichkeit, „Hot-Spots“ und „Cluster“ der jeweiligen Indikatoren zu ermitteln. \
+ Zahlen auf kleinräumige Ebenen sollten vor diesem Hintergrund vorsichtig und sorgfältig interpretiert werden.",
/*
PROPERTIES used within extended info modal (second tab) to show a customizable HTMLText
*/
- window.__env.enableExtendedInfoModal = false; // controls if an extra tab should be shown in the info modal.
- window.__env.standardInfoModalTabTitle = "Informationen zu KomMonitor"; // title of the first tab
- window.__env.extendedInfoModalTabTitle = "Weitere Informationen"; // title of the second tab
- window.__env.extendedInfoModalHTMLMessage = ""; // message in the second tab as HTML
+ enableExtendedInfoModal: false,
+ standardInfoModalTabTitle: "Informationen zu KomMonitor",
+ extendedInfoModalTabTitle: "Weitere Informationen",
+ extendedInfoModalHTMLMessage: "",
// property names of feature id and name (relevant for all spatial features) - KomMonitor specific
// DO NOT CHANGE THEM - ONLY IF YOU REALLY KNOW WHAT YOU ARE DOING
- window.__env.FEATURE_ID_PROPERTY_NAME = "ID";
- window.__env.FEATURE_NAME_PROPERTY_NAME = "NAME";
- window.__env.VALID_START_DATE_PROPERTY_NAME = "validStartDate";
- window.__env.VALID_END_DATE_PROPERTY_NAME = "validEndDate";
- window.__env.indicatorDatePrefix = "DATE_";
- // Data Management API URL
- // window.__env.apiUrl = 'http://kommonitor.fbg-hsbo.de/';
- window.__env.apiUrl = 'http://localhost:8085/';
- // Base url for Data Management API
- window.__env.basePath = 'management';
- // Processing Engine URL
- window.__env.targetUrlToProcessingEngine = 'http://localhost:8086/processing/';
- // Open Route Service URL
- window.__env.targetUrlToReachabilityService_ORS = 'https://ors5.fbg-hsbo.de';
- // Open Trip Planner URL - currently not integrated
- window.__env.targetUrlToReachabilityService_OTP = 'http://localhost:8090/opentripplanner';
- // Data Imporret URL
- window.__env.targetUrlToImporterService = 'http://localhost:8087/importer/';
- // KomMonitor Geocoder Proxy
- window.__env.targetUrlToGeocoderService = 'https://geocoder.fbg-hsbo.de/nominatim/';
- // optional geometry simplification (a feature of Data Management API)
- window.__env.simplifyGeometriesParameterName = "simplifyGeometries";
- // allowed values and meaning:
- // ["original" --> no simplification; "weak" --> weak simplification,
- // "medium" --> medium simplification; "strong" --> string simplification]
- window.__env.simplifyGeometriesOptions = [{ "label": "nein", "value": "original" }, { "label": "schwach", "value": "weak" }, { "label": "mittel", "value": "medium" }, { "label": "stark", "value": "strong" }];
- // use strong as default to minimize size of queried features
- // for display, strong simplification is okay
- window.__env.simplifyGeometries = "original";
- // number of decimals for display of numeric values in app
- window.__env.numberOfDecimals = 2;
- // starting viewpoint parameters and zoom level
- window.__env.initialLatitude = 51.4386432;
- window.__env.initialLongitude = 7.0115552;
- window.__env.initialZoomLevel = 12;
- // window.__env.minZoomLevel = 11;
- window.__env.minZoomLevel = 5;
- window.__env.maxZoomLevel = 18;
- window.__env.baseLayers = [
- // {
- // name: "", // display name
- // url: "", // URL to layer
- // layerType: "TILE_LAYER", // TILE_LAYER | TILE_LAYER_GRAYSCALE | WMS
- // layerName_WMS: "", // only relevant for layers of type WMS - multiple layers comma-separated
- // attribution_html: "", // attribution info displayed at the bottom of the map as HTML string
- // minZoomLevel: window.__env.minZoomLevel, // min zoom level for this layer (number between 1-20)
- // maxZoomLevel: window.__env.maxZoomLevel // max zoom level for this layer (number between 1-20, greater than minZoomLevel)
- // },
- {
- name: "Open Street Map - Graustufen",
- url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
- layerType: "TILE_LAYER_GRAYSCALE",
- layerName_WMS: "",
- attribution_html: "Map data © OpenStreetMap contributors",
- minZoomLevel: window.__env.minZoomLevel,
- maxZoomLevel: window.__env.maxZoomLevel
- },
- {
- name: "Open Street Map - Farbe",
- url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
- layerType: "TILE_LAYER",
- layerName_WMS: "",
- attribution_html: "Map data © OpenStreetMap contributors",
- minZoomLevel: window.__env.minZoomLevel,
- maxZoomLevel: window.__env.maxZoomLevel
- },
- {
- name: "RVR Stadtplan - Farbe",
- url: "https://geodaten.metropoleruhr.de/spw2?",
- layerType: "WMS",
- layerName_WMS: "stadtplan_rvr",
- attribution_html: "Map data © https://geodaten.metropoleruhr.de ",
- minZoomLevel: window.__env.minZoomLevel,
- maxZoomLevel: window.__env.maxZoomLevel
- },
- {
- name: "RVR Stadtplan - Graublau",
- url: "https://geodaten.metropoleruhr.de/spw2?",
- layerType: "WMS",
- layerName_WMS: "spw2_graublau",
- attribution_html: "Map data © https://geodaten.metropoleruhr.de ",
- minZoomLevel: window.__env.minZoomLevel,
- maxZoomLevel: window.__env.maxZoomLevel
- },
- {
- name: "NRW Digitale Topographische Karte",
- url: "https://www.wms.nrw.de/geobasis/wms_nw_dtk?",
- layerType: "WMS",
- layerName_WMS: "nw_dtk_sw",
- attribution_html: "Map data © Geobasis NRW ",
- minZoomLevel: window.__env.minZoomLevel,
- maxZoomLevel: 20
- },
- {
- name: "NRW Digitale Orthophotos (Luftbilder)",
- url: "https://www.wms.nrw.de/geobasis/wms_nw_dop?",
- layerType: "WMS",
- layerName_WMS: "nw_dop_rgb",
- attribution_html: "Map data © Geobasis NRW ",
- minZoomLevel: window.__env.minZoomLevel,
- maxZoomLevel: window.__env.maxZoomLevel
- },
- {
- name: "Stadt Essen - Automatisierte Liegenschaftskarte",
- url: "https://geo.essen.de/arcgis/services/basemap/Stadtplanpaket_ALK_grau/MapServer/WMSServer?",
- layerType: "WMS",
- layerName_WMS: "0,1,2,3",
- attribution_html: "Stadt Essen: Amt für Geoinformation, Vermessung und Kataster",
- minZoomLevel: window.__env.minZoomLevel,
- maxZoomLevel: window.__env.maxZoomLevel
- },
- {
- name: "Stadt Essen - Amtliche Basiskarte",
- url: "https://geo.essen.de/arcgis/services/basemap/Uebersicht_ABK_Stadtgrundkarte/MapServer/WMSServer?",
- layerType: "WMS",
- layerName_WMS: "nw_dop_rgb",
- attribution_html: "Stadt Essen: Amt für Geoinformation, Vermessung und Kataster",
- minZoomLevel: window.__env.minZoomLevel,
- maxZoomLevel: window.__env.maxZoomLevel
- }
- ];
- // starting indicator and spatial unit
- // if faulty values are provided, a random indicator will be displayed
- window.__env.initialIndicatorId = "48a18455-6a52-4e74-bdbf-99237187fc5c";
- window.__env.initialSpatialUnitName = "Stadtteilebene";
- // various color settings
- window.__env.defaultColorForNoDataValues = "rgba(255,255,255,0)";
- window.__env.defaultBorderColorForNoDataValues = "black";
- window.__env.defaultColorForOutliers_high = "#191919";
- window.__env.defaultBorderColorForOutliers_high = "black";
- window.__env.defaultFillOpacityForOutliers_high = "0.7";
- window.__env.defaultColorForOutliers_low = "#4f4f4f";
- window.__env.defaultBorderColorForOutliers_low = "black";
- window.__env.defaultFillOpacityForOutliers_low = "0.7";
- window.__env.defaultColorForHoveredFeatures = "#e01414";
- window.__env.defaultColorForClickedFeatures = "#42e5f4";
- window.__env.defaultColorForZeroValues = "#bababa";
- window.__env.defaultBorderColor = "black";
- window.__env.defaultColorForFilteredValues = "rgba(255,255,255,0)";
- window.__env.defaultBorderColorForFilteredValues = "black";
- window.__env.defaultFillOpacity = "0.7";
- window.__env.defaultFillOpacityForFilteredFeatures = "0.7";
- window.__env.defaultFillOpacityForZeroFeatures = "0.7";
- window.__env.defaultFillOpacityForNoDataFeatures = "0.7";
- window.__env.defaultFillOpacityForHighlightedFeatures = "0.8";
- window.__env.useTransparencyOnIndicator = true;
- window.__env.useOutlierDetectionOnIndicator = true;
- window.__env.classifyZeroSeparately = true;
- window.__env.classifyUsingWholeTimeseries = true;
- window.__env.useNoDataToggle = false; // true = hide no data values, false = show no data values
- // default color for specific classification as ColorBrewer palette name
- // i.e. balance mode
- // i.e. measure of value classification (German: Schwellwertklassifizierung)
- window.__env.defaultColorBrewerPaletteForBalanceIncreasingValues = "Purples";
- window.__env.defaultColorBrewerPaletteForBalanceDecreasingValues = "YlOrBr";
- window.__env.defaultColorBrewerPaletteForGtMovValues = "YlOrBr";
- window.__env.defaultColorBrewerPaletteForLtMovValues = "Blues";
- // classification
- //allowesValues: equal_interval, quantile, jenks
- window.__env.defaultClassifyMethod = "equal_interval";
- // array of indicator name substring that shal be used to filter out / hide certain indicators by their name
- // e.g. set ["entwicklung"] to hide all indicators whose name contains the substring "entwicklung"
- window.__env.arrayOfNameSubstringsForHidingIndicators = [];
- // window.__env.arrayOfNameSubstringsForHidingIndicators = [];
- window.__env.arrayOfNameSubstringsForHidingGeoresources = [];
- // e-mail recipient for feedback mail
- window.__env.feedbackMailRecipient = "christian.danowski-buhren@hochschule-bochum.de";
- // window.__env.feedbackMailRecipient = "christian.danowski-buhren@hs-bochum.de";
- // config array of available options for choosing update interval of indicators
- window.__env.updateIntervalOptions = [
- {
- displayName: "jährlich",
- apiName: "YEARLY"
- },
- {
- displayName: "halbjährlich",
- apiName: "HALF_YEARLY"
- },
- {
- displayName: "vierteljährlich",
- apiName: "QUARTERLY"
- },
- {
- displayName: "monatlich",
- apiName: "MONTHLY"
- },
- {
- displayName: "wöchentlich",
- apiName: "WEEKLY"
- },
- {
- displayName: "täglich",
- apiName: "DAILY"
- },
- {
- displayName: "beliebig",
- apiName: "ARBITRARY"
- }
- ];
- // config array of available options for choosing creation type of indicators
- window.__env.indicatorCreationTypeOptions = [
- {
- displayName: "manuell",
- apiName: "INSERTION"
- },
- {
- displayName: "automatisierte Berechnung durch KomMonitor",
- apiName: "COMPUTATION"
- }
- ];
- // config array of available options for choosing indicator's unit
- window.__env.indicatorUnitOptions = ["Anzahl", "Anteil", "Prozent", "Einwohner", "m", "m²", "km", "km²", "ha", "dimensionslos", "standardisiert", "z-transformierte Werte"
- ];
- // config array of available options for choosing indicator type of indicators
- window.__env.indicatorTypeOptions = [
- {
- displayName: "Status-Indikator (absolut)",
- apiName: "STATUS_ABSOLUTE"
- },
- {
- displayName: "Status-Indikator (relativ)",
- apiName: "STATUS_RELATIVE"
- },
- {
- displayName: "Dynamik-Indikator (absolut)",
- apiName: "DYNAMIC_ABSOLUTE"
- },
- {
- displayName: "Dynamik-Indikator (relativ)",
- apiName: "DYNAMIC_RELATIVE"
- },
- {
- displayName: "Status-Indikator (standardisiert)",
- apiName: "STATUS_STANDARDIZED"
- },
- {
- displayName: "Dynamik-Indikator (standardisiert)",
- apiName: "DYNAMIC_STANDARDIZED"
- }
- ];
- // array of available WMS datasets
- window.__env.wmsDatasets = [
- // {
- // title: "Title of WMS dataset",
- // description: "Description as HTML code (HTML tags allowed)",
- // url: "URL including '?' as last character (i.e. https://wms.example/myWMS)",
- // topicReference: "3af3b65e-4792-4998-8531-54616564b5bc", // id of georesource topic to hang in the WMS entry
- // layerName:"laerm" // name of WMS layer to display
- // },
- {
- title: "Lärmkartierung - Test",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "3af3b65e-4792-4998-8531-54616564b5bc",
- layerName: "laerm"
- },
- {
- title: "Unfalldaten 2019",
- description: "Unfalldaten des statistischen Bundesamtes",
- url: "https://www.wms.nrw.de/wms/unfallatlas?",
- topicReference: "7255b83f-feb0-4f01-9dc1-6b355447206d",
- layerName: "Unfallorte_2019"
- },
- {
- title: "Lärmkartierung - Flugverkehr 24h-Pegel LDEN",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "FLG_DEN"
- },
- {
- title: "Lärmkartierung - Flugverkehr Nachtpegel LNight",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "FLG_NGT"
- },
- {
- title: "Lärmkartierung - Industrie 24h-Pegel LDEN",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "IND_DEN"
- },
- {
- title: "Lärmkartierung - Industrie Nachtpegel LNight",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "IND_NGT"
- },
- {
- title: "Lärmkartierung - Straße 24h-Pegel LDEN",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "STR_DEN"
- },
- {
- title: "Lärmkartierung - Straße Nachtpegel LNight",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "STR_NGT"
- },
- {
- title: "Lärmkartierung - Schiene sonstige 24h-Pegel LDEN",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "SCS_DEN"
- },
- {
- title: "Lärmkartierung - Schiene sonstige Nachtpegel LNight",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "SCS_NGT"
- },
- {
- title: "Lärmkartierung - Schiene Bund 24h-Pegel LDEN",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "SCB_DEN"
- },
- {
- title: "Lärmkartierung - Schiene Bund Nachtpegel LNight",
- description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- url: "https://www.wms.nrw.de/umwelt/laerm?",
- topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
- layerName: "SCB_NGT"
- },
- // {
- // title: "Lärmkartierung - Gebaeude",
- // description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- // url: "https://www.wms.nrw.de/umwelt/laerm?",
- // layerName: "Gebaeude"
- // },
- // {
- // title: "Lärmkartierung - Modell",
- // description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
- // url: "https://www.wms.nrw.de/umwelt/laerm?",
- // layerName: "Modell"
- // },
- {
- title: "Versiegelungsgrad - 2006 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessDensity_2006/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "0"
- },
- {
- title: "Versiegelungsgrad - 2009 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessDensity_2009/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "0"
- },
- {
- title: "Versiegelungsgrad - 2012 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_Imperviousness_Density_2012/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "Imperviousness density 2012 20m"
- },
- {
- title: "Versiegelungsgrad - 2015 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessDensity_2015/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "0"
- },
- {
- title: "Versiegelungsgrad - Veränderung 2006-2009 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessChange_06_09/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "0"
- },
- {
- title: "Versiegelungsgrad - Veränderung 2009-2012 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessChange_09_12/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "Imperviousness density change 09-12 20m"
- },
- {
- title: "Versiegelungsgrad - Veränderung 2012-2015 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessChange_12_15/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "0"
- },
- {
- title: "Versiegelungsgrad - Klassifizierte Veränderung 2006-2009 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessClassifiedChange_06_09/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "0"
- },
- {
- title: "Versiegelungsgrad - Klassifizierte Veränderung 2009-2012 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessClassifiedChange_09_12/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "0"
- },
- {
- title: "Versiegelungsgrad - Klassifizierte Veränderung 2012-2015 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
- description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
- url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessChange_12_15/MapServer/WMSServer?",
- topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
- layerName: "0"
- },
- {
- title: "Bodennutzung - Bebauungsplanumringe",
- description: "Umringe der Bebauungspläne gemäß geodaten.metropoleruhr.de",
- url: "https://geodaten.metropoleruhr.de/inspire/bodennutzung/metropoleruhr?",
- topicReference: null,
- layerName: "bplan"
- }
- ];
- // array if available WFS datasets
- window.__env.wfsDatasets = [
- // {
- // title: "Title of dataset",
- // description: "Description as HTML code (HTML tags allowed)",
- // url: "URL of dataset including '?' as last character (i.e. https://wfs.example/myWfS?)",
- // featureTypeNamespace: "namespace of featureType",
- // featureTypeName: "name of featureType", // // check GetCapabilities Response
- // featureTypeGeometryName: "name of geometry property of feature type", // check DescribeFeature Response
- // geometryType: "AOI", // POI|LOI|AOI
- // poiSymbolColor: "white", // ['white', 'red', 'orange', 'beige', 'green', 'blue', 'purple', 'pink', 'gray', 'black']
- // poiMarkerColor: "red", // ['white', 'red', 'orange', 'beige', 'green', 'blue', 'purple', 'pink', 'gray', 'black']
- // poiSymbolBootstrap3Name: "home",
- // loiColor: "#00aabb", // color for LOI datasets
- // loiWidth: 3, // 1 - 5
- // loiDashArrayString: "", // e.g. "20, 20" for equal dash/space visuals
- // aoiColor: "#00aabb", // color for AOI datasets
- // filterFeaturesToMapBBOX: false, // applies BBOX filter to WFS request - if not supported by WFS may lead to error
- // filterEncoding: { // only one filter is currently implemented (PropertyIsEqualTo)
- // // PropertyIsEqualTo: {
- // // propertyName: undefined, // name of property
- // // propertyValue: undefined // value of property
- // // }
- // },
- // topicReference: "c712af89-ff11-40ff-ad84-b3592901e085" // id of georesource topic entry which shall be used to display the WFS dataset entry
- // },
- {
- title: "Bodennutzung - Bebauungsplanumringe",
- description: "Umringe der Bebauungspläne gemäß geodaten.metropoleruhr.de. WFS-Dienst unterstützt keine räumllichen Filter. Daher müssen zwingend alle Features abgerufen werden .",
- url: "https://geodaten.metropoleruhr.de/inspire/bodennutzung/metropoleruhr?",
- featureTypeNamespace: "ms",
- featureTypeName: "bplan_stand",
- featureTypeGeometryName: "geom",
- geometryType: "AOI",
- poiSymbolColor: "white",
- poiMarkerColor: "red",
- poiSymbolBootstrap3Name: "home",
- loiColor: "#00aabb",
- loiWidth: 3,
- loiDashArrayString: "",
- aoiColor: "#00aabb",
- filterFeaturesToMapBBOX: false,
- filterEncoding: {
- // PropertyIsEqualTo: {
- // propertyName: undefined,
- // propertyValue: undefined
- // }
- },
- topicReference: "c712af89-ff11-40ff-ad84-b3592901e085"
- }
- ];
-}
-catch (error) {
- console.error("Error while evaluating app config. Error is: \n" + error);
-}
+ FEATURE_ID_PROPERTY_NAME: "ID",
+ FEATURE_NAME_PROPERTY_NAME: "NAME",
+ VALID_START_DATE_PROPERTY_NAME: "validStartDate",
+ VALID_END_DATE_PROPERTY_NAME: "validEndDate",
+ indicatorDatePrefix: "DATE_",
+};
//# sourceMappingURL=env_backup.js.map
\ No newline at end of file
diff --git a/app/config/env_backup.js.map b/app/config/env_backup.js.map
index af7217e11..42dbe496e 100644
--- a/app/config/env_backup.js.map
+++ b/app/config/env_backup.js.map
@@ -1 +1 @@
-{"version":3,"file":"env_backup.js","sourceRoot":"","sources":["env_backup.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"env_backup.js","sourceRoot":"","sources":["env_backup.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAE;IACxB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,2BAA2B;IACrC,kBAAkB,EAAE,oBAAoB;IACxC,WAAW,EAAE,IAAI;IACjB,sBAAsB,EAAE,IAAI;IAC5B,+BAA+B,EAAE,oBAAoB;IACrD,cAAc,EAAE,IAAI;IACpB,sBAAsB,EAAE,IAAI;IAC5B,UAAU,EAAE;QACV,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,EAAE;KAClB;IAED;;;;;MAKE;IACF,aAAa,EAAG,2iIAA2iI;IAC3jI,qBAAqB,EAAG,4EAA4E;IACpG,eAAe,EAAG,MAAM;IACxB,2BAA2B,EAAG,2BAA2B;IACzD,mCAAmC,EAAG,8CAA8C;IACpF,2BAA2B,EAAG,wCAAwC;IACtE,8BAA8B,EAAG,EAAE;IACnC;;;MAGE;IACF,sCAAsC,EAAG,KAAK;IAC9C,mCAAmC,EAAG,KAAK;IAC3C,gCAAgC,EAAG,CAAC,eAAe,CAAC;IACpD,4BAA4B,EAAG,qEAAqE;IACpG,8BAA8B,EAAG;;;;gHAI6E;IAC9G;;MAEE;IACF,uBAAuB,EAAG,KAAK;IAC/B,yBAAyB,EAAG,6BAA6B;IACzD,yBAAyB,EAAG,uBAAuB;IACnD,4BAA4B,EAAG,EAAE;IACjC,kGAAkG;IAClG,kEAAkE;IAClE,wBAAwB,EAAG,IAAI;IAC/B,0BAA0B,EAAG,MAAM;IACnC,8BAA8B,EAAG,gBAAgB;IACjD,4BAA4B,EAAG,cAAc;IAC7C,mBAAmB,EAAG,OAAO;CAC9B,CAAA"}
\ No newline at end of file
diff --git a/app/env_backup.js b/app/env_backup.js
new file mode 100644
index 000000000..f9d89abad
--- /dev/null
+++ b/app/env_backup.js
@@ -0,0 +1,527 @@
+const minZoomLevel = 5;
+const maxZoomLevel = 18;
+export const environment = {
+ production: false,
+ appTitle: "KomMonitor (Pilotversion)",
+ localStoragePrefix: "kommonitor-develop",
+ enableDebug: true,
+ enableKeycloakSecurity: true,
+ keycloakKomMonitorAdminRoleName: "kommonitor-creator",
+ isAdvancedMode: true,
+ showAdvancedModeSwitch: true,
+ encryption: {
+ enabled: false,
+ password: "password",
+ ivLength_byte: 16
+ },
+ /*
+ PROPERTIES used within greetings window (infoModal component)
+ to insert custom LOGO by URL with custom width
+ and adjust individual information text
+ as well as contact information
+ */
+ customLogoURL: "data:image/pngbase64,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::",
+ customLogo_onClickURL: "https://www.hochschule-bochum.de/fbg/forschung-und-entwicklung/kommonitor/",
+ customLogoWidth: "35px",
+ customGreetingsContact_name: "Christian Danowski-Buhren",
+ customGreetingsContact_organisation: "Hochschule Bochum, Fachbereich Geodä,sie",
+ customGreetingsContact_mail: "christian.danowski-buhren@hs-bochum.de",
+ customGreetingsTextInfoMessage: "",
+ /*
+ PROPERTIES used within special modal (spatialUnitNotification component)
+ to show a customizable HTMLText only when user selects a certian spatial unit for any indicator
+ */
+ enableSpatialUnitNotificationSelection: false,
+ enableSpatialUnitNotificationButton: false,
+ spatialUnitNotificationSelection: ["Baublockebene"],
+ spatialUnitNotificationTitle: "Informationsverlust auf kleinräumigen Ebenen (Bau- und Mittelblock)",
+ spatialUnitNotificationMessage: "Alle Daten, die im KomMonitor dargestellt werden, halten die statistische Geheimhaltung ein. Das bedeutet, dass Angaben zu einzelnen Personen nicht offengelegt werden, insbesondere auch, wenn aus aggregierten Werten Rückschlüsse zu Einzelangaben ermöglicht werden. Aus diesem Grund werden Indikatorenwerte, die in einem räumlichen Aggregat eine absolute Fallzahl von < 3 Einwohnern aufweisen, so behandelt, als hätten diese 0 Einwohner.\
+ Diese Methode der statistischen Geheimhaltung kann zu einem teilweise hohen Informationsverlust auf kleinräumigen Ebenen führen. Stark differenzierte Indikatoren auf kleinräumigen Ebenen, die insgesamt nur wenige Fallzahlen aufweisen, könnten so an vielen Stellen entsprechend bereinigt worden seien und somit keine validen Werte liefern. \
+ Dies lässt sich daran erkennen, dass die Fallzahlen insgesamt niedrig sind und viele Gebiete 0-Werte haben. Eine flächendeckendes Bild ist somit nicht möglich. \
+ Dennoch bieten diese Indikatoren trotz ungenauer Wertedie Möglichkeit, „Hot-Spots“ und „Cluster“ der jeweiligen Indikatoren zu ermitteln. \
+ Zahlen auf kleinräumige Ebenen sollten vor diesem Hintergrund vorsichtig und sorgfältig interpretiert werden.",
+ /*
+ PROPERTIES used within extended info modal (second tab) to show a customizable HTMLText
+ */
+ enableExtendedInfoModal: false,
+ standardInfoModalTabTitle: "Informationen zu KomMonitor",
+ extendedInfoModalTabTitle: "Weitere Informationen",
+ extendedInfoModalHTMLMessage: "",
+ // property names of feature id and name (relevant for all spatial features) - KomMonitor specific
+ // DO NOT CHANGE THEM - ONLY IF YOU REALLY KNOW WHAT YOU ARE DOING
+ FEATURE_ID_PROPERTY_NAME: "ID",
+ FEATURE_NAME_PROPERTY_NAME: "NAME",
+ VALID_START_DATE_PROPERTY_NAME: "validStartDate",
+ VALID_END_DATE_PROPERTY_NAME: "validEndDate",
+ indicatorDatePrefix: "DATE_",
+ // Data Management API URL
+ // apiUrl : 'http://kommonitor.fbg-hsbo.de/',
+ apiUrl: 'http://localhost:8085/',
+ // Base url for Data Management API
+ basePath: 'management',
+ // Processing Engine URL
+ targetUrlToProcessingEngine: 'http://localhost:8086/processing/',
+ // Open Route Service URL
+ targetUrlToReachabilityService_ORS: 'https://ors5.fbg-hsbo.de',
+ // Open Trip Planner URL - currently not integrated
+ targetUrlToReachabilityService_OTP: 'http://localhost:8090/opentripplanner',
+ // Data Imporret URL
+ targetUrlToImporterService: 'http://localhost:8087/importer/',
+ // KomMonitor Geocoder Proxy
+ targetUrlToGeocoderService: 'https://geocoder.fbg-hsbo.de/nominatim/',
+ // optional geometry simplification (a feature of Data Management API)
+ simplifyGeometriesParameterName: "simplifyGeometries",
+ // allowed values and meaning:
+ // ["original" --> no simplification, "weak" --> weak simplification,
+ // "medium" --> medium simplification, "strong" --> string simplification]
+ simplifyGeometriesOptions: [{ "label": "nein", "value": "original" }, { "label": "schwach", "value": "weak" }, { "label": "mittel", "value": "medium" }, { "label": "stark", "value": "strong" }],
+ // use strong as default to minimize size of queried features
+ // for display, strong simplification is okay
+ simplifyGeometries: "original",
+ // number of decimals for display of numeric values in app
+ numberOfDecimals: 2,
+ // starting viewpoint parameters and zoom level
+ initialLatitude: 51.4386432,
+ initialLongitude: 7.0115552,
+ initialZoomLevel: 12,
+ // minZoomLevel : 11,
+ minZoomLevel: 5,
+ maxZoomLevel: 18,
+ baseLayers: [
+ // {
+ // name: "", // display name
+ // url: "", // URL to layer
+ // layerType: "TILE_LAYER", // TILE_LAYER | TILE_LAYER_GRAYSCALE | WMS
+ // layerName_WMS: "", // only relevant for layers of type WMS - multiple layers comma-separated
+ // attribution_html: "", // attribution info displayed at the bottom of the map as HTML string
+ // minZoomLevel: minZoomLevel, // min zoom level for this layer (number between 1-20)
+ // maxZoomLevel: maxZoomLevel // max zoom level for this layer (number between 1-20, greater than minZoomLevel)
+ // },
+ {
+ name: "Open Street Map - Graustufen",
+ url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
+ layerType: "TILE_LAYER_GRAYSCALE",
+ layerName_WMS: "",
+ attribution_html: "Map data © OpenStreetMap contributors",
+ minZoomLevel: minZoomLevel,
+ maxZoomLevel: maxZoomLevel
+ },
+ {
+ name: "Open Street Map - Farbe",
+ url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
+ layerType: "TILE_LAYER",
+ layerName_WMS: "",
+ attribution_html: "Map data © OpenStreetMap contributors",
+ minZoomLevel: minZoomLevel,
+ maxZoomLevel: maxZoomLevel
+ },
+ {
+ name: "RVR Stadtplan - Farbe",
+ url: "https://geodaten.metropoleruhr.de/spw2?",
+ layerType: "WMS",
+ layerName_WMS: "stadtplan_rvr",
+ attribution_html: "Map data © https://geodaten.metropoleruhr.de ",
+ minZoomLevel: minZoomLevel,
+ maxZoomLevel: maxZoomLevel
+ },
+ {
+ name: "RVR Stadtplan - Graublau",
+ url: "https://geodaten.metropoleruhr.de/spw2?",
+ layerType: "WMS",
+ layerName_WMS: "spw2_graublau",
+ attribution_html: "Map data © https://geodaten.metropoleruhr.de ",
+ minZoomLevel: minZoomLevel,
+ maxZoomLevel: maxZoomLevel
+ },
+ {
+ name: "NRW Digitale Topographische Karte",
+ url: "https://www.wms.nrw.de/geobasis/wms_nw_dtk?",
+ layerType: "WMS",
+ layerName_WMS: "nw_dtk_sw",
+ attribution_html: "Map data © Geobasis NRW ",
+ minZoomLevel: minZoomLevel,
+ maxZoomLevel: 20
+ },
+ {
+ name: "NRW Digitale Orthophotos (Luftbilder)",
+ url: "https://www.wms.nrw.de/geobasis/wms_nw_dop?",
+ layerType: "WMS",
+ layerName_WMS: "nw_dop_rgb",
+ attribution_html: "Map data © Geobasis NRW ",
+ minZoomLevel: minZoomLevel,
+ maxZoomLevel: maxZoomLevel
+ },
+ {
+ name: "Stadt Essen - Automatisierte Liegenschaftskarte",
+ url: "https://geo.essen.de/arcgis/services/basemap/Stadtplanpaket_ALK_grau/MapServer/WMSServer?",
+ layerType: "WMS",
+ layerName_WMS: "0,1,2,3",
+ attribution_html: "Stadt Essen: Amt für Geoinformation, Vermessung und Kataster",
+ minZoomLevel: minZoomLevel,
+ maxZoomLevel: maxZoomLevel
+ },
+ {
+ name: "Stadt Essen - Amtliche Basiskarte",
+ url: "https://geo.essen.de/arcgis/services/basemap/Uebersicht_ABK_Stadtgrundkarte/MapServer/WMSServer?",
+ layerType: "WMS",
+ layerName_WMS: "nw_dop_rgb",
+ attribution_html: "Stadt Essen: Amt für Geoinformation, Vermessung und Kataster",
+ minZoomLevel: minZoomLevel,
+ maxZoomLevel: maxZoomLevel
+ }
+ ],
+ // starting indicator and spatial unit
+ // if faulty values are provided, a random indicator will be displayed
+ initialIndicatorId: "48a18455-6a52-4e74-bdbf-99237187fc5c",
+ initialSpatialUnitName: "Stadtteilebene",
+ // various color settings
+ defaultColorForNoDataValues: "rgba(255,255,255,0)",
+ defaultBorderColorForNoDataValues: "black",
+ defaultColorForOutliers_high: "#191919",
+ defaultBorderColorForOutliers_high: "black",
+ defaultFillOpacityForOutliers_high: "0.7",
+ defaultColorForOutliers_low: "#4f4f4f",
+ defaultBorderColorForOutliers_low: "black",
+ defaultFillOpacityForOutliers_low: "0.7",
+ defaultColorForHoveredFeatures: "#e01414",
+ defaultColorForClickedFeatures: "#42e5f4",
+ defaultColorForZeroValues: "#bababa",
+ defaultBorderColor: "black",
+ defaultColorForFilteredValues: "rgba(255,255,255,0)",
+ defaultBorderColorForFilteredValues: "black",
+ defaultFillOpacity: "0.7",
+ defaultFillOpacityForFilteredFeatures: "0.7",
+ defaultFillOpacityForZeroFeatures: "0.7",
+ defaultFillOpacityForNoDataFeatures: "0.7",
+ defaultFillOpacityForHighlightedFeatures: "0.8",
+ useTransparencyOnIndicator: true,
+ useOutlierDetectionOnIndicator: true,
+ classifyZeroSeparately: true,
+ classifyUsingWholeTimeseries: true,
+ useNoDataToggle: false,
+ // default color for specific classification as ColorBrewer palette name
+ // i.e. balance mode
+ // i.e. measure of value classification (German: Schwellwertklassifizierung)
+ defaultColorBrewerPaletteForBalanceIncreasingValues: "Purples",
+ defaultColorBrewerPaletteForBalanceDecreasingValues: "YlOrBr",
+ defaultColorBrewerPaletteForGtMovValues: "YlOrBr",
+ defaultColorBrewerPaletteForLtMovValues: "Blues",
+ // classification
+ //allowesValues: equal_interval, quantile, jenks
+ defaultClassifyMethod: "equal_interval",
+ // array of indicator name substring that shal be used to filter out / hide certain indicators by their name
+ // e.g. set ["entwicklung"] to hide all indicators whose name contains the substring "entwicklung"
+ arrayOfNameSubstringsForHidingIndicators: [],
+ // window.__env.arrayOfNameSubstringsForHidingIndicators = [];
+ arrayOfNameSubstringsForHidingGeoresources: [],
+ // e-mail recipient for feedback mail
+ feedbackMailRecipient: "christian.danowski-buhren@hochschule-bochum.de",
+ // window.__env.feedbackMailRecipient = "christian.danowski-buhren@hs-bochum.de";
+ // config array of available options for choosing update interval of indicators
+ updateIntervalOptions: [
+ {
+ displayName: "jährlich",
+ apiName: "YEARLY"
+ },
+ {
+ displayName: "halbjährlich",
+ apiName: "HALF_YEARLY"
+ },
+ {
+ displayName: "vierteljährlich",
+ apiName: "QUARTERLY"
+ },
+ {
+ displayName: "monatlich",
+ apiName: "MONTHLY"
+ },
+ {
+ displayName: "wöchentlich",
+ apiName: "WEEKLY"
+ },
+ {
+ displayName: "täglich",
+ apiName: "DAILY"
+ },
+ {
+ displayName: "beliebig",
+ apiName: "ARBITRARY"
+ }
+ ],
+ // config array of available options for choosing creation type of indicators
+ indicatorCreationTypeOptions: [
+ {
+ displayName: "manuell",
+ apiName: "INSERTION"
+ },
+ {
+ displayName: "automatisierte Berechnung durch KomMonitor",
+ apiName: "COMPUTATION"
+ }
+ ],
+ // config array of available options for choosing indicator's unit
+ indicatorUnitOptions: ["Anzahl", "Anteil", "Prozent", "Einwohner", "m", "m²", "km", "km²", "ha", "dimensionslos", "standardisiert", "z-transformierte Werte"
+ ],
+ // config array of available options for choosing indicator type of indicators
+ indicatorTypeOptions: [
+ {
+ displayName: "Status-Indikator (absolut)",
+ apiName: "STATUS_ABSOLUTE"
+ },
+ {
+ displayName: "Status-Indikator (relativ)",
+ apiName: "STATUS_RELATIVE"
+ },
+ {
+ displayName: "Dynamik-Indikator (absolut)",
+ apiName: "DYNAMIC_ABSOLUTE"
+ },
+ {
+ displayName: "Dynamik-Indikator (relativ)",
+ apiName: "DYNAMIC_RELATIVE"
+ },
+ {
+ displayName: "Status-Indikator (standardisiert)",
+ apiName: "STATUS_STANDARDIZED"
+ },
+ {
+ displayName: "Dynamik-Indikator (standardisiert)",
+ apiName: "DYNAMIC_STANDARDIZED"
+ }
+ ],
+ // array of available WMS datasets
+ wmsDatasets: [
+ // {
+ // title: "Title of WMS dataset",
+ // description: "Description as HTML code (HTML tags allowed)",
+ // url: "URL including '?' as last character (i.e. https://wms.example/myWMS)",
+ // topicReference: "3af3b65e-4792-4998-8531-54616564b5bc", // id of georesource topic to hang in the WMS entry
+ // layerName:"laerm" // name of WMS layer to display
+ // },
+ {
+ title: "Lärmkartierung - Test",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "3af3b65e-4792-4998-8531-54616564b5bc",
+ layerName: "laerm"
+ },
+ {
+ title: "Unfalldaten 2019",
+ description: "Unfalldaten des statistischen Bundesamtes",
+ url: "https://www.wms.nrw.de/wms/unfallatlas?",
+ topicReference: "7255b83f-feb0-4f01-9dc1-6b355447206d",
+ layerName: "Unfallorte_2019"
+ },
+ {
+ title: "Lärmkartierung - Flugverkehr 24h-Pegel LDEN",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "FLG_DEN"
+ },
+ {
+ title: "Lärmkartierung - Flugverkehr Nachtpegel LNight",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "FLG_NGT"
+ },
+ {
+ title: "Lärmkartierung - Industrie 24h-Pegel LDEN",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "IND_DEN"
+ },
+ {
+ title: "Lärmkartierung - Industrie Nachtpegel LNight",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "IND_NGT"
+ },
+ {
+ title: "Lärmkartierung - Straße 24h-Pegel LDEN",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "STR_DEN"
+ },
+ {
+ title: "Lärmkartierung - Straße Nachtpegel LNight",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "STR_NGT"
+ },
+ {
+ title: "Lärmkartierung - Schiene sonstige 24h-Pegel LDEN",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "SCS_DEN"
+ },
+ {
+ title: "Lärmkartierung - Schiene sonstige Nachtpegel LNight",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "SCS_NGT"
+ },
+ {
+ title: "Lärmkartierung - Schiene Bund 24h-Pegel LDEN",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "SCB_DEN"
+ },
+ {
+ title: "Lärmkartierung - Schiene Bund Nachtpegel LNight",
+ description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ url: "https://www.wms.nrw.de/umwelt/laerm?",
+ topicReference: "e94c8100-3790-4ddd-b977-fe48b4f93e26",
+ layerName: "SCB_NGT"
+ },
+ // {
+ // title: "Lärmkartierung - Gebaeude",
+ // description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ // url: "https://www.wms.nrw.de/umwelt/laerm?",
+ // layerName: "Gebaeude"
+ // },
+ // {
+ // title: "Lärmkartierung - Modell",
+ // description: "Veröffentlichung der Lärmkarten gemäß Lärmkartierung nach Richtlinie 2002/49/EG - EU-Umgebungslärmrichtlinie Maßstabsabhängige Darstellung - ggf. zoomen erforderlich ",
+ // url: "https://www.wms.nrw.de/umwelt/laerm?",
+ // layerName: "Modell"
+ // },
+ {
+ title: "Versiegelungsgrad - 2006 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessDensity_2006/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "0"
+ },
+ {
+ title: "Versiegelungsgrad - 2009 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessDensity_2009/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "0"
+ },
+ {
+ title: "Versiegelungsgrad - 2012 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_Imperviousness_Density_2012/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "Imperviousness density 2012 20m"
+ },
+ {
+ title: "Versiegelungsgrad - 2015 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessDensity_2015/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "0"
+ },
+ {
+ title: "Versiegelungsgrad - Veränderung 2006-2009 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessChange_06_09/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "0"
+ },
+ {
+ title: "Versiegelungsgrad - Veränderung 2009-2012 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessChange_09_12/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "Imperviousness density change 09-12 20m"
+ },
+ {
+ title: "Versiegelungsgrad - Veränderung 2012-2015 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessChange_12_15/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "0"
+ },
+ {
+ title: "Versiegelungsgrad - Klassifizierte Veränderung 2006-2009 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessClassifiedChange_06_09/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "0"
+ },
+ {
+ title: "Versiegelungsgrad - Klassifizierte Veränderung 2009-2012 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessClassifiedChange_09_12/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "0"
+ },
+ {
+ title: "Versiegelungsgrad - Klassifizierte Veränderung 2012-2015 anhand von Copernicus Satellitendaten - 20m Rasterzellen",
+ description: "Mehr Informationen unter https://land.copernicus.eu/pan-european/high-resolution-layers/imperviousness ",
+ url: "https://image.discomap.eea.europa.eu/arcgis/services/GioLandPublic/HRL_ImperviousnessChange_12_15/MapServer/WMSServer?",
+ topicReference: "c46ecf8b-3f77-4be6-9ec1-851dc48e3eb8",
+ layerName: "0"
+ },
+ {
+ title: "Bodennutzung - Bebauungsplanumringe",
+ description: "Umringe der Bebauungspläne gemäß geodaten.metropoleruhr.de",
+ url: "https://geodaten.metropoleruhr.de/inspire/bodennutzung/metropoleruhr?",
+ topicReference: null,
+ layerName: "bplan"
+ }
+ ],
+ // array if available WFS datasets
+ wfsDatasets: [
+ // {
+ // title: "Title of dataset",
+ // description: "Description as HTML code (HTML tags allowed)",
+ // url: "URL of dataset including '?' as last character (i.e. https://wfs.example/myWfS?)",
+ // featureTypeNamespace: "namespace of featureType",
+ // featureTypeName: "name of featureType", // // check GetCapabilities Response
+ // featureTypeGeometryName: "name of geometry property of feature type", // check DescribeFeature Response
+ // geometryType: "AOI", // POI|LOI|AOI
+ // poiSymbolColor: "white", // ['white', 'red', 'orange', 'beige', 'green', 'blue', 'purple', 'pink', 'gray', 'black']
+ // poiMarkerColor: "red", // ['white', 'red', 'orange', 'beige', 'green', 'blue', 'purple', 'pink', 'gray', 'black']
+ // poiSymbolBootstrap3Name: "home",
+ // loiColor: "#00aabb", // color for LOI datasets
+ // loiWidth: 3, // 1 - 5
+ // loiDashArrayString: "", // e.g. "20, 20" for equal dash/space visuals
+ // aoiColor: "#00aabb", // color for AOI datasets
+ // filterFeaturesToMapBBOX: false, // applies BBOX filter to WFS request - if not supported by WFS may lead to error
+ // filterEncoding: { // only one filter is currently implemented (PropertyIsEqualTo)
+ // // PropertyIsEqualTo: {
+ // // propertyName: undefined, // name of property
+ // // propertyValue: undefined // value of property
+ // // }
+ // },
+ // topicReference: "c712af89-ff11-40ff-ad84-b3592901e085" // id of georesource topic entry which shall be used to display the WFS dataset entry
+ // },
+ {
+ title: "Bodennutzung - Bebauungsplanumringe",
+ description: "Umringe der Bebauungspläne gemäß geodaten.metropoleruhr.de. WFS-Dienst unterstützt keine räumllichen Filter. Daher müssen zwingend alle Features abgerufen werden .",
+ url: "https://geodaten.metropoleruhr.de/inspire/bodennutzung/metropoleruhr?",
+ featureTypeNamespace: "ms",
+ featureTypeName: "bplan_stand",
+ featureTypeGeometryName: "geom",
+ geometryType: "AOI",
+ poiSymbolColor: "white",
+ poiMarkerColor: "red",
+ poiSymbolBootstrap3Name: "home",
+ loiColor: "#00aabb",
+ loiWidth: 3,
+ loiDashArrayString: "",
+ aoiColor: "#00aabb",
+ filterFeaturesToMapBBOX: false,
+ filterEncoding: {
+ // PropertyIsEqualTo: {
+ // propertyName: undefined,
+ // propertyValue: undefined
+ // }
+ },
+ topicReference: "c712af89-ff11-40ff-ad84-b3592901e085"
+ }
+ ],
+};
+//# sourceMappingURL=env_backup.js.map
\ No newline at end of file
diff --git a/app/env_backup.js.map b/app/env_backup.js.map
new file mode 100644
index 000000000..1d3f45b86
--- /dev/null
+++ b/app/env_backup.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"env_backup.js","sourceRoot":"","sources":["env_backup.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/main.js b/app/main.js
new file mode 100644
index 000000000..509824b66
--- /dev/null
+++ b/app/main.js
@@ -0,0 +1,5 @@
+//
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+import { AppModule } from './app.module';
+platformBrowserDynamic().bootstrapModule(AppModule);
+//# sourceMappingURL=main.js.map
\ No newline at end of file
diff --git a/app/main.js.map b/app/main.js.map
new file mode 100644
index 000000000..9bf178497
--- /dev/null
+++ b/app/main.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,sBAAsB,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC"}
\ No newline at end of file
diff --git a/app/util/genericServices/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js b/app/util/genericServices/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js
new file mode 100644
index 000000000..535796148
--- /dev/null
+++ b/app/util/genericServices/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js
@@ -0,0 +1,48 @@
+import { __decorate } from "tslib";
+import { Injectable } from '@angular/core';
+export let KommonitorElementVisibilityHelperService = class KommonitorElementVisibilityHelperService {
+ constructor() {
+ this.elementVisibility = {};
+ this.isAdvancedMode = window.__env.isAdvancedMode;
+ this.showAdvancedModeSwitch = window.__env.showAdvancedModeSwitch;
+ this.advancedModeRoleName = 'fakeAdvancedModeRole';
+ this.diagramExportButtonsVisible = true;
+ this.georesourceExportButtonsVisible = true;
+ this.initElementVisibility();
+ }
+ checkElementVisibility(id) {
+ // const element = this.controlsConfigService.getControlsConfig().find((element) => element.id === id);
+ const element = window.__env.config.find((element) => element.id === id);
+ if (!element.roles || element.roles.length === 0) {
+ return true;
+ }
+ else if (this.isAdvancedMode && element.roles && element.roles.includes(this.advancedModeRoleName)) {
+ return true;
+ }
+ else {
+ // Implement the logic to check user roles and permissions
+ // Replace this with your actual authentication logic
+ // Example: return this.authService.hasPermission(element.roles);
+ return true; // Temporary value for demonstration purposes
+ }
+ }
+ initElementVisibility() {
+ this.diagramExportButtonsVisible = true;
+ this.georesourceExportButtonsVisible = true;
+ window.__env.config.forEach((element) => {
+ this.elementVisibility[element.id] = this.checkElementVisibility(element.id);
+ });
+ }
+ onChangeIsAdvancedMode() {
+ this.initElementVisibility();
+ // If any sidebar was previously not displayed, we must ensure that it is properly instantiated for the current indicator
+ // Replace this with your actual logic
+ // ...
+ }
+};
+KommonitorElementVisibilityHelperService = __decorate([
+ Injectable({
+ providedIn: 'root'
+ })
+], KommonitorElementVisibilityHelperService);
+//# sourceMappingURL=kommonitor-element-visibility-helper-service.service.js.map
\ No newline at end of file
diff --git a/app/util/genericServices/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js.map b/app/util/genericServices/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js.map
new file mode 100644
index 000000000..8c37df1e5
--- /dev/null
+++ b/app/util/genericServices/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"kommonitor-element-visibility-helper-service.service.js","sourceRoot":"","sources":["kommonitor-element-visibility-helper-service.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKpC,WAAM,wCAAwC,GAA9C,MAAM,wCAAwC;IAQnD;QAPA,sBAAiB,GAAQ,EAAE,CAAC;QAC5B,mBAAc,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;QAC7C,2BAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC;QAC7D,yBAAoB,GAAG,sBAAsB,CAAC;QAC9C,gCAA2B,GAAG,IAAI,CAAC;QACnC,oCAA+B,GAAG,IAAI,CAAC;QAIrC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,sBAAsB,CAAC,EAAU;QACvC,uGAAuG;QACvG,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;YACpG,OAAO,IAAI,CAAC;SACb;aAAM;YACL,0DAA0D;YAC1D,qDAAqD;YACrD,iEAAiE;YACjE,OAAO,IAAI,CAAC,CAAC,6CAA6C;SAC3D;IACH,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;QAE5C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACtC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,yHAAyH;QACzH,sCAAsC;QACtC,MAAM;IACR,CAAC;CACF,CAAA;AA5CY,wCAAwC;IAHpD,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,wCAAwC,CA4CpD"}
\ No newline at end of file
diff --git a/app/util/genericServices/modal.service.js b/app/util/genericServices/modal.service.js
new file mode 100644
index 000000000..0e1c4f35f
--- /dev/null
+++ b/app/util/genericServices/modal.service.js
@@ -0,0 +1,18 @@
+import { __decorate } from "tslib";
+import { Injectable } from '@angular/core';
+import { Subject } from 'rxjs';
+export let ModalService = class ModalService {
+ constructor() {
+ this.startGuidedTourSubject = new Subject();
+ this.startGuidedTour$ = this.startGuidedTourSubject.asObservable();
+ }
+ startGuidedTour() {
+ this.startGuidedTourSubject.next();
+ }
+};
+ModalService = __decorate([
+ Injectable({
+ providedIn: 'root',
+ })
+], ModalService);
+//# sourceMappingURL=modal.service.js.map
\ No newline at end of file
diff --git a/app/util/genericServices/modal.service.js.map b/app/util/genericServices/modal.service.js.map
new file mode 100644
index 000000000..aa800557c
--- /dev/null
+++ b/app/util/genericServices/modal.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"modal.service.js","sourceRoot":"","sources":["modal.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAKxB,WAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;QACG,2BAAsB,GAAG,IAAI,OAAO,EAAQ,CAAC;QAErD,qBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;IAKhE,CAAC;IAHC,eAAe;QACb,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;CACF,CAAA;AARY,YAAY;IAHxB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,YAAY,CAQxB"}
\ No newline at end of file
diff --git a/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.js b/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.js
new file mode 100644
index 000000000..41a00d7dd
--- /dev/null
+++ b/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.js
@@ -0,0 +1,75 @@
+import { __decorate } from "tslib";
+import { Injectable } from '@angular/core';
+import { throwError } from 'rxjs';
+import { catchError } from 'rxjs/operators';
+export let KommonitorConfigStorageService = class KommonitorConfigStorageService {
+ constructor(http) {
+ this.http = http;
+ }
+ postKeycloakConfig(jsonString) {
+ console.log("Trying to POST to config storage service to upload new keycloak config.");
+ const formdata = new FormData();
+ formdata.append("appConfig", new Blob([jsonString], { type: "application/json" }));
+ return this.http.post(__env.configStorageServerConfig.targetUrlToConfigStorageServer_keycloakConfig, formdata, {
+ headers: { "Accept": "text/plain" },
+ responseType: 'text'
+ }).pipe(catchError(error => {
+ console.error("Error while posting to config storage service.", error);
+ return throwError(error);
+ }));
+ }
+ postControlsConfig(jsonString) {
+ console.log("Trying to POST to config storage service to upload new controls config.");
+ const formdata = new FormData();
+ formdata.append("appConfig", new Blob([jsonString], { type: "application/json" }));
+ return this.http.post(__env.configStorageServerConfig.targetUrlToConfigStorageServer_controlsConfig, formdata, {
+ headers: { "Accept": "text/plain" },
+ responseType: 'text'
+ }).pipe(catchError(error => {
+ console.error("Error while posting to config storage service.", error);
+ return throwError(error);
+ }));
+ }
+ postAppConfig(jsString) {
+ console.log("Trying to POST to config storage service to upload new app config.");
+ const formdata = new FormData();
+ formdata.append("appConfig", new Blob([jsString], { type: "application/javascript" }));
+ return this.http.post(__env.configStorageServerConfig.targetUrlToConfigStorageServer_appConfig, formdata, {
+ headers: { "Accept": "text/plain" },
+ responseType: 'text'
+ }).pipe(catchError(error => {
+ console.error("Error while posting to config storage service.", error);
+ return throwError(error);
+ }));
+ }
+ getKeycloakConfig() {
+ return this.http.get(__env.configStorageServerConfig.targetUrlToConfigStorageServer_keycloakConfig, {
+ responseType: 'json'
+ }).pipe(catchError(error => {
+ console.error("Error while getting keycloak config from config storage service.", error);
+ return throwError(error);
+ }));
+ }
+ getControlsConfig() {
+ return this.http.get(__env.configStorageServerConfig.targetUrlToConfigStorageServer_controlsConfig, {
+ responseType: 'json'
+ }).pipe(catchError(error => {
+ console.error("Error while getting controls config from config storage service.", error);
+ return throwError(error);
+ }));
+ }
+ getAppConfig() {
+ return this.http.get(__env.configStorageServerConfig.targetUrlToConfigStorageServer_appConfig, {
+ responseType: 'text'
+ }).pipe(catchError(error => {
+ console.error("Error while getting app config from config storage service.", error);
+ return throwError(error);
+ }));
+ }
+};
+KommonitorConfigStorageService = __decorate([
+ Injectable({
+ providedIn: 'root'
+ })
+], KommonitorConfigStorageService);
+//# sourceMappingURL=kommonitor-config-storage.js.map
\ No newline at end of file
diff --git a/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.js.map b/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.js.map
new file mode 100644
index 000000000..00aec69c4
--- /dev/null
+++ b/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"kommonitor-config-storage.js","sourceRoot":"","sources":["kommonitor-config-storage.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.ts b/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.ts
index 8d7a4848d..c5eb3089c 100644
--- a/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.ts
+++ b/app/utils/kommonitorConfigStorageService/kommonitor-config-storage.ts
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
-
+import { environment } from 'env_backup';
@Injectable({
providedIn: 'root'
})
@@ -12,13 +12,18 @@ export class KommonitorConfigStorageService {
private http: HttpClient
) { }
+ /**
+ * Uploads a new Keycloak configuration to the configuration storage server.
+ * @param jsonString - The Keycloak configuration JSON as a string.
+ * @returns An Observable that can be subscribed to for handling the HTTP response or error.
+ */
postKeycloakConfig(jsonString: string): Observable {
- console.log("Trying to POST to config storage service to upload new keycloak config.");
+ console.log("Trying to POST to config storage service to upload new Keycloak config.");
const formdata = new FormData();
formdata.append("appConfig", new Blob([jsonString], { type: "application/json" }));
return this.http.post(
- __env.configStorageServerConfig.targetUrlToConfigStorageServer_keycloakConfig,
+ environment.configStorageServerConfig.targetUrlToConfigStorageServer_keycloakConfig,
formdata,
{
headers: { "Accept": "text/plain" },
@@ -32,13 +37,18 @@ export class KommonitorConfigStorageService {
);
}
+ /**
+ * Uploads a new controls configuration to the configuration storage server.
+ * @param jsonString - The controls configuration JSON as a string.
+ * @returns An Observable that can be subscribed to for handling the HTTP response or error.
+ */
postControlsConfig(jsonString: string): Observable {
console.log("Trying to POST to config storage service to upload new controls config.");
const formdata = new FormData();
formdata.append("appConfig", new Blob([jsonString], { type: "application/json" }));
return this.http.post(
- __env.configStorageServerConfig.targetUrlToConfigStorageServer_controlsConfig,
+ environment.configStorageServerConfig.targetUrlToConfigStorageServer_controlsConfig,
formdata,
{
headers: { "Accept": "text/plain" },
@@ -52,13 +62,18 @@ export class KommonitorConfigStorageService {
);
}
+ /**
+ * Uploads a new app configuration to the configuration storage server.
+ * @param jsString - The app configuration JavaScript as a string.
+ * @returns An Observable that can be subscribed to for handling the HTTP response or error.
+ */
postAppConfig(jsString: string): Observable {
console.log("Trying to POST to config storage service to upload new app config.");
const formdata = new FormData();
formdata.append("appConfig", new Blob([jsString], { type: "application/javascript" }));
return this.http.post(
- __env.configStorageServerConfig.targetUrlToConfigStorageServer_appConfig,
+ environment.configStorageServerConfig.targetUrlToConfigStorageServer_appConfig,
formdata,
{
headers: { "Accept": "text/plain" },
@@ -72,23 +87,31 @@ export class KommonitorConfigStorageService {
);
}
+ /**
+ * Retrieves the Keycloak configuration from the configuration storage server.
+ * @returns An Observable that can be subscribed to for handling the HTTP response or error.
+ */
getKeycloakConfig(): Observable {
return this.http.get(
- __env.configStorageServerConfig.targetUrlToConfigStorageServer_keycloakConfig,
+ environment.configStorageServerConfig.targetUrlToConfigStorageServer_keycloakConfig,
{
responseType: 'json'
}
).pipe(
catchError(error => {
- console.error("Error while getting keycloak config from config storage service.", error);
+ console.error("Error while getting Keycloak config from config storage service.", error);
return throwError(error);
})
);
}
+ /**
+ * Retrieves the controls configuration from the configuration storage server.
+ * @returns An Observable that can be subscribed to for handling the HTTP response or error.
+ */
getControlsConfig(): Observable {
return this.http.get(
- __env.configStorageServerConfig.targetUrlToConfigStorageServer_controlsConfig,
+ environment.configStorageServerConfig.targetUrlToConfigStorageServer_controlsConfig,
{
responseType: 'json'
}
@@ -100,9 +123,13 @@ export class KommonitorConfigStorageService {
);
}
+ /**
+ * Retrieves the app configuration from the configuration storage server.
+ * @returns An Observable that can be subscribed to for handling the HTTP response or error.
+ */
getAppConfig(): Observable {
return this.http.get(
- __env.configStorageServerConfig.targetUrlToConfigStorageServer_appConfig,
+ environment.configStorageServerConfig.targetUrlToConfigStorageServer_appConfig,
{
responseType: 'text'
}
diff --git a/app/utils/kommonitorDataExchangeService/kommonitor-data-exchange-service.js b/app/utils/kommonitorDataExchangeService/kommonitor-data-exchange-service.js
new file mode 100644
index 000000000..02295c956
--- /dev/null
+++ b/app/utils/kommonitorDataExchangeService/kommonitor-data-exchange-service.js
@@ -0,0 +1,2527 @@
+"use strict";
+angular.module('kommonitorDataExchange', ['kommonitorMap', 'kommonitorKeycloakHelper']);
+/**
+ * a common serviceInstance that holds all needed properties for a WPS service.
+ *
+ * This service represents a shared object ´which is used across the different
+ * application tabs/components like Setup, Capabilities, Execute etc.
+ *
+ * This way, one single service instance can be used to easily share values and
+ * parameters for each WPS operation represented by different Angular components
+ */
+angular
+ .module('kommonitorDataExchange', ['kommonitorCacheHelper', 'angularjs-dropdown-multiselect'])
+ .service('kommonitorDataExchangeService', ['$rootScope', '$timeout', '$interval', 'kommonitorMapService', 'kommonitorKeycloakHelperService',
+ 'kommonitorCacheHelperService',
+ '$http', '__env', '$q', 'Auth',
+ function ($rootScope, $timeout, $interval, kommonitorMapService, kommonitorKeycloakHelperService, kommonitorCacheHelperService, $http, __env, $q, Auth) {
+ let thisService = this;
+ this.appTitle = __env.appTitle;
+ this.customLogoURL = __env.customLogoURL;
+ this.customLogo_onClickURL = __env.customLogo_onClickURL;
+ this.customLogoWidth = __env.customLogoWidth;
+ this.customGreetingsContact_name = __env.customGreetingsContact_name;
+ this.customGreetingsContact_organisation = __env.customGreetingsContact_organisation;
+ this.customGreetingsContact_mail = __env.customGreetingsContact_mail;
+ this.customGreetingsTextInfoMessage = __env.customGreetingsTextInfoMessage; // maybe undefined or empty string
+ this.showDiagramExportButtons = true;
+ this.showGeoresourceExportButtons = true;
+ var numberOfDecimals = __env.numberOfDecimals;
+ const DATE_PREFIX = __env.indicatorDatePrefix;
+ var defaultColorForZeroValues = __env.defaultColorForZeroValues;
+ var defaultColorForNoDataValues = __env.defaultColorForNoDataValues;
+ var defaultColorForFilteredValues = __env.defaultColorForFilteredValues;
+ const defaultColorForOutliers_high = __env.defaultColorForOutliers_high;
+ const defaultBorderColorForOutliers_high = __env.defaultBorderColorForOutliers_high;
+ const defaultFillOpacityForOutliers_high = __env.defaultFillOpacityForOutliers_high;
+ const defaultColorForOutliers_low = __env.defaultColorForOutliers_low;
+ const defaultBorderColorForOutliers_low = __env.defaultBorderColorForOutliers_low;
+ const defaultFillOpacityForOutliers_low = __env.defaultFillOpacityForOutliers_low;
+ var self = this;
+ this.headlineIndicatorHierarchy = [];
+ this.computationIndicatorHierarchy = [];
+ this.topicIndicatorHierarchy = [];
+ this.topicIndicatorHierarchy_forOrderView = [];
+ this.topicGeoresourceHierarchy = [];
+ this.topicGeoresourceHierarchy_unmappedEntries = {};
+ this.georesourceMapKey_forUnmappedTopicReferences = "unmapped";
+ this.enableKeycloakSecurity = __env.enableKeycloakSecurity;
+ this.currentKeycloakLoginRoles = [];
+ this.currentKomMonitorLoginRoleNames = [];
+ this.currentKeycloakUser;
+ // MAP objects for available resource metadata in order to have quick access to datasets by ID
+ this.availableIndicators_map = new Map();
+ this.availableGeoresources_map = new Map();
+ this.availableSpatialUnits_map = new Map();
+ this.availableProcessScripts_map = new Map();
+ this.accessControl = [];
+ this.accessControl_map = new Map();
+ // Define translations, settings for dropdown-multiselect
+ this.multiselectDropdownTranslations = { checkAll: 'Alle auswählen', uncheckAll: 'Nichts auswählen', dynamicButtonTextSuffix: 'Werte ausgewählt',
+ buttonDefaultText: 'Objekteigenschaften auswählen', searchPlaceholder: 'Suchen...'
+ };
+ this.multiselectDropdownSettings = {
+ enableSearch: true, clearSearchOnClose: true,
+ scrollableHeight: '250px', scrollable: true,
+ buttonClasses: 'form-control btn-block',
+ template: '{{option}}', smartButtonTextConverter(skip, option) { return option; },
+ styleActive: true
+ };
+ // Filter out roles unrelated to kommonitor
+ this.setCurrentKomMonitorLoginRoleNames = function () {
+ var possibleRoles = ["manage-realm"];
+ this.accessControl.forEach(organizationalUnit => {
+ organizationalUnit.roles.forEach(role => {
+ possibleRoles.push(organizationalUnit.name + "-" + role.permissionLevel);
+ });
+ });
+ this.currentKomMonitorLoginRoleNames = this.currentKeycloakLoginRoles.filter(role => possibleRoles.includes(role));
+ };
+ this.setCurrentKomMonitorLoginRoleIds = function () {
+ this.currentKomMonitorLoginRoleIds = [];
+ // make a map of all role names currently logged in user according to pattern
+ // -
+ let roleNameMap_loggedIn = new Map();
+ for (const roleName of this.currentKeycloakLoginRoles) {
+ // roleName consists of -
+ roleNameMap_loggedIn.set(roleName, "");
+ }
+ // now iterate once over all possible KomMonitor roles and check if they are within previous map
+ this.accessControl.forEach(organizationalUnit => {
+ organizationalUnit.roles.forEach(role => {
+ if (roleNameMap_loggedIn.has(organizationalUnit.name + "-" + role.permissionLevel)) {
+ this.currentKomMonitorLoginRoleIds.push(role.roleId);
+ }
+ });
+ });
+ };
+ this.getCurrentKomMonitorLoginRoleIds = function () {
+ return this.currentKomMonitorLoginRoleIds;
+ };
+ this.isAllowedSpatialUnitForCurrentIndicator = function (spatialUnitMetadata) {
+ if (!this.selectedIndicator) {
+ return false;
+ }
+ if (!spatialUnitMetadata || !spatialUnitMetadata.spatialUnitLevel) {
+ return false;
+ }
+ var filteredApplicableUnits = this.selectedIndicator.applicableSpatialUnits.filter(function (applicableSpatialUnit) {
+ if (applicableSpatialUnit.spatialUnitId === spatialUnitMetadata.spatialUnitId) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ });
+ return filteredApplicableUnits.length > 0;
+ };
+ this.FEATURE_ID_PROPERTY_NAME = __env.FEATURE_ID_PROPERTY_NAME;
+ this.FEATURE_NAME_PROPERTY_NAME = __env.FEATURE_NAME_PROPERTY_NAME;
+ this.VALID_START_DATE_PROPERTY_NAME = __env.VALID_START_DATE_PROPERTY_NAME;
+ this.VALID_END_DATE_PROPERTY_NAME = __env.VALID_END_DATE_PROPERTY_NAME;
+ this.indicatorDatePrefix = __env.indicatorDatePrefix;
+ this.datePickerOptions = {
+ autoclose: true,
+ language: 'de',
+ format: 'yyyy-mm-dd'
+ };
+ this.disableIndicatorDatePicker = false;
+ this.getLimitedDatePickerOptions = function (availableDates) {
+ var months = new Map();
+ var years = new Map();
+ var yearMonths = new Map();
+ for (const dateString of availableDates) {
+ var date = new Date(dateString);
+ var month = date.getMonth() + 1;
+ var year = date.getFullYear();
+ var yearMonth = year + "-" + month;
+ months.set(month, month);
+ years.set(year, year);
+ yearMonths.set(yearMonth, yearMonth);
+ }
+ var newDatePickerOptions = {
+ autoclose: true,
+ language: 'de',
+ format: 'yyyy-mm-dd',
+ endDate: new Date(availableDates[availableDates.length - 1]),
+ startDate: new Date(availableDates[0]),
+ defaultViewDate: new Date(availableDates[availableDates.length - 1]),
+ beforeShowDay: function (date) {
+ var month = (date.getMonth() + 1);
+ if (month < 10) {
+ month = "0" + month;
+ }
+ var day = (date.getDate());
+ if (day < 10) {
+ day = "0" + day;
+ }
+ var dateString = date.getFullYear() + "-" + month + "-" + day;
+ if (availableDates.includes(dateString)) {
+ return "enabled-datepicker-item";
+ }
+ else {
+ return "disabled disabled-datepicker-item";
+ }
+ },
+ beforeShowMonth: function (date) {
+ var month = date.getMonth() + 1;
+ var year = date.getFullYear();
+ var yearMonth = year + "-" + month;
+ if (yearMonths.has(yearMonth)) {
+ return "enabled-datepicker-item";
+ }
+ else {
+ return "disabled disabled-datepicker-item";
+ }
+ },
+ beforeShowYear: function (date) {
+ var year = date.getFullYear();
+ if (years.has(year)) {
+ return "enabled-datepicker-item";
+ }
+ else {
+ return "disabled disabled-datepicker-item";
+ }
+ },
+ beforeShowDecade: function (date) {
+ var year = date.getFullYear();
+ if (years.has(year)) {
+ return "enabled-datepicker-item";
+ }
+ else {
+ return "disabled disabled-datepicker-item";
+ }
+ },
+ beforeShowCentury: function (date) {
+ var year = date.getFullYear();
+ if (years.has(year)) {
+ return "enabled-datepicker-item";
+ }
+ else {
+ return "disabled disabled-datepicker-item";
+ }
+ }
+ };
+ return newDatePickerOptions;
+ };
+ this.adminUserName = __env.adminUserName;
+ this.adminPassword = __env.adminPassword;
+ this.adminIsLoggedIn = false;
+ this.availablePoiMarkerColors = [
+ {
+ "colorName": "red",
+ "colorValue": "rgb(205,59,40)"
+ },
+ {
+ "colorName": "white",
+ "colorValue": "rgb(255,255,255)"
+ },
+ {
+ "colorName": "orange",
+ "colorValue": "rgb(235,144,46)"
+ },
+ {
+ "colorName": "beige",
+ "colorValue": "rgb(255,198,138)"
+ },
+ {
+ "colorName": "green",
+ "colorValue": "rgb(108,166,36)"
+ },
+ {
+ "colorName": "blue",
+ "colorValue": "rgb(53,161,209)"
+ },
+ {
+ "colorName": "purple",
+ "colorValue": "rgb(198,77,175)"
+ },
+ {
+ "colorName": "pink",
+ "colorValue": "rgb(255,138,232)"
+ },
+ {
+ "colorName": "gray",
+ "colorValue": "rgb(163,163,163)"
+ },
+ {
+ "colorName": "black",
+ "colorValue": "rgb(47,47,47)"
+ }
+ ];
+ this.availableLoiDashArrayObjects = [
+ {
+ "svgString": ' ',
+ "dashArrayValue": ""
+ },
+ {
+ "svgString": ' ',
+ "dashArrayValue": "20"
+ },
+ {
+ "svgString": ' ',
+ "dashArrayValue": "20 10"
+ },
+ {
+ "svgString": ' ',
+ "dashArrayValue": "20 10 5 10"
+ },
+ {
+ "svgString": ' ',
+ "dashArrayValue": "5"
+ }
+ ];
+ this.getLoiDashSvgFromStringValue = function (loiDashArrayString) {
+ for (const loiDashArrayObject of this.availableLoiDashArrayObjects) {
+ if (loiDashArrayObject.dashArrayValue == loiDashArrayString) {
+ return loiDashArrayObject.svgString;
+ }
+ }
+ };
+ this.kommonitorMapServiceInstance = kommonitorMapService;
+ this.updateIntervalOptions = __env.updateIntervalOptions;
+ this.indicatorTypeOptions = __env.indicatorTypeOptions;
+ this.indicatorUnitOptions = __env.indicatorUnitOptions.sort();
+ this.indicatorCreationTypeOptions = __env.indicatorCreationTypeOptions;
+ this.geodataSourceFormats = __env.geodataSourceFormats;
+ this.anySideBarIsShown = false;
+ this.isMeasureOfValueChecked = false;
+ this.isBalanceChecked = false;
+ this.indicatorAndMetadataAsBalance;
+ this.tmpIndicatorGeoJSON = undefined;
+ this.wmsUrlForSelectedIndicator = undefined;
+ this.wfsUrlForSelectedIndicator = undefined;
+ this.baseUrlToKomMonitorDataAPI = __env.apiUrl + __env.basePath;
+ this.simplifyGeometriesParameterName = __env.simplifyGeometriesParameterName;
+ this.simplifyGeometriesOptions = __env.simplifyGeometriesOptions;
+ this.simplifyGeometries = __env.simplifyGeometries;
+ this.wmsDatasets = __env.wmsDatasets.sort((a, b) => (a.title > b.title) ? 1 : -1);
+ this.wfsDatasets = __env.wfsDatasets.sort((a, b) => (a.title > b.title) ? 1 : -1);
+ this.wmsDatasets_keywordFiltered = JSON.parse(JSON.stringify(this.wmsDatasets));
+ this.wfsDatasets_keywordFiltered = JSON.parse(JSON.stringify(this.wfsDatasets));
+ this.fileDatasets = [];
+ this.availableRoles = [];
+ this.availableUsers = [];
+ this.availableProcessScripts = [];
+ this.isochroneLegend;
+ this.useOutlierDetectionOnIndicator = __env.useOutlierDetectionOnIndicator;
+ this.classifyZeroSeparately = __env.classifyZeroSeparately;
+ this.classifyUsingWholeTimeseries = __env.classifyUsingWholeTimeseries;
+ this.useNoDataToggle = __env.useNoDataToggle;
+ this.getUpdateIntervalDisplayValue = function (apiValue) {
+ for (const updateIntervalOption of this.updateIntervalOptions) {
+ if (updateIntervalOption.apiName === apiValue) {
+ return updateIntervalOption.displayName;
+ }
+ }
+ };
+ this.getBaseUrlToKomMonitorDataAPI_spatialResource = function () {
+ return this.baseUrlToKomMonitorDataAPI + kommonitorCacheHelperService.spatialResourceGETUrlPath_forAuthentication;
+ };
+ this.setProcessScripts = function (scriptsArray) {
+ this.availableProcessScripts = scriptsArray;
+ this.availableProcessScripts_map = new Map();
+ for (const scriptMetadata of scriptsArray) {
+ this.availableProcessScripts_map.set(scriptMetadata.scriptId, scriptMetadata);
+ }
+ };
+ this.addSingleProcessScriptMetadata = function (processScriptMetadata) {
+ let tmpArray = [processScriptMetadata];
+ Array.prototype.push.apply(tmpArray, this.availableProcessScripts);
+ this.availableProcessScripts = tmpArray;
+ this.availableProcessScripts_map.set(processScriptMetadata.scriptId, processScriptMetadata);
+ };
+ this.replaceSingleProcessScriptMetadata = function (processScriptMetadata) {
+ for (let index = 0; index < this.availableProcessScripts.length; index++) {
+ let processScript = this.availableProcessScripts[index];
+ if (processScript.scriptId == processScriptMetadata.scriptId) {
+ this.availableProcessScripts[index] = processScriptMetadata;
+ break;
+ }
+ }
+ this.availableProcessScripts_map.set(processScriptMetadata.scriptId, processScriptMetadata);
+ };
+ this.deleteSingleProcessScriptMetadata = function (processScriptId) {
+ for (let index = 0; index < this.availableProcessScripts.length; index++) {
+ const processScript = this.availableProcessScripts[index];
+ if (processScript.scriptId == processScriptId) {
+ this.availableProcessScripts.splice(index, 1);
+ break;
+ }
+ }
+ this.availableProcessScripts_map.delete(processScriptId);
+ };
+ this.getProcessScriptMetadataById = function (scriptId) {
+ return this.availableProcessScripts_map.get(scriptId);
+ };
+ // ERROR HANDLING
+ this.errorMessage = undefined;
+ this.hideErrorAlert = function () {
+ $(".mapApplicationErrorAlert").hide();
+ };
+ this.displayMapApplicationError = function (error) {
+ $timeout(function () {
+ if (error.data) {
+ self.errorMessage = self.syntaxHighlightJSON(error.data);
+ }
+ if (error.message) {
+ self.errorMessage = self.syntaxHighlightJSON(error.message);
+ }
+ else {
+ self.errorMessage = self.syntaxHighlightJSON(error);
+ }
+ // $rootScope.$apply();
+ $rootScope.$broadcast("hideLoadingIconOnMap");
+ $(".mapApplicationErrorAlert").show();
+ }, 1000);
+ };
+ // SPATIAL UNITS
+ this.availableSpatialUnits = [];
+ this.selectedSpatialUnit;
+ this.selectedDate;
+ this.setSpatialUnits = function (spatialUnitsArray) {
+ this.availableSpatialUnits = spatialUnitsArray;
+ this.availableSpatialUnits_map = new Map();
+ for (const spatialUnitMetadata of spatialUnitsArray) {
+ this.availableSpatialUnits_map.set(spatialUnitMetadata.spatialUnitId, spatialUnitMetadata);
+ }
+ };
+ this.addSingleSpatialUnitMetadata = function (spatialUnitMetadata) {
+ let tmpArray = [spatialUnitMetadata];
+ Array.prototype.push.apply(tmpArray, this.availableSpatialUnits);
+ this.availableSpatialUnits = tmpArray;
+ this.availableSpatialUnits_map.set(spatialUnitMetadata.spatialUnitId, spatialUnitMetadata);
+ };
+ this.replaceSingleSpatialUnitMetadata = function (spatialUnitMetadata) {
+ for (let index = 0; index < this.availableSpatialUnits.length; index++) {
+ let spatialUnit = this.availableSpatialUnits[index];
+ if (spatialUnit.spatialUnitId == spatialUnitMetadata.spatialUnitId) {
+ this.availableSpatialUnits[index] = spatialUnitMetadata;
+ break;
+ }
+ }
+ this.availableSpatialUnits_map.set(spatialUnitMetadata.spatialUnitId, spatialUnitMetadata);
+ };
+ this.deleteSingleSpatialUnitMetadata = function (spatialUnitId) {
+ for (let index = 0; index < this.availableSpatialUnits.length; index++) {
+ const spatialUnit = this.availableSpatialUnits[index];
+ if (spatialUnit.spatialUnitId == spatialUnitId) {
+ this.availableSpatialUnits.splice(index, 1);
+ break;
+ }
+ }
+ this.availableSpatialUnits_map.delete(spatialUnitId);
+ };
+ // GEORESOURCES
+ this.availableGeoresources = [];
+ this.displayableGeoresources = [];
+ this.displayableGeoresources_keywordFiltered = [];
+ this.displayableGeoresources_keywordFiltered_forAlphabeticalDisplay = {};
+ this.selectedGeoresource;
+ this.setGeoresources = function (georesourcesArray) {
+ this.availableGeoresources = georesourcesArray;
+ this.availableGeoresources_map = new Map();
+ for (const georesourceMetadata of georesourcesArray) {
+ this.availableGeoresources_map.set(georesourceMetadata.georesourceId, georesourceMetadata);
+ }
+ this.displayableGeoresources = this.availableGeoresources.filter(item => self.isDisplayableGeoresource(item));
+ this.displayableGeoresources_keywordFiltered = JSON.parse(JSON.stringify(this.displayableGeoresources));
+ this.wmsDatasets_keywordFiltered = JSON.parse(JSON.stringify(this.wmsDatasets));
+ this.wfsDatasets_keywordFiltered = JSON.parse(JSON.stringify(this.wfsDatasets));
+ this.displayableGeoresources_keywordFiltered_forAlphabeticalDisplay = {
+ poiData: this.displayableGeoresources_keywordFiltered.filter(item => item.isPOI),
+ loiData: this.displayableGeoresources_keywordFiltered.filter(item => item.isLOI),
+ aoiData: this.displayableGeoresources_keywordFiltered.filter(item => item.isAOI),
+ wmsData: this.wmsDatasets_keywordFiltered,
+ wfsData: this.wfsDatasets_keywordFiltered
+ };
+ };
+ this.addSingleGeoresourceMetadata = function (georesourceMetadata) {
+ let tmpArray = [georesourceMetadata];
+ Array.prototype.push.apply(tmpArray, this.availableGeoresources);
+ this.availableGeoresources = tmpArray;
+ this.availableGeoresources_map.set(georesourceMetadata.georesourceId, georesourceMetadata);
+ };
+ this.replaceSingleGeoresourceMetadata = function (georesourceMetadata) {
+ for (let index = 0; index < this.availableGeoresources.length; index++) {
+ let georesource = this.availableGeoresources[index];
+ if (georesource.georesourceId == georesourceMetadata.georesourceId) {
+ this.availableGeoresources[index] = georesourceMetadata;
+ break;
+ }
+ }
+ this.availableGeoresources_map.set(georesourceMetadata.georesourceId, georesourceMetadata);
+ };
+ this.deleteSingleGeoresourceMetadata = function (georesourceId) {
+ for (let index = 0; index < this.availableGeoresources.length; index++) {
+ const georesource = this.availableGeoresources[index];
+ if (georesource.georesourceId == georesourceId) {
+ this.availableGeoresources.splice(index, 1);
+ break;
+ }
+ }
+ this.availableGeoresources_map.delete(georesourceId);
+ };
+ // INDICATORS
+ this.availableIndicators = [];
+ this.displayableIndicators = [];
+ this.selectedIndicator;
+ // backup used when switching themes --< this might make selectedIndicator undefined due to filtering list of theme-matching indicators
+ this.selectedIndicatorBackup;
+ this.wmsUrlForSelectedIndicator;
+ this.wfsUrlForSelectedIndicator;
+ this.selectedIndicatorLegendURL;
+ this.measureOfValue = 51;
+ // updateInterval (from kommonitor data management api) = ['ARBITRARY', 'MONTHLY', 'QUARTERLY', 'HALF_YEARLY', 'YEARLY']
+ this.updateInterval = new Map();
+ this.updateInterval.set("ARBITRARY", "beliebig");
+ this.updateInterval.set("YEARLY", "jährlich");
+ this.updateInterval.set("HALF_YEARLY", "halbjährig");
+ this.updateInterval.set("MONTHLY", "monatlich");
+ this.updateInterval.set("QUARTERLY", "vierteljährlich");
+ this.setIndicators = function (indicatorsArray) {
+ this.availableIndicators = indicatorsArray;
+ this.availableIndicators_map = new Map();
+ for (const indicatorMetadata of indicatorsArray) {
+ this.availableIndicators_map.set(indicatorMetadata.indicatorId, indicatorMetadata);
+ }
+ };
+ this.addSingleIndicatorMetadata = function (indicatorMetadata) {
+ let tmpArray = [indicatorMetadata];
+ Array.prototype.push.apply(tmpArray, this.availableIndicators);
+ this.availableIndicators = tmpArray;
+ this.availableIndicators_map.set(indicatorMetadata.indicatorId, indicatorMetadata);
+ };
+ this.replaceSingleIndicatorMetadata = function (indicatorMetadata) {
+ for (let index = 0; index < this.availableIndicators.length; index++) {
+ let indicator = this.availableIndicators[index];
+ if (indicator.indicatorId == indicatorMetadata.indicatorId) {
+ this.availableIndicators[index] = indicatorMetadata;
+ break;
+ }
+ }
+ this.availableIndicators_map.set(indicatorMetadata.indicatorId, indicatorMetadata);
+ };
+ this.deleteSingleIndicatorMetadata = function (indicatorId) {
+ for (let index = 0; index < this.availableIndicators.length; index++) {
+ const indicator = this.availableIndicators[index];
+ if (indicator.indicatorId == indicatorId) {
+ this.availableIndicators.splice(index, 1);
+ break;
+ }
+ }
+ this.availableIndicators_map.delete(indicatorId);
+ };
+ // TOPICS
+ this.availableTopics = [];
+ this.selectedTopic;
+ this.setTopics = function (topicsArray) {
+ this.availableTopics = topicsArray;
+ };
+ this.topicHierarchyContainsGeoresource = function (topic, georesourceMetadata) {
+ // luckily, the topicReference is defined exactly like for indicators
+ // hence we can simply refer to that method
+ return this.topicHierarchyContainsIndicator(topic, georesourceMetadata);
+ };
+ this.topicHierarchyContainsWms = function (topic, wmsMetadata) {
+ // luckily, the topicReference is defined exactly like for indicators
+ // hence we can simply refer to that method
+ return this.topicHierarchyContainsIndicator(topic, wmsMetadata);
+ };
+ this.topicHierarchyContainsWfs = function (topic, wfsMetadata) {
+ // luckily, the topicReference is defined exactly like for indicators
+ // hence we can simply refer to that method
+ return this.topicHierarchyContainsIndicator(topic, wfsMetadata);
+ };
+ this.topicHierarchyContainsIndicator = function (topic, indicatorMetadata) {
+ if (topic === null || topic === "") {
+ if (indicatorMetadata.topicReference === null || indicatorMetadata.topicReference === "" || !this.referencedTopicIdExists(indicatorMetadata.topicReference)) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ if (topic.topicId === indicatorMetadata.topicReference) {
+ return true;
+ }
+ else {
+ return this.anySubTopicContainsIndicator(topic, indicatorMetadata);
+ }
+ };
+ this.anySubTopicContainsIndicator = function (topic, indicatorMetadata) {
+ var isContained = false;
+ for (const subTopic of topic.subTopics) {
+ isContained = this.topicHierarchyContainsIndicator(subTopic, indicatorMetadata);
+ if (isContained) {
+ break;
+ }
+ }
+ return isContained;
+ };
+ // topic may be null
+ this.getGeoresourceDatasets = function (topic, georesourceNameFilter, showPOI, showLOI, showAOI, showWMS, showWFS) {
+ var availableGeoresources = this.getAvailableGeoresources(topic, georesourceNameFilter, showPOI, showLOI, showAOI);
+ var wmsDatasets = this.getAvailableWmsDatasets(topic, georesourceNameFilter, showWMS);
+ var wfsDatasets = this.getAvailableWfsDatasets(topic, georesourceNameFilter, showWFS);
+ var datasets = availableGeoresources.concat(wmsDatasets).concat(wfsDatasets);
+ return datasets;
+ };
+ this.getNumberOfGeoresources = function (topic, georesourceNameFilter, showPOI, showLOI, showAOI, showWMS, showWFS) {
+ var numberOfAvailableGeoresources = this.getNumberOfAvailableGeoresources(topic, georesourceNameFilter, showPOI, showLOI, showAOI);
+ var numberOfWmsDatasets = this.getNumberOfAvailableWmsDatasets(topic, georesourceNameFilter, showWMS);
+ var numberOfWfsDatasets = this.getNumberOfAvailableWfsDatasets(topic, georesourceNameFilter, showWFS);
+ var numberOfResources = numberOfAvailableGeoresources + numberOfWmsDatasets + numberOfWfsDatasets;
+ return numberOfResources;
+ };
+ var filterGeoresourcesByTypes = function (georesourceMetadataArray, showPOI, showLOI, showAOI) {
+ if (!showPOI && !showLOI && !showAOI) {
+ return [];
+ }
+ return georesourceMetadataArray.filter(georesourceMetadata => {
+ if (georesourceMetadata.isPOI) {
+ if (showPOI) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ else if (georesourceMetadata.isLOI) {
+ if (showLOI) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ else if (georesourceMetadata.isAOI) {
+ if (showAOI) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ else {
+ return false;
+ }
+ });
+ };
+ this.getAvailableGeoresources = function (topic, georesourceNameFilter, showPOI, showLOI, showAOI) {
+ var georesources = [];
+ var filteredGeoresources = this.availableGeoresources;
+ filteredGeoresources = filterByGeoresourceNamesToHide(filteredGeoresources);
+ if (georesourceNameFilter && georesourceNameFilter != "") {
+ filteredGeoresources = filterArrayObjectsByValue(filteredGeoresources, georesourceNameFilter);
+ }
+ filteredGeoresources = filterGeoresourcesByTypes(filteredGeoresources, showPOI, showLOI, showAOI);
+ for (const georesourceMetadata of filteredGeoresources) {
+ if (this.topicHierarchyContainsGeoresource(topic, georesourceMetadata)) {
+ georesources.push(georesourceMetadata);
+ }
+ }
+ return georesources;
+ };
+ this.getNumberOfAvailableGeoresources = function (topic, georesourceNameFilter, showPOI, showLOI, showAOI) {
+ return this.getAvailableGeoresources(topic, georesourceNameFilter, showPOI, showLOI, showAOI).length;
+ };
+ this.getAvailableWmsDatasets = function (topic, georesourceNameFilter, showWMS) {
+ if (!showWMS) {
+ return [];
+ }
+ var wmsDatasets = [];
+ var filteredWmsDatasets = this.wmsDatasets;
+ if (georesourceNameFilter && georesourceNameFilter != "") {
+ filteredWmsDatasets = filterArrayObjectsByValue(filteredWmsDatasets, georesourceNameFilter);
+ }
+ for (const wmsMetadata of filteredWmsDatasets) {
+ if (this.topicHierarchyContainsWms(topic, wmsMetadata)) {
+ wmsDatasets.push(wmsMetadata);
+ }
+ }
+ return wmsDatasets;
+ };
+ this.getNumberOfAvailableWmsDatasets = function (topic, georesourceNameFilter, showWMS) {
+ if (!showWMS) {
+ return 0;
+ }
+ return this.getAvailableWmsDatasets(topic, georesourceNameFilter, showWMS).length;
+ };
+ this.getAvailableWfsDatasets = function (topic, georesourceNameFilter, showWFS) {
+ if (!showWFS) {
+ return [];
+ }
+ var wfsDatasets = [];
+ var filteredWfsDatasets = this.wfsDatasets;
+ if (georesourceNameFilter && georesourceNameFilter != "") {
+ filteredWfsDatasets = filterArrayObjectsByValue(filteredWfsDatasets, georesourceNameFilter);
+ }
+ for (const wfsMetadata of filteredWfsDatasets) {
+ if (this.topicHierarchyContainsWms(topic, wfsMetadata)) {
+ wfsDatasets.push(wfsMetadata);
+ }
+ }
+ return wfsDatasets;
+ };
+ this.getNumberOfAvailableWfsDatasets = function (topic, georesourceNameFilter, showWFS) {
+ if (!showWFS) {
+ return 0;
+ }
+ return this.getAvailableWfsDatasets(topic, georesourceNameFilter, showWFS).length;
+ };
+ this.getNumberOfIndicators = function (topic, indicatorNameFilter) {
+ var numberOfIndicators = 0;
+ var filteredIndicators = this.availableIndicators;
+ if (indicatorNameFilter && indicatorNameFilter != "") {
+ filteredIndicators = filterArrayObjectsByValue(this.availableIndicators, indicatorNameFilter);
+ }
+ filteredIndicators = filterByIndicatorNamesToHide(filteredIndicators);
+ for (const indicatorMetadata of filteredIndicators) {
+ if (this.topicHierarchyContainsIndicator(topic, indicatorMetadata)) {
+ numberOfIndicators++;
+ }
+ }
+ return numberOfIndicators;
+ };
+ var filterByIndicatorNamesToHide = function (filteredIndicators) {
+ return filteredIndicators.filter(indicatorMetadata => {
+ return isDisplayableIndicator(indicatorMetadata);
+ });
+ };
+ var filterByGeoresourceNamesToHide = function (filteredGeoresources) {
+ return filteredGeoresources.filter(georesourceMetadata => {
+ return self.isDisplayableGeoresource(georesourceMetadata);
+ });
+ };
+ var filterArrayObjectsByValue = function (array, string) {
+ return array.filter(o => {
+ return Object.keys(o).some(k => {
+ if (typeof o[k] === 'string')
+ return o[k].toLowerCase().includes(string.toLowerCase());
+ });
+ });
+ };
+ this.getIndicatorMetadataById = function (indicatorId) {
+ return this.availableIndicators_map.get(indicatorId);
+ };
+ this.getGeoresourceMetadataById = function (georesourceId) {
+ return this.availableGeoresources_map.get(georesourceId);
+ };
+ this.getSpatialUnitMetadataById = function (spatialUnitId) {
+ return this.availableSpatialUnits_map.get(spatialUnitId);
+ };
+ this.getIndicatorAbbreviationFromIndicatorId = function (indicatorId) {
+ for (var indicatorMetadata of this.availableIndicators) {
+ if (indicatorMetadata.indicatorId === indicatorId) {
+ return indicatorMetadata.abbreviation;
+ }
+ }
+ };
+ this.getIndicatorNameFromIndicatorId = function (indicatorId) {
+ for (var indicatorMetadata of this.availableIndicators) {
+ if (indicatorMetadata.indicatorId === indicatorId) {
+ return indicatorMetadata.indicatorName;
+ }
+ }
+ };
+ this.getGeoresourceNameFromGeoresourceId = function (georesourceId) {
+ for (var georesourceMetadata of this.availableGeoresources) {
+ if (georesourceMetadata.georesourceId === georesourceId) {
+ return georesourceMetadata.datasetName;
+ }
+ }
+ };
+ this.referencedTopicIdExists = function (topicId) {
+ var topicHierarchy = this.getTopicHierarchyForTopicId(topicId);
+ if (topicHierarchy.length === 0) {
+ return false;
+ }
+ else {
+ return true;
+ }
+ };
+ this.getTopicHierarchyForTopicId = function (topicReferenceId) {
+ // create an array respresenting the topic hierarchy
+ // i.e. [mainTopic_firstTier, subTopic_secondTier, subTopic_thirdTier, ...]
+ var topicHierarchyArray = [];
+ for (var i = 0; i < this.availableTopics.length; i++) {
+ var mainTopicCandidate = this.availableTopics[i];
+ if (mainTopicCandidate.topicId === topicReferenceId) {
+ topicHierarchyArray.push(mainTopicCandidate);
+ break;
+ }
+ else if (this.findIdInAnySubTopicHierarchy(topicReferenceId, mainTopicCandidate.subTopics)) {
+ topicHierarchyArray.push(mainTopicCandidate);
+ topicHierarchyArray = this.addSubTopicHierarchy(topicHierarchyArray, topicReferenceId, mainTopicCandidate.subTopics);
+ }
+ }
+ return topicHierarchyArray;
+ };
+ this.findIdInAnySubTopicHierarchy = function (topicReferenceId, subTopicsArray) {
+ for (let index = 0; index < subTopicsArray.length; index++) {
+ const subTopicCandidate = subTopicsArray[index];
+ if (subTopicCandidate.topicId === topicReferenceId) {
+ return true;
+ }
+ else if (this.findIdInAnySubTopicHierarchy(topicReferenceId, subTopicCandidate.subTopics)) {
+ return true;
+ }
+ }
+ return false;
+ };
+ this.addSubTopicHierarchy = function (topicHierarchyArray, topicReferenceId, subTopicsArray) {
+ for (let index = 0; index < subTopicsArray.length; index++) {
+ const subTopicCandidate = subTopicsArray[index];
+ if (subTopicCandidate.topicId === topicReferenceId) {
+ topicHierarchyArray.push(subTopicCandidate);
+ break;
+ }
+ else if (this.findIdInAnySubTopicHierarchy(topicReferenceId, subTopicCandidate.subTopics)) {
+ topicHierarchyArray.push(subTopicCandidate);
+ topicHierarchyArray = this.addSubTopicHierarchy(topicHierarchyArray, topicReferenceId, subTopicCandidate.subTopics);
+ }
+ }
+ return topicHierarchyArray;
+ };
+ this.syntaxHighlightJSON = function (json) {
+ if (typeof json != 'string') {
+ json = JSON.stringify(json, undefined, 2);
+ }
+ json = json.replace(/&/g, '&').replace(//g, '>');
+ return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
+ var cls = 'number';
+ if (/^"/.test(match)) {
+ if (/:$/.test(match)) {
+ cls = 'key';
+ }
+ else {
+ cls = 'string';
+ }
+ }
+ else if (/true|false/.test(match)) {
+ cls = 'boolean';
+ }
+ else if (/null/.test(match)) {
+ cls = 'null';
+ }
+ return '' + match + ' ';
+ });
+ };
+ this.extendKeycloakSession = function () {
+ // Auth.keycloak.updateToken(5).then(function () {
+ // console.log("keycloak token refreshed.");
+ // }).catch(function () {
+ // console.error('Failed to refresh token. Will redirect to Login screen');
+ // Auth.keycloak.login();
+ // });
+ Auth.keycloak.login();
+ };
+ this.tryLogoutUser = function () {
+ Auth.keycloak.logout();
+ };
+ var startCheckSessionExpiration = function () {
+ $interval(function () {
+ // minutes until current browser session invalidates
+ // use refresh token as this is used when calling "updateToken" keycloak method. Only if that is invalid the whole session is invalid
+ self.keycloakTokenExpirationInfo = Math.round((Auth.keycloak.refreshTokenParsed.exp + Auth.keycloak.timeSkew - new Date().getTime() / 1000) / 60);
+ if (!self.keycloakTokenExpirationInfo) {
+ self.keycloakTokenExpirationInfo = 30;
+ }
+ // if session is expired then show warning to User!
+ if (self.keycloakTokenExpirationInfo < 0) {
+ self.keycloakTokenExpirationInfo = 0;
+ self.displayMapApplicationError("Ihre aktuelle Login-Session ist abgelaufen. Sie müssen sich neu einloggen. Nutzen Sie dazu das User-Menü oben rechts.");
+ }
+ }, 1000 * 60);
+ };
+ /*
+ * FETCH INITIAL METADATA ABOUT EACH RESOURCE
+ */
+ // $rootScope.$on("$locationChangeStart", function(event){
+ // self.fetchAllMetadata();
+ // self.adminIsLoggedIn = false;
+ // });
+ this.fetchAllMetadata = async function () {
+ console.log("fetching all metadata from management component");
+ // var metadataPromises = [topicsPromise, usersPromise, rolesPromise, spatialUnitsPromise, georesourcesPromise, indicatorsPromise, scriptsPromise];
+ var metadataPromises = [];
+ if (Auth.keycloak.authenticated) {
+ await Auth.keycloak.loadUserProfile()
+ .then(function (profile) {
+ // set user profile
+ self.currentKeycloakUser = profile;
+ console.log("User logged in with email: " + profile.email);
+ if (Auth.keycloak.tokenParsed && Auth.keycloak.tokenParsed.realm_access && Auth.keycloak.tokenParsed.realm_access.roles) {
+ self.currentKeycloakLoginRoles = Auth.keycloak.tokenParsed.realm_access.roles;
+ if (Auth.keycloak.tokenParsed.resource_access["realm-management"]) {
+ self.isRealmAdmin = true;
+ self.currentKeycloakLoginRoles = self.currentKeycloakLoginRoles.concat(Auth.keycloak.tokenParsed.resource_access["realm-management"].roles);
+ }
+ }
+ else {
+ self.currentKeycloakLoginRoles = [];
+ }
+ // set token expiration
+ startCheckSessionExpiration();
+ })
+ .catch(function () {
+ console.log('Failed to load user profile');
+ });
+ var promise = await this.fetchAccessControlMetadata(self.currentKeycloakLoginRoles);
+ metadataPromises.push(promise);
+ }
+ //TODO revise metadata fecthing for protected endpoints
+ var scriptsPromise = await this.fetchIndicatorScriptsMetadata(self.currentKeycloakLoginRoles);
+ var topicsPromise = await this.fetchTopicsMetadata(self.currentKeycloakLoginRoles);
+ var spatialUnitsPromise = await this.fetchSpatialUnitsMetadata(self.currentKeycloakLoginRoles);
+ var georesourcesPromise = await this.fetchGeoresourcesMetadata(self.currentKeycloakLoginRoles);
+ var indicatorsPromise = await this.fetchIndicatorsMetadata(self.currentKeycloakLoginRoles);
+ metadataPromises.push(scriptsPromise);
+ metadataPromises.push(topicsPromise);
+ metadataPromises.push(spatialUnitsPromise);
+ metadataPromises.push(georesourcesPromise);
+ metadataPromises.push(indicatorsPromise);
+ $q.all(metadataPromises).then(function successCallback(successArray) {
+ self.modifyIndicatorApplicableSpatialUnitsForLoginRoles();
+ self.buildHeadlineIndicatorHierarchy();
+ self.buildTopicIndicatorHierarchy();
+ self.topicIndicatorHierarchy_forOrderView = JSON.parse(JSON.stringify(self.topicIndicatorHierarchy));
+ self.buildComputationIndicatorHierarchy();
+ self.buildTopicGeoresourceHierarchy();
+ console.log("Metadata fetched. Call initialize event.");
+ onMetadataLoadingCompleted();
+ $timeout(function () {
+ $('.list-group-item > .collapseTrigger').on('click', function () {
+ $('.glyphicon', this)
+ .toggleClass('glyphicon-chevron-right')
+ .toggleClass('glyphicon-chevron-down');
+ });
+ });
+ }, function errorCallback(errorArray) {
+ // todo error handling
+ self.displayMapApplicationError("Beim Laden der erforderlichen Anwendungsdaten ist ein Fehler aufgetreten. Bitte wenden Sie sich an Ihren Administrator.");
+ $rootScope.$broadcast("initialMetadataLoadingFailed", errorArray);
+ });
+ };
+ this.modifyIndicatorApplicableSpatialUnitsForLoginRoles = function () {
+ var availableSpatialUnitNames = [];
+ for (const spatialUnit of this.availableSpatialUnits) {
+ availableSpatialUnitNames.push(spatialUnit.spatialUnitLevel);
+ }
+ for (const indicator of this.availableIndicators) {
+ indicator.applicableSpatialUnits = indicator.applicableSpatialUnits.filter(applicableSpatialUnit => availableSpatialUnitNames.includes(applicableSpatialUnit.spatialUnitName));
+ }
+ this.displayableIndicators = this.availableIndicators.filter(item => isDisplayableIndicator(item));
+ this.displayableIndicators_keywordFiltered = JSON.parse(JSON.stringify(this.displayableIndicators));
+ };
+ this.buildTopicsMap_indicators = function (indicatorTopics) {
+ var topicsMap = new Map();
+ for (const topic of indicatorTopics) {
+ topicsMap.set(topic.topicId, []);
+ if (topic.subTopics.length > 0) {
+ topicsMap = this.addSubTopicsToMap_indicators(topic.subTopics, topicsMap);
+ }
+ }
+ return topicsMap;
+ };
+ this.buildTopicsMap_georesources = function (georesourceTopics) {
+ var topicsMap = new Map();
+ for (const topic of georesourceTopics) {
+ topicsMap.set(topic.topicId, {
+ poiDatasets: [],
+ loiDatasets: [],
+ aoiDatasets: [],
+ wmsDatasets: [],
+ wfsDatasets: []
+ });
+ if (topic.subTopics.length > 0) {
+ topicsMap = this.addSubTopicsToMap_georesources(topic.subTopics, topicsMap);
+ }
+ }
+ topicsMap.set(this.georesourceMapKey_forUnmappedTopicReferences, {
+ poiDatasets: [],
+ loiDatasets: [],
+ aoiDatasets: [],
+ wmsDatasets: [],
+ wfsDatasets: []
+ });
+ return topicsMap;
+ };
+ this.addSubTopicsToMap_indicators = function (subTopicsArray, topicsMap) {
+ for (const subTopic of subTopicsArray) {
+ topicsMap.set(subTopic.topicId, []);
+ if (subTopic.subTopics.length > 0) {
+ topicsMap = this.addSubTopicsToMap_indicators(subTopic.subTopics, topicsMap);
+ }
+ }
+ return topicsMap;
+ };
+ this.addSubTopicsToMap_georesources = function (subTopicsArray, topicsMap) {
+ for (const subTopic of subTopicsArray) {
+ topicsMap.set(subTopic.topicId, {
+ poiDatasets: [],
+ loiDatasets: [],
+ aoiDatasets: [],
+ wmsDatasets: [],
+ wfsDatasets: []
+ });
+ if (subTopic.subTopics.length > 0) {
+ topicsMap = this.addSubTopicsToMap_georesources(subTopic.subTopics, topicsMap);
+ }
+ }
+ return topicsMap;
+ };
+ this.buildTopicGeoresourceHierarchy = function () {
+ var georesourceTopics = JSON.parse(JSON.stringify(this.availableTopics)).filter(topic => topic.topicResource === "georesource");
+ /*
+ topicsMap.set(topic.topicId, {
+ poiDatasets: [],
+ loiDatasets: [],
+ aoiDatasets: [],
+ wmsDatasets: [],
+ wfsDatasets: []
+ })
+
+ + special entry with key "unmapped" for all datasets without valid topic reference
+ */
+ var topicsMap = this.buildTopicsMap_georesources(georesourceTopics);
+ // PROCESS GEORESOURCES
+ var filteredGeoresources = this.displayableGeoresources_keywordFiltered;
+ for (const georesourceMetadata of filteredGeoresources) {
+ if (topicsMap.has(georesourceMetadata.topicReference)) {
+ var georesourceDatasets = topicsMap.get(georesourceMetadata.topicReference);
+ if (georesourceMetadata.isPOI) {
+ georesourceDatasets.poiDatasets.push(georesourceMetadata);
+ }
+ if (georesourceMetadata.isLOI) {
+ georesourceDatasets.loiDatasets.push(georesourceMetadata);
+ }
+ if (georesourceMetadata.isAOI) {
+ georesourceDatasets.aoiDatasets.push(georesourceMetadata);
+ }
+ topicsMap.set(georesourceMetadata.topicReference, georesourceDatasets);
+ }
+ else {
+ var georesourceDatasets_unmapped = topicsMap.get(this.georesourceMapKey_forUnmappedTopicReferences);
+ if (georesourceMetadata.isPOI) {
+ georesourceDatasets_unmapped.poiDatasets.push(georesourceMetadata);
+ }
+ if (georesourceMetadata.isLOI) {
+ georesourceDatasets_unmapped.loiDatasets.push(georesourceMetadata);
+ }
+ if (georesourceMetadata.isAOI) {
+ georesourceDatasets_unmapped.aoiDatasets.push(georesourceMetadata);
+ }
+ topicsMap.set(this.georesourceMapKey_forUnmappedTopicReferences, georesourceDatasets_unmapped);
+ }
+ }
+ // PROCESS WMS and WFS
+ for (const wmsMetadata of this.wmsDatasets_keywordFiltered) {
+ if (topicsMap.has(wmsMetadata.topicReference)) {
+ var georesourceDatasets = topicsMap.get(wmsMetadata.topicReference);
+ georesourceDatasets.wmsDatasets.push(wmsMetadata);
+ topicsMap.set(wmsMetadata.topicReference, georesourceDatasets);
+ }
+ else {
+ var georesourceDatasets_unmapped = topicsMap.get(this.georesourceMapKey_forUnmappedTopicReferences);
+ georesourceDatasets_unmapped.wmsDatasets.push(wmsMetadata);
+ topicsMap.set(this.georesourceMapKey_forUnmappedTopicReferences, georesourceDatasets_unmapped);
+ }
+ }
+ // PROCESS WMS and WFS
+ for (const wfsMetadata of this.wfsDatasets_keywordFiltered) {
+ if (topicsMap.has(wfsMetadata.topicReference)) {
+ var georesourceDatasets = topicsMap.get(wfsMetadata.topicReference);
+ georesourceDatasets.wfsDatasets.push(wfsMetadata);
+ topicsMap.set(wfsMetadata.topicReference, georesourceDatasets);
+ }
+ else {
+ var georesourceDatasets_unmapped = topicsMap.get(this.georesourceMapKey_forUnmappedTopicReferences);
+ georesourceDatasets_unmapped.wfsDatasets.push(wfsMetadata);
+ topicsMap.set(this.georesourceMapKey_forUnmappedTopicReferences, georesourceDatasets_unmapped);
+ }
+ }
+ this.topicGeoresourceHierarchy = this.addGeoresourceDataToTopicHierarchy(georesourceTopics, topicsMap);
+ };
+ this.buildTopicIndicatorHierarchy = function () {
+ var indicatorTopics = JSON.parse(JSON.stringify(this.availableTopics)).filter(topic => topic.topicResource === "indicator");
+ var topicsMap = this.buildTopicsMap_indicators(indicatorTopics);
+ var filteredIndicators = this.displayableIndicators_keywordFiltered;
+ for (const indicatorMetadata of filteredIndicators) {
+ if (topicsMap.has(indicatorMetadata.topicReference)) {
+ var indicatorArray = topicsMap.get(indicatorMetadata.topicReference);
+ indicatorArray.push(indicatorMetadata);
+ topicsMap.set(indicatorMetadata.topicReference, indicatorArray);
+ }
+ }
+ this.topicIndicatorHierarchy = this.addIndicatorDataToTopicHierarchy(indicatorTopics, topicsMap);
+ };
+ this.addIndicatorDataToTopicHierarchy = function (topicsArray, topicsMap) {
+ for (var topic of topicsArray) {
+ topic.indicatorData = topicsMap.get(topic.topicId);
+ topic.indicatorData.sort((a, b) => (a.displayOrder > b.displayOrder) ? 1 : ((b.displayOrder > a.displayOrder) ? -1 : 0));
+ topic.indicatorCount = topic.indicatorData.length;
+ if (topic.subTopics.length > 0) {
+ topic = this.addIndicatorDataToSubTopics(topic, topicsMap);
+ }
+ }
+ return topicsArray;
+ };
+ this.addIndicatorDataToSubTopics = function (topic, topicsMap) {
+ for (var subTopic of topic.subTopics) {
+ subTopic.indicatorData = topicsMap.get(subTopic.topicId);
+ subTopic.indicatorData.sort((a, b) => (a.displayOrder > b.displayOrder) ? 1 : ((b.displayOrder > a.displayOrder) ? -1 : 0));
+ subTopic.indicatorCount = subTopic.indicatorData.length;
+ if (subTopic.subTopics.length > 0) {
+ subTopic = this.addIndicatorDataToSubTopics(subTopic, topicsMap);
+ }
+ topic.indicatorCount = topic.indicatorCount + subTopic.indicatorCount;
+ }
+ return topic;
+ };
+ this.addGeoresourceDataToTopicHierarchy = function (topicsArray, topicsMap) {
+ /*
+ topicsMap.set(topic.topicId, {
+ poiDatasets: [],
+ loiDatasets: [],
+ aoiDatasets: [],
+ wmsDatasets: [],
+ wfsDatasets: []
+ })
+
+ + special entry with key "unmapped" for all datasets without valid topic reference
+ */
+ for (var topic of topicsArray) {
+ var topicsDataEntry = topicsMap.get(topic.topicId);
+ topic.poiData = topicsDataEntry.poiDatasets;
+ topic.poiCount = topicsDataEntry.poiDatasets.length;
+ topic.loiData = topicsDataEntry.loiDatasets;
+ topic.loiCount = topicsDataEntry.loiDatasets.length;
+ topic.aoiData = topicsDataEntry.aoiDatasets;
+ topic.aoiCount = topicsDataEntry.aoiDatasets.length;
+ topic.wmsData = topicsDataEntry.wmsDatasets;
+ topic.wmsCount = topicsDataEntry.wmsDatasets.length;
+ topic.wfsData = topicsDataEntry.wfsDatasets;
+ topic.wfsCount = topicsDataEntry.wfsDatasets.length;
+ topic.totalCount = topic.poiCount + topic.loiCount + topic.aoiCount + topic.wmsCount + topic.wfsCount;
+ topic.ownCount = topic.poiCount + topic.loiCount + topic.aoiCount + topic.wmsCount + topic.wfsCount;
+ if (topic.subTopics.length > 0) {
+ topic = this.addGeoresourceDataToSubTopics(topic, topicsMap);
+ }
+ }
+ // PROCESS UNMAPPED entries
+ this.topicGeoresourceHierarchy_unmappedEntries = {};
+ var topicsDataEntry_unmapped = topicsMap.get(this.georesourceMapKey_forUnmappedTopicReferences);
+ this.topicGeoresourceHierarchy_unmappedEntries.poiData = topicsDataEntry_unmapped.poiDatasets;
+ this.topicGeoresourceHierarchy_unmappedEntries.poiCount = topicsDataEntry_unmapped.poiDatasets.length;
+ this.topicGeoresourceHierarchy_unmappedEntries.loiData = topicsDataEntry_unmapped.loiDatasets;
+ this.topicGeoresourceHierarchy_unmappedEntries.loiCount = topicsDataEntry_unmapped.loiDatasets.length;
+ this.topicGeoresourceHierarchy_unmappedEntries.aoiData = topicsDataEntry_unmapped.aoiDatasets;
+ this.topicGeoresourceHierarchy_unmappedEntries.aoiCount = topicsDataEntry_unmapped.aoiDatasets.length;
+ this.topicGeoresourceHierarchy_unmappedEntries.wmsData = topicsDataEntry_unmapped.wmsDatasets;
+ this.topicGeoresourceHierarchy_unmappedEntries.wmsCount = topicsDataEntry_unmapped.wmsDatasets.length;
+ this.topicGeoresourceHierarchy_unmappedEntries.wfsData = topicsDataEntry_unmapped.wfsDatasets;
+ this.topicGeoresourceHierarchy_unmappedEntries.wfsCount = topicsDataEntry_unmapped.wfsDatasets.length;
+ this.topicGeoresourceHierarchy_unmappedEntries.totalCount = this.topicGeoresourceHierarchy_unmappedEntries.poiCount +
+ this.topicGeoresourceHierarchy_unmappedEntries.loiCount +
+ this.topicGeoresourceHierarchy_unmappedEntries.aoiCount +
+ this.topicGeoresourceHierarchy_unmappedEntries.wmsCount +
+ this.topicGeoresourceHierarchy_unmappedEntries.wfsCount;
+ return topicsArray;
+ };
+ this.addGeoresourceDataToSubTopics = function (topic, topicsMap) {
+ for (var subTopic of topic.subTopics) {
+ var topicsDataEntry = topicsMap.get(subTopic.topicId);
+ subTopic.poiData = topicsDataEntry.poiDatasets;
+ subTopic.poiCount = topicsDataEntry.poiDatasets.length;
+ subTopic.loiData = topicsDataEntry.loiDatasets;
+ subTopic.loiCount = topicsDataEntry.loiDatasets.length;
+ subTopic.aoiData = topicsDataEntry.aoiDatasets;
+ subTopic.aoiCount = topicsDataEntry.aoiDatasets.length;
+ subTopic.wmsData = topicsDataEntry.wmsDatasets;
+ subTopic.wmsCount = topicsDataEntry.wmsDatasets.length;
+ subTopic.wfsData = topicsDataEntry.wfsDatasets;
+ subTopic.wfsCount = topicsDataEntry.wfsDatasets.length;
+ subTopic.totalCount = subTopic.poiCount + subTopic.loiCount + subTopic.aoiCount + subTopic.wmsCount + subTopic.wfsCount;
+ subTopic.ownCount = subTopic.poiCount + subTopic.loiCount + subTopic.aoiCount + subTopic.wmsCount + subTopic.wfsCount;
+ if (subTopic.subTopics.length > 0) {
+ subTopic = this.addGeoresourceDataToSubTopics(subTopic, topicsMap);
+ }
+ topic.poiCount = topic.poiCount + subTopic.poiCount;
+ topic.loiCount = topic.loiCount + subTopic.loiCount;
+ topic.aoiCount = topic.aoiCount + subTopic.aoiCount;
+ topic.wmsCount = topic.wmsCount + subTopic.wmsCount;
+ topic.wfsCount = topic.wfsCount + subTopic.wfsCount;
+ topic.totalCount = topic.totalCount + subTopic.totalCount;
+ }
+ return topic;
+ };
+ this.onChangeIndicatorKeywordFilter = function (indicatorNameFilter) {
+ this.displayableIndicators_keywordFiltered = JSON.parse(JSON.stringify(this.displayableIndicators));
+ if (indicatorNameFilter && indicatorNameFilter != "") {
+ this.displayableIndicators_keywordFiltered = filterArrayObjectsByValue(this.displayableIndicators_keywordFiltered, indicatorNameFilter);
+ }
+ this.buildTopicIndicatorHierarchy();
+ this.buildHeadlineIndicatorHierarchy();
+ this.buildComputationIndicatorHierarchy();
+ };
+ this.onChangeGeoresourceKeywordFilter = function (georesourceNameFilter, showPOI, showLOI, showAOI, showWMS, showWFS) {
+ this.wmsDatasets_keywordFiltered = JSON.parse(JSON.stringify(this.wmsDatasets));
+ this.wfsDatasets_keywordFiltered = JSON.parse(JSON.stringify(this.wfsDatasets));
+ this.displayableGeoresources_keywordFiltered = JSON.parse(JSON.stringify(this.displayableGeoresources));
+ if (georesourceNameFilter && georesourceNameFilter != "") {
+ this.displayableGeoresources_keywordFiltered = filterArrayObjectsByValue(this.displayableGeoresources_keywordFiltered, georesourceNameFilter);
+ this.wmsDatasets_keywordFiltered = filterArrayObjectsByValue(this.wmsDatasets_keywordFiltered, georesourceNameFilter);
+ this.wfsDatasets_keywordFiltered = filterArrayObjectsByValue(this.wfsDatasets_keywordFiltered, georesourceNameFilter);
+ }
+ this.displayableGeoresources_keywordFiltered_forAlphabeticalDisplay = {
+ poiData: this.displayableGeoresources_keywordFiltered.filter(item => item.isPOI),
+ loiData: this.displayableGeoresources_keywordFiltered.filter(item => item.isLOI),
+ aoiData: this.displayableGeoresources_keywordFiltered.filter(item => item.isAOI),
+ wmsData: this.wmsDatasets_keywordFiltered,
+ wfsData: this.wfsDatasets_keywordFiltered
+ };
+ if (!showWMS) {
+ this.wmsDatasets_keywordFiltered = [];
+ }
+ if (!showWFS) {
+ this.wfsDatasets_keywordFiltered = [];
+ }
+ if (!(showPOI && showLOI && showAOI)) {
+ this.displayableGeoresources_keywordFiltered = this.displayableGeoresources_keywordFiltered.filter(item => {
+ if (!showPOI && item.isPOI) {
+ return false;
+ }
+ if (!showLOI && item.isLOI) {
+ return false;
+ }
+ if (!showAOI && item.isAOI) {
+ return false;
+ }
+ return true;
+ });
+ }
+ this.buildTopicGeoresourceHierarchy();
+ };
+ this.buildHeadlineIndicatorHierarchy = function () {
+ var indicatorsMap = new Map();
+ var filteredIndicators = this.displayableIndicators_keywordFiltered;
+ for (const indicatorMetadata of filteredIndicators) {
+ indicatorsMap.set(indicatorMetadata.indicatorId, indicatorMetadata);
+ }
+ var headlineIndicatorsArray = filteredIndicators.filter(indicatorMetadata => indicatorMetadata.isHeadlineIndicator == true);
+ var headlineIndicatorsIdArray = headlineIndicatorsArray.map(indicatorMetadata => indicatorMetadata.indicatorId);
+ var headlineIndicatorsMap = new Map();
+ for (const indicatorMetadata of headlineIndicatorsArray) {
+ headlineIndicatorsMap.set(indicatorMetadata.indicatorId, indicatorMetadata);
+ }
+ var headlineIndicatorScriptsMap = new Map();
+ for (const scriptMetadata of this.availableProcessScripts) {
+ if (headlineIndicatorsIdArray.includes(scriptMetadata.indicatorId)) {
+ headlineIndicatorScriptsMap.set(scriptMetadata.indicatorId, scriptMetadata);
+ }
+ }
+ this.headlineIndicatorHierarchy = [];
+ // var item = {
+ // headlineIndicator: {metadata}
+ // baseIndicators: [{metadata}]
+ // maybeSomeAnalysisItems?
+ // }
+ for (const headlineIndicatorMetadata of headlineIndicatorsArray) {
+ var item = {};
+ item.headlineIndicator = headlineIndicatorMetadata;
+ item.baseIndicators = [];
+ if (headlineIndicatorScriptsMap.has(headlineIndicatorMetadata.indicatorId)) {
+ var targetScriptMetadata = headlineIndicatorScriptsMap.get(headlineIndicatorMetadata.indicatorId);
+ for (const requiredIndicatorId of targetScriptMetadata.requiredIndicatorIds) {
+ if (indicatorsMap.has(requiredIndicatorId)) {
+ item.baseIndicators.push(indicatorsMap.get(requiredIndicatorId));
+ }
+ }
+ }
+ this.headlineIndicatorHierarchy.push(item);
+ }
+ };
+ this.buildComputationIndicatorHierarchy = function () {
+ var indicatorsMap = new Map();
+ var filteredIndicators = this.displayableIndicators_keywordFiltered;
+ for (const indicatorMetadata of filteredIndicators) {
+ indicatorsMap.set(indicatorMetadata.indicatorId, indicatorMetadata);
+ }
+ var computationIndicatorsArray = filteredIndicators.filter(indicatorMetadata => indicatorMetadata.creationType == "COMPUTATION");
+ var computationIndicatorsIdArray = computationIndicatorsArray.map(indicatorMetadata => indicatorMetadata.indicatorId);
+ var computationIndicatorsMap = new Map();
+ for (const indicatorMetadata of computationIndicatorsArray) {
+ computationIndicatorsMap.set(indicatorMetadata.indicatorId, indicatorMetadata);
+ }
+ var computationIndicatorScriptsMap = new Map();
+ for (const scriptMetadata of this.availableProcessScripts) {
+ if (computationIndicatorsIdArray.includes(scriptMetadata.indicatorId)) {
+ computationIndicatorScriptsMap.set(scriptMetadata.indicatorId, scriptMetadata);
+ }
+ }
+ this.computationIndicatorHierarchy = [];
+ // var item = {
+ // computationIndicator: {metadata}
+ // baseIndicators: [{metadata}]
+ // maybeSomeAnalysisItems?
+ // }
+ for (const computationIndicatorMetadata of computationIndicatorsArray) {
+ var item = {};
+ item.computationIndicator = computationIndicatorMetadata;
+ item.baseIndicators = [];
+ if (computationIndicatorScriptsMap.has(computationIndicatorMetadata.indicatorId)) {
+ var targetScriptMetadata = computationIndicatorScriptsMap.get(computationIndicatorMetadata.indicatorId);
+ for (const requiredIndicatorId of targetScriptMetadata.requiredIndicatorIds) {
+ if (indicatorsMap.has(requiredIndicatorId)) {
+ item.baseIndicators.push(indicatorsMap.get(requiredIndicatorId));
+ }
+ }
+ }
+ this.computationIndicatorHierarchy.push(item);
+ }
+ };
+ this.filterCurrentlySelectedIndicator = function () {
+ return function (item) {
+ if (item.indicatorMetadata.indicatorId === self.selectedIndicator.indicatorId) {
+ return true;
+ }
+ return false;
+ };
+ };
+ this.filterBaseIndicatorsOfCurrentHeadlineIndicator = function () {
+ return function (item) {
+ var headlineIndicatorEntry = self.headlineIndicatorHierarchy.filter(element => element.headlineIndicator.indicatorId == self.selectedIndicator.indicatorId)[0];
+ if (headlineIndicatorEntry) {
+ var baseIndicators_filtered = headlineIndicatorEntry.baseIndicators.filter(element => element.indicatorId == item.indicatorMetadata.indicatorId);
+ if (baseIndicators_filtered.length > 0) {
+ return true;
+ }
+ }
+ return false;
+ };
+ };
+ this.filterBaseIndicatorsOfCurrentComputationIndicator = function () {
+ return function (item) {
+ var computationIndicatorEntry = self.computationIndicatorHierarchy.filter(element => element.computationIndicator.indicatorId == self.selectedIndicator.indicatorId)[0];
+ if (computationIndicatorEntry) {
+ var baseIndicators_filtered = computationIndicatorEntry.baseIndicators.filter(element => element.indicatorId == item.indicatorMetadata.indicatorId);
+ if (baseIndicators_filtered.length > 0) {
+ return true;
+ }
+ }
+ return false;
+ };
+ };
+ var onMetadataLoadingCompleted = function () {
+ $timeout(function () {
+ $rootScope.$broadcast("initialMetadataLoadingCompleted");
+ $timeout(function () {
+ $("option").each(function (index, element) {
+ var text = $(element).text();
+ $(element).attr("title", text);
+ });
+ }, 1000);
+ }, 1000);
+ // setTimeout(() => {
+ // // $rootScope.$broadcast("initialMetadataLoadingCompleted");
+ // }, 1000);
+ };
+ this.setAccessControl = function (input) {
+ this.accessControl = input;
+ this.accessControl_map = new Map();
+ for (const entry of input) {
+ this.accessControl_map.set(entry.organizationalUnitId, entry);
+ }
+ this.updateAvailableRoles();
+ };
+ this.fetchAccessControlMetadata = async function (keycloakRolesArray) {
+ self.setAccessControl(await kommonitorCacheHelperService.fetchAccessControlMetadata(keycloakRolesArray));
+ self.setCurrentKomMonitorLoginRoleNames();
+ self.setCurrentKomMonitorLoginRoleIds();
+ };
+ this.replaceSingleAccessControlMetadata = function (targetRoleMetadata) {
+ for (let index = 0; index < this.accessControl.length; index++) {
+ let oldMetadata = this.accessControl[index];
+ if (oldMetadata.organizationalUnitId == targetRoleMetadata.organizationalUnitId) {
+ this.accessControl[index] = targetRoleMetadata;
+ break;
+ }
+ }
+ this.accessControl_map.set(targetRoleMetadata.organizationalUnitId, targetRoleMetadata);
+ this.updateAvailableRoles();
+ };
+ this.addSingleAccessControlMetadata = function (metadata) {
+ let tmpArray = [metadata];
+ Array.prototype.push.apply(tmpArray, this.accessControl);
+ this.accessControl = tmpArray;
+ this.accessControl_map.set(metadata.organizationalUnitId, metadata);
+ this.updateAvailableRoles();
+ };
+ this.deleteSingleAccessControlMetadata = function (id) {
+ for (let index = 0; index < this.accessControl.length; index++) {
+ const oldMetadata = this.accessControl[index];
+ if (oldMetadata.organizationalUnitId == id) {
+ this.accessControl.splice(index, 1);
+ break;
+ }
+ }
+ this.accessControl_map.delete(id);
+ this.updateAvailableRoles();
+ };
+ this.updateAvailableRoles = function () {
+ this.availableRoles = [];
+ for (let elem of this.accessControl) {
+ for (let role of elem.roles) {
+ let available = { ...role, ...{ "organizationalUnit": elem, "roleName": elem.name + "-" + role.permissionLevel } };
+ this.availableRoles.push(available);
+ }
+ }
+ // we need to refresh all modals as roles have changed
+ $rootScope.$broadcast("availableRolesUpdate");
+ };
+ this.getAccessControlById = function (id) {
+ return this.accessControl_map.get(id);
+ };
+ this.fetchTopicsMetadata = async function (keycloakRolesArray) {
+ self.setTopics(await kommonitorCacheHelperService.fetchTopicsMetadata(keycloakRolesArray));
+ };
+ this.fetchSpatialUnitsMetadata = async function (keycloakRolesArray) {
+ self.setSpatialUnits(await kommonitorCacheHelperService.fetchSpatialUnitsMetadata(keycloakRolesArray));
+ };
+ this.fetchGeoresourcesMetadata = async function (keycloakRolesArray) {
+ self.setGeoresources(await kommonitorCacheHelperService.fetchGeoresourceMetadata(keycloakRolesArray));
+ };
+ this.fetchIndicatorsMetadata = async function (keycloakRolesArray) {
+ self.setIndicators(await kommonitorCacheHelperService.fetchIndicatorsMetadata(keycloakRolesArray));
+ };
+ this.fetchIndicatorScriptsMetadata = async function (keycloakRolesArray) {
+ self.setProcessScripts(await kommonitorCacheHelperService.fetchProcessScriptsMetadata(keycloakRolesArray));
+ };
+ this.indicatorValueIsNoData = function (indicatorValue) {
+ if (Number.isNaN(indicatorValue) || indicatorValue === null || indicatorValue === undefined) {
+ return true;
+ }
+ return false;
+ };
+ this.getIndicatorValueFromArray_asNumber = function (propertiesArray, targetDateString) {
+ if (!targetDateString.includes(DATE_PREFIX)) {
+ targetDateString = DATE_PREFIX + targetDateString;
+ }
+ var indicatorValue = propertiesArray[targetDateString];
+ var value;
+ if (this.indicatorValueIsNoData(indicatorValue)) {
+ value = "NoData";
+ }
+ else {
+ value = this.getIndicatorValue_asNumber(indicatorValue);
+ }
+ return value;
+ };
+ this.getIndicatorValueFromArray_asFormattedText = function (propertiesArray, targetDateString) {
+ if (!targetDateString.includes(DATE_PREFIX)) {
+ targetDateString = DATE_PREFIX + targetDateString;
+ }
+ var indicatorValue = propertiesArray[targetDateString];
+ var value;
+ if (this.indicatorValueIsNoData(indicatorValue)) {
+ value = "NoData";
+ }
+ else {
+ value = this.getIndicatorValue_asFormattedText(indicatorValue);
+ }
+ return value;
+ };
+ this.getIndicatorValue_asNumber = function (indicatorValue) {
+ var value;
+ if (this.indicatorValueIsNoData(indicatorValue)) {
+ value = "NoData";
+ }
+ else {
+ value = +Number(indicatorValue).toFixed(numberOfDecimals);
+ }
+ // if the original value is greater than zero but would be rounded as 0 then we must return the original result
+ if (Number(value) == 0 && indicatorValue > 0) {
+ value = Number(indicatorValue);
+ }
+ return value;
+ };
+ this.getIndicatorValue_asFormattedText = function (indicatorValue) {
+ var value;
+ if (this.indicatorValueIsNoData(indicatorValue)) {
+ value = "NoData";
+ }
+ else {
+ value = Number(indicatorValue).toLocaleString('de-DE', { maximumFractionDigits: numberOfDecimals });
+ }
+ // if the original value is greater than zero but would be rounded as 0 then we must return the original result
+ if (Number(value) == 0 && indicatorValue > 0) {
+ value = Number(indicatorValue).toLocaleString('de-DE');
+ }
+ return value;
+ };
+ this.getTopicHierarchyDisplayString = function (topicReferenceId) {
+ var topicHierarchyArray = this.getTopicHierarchyForTopicId(topicReferenceId);
+ var topicsString = "";
+ for (let index = 0; index < topicHierarchyArray.length; index++) {
+ if (index === 0) {
+ // mainTopic --> first tier
+ topicsString += topicHierarchyArray[index].topicName;
+ }
+ else {
+ var numberOfWhitespaces = 2 * index;
+ var whitespaceString = "";
+ for (let k = 0; k < numberOfWhitespaces; k++) {
+ whitespaceString += " ";
+ }
+ topicsString += whitespaceString + topicHierarchyArray[index].topicName;
+ }
+ if (index < topicHierarchyArray.length) {
+ topicsString += " ";
+ }
+ }
+ return topicsString;
+ };
+ this.getIndicatorStringFromIndicatorType = function (indicatorType) {
+ var indicatorTypeString;
+ for (const indicatorTypeOption of this.indicatorTypeOptions) {
+ if (indicatorType.includes(indicatorTypeOption.apiName)) {
+ indicatorTypeString = indicatorTypeOption.displayName;
+ break;
+ }
+ }
+ return indicatorTypeString;
+ };
+ this.labelAllFeatures = "alle Features";
+ this.labelFilteredFeatures = "gefilterte Features";
+ this.labelSelectedFeatures = "selektierte Features";
+ this.labelNumberOfFeatures = "Anzahl:";
+ this.labelSum = "Summe:";
+ this.labelMean = "arith. Mittel:";
+ this.labelMin = "Minimalwert:";
+ this.labelMax = "Maximalwert";
+ this.allFeaturesNumberOfFeatures;
+ this.allFeaturesSum;
+ this.allFeaturesMean;
+ this.allFeaturesMin;
+ this.allFeaturesMax;
+ this.selectedFeaturesNumberOfFeatures;
+ this.selectedFeaturesSum;
+ this.selectedFeaturesMean;
+ this.selectedFeaturesMin;
+ this.selectedFeaturesMax;
+ this.allFeaturesPropertyUnit;
+ this.setAllFeaturesProperty = function (indicatorMetadataAndGeoJSON, propertyName) {
+ let sum = 0;
+ let count = 0;
+ let min = Number.MAX_VALUE;
+ let max = Number.MIN_VALUE;
+ for (const feature of indicatorMetadataAndGeoJSON.geoJSON.features) {
+ if (!this.indicatorValueIsNoData(feature.properties[propertyName])) {
+ let value = this.getIndicatorValueFromArray_asNumber(feature.properties, propertyName);
+ sum += value;
+ if (value < min)
+ min = value;
+ if (value > max)
+ max = value;
+ count++;
+ }
+ }
+ this.allFeaturesPropertyUnit = indicatorMetadataAndGeoJSON.unit;
+ this.allFeaturesNumberOfFeatures = count;
+ this.allFeaturesSum = this.getIndicatorValue_asFormattedText(sum);
+ // no division by zero
+ if (count > 0)
+ this.allFeaturesMean = this.getIndicatorValue_asFormattedText(sum / count);
+ else
+ this.allFeaturesMean = 0;
+ this.allFeaturesMin = this.getIndicatorValue_asFormattedText(min);
+ this.allFeaturesMax = this.getIndicatorValue_asFormattedText(max);
+ };
+ this.setSelectedFeatureProperty = function (selectedFeaturesMap, propertyName) {
+ let sum = 0;
+ let count = 0;
+ let min = Number.MAX_VALUE;
+ let max = Number.MIN_VALUE;
+ selectedFeaturesMap.forEach(function (feature, key, map) {
+ if (!thisService.indicatorValueIsNoData(feature.properties[propertyName])) {
+ let value = thisService.getIndicatorValueFromArray_asNumber(feature.properties, propertyName);
+ sum += value;
+ if (value < min)
+ min = value;
+ if (value > max)
+ max = value;
+ count++;
+ }
+ });
+ if (count === 0) {
+ // no feature selected, overwrite initial values for min and max
+ min = 0;
+ max = 0;
+ }
+ this.selectedFeaturesNumberOfFeatures = count;
+ this.selectedFeaturesSum = this.getIndicatorValue_asFormattedText(sum);
+ // no division by zero
+ if (count > 0)
+ this.selectedFeaturesMean = this.getIndicatorValue_asFormattedText(sum / count);
+ else
+ this.selectedFeaturesMean = 0;
+ this.selectedFeaturesMin = this.getIndicatorValue_asFormattedText(min);
+ this.selectedFeaturesMax = this.getIndicatorValue_asFormattedText(max);
+ };
+ var containsNegativeValues = function (geoJSON, propertyName) {
+ var containsNegativeValues = false;
+ for (var i = 0; i < geoJSON.features.length; i++) {
+ if (geoJSON.features[i].properties[propertyName] < 0) {
+ containsNegativeValues = true;
+ break;
+ }
+ }
+ return containsNegativeValues;
+ };
+ this.formatIndicatorNameForLabel = function (indicatorName, maxCharsPerLine) {
+ var arr = [];
+ var space = /\s/;
+ const words = indicatorName.split(space);
+ // push first word into new array
+ if (words[0].length) {
+ arr.push(words[0]);
+ }
+ for (let i = 1; i < words.length; i++) {
+ if (words[i].length + arr[arr.length - 1].length < maxCharsPerLine) {
+ arr[arr.length - 1] = `${arr[arr.length - 1]} ${words[i]}`;
+ }
+ else {
+ arr.push(words[i]);
+ }
+ }
+ return arr.join("\n");
+ };
+ this.filterIndicators = function () {
+ return function (item) {
+ return isDisplayableIndicator(item);
+ };
+ };
+ this.filterGeoresources = function () {
+ return function (item) {
+ return self.isDisplayableGeoresource(item);
+ };
+ };
+ this.isDisplayableGeoresource = function (item) {
+ var arrayOfNameSubstringsForHidingGeoresources = __env.arrayOfNameSubstringsForHidingGeoresources;
+ if (item.availablePeriodsOfValidity == undefined || item.availablePeriodsOfValidity.length === 0)
+ return false;
+ var isGeoresourceThatShallNotBeDisplayed = arrayOfNameSubstringsForHidingGeoresources.some(substring => String(item.datasetName).includes(substring));
+ if (isGeoresourceThatShallNotBeDisplayed) {
+ return false;
+ }
+ return true;
+ };
+ this.selectedSpatialUnitIsRaster = function () {
+ var spatialUnitName = this.selectedSpatialUnit ? this.selectedSpatialUnit.spatialUnitLevel : "";
+ return (spatialUnitName.includes("raster") || spatialUnitName.includes("Raster") || spatialUnitName.includes("RASTER") || spatialUnitName.includes("grid") || spatialUnitName.includes("GRID") || spatialUnitName.includes("Grid"));
+ };
+ // var roleMappingAllowsDisplay = function(indicatorMetadata){
+ // //admin --> everything allowed
+ // if(self.currentKeycloakLoginRoles.includes(__env.keycloakKomMonitorAdminRoleName)){
+ // return true;
+ // }
+ // // public user
+ // // non-admin
+ // self.roleMetadataForCurrentKeycloakLoginRoles = self.availableRoles.filter(role => self.currentKeycloakLoginRoles.includes(role.roleName));
+ // var filteredApplicableUnits = indicatorMetadata.applicableSpatialUnits.filter(function (applicableSpatialUnit) {
+ // return applicableSpatialUnit.allowedRoles.length == 0 || applicableSpatialUnit.allowedRoles.some(allowedRoleId => self.roleMetadataForCurrentKeycloakLoginRoles.some(roleMetadata => roleMetadata.roleId === allowedRoleId) );
+ // });
+ // return filteredApplicableUnits.length > 0;
+ // };
+ var isDisplayableIndicator = function (item) {
+ // var arrayOfNameSubstringsForHidingIndicators = ["Standardabweichung", "Prozentuale Ver"];
+ var arrayOfNameSubstringsForHidingIndicators = __env.arrayOfNameSubstringsForHidingIndicators;
+ // this is an item from i.e. indicatorRadar, that has a different structure
+ if (item.indicatorMetadata) {
+ if (item.indicatorMetadata.applicableDates == undefined || item.indicatorMetadata.applicableDates.length === 0)
+ return false;
+ if (item.indicatorMetadata.applicableSpatialUnits == undefined || item.indicatorMetadata.applicableSpatialUnits.length === 0)
+ return false;
+ var isIndicatorThatShallNotBeDisplayed = arrayOfNameSubstringsForHidingIndicators.some(substring => String(item.indicatorMetadata.indicatorName).includes(substring));
+ if (isIndicatorThatShallNotBeDisplayed) {
+ return false;
+ }
+ // if(! roleMappingAllowsDisplay(item.indicatorMetadata)){
+ // return false;
+ // }
+ return true;
+ }
+ else {
+ //
+ if (item.applicableDates == undefined || item.applicableDates.length === 0)
+ return false;
+ if (item.applicableSpatialUnits == undefined || item.applicableSpatialUnits.length === 0)
+ return false;
+ // var isIndicatorThatShallNotBeDisplayed = item.indicatorName.includes("Standardabweichung") || item.indicatorName.includes("Prozentuale Ver");
+ var isIndicatorThatShallNotBeDisplayed = arrayOfNameSubstringsForHidingIndicators.some(substring => String(item.indicatorName).includes(substring));
+ if (isIndicatorThatShallNotBeDisplayed) {
+ return false;
+ }
+ // if(! roleMappingAllowsDisplay(item)){
+ // return false;
+ // }
+ return true;
+ }
+ };
+ this.filterGeoresourcesByPoi = function () {
+ return function (item) {
+ try {
+ if (item.isPOI) {
+ return true;
+ }
+ return false;
+ }
+ catch (error) {
+ return false;
+ }
+ };
+ };
+ this.filterPois = function () {
+ return function (item) {
+ try {
+ // if(item.datasetName.includes("Lebensmittel")){
+ // return false;
+ // }
+ return true;
+ }
+ catch (error) {
+ return true;
+ }
+ };
+ };
+ function getImageDimensions(file) {
+ return new Promise(function (resolved, rejected) {
+ var i = new Image();
+ i.onload = function () {
+ resolved({ w: i.width, h: i.height });
+ };
+ i.src = file;
+ });
+ }
+ /**
+ * creates and returns a pdf for the indicator given as parameter
+ */
+ this.createMetadataPDF_indicator = async function (indicator) {
+ var jspdf = new jsPDF();
+ jspdf.setFontSize(16);
+ // jspdf.text("Metadatenblatt", 70, 6);
+ //insert logo
+ var img = new Image();
+ var subPath = location.pathname;
+ img.src = subPath + 'logos/KM_Logo1.png';
+ jspdf.addImage(img, 'PNG', 193, 5, 12, 12);
+ jspdf.setFontSize(16);
+ jspdf.setFont('Helvetica', 'bolditalic', 'normal');
+ var titleArray = jspdf.splitTextToSize("Indikator: " + indicator.indicatorName, 180);
+ jspdf.text(titleArray, 14, 25);
+ if (indicator.characteristicValue && indicator.characteristicValue != "-" && indicator.characteristicValue != "") {
+ jspdf.setFontSize(14);
+ jspdf.text(indicator.characteristicValue, 14, 25);
+ }
+ jspdf.setFontSize(11);
+ var initialStartY = 30;
+ if (titleArray.length > 1) {
+ titleArray.forEach(function (item) {
+ initialStartY += 5;
+ });
+ }
+ if (indicator.characteristicValue && indicator.characteristicValue != "-" && indicator.characteristicValue != "") {
+ initialStartY += 5;
+ }
+ var headStyles = {
+ fontStyle: 'bold',
+ fontSize: 12,
+ fillColor: '#337ab7',
+ // auto or wrap
+ cellWidth: 'auto'
+ };
+ var bodyStyles = {
+ fontStyle: 'normal',
+ fontSize: 11,
+ // auto or wrap or number
+ cellWidth: 'auto'
+ };
+ // first column with fixed width
+ var columnStyles = {
+ 0: { cellWidth: 45, fontStyle: 'bold' },
+ 1: { fontStyle: 'normal' }
+ };
+ var topicsString = "";
+ var topicReferenceId = indicator.topicReference;
+ // will be an array representing the topic hierarchy
+ // i.e. [mainTopic, subTopicFirstTier, subTopicSecondTier, ...]
+ var topicHierarchyArray = this.getTopicHierarchyForTopicId(topicReferenceId);
+ for (let index = 0; index < topicHierarchyArray.length; index++) {
+ if (index === 0) {
+ // mainTopic --> first tier
+ topicsString += topicHierarchyArray[index].topicName;
+ }
+ else {
+ var numberOfWhitespaces = 2 * index;
+ var whitespaceString = "";
+ for (let k = 0; k < numberOfWhitespaces; k++) {
+ whitespaceString += " ";
+ }
+ topicsString += whitespaceString + topicHierarchyArray[index].topicName;
+ }
+ if (index < topicHierarchyArray.length - 1) {
+ topicsString += "\n";
+ }
+ }
+ var category = "Basisindikator";
+ if (indicator.isHeadlineIndicator) {
+ category = "Leitindikator";
+ }
+ // Or JavaScript:
+ jspdf.autoTable({
+ head: [['Themenfeld', 'Kategorie', 'Typ', 'Kennzeichen']],
+ body: [
+ [topicsString, category, this.getIndicatorStringFromIndicatorType(indicator.indicatorType), indicator.abbreviation ? indicator.abbreviation : "-"]
+ // ...
+ ],
+ theme: 'grid',
+ headStyles: headStyles,
+ bodyStyles: bodyStyles,
+ startY: initialStartY
+ });
+ var linkedIndicatorsString = "";
+ for (var [index, linkedIndicator] of indicator.referencedIndicators.entries()) {
+ linkedIndicatorsString += linkedIndicator.referencedIndicatorName + " - \n " + linkedIndicator.referencedIndicatorDescription;
+ if (index < indicator.referencedIndicators.length - 1) {
+ linkedIndicatorsString += "\n\n";
+ }
+ }
+ if (linkedIndicatorsString === "") {
+ linkedIndicatorsString = "-";
+ }
+ var linkedGeoresourcesString = "";
+ for (var [k, linkedGeoresource] of indicator.referencedGeoresources.entries()) {
+ linkedGeoresourcesString += linkedGeoresource.referencedGeoresourceName + " - \n " + linkedGeoresource.referencedGeoresourceDescription;
+ if (k < indicator.referencedGeoresources.length - 1) {
+ linkedGeoresourcesString += "\n\n";
+ }
+ }
+ if (linkedGeoresourcesString === "") {
+ linkedGeoresourcesString = "-";
+ }
+ // jspdf.autoTable({
+ // head: [],
+ // body: [
+ // ["Beschreibung", indicator.metadata.description],
+ // ["Maßeinheit", indicator.unit],
+ // ["Definition des Leitindikators", "-"],
+ // ["Klassifizierung", "-"],
+ // ["Interpretation", "-"],
+ // ["Verknüpfte Indikatoren", linkedIndicatorsString],
+ // ["Verknüpfte Geodaten", linkedGeoresourcesString]
+ // // ...
+ // ],
+ // startY: jspdf.autoTable.previous.finalY + 20,
+ // });
+ var spatialUnitsString = "";
+ var processedSpatialUnits = 0;
+ for (var availableSpatialUnit of this.availableSpatialUnits) {
+ for (var applicableSpatialUnit of indicator.applicableSpatialUnits) {
+ if (availableSpatialUnit.spatialUnitLevel === applicableSpatialUnit.spatialUnitName) {
+ spatialUnitsString += applicableSpatialUnit.spatialUnitName;
+ processedSpatialUnits++;
+ if (processedSpatialUnits < indicator.applicableSpatialUnits.length) {
+ spatialUnitsString += "\n";
+ }
+ }
+ }
+ }
+ var datesString = "";
+ if (indicator.applicableDates.length <= 20) {
+ for (var [j, date] of indicator.applicableDates.entries()) {
+ var asDate = new Date(date);
+ datesString += this.tsToDate_withOptionalUpdateInterval(this.dateToTS(asDate), indicator.metadata.updateInterval);
+ if (j < indicator.applicableDates.length - 1) {
+ datesString += " ";
+ }
+ }
+ }
+ else {
+ datesString += "Zeitreihe umfasst insgesamt " + indicator.applicableDates.length + " Zeitpunkte\n\n";
+ datesString += "frühester Zeitpunkt: " + this.tsToDate_withOptionalUpdateInterval(this.dateToTS(indicator.applicableDates[0]), indicator.metadata.updateInterval) + "\n";
+ datesString += "spätester Zeitpunkt: " + this.tsToDate_withOptionalUpdateInterval(this.dateToTS(indicator.applicableDates[indicator.applicableDates.length - 1]), indicator.metadata.updateInterval);
+ }
+ var imgData;
+ var imgWidth;
+ var imgHeight;
+ if (indicator.processDescription && indicator.processDescription.includes("$")) {
+ await html2canvas(document.querySelector("#indicatorProcessDescription")).then(canvas => {
+ // document.body.appendChild(canvas)
+ imgData = canvas.toDataURL('image/png');
+ });
+ var dimensions = await getImageDimensions(imgData);
+ imgWidth = dimensions.w;
+ imgHeight = dimensions.h;
+ }
+ jspdf.autoTable({
+ head: [],
+ body: [
+ ["Beschreibung", indicator.metadata.description],
+ ["Maßeinheit", indicator.unit],
+ ["Methodik", indicator.processDescription ? indicator.processDescription : "-"],
+ // ["Klassifizierung", "-"],
+ ["Interpretation", indicator.interpretation ? indicator.interpretation : "-"],
+ ["Tags", indicator.tags ? JSON.stringify(indicator.tags) : "-"],
+ ["Verknüpfte Indikatoren", linkedIndicatorsString],
+ ["Verknüpfte Geodaten", linkedGeoresourcesString]
+ ],
+ theme: 'grid',
+ headStyles: headStyles,
+ bodyStyles: bodyStyles,
+ columnStyles: columnStyles,
+ startY: jspdf.autoTable.previous.finalY + 10,
+ willDrawCell: function (data) {
+ if (imgData && data.row.index === 2 && data.column.index === 1 && data.cell.section === 'body') {
+ data.row.height = 2.5 * data.cell.height;
+ data.row.maxCellHeight = 2.5 * data.cell.height;
+ data.cell.height = 2.5 * data.cell.height;
+ data.cell.text = "";
+ }
+ if (imgData && data.row.index === 2 && data.column.index === 0 && data.cell.section === 'body') {
+ data.row.height = 2.5 * data.cell.height;
+ data.row.maxCellHeight = 2.5 * data.cell.height;
+ data.cell.height = 2.5 * data.cell.height;
+ }
+ },
+ didDrawCell: function (data) {
+ if (imgData && data.row.index === 2 && data.column.index === 1 && data.cell.section === 'body') {
+ var cellHeight = data.cell.height - data.cell.padding('vertical');
+ var cellWidth = data.cell.width - data.cell.padding('horizontal');
+ var textPos = data.cell.textPos;
+ var imgScale = cellHeight / imgHeight;
+ var width = imgWidth * imgScale;
+ if (width > cellWidth) {
+ width = cellWidth;
+ }
+ jspdf.addImage(imgData, "PNG", textPos.x, textPos.y, width, cellHeight);
+ }
+ }
+ });
+ // // linked elements
+ // jspdf.autoTable({
+ // head: [],
+ // body: [
+ // ["Verknüpfte Indikatoren", linkedIndicatorsString],
+ // ["Verknüpfte Geodaten", linkedGeoresourcesString]
+ // ],
+ // theme: 'grid',
+ // headStyles: headStyles,
+ // bodyStyles: bodyStyles,
+ // columnStyles: columnStyles,
+ // startY: jspdf.autoTable.previous.finalY + 10
+ // });
+ // linked elements
+ jspdf.autoTable({
+ head: [],
+ body: [
+ ["Datengrundlage", indicator.metadata.databasis ? indicator.metadata.databasis : "-"],
+ ["Datenquelle", indicator.metadata.datasource ? indicator.metadata.datasource : "-"],
+ ["Datenhalter und Kontakt", indicator.metadata.contact ? indicator.metadata.contact : "-"],
+ ["Bemerkung", indicator.metadata.note ? indicator.metadata.note : "-"],
+ ["Raumbezug", spatialUnitsString],
+ // $scope.updateInteval is a map mapping the english KEYs to german expressions
+ ["Zeitbezug / Fortführungsintervall", this.updateInterval.get(indicator.metadata.updateInterval.toUpperCase())],
+ ["Hinweise zum Referenzdatum", indicator.referenceDateNote ? indicator.referenceDateNote : "-"],
+ ["Verfügbare Zeitreihen", datesString],
+ ["Datum der letzten Aktualisierung", this.tsToDate_withOptionalUpdateInterval(this.dateToTS(indicator.metadata.lastUpdate))],
+ ["Quellen / Literatur", indicator.metadata.literature ? indicator.metadata.literature : "-"]
+ ],
+ theme: 'grid',
+ headStyles: headStyles,
+ bodyStyles: bodyStyles,
+ columnStyles: columnStyles,
+ startY: jspdf.autoTable.previous.finalY + 10
+ });
+ //
+ // jspdf.autoTable({
+ // head: [],
+ // body: [
+ // ["Quellen / Literatur", indicator.metadata.literature ? indicator.metadata.literature : "-"]
+ // // ...
+ // ],
+ // theme: 'grid',
+ // headStyles: headStyles,
+ // bodyStyles: bodyStyles,
+ // columnStyles: columnStyles,
+ // startY: jspdf.autoTable.previous.finalY + 10
+ // });
+ return jspdf;
+ };
+ this.generateIndicatorMetadataPdf_asBlob = async function () {
+ // create PDF from currently selected/displayed indicator!
+ var indicatorMetadata = this.selectedIndicator;
+ var pdfName = indicatorMetadata.indicatorName + ".pdf";
+ var jspdf = await this.generateIndicatorMetadataPdf(indicatorMetadata, pdfName);
+ return jspdf.output("blob", { filename: pdfName });
+ };
+ this.generateIndicatorMetadataPdf = async function (indicatorMetadata, pdfName) {
+ var jspdf = await this.createMetadataPDF_indicator(indicatorMetadata);
+ jspdf.setProperties({
+ title: 'KomMonitor Indikatorenblatt',
+ subject: pdfName,
+ author: 'KomMonitor',
+ keywords: 'Indikator, Metadatenblatt',
+ creator: 'KomMonitor'
+ });
+ return jspdf;
+ };
+ /**
+ * creates and returns a pdf for the georesource given as parameter
+ */
+ this.createMetadataPDF_georesource = async function (georesource, pdfName) {
+ var jspdf = new jsPDF();
+ jspdf.setFontSize(16);
+ // jspdf.text("Metadatenblatt", 70, 6);
+ //insert logo
+ var img = new Image();
+ var subPath = location.pathname;
+ img.src = subPath + 'logos/KM_Logo1.png';
+ jspdf.addImage(img, 'PNG', 193, 5, 12, 12);
+ jspdf.setFontSize(16);
+ jspdf.setFont('Helvetica', 'bolditalic', 'normal');
+ var titleArray = jspdf.splitTextToSize("Geodatensatz: " + georesource.datasetName, 180);
+ jspdf.text(titleArray, 14, 25);
+ jspdf.setFontSize(11);
+ var initialStartY = 30;
+ if (titleArray.length > 1) {
+ titleArray.forEach(function (item) {
+ initialStartY += 5;
+ });
+ }
+ var headStyles = {
+ fontStyle: 'bold',
+ fontSize: 12,
+ fillColor: '#337ab7',
+ // auto or wrap
+ cellWidth: 'auto'
+ };
+ var bodyStyles = {
+ fontStyle: 'normal',
+ fontSize: 11,
+ // auto or wrap or number
+ cellWidth: 'auto'
+ };
+ // first column with fixed width
+ var columnStyles = {
+ 0: { cellWidth: 45, fontStyle: 'bold' },
+ 1: { fontStyle: 'normal' }
+ };
+ var topicsString = "";
+ var topicReferenceId = georesource.topicReference;
+ // will be an array representing the topic hierarchy
+ // i.e. [mainTopic, subTopicFirstTier, subTopicSecondTier, ...]
+ var topicHierarchyArray = this.getTopicHierarchyForTopicId(topicReferenceId);
+ for (let index = 0; index < topicHierarchyArray.length; index++) {
+ if (index === 0) {
+ // mainTopic --> first tier
+ topicsString += topicHierarchyArray[index].topicName;
+ }
+ else {
+ var numberOfWhitespaces = 2 * index;
+ var whitespaceString = "";
+ for (let k = 0; k < numberOfWhitespaces; k++) {
+ whitespaceString += " ";
+ }
+ topicsString += whitespaceString + topicHierarchyArray[index].topicName;
+ }
+ if (index < topicHierarchyArray.length - 1) {
+ topicsString += "\n";
+ }
+ }
+ var category = "Punkt";
+ if (georesource.isLOI) {
+ category = "Linie";
+ }
+ else if (georesource.isAOI) {
+ category = "Fläche";
+ }
+ // Or JavaScript:
+ jspdf.autoTable({
+ head: [['Themenfeld', 'Datentyp', 'letzte Aktualisierung']],
+ body: [
+ [topicsString, category, this.tsToDate_withOptionalUpdateInterval(this.dateToTS(georesource.metadata.lastUpdate))]
+ // ...
+ ],
+ theme: 'grid',
+ headStyles: headStyles,
+ bodyStyles: bodyStyles,
+ startY: initialStartY
+ });
+ var datesString = "";
+ if (georesource.availablePeriodsOfValidity.length <= 10) {
+ for (var [j, period] of georesource.availablePeriodsOfValidity.entries()) {
+ var startDate = new Date(period.startDate);
+ var endDate = period.endDate ? new Date(period.endDate) : undefined;
+ datesString += "Zeitspanne: " + this.tsToDate_withOptionalUpdateInterval(this.dateToTS(startDate));
+ if (endDate) {
+ datesString += " - " + this.tsToDate_withOptionalUpdateInterval(this.dateToTS(endDate));
+ }
+ else {
+ datesString += "- 'null' (demnach gültig bis auf weiteres)";
+ }
+ if (j < georesource.availablePeriodsOfValidity.length - 1) {
+ datesString += "\n";
+ }
+ }
+ }
+ else {
+ datesString += "insgesamt " + georesource.availablePeriodsOfValidity.length + " Zeitspannen\n\n";
+ var earliestStartDate;
+ var latestEndDate = -1; // my be null --> enc init with -1
+ for (var [j, period] of georesource.availablePeriodsOfValidity.entries()) {
+ if (!earliestStartDate) {
+ earliestStartDate = new Date(period.startDate);
+ }
+ else {
+ if (new Date(period.startDate) < earliestStartDate) {
+ earliestStartDate = new Date(period.startDate);
+ }
+ }
+ if (latestEndDate == -1) {
+ if (period.endDate) {
+ latestEndDate = new Date(period.endDate);
+ }
+ else if (period.endDate == null) {
+ latestEndDate = null;
+ }
+ }
+ else {
+ if (latestEndDate && period.endDate && new Date(period.endDate) > latestEndDate) {
+ latestEndDate = new Date(period.endDate);
+ }
+ }
+ }
+ datesString += "frühestes Startdatum: " + this.tsToDate_withOptionalUpdateInterval(this.dateToTS(earliestStartDate)) + "\n";
+ if (latestEndDate != null && latestEndDate != -1) {
+ datesString += "spätestes Enddatum: " + this.tsToDate_withOptionalUpdateInterval(this.dateToTS(latestEndDate)) + "\n";
+ }
+ else {
+ datesString += "spätestes Enddatum: ohne explizites Enddatum (demnach gültig bis auf weiteres)\n";
+ }
+ }
+ // linked elements
+ jspdf.autoTable({
+ head: [],
+ body: [
+ ["Beschreibung", georesource.metadata.description],
+ ["Datengrundlage", georesource.metadata.databasis ? georesource.metadata.databasis : "-"],
+ ["Datenquelle", georesource.metadata.datasource ? georesource.metadata.datasource : "-"],
+ ["Datenhalter und Kontakt", georesource.metadata.contact ? georesource.metadata.contact : "-"],
+ ["Bemerkung", georesource.metadata.note ? georesource.metadata.note : "-"],
+ // $scope.updateInteval is a map mapping the english KEYs to german expressions
+ ["Zeitbezug / Fortführungsintervall", this.updateInterval.get(georesource.metadata.updateInterval.toUpperCase())],
+ ["Verfügbare Gültigkeitszeiträume", datesString],
+ ["Quellen / Literatur", georesource.metadata.literature ? georesource.metadata.literature : "-"]
+ ],
+ theme: 'grid',
+ headStyles: headStyles,
+ bodyStyles: bodyStyles,
+ columnStyles: columnStyles,
+ startY: jspdf.autoTable.previous.finalY + 10
+ });
+ jspdf.setProperties({
+ title: 'KomMonitor Geodatenblatt',
+ subject: pdfName,
+ author: 'KomMonitor',
+ keywords: 'Geodaten, Metadatenblatt',
+ creator: 'KomMonitor'
+ });
+ return jspdf;
+ };
+ this.generateGeoresourceMetadataPdf_asBlob = async function (georesourceMetadata) {
+ var pdfName = georesourceMetadata.datasetName + ".pdf";
+ var jspdf = await this.createMetadataPDF_georesource(georesourceMetadata, pdfName);
+ return jspdf.output("blob", { filename: pdfName });
+ };
+ this.downloadMetadataPDF_georesource = async function (georesourceMetadata) {
+ var pdfName = georesourceMetadata.datasetName + ".pdf";
+ var jspdf = await this.createMetadataPDF_georesource(georesourceMetadata, pdfName);
+ return jspdf.save(pdfName);
+ };
+ // this.getIndicatorStringFromIndicatorType = function (indicator) {
+ // var indicatorTypeString;
+ // if (indicator.indicatorType.includes("DYNAMIC_ABSOLUTE")) {
+ // indicatorTypeString = "Dynamik-Indikator (absolute)";
+ // }
+ // else if (indicator.indicatorType.includes("DYNAMIC_RELATIVE")) {
+ // indicatorTypeString = "Dynamik-Indikator (relativ)";
+ // }
+ // else if (indicator.indicatorType.includes("DYNAMIC_STANDARDIZED")) {
+ // indicatorTypeString = "Dynamik-Indikator (standardisiert)";
+ // }
+ // else if (indicator.indicatorType.includes("STATUS_ABSOLUTE")) {
+ // indicatorTypeString = "Status-Indikator (absolut)";
+ // }
+ // else if (indicator.indicatorType.includes("STATUS_RELATIVE")) {
+ // indicatorTypeString = "Status-Indikator (relativ)";
+ // }
+ // else if (indicator.indicatorType.includes("STATUS_STANDARDIZED")) {
+ // indicatorTypeString = "Status-Indikator (standardisiert)";
+ // }
+ // return indicatorTypeString;
+ // };
+ this.dateToTS = function (date) {
+ if (date) {
+ return date.valueOf();
+ }
+ };
+ this.tsToDate = function (ts) {
+ if (ts) {
+ var date = new Date(ts);
+ return date.toLocaleDateString("de-DE", {
+ year: 'numeric',
+ month: 'long',
+ day: 'numeric'
+ });
+ }
+ };
+ this.tsToDate_withOptionalUpdateInterval = function (ts, updateIntervalApiName) {
+ if (ts) {
+ var date = new Date(ts);
+ /**
+ * TODO FIXME dateSLider formatter will return only year for now to prevent misleading month and day settings
+ */
+ // return date.getFullYear();
+ if (updateIntervalApiName) {
+ if (updateIntervalApiName.toLowerCase() === "yearly") {
+ return date.getFullYear();
+ }
+ else if (updateIntervalApiName.toLowerCase() === "half_yearly") {
+ return (date.getMonth() + 1) + "/" + date.getFullYear();
+ }
+ else if (updateIntervalApiName.toLowerCase() === "monthly") {
+ return (date.getMonth() + 1) + "/" + date.getFullYear();
+ }
+ // else if(updateIntervalApiName.toLowerCase() === "weekly"){
+ // return date.toLocaleDateString("de-DE", {
+ // year: 'numeric',
+ // month: 'short',
+ // day: 'numeric'
+ // });
+ // }
+ // else if(updateIntervalApiName.toLowerCase() === "daily"){
+ // return date.toLocaleDateString("de-DE", {
+ // year: 'numeric',
+ // month: 'short',
+ // day: 'numeric'
+ // });
+ // }
+ else if (updateIntervalApiName.toLowerCase() === "quarterly") {
+ var year = date.getFullYear();
+ var month = date.getMonth();
+ if (month < 4) {
+ return "Q1/" + year;
+ }
+ else if (month < 7) {
+ return "Q2/" + year;
+ }
+ else if (month < 10) {
+ return "Q3/" + year;
+ }
+ else {
+ return "Q4/" + year;
+ }
+ }
+ else {
+ // includes daily and weekly, as they are presented equally
+ return date.toLocaleDateString("de-DE", {
+ year: 'numeric',
+ month: 'short',
+ day: 'numeric'
+ });
+ }
+ }
+ else {
+ return date.toLocaleDateString("de-DE", {
+ year: 'numeric',
+ month: 'short',
+ day: 'numeric'
+ });
+ }
+ }
+ };
+ this.getSpatialUnitIdFromSpatialUnitName = function (name) {
+ let result = null;
+ $(this.availableSpatialUnits).each((id, obj) => {
+ if (obj.spatialUnitLevel === name) {
+ result = obj.spatialUnitId;
+ return false;
+ }
+ });
+ return result;
+ };
+ /**
+ * creates an array of objects from an array of strings.
+ * each object in the result has the properties "category" and "name"
+ *
+ * example:
+ * convert ["s1", "s2", ...] ===> [{category: "s1",name: "s1"}, {category: "s2", name: "s2"}, ...]
+ * @param {array} array
+ */
+ this.createDualListInputArray = function (array, nameProperty, idProperty) {
+ var result = [];
+ if (array && Array.isArray(array)) {
+ for (var i = 0; i < array.length; i++) {
+ var obj = {};
+ obj["category"] = array[i][nameProperty];
+ obj["name"] = array[i][nameProperty];
+ if (idProperty && array[i][idProperty]) {
+ obj["id"] = array[i][idProperty];
+ }
+ result.push(obj);
+ }
+ }
+ return result;
+ };
+ this.initializeRoleDualListConfig = function (inputArray, selectedArray, nameProperty) {
+ var duallistRoleOptions = {
+ label: 'Rollen',
+ boxItemsHeight: 'md',
+ items: this.createDualListInputArray(inputArray, nameProperty),
+ button: { leftText: "Alle auswählen", rightText: "Alle entfernen" },
+ selectedItems: this.createDualListInputArray(selectedArray, nameProperty)
+ };
+ // remove those timestamps from left side
+ duallistRoleOptions.items = duallistRoleOptions.items.filter(function (unselectedItem) {
+ return !duallistRoleOptions.selectedItems.find(function (selectedItem) {
+ return unselectedItem.name === selectedItem.name;
+ });
+ });
+ return duallistRoleOptions;
+ };
+ this.getRoleMetadataForRoleName = function (roleName) {
+ for (const roleMetadata of this.availableRoles) {
+ if (roleMetadata.roleName === roleName) {
+ return roleMetadata;
+ }
+ }
+ };
+ this.getRoleMetadataForRoleId = function (roleId) {
+ for (const roleMetadata of this.availableRoles) {
+ if (roleMetadata.roleId === roleId) {
+ return roleMetadata;
+ }
+ }
+ };
+ this.getRoleMetadataForRoleIds = function (roleIdsArray) {
+ var rolesMetadata = [];
+ for (const roleMetadata of this.availableRoles) {
+ if (roleIdsArray.includes(roleMetadata.roleId)) {
+ rolesMetadata.push(roleMetadata);
+ }
+ }
+ return rolesMetadata;
+ };
+ this.getAllowedRolesString = function (allowedRoleIds) {
+ var allowedRoles = [];
+ for (const organizationalUnit of this.accessControl) {
+ for (const role of organizationalUnit.roles) {
+ if (allowedRoleIds.includes(role.roleId)) {
+ allowedRoles.push(organizationalUnit.name + "-" + role.permissionLevel);
+ }
+ }
+ }
+ return allowedRoles.join(", ");
+ };
+ this.checkDeletePermission = function () {
+ for (const role of this.currentKeycloakLoginRoles) {
+ let roleNameParts = role.split("-");
+ const permissionLevel = roleNameParts[roleNameParts.length - 1]; //e.g. kommonitor-creator
+ if (permissionLevel == "creator") {
+ return true;
+ }
+ }
+ return false;
+ };
+ this.checkCreatePermission = function () {
+ for (const role of this.currentKeycloakLoginRoles) {
+ let roleNameParts = role.split("-");
+ const permissionLevel = roleNameParts[roleNameParts.length - 1]; //e.g. kommonitor-creator
+ if (permissionLevel == "publisher" || permissionLevel == "creator") {
+ return true;
+ }
+ }
+ return false;
+ };
+ this.checkEditorPermission = function () {
+ for (const role of this.currentKeycloakLoginRoles) {
+ let roleNameParts = role.split("-");
+ const permissionLevel = roleNameParts[roleNameParts.length - 1]; //e.g. kommonitor-creator
+ if (permissionLevel == "editor" || permissionLevel == "creator" || permissionLevel == "publisher") {
+ return true;
+ }
+ }
+ return false;
+ };
+ this.checkAdminPermission = function () {
+ if (this.currentKeycloakLoginRoles.includes(__env.keycloakKomMonitorAdminRoleName)) {
+ return true;
+ }
+ return false;
+ };
+ $rootScope.$on("onAddedFeatureToSelection", function (event, selectedIndicatorFeatureIds) {
+ let propertyName = buildIndicatorPropertyName();
+ $timeout(function (params) {
+ thisService.setSelectedFeatureProperty(selectedIndicatorFeatureIds, propertyName);
+ });
+ });
+ $rootScope.$on("onRemovedFeatureFromSelection", function (event, selectedIndicatorFeatureIds) {
+ let propertyName = buildIndicatorPropertyName();
+ $timeout(function (params) {
+ thisService.setSelectedFeatureProperty(selectedIndicatorFeatureIds, propertyName);
+ });
+ });
+ function buildIndicatorPropertyName() {
+ const INDICATOR_DATE_PREFIX = __env.indicatorDatePrefix;
+ let propertyName = INDICATOR_DATE_PREFIX + thisService.selectedDate;
+ return propertyName;
+ }
+ this.reportingDefaultTemplatePageElements = [
+ {
+ "type": "indicatorTitle-landscape",
+ "dimensions": {
+ "top": "15px",
+ "left": "15px",
+ "width": "720px",
+ "height": "30px"
+ },
+ "isPlaceholder": true,
+ "placeholderText": "Titel des Indikators [Einheit]",
+ "text": "",
+ "css": "text-align: left; padding-left: 5px; font-weight: bold;"
+ },
+ {
+ "type": "dataTimestamp-landscape",
+ "dimensions": {
+ "top": "50px",
+ "left": "15px",
+ "width": "720px",
+ "height": "30px"
+ },
+ "isPlaceholder": true,
+ "placeholderText": "Datenstand",
+ "text": "",
+ "css": "text-align: left; padding-left: 5px;"
+ },
+ {
+ "type": "dataTimeseries-landscape",
+ "dimensions": {
+ "top": "50px",
+ "left": "15px",
+ "width": "720px",
+ "height": "30px"
+ },
+ "isPlaceholder": true,
+ "placeholderText": "Zeitreihe von - bis",
+ "text": "",
+ "css": "text-align: left; padding-left: 5px;"
+ },
+ {
+ "type": "reachability-subtitle-landscape",
+ "dimensions": {
+ "top": "50px",
+ "left": "15px",
+ "width": "720px",
+ "height": "30px"
+ },
+ "isPlaceholder": true,
+ "placeholderText": "Aktueller Datenstand, Fortbewegungsmittel, [Indikator]",
+ "text": "",
+ "css": "text-align: left; padding-left: 5px;"
+ },
+ {
+ "type": "communeLogo-landscape",
+ "dimensions": {
+ "top": "15px",
+ "left": "740px",
+ "width": "75px",
+ "height": "65px"
+ },
+ "isPlaceholder": true,
+ "placeholderText": "Logo",
+ "src": ""
+ },
+ {
+ "type": "footerHorizontalSpacer-landscape",
+ "dimensions": {
+ "top": "535px",
+ "left": "15px",
+ "width": "800px",
+ "height": "0px"
+ },
+ "css": "border-top: solid rgb(148, 148, 148) 1px;"
+ },
+ {
+ "type": "footerCreationInfo-landscape",
+ "dimensions": {
+ "top": "545px",
+ "left": "15px",
+ "width": "720px",
+ "height": "30px"
+ },
+ "isPlaceholder": true,
+ "placeholderText": "Erstellt am [Datum] von [Name d. Bearbeiters], [Name d. Kommune]",
+ "css": "text-align: left; padding-left: 5px;"
+ },
+ {
+ "type": "pageNumber-landscape",
+ "dimensions": {
+ "top": "545px",
+ "left": "740px",
+ "width": "75px",
+ "height": "30px"
+ },
+ "isPlaceholder": true,
+ "placeholderText": "[Seitenzahl]",
+ "css": "text-align: right; padding-right: 5px;"
+ },
+ ];
+ this.getDefaultReportingTemplatePageElement = function (type) {
+ let result = this.reportingDefaultTemplatePageElements.filter((el) => {
+ return el.type === type;
+ });
+ if (typeof (result) === "undefined") {
+ throw "No DefaultReportingTemplatePageElement exists for type " + type + ".";
+ }
+ else {
+ return result[0];
+ }
+ };
+ this.generateAndDownloadIndicatorZIP = async function (indicatorData, fileName, fileEnding, jsZipOptions) {
+ // generate metadata file and include actual dataset and metadata file in download
+ var metadataPdf = await this.generateIndicatorMetadataPdf_asBlob();
+ var zip = new JSZip();
+ zip.file(fileName + fileEnding, indicatorData, jsZipOptions);
+ zip.file(fileName + "_Metadata.pdf", metadataPdf);
+ zip.generateAsync({ type: "blob" })
+ .then(function (content) {
+ // see FileSaver.js
+ saveAs(content, fileName + ".zip");
+ });
+ };
+ this.generateAndDownloadGeoresourceZIP = async function (georesourceMetadata, georesourceData, fileName, fileEnding, jsZipOptions) {
+ // generate metadata file and include actual dataset and metadata file in download
+ var metadataPdf = await this.generateGeoresourceMetadataPdf_asBlob(georesourceMetadata);
+ var zip = new JSZip();
+ zip.file(fileName + fileEnding, georesourceData, jsZipOptions);
+ zip.file(fileName + "_Metadata.pdf", metadataPdf);
+ zip.generateAsync({ type: "blob" })
+ .then(function (content) {
+ // see FileSaver.js
+ saveAs(content, fileName + ".zip");
+ });
+ };
+ }]);
+//# sourceMappingURL=kommonitor-data-exchange-service.js.map
\ No newline at end of file
diff --git a/app/utils/kommonitorDataExchangeService/kommonitor-data-exchange-service.js.map b/app/utils/kommonitorDataExchangeService/kommonitor-data-exchange-service.js.map
new file mode 100644
index 000000000..fadcea026
--- /dev/null
+++ b/app/utils/kommonitorDataExchangeService/kommonitor-data-exchange-service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"kommonitor-data-exchange-service.js","sourceRoot":"","sources":["kommonitor-data-exchange-service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/utils/kommonitorDiagramHelperService/kommonitor-diagram-helper-service.js b/app/utils/kommonitorDiagramHelperService/kommonitor-diagram-helper-service.js
new file mode 100644
index 000000000..1c635d9f1
--- /dev/null
+++ b/app/utils/kommonitorDiagramHelperService/kommonitor-diagram-helper-service.js
@@ -0,0 +1,252 @@
+import { __decorate } from "tslib";
+import { Injectable, EventEmitter } from '@angular/core';
+import { environment } from 'env_backup';
+export let KommonitorDiagramHelperService = class KommonitorDiagramHelperService {
+ constructor(mapService, dataExchangeService, filterHelperService, http) {
+ this.mapService = mapService;
+ this.dataExchangeService = dataExchangeService;
+ this.filterHelperService = filterHelperService;
+ this.http = http;
+ this.INDICATOR_DATE_PREFIX = environment.indicatorDatePrefix;
+ this.defaultColorForHoveredFeatures = environment.defaultColorForHoveredFeatures;
+ this.defaultColorForClickedFeatures = environment.defaultColorForClickedFeatures;
+ this.numberOfDecimals = environment.numberOfDecimals;
+ this.defaultColorForZeroValues = environment.defaultColorForZeroValues;
+ this.defaultColorForNoDataValues = environment.defaultColorForNoDataValues;
+ this.defaultColorForFilteredValues = environment.defaultColorForFilteredValues;
+ this.defaultColorForOutliers_high = environment.defaultColorForOutliers_high;
+ this.defaultBorderColorForOutliers_high = environment.defaultBorderColorForOutliers_high;
+ this.defaultFillOpacityForOutliers_high = environment.defaultFillOpacityForOutliers_high;
+ this.defaultColorForOutliers_low = environment.defaultColorForOutliers_low;
+ this.defaultBorderColorForOutliers_low = environment.defaultBorderColorForOutliers_low;
+ this.defaultFillOpacityForOutliers_low = environment.defaultFillOpacityForOutliers_low;
+ this.indicatorPropertyName = "";
+ this.barChartOptions = {};
+ this.lineChartOptions = {};
+ this.histogramChartOptions = {};
+ this.radarChartOptions = {};
+ this.regressionChartOptions = {};
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTime = [];
+ this.filterSameUnitAndSameTime = false;
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTimeSetupBegin = new EventEmitter();
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTimeSetupCompleted = new EventEmitter();
+ this.geoMapChartOptions = {};
+ this.fetchIndicatorPropertiesIfNotExists = async (index) => {
+ if (this.allIndicatorPropertiesForCurrentSpatialUnitAndTime[index].indicatorProperties === null ||
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTime[index].indicatorProperties === undefined) {
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTime[index].indicatorProperties = await this.fetchIndicatorProperties(this.allIndicatorPropertiesForCurrentSpatialUnitAndTime[index].indicatorMetadata, this.dataExchangeService.selectedSpatialUnit.spatialUnitId);
+ }
+ };
+ this.compareFeaturesByIndicatorValue = (featureA, featureB) => {
+ if (featureA.properties[this.indicatorPropertyName] < featureB.properties[this.indicatorPropertyName]) {
+ return -1;
+ }
+ if (featureA.properties[this.indicatorPropertyName] > featureB.properties[this.indicatorPropertyName]) {
+ return 1;
+ }
+ return 0;
+ };
+ }
+ isCloserToTargetDate(date, closestDate, targetDate) {
+ const targetYear = targetDate.split("-")[0];
+ const targetMonth = targetDate.split("-")[1];
+ const targetDay = targetDate.split("-")[2];
+ const closestDateComps = closestDate.split("-");
+ const closestDateYear = closestDateComps[0];
+ const closestDateMonth = closestDateComps[1];
+ const closestDateDay = closestDateComps[2];
+ const dateComps = date.split("-");
+ const year = dateComps[0];
+ const month = dateComps[1];
+ const day = dateComps[2];
+ const monthDiff_closestDate = Math.abs(targetMonth - closestDateMonth);
+ const monthDiff_date = Math.abs(targetMonth - month);
+ if (monthDiff_date <= monthDiff_closestDate) {
+ const dayDiff_closestDate = Math.abs(targetDay - closestDateDay);
+ const dayDiff_date = Math.abs(targetDay - day);
+ if (dayDiff_date < dayDiff_closestDate) {
+ return true;
+ }
+ }
+ return false;
+ }
+ findClostestTimestamForTargetDate(indicatorForRadar, targetDate) {
+ const applicableDates = indicatorForRadar.indicatorMetadata.applicableDates;
+ const targetYear = targetDate.split("-")[0];
+ const targetMonth = targetDate.split("-")[1];
+ const targetDay = targetDate.split("-")[2];
+ let closestDate;
+ for (const date of applicableDates) {
+ const dateComps = date.split("-");
+ const year = dateComps[0];
+ const month = dateComps[1];
+ const day = dateComps[2];
+ if (targetDate.includes(year)) {
+ if (!closestDate) {
+ closestDate = date;
+ }
+ else {
+ if (this.isCloserToTargetDate(date, closestDate, targetDate)) {
+ closestDate = date;
+ }
+ }
+ }
+ }
+ return closestDate;
+ }
+ setupAllIndicatorPropertiesForCurrentSpatialUnitAndTime(filterBySameUnitAndSameTime) {
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTimeSetupBegin.emit();
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTime = [];
+ this.dataExchangeService.displayableIndicators.forEach((indicatorMetadata) => {
+ const targetYear = this.dataExchangeService.selectedDate.split("-")[0];
+ const indicatorCandidateYears = [];
+ indicatorMetadata.applicableDates.forEach((date) => {
+ indicatorCandidateYears.push(date.split("-")[0]);
+ });
+ if (indicatorMetadata.applicableSpatialUnits.some((o) => o.spatialUnitName === this.dataExchangeService.selectedSpatialUnit.spatialUnitLevel)) {
+ let canBeAdded = true;
+ if (filterBySameUnitAndSameTime) {
+ if (indicatorCandidateYears.includes(targetYear)) {
+ canBeAdded = true;
+ }
+ else {
+ canBeAdded = false;
+ }
+ }
+ if (canBeAdded) {
+ const selectableIndicatorEntry = {};
+ selectableIndicatorEntry.indicatorProperties = null;
+ selectableIndicatorEntry.isSelected = false;
+ selectableIndicatorEntry.indicatorMetadata = indicatorMetadata;
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTime.push(selectableIndicatorEntry);
+ }
+ }
+ });
+ this.allIndicatorPropertiesForCurrentSpatialUnitAndTimeSetupCompleted.emit();
+ }
+ fetchIndicatorProperties(indicatorMetadata, spatialUnitId) {
+ const url = `${this.dataExchangeService.getBaseUrlToKomMonitorDataAPI_spatialResource()}/indicators/${indicatorMetadata.indicatorId}/${spatialUnitId}/without-geometry`;
+ return this.http.get(url).toPromise();
+ }
+ getColorFromBrewInstance(brewInstance, feature, targetDate) {
+ let color;
+ for (let index = 0; index < brewInstance.breaks.length; index++) {
+ if (this.dataExchangeService.getIndicatorValueFromArray_asNumber(feature.properties, targetDate) ===
+ this.dataExchangeService.getIndicatorValue_asNumber(brewInstance.breaks[index])) {
+ if (index < brewInstance.breaks.length - 1) {
+ // min value
+ color = brewInstance.colors[index];
+ break;
+ }
+ else {
+ // max value
+ if (brewInstance.colors[index]) {
+ color = brewInstance.colors[index];
+ }
+ else {
+ color = brewInstance.colors[index - 1];
+ }
+ break;
+ }
+ }
+ else {
+ if (this.dataExchangeService.getIndicatorValueFromArray_asNumber(feature.properties, targetDate) <
+ this.dataExchangeService.getIndicatorValue_asNumber(brewInstance.breaks[index + 1])) {
+ color = brewInstance.colors[index];
+ break;
+ }
+ }
+ }
+ return color;
+ }
+ getColorForFeature(feature, indicatorMetadataAndGeoJSON, targetDate, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue) {
+ let color;
+ if (!targetDate.includes(this.INDICATOR_DATE_PREFIX)) {
+ targetDate = this.INDICATOR_DATE_PREFIX + targetDate;
+ }
+ if (this.dataExchangeService.indicatorValueIsNoData(feature.properties[targetDate])) {
+ color = this.defaultColorForNoDataValues;
+ }
+ else if (this.filterHelperService.featureIsCurrentlyFiltered(feature.properties[this.__env.FEATURE_ID_PROPERTY_NAME])) {
+ color = this.defaultColorForFilteredValues;
+ }
+ else if (this.dataExchangeService.classifyZeroSeparately && this.dataExchangeService.getIndicatorValueFromArray_asNumber(feature.properties, targetDate) === 0) {
+ color = this.defaultColorForZeroValues;
+ }
+ else if (feature.properties["outlier"] !== undefined && feature.properties["outlier"].includes("low") && this.dataExchangeService.useOutlierDetectionOnIndicator) {
+ color = this.defaultColorForOutliers_low;
+ }
+ else if (feature.properties["outlier"] !== undefined && feature.properties["outlier"].includes("high") && this.dataExchangeService.useOutlierDetectionOnIndicator) {
+ color = this.defaultColorForOutliers_high;
+ }
+ else if (isMeasureOfValueChecked) {
+ if (this.dataExchangeService.getIndicatorValueFromArray_asNumber(feature.properties, targetDate) >= +Number(measureOfValue).toFixed(this.numberOfDecimals)) {
+ color = this.getColorFromBrewInstance(gtMeasureOfValueBrew, feature, targetDate);
+ }
+ else {
+ color = this.getColorFromBrewInstance(ltMeasureOfValueBrew, feature, targetDate);
+ }
+ }
+ else {
+ if (indicatorMetadataAndGeoJSON.indicatorType.includes('DYNAMIC')) {
+ if (feature.properties[targetDate] < 0) {
+ color = this.getColorFromBrewInstance(dynamicDecreaseBrew, feature, targetDate);
+ }
+ else {
+ color = this.getColorFromBrewInstance(dynamicIncreaseBrew, feature, targetDate);
+ }
+ }
+ else {
+ if (containsNegativeValues(indicatorMetadataAndGeoJSON.geoJSON, targetDate)) {
+ if (this.dataExchangeService.getIndicatorValue_asNumber(feature.properties[targetDate]) >= 0) {
+ if (this.dataExchangeService.classifyZeroSeparately && (feature.properties[targetDate] == 0 || feature.properties[targetDate] == "0")) {
+ color = this.defaultColorForZeroValues;
+ }
+ else {
+ color = this.getColorFromBrewInstance(dynamicIncreaseBrew, feature, targetDate);
+ }
+ }
+ else {
+ if (this.dataExchangeService.classifyZeroSeparately && (feature.properties[targetDate] == 0 || feature.properties[targetDate] == "0")) {
+ color = this.defaultColorForZeroValues;
+ }
+ else {
+ color = this.getColorFromBrewInstance(dynamicDecreaseBrew, feature, targetDate);
+ }
+ }
+ }
+ else {
+ color = this.getColorFromBrewInstance(defaultBrew, feature, targetDate);
+ }
+ }
+ }
+ return color;
+ }
+ setLineChartOptions(indicatorMetadataAndGeoJSON, indicatorTimeSeriesDatesArray, indicatorTimeSeriesAverageArray, indicatorTimeSeriesMaxArray, indicatorTimeSeriesMinArray, spatialUnitName, date) {
+ throw new Error('Function not implemented.');
+ }
+ getBarChartOptions() {
+ return this.barChartOptions;
+ }
+ getGeoMapChartOptions() {
+ return this.geoMapChartOptions;
+ }
+ getHistogramChartOptions() {
+ return this.histogramChartOptions;
+ }
+ getLineChartOptions() {
+ return this.lineChartOptions;
+ }
+ prepareAllDiagramResources_forCurrentMapIndicator(indicatorMetadataAndGeoJSON, spatialUnitName, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, filterOutFutureDates) {
+ this.prepareAllDiagramResources(indicatorMetadataAndGeoJSON, spatialUnitName, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, filterOutFutureDates, false);
+ }
+ prepareAllDiagramResources_forReportingIndicator(indicatorMetadataAndGeoJSON, spatialUnitName, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, filterOutFutureDates) {
+ this.prepareAllDiagramResources(indicatorMetadataAndGeoJSON, spatialUnitName, date, defaultBrew, gtMeasureOfValueBrew, ltMeasureOfValueBrew, dynamicIncreaseBrew, dynamicDecreaseBrew, isMeasureOfValueChecked, measureOfValue, filterOutFutureDates, true);
+ }
+};
+KommonitorDiagramHelperService = __decorate([
+ Injectable({
+ providedIn: 'root'
+ })
+], KommonitorDiagramHelperService);
+//# sourceMappingURL=kommonitor-diagram-helper-service.js.map
\ No newline at end of file
diff --git a/app/utils/kommonitorDiagramHelperService/kommonitor-diagram-helper-service.js.map b/app/utils/kommonitorDiagramHelperService/kommonitor-diagram-helper-service.js.map
new file mode 100644
index 000000000..aac98a75e
--- /dev/null
+++ b/app/utils/kommonitorDiagramHelperService/kommonitor-diagram-helper-service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"kommonitor-diagram-helper-service.js","sourceRoot":"","sources":["kommonitor-diagram-helper-service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/app/utils/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js b/app/utils/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js
new file mode 100644
index 000000000..63eb7b11f
--- /dev/null
+++ b/app/utils/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js
@@ -0,0 +1,82 @@
+import { __decorate } from "tslib";
+import { Injectable } from '@angular/core';
+export let KommonitorElementVisibilityHelperService = class KommonitorElementVisibilityHelperService {
+ constructor(http, controlsConfigService, authService, dataExchangeService, keycloakHelperService) {
+ this.http = http;
+ this.controlsConfigService = controlsConfigService;
+ this.authService = authService;
+ this.dataExchangeService = dataExchangeService;
+ this.keycloakHelperService = keycloakHelperService;
+ this.elementVisibility = {};
+ this.isAdvancedMode = false;
+ this.showAdvancedModeSwitch = false;
+ this.advancedModeRoleName = "fakeAdvancedModeRole";
+ this.initElementVisibility();
+ }
+ initElementVisibility() {
+ this.dataExchangeService.showDiagramExportButtonsSubject.next(true);
+ this.dataExchangeService.showGeoresourceExportButtonsSubject.next(true);
+ this.elementVisibility = {};
+ const config = this.controlsConfigService.getControlsConfig();
+ config.forEach(element => {
+ this.elementVisibility[element.id] = this.checkElementVisibility(element.id);
+ });
+ }
+ onChangeIsAdvancedMode() {
+ this.initElementVisibility();
+ this.dataExchangeService.changeIndicatorDateSubject.next();
+ }
+ checkElementVisibility(id) {
+ const element = this.controlsConfigService.getControlsConfig().find(element => element.id === id);
+ if (!element.roles || element.roles.length === 0) {
+ return true;
+ }
+ else if (this.isAdvancedMode && element.roles && element.roles.includes(this.advancedModeRoleName)) {
+ return true;
+ }
+ else if (this.authService.isAuthenticated()) {
+ if (this.authService.showAdminView()) {
+ return true;
+ }
+ const hasAllowedRole = element.roles.some(role => this.authService.hasRole(role));
+ if (!hasAllowedRole) {
+ if (element.id === "diagramExportButtons") {
+ this.dataExchangeService.showDiagramExportButtonsSubject.next(false);
+ }
+ if (element.id === "georesourceExportButtons") {
+ this.dataExchangeService.showGeoresourceExportButtonsSubject.next(false);
+ }
+ }
+ return hasAllowedRole;
+ }
+ else {
+ if (!this.keycloakHelperService.enableKeycloakSecurity) {
+ if (element.roles && element.roles.includes(this.advancedModeRoleName)) {
+ if (element.id === "diagramExportButtons") {
+ this.dataExchangeService.showDiagramExportButtonsSubject.next(false);
+ }
+ if (element.id === "georesourceExportButtons") {
+ this.dataExchangeService.showGeoresourceExportButtonsSubject.next(false);
+ }
+ return false;
+ }
+ return true;
+ }
+ else {
+ if (element.id === "diagramExportButtons") {
+ this.dataExchangeService.showDiagramExportButtonsSubject.next(false);
+ }
+ if (element.id === "georesourceExportButtons") {
+ this.dataExchangeService.showGeoresourceExportButtonsSubject.next(false);
+ }
+ return false;
+ }
+ }
+ }
+};
+KommonitorElementVisibilityHelperService = __decorate([
+ Injectable({
+ providedIn: 'root'
+ })
+], KommonitorElementVisibilityHelperService);
+//# sourceMappingURL=kommonitor-element-visibility-helper-service.service.js.map
\ No newline at end of file
diff --git a/app/utils/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js.map b/app/utils/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js.map
new file mode 100644
index 000000000..c7dbe57b1
--- /dev/null
+++ b/app/utils/kommonitorElementVisibilityHelperService/kommonitor-element-visibility-helper-service.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"kommonitor-element-visibility-helper-service.service.js","sourceRoot":"","sources":["kommonitor-element-visibility-helper-service.service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 1c0d884c8..1f30b042e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -45,6 +45,7 @@
"echarts": "^5.4.3",
"echarts-for-angular": "^0.4.0",
"echarts-stat": "^1.2.0",
+ "eslint-plugin-import": "^2.28.1",
"fastclick": "^1.0.6",
"file-saver": "^2.0.5",
"font-awesome": "^4.7.0",
@@ -137,6 +138,15 @@
"webpack-cli": "^4.5.0"
}
},
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@@ -3110,6 +3120,141 @@
"node": ">=12"
}
},
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "peer": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz",
+ "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==",
+ "peer": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
+ "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+ "peer": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "peer": true
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.21.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz",
+ "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==",
+ "peer": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "peer": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "peer": true
+ },
+ "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.49.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz",
+ "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==",
+ "peer": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
"node_modules/@fortawesome/fontawesome-free": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz",
@@ -3128,6 +3273,39 @@
"fast-deep-equal": "^3.1.3"
}
},
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.11",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
+ "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+ "peer": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "peer": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "peer": true
+ },
"node_modules/@iarna/toml": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
@@ -5716,6 +5894,11 @@
"integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
"dev": true
},
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ },
"node_modules/@types/mathjax": {
"version": "0.0.37",
"resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.37.tgz",
@@ -6070,6 +6253,15 @@
"node": ">=0.4.0"
}
},
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "peer": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
"node_modules/acorn-node": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
@@ -6521,7 +6713,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
"integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"is-array-buffer": "^3.0.1"
@@ -6554,6 +6745,24 @@
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
"dev": true
},
+ "node_modules/array-includes": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+ "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/array-slice": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
@@ -6572,6 +6781,58 @@
"node": ">=8"
}
},
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
+ "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/array.prototype.map": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.5.tgz",
@@ -6591,6 +6852,26 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
+ "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
@@ -8749,7 +9030,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -9856,7 +10136,6 @@
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -10178,8 +10457,7 @@
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
},
"node_modules/default-browser": {
"version": "4.0.0",
@@ -10361,6 +10639,19 @@
"node": ">=10"
}
},
+ "node_modules/define-data-property": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz",
+ "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/define-lazy-prop": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
@@ -10595,6 +10886,18 @@
"node": ">=6"
}
},
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "peer": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/docx": {
"version": "7.8.2",
"resolved": "https://registry.npmjs.org/docx/-/docx-7.8.2.tgz",
@@ -10985,17 +11288,17 @@
"dev": true
},
"node_modules/es-abstract": {
- "version": "1.21.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.3.tgz",
- "integrity": "sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg==",
- "dev": true,
+ "version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz",
+ "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==",
"dependencies": {
"array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"es-set-tostringtag": "^2.0.1",
"es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.5",
+ "function.prototype.name": "^1.1.6",
"get-intrinsic": "^1.2.1",
"get-symbol-description": "^1.0.0",
"globalthis": "^1.0.3",
@@ -11011,20 +11314,23 @@
"is-regex": "^1.1.4",
"is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
- "is-typed-array": "^1.1.10",
+ "is-typed-array": "^1.1.12",
"is-weakref": "^1.0.2",
"object-inspect": "^1.12.3",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.0",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
"safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.7",
- "string.prototype.trimend": "^1.0.6",
- "string.prototype.trimstart": "^1.0.6",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
"typed-array-byte-offset": "^1.0.0",
"typed-array-length": "^1.0.4",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.10"
+ "which-typed-array": "^1.1.11"
},
"engines": {
"node": ">= 0.4"
@@ -11069,7 +11375,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
"integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
- "dev": true,
"dependencies": {
"get-intrinsic": "^1.1.3",
"has": "^1.0.3",
@@ -11079,11 +11384,18 @@
"node": ">= 0.4"
}
},
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
"node_modules/es-to-primitive": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
"integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
"dependencies": {
"is-callable": "^1.1.4",
"is-date-object": "^1.0.1",
@@ -11219,20 +11531,484 @@
"dev": true,
"optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.49.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz",
+ "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==",
+ "peer": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.2",
+ "@eslint/js": "8.49.0",
+ "@humanwhocodes/config-array": "^0.11.11",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/resolve": {
+ "version": "1.22.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.5.tgz",
+ "integrity": "sha512-qWhv7PF1V95QPvRoUGHxOtnAlEvlXBylMZcjUR9pAumMmveFtcHJRXGIr+TkjfNJVQypqv2qcDiiars2y1PsSg==",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.28.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz",
+ "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.findlastindex": "^1.2.2",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.8.0",
+ "has": "^1.0.3",
+ "is-core-module": "^2.13.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.6",
+ "object.groupby": "^1.0.0",
+ "object.values": "^1.1.6",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.14.2"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "peer": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "peer": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "peer": true
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "peer": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "peer": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "peer": true
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "peer": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "peer": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "peer": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "peer": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.21.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz",
+ "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==",
+ "peer": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "peer": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/eslint/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "peer": true
+ },
+ "node_modules/eslint/node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "peer": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/eslint/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "peer": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "peer": true,
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/eslint/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "peer": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/eslint/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "peer": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "peer": true,
"engines": {
- "node": ">=8.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/esm": {
@@ -11244,6 +12020,35 @@
"node": ">=6"
}
},
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "peer": true,
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree/node_modules/acorn": {
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
+ "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+ "peer": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -11257,11 +12062,31 @@
"node": ">=4"
}
},
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "peer": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "peer": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/esrecurse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -11273,7 +12098,6 @@
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
"engines": {
"node": ">=4.0"
}
@@ -11291,7 +12115,6 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -11582,8 +12405,7 @@
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "devOptional": true
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-glob": {
"version": "3.2.12",
@@ -11603,14 +12425,12 @@
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"node_modules/fast-safe-stringify": {
"version": "2.1.1",
@@ -11703,6 +12523,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "peer": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
"node_modules/file-saver": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
@@ -11857,6 +12689,41 @@
"node": ">= 0.10"
}
},
+ "node_modules/flat-cache": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz",
+ "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==",
+ "peer": true,
+ "dependencies": {
+ "flatted": "^3.2.7",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/flat-cache/node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "peer": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "peer": true
+ },
"node_modules/flot": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/flot/-/flot-0.8.3.tgz",
@@ -12139,15 +13006,14 @@
"dev": true
},
"node_modules/function.prototype.name": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
- "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
- "dev": true,
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0",
- "functions-have-names": "^1.2.2"
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
},
"engines": {
"node": ">= 0.4"
@@ -12300,7 +13166,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
"integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.1"
@@ -12493,7 +13358,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
"integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "dev": true,
"dependencies": {
"define-properties": "^1.1.3"
},
@@ -12633,6 +13497,12 @@
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true
},
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "peer": true
+ },
"node_modules/grunt": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz",
@@ -13918,7 +14788,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
"integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -14588,7 +15457,6 @@
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
- "dev": true,
"engines": {
"node": ">= 4"
}
@@ -14657,7 +15525,6 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -14673,7 +15540,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -14710,7 +15576,6 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
"engines": {
"node": ">=0.8.19"
}
@@ -14929,7 +15794,6 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
"integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
- "dev": true,
"dependencies": {
"get-intrinsic": "^1.2.0",
"has": "^1.0.3",
@@ -15017,7 +15881,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
"integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.2.0",
@@ -15037,7 +15900,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
"integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
- "dev": true,
"dependencies": {
"has-bigints": "^1.0.1"
},
@@ -15060,7 +15922,6 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
"integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -15101,9 +15962,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
- "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
+ "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
"dependencies": {
"has": "^1.0.3"
},
@@ -15270,7 +16131,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
"integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
- "dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -15302,7 +16162,6 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
"integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "dev": true,
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -15326,7 +16185,6 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -15395,7 +16253,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
"integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2"
},
@@ -15428,7 +16285,6 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
"integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "dev": true,
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -15443,7 +16299,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
"integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "dev": true,
"dependencies": {
"has-symbols": "^1.0.2"
},
@@ -15455,15 +16310,11 @@
}
},
"node_modules/is-typed-array": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
- "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
+ "which-typed-array": "^1.1.11"
},
"engines": {
"node": ">= 0.4"
@@ -15512,7 +16363,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
"integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2"
},
@@ -15559,14 +16409,12 @@
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"node_modules/isobject": {
"version": "3.0.1",
@@ -16054,8 +16902,7 @@
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
@@ -16081,6 +16928,12 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "peer": true
+ },
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -16273,10 +17126,9 @@
}
},
"node_modules/keyv": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz",
- "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==",
- "dev": true,
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz",
+ "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==",
"dependencies": {
"json-buffer": "3.0.1"
}
@@ -16865,6 +17717,12 @@
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
"integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A=="
},
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "peer": true
+ },
"node_modules/lodash.union": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
@@ -17864,6 +18722,12 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "peer": true
+ },
"node_modules/needle": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz",
@@ -18808,7 +19672,6 @@
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
"integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
@@ -18837,6 +19700,33 @@
"node": ">=0.10.0"
}
},
+ "node_modules/object.fromentries": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
+ "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.groupby": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
+ "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1"
+ }
+ },
"node_modules/object.map": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
@@ -18862,6 +19752,22 @@
"node": ">=0.10.0"
}
},
+ "node_modules/object.values": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+ "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/obuf": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
@@ -19137,7 +20043,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -19390,7 +20295,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
"dependencies": {
"callsites": "^3.0.0"
},
@@ -19562,7 +20466,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -19579,7 +20482,6 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -20936,13 +21838,13 @@
"dev": true
},
"node_modules/regexp.prototype.flags": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.2.0",
- "functions-have-names": "^1.2.3"
+ "set-function-name": "^2.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -22036,6 +22938,23 @@
"tslib": "^2.1.0"
}
},
+ "node_modules/safe-array-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz",
+ "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -22051,7 +22970,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
"integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.3",
@@ -22372,6 +23290,19 @@
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
"dev": true
},
+ "node_modules/set-function-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
+ "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
@@ -22419,7 +23350,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -22431,7 +23361,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -23200,14 +24129,13 @@
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
- "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
- "dev": true,
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
},
"engines": {
"node": ">= 0.4"
@@ -23217,28 +24145,26 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
- "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
- "dev": true,
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
- "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
- "dev": true,
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -23272,7 +24198,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -23826,8 +24751,7 @@
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
},
"node_modules/through": {
"version": "2.3.8",
@@ -24120,6 +25044,28 @@
"integrity": "sha512-jxyxgKVKa4Bh5dPcO42TJL22lIvfd9LOVJwdovKOnJa4TLLrHxquK+DlGm4rkGmrcur+GRx+x4oW00O2pY/fFw==",
"dev": true
},
+ "node_modules/tsconfig-paths": {
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+ "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
"node_modules/tslib": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
@@ -24204,11 +25150,40 @@
"node": ">= 0.6"
}
},
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
+ "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+ "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/typed-array-byte-offset": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
"integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
- "dev": true,
"dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
@@ -24227,7 +25202,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
"integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
@@ -24389,7 +25363,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
"integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
- "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"has-bigints": "^1.0.2",
@@ -24686,7 +25659,6 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
"dependencies": {
"punycode": "^2.1.0"
}
@@ -24695,7 +25667,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -25412,7 +26383,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
@@ -25427,7 +26397,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
"integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "dev": true,
"dependencies": {
"is-bigint": "^1.0.1",
"is-boolean-object": "^1.1.0",
@@ -25446,16 +26415,15 @@
"dev": true
},
"node_modules/which-typed-array": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.10.tgz",
- "integrity": "sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==",
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
+ "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
"dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.10"
+ "has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -26017,7 +26985,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
"engines": {
"node": ">=10"
},
diff --git a/package.json b/package.json
index 3da7b70eb..ec99f336c 100644
--- a/package.json
+++ b/package.json
@@ -105,6 +105,7 @@
"echarts": "^5.4.3",
"echarts-for-angular": "^0.4.0",
"echarts-stat": "^1.2.0",
+ "eslint-plugin-import": "^2.28.1",
"fastclick": "^1.0.6",
"file-saver": "^2.0.5",
"font-awesome": "^4.7.0",
diff --git a/tsconfig.json b/tsconfig.json
index dbfcc5c15..a8a75a783 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -31,7 +31,9 @@
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true,
-
+ "strictPropertyInitialization":false,
+ "experimentalDecorators": true,
+ "emitDecoratorMetadata": true
}
}
\ No newline at end of file