@jax-data-science/sci-image-visualizer 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +109 -0
  2. package/esm2022/index.mjs +2 -1
  3. package/esm2022/lib/contracts/display-types.mjs +1 -1
  4. package/esm2022/lib/contracts/plot-type-contribution.contract.mjs +66 -0
  5. package/esm2022/lib/contracts/plot-type.mjs +6 -1
  6. package/esm2022/lib/contracts/toolbar-tool.contract.mjs +46 -4
  7. package/esm2022/lib/contracts/visualizer.contract.mjs +1 -1
  8. package/esm2022/lib/implementations/napari-js/napari-visualizer.service.mjs +2 -3
  9. package/esm2022/lib/implementations/osd/openseadragon-visualizer.service.mjs +70 -7
  10. package/esm2022/lib/implementations/osd/osd-coordinate-transform.mjs +8 -1
  11. package/esm2022/lib/implementations/plotly/plotly.service.mjs +2 -3
  12. package/esm2022/lib/plot-mode/plot-mode-controller.mjs +329 -0
  13. package/esm2022/lib/routing-visualizer.service.mjs +6 -1
  14. package/esm2022/lib/toolbar/brush/brush-tool.service.mjs +44 -3
  15. package/esm2022/lib/toolbar/toolbar.component.mjs +50 -21
  16. package/esm2022/lib/visualizer.component.mjs +479 -43
  17. package/fesm2022/jax-data-science-sci-image-visualizer.mjs +1092 -75
  18. package/fesm2022/jax-data-science-sci-image-visualizer.mjs.map +1 -1
  19. package/index.d.ts +1 -0
  20. package/lib/contracts/display-types.d.ts +10 -0
  21. package/lib/contracts/plot-type-contribution.contract.d.ts +199 -0
  22. package/lib/contracts/plot-type.d.ts +10 -0
  23. package/lib/contracts/toolbar-tool.contract.d.ts +84 -5
  24. package/lib/contracts/visualizer.contract.d.ts +5 -0
  25. package/lib/implementations/osd/openseadragon-visualizer.service.d.ts +21 -0
  26. package/lib/implementations/osd/osd-coordinate-transform.d.ts +6 -0
  27. package/lib/plot-mode/plot-mode-controller.d.ts +130 -0
  28. package/lib/routing-visualizer.service.d.ts +4 -0
  29. package/lib/toolbar/brush/brush-tool.service.d.ts +21 -0
  30. package/lib/toolbar/toolbar.component.d.ts +28 -8
  31. package/lib/visualizer.component.d.ts +121 -8
  32. package/package.json +1 -1
@@ -16,10 +16,17 @@ export class OsdCoordinateTransform {
16
16
  const rect = this.viewer.canvas.getBoundingClientRect();
17
17
  return elementToImage(this.viewer, clientX - rect.left, clientY - rect.top);
18
18
  }
19
+ /** Data (image-pixel) coordinates -> client (mouse event) pixel. The inverse
20
+ * of {@link clientToData}. */
21
+ dataToClient(x, y) {
22
+ const rect = this.viewer.canvas.getBoundingClientRect();
23
+ const p = imageToElement(this.viewer, x, y);
24
+ return { x: p.x + rect.left, y: p.y + rect.top };
25
+ }
19
26
  dataLengthToScreen(dataLength) {
20
27
  const a = imageToElement(this.viewer, 0, 0);
21
28
  const b = imageToElement(this.viewer, dataLength, 0);
22
29
  return Math.abs(b.x - a.x);
23
30
  }
