diff --git a/package.json b/package.json index 80a8bca..3d09878 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "@luma.gl/shadertools": "^8.5.10", "@luma.gl/webgl": "^8.5.10", "@types/openseadragon": "^2.4.8", + "deck.gl": "^8.9.21", "gl-matrix": "^3.4.3", "lensing": "https://github.com/jessupjs/lensing/tarball/f800a9d67155db599f8054922cb6d45b673fe5c9", "openseadragon": "^2.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4304ee0..dba8498 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,6 +36,7 @@ specifiers: '@typescript-eslint/parser': ^5.3.0 copy-webpack-plugin: ^9.0.1 css-loader: ^6.5.1 + deck.gl: ^8.9.21 eslint: ^8.2.0 eslint-plugin-react: ^7.26.1 file-loader: ^6.2.0 @@ -92,6 +93,7 @@ dependencies: '@luma.gl/shadertools': 8.5.10 '@luma.gl/webgl': 8.5.10 '@types/openseadragon': 2.4.8 + deck.gl: 8.9.21_djmvwj4wzqohg6uec5jqlvg7ty gl-matrix: 3.4.3 lensing: '@github.com/jessupjs/lensing/tarball/f800a9d67155db599f8054922cb6d45b673fe5c9' openseadragon: 2.4.2 @@ -284,6 +286,57 @@ packages: '@cspotcode/source-map-consumer': 0.8.0 dev: true + /@deck.gl/aggregation-layers/8.9.21_fxjveyhrgd5273evnanpbr5xu4: + resolution: {integrity: sha512-ypPvcL6lF2hc0kcf8z/nrgmYZLDCWTgGWAyUPWD/5tXEzKbHosvTsvmkYzPlifE6hZvAUrUngfagH2smiEAQPA==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + '@deck.gl/layers': ^8.0.0 + '@luma.gl/core': ^8.0.0 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + '@deck.gl/layers': 8.9.21_arre4gn2n2e5gidb7ysm7tuo3a + '@luma.gl/constants': 8.5.20 + '@luma.gl/core': 8.5.10 + '@luma.gl/shadertools': 8.5.20 + '@math.gl/web-mercator': 3.6.3 + d3-hexbin: 0.2.2 + dev: false + + /@deck.gl/carto/8.9.21_udaztpnwwetik4yh7z23enexia: + resolution: {integrity: sha512-a3OAi1+BtsFzYcoSXklAe8cLnNHRAb3jidRhenYDTapBNYxd8b/1y/wH24KHAYzR4jr+5B/azMdFFjcMmnDxeg==} + peerDependencies: + '@deck.gl/aggregation-layers': ^8.0.0 + '@deck.gl/core': ^8.0.0 + '@deck.gl/extensions': ^8.0.0 + '@deck.gl/geo-layers': ^8.0.0 + '@deck.gl/layers': ^8.0.0 + '@loaders.gl/core': ^3.4.2 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/aggregation-layers': 8.9.21_fxjveyhrgd5273evnanpbr5xu4 + '@deck.gl/core': 8.9.21 + '@deck.gl/extensions': 8.9.21_4llfhfdvsj55lurppccsvbjm4m + '@deck.gl/geo-layers': 8.9.21_ei6hlghgtrz5yvsynvgryg5gjq + '@deck.gl/layers': 8.9.21_arre4gn2n2e5gidb7ysm7tuo3a + '@loaders.gl/core': 3.1.7 + '@loaders.gl/gis': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/mvt': 3.4.7 + '@loaders.gl/tiles': 3.4.7_@loaders.gl+core@3.1.7 + '@luma.gl/constants': 8.5.20 + '@math.gl/web-mercator': 3.6.3 + cartocolor: 4.0.2 + d3-array: 3.2.4 + d3-color: 3.1.0 + d3-format: 3.1.0 + d3-scale: 4.0.2 + h3-js: 3.7.2 + moment-timezone: 0.5.43 + pbf: 3.2.1 + quadbin: 0.1.9 + dev: false + /@deck.gl/core/8.6.7: resolution: {integrity: sha512-QaIbyi4PlbJsKQMrSlbwbMjXJKFFRzkx5HGy3aSpDBQxMtj7zp3BHlZ3V7bAMatG9zq/ZMqDLgAMia0dcv1BJA==} dependencies: @@ -297,6 +350,26 @@ packages: probe.gl: 3.5.0 dev: false + /@deck.gl/core/8.9.21: + resolution: {integrity: sha512-kyPOEkl90T5agiNhIPCool03/4MMQXKoNqSurdXtJS7+xU9FVf7/biTrLxVxWCfF8kqRgxX6sJ4m2PKUwRjV0A==} + dependencies: + '@babel/runtime': 7.16.7 + '@loaders.gl/core': 3.4.7 + '@loaders.gl/images': 3.4.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/core': 8.5.20 + '@luma.gl/webgl': 8.5.20 + '@math.gl/core': 3.6.3 + '@math.gl/sun': 3.6.3 + '@math.gl/web-mercator': 3.6.3 + '@probe.gl/env': 3.5.0 + '@probe.gl/log': 3.5.0 + '@probe.gl/stats': 3.5.0 + gl-matrix: 3.4.3 + math.gl: 3.6.3 + mjolnir.js: 2.7.1 + dev: false + /@deck.gl/extensions/8.6.7_qjltsxfxy33t2jnbhndt55efki: resolution: {integrity: sha512-kLlL+/HUmTDK9iRbfsJycY0Tx1OsYyUgreXk6qWZDS9hOdktZz8RIdn/JM5AmO1RFpxheUoOcyXbM3M9AtWdSQ==} peerDependencies: @@ -308,6 +381,24 @@ packages: gl-matrix: 3.4.3 dev: false + /@deck.gl/extensions/8.9.21_4llfhfdvsj55lurppccsvbjm4m: + resolution: {integrity: sha512-GIVeRG8K7uJfiKktfsFlgMv5kwKWPEgFkYsxxr/NY6UnqNRgAn9B+aH6YgJ4Hu22xwjUTOtzrX6BrSnsQI3kOg==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + '@luma.gl/constants': ^8.0.0 + '@luma.gl/core': ^8.0.0 + '@math.gl/core': ^3.6.2 + '@math.gl/web-mercator': ^3.6.2 + gl-matrix: ^3.0.0 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + '@luma.gl/constants': 8.5.10 + '@luma.gl/core': 8.5.10 + '@luma.gl/shadertools': 8.5.20 + gl-matrix: 3.4.3 + dev: false + /@deck.gl/geo-layers/8.6.7_kjfw4cjm5zikgpyd6cftkwiqxa: resolution: {integrity: sha512-ZNOwlj1O0FGZ+P9EOk1l0to+cYj3Nl4G8SjnH3c//zyOv+hlL2+zhjcic8TjaQhe7pK/nV0IxfX/eFsQzMcvFg==} peerDependencies: @@ -343,6 +434,73 @@ packages: - '@luma.gl/webgl' dev: false + /@deck.gl/geo-layers/8.9.21_ei6hlghgtrz5yvsynvgryg5gjq: + resolution: {integrity: sha512-JS01acqO6weF9MUAdT/GVGABMHbkWKB/ZRinJ0HBqOyiZNpJ9k8SpwCiBP8jDwYfQ9Ziz8SGFNU/DmtNI9Vgxg==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + '@deck.gl/extensions': ^8.0.0 + '@deck.gl/layers': ^8.0.0 + '@deck.gl/mesh-layers': ^8.0.0 + '@loaders.gl/core': ^3.4.2 + '@luma.gl/core': ^8.0.0 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + '@deck.gl/extensions': 8.9.21_4llfhfdvsj55lurppccsvbjm4m + '@deck.gl/layers': 8.9.21_arre4gn2n2e5gidb7ysm7tuo3a + '@deck.gl/mesh-layers': 8.9.21_3cjn5houa5opsqdb5oucb5a4ce + '@loaders.gl/3d-tiles': 3.4.7_@loaders.gl+core@3.1.7 + '@loaders.gl/core': 3.1.7 + '@loaders.gl/gis': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/mvt': 3.4.7 + '@loaders.gl/schema': 3.4.7 + '@loaders.gl/terrain': 3.4.7 + '@loaders.gl/tiles': 3.4.7_@loaders.gl+core@3.1.7 + '@loaders.gl/wms': 3.4.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/core': 8.5.10 + '@luma.gl/experimental': 8.5.20_exk4llcown7pp3bvzmgwul4nle + '@math.gl/core': 3.6.3 + '@math.gl/culling': 3.6.3 + '@math.gl/web-mercator': 3.6.3 + '@types/geojson': 7946.0.8 + h3-js: 3.7.2 + long: 3.2.0 + transitivePeerDependencies: + - '@loaders.gl/gltf' + - '@loaders.gl/images' + - '@luma.gl/engine' + - '@luma.gl/gltools' + - '@luma.gl/shadertools' + - '@luma.gl/webgl' + dev: false + + /@deck.gl/google-maps/8.9.21_thcchpsy6zuezhk2ntur6uzagm: + resolution: {integrity: sha512-7APDca6BcuKNWVLUkoHTLzlNV57xWl3Habuyjjf7KiSOtaiApLY4xKKsujHtAx7F4dHPgNPjZwwIm1n+vId6bg==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + '@luma.gl/constants': ^8.5.0 + '@luma.gl/core': ^8.5.0 + '@math.gl/core': ^3.6.0 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + '@luma.gl/constants': 8.5.10 + '@luma.gl/core': 8.5.10 + dev: false + + /@deck.gl/json/8.9.21_@deck.gl+core@8.9.21: + resolution: {integrity: sha512-qcswd7cQzOLxS23yeeT5rp+vs9I7eMdi37YsPd/MnjAlga5mNpAdQFAPLKoDOVm8QxRD7M0hNqab/TvmArBRWg==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + d3-dsv: 1.2.0 + expression-eval: 2.1.0 + dev: false + /@deck.gl/layers/8.6.7_4kxvnjn4qfmqukom3rszfkqufe: resolution: {integrity: sha512-UJSfWi/bE51uttb9MAUwUC4dCx7MADhwgZktS/p7e6COEX/4fUCEY9++jca7gSutdBEmBPIwmsII36OEn2kPQA==} peerDependencies: @@ -357,6 +515,37 @@ packages: earcut: 2.2.3 dev: false + /@deck.gl/layers/8.9.21_arre4gn2n2e5gidb7ysm7tuo3a: + resolution: {integrity: sha512-tNxbBhFcc81mBaSK+zNxvhlmZmQNuYmUJMWymWMq5vz5MLTE6hHNjLY5n181ZSYspHDA/7tsjXXZ5c/+MGru2g==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + '@loaders.gl/core': ^3.4.2 + '@luma.gl/core': ^8.0.0 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + '@loaders.gl/core': 3.1.7 + '@loaders.gl/images': 3.4.7 + '@loaders.gl/schema': 3.4.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/core': 8.5.10 + '@mapbox/tiny-sdf': 2.0.6 + '@math.gl/core': 3.6.3 + '@math.gl/polygon': 3.6.3 + '@math.gl/web-mercator': 3.6.3 + earcut: 2.2.4 + dev: false + + /@deck.gl/mapbox/8.9.21_@deck.gl+core@8.9.21: + resolution: {integrity: sha512-QhyhS5Te+SDirgw5RF599zcAMM5HmNRJzyOu1plDx17UufYnRUXHq+ystT8KLzQqo8HnHDuNMOK1ZGwr4lblWg==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + '@types/mapbox-gl': 2.7.11 + dev: false + /@deck.gl/mesh-layers/8.6.7_dfldwxu4fi2s7rgjythxem5i4a: resolution: {integrity: sha512-Vt67l1K+zkBkL4YwmKl9edQMISGffTbd+6b9g0HAfYJB2c6ga+kBrLablgOC7/eksvZShbApNuq32xmtK35lhg==} peerDependencies: @@ -374,6 +563,26 @@ packages: - '@luma.gl/webgl' dev: false + /@deck.gl/mesh-layers/8.9.21_3cjn5houa5opsqdb5oucb5a4ce: + resolution: {integrity: sha512-alTRtuZADvz18txumJeE/cTJQ6I1DqYDHGGFHA/FlKA3kYcy91Te4evHSok/+k8xlNyzf26cjgs9EoHAbUDpuQ==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + '@luma.gl/core': ^8.0.0 + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + '@loaders.gl/gltf': 3.4.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/core': 8.5.10 + '@luma.gl/experimental': 8.5.20_zkd5jrzqnoaea2kmkc5tsw6daa + '@luma.gl/shadertools': 8.5.20 + transitivePeerDependencies: + - '@loaders.gl/images' + - '@luma.gl/engine' + - '@luma.gl/gltools' + - '@luma.gl/webgl' + dev: false + /@deck.gl/react/8.6.7_qrlmorx7n7lnf4ljbfa66k2csu: resolution: {integrity: sha512-iZCI6Bi2c8pX8mD3J/3sdm7ZyzxKguU/J/gx6Zc1lIjC852U2r/Utfzywlcr2vjJYhUb2H9KnemuV0nU0lXTQA==} peerDependencies: @@ -387,6 +596,21 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false + /@deck.gl/react/8.9.21_elah5mcmppjdw66vqsgtwxzkjq: + resolution: {integrity: sha512-Cgph2Z0gsLKyMWQGKpx/PoKih6Vb7graUL/3C4KDMkMMPzZmrYLTjs8eO7jPwtrfziulFiP+0fAAJZotWyMX7Q==} + peerDependencies: + '@deck.gl/core': ^8.0.0 + '@types/react': '>= 16.3' + react: '>=16.3' + react-dom: '>=16.3' + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/core': 8.9.21 + '@types/react': 17.0.38 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + dev: false + /@discoveryjs/json-ext/0.5.6: resolution: {integrity: sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==} engines: {node: '>=10.0.0'} @@ -537,6 +761,22 @@ packages: '@math.gl/geospatial': 3.5.7 dev: false + /@loaders.gl/3d-tiles/3.4.7_@loaders.gl+core@3.1.7: + resolution: {integrity: sha512-GXkYc6Lmf6Kz87hXhJSlAbB53MSQw3JWGzSST4UjmWx/qqwXFyNyju3x87cSnr7AD9lOwOx4KOlED8seL7AerQ==} + peerDependencies: + '@loaders.gl/core': ^3.4.0 + dependencies: + '@loaders.gl/core': 3.1.7 + '@loaders.gl/draco': 3.4.7 + '@loaders.gl/gltf': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/math': 3.4.7 + '@loaders.gl/tiles': 3.4.7_@loaders.gl+core@3.1.7 + '@math.gl/core': 3.6.3 + '@math.gl/geospatial': 3.5.7 + long: 5.2.3 + dev: false + /@loaders.gl/core/3.1.7: resolution: {integrity: sha512-mJRAIFZB1PBQ6ed7RhIIL9Sr7RDHwbof//5W2wVz1xyiMwyDMyIN41PNGX06oYwZMEnN2cel8HLpexr5kShH7A==} dependencies: @@ -547,6 +787,15 @@ packages: probe.gl: 3.5.0 dev: false + /@loaders.gl/core/3.4.7: + resolution: {integrity: sha512-iKyOKtUTYsgmIaXFmkaV1bc4h36TiHoKzc4xrolU4eSw9BQzR3UATEx/356sUI8g90uQe1SosAcKAUgAvFqgGg==} + dependencies: + '@babel/runtime': 7.16.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/worker-utils': 3.4.7 + '@probe.gl/log': 4.0.4 + dev: false + /@loaders.gl/draco/3.1.7: resolution: {integrity: sha512-FAKSGJgwlVYelX2Wx2JJDuWBbfsw/r3z7ZKg5PTOM+6LMkI+ffIBBP/rt/kF19Fy+dmBhG9HmV5SGfSFVKfFIA==} dependencies: @@ -557,6 +806,16 @@ packages: draco3d: 1.4.1 dev: false + /@loaders.gl/draco/3.4.7: + resolution: {integrity: sha512-FWwOWV/aSlbWM1HsGau1zxXyJT02yODfvBgZIf3Saro40oVws9LrmqLrCw7pnIm0jNfSzfw0pW/ogf0KOAq0mQ==} + dependencies: + '@babel/runtime': 7.16.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/schema': 3.4.7 + '@loaders.gl/worker-utils': 3.4.7 + draco3d: 1.5.5 + dev: false + /@loaders.gl/gis/3.1.7: resolution: {integrity: sha512-CmGK4tNAsKKbJEQ9sjwLPKqvyzEZmjMm1YAJ9vWwIo72Bzt+/VhniwkrpgDYTTfiXe2uhMa1tfJRU4w1/7wP5A==} dependencies: @@ -567,6 +826,16 @@ packages: pbf: 3.2.1 dev: false + /@loaders.gl/gis/3.4.7: + resolution: {integrity: sha512-mHZiike8c8zVp6ninNTHBZ/bEioHeKszXyRJqD+i+PBPkQNbQayItt+G6JNEgagdxqIHdgmDwjJZWQ8cvWbjBg==} + dependencies: + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/schema': 3.4.7 + '@mapbox/vector-tile': 1.3.1 + '@math.gl/polygon': 3.5.7 + pbf: 3.2.1 + dev: false + /@loaders.gl/gltf/3.1.7_@loaders.gl+core@3.1.7: resolution: {integrity: sha512-GoDHgPCoIaO9SXqCiHlweotjt7qi3uxXoFQKsi/snDNMJVMXZqgCkdAHqa5+7ZaAtasak7E8RRabCjKqOvBGZA==} peerDependencies: @@ -579,12 +848,28 @@ packages: '@loaders.gl/textures': 3.1.7 dev: false + /@loaders.gl/gltf/3.4.7: + resolution: {integrity: sha512-ZJoM0JhShN8YtriYQL1F0fYU5NU2oY6ZlFbXkkoJBWgfdKHrb/Hv2Jac1S+omNTGrbuv1FbaBTJBCBhjPtQ+Vw==} + dependencies: + '@loaders.gl/draco': 3.4.7 + '@loaders.gl/images': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/textures': 3.4.7 + '@math.gl/core': 3.6.3 + dev: false + /@loaders.gl/images/3.1.7: resolution: {integrity: sha512-sXpPSKRnLf8KsIUZfXsLXgMXva2jle9ppxiiH2EH8J0wc4Z9nl0D+3MVkc+RuKLWZHZMhjjHdxLDNMM26Xm3LQ==} dependencies: '@loaders.gl/loader-utils': 3.1.7 dev: false + /@loaders.gl/images/3.4.7: + resolution: {integrity: sha512-f8cQ5wUJtST75bLWy8GuMyCM/AMRst+Y2lRta4+fdWL7QMxUEbu91xoLkfKbLBIx2MwAGm0uowJzAmlLmbvAvQ==} + dependencies: + '@loaders.gl/loader-utils': 3.4.7 + dev: false + /@loaders.gl/loader-utils/3.1.7: resolution: {integrity: sha512-bovBX/RUakwh/R51eRzVIFMgr/FcSyf02Guaouz+OXgNl0ngzu8i+B5lFDVUoYG6rhfmuMIDcpiEdgnPTXtU4A==} dependencies: @@ -593,6 +878,14 @@ packages: '@probe.gl/stats': 3.5.0 dev: false + /@loaders.gl/loader-utils/3.4.7: + resolution: {integrity: sha512-nu7g3LHbq+MaeDf0LLMhMex+hQdriRNcM1TFD6hNi7jjQAPbKGcXZ1aBybuLvT3DGU/TK0o88ekUkkmrSpx83A==} + dependencies: + '@babel/runtime': 7.16.7 + '@loaders.gl/worker-utils': 3.4.7 + '@probe.gl/stats': 4.0.4 + dev: false + /@loaders.gl/math/3.1.7: resolution: {integrity: sha512-nevgooLEG+Y8WwlgkUBP65WhuQd+PU1e6WUZIoOxjfOJu0BSPCF+Faw4vVrSmM5wwvqvtClymWF5T5HvGZOXwA==} dependencies: @@ -601,6 +894,14 @@ packages: '@math.gl/core': 3.5.7 dev: false + /@loaders.gl/math/3.4.7: + resolution: {integrity: sha512-WxgJ7Ok5ZmyHElm9oPvgW4LZW1jn5YSGQxYnSUdRQWR7BwtnFXFns6xk+Fw0LoukHe5SUc5+MAonhK8oPiWvdg==} + dependencies: + '@loaders.gl/images': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@math.gl/core': 3.6.3 + dev: false + /@loaders.gl/mvt/3.1.7: resolution: {integrity: sha512-WtmSi3pf4y6Ea4NrefPv99/r3xHjjvP/KdazhWVfZnY7IGLbYZoGkIbRcJn7DgUOjbqKxcy7yZ0SvlXdlS4YyQ==} dependencies: @@ -611,12 +912,28 @@ packages: pbf: 3.2.1 dev: false + /@loaders.gl/mvt/3.4.7: + resolution: {integrity: sha512-mou4+VxQPmShRl3mLWfu+XlnoKiHn/DIhkVdP0Xa8HUR2J504BJcKM4fO1hcavK6ZxU+2NeLBIblAG252pwVQg==} + dependencies: + '@loaders.gl/gis': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/schema': 3.4.7 + '@math.gl/polygon': 3.5.7 + pbf: 3.2.1 + dev: false + /@loaders.gl/schema/3.1.7: resolution: {integrity: sha512-BSMvXQGHzyB/dHMxwgriII1bXR4nSSHh+vljnyyGTeiprg5OZ7SylyDYtwsZ5T4e4EBzF1St+NrTQ+sm95M0mw==} dependencies: '@types/geojson': 7946.0.8 dev: false + /@loaders.gl/schema/3.4.7: + resolution: {integrity: sha512-w429HMLt/NTtREbC2zFO2Fy36cOdQfYE2Ztjo9MJyv+takmZiVzwCRfYrAjOPFWcTLVwcbTkAF2r55+IyNGNeA==} + dependencies: + '@types/geojson': 7946.0.8 + dev: false + /@loaders.gl/terrain/3.1.7: resolution: {integrity: sha512-YrlLtbdQ26xy6WBvE8xchXIpZPM2vSYhgKMnPe8mC2lRaOFcimamCnfhrsE+klw2baM1LEH5hj1svAwrHcbZIQ==} dependencies: @@ -626,6 +943,16 @@ packages: '@mapbox/martini': 0.2.0 dev: false + /@loaders.gl/terrain/3.4.7: + resolution: {integrity: sha512-qJos9GNDuApUSnp8cK5eznrCVVSmDeL6riBCIs18iO0hCAegEv49YJz15lsHexgZxofvl9G0S8vDXFeWYyu6QA==} + dependencies: + '@babel/runtime': 7.16.7 + '@loaders.gl/images': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/schema': 3.4.7 + '@mapbox/martini': 0.2.0 + dev: false + /@loaders.gl/textures/3.1.7: resolution: {integrity: sha512-l05IInvFoROcu0tTcVGJ8ZUSH95gqO1SIcrQIcfSc8vwnGqudHD8yrOFaL/ZtUs3Qx6HOX8ZP03v5m/eZ1Jiqw==} dependencies: @@ -636,6 +963,17 @@ packages: texture-compressor: 1.0.2 dev: false + /@loaders.gl/textures/3.4.7: + resolution: {integrity: sha512-YtqNBk4QOSqSNeiUByFns1i5XsE/od5FnGkafjVSMRJaXLtJXc89LbmKwV3WvVy69ktNnBayY6hwZC73566G/A==} + dependencies: + '@loaders.gl/images': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/schema': 3.4.7 + '@loaders.gl/worker-utils': 3.4.7 + ktx-parse: 0.0.4 + texture-compressor: 1.0.2 + dev: false + /@loaders.gl/tiles/3.1.7_@loaders.gl+core@3.1.7: resolution: {integrity: sha512-TBantuL8gq3+EJeYIWSMUY6zHWK8Y9IEuiReIK8UjVZbf6rVRl9edX/zkfoGSZqBY7x53eUMMMKKOCfO1WKYrQ==} peerDependencies: @@ -651,16 +989,63 @@ packages: '@probe.gl/stats': 3.5.0 dev: false + /@loaders.gl/tiles/3.4.7_@loaders.gl+core@3.1.7: + resolution: {integrity: sha512-02CdDrLy+u+Jx8C7Awz9oOl5k+c4eq0n/cK9sCyhxtiYe+NCAAiRGpp6uXaDjL9bm+XnxN6RMi4f2Ag74njAFQ==} + peerDependencies: + '@loaders.gl/core': ^3.4.0 + dependencies: + '@loaders.gl/core': 3.1.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/math': 3.4.7 + '@math.gl/core': 3.6.3 + '@math.gl/culling': 3.5.7 + '@math.gl/geospatial': 3.5.7 + '@math.gl/web-mercator': 3.6.3 + '@probe.gl/stats': 4.0.4 + dev: false + + /@loaders.gl/wms/3.4.7: + resolution: {integrity: sha512-4DJXAB2pVAq4kH/1F2blyBUj2i5dyeLyQ0+enySXImhGNUJtH5o4tvP7w7ClZzZl2pz32CD0nqrUKzx5b28seg==} + dependencies: + '@babel/runtime': 7.16.7 + '@loaders.gl/images': 3.4.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/schema': 3.4.7 + '@loaders.gl/xml': 3.4.7 + '@turf/rewind': 5.1.5 + deep-strict-equal: 0.2.0 + lerc: 4.0.1 + dev: false + /@loaders.gl/worker-utils/3.1.7: resolution: {integrity: sha512-OkE2xg/CrEAD0Vl59UGerL5D4n3bcafNpNO7nTebq9HRxmbCp0ngt/nyiHDsrHcovAdK/cNWWFtknoaZHQX3Tg==} dependencies: '@babel/runtime': 7.16.7 dev: false + /@loaders.gl/worker-utils/3.4.7: + resolution: {integrity: sha512-qMO4MWvIe9iCFhXbRcDhJEwhhw21KIh26Ehqtw3RGfHurOMRTC16jsAsGAJ+P65PZErpdg11QFS1p/dIEHp4fA==} + dependencies: + '@babel/runtime': 7.16.7 + dev: false + + /@loaders.gl/xml/3.4.7: + resolution: {integrity: sha512-YIbJKj6Ju4IV0SZ1RwfFcbDT0X2lyUWXr5dq0DwlQGmaMKYAeXHirwQlISU2sb+7pKs9bcedvalzlRGwRFRCEQ==} + dependencies: + '@babel/runtime': 7.16.7 + '@loaders.gl/loader-utils': 3.4.7 + '@loaders.gl/schema': 3.4.7 + fast-xml-parser: 4.2.6 + dev: false + /@luma.gl/constants/8.5.10: resolution: {integrity: sha512-0OZnNbb8hF+ogr/Exr5KFEnSMQdCgjrbO2ZYeNIGO0UVMTu4oTSLfRcBxKUs1NzxG5RogyV8dL6ETQbkP5VAZw==} dev: false + /@luma.gl/constants/8.5.20: + resolution: {integrity: sha512-5yG+ybkUZ4j6kLPWMZjN4Hun2yLB0MyEpNCRKAUN9/yS9UIWA7unyVxjSf2vnE7k/7dywtxlbXegASNFgNVGxw==} + dev: false + /@luma.gl/core/8.5.10: resolution: {integrity: sha512-NzzMnSgzPta3gMu8vSM/kWiY09HypHRXt4zw/xFX4geLeX4iXm7Jnm+eeaNpc/QH/yJ51+4bpvZml0P5NIukfQ==} dependencies: @@ -672,6 +1057,17 @@ packages: '@luma.gl/webgl': 8.5.10 dev: false + /@luma.gl/core/8.5.20: + resolution: {integrity: sha512-xJr96G6vhYcznYHC84fbeOG3fgNM4lFwj9bd0VPcg/Kfe8otUeN1Hl0AKHCCtNn48PiMSg3LKbaiRfNUMhaffQ==} + dependencies: + '@babel/runtime': 7.16.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/engine': 8.5.20 + '@luma.gl/gltools': 8.5.20 + '@luma.gl/shadertools': 8.5.20 + '@luma.gl/webgl': 8.5.20 + dev: false + /@luma.gl/engine/8.5.10: resolution: {integrity: sha512-W3cPlabMl1g6dfAio4yGD9GohoMULXqsBm9P9WOh0KypQBw5pFlE2C/njY43YhfvnpMPDMUjjraYrEXa1fhaig==} dependencies: @@ -684,6 +1080,20 @@ packages: probe.gl: 3.5.0 dev: false + /@luma.gl/engine/8.5.20: + resolution: {integrity: sha512-+0ryJ/4gL1pWaEgZimY21jUPt1LYiO6Cqte8TNUprCfAHoAStsuzD7jwgEqnM6jJOUEdIxQ3w0z3Dzw/0KIE+w==} + dependencies: + '@babel/runtime': 7.16.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/gltools': 8.5.20 + '@luma.gl/shadertools': 8.5.20 + '@luma.gl/webgl': 8.5.20 + '@math.gl/core': 3.6.3 + '@probe.gl/env': 3.5.0 + '@probe.gl/stats': 3.5.0 + '@types/offscreencanvas': 2019.7.0 + dev: false + /@luma.gl/experimental/8.5.10_exk4llcown7pp3bvzmgwul4nle: resolution: {integrity: sha512-1Ldq2DEor9qWHoRetcAz4BID1pwp+5x67F2mfe2UtjEpDY0Modi7t8C94PR8cviyjRIu3DErxX7o8HxJ4JXxpQ==} peerDependencies: @@ -705,6 +1115,48 @@ packages: earcut: 2.2.3 dev: false + /@luma.gl/experimental/8.5.20_exk4llcown7pp3bvzmgwul4nle: + resolution: {integrity: sha512-V1Jp68rYMPtwMdf+50r3NSYsGV3srjwZ+lcK2ew4DshjedDbYwLqTGMWcOyBhY3K3aCl2LH3Fhn0hAY+3NTLGA==} + peerDependencies: + '@loaders.gl/gltf': ^3.0.0 + '@loaders.gl/images': ^3.0.0 + '@luma.gl/engine': ^8.4.0 + '@luma.gl/gltools': ^8.4.0 + '@luma.gl/shadertools': ^8.4.0 + '@luma.gl/webgl': ^8.4.0 + dependencies: + '@loaders.gl/gltf': 3.1.7_@loaders.gl+core@3.1.7 + '@loaders.gl/images': 3.1.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/engine': 8.5.10 + '@luma.gl/gltools': 8.5.10 + '@luma.gl/shadertools': 8.5.10 + '@luma.gl/webgl': 8.5.10 + '@math.gl/core': 3.6.3 + earcut: 2.2.4 + dev: false + + /@luma.gl/experimental/8.5.20_zkd5jrzqnoaea2kmkc5tsw6daa: + resolution: {integrity: sha512-V1Jp68rYMPtwMdf+50r3NSYsGV3srjwZ+lcK2ew4DshjedDbYwLqTGMWcOyBhY3K3aCl2LH3Fhn0hAY+3NTLGA==} + peerDependencies: + '@loaders.gl/gltf': ^3.0.0 + '@loaders.gl/images': ^3.0.0 + '@luma.gl/engine': ^8.4.0 + '@luma.gl/gltools': ^8.4.0 + '@luma.gl/shadertools': ^8.4.0 + '@luma.gl/webgl': ^8.4.0 + dependencies: + '@loaders.gl/gltf': 3.4.7 + '@loaders.gl/images': 3.1.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/engine': 8.5.10 + '@luma.gl/gltools': 8.5.10 + '@luma.gl/shadertools': 8.5.20 + '@luma.gl/webgl': 8.5.10 + '@math.gl/core': 3.6.3 + earcut: 2.2.4 + dev: false + /@luma.gl/gltools/8.5.10: resolution: {integrity: sha512-XQFocLXvSYfkW2xL1I50nYrPwgyt1jvmzmood3RQBQMiBcgU1JFW2w4tU+V/C5QXcAWWVzm8aIBkuQsCo34zrQ==} dependencies: @@ -713,6 +1165,16 @@ packages: probe.gl: 3.5.0 dev: false + /@luma.gl/gltools/8.5.20: + resolution: {integrity: sha512-5pP6ph9FSX5gHiVWQM1DmYRUnriklzKUG9yaqlQsKEqCFsOcKB0EfK3MfBVXIfsOdP/1bJZ9Dlz/zV19soWVhg==} + dependencies: + '@babel/runtime': 7.16.7 + '@luma.gl/constants': 8.5.20 + '@probe.gl/env': 3.5.0 + '@probe.gl/log': 3.5.0 + '@types/offscreencanvas': 2019.7.0 + dev: false + /@luma.gl/shadertools/8.5.10: resolution: {integrity: sha512-Va/e7fHFI7ZWu03obtNlXN7noIUF1u9U3Pm6PVqeVi3Z24yWl/pFbb5/O1gn66LQZF6fpwoLGN7m4NGk2YyHyA==} dependencies: @@ -720,6 +1182,13 @@ packages: '@math.gl/core': 3.5.7 dev: false + /@luma.gl/shadertools/8.5.20: + resolution: {integrity: sha512-q1lrCZy1ncIFb4mMjsYgISLzNP6eMnhLUY+Oltj/qjAMcPEssCeHN2+XGfP/CVtU+O7sC+5JY2bQGaTs6HQ/Qw==} + dependencies: + '@babel/runtime': 7.16.7 + '@math.gl/core': 3.6.3 + dev: false + /@luma.gl/webgl/8.5.10: resolution: {integrity: sha512-8cCJ6aoKmVKvrYoPC6G1jHqMsfTGyn50YMmRkrk2Q79nBe531LZr+6EYXlqx2+AR9obKwTnhTPlxjKg5gR4rYg==} dependencies: @@ -729,6 +1198,16 @@ packages: probe.gl: 3.5.0 dev: false + /@luma.gl/webgl/8.5.20: + resolution: {integrity: sha512-p/kt9KztywH4l+09XHoZ4cPFOoE7xlZXIBMT8rxRVgfe1w0lvi7QYh4tOG7gk+iixQ34EyDQacoHCsabdpmqQg==} + dependencies: + '@babel/runtime': 7.16.7 + '@luma.gl/constants': 8.5.20 + '@luma.gl/gltools': 8.5.20 + '@probe.gl/env': 3.5.0 + '@probe.gl/stats': 3.5.0 + dev: false + /@mapbox/martini/0.2.0: resolution: {integrity: sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==} dev: false @@ -737,10 +1216,20 @@ packages: resolution: {integrity: sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=} dev: false + /@mapbox/tile-cover/3.0.1: + resolution: {integrity: sha512-R8aoFY/87HWBOL9E2eBqzOY2lpfWYXCcTNgBpIxAv67rqQeD4IfnHD0iPXg/Z1cqXrklegEYZCp/7ZR/RsWqBQ==} + dependencies: + tilebelt: 1.0.1 + dev: false + /@mapbox/tiny-sdf/1.2.5: resolution: {integrity: sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==} dev: false + /@mapbox/tiny-sdf/2.0.6: + resolution: {integrity: sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==} + dev: false + /@mapbox/vector-tile/1.3.1: resolution: {integrity: sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==} dependencies: @@ -754,6 +1243,14 @@ packages: gl-matrix: 3.3.0 dev: false + /@math.gl/core/3.6.3: + resolution: {integrity: sha512-jBABmDkj5uuuE0dTDmwwss7Cup5ZwQ6Qb7h1pgvtkEutTrhkcv8SuItQNXmF45494yIHeoGue08NlyeY6wxq2A==} + dependencies: + '@babel/runtime': 7.16.7 + '@math.gl/types': 3.6.3 + gl-matrix: 3.4.3 + dev: false + /@math.gl/culling/3.5.7: resolution: {integrity: sha512-wQlcnT05/u2ByHX8xjjo2pQUE8O2zghpBL19S1Rzzn3Zloj1eL5okIXecTnQCGghpt5lSP1I4W91x7PhV7YU7Q==} dependencies: @@ -762,6 +1259,14 @@ packages: gl-matrix: 3.3.0 dev: false + /@math.gl/culling/3.6.3: + resolution: {integrity: sha512-3UERXHbaPlM6pnTk2MI7LeQ5CoelDZzDzghTTcv+HdQCZsT/EOEuEdYimETHtSxiyiOmsX2Un65UBLYT/rbKZg==} + dependencies: + '@babel/runtime': 7.16.7 + '@math.gl/core': 3.6.3 + gl-matrix: 3.4.3 + dev: false + /@math.gl/geospatial/3.5.7: resolution: {integrity: sha512-q0h2YAppH12M6mIYPyB1FPfxYCD+vGwt8IcFZB3KN0bisg+Yuzgv00cq9jhxPgaVRrtBCOa1J4gJfM+5B9gxmw==} dependencies: @@ -776,6 +1281,22 @@ packages: '@math.gl/core': 3.5.7 dev: false + /@math.gl/polygon/3.6.3: + resolution: {integrity: sha512-FivQ1ZnYcAss1wVifOkHP/ZnlfQy1IL/769uzNtiHxwUbW0kZG3yyOZ9I7fwyzR5Hvqt3ErJKHjSYZr0uVlz5g==} + dependencies: + '@math.gl/core': 3.6.3 + dev: false + + /@math.gl/sun/3.6.3: + resolution: {integrity: sha512-mrx6CGYYeTNSQttvcw0KVUy+35YDmnjMqpO/o0t06Vcghrt0HNruB/ScRgUSbJrgkbOg1Vcqm23HBd++clzQzw==} + dependencies: + '@babel/runtime': 7.16.7 + dev: false + + /@math.gl/types/3.6.3: + resolution: {integrity: sha512-3uWLVXHY3jQxsXCr/UCNPSc2BG0hNUljhmOBt9l+lNFDp7zHgm0cK2Tw4kj2XfkJy4TgwZTBGwRDQgWEbLbdTA==} + dev: false + /@math.gl/web-mercator/3.5.7: resolution: {integrity: sha512-i0w6AcV2b5+yeUQOA/KdnnzTYMUZvEKzHbbxI+ZyCuFs3p9S/IUt/EWVw4KGGOjVbf3UrGFlWSM70Th+0KyrsA==} dependencies: @@ -783,6 +1304,13 @@ packages: gl-matrix: 3.3.0 dev: false + /@math.gl/web-mercator/3.6.3: + resolution: {integrity: sha512-UVrkSOs02YLehKaehrxhAejYMurehIHPfFQvPFZmdJHglHOU4V2cCUApTVEwOksvCp161ypEqVp+9H6mGhTTcw==} + dependencies: + '@babel/runtime': 7.16.7 + gl-matrix: 3.4.3 + dev: false + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -859,6 +1387,12 @@ packages: '@babel/runtime': 7.16.7 dev: false + /@probe.gl/env/4.0.4: + resolution: {integrity: sha512-sYNGqesDfWD6dFP5oNZtTeFA4Z6ak5T4a8BNPdNhoqy7PK9w70JHrb6mv+RKWqKXq33KiwCDWL7fYxx2HuEH2w==} + dependencies: + '@babel/runtime': 7.16.7 + dev: false + /@probe.gl/log/3.5.0: resolution: {integrity: sha512-nW/qz2X1xY08WU/TsmJP6/6IPNcaY5fS/vLjpC4ahJuE2Mezga4hGM/R2X5JWE/nkPc+BsC5GnAnD13rwAxS7g==} dependencies: @@ -866,12 +1400,25 @@ packages: '@probe.gl/env': 3.5.0 dev: false + /@probe.gl/log/4.0.4: + resolution: {integrity: sha512-WpmXl6njlBMwrm8HBh/b4kSp/xnY1VVmeT4PWUKF+RkVbFuKQbsU11dA1IxoMd7gSY+5DGIwxGfAv1H5OMzA4A==} + dependencies: + '@babel/runtime': 7.16.7 + '@probe.gl/env': 4.0.4 + dev: false + /@probe.gl/stats/3.5.0: resolution: {integrity: sha512-IH2M+F3c8HR1DTroBARePUFG7wIewumtKA0UFqx51Z7S4hKrD60wFbpMmg0AcF4FvHAXMBoC+kYi1UKW9XbAOw==} dependencies: '@babel/runtime': 7.16.7 dev: false + /@probe.gl/stats/4.0.4: + resolution: {integrity: sha512-SDuSY/D4yDL6LQDa69l/GCcnZLRiGYdyvYkxWb0CgnzTPdPrcdrzGkzkvpC3zsA4fEFw2smlDje370QGHwlisg==} + dependencies: + '@babel/runtime': 7.16.7 + dev: false + /@tsconfig/node10/1.0.8: resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} dev: true @@ -888,6 +1435,45 @@ packages: resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} dev: true + /@turf/boolean-clockwise/5.1.5: + resolution: {integrity: sha512-FqbmEEOJ4rU4/2t7FKx0HUWmjFEVqR+NJrFP7ymGSjja2SQ7Q91nnBihGuT+yuHHl6ElMjQ3ttsB/eTmyCycxA==} + dependencies: + '@turf/helpers': 5.1.5 + '@turf/invariant': 5.2.0 + dev: false + + /@turf/clone/5.1.5: + resolution: {integrity: sha512-//pITsQ8xUdcQ9pVb4JqXiSqG4dos5Q9N4sYFoWghX21tfOV2dhc5TGqYOhnHrQS7RiKQL1vQ48kIK34gQ5oRg==} + dependencies: + '@turf/helpers': 5.1.5 + dev: false + + /@turf/helpers/5.1.5: + resolution: {integrity: sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==} + dev: false + + /@turf/invariant/5.2.0: + resolution: {integrity: sha512-28RCBGvCYsajVkw2EydpzLdcYyhSA77LovuOvgCJplJWaNVyJYH6BOR3HR9w50MEkPqb/Vc/jdo6I6ermlRtQA==} + dependencies: + '@turf/helpers': 5.1.5 + dev: false + + /@turf/meta/5.2.0: + resolution: {integrity: sha512-ZjQ3Ii62X9FjnK4hhdsbT+64AYRpaI8XMBMcyftEOGSmPMUVnkbvuv3C9geuElAXfQU7Zk1oWGOcrGOD9zr78Q==} + dependencies: + '@turf/helpers': 5.1.5 + dev: false + + /@turf/rewind/5.1.5: + resolution: {integrity: sha512-Gdem7JXNu+G4hMllQHXRFRihJl3+pNl7qY+l4qhQFxq+hiU1cQoVFnyoleIqWKIrdK/i2YubaSwc3SCM7N5mMw==} + dependencies: + '@turf/boolean-clockwise': 5.1.5 + '@turf/clone': 5.1.5 + '@turf/helpers': 5.1.5 + '@turf/invariant': 5.2.0 + '@turf/meta': 5.2.0 + dev: false + /@types/body-parser/1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: @@ -976,6 +1562,10 @@ packages: resolution: {integrity: sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==} dev: false + /@types/hammerjs/2.0.41: + resolution: {integrity: sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==} + dev: false + /@types/hast/2.3.4: resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} dependencies: @@ -996,6 +1586,12 @@ packages: resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} dev: true + /@types/mapbox-gl/2.7.11: + resolution: {integrity: sha512-4vSwPSTQIawZTFRiTY2R74aZwAiM9gE6KGj871xdyAPpa+DmEObXxQQXqL2PsMH31/rP9nxJ2Kv0boeTVJMXVw==} + dependencies: + '@types/geojson': 7946.0.8 + dev: false + /@types/mdast/3.0.10: resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} dependencies: @@ -1018,6 +1614,10 @@ packages: resolution: {integrity: sha512-7N8AOYWWYuw0g+K+GKCmIwfU1VMHcexYNpLPYzFZ4Uq2W6C/ptfeC7XhXgy/4pcwhz/9KoS5yijMfnYQ0u0Udw==} dev: true + /@types/offscreencanvas/2019.7.0: + resolution: {integrity: sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg==} + dev: false + /@types/openseadragon/2.4.8: resolution: {integrity: sha512-vPmpmigVdMYgdPJLUbQJgpFIQCeRnoUQW4bT/l9u1yajJLSx2BUKFhURvdTDxJWYFA/+oqMeXfJl2/NLhPZq7A==} dev: false @@ -1621,6 +2221,11 @@ packages: picocolors: 1.0.0 dev: true + /buf-compare/1.0.1: + resolution: {integrity: sha512-Bvx4xH00qweepGc43xFvMs5BKASXTbHaHm6+kDYIK9p/4iFwjATQkmPKHQSgJZzKbAymhztRbXUf1Nqhzl73/Q==} + engines: {node: '>=0.10.0'} + dev: false + /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -1665,6 +2270,12 @@ packages: resolution: {integrity: sha512-lSP16vcyC0FEy0R4ECc9duSPoKoZy+YkpGkue9G4D81OfPnliopaZrU10+qtPdT8PbGXad/PNx43TIQrOmJZSQ==} dev: true + /cartocolor/4.0.2: + resolution: {integrity: sha512-+Gh9mb6lFxsDOLQlBLPxAHCnWXlg2W8q3AcVwqRcy95TdBbcOU89Wrb6h2Hd/6Ww1Kc1pzXmUdpnWD+xeCG0dg==} + dependencies: + colorbrewer: 1.0.0 + dev: false + /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -1756,6 +2367,10 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true + /colorbrewer/1.0.0: + resolution: {integrity: sha512-NZuIOVdErK/C6jDH3jWT/roxWJbJAinMiqEpbuWniKvQAoWdg6lGra3pPrSHvaIf8PlX8wLs/RAC6nULFJbgmg==} + dev: false + /colorette/2.0.16: resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} dev: true @@ -1852,6 +2467,14 @@ packages: webpack: 5.65.0_webpack-cli@4.9.1 dev: true + /core-assert/0.2.1: + resolution: {integrity: sha512-IG97qShIP+nrJCXMCgkNZgH7jZQ4n8RpPyPeXX++T6avR/KhLhgLiHKoEn5Rc1KjfycSfA9DMa6m+4C4eguHhw==} + engines: {node: '>=0.10.0'} + dependencies: + buf-compare: 1.0.1 + is-error: 2.2.2 + dev: false + /core-js-pure/3.20.2: resolution: {integrity: sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==} requiresBuild: true @@ -1934,6 +2557,13 @@ packages: internmap: 1.0.1 dev: false + /d3-array/3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + dependencies: + internmap: 1.0.1 + dev: false + /d3-axis/2.1.0: resolution: {integrity: sha512-z/G2TQMyuf0X3qP+Mh+2PimoJD41VOCjViJzT0BHeL/+JQAofkiWZbWxlwFGb1N8EN+Cl/CW+MUKbVzr1689Cw==} dev: false @@ -1958,6 +2588,11 @@ packages: resolution: {integrity: sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==} dev: false + /d3-color/3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + dev: false + /d3-contour/2.0.0: resolution: {integrity: sha512-9unAtvIaNk06UwqBmvsdHX7CZ+NPDZnn8TtNH1myW93pWJkhsV25JcgnYAu0Ck5Veb1DHiCv++Ic5uvJ+h50JA==} dependencies: @@ -1981,6 +2616,15 @@ packages: d3-selection: 2.0.0 dev: false + /d3-dsv/1.2.0: + resolution: {integrity: sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==} + hasBin: true + dependencies: + commander: 2.20.3 + iconv-lite: 0.4.24 + rw: 1.3.3 + dev: false + /d3-dsv/2.0.0: resolution: {integrity: sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==} hasBin: true @@ -2012,12 +2656,21 @@ packages: resolution: {integrity: sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==} dev: false + /d3-format/3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + dev: false + /d3-geo/2.0.2: resolution: {integrity: sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==} dependencies: d3-array: 2.12.1 dev: false + /d3-hexbin/0.2.2: + resolution: {integrity: sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==} + dev: false + /d3-hierarchy/2.0.0: resolution: {integrity: sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==} dev: false @@ -2061,6 +2714,17 @@ packages: d3-time-format: 3.0.0 dev: false + /d3-scale/4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 2.0.1 + d3-time: 2.1.1 + d3-time-format: 3.0.0 + dev: false + /d3-selection/2.0.0: resolution: {integrity: sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==} dev: false @@ -2191,6 +2855,39 @@ packages: supports-color: 5.5.0 dev: true + /deck.gl/8.9.21_djmvwj4wzqohg6uec5jqlvg7ty: + resolution: {integrity: sha512-PSkhYicHHiBqZVvQdd1nrUsSia4/qu0KqPsaP4rAgyygA5mg6ROsR4nuk48KBdpj6aBAju88bIfgPe0nkp82Cg==} + dependencies: + '@babel/runtime': 7.16.7 + '@deck.gl/aggregation-layers': 8.9.21_fxjveyhrgd5273evnanpbr5xu4 + '@deck.gl/carto': 8.9.21_udaztpnwwetik4yh7z23enexia + '@deck.gl/core': 8.9.21 + '@deck.gl/extensions': 8.9.21_4llfhfdvsj55lurppccsvbjm4m + '@deck.gl/geo-layers': 8.9.21_ei6hlghgtrz5yvsynvgryg5gjq + '@deck.gl/google-maps': 8.9.21_thcchpsy6zuezhk2ntur6uzagm + '@deck.gl/json': 8.9.21_@deck.gl+core@8.9.21 + '@deck.gl/layers': 8.9.21_arre4gn2n2e5gidb7ysm7tuo3a + '@deck.gl/mapbox': 8.9.21_@deck.gl+core@8.9.21 + '@deck.gl/mesh-layers': 8.9.21_3cjn5houa5opsqdb5oucb5a4ce + '@deck.gl/react': 8.9.21_elah5mcmppjdw66vqsgtwxzkjq + transitivePeerDependencies: + - '@loaders.gl/core' + - '@loaders.gl/gltf' + - '@loaders.gl/images' + - '@luma.gl/constants' + - '@luma.gl/core' + - '@luma.gl/engine' + - '@luma.gl/gltools' + - '@luma.gl/shadertools' + - '@luma.gl/webgl' + - '@math.gl/core' + - '@math.gl/web-mercator' + - '@types/react' + - gl-matrix + - react + - react-dom + dev: false + /decode-named-character-reference/1.0.1: resolution: {integrity: sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==} dependencies: @@ -2212,6 +2909,13 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /deep-strict-equal/0.2.0: + resolution: {integrity: sha512-3daSWyvZ/zwJvuMGlzG1O+Ow0YSadGfb3jsh9xoCutv2tWyB9dA4YvR9L9/fSdDZa2dByYQe+TqapSGUrjnkoA==} + engines: {node: '>=0.10.0'} + dependencies: + core-assert: 0.2.1 + dev: false + /default-gateway/6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} engines: {node: '>= 10'} @@ -2359,10 +3063,18 @@ packages: resolution: {integrity: sha512-9Rxonc70xiovBC+Bq1h57SNZIHzWTibU1VfIGp5z3Xx8dPtv4yT5uGhiH7P5uvJRR2jkrvHafRxR7bTANkvfpg==} dev: false + /draco3d/1.5.5: + resolution: {integrity: sha512-JVuNV0EJzD3LBYhGyIXJLeBID/EVtmFO1ZNhAYflTgiMiAJlbhXQmRRda/azjc8MRVMHh0gqGhiqHUo5dIXM8Q==} + dev: false + /earcut/2.2.3: resolution: {integrity: sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==} dev: false + /earcut/2.2.4: + resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==} + dev: false + /ee-first/1.1.1: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: true @@ -2690,6 +3402,13 @@ packages: - supports-color dev: true + /expression-eval/2.1.0: + resolution: {integrity: sha512-FUJO/Akvl/JOWkvlqZaqbkhsEWlCJWDeZG4tzX96UH68D9FeRgYgtb55C2qtqbORC0Q6x5419EDjWu4IT9kQfg==} + deprecated: The expression-eval npm package is no longer maintained. The package was originally published as part of a now-completed personal project, and I do not have incentives to continue maintenance. + dependencies: + jsep: 0.3.5 + dev: false + /extend/3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: false @@ -2723,6 +3442,13 @@ packages: strnum: 1.0.5 dev: false + /fast-xml-parser/4.2.6: + resolution: {integrity: sha512-Xo1qV++h/Y3Ng8dphjahnYe+rGHaaNdsYOBWL9Y9GCPKpNKilJtilvWkLcI9f9X2DoKTLsZsGYAls5+JL5jfLA==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + /fastest-levenshtein/1.0.12: resolution: {integrity: sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==} dev: true @@ -3283,6 +4009,10 @@ packages: hasBin: true dev: true + /is-error/2.2.2: + resolution: {integrity: sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==} + dev: false + /is-extglob/2.1.1: resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} engines: {node: '>=0.10.0'} @@ -3425,6 +4155,11 @@ packages: argparse: 2.0.1 dev: true + /jsep/0.3.5: + resolution: {integrity: sha512-AoRLBDc6JNnKjNcmonituEABS5bcfqDhQAWWXNTFrqu6nVXBpBAGfcoTGZMFlIrh9FjmE1CQyX9CTNwZrXMMDA==} + engines: {node: '>= 6.0.0'} + dev: false + /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -3481,6 +4216,10 @@ packages: resolution: {integrity: sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==} dev: false + /lerc/4.0.1: + resolution: {integrity: sha512-b351eOjY3DKm1H2hDVhXswsd2RCK6bgREBK6Z639ctClOuYXTi9a44l8yO3zm1pYM2o4WrriloTAKgyrb/0EyA==} + dev: false + /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -3533,6 +4272,10 @@ packages: engines: {node: '>=0.6'} dev: false + /long/5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false + /loose-envify/1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -3569,6 +4312,12 @@ packages: '@math.gl/core': 3.5.7 dev: false + /math.gl/3.6.3: + resolution: {integrity: sha512-Yq9CyECvSDox9+5ETi2+x1bGTY5WvGUGL3rJfC4KPoCZAM51MGfrCm6rIn4yOJUVfMPs2a5RwMD+yGS/n1g3gg==} + dependencies: + '@math.gl/core': 3.6.3 + dev: false + /mdast-util-definitions/5.1.0: resolution: {integrity: sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ==} dependencies: @@ -3878,6 +4627,14 @@ packages: hammerjs: 2.0.8 dev: false + /mjolnir.js/2.7.1: + resolution: {integrity: sha512-72BeUWgTv2cj5aZQKpwL8caNUFhXZ9bDm1hxpNj70XJQ62IBnTZmtv/WPxJvtaVNhzNo+D2U8O6ryNI0zImYcw==} + engines: {node: '>= 4', npm: '>= 3'} + dependencies: + '@types/hammerjs': 2.0.41 + hammerjs: 2.0.8 + dev: false + /mkdirp/0.5.5: resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} hasBin: true @@ -3885,6 +4642,16 @@ packages: minimist: 1.2.5 dev: true + /moment-timezone/0.5.43: + resolution: {integrity: sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==} + dependencies: + moment: 2.29.4 + dev: false + + /moment/2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + dev: false + /mri/1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -4394,6 +5161,13 @@ packages: engines: {node: '>=0.6'} dev: true + /quadbin/0.1.9: + resolution: {integrity: sha512-5V6m6+cL/6+uBl3hYL+CWF06rRvlHkIepYKGQjTLYaHhu9InPppql0+0ROiCaOQdz8gPNlgge3glk5Qg1mWOYw==} + engines: {node: '>=14'} + dependencies: + '@mapbox/tile-cover': 3.0.1 + dev: false + /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -5180,6 +5954,11 @@ packages: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true + /tilebelt/1.0.1: + resolution: {integrity: sha512-cxHzpa5JgsugY9NUVRH43gPaGJw/29LecAn4X7UGOP64+kB8pU4VQ3bIhSyfb5Mk4jDxwl3yk330L/EIhbJ5aw==} + deprecated: 'This module is now under the @mapbox namespace: install @mapbox/tilebelt instead' + dev: false + /tiny-worker/2.3.0: resolution: {integrity: sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==} requiresBuild: true diff --git a/src/components/imageView.tsx b/src/components/imageView.tsx index 43bbef7..c6f3f0c 100644 --- a/src/components/imageView.tsx +++ b/src/components/imageView.tsx @@ -27,7 +27,7 @@ const toImageProps = (opts) => { { viv: vivProps, osd: osdProps, - }[props.viewer] || osdProps + }[props.viewer] || vivProps ); }; diff --git a/src/components/index.tsx b/src/components/index.tsx index 506fdc6..85a841e 100644 --- a/src/components/index.tsx +++ b/src/components/index.tsx @@ -11,6 +11,7 @@ import type { HashContext } from "../lib/hashUtil"; import type { Exhibit } from "../lib/exhibit"; type Props = HashContext & { + loader: any; exhibit: Exhibit; setExhibit: (e: Exhibit) => void; }; @@ -82,7 +83,7 @@ const Index = (props: Props) => { const views = ["viv", "osd"]; // TODO - return to views[0] - changed for quick dev w OSD - const [view, setView] = useState(views[1]); + const [view, setView] = useState(views[0]); const [zoomInEl, setZoomIn] = useState(null); const [zoomOutEl, setZoomOut] = useState(null); const [editable, setEditable] = useState(false); @@ -206,7 +207,7 @@ const Index = (props: Props) => { setExhibit(ex); }; - const { hash, setHash } = props; + const { loader, hash, setHash } = props; const mainProps = { hash, @@ -243,6 +244,7 @@ const Index = (props: Props) => { }; const imageProps = toImageProps({ props: { + loader, viewer: view, ...channelProps, }, diff --git a/src/components/vivView.tsx b/src/components/vivView.tsx index 4e03629..0f69eac 100644 --- a/src/components/vivView.tsx +++ b/src/components/vivView.tsx @@ -16,6 +16,7 @@ import type { Group, Story } from "../lib/exhibit"; import type { HashContext } from "../lib/hashUtil"; export type Props = { + loader: any; groups: Group[]; stories: Story[]; viewerConfig: Config; @@ -26,7 +27,7 @@ type Shape = { height: number; }; -const url = "/LUNG-3-PR_40X.ome.tif"; +const url = "/PCA19_001_F8_HE_aligned_to_cycif.ome.tif"; const Main = styled.div` height: 100%; @@ -73,7 +74,7 @@ const shapeRef = (setShape: (s: Shape) => void) => { const VivView = (props: Props) => { const maxShape = useWindowSize(); - const { groups, stories, hash, setHash } = props; + const { loader, groups, stories, hash, setHash } = props; const { v, g, s, w } = hash; const setV = useSetV(setHash); const { toSettings } = props.viewerConfig; @@ -84,13 +85,6 @@ const VivView = (props: Props) => { return shapeRef(setShape); }, [maxShape]); - const [loader, setLoader] = useState(null); - useEffect(() => { - loadOmeTiff(url).then((loader) => { - setLoader(loader); - }); - }, []); - if (!loader || !settings) return null; return (
@@ -98,7 +92,7 @@ const VivView = (props: Props) => { {...{ ...shape, ...(settings as any), - loader: loader.data, + loader }} />
diff --git a/src/lib/filesystem.ts b/src/lib/filesystem.ts new file mode 100644 index 0000000..78976b5 --- /dev/null +++ b/src/lib/filesystem.ts @@ -0,0 +1,28 @@ +import { + loadOmeTiff, +} from "@hms-dbmi/viv"; + +const hasFileSystemAccess = () => { + return !!window || !!(window as any).showOpenFilePicker; +} + +const toLoader = async () => { + const dir_opts = { mode: "readwrite" }; + const dir = await (window as any).showDirectoryPicker(dir_opts); + const in_f = "LUNG-3-PR_40X.ome.tif"; + const in_fh = await dir.getFileHandle(in_f); + const in_file = await in_fh.getFile(); + const in_tiff = await loadOmeTiff(in_file); + console.log(in_tiff); + /* + for (const f of files) { + dir.getFileHandle(f, { create: true }) + } + */ + return in_tiff; +} + +export { + hasFileSystemAccess, + toLoader +} diff --git a/src/main.tsx b/src/main.tsx index 3ba6709..14f49fa 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,6 +1,8 @@ import * as React from "react"; +import styled from 'styled-components'; import { useState, useEffect } from "react"; import { useHash } from "./lib/hashUtil"; +import { hasFileSystemAccess, toLoader } from "./lib/filesystem"; import { readConfig } from "./lib/exhibit"; import { Index } from "./components"; @@ -10,23 +12,75 @@ type Props = { config: Config; }; -const Main = (props: Props) => { +const Wrapper = styled.div` + height: 100%; + display: grid; + grid-template-columns: 1fr auto 1fr; + grid-template-rows: 33vh 1fr 33vh; +`; + +const Full = styled.div` + grid-row: 1 / -1; + grid-column: 1 / -1; +` + +const Clickable = styled.div` + z-index: 2; + grid-row: 2; + grid-column: 2; + background-color: hwb(220 10% 20% / .8); + cursor: pointer; + font-size: 30px; + padding: 4em; +`; + +const Content = (props: Props) => { const firstExhibit = readConfig(props.config); const [exhibit, setExhibit] = useState(firstExhibit); const [url, setUrl] = useState(window.location.href); const hashContext = useHash(url, exhibit.stories); + const [loader, setLoader] = useState(null); + // Create ome-tiff loader + const onStart = () => { + (async () => { + const loader = await toLoader(); + setLoader(loader.data); + })(); + } // Handle changes to URL useEffect(() => { window.addEventListener("hashchange", () => { setUrl(window.location.href); }); }, []) + console.log(loader); + const importer = loader ? '' : ( + + Open Directory + + ) return ( - + + + + + { importer } + ); }; +const Main = (props: Props) => { + if (hasFileSystemAccess()) { + return ; + } + const error_message = `

+ Unable to access file system api. +

` + return
{error_message}
; +}; + + export { Main };