@knaw-huc/osd-iiif-viewer 0.1.7 → 0.1.9

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.
@@ -3,5 +3,7 @@ import { ControlSlice } from './ControlSlice.ts';
3
3
  import { ManifestSlice } from './manifest/ManifestSlice.ts';
4
4
  import { CanvasSlice } from './manifest/CanvasSlice.ts';
5
5
  import { Resettable } from './Resettable.ts';
6
- export type ViewerStore = InstanceSlice & ControlSlice & ManifestSlice & CanvasSlice & Resettable;
6
+ export type ViewerStore = InstanceSlice & ControlSlice & ManifestSlice & CanvasSlice & Resettable & {
7
+ resetViewer: () => void;
8
+ };
7
9
  export declare const createViewerStore: () => import('zustand').StoreApi<ViewerStore>;
package/dist/index.d.ts CHANGED
@@ -8,7 +8,6 @@ export { useViewerReady } from './useViewerReady';
8
8
  export { useViewerStore } from './useViewerStore';
9
9
  export { useManifest, useLoadManifest } from './manifest/useManifest';
10
10
  export { useCanvas } from './manifest/useCanvas';
11
- export { useVault } from './manifest/useVault';
12
11
  export { findTileSource } from './manifest/findTileSource';
13
12
  export { findThumbnail } from './manifest/findThumbnail';
14
13
  export { getImageServiceId } from './manifest/getImageServiceId';
package/dist/index.js CHANGED
@@ -1799,6 +1799,7 @@ const defaultState$1 = {
1799
1799
  }), defaultManifest = {
1800
1800
  url: null,
1801
1801
  isLoading: !1,
1802
+ isReady: !1,
1802
1803
  error: null
1803
1804
  }, createManifestSlice = (vault) => (set) => ({
1804
1805
  vault,
@@ -1835,13 +1836,19 @@ const defaultState$1 = {
1835
1836
  reset: () => set(defaultCanvas)
1836
1837
  }), createViewerStore = () => {
1837
1838
  const vault = new E(), resets = [], withReset = (slice) => (resets.push(slice.reset), slice);
1838
- return createStore((...a2) => ({
1839
- ...withReset(createInstanceSlice(...a2)),
1840
- ...withReset(createControlSlice(...a2)),
1841
- ...withReset(createManifestSlice(vault)(...a2)),
1842
- ...withReset(createCanvasSlice(...a2)),
1843
- reset: () => resets.forEach((fn) => fn())
1844
- }));
1839
+ return createStore((...a2) => {
1840
+ const instance = withReset(createInstanceSlice(...a2)), control = withReset(createControlSlice(...a2));
1841
+ return {
1842
+ ...instance,
1843
+ ...control,
1844
+ ...withReset(createManifestSlice(vault)(...a2)),
1845
+ ...withReset(createCanvasSlice(...a2)),
1846
+ reset: () => resets.forEach((fn) => fn()),
1847
+ resetViewer: () => {
1848
+ instance.reset(), control.reset();
1849
+ }
1850
+ };
1851
+ });
1845
1852
  }, ViewerContext = createContext(null);
1846
1853
  function orThrow(msg) {
1847
1854
  throw new Error(msg);
@@ -1941,11 +1948,15 @@ function useCanvas() {
1941
1948
  }, [vault, url, isLoading, currentIndex]);
1942
1949
  return { currentIndex, current, total, goTo, next, prev };
1943
1950
  }
