From a5985174cd5c3a5b04be9d8535fb9b589a470af4 Mon Sep 17 00:00:00 2001 From: Wei Ouyang Date: Wed, 27 Jan 2021 01:56:17 +0100 Subject: [PATCH 1/4] Add vizarr layer --- package-lock.json | 1229 ++++++++++++++++++++++++- package.json | 3 +- public/CustomVizarr.js | 73 ++ public/index.html | 1 + src/components/ImageViewer.vue | 13 +- src/components/layers/ItkVtkLayer.vue | 2 +- src/components/layers/VizarrLayer.vue | 176 ++++ src/components/layers/index.js | 1 + vue.config.js | 5 + 9 files changed, 1463 insertions(+), 40 deletions(-) create mode 100644 public/CustomVizarr.js create mode 100644 src/components/layers/VizarrLayer.vue diff --git a/package-lock.json b/package-lock.json index d454d93..5467c29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "kaibu", - "version": "0.1.25", + "version": "0.1.26", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -961,7 +961,6 @@ "version": "7.10.2", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -1023,6 +1022,196 @@ "to-fast-properties": "^2.0.0" } }, + "@deck.gl/aggregation-layers": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/aggregation-layers/-/aggregation-layers-8.4.0-beta.1.tgz", + "integrity": "sha512-900Lx0YNho0gS8mbfNPOsCb9QrCQ+HXXHvsLxK2/uzwUuS39ONqaN8HZ9NTzIOmV5jYywK+FmR30cIupSlkYHw==", + "requires": { + "@luma.gl/shadertools": "^8.4.0-beta.1", + "@math.gl/web-mercator": "^3.4.2", + "d3-hexbin": "^0.2.1" + }, + "dependencies": { + "@luma.gl/shadertools": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-8.4.0-beta.2.tgz", + "integrity": "sha512-MFW2RTOfTCtnOVCuyC/TqWPJowhIGX/BRB3cgM+wuYo0k55rHnb7n3fGE07eSvMYUt/WG3xu3SEF8u8WkWYNMg==", + "requires": { + "@babel/runtime": "^7.0.0", + "@math.gl/core": "^3.4.2" + } + } + } + }, + "@deck.gl/carto": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/carto/-/carto-8.4.0-beta.1.tgz", + "integrity": "sha512-gHjboaekPamCUeDE/PjmvZ1VqLqebMtvcBlLTldVDskEbSDjD9w/AjEIZzv4QTcTRl5fi1Useww7grlNOl58PQ==", + "requires": { + "@loaders.gl/loader-utils": "^2.3.0", + "@loaders.gl/mvt": "^2.3.0", + "@loaders.gl/tiles": "^2.3.0", + "@math.gl/web-mercator": "^3.4.2", + "cartocolor": "^4.0.2", + "d3-scale": "^3.2.3" + } + }, + "@deck.gl/core": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/core/-/core-8.4.0-beta.1.tgz", + "integrity": "sha512-HcdxyyvhZ2e9cKlkWkwsCoUVp73xgEfSCt+/+AjN4RWqFvQer4XUsDs7MwJ4kvTdLH5MDXqbMETfuaezyOHxyg==", + "requires": { + "@loaders.gl/core": "^2.3.0", + "@loaders.gl/images": "^2.3.0", + "@luma.gl/core": "^8.4.0-beta.1", + "@math.gl/web-mercator": "^3.4.2", + "gl-matrix": "^3.0.0", + "math.gl": "^3.4.2", + "mjolnir.js": "^2.5.0", + "probe.gl": "^3.2.1" + }, + "dependencies": { + "@luma.gl/constants": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.4.0-beta.2.tgz", + "integrity": "sha512-RvjboG2FY3lEYbbWr56O8Z4AMhmDLXf6aFnjndLIQLVIurUy9CHwhuaiOH2q+EzHYilXEySFKSZgjhXLeR9ylA==" + }, + "@luma.gl/core": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/core/-/core-8.4.0-beta.2.tgz", + "integrity": "sha512-GiT+kokeG/v9PGjRxV3BC2JH/2XCooSgtURdU4IvY5akxB5Ro5SWJENeVsoaAu7wysUjw7Tvy3FmfSOz9i02wA==", + "requires": { + "@babel/runtime": "^7.0.0", + "@luma.gl/constants": "8.4.0-beta.2", + "@luma.gl/engine": "8.4.0-beta.2", + "@luma.gl/gltools": "8.4.0-beta.2", + "@luma.gl/shadertools": "8.4.0-beta.2", + "@luma.gl/webgl": "8.4.0-beta.2" + } + }, + "@luma.gl/shadertools": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-8.4.0-beta.2.tgz", + "integrity": "sha512-MFW2RTOfTCtnOVCuyC/TqWPJowhIGX/BRB3cgM+wuYo0k55rHnb7n3fGE07eSvMYUt/WG3xu3SEF8u8WkWYNMg==", + "requires": { + "@babel/runtime": "^7.0.0", + "@math.gl/core": "^3.4.2" + } + } + } + }, + "@deck.gl/extensions": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/extensions/-/extensions-8.4.0-beta.1.tgz", + "integrity": "sha512-lgLbcp91Sa+Yla30V18dAKki9xtnDgLewdxvvzr8TOMKc0BBiveyNrcw1NrOmWS9Ml3qgTrZZqifNXn+4F+ykA==", + "requires": { + "@luma.gl/shadertools": "^8.4.0-beta.1" + }, + "dependencies": { + "@luma.gl/shadertools": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-8.4.0-beta.2.tgz", + "integrity": "sha512-MFW2RTOfTCtnOVCuyC/TqWPJowhIGX/BRB3cgM+wuYo0k55rHnb7n3fGE07eSvMYUt/WG3xu3SEF8u8WkWYNMg==", + "requires": { + "@babel/runtime": "^7.0.0", + "@math.gl/core": "^3.4.2" + } + } + } + }, + "@deck.gl/geo-layers": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/geo-layers/-/geo-layers-8.4.0-beta.1.tgz", + "integrity": "sha512-0Id7YPDlfd/m255esmkVURYRTT2HbDC2qBLrQi0HzGs1J47K7x+ushEugU9nDljr8+2x0cMpkUKjjN/LPyLJoQ==", + "requires": { + "@loaders.gl/3d-tiles": "^2.3.0", + "@loaders.gl/loader-utils": "^2.3.0", + "@loaders.gl/mvt": "^2.3.0", + "@loaders.gl/terrain": "^2.3.0", + "@loaders.gl/tiles": "^2.3.0", + "@math.gl/culling": "^3.4.2", + "@math.gl/web-mercator": "^3.4.2", + "h3-js": "^3.6.0", + "long": "^3.2.0", + "math.gl": "^3.4.2" + } + }, + "@deck.gl/google-maps": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/google-maps/-/google-maps-8.4.0-beta.1.tgz", + "integrity": "sha512-4ae8qbg7STDznjSnd+ZQBSEwDSjqAVUotvM3c/+bM3kDLQJdVdPJIIINl1jaMCwixafXxI+cv5EBqsC4cx6kwA==" + }, + "@deck.gl/json": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/json/-/json-8.4.0-beta.1.tgz", + "integrity": "sha512-i9jtdO6A4tngBTIpF3oRU4f1Vwyxrth/c7deNBr4JIWavaznpUY3zwYIBOkGAtwNzixleyIt7WO95EwNNwULng==", + "requires": { + "d3-dsv": "^1.0.8", + "expression-eval": "^2.0.0" + }, + "dependencies": { + "d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", + "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + } + } + } + }, + "@deck.gl/layers": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/layers/-/layers-8.4.0-beta.1.tgz", + "integrity": "sha512-DKjbZ7xWdsDJRvaluadBjMvp7AUEpL+tYupNvX6v4GVEd/YmeC4fJ0efmseys2VDln4903ZvO6ODFxh+oBNqCw==", + "requires": { + "@loaders.gl/images": "^2.3.0", + "@mapbox/tiny-sdf": "^1.1.0", + "@math.gl/polygon": "^3.4.2", + "earcut": "^2.0.6" + } + }, + "@deck.gl/mapbox": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/mapbox/-/mapbox-8.4.0-beta.1.tgz", + "integrity": "sha512-cSMCRqmxT4dAHgoWwe7PhC3FNTQfbL9YwvL/GiF0ggiOE/GfDf6vW9B+zAY2qTw7ytUzZAIXrmUWhfPGmEYe2w==" + }, + "@deck.gl/mesh-layers": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/mesh-layers/-/mesh-layers-8.4.0-beta.1.tgz", + "integrity": "sha512-QiTpncTZ7n5EajriY/21TLIpm1JGDgHcd0B4XG6H3CIW0/Qur7QynOfZMsTP7eupbsj6+pEx88p8m74guAnvvQ==", + "requires": { + "@loaders.gl/gltf": "^2.3.0", + "@luma.gl/experimental": "^8.4.0-beta.1", + "@luma.gl/shadertools": "^8.4.0-beta.1" + }, + "dependencies": { + "@luma.gl/shadertools": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-8.4.0-beta.2.tgz", + "integrity": "sha512-MFW2RTOfTCtnOVCuyC/TqWPJowhIGX/BRB3cgM+wuYo0k55rHnb7n3fGE07eSvMYUt/WG3xu3SEF8u8WkWYNMg==", + "requires": { + "@babel/runtime": "^7.0.0", + "@math.gl/core": "^3.4.2" + } + } + } + }, + "@deck.gl/react": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@deck.gl/react/-/react-8.4.0-beta.1.tgz", + "integrity": "sha512-+7IJELI58OPgQGc6+gYyNOmZgerbZ3+gCJMOPNXR6xmoRenXAMOvU9U0eUecpEX0DZiE68SqpMptUEmC03CmfA==", + "requires": { + "prop-types": "^15.6.0" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -1062,6 +1251,61 @@ "@hapi/hoek": "^8.3.0" } }, + "@hms-dbmi/viv": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@hms-dbmi/viv/-/viv-0.8.3.tgz", + "integrity": "sha512-cVpCW1SU8I+cr3PNDQfgLseGdB2sS6N47CPwV413hIYyU3qRxbbZvAS52PfYDKf2IEkb/C7LeKnugym0JaaC6A==", + "requires": { + "@deck.gl/core": "^8.4.0-alpha.3", + "@deck.gl/geo-layers": "^8.4.0-alpha.3", + "@deck.gl/layers": "^8.4.0-alpha.3", + "@deck.gl/mesh-layers": "^8.4.0-alpha.3", + "@deck.gl/react": "^8.4.0-alpha.3", + "@luma.gl/constants": "^8.3.1", + "@luma.gl/core": "^8.3.1", + "@luma.gl/shadertools": "^8.3.1", + "fast-deep-equal": "^3.1.3", + "fast-xml-parser": "^3.16.0", + "geotiff": "github:ilan-gold/geotiff.js#ilan-gold/viv_083", + "math.gl": "^3.3.0", + "quickselect": "^2.0.0", + "zarr": "^0.3.0" + }, + "dependencies": { + "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==" + } + } + }, + "@hms-dbmi/vizarr": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@hms-dbmi/vizarr/-/vizarr-0.2.0.tgz", + "integrity": "sha512-aqT5oIw+d/tTjYWx1WLRkU2/sDowV0nHGHXJ2/7CxuSt97K8zs5BaZ3ut4VdI5xT4AZEat40g9dLT6vpOCU0bw==", + "requires": { + "@hms-dbmi/viv": "^0.8.1", + "@material-ui/core": "^4.11.0", + "@material-ui/icons": "^4.9.1", + "deck.gl": "^8.4.0-alpha.4", + "imjoy-rpc": "^0.2.23", + "p-map": "^4.0.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "recoil": "0.0.13", + "zarr": "^0.3.0" + }, + "dependencies": { + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + } + } + }, "@intervolga/optimize-cssnano-plugin": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz", @@ -1073,6 +1317,271 @@ "postcss": "^7.0.0" } }, + "@loaders.gl/3d-tiles": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/3d-tiles/-/3d-tiles-2.3.9.tgz", + "integrity": "sha512-j5Sxt39d6lL846wCBj5uaUjIbbH5qTxPe/dgoHX3W3WUvlQrjEZ4CIhRjYxKWWtEekFnJGYJMFouSLz7iuIgQA==", + "requires": { + "@loaders.gl/core": "2.3.9", + "@loaders.gl/draco": "2.3.9", + "@loaders.gl/gltf": "2.3.9", + "@loaders.gl/loader-utils": "2.3.9", + "@loaders.gl/math": "2.3.9", + "@loaders.gl/tiles": "2.3.9", + "@math.gl/core": "^3.3.0", + "@math.gl/geospatial": "^3.3.0", + "@probe.gl/stats": "^3.3.0" + } + }, + "@loaders.gl/core": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/core/-/core-2.3.9.tgz", + "integrity": "sha512-mnCaM2vUBwJl8x5nPcQh0+NWhyDyddF7Et2RisIWYPWDTFcd1O+r2rUrPMb6Vyw0ufWkPr86/zEmaKAvndVOtw==", + "requires": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "2.3.9" + } + }, + "@loaders.gl/draco": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/draco/-/draco-2.3.9.tgz", + "integrity": "sha512-RnJKQAwV5MmvoWOjOdX8zUfYXnDtYSk2/XxgSf29SgOMbAFPKv/VGzheRDdlXPNP34XqrIkw38mN6uqBaOxSNA==", + "requires": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "2.3.9", + "draco3d": "^1.3.6" + } + }, + "@loaders.gl/gis": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/gis/-/gis-2.3.9.tgz", + "integrity": "sha512-18qsEdr/TAoePqudNe/ZGSm1pTenD7D46cKSS6P0mk+cyvWdiILA7TqT9qNzkQcudkTkvGyDVYl0d1fZRHCkDg==", + "requires": { + "@loaders.gl/loader-utils": "2.3.9", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "@loaders.gl/gltf": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/gltf/-/gltf-2.3.9.tgz", + "integrity": "sha512-tdjUDqtnN4grzRWqIcoO+iXRTDjglW117/ilBN3DTsG/s70CzQ7kdkuXKcMDV773WuGcA/LYOQdonoZyZn3RlA==", + "requires": { + "@loaders.gl/core": "2.3.9", + "@loaders.gl/draco": "2.3.9", + "@loaders.gl/images": "2.3.9", + "@loaders.gl/loader-utils": "2.3.9" + } + }, + "@loaders.gl/images": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/images/-/images-2.3.9.tgz", + "integrity": "sha512-6b/TcAc2vgNTMlIpJ2oF28Be1Y+jHHXAoaT6W6juvQiyumEG5763x+6ZfeJd0x2Bc786lwRSA2jzMKiifOQfDg==", + "requires": { + "@loaders.gl/loader-utils": "2.3.9" + } + }, + "@loaders.gl/loader-utils": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-2.3.9.tgz", + "integrity": "sha512-sb15yKiJa2vPOqUyGp5fglh7LQgm99gSUF0WZ/PjYIp84R9pb8qR5yeba5Y5Kx3R2oEVAJGjt9uWy1v9cGKbaA==", + "requires": { + "@babel/runtime": "^7.3.1", + "@probe.gl/stats": "^3.3.0" + } + }, + "@loaders.gl/math": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/math/-/math-2.3.9.tgz", + "integrity": "sha512-alG5ZUP38nJbXcdWvgolS8toX4Ouy/+kqGKw6DtFd1lST0I3CpLgK1KKJZxSIUicnmpsa8sXvPd30BZ7vR/6Rw==", + "requires": { + "@loaders.gl/images": "2.3.9", + "@loaders.gl/loader-utils": "2.3.9", + "@math.gl/core": "^3.3.0" + } + }, + "@loaders.gl/mvt": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/mvt/-/mvt-2.3.9.tgz", + "integrity": "sha512-DlaYR6pN/K/m0tLBUDb/KwVF6K03Ck7PyDsY+2jbS7eQp8hnrsN+mMEsN9/I5UWeWeRQMJP4NjC8T85Fwtj++g==", + "requires": { + "@loaders.gl/gis": "2.3.9", + "@loaders.gl/loader-utils": "2.3.9", + "@mapbox/point-geometry": "~0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "@loaders.gl/terrain": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/terrain/-/terrain-2.3.9.tgz", + "integrity": "sha512-PLJ/y+QovmJDniLhZwu+Jb3OYXNnhUNmJBpAQNCl3WYbqf9pGH10rfnvtsSfIcp2vra3guwRTBNcecr792U2rw==", + "requires": { + "@babel/runtime": "^7.3.1", + "@loaders.gl/loader-utils": "2.3.9", + "@mapbox/martini": "^0.2.0" + } + }, + "@loaders.gl/tiles": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@loaders.gl/tiles/-/tiles-2.3.9.tgz", + "integrity": "sha512-Dcc+NQ5dLqZ/0HUckeiKoVuZZ3ukOEUn2mweDr7W6oRYesMo1F3o9iSEndDIccE/YM3Qj9Vgpp1r54pAamXrtQ==", + "requires": { + "@loaders.gl/core": "2.3.9", + "@loaders.gl/loader-utils": "2.3.9", + "@loaders.gl/math": "2.3.9", + "@math.gl/core": "^3.3.0", + "@math.gl/culling": "^3.3.0", + "@math.gl/geospatial": "^3.3.0", + "@math.gl/web-mercator": "^3.3.0", + "@probe.gl/stats": "^3.3.0" + } + }, + "@luma.gl/constants": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.3.3.tgz", + "integrity": "sha512-NVbMtLpgmdi4miEM/wOcswAoZuXo/yXAkIxcXvp+PVM3MTEg4BoM9HYimFr7gFOJM6GHhKQ0pbo2FLbWat/mlw==" + }, + "@luma.gl/core": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/core/-/core-8.3.3.tgz", + "integrity": "sha512-Qsb04lGyXJ/xPkb2KMNHRJmCOpdiiUVljr3xTMX/d1CvcO+B3VAz2SHgC25Ns6g9SkWd0eP8rf4pfBX+G1b/hg==", + "requires": { + "@babel/runtime": "^7.0.0", + "@luma.gl/constants": "8.3.3", + "@luma.gl/engine": "8.3.3", + "@luma.gl/shadertools": "8.3.3", + "@luma.gl/webgl": "8.3.3" + }, + "dependencies": { + "@luma.gl/engine": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/engine/-/engine-8.3.3.tgz", + "integrity": "sha512-g/xmMKyo9C/9u6vLA6Pls11VLIpK2ny541Ni/PyLLNqXCRR85Svlh09brxUBJkYklvSaYlzRSzWuO95ba4B3YQ==", + "requires": { + "@babel/runtime": "^7.0.0", + "@luma.gl/constants": "8.3.3", + "@luma.gl/gltools": "8.3.3", + "@luma.gl/shadertools": "8.3.3", + "@luma.gl/webgl": "8.3.3", + "math.gl": "^3.3.0", + "probe.gl": "^3.2.1" + } + }, + "@luma.gl/gltools": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/gltools/-/gltools-8.3.3.tgz", + "integrity": "sha512-WixMWT8ljVrz5uTxFOvdR1jNsGUrBnHqB8lRcK1dRGGIYTBOzll0RakZBgzLrcTeSIQwTEhFnAtWbnBkqjclNA==", + "requires": { + "@babel/runtime": "^7.0.0", + "@luma.gl/constants": "8.3.3", + "probe.gl": "^3.2.1" + } + }, + "@luma.gl/webgl": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/webgl/-/webgl-8.3.3.tgz", + "integrity": "sha512-nB7KVdNEOxaBsVJoF3GU68ttKv2F9eTmJeaDAPce+n0+8g46CjvLn6qeVJeunzSVVHwXnZwwd73ACNbApbJ62g==", + "requires": { + "@babel/runtime": "^7.0.0", + "@luma.gl/constants": "8.3.3", + "@luma.gl/gltools": "8.3.3", + "probe.gl": "^3.2.1" + } + } + } + }, + "@luma.gl/engine": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/engine/-/engine-8.4.0-beta.2.tgz", + "integrity": "sha512-1SfVSNH/dcIDLrakzAWYsYCn7TMG3/VRRnuU+DaHhHfSQTdWSevYYFAsmgjcagzgLtebAJ8+B7AW0uIjmcYz6Q==", + "requires": { + "@babel/runtime": "^7.0.0", + "@luma.gl/constants": "8.4.0-beta.2", + "@luma.gl/gltools": "8.4.0-beta.2", + "@luma.gl/shadertools": "8.4.0-beta.2", + "@luma.gl/webgl": "8.4.0-beta.2", + "@math.gl/core": "^3.4.2", + "probe.gl": "^3.2.1" + }, + "dependencies": { + "@luma.gl/constants": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.4.0-beta.2.tgz", + "integrity": "sha512-RvjboG2FY3lEYbbWr56O8Z4AMhmDLXf6aFnjndLIQLVIurUy9CHwhuaiOH2q+EzHYilXEySFKSZgjhXLeR9ylA==" + }, + "@luma.gl/shadertools": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-8.4.0-beta.2.tgz", + "integrity": "sha512-MFW2RTOfTCtnOVCuyC/TqWPJowhIGX/BRB3cgM+wuYo0k55rHnb7n3fGE07eSvMYUt/WG3xu3SEF8u8WkWYNMg==", + "requires": { + "@babel/runtime": "^7.0.0", + "@math.gl/core": "^3.4.2" + } + } + } + }, + "@luma.gl/experimental": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/experimental/-/experimental-8.4.0-beta.2.tgz", + "integrity": "sha512-rfcZQFJbqaSEgXNjzxEEK2C6UJL5RgPkR4BRREYANcXMPxenUHg7GXacHEiC5J0dgLerbT4BGGJocC8ty8/Lsw==", + "requires": { + "@luma.gl/constants": "8.4.0-beta.2", + "@math.gl/core": "^3.4.1", + "earcut": "^2.0.6" + }, + "dependencies": { + "@luma.gl/constants": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.4.0-beta.2.tgz", + "integrity": "sha512-RvjboG2FY3lEYbbWr56O8Z4AMhmDLXf6aFnjndLIQLVIurUy9CHwhuaiOH2q+EzHYilXEySFKSZgjhXLeR9ylA==" + } + } + }, + "@luma.gl/gltools": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/gltools/-/gltools-8.4.0-beta.2.tgz", + "integrity": "sha512-YJ3DrB0/eC72ReT2+E66nIci1Ge5EMZIogv0tteuupHoFZ5vXt5PZ8xZF2uHD6jtBmGrcwxWzfOMNcX4l1snIg==", + "requires": { + "@babel/runtime": "^7.0.0", + "@luma.gl/constants": "8.4.0-beta.2", + "probe.gl": "^3.2.1" + }, + "dependencies": { + "@luma.gl/constants": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.4.0-beta.2.tgz", + "integrity": "sha512-RvjboG2FY3lEYbbWr56O8Z4AMhmDLXf6aFnjndLIQLVIurUy9CHwhuaiOH2q+EzHYilXEySFKSZgjhXLeR9ylA==" + } + } + }, + "@luma.gl/shadertools": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-8.3.3.tgz", + "integrity": "sha512-mtB774AOg0cA+KnFdIGp11rKCmPGpshqBsk2Bjla7XMgIO/nkObatUNnwwNqQHAM8FCdUFPpeCoOjL65OSeZQQ==", + "requires": { + "@babel/runtime": "^7.0.0", + "math.gl": "^3.3.0" + } + }, + "@luma.gl/webgl": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/webgl/-/webgl-8.4.0-beta.2.tgz", + "integrity": "sha512-GZe6qusqJN/G8P2e0xKiQ3SgU+0Kr3pmkBbyFrw4/f3D5hnncPAxYO0PGJUH9ofJyf51jAtWD6Yon3dfG9HYvw==", + "requires": { + "@babel/runtime": "^7.0.0", + "@luma.gl/constants": "8.4.0-beta.2", + "@luma.gl/gltools": "8.4.0-beta.2", + "probe.gl": "^3.2.1" + }, + "dependencies": { + "@luma.gl/constants": { + "version": "8.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-8.4.0-beta.2.tgz", + "integrity": "sha512-RvjboG2FY3lEYbbWr56O8Z4AMhmDLXf6aFnjndLIQLVIurUy9CHwhuaiOH2q+EzHYilXEySFKSZgjhXLeR9ylA==" + } + } + }, "@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", @@ -1093,16 +1602,196 @@ "sort-object": "^0.3.2" } }, + "@mapbox/martini": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/martini/-/martini-0.2.0.tgz", + "integrity": "sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==" + }, "@mapbox/point-geometry": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=" }, + "@mapbox/tiny-sdf": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.2.tgz", + "integrity": "sha512-GeJdumh5Do1JvnE2QbbLixZmJg6CzOfpzcAuS+qZadWK1Gj+yY/mj7IOVlgXCBg/yDqDmitGwSius+rrTpm8RA==" + }, "@mapbox/unitbezier": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" }, + "@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "requires": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "@material-ui/core": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.3.tgz", + "integrity": "sha512-Adt40rGW6Uds+cAyk3pVgcErpzU/qxc7KBR94jFHBYretU4AtWZltYcNsbeMn9tXL86jjVL1kuGcIHsgLgFGRw==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/styles": "^4.11.3", + "@material-ui/system": "^4.11.3", + "@material-ui/types": "^5.1.0", + "@material-ui/utils": "^4.11.2", + "@types/react-transition-group": "^4.2.0", + "clsx": "^1.0.4", + "hoist-non-react-statics": "^3.3.2", + "popper.js": "1.16.1-lts", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0", + "react-transition-group": "^4.4.0" + } + }, + "@material-ui/icons": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz", + "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==", + "requires": { + "@babel/runtime": "^7.4.4" + } + }, + "@material-ui/styles": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.3.tgz", + "integrity": "sha512-HzVzCG+PpgUGMUYEJ2rTEmQYeonGh41BYfILNFb/1ueqma+p1meSdu4RX6NjxYBMhf7k+jgfHFTTz+L1SXL/Zg==", + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/hash": "^0.8.0", + "@material-ui/types": "^5.1.0", + "@material-ui/utils": "^4.11.2", + "clsx": "^1.0.4", + "csstype": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.5.1", + "jss-plugin-camel-case": "^10.5.1", + "jss-plugin-default-unit": "^10.5.1", + "jss-plugin-global": "^10.5.1", + "jss-plugin-nested": "^10.5.1", + "jss-plugin-props-sort": "^10.5.1", + "jss-plugin-rule-value-function": "^10.5.1", + "jss-plugin-vendor-prefixer": "^10.5.1", + "prop-types": "^15.7.2" + } + }, + "@material-ui/system": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz", + "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.2", + "csstype": "^2.5.2", + "prop-types": "^15.7.2" + } + }, + "@material-ui/types": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" + }, + "@material-ui/utils": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", + "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", + "requires": { + "@babel/runtime": "^7.4.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + } + }, + "@math.gl/core": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-3.4.2.tgz", + "integrity": "sha512-65vhtokCDq0N16DLwWZhPTNAGuVtTjyyi5tx950yNN3ei5BRxz2JHe6JTSnjjKO/2w9KuQYOOqokc7ARog0vKg==", + "requires": { + "@babel/runtime": "^7.12.0", + "gl-matrix": "^3.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "@math.gl/culling": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@math.gl/culling/-/culling-3.4.2.tgz", + "integrity": "sha512-rjDfJp58jvTzMjX954/EMdcaVrX8UkkkXWXc1PU2+XFyAtaBYHDk7jiaFQQbBx8sqk9PKd62j3UTwtSreWyoyQ==", + "requires": { + "@babel/runtime": "^7.12.0", + "@math.gl/core": "3.4.2", + "gl-matrix": "^3.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "@math.gl/geospatial": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@math.gl/geospatial/-/geospatial-3.4.2.tgz", + "integrity": "sha512-EiCwU3B4ftrUsPPHmLqJuxo37Y7Fvi9Mqpvxj6PvdvsF8EmEvMdYgiQXSNL9vSq5JbEy9xWL2ph47wvkWFoWUQ==", + "requires": { + "@babel/runtime": "^7.12.0", + "@math.gl/core": "3.4.2", + "gl-matrix": "^3.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "@math.gl/polygon": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-3.4.2.tgz", + "integrity": "sha512-ANbZmcrzavzEe0bHbdEYyiudPdGGV/quB3FxUJa3L1QCcZbnrqvnuwqX+8U8ltIDhbACG1x0Uxefwo8p77aMNw==", + "requires": { + "@math.gl/core": "3.4.2" + } + }, + "@math.gl/web-mercator": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-3.4.2.tgz", + "integrity": "sha512-Az/WI8vxbqnrTEcYgqDQ3CgCRoFA2a4XT9mkjVrT7iIlfrUF5lrIXcmpljjKvoFNBldKrng7hFSeHHM2ghgSrg==", + "requires": { + "@babel/runtime": "^7.12.0", + "gl-matrix": "^3.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, "@mdi/font": { "version": "5.3.45", "resolved": "https://registry.npmjs.org/@mdi/font/-/font-5.3.45.tgz", @@ -1152,6 +1841,14 @@ "fastq": "^1.6.0" } }, + "@probe.gl/stats": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.3.0.tgz", + "integrity": "sha512-CV4c3EgallqZTO88u34/u9L5asL0nCVP1BEkb4qcXlh8Qz2Vmygbyjz1ViQsct6rSi2lJ52lo6W0PnlpZJJvcA==", + "requires": { + "@babel/runtime": "^7.0.0" + } + }, "@soda/friendly-errors-webpack-plugin": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz", @@ -2647,12 +3344,41 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, "@types/q": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, + "@types/react": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz", + "integrity": "sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==", + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz", + "integrity": "sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==" + } + } + }, + "@types/react-transition-group": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz", + "integrity": "sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==", + "requires": { + "@types/react": "*" + } + }, "@vue/babel-helper-vue-jsx-merge-props": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz", @@ -3664,7 +4390,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -4699,6 +5424,14 @@ "integrity": "sha512-AEzsGvjBJL0lby/87W96PyEvwN0GsYvk5LHsglLg9tW37K4BqvAvoSCdWIE13OZQ8afupqZ73+oL/1LkedN8hA==", "dev": true }, + "cartocolor": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cartocolor/-/cartocolor-4.0.2.tgz", + "integrity": "sha512-+Gh9mb6lFxsDOLQlBLPxAHCnWXlg2W8q3AcVwqRcy95TdBbcOU89Wrb6h2Hd/6Ww1Kc1pzXmUdpnWD+xeCG0dg==", + "requires": { + "colorbrewer": "1.0.0" + } + }, "case-sensitive-paths-webpack-plugin": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", @@ -4884,8 +5617,7 @@ "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-cursor": { "version": "2.1.0", @@ -5153,6 +5885,11 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, "coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", @@ -5209,6 +5946,11 @@ "simple-swizzle": "^0.2.2" } }, + "colorbrewer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-1.0.0.tgz", + "integrity": "sha1-T5czO5abp2Ejgr5LwzlLNB+0yKI=" + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -5631,8 +6373,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { "version": "5.2.1", @@ -5816,6 +6557,15 @@ } } }, + "css-vendor": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", + "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", + "requires": { + "@babel/runtime": "^7.8.3", + "is-in-browser": "^1.0.2" + } + }, "css-what": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", @@ -5966,6 +6716,11 @@ } } }, + "csstype": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.14.tgz", + "integrity": "sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A==" + }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -6039,6 +6794,11 @@ "resolve": "^1.1.10" } }, + "d3-hexbin": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/d3-hexbin/-/d3-hexbin-0.2.2.tgz", + "integrity": "sha1-nFg32s/UcasFM3qeke8Qv8T5iDE=" + }, "d3-hierarchy": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", @@ -6135,7 +6895,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -6151,6 +6910,24 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==" }, + "deck.gl": { + "version": "8.4.0-beta.1", + "resolved": "https://registry.npmjs.org/deck.gl/-/deck.gl-8.4.0-beta.1.tgz", + "integrity": "sha512-xNCtRFv0v/J2zRo9dk3/byRom8T0qU+BJsMhLl2+JkV6POQ9E+WKYEqslUZ6NlMs8ZXHvpal92F/pOt2fGHWZQ==", + "requires": { + "@deck.gl/aggregation-layers": "8.4.0-beta.1", + "@deck.gl/carto": "8.4.0-beta.1", + "@deck.gl/core": "8.4.0-beta.1", + "@deck.gl/extensions": "8.4.0-beta.1", + "@deck.gl/geo-layers": "8.4.0-beta.1", + "@deck.gl/google-maps": "8.4.0-beta.1", + "@deck.gl/json": "8.4.0-beta.1", + "@deck.gl/layers": "8.4.0-beta.1", + "@deck.gl/mapbox": "8.4.0-beta.1", + "@deck.gl/mesh-layers": "8.4.0-beta.1", + "@deck.gl/react": "8.4.0-beta.1" + } + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -6535,6 +7312,22 @@ "integrity": "sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==", "dev": true }, + "dom-helpers": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", + "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz", + "integrity": "sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==" + } + } + }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -6622,6 +7415,11 @@ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", "dev": true }, + "draco3d": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.4.1.tgz", + "integrity": "sha512-9Rxonc70xiovBC+Bq1h57SNZIHzWTibU1VfIGp5z3Xx8dPtv4yT5uGhiH7P5uvJRR2jkrvHafRxR7bTANkvfpg==" + }, "duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", @@ -7062,6 +7860,12 @@ "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==", "dev": true }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "optional": true + }, "espree": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", @@ -7140,8 +7944,7 @@ "eventemitter3": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" }, "events": { "version": "3.1.0", @@ -7294,6 +8097,14 @@ } } }, + "expression-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/expression-eval/-/expression-eval-2.1.0.tgz", + "integrity": "sha512-FUJO/Akvl/JOWkvlqZaqbkhsEWlCJWDeZG4tzX96UH68D9FeRgYgtb55C2qtqbORC0Q6x5419EDjWu4IT9kQfg==", + "requires": { + "jsep": "^0.3.0" + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -7468,6 +8279,11 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-xml-parser": { + "version": "3.17.6", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.17.6.tgz", + "integrity": "sha512-40WHI/5d2MOzf1sD2bSaTXlPn1lueJLAX6j1xH5dSAr6tNeut8B9ktEL6sjAK9yVON4uNj9//axOdBJUuruCzw==" + }, "fastq": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", @@ -7822,6 +8638,16 @@ "rbush": "*" } }, + "geotiff": { + "version": "github:ilan-gold/geotiff.js#aca49d4e406ee428c5296b8fe6ed15725f77bd0c", + "from": "github:ilan-gold/geotiff.js#ilan-gold/viv_083", + "requires": { + "lzw-tiff-decoder": "^0.1.0", + "pako": "^1.0.11", + "threads": "^1.3.1", + "txml": "^3.1.2" + } + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -7874,6 +8700,11 @@ "assert-plus": "^1.0.0" } }, + "gl-matrix": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", + "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==" + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -7947,6 +8778,16 @@ "pify": "^4.0.1" } }, + "h3-js": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-3.7.0.tgz", + "integrity": "sha512-EcH/qGU4khZsAEG39Uu8MvaCing0JFcuoe3K4Xmg5MofDIu1cNJl7z2AQS8ggvXGxboiLJqsGirhEqFKdd2gAA==" + }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" + }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -8112,6 +8953,14 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -8367,6 +9216,11 @@ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -8401,6 +9255,11 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "imjoy-rpc": { + "version": "0.2.31", + "resolved": "https://registry.npmjs.org/imjoy-rpc/-/imjoy-rpc-0.2.31.tgz", + "integrity": "sha512-LRnwMBS+iH1riBcBQkjwBUk+Lr+bhqV/qc1Qx0O7GhvM7CfhWqyG50A+JF3QsJDAdmTIpt/5ZLr2gDvh0eDiug==" + }, "import-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", @@ -8445,11 +9304,18 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "indefinite-observable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz", + "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==", + "requires": { + "symbol-observable": "1.2.0" + } + }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "indexes-of": { "version": "1.0.1", @@ -8476,8 +9342,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", @@ -8810,6 +9675,11 @@ "is-extglob": "^2.1.1" } }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -8836,6 +9706,14 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "requires": { + "symbol-observable": "^1.1.0" + } + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -8945,8 +9823,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -9043,8 +9920,7 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.13.1", @@ -9121,6 +9997,11 @@ "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", "dev": true }, + "jsep": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-0.3.5.tgz", + "integrity": "sha512-AoRLBDc6JNnKjNcmonituEABS5bcfqDhQAWWXNTFrqu6nVXBpBAGfcoTGZMFlIrh9FjmE1CQyX9CTNwZrXMMDA==" + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -9212,6 +10093,92 @@ "verror": "1.10.0" } }, + "jss": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.5.1.tgz", + "integrity": "sha512-hbbO3+FOTqVdd7ZUoTiwpHzKXIo5vGpMNbuXH1a0wubRSWLWSBvwvaq4CiHH/U42CmjOnp6lVNNs/l+Z7ZdDmg==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "indefinite-observable": "^2.0.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz", + "integrity": "sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==" + } + } + }, + "jss-plugin-camel-case": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.5.1.tgz", + "integrity": "sha512-9+oymA7wPtswm+zxVti1qiowC5q7bRdCJNORtns2JUj/QHp2QPXYwSNRD8+D2Cy3/CEMtdJzlNnt5aXmpS6NAg==", + "requires": { + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.5.1" + } + }, + "jss-plugin-default-unit": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.5.1.tgz", + "integrity": "sha512-D48hJBc9Tj3PusvlillHW8Fz0y/QqA7MNmTYDQaSB/7mTrCZjt7AVRROExoOHEtd2qIYKOYJW3Jc2agnvsXRlQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.5.1" + } + }, + "jss-plugin-global": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.5.1.tgz", + "integrity": "sha512-jX4XpNgoaB8yPWw/gA1aPXJEoX0LNpvsROPvxlnYe+SE0JOhuvF7mA6dCkgpXBxfTWKJsno7cDSCgzHTocRjCQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.5.1" + } + }, + "jss-plugin-nested": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.5.1.tgz", + "integrity": "sha512-xXkWKOCljuwHNjSYcXrCxBnjd8eJp90KVFW1rlhvKKRXnEKVD6vdKXYezk2a89uKAHckSvBvBoDGsfZrldWqqQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.5.1", + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-props-sort": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.5.1.tgz", + "integrity": "sha512-t+2vcevNmMg4U/jAuxlfjKt46D/jHzCPEjsjLRj/J56CvP7Iy03scsUP58Iw8mVnaV36xAUZH2CmAmAdo8994g==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.5.1" + } + }, + "jss-plugin-rule-value-function": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.5.1.tgz", + "integrity": "sha512-3gjrSxsy4ka/lGQsTDY8oYYtkt2esBvQiceGBB4PykXxHoGRz14tbCK31Zc6DHEnIeqsjMUGbq+wEly5UViStQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.5.1", + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-vendor-prefixer": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.5.1.tgz", + "integrity": "sha512-cLkH6RaPZWHa1TqSfd2vszNNgxT1W0omlSjAd6hCFHp3KIocSrW21gaHjlMU26JpTHwkc+tJTCQOmE/O1A4FKQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.8", + "jss": "10.5.1" + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -9456,11 +10423,15 @@ "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==", "dev": true }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -9480,6 +10451,11 @@ "yallist": "^3.0.2" } }, + "lzw-tiff-decoder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lzw-tiff-decoder/-/lzw-tiff-decoder-0.1.0.tgz", + "integrity": "sha512-YyXYuOsDLIHH9yN0A7JtHkpWNsNH2myocYQ2B36herqkHnj6v5hqzXzlf+BUWVCCtfxl8k5eD6bDFKhy+CBC8A==" + }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -9510,6 +10486,14 @@ "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.0.tgz", "integrity": "sha512-v674D0WtpxCXlA6E+sBlG1QJWdUkz/s9qAD91bJSXBGuBL5lL4tJXpoJEftecphCh2SVQCjWMS2vhylc3AIQTg==" }, + "math.gl": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/math.gl/-/math.gl-3.4.2.tgz", + "integrity": "sha512-0I77HBiC+q/XRRw807dCwUeMTUotzNQUQZEk0kPd39iRmU67dLId0+OtCGFYjIzyM+gNaj1JWueiOYV/gdl+dQ==", + "requires": { + "@math.gl/core": "3.4.2" + } + }, "mathjs": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-7.0.1.tgz", @@ -9811,6 +10795,15 @@ } } }, + "mjolnir.js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-2.5.0.tgz", + "integrity": "sha512-YkVoyKs7qm9xvAgRgjx3Md/7eYqmq7VXOgTKQNnmuzcBJzMebjdIWa7FdTd0RZBrw3UL6V6TTktsxJwBMLXUNA==", + "requires": { + "@babel/runtime": "^7.0.0", + "hammerjs": "^2.0.8" + } + }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -10305,8 +11298,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { "version": "6.2.3", @@ -10547,6 +11539,14 @@ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, + "numcodecs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/numcodecs/-/numcodecs-0.1.1.tgz", + "integrity": "sha512-UjKulZ6GIFKLdBIczEbsoXNZQmiHafpoIdo39YcdecHVGyMKh0+azsfHTrybXm5RZwepqLZv24mkjqGdZGm24Q==", + "requires": { + "pako": "^1.0.11" + } + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -10671,6 +11671,11 @@ "has": "^1.0.3" } }, + "observable-fns": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/observable-fns/-/observable-fns-0.5.1.tgz", + "integrity": "sha512-wf7g4Jpo1Wt2KIqZKLGeiuLOEMqpaOZ5gJn7DmSdqXgTdxRwSdBhWegQQpPteQ2gZvzCKqNNpwb853wcpA0j7A==" + }, "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -10833,8 +11838,7 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.3.0", @@ -10863,6 +11867,15 @@ "aggregate-error": "^3.0.0" } }, + "p-queue": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.2.0.tgz", + "integrity": "sha512-B2LXNONcyn/G6uz2UBFsGjmSa0e/br3jznlzhEyCXg56c7VhEpiT2pZxGOfv32Q3FSyugAdys9KGpsv3kV+Sbg==", + "requires": { + "eventemitter3": "^4.0.0", + "p-timeout": "^3.1.0" + } + }, "p-retry": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", @@ -10872,6 +11885,14 @@ "retry": "^0.12.0" } }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -10881,8 +11902,7 @@ "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "parallel-transform": { "version": "1.2.0", @@ -11190,6 +12210,11 @@ "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.0.1.tgz", "integrity": "sha1-1Ztk6P7kHElFiqyCtWcYxZV7Kvc=" }, + "popper.js": { + "version": "1.16.1-lts", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", + "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" + }, "portfinder": { "version": "1.0.26", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", @@ -11873,6 +12898,15 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, + "probe.gl": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.3.0.tgz", + "integrity": "sha512-59E6AEw4N8sU4PKfAl7S2UBYJCOa064WpEFcXfeFOB/36FJtplYY+261DqLjLAvOqRRHiKVEQUBo63PQ3jKeWA==", + "requires": { + "@babel/runtime": "^7.0.0", + "@probe.gl/stats": "3.3.0" + } + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -11882,8 +12916,7 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "progress": { "version": "2.0.3", @@ -11897,6 +12930,16 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, "proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -12087,6 +13130,41 @@ "quickselect": "^2.0.0" } }, + "react": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", + "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", + "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -12103,7 +13181,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12124,6 +13201,11 @@ "picomatch": "^2.2.1" } }, + "recoil": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.0.13.tgz", + "integrity": "sha512-2OToaQ8GR//KsdKdaEhMi04QKStLGRpk3qjC58iBpZpUtsByZ4dUy2UJtRcYuhnVlltGZ8HNwcEQRdFOS864SQ==" + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -12142,8 +13224,7 @@ "regenerator-runtime": { "version": "0.13.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", - "dev": true + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" }, "regenerator-transform": { "version": "0.14.4", @@ -12508,8 +13589,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -12540,6 +13620,15 @@ "xmlchars": "^2.1.1" } }, + "scheduler": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", + "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", @@ -13346,7 +14435,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -13471,6 +14559,11 @@ "util.promisify": "~1.0.0" } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -13619,6 +14712,25 @@ "neo-async": "^2.6.0" } }, + "threads": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/threads/-/threads-1.6.3.tgz", + "integrity": "sha512-tKwFIWRgfAT85KGkrpDt2jWPO8IVH0sLNfB/pXad/VW9eUIY2Zlz+QyeizypXhPHv9IHfqRzvk2t3mPw+imhWw==", + "requires": { + "callsites": "^3.1.0", + "debug": "^4.1.1", + "is-observable": "^1.1.0", + "observable-fns": "^0.5.1", + "tiny-worker": ">= 2" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + } + } + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -13661,6 +14773,20 @@ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tiny-worker": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz", + "integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==", + "optional": true, + "requires": { + "esm": "^3.2.25" + } + }, "tinyqueue": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", @@ -13782,6 +14908,11 @@ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", "dev": true }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, "ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", @@ -13820,6 +14951,25 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "txml": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/txml/-/txml-3.2.5.tgz", + "integrity": "sha512-AtN8AgJLiDanttIXJaQlxH8/R0NOCNwto8kcO7BaxdLgsN9b7itM9lnTD7c2O3TadP+hHB9j7ra5XGFRPNnk/g==", + "requires": { + "through2": "^3.0.1" + }, + "dependencies": { + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -14106,8 +15256,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.1", @@ -15861,6 +17010,16 @@ "dev": true } } + }, + "zarr": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/zarr/-/zarr-0.3.1.tgz", + "integrity": "sha512-M0/Qv3IYb0zgxrL6EWQgnS/CNnSggBaybEfi9Bc8eWakJa6Hr+JN/NDGJZIqyd8NgqoW2to3S6VGcIwuMIgTQQ==", + "requires": { + "numcodecs": "^0.1.0", + "p-queue": "6.2.0", + "ts-interface-checker": "^0.1.10" + } } } } diff --git a/package.json b/package.json index 7127552..75bab11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kaibu", - "version": "0.1.25", + "version": "0.1.26", "private": true, "scripts": { "serve": "vue-cli-service serve", @@ -11,6 +11,7 @@ "format": "prettier --write \"{src,tests}/**/**\"" }, "dependencies": { + "@hms-dbmi/vizarr": "^0.2.0", "@mdi/font": "^5.3.45", "@turf/turf": "^5.1.6", "buefy": "^0.8.0", diff --git a/public/CustomVizarr.js b/public/CustomVizarr.js new file mode 100644 index 0000000..5f1a932 --- /dev/null +++ b/public/CustomVizarr.js @@ -0,0 +1,73 @@ +import __SNOWPACK_ENV__ from './vizarr_module/__snowpack__/env.js'; +import.meta.env = __SNOWPACK_ENV__; + +import React from './vizarr_module/web_modules/react.js'; +import {useRecoilState, useSetRecoilState } from './vizarr_module/web_modules/recoil.js'; +import {createSourceData} from './vizarr_module/_dist_/io.js'; + +import { layerIdsState, sourceInfoState, viewerViewState } from './vizarr_module/_dist_/state.js'; +import Vizarr from './vizarr_module/_dist_/vizarr.js'; + +import ReactDOM from "./vizarr_module/web_modules/react-dom.js"; +import {RecoilRoot} from "./vizarr_module/web_modules/recoil.js"; +import {ThemeProvider} from "./vizarr_module/web_modules/@material-ui/styles.js"; +import theme2 from "./vizarr_module/_dist_/theme.js"; + + +function Button({ onClick }) { + const style = { position: 'absolute', right: '30px' }; + return React.createElement('button', { onClick, style }, "It worked!"); +} + +let resolveVizarr; + +export function CustomVizarr() { + const setLayerIds = useSetRecoilState(layerIdsState); + const setSourceInfo = useSetRecoilState(sourceInfoState); + const [setViewState] = useRecoilState(viewerViewState); + + + // Copied from './vizarr_modules/_dist_/vizarr.js + async function addImage(config) { + // Generate ID unique to image (layer) + const id = Math.random().toString(36).slice(2); + // Config is same as ImJoy API + const sourceData = await createSourceData(config); + // Adds source info to state + setSourceInfo((prevSourceInfo) => { + if (!sourceData.name) { + sourceData.name = `image_${Object.keys(prevSourceInfo).length}`; + } + return {...prevSourceInfo, [id]: sourceData}; + }); + // Update active Layer IDs + setLayerIds((prevIds) => [...prevIds, id]); + } + + if(resolveVizarr){ + resolveVizarr({ + setViewState, + addImage + }) + resolveVizarr = null + } + return React.createElement('div', null, + React.createElement(Vizarr, null), + React.createElement(Button, { onClick }) + ) +} + +window.CreateVizarrViewer = (container)=>{ + return new Promise((resolve)=>{ + resolveVizarr = resolve + ReactDOM.render( + /* @__PURE__ */ React.createElement(ThemeProvider, { theme: theme2 }, + /* @__PURE__ */ React.createElement(RecoilRoot, null, + /* @__PURE__ */ React.createElement(CustomVizarr, null))), + container + ); + }) +} + +document.dispatchEvent(new CustomEvent('vizarr-loaded', { detail: window.VizarrViewer })) + diff --git a/public/index.html b/public/index.html index 7459b4a..ef52196 100644 --- a/public/index.html +++ b/public/index.html @@ -44,6 +44,7 @@ + <%= htmlWebpackPlugin.options.title %> diff --git a/src/components/ImageViewer.vue b/src/components/ImageViewer.vue index 979f831..de82eb0 100644 --- a/src/components/ImageViewer.vue +++ b/src/components/ImageViewer.vue @@ -524,10 +524,17 @@ export default { setMode: this.setMode }); } else { + // this.addLayer({ + // type: "itk-vtk", + // name: "example image", + // data: "https://images.proteinatlas.org/19661/221_G2_1_red_green.jpg" + // }); + this.addLayer({ - type: "itk-vtk", - name: "example image", - data: "https://images.proteinatlas.org/19661/221_G2_1_red_green.jpg" + type: "vizarr", + name: "vizarr image", + data: + "https://storage.googleapis.com/vitessce-demo-data/test-data/spraggins_ome.zarr" }); await this.addLayer({ diff --git a/src/components/layers/ItkVtkLayer.vue b/src/components/layers/ItkVtkLayer.vue index 5a340f8..46d2e87 100644 --- a/src/components/layers/ItkVtkLayer.vue +++ b/src/components/layers/ItkVtkLayer.vue @@ -245,7 +245,7 @@ export default { containerStyle: containerStyle }; - var itk_layer = new CanvasLayer(); + const itk_layer = new CanvasLayer(); let viewer, extent, is2D; if ( diff --git a/src/components/layers/VizarrLayer.vue b/src/components/layers/VizarrLayer.vue new file mode 100644 index 0000000..722ef0a --- /dev/null +++ b/src/components/layers/VizarrLayer.vue @@ -0,0 +1,176 @@ + + + + + + diff --git a/src/components/layers/index.js b/src/components/layers/index.js index 0470ff1..0a3074e 100644 --- a/src/components/layers/index.js +++ b/src/components/layers/index.js @@ -2,3 +2,4 @@ export { default as VectorLayer } from "./VectorLayer.vue"; export { default as ImageLayer } from "./ImageLayer.vue"; export { default as ItkVtkLayer } from "./ItkVtkLayer.vue"; export { default as RemoteLayer } from "./RemoteLayer.vue"; +export { default as VizarrLayer } from "./VizarrLayer.vue"; diff --git a/vue.config.js b/vue.config.js index abe132c..9f30974 100644 --- a/vue.config.js +++ b/vue.config.js @@ -15,6 +15,11 @@ module.exports = { from: path.join(__dirname, "./docs"), to: path.join(__dirname, "dist/docs"), toType: "dir" + }, + { + from: path.join(__dirname, "node_modules/@hms-dbmi/vizarr"), + to: path.join(__dirname, "dist/vizarr_module"), + toType: "dir" } ])] } From 7996be40bcd8924b48a81bad3d0c258b061b79f1 Mon Sep 17 00:00:00 2001 From: Wei Ouyang Date: Wed, 27 Jan 2021 21:19:31 +0100 Subject: [PATCH 2/4] temp --- public/CustomVizarr.js | 30 +++++++++++++++++++++++++-- src/components/ImageViewer.vue | 4 ++-- src/components/layers/VizarrLayer.vue | 24 ++++++++++++++------- 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/public/CustomVizarr.js b/public/CustomVizarr.js index 5f1a932..071d00d 100644 --- a/public/CustomVizarr.js +++ b/public/CustomVizarr.js @@ -2,7 +2,7 @@ import __SNOWPACK_ENV__ from './vizarr_module/__snowpack__/env.js'; import.meta.env = __SNOWPACK_ENV__; import React from './vizarr_module/web_modules/react.js'; -import {useRecoilState, useSetRecoilState } from './vizarr_module/web_modules/recoil.js'; +import {useRecoilState, useSetRecoilState, useRecoilValue} from './vizarr_module/web_modules/recoil.js'; import {createSourceData} from './vizarr_module/_dist_/io.js'; import { layerIdsState, sourceInfoState, viewerViewState } from './vizarr_module/_dist_/state.js'; @@ -24,7 +24,7 @@ let resolveVizarr; export function CustomVizarr() { const setLayerIds = useSetRecoilState(layerIdsState); const setSourceInfo = useSetRecoilState(sourceInfoState); - const [setViewState] = useRecoilState(viewerViewState); + const [viewState, setViewState] = useRecoilState(viewerViewState); // Copied from './vizarr_modules/_dist_/vizarr.js @@ -44,6 +44,32 @@ export function CustomVizarr() { setLayerIds((prevIds) => [...prevIds, id]); } + + + // Runs once on page Load + // useEffect(() => { + // const url = 'https://storage.googleapis.com/vitessce-demo-data/test-data/spraggins_ome.zarr'; + // const config = { + // source: url, // source could be a custom Zarr.js Store! + // }; + // addImage(config); + // }, []); + + const onClick = () => { + console.log('Resetting viewState'); + // setViewState({ target: [ 0, 0, 0 ], zoom: 0 }); + console.log('=====vizarr==>',viewState.target, viewState.zoom); + const map_veiw = window.map.getView(); + const zoom = map_veiw.getZoom(); + const center = map_veiw.getCenter(); + console.log("=====openlayers==>", center, zoom) + + console.log('====diff====>', viewState.target[0] - center[0], viewState.target[1]-center[1], viewState.zoom-zoom) + + }; + + + if(resolveVizarr){ resolveVizarr({ setViewState, diff --git a/src/components/ImageViewer.vue b/src/components/ImageViewer.vue index de82eb0..6306004 100644 --- a/src/components/ImageViewer.vue +++ b/src/components/ImageViewer.vue @@ -486,8 +486,8 @@ export default { new View({ projection: projection, center: getCenter(config.extent), - zoom: 1, - minZoom: -10 + zoom: 10, + minZoom: -20 }) ); }, diff --git a/src/components/layers/VizarrLayer.vue b/src/components/layers/VizarrLayer.vue index 722ef0a..309eb43 100644 --- a/src/components/layers/VizarrLayer.vue +++ b/src/components/layers/VizarrLayer.vue @@ -57,10 +57,14 @@ const CanvasLayer = /*@__PURE__*/ (function(Layer) { return "ready"; }; - CanvasLayer.prototype.render = function render() { + CanvasLayer.prototype.render = function render(frameState) { if (this.sync_callback) { - this.sync_callback(); + const center = frameState.viewState.center + const zoom = frameState.viewState.zoom + this.sync_callback(center, zoom); } + + this.viewerElement.style.opacity = this.getOpacity(); return this.viewerElement; //return the viewer element }; @@ -138,19 +142,25 @@ export default { setupLayer() { return new Promise(resolve => { - const vizarr_layer = new CanvasLayer(); + const vizarrLayer = new CanvasLayer(); if (window.CreateVizarrViewer) { - window.CreateVizarrViewer(vizarr_layer.viewerElement).then(viewer => { + window.CreateVizarrViewer(vizarrLayer.viewerElement).then(viewer => { this.viewer = viewer; - resolve(vizarr_layer); + vizarrLayer.sync_callback = (center, zoom)=>{ + viewer.setViewState({target: [center[0], center[1], 0], zoom}) + } + resolve(vizarrLayer); }); } else { window.document.addEventListener("vizarr-loaded", () => { window - .CreateVizarrViewer(vizarr_layer.viewerElement) + .CreateVizarrViewer(vizarrLayer.viewerElement) .then(viewer => { this.viewer = viewer; - resolve(vizarr_layer); + // vizarrLayer.sync_callback = (center, zoom)=>{ + // viewer.setViewState({target: [center[0], center[1], 0], zoom: zoom-10}) + // } + resolve(vizarrLayer); }); }); } From 583abd7a90f99d89fe68bc38a84a0e1ef432f121 Mon Sep 17 00:00:00 2001 From: Wei Ouyang Date: Tue, 2 Feb 2021 09:41:52 +0100 Subject: [PATCH 3/4] minor change --- public/CustomVizarr.js | 1 + src/components/layers/VizarrLayer.vue | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/public/CustomVizarr.js b/public/CustomVizarr.js index 071d00d..cecae72 100644 --- a/public/CustomVizarr.js +++ b/public/CustomVizarr.js @@ -63,6 +63,7 @@ export function CustomVizarr() { const zoom = map_veiw.getZoom(); const center = map_veiw.getCenter(); console.log("=====openlayers==>", center, zoom) + // setViewState({ target: [ center[0], center[1], 0 ], zoom: zoom*Math.sqrt(46.85276874422804) }); console.log('====diff====>', viewState.target[0] - center[0], viewState.target[1]-center[1], viewState.zoom-zoom) diff --git a/src/components/layers/VizarrLayer.vue b/src/components/layers/VizarrLayer.vue index 309eb43..898ae3d 100644 --- a/src/components/layers/VizarrLayer.vue +++ b/src/components/layers/VizarrLayer.vue @@ -147,7 +147,7 @@ export default { window.CreateVizarrViewer(vizarrLayer.viewerElement).then(viewer => { this.viewer = viewer; vizarrLayer.sync_callback = (center, zoom)=>{ - viewer.setViewState({target: [center[0], center[1], 0], zoom}) + // viewer.setViewState({ target: [ center[0], center[1], 0 ], zoom: zoom*Math.sqrt(46.85276874422804) }); } resolve(vizarrLayer); }); @@ -157,9 +157,9 @@ export default { .CreateVizarrViewer(vizarrLayer.viewerElement) .then(viewer => { this.viewer = viewer; - // vizarrLayer.sync_callback = (center, zoom)=>{ - // viewer.setViewState({target: [center[0], center[1], 0], zoom: zoom-10}) - // } + vizarrLayer.sync_callback = (center, zoom)=>{ + // viewer.setViewState({ target: [ center[0], center[1], 0 ], zoom: zoom*Math.sqrt(46.85276874422804) }); + } resolve(vizarrLayer); }); }); From c74630781405f03f7fb1d0c3e211a86fc31f832d Mon Sep 17 00:00:00 2001 From: Wei Ouyang Date: Fri, 5 Feb 2021 22:43:49 +0100 Subject: [PATCH 4/4] Fix error --- src/components/layers/VizarrLayer.vue | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/layers/VizarrLayer.vue b/src/components/layers/VizarrLayer.vue index 898ae3d..33e22c3 100644 --- a/src/components/layers/VizarrLayer.vue +++ b/src/components/layers/VizarrLayer.vue @@ -146,9 +146,9 @@ export default { if (window.CreateVizarrViewer) { window.CreateVizarrViewer(vizarrLayer.viewerElement).then(viewer => { this.viewer = viewer; - vizarrLayer.sync_callback = (center, zoom)=>{ - // viewer.setViewState({ target: [ center[0], center[1], 0 ], zoom: zoom*Math.sqrt(46.85276874422804) }); - } + // vizarrLayer.sync_callback = (center, zoom)=>{ + // // viewer.setViewState({ target: [ center[0], center[1], 0 ], zoom: zoom*Math.sqrt(46.85276874422804) }); + // } resolve(vizarrLayer); }); } else { @@ -157,9 +157,9 @@ export default { .CreateVizarrViewer(vizarrLayer.viewerElement) .then(viewer => { this.viewer = viewer; - vizarrLayer.sync_callback = (center, zoom)=>{ - // viewer.setViewState({ target: [ center[0], center[1], 0 ], zoom: zoom*Math.sqrt(46.85276874422804) }); - } + // vizarrLayer.sync_callback = (center, zoom)=>{ + // // viewer.setViewState({ target: [ center[0], center[1], 0 ], zoom: zoom*Math.sqrt(46.85276874422804) }); + // } resolve(vizarrLayer); }); });