@nulib/clover 4.0.0 → 4.2.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/components/Body/Body.mjs +16 -1
- package/dist/components/Body/glyphs.mjs +15 -0
- package/dist/components/Body/useControlsVisibility.mjs +35 -13
- package/dist/components/Canvas/CanvasView.mjs +116 -12
- package/dist/components/Canvas/ChaptersMenu.mjs +105 -0
- package/dist/components/Canvas/ControlMenu.mjs +23 -4
- package/dist/components/Canvas/Controls.mjs +223 -60
- package/dist/components/Canvas/ControlsFade.mjs +16 -0
- package/dist/components/Canvas/ImageControls.mjs +209 -0
- package/dist/components/Canvas/Placeholder.mjs +44 -12
- package/dist/components/Canvas/RowFits.mjs +85 -0
- package/dist/components/Canvas/layout.mjs +11 -0
- package/dist/components/Canvas/media/MediaBody.mjs +105 -46
- package/dist/components/Canvas/media/Player.mjs +0 -55
- package/dist/components/Canvas/media/Transport.mjs +14 -23
- package/dist/components/Canvas/panClearOfControls.mjs +1 -1
- package/dist/components/Collection/Collection.mjs +1 -1
- package/dist/components/Items/CountMenu.mjs +1 -0
- package/dist/components/Items/Item.mjs +4 -3
- package/dist/components/Items/Items.mjs +30 -10
- package/dist/components/Items/PagerLayout.mjs +2 -0
- package/dist/components/Items/TargetItems.mjs +1 -1
- package/dist/components/Items/masonry.mjs +35 -0
- package/dist/components/Panel/About.mjs +25 -8
- package/dist/components/Panel/Panel.mjs +47 -59
- package/dist/components/Panel/sections.mjs +62 -0
- package/dist/components/Root/useRootState.mjs +2 -49
- package/dist/components/Scene/SceneView.mjs +13 -2
- package/dist/components/Scene/cloverEngine.mjs +2 -1
- package/dist/components/Timeline/playerSurface.mjs +2 -0
- package/dist/core/clover.mjs +7 -4
- package/dist/core/content-state.mjs +5 -3
- package/dist/i18n/locales/en.json.mjs +1 -1
- package/dist/i18n/locales/es.json.mjs +1 -1
- package/dist/i18n/locales/fi.json.mjs +1 -1
- package/dist/i18n/locales/fr.json.mjs +1 -1
- package/dist/i18n/locales/nb.json.mjs +1 -1
- package/dist/i18n/locales/nn.json.mjs +1 -1
- package/dist/i18n/locales/no.json.mjs +1 -1
- package/dist/i18n/locales/pt.json.mjs +1 -1
- package/dist/index.d.mts +178 -56
- package/dist/index.mjs +2 -0
- package/dist/lib/gltf/load.mjs +26 -6
- package/dist/lib/pointer.mjs +1 -1
- package/dist/lib/renderer/CanvasRenderer.mjs +44 -32
- package/dist/lib/renderer/camera/Camera.mjs +1 -1
- package/dist/react/useContentStateOutput.mjs +71 -0
- package/dist/styles.css +1 -1
- package/dist/templates/default/Default.mjs +42 -128
- package/dist/templates/document/Document.mjs +51 -65
- package/dist/templates/document/Sheets.mjs +13 -5
- package/dist/templates/gallery/Gallery.mjs +94 -18
- package/dist/templates/index.d.mts +364 -17
- package/dist/templates/shared/Lightbox.mjs +161 -69
- package/dist/templates/shared/LightboxView.mjs +123 -0
- package/dist/templates/shared/PanelPane.mjs +116 -0
- package/dist/templates/{document/DocumentPanel.mjs → shared/PanelPart.mjs} +2 -2
- package/dist/templates/shared/dragToClose.mjs +51 -8
- package/dist/templates/shared/givenAnnotations.mjs +13 -0
- package/dist/templates/shared/useDragToClose.mjs +6 -3
- package/dist/templates/shared/useLazyPanelPane.mjs +16 -0
- package/dist/templates/shared/useSlide.mjs +6 -0
- package/dist/templates.css +1 -1
- package/dist/ui/ControlCluster.mjs +15 -17
- package/dist/ui/Sections.mjs +3 -3
- package/dist/ui/mediaIcons.mjs +35 -8
- package/dist/ui/useScrollTrack.mjs +2 -1
- package/dist/web-components/About-D1TBGGPL.mjs +1 -0
- package/dist/web-components/AnnotationItems-DTacmRA9.mjs +1 -0
- package/dist/web-components/{AnnotationMenu-BCwwwfbb.mjs → AnnotationMenu-DYc9ekWS.mjs} +1 -1
- package/dist/web-components/{AnnotationState-CavxnAAq.mjs → AnnotationState--5ghW0C2.mjs} +1 -1
- package/dist/web-components/{Annotations-rBmeI5sR.mjs → Annotations-BG8lPjk1.mjs} +1 -1
- package/dist/web-components/{Annotations-DDjSrBL5.mjs → Annotations-Bvc_FmJ5.mjs} +1 -1
- package/dist/web-components/Body-QQ1DmnbP.mjs +1 -0
- package/dist/web-components/{BodyAlert-COKp19lq.mjs → BodyAlert-A4xRjOKr.mjs} +1 -1
- package/dist/web-components/{Button-DLFYqtz9.mjs → Button-Cx6VE_UW.mjs} +1 -1
- package/dist/web-components/{Camera-Cp5ma-6C.mjs → Camera-DqT_1MgD.mjs} +1 -1
- package/dist/web-components/{Canvas2DBackend-3PToh87Z.mjs → Canvas2DBackend-TZtR3zHf.mjs} +1 -1
- package/dist/web-components/CanvasView-DxZASM9E.mjs +2 -0
- package/dist/web-components/CaptionDetails-DMRWmtaY.mjs +1 -0
- package/dist/web-components/ChaptersMenu-BAZVVDrK.mjs +1 -0
- package/dist/web-components/{Chevron-r-_hUPn8.mjs → Chevron-DFGbSGPI.mjs} +1 -1
- package/dist/web-components/ChoiceMenu-C80kdxvq.mjs +1 -0
- package/dist/web-components/Collection-B4CxBsFL.mjs +1 -0
- package/dist/web-components/{CollectionSelect-CBWUbqQi.mjs → CollectionSelect-DO8YO2p7.mjs} +1 -1
- package/dist/web-components/{Connected-BnpxYeJN.mjs → Connected-CcbVqzmj.mjs} +1 -1
- package/dist/web-components/{Connected-B2d6EoFl.mjs → Connected-DthCPaHl.mjs} +1 -1
- package/dist/web-components/{Connected-BSRM9FJY.mjs → Connected-sYBn_9MK.mjs} +1 -1
- package/dist/web-components/{Contents-D7FPxSH-.mjs → Contents-AVPYYXht.mjs} +1 -1
- package/dist/web-components/ControlMenu-BjJsWnuZ.mjs +1 -0
- package/dist/web-components/ControlsFade-C-6WhSxB.mjs +1 -0
- package/dist/web-components/{CountMenu-DyTp_J4k.mjs → CountMenu-Dx8D_RJZ.mjs} +1 -1
- package/dist/web-components/Cue-xuo5dgKE.mjs +1 -0
- package/dist/web-components/Document-BWdafeEi.mjs +1 -0
- package/dist/web-components/{DomLayers-CTGub6wo.mjs → DomLayers-DlRapZ1u.mjs} +1 -1
- package/dist/web-components/{Download-BOYNIb7C.mjs → Download-Ci_JUTVd.mjs} +1 -1
- package/dist/web-components/{EntryBodies-Bfd2Z42z.mjs → EntryBodies-C0ICfS2R.mjs} +1 -1
- package/dist/web-components/{EntryThumbnail-DQE8ajI9.mjs → EntryThumbnail-DxHhfRo_.mjs} +1 -1
- package/dist/web-components/{FieldPill-D5DNJWLy.mjs → FieldPill-CVfeeafm.mjs} +1 -1
- package/dist/web-components/FrameAnimation-AZpVvu0R.mjs +1 -0
- package/dist/web-components/Gallery-C2PTJmvN.mjs +1 -0
- package/dist/web-components/{HideToggle-DL911R1Z.mjs → HideToggle-0nlIo-f8.mjs} +1 -1
- package/dist/web-components/ImageControls-tKVAMpaj.mjs +1 -0
- package/dist/web-components/Items-Drd82_Jj.mjs +1 -0
- package/dist/web-components/Label-BIjqJ-_T.mjs +1 -0
- package/dist/web-components/{LanguageChoice-DT1UPiDn.mjs → LanguageChoice-DkSc-n6g.mjs} +1 -1
- package/dist/web-components/LightboxView-Cuqx2H1m.mjs +1 -0
- package/dist/web-components/ListEnd-pq-BgaDI.mjs +1 -0
- package/dist/web-components/{Loaded-BWfEBJyg.mjs → Loaded-CSO5NFhm.mjs} +1 -1
- package/dist/web-components/LoadedCanvas-DK6xMmM1.mjs +1 -0
- package/dist/web-components/LoadedMap-DmPH-LKY.mjs +1 -0
- package/dist/web-components/{Loading-zw74TdAz.mjs → Loading-CoJLSRkv.mjs} +1 -1
- package/dist/web-components/{Map--dJhk0_0.mjs → Map-BEVtD52O.mjs} +1 -1
- package/dist/web-components/MapView-DHJcn9gW.mjs +3 -0
- package/dist/web-components/Markup-Hm6bWOjm.mjs +2 -0
- package/dist/web-components/MediaBody-BpgNtpKZ.mjs +1 -0
- package/dist/web-components/MediaBody-Co23JjUJ.mjs +1 -0
- package/dist/web-components/{NavDate-BQHuyLOC.mjs → NavDate-CYNK0Qmp.mjs} +1 -1
- package/dist/web-components/{Navigator-B3U21_ti.mjs → Navigator-DrYPepzN.mjs} +1 -1
- package/dist/web-components/{Pager-DnJknq92.mjs → Pager-CN4lHURv.mjs} +1 -1
- package/dist/web-components/PagerLayout-DeqnSQcF.mjs +1 -0
- package/dist/web-components/Panel-CFYUlXup.mjs +1 -0
- package/dist/web-components/PanelPart-CpUIRbxr.mjs +1 -0
- package/dist/web-components/{PanelToggle-CFtWIeWv.mjs → PanelToggle-9ud55NNI.mjs} +1 -1
- package/dist/web-components/{PartOfManifest-F87jIrf9.mjs → PartOfManifest-KUHUq-6q.mjs} +1 -1
- package/dist/web-components/{Pending-CYAQajKu.mjs → Pending-mcmdyZPA.mjs} +1 -1
- package/dist/web-components/PlaceBox-DX4ZLDat.mjs +1 -0
- package/dist/web-components/Placeholder-0hE8q-SY.mjs +1 -0
- package/dist/web-components/{Position-BkWBRBfW.mjs → Position-DO5qg5Sp.mjs} +1 -1
- package/dist/web-components/{Primitives-BmODPlnK.mjs → Primitives-c9sIz0oQ.mjs} +1 -1
- package/dist/web-components/Provider-a3xY016W.mjs +1 -0
- package/dist/web-components/{ReadMore-BwGFsLS2.mjs → ReadMore-D_WmmKEP.mjs} +1 -1
- package/dist/web-components/Root-CU1o0wje.mjs +1 -0
- package/dist/web-components/Scene-CboEeptc.mjs +1 -0
- package/dist/web-components/SceneView-hcc78jQT.mjs +1 -0
- package/dist/web-components/{Search-CbmK9vLp.mjs → Search-BgxEW1UT.mjs} +1 -1
- package/dist/web-components/{Sections-Dy5_pkyQ.mjs → Sections-DZVrhoAC.mjs} +2 -2
- package/dist/web-components/{StandaloneItems-BmUnBp0H.mjs → StandaloneItems-6cSw7nbF.mjs} +1 -1
- package/dist/web-components/{Status-Dww3Pyf4.mjs → Status-DHTzuTkh.mjs} +1 -1
- package/dist/web-components/{Steps-o_UprQfZ.mjs → Steps-Dkpy9KiJ.mjs} +1 -1
- package/dist/web-components/{TargetItems-BBOGDubv.mjs → TargetItems-CyOI9_Z4.mjs} +1 -1
- package/dist/web-components/Timeline-B9tD3Rar.mjs +1 -0
- package/dist/web-components/{Tip-BbexILXs.mjs → Tip-nJSTYquc.mjs} +1 -1
- package/dist/web-components/{Transcript-ZVXM3ZDA.mjs → Transcript-WvFFAJQM.mjs} +1 -1
- package/dist/web-components/Transport-FxLp_bdW.mjs +1 -0
- package/dist/web-components/Transport-VUxSEIQO.mjs +1 -0
- package/dist/web-components/{annotation-collection-7SS1ELcO.mjs → annotation-collection-BkC3nBPA.mjs} +1 -1
- package/dist/web-components/{annotation-name-CYkZopdd.mjs → annotation-name-Du2KAWoD.mjs} +1 -1
- package/dist/web-components/{annotations-content-Bdtn50sf.mjs → annotations-content-CEzAS-P2.mjs} +1 -1
- package/dist/web-components/{body-CkOBHlJ0.mjs → body-DPlfbLt3.mjs} +1 -1
- package/dist/web-components/canvas-BUwBftJW.mjs +1 -0
- package/dist/web-components/cloverEngine-UNw5K4Xg.mjs +164 -0
- package/dist/web-components/{content-state-reader-Ahh6artg.mjs → content-state-reader-GgQF2MvJ.mjs} +1 -1
- package/dist/web-components/{controls-BJrZVQkS.mjs → controls-CC9G5LxK.mjs} +1 -1
- package/dist/web-components/custom-elements.json +191 -45
- package/dist/web-components/{downloads-CqVWo-yn.mjs → downloads-CmAYeEIz.mjs} +1 -1
- package/dist/web-components/dragToClose-DK-eM097.mjs +1 -0
- package/dist/web-components/{engine-B-sscpLa.mjs → engine-Dok0z8WP.mjs} +1 -1
- package/dist/web-components/{engines-DfCHjbt3.mjs → engines-BD2IfwQF.mjs} +1 -1
- package/dist/web-components/es-B1NvdYp-.mjs +1 -0
- package/dist/web-components/{fetchManifest-BIzne1Pj.mjs → fetchManifest-tQXcfFiz.mjs} +1 -1
- package/dist/web-components/fi-BjtYZNLo.mjs +1 -0
- package/dist/web-components/fr-Cd22Lziw.mjs +1 -0
- package/dist/web-components/fromManifest-BwQdeAuL.mjs +1 -0
- package/dist/web-components/glyphs-dp_HK3Ja.mjs +1 -0
- package/dist/web-components/hooks-C4dJ5K_D.mjs +1 -0
- package/dist/web-components/image-layers-xcBsiad9.mjs +1 -0
- package/dist/web-components/{imageService-0eTvQ-3h.mjs → imageService-4sFnmAFX.mjs} +1 -1
- package/dist/web-components/index-DspT4wUm.mjs +1 -0
- package/dist/web-components/index.d.mts +5 -5
- package/dist/web-components/index.mjs +1 -1
- package/dist/web-components/items-BUmOy2QY.mjs +1 -0
- package/dist/web-components/items-CWMI53aN.mjs +1 -0
- package/dist/web-components/label-BGjL7I4b.mjs +1 -0
- package/dist/web-components/layout-B29v2RKK.mjs +1 -0
- package/dist/web-components/{link-GEdiEwlR.mjs → link-Ct5PpHEY.mjs} +1 -1
- package/dist/web-components/logo-BFstM-0a.mjs +1 -0
- package/dist/web-components/masonry-0QfzOgbB.mjs +1 -0
- package/dist/web-components/{models-59cEeiAA.mjs → models-BXcT4ijX.mjs} +1 -1
- package/dist/web-components/nb-CEwZDBiR.mjs +1 -0
- package/dist/web-components/nn-jYQhr9RI.mjs +1 -0
- package/dist/web-components/no-CEwZDBiR.mjs +1 -0
- package/dist/web-components/{nodes-CTw9OqlA.mjs → nodes-BleXuYE6.mjs} +1 -1
- package/dist/web-components/{overlayImage-BMt4UTlR.mjs → overlayImage-BJtfot4Y.mjs} +1 -1
- package/dist/web-components/panClearOfControls-Cn2ZXsZi.mjs +1 -0
- package/dist/web-components/{panel-C17Rl9Ya.mjs → panel-BxxV_JkD.mjs} +1 -1
- package/dist/web-components/part-D4gjnYmT.mjs +1 -0
- package/dist/web-components/playerSurface-BXNLaFk0.mjs +1 -0
- package/dist/web-components/pointer-CJELU3gI.mjs +1 -0
- package/dist/web-components/{provider-BpxorEiq.mjs → provider-CPp0Sgr_.mjs} +1 -1
- package/dist/web-components/pt-CWR30SzS.mjs +1 -0
- package/dist/web-components/{range-regions-BGQy4E9U.mjs → range-regions-DAaOu0IS.mjs} +1 -1
- package/dist/web-components/{read-more-BDM_6CVc.mjs → read-more-lcqGslUd.mjs} +1 -1
- package/dist/web-components/readingLanguages-FyVsSWJ8.mjs +1 -0
- package/dist/web-components/rendererSurface-nh6-EfuZ.mjs +22 -0
- package/dist/web-components/{renderers-CiB74bQh.mjs → renderers-BFS7hFVU.mjs} +1 -1
- package/dist/web-components/{resource-CRbpf9pX.mjs → resource-Bufu7lAr.mjs} +1 -1
- package/dist/web-components/{save-file-CCuZEuQr.mjs → save-file-CoknKOPz.mjs} +1 -1
- package/dist/web-components/search-5ocrsYmT.mjs +1 -0
- package/dist/web-components/shared-DFAX0n3B.mjs +1 -0
- package/dist/web-components/{show-link-BXm7SNIC.mjs → show-link-DBaJj4s_.mjs} +1 -1
- package/dist/web-components/{sizedImage-k4Q-eyOB.mjs → sizedImage-jnOGcIIZ.mjs} +1 -1
- package/dist/web-components/{split-Hp6z-v4h.mjs → split-P6J0qqf5.mjs} +1 -1
- package/dist/web-components/{status-BmtuKfAG.mjs → status-honoOMNx.mjs} +1 -1
- package/dist/web-components/styles-BwkYiCLC.mjs +1 -0
- package/dist/web-components/three.mjs +1 -1
- package/dist/web-components/{thumbnail-Dp7a8oom.mjs → thumbnail-EbURh-UM.mjs} +1 -1
- package/dist/web-components/{tip-C-oovDZK.mjs → tip-BhNI83aT.mjs} +1 -1
- package/dist/web-components/{toggle-C7ODWDEZ.mjs → toggle-CJKdi5KH.mjs} +1 -1
- package/dist/web-components/{useContainerName-CrOmY-km.mjs → useContainerName-_48Cdi0m.mjs} +1 -1
- package/dist/web-components/useControlsVisibility-CieBxGnK.mjs +1 -0
- package/dist/web-components/useLazyPanelPane-Da3kJiOt.mjs +1 -0
- package/dist/web-components/{useNearViewport-BqXi9Gn4.mjs → useNearViewport-B34ebmIW.mjs} +1 -1
- package/dist/web-components/useScrollTrack-DgRGFeP5.mjs +1 -0
- package/dist/web-components/viewer/AnnotationItems-BNA_92Dv.mjs +1 -0
- package/dist/web-components/viewer/{AnnotationMenu-DPOSehBo.mjs → AnnotationMenu-BIQYVR4N.mjs} +1 -1
- package/dist/web-components/viewer/AnnotationState-BbwQqA1U.mjs +1 -0
- package/dist/web-components/viewer/Annotations-CZzOZAFP.mjs +2 -0
- package/dist/web-components/viewer/Annotations-P4XzAlNc.mjs +1 -0
- package/dist/web-components/viewer/{Canvas2DBackend-BTK6ZJh0.mjs → Canvas2DBackend-DFfCzyjL.mjs} +1 -1
- package/dist/web-components/viewer/CaptionDetails-DPtE-RQQ.mjs +1 -0
- package/dist/web-components/viewer/ChaptersMenu-D6Jmujag.mjs +1 -0
- package/dist/web-components/viewer/{ChoiceMenu-DQ1x572Y.mjs → ChoiceMenu-GkqyTQRQ.mjs} +1 -1
- package/dist/web-components/viewer/Collection-DjY_6qa6.mjs +1 -0
- package/dist/web-components/viewer/Connected-D5T-mtiy.mjs +1 -0
- package/dist/web-components/viewer/Connected-DIOuI3Mv.mjs +1 -0
- package/dist/web-components/viewer/Contents-DV-VxXuf.mjs +1 -0
- package/dist/web-components/viewer/ControlMenu-BsEpff6N.mjs +1 -0
- package/dist/web-components/viewer/ControlsFade-BowtN96W.mjs +1 -0
- package/dist/web-components/viewer/{CountMenu-4u6U6yqb.mjs → CountMenu-DCmA6HdK.mjs} +1 -1
- package/dist/web-components/viewer/Cue-BjbVzrpl.mjs +1 -0
- package/dist/web-components/viewer/Document-4ZQd3W3o.mjs +1 -0
- package/dist/web-components/viewer/{DomLayers-CGkDtemL.mjs → DomLayers-BCwCxPDU.mjs} +1 -1
- package/dist/web-components/viewer/Download-CL4IClAD.mjs +1 -0
- package/dist/web-components/viewer/EntryBodies-e40y47bl.mjs +1 -0
- package/dist/web-components/viewer/EntryThumbnail-B_dP3w4o.mjs +1 -0
- package/dist/web-components/viewer/{FieldPill-DFXGWrvB.mjs → FieldPill-Hse1cDBE.mjs} +1 -1
- package/dist/web-components/viewer/FrameAnimation-CE218DCr.mjs +1 -0
- package/dist/web-components/viewer/Gallery-F2sVj4ph.mjs +1 -0
- package/dist/web-components/viewer/{HideToggle-DP5kHzWM.mjs → HideToggle-CYoqe_ez.mjs} +1 -1
- package/dist/web-components/viewer/ImageControls-C2G4x2Es.mjs +1 -0
- package/dist/web-components/viewer/LanguageChoice-BmO-322r.mjs +1 -0
- package/dist/web-components/viewer/LightboxView-DKR8dXcg.mjs +1 -0
- package/dist/web-components/viewer/ListEnd-DX1jsvJk.mjs +1 -0
- package/dist/web-components/viewer/{MapView-BN9wXQKV.mjs → MapView-Df0wZjCh.mjs} +2 -2
- package/dist/web-components/viewer/MediaBody-CataNonO.mjs +1 -0
- package/dist/web-components/viewer/MediaBody-SkIgrEMj.mjs +1 -0
- package/dist/web-components/viewer/{NavDate-C2-wwLuB.mjs → NavDate-BZgeaMG9.mjs} +1 -1
- package/dist/web-components/viewer/{Navigator-C3jghOd3.mjs → Navigator-Co76p-1n.mjs} +1 -1
- package/dist/web-components/viewer/PagerLayout-tUkN1-FV.mjs +1 -0
- package/dist/web-components/viewer/PanelPart-Cl4Sst60.mjs +1 -0
- package/dist/web-components/viewer/{PartOfManifest-D22yMgCf.mjs → PartOfManifest-DXnbEPzS.mjs} +1 -1
- package/dist/web-components/viewer/PlaceBox-xrJ4CGdN.mjs +1 -0
- package/dist/web-components/viewer/Placeholder-B1AcizHL.mjs +1 -0
- package/dist/web-components/viewer/Search-DTg1cHZ3.mjs +1 -0
- package/dist/web-components/viewer/StandaloneItems-BpBEQG8i.mjs +1 -0
- package/dist/web-components/viewer/{Steps-Bw32X5xO.mjs → Steps-SpwMQdCL.mjs} +1 -1
- package/dist/web-components/viewer/{TargetItems-DLhUH1Gq.mjs → TargetItems-B6Icep5k.mjs} +1 -1
- package/dist/web-components/viewer/Transcript-rTAhuXCF.mjs +1 -0
- package/dist/web-components/viewer/Transport-vKIDALE-.mjs +1 -0
- package/dist/web-components/viewer/Transport-z_kdVisw.mjs +1 -0
- package/dist/web-components/viewer/annotation-collection-B7pZiLVk.mjs +1 -0
- package/dist/web-components/viewer/annotation-name-BKj1O9lA.mjs +1 -0
- package/dist/web-components/viewer/{annotations-content-CbA3eOIC.mjs → annotations-content-9AtLlPNn.mjs} +1 -1
- package/dist/web-components/viewer/cloverEngine-jRrYLrWa.mjs +164 -0
- package/dist/web-components/viewer/{content-state-reader-C7UBMOq3.mjs → content-state-reader-CPvkju6Q.mjs} +1 -1
- package/dist/web-components/viewer/dragToClose-Co9kGk9q.mjs +1 -0
- package/dist/web-components/viewer/{fetchManifest-C2Yxg3x9.mjs → fetchManifest-D7N9WhhF.mjs} +1 -1
- package/dist/web-components/viewer/{host-CZeyjCKR.mjs → host-DMD9LE4H.mjs} +1 -1
- package/dist/web-components/viewer/image-layers-x_shzPvu.mjs +1 -0
- package/dist/web-components/viewer/index.mjs +1 -1
- package/dist/web-components/viewer/{link-DssZ0Z2N.mjs → link-DikPGzNO.mjs} +1 -1
- package/dist/web-components/viewer/overlayImage-33kKKB0T.mjs +1 -0
- package/dist/web-components/viewer/range-regions-TH6WWGTT.mjs +1 -0
- package/dist/web-components/viewer/{renderers-DLoqv3QO.mjs → renderers-BxePmixF.mjs} +1 -1
- package/dist/web-components/viewer/{save-file-CJT5p5Hg.mjs → save-file-QXKiPlST.mjs} +1 -1
- package/dist/web-components/viewer/{search-PhOwMKHi.mjs → search-B_NePyas.mjs} +1 -1
- package/dist/web-components/viewer/styles-Bedyz7_l.mjs +1 -0
- package/dist/web-components/viewer/useControlsVisibility-Cu-jTDzs.mjs +1 -0
- package/dist/web-components/viewer/useLazyPanelPane-BhLtRixT.mjs +1 -0
- package/dist/web-components/viewer/viewer-nfPJPwwt.mjs +29 -0
- package/dist/web-components/viewer/{vtt-1Pk7Dhsj.mjs → vtt-CUn4h5JB.mjs} +1 -1
- package/dist/web-components/viewer-DN2Mo3vc.mjs +1 -0
- package/dist/web-components/{vtt-CacHieeN.mjs → vtt-C5M5WPSG.mjs} +1 -1
- package/package.json +1 -1
- package/dist/templates/shared/LightboxBody.mjs +0 -9
- package/dist/web-components/About-DhOGPFaI.mjs +0 -1
- package/dist/web-components/AnnotationItems-CNP4CJiT.mjs +0 -1
- package/dist/web-components/Body-DaY1UJIy.mjs +0 -1
- package/dist/web-components/BodyUnloadable-DcTM7hHF.mjs +0 -1
- package/dist/web-components/CanvasView-BWQ4SK2b.mjs +0 -2
- package/dist/web-components/CaptionDetails-DSziiuQV.mjs +0 -1
- package/dist/web-components/ChoiceMenu-DTuEEUeM.mjs +0 -1
- package/dist/web-components/Collection-B9swJtPW.mjs +0 -1
- package/dist/web-components/ControlMenu-Crtho2cs.mjs +0 -1
- package/dist/web-components/Cue-CbZaGwZh.mjs +0 -1
- package/dist/web-components/Document-BfltLWZZ.mjs +0 -1
- package/dist/web-components/DocumentPanel-ZSe40cV4.mjs +0 -1
- package/dist/web-components/FrameAnimation-IfR1czfc.mjs +0 -1
- package/dist/web-components/Gallery-DD06BDQo.mjs +0 -1
- package/dist/web-components/Items-BHzT9A73.mjs +0 -1
- package/dist/web-components/Label-KabnxuMN.mjs +0 -1
- package/dist/web-components/LightboxBody-BhRhdXo6.mjs +0 -1
- package/dist/web-components/ListEnd-CbwNlty-.mjs +0 -1
- package/dist/web-components/LoadedCanvas-CdZ5WOWz.mjs +0 -1
- package/dist/web-components/LoadedMap-DQyQVRVQ.mjs +0 -1
- package/dist/web-components/MapView-duA5WGsu.mjs +0 -3
- package/dist/web-components/Markup-D-kioDf9.mjs +0 -2
- package/dist/web-components/MediaBody-CoOiVXcv.mjs +0 -1
- package/dist/web-components/MediaBody-d8ErTuwT.mjs +0 -1
- package/dist/web-components/PagerLayout-CvOmKtSW.mjs +0 -1
- package/dist/web-components/Panel-CIdjOznL.mjs +0 -1
- package/dist/web-components/PlaceBox-BtIbIotm.mjs +0 -1
- package/dist/web-components/Placeholder-TIyj4ZjR.mjs +0 -1
- package/dist/web-components/Provider-C8se8i4I.mjs +0 -1
- package/dist/web-components/Root-CAJB0-Mh.mjs +0 -1
- package/dist/web-components/Scene-Ctcdt7CD.mjs +0 -1
- package/dist/web-components/SceneView-B6bEx_7x.mjs +0 -1
- package/dist/web-components/Timeline-CfIF4APc.mjs +0 -1
- package/dist/web-components/canvas-CWf_Fag8.mjs +0 -1
- package/dist/web-components/cloverEngine-6djEHNCD.mjs +0 -164
- package/dist/web-components/dragToClose-C-Pf1IeO.mjs +0 -1
- package/dist/web-components/es-BYfHUZ7P.mjs +0 -1
- package/dist/web-components/fi-B5y2qr8T.mjs +0 -1
- package/dist/web-components/fr-ChezCx6V.mjs +0 -1
- package/dist/web-components/fromManifest-gg5Wx14y.mjs +0 -1
- package/dist/web-components/glyphs-JYl2STEr.mjs +0 -1
- package/dist/web-components/hooks-x7rO95CS.mjs +0 -1
- package/dist/web-components/image-layers-BjbeyHBS.mjs +0 -1
- package/dist/web-components/index-BZ7b9k0N.mjs +0 -1
- package/dist/web-components/items-CnAIl9fS.mjs +0 -1
- package/dist/web-components/items-F6hJgdAS.mjs +0 -1
- package/dist/web-components/label-CI88KH2_.mjs +0 -1
- package/dist/web-components/layout-De1MOSYe.mjs +0 -1
- package/dist/web-components/logo-Ckwj7FlP.mjs +0 -1
- package/dist/web-components/nb-8J22f9Td.mjs +0 -1
- package/dist/web-components/nn-Dv1EvzI1.mjs +0 -1
- package/dist/web-components/no-8J22f9Td.mjs +0 -1
- package/dist/web-components/panClearOfControls-ac9uf-Qs.mjs +0 -1
- package/dist/web-components/part-CXts97_M.mjs +0 -1
- package/dist/web-components/playerSurface-HYwEwPK6.mjs +0 -1
- package/dist/web-components/pt-DWYQkATt.mjs +0 -1
- package/dist/web-components/readingLanguages-fs_HqvqQ.mjs +0 -1
- package/dist/web-components/rendererSurface-C0aKlE0v.mjs +0 -22
- package/dist/web-components/search-CkM0O0Z1.mjs +0 -1
- package/dist/web-components/shared-MTsMddHx.mjs +0 -1
- package/dist/web-components/styles-CZV1nbBQ.mjs +0 -1
- package/dist/web-components/useScrollTrack-CEsOU2yT.mjs +0 -1
- package/dist/web-components/viewer/AnnotationItems-CyhVcRFc.mjs +0 -1
- package/dist/web-components/viewer/AnnotationState-Bjztkobn.mjs +0 -1
- package/dist/web-components/viewer/Annotations-Dh_8Tzi0.mjs +0 -2
- package/dist/web-components/viewer/Annotations-wwuOCxzI.mjs +0 -1
- package/dist/web-components/viewer/CaptionDetails-BwCTovy_.mjs +0 -1
- package/dist/web-components/viewer/Collection-DSBxCmXw.mjs +0 -1
- package/dist/web-components/viewer/Connected-CL3N8F2J.mjs +0 -1
- package/dist/web-components/viewer/Connected-DTk1jlyI.mjs +0 -1
- package/dist/web-components/viewer/Contents-DrXckx7d.mjs +0 -1
- package/dist/web-components/viewer/ControlMenu-Bp91s-g_.mjs +0 -1
- package/dist/web-components/viewer/Cue-C-aF8peC.mjs +0 -1
- package/dist/web-components/viewer/Document-BN1rICu3.mjs +0 -1
- package/dist/web-components/viewer/DocumentPanel-CEesxdeY.mjs +0 -1
- package/dist/web-components/viewer/Download-CawEl9MN.mjs +0 -1
- package/dist/web-components/viewer/EntryBodies-nYHMwSSM.mjs +0 -1
- package/dist/web-components/viewer/EntryThumbnail-DrO_0SzR.mjs +0 -1
- package/dist/web-components/viewer/FrameAnimation-CZfzpxaD.mjs +0 -1
- package/dist/web-components/viewer/Gallery-MWHtvjti.mjs +0 -1
- package/dist/web-components/viewer/LanguageChoice-C50T7dPI.mjs +0 -1
- package/dist/web-components/viewer/LightboxBody-C2T7IC29.mjs +0 -1
- package/dist/web-components/viewer/ListEnd-BDuOx__m.mjs +0 -1
- package/dist/web-components/viewer/MediaBody-CEyswliX.mjs +0 -1
- package/dist/web-components/viewer/MediaBody-Dw3DWDjc.mjs +0 -1
- package/dist/web-components/viewer/PagerLayout-Cg2NpqoD.mjs +0 -1
- package/dist/web-components/viewer/PlaceBox-Dckw4Sfk.mjs +0 -1
- package/dist/web-components/viewer/Placeholder-NYVWYg5Q.mjs +0 -1
- package/dist/web-components/viewer/Search-DC259m4f.mjs +0 -1
- package/dist/web-components/viewer/StandaloneItems-E4kpMne9.mjs +0 -1
- package/dist/web-components/viewer/Transcript-D_VGJQxn.mjs +0 -1
- package/dist/web-components/viewer/annotation-collection-DZHa18ir.mjs +0 -1
- package/dist/web-components/viewer/annotation-name-BaNdW2Xk.mjs +0 -1
- package/dist/web-components/viewer/cloverEngine-C04bCSFR.mjs +0 -164
- package/dist/web-components/viewer/image-layers-B09fporZ.mjs +0 -1
- package/dist/web-components/viewer/overlayImage-BR3eJCKq.mjs +0 -1
- package/dist/web-components/viewer/range-regions-By6L5JOK.mjs +0 -1
- package/dist/web-components/viewer/styles-NZLnZPAC.mjs +0 -1
- package/dist/web-components/viewer/viewer-D30YHqyF.mjs +0 -29
- package/dist/web-components/viewer-CH7re5OO.mjs +0 -1
|
@@ -54,26 +54,37 @@ function AboutContent({
|
|
|
54
54
|
const root = useRef(null);
|
|
55
55
|
useEffect(() => {
|
|
56
56
|
const about = root.current;
|
|
57
|
-
const
|
|
58
|
-
if (!about || !
|
|
59
|
-
const
|
|
57
|
+
const head = about == null ? void 0 : about.querySelector(".clover-about-head");
|
|
58
|
+
if (!about || !head || typeof ResizeObserver === "undefined") return;
|
|
59
|
+
const watched = /* @__PURE__ */ new Set();
|
|
60
60
|
const write = () => {
|
|
61
|
+
const image = head.querySelector(".clover-about-thumbnail");
|
|
62
|
+
const heading = head.querySelector(".clover-about-label");
|
|
63
|
+
for (const element of [image, heading])
|
|
64
|
+
if (element && !watched.has(element)) {
|
|
65
|
+
watched.add(element);
|
|
66
|
+
observer.observe(element);
|
|
67
|
+
}
|
|
68
|
+
const style = about.style;
|
|
69
|
+
if (!image) {
|
|
70
|
+
style.removeProperty("--clover-about-label-height");
|
|
71
|
+
style.removeProperty("--clover-about-thumbnail-width");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
61
74
|
const height = `${(heading == null ? void 0 : heading.offsetHeight) ?? 0}px`;
|
|
62
75
|
const width = `${image.offsetWidth}px`;
|
|
63
|
-
const style = about.style;
|
|
64
76
|
if (style.getPropertyValue("--clover-about-label-height") !== height)
|
|
65
77
|
style.setProperty("--clover-about-label-height", height);
|
|
66
78
|
if (style.getPropertyValue("--clover-about-thumbnail-width") !== width)
|
|
67
79
|
style.setProperty("--clover-about-thumbnail-width", width);
|
|
68
80
|
};
|
|
69
|
-
write();
|
|
70
81
|
let frame = 0;
|
|
71
82
|
const observer = new ResizeObserver(() => {
|
|
72
83
|
cancelAnimationFrame(frame);
|
|
73
84
|
frame = requestAnimationFrame(write);
|
|
74
85
|
});
|
|
75
|
-
observer.observe(
|
|
76
|
-
|
|
86
|
+
observer.observe(head);
|
|
87
|
+
write();
|
|
77
88
|
return () => {
|
|
78
89
|
cancelAnimationFrame(frame);
|
|
79
90
|
observer.disconnect();
|
|
@@ -128,7 +139,13 @@ function AboutContent({
|
|
|
128
139
|
alt: label ? "" : void 0
|
|
129
140
|
}
|
|
130
141
|
),
|
|
131
|
-
label && /* @__PURE__ */ jsx(
|
|
142
|
+
label && /* @__PURE__ */ jsx(
|
|
143
|
+
Label,
|
|
144
|
+
{
|
|
145
|
+
as: titleTag(headingLevel),
|
|
146
|
+
className: "clover-about-label clover-title"
|
|
147
|
+
}
|
|
148
|
+
)
|
|
132
149
|
] }),
|
|
133
150
|
canvasSummary && /* @__PURE__ */ jsx(Summary, { of: "canvas", className: "clover-about-summary" }),
|
|
134
151
|
isLoneCanvas(manifest) && manifest.partOf && /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
|
|
@@ -6,12 +6,10 @@ import { AboutActions } from "./AboutActions.mjs";
|
|
|
6
6
|
import { InPanelContext } from "./ReadingLanguages.mjs";
|
|
7
7
|
import { Tip } from "../../ui/Tip.mjs";
|
|
8
8
|
import { Close } from "../Body/glyphs.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { partOfCollection, selectVisibleCanvases } from "../../core/selectors.mjs";
|
|
14
|
-
import { selectListedSets } from "../../core/annotation-sets.mjs";
|
|
9
|
+
import { SEARCH_SET_ID } from "../../core/search-service.mjs";
|
|
10
|
+
import { usePanelSections } from "./sections.mjs";
|
|
11
|
+
import { langWithin } from "../../i18n/config.mjs";
|
|
12
|
+
import { languageToRead } from "../../i18n/languages.mjs";
|
|
15
13
|
import { useCloverTranslation } from "../../i18n/useCloverTranslation.mjs";
|
|
16
14
|
import { join } from "../../lib/classnames.mjs";
|
|
17
15
|
import { useClover, useCloverSelector } from "../../react/context.mjs";
|
|
@@ -54,6 +52,8 @@ const Panel = forwardRef(function Panel2({
|
|
|
54
52
|
as: Tag = "aside",
|
|
55
53
|
download = true,
|
|
56
54
|
languages = true,
|
|
55
|
+
sections,
|
|
56
|
+
labels,
|
|
57
57
|
className,
|
|
58
58
|
children,
|
|
59
59
|
onKeyDown,
|
|
@@ -62,7 +62,7 @@ const Panel = forwardRef(function Panel2({
|
|
|
62
62
|
var _a;
|
|
63
63
|
const { clover } = useClover("Panel");
|
|
64
64
|
const element = useRef(null);
|
|
65
|
-
const { t, langOf } = useCloverTranslation();
|
|
65
|
+
const { t, langOf, hostLanguage, i18n } = useCloverTranslation();
|
|
66
66
|
const name = useContainerName(
|
|
67
67
|
t("informationPanelTabs"),
|
|
68
68
|
langOf("informationPanelTabs"),
|
|
@@ -72,38 +72,18 @@ const Panel = forwardRef(function Panel2({
|
|
|
72
72
|
const lang = langOf(key);
|
|
73
73
|
return lang ? /* @__PURE__ */ jsx("span", { ...languageProps(lang), children: t(key) }) : t(key);
|
|
74
74
|
};
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
);
|
|
86
|
-
const
|
|
87
|
-
(state) => tableOfContents(state.manifest).length > 0
|
|
88
|
-
);
|
|
89
|
-
const hasSearch = useCloverSelector(
|
|
90
|
-
(state) => Boolean(searchServiceOf(state.manifest))
|
|
91
|
-
);
|
|
92
|
-
const hasMap = useCloverSelector(
|
|
93
|
-
(state) => hasMapData(state.manifest, state.collection)
|
|
94
|
-
);
|
|
95
|
-
const hasTargets = useCloverSelector(
|
|
96
|
-
(state) => {
|
|
97
|
-
var _a2;
|
|
98
|
-
return (((_a2 = state.targets) == null ? void 0 : _a2.items.length) ?? 0) > 1;
|
|
99
|
-
}
|
|
100
|
-
);
|
|
101
|
-
const hasCollection = useCloverSelector(
|
|
102
|
-
(state) => {
|
|
103
|
-
var _a2, _b;
|
|
104
|
-
return (((_b = (_a2 = state.collection) == null ? void 0 : _a2.items) == null ? void 0 : _b.length) ?? 0) > 0 || Boolean(partOfCollection(state.manifest));
|
|
105
|
-
}
|
|
106
|
-
);
|
|
75
|
+
const sectionLabel = (section, key) => {
|
|
76
|
+
const given2 = labels == null ? void 0 : labels[section];
|
|
77
|
+
if (given2 === void 0) return tabLabel(key);
|
|
78
|
+
if (typeof given2 === "string") return given2;
|
|
79
|
+
const tags = Object.keys(given2);
|
|
80
|
+
const tag = languageToRead(tags, i18n.language);
|
|
81
|
+
if (!tag) return tabLabel(key);
|
|
82
|
+
const lang = langWithin(tag, hostLanguage);
|
|
83
|
+
return lang ? /* @__PURE__ */ jsx("span", { ...languageProps(lang), children: given2[tag] }) : given2[tag];
|
|
84
|
+
};
|
|
85
|
+
const offered = usePanelSections(sections);
|
|
86
|
+
const has = (section) => offered.includes(section);
|
|
107
87
|
const given = React.Children.toArray(children).filter(
|
|
108
88
|
(child) => React.isValidElement(child) && child.type === Tab
|
|
109
89
|
);
|
|
@@ -115,62 +95,70 @@ const Panel = forwardRef(function Panel2({
|
|
|
115
95
|
content: props.children,
|
|
116
96
|
...props.value === "about" && { actions: aboutActions }
|
|
117
97
|
})) : [
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
98
|
+
...has("about") ? [
|
|
99
|
+
{
|
|
100
|
+
value: "about",
|
|
101
|
+
label: sectionLabel("about", "informationPanelTabsAbout"),
|
|
102
|
+
content: /* @__PURE__ */ jsx(About, { headingLevel: inner, download }),
|
|
103
|
+
actions: aboutActions
|
|
104
|
+
}
|
|
105
|
+
] : [],
|
|
106
|
+
...has("targets") ? [
|
|
125
107
|
{
|
|
126
108
|
value: "targets",
|
|
127
|
-
label:
|
|
109
|
+
label: sectionLabel("targets", "informationPanelTabsTargets"),
|
|
128
110
|
content: later(/* @__PURE__ */ jsx(Targets, { headingLevel: inner }))
|
|
129
111
|
}
|
|
130
112
|
] : [],
|
|
131
|
-
...
|
|
113
|
+
...has("collection") ? [
|
|
132
114
|
{
|
|
133
115
|
value: "collection",
|
|
134
|
-
label:
|
|
116
|
+
label: sectionLabel(
|
|
117
|
+
"collection",
|
|
118
|
+
"informationPanelTabsCollection"
|
|
119
|
+
),
|
|
135
120
|
content: later(/* @__PURE__ */ jsx(Collection, { headingLevel: inner }))
|
|
136
121
|
}
|
|
137
122
|
] : [],
|
|
138
|
-
...
|
|
123
|
+
...has("contents") ? [
|
|
139
124
|
{
|
|
140
125
|
value: "contents",
|
|
141
|
-
label:
|
|
126
|
+
label: sectionLabel("contents", "informationPanelTabsContents"),
|
|
142
127
|
content: later(/* @__PURE__ */ jsx(Contents, {}))
|
|
143
128
|
}
|
|
144
129
|
] : [],
|
|
145
|
-
...
|
|
130
|
+
...has("search") ? [
|
|
146
131
|
{
|
|
147
132
|
value: "search",
|
|
148
|
-
label:
|
|
133
|
+
label: sectionLabel("search", "informationPanelTabsSearch"),
|
|
149
134
|
// Its field small and held as the hits scroll (Mat, 2026-10-26).
|
|
150
135
|
content: later(
|
|
151
136
|
/* @__PURE__ */ jsx(Search, { headingLevel: inner, sticky: true, size: "small" })
|
|
152
137
|
)
|
|
153
138
|
}
|
|
154
139
|
] : [],
|
|
155
|
-
...
|
|
140
|
+
...has("map") ? [
|
|
156
141
|
{
|
|
157
142
|
value: "map",
|
|
158
|
-
label:
|
|
143
|
+
label: sectionLabel("map", "informationPanelTabsMap"),
|
|
159
144
|
content: later(/* @__PURE__ */ jsx(RootMap, {}))
|
|
160
145
|
}
|
|
161
146
|
] : [],
|
|
162
|
-
...
|
|
147
|
+
...has("transcript") ? [
|
|
163
148
|
{
|
|
164
149
|
value: "transcript",
|
|
165
|
-
label:
|
|
150
|
+
label: sectionLabel("transcript", "transcriptLabel"),
|
|
166
151
|
// Its find field small and held as the cues scroll, as Search's.
|
|
167
152
|
content: later(/* @__PURE__ */ jsx(Transcript, { sticky: true, size: "small" }))
|
|
168
153
|
}
|
|
169
154
|
] : [],
|
|
170
|
-
...
|
|
155
|
+
...has("annotations") ? [
|
|
171
156
|
{
|
|
172
157
|
value: "annotations",
|
|
173
|
-
label:
|
|
158
|
+
label: sectionLabel(
|
|
159
|
+
"annotations",
|
|
160
|
+
"informationPanelTabsAnnotations"
|
|
161
|
+
),
|
|
174
162
|
// Every Canvas's, by Canvas, those in view kept in sight.
|
|
175
163
|
content: later(/* @__PURE__ */ jsx(Annotations, { headingLevel: inner }))
|
|
176
164
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { canvasTimedText, canvasTextTranscripts } from "../Canvas/layout.mjs";
|
|
3
|
+
import { hasMapData } from "../../core/geo-detect.mjs";
|
|
4
|
+
import { searchServiceOf } from "../../core/search-service.mjs";
|
|
5
|
+
import { tableOfContents } from "../../core/ranges.mjs";
|
|
6
|
+
import { selectVisibleCanvases, partOfCollection } from "../../core/selectors.mjs";
|
|
7
|
+
import { selectListedSets } from "../../core/annotation-sets.mjs";
|
|
8
|
+
import { useCloverSelector } from "../../react/context.mjs";
|
|
9
|
+
const PANEL_SECTIONS = [
|
|
10
|
+
"about",
|
|
11
|
+
"targets",
|
|
12
|
+
"collection",
|
|
13
|
+
"contents",
|
|
14
|
+
"search",
|
|
15
|
+
"map",
|
|
16
|
+
"transcript",
|
|
17
|
+
"annotations"
|
|
18
|
+
];
|
|
19
|
+
const HAS = {
|
|
20
|
+
// A content state's several targets (Cookbook 0540), listed as a Collection's members are.
|
|
21
|
+
targets: (state) => {
|
|
22
|
+
var _a;
|
|
23
|
+
return (((_a = state.targets) == null ? void 0 : _a.items.length) ?? 0) > 1;
|
|
24
|
+
},
|
|
25
|
+
// Reached through a Collection, or part of one: offered either way, fetched when opened.
|
|
26
|
+
collection: (state) => {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
return (((_b = (_a = state.collection) == null ? void 0 : _a.items) == null ? void 0 : _b.length) ?? 0) > 0 || Boolean(partOfCollection(state.manifest));
|
|
29
|
+
},
|
|
30
|
+
contents: (state) => tableOfContents(state.manifest).length > 0,
|
|
31
|
+
search: (state) => Boolean(searchServiceOf(state.manifest)),
|
|
32
|
+
map: (state) => hasMapData(state.manifest, state.collection),
|
|
33
|
+
transcript: (state) => selectVisibleCanvases(
|
|
34
|
+
state.manifest,
|
|
35
|
+
state.canvasId
|
|
36
|
+
).some(
|
|
37
|
+
(canvas) => canvasTimedText(canvas).length > 0 || canvasTextTranscripts(canvas).length > 0
|
|
38
|
+
),
|
|
39
|
+
annotations: (state) => selectListedSets(state.manifest, state.addedSets).length > 0
|
|
40
|
+
};
|
|
41
|
+
const narrow = (data, sections) => {
|
|
42
|
+
const chosen = Array.isArray(sections) ? new Set(sections) : void 0;
|
|
43
|
+
return PANEL_SECTIONS.filter(
|
|
44
|
+
(section) => data[section] && (!chosen || chosen.has(section))
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
function usePanelSections(sections) {
|
|
48
|
+
const data = {
|
|
49
|
+
about: true,
|
|
50
|
+
targets: useCloverSelector(HAS.targets),
|
|
51
|
+
collection: useCloverSelector(HAS.collection),
|
|
52
|
+
contents: useCloverSelector(HAS.contents),
|
|
53
|
+
search: useCloverSelector(HAS.search),
|
|
54
|
+
map: useCloverSelector(HAS.map),
|
|
55
|
+
transcript: useCloverSelector(HAS.transcript),
|
|
56
|
+
annotations: useCloverSelector(HAS.annotations)
|
|
57
|
+
};
|
|
58
|
+
return narrow(data, sections);
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
usePanelSections
|
|
62
|
+
};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { useRef, useState, useEffect, useMemo, useSyncExternalStore } from "react";
|
|
3
3
|
import { createClover } from "../../core/clover.mjs";
|
|
4
4
|
import { requestKey } from "../../core/request.mjs";
|
|
5
|
+
import { useRootContentState } from "../../react/useContentStateOutput.mjs";
|
|
5
6
|
import { sameRenderers } from "../Body/renderers.mjs";
|
|
6
7
|
function useRootState({
|
|
7
8
|
iiifContent,
|
|
@@ -91,7 +92,7 @@ function useRootState({
|
|
|
91
92
|
useEffect(() => {
|
|
92
93
|
clover.setAnnotationPages(annotationPages);
|
|
93
94
|
}, [clover, annotationPages]);
|
|
94
|
-
|
|
95
|
+
useRootContentState(clover, onContentStateChange);
|
|
95
96
|
useEffect(() => {
|
|
96
97
|
if (manifestControlled && status === "ready") {
|
|
97
98
|
void clover.syncManifest(manifestId ?? null);
|
|
@@ -143,54 +144,6 @@ function annotationsInputKey(input) {
|
|
|
143
144
|
)
|
|
144
145
|
);
|
|
145
146
|
}
|
|
146
|
-
const SETTLE_MS = 300;
|
|
147
|
-
function useContentStateOutput(clover, onChange) {
|
|
148
|
-
const latest = useRef(onChange);
|
|
149
|
-
latest.current = onChange;
|
|
150
|
-
const enabled = Boolean(onChange);
|
|
151
|
-
useEffect(() => {
|
|
152
|
-
if (!enabled) return;
|
|
153
|
-
let timer;
|
|
154
|
-
let last = "";
|
|
155
|
-
const settle = () => {
|
|
156
|
-
clearTimeout(timer);
|
|
157
|
-
timer = setTimeout(() => {
|
|
158
|
-
var _a;
|
|
159
|
-
const state = clover.getContentState();
|
|
160
|
-
if (!state || state.encoded === last) return;
|
|
161
|
-
last = state.encoded;
|
|
162
|
-
(_a = latest.current) == null ? void 0 : _a.call(latest, state);
|
|
163
|
-
}, SETTLE_MS);
|
|
164
|
-
};
|
|
165
|
-
let canvasId = clover.store.get().canvasId;
|
|
166
|
-
const offStore = clover.store.subscribe(() => {
|
|
167
|
-
const next = clover.store.get().canvasId;
|
|
168
|
-
if (next !== canvasId) {
|
|
169
|
-
canvasId = next;
|
|
170
|
-
settle();
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
const offViewport = clover.viewport.subscribe(settle);
|
|
174
|
-
let element = null;
|
|
175
|
-
const watch = (next) => {
|
|
176
|
-
element == null ? void 0 : element.removeEventListener("pause", settle);
|
|
177
|
-
element == null ? void 0 : element.removeEventListener("seeked", settle);
|
|
178
|
-
element = next;
|
|
179
|
-
element == null ? void 0 : element.addEventListener("pause", settle);
|
|
180
|
-
element == null ? void 0 : element.addEventListener("seeked", settle);
|
|
181
|
-
};
|
|
182
|
-
watch(clover.media.get());
|
|
183
|
-
const offMedia = clover.media.subscribe(watch);
|
|
184
|
-
settle();
|
|
185
|
-
return () => {
|
|
186
|
-
clearTimeout(timer);
|
|
187
|
-
offStore();
|
|
188
|
-
offViewport();
|
|
189
|
-
offMedia();
|
|
190
|
-
watch(null);
|
|
191
|
-
};
|
|
192
|
-
}, [clover, enabled]);
|
|
193
|
-
}
|
|
194
147
|
function contentKey(content) {
|
|
195
148
|
if (typeof content === "string") return content;
|
|
196
149
|
return content.id ?? content["@id"] ?? content;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import React, { useState, useRef, useCallback,
|
|
3
|
+
import React, { useEffect, useState, useRef, useCallback, useMemo } from "react";
|
|
4
4
|
import { attachOrbitGestures } from "./gestures.mjs";
|
|
5
5
|
import { homeOrbit, turned, zoomed, sameOrbit } from "./orbit.mjs";
|
|
6
6
|
import { sceneModels, sceneBackground } from "./models.mjs";
|
|
@@ -11,6 +11,7 @@ import { BodyUnloadable } from "../../ui/BodyUnloadable.mjs";
|
|
|
11
11
|
import { Information } from "../Body/glyphs.mjs";
|
|
12
12
|
import { useControlsVisibility } from "../Body/useControlsVisibility.mjs";
|
|
13
13
|
import { useNearViewport } from "../Body/useNearViewport.mjs";
|
|
14
|
+
import { buildContentState } from "../../core/content-state.mjs";
|
|
14
15
|
import { requestKey } from "../../core/request.mjs";
|
|
15
16
|
import { localize } from "../../core/value.mjs";
|
|
16
17
|
import useFullscreen from "../../hooks/useFullscreen.mjs";
|
|
@@ -36,6 +37,7 @@ import { useUniqueId } from "../../ui/useUniqueId.mjs";
|
|
|
36
37
|
import { visuallyHidden } from "../../ui/visuallyHidden.mjs";
|
|
37
38
|
import { engineFor } from "./engines.mjs";
|
|
38
39
|
import { languageProps } from "../../i18n/direction.mjs";
|
|
40
|
+
import { useContentStateOutput } from "../../react/useContentStateOutput.mjs";
|
|
39
41
|
const ALL_CONTROLS = {
|
|
40
42
|
zoom: true,
|
|
41
43
|
fullPage: true,
|
|
@@ -70,9 +72,18 @@ function SceneBody({
|
|
|
70
72
|
options,
|
|
71
73
|
manifestId,
|
|
72
74
|
engine: drawWith = "clover",
|
|
75
|
+
onContentStateChange,
|
|
73
76
|
children
|
|
74
77
|
}) {
|
|
75
78
|
const { t } = useCloverTranslation();
|
|
79
|
+
const contentStateChanged = useContentStateOutput(
|
|
80
|
+
() => manifestId === "loading" ? null : buildContentState({ manifestId, canvasId: scene.id, type: "Scene" }),
|
|
81
|
+
onContentStateChange
|
|
82
|
+
);
|
|
83
|
+
useEffect(
|
|
84
|
+
() => contentStateChanged(),
|
|
85
|
+
[scene.id, manifestId, contentStateChanged]
|
|
86
|
+
);
|
|
76
87
|
const [wrapper, setWrapper] = useState(null);
|
|
77
88
|
const root = useRootLanguage(setWrapper);
|
|
78
89
|
const contrast = useHighContrast(highContrast);
|
|
@@ -464,7 +475,7 @@ function SceneBody({
|
|
|
464
475
|
},
|
|
465
476
|
children: [
|
|
466
477
|
/* @__PURE__ */ jsx(ExitFullscreen, { hidden: !exitShown }),
|
|
467
|
-
(captioned.length > 0 || React.Children.count(children) > 0) && /* @__PURE__ */ jsxs(ControlCluster, {
|
|
478
|
+
(captioned.length > 0 || React.Children.count(children) > 0) && /* @__PURE__ */ jsxs(ControlCluster, { children: [
|
|
468
479
|
captioned.length > 0 && /* @__PURE__ */ jsx(
|
|
469
480
|
Button,
|
|
470
481
|
{
|
|
@@ -49,8 +49,9 @@ function createEngine(host, { onLost }) {
|
|
|
49
49
|
models.length ? `Clover draws glTF models (${MODEL_FORMATS.join(", ")}), not ${formats.join(", ")}.` : "The Scene paints no model."
|
|
50
50
|
);
|
|
51
51
|
}
|
|
52
|
+
const most = gl.getParameter(gl.MAX_TEXTURE_SIZE);
|
|
52
53
|
const assets = await Promise.all(
|
|
53
|
-
drawable.map((model) => loadGltf(model.src, request))
|
|
54
|
+
drawable.map((model) => loadGltf(model.src, request, most))
|
|
54
55
|
);
|
|
55
56
|
if (disposed) return bounds;
|
|
56
57
|
assets.forEach(
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { isHovering, isDirect, TAP_MS, TAP_SLOP } from "../../lib/pointer.mjs";
|
|
3
|
+
import { useControlsVisibility } from "../Body/useControlsVisibility.mjs";
|
|
3
4
|
const playerSurface = (host) => {
|
|
4
5
|
const listeners = /* @__PURE__ */ new Map();
|
|
5
6
|
const emit = (event) => {
|
|
@@ -80,6 +81,7 @@ const playerSurface = (host) => {
|
|
|
80
81
|
}
|
|
81
82
|
};
|
|
82
83
|
};
|
|
84
|
+
playerSurface.controlsVisibility = useControlsVisibility;
|
|
83
85
|
export {
|
|
84
86
|
playerSurface
|
|
85
87
|
};
|
package/dist/core/clover.mjs
CHANGED
|
@@ -426,18 +426,21 @@ function createClover(options = {}) {
|
|
|
426
426
|
}
|
|
427
427
|
},
|
|
428
428
|
getContentState() {
|
|
429
|
+
var _a;
|
|
429
430
|
const { manifest, canvasId } = store.get();
|
|
430
431
|
if (!manifest || !canvasId) return null;
|
|
431
432
|
const view = viewport.get();
|
|
432
433
|
const element = media.get();
|
|
433
434
|
const time = element && element.currentTime > 0 ? element.currentTime : null;
|
|
434
|
-
const
|
|
435
|
-
|
|
436
|
-
);
|
|
435
|
+
const visible = selectVisibleCanvases(manifest, canvasId);
|
|
436
|
+
const current = view && visible.some((canvas) => canvas.id === view.canvasId);
|
|
437
437
|
const onView = current && !time ? view : null;
|
|
438
|
+
const shown = (onView == null ? void 0 : onView.canvasId) ?? canvasId;
|
|
438
439
|
return buildContentState({
|
|
439
440
|
manifestId: manifest.id,
|
|
440
|
-
canvasId:
|
|
441
|
+
canvasId: shown,
|
|
442
|
+
// A Timeline or a Scene by its own type: a Canvas's is the default.
|
|
443
|
+
type: (_a = visible.find((canvas) => canvas.id === shown)) == null ? void 0 : _a.type,
|
|
441
444
|
region: onView == null ? void 0 : onView.region,
|
|
442
445
|
time
|
|
443
446
|
});
|
|
@@ -14,17 +14,19 @@ function encodeContentState(json) {
|
|
|
14
14
|
function buildContentState({
|
|
15
15
|
manifestId,
|
|
16
16
|
canvasId,
|
|
17
|
+
type = "Canvas",
|
|
17
18
|
region,
|
|
18
19
|
time
|
|
19
20
|
}) {
|
|
20
21
|
const source = {
|
|
21
22
|
id: canvasId,
|
|
22
|
-
type
|
|
23
|
-
partOf: [{ id: manifestId, type: "Manifest" }]
|
|
23
|
+
type,
|
|
24
|
+
...manifestId && manifestId !== canvasId ? { partOf: [{ id: manifestId, type: "Manifest" }] } : {}
|
|
24
25
|
};
|
|
25
26
|
const fragment = time != null && time > 0 ? `t=${Math.round(time * 100) / 100}` : region ? `xywh=${[region.x, region.y, region.w, region.h].map(Math.round).join(",")}` : null;
|
|
26
27
|
const json = {
|
|
27
|
-
|
|
28
|
+
// A Timeline and a Scene are Presentation 4's: Presentation 3 knows only the Canvas.
|
|
29
|
+
"@context": `http://iiif.io/api/presentation/${type === "Canvas" ? 3 : 4}/context.json`,
|
|
28
30
|
id: `${canvasId}#content-state`,
|
|
29
31
|
type: "Annotation",
|
|
30
32
|
motivation: ["contentState"],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const en = JSON.parse('{"commonClose":"Close","commonNext":"Next","commonPrevious":"Previous","commonSearch":"Search","commonViewAll":"View all","controlShortcut":"{{label}} ({{shortcut}})","contentSearchLoading":"Loading...","contentSearchPlaceholder":"Search","contentSearchResultsNone":"No results","contentSearchResult":"1 result","contentSearchResults":"{{count}} results","contentSearchError":"The search could not be completed.","contentSearchPosition":"Result {{index}} of {{total}}","contentSearchClear":"Clear search","canvasPosition":"Item {{index}} of {{total}}","canvasImage":"Image","bodyUnloadableImage":"This image could not be loaded.","bodyUnloadableVideo":"This video could not be loaded.","bodyUnloadableAudio":"This audio could not be loaded.","bodyUnloadableModel":"This model could not be loaded.","canvasRoleDescription":"zoomable image","canvasKeysImage":"Use the arrow keys to pan, with Shift for larger steps, plus and minus to zoom, 0 to reset the view, and R or Shift+R to rotate.","canvasKeysMedia":"Press Space or K to play or pause, J or L to skip ten seconds back or forward, and M to mute or unmute.","canvasKeysAnnotations":"Press Escape to clear the selected annotation.","sceneModel":"3D model","sceneRoleDescription":"rotatable 3D model","sceneKeys":"Use the arrow keys to rotate the model, with Shift for larger steps, plus and minus to zoom, 0 to reset the view, and R or Shift+R to rotate it right or left.","sceneRotateUp":"Rotate up","sceneRotateDown":"Rotate down","sceneRotate":"Rotate","sceneResetView":"Reset view","statusLoading":"Loading…","statusError":"This could not be loaded.","itemsLabel":"Items","download":"Download","downloadPage":"This page","downloadAll":"All pages","templateSidebar":"Items","templateSidebarToggle":"Show items","collectionLabel":"Collection","itemsScrollBack":"Show previous items","itemsScrollForward":"Show more items","aboutRights":"Rights","aboutDate":"Date","aboutHomepage":"Homepage","aboutSeeAlso":"See also","aboutProvider":"Provider","logo":"Logo","aboutManifest":"IIIF Manifest","aboutCanvas":"IIIF Canvas","aboutPartOf":"Part of","aboutOpenManifest":"Open the full Manifest","aboutCollection":"IIIF Collection","readingLanguage":"Language","annotationsHide":"Hide annotations","annotationsHideTip":"Hide","readMore":"Read more","readLess":"Read less","annotationsShow":"Find on the image","annotationsShowTime":"Find in the recording","annotationsImage":"Image","annotationsLanguage":"Language","annotationsOpenLink":"Open the link","transcriptLabel":"Transcript","imageViewerOpen":"Open image viewer","imageViewerClose":"Close image viewer","canvasChoice":"Choice","imageFullScreen":"Full screen","imageExitFullScreen":"Exit full screen","imageResetZoom":"Reset zoom","imageRotateLeft":"Rotate left","imageRotateRight":"Rotate right","imageZoomIn":"Zoom in","imageZoomOut":"Zoom out","informationPanelTabs":"Information panel","sectionsScrollBack":"Show previous tabs","sectionsScrollForward":"Show more tabs","informationPanelClose":"Close information panel","informationPanelTabsAbout":"About","informationPanelTabsAnnotations":"Annotations","informationPanelTabsSearch":"Search","informationPanelTabsContents":"Contents","contentsSectionsIn":"Sections in","informationPanelTabsMap":"Map","informationPanelTabsCollection":"Collection","informationPanelTabsTargets":"Views","mapUnavailable":"The map could not be shown.","mapLabel":"Map","mapAttribution":"Map credits","mapPlaceUntitled":"Place {{number}}","mapOverlay":"Georeferenced image","mapPlacesListed":"Places listed after the map: {{count}}","informationPanelToggle":"More information","playerPlay":"Play","playerPause":"Pause","
|
|
2
|
+
const en = JSON.parse('{"commonClose":"Close","commonNext":"Next","commonPrevious":"Previous","commonSearch":"Search","commonViewAll":"View all","controlShortcut":"{{label}} ({{shortcut}})","contentSearchLoading":"Loading...","contentSearchPlaceholder":"Search","contentSearchResultsNone":"No results","contentSearchResult":"1 result","contentSearchResults":"{{count}} results","contentSearchError":"The search could not be completed.","contentSearchPosition":"Result {{index}} of {{total}}","contentSearchClear":"Clear search","canvasPosition":"Item {{index}} of {{total}}","canvasImage":"Image","bodyUnloadableImage":"This image could not be loaded.","bodyUnloadableVideo":"This video could not be loaded.","bodyUnloadableAudio":"This audio could not be loaded.","bodyUnloadableModel":"This model could not be loaded.","canvasRoleDescription":"zoomable image","canvasKeysImage":"Use the arrow keys to pan, with Shift for larger steps, plus and minus to zoom, 0 to reset the view, and R or Shift+R to rotate.","canvasKeysMedia":"Press Space or K to play or pause, J or L to skip ten seconds back or forward, and M to mute or unmute.","canvasKeysAnnotations":"Press Escape to clear the selected annotation.","sceneModel":"3D model","sceneRoleDescription":"rotatable 3D model","sceneKeys":"Use the arrow keys to rotate the model, with Shift for larger steps, plus and minus to zoom, 0 to reset the view, and R or Shift+R to rotate it right or left.","sceneRotateUp":"Rotate up","sceneRotateDown":"Rotate down","sceneRotate":"Rotate","sceneResetView":"Reset view","statusLoading":"Loading…","statusError":"This could not be loaded.","itemsLabel":"Items","download":"Download","downloadPage":"This page","downloadAll":"All pages","templateSidebar":"Items","templateSidebarToggle":"Show items","templateBack":"Back","templateBackTo":"Back to {{label}}","collectionLabel":"Collection","itemsScrollBack":"Show previous items","itemsScrollForward":"Show more items","aboutRights":"Rights","aboutDate":"Date","aboutHomepage":"Homepage","aboutSeeAlso":"See also","aboutProvider":"Provider","logo":"Logo","aboutManifest":"IIIF Manifest","aboutCanvas":"IIIF Canvas","aboutPartOf":"Part of","aboutOpenManifest":"Open the full Manifest","aboutCollection":"IIIF Collection","readingLanguage":"Language","annotationsHide":"Hide annotations","annotationsHideTip":"Hide","readMore":"Read more","readLess":"Read less","annotationsShow":"Find on the image","annotationsShowTime":"Find in the recording","annotationsImage":"Image","annotationsLanguage":"Language","annotationsOpenLink":"Open the link","transcriptLabel":"Transcript","imageViewerOpen":"Open image viewer","imageViewerClose":"Close image viewer","canvasChoice":"Choice","canvasViewerControls":"Viewer controls","canvasExpandControls":"Expand viewer controls","canvasCollapseControls":"Collapse viewer controls","canvasScrollBack":"Show previous controls","canvasScrollForward":"Show more controls","imageFullScreen":"Full screen","imageExitFullScreen":"Exit full screen","imageResetZoom":"Reset zoom","imageRotateLeft":"Rotate left","imageRotateRight":"Rotate right","imageZoomIn":"Zoom in","imageZoomOut":"Zoom out","informationPanelTabs":"Information panel","sectionsScrollBack":"Show previous tabs","sectionsScrollForward":"Show more tabs","informationPanelClose":"Close information panel","informationPanelTabsAbout":"About","informationPanelTabsAnnotations":"Annotations","informationPanelTabsSearch":"Search","informationPanelTabsContents":"Contents","contentsSectionsIn":"Sections in","informationPanelTabsMap":"Map","informationPanelTabsCollection":"Collection","informationPanelTabsTargets":"Views","mapUnavailable":"The map could not be shown.","mapLabel":"Map","mapAttribution":"Map credits","mapPlaceUntitled":"Place {{number}}","mapOverlay":"Georeferenced image","mapPlacesListed":"Places listed after the map: {{count}}","informationPanelToggle":"More information","playerPlay":"Play","playerPause":"Pause","playerMute":"Mute","playerUnmute":"Unmute","playerVolume":"Volume","playerSeek":"Seek","playerCaptions":"Captions","playerCaptionsOff":"Off","playerChapters":"Chapters","playerFill":"Fill frame","playerFit":"Fit to frame","frameRepeat":"Repeat","playerCurrentTime":"Current time","playerDuration":"Duration","splitHandle":"Resize panels"}');
|
|
3
3
|
export {
|
|
4
4
|
en as default
|
|
5
5
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const es = JSON.parse('{"commonClose":"Cerrar","commonNext":"Siguiente","commonPrevious":"Anterior","commonSearch":"Buscar","commonViewAll":"Ver todo","controlShortcut":"{{label}} ({{shortcut}})","contentSearchLoading":"Cargando...","contentSearchPlaceholder":"Buscar","contentSearchResultsNone":"Sin resultados","contentSearchResult":"1 resultado","contentSearchResults":"{{count}} resultados","contentSearchError":"No se pudo completar la búsqueda.","contentSearchPosition":"Resultado {{index}} de {{total}}","contentSearchClear":"Borrar la búsqueda","canvasPosition":"Elemento {{index}} de {{total}}","canvasImage":"Imagen","bodyUnloadableImage":"No se pudo cargar esta imagen.","bodyUnloadableVideo":"No se pudo cargar este vídeo.","bodyUnloadableAudio":"No se pudo cargar este audio.","bodyUnloadableModel":"No se pudo cargar este modelo.","canvasRoleDescription":"imagen ampliable","canvasKeysImage":"Use las teclas de flecha para desplazar la imagen, con Mayús para avanzar más, las teclas más y menos para acercar y alejar, 0 para restablecer la vista, y R o Mayús+R para girar.","canvasKeysMedia":"Pulse Espacio o K para reproducir o pausar, J o L para retroceder o avanzar diez segundos, y M para silenciar o activar el sonido.","canvasKeysAnnotations":"Pulse Esc para quitar la selección de la anotación.","sceneModel":"Modelo 3D","sceneRoleDescription":"modelo 3D giratorio","sceneKeys":"Use las teclas de flecha para girar el modelo, con Mayús para avanzar más, las teclas más y menos para acercar y alejar, 0 para restablecer la vista, y R o Mayús+R para girarlo a la derecha o a la izquierda.","sceneRotateUp":"Girar hacia arriba","sceneRotateDown":"Girar hacia abajo","sceneRotate":"Girar","sceneResetView":"Restablecer la vista","statusLoading":"Cargando…","statusError":"No se pudo cargar este contenido.","itemsLabel":"Elementos","download":"Descargar","downloadPage":"Esta página","downloadAll":"Todas las páginas","templateSidebar":"Elementos","templateSidebarToggle":"Mostrar elementos","collectionLabel":"Colección","itemsScrollBack":"Mostrar elementos anteriores","itemsScrollForward":"Mostrar más elementos","aboutRights":"Derechos","aboutDate":"Fecha","aboutHomepage":"Página de inicio","aboutSeeAlso":"Véase también","aboutProvider":"Proveedor","logo":"Logotipo","aboutManifest":"Manifiesto IIIF","aboutCanvas":"Lienzo IIIF","aboutPartOf":"Parte de","aboutOpenManifest":"Abrir el manifiesto completo","aboutCollection":"Colección IIIF","readingLanguage":"Idioma","annotationsHide":"Ocultar anotaciones","annotationsHideTip":"Ocultar","readMore":"Leer más","readLess":"Leer menos","annotationsShow":"Ver en la imagen","annotationsShowTime":"Ver en la grabación","annotationsImage":"Imagen","annotationsLanguage":"Idioma","annotationsOpenLink":"Abrir el enlace","transcriptLabel":"Transcripción","imageViewerOpen":"Abrir el visor de imágenes","imageViewerClose":"Cerrar el visor de imágenes","canvasChoice":"Alternativas","imageFullScreen":"Pantalla completa","imageExitFullScreen":"Salir de pantalla completa","imageResetZoom":"Restablecer zoom","imageRotateLeft":"Girar a la izquierda","imageRotateRight":"Girar a la derecha","imageZoomIn":"Acercar","imageZoomOut":"Alejar","informationPanelTabs":"Panel de información","sectionsScrollBack":"Mostrar pestañas anteriores","sectionsScrollForward":"Mostrar más pestañas","informationPanelClose":"Cerrar el panel de información","informationPanelTabsAbout":"Acerca de","informationPanelTabsAnnotations":"Anotaciones","informationPanelTabsSearch":"Buscar","informationPanelTabsContents":"Índice","contentsSectionsIn":"Secciones de","informationPanelTabsMap":"Mapa","informationPanelTabsCollection":"Colección","informationPanelTabsTargets":"Vistas","mapUnavailable":"No se pudo mostrar el mapa.","mapLabel":"Mapa","mapAttribution":"Créditos del mapa","mapPlaceUntitled":"Lugar {{number}}","mapOverlay":"Imagen georreferenciada","mapPlacesListed":"Lugares enumerados después del mapa: {{count}}","informationPanelToggle":"Más información","playerPlay":"Reproducir","playerPause":"Pausar","
|
|
2
|
+
const es = JSON.parse('{"commonClose":"Cerrar","commonNext":"Siguiente","commonPrevious":"Anterior","commonSearch":"Buscar","commonViewAll":"Ver todo","controlShortcut":"{{label}} ({{shortcut}})","contentSearchLoading":"Cargando...","contentSearchPlaceholder":"Buscar","contentSearchResultsNone":"Sin resultados","contentSearchResult":"1 resultado","contentSearchResults":"{{count}} resultados","contentSearchError":"No se pudo completar la búsqueda.","contentSearchPosition":"Resultado {{index}} de {{total}}","contentSearchClear":"Borrar la búsqueda","canvasPosition":"Elemento {{index}} de {{total}}","canvasImage":"Imagen","bodyUnloadableImage":"No se pudo cargar esta imagen.","bodyUnloadableVideo":"No se pudo cargar este vídeo.","bodyUnloadableAudio":"No se pudo cargar este audio.","bodyUnloadableModel":"No se pudo cargar este modelo.","canvasRoleDescription":"imagen ampliable","canvasKeysImage":"Use las teclas de flecha para desplazar la imagen, con Mayús para avanzar más, las teclas más y menos para acercar y alejar, 0 para restablecer la vista, y R o Mayús+R para girar.","canvasKeysMedia":"Pulse Espacio o K para reproducir o pausar, J o L para retroceder o avanzar diez segundos, y M para silenciar o activar el sonido.","canvasKeysAnnotations":"Pulse Esc para quitar la selección de la anotación.","sceneModel":"Modelo 3D","sceneRoleDescription":"modelo 3D giratorio","sceneKeys":"Use las teclas de flecha para girar el modelo, con Mayús para avanzar más, las teclas más y menos para acercar y alejar, 0 para restablecer la vista, y R o Mayús+R para girarlo a la derecha o a la izquierda.","sceneRotateUp":"Girar hacia arriba","sceneRotateDown":"Girar hacia abajo","sceneRotate":"Girar","sceneResetView":"Restablecer la vista","statusLoading":"Cargando…","statusError":"No se pudo cargar este contenido.","itemsLabel":"Elementos","download":"Descargar","downloadPage":"Esta página","downloadAll":"Todas las páginas","templateSidebar":"Elementos","templateSidebarToggle":"Mostrar elementos","templateBack":"Volver","templateBackTo":"Volver a {{label}}","collectionLabel":"Colección","itemsScrollBack":"Mostrar elementos anteriores","itemsScrollForward":"Mostrar más elementos","aboutRights":"Derechos","aboutDate":"Fecha","aboutHomepage":"Página de inicio","aboutSeeAlso":"Véase también","aboutProvider":"Proveedor","logo":"Logotipo","aboutManifest":"Manifiesto IIIF","aboutCanvas":"Lienzo IIIF","aboutPartOf":"Parte de","aboutOpenManifest":"Abrir el manifiesto completo","aboutCollection":"Colección IIIF","readingLanguage":"Idioma","annotationsHide":"Ocultar anotaciones","annotationsHideTip":"Ocultar","readMore":"Leer más","readLess":"Leer menos","annotationsShow":"Ver en la imagen","annotationsShowTime":"Ver en la grabación","annotationsImage":"Imagen","annotationsLanguage":"Idioma","annotationsOpenLink":"Abrir el enlace","transcriptLabel":"Transcripción","imageViewerOpen":"Abrir el visor de imágenes","imageViewerClose":"Cerrar el visor de imágenes","canvasChoice":"Alternativas","canvasViewerControls":"Controles del visor","canvasExpandControls":"Expandir los controles del visor","canvasCollapseControls":"Contraer los controles del visor","canvasScrollBack":"Mostrar controles anteriores","canvasScrollForward":"Mostrar más controles","imageFullScreen":"Pantalla completa","imageExitFullScreen":"Salir de pantalla completa","imageResetZoom":"Restablecer zoom","imageRotateLeft":"Girar a la izquierda","imageRotateRight":"Girar a la derecha","imageZoomIn":"Acercar","imageZoomOut":"Alejar","informationPanelTabs":"Panel de información","sectionsScrollBack":"Mostrar pestañas anteriores","sectionsScrollForward":"Mostrar más pestañas","informationPanelClose":"Cerrar el panel de información","informationPanelTabsAbout":"Acerca de","informationPanelTabsAnnotations":"Anotaciones","informationPanelTabsSearch":"Buscar","informationPanelTabsContents":"Índice","contentsSectionsIn":"Secciones de","informationPanelTabsMap":"Mapa","informationPanelTabsCollection":"Colección","informationPanelTabsTargets":"Vistas","mapUnavailable":"No se pudo mostrar el mapa.","mapLabel":"Mapa","mapAttribution":"Créditos del mapa","mapPlaceUntitled":"Lugar {{number}}","mapOverlay":"Imagen georreferenciada","mapPlacesListed":"Lugares enumerados después del mapa: {{count}}","informationPanelToggle":"Más información","playerPlay":"Reproducir","playerPause":"Pausar","playerMute":"Silenciar","playerUnmute":"Activar el sonido","playerVolume":"Volumen","playerSeek":"Posición de reproducción","playerCaptions":"Subtítulos","playerCaptionsOff":"Desactivados","playerChapters":"Capítulos","playerFill":"Rellenar el marco","playerFit":"Ajustar al marco","frameRepeat":"Repetir","playerCurrentTime":"Tiempo actual","playerDuration":"Duración","splitHandle":"Cambiar el tamaño de los paneles"}');
|
|
3
3
|
export {
|
|
4
4
|
es as default
|
|
5
5
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const fi = JSON.parse('{"commonClose":"Sulje","commonNext":"Seuraava","commonPrevious":"Edellinen","commonSearch":"Hae","commonViewAll":"Näytä kaikki","controlShortcut":"{{label}} ({{shortcut}})","contentSearchLoading":"Ladataan...","contentSearchPlaceholder":"Haku","contentSearchResultsNone":"Ei osumia","contentSearchResult":"1 osuma","contentSearchResults":"{{count}} osumaa","contentSearchError":"Hakua ei voitu suorittaa loppuun.","contentSearchPosition":"Osuma {{index}} / {{total}}","contentSearchClear":"Tyhjennä haku","canvasPosition":"Kohde {{index}} / {{total}}","canvasImage":"Kuva","bodyUnloadableImage":"Tätä kuvaa ei voitu ladata.","bodyUnloadableVideo":"Tätä videota ei voitu ladata.","bodyUnloadableAudio":"Tätä ääntä ei voitu ladata.","bodyUnloadableModel":"Tätä mallia ei voitu ladata.","canvasRoleDescription":"zoomattava kuva","canvasKeysImage":"Siirrä kuvaa nuolinäppäimillä, pidemmin Vaihto-näppäimen kanssa, lähennä ja loitonna plus- ja miinusnäppäimillä, palauta näkymä näppäimellä 0 ja kierrä näppäimellä R tai Vaihto+R.","canvasKeysMedia":"Toista tai keskeytä välilyönnillä tai näppäimellä K, siirry kymmenen sekuntia taaksepäin tai eteenpäin näppäimellä J tai L ja mykistä tai poista mykistys näppäimellä M.","canvasKeysAnnotations":"Poista annotaation valinta painamalla Esc-näppäintä.","sceneModel":"3D-malli","sceneRoleDescription":"käännettävä 3D-malli","sceneKeys":"Kierrä mallia nuolinäppäimillä, pidemmin Vaihto-näppäimen kanssa, lähennä ja loitonna plus- ja miinusnäppäimillä, palauta näkymä näppäimellä 0 ja kierrä oikealle tai vasemmalle näppäimellä R tai Vaihto+R.","sceneRotateUp":"Kierrä ylös","sceneRotateDown":"Kierrä alas","sceneRotate":"Kierrä","sceneResetView":"Palauta näkymä","statusLoading":"Ladataan…","statusError":"Tätä ei voitu ladata.","itemsLabel":"Kohteet","download":"Lataa","downloadPage":"Tämä sivu","downloadAll":"Kaikki sivut","templateSidebar":"Kohteet","templateSidebarToggle":"Näytä kohteet","collectionLabel":"Kokoelma","itemsScrollBack":"Näytä edelliset kohteet","itemsScrollForward":"Näytä lisää kohteita","aboutRights":"Oikeudet","aboutDate":"Päivämäärä","aboutHomepage":"Kotisivu","aboutSeeAlso":"Katso myös","aboutProvider":"Tarjoaja","logo":"Logo","aboutManifest":"IIIF-manifesti","aboutCanvas":"IIIF-kanvaasi","aboutPartOf":"Osa kokonaisuutta","aboutOpenManifest":"Avaa koko manifesti","aboutCollection":"IIIF-kokoelma","readingLanguage":"Kieli","annotationsHide":"Piilota annotaatiot","annotationsHideTip":"Piilota","readMore":"Lue lisää","readLess":"Näytä vähemmän","annotationsShow":"Näytä kuvassa","annotationsShowTime":"Näytä tallenteessa","annotationsImage":"Kuva","annotationsLanguage":"Kieli","annotationsOpenLink":"Avaa linkki","transcriptLabel":"Litteraatti","imageViewerOpen":"Avaa kuvakatselin","imageViewerClose":"Sulje kuvakatselin","canvasChoice":"Vaihtoehdot","imageFullScreen":"Koko näyttö","imageExitFullScreen":"Poistu koko näytöstä","imageResetZoom":"Palauta zoomaus","imageRotateLeft":"Kierrä vasemmalle","imageRotateRight":"Kierrä oikealle","imageZoomIn":"Lähennä","imageZoomOut":"Loitonna","informationPanelTabs":"Tietopaneeli","sectionsScrollBack":"Näytä edelliset välilehdet","sectionsScrollForward":"Näytä lisää välilehtiä","informationPanelClose":"Sulje tietopaneeli","informationPanelTabsAbout":"Tiedot","informationPanelTabsAnnotations":"Annotaatiot","informationPanelTabsSearch":"Haku","informationPanelTabsContents":"Sisältö","contentsSectionsIn":"Osiot:","informationPanelTabsMap":"Kartta","informationPanelTabsCollection":"Kokoelma","informationPanelTabsTargets":"Näkymät","mapUnavailable":"Karttaa ei voitu näyttää.","mapLabel":"Kartta","mapAttribution":"Kartan tekijätiedot","mapPlaceUntitled":"Paikka {{number}}","mapOverlay":"Georeferoitu kuva","mapPlacesListed":"Kartan jälkeen luetellut paikat: {{count}}","informationPanelToggle":"Lisätiedot","playerPlay":"Toista","playerPause":"Keskeytä","
|
|
2
|
+
const fi = JSON.parse('{"commonClose":"Sulje","commonNext":"Seuraava","commonPrevious":"Edellinen","commonSearch":"Hae","commonViewAll":"Näytä kaikki","controlShortcut":"{{label}} ({{shortcut}})","contentSearchLoading":"Ladataan...","contentSearchPlaceholder":"Haku","contentSearchResultsNone":"Ei osumia","contentSearchResult":"1 osuma","contentSearchResults":"{{count}} osumaa","contentSearchError":"Hakua ei voitu suorittaa loppuun.","contentSearchPosition":"Osuma {{index}} / {{total}}","contentSearchClear":"Tyhjennä haku","canvasPosition":"Kohde {{index}} / {{total}}","canvasImage":"Kuva","bodyUnloadableImage":"Tätä kuvaa ei voitu ladata.","bodyUnloadableVideo":"Tätä videota ei voitu ladata.","bodyUnloadableAudio":"Tätä ääntä ei voitu ladata.","bodyUnloadableModel":"Tätä mallia ei voitu ladata.","canvasRoleDescription":"zoomattava kuva","canvasKeysImage":"Siirrä kuvaa nuolinäppäimillä, pidemmin Vaihto-näppäimen kanssa, lähennä ja loitonna plus- ja miinusnäppäimillä, palauta näkymä näppäimellä 0 ja kierrä näppäimellä R tai Vaihto+R.","canvasKeysMedia":"Toista tai keskeytä välilyönnillä tai näppäimellä K, siirry kymmenen sekuntia taaksepäin tai eteenpäin näppäimellä J tai L ja mykistä tai poista mykistys näppäimellä M.","canvasKeysAnnotations":"Poista annotaation valinta painamalla Esc-näppäintä.","sceneModel":"3D-malli","sceneRoleDescription":"käännettävä 3D-malli","sceneKeys":"Kierrä mallia nuolinäppäimillä, pidemmin Vaihto-näppäimen kanssa, lähennä ja loitonna plus- ja miinusnäppäimillä, palauta näkymä näppäimellä 0 ja kierrä oikealle tai vasemmalle näppäimellä R tai Vaihto+R.","sceneRotateUp":"Kierrä ylös","sceneRotateDown":"Kierrä alas","sceneRotate":"Kierrä","sceneResetView":"Palauta näkymä","statusLoading":"Ladataan…","statusError":"Tätä ei voitu ladata.","itemsLabel":"Kohteet","download":"Lataa","downloadPage":"Tämä sivu","downloadAll":"Kaikki sivut","templateSidebar":"Kohteet","templateSidebarToggle":"Näytä kohteet","templateBack":"Takaisin","templateBackTo":"Takaisin: {{label}}","collectionLabel":"Kokoelma","itemsScrollBack":"Näytä edelliset kohteet","itemsScrollForward":"Näytä lisää kohteita","aboutRights":"Oikeudet","aboutDate":"Päivämäärä","aboutHomepage":"Kotisivu","aboutSeeAlso":"Katso myös","aboutProvider":"Tarjoaja","logo":"Logo","aboutManifest":"IIIF-manifesti","aboutCanvas":"IIIF-kanvaasi","aboutPartOf":"Osa kokonaisuutta","aboutOpenManifest":"Avaa koko manifesti","aboutCollection":"IIIF-kokoelma","readingLanguage":"Kieli","annotationsHide":"Piilota annotaatiot","annotationsHideTip":"Piilota","readMore":"Lue lisää","readLess":"Näytä vähemmän","annotationsShow":"Näytä kuvassa","annotationsShowTime":"Näytä tallenteessa","annotationsImage":"Kuva","annotationsLanguage":"Kieli","annotationsOpenLink":"Avaa linkki","transcriptLabel":"Litteraatti","imageViewerOpen":"Avaa kuvakatselin","imageViewerClose":"Sulje kuvakatselin","canvasChoice":"Vaihtoehdot","canvasViewerControls":"Katselimen säätimet","canvasExpandControls":"Laajenna katselimen säätimet","canvasCollapseControls":"Supista katselimen säätimet","canvasScrollBack":"Näytä edelliset säätimet","canvasScrollForward":"Näytä lisää säätimiä","imageFullScreen":"Koko näyttö","imageExitFullScreen":"Poistu koko näytöstä","imageResetZoom":"Palauta zoomaus","imageRotateLeft":"Kierrä vasemmalle","imageRotateRight":"Kierrä oikealle","imageZoomIn":"Lähennä","imageZoomOut":"Loitonna","informationPanelTabs":"Tietopaneeli","sectionsScrollBack":"Näytä edelliset välilehdet","sectionsScrollForward":"Näytä lisää välilehtiä","informationPanelClose":"Sulje tietopaneeli","informationPanelTabsAbout":"Tiedot","informationPanelTabsAnnotations":"Annotaatiot","informationPanelTabsSearch":"Haku","informationPanelTabsContents":"Sisältö","contentsSectionsIn":"Osiot:","informationPanelTabsMap":"Kartta","informationPanelTabsCollection":"Kokoelma","informationPanelTabsTargets":"Näkymät","mapUnavailable":"Karttaa ei voitu näyttää.","mapLabel":"Kartta","mapAttribution":"Kartan tekijätiedot","mapPlaceUntitled":"Paikka {{number}}","mapOverlay":"Georeferoitu kuva","mapPlacesListed":"Kartan jälkeen luetellut paikat: {{count}}","informationPanelToggle":"Lisätiedot","playerPlay":"Toista","playerPause":"Keskeytä","playerMute":"Mykistä","playerUnmute":"Poista mykistys","playerVolume":"Äänenvoimakkuus","playerSeek":"Toistokohta","playerCaptions":"Tekstitykset","playerCaptionsOff":"Pois","playerChapters":"Luvut","playerFill":"Täytä kehys","playerFit":"Sovita kehykseen","frameRepeat":"Toista uudelleen","playerCurrentTime":"Kulunut aika","playerDuration":"Kesto","splitHandle":"Muuta paneelien kokoa"}');
|
|
3
3
|
export {
|
|
4
4
|
fi as default
|
|
5
5
|
};
|