react-iiif-vault 2.0.2 → 2.0.5
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.
- package/dist/bundle.d.ts +72 -3
- package/dist/bundle.global.js +72 -47
- package/dist/canvas-panel.cjs +6 -5
- package/dist/canvas-panel.js +1 -1
- package/dist/chunk-SNWQWQTN.js +49 -0
- package/dist/chunk-UNH7HXGJ.js +0 -0
- package/dist/index.cjs +8 -7
- package/dist/index.d.cts +73 -4
- package/dist/index.d.ts +73 -4
- package/dist/index.js +1 -1
- package/dist/utils.js +1 -1
- package/package.json +11 -7
- package/dist/chunk-CX7UL3H3.js +0 -48
package/dist/index.d.cts
CHANGED
|
@@ -2,16 +2,16 @@ export * from '@iiif/helpers/annotation-targets';
|
|
|
2
2
|
import { S as SVGTheme, R as RenderContextProps, A as AudioComponentProps, V as VideoComponentProps, u as useSvgEditor, a as SimpleViewerContext, b as AtlasStore, c as AnnotationRequest, d as AnnotationResponse, e as AnnotationRequestOptions, f as SimpleViewerProps } from './index-Btmqi4an.cjs';
|
|
3
3
|
export { h as AtlasStoreEvents, n as AtlasStoreProvider, k as AtlasStoreReactContext, g as CanvasPanel, C as CanvasPanelProps, i as CreateAtlasStoreProps, o as RenderAnnotation, q as RenderAnnotationPage, x as SimpleViewerActions, y as SimpleViewerActionsType, w as SimpleViewerReducerState, j as createAtlasStore, v as defaultSvgTheme, m as getAtlasStoreByName, p as polygonToTarget, r as requestToAnnotationResponse, t as useAtlasContextMenu, l as useAtlasStore, s as useContextMenuStore } from './index-Btmqi4an.cjs';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
|
+
import { BoxStyle, AtlasProps, Preset } from '@atlas-viewer/atlas';
|
|
5
6
|
import * as React$1 from 'react';
|
|
6
7
|
import React__default, { ReactNode, FunctionComponent, RefObject, Context } from 'react';
|
|
7
8
|
import { R as RenderingStrategy, b as StrategyActions, M as MediaStrategy, c as SingleImageStrategy, E as EmptyStrategy, C as ComplexTimelineStrategy, I as ImageWithOptionalService, T as TimelineKeyframe, d as ImageServiceLoaderType, U as UnknownStrategy } from './useRenderingStrategy-CHg8UC3-.cjs';
|
|
8
9
|
export { i as AnnotationPageDescription, A as AudioSequence, n as ChoiceEvents, e as Single3DModelStrategy, S as SingleAudio, a as SingleVideo, h as SingleYouTubeVideo, k as TextContent, j as TextualContentStrategy, m as UseRenderingStrategy, o as UseRenderingStrategyOptions, V as VideoSequence, g as get3dStrategy, f as getImageStrategy, l as getTextualContentStrategy, u as useLoadImageService, p as useRenderingStrategy } from './useRenderingStrategy-CHg8UC3-.cjs';
|
|
9
10
|
import * as _iiif_helpers from '@iiif/helpers';
|
|
10
11
|
import { ChoiceDescription, Paintables, ComplexChoice, SupportedSelector, SvgSelector, BoxSelector } from '@iiif/helpers';
|
|
11
|
-
import { BoxStyle, AtlasProps, Preset } from '@atlas-viewer/atlas';
|
|
12
12
|
import * as polygon_editor from 'polygon-editor';
|
|
13
13
|
import { InputShape, PolygonEvents } from 'polygon-editor';
|
|
14
|
-
import { InternationalString, ImageService as ImageService$1, ImageSize, AuthProbeService2, Auth2LocationResource, Auth2SubstituteResource, AuthAccessService2, AuthAccessTokenService2, AuthAccessToken2, SearchServiceQueryParams, SearchServiceSearchResponse, SearchService as SearchService$1, SearchServiceAutocomplete, Reference, Annotation, SvgSelector as SvgSelector$1, FragmentSelector } from '@iiif/presentation-3';
|
|
14
|
+
import { InternationalString, MetadataItem, ImageService as ImageService$1, ImageSize, AuthProbeService2, Auth2LocationResource, Auth2SubstituteResource, AuthAccessService2, AuthAccessTokenService2, AuthAccessToken2, SearchServiceQueryParams, SearchServiceSearchResponse, SearchService as SearchService$1, SearchServiceAutocomplete, Reference, Annotation, SvgSelector as SvgSelector$1, FragmentSelector } from '@iiif/presentation-3';
|
|
15
15
|
import { RegionParameter, RotationParameter, SizeParameter } from '@iiif/parser/image-3';
|
|
16
16
|
import * as zustand_vanilla from 'zustand/vanilla';
|
|
17
17
|
import { StoreApi } from 'zustand/vanilla';
|
|
@@ -28,6 +28,43 @@ import { VaultZustandStore } from '@iiif/helpers/vault/store';
|
|
|
28
28
|
import * as _iiif_helpers_painting_annotations from '@iiif/helpers/painting-annotations';
|
|
29
29
|
import * as _iiif_helpers_styles from '@iiif/helpers/styles';
|
|
30
30
|
|
|
31
|
+
type RegionHighlightType = {
|
|
32
|
+
id: any;
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
width: number;
|
|
36
|
+
height: number;
|
|
37
|
+
};
|
|
38
|
+
declare function RegionHighlight({ id, interactive, region, onClick, onHover, onSave, aspectRatio, maintainAspectRatio, disableCardinalControls, isEditing, style, }: {
|
|
39
|
+
id?: string;
|
|
40
|
+
region: RegionHighlightType;
|
|
41
|
+
isEditing: boolean;
|
|
42
|
+
onSave?: (annotation: RegionHighlightType) => void;
|
|
43
|
+
onClick?: (annotation: RegionHighlightType) => void;
|
|
44
|
+
onHover?: (annotation: RegionHighlightType) => void;
|
|
45
|
+
aspectRatio?: number;
|
|
46
|
+
maintainAspectRatio?: boolean;
|
|
47
|
+
disableCardinalControls?: boolean;
|
|
48
|
+
interactive?: boolean;
|
|
49
|
+
style?: BoxStyle;
|
|
50
|
+
}): react_jsx_runtime.JSX.Element;
|
|
51
|
+
|
|
52
|
+
type ResizeWorldItemProps = JSX.IntrinsicElements['worldObject'] & {
|
|
53
|
+
handleSize?: number;
|
|
54
|
+
resizable?: boolean;
|
|
55
|
+
aspectRatio?: number;
|
|
56
|
+
onSave: (pos: Partial<{
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
width: number;
|
|
60
|
+
height: number;
|
|
61
|
+
}>) => void;
|
|
62
|
+
children?: ReactNode;
|
|
63
|
+
maintainAspectRatio?: boolean;
|
|
64
|
+
disableCardinalControls?: boolean;
|
|
65
|
+
};
|
|
66
|
+
declare function ResizeWorldItem({ handleSize: _handleSize, resizable, onSave, children, maintainAspectRatio, disableCardinalControls, aspectRatio, ...props }: ResizeWorldItemProps): react_jsx_runtime.JSX.Element;
|
|
67
|
+
|
|
31
68
|
declare function RenderAnnotationEditing({ theme, renderContextMenu, children, }: {
|
|
32
69
|
theme?: Partial<SVGTheme>;
|
|
33
70
|
renderContextMenu?: (options: RenderContextProps) => React.ReactNode;
|
|
@@ -213,6 +250,8 @@ interface MetadataProps {
|
|
|
213
250
|
allowHtml?: boolean;
|
|
214
251
|
showEmptyMessage?: boolean;
|
|
215
252
|
separator?: string;
|
|
253
|
+
customLabelRender?: (item: MetadataItem['label'], fallback: React.ReactNode) => React.ReactNode;
|
|
254
|
+
customValueRender?: (item: MetadataItem, fallback: React.ReactNode) => React.ReactNode;
|
|
216
255
|
classes?: {
|
|
217
256
|
container?: string;
|
|
218
257
|
row?: string;
|
|
@@ -227,7 +266,7 @@ interface MetadataProps {
|
|
|
227
266
|
tableFooter?: React.ReactNode;
|
|
228
267
|
emptyFallback?: React.ReactNode;
|
|
229
268
|
}
|
|
230
|
-
declare function Metadata({ metadata, config, labelWidth, showEmptyMessage, allowHtml, emptyFallback, classes, emptyMessage, emptyValueFallback, emptyLabelFallback, separator, tableFooter, tableHeader, }: MetadataProps): react_jsx_runtime.JSX.Element;
|
|
269
|
+
declare function Metadata({ metadata, config, labelWidth, showEmptyMessage, allowHtml, emptyFallback, classes, emptyMessage, emptyValueFallback, emptyLabelFallback, separator, tableFooter, tableHeader, customLabelRender, customValueRender, }: MetadataProps): react_jsx_runtime.JSX.Element;
|
|
231
270
|
|
|
232
271
|
type CombinedMetadataProps = Omit<MetadataProps, 'metadata'>;
|
|
233
272
|
declare function CombinedMetadata(props: CombinedMetadataProps): react_jsx_runtime.JSX.Element;
|
|
@@ -1130,6 +1169,36 @@ declare function useRange<T>(options?: {
|
|
|
1130
1169
|
selector: (range: RangeNormalized) => T;
|
|
1131
1170
|
}, deps?: any[]): T | undefined;
|
|
1132
1171
|
|
|
1172
|
+
declare function useStaticRenderingStrategy({ supports }?: {
|
|
1173
|
+
supports?: Array<RenderingStrategy['type']>;
|
|
1174
|
+
}): RenderingStrategy;
|
|
1175
|
+
|
|
1176
|
+
interface StylesheetStore {
|
|
1177
|
+
stylesheets: Record<string, string>;
|
|
1178
|
+
loading: string[];
|
|
1179
|
+
errors: Array<{
|
|
1180
|
+
url: string;
|
|
1181
|
+
error: Error;
|
|
1182
|
+
}>;
|
|
1183
|
+
loadStylesheet(url: string): Promise<string>;
|
|
1184
|
+
setStylesheet(value: string, url?: string): string;
|
|
1185
|
+
parseStylesheet(stylesheet: Annotation['stylesheet'] | null): Promise<null | {
|
|
1186
|
+
id: string;
|
|
1187
|
+
type: 'CssStylesheet';
|
|
1188
|
+
value: string;
|
|
1189
|
+
}>;
|
|
1190
|
+
}
|
|
1191
|
+
declare const useStylesheetStore: zustand.UseBoundStore<zustand.StoreApi<StylesheetStore>>;
|
|
1192
|
+
declare function useRemoteStylesheet(stylesheet?: Annotation['stylesheet'] | null): readonly [Record<string, string>, {
|
|
1193
|
+
readonly id: string;
|
|
1194
|
+
readonly stylesheets: Record<string, string>;
|
|
1195
|
+
readonly loading: string[];
|
|
1196
|
+
readonly errors: {
|
|
1197
|
+
url: string;
|
|
1198
|
+
error: Error;
|
|
1199
|
+
}[];
|
|
1200
|
+
}];
|
|
1201
|
+
|
|
1133
1202
|
declare function useRequestAnnotation(opts?: {
|
|
1134
1203
|
onSuccess?: (r: AnnotationResponse) => void;
|
|
1135
1204
|
}): {
|
|
@@ -1348,4 +1417,4 @@ declare function getManifestSequence(vault: Vault, manifestOrRange: ManifestNorm
|
|
|
1348
1417
|
skipNonPaged?: boolean;
|
|
1349
1418
|
}): [Reference<'Canvas'>[], number[][]];
|
|
1350
1419
|
|
|
1351
|
-
export { AnnotationContext, AnnotationPageContext, AnnotationRequest, AnnotationRequestOptions, AnnotationResponse, type AnnotationStrategyProps, AnnotationStyleProvider, type AnnotationStyles, type AnnotationThemeDefinition, AtlasStore, Auth, type AuthAccessState, type AuthContextActions, type AuthContextCurrentActions, type AuthContextState, AuthProvider, AuthRContext, AuthReactContext, AuthReactContextActions, type AuthState, CanvasAnnotations, CanvasContext, CanvasStrategyProvider, CanvasWorldObject, CollectionContext, CombinedMetadata, ComplexTimelineProvider, ComplexTimelineStrategy, ContextBridge, type ControlsContext, ControlsReactContext, CreateCustomShape, type CreateCustomShapeProps, CustomContextBridge, CustomContextBridgeProvider, DefaultEditingTools, EmptyStrategy, EventEmitterProvider, EventsProvider, Image, type ImageProps, ImageService, ImageServiceLoaderContext, ImageServiceLoaderType, type ImageServiceRequestOptions, type ImageStrategyProps, ImageWithOptionalService, InnerViewerProvider, LanguageProvider, LanguageString, LocaleString, ManifestContext, ManifestMetadata, type MediaPlayerActions, MediaPlayerProvider, type MediaPlayerState, MediaStrategy, Metadata, type MetadataProps, PolygonSelector, type PolygonSelectorProps, type ProbeStore, RangeContext, ReactEmitterContext, ReactEventContext, ReactVaultContext, Render3DModelStrategy, RenderAccompanyingCanvas, RenderAnnotationEditing, RenderAnnotationStrategy, RenderAudioStrategy, RenderComplexTimelineStrategy, RenderContextProps, RenderEmptyStrategy, RenderImageStrategy, RenderSvgEditorControls, RenderTextualContentStrategy, RenderVideoStrategy, RenderYouTubeStrategy, RenderingStrategy, type ResourceContextType, ResourceProvider, ResourceReactContext, type ResourceRequestOptions, SVGTheme, SelectorControllerProvider, type SelectorHelperEventTypes, SequenceThumbnails, SimpleViewerContext, SimpleViewerProps, SimpleViewerProvider, SimpleViewerReactContext, SingleCanvasThumbnail, SingleImageStrategy, StrategyActions, type StrategyContext, StrategyReactContext, type SvgTheme, ThumbnailFallbackImage, TimelineKeyframe, TranslationProvider, TransliterationProvider, UnknownStrategy, type VaultActivatedAnnotation, VaultProvider, ViewerPresetContext, VirtualAnnotationProvider, VisibleCanvasReactContext, annotationResponseToSelector, authDetailsForResource, createAuthStateStore, createProbe, defaultEmitter, findAllCanvasesInRange, findFirstCanvasFromRange, findManifestSelectedRange, findSelectedRange, flattenAnnotationPageIds, formatTime, getComplexTimelineStrategy, getDefaultAnnotationStyles, getManifestSequence, getVideoStrategy, getVisibleCanvasesFromCanvasId, hasAuth, isBoxSelector, isRectangle, isSvgSelector, makeAccessServiceRequest, makeAccessTokenRequest, seraliseSupportedSelector, svgThemes, targetIntersects, useAnnotation, useAnnotationPage, useAnnotationPageManager, useAnnotationStyles, useAnnotationsAtTime, useAuthActions, useAuthService, useAuthStore, useAuthToken, useAuthTokens, useCanvas, useCanvasChoices, useCanvasClock, useCanvasSequence, useCanvasStartTime, useCanvasSubset, useClosestLanguage, useCollection, useComplexTimeline, useContextBridge, useCreateLocaleString, useCurrentAnnotationActions, useCurrentAnnotationMetadata, useCurrentAnnotationRequest, useCurrentAnnotationTransition, useCurrentAuth, useCustomContextBridge, useDispatch, useEmitter, useEvent, useEventEmitter, useEventListener, useExistingVault, useExternalCollection, useExternalManifest, useExternalResource, useIIIFLanguage, useImage, useImageService, useImageServiceLoader, useImageTile, useIsAuthEnabled, useLocaleString, useManifest, useMediaActions, useMediaElements, useMediaState, usePaintables, usePaintingAnnotations, usePolygonHelper, useRange, useRenderControls, useRequestAnnotation, useResourceContext, useResourceEvents, useResources, useSearchService, useSelectorController, useSelectorEmitter, useSelectorEvents, useSelectorHelper, useSimpleMediaPlayer, useSimpleViewer, useStrategy, useStyleHelper, useStyles, useSvgEditor, useSvgEditorControls, useThumbnail, useTranslations, useTransliteration, useVault, useVaultEffect, useVaultSelector, useViewerPreset, useVirtualAnnotationPage, useVirtualAnnotationPageContext, useVisibleCanvases };
|
|
1420
|
+
export { AnnotationContext, AnnotationPageContext, AnnotationRequest, AnnotationRequestOptions, AnnotationResponse, type AnnotationStrategyProps, AnnotationStyleProvider, type AnnotationStyles, type AnnotationThemeDefinition, AtlasStore, Auth, type AuthAccessState, type AuthContextActions, type AuthContextCurrentActions, type AuthContextState, AuthProvider, AuthRContext, AuthReactContext, AuthReactContextActions, type AuthState, CanvasAnnotations, CanvasContext, CanvasStrategyProvider, CanvasWorldObject, CollectionContext, CombinedMetadata, ComplexTimelineProvider, ComplexTimelineStrategy, ContextBridge, type ControlsContext, ControlsReactContext, CreateCustomShape, type CreateCustomShapeProps, CustomContextBridge, CustomContextBridgeProvider, DefaultEditingTools, EmptyStrategy, EventEmitterProvider, EventsProvider, Image, type ImageProps, ImageService, ImageServiceLoaderContext, ImageServiceLoaderType, type ImageServiceRequestOptions, type ImageStrategyProps, ImageWithOptionalService, InnerViewerProvider, LanguageProvider, LanguageString, LocaleString, ManifestContext, ManifestMetadata, type MediaPlayerActions, MediaPlayerProvider, type MediaPlayerState, MediaStrategy, Metadata, type MetadataProps, PolygonSelector, type PolygonSelectorProps, type ProbeStore, RangeContext, ReactEmitterContext, ReactEventContext, ReactVaultContext, RegionHighlight, Render3DModelStrategy, RenderAccompanyingCanvas, RenderAnnotationEditing, RenderAnnotationStrategy, RenderAudioStrategy, RenderComplexTimelineStrategy, RenderContextProps, RenderEmptyStrategy, RenderImageStrategy, RenderSvgEditorControls, RenderTextualContentStrategy, RenderVideoStrategy, RenderYouTubeStrategy, RenderingStrategy, ResizeWorldItem, type ResourceContextType, ResourceProvider, ResourceReactContext, type ResourceRequestOptions, SVGTheme, SelectorControllerProvider, type SelectorHelperEventTypes, SequenceThumbnails, SimpleViewerContext, SimpleViewerProps, SimpleViewerProvider, SimpleViewerReactContext, SingleCanvasThumbnail, SingleImageStrategy, StrategyActions, type StrategyContext, StrategyReactContext, type SvgTheme, ThumbnailFallbackImage, TimelineKeyframe, TranslationProvider, TransliterationProvider, UnknownStrategy, type VaultActivatedAnnotation, VaultProvider, ViewerPresetContext, VirtualAnnotationProvider, VisibleCanvasReactContext, annotationResponseToSelector, authDetailsForResource, createAuthStateStore, createProbe, defaultEmitter, findAllCanvasesInRange, findFirstCanvasFromRange, findManifestSelectedRange, findSelectedRange, flattenAnnotationPageIds, formatTime, getComplexTimelineStrategy, getDefaultAnnotationStyles, getManifestSequence, getVideoStrategy, getVisibleCanvasesFromCanvasId, hasAuth, isBoxSelector, isRectangle, isSvgSelector, makeAccessServiceRequest, makeAccessTokenRequest, seraliseSupportedSelector, svgThemes, targetIntersects, useAnnotation, useAnnotationPage, useAnnotationPageManager, useAnnotationStyles, useAnnotationsAtTime, useAuthActions, useAuthService, useAuthStore, useAuthToken, useAuthTokens, useCanvas, useCanvasChoices, useCanvasClock, useCanvasSequence, useCanvasStartTime, useCanvasSubset, useClosestLanguage, useCollection, useComplexTimeline, useContextBridge, useCreateLocaleString, useCurrentAnnotationActions, useCurrentAnnotationMetadata, useCurrentAnnotationRequest, useCurrentAnnotationTransition, useCurrentAuth, useCustomContextBridge, useDispatch, useEmitter, useEvent, useEventEmitter, useEventListener, useExistingVault, useExternalCollection, useExternalManifest, useExternalResource, useIIIFLanguage, useImage, useImageService, useImageServiceLoader, useImageTile, useIsAuthEnabled, useLocaleString, useManifest, useMediaActions, useMediaElements, useMediaState, usePaintables, usePaintingAnnotations, usePolygonHelper, useRange, useRemoteStylesheet, useRenderControls, useRequestAnnotation, useResourceContext, useResourceEvents, useResources, useSearchService, useSelectorController, useSelectorEmitter, useSelectorEvents, useSelectorHelper, useSimpleMediaPlayer, useSimpleViewer, useStaticRenderingStrategy, useStrategy, useStyleHelper, useStyles, useStylesheetStore, useSvgEditor, useSvgEditorControls, useThumbnail, useTranslations, useTransliteration, useVault, useVaultEffect, useVaultSelector, useViewerPreset, useVirtualAnnotationPage, useVirtualAnnotationPageContext, useVisibleCanvases };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,16 +2,16 @@ export * from '@iiif/helpers/annotation-targets';
|
|
|
2
2
|
import { S as SVGTheme, R as RenderContextProps, A as AudioComponentProps, V as VideoComponentProps, u as useSvgEditor, a as SimpleViewerContext, b as AtlasStore, c as AnnotationRequest, d as AnnotationResponse, e as AnnotationRequestOptions, f as SimpleViewerProps } from './index-Cxmpcndt.js';
|
|
3
3
|
export { h as AtlasStoreEvents, n as AtlasStoreProvider, k as AtlasStoreReactContext, g as CanvasPanel, C as CanvasPanelProps, i as CreateAtlasStoreProps, o as RenderAnnotation, q as RenderAnnotationPage, x as SimpleViewerActions, y as SimpleViewerActionsType, w as SimpleViewerReducerState, j as createAtlasStore, v as defaultSvgTheme, m as getAtlasStoreByName, p as polygonToTarget, r as requestToAnnotationResponse, t as useAtlasContextMenu, l as useAtlasStore, s as useContextMenuStore } from './index-Cxmpcndt.js';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
|
+
import { BoxStyle, AtlasProps, Preset } from '@atlas-viewer/atlas';
|
|
5
6
|
import * as React$1 from 'react';
|
|
6
7
|
import React__default, { ReactNode, FunctionComponent, RefObject, Context } from 'react';
|
|
7
8
|
import { R as RenderingStrategy, b as StrategyActions, M as MediaStrategy, c as SingleImageStrategy, E as EmptyStrategy, C as ComplexTimelineStrategy, I as ImageWithOptionalService, T as TimelineKeyframe, d as ImageServiceLoaderType, U as UnknownStrategy } from './useRenderingStrategy-CHg8UC3-.js';
|
|
8
9
|
export { i as AnnotationPageDescription, A as AudioSequence, n as ChoiceEvents, e as Single3DModelStrategy, S as SingleAudio, a as SingleVideo, h as SingleYouTubeVideo, k as TextContent, j as TextualContentStrategy, m as UseRenderingStrategy, o as UseRenderingStrategyOptions, V as VideoSequence, g as get3dStrategy, f as getImageStrategy, l as getTextualContentStrategy, u as useLoadImageService, p as useRenderingStrategy } from './useRenderingStrategy-CHg8UC3-.js';
|
|
9
10
|
import * as _iiif_helpers from '@iiif/helpers';
|
|
10
11
|
import { ChoiceDescription, Paintables, ComplexChoice, SupportedSelector, SvgSelector, BoxSelector } from '@iiif/helpers';
|
|
11
|
-
import { BoxStyle, AtlasProps, Preset } from '@atlas-viewer/atlas';
|
|
12
12
|
import * as polygon_editor from 'polygon-editor';
|
|
13
13
|
import { InputShape, PolygonEvents } from 'polygon-editor';
|
|
14
|
-
import { InternationalString, ImageService as ImageService$1, ImageSize, AuthProbeService2, Auth2LocationResource, Auth2SubstituteResource, AuthAccessService2, AuthAccessTokenService2, AuthAccessToken2, SearchServiceQueryParams, SearchServiceSearchResponse, SearchService as SearchService$1, SearchServiceAutocomplete, Reference, Annotation, SvgSelector as SvgSelector$1, FragmentSelector } from '@iiif/presentation-3';
|
|
14
|
+
import { InternationalString, MetadataItem, ImageService as ImageService$1, ImageSize, AuthProbeService2, Auth2LocationResource, Auth2SubstituteResource, AuthAccessService2, AuthAccessTokenService2, AuthAccessToken2, SearchServiceQueryParams, SearchServiceSearchResponse, SearchService as SearchService$1, SearchServiceAutocomplete, Reference, Annotation, SvgSelector as SvgSelector$1, FragmentSelector } from '@iiif/presentation-3';
|
|
15
15
|
import { RegionParameter, RotationParameter, SizeParameter } from '@iiif/parser/image-3';
|
|
16
16
|
import * as zustand_vanilla from 'zustand/vanilla';
|
|
17
17
|
import { StoreApi } from 'zustand/vanilla';
|
|
@@ -28,6 +28,43 @@ import { VaultZustandStore } from '@iiif/helpers/vault/store';
|
|
|
28
28
|
import * as _iiif_helpers_painting_annotations from '@iiif/helpers/painting-annotations';
|
|
29
29
|
import * as _iiif_helpers_styles from '@iiif/helpers/styles';
|
|
30
30
|
|
|
31
|
+
type RegionHighlightType = {
|
|
32
|
+
id: any;
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
width: number;
|
|
36
|
+
height: number;
|
|
37
|
+
};
|
|
38
|
+
declare function RegionHighlight({ id, interactive, region, onClick, onHover, onSave, aspectRatio, maintainAspectRatio, disableCardinalControls, isEditing, style, }: {
|
|
39
|
+
id?: string;
|
|
40
|
+
region: RegionHighlightType;
|
|
41
|
+
isEditing: boolean;
|
|
42
|
+
onSave?: (annotation: RegionHighlightType) => void;
|
|
43
|
+
onClick?: (annotation: RegionHighlightType) => void;
|
|
44
|
+
onHover?: (annotation: RegionHighlightType) => void;
|
|
45
|
+
aspectRatio?: number;
|
|
46
|
+
maintainAspectRatio?: boolean;
|
|
47
|
+
disableCardinalControls?: boolean;
|
|
48
|
+
interactive?: boolean;
|
|
49
|
+
style?: BoxStyle;
|
|
50
|
+
}): react_jsx_runtime.JSX.Element;
|
|
51
|
+
|
|
52
|
+
type ResizeWorldItemProps = JSX.IntrinsicElements['worldObject'] & {
|
|
53
|
+
handleSize?: number;
|
|
54
|
+
resizable?: boolean;
|
|
55
|
+
aspectRatio?: number;
|
|
56
|
+
onSave: (pos: Partial<{
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
width: number;
|
|
60
|
+
height: number;
|
|
61
|
+
}>) => void;
|
|
62
|
+
children?: ReactNode;
|
|
63
|
+
maintainAspectRatio?: boolean;
|
|
64
|
+
disableCardinalControls?: boolean;
|
|
65
|
+
};
|
|
66
|
+
declare function ResizeWorldItem({ handleSize: _handleSize, resizable, onSave, children, maintainAspectRatio, disableCardinalControls, aspectRatio, ...props }: ResizeWorldItemProps): react_jsx_runtime.JSX.Element;
|
|
67
|
+
|
|
31
68
|
declare function RenderAnnotationEditing({ theme, renderContextMenu, children, }: {
|
|
32
69
|
theme?: Partial<SVGTheme>;
|
|
33
70
|
renderContextMenu?: (options: RenderContextProps) => React.ReactNode;
|
|
@@ -213,6 +250,8 @@ interface MetadataProps {
|
|
|
213
250
|
allowHtml?: boolean;
|
|
214
251
|
showEmptyMessage?: boolean;
|
|
215
252
|
separator?: string;
|
|
253
|
+
customLabelRender?: (item: MetadataItem['label'], fallback: React.ReactNode) => React.ReactNode;
|
|
254
|
+
customValueRender?: (item: MetadataItem, fallback: React.ReactNode) => React.ReactNode;
|
|
216
255
|
classes?: {
|
|
217
256
|
container?: string;
|
|
218
257
|
row?: string;
|
|
@@ -227,7 +266,7 @@ interface MetadataProps {
|
|
|
227
266
|
tableFooter?: React.ReactNode;
|
|
228
267
|
emptyFallback?: React.ReactNode;
|
|
229
268
|
}
|
|
230
|
-
declare function Metadata({ metadata, config, labelWidth, showEmptyMessage, allowHtml, emptyFallback, classes, emptyMessage, emptyValueFallback, emptyLabelFallback, separator, tableFooter, tableHeader, }: MetadataProps): react_jsx_runtime.JSX.Element;
|
|
269
|
+
declare function Metadata({ metadata, config, labelWidth, showEmptyMessage, allowHtml, emptyFallback, classes, emptyMessage, emptyValueFallback, emptyLabelFallback, separator, tableFooter, tableHeader, customLabelRender, customValueRender, }: MetadataProps): react_jsx_runtime.JSX.Element;
|
|
231
270
|
|
|
232
271
|
type CombinedMetadataProps = Omit<MetadataProps, 'metadata'>;
|
|
233
272
|
declare function CombinedMetadata(props: CombinedMetadataProps): react_jsx_runtime.JSX.Element;
|
|
@@ -1130,6 +1169,36 @@ declare function useRange<T>(options?: {
|
|
|
1130
1169
|
selector: (range: RangeNormalized) => T;
|
|
1131
1170
|
}, deps?: any[]): T | undefined;
|
|
1132
1171
|
|
|
1172
|
+
declare function useStaticRenderingStrategy({ supports }?: {
|
|
1173
|
+
supports?: Array<RenderingStrategy['type']>;
|
|
1174
|
+
}): RenderingStrategy;
|
|
1175
|
+
|
|
1176
|
+
interface StylesheetStore {
|
|
1177
|
+
stylesheets: Record<string, string>;
|
|
1178
|
+
loading: string[];
|
|
1179
|
+
errors: Array<{
|
|
1180
|
+
url: string;
|
|
1181
|
+
error: Error;
|
|
1182
|
+
}>;
|
|
1183
|
+
loadStylesheet(url: string): Promise<string>;
|
|
1184
|
+
setStylesheet(value: string, url?: string): string;
|
|
1185
|
+
parseStylesheet(stylesheet: Annotation['stylesheet'] | null): Promise<null | {
|
|
1186
|
+
id: string;
|
|
1187
|
+
type: 'CssStylesheet';
|
|
1188
|
+
value: string;
|
|
1189
|
+
}>;
|
|
1190
|
+
}
|
|
1191
|
+
declare const useStylesheetStore: zustand.UseBoundStore<zustand.StoreApi<StylesheetStore>>;
|
|
1192
|
+
declare function useRemoteStylesheet(stylesheet?: Annotation['stylesheet'] | null): readonly [Record<string, string>, {
|
|
1193
|
+
readonly id: string;
|
|
1194
|
+
readonly stylesheets: Record<string, string>;
|
|
1195
|
+
readonly loading: string[];
|
|
1196
|
+
readonly errors: {
|
|
1197
|
+
url: string;
|
|
1198
|
+
error: Error;
|
|
1199
|
+
}[];
|
|
1200
|
+
}];
|
|
1201
|
+
|
|
1133
1202
|
declare function useRequestAnnotation(opts?: {
|
|
1134
1203
|
onSuccess?: (r: AnnotationResponse) => void;
|
|
1135
1204
|
}): {
|
|
@@ -1348,4 +1417,4 @@ declare function getManifestSequence(vault: Vault, manifestOrRange: ManifestNorm
|
|
|
1348
1417
|
skipNonPaged?: boolean;
|
|
1349
1418
|
}): [Reference<'Canvas'>[], number[][]];
|
|
1350
1419
|
|
|
1351
|
-
export { AnnotationContext, AnnotationPageContext, AnnotationRequest, AnnotationRequestOptions, AnnotationResponse, type AnnotationStrategyProps, AnnotationStyleProvider, type AnnotationStyles, type AnnotationThemeDefinition, AtlasStore, Auth, type AuthAccessState, type AuthContextActions, type AuthContextCurrentActions, type AuthContextState, AuthProvider, AuthRContext, AuthReactContext, AuthReactContextActions, type AuthState, CanvasAnnotations, CanvasContext, CanvasStrategyProvider, CanvasWorldObject, CollectionContext, CombinedMetadata, ComplexTimelineProvider, ComplexTimelineStrategy, ContextBridge, type ControlsContext, ControlsReactContext, CreateCustomShape, type CreateCustomShapeProps, CustomContextBridge, CustomContextBridgeProvider, DefaultEditingTools, EmptyStrategy, EventEmitterProvider, EventsProvider, Image, type ImageProps, ImageService, ImageServiceLoaderContext, ImageServiceLoaderType, type ImageServiceRequestOptions, type ImageStrategyProps, ImageWithOptionalService, InnerViewerProvider, LanguageProvider, LanguageString, LocaleString, ManifestContext, ManifestMetadata, type MediaPlayerActions, MediaPlayerProvider, type MediaPlayerState, MediaStrategy, Metadata, type MetadataProps, PolygonSelector, type PolygonSelectorProps, type ProbeStore, RangeContext, ReactEmitterContext, ReactEventContext, ReactVaultContext, Render3DModelStrategy, RenderAccompanyingCanvas, RenderAnnotationEditing, RenderAnnotationStrategy, RenderAudioStrategy, RenderComplexTimelineStrategy, RenderContextProps, RenderEmptyStrategy, RenderImageStrategy, RenderSvgEditorControls, RenderTextualContentStrategy, RenderVideoStrategy, RenderYouTubeStrategy, RenderingStrategy, type ResourceContextType, ResourceProvider, ResourceReactContext, type ResourceRequestOptions, SVGTheme, SelectorControllerProvider, type SelectorHelperEventTypes, SequenceThumbnails, SimpleViewerContext, SimpleViewerProps, SimpleViewerProvider, SimpleViewerReactContext, SingleCanvasThumbnail, SingleImageStrategy, StrategyActions, type StrategyContext, StrategyReactContext, type SvgTheme, ThumbnailFallbackImage, TimelineKeyframe, TranslationProvider, TransliterationProvider, UnknownStrategy, type VaultActivatedAnnotation, VaultProvider, ViewerPresetContext, VirtualAnnotationProvider, VisibleCanvasReactContext, annotationResponseToSelector, authDetailsForResource, createAuthStateStore, createProbe, defaultEmitter, findAllCanvasesInRange, findFirstCanvasFromRange, findManifestSelectedRange, findSelectedRange, flattenAnnotationPageIds, formatTime, getComplexTimelineStrategy, getDefaultAnnotationStyles, getManifestSequence, getVideoStrategy, getVisibleCanvasesFromCanvasId, hasAuth, isBoxSelector, isRectangle, isSvgSelector, makeAccessServiceRequest, makeAccessTokenRequest, seraliseSupportedSelector, svgThemes, targetIntersects, useAnnotation, useAnnotationPage, useAnnotationPageManager, useAnnotationStyles, useAnnotationsAtTime, useAuthActions, useAuthService, useAuthStore, useAuthToken, useAuthTokens, useCanvas, useCanvasChoices, useCanvasClock, useCanvasSequence, useCanvasStartTime, useCanvasSubset, useClosestLanguage, useCollection, useComplexTimeline, useContextBridge, useCreateLocaleString, useCurrentAnnotationActions, useCurrentAnnotationMetadata, useCurrentAnnotationRequest, useCurrentAnnotationTransition, useCurrentAuth, useCustomContextBridge, useDispatch, useEmitter, useEvent, useEventEmitter, useEventListener, useExistingVault, useExternalCollection, useExternalManifest, useExternalResource, useIIIFLanguage, useImage, useImageService, useImageServiceLoader, useImageTile, useIsAuthEnabled, useLocaleString, useManifest, useMediaActions, useMediaElements, useMediaState, usePaintables, usePaintingAnnotations, usePolygonHelper, useRange, useRenderControls, useRequestAnnotation, useResourceContext, useResourceEvents, useResources, useSearchService, useSelectorController, useSelectorEmitter, useSelectorEvents, useSelectorHelper, useSimpleMediaPlayer, useSimpleViewer, useStrategy, useStyleHelper, useStyles, useSvgEditor, useSvgEditorControls, useThumbnail, useTranslations, useTransliteration, useVault, useVaultEffect, useVaultSelector, useViewerPreset, useVirtualAnnotationPage, useVirtualAnnotationPageContext, useVisibleCanvases };
|
|
1420
|
+
export { AnnotationContext, AnnotationPageContext, AnnotationRequest, AnnotationRequestOptions, AnnotationResponse, type AnnotationStrategyProps, AnnotationStyleProvider, type AnnotationStyles, type AnnotationThemeDefinition, AtlasStore, Auth, type AuthAccessState, type AuthContextActions, type AuthContextCurrentActions, type AuthContextState, AuthProvider, AuthRContext, AuthReactContext, AuthReactContextActions, type AuthState, CanvasAnnotations, CanvasContext, CanvasStrategyProvider, CanvasWorldObject, CollectionContext, CombinedMetadata, ComplexTimelineProvider, ComplexTimelineStrategy, ContextBridge, type ControlsContext, ControlsReactContext, CreateCustomShape, type CreateCustomShapeProps, CustomContextBridge, CustomContextBridgeProvider, DefaultEditingTools, EmptyStrategy, EventEmitterProvider, EventsProvider, Image, type ImageProps, ImageService, ImageServiceLoaderContext, ImageServiceLoaderType, type ImageServiceRequestOptions, type ImageStrategyProps, ImageWithOptionalService, InnerViewerProvider, LanguageProvider, LanguageString, LocaleString, ManifestContext, ManifestMetadata, type MediaPlayerActions, MediaPlayerProvider, type MediaPlayerState, MediaStrategy, Metadata, type MetadataProps, PolygonSelector, type PolygonSelectorProps, type ProbeStore, RangeContext, ReactEmitterContext, ReactEventContext, ReactVaultContext, RegionHighlight, Render3DModelStrategy, RenderAccompanyingCanvas, RenderAnnotationEditing, RenderAnnotationStrategy, RenderAudioStrategy, RenderComplexTimelineStrategy, RenderContextProps, RenderEmptyStrategy, RenderImageStrategy, RenderSvgEditorControls, RenderTextualContentStrategy, RenderVideoStrategy, RenderYouTubeStrategy, RenderingStrategy, ResizeWorldItem, type ResourceContextType, ResourceProvider, ResourceReactContext, type ResourceRequestOptions, SVGTheme, SelectorControllerProvider, type SelectorHelperEventTypes, SequenceThumbnails, SimpleViewerContext, SimpleViewerProps, SimpleViewerProvider, SimpleViewerReactContext, SingleCanvasThumbnail, SingleImageStrategy, StrategyActions, type StrategyContext, StrategyReactContext, type SvgTheme, ThumbnailFallbackImage, TimelineKeyframe, TranslationProvider, TransliterationProvider, UnknownStrategy, type VaultActivatedAnnotation, VaultProvider, ViewerPresetContext, VirtualAnnotationProvider, VisibleCanvasReactContext, annotationResponseToSelector, authDetailsForResource, createAuthStateStore, createProbe, defaultEmitter, findAllCanvasesInRange, findFirstCanvasFromRange, findManifestSelectedRange, findSelectedRange, flattenAnnotationPageIds, formatTime, getComplexTimelineStrategy, getDefaultAnnotationStyles, getManifestSequence, getVideoStrategy, getVisibleCanvasesFromCanvasId, hasAuth, isBoxSelector, isRectangle, isSvgSelector, makeAccessServiceRequest, makeAccessTokenRequest, seraliseSupportedSelector, svgThemes, targetIntersects, useAnnotation, useAnnotationPage, useAnnotationPageManager, useAnnotationStyles, useAnnotationsAtTime, useAuthActions, useAuthService, useAuthStore, useAuthToken, useAuthTokens, useCanvas, useCanvasChoices, useCanvasClock, useCanvasSequence, useCanvasStartTime, useCanvasSubset, useClosestLanguage, useCollection, useComplexTimeline, useContextBridge, useCreateLocaleString, useCurrentAnnotationActions, useCurrentAnnotationMetadata, useCurrentAnnotationRequest, useCurrentAnnotationTransition, useCurrentAuth, useCustomContextBridge, useDispatch, useEmitter, useEvent, useEventEmitter, useEventListener, useExistingVault, useExternalCollection, useExternalManifest, useExternalResource, useIIIFLanguage, useImage, useImageService, useImageServiceLoader, useImageTile, useIsAuthEnabled, useLocaleString, useManifest, useMediaActions, useMediaElements, useMediaState, usePaintables, usePaintingAnnotations, usePolygonHelper, useRange, useRemoteStylesheet, useRenderControls, useRequestAnnotation, useResourceContext, useResourceEvents, useResources, useSearchService, useSelectorController, useSelectorEmitter, useSelectorEvents, useSelectorHelper, useSimpleMediaPlayer, useSimpleViewer, useStaticRenderingStrategy, useStrategy, useStyleHelper, useStyles, useStylesheetStore, useSvgEditor, useSvgEditorControls, useThumbnail, useTranslations, useTransliteration, useVault, useVaultEffect, useVaultSelector, useViewerPreset, useVirtualAnnotationPage, useVirtualAnnotationPageContext, useVisibleCanvases };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as No,$a as xr,A as io,Aa as ue,Ab as Vr,B as ao,Ba as Jo,Bb as $r,C as so,Ca as Zo,Cb as Kr,D as lo,Da as jo,Db as _r,E as co,Ea as er,Eb as Qr,F as mo,Fa as tr,Fb as jr,G as uo,Ga as or,Gb as ve,H as fo,Ha as rr,Hb as en,I as po,Ia as nr,Ib as xe,J as go,Ja as ir,Jb as O,K as ho,Ka as ar,Kb as tn,L as yo,La as sr,Lb as cn,M as vo,Ma as lr,Mb as mn,N as xo,Na as cr,Nb as un,O as So,Oa as fe,Ob as Se,P as bo,Pa as de,Pb as be,Q as Io,Qa as mr,Qb as Ie,R as Co,Ra as ur,S as Ro,Sa as fr,T as Po,Ta as dr,U as ie,Ua as pe,V as wo,Va as ge,W as qo,Wa as pr,X as To,Xa as gr,Y as B,Ya as hr,Z as ae,Za as yr,_ as se,_a as vr,a as Vt,aa as Eo,ab as Sr,b as H,ba as Ao,bb as br,c as N,ca as le,cb as Ir,d as te,da as ce,db as Cr,e as $t,ea as ko,eb as T,f as Kt,fa as Mo,fb as he,g as P,ga as R,gb as Rr,h as z,ha as Ho,hb as Pr,i as _t,ia as zo,ib as X,j as oe,ja as Lo,jb as wr,k as Qt,ka as me,kb as qr,l as L,la as Bo,lb as Tr,m as re,ma as Oo,mb as Nr,n as Ut,na as w,nb as Er,o as Xt,oa as Fo,ob as Ar,p as Yt,pa as Wo,pb as kr,q as Gt,qa as Do,qb as Mr,r as Jt,ra as Vo,rb as Hr,s as Zt,sa as $o,sb as zr,t as jt,ta as Ko,tb as ye,u as eo,ua as _o,ub as Lr,v as to,va as Qo,vb as Br,w as ne,wa as Uo,wb as Or,x as oo,xa as Xo,xb as Fr,y as ro,ya as Yo,yb as Wr,z as no,za as Go,zb as Dr}from"./chunk-CX7UL3H3.js";import{a as Ur,b as Xr,c as Yr,d as Gr,e as Jr,f as Zr,g as on,h as rn,i as nn,j as an,k as sn,l as ln}from"./chunk-223VJXTE.js";export*from"@iiif/helpers/annotation-targets";import{useEffect as Qe}from"react";import{useCallback as Ce,useEffect as Ke,useRef as _e,useState as F}from"react";import{useStore as E}from"zustand";function Re(e){let[t,o]=F(0),r=R(),n=E(r,y=>y.tool.enabled),i=E(r,y=>y.tool.requestId),a=E(r,y=>y.getRequestId),s=E(r,y=>y.requestAnnotation),f=E(r,y=>y.completeRequest),m=E(r,y=>y.cancelRequest),l=_e(e?.onSuccess);l.current=e?.onSuccess;let[p,v]=F(!1),[b,S]=F(null),[c,u]=F(null),d=n&&i!==c,g=n&&i===c,h=Ce(async(y,$e)=>{if(c){let ee=l.current;v(!0);let M=await s(y,{...$e,requestId:c});if(M)return ee?.(M),o(U=>U+1),v(!1),S(M),M;let Q={id:c,cancelled:!0,...ce(y)};return ee?.(Q),S(Q),o(U=>U+1),v(!1),Q}return null},[s,c]),x=Ce(()=>{S(null),v(!1)},[]);return Ke(()=>{let y=a();return u(y.requestId),()=>{y.clear()}},[t]),{id:t,busy:d,isPending:p,isActive:g,requestId:c,requestAnnotation:h,cancelRequest:()=>c?m(c):void 0,completeRequest:()=>c?f(c):void 0,reset:x,data:b}}var xn=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function Pe(e){let{id:t,data:o,requestAnnotation:r,cancelRequest:n,isPending:i}=Re({onSuccess:a=>{e.updateShape(a.polygon)}});return Qe(()=>(r({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{n()}),[]),null}import{createContext as Ue,useCallback as we,useContext as Te,useEffect as qe,useMemo as Y,useState as Xe}from"react";import Ne from"mitt";import{jsx as Ye}from"react/jsx-runtime";var W=Ue(Ne());W.displayName="SelectorHelper";function wn({children:e}){return Ye(W.Provider,{value:Y(()=>Ne(),[]),children:e})}function qn(){return Te(W)}function Ee(e){let t=Ae(),[o,r]=Xe(!1);qe(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),qe(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let n=we(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=we(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:n,onHover:i,isHighlighted:o}}function Ae(){let e=Te(W);return Y(()=>({withSelector(t){return{on(o,r){let n=i=>{i&&i.selectorId===t&&r(i)};return e.on(o,n),()=>{e.off(o,n)}},emit(o,r){e.emit(o,{...r,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function Tn(){let e=Ae();return Y(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(o,r){return e.withSelector(t).on(o,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(t){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(t,o){return e.on(t,o)}}),[e])}import{jsx as ke}from"react/jsx-runtime";function Bn(e){let t=w(),o=e.annotationBucket,r=e.readOnly,n=e.id,{onClick:i,isHighlighted:a}=Ee(e.id),s=me(),f=a?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(r){let m="shape",l=e.polygon,p=l.open;return l?ke(m,{id:`shape-${n}`,points:l.points,open:p,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:f}):null}return ke(Pe,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{useCanvas as Ge}from"@atlas-viewer/atlas";import{forwardRef as Je,useImperativeHandle as Ze}from"react";import{Fragment as je,jsx as Me}from"react/jsx-runtime";var _n=Je(function({canvasId:t},o){let r=Ge(),n=ve(t||r?.id),i=P();return Ze(o,()=>n,[t,r]),!r||n.enabledPageIds.length===0?null:Me(je,{children:n.enabledPageIds.map(a=>Me(Ie.RenderAnnotationPage,{page:i.get(a)},a))})});import{useMemo as ot}from"react";import{useMemo as et}from"react";import{Fragment as tt,jsx as I,jsxs as D}from"react/jsx-runtime";function V({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:r=!0,allowHtml:n,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:f="No value",emptyLabelFallback:m="",separator:l,tableFooter:p,tableHeader:v}){let b=et(()=>{let c=(t||[]).reduce((d,g)=>[...d,...g.keys],[]),u={};for(let d of e){let g=d&&d.label?Object.values(d.label):[];for(let h of g)if(h&&h.length&&(c.indexOf(`metadata.${h[0]}`)!==-1||c.length===0)&&d){let x=`metadata.${h[0]}`;u[x]=u[x]?u[x]:[],u[x].push(d);break}}return u},[t,e]);return Object.keys(b).length===0&&r?I(tt,{children:i})||I("div",{className:a.empty,children:s}):t&&t.length?D("table",{className:a.container,children:[v,I("tbody",{children:t.map((c,u)=>{let d=[];for(let g of c.keys)for(let h of b[g]||[])d.push(I(T,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:h.value},u+"__"+g));return d.length===0?null:D("tr",{className:a.row,children:[I("td",{className:a.label,style:o?{minWidth:o}:{},children:I(T,{enableDangerouslySetInnerHTML:n,separator:l,defaultText:m,children:c.label})}),I("td",{className:a.value,children:d})]},u)})}),p]}):D("table",{className:a.container,children:[v,I("tbody",{children:e&&e.length?e.map((c,u)=>c?D("tr",{className:a.row,children:[I("td",{className:a.label,style:o?{minWidth:o}:{},children:I(T,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:c.label})}),I("td",{className:a.value,children:I(T,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:c.value})})]},u):null):null}),p]})}import{jsx as rt}from"react/jsx-runtime";function ni(e){let t=L(),o=w(),r=ne(),n=ot(()=>{let i=t?.metadata||[],a=o?.metadata||[],s=r?.metadata||[];return[...i,...a,...s]},[t,o,r]);return rt(V,{metadata:n,...e})}import{useEffect as st,useState as lt}from"react";import{createImageServiceRequest as nt,imageServiceRequestToString as it}from"@iiif/parser/image-3";import{useMemo as at}from"react";function G(e,t={},o=[]){return at(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let n=nt(e);return it({identifier:n.identifier,server:n.server,scheme:n.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:n.prefix,originalPath:n.originalPath})},[...o])}import{jsx as $}from"react/jsx-runtime";function ct(e){let t=typeof e.src=="string"?e.src:e.src.id,o=fe(),[r,n]=lt(!1),i;if(t){let s=o.loadServiceSync({id:t});s&&(i=s)}!i&&!r&&o.loadService({id:t}).then(()=>{n(!0)});let a=G(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return st(()=>()=>{n(!1)},[t]),a?$("img",{src:a,alt:e.alt,className:e.className,style:e.style}):$(mt,{...e,fetchImageService:!1})}function mt(e){if(e.fetchImageService)return $(ct,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=G(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?$("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{useMemo as ut,useState as ft}from"react";import{ErrorBoundary as dt}from"react-error-boundary";import{jsx as A,jsxs as gt}from"react/jsx-runtime";function Pi({src:e,errorFallback:t,interactive:o,skipSizes:r,children:n,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:f,y:m,...l}){let[p,v]=ft(),b=t||Se,[S,c]=xe(),u=ut(()=>{let g=c[e]?.status,h=S({id:e},{});return h?.height&&h.width&&g!=="loading"?{id:e,width:h.width,height:h.height,service:h,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:h.width,height:h.height}}}:null},[S,e,c]);if(!u||!u.height||!u.width)return null;let d=s?void 0:l.homePosition?l.homePosition.width/l.homePosition.height:u.width/u.height;return A(dt,{resetKeys:[],fallbackRender:g=>A(b,{...l,...g}),children:A(be,{...l,aspectRatio:d,containerProps:{style:{position:"relative"},...l.containerProps||{}},onCreated:g=>{v(g),l.onCreated&&l.onCreated(g)},children:gt(X.Provider,{value:p,children:[A(he,{image:u,id:u.id,isStatic:!o,x:f,y:m},u.id),A(pt,{viewerPreset:p,renderViewerControls:i,image:u,src:e,viewControlsDeps:a}),n]})})})}function pt({viewerPreset:e,renderViewerControls:t,image:o,src:r,viewControlsDeps:n}){return ue(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,X.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[r,e,...n||[]]),null}import{jsx as ht}from"react/jsx-runtime";function Ai(e){let t=L();return ht(V,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as bt,useRef as It}from"react";import*as J from"react-lazy-load-image-component";import{getValue as yt}from"@iiif/helpers/i18n";import{Fragment as He,jsx as q,jsxs as St}from"react/jsx-runtime";var{LazyLoadComponent:vt}=J||J.default;function ze(e){let{size:t,visible:o,classes:r,canvasId:n,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,f=q(xt,{...e}),m=q(vt,{threshold:300,style:{height:s,width:a},visibleByDefault:o,children:n?q(te,{canvas:n,children:f}):f});return i?q("figure",{className:r?.figure,children:m}):m}function xt({fallback:e,size:t,classes:o,showLabel:r,alt:n,dereference:i=!1}){let a=w(),s=t?.width||128,f=t?.height||t?.width||128,m=n||yt(a?.label)||"",l=de({width:s,height:f,allowUnsafe:!0},i);return!l||l.type!=="fixed"?q(He,{children:e}):St(He,{children:[q("div",{className:o?.imageWrapper,children:q("img",{className:o?.img,src:l.id,alt:m})}),r?q(T,{as:"figcaption",className:o?.label,children:a?.label}):null]})}import{jsx as k}from"react/jsx-runtime";function Ki({scrollBehaviour:e,dereference:t,flat:o,size:r,classes:n={},showLabel:i,figure:a,fallback:s}){let f=It(null),{items:m,sequence:l,currentSequenceIndex:p,setSequenceIndex:v}=ie(),b={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};bt(()=>{if(!f.current)return;let c=f.current.querySelector("[data-selected=true]");c&&c.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[p]);let S=[];for(let c of l){let u=[],d=l[p]===c;for(let g of c){let h=m[g];u.push(k("div",{className:d?b.item:n.item,children:k(ze,{classes:d?b:n,canvasId:h.id,size:r,dereference:t,showLabel:i,figure:a,placeholder:k("div",{style:{height:128,width:128}}),fallback:s})},g))}if(o){S.push(u);continue}S.push(k("div",{onClick:g=>{v(l.indexOf(c))},"data-selected":d,className:d?b.row:n.row,children:u},c.join("-")))}return k("div",{ref:f,className:n.container,children:S})}import{useStore as K}from"zustand";function Le(){let e=R(),t=K(e,i=>i.completeRequest),o=K(e,i=>i.polygonState.currentTool),r=K(e,i=>i.polygonState.selectedStamp),n=K(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:r,switchTool:n}}import{Fragment as Be,jsx as C,jsxs as Oe}from"react/jsx-runtime";var Ct={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function Ji({showShapes:e=!0,enabled:t=Ct,classNames:o={},icons:r={}}){let{currentTool:n,switchTool:i,selectedStamp:a}=Le();return Oe(Be,{children:[n,C("button",{className:o.button,onClick:i.pointer,"data-active":n==="pointer",children:r.PointerIcon||"Pointer"}),C("button",{className:o.button,onClick:i.hand,"data-active":n==="hand",children:r.HandIcon||"Hand"}),e?Oe(Be,{children:[t.box&&C("button",{className:o.button,onClick:i.box,"data-active":n==="box",children:r.BoxIcon||"Box"}),t.pen&&C("button",{className:o.button,onClick:i.pen,"data-active":n==="pen",children:r.PenIcon||"Pen"}),t.draw&&C("button",{className:o.button,onClick:i.draw,"data-active":n==="pencil",children:r.DrawIcon||"Draw"}),t.line&&C("button",{className:o.button,onClick:i.line,"data-active":n==="line",children:r.LineIcon||"Line"}),t.lineBox&&C("button",{className:o.button,onClick:i.lineBox,"data-active":n==="lineBox",children:r.LineBoxIcon||"LineBox"}),t.triangle&&C("button",{className:o.button,onClick:i.triangle,"data-active":n==="stamp"&&a?.id==="triangle",children:r.TriangleIcon||"Triangle"}),t.hexagon&&C("button",{className:o.button,onClick:i.hexagon,"data-active":n==="stamp"&&a?.id==="hexagon",children:r.HexagonIcon||"Hexagon"}),t.circle&&C("button",{className:o.button,"data-active":n==="stamp"&&a?.id==="circle",onClick:i.circle,children:r.CircleIcon||"Circle"})]}):null,t.delete&&C("button",{className:o.button,onClick:i.remove,children:r.DeleteForeverIcon||"Delete"})]})}import{jsx as Rt}from"react/jsx-runtime";function ta({annotation:e,children:t}){return Rt(N,{value:{annotation:e},children:t})}import{jsx as Pt}from"react/jsx-runtime";function ia({annotationPage:e,children:t}){return Pt(N,{value:{annotationPage:e},children:t})}import{jsx as wt}from"react/jsx-runtime";function ca({collection:e,children:t}){return wt(N,{value:{collection:e},children:t})}function da(e,t={}){return O(t)}import{useCanvas as qt}from"@atlas-viewer/atlas";import{useEffect as Tt,useMemo as Z,useState as Nt}from"react";function xa({canvasId:e}={}){let t=qt(),o=oe(),r=Z(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[n,i]=Nt({}),a=ye();Tt(()=>{let m=l=>{let p=l.partOf.canvasId;p&&i(v=>({...v,[p]:l.choice}))};return a.on("choice-change",m),()=>{a.off("choice-change",m)}},[]);let s=Z(()=>{let m=[];for(let l of r){let p=n[l];p&&m.push({canvasId:l,choice:p})}return m},[r,n]),f=Z(()=>({makeChoice:(m,l)=>{a.emit("make-choice",{choiceId:m,...l})}}),[a]);return{choices:s,actions:f}}function ba(e,t=!1){}function Pa(e){let o=H().manifest,r=e?e.map(n=>typeof n=="string"?n:n?.id):[];return z(n=>{let i=o?n.iiif.entities.Manifest[o]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let f of i?.items||[])r.indexOf(f.id)!==-1&&s.push(f);return s},[r.join("/")])}import{useMemo as Et}from"react";function Ea(e,t=[]){let{id:o,selector:r}=e,n=H(),i=o||n.collection,a=z(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return Et(()=>{if(a)return r?r(a):a},[a,r,...t])}import{startTransition as At,useMemo as kt}from"react";import{useStore as Fe}from"zustand";function za(){let e=R(),t=Fe(e,r=>r.completeRequest),o=Fe(e,r=>r.cancelRequest);return kt(()=>({saveAnnotation:()=>{At(()=>{t()})},cancelRequest:o}),[t,o])}import{useCallback as Mt}from"react";import{useStore as j}from"zustand";function Wa({requestId:e}={}){let t=R(),o=j(t,s=>s.metadata),r=j(t,s=>s.tool.requestId),n=e||r,i=j(t,s=>s.setMetadata),a=Mt(s=>i(s,n||void 0),[i,n]);return[n?o[n]||{}:{},a]}import{useStore as Ht}from"zustand";function _a(e){let t=R(),o=Ht(t,r=>r.tool.requestId);B("polygons.start-transition",r=>{e.requestId&&o!==e.requestId||e?.onStart?.(r.transitionIntent)},[o,e.requestId]),B("polygons.end-transition",r=>{e.requestId&&o!==e.requestId||e?.onEnd?.(r.transitionIntent,r.response)},[o,e.requestId]),B("polygons.transition",r=>{e.requestId&&o!==e.requestId||e?.onTransition?.(r.transitionIntent)},[o,e.requestId])}import{useEffect as zt,useMemo as Lt}from"react";import{createEventsHelper as Bt}from"@iiif/helpers/events";function Ga(e,t,o,r,n=[]){let i=P(),a=Lt(()=>Bt(i),[i]);zt(()=>{let s=e;return s?(a.addEventListener(s,t,o,r),()=>{a.removeEventListener(s,t,o)}):()=>{}},[a,e,t,...n])}function es(e,t){let{id:o,isLoaded:r,error:n,resource:i,requestId:a,cached:s}=re(e,t);return{id:o,isLoaded:r,error:n,manifest:i,requestId:a,cached:s}}import{getImageServices as We}from"@iiif/parser/image-3";import{useEffect as Ot,useMemo as De,useState as _}from"react";function Ve({cacheKey:e}={}){let t=w(),o=O(),r=P(),n=pe(),i=ge(),[a,s]=_(void 0),[f,m]=_(!1),[l,p]=_("idle"),[v,b]=_(void 0),S=t?t.id:"undefined",c=De(()=>{try{if(t&&o.length){let d=o[0],g=r.get(d.body[0]),x=We(g)[0];return x&&n(x,{width:x.width||t.width,height:x.height||t.height},!0)||void 0}}catch(d){console.error(d)}},[S,e,t]),u=l==="success"&&a?a:c;return Ot(()=>{(async()=>{try{if(t&&o.length){let d=o[0],g=r.get(d.body[0]),x=We(g)[0];if(!x)return;m(!0),p("loading");try{let y=await i(x,{width:x.width||t.width,height:x.height||t.height})||void 0;s(y),p("success"),m(!1)}catch(y){p("error"),b(y)}}}catch(d){p("error"),b(d)}})()},[S,e]),De(()=>({data:u,isFetching:f,status:l,error:v}),[u,f,l,v])}function ms(){let e=Ve();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}import{createStylesHelper as Ft}from"@iiif/helpers/styles";import{useMemo as Wt}from"react";function gs(){let e=P();return Wt(()=>Ft(e),[e])}function ys(e,t){let{x:o,y:r,width:n,height:i}=e,{x:a,y:s}=t,{width:f,height:m}=t;return o+n>a&&o<a+f&&r+i>s&&r<s+m}import Dt from"tiny-invariant";function Cs(e,t){let o=e.boundingBox||se(e.polygon);if(e.polygon&&!ae(e.polygon.points)){let r=e.target||le(e.polygon,t);return Dt(r?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...o||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:r.value}}return{type:"BoxSelector",spatial:o}}export{ta as AnnotationContext,ia as AnnotationPageContext,Bo as AnnotationStyleProvider,zo as AtlasStoreProvider,Mo as AtlasStoreReactContext,bo as Auth,fo as AuthProvider,co as AuthRContext,mo as AuthReactContext,uo as AuthReactContextActions,_n as CanvasAnnotations,te as CanvasContext,Ie as CanvasPanel,mn as CanvasStrategyProvider,un as CanvasWorldObject,ca as CollectionContext,ni as CombinedMetadata,fr as ComplexTimelineProvider,Dr as ContextBridge,er as ControlsReactContext,Pe as CreateCustomShape,Or as CustomContextBridge,Fr as CustomContextBridgeProvider,Qr as DefaultEditingTools,qo as EventEmitterProvider,Lr as EventsProvider,mt as Image,Pi as ImageService,cr as ImageServiceLoaderContext,Ro as InnerViewerProvider,gr as LanguageProvider,Sr as LanguageString,T as LocaleString,Xt as ManifestContext,Ai as ManifestMetadata,Uo as MediaPlayerProvider,V as Metadata,Bn as PolygonSelector,Yt as RangeContext,wo as ReactEmitterContext,zr as ReactEventContext,$t as ReactVaultContext,jo as Render3DModelStrategy,or as RenderAccompanyingCanvas,Do as RenderAnnotation,_r as RenderAnnotationEditing,$o as RenderAnnotationPage,sr as RenderAnnotationStrategy,ur as RenderAudioStrategy,Rr as RenderComplexTimelineStrategy,Pr as RenderEmptyStrategy,qr as RenderImageStrategy,Ji as RenderSvgEditorControls,Tr as RenderTextualContentStrategy,Nr as RenderVideoStrategy,Er as RenderYouTubeStrategy,N as ResourceProvider,Vt as ResourceReactContext,wn as SelectorControllerProvider,Ki as SequenceThumbnails,Po as SimpleViewerProvider,Co as SimpleViewerReactContext,ze as SingleCanvasThumbnail,Jo as StrategyReactContext,mr as ThumbnailFallbackImage,pr as TranslationProvider,hr as TransliterationProvider,Kt as VaultProvider,X as ViewerPresetContext,ar as VirtualAnnotationProvider,_t as VisibleCanvasReactContext,Cs as annotationResponseToSelector,ao as authDetailsForResource,ko as createAtlasStore,no as createAuthStateStore,io as createProbe,Hr as defaultEmitter,kr as defaultSvgTheme,Yr as emptyActions,Zr as emptyStrategy,Jt as findAllCanvasesInRange,Gt as findFirstCanvasFromRange,Zt as findManifestSelectedRange,jt as findSelectedRange,jr as flattenAnnotationPageIds,Yo as formatTime,on as get3dStrategy,Ho as getAtlasStoreByName,sn as getComplexTimelineStrategy,Lo as getDefaultAnnotationStyles,rn as getImageStrategy,to as getManifestSequence,Xr as getParsedTargetSelector,ln as getRenderingStrategy,nn as getTextualContentStrategy,an as getVideoStrategy,eo as getVisibleCanvasesFromCanvasId,ro as hasAuth,Eo as isBoxSelector,ae as isRectangle,No as isSvgSelector,lo as makeAccessServiceRequest,so as makeAccessTokenRequest,Ur as parseSpecificResource,le as polygonToTarget,ce as requestToAnnotationResponse,Ao as seraliseSupportedSelector,xn as svgThemes,ys as targetIntersects,Gr as unknownResponse,Jr as unsupportedStrategy,Oo as useAnnotation,Vo as useAnnotationPage,ve as useAnnotationPageManager,me as useAnnotationStyles,da as useAnnotationsAtTime,$r as useAtlasContextMenu,R as useAtlasStore,ho as useAuthActions,vo as useAuthService,go as useAuthStore,So as useAuthToken,xo as useAuthTokens,w as useCanvas,xa as useCanvasChoices,ba as useCanvasClock,oo as useCanvasSequence,Xo as useCanvasStartTime,Pa as useCanvasSubset,br as useClosestLanguage,Ea as useCollection,dr as useComplexTimeline,Wr as useContextBridge,Vr as useContextMenuStore,Cr as useCreateLocaleString,za as useCurrentAnnotationActions,Wa as useCurrentAnnotationMetadata,Kr as useCurrentAnnotationRequest,_a as useCurrentAnnotationTransition,yo as useCurrentAuth,Br as useCustomContextBridge,rr as useDispatch,To as useEmitter,B as useEvent,ye as useEventEmitter,Ga as useEventListener,Qt as useExistingVault,es as useExternalCollection,Ut as useExternalManifest,re as useExternalResource,vr as useIIIFLanguage,G as useImage,Ve as useImageService,fe as useImageServiceLoader,ms as useImageTile,po as useIsAuthEnabled,xe as useLoadImageService,Ir as useLocaleString,L as useManifest,_o as useMediaActions,Qo as useMediaElements,Ko as useMediaState,tn as usePaintables,O as usePaintingAnnotations,Ar as usePolygonHelper,ne as useRange,tr as useRenderControls,cn as useRenderingStrategy,Re as useRequestAnnotation,H as useResourceContext,Fo as useResourceEvents,en as useResources,Io as useSearchService,Ae as useSelectorController,qn as useSelectorEmitter,Ee as useSelectorEvents,Tn as useSelectorHelper,Go as useSimpleMediaPlayer,ie as useSimpleViewer,Zo as useStrategy,gs as useStyleHelper,Wo as useStyles,Mr as useSvgEditor,Le as useSvgEditorControls,de as useThumbnail,xr as useTranslations,yr as useTransliteration,P as useVault,lr as useVaultEffect,z as useVaultSelector,wr as useViewerPreset,nr as useVirtualAnnotationPage,ir as useVirtualAnnotationPageContext,oe as useVisibleCanvases};
|
|
1
|
+
import{$ as ko,$a as Ir,A as lo,Aa as er,Ab as _r,B as co,Ba as tr,Bb as Qr,C as mo,Ca as or,Cb as Ur,D as uo,Da as rr,Db as Xr,E as fo,Ea as de,Eb as Yr,F as po,Fa as nr,Fb as Gr,G as go,Ga as ir,Gb as Jr,H as ho,Ha as ar,Hb as Zr,I as yo,Ia as sr,Ib as jr,J as vo,Ja as lr,Jb as sn,K as xo,Ka as cr,Kb as Se,L as So,La as mr,Lb as ln,M as bo,Ma as ur,Mb as be,N as Io,Na as fr,Nb as A,O as Co,Oa as dr,Ob as cn,P as Ro,Pa as pr,Pb as gn,Q as Po,Qa as gr,Qb as hn,R as wo,Ra as hr,Rb as yn,S as qo,Sa as pe,Sb as Ce,T as To,Ta as ge,Tb as Re,U as se,Ua as yr,Ub as Pe,V as No,Va as vr,W as Eo,Wa as xr,X as Ao,Xa as Sr,Y as W,Ya as he,Z as le,Za as ye,_ as ce,_a as br,a as _t,aa as Mo,ab as Cr,b as B,ba as Ho,bb as Rr,c as E,ca as me,cb as Pr,d as re,da as ue,db as wr,e as Qt,ea as zo,eb as qr,f as Ut,fa as Lo,fb as Tr,g as R,ga as P,gb as Nr,h as O,ha as Bo,hb as Er,i as Xt,ia as Oo,ib as N,j as ne,ja as Fo,jb as ve,k as Yt,ka as fe,kb as Ar,l as F,la as Wo,lb as kr,m as ie,ma as Do,mb as G,n as Gt,na as Vo,nb as Mr,o as Jt,oa as $o,ob as Hr,p as Zt,pa as w,pb as zr,q as jt,qa as Ko,qb as Lr,r as eo,ra as _o,rb as Br,s as to,sa as Qo,sb as Or,t as oo,ta as Uo,tb as Fr,u as ro,ua as Xo,ub as Wr,v as no,va as Yo,vb as Dr,w as ae,wa as Go,wb as Vr,x as io,xa as Jo,xb as xe,y as ao,ya as Zo,yb as $r,z as so,za as jo,zb as Kr}from"./chunk-SNWQWQTN.js";import"./chunk-UNH7HXGJ.js";import{a as en,b as tn,c as on,d as rn,e as nn,f as an,g as mn,h as un,i as fn,j as dn,k as pn,l as Ie}from"./chunk-223VJXTE.js";export*from"@iiif/helpers/annotation-targets";import{useEffect as Xe}from"react";import{useCallback as we,useEffect as Qe,useRef as Ue,useState as D}from"react";import{useStore as k}from"zustand";function qe(e){let[t,o]=D(0),r=P(),n=k(r,d=>d.tool.enabled),i=k(r,d=>d.tool.requestId),a=k(r,d=>d.getRequestId),s=k(r,d=>d.requestAnnotation),f=k(r,d=>d.completeRequest),m=k(r,d=>d.cancelRequest),l=Ue(e?.onSuccess);l.current=e?.onSuccess;let[h,S]=D(!1),[b,x]=D(null),[p,v]=D(null),u=n&&i!==p,g=n&&i===p,c=we(async(d,q)=>{if(p){let M=l.current;S(!0);let L=await s(d,{...q,requestId:p});if(L)return M?.(L),o(Y=>Y+1),S(!1),x(L),L;let X={id:p,cancelled:!0,...ue(d)};return M?.(X),x(X),o(Y=>Y+1),S(!1),X}return null},[s,p]),y=we(()=>{x(null),S(!1)},[]);return Qe(()=>{let d=a();return v(d.requestId),()=>{d.clear()}},[t]),{id:t,busy:u,isPending:h,isActive:g,requestId:p,requestAnnotation:c,cancelRequest:()=>p?m(p):void 0,completeRequest:()=>p?f(p):void 0,reset:y,data:b}}var Pn=[{name:"Default",outer:{borderWidth:4,borderColor:"rgba(255, 255, 255, .4)"},inner:{borderWidth:2,borderColor:"#000"}},{name:"High contrast",outer:{borderWidth:3,borderColor:"#fff"},inner:{borderWidth:1,borderColor:"#000"}},{name:"Lightsaber",outer:{borderWidth:"4",borderColor:"rgba(56,68,255,0.64)"},inner:{borderWidth:"2",borderColor:"#fff"}},{name:"Bright",outer:{borderWidth:"6",borderColor:"#25d527"},inner:{borderWidth:"3",borderColor:"#a916ff"}},{name:"pink",outer:{borderWidth:"4",borderColor:"#ff00ff"},inner:{borderWidth:"2",borderColor:"#ffffff"}},{name:"fine (dark)",outer:{borderWidth:"1",borderColor:"#000000"},inner:{}},{name:"fine (light)",outer:{borderWidth:"1",borderColor:"#FFF"},inner:{}}];function Te(e){let{id:t,data:o,requestAnnotation:r,cancelRequest:n,isPending:i}=qe({onSuccess:a=>{e.updateShape(a.polygon)}});return Xe(()=>(r({type:"polygon",open:e.shape?.open,points:e.shape?.points}),()=>{n()}),[]),null}import{createContext as Ye,useCallback as Ne,useContext as Ae,useEffect as Ee,useMemo as J,useState as Ge}from"react";import ke from"mitt";import{jsx as Je}from"react/jsx-runtime";var V=Ye(ke());V.displayName="SelectorHelper";function kn({children:e}){return Je(V.Provider,{value:J(()=>ke(),[]),children:e})}function Mn(){return Ae(V)}function Me(e){let t=He(),[o,r]=Ge(!1);Ee(()=>t.withSelector(e).on("highlight",()=>{r(!0)}),[t,e]),Ee(()=>t.withSelector(e).on("clear-highlight",()=>{r(!1)}),[t,e]);let n=Ne(a=>{t.emit("click",{selectorId:e,event:a})},[e,t]),i=Ne(a=>{t.emit("hover",{selectorId:e,event:a})},[e,t]);return{controller:t,onClick:n,onHover:i,isHighlighted:o}}function He(){let e=Ae(V);return J(()=>({withSelector(t){return{on(o,r){let n=i=>{i&&i.selectorId===t&&r(i)};return e.on(o,n),()=>{e.off(o,n)}},emit(o,r){e.emit(o,{...r,selectorId:t})}}},on(t,o){return e.on(t,o),()=>{e.off(t,o)}},emit(t,o){e.emit(t,o)}}),[e])}function Hn(){let e=He();return J(()=>({withSelector(t){return{highlight(){e.emit("highlight",{selectorId:t})},clearHighlight(){e.emit("clear-highlight",{selectorId:t})},zoomTo(){e.emit("zoom-to",{selectorId:t})},addEventListener(o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(o,r){return e.withSelector(t).on(o,r)}}},highlight(t){e.emit("highlight",{selectorId:t})},clearHighlight(t){e.emit("clear-highlight",{selectorId:t})},zoomTo(t){e.emit("zoom-to",{selectorId:t})},addEventListener(t,o,r){return e.emit("event-listener",{selectorId:t,name:o,callback:r}),()=>{e.emit("remove-event-listener",{selectorId:t,name:o,callback:r})}},getImagePreview(t){return new Promise((o,r)=>{e.emit("image-preview-request",{selectorId:t,resolve:o,reject:r})})},on(t,o){return e.on(t,o)}}),[e])}import{jsx as ze}from"react/jsx-runtime";function $n(e){let t=w(),o=e.annotationBucket,r=e.readOnly,n=e.id,{onClick:i,isHighlighted:a}=Me(e.id),s=fe(),f=a?s.highlighted:s[o||"hidden"]||s.hidden;if(!t)return null;if(r){let m="shape",l=e.polygon,h=l.open;return l?ze(m,{id:`shape-${n}`,points:l.points,open:h,onClick:i,relativeStyle:!0,target:{x:0,y:0,width:t.width,height:t.height},style:f}):null}return ze(Te,{image:t,shape:e.polygon||{id:e.id,open:!0,points:[]},updateShape:e.updatePolygon,theme:e.theme,controlsHtmlId:e.controlsHtmlId,renderControls:e.renderControls})}import{useCanvas as Ze}from"@atlas-viewer/atlas";import{forwardRef as je,useImperativeHandle as et}from"react";import{Fragment as tt,jsx as Le}from"react/jsx-runtime";var Jn=je(function({canvasId:t},o){let r=Ze(),n=Se(t||r?.id),i=R();return et(o,()=>n,[t,r]),!r||n.enabledPageIds.length===0?null:Le(tt,{children:n.enabledPageIds.map(a=>Le(Pe.RenderAnnotationPage,{page:i.get(a)},a))})});import{useMemo as nt}from"react";import{useMemo as ot}from"react";import{Fragment as rt,jsx as I,jsxs as $}from"react/jsx-runtime";function K({metadata:e=[],config:t,labelWidth:o=16,showEmptyMessage:r=!0,allowHtml:n,emptyFallback:i,classes:a={},emptyMessage:s="No metadata available",emptyValueFallback:f="No value",emptyLabelFallback:m="",separator:l,tableFooter:h,tableHeader:S,customLabelRender:b,customValueRender:x}){let p=ot(()=>{let u=(t||[]).reduce((c,y)=>[...c,...y.keys],[]),g={};for(let c of e){let y=c?.label?Object.values(c.label):[];for(let d of y)if(d?.length&&(u.indexOf(`metadata.${d[0]}`)!==-1||u.length===0)&&c){let q=`metadata.${d[0]}`;g[q]=g[q]?g[q]:[],g[q].push(c);break}}return g},[t,e]);return Object.keys(p).length===0&&r?I(rt,{children:i})||I("div",{className:a.empty,children:s}):t?.length?$("table",{className:a.container,children:[S,I("tbody",{children:t.map((u,g)=>{let c=[];for(let d of u.keys)for(let q of p[d]||[]){let M=I(N,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:q.value},g+"__"+d);x?c.push(x(q,M)):c.push(M)}if(c.length===0)return null;let y=I(N,{enableDangerouslySetInnerHTML:n,separator:l,defaultText:m,children:u.label});return $("tr",{className:a.row,children:[I("td",{className:a.label,style:o?{minWidth:o}:{},children:b?b(u.label,y):y}),I("td",{className:a.value,children:c})]},g)})}),h]}):$("table",{className:a.container,children:[S,I("tbody",{children:e?.length?e.map((u,g)=>{if(!u)return null;let c=I(N,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:u.label}),y=I(N,{enableDangerouslySetInnerHTML:n,defaultText:f,separator:l,children:u.value});return $("tr",{className:a.row,children:[I("td",{className:a.label,style:o?{minWidth:o}:{},children:b?b(u.label,c):c}),I("td",{className:a.value,children:x?x(u,y):y})]},g)}):null}),h]})}import{jsx as it}from"react/jsx-runtime";function mi(e){let t=F(),o=w(),r=ae(),n=nt(()=>{let i=t?.metadata||[],a=o?.metadata||[],s=r?.metadata||[];return[...i,...a,...s]},[t,o,r]);return it(K,{metadata:n,...e})}import{useEffect as ct,useState as mt}from"react";import{createImageServiceRequest as at,imageServiceRequestToString as st}from"@iiif/parser/image-3";import{useMemo as lt}from"react";function Z(e,t={},o=[]){return lt(()=>{if(!e)return null;let r=t.quality;e&&e.extraQualities&&t.quality&&(e.extraQualities.includes(t.quality)||(r="default"));let n=at(e);return st({identifier:n.identifier,server:n.server,scheme:n.scheme,type:"image",size:{max:!t.size?.width&&!t.size?.height,confined:!1,upscaled:!1,...t.size||{}},format:t.format||"jpg",region:t.region||{full:!0},rotation:t?.rotation?Number.isInteger(t.rotation)?{angle:t.rotation}:t.rotation:{angle:0},quality:r||"default",prefix:n.prefix,originalPath:n.originalPath})},[...o])}import{jsx as _}from"react/jsx-runtime";function ut(e){let t=typeof e.src=="string"?e.src:e.src.id,o=pe(),[r,n]=mt(!1),i;if(t){let s=o.loadServiceSync({id:t});s&&(i=s)}!i&&!r&&o.loadService({id:t}).then(()=>{n(!0)});let a=Z(i,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[r,e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return ct(()=>()=>{n(!1)},[t]),a?_("img",{src:a,alt:e.alt,className:e.className,style:e.style}):_(ft,{...e,fetchImageService:!1})}function ft(e){if(e.fetchImageService)return _(ut,{...e});let t=typeof e.src=="string"?{id:e.src,profile:"level0"}:e.src,o=Z(t,{size:e.size,selector:e.region,rotation:e.rotation,format:e.format,region:e.region,quality:e.quality},[e.src,e.size,e.region,e.rotation,e.format,e.region,e.quality]);return o?_("img",{src:o,alt:e.alt,className:e.className,style:e.style}):null}import{useMemo as dt,useState as pt}from"react";import{ErrorBoundary as gt}from"react-error-boundary";import{jsx as H,jsxs as yt}from"react/jsx-runtime";function Ai({src:e,errorFallback:t,interactive:o,skipSizes:r,children:n,renderViewerControls:i,viewControlsDeps:a,fluid:s,x:f,y:m,...l}){let[h,S]=pt(),b=t||Ce,[x,p]=be(),v=dt(()=>{let g=p[e]?.status,c=x({id:e},{});return c?.height&&c.width&&g!=="loading"?{id:e,width:c.width,height:c.height,service:c,type:"Image",selector:{type:"BoxSelector",spatial:{x:0,y:0,width:c.width,height:c.height}},target:{type:"BoxSelector",spatial:{x:0,y:0,width:c.width,height:c.height}}}:null},[x,e,p]);if(!v||!v.height||!v.width)return null;let u=s?void 0:l.homePosition?l.homePosition.width/l.homePosition.height:v.width/v.height;return H(gt,{resetKeys:[],fallbackRender:g=>H(b,{...l,...g}),children:H(Re,{...l,aspectRatio:u,containerProps:{style:{position:"relative"},...l.containerProps||{}},onCreated:g=>{S(g),l.onCreated&&l.onCreated(g)},children:yt(G.Provider,{value:h,children:[H(ve,{image:v,id:v.id,isStatic:!o,x:f,y:m},v.id),H(ht,{viewerPreset:h,renderViewerControls:i,image:v,src:e,viewControlsDeps:a}),n]})})})}function ht({viewerPreset:e,renderViewerControls:t,image:o,src:r,viewControlsDeps:n}){return de(e&&t?"overlay":"none",`canvas-portal-controls-${r}`,G.Provider,t&&o?{value:e||null,children:t({image:o,images:[o],type:"images"})}:{},[r,e,...n||[]]),null}import{jsx as vt}from"react/jsx-runtime";function Bi(e){let t=F();return vt(K,{metadata:t?.metadata||[],...e})}import{useLayoutEffect as Ct,useRef as Rt}from"react";import*as j from"react-lazy-load-image-component";import{getValue as xt}from"@iiif/helpers/i18n";import{Fragment as Be,jsx as T,jsxs as It}from"react/jsx-runtime";var{LazyLoadComponent:St}=j||j.default;function Oe(e){let{size:t,visible:o,classes:r,canvasId:n,figure:i}=e,a=t?.width||128,s=t?.height||t?.width||128,f=T(bt,{...e}),m=T(St,{threshold:300,style:{height:s,width:a},visibleByDefault:o,children:n?T(re,{canvas:n,children:f}):f});return i?T("figure",{className:r?.figure,children:m}):m}function bt({fallback:e,size:t,classes:o,showLabel:r,alt:n,dereference:i=!1}){let a=w(),s=t?.width||128,f=t?.height||t?.width||128,m=n||xt(a?.label)||"",l=ge({width:s,height:f,allowUnsafe:!0},i);return!l||l.type!=="fixed"?T(Be,{children:e}):It(Be,{children:[T("div",{className:o?.imageWrapper,children:T("img",{className:o?.img,src:l.id,alt:m})}),r?T(N,{as:"figcaption",className:o?.label,children:a?.label}):null]})}import{jsx as z}from"react/jsx-runtime";function Gi({scrollBehaviour:e,dereference:t,flat:o,size:r,classes:n={},showLabel:i,figure:a,fallback:s}){let f=Rt(null),{items:m,sequence:l,currentSequenceIndex:h,setSequenceIndex:S}=se(),b={row:n.selected?.row||n.row,item:n.selected?.item||n.item,figure:n.selected?.figure||n.figure,img:n.selected?.img||n.img,label:n.selected?.label||n.label,imageWrapper:n.selected?.imageWrapper||n.imageWrapper};Ct(()=>{if(!f.current)return;let p=f.current.querySelector("[data-selected=true]");p&&p.scrollIntoView({behavior:e||"instant",block:"nearest",inline:"center"})},[h]);let x=[];for(let p of l){let v=[],u=l[h]===p;for(let g of p){let c=m[g];v.push(z("div",{className:u?b.item:n.item,children:z(Oe,{classes:u?b:n,canvasId:c.id,size:r,dereference:t,showLabel:i,figure:a,placeholder:z("div",{style:{height:128,width:128}}),fallback:s})},g))}if(o){x.push(v);continue}x.push(z("div",{onClick:g=>{S(l.indexOf(p))},"data-selected":u,className:u?b.row:n.row,children:v},p.join("-")))}return z("div",{ref:f,className:n.container,children:x})}import{useStore as Q}from"zustand";function Fe(){let e=P(),t=Q(e,i=>i.completeRequest),o=Q(e,i=>i.polygonState.currentTool),r=Q(e,i=>i.polygonState.selectedStamp),n=Q(e,i=>i.switchTool);return{completeRequest:t,currentTool:o,selectedStamp:r,switchTool:n}}import{Fragment as We,jsx as C,jsxs as De}from"react/jsx-runtime";var Pt={draw:!0,polygon:!0,line:!0,lineBox:!0,box:!0,triangle:!0,hexagon:!0,circle:!0,delete:!0,pen:!0};function ra({showShapes:e=!0,enabled:t=Pt,classNames:o={},icons:r={}}){let{currentTool:n,switchTool:i,selectedStamp:a}=Fe();return De(We,{children:[n,C("button",{className:o.button,onClick:i.pointer,"data-active":n==="pointer",children:r.PointerIcon||"Pointer"}),C("button",{className:o.button,onClick:i.hand,"data-active":n==="hand",children:r.HandIcon||"Hand"}),e?De(We,{children:[t.box&&C("button",{className:o.button,onClick:i.box,"data-active":n==="box",children:r.BoxIcon||"Box"}),t.pen&&C("button",{className:o.button,onClick:i.pen,"data-active":n==="pen",children:r.PenIcon||"Pen"}),t.draw&&C("button",{className:o.button,onClick:i.draw,"data-active":n==="pencil",children:r.DrawIcon||"Draw"}),t.line&&C("button",{className:o.button,onClick:i.line,"data-active":n==="line",children:r.LineIcon||"Line"}),t.lineBox&&C("button",{className:o.button,onClick:i.lineBox,"data-active":n==="lineBox",children:r.LineBoxIcon||"LineBox"}),t.triangle&&C("button",{className:o.button,onClick:i.triangle,"data-active":n==="stamp"&&a?.id==="triangle",children:r.TriangleIcon||"Triangle"}),t.hexagon&&C("button",{className:o.button,onClick:i.hexagon,"data-active":n==="stamp"&&a?.id==="hexagon",children:r.HexagonIcon||"Hexagon"}),t.circle&&C("button",{className:o.button,"data-active":n==="stamp"&&a?.id==="circle",onClick:i.circle,children:r.CircleIcon||"Circle"})]}):null,t.delete&&C("button",{className:o.button,onClick:i.remove,children:r.DeleteForeverIcon||"Delete"})]})}import{jsx as wt}from"react/jsx-runtime";function sa({annotation:e,children:t}){return wt(E,{value:{annotation:e},children:t})}import{jsx as qt}from"react/jsx-runtime";function ua({annotationPage:e,children:t}){return qt(E,{value:{annotationPage:e},children:t})}import{jsx as Tt}from"react/jsx-runtime";function ga({collection:e,children:t}){return Tt(E,{value:{collection:e},children:t})}function xa(e,t={}){return A(t)}import{useCanvas as Nt}from"@atlas-viewer/atlas";import{useEffect as Et,useMemo as ee,useState as At}from"react";function Pa({canvasId:e}={}){let t=Nt(),o=ne(),r=ee(()=>e?[e]:t?[t.id]:o.map(m=>m.id),[e,t,o]),[n,i]=At({}),a=xe();Et(()=>{let m=l=>{let h=l.partOf.canvasId;h&&i(S=>({...S,[h]:l.choice}))};return a.on("choice-change",m),()=>{a.off("choice-change",m)}},[]);let s=ee(()=>{let m=[];for(let l of r){let h=n[l];h&&m.push({canvasId:l,choice:h})}return m},[r,n]),f=ee(()=>({makeChoice:(m,l)=>{a.emit("make-choice",{choiceId:m,...l})}}),[a]);return{choices:s,actions:f}}function qa(e,t=!1){}function Aa(e){let o=B().manifest,r=e?e.map(n=>typeof n=="string"?n:n?.id):[];return O(n=>{let i=o?n.iiif.entities.Manifest[o]:void 0,a=i?.items||[];if(typeof e>"u")return a;let s=[];for(let f of i?.items||[])r.indexOf(f.id)!==-1&&s.push(f);return s},[r.join("/")])}import{useMemo as kt}from"react";function La(e,t=[]){let{id:o,selector:r}=e,n=B(),i=o||n.collection,a=O(s=>i?s.iiif.entities.Collection[i]:void 0,[i]);return kt(()=>{if(a)return r?r(a):a},[a,r,...t])}import{startTransition as Mt,useMemo as Ht}from"react";import{useStore as Ve}from"zustand";function Da(){let e=P(),t=Ve(e,r=>r.completeRequest),o=Ve(e,r=>r.cancelRequest);return Ht(()=>({saveAnnotation:()=>{Mt(()=>{t()})},cancelRequest:o}),[t,o])}import{useCallback as zt}from"react";import{useStore as te}from"zustand";function Qa({requestId:e}={}){let t=P(),o=te(t,s=>s.metadata),r=te(t,s=>s.tool.requestId),n=e||r,i=te(t,s=>s.setMetadata),a=zt(s=>i(s,n||void 0),[i,n]);return[n?o[n]||{}:{},a]}import{useStore as Lt}from"zustand";function Ja(e){let t=P(),o=Lt(t,r=>r.tool.requestId);W("polygons.start-transition",r=>{e.requestId&&o!==e.requestId||e?.onStart?.(r.transitionIntent)},[o,e.requestId]),W("polygons.end-transition",r=>{e.requestId&&o!==e.requestId||e?.onEnd?.(r.transitionIntent,r.response)},[o,e.requestId]),W("polygons.transition",r=>{e.requestId&&o!==e.requestId||e?.onTransition?.(r.transitionIntent)},[o,e.requestId])}import{useEffect as Bt,useMemo as Ot}from"react";import{createEventsHelper as Ft}from"@iiif/helpers/events";function os(e,t,o,r,n=[]){let i=R(),a=Ot(()=>Ft(i),[i]);Bt(()=>{let s=e;return s?(a.addEventListener(s,t,o,r),()=>{a.removeEventListener(s,t,o)}):()=>{}},[a,e,t,...n])}function as(e,t){let{id:o,isLoaded:r,error:n,resource:i,requestId:a,cached:s}=ie(e,t);return{id:o,isLoaded:r,error:n,manifest:i,requestId:a,cached:s}}import{getImageServices as $e}from"@iiif/parser/image-3";import{useEffect as Wt,useMemo as Ke,useState as U}from"react";function _e({cacheKey:e}={}){let t=w(),o=A(),r=R(),n=he(),i=ye(),[a,s]=U(void 0),[f,m]=U(!1),[l,h]=U("idle"),[S,b]=U(void 0),x=t?t.id:"undefined",p=Ke(()=>{try{if(t&&o.length){let u=o[0],g=r.get(u.body[0]),y=$e(g)[0];return y&&n(y,{width:y.width||t.width,height:y.height||t.height},!0)||void 0}}catch(u){console.error(u)}},[x,e,t]),v=l==="success"&&a?a:p;return Wt(()=>{(async()=>{try{if(t&&o.length){let u=o[0],g=r.get(u.body[0]),y=$e(g)[0];if(!y)return;m(!0),h("loading");try{let d=await i(y,{width:y.width||t.width,height:y.height||t.height})||void 0;s(d),h("success"),m(!1)}catch(d){h("error"),b(d)}}}catch(u){h("error"),b(u)}})()},[x,e]),Ke(()=>({data:v,isFetching:f,status:l,error:S}),[v,f,l,S])}function hs(){let e=_e();return{isLoading:e.isFetching,tile:e.data?{id:e.data.id||e.data["@id"],width:e.data.width,height:e.data.height,imageService:e.data,thumbnail:void 0}:null}}import{useMemo as oe}from"react";import{createPaintingAnnotationsHelper as Dt}from"@iiif/helpers";function Rs({supports:e=["empty","images","media","3d-model","textual-content","complex-timeline"]}={}){let t=R(),o=w(),r=A(),n=oe(()=>Dt(t),[t]),i=oe(()=>n.getPaintables(r),[n,r]);return oe(()=>Ie({canvas:o,loadImageService:a=>a,paintables:i,supports:e}),[o,i,e])}import{createStylesHelper as Vt}from"@iiif/helpers/styles";import{useMemo as $t}from"react";function Ns(){let e=R();return $t(()=>Vt(e),[e])}function As(e,t){let{x:o,y:r,width:n,height:i}=e,{x:a,y:s}=t,{width:f,height:m}=t;return o+n>a&&o<a+f&&r+i>s&&r<s+m}import Kt from"tiny-invariant";function Bs(e,t){let o=e.boundingBox||ce(e.polygon);if(e.polygon&&!le(e.polygon.points)){let r=e.target||me(e.polygon,t);return Kt(r?.type==="SvgSelector"),{type:"SvgSelector",points:e.polygon.points,spatial:{unit:"pixel",...o||{}},svgShape:e.polygon.open?"polyline":"polygon",svg:r.value}}return{type:"BoxSelector",spatial:o}}export{sa as AnnotationContext,ua as AnnotationPageContext,Wo as AnnotationStyleProvider,Oo as AtlasStoreProvider,Lo as AtlasStoreReactContext,Ro as Auth,ho as AuthProvider,fo as AuthRContext,po as AuthReactContext,go as AuthReactContextActions,Jn as CanvasAnnotations,re as CanvasContext,Pe as CanvasPanel,hn as CanvasStrategyProvider,yn as CanvasWorldObject,ga as CollectionContext,mi as CombinedMetadata,xr as ComplexTimelineProvider,Xr as ContextBridge,sr as ControlsReactContext,Te as CreateCustomShape,_r as CustomContextBridge,Qr as CustomContextBridgeProvider,jr as DefaultEditingTools,Eo as EventEmitterProvider,$r as EventsProvider,ft as Image,Ai as ImageService,hr as ImageServiceLoaderContext,qo as InnerViewerProvider,Ir as LanguageProvider,qr as LanguageString,N as LocaleString,Jt as ManifestContext,Bi as ManifestMetadata,er as MediaPlayerProvider,K as Metadata,$n as PolygonSelector,Zt as RangeContext,No as ReactEmitterContext,Vr as ReactEventContext,Qt as ReactVaultContext,Uo as RegionHighlight,ar as Render3DModelStrategy,cr as RenderAccompanyingCanvas,Xo as RenderAnnotation,Zr as RenderAnnotationEditing,Go as RenderAnnotationPage,pr as RenderAnnotationStrategy,vr as RenderAudioStrategy,Ar as RenderComplexTimelineStrategy,kr as RenderEmptyStrategy,Hr as RenderImageStrategy,ra as RenderSvgEditorControls,zr as RenderTextualContentStrategy,Lr as RenderVideoStrategy,Br as RenderYouTubeStrategy,Qo as ResizeWorldItem,E as ResourceProvider,_t as ResourceReactContext,kn as SelectorControllerProvider,Gi as SequenceThumbnails,To as SimpleViewerProvider,wo as SimpleViewerReactContext,Oe as SingleCanvasThumbnail,nr as StrategyReactContext,yr as ThumbnailFallbackImage,br as TranslationProvider,Cr as TransliterationProvider,Ut as VaultProvider,G as ViewerPresetContext,dr as VirtualAnnotationProvider,Xt as VisibleCanvasReactContext,Bs as annotationResponseToSelector,co as authDetailsForResource,zo as createAtlasStore,so as createAuthStateStore,lo as createProbe,Dr as defaultEmitter,Fr as defaultSvgTheme,on as emptyActions,an as emptyStrategy,eo as findAllCanvasesInRange,jt as findFirstCanvasFromRange,to as findManifestSelectedRange,oo as findSelectedRange,sn as flattenAnnotationPageIds,or as formatTime,mn as get3dStrategy,Bo as getAtlasStoreByName,pn as getComplexTimelineStrategy,Fo as getDefaultAnnotationStyles,un as getImageStrategy,no as getManifestSequence,tn as getParsedTargetSelector,Ie as getRenderingStrategy,fn as getTextualContentStrategy,dn as getVideoStrategy,ro as getVisibleCanvasesFromCanvasId,ao as hasAuth,Mo as isBoxSelector,le as isRectangle,ko as isSvgSelector,uo as makeAccessServiceRequest,mo as makeAccessTokenRequest,en as parseSpecificResource,me as polygonToTarget,ue as requestToAnnotationResponse,Ho as seraliseSupportedSelector,Pn as svgThemes,As as targetIntersects,rn as unknownResponse,nn as unsupportedStrategy,$o as useAnnotation,Yo as useAnnotationPage,Se as useAnnotationPageManager,fe as useAnnotationStyles,xa as useAnnotationsAtTime,Gr as useAtlasContextMenu,P as useAtlasStore,xo as useAuthActions,bo as useAuthService,vo as useAuthStore,Co as useAuthToken,Io as useAuthTokens,w as useCanvas,Pa as useCanvasChoices,qa as useCanvasClock,io as useCanvasSequence,tr as useCanvasStartTime,Aa as useCanvasSubset,Tr as useClosestLanguage,La as useCollection,Sr as useComplexTimeline,Ur as useContextBridge,Yr as useContextMenuStore,Er as useCreateLocaleString,Da as useCurrentAnnotationActions,Qa as useCurrentAnnotationMetadata,Jr as useCurrentAnnotationRequest,Ja as useCurrentAnnotationTransition,So as useCurrentAuth,Kr as useCustomContextBridge,mr as useDispatch,Ao as useEmitter,W as useEvent,xe as useEventEmitter,os as useEventListener,Yt as useExistingVault,as as useExternalCollection,Gt as useExternalManifest,ie as useExternalResource,Pr as useIIIFLanguage,Z as useImage,_e as useImageService,pe as useImageServiceLoader,hs as useImageTile,yo as useIsAuthEnabled,be as useLoadImageService,Nr as useLocaleString,F as useManifest,Zo as useMediaActions,jo as useMediaElements,Jo as useMediaState,cn as usePaintables,A as usePaintingAnnotations,Or as usePolygonHelper,ae as useRange,Vo as useRemoteStylesheet,lr as useRenderControls,gn as useRenderingStrategy,qe as useRequestAnnotation,B as useResourceContext,Ko as useResourceEvents,ln as useResources,Po as useSearchService,He as useSelectorController,Mn as useSelectorEmitter,Me as useSelectorEvents,Hn as useSelectorHelper,rr as useSimpleMediaPlayer,se as useSimpleViewer,Rs as useStaticRenderingStrategy,ir as useStrategy,Ns as useStyleHelper,_o as useStyles,Do as useStylesheetStore,Wr as useSvgEditor,Fe as useSvgEditorControls,ge as useThumbnail,wr as useTranslations,Rr as useTransliteration,R as useVault,gr as useVaultEffect,O as useVaultSelector,Mr as useViewerPreset,ur as useVirtualAnnotationPage,fr as useVirtualAnnotationPageContext,ne as useVisibleCanvases};
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a
|
|
1
|
+
import"./chunk-UNH7HXGJ.js";import{a,b,c,d,e,f,l as g}from"./chunk-223VJXTE.js";export{c as emptyActions,f as emptyStrategy,b as getParsedTargetSelector,g as getRenderingStrategy,a as parseSpecificResource,d as unknownResponse,e as unsupportedStrategy};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-iiif-vault",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -55,13 +55,14 @@
|
|
|
55
55
|
},
|
|
56
56
|
"license": "MIT",
|
|
57
57
|
"resolutions": {
|
|
58
|
-
"react
|
|
58
|
+
"react": "^19.2.0",
|
|
59
|
+
"react-dom": "^19.2.0",
|
|
60
|
+
"react-reconciler": "^0.33.0"
|
|
59
61
|
},
|
|
60
62
|
"dependencies": {
|
|
61
|
-
"@atlas-viewer/atlas": "^2.3.7",
|
|
62
63
|
"@floating-ui/react": "^0.27.13",
|
|
63
|
-
"@iiif/helpers": "^1.5.
|
|
64
|
-
"@iiif/parser": "^2.2.
|
|
64
|
+
"@iiif/helpers": "^1.5.4",
|
|
65
|
+
"@iiif/parser": "^2.2.5",
|
|
65
66
|
"@iiif/presentation-2": "^1.0.4",
|
|
66
67
|
"@iiif/presentation-3": "^2.2.3",
|
|
67
68
|
"@iiif/presentation-3-normalized": "^0.9.7",
|
|
@@ -74,10 +75,13 @@
|
|
|
74
75
|
"zustand": "^4.5.2"
|
|
75
76
|
},
|
|
76
77
|
"peerDependencies": {
|
|
77
|
-
"
|
|
78
|
-
"react
|
|
78
|
+
"@atlas-viewer/atlas": "^3.0.2",
|
|
79
|
+
"react": "^18.2.0 || ^19.2.0",
|
|
80
|
+
"react-dom": "^18.2.0 || ^19.2.0"
|
|
79
81
|
},
|
|
80
82
|
"devDependencies": {
|
|
83
|
+
"react": "^19.2.0",
|
|
84
|
+
"react-dom": "^19.2.0",
|
|
81
85
|
"@testing-library/react": "^15.0.2",
|
|
82
86
|
"@types/react": "^18.2.75",
|
|
83
87
|
"@types/react-dom": "^18.2.24",
|