From 3fdf0b1e6147457d61d78d92978c8582a71d0a22 Mon Sep 17 00:00:00 2001 From: Lubomir Dolezal Date: Mon, 13 May 2024 17:03:30 +0200 Subject: [PATCH 1/7] fix: order of async fetched dataInfo --- app/src/components/StacInfo.vue | 45 ++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/app/src/components/StacInfo.vue b/app/src/components/StacInfo.vue index c7ed2fcac9..70c9d2fac3 100644 --- a/app/src/components/StacInfo.vue +++ b/app/src/components/StacInfo.vue @@ -151,6 +151,7 @@

Dataset metadata @@ -191,6 +192,7 @@ export default { stacInfoLoaded: null, themesInStacInfo: [], linksInStacInfo: [], + refreshKey: 0, }), computed: { ...mapState('config', [ @@ -259,28 +261,31 @@ export default { this.stacInfoLoaded = true; }); }, - getAdditionalGTIFDataInfos() { - this.additionalGtifDataInfoContent = []; - for (let i = 0; i < this.additionalGTIFDataInfos.length; i++) { - try { - const markdownUrl = `//raw.githubusercontent.com/eurodatacube/eodash-assets/main/collections/gtif-datainfo/${this.additionalGTIFDataInfos[i].dataInfo}.md`; - fetch(markdownUrl) - .then((response) => { - if (!response.ok) { - console.error('Fetching DataInfo failed'); - } - return response.text(); - }) - .then((text) => { - const markdown = { default: text }; - this.additionalGtifDataInfoContent.push(this.$marked(markdown.default)); - }); - } catch { - // just an empty catch to "fill in empty content" - this.additionalGtifDataInfoContent.push(''); - } + async fetchDataInfo(dataInfoObject, i) { + try { + const markdownUrl = `//raw.githubusercontent.com/eurodatacube/eodash-assets/main/collections/gtif-datainfo/${dataInfoObject.dataInfo}.md`; + await fetch(markdownUrl) + .then((response) => { + if (!response.ok) { + console.error('Fetching DataInfo failed'); + } + return response.text(); + }) + .then((text) => { + const markdown = { default: text }; + this.additionalGtifDataInfoContent[i] = this.$marked(markdown.default); + }); + } catch { + // just an empty catch } }, + getAdditionalGTIFDataInfos() { + this.additionalGtifDataInfoContent = Array(this.additionalGTIFDataInfos.length).fill(''); + Promise.all(this.additionalGTIFDataInfos.map((item, i) => this.fetchDataInfo(item, i))) + .then(() => { + this.refreshKey = Math.random(); + }); + }, }, }; From 703837faec4d4a9d089bbcec8a677c2509ab4833 Mon Sep 17 00:00:00 2001 From: Daniel Santillan Date: Fri, 24 May 2024 09:44:31 +0200 Subject: [PATCH 2/7] Integration of eox-map for the map widget (#2573) * feat: initial eox-map swapping of ol * chore: trying out exporting map config state in iframe text * chore working on getting xyz layers working * chore: changed update function * fix: time update for XYZ layers * chore: fix * feat: implemented config export feature for map * feat: added different export types for eox-map story blocks * chore: upgrading story and jsonform packages, using new markdown placeholder for story editor * chore: removed storytelling example * chore: adding unique identifiers to data layers * feat: exporting only layers without group as it has issues with eox-map, also simplifies code block; updated eox-map version * chore: adding export of opacity in config when it is not set to 1 * chore: removing log message --------- Co-authored-by: Lubomir Dolezal --- app/package-lock.json | 258 ++++++++++++++++-- app/package.json | 6 +- app/src/components/OLExportButton.vue | 237 +++++++++++++++++ app/src/components/map/Map.vue | 359 ++++++++++++++------------ app/src/components/map/layers.js | 48 ++-- app/src/config/polar.js | 4 +- app/src/config/stories.json | 7 - app/src/config/trilateral.js | 3 - app/src/utils.js | 4 +- app/src/views/StoryEditor.vue | 6 +- 10 files changed, 693 insertions(+), 239 deletions(-) create mode 100644 app/src/components/OLExportButton.vue diff --git a/app/package-lock.json b/app/package-lock.json index 3857e0564f..9478a726ea 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -10,11 +10,11 @@ "dependencies": { "@chenfengyuan/vue-countdown": "^1.1.5", "@eox/itemfilter": "0.14.0", - "@eox/jsonform": "^0.6.1", + "@eox/jsonform": "^0.7.0", "@eox/layercontrol": "^0.17.3", - "@eox/map": "^1.6.1", + "@eox/map": "^1.8.2", "@eox/stacinfo": "^0.3.3", - "@eox/storytelling": "^0.5.0", + "@eox/storytelling": "^1.0.2", "@turf/difference": "^6.5.0", "axios": "^0.21.1", "chart.js": "2.9.3", @@ -1994,11 +1994,12 @@ } }, "node_modules/@eox/jsonform": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@eox/jsonform/-/jsonform-0.6.1.tgz", - "integrity": "sha512-pBCm0wKCaou+XyArvo07alVqcKr4yhXM4KP3+S9yzimXIs55NJN3N5w3PZLuzf1/JuF8RSovCjk4bu0W2gMAzQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eox/jsonform/-/jsonform-0.7.0.tgz", + "integrity": "sha512-tGDAtuBGn9Fxfr7rlP/Hmi7UPqU6mE6GzYUM7UVFQquSzmI8KQL5EHzb+sRSGfH+vuxqTDo6vUQD+j/aU75hsw==", "dependencies": { "@json-editor/json-editor": "^2.11.0", + "easymde": "^2.18.0", "toolcool-range-slider": "^4.0.28" }, "engines": { @@ -2022,9 +2023,9 @@ } }, "node_modules/@eox/map": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@eox/map/-/map-1.6.1.tgz", - "integrity": "sha512-ynPBR9zqGOh1tnyuKXoy2ECnvRzO6py8cjB/GGCGzdKL4T9krsFlIUBTPK/sRGwO2tOhl0NBthK00gG/CPLPyg==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@eox/map/-/map-1.8.2.tgz", + "integrity": "sha512-9ofpFXTSAXTfTT1sJz1gd2a2Oz64NeoXsZMwld/s90Umh7x10lL5lVKybT8eyJj2ID6qw5voU3QcBww/RxUA/A==", "dependencies": { "lit": "^3.0.2", "ol": "^9.0.0", @@ -2050,13 +2051,14 @@ } }, "node_modules/@eox/storytelling": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@eox/storytelling/-/storytelling-0.5.0.tgz", - "integrity": "sha512-SwayHqiHviklP/qqs3BQCL3uzywmtmIS1uNR3+z27QNr8oDAuGl8r/1eaI5qlBXTS/2FqvHhGblYOU7BSn0QaA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@eox/storytelling/-/storytelling-1.0.2.tgz", + "integrity": "sha512-61DMpjsPSFQUrEGY9NRmFEkRo0vXoL9ExdonYHuUOqHwAHTFYvN0Lpc0cXukJ/0Yino11ymuxwljklfvr5v3LA==", "dependencies": { "@sindresorhus/slugify": "^2.2.1", "glightbox": "^3.3.0", "isomorphic-dompurify": "^2.4.0", + "joi": "^17.12.3", "js-yaml": "^4.1.0", "lit": "^3.0.2", "markdown-it": "^14.0.0" @@ -2497,6 +2499,29 @@ } } }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/address/node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, "node_modules/@sindresorhus/slugify": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", @@ -2824,6 +2849,14 @@ "moment": "^2.10.2" } }, + "node_modules/@types/codemirror": { + "version": "5.60.15", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.15.tgz", + "integrity": "sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==", + "dependencies": { + "@types/tern": "*" + } + }, "node_modules/@types/connect": { "version": "3.4.36", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", @@ -2851,6 +2884,11 @@ "@types/trusted-types": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, "node_modules/@types/express": { "version": "4.17.17", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", @@ -2917,6 +2955,11 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/marked": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", + "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==" + }, "node_modules/@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", @@ -3010,6 +3053,14 @@ "integrity": "sha512-fOHIwZua0sRltqWzODGUM6b4ffZrf/vzGUmNXdR+4DzuJP42PMbM5dLKcdzlYvv8bMJ3GALOzkk1q7cDm2zPyA==", "dev": true }, + "node_modules/@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -6717,6 +6768,19 @@ "node": ">=0.10.0" } }, + "node_modules/codemirror": { + "version": "5.65.16", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.16.tgz", + "integrity": "sha512-br21LjYmSlVL0vFCPWPfhzUCT34FM/pAdK7rRIZwa0rrtrIdotvP4Oh4GUHsu2E3IrQMCfRkL/fN3ytMNxVQvg==" + }, + "node_modules/codemirror-spell-checker": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", + "integrity": "sha512-2Tl6n0v+GJRsC9K3MLCdLaMOmvWL0uukajNJseorZJsslaxZyZMgENocPU8R0DyoTAiKsyqiemSOZo7kjGV0LQ==", + "dependencies": { + "typo-js": "*" + } + }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -8964,6 +9028,18 @@ "node": ">=6.0.0" } }, + "node_modules/easymde": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/easymde/-/easymde-2.18.0.tgz", + "integrity": "sha512-IxVVUxNWIoXLeqtBU4BLc+eS/ScYhT1Dcb6yF5Wchoj1iXAV+TIIDWx+NCaZhY7RcSHqDPKllbYq7nwGKILnoA==", + "dependencies": { + "@types/codemirror": "^5.60.4", + "@types/marked": "^4.0.7", + "codemirror": "^5.63.1", + "codemirror-spell-checker": "1.1.2", + "marked": "^4.1.0" + } + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -12708,6 +12784,31 @@ "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", "dev": true }, + "node_modules/joi": { + "version": "17.13.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", + "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/joi/node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/joi/node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, "node_modules/jquery": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", @@ -19434,6 +19535,11 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, + "node_modules/typo-js": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.2.4.tgz", + "integrity": "sha512-Oy/k+tFle5NAA3J/yrrYGfvEnPVrDZ8s8/WCwjUE75k331QyKIsFss7byQ/PzBmXLY6h1moRnZbnaxWBe3I3CA==" + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -23276,11 +23382,12 @@ } }, "@eox/jsonform": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@eox/jsonform/-/jsonform-0.6.1.tgz", - "integrity": "sha512-pBCm0wKCaou+XyArvo07alVqcKr4yhXM4KP3+S9yzimXIs55NJN3N5w3PZLuzf1/JuF8RSovCjk4bu0W2gMAzQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eox/jsonform/-/jsonform-0.7.0.tgz", + "integrity": "sha512-tGDAtuBGn9Fxfr7rlP/Hmi7UPqU6mE6GzYUM7UVFQquSzmI8KQL5EHzb+sRSGfH+vuxqTDo6vUQD+j/aU75hsw==", "requires": { "@json-editor/json-editor": "^2.11.0", + "easymde": "^2.18.0", "toolcool-range-slider": "^4.0.28" } }, @@ -23296,9 +23403,9 @@ } }, "@eox/map": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@eox/map/-/map-1.6.1.tgz", - "integrity": "sha512-ynPBR9zqGOh1tnyuKXoy2ECnvRzO6py8cjB/GGCGzdKL4T9krsFlIUBTPK/sRGwO2tOhl0NBthK00gG/CPLPyg==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@eox/map/-/map-1.8.2.tgz", + "integrity": "sha512-9ofpFXTSAXTfTT1sJz1gd2a2Oz64NeoXsZMwld/s90Umh7x10lL5lVKybT8eyJj2ID6qw5voU3QcBww/RxUA/A==", "requires": { "lit": "^3.0.2", "ol": "^9.0.0", @@ -23316,13 +23423,14 @@ } }, "@eox/storytelling": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@eox/storytelling/-/storytelling-0.5.0.tgz", - "integrity": "sha512-SwayHqiHviklP/qqs3BQCL3uzywmtmIS1uNR3+z27QNr8oDAuGl8r/1eaI5qlBXTS/2FqvHhGblYOU7BSn0QaA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@eox/storytelling/-/storytelling-1.0.2.tgz", + "integrity": "sha512-61DMpjsPSFQUrEGY9NRmFEkRo0vXoL9ExdonYHuUOqHwAHTFYvN0Lpc0cXukJ/0Yino11ymuxwljklfvr5v3LA==", "requires": { "@sindresorhus/slugify": "^2.2.1", "glightbox": "^3.3.0", "isomorphic-dompurify": "^2.4.0", + "joi": "^17.12.3", "js-yaml": "^4.1.0", "lit": "^3.0.2", "markdown-it": "^14.0.0" @@ -23670,6 +23778,31 @@ "any-observable": "^0.3.0" } }, + "@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "requires": { + "@hapi/hoek": "^9.0.0" + }, + "dependencies": { + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + } + } + }, + "@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, "@sindresorhus/slugify": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", @@ -23916,6 +24049,14 @@ "moment": "^2.10.2" } }, + "@types/codemirror": { + "version": "5.60.15", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.15.tgz", + "integrity": "sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==", + "requires": { + "@types/tern": "*" + } + }, "@types/connect": { "version": "3.4.36", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", @@ -23943,6 +24084,11 @@ "@types/trusted-types": "*" } }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, "@types/express": { "version": "4.17.17", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", @@ -24009,6 +24155,11 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "@types/marked": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", + "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==" + }, "@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", @@ -24102,6 +24253,14 @@ "integrity": "sha512-fOHIwZua0sRltqWzODGUM6b4ffZrf/vzGUmNXdR+4DzuJP42PMbM5dLKcdzlYvv8bMJ3GALOzkk1q7cDm2zPyA==", "dev": true }, + "@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "requires": { + "@types/estree": "*" + } + }, "@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -27089,6 +27248,19 @@ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true }, + "codemirror": { + "version": "5.65.16", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.16.tgz", + "integrity": "sha512-br21LjYmSlVL0vFCPWPfhzUCT34FM/pAdK7rRIZwa0rrtrIdotvP4Oh4GUHsu2E3IrQMCfRkL/fN3ytMNxVQvg==" + }, + "codemirror-spell-checker": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", + "integrity": "sha512-2Tl6n0v+GJRsC9K3MLCdLaMOmvWL0uukajNJseorZJsslaxZyZMgENocPU8R0DyoTAiKsyqiemSOZo7kjGV0LQ==", + "requires": { + "typo-js": "*" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -28859,6 +29031,18 @@ "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", "dev": true }, + "easymde": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/easymde/-/easymde-2.18.0.tgz", + "integrity": "sha512-IxVVUxNWIoXLeqtBU4BLc+eS/ScYhT1Dcb6yF5Wchoj1iXAV+TIIDWx+NCaZhY7RcSHqDPKllbYq7nwGKILnoA==", + "requires": { + "@types/codemirror": "^5.60.4", + "@types/marked": "^4.0.7", + "codemirror": "^5.63.1", + "codemirror-spell-checker": "1.1.2", + "marked": "^4.1.0" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -31748,6 +31932,33 @@ "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", "dev": true }, + "joi": { + "version": "17.13.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", + "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "requires": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + }, + "dependencies": { + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + } + } + }, "jquery": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", @@ -37134,6 +37345,11 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, + "typo-js": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.2.4.tgz", + "integrity": "sha512-Oy/k+tFle5NAA3J/yrrYGfvEnPVrDZ8s8/WCwjUE75k331QyKIsFss7byQ/PzBmXLY6h1moRnZbnaxWBe3I3CA==" + }, "uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", diff --git a/app/package.json b/app/package.json index 21985ab3d3..ff9f7959e8 100644 --- a/app/package.json +++ b/app/package.json @@ -17,11 +17,11 @@ "dependencies": { "@chenfengyuan/vue-countdown": "^1.1.5", "@eox/itemfilter": "0.14.0", - "@eox/jsonform": "^0.6.1", + "@eox/jsonform": "^0.7.0", "@eox/layercontrol": "^0.17.3", "@eox/stacinfo": "^0.3.3", - "@eox/map": "^1.6.1", - "@eox/storytelling": "^0.5.0", + "@eox/map": "^1.8.2", + "@eox/storytelling": "^1.0.2", "@turf/difference": "^6.5.0", "axios": "^0.21.1", "chart.js": "2.9.3", diff --git a/app/src/components/OLExportButton.vue b/app/src/components/OLExportButton.vue new file mode 100644 index 0000000000..96c3866eb9 --- /dev/null +++ b/app/src/components/OLExportButton.vue @@ -0,0 +1,237 @@ + + + + + diff --git a/app/src/components/map/Map.vue b/app/src/components/map/Map.vue index 13c92d451f..fefb16bdf6 100644 --- a/app/src/components/map/Map.vue +++ b/app/src/components/map/Map.vue @@ -1,188 +1,209 @@