24
31
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NkLWNvb3JkaW5hdGUtdHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9pbXBsZW1lbnRhdGlvbnMvb3NkL29zZC1jb29yZGluYXRlLXRyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBb0IsTUFBVztRQUFYLFdBQU0sR0FBTixNQUFNLENBQUs7SUFBRyxDQUFDO0lBRW5DLE9BQU87UUFDTCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFlLEVBQUUsT0FBZTtRQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hELE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBa0I7UUFDbkMsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvb3JkaW5hdGVUcmFuc2Zvcm0gfSBmcm9tICcuLi8uLi9jb250cmFjdHMvY29vcmRpbmF0ZS10cmFuc2Zvcm0uY29udHJhY3QnO1xuaW1wb3J0IHsgZWxlbWVudFRvSW1hZ2UsIGltYWdlVG9FbGVtZW50IH0gZnJvbSAnLi9vc2QtY29vcmRzJztcblxuLyoqXG4gKiBPcGVuU2VhZHJhZ29uIGltcGxlbWVudGF0aW9uIG9mIHtAbGluayBJQ29vcmRpbmF0ZVRyYW5zZm9ybX0uIFwiRGF0YSBjb29yZHNcIlxuICogaGVyZSBhcmUgaW1hZ2UtcGl4ZWwgY29vcmRpbmF0ZXMgKE9TRCdzIG5hdGl2ZSBzaGFwZSBzcGFjZSksIG9idGFpbmVkIGZyb20gdGhlXG4gKiB2aWV3cG9ydCBBUEkuIFRoaXMgaXMgdGhlIHJlYXNvbiB0aGUgdG9vbHMgY2FuIHJ1biBvdmVyIE9TRCBhdCBhbGw6IHRoZVxuICogdmlld3BvcnQgZ2l2ZXMgYSBjbGVhbiBzY3JlZW48LT5pbWFnZSBtYXBwaW5nIHRoYXQgaG9sZHMgYWNyb3NzIHBhbi96b29tLlxuICovXG5leHBvcnQgY2xhc3MgT3NkQ29vcmRpbmF0ZVRyYW5zZm9ybSBpbXBsZW1lbnRzIElDb29yZGluYXRlVHJhbnNmb3JtIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdlcjogYW55KSB7fVxuXG4gIGlzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy52aWV3ZXI/LnZpZXdwb3J0ICYmIHRoaXMudmlld2VyLndvcmxkPy5nZXRJdGVtQ291bnQoKSA+IDA7XG4gIH1cblxuICBjbGllbnRUb0RhdGEoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLnZpZXdlci5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIGVsZW1lbnRUb0ltYWdlKHRoaXMudmlld2VyLCBjbGllbnRYIC0gcmVjdC5sZWZ0LCBjbGllbnRZIC0gcmVjdC50b3ApO1xuICB9XG5cbiAgZGF0YUxlbmd0aFRvU2NyZWVuKGRhdGFMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgYSA9IGltYWdlVG9FbGVtZW50KHRoaXMudmlld2VyLCAwLCAwKTtcbiAgICBjb25zdCBiID0gaW1hZ2VUb0VsZW1lbnQodGhpcy52aWV3ZXIsIGRhdGFMZW5ndGgsIDApO1xuICAgIHJldHVybiBNYXRoLmFicyhiLnggLSBhLngpO1xuICB9XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NkLWNvb3JkaW5hdGUtdHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9pbXBsZW1lbnRhdGlvbnMvb3NkL29zZC1jb29yZGluYXRlLXRyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBb0IsTUFBVztRQUFYLFdBQU0sR0FBTixNQUFNLENBQUs7SUFBRyxDQUFDO0lBRW5DLE9BQU87UUFDTCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFlLEVBQUUsT0FBZTtRQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hELE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7bUNBQytCO0lBQy9CLFlBQVksQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUMvQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQWtCO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDb29yZGluYXRlVHJhbnNmb3JtIH0gZnJvbSAnLi4vLi4vY29udHJhY3RzL2Nvb3JkaW5hdGUtdHJhbnNmb3JtLmNvbnRyYWN0JztcbmltcG9ydCB7IGVsZW1lbnRUb0ltYWdlLCBpbWFnZVRvRWxlbWVudCB9IGZyb20gJy4vb3NkLWNvb3Jkcyc7XG5cbi8qKlxuICogT3BlblNlYWRyYWdvbiBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgSUNvb3JkaW5hdGVUcmFuc2Zvcm19LiBcIkRhdGEgY29vcmRzXCJcbiAqIGhlcmUgYXJlIGltYWdlLXBpeGVsIGNvb3JkaW5hdGVzIChPU0QncyBuYXRpdmUgc2hhcGUgc3BhY2UpLCBvYnRhaW5lZCBmcm9tIHRoZVxuICogdmlld3BvcnQgQVBJLiBUaGlzIGlzIHRoZSByZWFzb24gdGhlIHRvb2xzIGNhbiBydW4gb3ZlciBPU0QgYXQgYWxsOiB0aGVcbiAqIHZpZXdwb3J0IGdpdmVzIGEgY2xlYW4gc2NyZWVuPC0+aW1hZ2UgbWFwcGluZyB0aGF0IGhvbGRzIGFjcm9zcyBwYW4vem9vbS5cbiAqL1xuZXhwb3J0IGNsYXNzIE9zZENvb3JkaW5hdGVUcmFuc2Zvcm0gaW1wbGVtZW50cyBJQ29vcmRpbmF0ZVRyYW5zZm9ybSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3ZXI6IGFueSkge31cblxuICBpc1JlYWR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudmlld2VyPy52aWV3cG9ydCAmJiB0aGlzLnZpZXdlci53b3JsZD8uZ2V0SXRlbUNvdW50KCkgPiAwO1xuICB9XG5cbiAgY2xpZW50VG9EYXRhKGNsaWVudFg6IG51bWJlciwgY2xpZW50WTogbnVtYmVyKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy52aWV3ZXIuY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBlbGVtZW50VG9JbWFnZSh0aGlzLnZpZXdlciwgY2xpZW50WCAtIHJlY3QubGVmdCwgY2xpZW50WSAtIHJlY3QudG9wKTtcbiAgfVxuXG4gIC8qKiBEYXRhIChpbWFnZS1waXhlbCkgY29vcmRpbmF0ZXMgLT4gY2xpZW50IChtb3VzZSBldmVudCkgcGl4ZWwuIFRoZSBpbnZlcnNlXG4gICAqICBvZiB7QGxpbmsgY2xpZW50VG9EYXRhfS4gKi9cbiAgZGF0YVRvQ2xpZW50KHg6IG51bWJlciwgeTogbnVtYmVyKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy52aWV3ZXIuY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHAgPSBpbWFnZVRvRWxlbWVudCh0aGlzLnZpZXdlciwgeCwgeSk7XG4gICAgcmV0dXJuIHsgeDogcC54ICsgcmVjdC5sZWZ0LCB5OiBwLnkgKyByZWN0LnRvcCB9O1xuICB9XG5cbiAgZGF0YUxlbmd0aFRvU2NyZWVuKGRhdGFMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgYSA9IGltYWdlVG9FbGVtZW50KHRoaXMudmlld2VyLCAwLCAwKTtcbiAgICBjb25zdCBiID0gaW1hZ2VUb0VsZW1lbnQodGhpcy52aWV3ZXIsIGRhdGFMZW5ndGgsIDApO1xuICAgIHJldHVybiBNYXRoLmFicyhiLnggLSBhLngpO1xuICB9XG59XG4iXX0=