react-iiif-vault 1.2.6 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bundle.d.ts CHANGED
@@ -17,6 +17,7 @@ import { RenderState, InputShape, SlowState } from 'polygon-editor';
17
17
  import * as zustand_vanilla from 'zustand/vanilla';
18
18
  import { StoreApi } from 'zustand/vanilla';
19
19
  import * as zustand from 'zustand';
20
+ import { StoreApi as StoreApi$1 } from 'zustand';
20
21
  import * as _iiif_helpers_painting_annotations from '@iiif/helpers/painting-annotations';
21
22
  import { Paintables as Paintables$1 } from '@iiif/helpers/painting-annotations';
22
23
  import { VaultZustandStore } from '@iiif/helpers/vault/store';
@@ -123,7 +124,7 @@ type SingleImageStrategy = {
123
124
  choice?: ChoiceDescription;
124
125
  annotations?: AnnotationPageDescription;
125
126
  };
126
- declare function getImageStrategy(canvas: CanvasNormalized, paintables: Paintables, loadImageService: ImageServiceLoaderType): RenderingStrategy;
127
+ declare function getImageStrategy(canvas: CanvasNormalized, paintables: Paintables, loadImageService: ImageServiceLoaderType): SingleImageStrategy | UnknownStrategy;
127
128
 