1944
- function useVault() {
1945
- return useViewerStoreSelector((s2) => s2.vault);
1951
+ function useManifest() {
1952
+ const vault = useViewerStoreSelector((s2) => s2.vault), url = useViewerStoreSelector((s2) => s2.url), isLoading = useViewerStoreSelector((s2) => s2.isLoading), error = useViewerStoreSelector((s2) => s2.error), loadManifest = useViewerStoreSelector((s2) => s2.loadManifest);
1953
+ return { vault, url, isLoading, error, isReady: !!url && !isLoading && !error, loadManifest };
1954
+ }
1955
+ function useLoadManifest() {
1956
+ return useViewerStoreSelector((s2) => s2.loadManifest);
1946
1957
  }
1947
1958
  function Viewer({ showControls = !0 }) {
1948
- const containerRef = useRef(null), store = useViewerStore(), vault = useVault(), { current } = useCanvas(), tileSource = current ? findTileSource(vault, current) : null;
1959
+ const containerRef = useRef(null), store = useViewerStore(), { vault } = useManifest(), { current } = useCanvas(), tileSource = current ? findTileSource(vault, current) : null;
1949
1960
  return useEffect(() => {
1950
1961
  if (!containerRef.current)
1951
1962
  return;
@@ -1965,7 +1976,7 @@ function Viewer({ showControls = !0 }) {
1965
1976
  store.getState().setRotation(viewer.viewport.getRotation());
1966
1977
  };
1967
1978
  return viewer.addHandler("animation-start", onZoom), viewer.addHandler("animation-finish", onZoom), viewer.addHandler("rotate", onRotate), () => {
1968
- viewer.destroy(), store.getState().reset();
1979
+ viewer.destroy(), store.getState().resetViewer();
1969
1980
  };
1970
1981
  }, [showControls, store]), useEffect(() => {
1971
1982
  const viewer = store.getState().viewer;
@@ -2052,13 +2063,6 @@ function useViewerControls(fullscreenRef) {
2052
2063
  rotation
2053
2064
  };
2054
2065
  }
2055
- function useManifest() {
2056
- const url = useViewerStoreSelector((s2) => s2.url), isLoading = useViewerStoreSelector((s2) => s2.isLoading), error = useViewerStoreSelector((s2) => s2.error);
2057
- return { url, isLoading, error, isReady: !!url && !isLoading && !error };
2058
- }
2059
- function useLoadManifest() {
2060
- return useViewerStoreSelector((s2) => s2.loadManifest);
2061
- }
2062
2066
  function findThumbnail(vault, canvas, height = 120) {
2063
2067
  return getImageServiceId(vault, canvas) ? `/full/,${height}/0/default.jpg` : null;
2064
2068
  }
@@ -2073,7 +2077,6 @@ export {
2073
2077
  useImageInfo,
2074
2078
  useLoadManifest,
2075
2079
  useManifest,
2076
- useVault,
2077
2080
  useViewer,
2078
2081
  useViewerControls,
2079
2082
  useViewerReady,
@@ -6,6 +6,7 @@ export type ManifestState = {
6
6
  url: string | null;
7
7
  isLoading: boolean;
8
8
  error: string | null;
9
+ isReady: boolean;
9
10
  };
10
11
  export type ManifestSlice = Resettable & ManifestState & {
11
12
  vault: Vault;
@@ -1,7 +1,9 @@
1
1
  export declare function useManifest(): {
2
+ vault: import('@iiif/helpers/vault').Vault;
2
3
  url: string | null;
3
4
  isLoading: boolean;
4
5
  error: string | null;
5
6
  isReady: boolean;
7
+ loadManifest: (url: string) => Promise<void>;
6
8
  };
7
9
  export declare function useLoadManifest(): (url: string) => Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knaw-huc/osd-iiif-viewer",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/knaw-huc/osd-iiif-viewer.git"
@@ -18,9 +18,9 @@
18
18
  "dist"
19
19
  ],
20
20
  "scripts": {
21
- "start": "vite",
22
- "dev": "vite",
23
- "build": "vite build",
21
+ "start": "npm run dev",
22
+ "dev": "vite --config vite.dev.config.ts",
23
+ "build": "vite build --config vite.build.config.ts",
24
24
  "test": "vitest run",
25
25
  "test:watch": "vitest",
26
26
  "lint": "eslint .",
@@ -1 +0,0 @@
1
- export declare function useVault(): import('@iiif/helpers/vault').Vault;