diff --git a/biome.json b/biome.json index 4294ab496..e4b850947 100644 --- a/biome.json +++ b/biome.json @@ -1,7 +1,7 @@ { "$schema": "https://biomejs.dev/schemas/1.7.3/schema.json", "organizeImports": { - "enabled": false + "enabled": true }, "linter": { "enabled": true, diff --git a/packages/extensions/src/additive-colormap-3d-extensions/index.js b/packages/extensions/src/additive-colormap-3d-extensions/index.js index ad2cc8952..7a6d53196 100644 --- a/packages/extensions/src/additive-colormap-3d-extensions/index.js +++ b/packages/extensions/src/additive-colormap-3d-extensions/index.js @@ -1,7 +1,7 @@ import AdditiveBlendExtension from './additive-blend-extension'; +import BaseExtension from './base-extension'; import MaximumIntensityProjectionExtension from './maximum-intensity-projection-extension'; import MinimumIntensityProjectionExtension from './minimum-intensity-projection-extension'; -import BaseExtension from './base-extension'; /** * This object contains the BaseExtension, which can be extended for other additive colormap-style (i.e viridis, jet etc.) rendering, as well diff --git a/packages/extensions/src/color-palette-3d-extensions/index.js b/packages/extensions/src/color-palette-3d-extensions/index.js index 62f79ee2c..bd61f1660 100644 --- a/packages/extensions/src/color-palette-3d-extensions/index.js +++ b/packages/extensions/src/color-palette-3d-extensions/index.js @@ -1,7 +1,7 @@ import AdditiveBlendExtension from './additive-blend-extension'; +import BaseExtension from './base-extension'; import MaximumIntensityProjectionExtension from './maximum-intensity-projection-extension'; import MinimumIntensityProjectionExtension from './minimum-intensity-projection-extension'; -import BaseExtension from './base-extension'; /** * This object contains the BaseExtension, which can be extended for other color palette-style rendering, as well diff --git a/packages/extensions/src/color-palette-extension/color-palette-extension.js b/packages/extensions/src/color-palette-extension/color-palette-extension.js index a3cfb5164..6b97f01d0 100644 --- a/packages/extensions/src/color-palette-extension/color-palette-extension.js +++ b/packages/extensions/src/color-palette-extension/color-palette-extension.js @@ -1,6 +1,6 @@ import { LayerExtension } from '@deck.gl/core'; -import colorPalette from './color-palette-module'; import { getDefaultPalette, padColors } from '../utils'; +import colorPalette from './color-palette-module'; const defaultProps = { colors: { type: 'array', value: null, compare: true }, diff --git a/packages/extensions/src/lens-extension/lens-extension.js b/packages/extensions/src/lens-extension/lens-extension.js index 83fab5c8b..8cbf50a05 100644 --- a/packages/extensions/src/lens-extension/lens-extension.js +++ b/packages/extensions/src/lens-extension/lens-extension.js @@ -1,6 +1,6 @@ import { LayerExtension } from '@deck.gl/core'; -import lens from './lens-module'; import { getDefaultPalette, padColors } from '../utils'; +import lens from './lens-module'; const defaultProps = { lensEnabled: { type: 'boolean', value: false, compare: true }, diff --git a/packages/layers/src/bitmap-layer.js b/packages/layers/src/bitmap-layer.js index 368ce7fa4..1441d0207 100644 --- a/packages/layers/src/bitmap-layer.js +++ b/packages/layers/src/bitmap-layer.js @@ -1,7 +1,7 @@ -import { BitmapLayer as BaseBitmapLayer } from '@deck.gl/layers'; import { COORDINATE_SYSTEM, CompositeLayer } from '@deck.gl/core'; -import { Model, Geometry } from '@luma.gl/core'; +import { BitmapLayer as BaseBitmapLayer } from '@deck.gl/layers'; import GL from '@luma.gl/constants'; +import { Geometry, Model } from '@luma.gl/core'; const PHOTOMETRIC_INTERPRETATIONS = { WhiteIsZero: 0, diff --git a/packages/layers/src/image-layer.js b/packages/layers/src/image-layer.js index fa3693e12..20611920a 100644 --- a/packages/layers/src/image-layer.js +++ b/packages/layers/src/image-layer.js @@ -1,10 +1,10 @@ -import { CompositeLayer, COORDINATE_SYSTEM } from '@deck.gl/core'; +import { COORDINATE_SYSTEM, CompositeLayer } from '@deck.gl/core'; import GL from '@luma.gl/constants'; -import XRLayer from './xr-layer/xr-layer'; -import BitmapLayer from './bitmap-layer'; -import { isInterleaved, SIGNAL_ABORTED } from '@vivjs/loaders'; import { ColorPaletteExtension } from '@vivjs/extensions'; +import { SIGNAL_ABORTED, isInterleaved } from '@vivjs/loaders'; +import BitmapLayer from './bitmap-layer'; +import XRLayer from './xr-layer/xr-layer'; const defaultProps = { pickable: { type: 'boolean', value: true, compare: true }, diff --git a/packages/layers/src/multiscale-image-layer/multiscale-image-layer-base.js b/packages/layers/src/multiscale-image-layer/multiscale-image-layer-base.js index e7001f200..63e4ba267 100644 --- a/packages/layers/src/multiscale-image-layer/multiscale-image-layer-base.js +++ b/packages/layers/src/multiscale-image-layer/multiscale-image-layer-base.js @@ -1,5 +1,5 @@ -import { TileLayer } from '@deck.gl/geo-layers'; import { COORDINATE_SYSTEM } from '@deck.gl/core'; +import { TileLayer } from '@deck.gl/geo-layers'; import { renderSubLayers } from './utils'; const defaultProps = { diff --git a/packages/layers/src/multiscale-image-layer/multiscale-image-layer.js b/packages/layers/src/multiscale-image-layer/multiscale-image-layer.js index 4e3f70f97..ae23bd056 100644 --- a/packages/layers/src/multiscale-image-layer/multiscale-image-layer.js +++ b/packages/layers/src/multiscale-image-layer/multiscale-image-layer.js @@ -1,11 +1,11 @@ import { CompositeLayer } from '@deck.gl/core'; -import { Matrix4 } from '@math.gl/core'; import GL from '@luma.gl/constants'; +import { Matrix4 } from '@math.gl/core'; -import MultiscaleImageLayerBase from './multiscale-image-layer-base'; -import ImageLayer from '../image-layer'; -import { getImageSize, isInterleaved, SIGNAL_ABORTED } from '@vivjs/loaders'; import { ColorPaletteExtension } from '@vivjs/extensions'; +import { SIGNAL_ABORTED, getImageSize, isInterleaved } from '@vivjs/loaders'; +import ImageLayer from '../image-layer'; +import MultiscaleImageLayerBase from './multiscale-image-layer-base'; const defaultProps = { pickable: { type: 'boolean', value: true, compare: true }, diff --git a/packages/layers/src/multiscale-image-layer/utils.js b/packages/layers/src/multiscale-image-layer/utils.js index 879daf94d..e32231526 100644 --- a/packages/layers/src/multiscale-image-layer/utils.js +++ b/packages/layers/src/multiscale-image-layer/utils.js @@ -1,8 +1,8 @@ import GL from '@luma.gl/constants'; import { getImageSize, isInterleaved } from '@vivjs/loaders'; -import XRLayer from '../xr-layer/xr-layer'; import BitmapLayer from '../bitmap-layer'; +import XRLayer from '../xr-layer/xr-layer'; export function range(len) { return [...Array(len).keys()]; diff --git a/packages/layers/src/overview-layer.js b/packages/layers/src/overview-layer.js index cf2392a3d..44b086cf5 100644 --- a/packages/layers/src/overview-layer.js +++ b/packages/layers/src/overview-layer.js @@ -1,8 +1,8 @@ -import { CompositeLayer, COORDINATE_SYSTEM } from '@deck.gl/core'; +import { COORDINATE_SYSTEM, CompositeLayer } from '@deck.gl/core'; import { PolygonLayer } from '@deck.gl/layers'; -import { getImageSize } from '@vivjs/loaders'; -import { ColorPaletteExtension } from '@vivjs/extensions'; import { Matrix4 } from '@math.gl/core'; +import { ColorPaletteExtension } from '@vivjs/extensions'; +import { getImageSize } from '@vivjs/loaders'; import ImageLayer from './image-layer'; diff --git a/packages/layers/src/scale-bar-layer.js b/packages/layers/src/scale-bar-layer.js index eb5d52c9a..a9ce46b1f 100644 --- a/packages/layers/src/scale-bar-layer.js +++ b/packages/layers/src/scale-bar-layer.js @@ -1,6 +1,6 @@ -import { CompositeLayer, COORDINATE_SYSTEM } from '@deck.gl/core'; +import { COORDINATE_SYSTEM, CompositeLayer } from '@deck.gl/core'; import { LineLayer, TextLayer } from '@deck.gl/layers'; -import { range, makeBoundingBox, snapValue, sizeToMeters } from './utils'; +import { makeBoundingBox, range, sizeToMeters, snapValue } from './utils'; import { DEFAULT_FONT_FAMILY } from '@vivjs/constants'; diff --git a/packages/layers/src/volume-layer/volume-layer.js b/packages/layers/src/volume-layer/volume-layer.js index 30bab5884..2654ab8ec 100644 --- a/packages/layers/src/volume-layer/volume-layer.js +++ b/packages/layers/src/volume-layer/volume-layer.js @@ -1,12 +1,12 @@ -import { CompositeLayer, COORDINATE_SYSTEM } from '@deck.gl/core'; +import { COORDINATE_SYSTEM, CompositeLayer } from '@deck.gl/core'; import GL from '@luma.gl/constants'; import { isWebGL2 } from '@luma.gl/core'; -import { ColorPalette3DExtensions } from '@vivjs/extensions'; import { Matrix4 } from '@math.gl/core'; +import { ColorPalette3DExtensions } from '@vivjs/extensions'; -import XR3DLayer from '../xr-3d-layer/xr-3d-layer'; import { getPhysicalSizeScalingMatrix } from '../utils'; -import { getVolume, getTextLayer } from './utils'; +import XR3DLayer from '../xr-3d-layer/xr-3d-layer'; +import { getTextLayer, getVolume } from './utils'; const defaultProps = { pickable: false, diff --git a/packages/layers/src/xr-3d-layer/xr-3d-layer.js b/packages/layers/src/xr-3d-layer/xr-3d-layer.js index 29e719d39..1fd69d5dc 100644 --- a/packages/layers/src/xr-3d-layer/xr-3d-layer.js +++ b/packages/layers/src/xr-3d-layer/xr-3d-layer.js @@ -1,3 +1,4 @@ +import { COORDINATE_SYSTEM, Layer } from '@deck.gl/core'; /* This is largely an adaptation of Will Usher's excellent blog post/code: https://github.com/Twinklebear/webgl-volume-raycaster Without his app, this would have been exponentially more difficult to do, so we thank him dearly. @@ -26,17 +27,16 @@ https://github.com/visgl/luma.gl/issues/1415 More information about that is detailed in the comments there. */ import GL from '@luma.gl/constants'; -import { COORDINATE_SYSTEM, Layer } from '@deck.gl/core'; -import { Model, Geometry, Texture3D } from '@luma.gl/core'; +import { Geometry, Model, Texture3D } from '@luma.gl/core'; import { ProgramManager } from '@luma.gl/engine'; import { Matrix4 } from '@math.gl/core'; import { Plane } from '@math.gl/culling'; -import vs from './xr-3d-layer-vertex.glsl'; import fs from './xr-3d-layer-fragment.glsl'; +import vs from './xr-3d-layer-vertex.glsl'; -import { padContrastLimits, padWithDefault, getDtypeValues } from '../utils'; import { ColorPalette3DExtensions } from '@vivjs/extensions'; +import { getDtypeValues, padContrastLimits, padWithDefault } from '../utils'; const channelsModule = { name: 'channel-intensity-module', diff --git a/packages/layers/src/xr-layer/utils.js b/packages/layers/src/xr-layer/utils.js index 5d8e36dec..c0dd4f7cb 100644 --- a/packages/layers/src/xr-layer/utils.js +++ b/packages/layers/src/xr-layer/utils.js @@ -1,6 +1,6 @@ import GL from '@luma.gl/constants'; import { isWebGL2 } from '@luma.gl/core'; -import { hasFeature, FEATURES } from '@luma.gl/webgl'; +import { FEATURES, hasFeature } from '@luma.gl/webgl'; import { getDtypeValues } from '../utils'; import fs from './xr-layer-fragment.glsl'; diff --git a/packages/layers/src/xr-layer/xr-layer.js b/packages/layers/src/xr-layer/xr-layer.js index 81a253550..5d89ae89c 100644 --- a/packages/layers/src/xr-layer/xr-layer.js +++ b/packages/layers/src/xr-layer/xr-layer.js @@ -1,11 +1,11 @@ +import { COORDINATE_SYSTEM, Layer, picking, project32 } from '@deck.gl/core'; // A lot of this codes inherits paradigms form DeckGL that // we live in place for now, hence some of the not-destructuring import GL from '@luma.gl/constants'; -import { COORDINATE_SYSTEM, Layer, project32, picking } from '@deck.gl/core'; -import { Model, Geometry, Texture2D } from '@luma.gl/core'; +import { Geometry, Model, Texture2D } from '@luma.gl/core'; import { ProgramManager } from '@luma.gl/engine'; -import channels from './shader-modules/channel-intensity'; import { padContrastLimits } from '../utils'; +import channels from './shader-modules/channel-intensity'; import { getRenderingAttrs } from './utils'; const defaultProps = { diff --git a/packages/layers/tests/image-layer.spec.js b/packages/layers/tests/image-layer.spec.js index 29fbc69a2..749c2ed99 100644 --- a/packages/layers/tests/image-layer.spec.js +++ b/packages/layers/tests/image-layer.spec.js @@ -1,6 +1,6 @@ -import test from 'tape-catch'; -import { generateLayerTests, testLayer } from '@deck.gl/test-utils'; import { OrthographicView } from '@deck.gl/core'; +import { generateLayerTests, testLayer } from '@deck.gl/test-utils'; +import test from 'tape-catch'; import ImageLayer from '../src/image-layer'; test('ImageLayer', t => { diff --git a/packages/layers/tests/multiscale-image-layer-base.spec.js b/packages/layers/tests/multiscale-image-layer-base.spec.js index b1a27d0f4..99516b2c1 100644 --- a/packages/layers/tests/multiscale-image-layer-base.spec.js +++ b/packages/layers/tests/multiscale-image-layer-base.spec.js @@ -1,8 +1,8 @@ -import test from 'tape-catch'; -import { generateLayerTests, testLayerAsync } from '@deck.gl/test-utils'; import { OrthographicView } from '@deck.gl/core'; -import MultiscaleImageLayerBase from '../src/multiscale-image-layer/multiscale-image-layer-base'; +import { generateLayerTests, testLayerAsync } from '@deck.gl/test-utils'; +import test from 'tape-catch'; import BitmapLayer from '../src/bitmap-layer'; +import MultiscaleImageLayerBase from '../src/multiscale-image-layer/multiscale-image-layer-base'; test('MultiscaleImageLayerBase', async t => { const view = new OrthographicView({ diff --git a/packages/layers/tests/scale-bar-layer.spec.js b/packages/layers/tests/scale-bar-layer.spec.js index a7790a446..b2159d5af 100644 --- a/packages/layers/tests/scale-bar-layer.spec.js +++ b/packages/layers/tests/scale-bar-layer.spec.js @@ -1,6 +1,6 @@ -import test from 'tape-catch'; -import { generateLayerTests, testLayer } from '@deck.gl/test-utils'; import { OrthographicView } from '@deck.gl/core'; +import { generateLayerTests, testLayer } from '@deck.gl/test-utils'; +import test from 'tape-catch'; import ScaleBarLayer from '../src/scale-bar-layer'; test('ScaleBarLayer', t => { diff --git a/packages/layers/tests/utils.spec.js b/packages/layers/tests/utils.spec.js index d96492698..c793d1e23 100644 --- a/packages/layers/tests/utils.spec.js +++ b/packages/layers/tests/utils.spec.js @@ -1,18 +1,18 @@ +import GL from '@luma.gl/constants'; +import { createTestContext } from '@luma.gl/test-utils'; +import { FEATURES } from '@luma.gl/webgl'; import test from 'tape-catch'; import { range } from '../src/multiscale-image-layer/utils'; import { - padWithDefault, padContrastLimits, - snapValue, - sizeToMeters + padWithDefault, + sizeToMeters, + snapValue } from '../src/utils'; -import { createTestContext } from '@luma.gl/test-utils'; -import GL from '@luma.gl/constants'; -import { FEATURES } from '@luma.gl/webgl'; -import { getRenderingAttrs } from '../src/xr-layer/utils'; -import { DTYPE_VALUES } from '../../constants'; import { hasFeature } from '@luma.gl/webgl'; +import { DTYPE_VALUES } from '../../constants'; +import { getRenderingAttrs } from '../src/xr-layer/utils'; const dtypes = Object.keys(DTYPE_VALUES); const interpolations = [GL.NEAREST, GL.LINEAR]; diff --git a/packages/layers/tests/volume-layer.spec.js b/packages/layers/tests/volume-layer.spec.js index 11e33518a..75c24f780 100644 --- a/packages/layers/tests/volume-layer.spec.js +++ b/packages/layers/tests/volume-layer.spec.js @@ -1,6 +1,6 @@ -import test from 'tape-catch'; -import { generateLayerTests, testLayer } from '@deck.gl/test-utils'; import { OrbitView } from '@deck.gl/core'; +import { generateLayerTests, testLayer } from '@deck.gl/test-utils'; +import test from 'tape-catch'; import VolumeLayer from '../src/volume-layer/volume-layer'; test('VolumeLayer', t => { diff --git a/packages/layers/tests/xr-layer.spec.js b/packages/layers/tests/xr-layer.spec.js index 32a98aebf..2f9fcf55f 100644 --- a/packages/layers/tests/xr-layer.spec.js +++ b/packages/layers/tests/xr-layer.spec.js @@ -1,6 +1,6 @@ -import test from 'tape-catch'; -import { generateLayerTests, testLayer } from '@deck.gl/test-utils'; import { OrthographicView } from '@deck.gl/core'; +import { generateLayerTests, testLayer } from '@deck.gl/test-utils'; +import test from 'tape-catch'; import XRLayer from '../src/xr-layer/xr-layer'; test('XRLayer', t => { diff --git a/packages/loaders/src/omexml.ts b/packages/loaders/src/omexml.ts index 687748656..38e5f0cba 100644 --- a/packages/loaders/src/omexml.ts +++ b/packages/loaders/src/omexml.ts @@ -1,5 +1,5 @@ -import { intToRgba, parseXML } from './utils'; import * as z from 'zod'; +import { intToRgba, parseXML } from './utils'; export type OmeXml = ReturnType; diff --git a/packages/loaders/src/tiff/index.ts b/packages/loaders/src/tiff/index.ts index 1551fec3d..a6c80c642 100644 --- a/packages/loaders/src/tiff/index.ts +++ b/packages/loaders/src/tiff/index.ts @@ -1,19 +1,19 @@ -import { fromBlob, addDecoder } from 'geotiff'; +import { addDecoder, fromBlob } from 'geotiff'; import type { Pool } from 'geotiff'; import LZWDecoder from './lib/lzw-decoder'; import { - parseFilename, + type OmeTiffDims, type OmeTiffSelection, createGeoTiff, - type OmeTiffDims + parseFilename } from './lib/utils'; -import { loadSingleFileOmeTiff } from './singlefile-ome-tiff'; +import type { OmeXml } from '../omexml'; +import { type MultiTiffImage, load as loadMulti } from './multi-tiff'; import { loadMultifileOmeTiff } from './multifile-ome-tiff'; -import { load as loadMulti, type MultiTiffImage } from './multi-tiff'; import type TiffPixelSource from './pixel-source'; -import type { OmeXml } from '../omexml'; +import { loadSingleFileOmeTiff } from './singlefile-ome-tiff'; addDecoder(5, () => LZWDecoder); diff --git a/packages/loaders/src/tiff/lib/decoder.worker.ts b/packages/loaders/src/tiff/lib/decoder.worker.ts index 9361ff2d7..7d9368987 100644 --- a/packages/loaders/src/tiff/lib/decoder.worker.ts +++ b/packages/loaders/src/tiff/lib/decoder.worker.ts @@ -1,4 +1,4 @@ -import { getDecoder, addDecoder } from 'geotiff'; +import { addDecoder, getDecoder } from 'geotiff'; import LZWDecoder from './lzw-decoder'; addDecoder(5, () => LZWDecoder); diff --git a/packages/loaders/src/tiff/lib/indexers.ts b/packages/loaders/src/tiff/lib/indexers.ts index 2aaab4c35..e64144376 100644 --- a/packages/loaders/src/tiff/lib/indexers.ts +++ b/packages/loaders/src/tiff/lib/indexers.ts @@ -1,6 +1,6 @@ -import { GeoTIFFImage, type GeoTIFF } from 'geotiff'; -import type { OmeTiffSelection } from './utils'; +import { type GeoTIFF, GeoTIFFImage } from 'geotiff'; import type { MultiTiffImage } from '../multi-tiff'; +import type { OmeTiffSelection } from './utils'; type ImageFileDirectory = Awaited>; diff --git a/packages/loaders/src/tiff/lib/lzw-decoder.ts b/packages/loaders/src/tiff/lib/lzw-decoder.ts index 01c6ca0e9..4d121ab95 100644 --- a/packages/loaders/src/tiff/lib/lzw-decoder.ts +++ b/packages/loaders/src/tiff/lib/lzw-decoder.ts @@ -1,5 +1,5 @@ -import { decompress } from 'lzw-tiff-decoder'; import { BaseDecoder } from 'geotiff'; +import { decompress } from 'lzw-tiff-decoder'; interface FileDirectory { TileWidth?: number; diff --git a/packages/loaders/src/tiff/lib/utils.ts b/packages/loaders/src/tiff/lib/utils.ts index ae563505d..4d1acd83d 100644 --- a/packages/loaders/src/tiff/lib/utils.ts +++ b/packages/loaders/src/tiff/lib/utils.ts @@ -1,9 +1,9 @@ -import { fromFile, fromUrl, fromBlob } from 'geotiff'; -import { getLabels, DTYPE_LOOKUP, prevPowerOf2, assert } from '../../utils'; -import { createOffsetsProxy } from './proxies'; +import { fromBlob, fromFile, fromUrl } from 'geotiff'; import type { GeoTIFF, GeoTIFFImage } from 'geotiff'; -import type { OmeXml, PhysicalUnit, DimensionOrder } from '../../omexml'; +import type { DimensionOrder, OmeXml, PhysicalUnit } from '../../omexml'; +import { assert, DTYPE_LOOKUP, getLabels, prevPowerOf2 } from '../../utils'; import type { MultiTiffImage } from '../multi-tiff'; +import { createOffsetsProxy } from './proxies'; // TODO: Remove the fancy label stuff export type OmeTiffDims = diff --git a/packages/loaders/src/tiff/multi-tiff.ts b/packages/loaders/src/tiff/multi-tiff.ts index 0bd4f7a63..d65e5f115 100644 --- a/packages/loaders/src/tiff/multi-tiff.ts +++ b/packages/loaders/src/tiff/multi-tiff.ts @@ -1,14 +1,14 @@ import type { GeoTIFFImage } from 'geotiff'; -import TiffPixelSource from './pixel-source'; +import type Pool from './lib/Pool'; +import { getMultiTiffIndexer } from './lib/indexers'; import { - getMultiTiffMetadata, + type OmeTiffSelection, getMultiTiffMeta, - getTiffTileSize, - type OmeTiffSelection + getMultiTiffMetadata, + getTiffTileSize } from './lib/utils'; -import type Pool from './lib/Pool'; -import { getMultiTiffIndexer } from './lib/indexers'; +import TiffPixelSource from './pixel-source'; export interface MultiTiffImage { selection: OmeTiffSelection; diff --git a/packages/loaders/src/tiff/multifile-ome-tiff.ts b/packages/loaders/src/tiff/multifile-ome-tiff.ts index 72c91f5b1..93134f4ad 100644 --- a/packages/loaders/src/tiff/multifile-ome-tiff.ts +++ b/packages/loaders/src/tiff/multifile-ome-tiff.ts @@ -1,19 +1,19 @@ import type { GeoTIFF } from 'geotiff'; +import { type OmeXml, fromString } from '../omexml'; +import { assert } from '../utils'; +import type Pool from './lib/Pool'; +import { createOmeImageIndexerFromResolver } from './lib/indexers'; import { + type OmeTiffDims, + type OmeTiffSelection, createGeoTiff, - parsePixelDataType, + extractAxesFromPixels, extractPhysicalSizesfromPixels, + getShapeForBinaryDownsampleLevel, getTiffTileSize, - type OmeTiffSelection, - extractAxesFromPixels, - type OmeTiffDims, - getShapeForBinaryDownsampleLevel + parsePixelDataType } from './lib/utils'; -import { fromString, type OmeXml } from '../omexml'; import TiffPixelSource from './pixel-source'; -import { assert } from '../utils'; -import type Pool from './lib/Pool'; -import { createOmeImageIndexerFromResolver } from './lib/indexers'; type TiffDataTags = NonNullable; type TIffDataItem = TiffDataTags[number]; diff --git a/packages/loaders/src/tiff/pixel-source.ts b/packages/loaders/src/tiff/pixel-source.ts index 1bed99d75..552d07681 100644 --- a/packages/loaders/src/tiff/pixel-source.ts +++ b/packages/loaders/src/tiff/pixel-source.ts @@ -1,18 +1,18 @@ import type { GeoTIFFImage } from 'geotiff'; import type { TypedArray } from 'zarr'; -import { getImageSize, isInterleaved, SIGNAL_ABORTED } from '../utils'; +import { SIGNAL_ABORTED, getImageSize, isInterleaved } from '../utils'; -import type Pool from './lib/Pool'; import type { + Labels, + PixelData, PixelSource, - PixelSourceSelection, PixelSourceMeta, - SupportedDtype, - Labels, + PixelSourceSelection, RasterSelection, - TileSelection, - PixelData + SupportedDtype, + TileSelection } from '@vivjs/types'; +import type Pool from './lib/Pool'; type ReadRastersOptions = NonNullable< Parameters[0] diff --git a/packages/loaders/src/tiff/singlefile-ome-tiff.ts b/packages/loaders/src/tiff/singlefile-ome-tiff.ts index c5699b0e7..93eadad2e 100644 --- a/packages/loaders/src/tiff/singlefile-ome-tiff.ts +++ b/packages/loaders/src/tiff/singlefile-ome-tiff.ts @@ -1,20 +1,20 @@ import { fromString } from '../omexml'; -import TiffPixelSource from './pixel-source'; +import type GeoTIFF from 'geotiff'; +import type { DimensionOrder, OmeXml } from '../omexml'; +import type Pool from './lib/Pool'; import { createOmeImageIndexerFromResolver } from './lib/indexers'; import { + type OmeTiffDims, + type OmeTiffSelection, createGeoTiff, - parsePixelDataType, - extractPhysicalSizesfromPixels, extractAxesFromPixels, + extractPhysicalSizesfromPixels, getShapeForBinaryDownsampleLevel, getTiffTileSize, - type OmeTiffDims, - type OmeTiffSelection + parsePixelDataType } from './lib/utils'; -import type Pool from './lib/Pool'; -import type { DimensionOrder, OmeXml } from '../omexml'; -import type GeoTIFF from 'geotiff'; +import TiffPixelSource from './pixel-source'; function resolveMetadata(omexml: OmeXml, SubIFDs: number[] | undefined) { if (SubIFDs) { diff --git a/packages/loaders/src/utils.ts b/packages/loaders/src/utils.ts index 66edc3ca3..467170ec4 100644 --- a/packages/loaders/src/utils.ts +++ b/packages/loaders/src/utils.ts @@ -1,7 +1,7 @@ +import type { Labels, PixelSource } from '@vivjs/types'; import quickselect from 'quickselect'; -import type { OmeXml } from './omexml'; import type { TypedArray } from 'zarr'; -import type { Labels, PixelSource } from '@vivjs/types'; +import type { OmeXml } from './omexml'; export const DTYPE_LOOKUP = { uint8: 'Uint8', diff --git a/packages/loaders/src/zarr/bioformats-zarr.ts b/packages/loaders/src/zarr/bioformats-zarr.ts index a325b1201..180fd9af8 100644 --- a/packages/loaders/src/zarr/bioformats-zarr.ts +++ b/packages/loaders/src/zarr/bioformats-zarr.ts @@ -3,8 +3,8 @@ import type { ZarrArray } from 'zarr'; import { fromString } from '../omexml'; import { guessBioformatsLabels, - loadMultiscales, - guessTileSize + guessTileSize, + loadMultiscales } from './lib/utils'; import ZarrPixelSource from './pixel-source'; diff --git a/packages/loaders/src/zarr/lib/utils.ts b/packages/loaders/src/zarr/lib/utils.ts index 1b3aabdae..1a0a59b6b 100644 --- a/packages/loaders/src/zarr/lib/utils.ts +++ b/packages/loaders/src/zarr/lib/utils.ts @@ -4,7 +4,7 @@ import type { OmeXml } from '../../omexml'; import { getLabels, isInterleaved, prevPowerOf2 } from '../../utils'; import type { Labels } from '@vivjs/types'; -import type { RootAttrs, Axis } from '../ome-zarr'; +import type { Axis, RootAttrs } from '../ome-zarr'; /* * Returns true if data shape is that expected for OME-Zarr. diff --git a/packages/loaders/src/zarr/ome-zarr.ts b/packages/loaders/src/zarr/ome-zarr.ts index 66c3bf5b3..03a771f79 100644 --- a/packages/loaders/src/zarr/ome-zarr.ts +++ b/packages/loaders/src/zarr/ome-zarr.ts @@ -1,5 +1,5 @@ import type { ZarrArray } from 'zarr'; -import { loadMultiscales, guessTileSize } from './lib/utils'; +import { guessTileSize, loadMultiscales } from './lib/utils'; import ZarrPixelSource from './pixel-source'; interface Channel { diff --git a/packages/loaders/tests/bioformats-zarr.spec.js b/packages/loaders/tests/bioformats-zarr.spec.js index 912314641..78baea121 100644 --- a/packages/loaders/tests/bioformats-zarr.spec.js +++ b/packages/loaders/tests/bioformats-zarr.spec.js @@ -1,6 +1,6 @@ import { test } from 'tape'; -import { FileSystemStore } from './common'; import { load } from '../src/zarr/bioformats-zarr'; +import { FileSystemStore } from './common'; import * as fs from 'node:fs'; import * as path from 'node:path'; diff --git a/packages/loaders/tests/multi-tiff.spec.js b/packages/loaders/tests/multi-tiff.spec.js index 210339bdc..67718ac0a 100644 --- a/packages/loaders/tests/multi-tiff.spec.js +++ b/packages/loaders/tests/multi-tiff.spec.js @@ -1,7 +1,7 @@ -import test from 'tape'; import { fromFile } from 'geotiff'; -import { load } from '../src/tiff/multi-tiff'; +import test from 'tape'; import { loadMultiTiff } from '../src/tiff'; +import { load } from '../src/tiff/multi-tiff'; import * as path from 'node:path'; import * as url from 'node:url'; diff --git a/packages/loaders/tests/ome-tiff.spec.js b/packages/loaders/tests/ome-tiff.spec.js index 1b10ee1f6..8597015de 100644 --- a/packages/loaders/tests/ome-tiff.spec.js +++ b/packages/loaders/tests/ome-tiff.spec.js @@ -1,6 +1,6 @@ import test from 'tape'; -import { loadSingleFileOmeTiff } from '../src/tiff/singlefile-ome-tiff'; import { loadOmeTiff } from '../src/tiff'; +import { loadSingleFileOmeTiff } from '../src/tiff/singlefile-ome-tiff'; import * as path from 'node:path'; import * as url from 'node:url'; diff --git a/packages/loaders/tests/tiff-lib.spec.js b/packages/loaders/tests/tiff-lib.spec.js index 281a330f7..3298bb9d2 100644 --- a/packages/loaders/tests/tiff-lib.spec.js +++ b/packages/loaders/tests/tiff-lib.spec.js @@ -1,5 +1,5 @@ -import { test } from 'tape'; import { fromFile } from 'geotiff'; +import { test } from 'tape'; import { createOffsetsProxy } from '../src/tiff/lib/proxies'; diff --git a/packages/loaders/tests/utils.spec.js b/packages/loaders/tests/utils.spec.js index 919469cc8..ba8763faf 100644 --- a/packages/loaders/tests/utils.spec.js +++ b/packages/loaders/tests/utils.spec.js @@ -1,6 +1,6 @@ import test from 'tape'; -import { intToRgba, getChannelStats, isInterleaved } from '../src/utils'; +import { getChannelStats, intToRgba, isInterleaved } from '../src/utils'; test('getChannelStats: All zeros', t => { t.plan(7); diff --git a/packages/loaders/tests/zarr-lib.spec.js b/packages/loaders/tests/zarr-lib.spec.js index 690b54688..4e729ee51 100644 --- a/packages/loaders/tests/zarr-lib.spec.js +++ b/packages/loaders/tests/zarr-lib.spec.js @@ -1,7 +1,7 @@ import { test } from 'tape'; -import { FileSystemStore } from './common'; -import { loadMultiscales } from '../src/zarr/lib/utils'; import { getIndexer } from '../src/zarr/lib/indexer'; +import { loadMultiscales } from '../src/zarr/lib/utils'; +import { FileSystemStore } from './common'; import * as path from 'node:path'; import * as url from 'node:url'; diff --git a/packages/types/src/index.d.ts b/packages/types/src/index.d.ts index 83b549386..a8b46f34e 100644 --- a/packages/types/src/index.d.ts +++ b/packages/types/src/index.d.ts @@ -1,4 +1,4 @@ -import type { DTYPE_VALUES, COLORMAPS } from '@vivjs/constants'; +import type { COLORMAPS, DTYPE_VALUES } from '@vivjs/constants'; import type { Matrix4 } from 'math.gl'; export type SupportedDtype = keyof typeof DTYPE_VALUES; diff --git a/packages/viewers/src/PictureInPictureViewer.jsx b/packages/viewers/src/PictureInPictureViewer.jsx index 87f5b36e3..998bde4a0 100644 --- a/packages/viewers/src/PictureInPictureViewer.jsx +++ b/packages/viewers/src/PictureInPictureViewer.jsx @@ -1,12 +1,12 @@ -import * as React from 'react'; +import { ColorPaletteExtension } from '@vivjs/extensions'; import { + DETAIL_VIEW_ID, DetailView, + OVERVIEW_VIEW_ID, OverviewView, - getDefaultInitialViewState, - DETAIL_VIEW_ID, - OVERVIEW_VIEW_ID + getDefaultInitialViewState } from '@vivjs/views'; -import { ColorPaletteExtension } from '@vivjs/extensions'; +import * as React from 'react'; import VivViewer from './VivViewer'; /** diff --git a/packages/viewers/src/SideBySideViewer.jsx b/packages/viewers/src/SideBySideViewer.jsx index 08b72731b..b9e833f43 100644 --- a/packages/viewers/src/SideBySideViewer.jsx +++ b/packages/viewers/src/SideBySideViewer.jsx @@ -1,6 +1,6 @@ -import * as React from 'react'; -import { SideBySideView, getDefaultInitialViewState } from '@vivjs/views'; import { ColorPaletteExtension } from '@vivjs/extensions'; +import { SideBySideView, getDefaultInitialViewState } from '@vivjs/views'; +import * as React from 'react'; import VivViewer from './VivViewer'; /** diff --git a/packages/viewers/src/VivViewer.jsx b/packages/viewers/src/VivViewer.jsx index 7129a2205..c7c8bf7c5 100644 --- a/packages/viewers/src/VivViewer.jsx +++ b/packages/viewers/src/VivViewer.jsx @@ -1,8 +1,8 @@ -import * as React from 'react'; import DeckGL from '@deck.gl/react'; import { getVivId } from '@vivjs/views'; // No need to use the ES6 or React variants. import equal from 'fast-deep-equal'; +import * as React from 'react'; const areViewStatesEqual = (viewState, otherViewState) => { return ( diff --git a/packages/viewers/src/VolumeViewer.jsx b/packages/viewers/src/VolumeViewer.jsx index 7aa06b3f6..0749592dc 100644 --- a/packages/viewers/src/VolumeViewer.jsx +++ b/packages/viewers/src/VolumeViewer.jsx @@ -1,6 +1,6 @@ -import * as React from 'react'; -import { VolumeView, getDefaultInitialViewState } from '@vivjs/views'; import { ColorPalette3DExtensions } from '@vivjs/extensions'; +import { VolumeView, getDefaultInitialViewState } from '@vivjs/views'; +import * as React from 'react'; import VivViewer from './VivViewer'; diff --git a/packages/views/src/DetailView.js b/packages/views/src/DetailView.js index e50d79d1a..54a2fc7eb 100644 --- a/packages/views/src/DetailView.js +++ b/packages/views/src/DetailView.js @@ -1,7 +1,7 @@ import { ScaleBarLayer } from '@vivjs/layers'; +import { OVERVIEW_VIEW_ID } from './OverviewView'; import VivView from './VivView'; import { getImageLayer, getVivId } from './utils'; -import { OVERVIEW_VIEW_ID } from './OverviewView'; export const DETAIL_VIEW_ID = 'detail'; diff --git a/packages/views/src/SideBySideView.js b/packages/views/src/SideBySideView.js index 2d54dbcf8..0712cf8d8 100644 --- a/packages/views/src/SideBySideView.js +++ b/packages/views/src/SideBySideView.js @@ -1,5 +1,5 @@ -import { PolygonLayer } from '@deck.gl/layers'; import { COORDINATE_SYSTEM } from '@deck.gl/core'; +import { PolygonLayer } from '@deck.gl/layers'; import { ScaleBarLayer, makeBoundingBox } from '@vivjs/layers'; import VivView from './VivView'; diff --git a/packages/views/src/VolumeView.js b/packages/views/src/VolumeView.js index 4d21255b4..5da8c0c90 100644 --- a/packages/views/src/VolumeView.js +++ b/packages/views/src/VolumeView.js @@ -1,7 +1,7 @@ import { OrbitView } from '@deck.gl/core'; import { VolumeLayer } from '@vivjs/layers'; -import { getVivId } from './utils'; import VivView from './VivView'; +import { getVivId } from './utils'; /** * This class generates a VolumeLayer and a view for use in the VivViewer as volumetric rendering. diff --git a/packages/views/src/utils.js b/packages/views/src/utils.js index 58f7b67b8..d292b79fc 100644 --- a/packages/views/src/utils.js +++ b/packages/views/src/utils.js @@ -2,8 +2,8 @@ import { Matrix4 } from '@math.gl/core'; import { getImageSize } from '@vivjs/loaders'; import { - MultiscaleImageLayer, ImageLayer, + MultiscaleImageLayer, getPhysicalSizeScalingMatrix } from '@vivjs/layers'; diff --git a/packages/views/tests/DetailView.spec.js b/packages/views/tests/DetailView.spec.js index cec1f6999..ec0080455 100644 --- a/packages/views/tests/DetailView.spec.js +++ b/packages/views/tests/DetailView.spec.js @@ -1,7 +1,7 @@ -import test from 'tape-catch'; -import { DetailView, DETAIL_VIEW_ID } from '../src'; -import { generateViewTests, defaultArguments } from './VivView.spec'; import { MultiscaleImageLayer, ScaleBarLayer } from '@vivjs/layers'; +import test from 'tape-catch'; +import { DETAIL_VIEW_ID, DetailView } from '../src'; +import { defaultArguments, generateViewTests } from './VivView.spec'; const id = DETAIL_VIEW_ID; const detailViewArguments = { ...defaultArguments }; diff --git a/packages/views/tests/OverviewView.spec.js b/packages/views/tests/OverviewView.spec.js index d459ad64f..85a446bf1 100644 --- a/packages/views/tests/OverviewView.spec.js +++ b/packages/views/tests/OverviewView.spec.js @@ -1,11 +1,11 @@ +import { OverviewLayer } from '@vivjs/layers'; import test from 'tape-catch'; -import { OverviewView, DETAIL_VIEW_ID, OVERVIEW_VIEW_ID } from '../src'; +import { DETAIL_VIEW_ID, OVERVIEW_VIEW_ID, OverviewView } from '../src'; import { - generateViewTests, defaultArguments, - defaultViewState + defaultViewState, + generateViewTests } from './VivView.spec'; -import { OverviewLayer } from '@vivjs/layers'; const id = OVERVIEW_VIEW_ID; const loader = [ diff --git a/packages/views/tests/SideBySideView.spec.js b/packages/views/tests/SideBySideView.spec.js index 04aec8c29..ebf9c23ff 100644 --- a/packages/views/tests/SideBySideView.spec.js +++ b/packages/views/tests/SideBySideView.spec.js @@ -1,9 +1,9 @@ -import test from 'tape-catch'; import { PolygonLayer } from '@deck.gl/layers'; +import test from 'tape-catch'; +import { ImageLayer, MultiscaleImageLayer, ScaleBarLayer } from '@vivjs/layers'; import { SideBySideView } from '../src'; -import { generateViewTests, defaultArguments } from './VivView.spec'; -import { MultiscaleImageLayer, ImageLayer, ScaleBarLayer } from '@vivjs/layers'; +import { defaultArguments, generateViewTests } from './VivView.spec'; generateViewTests(SideBySideView, defaultArguments); diff --git a/scripts/version.mjs b/scripts/version.mjs index 21fc9e39d..59ffaac65 100644 --- a/scripts/version.mjs +++ b/scripts/version.mjs @@ -1,7 +1,7 @@ +import * as childProcess from 'node:child_process'; import * as fs from 'node:fs'; import * as path from 'node:path'; import * as url from 'node:url'; -import * as childProcess from 'node:child_process'; import matter from 'gray-matter'; diff --git a/sites/avivator/src/Avivator.jsx b/sites/avivator/src/Avivator.jsx index e019b3acd..dfb54a664 100644 --- a/sites/avivator/src/Avivator.jsx +++ b/sites/avivator/src/Avivator.jsx @@ -1,12 +1,12 @@ import React, { useEffect } from 'react'; -import { useViewerStore } from './state'; -import { useImage } from './hooks'; -import SnackBars from './components/Snackbars'; -import Viewer from './components/Viewer'; import Controller from './components/Controller'; import DropzoneWrapper from './components/DropzoneWrapper'; import Footer from './components/Footer'; +import SnackBars from './components/Snackbars'; +import Viewer from './components/Viewer'; +import { useImage } from './hooks'; +import { useViewerStore } from './state'; import './index.css'; diff --git a/sites/avivator/src/components/Controller/Controller.jsx b/sites/avivator/src/components/Controller/Controller.jsx index e7f0b9a0f..ec353e42f 100644 --- a/sites/avivator/src/components/Controller/Controller.jsx +++ b/sites/avivator/src/components/Controller/Controller.jsx @@ -1,34 +1,34 @@ -import React, { useState } from 'react'; import CircularProgress from '@material-ui/core/CircularProgress'; +import Divider from '@material-ui/core/Divider'; import Grid from '@material-ui/core/Grid'; -import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; -import Divider from '@material-ui/core/Divider'; +import Tabs from '@material-ui/core/Tabs'; +import React, { useState } from 'react'; import shallow from 'zustand/shallow'; +import { GLOBAL_SLIDER_DIMENSION_FIELDS } from '../../constants'; +import { + useChannelsStore, + useImageSettingsStore, + useLoader, + useMetadata, + useViewerStore +} from '../../state'; +import { getSingleSelectionStats, guessRgb, useWindowSize } from '../../utils'; +import AddChannel from './components/AddChannel'; +import CameraOptions from './components/CameraOptions'; import ChannelController from './components/ChannelController'; -import Menu from './components/Menu'; import ColormapSelect from './components/ColormapSelect'; import GlobalSelectionSlider from './components/GlobalSelectionSlider'; import LensSelect from './components/LensSelect'; -import VolumeButton from './components/VolumeButton'; +import Menu from './components/Menu'; +import PanLockToggle from './components/PanLockToggle'; +import PictureInPictureToggle from './components/PictureInPictureToggle'; import RenderingModeSelect from './components/RenderingModeSelect'; +import SideBySideToggle from './components/SideBySideToggle'; import Slicer from './components/Slicer'; -import AddChannel from './components/AddChannel'; -import PanLockToggle from './components/PanLockToggle'; +import VolumeButton from './components/VolumeButton'; import ZoomLockToggle from './components/ZoomLockToggle'; -import SideBySideToggle from './components/SideBySideToggle'; -import PictureInPictureToggle from './components/PictureInPictureToggle'; -import CameraOptions from './components/CameraOptions'; -import { - useChannelsStore, - useViewerStore, - useImageSettingsStore, - useLoader, - useMetadata -} from '../../state'; -import { guessRgb, useWindowSize, getSingleSelectionStats } from '../../utils'; -import { GLOBAL_SLIDER_DIMENSION_FIELDS } from '../../constants'; function TabPanel(props) { const { children, value, index, ...other } = props; diff --git a/sites/avivator/src/components/Controller/components/AddChannel.jsx b/sites/avivator/src/components/Controller/components/AddChannel.jsx index c49632360..899e6f9db 100644 --- a/sites/avivator/src/components/Controller/components/AddChannel.jsx +++ b/sites/avivator/src/components/Controller/components/AddChannel.jsx @@ -1,15 +1,15 @@ -import React, { useCallback } from 'react'; import Button from '@material-ui/core/Button'; import AddIcon from '@material-ui/icons/Add'; +import React, { useCallback } from 'react'; import shallow from 'zustand/shallow'; -import { MAX_CHANNELS, COLOR_PALLETE } from '../../../constants'; +import { COLOR_PALLETE, MAX_CHANNELS } from '../../../constants'; import { useChannelsStore, - useViewerStore, useImageSettingsStore, useLoader, - useMetadata + useMetadata, + useViewerStore } from '../../../state'; import { getSingleSelectionStats } from '../../../utils'; diff --git a/sites/avivator/src/components/Controller/components/CameraOptions.jsx b/sites/avivator/src/components/Controller/components/CameraOptions.jsx index 3d282ce67..b95c62ec1 100644 --- a/sites/avivator/src/components/Controller/components/CameraOptions.jsx +++ b/sites/avivator/src/components/Controller/components/CameraOptions.jsx @@ -1,16 +1,16 @@ -import React from 'react'; -import Checkbox from '@material-ui/core/Checkbox'; import Button from '@material-ui/core/Button'; +import Checkbox from '@material-ui/core/Checkbox'; import Grid from '@material-ui/core/Grid'; import Typography from '@material-ui/core/Typography'; -import { makeStyles, createStyles } from '@material-ui/core/styles'; +import { createStyles, makeStyles } from '@material-ui/core/styles'; +import React from 'react'; import shallow from 'zustand/shallow'; import { getDefaultInitialViewState } from '@hms-dbmi/viv'; import { useImageSettingsStore, - useViewerStore, - useLoader + useLoader, + useViewerStore } from '../../../state'; import { useWindowSize } from '../../../utils'; diff --git a/sites/avivator/src/components/Controller/components/ChannelController.jsx b/sites/avivator/src/components/Controller/components/ChannelController.jsx index c01e2b3e3..45cd956ab 100644 --- a/sites/avivator/src/components/Controller/components/ChannelController.jsx +++ b/sites/avivator/src/components/Controller/components/ChannelController.jsx @@ -1,23 +1,23 @@ import * as React from 'react'; +import { DTYPE_VALUES } from '@hms-dbmi/viv'; import Checkbox from '@material-ui/core/Checkbox'; +import CircularProgress from '@material-ui/core/CircularProgress'; import Grid from '@material-ui/core/Grid'; -import Slider from '@material-ui/core/Slider'; +import IconButton from '@material-ui/core/IconButton'; import Select from '@material-ui/core/Select'; -import CircularProgress from '@material-ui/core/CircularProgress'; +import Slider from '@material-ui/core/Slider'; import HighlightOffIcon from '@material-ui/icons/HighlightOff'; -import IconButton from '@material-ui/core/IconButton'; import shallow from 'zustand/shallow'; -import { DTYPE_VALUES } from '@hms-dbmi/viv'; -import ChannelOptions from './ChannelOptions'; import { FILL_PIXEL_VALUE } from '../../../constants'; import { - useLoader, useImageSettingsStore, + useLoader, useViewerStore } from '../../../state'; import { truncateDecimalNumber } from '../../../utils'; +import ChannelOptions from './ChannelOptions'; export const COLORMAP_SLIDER_CHECKBOX_COLOR = [220, 220, 220]; diff --git a/sites/avivator/src/components/Controller/components/ChannelOptions.jsx b/sites/avivator/src/components/Controller/components/ChannelOptions.jsx index 1fbb7fb6e..48f73ccfd 100644 --- a/sites/avivator/src/components/Controller/components/ChannelOptions.jsx +++ b/sites/avivator/src/components/Controller/components/ChannelOptions.jsx @@ -1,12 +1,12 @@ -import React, { useReducer, useRef } from 'react'; -import IconButton from '@material-ui/core/IconButton'; -import MoreVertIcon from '@material-ui/icons/MoreVert'; import ClickAwayListener from '@material-ui/core/ClickAwayListener'; -import Paper from '@material-ui/core/Paper'; -import Popper from '@material-ui/core/Popper'; +import IconButton from '@material-ui/core/IconButton'; import MenuItem from '@material-ui/core/MenuItem'; import MenuList from '@material-ui/core/MenuList'; +import Paper from '@material-ui/core/Paper'; +import Popper from '@material-ui/core/Popper'; import { makeStyles } from '@material-ui/core/styles'; +import MoreVertIcon from '@material-ui/icons/MoreVert'; +import React, { useReducer, useRef } from 'react'; import ColorPalette from './ColorPalette'; diff --git a/sites/avivator/src/components/Controller/components/ColorPalette.jsx b/sites/avivator/src/components/Controller/components/ColorPalette.jsx index f9789c28b..9e34ce4f3 100644 --- a/sites/avivator/src/components/Controller/components/ColorPalette.jsx +++ b/sites/avivator/src/components/Controller/components/ColorPalette.jsx @@ -1,6 +1,6 @@ -import React from 'react'; import IconButton from '@material-ui/core/IconButton'; import LensIcon from '@material-ui/icons/Lens'; +import React from 'react'; import { makeStyles } from '@material-ui/core/styles'; diff --git a/sites/avivator/src/components/Controller/components/ColormapSelect.jsx b/sites/avivator/src/components/Controller/components/ColormapSelect.jsx index 1e177d31b..b539d0c17 100644 --- a/sites/avivator/src/components/Controller/components/ColormapSelect.jsx +++ b/sites/avivator/src/components/Controller/components/ColormapSelect.jsx @@ -1,7 +1,7 @@ -import React from 'react'; import FormControl from '@material-ui/core/FormControl'; import InputLabel from '@material-ui/core/InputLabel'; import Select from '@material-ui/core/Select'; +import React from 'react'; import { COLORMAP_OPTIONS } from '../../../constants'; import { useImageSettingsStore, useViewerStore } from '../../../state'; diff --git a/sites/avivator/src/components/Controller/components/DropzoneButton.jsx b/sites/avivator/src/components/Controller/components/DropzoneButton.jsx index 1bfe0d49b..d31c41a62 100644 --- a/sites/avivator/src/components/Controller/components/DropzoneButton.jsx +++ b/sites/avivator/src/components/Controller/components/DropzoneButton.jsx @@ -1,5 +1,5 @@ -import React from 'react'; import Button from '@material-ui/core/Button'; +import React from 'react'; import { useDropzone } from '../../../hooks'; export default function DropzoneButton() { diff --git a/sites/avivator/src/components/Controller/components/GlobalSelectionSlider.jsx b/sites/avivator/src/components/Controller/components/GlobalSelectionSlider.jsx index d530a60ee..9134cc01e 100644 --- a/sites/avivator/src/components/Controller/components/GlobalSelectionSlider.jsx +++ b/sites/avivator/src/components/Controller/components/GlobalSelectionSlider.jsx @@ -1,17 +1,17 @@ -import React from 'react'; -import { unstable_batchedUpdates } from 'react-dom'; import Grid from '@material-ui/core/Grid'; import Slider from '@material-ui/core/Slider'; import debounce from 'lodash/debounce'; +import React from 'react'; +import { unstable_batchedUpdates } from 'react-dom'; import shallow from 'zustand/shallow'; -import { range, getMultiSelectionStats } from '../../../utils'; import { useChannelsStore, - useViewerStore, useImageSettingsStore, - useLoader + useLoader, + useViewerStore } from '../../../state'; +import { getMultiSelectionStats, range } from '../../../utils'; export default function GlobalSelectionSlider(props) { const { size, label } = props; diff --git a/sites/avivator/src/components/Controller/components/Menu.jsx b/sites/avivator/src/components/Controller/components/Menu.jsx index 4faa4c60c..ffa6f18cf 100644 --- a/sites/avivator/src/components/Controller/components/Menu.jsx +++ b/sites/avivator/src/components/Controller/components/Menu.jsx @@ -1,24 +1,24 @@ -import React, { useState, useReducer, useRef, useEffect } from 'react'; -import Grid from '@material-ui/core/Grid'; +import { Select } from '@material-ui/core'; import Box from '@material-ui/core/Box'; -import Paper from '@material-ui/core/Paper'; +import Button from '@material-ui/core/Button'; +import ClickAwayListener from '@material-ui/core/ClickAwayListener'; import Divider from '@material-ui/core/Divider'; +import Grid from '@material-ui/core/Grid'; +import Link from '@material-ui/core/Link'; +import Paper from '@material-ui/core/Paper'; +import Popper from '@material-ui/core/Popper'; import TextField from '@material-ui/core/TextField'; -import InfoIcon from '@material-ui/icons/Info'; -import ClickAwayListener from '@material-ui/core/ClickAwayListener'; import Typography from '@material-ui/core/Typography'; -import Popper from '@material-ui/core/Popper'; -import Link from '@material-ui/core/Link'; -import Button from '@material-ui/core/Button'; -import SettingsIcon from '@material-ui/icons/Settings'; import { makeStyles } from '@material-ui/core/styles'; +import InfoIcon from '@material-ui/icons/Info'; +import SettingsIcon from '@material-ui/icons/Settings'; +import React, { useState, useReducer, useRef, useEffect } from 'react'; import shallow from 'zustand/shallow'; -import { Select } from '@material-ui/core'; -import MenuTitle from './MenuTitle'; -import DropzoneButton from './DropzoneButton'; -import { isMobileOrTablet, getNameFromUrl } from '../../../utils'; import { useChannelsStore, useViewerStore } from '../../../state'; +import { getNameFromUrl, isMobileOrTablet } from '../../../utils'; +import DropzoneButton from './DropzoneButton'; +import MenuTitle from './MenuTitle'; const useStyles = makeStyles(theme => ({ root: { diff --git a/sites/avivator/src/components/Controller/components/MenuTitle.jsx b/sites/avivator/src/components/Controller/components/MenuTitle.jsx index 43e74b912..eb97118a8 100644 --- a/sites/avivator/src/components/Controller/components/MenuTitle.jsx +++ b/sites/avivator/src/components/Controller/components/MenuTitle.jsx @@ -1,9 +1,9 @@ -import React from 'react'; -import Typography from '@material-ui/core/Typography'; -import IconButton from '@material-ui/core/IconButton'; -import GitHubIcon from '@material-ui/icons/GitHub'; import Grid from '@material-ui/core/Grid'; +import IconButton from '@material-ui/core/IconButton'; +import Typography from '@material-ui/core/Typography'; import CloseIcon from '@material-ui/icons/Close'; +import GitHubIcon from '@material-ui/icons/GitHub'; +import React from 'react'; import { useViewerStore } from '../../../state'; const hideButtonStyle = { diff --git a/sites/avivator/src/components/Controller/components/PanLockToggle.jsx b/sites/avivator/src/components/Controller/components/PanLockToggle.jsx index 2427d24ee..00a7132a4 100644 --- a/sites/avivator/src/components/Controller/components/PanLockToggle.jsx +++ b/sites/avivator/src/components/Controller/components/PanLockToggle.jsx @@ -1,5 +1,5 @@ -import React from 'react'; import Button from '@material-ui/core/Button'; +import React from 'react'; import shallow from 'zustand/shallow'; import { useImageSettingsStore, useViewerStore } from '../../../state'; diff --git a/sites/avivator/src/components/Controller/components/PictureInPictureToggle.jsx b/sites/avivator/src/components/Controller/components/PictureInPictureToggle.jsx index a257b9eeb..838a743a5 100644 --- a/sites/avivator/src/components/Controller/components/PictureInPictureToggle.jsx +++ b/sites/avivator/src/components/Controller/components/PictureInPictureToggle.jsx @@ -1,5 +1,5 @@ -import React from 'react'; import Button from '@material-ui/core/Button'; +import React from 'react'; import shallow from 'zustand/shallow'; import { useImageSettingsStore, useViewerStore } from '../../../state'; diff --git a/sites/avivator/src/components/Controller/components/RenderingModeSelect.jsx b/sites/avivator/src/components/Controller/components/RenderingModeSelect.jsx index c0acecf63..6886fd996 100644 --- a/sites/avivator/src/components/Controller/components/RenderingModeSelect.jsx +++ b/sites/avivator/src/components/Controller/components/RenderingModeSelect.jsx @@ -1,7 +1,7 @@ -import React from 'react'; import FormControl from '@material-ui/core/FormControl'; -import Select from '@material-ui/core/Select'; import InputLabel from '@material-ui/core/InputLabel'; +import Select from '@material-ui/core/Select'; +import React from 'react'; import shallow from 'zustand/shallow'; import { RENDERING_MODES } from '@hms-dbmi/viv'; diff --git a/sites/avivator/src/components/Controller/components/SideBySideToggle.jsx b/sites/avivator/src/components/Controller/components/SideBySideToggle.jsx index 0d77fc655..6657d53a7 100644 --- a/sites/avivator/src/components/Controller/components/SideBySideToggle.jsx +++ b/sites/avivator/src/components/Controller/components/SideBySideToggle.jsx @@ -1,5 +1,5 @@ -import React from 'react'; import Button from '@material-ui/core/Button'; +import React from 'react'; import shallow from 'zustand/shallow'; import { useImageSettingsStore, useViewerStore } from '../../../state'; diff --git a/sites/avivator/src/components/Controller/components/Slicer.jsx b/sites/avivator/src/components/Controller/components/Slicer.jsx index bd8f1264d..525209085 100644 --- a/sites/avivator/src/components/Controller/components/Slicer.jsx +++ b/sites/avivator/src/components/Controller/components/Slicer.jsx @@ -1,14 +1,14 @@ -import React from 'react'; +import { createStyles, makeStyles } from '@material-ui/core'; import Grid from '@material-ui/core/Grid'; import Slider from '@material-ui/core/Slider'; import Typography from '@material-ui/core/Typography'; -import { makeStyles, createStyles } from '@material-ui/core'; +import React from 'react'; import shallow from 'zustand/shallow'; import { useImageSettingsStore, - useViewerStore, - useLoader + useLoader, + useViewerStore } from '../../../state'; import { getBoundingCube, truncateDecimalNumber } from '../../../utils'; diff --git a/sites/avivator/src/components/Controller/components/VolumeButton.jsx b/sites/avivator/src/components/Controller/components/VolumeButton.jsx index f6ad2c6bc..f8fbf1551 100644 --- a/sites/avivator/src/components/Controller/components/VolumeButton.jsx +++ b/sites/avivator/src/components/Controller/components/VolumeButton.jsx @@ -2,22 +2,22 @@ import React, { useRef, useReducer } from 'react'; import Button from '@material-ui/core/Button'; import ClickAwayListener from '@material-ui/core/ClickAwayListener'; -import Paper from '@material-ui/core/Paper'; -import Popper from '@material-ui/core/Popper'; import MenuItem from '@material-ui/core/MenuItem'; import MenuList from '@material-ui/core/MenuList'; +import Paper from '@material-ui/core/Paper'; +import Popper from '@material-ui/core/Popper'; import { makeStyles } from '@material-ui/core/styles'; import shallow from 'zustand/shallow'; import { - useImageSettingsStore, - useViewerStore, useChannelsStore, - useLoader + useImageSettingsStore, + useLoader, + useViewerStore } from '../../../state'; -import { range, getMultiSelectionStats, getBoundingCube } from '../../../utils'; +import { getBoundingCube, getMultiSelectionStats, range } from '../../../utils'; function formatBytes(bytes, decimals = 2) { if (bytes === 0) return '0 Bytes'; diff --git a/sites/avivator/src/components/Controller/components/ZoomLockToggle.jsx b/sites/avivator/src/components/Controller/components/ZoomLockToggle.jsx index 05b78e367..5cd09d5d8 100644 --- a/sites/avivator/src/components/Controller/components/ZoomLockToggle.jsx +++ b/sites/avivator/src/components/Controller/components/ZoomLockToggle.jsx @@ -1,5 +1,5 @@ -import React from 'react'; import Button from '@material-ui/core/Button'; +import React from 'react'; import shallow from 'zustand/shallow'; import { useImageSettingsStore, useViewerStore } from '../../../state'; diff --git a/sites/avivator/src/components/Footer.jsx b/sites/avivator/src/components/Footer.jsx index 0462d17e5..edb68527e 100644 --- a/sites/avivator/src/components/Footer.jsx +++ b/sites/avivator/src/components/Footer.jsx @@ -1,7 +1,7 @@ -import React from 'react'; -import Typography from '@material-ui/core/Typography'; import Box from '@material-ui/core/Box'; import Paper from '@material-ui/core/Paper'; +import Typography from '@material-ui/core/Typography'; +import React from 'react'; import shallow from 'zustand/shallow'; import { makeStyles } from '@material-ui/core/styles'; diff --git a/sites/avivator/src/components/RenderingModeSelect.jsx b/sites/avivator/src/components/RenderingModeSelect.jsx index c4f9c09e2..1b38ddb75 100644 --- a/sites/avivator/src/components/RenderingModeSelect.jsx +++ b/sites/avivator/src/components/RenderingModeSelect.jsx @@ -1,7 +1,7 @@ -import React from 'react'; import FormControl from '@material-ui/core/FormControl'; -import Select from '@material-ui/core/Select'; import InputLabel from '@material-ui/core/InputLabel'; +import Select from '@material-ui/core/Select'; +import React from 'react'; import { RENDERING_MODES } from '@hms-dbmi/viv'; diff --git a/sites/avivator/src/components/Snackbars/Snackbars.jsx b/sites/avivator/src/components/Snackbars/Snackbars.jsx index 783d3a4ff..591f8c222 100644 --- a/sites/avivator/src/components/Snackbars/Snackbars.jsx +++ b/sites/avivator/src/components/Snackbars/Snackbars.jsx @@ -1,15 +1,15 @@ -import React from 'react'; import Snackbar from '@material-ui/core/Snackbar'; import Alert from '@material-ui/lab/Alert'; +import React from 'react'; import shallow from 'zustand/shallow'; +import { useViewerStore } from '../../state'; import { LoaderError, - OffsetsWarning, NoImageUrlInfo, + OffsetsWarning, VolumeRenderingWarning } from './SnackbarAlerts'; -import { useViewerStore } from '../../state'; const SnackBars = () => { const [ diff --git a/sites/avivator/src/components/Viewer.jsx b/sites/avivator/src/components/Viewer.jsx index 9c8b420dd..ac14ed815 100644 --- a/sites/avivator/src/components/Viewer.jsx +++ b/sites/avivator/src/components/Viewer.jsx @@ -1,21 +1,21 @@ -import shallow from 'zustand/shallow'; -import React from 'react'; -import debounce from 'lodash/debounce'; import { - SideBySideViewer, - PictureInPictureViewer, - VolumeViewer, AdditiveColormapExtension, - LensExtension + LensExtension, + PictureInPictureViewer, + SideBySideViewer, + VolumeViewer } from '@hms-dbmi/viv'; +import debounce from 'lodash/debounce'; +import React from 'react'; +import shallow from 'zustand/shallow'; +import { DEFAULT_OVERVIEW } from '../constants'; import { - useImageSettingsStore, - useViewerStore, useChannelsStore, - useLoader + useImageSettingsStore, + useLoader, + useViewerStore } from '../state'; -import { useWindowSize, get3DExtension } from '../utils'; -import { DEFAULT_OVERVIEW } from '../constants'; +import { get3DExtension, useWindowSize } from '../utils'; const Viewer = () => { const [useLinkedView, use3d, viewState] = useViewerStore( diff --git a/sites/avivator/src/hooks.js b/sites/avivator/src/hooks.js index c1cbdd1c3..c2962dbe6 100644 --- a/sites/avivator/src/hooks.js +++ b/sites/avivator/src/hooks.js @@ -1,8 +1,9 @@ import { useEffect } from 'react'; +import { unstable_batchedUpdates } from 'react-dom'; import { useDropzone as useReactDropzone } from 'react-dropzone'; import shallow from 'zustand/shallow'; -import { unstable_batchedUpdates } from 'react-dom'; +import { COLOR_PALLETE, FILL_PIXEL_VALUE } from './constants'; import { useChannelsStore, useImageSettingsStore, @@ -18,7 +19,6 @@ import { guessRgb, isInterleaved } from './utils'; -import { COLOR_PALLETE, FILL_PIXEL_VALUE } from './constants'; export const useImage = source => { const [use3d, toggleUse3d, toggleIsOffsetsSnackbarOn] = useViewerStore( diff --git a/sites/avivator/src/index.jsx b/sites/avivator/src/index.jsx index b78d6700b..a19fc3124 100644 --- a/sites/avivator/src/index.jsx +++ b/sites/avivator/src/index.jsx @@ -1,10 +1,10 @@ +import { grey } from '@material-ui/core/colors'; +import { ThemeProvider, createTheme } from '@material-ui/core/styles'; import React from 'react'; import ReactDOM from 'react-dom/client'; -import { createTheme, ThemeProvider } from '@material-ui/core/styles'; -import { grey } from '@material-ui/core/colors'; -import sources from './source-info'; import Avivator from './Avivator'; +import sources from './source-info'; import { getNameFromUrl } from './utils'; const theme = createTheme({ diff --git a/sites/avivator/src/utils.js b/sites/avivator/src/utils.js index b31d37a90..fb7811272 100644 --- a/sites/avivator/src/utils.js +++ b/sites/avivator/src/utils.js @@ -1,16 +1,16 @@ -import { useState, useEffect } from 'react'; -import { fromBlob, fromUrl } from 'geotiff'; import { Matrix4 } from '@math.gl/core'; +import { fromBlob, fromUrl } from 'geotiff'; +import { useEffect, useState } from 'react'; import { - loadOmeTiff, + AdditiveColormap3DExtensions, + ColorPalette3DExtensions, + RENDERING_MODES, + getChannelStats, loadBioformatsZarr, - loadOmeZarr, loadMultiTiff, - getChannelStats, - RENDERING_MODES, - ColorPalette3DExtensions, - AdditiveColormap3DExtensions + loadOmeTiff, + loadOmeZarr } from '@hms-dbmi/viv'; import { GLOBAL_SLIDER_DIMENSION_FIELDS } from './constants'; diff --git a/sites/avivator/vite.config.js b/sites/avivator/vite.config.js index 8a19aa9b3..6ff59fc19 100644 --- a/sites/avivator/vite.config.js +++ b/sites/avivator/vite.config.js @@ -1,5 +1,5 @@ -import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; export default defineConfig({ plugins: [react()]