From 127ed0cefe75a8d28e0a034a31ea41169949e354 Mon Sep 17 00:00:00 2001 From: Simon Bin Date: Thu, 13 Nov 2025 14:15:55 +0100 Subject: [PATCH 1/3] GH-3587: add yasgui-geo-tg plug-in to render geosparql results --- jena-fuseki2/jena-fuseki-ui/package.json | 3 ++- .../jena-fuseki-ui/src/views/dataset/Query.vue | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/jena-fuseki2/jena-fuseki-ui/package.json b/jena-fuseki2/jena-fuseki-ui/package.json index ca64d416df7..1485b752b17 100644 --- a/jena-fuseki2/jena-fuseki-ui/package.json +++ b/jena-fuseki2/jena-fuseki-ui/package.json @@ -37,7 +37,8 @@ "qs": "6.14.0", "vue": "^3.5.16", "vue-router": "^4.2.5", - "vue-upload-component": "^3.1.8" + "vue-upload-component": "^3.1.8", + "yasgui-geo-tg": "Thib-G/yasgui-geo-tg#34cacd5" }, "devDependencies": { "@babel/core": "^7.27.4", diff --git a/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Query.vue b/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Query.vue index 2d424f54078..33e541c8a4c 100644 --- a/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Query.vue +++ b/jena-fuseki2/jena-fuseki-ui/src/views/dataset/Query.vue @@ -182,11 +182,14 @@ import Menu from '@/components/dataset/Menu.vue' import Yasqe from '@zazuko/yasqe' import Yasr from '@zazuko/yasr' +import GeoPlugin from 'yasgui-geo-tg' import { createShareableLink } from '@/utils/query' import { nextTick } from 'vue' import currentDatasetMixin from '@/mixins/current-dataset' import currentDatasetMixinNavigationGuards from '@/mixins/current-dataset-navigation-guards' +Yasr.registerPlugin('geo', GeoPlugin) + const SELECT_TRIPLES_QUERY = `SELECT ?subject ?predicate ?object WHERE { ?subject ?predicate ?object @@ -280,7 +283,9 @@ export default { { // we do not want to save the results, otherwise we will have query results showing in different // dataset views - persistenceId: null + persistenceId: null, + // Enable geo plugin alongside default table + pluginOrder: ['table', 'response', 'geo'], } ) // Curried function to create shareable links. YASQE expects a function @@ -417,4 +422,7 @@ export default { } } } +.yasr .yasr_btnGroup .select_geo .plugin_icon { + margin-bottom: 20%; +} From ea85b0dd667dd31e64c2d1b8d846b2dbca80a4ac Mon Sep 17 00:00:00 2001 From: Simon Bin Date: Thu, 27 Nov 2025 22:09:01 +0100 Subject: [PATCH 2/3] manually include node modules for vitest css resolution --- jena-fuseki2/jena-fuseki-ui/vite.config.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/jena-fuseki2/jena-fuseki-ui/vite.config.js b/jena-fuseki2/jena-fuseki-ui/vite.config.js index 6ba5307a38c..cb5f557692a 100644 --- a/jena-fuseki2/jena-fuseki-ui/vite.config.js +++ b/jena-fuseki2/jena-fuseki-ui/vite.config.js @@ -67,6 +67,14 @@ export default defineConfig({ globals: true, environment: 'jsdom', css: true, + server: { + deps: { + inline: [ + /yasgui-geo-tg/, + /leaflet/, + ] + } + }, mockReset: true, restoreMocks: true, clearMocks: true, From ea0fd93a04b3252f0ef43c2292846b0307f3378f Mon Sep 17 00:00:00 2001 From: Simon Bin Date: Wed, 10 Dec 2025 16:37:28 +0100 Subject: [PATCH 3/3] add yarn lockfile --- jena-fuseki2/jena-fuseki-ui/yarn.lock | 72 +++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/jena-fuseki2/jena-fuseki-ui/yarn.lock b/jena-fuseki2/jena-fuseki-ui/yarn.lock index c88ed5f3691..e0014c4785f 100644 --- a/jena-fuseki2/jena-fuseki-ui/yarn.lock +++ b/jena-fuseki2/jena-fuseki-ui/yarn.lock @@ -2959,6 +2959,15 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +concat-stream@~1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" + integrity sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ== + dependencies: + inherits "~2.0.1" + readable-stream "~2.0.0" + typedarray "~0.0.5" + concurrently@^9.0.0: version "9.2.1" resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.2.1.tgz#248ea21b95754947be2dad9c3e4b60f18ca4e44f" @@ -3040,6 +3049,11 @@ core-util-is@1.0.2: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cors@^2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -4621,7 +4635,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@~2.0.4: +inherits@2, inherits@2.0.4, inherits@~2.0.1, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4902,6 +4916,11 @@ isarray@^2.0.5: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -5220,6 +5239,11 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" +leaflet@^1.9.4: + version "1.9.4" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.9.4.tgz#23fae724e282fa25745aff82ca4d394748db7d8d" + integrity sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -5512,7 +5536,7 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: +minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8, minimist@~1.2.0: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -6025,6 +6049,11 @@ pretty-bytes@^5.6.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw== + process-on-spawn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.1.0.tgz#9d5999ba87b3bf0a8acb05322d69f2f5aa4fb763" @@ -6160,6 +6189,18 @@ readable-stream@^4.0.0: process "^0.11.10" string_decoder "^1.3.0" +readable-stream@~2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + integrity sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + readdirp@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" @@ -6997,6 +7038,11 @@ string_decoder@^1.3.0: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -7390,6 +7436,11 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typedarray@~0.0.5: + version "0.0.7" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.7.tgz#799207136a37f3b3efb8c66c40010d032714dc73" + integrity sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ== + unbox-primitive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" @@ -7463,7 +7514,7 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.2: +util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== @@ -7678,6 +7729,14 @@ webpack@^5: watchpack "^2.4.4" webpack-sources "^3.3.3" +wellknown@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/wellknown/-/wellknown-0.5.0.tgz#09ae9871fa826cf0a6ec1537ef00c379d78d7101" + integrity sha512-za5vTLuPF9nmrVOovYQwNEWE/PwJCM+yHMAj4xN1WWUvtq9OElsvKiPL0CR9rO8xhrYqL7NpI7IknqR8r6eYOg== + dependencies: + concat-stream "~1.5.0" + minimist "~1.2.0" + whatwg-encoding@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" @@ -7905,6 +7964,13 @@ yargs@^15.0.2: y18n "^4.0.0" yargs-parser "^18.1.2" +yasgui-geo-tg@Thib-G/yasgui-geo-tg#34cacd5: + version "0.0.1" + resolved "https://codeload.github.com/Thib-G/yasgui-geo-tg/tar.gz/34cacd5a724103ec2dfd71651d7f014d3b7c6ff3" + dependencies: + leaflet "^1.9.4" + wellknown "^0.5.0" + yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"