128
129
  type Single3DModelStrategy = {
129
130
  type: '3d-model';
@@ -153,10 +154,20 @@ type MediaStrategy = {
153
154
  };
154
155
  type ComplexTimelineStrategy = {
155
156
  type: 'complex-timeline';
156
- items: Array<ImageWithOptionalService | SingleAudio | SingleVideo>;
157
+ items: Array<SingleImageStrategy['image'] | SingleAudio | SingleVideo | SingleYouTubeVideo>;
158
+ keyframes: TimelineKeyframe[];
159
+ duration: number;
157
160
  choice?: ChoiceDescription;
158
161
  annotations?: AnnotationPageDescription;
159
162
  };
163
+ interface TimelineKeyframe {
164
+ id: string;
165
+ type: 'enter' | 'exit' | 'change';
166
+ resourceType: 'image' | 'audio' | 'video';
167
+ timeDelta?: number;
168
+ isPrime?: boolean;
169
+ time: number;
170
+ }
160
171
  type EmptyStrategy = {
161
172
  type: 'empty';
162
173
  image: null;
@@ -218,6 +229,7 @@ type CanvasProps = {
218
229
  renderViewerControls?: (strategy: SingleImageStrategy | EmptyStrategy) => ReactNode;
219
230
  viewControlsDeps?: any[];
220
231
  renderMediaControls?: (strategy: MediaStrategy) => ReactNode;
232
+ renderComplexTimelineControls?: (strategy: ComplexTimelineStrategy) => ReactNode;
221
233
  mediaControlsDeps?: any[];
222
234
  strategies?: Array<RenderingStrategy['type']>;
223
235
  backgroundStyle?: BoxStyle;
@@ -228,7 +240,7 @@ type CanvasProps = {
228
240
  throwOnUnknown?: boolean;
229
241
  onClickPaintingAnnotation?: (id: string, image: ImageWithOptionalService, e: any) => void;
230
242
  };
231
- declare function RenderCanvas({ x, y, onChoiceChange, registerActions, defaultChoices, isStatic, renderViewerControls, renderMediaControls, viewControlsDeps, mediaControlsDeps, strategies, throwOnUnknown, backgroundStyle, alwaysShowBackground, keepCanvasScale, enableSizes, enableYouTube, onClickPaintingAnnotation, children, }: CanvasProps): react_jsx_runtime.JSX.Element | null;
243
+ declare function RenderCanvas({ x, y, onChoiceChange, registerActions, defaultChoices, isStatic, renderViewerControls, renderMediaControls, renderComplexTimelineControls, viewControlsDeps, mediaControlsDeps, strategies, throwOnUnknown, backgroundStyle, alwaysShowBackground, keepCanvasScale, enableSizes, enableYouTube, onClickPaintingAnnotation, children, }: CanvasProps): react_jsx_runtime.JSX.Element | null;
232
244
 
233
245
  declare function RenderImage({ id, image, thumbnail, isStatic, x, y, children, selector, onClick, enableSizes, }: {
234
246
  id: string;
@@ -347,6 +359,7 @@ interface CanvasPanelProps {
347
359
  components?: {
348
360
  ViewerControls?: FC;
349
361
  MediaControls?: FC;
362
+ ComplexTimelineControls?: FC;
350
363
  };
351
364
  canvasProps?: Omit<Partial<CanvasProps>, 'x'>;
352
365
  annotations?: ReactNode;
@@ -788,23 +801,6 @@ declare function CollectionContext({ collection, children }: {
788
801
  children: ReactNode;
789
802
  }): react_jsx_runtime.JSX.Element;
790
803
 
791
- interface EventContext {
792
- emitter: Emitter<any>;
793
- }
794
- declare const defaultEmitter: Emitter<Record<EventType, unknown>>;
795
- declare const ReactEventContext: React__default.Context<{
796
- emitter: Emitter<Record<EventType, unknown>>;
797
- }>;
798
- declare function useEventEmitter<Events extends Record<EventType, unknown>>(): Emitter<Events>;
799
- declare function EventsProvider({ emitter, children }: EventContext & {
800
- children: React__default.ReactNode;
801
- }): react_jsx_runtime.JSX.Element;
802
-
803
- declare function ManifestContext({ manifest, children }: {
804
- manifest: string;
805
- children: ReactNode;
806
- }): react_jsx_runtime.JSX.Element;
807
-
808
804
  type MediaPlayerState = {
809
805
  isPlaying: boolean;
810
806
  isMuted: boolean;
@@ -837,6 +833,58 @@ declare function useSimpleMediaPlayer(props: {
837
833
  MediaPlayerActions
838
834
  ];
839
835
 
836
+ interface ComplexTimelineStore extends MediaPlayerActions {
837
+ complexTimeline: ComplexTimelineStrategy;
838
+ visibleElements: Record<string, TimelineKeyframe | null>;
839
+ isReady: boolean;
840
+ isBuffering: boolean;
841
+ bufferMap: Record<string, boolean>;
842
+ isMuted: boolean;
843
+ playRequested: boolean;
844
+ isPlaying: boolean;
845
+ isFinished: boolean;
846
+ volume: number;
847
+ duration: number;
848
+ primeTime: number;
849
+ clockRunning: boolean;
850
+ clockStartTime: number;
851
+ currentPrime: TimelineKeyframe | null;
852
+ clockStartRequests: number;
853
+ startClock: () => void;
854
+ stopClock: () => void;
855
+ setElement: (id: string, element: HTMLVideoElement | HTMLAudioElement) => void;
856
+ removeElement: (id: string) => void;
857
+ applyKeyframes(newIdx: number, keyframes: TimelineKeyframe[]): void;
858
+ nextKeyframeIndex: number;
859
+ setProgressElement(div: HTMLDivElement): void;
860
+ setCurrentTimeElement(div: HTMLDivElement): void;
861
+ clearProgressElement(): void;
862
+ clearCurrentTimeElement(): void;
863
+ }
864
+
865
+ declare function ComplexTimelineProvider({ children, store, }: {
866
+ children: React.ReactNode;
867
+ store: StoreApi$1<ComplexTimelineStore>;
868
+ }): react_jsx_runtime.JSX.Element;
869
+ declare function useComplexTimeline<T>(selector: (store: ComplexTimelineStore) => T): T;
870
+
871
+ interface EventContext {
872
+ emitter: Emitter<any>;
873
+ }
874
+ declare const defaultEmitter: Emitter<Record<EventType, unknown>>;
875
+ declare const ReactEventContext: React__default.Context<{
876
+ emitter: Emitter<Record<EventType, unknown>>;
877
+ }>;
878
+ declare function useEventEmitter<Events extends Record<EventType, unknown>>(): Emitter<Events>;
879
+ declare function EventsProvider({ emitter, children }: EventContext & {
880
+ children: React__default.ReactNode;
881
+ }): react_jsx_runtime.JSX.Element;
882
+
883
+ declare function ManifestContext({ manifest, children }: {
884
+ manifest: string;
885
+ children: ReactNode;
886
+ }): react_jsx_runtime.JSX.Element;
887
+
840
888
  declare function useMediaState(): MediaPlayerState;
841
889
  declare function useMediaActions(): MediaPlayerActions;
842
890
  declare function useMediaElements(): {
@@ -1047,10 +1095,10 @@ declare const emptyActions: {
1047
1095
  makeChoice: () => void;
1048
1096
  };
1049
1097
  declare const unknownResponse: UseRenderingStrategy[0];
1050
- declare const unsupportedStrategy: (reason: string) => UseRenderingStrategy[0];
1098
+ declare const unsupportedStrategy: (reason: string) => UnknownStrategy;
1051
1099
  declare const emptyStrategy: (width: number, height: number) => UseRenderingStrategy[0];
1052
1100
 
1053
- declare function getVideoStrategy(canvas: CanvasNormalized, paintables: Paintables): RenderingStrategy;
1101
+ declare function getVideoStrategy(canvas: CanvasNormalized, paintables: Paintables): UnknownStrategy | MediaStrategy;
1054
1102
 
1055
1103
  interface GetRenderStrategyOptions {
1056
1104
  canvas: CanvasNormalized | null | undefined;
@@ -1060,6 +1108,8 @@ interface GetRenderStrategyOptions {
1060
1108
  }
1061
1109
  declare function getRenderingStrategy({ canvas, paintables, supports, loadImageService }: GetRenderStrategyOptions): RenderingStrategy;
1062
1110
 
1111
+ declare function getComplexTimelineStrategy(canvas: CanvasNormalized, paintables: Paintables, loadImageService: ImageServiceLoaderType): ComplexTimelineStrategy;
1112
+
1063
1113
  declare function useAnnotation(options?: {
1064
1114
  id: string;
1065
1115
  }): AnnotationNormalized | undefined;
@@ -1353,7 +1403,7 @@ declare function LanguageProvider(props: {
1353
1403
  children: ReactNode;
1354
1404
  }): react_jsx_runtime.JSX.Element;
1355
1405
  declare function TransliterationProvider(props: {
1356
- convert: null | ((input: string) => string);
1406
+ convert: null | ((input: string, targetLang: string) => string);
1357
1407
  children: ReactNode;
1358
1408
  }): react_jsx_runtime.JSX.Element;
1359
1409
  declare function useTransliteration(): ((input: string, targetLang: string) => string) | null;
@@ -1449,4 +1499,4 @@ declare function findAllCanvasesInRange(vault: Vault, range: RangeNormalized): A
1449
1499
  declare function findManifestSelectedRange(vault: Vault, manifest: ManifestNormalized, canvasId: string): null | RangeNormalized;
1450
1500
  declare function findSelectedRange(vault: Vault, range: RangeNormalized, canvasId: string): null | RangeNormalized;
1451
1501
 
1452
- export { AnnotationContext, AnnotationPageContext, type AnnotationPageDescription, AnnotationStyleProvider, type AnnotationStyles, type AnnotationThemeDefinition, type AudioSequence, Auth, type AuthAccessState, type AuthContextActions, type AuthContextCurrentActions, type AuthContextState, AuthProvider, AuthRContext, AuthReactContext, AuthReactContextActions, type AuthState, CanvasAnnotations, CanvasContext, CanvasPanel, type ChoiceEvents, CollectionContext, CombinedMetadata, type ComplexTimelineStrategy, ContextBridge, CreateCustomShape, type CreateCustomShapeProps, type EmptyStrategy, EventsProvider, Image, type ImageProps, ImageServiceLoaderContext, type ImageServiceLoaderType, type ImageServiceRequestOptions, type ImageWithOptionalService, InnerViewerProvider, LanguageProvider, LanguageString, LocaleString, ManifestContext, ManifestMetadata, type MediaPlayerActions, MediaPlayerProvider, type MediaPlayerState, type MediaStrategy, Metadata, type MetadataProps, PolygonSelector, type PolygonSelectorProps, type ProbeStore, RangeContext, ReactEventContext, ReactVaultContext, RenderSvgEditorControls, type RenderingStrategy, type ResourceContextType, ResourceProvider, ResourceReactContext, type ResourceRequestOptions, SelectorControllerProvider, type SelectorHelperEventTypes, SequenceThumbnails, type SimpleViewerActions, type SimpleViewerActionsType, type SimpleViewerContext, type SimpleViewerProps, SimpleViewerProvider, SimpleViewerReactContext, type SimpleViewerReducerState, type Single3DModelStrategy, type SingleAudio, SingleCanvasThumbnail, type SingleImageStrategy, type SingleVideo, type SingleYouTubeVideo, type StrategyActions, type SvgTheme, type TextualContentStrategy, TranslationProvider, TransliterationProvider, type UnknownStrategy, type UseRenderingStrategy, type UseRenderingStrategyOptions, type VaultActivatedAnnotation, VaultProvider, type VideoSequence, ViewerPresetContext, VirtualAnnotationProvider, VisibleCanvasReactContext, authDetailsForResource, createAuthStateStore, createProbe, defaultEmitter, emptyActions, emptyStrategy, findAllCanvasesInRange, findFirstCanvasFromRange, findManifestSelectedRange, findSelectedRange, flattenAnnotationPageIds, formatTime, get3dStrategy, getDefaultAnnotationStyles, getImageStrategy, getManifestSequence, getParsedTargetSelector, getRenderingStrategy, getTextualContentStrategy, getVideoStrategy, getVisibleCanvasesFromCanvasId, hasAuth, makeAccessServiceRequest, makeAccessTokenRequest, parseSpecificResource, svgThemes, unknownResponse, unsupportedStrategy, useAnnotation, useAnnotationPage, useAnnotationPageManager, useAnnotationStyles, useAnnotationsAtTime, useAuthActions, useAuthService, useAuthStore, useAuthToken, useAuthTokens, useCanvas, useCanvasChoices, useCanvasClock, useCanvasSequence, useCanvasStartTime, useCanvasSubset, useClosestLanguage, useCollection, useContextBridge, useCreateLocaleString, useCurrentAuth, useDispatch, useEventEmitter, useEventListener, useExistingVault, useExternalCollection, useExternalManifest, useExternalResource, useIIIFLanguage, useImage, useImageService, useImageServiceLoader, useImageTile, useIsAuthEnabled, useLoadImageService, useLocaleString, useManifest, useMediaActions, useMediaElements, useMediaState, usePaintables, usePaintingAnnotations, usePolygonHelper, useRange, useRenderingStrategy, useResourceContext, useResourceEvents, useResources, useSearchService, useSelectorController, useSelectorEmitter, useSelectorEvents, useSelectorHelper, useSimpleMediaPlayer, useSimpleViewer, useStyleHelper, useStyles, useSvgEditor, useThumbnail, useTranslations, useTransliteration, useVault, useVaultEffect, useVaultSelector, useViewerPreset, useVirtualAnnotationPage, useVirtualAnnotationPageContext, useVisibleCanvases };
1502
+ export { AnnotationContext, AnnotationPageContext, type AnnotationPageDescription, AnnotationStyleProvider, type AnnotationStyles, type AnnotationThemeDefinition, type AudioSequence, Auth, type AuthAccessState, type AuthContextActions, type AuthContextCurrentActions, type AuthContextState, AuthProvider, AuthRContext, AuthReactContext, AuthReactContextActions, type AuthState, CanvasAnnotations, CanvasContext, CanvasPanel, type ChoiceEvents, CollectionContext, CombinedMetadata, ComplexTimelineProvider, type ComplexTimelineStrategy, ContextBridge, CreateCustomShape, type CreateCustomShapeProps, type EmptyStrategy, EventsProvider, Image, type ImageProps, ImageServiceLoaderContext, type ImageServiceLoaderType, type ImageServiceRequestOptions, type ImageWithOptionalService, InnerViewerProvider, LanguageProvider, LanguageString, LocaleString, ManifestContext, ManifestMetadata, type MediaPlayerActions, MediaPlayerProvider, type MediaPlayerState, type MediaStrategy, Metadata, type MetadataProps, PolygonSelector, type PolygonSelectorProps, type ProbeStore, RangeContext, ReactEventContext, ReactVaultContext, RenderSvgEditorControls, type RenderingStrategy, type ResourceContextType, ResourceProvider, ResourceReactContext, type ResourceRequestOptions, SelectorControllerProvider, type SelectorHelperEventTypes, SequenceThumbnails, type SimpleViewerActions, type SimpleViewerActionsType, type SimpleViewerContext, type SimpleViewerProps, SimpleViewerProvider, SimpleViewerReactContext, type SimpleViewerReducerState, type Single3DModelStrategy, type SingleAudio, SingleCanvasThumbnail, type SingleImageStrategy, type SingleVideo, type SingleYouTubeVideo, type StrategyActions, type SvgTheme, type TextualContentStrategy, type TimelineKeyframe, TranslationProvider, TransliterationProvider, type UnknownStrategy, type UseRenderingStrategy, type UseRenderingStrategyOptions, type VaultActivatedAnnotation, VaultProvider, type VideoSequence, ViewerPresetContext, VirtualAnnotationProvider, VisibleCanvasReactContext, authDetailsForResource, createAuthStateStore, createProbe, defaultEmitter, emptyActions, emptyStrategy, findAllCanvasesInRange, findFirstCanvasFromRange, findManifestSelectedRange, findSelectedRange, flattenAnnotationPageIds, formatTime, get3dStrategy, getComplexTimelineStrategy, getDefaultAnnotationStyles, getImageStrategy, getManifestSequence, getParsedTargetSelector, getRenderingStrategy, getTextualContentStrategy, getVideoStrategy, getVisibleCanvasesFromCanvasId, hasAuth, makeAccessServiceRequest, makeAccessTokenRequest, parseSpecificResource, svgThemes, unknownResponse, unsupportedStrategy, useAnnotation, useAnnotationPage, useAnnotationPageManager, useAnnotationStyles, useAnnotationsAtTime, useAuthActions, useAuthService, useAuthStore, useAuthToken, useAuthTokens, useCanvas, useCanvasChoices, useCanvasClock, useCanvasSequence, useCanvasStartTime, useCanvasSubset, useClosestLanguage, useCollection, useComplexTimeline, useContextBridge, useCreateLocaleString, useCurrentAuth, useDispatch, useEventEmitter, useEventListener, useExistingVault, useExternalCollection, useExternalManifest, useExternalResource, useIIIFLanguage, useImage, useImageService, useImageServiceLoader, useImageTile, useIsAuthEnabled, useLoadImageService, useLocaleString, useManifest, useMediaActions, useMediaElements, useMediaState, usePaintables, usePaintingAnnotations, usePolygonHelper, useRange, useRenderingStrategy, useResourceContext, useResourceEvents, useResources, useSearchService, useSelectorController, useSelectorEmitter, useSelectorEvents, useSelectorHelper, useSimpleMediaPlayer, useSimpleViewer, useStyleHelper, useStyles, useSvgEditor, useThumbnail, useTranslations, useTransliteration, useVault, useVaultEffect, useVaultSelector, useViewerPreset, useVirtualAnnotationPage, useVirtualAnnotationPageContext, useVisibleCanvases };