diff --git a/package-lock.json b/package-lock.json index 99540cca..4116ac79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5353,6 +5353,16 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", @@ -9414,6 +9424,13 @@ "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", @@ -9841,9 +9858,9 @@ "dev": true }, "geojs": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/geojs/-/geojs-1.10.9.tgz", - "integrity": "sha512-L2GlXco5om1rlHevneVu95SwQKhWjnLW2wMHmcALY4PVUJlC0KZww6Jqs6OF4gjSnYicsIJcyJW2u20SCbyPAA==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/geojs/-/geojs-1.10.11.tgz", + "integrity": "sha512-Nze5FhAkhj4nLvPGIlcWdvuD94QccKzVLU/uw2CAJuHMCRke45LpNKsypgF4Tf9mi7OCcfYPgSlKRyFPPFceJg==", "dev": true, "requires": { "color-name": "^1.1.4", @@ -13846,9 +13863,9 @@ } }, "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz", + "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==", "dev": true }, "js-base64": { @@ -21192,9 +21209,9 @@ "dev": true }, "vtk.js": { - "version": "25.6.0", - "resolved": "https://registry.npmjs.org/vtk.js/-/vtk.js-25.6.0.tgz", - "integrity": "sha512-oPinvwVyQq0jlW9+yMWtJzvCWd/6IHWAqFew3yuJhAdwoZICDePQplldE8Gjx0i76UKFQy7mVPAtf2HN+BVbPw==", + "version": "25.8.6", + "resolved": "https://registry.npmjs.org/vtk.js/-/vtk.js-25.8.6.tgz", + "integrity": "sha512-GLJ7Gz1mV+n0AGCC+hlc4QfR2MvB91gJ1bi9o4sKfnnSKWALRPd9jWzbZGFdVW8nqA5oFNH2L4VdYFSy5luQnA==", "dev": true, "optional": true, "requires": { @@ -21763,6 +21780,7 @@ "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1" } }, @@ -22084,6 +22102,7 @@ "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1" } }, diff --git a/package.json b/package.json index 5311c9de..fcf32e97 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "eslint": "^6.7.2", "eslint-plugin-prettier": "^3.1.1", "eslint-plugin-vue": "^6.0.1", - "geojs": "^1.10.4", + "geojs": "^1.10.11", "node-sass": "^7.0.1", "prettier": "^1.19.1", "pug": "^3.0.1", diff --git a/src/components/AnnotationViewer.vue b/src/components/AnnotationViewer.vue index 23af5ca4..4787120c 100644 --- a/src/components/AnnotationViewer.vue +++ b/src/components/AnnotationViewer.vue @@ -79,6 +79,12 @@ export default class AnnotationViewer extends Vue { @Prop() readonly tileHeight: any; + @Prop() + readonly lowestLayer: any; + + @Prop() + readonly layerCount: any; + get displayWorkerPreview() { return this.propertiesStore.displayWorkerPreview; } @@ -92,12 +98,21 @@ export default class AnnotationViewer extends Vue { } get visibleChannels() { - return this.layers.reduce((channels: number[], layer: IDisplayLayer) => { - if (layer.visible && !channels.includes(layer.channel)) { - return [...channels, layer.channel]; - } - return [...channels]; - }, []); + return this.layers.reduce( + (channels: number[], layer: IDisplayLayer, idx: number) => { + if ( + idx < this.lowestLayer || + idx >= this.lowestLayer + this.layerCount + ) { + return [...channels]; + } + if (layer.visible && !channels.includes(layer.channel)) { + return [...channels, layer.channel]; + } + return [...channels]; + }, + [] + ); } get filteredAnnotations() { diff --git a/src/components/ImageViewer.vue b/src/components/ImageViewer.vue index 74f41fec..2d66092c 100644 --- a/src/components/ImageViewer.vue +++ b/src/components/ImageViewer.vue @@ -1,16 +1,36 @@