@nulib/clover 4.1.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/useControlsVisibility.mjs +35 -13
- package/dist/components/Panel/Panel.mjs +47 -59
- package/dist/components/Panel/sections.mjs +62 -0
- package/dist/index.d.mts +70 -6
- package/dist/index.mjs +2 -0
- package/dist/lib/pointer.mjs +1 -1
- package/dist/styles.css +1 -1
- package/dist/templates/default/Default.mjs +5 -0
- package/dist/templates/document/Document.mjs +10 -1
- package/dist/templates/gallery/Gallery.mjs +4 -0
- package/dist/templates/index.d.mts +68 -3
- package/dist/templates/shared/LightboxView.mjs +5 -0
- package/dist/templates/shared/PanelPane.mjs +13 -1
- package/dist/web-components/{About-DvyvVUK5.mjs → About-D1TBGGPL.mjs} +1 -1
- package/dist/web-components/{AnnotationItems-BpRcSrOM.mjs → AnnotationItems-DTacmRA9.mjs} +1 -1
- package/dist/web-components/{AnnotationMenu-BDPec3iI.mjs → AnnotationMenu-DYc9ekWS.mjs} +1 -1
- package/dist/web-components/{AnnotationState-Chs_37Kk.mjs → AnnotationState--5ghW0C2.mjs} +1 -1
- package/dist/web-components/{Annotations-CLPEq7Ro.mjs → Annotations-BG8lPjk1.mjs} +1 -1
- package/dist/web-components/{Annotations-6E-oD_wg.mjs → Annotations-Bvc_FmJ5.mjs} +1 -1
- package/dist/web-components/{Body-Ct61yxI7.mjs → Body-QQ1DmnbP.mjs} +1 -1
- package/dist/web-components/{BodyAlert-C_Qh3Up_.mjs → BodyAlert-A4xRjOKr.mjs} +1 -1
- package/dist/web-components/{Button-L8ZMy5lY.mjs → Button-Cx6VE_UW.mjs} +1 -1
- package/dist/web-components/{Camera-BPyLzZjP.mjs → Camera-DqT_1MgD.mjs} +1 -1
- package/dist/web-components/{Canvas2DBackend-8wFavYdl.mjs → Canvas2DBackend-TZtR3zHf.mjs} +1 -1
- package/dist/web-components/{CanvasView-2Fj9nT06.mjs → CanvasView-DxZASM9E.mjs} +1 -1
- package/dist/web-components/{CaptionDetails-DuwS-grE.mjs → CaptionDetails-DMRWmtaY.mjs} +1 -1
- package/dist/web-components/{ChaptersMenu-Bj2EqtVJ.mjs → ChaptersMenu-BAZVVDrK.mjs} +1 -1
- package/dist/web-components/{Chevron-Cyr_cc9X.mjs → Chevron-DFGbSGPI.mjs} +1 -1
- package/dist/web-components/{ChoiceMenu-ConzybVH.mjs → ChoiceMenu-C80kdxvq.mjs} +1 -1
- package/dist/web-components/{Collection-CLayN8sv.mjs → Collection-B4CxBsFL.mjs} +1 -1
- package/dist/web-components/{CollectionSelect-D2d8dGJ4.mjs → CollectionSelect-DO8YO2p7.mjs} +1 -1
- package/dist/web-components/{Connected-pyd0EBD3.mjs → Connected-CcbVqzmj.mjs} +1 -1
- package/dist/web-components/{Connected-CBQ6xyhr.mjs → Connected-DthCPaHl.mjs} +1 -1
- package/dist/web-components/{Connected-DMXG3imZ.mjs → Connected-sYBn_9MK.mjs} +1 -1
- package/dist/web-components/{Contents-tCMXBYDK.mjs → Contents-AVPYYXht.mjs} +1 -1
- package/dist/web-components/{ControlMenu-D1zkB0qX.mjs → ControlMenu-BjJsWnuZ.mjs} +1 -1
- package/dist/web-components/ControlsFade-C-6WhSxB.mjs +1 -0
- package/dist/web-components/{CountMenu-Dnzb7lKo.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-BxPU05-D.mjs → DomLayers-DlRapZ1u.mjs} +1 -1
- package/dist/web-components/{Download-Bku9Vptk.mjs → Download-Ci_JUTVd.mjs} +1 -1
- package/dist/web-components/{EntryBodies-77vDudCb.mjs → EntryBodies-C0ICfS2R.mjs} +1 -1
- package/dist/web-components/{EntryThumbnail-BxQWKW6e.mjs → EntryThumbnail-DxHhfRo_.mjs} +1 -1
- package/dist/web-components/{FieldPill-nFGsaru9.mjs → FieldPill-CVfeeafm.mjs} +1 -1
- package/dist/web-components/{FrameAnimation-BvKiSXcm.mjs → FrameAnimation-AZpVvu0R.mjs} +1 -1
- package/dist/web-components/{Gallery-4Hd58afA.mjs → Gallery-C2PTJmvN.mjs} +1 -1
- package/dist/web-components/{HideToggle-TEhY4TS4.mjs → HideToggle-0nlIo-f8.mjs} +1 -1
- package/dist/web-components/{ImageControls-CZO7WoPb.mjs → ImageControls-tKVAMpaj.mjs} +1 -1
- package/dist/web-components/{Items-CudZ4Lnb.mjs → Items-Drd82_Jj.mjs} +1 -1
- package/dist/web-components/{Label-f07N5Fld.mjs → Label-BIjqJ-_T.mjs} +1 -1
- package/dist/web-components/{LanguageChoice-B5VM21DV.mjs → LanguageChoice-DkSc-n6g.mjs} +1 -1
- package/dist/web-components/LightboxView-Cuqx2H1m.mjs +1 -0
- package/dist/web-components/{ListEnd-M39M62Cl.mjs → ListEnd-pq-BgaDI.mjs} +1 -1
- package/dist/web-components/{Loaded-oGFyBuos.mjs → Loaded-CSO5NFhm.mjs} +1 -1
- package/dist/web-components/{LoadedCanvas-IvpSzPO6.mjs → LoadedCanvas-DK6xMmM1.mjs} +1 -1
- package/dist/web-components/LoadedMap-DmPH-LKY.mjs +1 -0
- package/dist/web-components/{Loading-YxuKrDAM.mjs → Loading-CoJLSRkv.mjs} +1 -1
- package/dist/web-components/{Map-Cw9j3gi3.mjs → Map-BEVtD52O.mjs} +1 -1
- package/dist/web-components/{MapView-3OxoCr5l.mjs → MapView-DHJcn9gW.mjs} +2 -2
- package/dist/web-components/{Markup-DW75Jx3j.mjs → Markup-Hm6bWOjm.mjs} +1 -1
- package/dist/web-components/{MediaBody-CLtd0bf0.mjs → MediaBody-BpgNtpKZ.mjs} +1 -1
- package/dist/web-components/{MediaBody-JnKnoIqY.mjs → MediaBody-Co23JjUJ.mjs} +1 -1
- package/dist/web-components/{NavDate-BCCOyycx.mjs → NavDate-CYNK0Qmp.mjs} +1 -1
- package/dist/web-components/{Navigator-Bx4zS0Yr.mjs → Navigator-DrYPepzN.mjs} +1 -1
- package/dist/web-components/{Pager-B9GvQ64b.mjs → Pager-CN4lHURv.mjs} +1 -1
- package/dist/web-components/{PagerLayout-BF33VZL_.mjs → PagerLayout-DeqnSQcF.mjs} +1 -1
- package/dist/web-components/Panel-CFYUlXup.mjs +1 -0
- package/dist/web-components/PanelPart-CpUIRbxr.mjs +1 -0
- package/dist/web-components/{PanelToggle-bPcIULGZ.mjs → PanelToggle-9ud55NNI.mjs} +1 -1
- package/dist/web-components/{PartOfManifest-HLg-r00O.mjs → PartOfManifest-KUHUq-6q.mjs} +1 -1
- package/dist/web-components/{Pending-BxGjjnqq.mjs → Pending-mcmdyZPA.mjs} +1 -1
- package/dist/web-components/{PlaceBox-D-Zhe9-U.mjs → PlaceBox-DX4ZLDat.mjs} +1 -1
- package/dist/web-components/{Placeholder-DzY5hcbk.mjs → Placeholder-0hE8q-SY.mjs} +1 -1
- package/dist/web-components/{Position-TYnzcm8e.mjs → Position-DO5qg5Sp.mjs} +1 -1
- package/dist/web-components/{Primitives-C6VJXxZD.mjs → Primitives-c9sIz0oQ.mjs} +1 -1
- package/dist/web-components/{Provider-DyB0wpeO.mjs → Provider-a3xY016W.mjs} +1 -1
- package/dist/web-components/{ReadMore-De_0T7lc.mjs → ReadMore-D_WmmKEP.mjs} +1 -1
- package/dist/web-components/{Root-Bt3NNBFb.mjs → Root-CU1o0wje.mjs} +1 -1
- package/dist/web-components/Scene-CboEeptc.mjs +1 -0
- package/dist/web-components/SceneView-hcc78jQT.mjs +1 -0
- package/dist/web-components/{Search-DgT8OPsK.mjs → Search-BgxEW1UT.mjs} +1 -1
- package/dist/web-components/{Sections-d1acn7qm.mjs → Sections-DZVrhoAC.mjs} +1 -1
- package/dist/web-components/{StandaloneItems-DUb4YKCB.mjs → StandaloneItems-6cSw7nbF.mjs} +1 -1
- package/dist/web-components/{Status-CcU3u6P4.mjs → Status-DHTzuTkh.mjs} +1 -1
- package/dist/web-components/{Steps-nlSCzbDQ.mjs → Steps-Dkpy9KiJ.mjs} +1 -1
- package/dist/web-components/{TargetItems-BDJM3Ar-.mjs → TargetItems-CyOI9_Z4.mjs} +1 -1
- package/dist/web-components/Timeline-B9tD3Rar.mjs +1 -0
- package/dist/web-components/{Tip-OCB88zwY.mjs → Tip-nJSTYquc.mjs} +1 -1
- package/dist/web-components/{Transcript-bSA3cx_K.mjs → Transcript-WvFFAJQM.mjs} +1 -1
- package/dist/web-components/{Transport-DjOYI-fR.mjs → Transport-FxLp_bdW.mjs} +1 -1
- package/dist/web-components/Transport-VUxSEIQO.mjs +1 -0
- package/dist/web-components/{annotation-collection-D8emkElk.mjs → annotation-collection-BkC3nBPA.mjs} +1 -1
- package/dist/web-components/{annotation-name-DbWjhgra.mjs → annotation-name-Du2KAWoD.mjs} +1 -1
- package/dist/web-components/{annotations-content-Bg6aVAGC.mjs → annotations-content-CEzAS-P2.mjs} +1 -1
- package/dist/web-components/{body-Ct8dmQdW.mjs → body-DPlfbLt3.mjs} +1 -1
- package/dist/web-components/{canvas-goEZLqEd.mjs → canvas-BUwBftJW.mjs} +1 -1
- package/dist/web-components/{cloverEngine-Df7cMwOP.mjs → cloverEngine-UNw5K4Xg.mjs} +1 -1
- package/dist/web-components/{content-state-reader-CNmBpG1L.mjs → content-state-reader-GgQF2MvJ.mjs} +1 -1
- package/dist/web-components/{controls-BZr16sYQ.mjs → controls-CC9G5LxK.mjs} +1 -1
- package/dist/web-components/custom-elements.json +31 -1
- package/dist/web-components/{downloads-EjJ6Hpip.mjs → downloads-CmAYeEIz.mjs} +1 -1
- package/dist/web-components/{dragToClose-X9NbZOhA.mjs → dragToClose-DK-eM097.mjs} +1 -1
- package/dist/web-components/{engine-DMoc0tff.mjs → engine-Dok0z8WP.mjs} +1 -1
- package/dist/web-components/{engines-BmB81VXR.mjs → engines-BD2IfwQF.mjs} +1 -1
- package/dist/web-components/{fetchManifest-CwQC6cCh.mjs → fetchManifest-tQXcfFiz.mjs} +1 -1
- package/dist/web-components/{fromManifest-DrAmY1lB.mjs → fromManifest-BwQdeAuL.mjs} +1 -1
- package/dist/web-components/{glyphs-BFK_hvJJ.mjs → glyphs-dp_HK3Ja.mjs} +1 -1
- package/dist/web-components/{hooks-BhtNDs_1.mjs → hooks-C4dJ5K_D.mjs} +1 -1
- package/dist/web-components/{image-layers-D2nQC4R-.mjs → image-layers-xcBsiad9.mjs} +1 -1
- package/dist/web-components/{imageService-iFElsopt.mjs → imageService-4sFnmAFX.mjs} +1 -1
- package/dist/web-components/index-DspT4wUm.mjs +1 -0
- package/dist/web-components/index.d.mts +1 -1
- package/dist/web-components/index.mjs +1 -1
- package/dist/web-components/{items-BnEnc5ot.mjs → items-BUmOy2QY.mjs} +1 -1
- package/dist/web-components/items-CWMI53aN.mjs +1 -0
- package/dist/web-components/label-BGjL7I4b.mjs +1 -0
- package/dist/web-components/{layout-Djwu8f4R.mjs → layout-B29v2RKK.mjs} +1 -1
- package/dist/web-components/{link-0lUlTZlw.mjs → link-Ct5PpHEY.mjs} +1 -1
- package/dist/web-components/logo-BFstM-0a.mjs +1 -0
- package/dist/web-components/{models-BF2pqufA.mjs → models-BXcT4ijX.mjs} +1 -1
- package/dist/web-components/{nodes-ChQRLDGU.mjs → nodes-BleXuYE6.mjs} +1 -1
- package/dist/web-components/{overlayImage-MKrcgDep.mjs → overlayImage-BJtfot4Y.mjs} +1 -1
- package/dist/web-components/{panel-C13V6w6E.mjs → panel-BxxV_JkD.mjs} +1 -1
- package/dist/web-components/part-D4gjnYmT.mjs +1 -0
- package/dist/web-components/{playerSurface-DG1XipTq.mjs → playerSurface-BXNLaFk0.mjs} +1 -1
- package/dist/web-components/{pointer-YQppt0at.mjs → pointer-CJELU3gI.mjs} +1 -1
- package/dist/web-components/{provider-DiUkZYiW.mjs → provider-CPp0Sgr_.mjs} +1 -1
- package/dist/web-components/{range-regions-CqGjyM76.mjs → range-regions-DAaOu0IS.mjs} +1 -1
- package/dist/web-components/{read-more-D8RJYdtQ.mjs → read-more-lcqGslUd.mjs} +1 -1
- package/dist/web-components/{readingLanguages-BWOLZK2k.mjs → readingLanguages-FyVsSWJ8.mjs} +1 -1
- package/dist/web-components/{rendererSurface-BkbGDL_Z.mjs → rendererSurface-nh6-EfuZ.mjs} +2 -2
- package/dist/web-components/{renderers-LtRX5pT0.mjs → renderers-BFS7hFVU.mjs} +1 -1
- package/dist/web-components/{resource-Cfydiy4m.mjs → resource-Bufu7lAr.mjs} +1 -1
- package/dist/web-components/{save-file-dZyOpXgY.mjs → save-file-CoknKOPz.mjs} +1 -1
- package/dist/web-components/{search-BfUZJM3a.mjs → search-5ocrsYmT.mjs} +1 -1
- package/dist/web-components/{shared-DkY2a89G.mjs → shared-DFAX0n3B.mjs} +1 -1
- package/dist/web-components/{show-link-DgLJzG7k.mjs → show-link-DBaJj4s_.mjs} +1 -1
- package/dist/web-components/{sizedImage-NHzhcBYk.mjs → sizedImage-jnOGcIIZ.mjs} +1 -1
- package/dist/web-components/{split-CuFiKjin.mjs → split-P6J0qqf5.mjs} +1 -1
- package/dist/web-components/{status-C3etlkhY.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-DecrVnpj.mjs → thumbnail-EbURh-UM.mjs} +1 -1
- package/dist/web-components/{tip-D5YgaIWW.mjs → tip-BhNI83aT.mjs} +1 -1
- package/dist/web-components/{toggle-CZGB65VZ.mjs → toggle-CJKdi5KH.mjs} +1 -1
- package/dist/web-components/{useContainerName-hKQjEt7a.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-CDbHQUBk.mjs → useNearViewport-B34ebmIW.mjs} +1 -1
- package/dist/web-components/{useScrollTrack-D9l_P3_B.mjs → useScrollTrack-DgRGFeP5.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationItems-DtsnDXPM.mjs → AnnotationItems-BNA_92Dv.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationMenu-C-Mz6CCn.mjs → AnnotationMenu-BIQYVR4N.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationState-5pim5K72.mjs → AnnotationState-BbwQqA1U.mjs} +1 -1
- package/dist/web-components/viewer/{Annotations-Cqn1TkzD.mjs → Annotations-CZzOZAFP.mjs} +1 -1
- package/dist/web-components/viewer/{Annotations-CxwN9FkB.mjs → Annotations-P4XzAlNc.mjs} +1 -1
- package/dist/web-components/viewer/{Canvas2DBackend-C-ZMSCak.mjs → Canvas2DBackend-DFfCzyjL.mjs} +1 -1
- package/dist/web-components/viewer/{CaptionDetails-CRD-gSZP.mjs → CaptionDetails-DPtE-RQQ.mjs} +1 -1
- package/dist/web-components/viewer/{ChaptersMenu-Brcq3yJv.mjs → ChaptersMenu-D6Jmujag.mjs} +1 -1
- package/dist/web-components/viewer/{ChoiceMenu-ByGzQQx1.mjs → ChoiceMenu-GkqyTQRQ.mjs} +1 -1
- package/dist/web-components/viewer/{Collection-m0GCcsfQ.mjs → Collection-DjY_6qa6.mjs} +1 -1
- package/dist/web-components/viewer/{Connected-Dvx7wtot.mjs → Connected-D5T-mtiy.mjs} +1 -1
- package/dist/web-components/viewer/Connected-DIOuI3Mv.mjs +1 -0
- package/dist/web-components/viewer/{Contents-CwDpfiJY.mjs → Contents-DV-VxXuf.mjs} +1 -1
- package/dist/web-components/viewer/{ControlMenu-TcO85hDf.mjs → ControlMenu-BsEpff6N.mjs} +1 -1
- package/dist/web-components/viewer/ControlsFade-BowtN96W.mjs +1 -0
- package/dist/web-components/viewer/{CountMenu-0-ie8kIZ.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-hc0qARQc.mjs → DomLayers-BCwCxPDU.mjs} +1 -1
- package/dist/web-components/viewer/{Download-MO-1Rik4.mjs → Download-CL4IClAD.mjs} +1 -1
- package/dist/web-components/viewer/{EntryBodies-g-OEwEsk.mjs → EntryBodies-e40y47bl.mjs} +1 -1
- package/dist/web-components/viewer/{EntryThumbnail-DcIDYATi.mjs → EntryThumbnail-B_dP3w4o.mjs} +1 -1
- package/dist/web-components/viewer/{FieldPill-B9S21lxw.mjs → FieldPill-Hse1cDBE.mjs} +1 -1
- package/dist/web-components/viewer/{FrameAnimation-qI9cZPEs.mjs → FrameAnimation-CE218DCr.mjs} +1 -1
- package/dist/web-components/viewer/{Gallery-BOgUqfqw.mjs → Gallery-F2sVj4ph.mjs} +1 -1
- package/dist/web-components/viewer/{HideToggle-D8wH49mq.mjs → HideToggle-CYoqe_ez.mjs} +1 -1
- package/dist/web-components/viewer/{ImageControls-ZoEC9jWd.mjs → ImageControls-C2G4x2Es.mjs} +1 -1
- package/dist/web-components/viewer/{LanguageChoice-CRqsCBAp.mjs → LanguageChoice-BmO-322r.mjs} +1 -1
- package/dist/web-components/viewer/LightboxView-DKR8dXcg.mjs +1 -0
- package/dist/web-components/viewer/{ListEnd-D9Obxie4.mjs → ListEnd-DX1jsvJk.mjs} +1 -1
- package/dist/web-components/viewer/{MapView-DQSwUzd7.mjs → MapView-Df0wZjCh.mjs} +2 -2
- package/dist/web-components/viewer/{MediaBody-CIw2nTlj.mjs → MediaBody-CataNonO.mjs} +1 -1
- package/dist/web-components/viewer/{MediaBody-D5ff6xy-.mjs → MediaBody-SkIgrEMj.mjs} +1 -1
- package/dist/web-components/viewer/{NavDate-BnfDG57h.mjs → NavDate-BZgeaMG9.mjs} +1 -1
- package/dist/web-components/viewer/{Navigator-BNwjmkXY.mjs → Navigator-Co76p-1n.mjs} +1 -1
- package/dist/web-components/viewer/{PagerLayout-C8jraHqs.mjs → PagerLayout-tUkN1-FV.mjs} +1 -1
- package/dist/web-components/viewer/PanelPart-Cl4Sst60.mjs +1 -0
- package/dist/web-components/viewer/{PartOfManifest-DX7H0V4g.mjs → PartOfManifest-DXnbEPzS.mjs} +1 -1
- package/dist/web-components/viewer/{PlaceBox-CCWfzsNU.mjs → PlaceBox-xrJ4CGdN.mjs} +1 -1
- package/dist/web-components/viewer/{Placeholder-CsEkLhz7.mjs → Placeholder-B1AcizHL.mjs} +1 -1
- package/dist/web-components/viewer/{Search-CsdYzdq1.mjs → Search-DTg1cHZ3.mjs} +1 -1
- package/dist/web-components/viewer/{StandaloneItems-BfvBxbUm.mjs → StandaloneItems-BpBEQG8i.mjs} +1 -1
- package/dist/web-components/viewer/{Steps-BH8ZApS4.mjs → Steps-SpwMQdCL.mjs} +1 -1
- package/dist/web-components/viewer/{TargetItems-BebPFr-c.mjs → TargetItems-B6Icep5k.mjs} +1 -1
- package/dist/web-components/viewer/{Transcript-DXLv5WR9.mjs → Transcript-rTAhuXCF.mjs} +1 -1
- package/dist/web-components/viewer/{Transport-C-fh7Kx2.mjs → Transport-vKIDALE-.mjs} +1 -1
- package/dist/web-components/viewer/Transport-z_kdVisw.mjs +1 -0
- package/dist/web-components/viewer/{annotation-collection-Cjd8Dgyl.mjs → annotation-collection-B7pZiLVk.mjs} +1 -1
- package/dist/web-components/viewer/{annotation-name-CwmgQFia.mjs → annotation-name-BKj1O9lA.mjs} +1 -1
- package/dist/web-components/viewer/{annotations-content-BARXoAz-.mjs → annotations-content-9AtLlPNn.mjs} +1 -1
- package/dist/web-components/viewer/{cloverEngine-CumnJPKO.mjs → cloverEngine-jRrYLrWa.mjs} +1 -1
- package/dist/web-components/viewer/{content-state-reader-DuvyLThu.mjs → content-state-reader-CPvkju6Q.mjs} +1 -1
- package/dist/web-components/viewer/{dragToClose-CFCxhUxn.mjs → dragToClose-Co9kGk9q.mjs} +1 -1
- package/dist/web-components/viewer/{fetchManifest-qNB_KgxL.mjs → fetchManifest-D7N9WhhF.mjs} +1 -1
- package/dist/web-components/viewer/{host-GTHX2fPK.mjs → host-DMD9LE4H.mjs} +1 -1
- package/dist/web-components/viewer/{image-layers-DKOuaRTj.mjs → image-layers-x_shzPvu.mjs} +1 -1
- package/dist/web-components/viewer/index.mjs +1 -1
- package/dist/web-components/viewer/{link-BlaM0tCa.mjs → link-DikPGzNO.mjs} +1 -1
- package/dist/web-components/viewer/{overlayImage-RVpv69R5.mjs → overlayImage-33kKKB0T.mjs} +1 -1
- package/dist/web-components/viewer/{range-regions-CIZiAHOp.mjs → range-regions-TH6WWGTT.mjs} +1 -1
- package/dist/web-components/viewer/{renderers-Dw1klwlx.mjs → renderers-BxePmixF.mjs} +1 -1
- package/dist/web-components/viewer/{save-file-EvzaBEJN.mjs → save-file-QXKiPlST.mjs} +1 -1
- package/dist/web-components/viewer/{search-x1QL_bth.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-C2G89SWH.mjs → vtt-CUn4h5JB.mjs} +1 -1
- package/dist/web-components/viewer-DN2Mo3vc.mjs +1 -0
- package/dist/web-components/{vtt-Dd0c7psH.mjs → vtt-C5M5WPSG.mjs} +1 -1
- package/package.json +1 -1
- package/dist/web-components/ControlsFade-BNXVTL_Q.mjs +0 -1
- package/dist/web-components/Cue-CUGmPS3k.mjs +0 -1
- package/dist/web-components/Document-D-8nalCX.mjs +0 -1
- package/dist/web-components/LightboxView-C4OASmkg.mjs +0 -1
- package/dist/web-components/LoadedMap-WATGNLxl.mjs +0 -1
- package/dist/web-components/Panel-BvDpCn6K.mjs +0 -1
- package/dist/web-components/PanelPart-Bd4lSUrP.mjs +0 -1
- package/dist/web-components/Scene-DrOM9YlD.mjs +0 -1
- package/dist/web-components/SceneView-DA7Yg20p.mjs +0 -1
- package/dist/web-components/Timeline-BfdN3lIv.mjs +0 -1
- package/dist/web-components/Transport-DaIhfZqC.mjs +0 -1
- package/dist/web-components/index-FJEpXukG.mjs +0 -1
- package/dist/web-components/items-BPPrqbeh.mjs +0 -1
- package/dist/web-components/label-DauFa5sg.mjs +0 -1
- package/dist/web-components/logo-DWPxaZaG.mjs +0 -1
- package/dist/web-components/part-CekFWrtz.mjs +0 -1
- package/dist/web-components/styles-DkkVOSUQ.mjs +0 -1
- package/dist/web-components/useControlsVisibility-DPg8uAkW.mjs +0 -1
- package/dist/web-components/useLazyPanelPane-eby-OI1V.mjs +0 -1
- package/dist/web-components/viewer/Connected-Bmc_CdUD.mjs +0 -1
- package/dist/web-components/viewer/ControlsFade-BoZ4ABAE.mjs +0 -1
- package/dist/web-components/viewer/Cue-DxmAS9Gx.mjs +0 -1
- package/dist/web-components/viewer/Document-BsryuYJ1.mjs +0 -1
- package/dist/web-components/viewer/LightboxView-BB-GcbYr.mjs +0 -1
- package/dist/web-components/viewer/PanelPart-YNbBI9SQ.mjs +0 -1
- package/dist/web-components/viewer/Transport-CY6BWfMi.mjs +0 -1
- package/dist/web-components/viewer/styles-I7_LWFGj.mjs +0 -1
- package/dist/web-components/viewer/useControlsVisibility-C_SQHIVR.mjs +0 -1
- package/dist/web-components/viewer/useLazyPanelPane-UuGDJrf_.mjs +0 -1
- package/dist/web-components/viewer/viewer-DJrQuNs1.mjs +0 -29
- package/dist/web-components/viewer-Br44EEba.mjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as w,c as E,b,T as v}from"./pointer-
|
|
1
|
+
import{a as w,c as E,b,T as v}from"./pointer-CJELU3gI.mjs";import{u as S}from"./useControlsVisibility-CieBxGnK.mjs";const M=i=>{const s=new Map,p=e=>{var t;return(t=s.get(e))==null?void 0:t.forEach(r=>r())};let l=false,o=null,n=null,u=false,a=null;const d=e=>{w(e)&&(u=true)},m=e=>{a=e.isPrimary&&e.button===0&&(e.target===i||e.target===n)?{x:e.clientX,y:e.clientY,t:e.timeStamp,direct:E(e.pointerType,u)}:null},f=e=>{const t=a;a=null,!(!t||e.timeStamp-t.t>=b||Math.hypot(e.clientX-t.x,e.clientY-t.y)>v)&&!(o!=null&&o())&&!t.direct&&p("tap")},c=e=>{e!==n&&(n==null||n.remove(),n=e,n&&(Object.assign(n.style,{position:"absolute",inset:"0",width:"100%",height:"100%",objectFit:"contain"}),n.classList.add("clover-canvas-dom-media"),i.append(n)))};return i.addEventListener("pointermove",d),i.addEventListener("pointerdown",m),i.addEventListener("pointerup",f),{host:i,get isOpen(){return l},on(e,t){const r=s.get(e)??new Set;return s.set(e,r.add(t)),()=>r.delete(t)},async setImages(e,{world:t}={}){var g,y;const r=(y=(g=e.find(L=>L.media))==null?void 0:g.media)==null?void 0:y.element;c(r instanceof HTMLVideoElement?r:null),!(!t&&!e.length)&&(p(l?"change":"open"),l=true)},clear:()=>c(null),setDismiss(e){o=e},setGestures(){},dispose(){c(null),s.clear(),i.removeEventListener("pointermove",d),i.removeEventListener("pointerdown",m),i.removeEventListener("pointerup",f)}}};M.controlsVisibility=S;export{M as p};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var x=Object.defineProperty;var H=(e,t,n)=>t in e?x(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n;var
|
|
1
|
+
var x=Object.defineProperty;var H=(e,t,n)=>t in e?x(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n;var k=(e,t,n)=>H(e,typeof t!="symbol"?t+"":t,n);import{a as L,A as T,d as p,ac as S,y as v,u as o,t as N,l as m,P as O,z as W,k as E,_ as B,q as I,C as A,R as P}from"./shared-DFAX0n3B.mjs";import{C as D}from"./glyphs-dp_HK3Ja.mjs";import{B as y}from"./Button-Cx6VE_UW.mjs";import"./styles-BwkYiCLC.mjs";import{T as q}from"./Tip-nJSTYquc.mjs";const z=W(()=>import("./CaptionDetails-DMRWmtaY.mjs"));function oe(e){var t;return!!e.summary||!!((t=e.metadata)!=null&&t.length)}const _=(e,t)=>`${e}-label-${t}`,se=({id:e,canvases:t,comments:n,open:r,onClose:s,language:a})=>{const{t:i,langOf:c}=L(),l=T(null),[f,h]=p(r);return r&&!f&&h(true),S(r,()=>s(false)),v(()=>{var u;r&&((u=l.current)==null||u.focus())},[r]),o("figcaption",{className:"clover-canvas-caption","data-open":r,"data-testid":"clover-canvas-caption",id:e,onKeyDown:u=>{u.key==="Escape"&&(u.preventDefault(),u.stopPropagation(),s(true))},ref:l,tabIndex:-1,children:[o(y,{className:"clover-canvas-caption-close",id:`close-${e}`,label:i("commonClose"),lang:c("commonClose"),onClick:()=>s(true),children:o(D,{})}),t.map((u,g)=>{const d=N(u.label,a);return o("section",{className:"clover-canvas-caption-canvas",children:[d.text&&o("p",{className:"clover-canvas-caption-label",id:_(e,g),...m(d.lang),children:d.text}),f&&o(O,{fallback:null,children:o(z,{summary:u.summary,metadata:u.metadata,comments:n==null?void 0:n.get(u.id),language:a})})]},u.id)})]})},ae=()=>o("path",{strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"45",d:"M256 112v288M400 256H112"}),ce=()=>o("path",{strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"45",d:"M400 256H112"}),le=()=>o("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M432 320v112H320M421.8 421.77L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320M90.23 421.8L208 304"}),ie=()=>o("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M304 416v-112h112M405.77 405.77L304 304M208 96v112H96M106.23 106.23L208 208M416 208H304V96M405.77 106.23L304 208M96 304h112v112M106.23 405.77L208 304"}),ue=()=>o("path",{d:"M448 440a16 16 0 01-12.61-6.15c-22.86-29.27-44.07-51.86-73.32-67C335 352.88 301 345.59 256 344.23V424a16 16 0 01-27 11.57l-176-168a16 16 0 010-23.14l176-168A16 16 0 01256 88v80.36c74.14 3.41 129.38 30.91 164.35 81.87C449.32 292.44 464 350.9 464 424a16 16 0 01-16 16z"}),de=()=>o(E,{children:[o("path",{fill:"none",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"45",d:"M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128"}),o("path",{d:"M464 97.42V208a16 16 0 01-16 16H337.42c-14.26 0-21.4-17.23-11.32-27.31L436.69 86.1C446.77 76 464 83.16 464 97.42z"})]}),fe=()=>o(E,{children:[o("path",{fill:"none",strokeLinecap:"round",strokeWidth:"64",d:"M112 144h0M112 256h0M112 368h0"}),o("path",{fill:"none",strokeLinecap:"round",strokeWidth:"40",d:"M208 144h208M208 256h208M208 368h208"})]}),j=({children:e,label:t})=>o("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 512 512",fill:"currentColor",stroke:"currentColor",focusable:"false","aria-hidden":"true",role:"presentation","data-testid":"clover-canvas-button-svg","data-label":t,children:e}),U=112,V=128;function $(e){B(()=>{const t=e==null?void 0:e.closest(".clover-canvas");if(!e||!t)return;const n=(a=false)=>{let i=e.offsetWidth,c=0;for(const d of a?[]:Array.from(e.children))!(d instanceof HTMLElement)||!d.offsetParent||(i=Math.min(i,d.offsetLeft),c=Math.max(c,d.offsetTop+d.offsetHeight));const l={width:e.offsetWidth-i,height:c};for(const[d,F]of Object.entries(l)){const M=`--clover-canvas-controls-${d}`;c?t.style.setProperty(M,`${F}px`):t.style.removeProperty(M)}const f=e.offsetTop,h=t.querySelector(":scope > .clover-canvas-media > .clover-canvas-transport"),u=t.clientHeight-2*f-l.height-((h==null?void 0:h.offsetHeight)??0),g=e.offsetLeft+i-f;c&&u<U&&g>=V?t.dataset.popups="beside":delete t.dataset.popups};n();const r=new ResizeObserver(()=>n());r.observe(e),r.observe(t);const s=new MutationObserver(()=>n());return s.observe(e,{childList:true}),s.observe(t,{childList:true}),()=>{r.disconnect(),s.disconnect(),n(true)}},[e])}const b=()=>{if(typeof document>"u")return null;const e=document;return e.fullscreenElement??e.webkitFullscreenElement??null},w=()=>{if(typeof document>"u")return false;const e=document;return!!(e.fullscreenEnabled??e.webkitFullscreenEnabled)},C=e=>{const t=e==null?void 0:e.closest(".clover-root"),n=e==null?void 0:e.closest("dialog");return t&&!(n&&t.contains(n))?t:(e==null?void 0:e.closest(".clover-canvas"))??null},Z=(e,t)=>{if(typeof e.webkitEnterFullscreen!="function")return;const n=t.closest(".clover-canvas"),r=!e.isConnected&&!!n;if(r&&n){const a=e.getAttribute("style");e.style.cssText="position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:contain;pointer-events:none",n.prepend(e),e.addEventListener("webkitendfullscreen",()=>{e.remove(),a===null?e.removeAttribute("style"):e.setAttribute("style",a)},{once:true})}const s=()=>{var a;try{(a=e.webkitEnterFullscreen)==null||a.call(e)}catch{}};r?requestAnimationFrame(s):s()},R=async(e,t)=>{var r,s,a,i;const n=C(e);if(n)try{if(b()){const l=document;await(((r=l.exitFullscreen)==null?void 0:r.call(l))??((s=l.webkitExitFullscreen)==null?void 0:s.call(l)));return}if(!w()){t&&e&&Z(t,e);return}const c=n;await(((a=c.requestFullscreen)==null?void 0:a.call(c))??((i=c.webkitRequestFullscreen)==null?void 0:i.call(c)))}catch{}};function K(e){const[t,n]=p(false);return v(()=>{if(!e)return;const r=()=>{var s;return n(!!((s=b())!=null&&s.contains(e)))};return r(),document.addEventListener("fullscreenchange",r),document.addEventListener("webkitfullscreenchange",r),()=>{document.removeEventListener("fullscreenchange",r),document.removeEventListener("webkitfullscreenchange",r)}},[e]),t}function he({key:e,id:t,label:n,glyph:r,onClick:s,expanded:a,controls:i,shortcut:c,lang:l},f){const h=f==null?void 0:f[e];return h?o(h,{buttonProps:{id:t,type:"button","aria-label":n,...l&&{lang:l},...c&&{"aria-keyshortcuts":c.keys},onClick:s,...a!==void 0&&{"aria-expanded":a,"aria-controls":i}},icon:o(j,{label:n,children:r}),label:n,tip:o(q,{label:n,shortcut:c})},e):o(y,{id:t,label:n,onClick:s,expanded:a,controls:i,shortcut:c,lang:l,children:r},e)}const pe=({fit:e=false,clusterRef:t,children:n})=>{const[r,s]=p(null),a=K(r);$(r);const i=I(c=>{s(c),t==null||t(c)},[t]);return o("div",{className:"clover-canvas-controls","data-fit":e||void 0,"data-fullscreen":a,"data-testid":"clover-canvas-controls",ref:i,children:n})},Y=()=>()=>{};function ve(){return A(Y,w)}const me=({hidden:e})=>{const{t,langOf:n}=L(),r=t("imageExitFullScreen");return o("button",{"aria-label":r,...m(n("imageExitFullScreen")),className:"clover-canvas-exit-full-screen",hidden:e,onClick:s=>void R(s.currentTarget),type:"button",children:[o("svg",{viewBox:"0 0 512 512",width:"20",height:"20","aria-hidden":"true",focusable:"false",children:o("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"45",d:"M244 400L100 256l144-144M120 256h292"})}),r]})};function be(e){const[t,n]=p(false);return v(()=>{if(!e)return;const r=()=>n(b()===e);return r(),document.addEventListener("fullscreenchange",r),document.addEventListener("webkitfullscreenchange",r),()=>{document.removeEventListener("fullscreenchange",r),document.removeEventListener("webkitfullscreenchange",r)}},[e]),t}function ge(e){const[t,n]=p(false);return v(()=>{if(!e)return;const r=()=>{const s=b();n(s===e||!!s&&C(e)===s&&(s==null?void 0:s.querySelector(".clover-canvas"))===e)};return r(),document.addEventListener("fullscreenchange",r),document.addEventListener("webkitfullscreenchange",r),()=>{document.removeEventListener("fullscreenchange",r),document.removeEventListener("webkitfullscreenchange",r)}},[e]),t}class Le extends P.Component{constructor(){super(...arguments);k(this,"state",{error:null})}static getDerivedStateFromError(n){return{error:n}}render(){const{error:n}=this.state;return n?o("div",{className:"clover-canvas-error",role:"alert",lang:"en",children:[o("p",{className:"clover-canvas-error-headline","data-testid":"headline",children:"Something went wrong"}),n.message&&o("span",{className:"clover-canvas-error-body",children:`Error message: ${n.message}`})]}):this.props.children}}const G={image:"bodyUnloadableImage",video:"bodyUnloadableVideo",audio:"bodyUnloadableAudio",model:"bodyUnloadableModel"};function Me({kind:e,shown:t,room:n=false}){const{t:r,langOf:s}=L(),a=G[e];return o("div",{className:"clover-body-unloadable","data-room":n||void 0,role:"status",children:t&&o("p",{...m(s(a)),children:r(a)})})}function ke({text:e,lang:t}){return o("div",{className:"clover-body-note","aria-hidden":"true",children:o("p",{...m(t),children:e})})}const J=5,Ee=300,ye=J*4;function we(e,t=false){return e==="touch"||e==="pen"&&!t}function Ce(e){return e.pointerType==="pen"&&e.buttons===0}function Fe(e,t,n){for(let r=e;r&&r!==t;r=r.parentElement)if((n>0?r.scrollHeight-r.clientHeight-r.scrollTop:r.scrollTop)>=1&&/auto|scroll/.test(getComputedStyle(r).overflowY))return true;return false}function xe(e,t){var r;let n=e;for(;n&&n!==t;){if(n instanceof HTMLButtonElement||n instanceof HTMLAnchorElement||n instanceof HTMLInputElement||n instanceof HTMLLabelElement||n instanceof HTMLSelectElement||((r=n.dataset)==null?void 0:r.cloverCanvasInteractive)!==void 0)return true;n=n.parentElement}return false}export{Me as B,pe as C,ye as D,Le as E,de as R,J as T,ae as Z,Ce as a,Ee as b,we as c,K as d,ce as e,ie as f,le as g,ue as h,xe as i,fe as j,be as k,ge as l,oe as m,_ as n,me as o,ke as p,se as q,he as r,Fe as s,R as t,ve as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as r}from"./shared-
|
|
1
|
+
import{u as r}from"./shared-DFAX0n3B.mjs";import{L as n,P as a}from"./Provider-a3xY016W.mjs";import{u as i}from"./nodes-BleXuYE6.mjs";const s=t=>[...t.children].filter(e=>e.localName==="clover-logo").map(e=>({element:e,alt:e.getAttribute("alt")??void 0})),c=(t,e)=>t.length===e.length&&t.every((l,o)=>l.element===e[o].element&&l.alt===e[o].alt);function u({hosted:t,props:e}){const l=i(t.element,()=>s(t.element),c);return r(a,{...e,children:l.length?l.map((o,m)=>r(n,{alt:o.alt},m)):void 0})}export{u as ProviderElement};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as c,av as l,a9 as g,aw as v,L as b}from"./shared-
|
|
1
|
+
import{S as c,av as l,a9 as g,aw as v,L as b}from"./shared-DFAX0n3B.mjs";const A=t=>t&&typeof t=="object"?Object.entries(t).flatMap(([i,r])=>c(r).filter(s=>typeof s=="string").map(s=>({value:s,...i!=="none"?{language:i}:{}}))):typeof t=="string"?[{value:t}]:[],a=new WeakMap;function j(t){if(!t)return null;if(a.has(t))return a.get(t);const i=[],r=new Set,s=n=>{if(!n||r.has(n.id??n))return;r.add(n.id??n);const w=typeof n.id=="string"&&!c(n.behavior).includes("no-nav"),d=A(n.label),h=c(n.items).filter(o=>(o==null?void 0:o.type)!=="Range"&&g(v(o)).id).length;let x=0;for(const o of c(n.items)){if((o==null?void 0:o.type)==="Range"){s(o);continue}const e=g(v(o));if(!e.id)continue;const f=x++;if(!w||!e.rect)continue;const{x:S,y:T,w:I,h:$}=e.rect,u=b(n.id,f);i.push({id:u,setId:l,canvasId:e.id,target:{id:e.id,rect:e.rect},motivation:["highlighting"],bodies:d,...h>1?{place:{index:f+1,total:h}}:{},annotation:{id:u,type:"Annotation",motivation:["highlighting"],...d.length&&{body:d.map(({value:E,language:y})=>({type:"TextualBody",value:E,...y?{language:y}:{}}))},target:`${e.id}#xywh=${S},${T},${I},${$}`}})}};c(t.structures).forEach(s);const p=i.length?{id:l,source:"contents",entries:i}:null;return a.set(t,p),p}export{j as contentsSet};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m,a2 as f,b,A as p,_ as n,u as v,l as g}from"./shared-
|
|
1
|
+
import{a as m,a2 as f,b,A as p,_ as n,u as v,l as g}from"./shared-DFAX0n3B.mjs";import{u as L}from"./ReadMore-D_WmmKEP.mjs";import{u as A}from"./nodes-BleXuYE6.mjs";const M=o=>[...o.children].find(r=>!r.classList.contains("clover-read-more-button"))??null;function k({hosted:o}){const r=o.element,e=A(r,()=>M(r),Object.is),{t:s}=m(),i=f(),a=b(),l=p(null);l.current=e;const{open:t,cut:c,toggle:d}=L(l);return n(()=>(r.classList.add("clover-read-more"),()=>r.classList.remove("clover-read-more")),[r]),n(()=>{if(!e)return;const u=e.id;return u||(e.id=a),()=>{u||e.removeAttribute("id"),e.removeAttribute("data-read-more")}},[e,a]),n(()=>{e==null||e.setAttribute("data-read-more",t?"open":"")},[e,t]),!e||!(c||t)?null:v("button",{type:"button",className:"clover-read-more-button","aria-expanded":t,"aria-controls":e.id||a,onClick:d,ref:i.ref,...g(i.langOf(t?"readLess":"readMore")),children:s(t?"readLess":"readMore")})}export{k as ReadMoreElement};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{V as a,t as c,e as u,c as l,T as g}from"./shared-DFAX0n3B.mjs";function f(e,t,o){if(o&&e.includes(o))return o;if(!e.length)return;const s=a(e,t);return s==="none"?e[0]:s}const y=e=>e&&typeof e=="object"&&!Array.isArray(e)?Object.keys(e).filter(t=>t!=="none"&&t!=="@none"&&c({[t]:e[t]}).text):[];function i(e){if(!e)return[];const t=[...Array.isArray(e.metadata)?e.metadata:[],e.requiredStatement].filter(Boolean),s=[e.label,e.summary,...t.flatMap(n=>[n==null?void 0:n.label,n==null?void 0:n.value])].map(y).filter(n=>n.length>1);return[...new Set(s.flat())]}function d(){const{language:e,chooseLanguage:t}=u("About"),o=l(r=>r.manifest),s=g(()=>i(o),[o]),n=f(s,e);return n&&t?{languages:s,chosen:n,onChange:t}:null}export{f as s,d as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var bt=Object.defineProperty;var Tt=(n,t,e)=>t in n?bt(n,t,{enumerable:true,configurable:true,writable:true,value:e}):n[t]=e;var h=(n,t,e)=>Tt(n,typeof t!="symbol"?t+"":t,e);import{c as Et,r as Y}from"./contexts-ByL3eA_T.mjs";import{c as k,s as _,t as L,a as Mt,u as dt,i as kt,b as ut,d as ft,e as _t,r as Lt,f as A,g as Pt}from"./CanvasView-
|
|
1
|
+
var bt=Object.defineProperty;var Tt=(n,t,e)=>t in n?bt(n,t,{enumerable:true,configurable:true,writable:true,value:e}):n[t]=e;var h=(n,t,e)=>Tt(n,typeof t!="symbol"?t+"":t,e);import{c as Et,r as Y}from"./contexts-ByL3eA_T.mjs";import{c as k,s as _,t as L,a as Mt,u as dt,i as kt,b as ut,d as ft,e as _t,r as Lt,f as A,g as Pt}from"./CanvasView-DxZASM9E.mjs";import{a as S,w as It,v as N,f as At,s as $,b as St,c as Rt}from"./Camera-DqT_1MgD.mjs";import{i as Q,a as Bt,T as Ot,b as j,c as J,D as Ct,s as Ut}from"./pointer-CJELU3gI.mjs";import{a0 as zt,a1 as Wt}from"./shared-DFAX0n3B.mjs";import{a as Ft,i as tt,f as Dt}from"./imageService-4sFnmAFX.mjs";function Nt(n){return typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement?n.complete&&n.naturalWidth>0:true}function Ht(n,t){if(!n.bleed)return{x:0,y:0};const e=n.transform,i=Math.hypot(e.a,e.b)*t,s=Math.hypot(e.c,e.d)*t;return{x:n.bleed.right&&i>0?1/i:0,y:n.bleed.bottom&&s>0?1/s:0}}const Gt=`#version 300 es
|
|
2
2
|
in vec2 a_position;
|
|
3
3
|
uniform mat3 u_matrix;
|
|
4
4
|
uniform vec4 u_crop;
|
|
@@ -19,4 +19,4 @@ out vec4 outColor;
|
|
|
19
19
|
void main() {
|
|
20
20
|
outColor = texture(u_texture, v_uv) * u_opacity;
|
|
21
21
|
}
|
|
22
|
-
`;class R{constructor(t,e,i){h(this,"kind","webgl2");h(this,"canvas");h(this,"maxTextureSize");h(this,"gl");h(this,"program",null);h(this,"vao",null);h(this,"uniforms",{matrix:null,crop:null,opacity:null,texture:null});h(this,"textures",new Map);h(this,"cssWidth",1);h(this,"cssHeight",1);h(this,"pixelRatio",1);h(this,"matrixScratch",new Float32Array(9));h(this,"isLost",false);h(this,"callbacks");h(this,"handleLost",()=>{var t2,e2;this.isLost=true,this.textures.clear(),(e2=(t2=this.callbacks).onLost)==null||e2.call(t2)});this.canvas=t,this.gl=e,this.callbacks=i,this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE)||4096;const s=Zt(e,Gt,Xt);this.program=s,this.uniforms={matrix:e.getUniformLocation(s,"u_matrix"),crop:e.getUniformLocation(s,"u_crop"),opacity:e.getUniformLocation(s,"u_opacity"),texture:e.getUniformLocation(s,"u_texture")};const r=e.createVertexArray();e.bindVertexArray(r);const o=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),e.STATIC_DRAW);const a=e.getAttribLocation(s,"a_position");e.enableVertexAttribArray(a),e.vertexAttribPointer(a,2,e.FLOAT,false,0,0),e.bindVertexArray(null),this.vao=r,e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,true),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,false),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.BROWSER_DEFAULT_WEBGL),t.addEventListener("webglcontextlost",this.handleLost)}static create(t,e={}){let i=null;try{i=t.getContext("webgl2",{alpha:true,premultipliedAlpha:true,antialias:false,depth:false,stencil:false,preserveDrawingBuffer:false})}catch{i=null}if(!i||typeof i.createShader!="function")return null;try{return new R(t,i,e)}catch{return null}}resize(t,e,i){this.cssWidth=Math.max(1,t),this.cssHeight=Math.max(1,e),this.pixelRatio=i;const s=Math.max(1,Math.round(t*i)),r=Math.max(1,Math.round(e*i));this.canvas.width!==s&&(this.canvas.width=s),this.canvas.height!==r&&(this.canvas.height=r)}begin(){if(this.isLost)return;const t=this.gl;t.viewport(0,0,this.canvas.width,this.canvas.height),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.useProgram(this.program),t.bindVertexArray(this.vao),t.activeTexture(t.TEXTURE0),t.uniform1i(this.uniforms.texture,0)}draw(t){if(this.isLost||!Nt(t.source))return"skipped";const e=this.gl,i=this.upload(t);if(i==="tainted")return"tainted";if(!i)return"skipped";const s=t.crop??{x:0,y:0,width:t.width,height:t.height},r=Ht(t,this.pixelRatio),o=k(t.transform,L(s.x,s.y),_(s.width+r.x,s.height+r.y));return e.uniformMatrix3fv(this.uniforms.matrix,false,Mt(o,this.cssWidth,this.cssHeight,this.matrixScratch)),e.uniform4f(this.uniforms.crop,s.x/t.width,s.y/t.height,s.width/t.width,s.height/t.height),e.uniform1f(this.uniforms.opacity,t.opacity),e.bindTexture(e.TEXTURE_2D,i.texture),e.drawArrays(e.TRIANGLE_STRIP,0,4),"drawn"}end(){this.isLost||this.gl.bindVertexArray(null)}has(t){return!this.isLost&&this.textures.has(t)}release(t){const e=this.textures.get(t);e&&(this.isLost||this.gl.deleteTexture(e.texture),this.textures.delete(t))}dispose(){var t;if(this.canvas.removeEventListener("webglcontextlost",this.handleLost),!this.isLost){for(const e of[...this.textures.keys()])this.release(e);this.program&&this.gl.deleteProgram(this.program),this.vao&&this.gl.deleteVertexArray(this.vao)}this.textures.clear(),(t=this.gl.getExtension("WEBGL_lose_context"))==null||t.loseContext(),this.isLost=true}upload(t){const e=this.gl,i=this.textures.get(t.key);if(i&&i.width===t.width&&i.height===t.height)return i;const s=(i==null?void 0:i.texture)??e.createTexture();if(!s)return null;e.bindTexture(e.TEXTURE_2D,s);try{e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source)}catch(o){if(i||e.deleteTexture(s),Kt(o))return"tainted";throw o}e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);const r={texture:s,width:t.width,height:t.height};return this.textures.set(t.key,r),r}}function Zt(n,t,e){const i=et(n,n.VERTEX_SHADER,t),s=et(n,n.FRAGMENT_SHADER,e),r=n.createProgram();if(!r)throw new Error("Could not create WebGL program");if(n.attachShader(r,i),n.attachShader(r,s),n.linkProgram(r),n.deleteShader(i),n.deleteShader(s),!n.getProgramParameter(r,n.LINK_STATUS)){const o=n.getProgramInfoLog(r);throw n.deleteProgram(r),new Error(`Could not link WebGL program: ${o}`)}return r}function et(n,t,e){const i=n.createShader(t);if(!i)throw new Error("Could not create WebGL shader");if(n.shaderSource(i,e),n.compileShader(i),!n.getShaderParameter(i,n.COMPILE_STATUS)){const s=n.getShaderInfoLog(i);throw n.deleteShader(i),new Error(`Could not compile WebGL shader: ${s}`)}return i}function Kt(n){return typeof n=="object"&&n!==null&&n.name==="SecurityError"}const Vt=.09,qt=1e-4,it=.05,Yt=1e-4;class $t{constructor(t,e=Vt){h(this,"current");h(this,"target",null);h(this,"timeConstant");this.current={...t},this.timeConstant=e}get destination(){return this.target?{...this.target.state}:{...this.current}}set(t){this.current={...t},this.target=null}animateTo(t,e,i=false){if(i||this.timeConstant===0){this.set(t.state);return}let s=t.anchor;if(s){const r=S(s.world,s.screen,t.state.zoom,t.state.rotation,e);Math.hypot(r.x-t.state.x,r.y-t.state.y)*t.state.zoom>it&&(s=void 0)}this.target={state:{...t.state},anchor:s}}stop(){this.target=null}step(t,e){const i=this.target;if(!i)return false;const s=1-Math.exp(-Math.max(t,0)/this.timeConstant),r=this.current,o=i.state,a=Math.exp(Math.log(r.zoom)+(Math.log(o.zoom)-Math.log(r.zoom))*s),d=r.rotation+(o.rotation-r.rotation)*s;let l;return i.anchor?l=S(i.anchor.world,i.anchor.screen,a,d,e):l={x:r.x+(o.x-r.x)*s,y:r.y+(o.y-r.y)*s},this.current={x:l.x,y:l.y,zoom:a,rotation:d},Math.abs(Math.log(o.zoom/a))<qt&&Math.abs(o.rotation-d)<Yt&&Math.hypot(o.x-l.x,o.y-l.y)*a<it?(this.current={...o},this.target=null,false):true}}const H={clickToZoom:true,dblClickToZoom:true,pinchToZoom:true,scrollToZoom:false,navigable:true},U=2,st=1.5,nt=.1,Qt=100,jt=200,Jt=.002,te=.01;class ee{constructor(t,e,i=H){h(this,"pointers",new Map);h(this,"samples",[]);h(this,"down",null);h(this,"pinch",null);h(this,"lastTap",null);h(this,"lastPointerType","");h(this,"penHovers",false);h(this,"onPointerDown",t2=>{var i2,s;if(this.lastPointerType=t2.pointerType,t2.pointerType==="mouse"&&t2.button!==0||Q(t2.target,this.element))return;(s=(i2=this.element).setPointerCapture)==null||s.call(i2,t2.pointerId);const e2=this.local(t2);this.pointers.set(t2.pointerId,e2),this.pointers.size===1?(this.down={x:e2.x,y:e2.y,t:t2.timeStamp,moved:false},this.samples=[{x:e2.x,y:e2.y,t:t2.timeStamp}],this.target.setInteracting(true)):this.pointers.size===2&&(this.pinch=this.pinchState(),this.down&&(this.down.moved=true))});h(this,"onPointerMove",t2=>{var s;Bt(t2)&&(this.penHovers=true);const e2=this.pointers.get(t2.pointerId);if(!e2)return;const i2=this.local(t2);if(this.pointers.set(t2.pointerId,i2),this.pointers.size===1){const r=i2.x-e2.x,o=i2.y-e2.y;this.down&&Math.hypot(i2.x-this.down.x,i2.y-this.down.y)>Ot&&(this.down.moved=true),(s=this.down)!=null&&s.moved&&this.options.navigable&&this.target.panBy(r,o,false),this.samples.push({x:i2.x,y:i2.y,t:t2.timeStamp});const a=t2.timeStamp-Qt;for(;this.samples.length>2&&this.samples[0].t<a;)this.samples.shift()}else if(this.pointers.size===2&&this.pinch&&this.options.navigable){const r=this.pinchState();this.options.pinchToZoom&&this.pinch.distance>0&&this.target.zoomBy(r.distance/this.pinch.distance,r.mid,false),this.target.panBy(r.mid.x-this.pinch.mid.x,r.mid.y-this.pinch.mid.y,false),this.pinch=r}});h(this,"onPointerUp",t2=>{var d,l,f,m,c,u;if(!this.pointers.has(t2.pointerId))return;if(this.pointers.delete(t2.pointerId),(l=(d=this.element).releasePointerCapture)==null||l.call(d,t2.pointerId),this.pointers.size===1){this.pinch=null;const[p]=this.pointers.values();this.samples=[{...p,t:t2.timeStamp}];return}if(this.pointers.size>0)return;const e2=this.down;if(this.down=null,this.pinch=null,this.target.setInteracting(false),!e2)return;const i2=this.local(t2);if(!e2.moved&&t2.type==="pointerup"&&t2.timeStamp-e2.t<j){if((m=(f=this.target).dismiss)!=null&&m.call(f)){this.lastTap=null;return}if(J(t2.pointerType,this.penHovers)){const p=this.lastTap;this.options.navigable&&(this.options.clickToZoom||this.options.dblClickToZoom)&&p&&t2.timeStamp-p.t<j&&Math.hypot(i2.x-p.x,i2.y-p.y)<Ct?(this.lastTap=null,this.zoomIn(i2)):this.lastTap={x:i2.x,y:i2.y,t:t2.timeStamp};return}this.options.clickToZoom&&this.options.navigable?t2.shiftKey?this.target.zoomBy(1/U,i2,true):this.zoomIn(i2):(u=(c=this.target).tap)==null||u.call(c,i2);return}if(!this.options.navigable)return;const r=this.samples[0],o=this.samples[this.samples.length-1],a=((o==null?void 0:o.t)??0)-((r==null?void 0:r.t)??0);if(r&&o&&a>0&&t2.timeStamp-o.t<50){const p=(o.x-r.x)/a*1e3,w=(o.y-r.y)/a*1e3;Math.hypot(p,w)>jt&&this.target.flick(p,w)}});h(this,"onDoubleClick",t2=>{this.options.navigable&&(this.options.clickToZoom||!this.options.dblClickToZoom||J(this.lastPointerType,this.penHovers)||Q(t2.target,this.element)||(t2.shiftKey?this.target.zoomBy(1/U,this.local(t2),true):this.zoomIn(this.local(t2))))});h(this,"onWheel",t2=>{const e2=t2.ctrlKey;if(!this.options.navigable||!e2&&!this.options.scrollToZoom||!e2&&Ut(t2.target,this.element,t2.deltaY))return;t2.preventDefault();const i2=ie(t2),s=e2?te:Jt;this.target.zoomBy(Math.exp(-i2*s),this.local(t2),!e2)});h(this,"onKeyDown",t2=>{if(t2.target!==this.element||!this.options.navigable||t2.altKey||t2.metaKey||t2.ctrlKey)return;const e2=this.element.getBoundingClientRect(),i2=e2.width*nt*(t2.shiftKey?3:1),s=e2.height*nt*(t2.shiftKey?3:1);switch(t2.key){case"ArrowLeft":this.target.panBy(i2,0,true);break;case"ArrowRight":this.target.panBy(-i2,0,true);break;case"ArrowUp":this.target.panBy(0,s,true);break;case"ArrowDown":this.target.panBy(0,-s,true);break;case"+":case"=":this.target.zoomBy(st,void 0,true);break;case"-":case"_":this.target.zoomBy(1/st,void 0,true);break;case"0":this.target.home();break;case"r":this.target.rotateBy(90);break;case"R":this.target.rotateBy(-90);break;default:return}t2.preventDefault()});this.element=t,this.target=e,this.options=i,t.addEventListener("pointerdown",this.onPointerDown),t.addEventListener("pointermove",this.onPointerMove),t.addEventListener("pointerup",this.onPointerUp),t.addEventListener("pointercancel",this.onPointerUp),t.addEventListener("dblclick",this.onDoubleClick),t.addEventListener("wheel",this.onWheel,{passive:false}),t.addEventListener("keydown",this.onKeyDown)}setOptions(t){this.options=t}dispose(){const t=this.element;t.removeEventListener("pointerdown",this.onPointerDown),t.removeEventListener("pointermove",this.onPointerMove),t.removeEventListener("pointerup",this.onPointerUp),t.removeEventListener("pointercancel",this.onPointerUp),t.removeEventListener("dblclick",this.onDoubleClick),t.removeEventListener("wheel",this.onWheel),t.removeEventListener("keydown",this.onKeyDown)}local(t){const e=this.element.getBoundingClientRect();return{x:t.clientX-e.left,y:t.clientY-e.top}}zoomIn(t){var e,i;(i=(e=this.target).atMaxZoom)!=null&&i.call(e)?this.target.home():this.target.zoomBy(U,t,true)}pinchState(){const[t,e]=[...this.pointers.values()];return{distance:Math.hypot(e.x-t.x,e.y-t.y),mid:{x:(t.x+e.x)/2,y:(t.y+e.y)/2}}}}function ie(n){return n.deltaMode===1?n.deltaY*16:n.deltaMode===2?n.deltaY*400:n.deltaY}class mt extends Error{constructor(t,e,i){super(t),this.url=e,this.status=i,this.name="ImageLoadError"}}const rt=new Set;async function se(n,t={}){const{signal:e,maxTextureSize:i,request:s}=t,r=zt(s),o=re(n);if(typeof createImageBitmap!="function"||typeof fetch!="function")return z(n,{signal:e,cors:true,withCredentials:r});if(o&&rt.has(o))return z(n,{signal:e,cors:false,withCredentials:r});let a;try{a=await Wt(s,n,{mode:"cors",signal:e})}catch(c){if(oe(c,e))throw c;const u=await z(n,{signal:e,cors:false,withCredentials:r});return o&&rt.add(o),u}if(!a.ok)throw new mt(`Image request failed with ${a.status}`,n,a.status);const d=await a.blob();let l=await ne(d);const f=l.width,m=l.height;if(i&&(l.width>i||l.height>i)){const c=i/Math.max(l.width,l.height),u=await createImageBitmap(l,{resizeWidth:Math.max(1,Math.floor(l.width*c)),resizeHeight:Math.max(1,Math.floor(l.height*c)),resizeQuality:"high"});l.close(),l=u}if(e!=null&&e.aborted)throw l.close(),G();return{kind:"bitmap",source:l,width:l.width,height:l.height,naturalWidth:f,naturalHeight:m,opaque:false}}async function ne(n){const t={imageOrientation:"from-image",premultiplyAlpha:"premultiply",colorSpaceConversion:"default"};try{return await createImageBitmap(n,t)}catch(e){if(e instanceof TypeError)return createImageBitmap(n);throw e}}function z(n,{signal:t,cors:e,withCredentials:i}){return new Promise((s,r)=>{if(t!=null&&t.aborted){r(G());return}const o=new Image;o.decoding="async",e&&(o.crossOrigin=i?"use-credentials":"anonymous");const a=()=>{o.onload=null,o.onerror=null,t==null||t.removeEventListener("abort",d)},d=()=>{a(),o.src="",r(G())};t==null||t.addEventListener("abort",d),o.onload=()=>{a();const l=()=>s({kind:"element",source:o,width:o.naturalWidth,height:o.naturalHeight,naturalWidth:o.naturalWidth,naturalHeight:o.naturalHeight,opaque:!e});typeof o.decode=="function"?o.decode().then(l,l):l()},o.onerror=()=>{a(),r(new mt("Image failed to load",n))},o.src=n})}function re(n){var t;try{return new URL(n,(t=globalThis.location)==null?void 0:t.href).origin}catch{return null}}function oe(n,t){return!!(t!=null&&t.aborted)||typeof n=="object"&&n!==null&&n.name==="AbortError"}function G(){const n=new Error("Aborted");return n.name="AbortError",n}function ot(n){n.kind==="bitmap"&&n.source.close()}const ae=192*1024*1024,he=6,ce=2;class le{constructor(t){h(this,"entries",new Map);h(this,"inFlight",0);h(this,"frame",0);h(this,"bytes",0);h(this,"wanted",[]);h(this,"disposed",false);h(this,"budget");h(this,"maxInFlight");this.options=t,this.budget=t.byteBudget??ae,this.maxInFlight=t.maxInFlight??he}get(t){const e=this.entries.get(t);if((e==null?void 0:e.state)==="ready")return e.lastUsed=this.frame,e.image}has(t){var e;return((e=this.entries.get(t))==null?void 0:e.state)==="ready"}failed(t){var e;return((e=this.entries.get(t))==null?void 0:e.state)==="failed"}get byteSize(){return this.bytes}get pending(){return this.inFlight}seed(t,e){var s;const i=this.entries.get(t);(i==null?void 0:i.state)!=="ready"&&((s=i==null?void 0:i.controller)==null||s.abort(),this.entries.set(t,{url:t,state:"ready",image:e,bytes:W(e),lastUsed:this.frame,attempts:0,pinned:false,waiters:(i==null?void 0:i.waiters)??[]}),this.bytes+=W(e),this.flushWaiters(t))}prefetch(t){return Promise.all(t.map(e=>new Promise(i=>{const s=this.entries.get(e.url);if(s&&s.state!=="loading")return i();if(s){s.waiters.push(i);return}this.start({...e,priority:-1},i)}))).then(()=>{})}update(t){if(this.disposed)return;this.frame++;const e=new Set(t.map(i=>i.url));this.wanted=[...t].sort((i,s)=>i.priority-s.priority);for(const i of this.entries.values())i.state==="loading"&&!i.pinned&&!e.has(i.url)&&i.controller&&(i.controller.abort(),this.entries.delete(i.url),this.inFlight--);for(const i of this.wanted){const s=this.entries.get(i.url);s&&(s.lastUsed=this.frame)}this.pump(),this.evict(e)}dispose(){var t;this.disposed=true;for(const e of this.entries.values())(t=e.controller)==null||t.abort(),this.flushWaiters(e.url);this.entries.clear(),this.bytes=0}forEachReady(t){for(const e of this.entries.values())e.state==="ready"&&e.image&&t(e.url,e.image)}pump(){for(const t of this.wanted){if(this.inFlight>=this.maxInFlight)break;this.entries.has(t.url)||this.start(t)}}start(t,e){const i=new AbortController,s={url:t.url,state:"loading",bytes:0,lastUsed:this.frame,attempts:0,controller:i,pinned:!!e,waiters:e?[e]:[]};this.entries.set(t.url,s),this.inFlight++,this.attempt(s,t,i,t.url)}attempt(t,e,i,s){t.attempts++,this.options.load(s,i.signal).then(r=>{if(this.disposed||this.entries.get(t.url)!==t){ot(r);return}t.state="ready",t.image=r,t.bytes=W(r),t.controller=void 0,t.pinned=false,this.bytes+=t.bytes,this.settle(t)},r=>{if(!(i.signal.aborted||this.disposed)&&this.entries.get(t.url)===t){if(t.attempts<ce&&!de(r,e)){this.attempt(t,e,i,e.fallbackUrl??e.url);return}t.state="failed",t.controller=void 0,t.pinned=false,this.settle(t)}})}settle(t){this.inFlight--,this.flushWaiters(t.url),this.options.onSettled(),this.pump()}flushWaiters(t){const e=this.entries.get(t);if(!e)return;const i=e.waiters;e.waiters=[],i.forEach(s=>s())}evict(t){if(this.bytes<=this.budget)return;const e=[...this.entries.values()].filter(i=>i.state==="ready"&&!t.has(i.url)).sort((i,s)=>i.lastUsed-s.lastUsed);for(const i of e){if(this.bytes<=this.budget)break;this.entries.delete(i.url),this.bytes-=i.bytes,i.image&&ot(i.image),this.options.onEvict(i.url)}}}function W(n){return n.width*n.height*4}function de(n,t){if(t.fallbackUrl)return false;const e=n==null?void 0:n.status;return typeof e=="number"&&e>=400&&e<500&&e!==408&&e!==429}const ue=.1;class fe{constructor(t,e=s=>requestAnimationFrame(s),i=s=>cancelAnimationFrame(s)){h(this,"handle",0);h(this,"last",0);h(this,"disposed",false);h(this,"frame",t2=>{if(this.handle=0,this.disposed)return;const e2=this.last?Math.min((t2-this.last)/1e3,ue):1/60;this.last=t2,this.tick(e2,t2)?this.invalidate():this.last=0});this.tick=t,this.raf=e,this.caf=i}invalidate(){this.disposed||this.handle||(this.handle=this.raf(this.frame))}drawNow(){this.disposed||(this.handle&&this.caf(this.handle),this.frame(performance.now()))}dispose(){this.disposed=true,this.handle&&this.caf(this.handle),this.handle=0}}const me=2*1024*1024;function pe(n,t,e=me){const i=new Set;let s=e,r=false;return{get deferred(){return r},getTile(o){const a=n(o);if(!a||a.kind==="media"||a.opaque||i.has(o)||t(o))return a;const d=a.width*a.height*4;if(i.size>0&&d>s){r=true;return}return s-=d,i.add(o),a}}}function ge(n){const t=/^(!)?(\d+(?:\.\d+)?)$/.exec((n==null?void 0:n.trim())??"");if(!t)return null;const e=Number(t[2]);if(e>360)return null;const i=e%360,s=!!t[1];return i||s?{degrees:i,mirror:s}:null}function we(n,t,e){if(!n)return null;let i=n.trim().replace(/^xywh=/,""),s=false;i.startsWith("pct:")?(s=true,i=i.slice(4)):i.startsWith("pixel:")&&(i=i.slice(6));const r=i.split(",").map(Number);if(r.length!==4||r.some(p=>!Number.isFinite(p)))return null;let[o,a,d,l]=r;s&&(o=o/100*t,a=a/100*e,d=d/100*t,l=l/100*e);const f=Math.max(0,o),m=Math.max(0,a),c=Math.min(t,o+d),u=Math.min(e,a+l);return c<=f||u<=m?null:{x:f,y:m,width:c-f,height:u-m}}const F=512,ye=16e6;function pt(n,t,e){return{width:t,height:e,levels:[{scaleFactor:1,width:t,height:e,tileWidth:t,tileHeight:e,cols:1,rows:1}],tile:s=>({...s,url:n,region:{x:0,y:0,width:t,height:e}})}}function xe(n){const{width:t,height:e}=n,i=[],s=n.regionByPx&&n.sizeByW,r=(c,u,p)=>{const w=Math.ceil(t/c),y=Math.ceil(e/c);return{scaleFactor:c,width:w,height:y,tileWidth:u,tileHeight:p,cols:Math.ceil(w/u),rows:Math.ceil(y/p)}},o=(c,u)=>({scaleFactor:t/c,width:c,height:u,tileWidth:c,tileHeight:u,cols:1,rows:1,whole:true}),a=n.tiles[0];if(a)for(const c of a.scaleFactors)i.push(r(c,a.width,a.height));else if(s)for(let c=1;;c*=2){const u=r(c,F,F);if(i.push(u),u.cols===1&&u.rows===1)break}const d=Math.max(0,...i.map(c=>c.scaleFactor));for(const c of n.sizes){const u=t/c.width;ve(n,c.width,c.height)&&u>d+1e-9&&i.push(o(c.width,c.height))}const l=i.reduce((c,u)=>!c||u.scaleFactor>c.scaleFactor?u:c,null);if(l&&l.cols*l.rows>1&&n.sizeByW){const c=Math.max(t,e)/F;i.push(o(Math.ceil(t/c),Math.ceil(e/c)))}(!i.length||!a&&!s&&t*e<=ye)&&(i.some(c=>c.scaleFactor===1)||i.push(o(t,e)));const f=be(i).sort((c,u)=>u.scaleFactor-c.scaleFactor),m=Ft(n);return{width:t,height:e,levels:f,tile(c){const u=f[c.level],p=u.scaleFactor,w=u.cols===1&&u.rows===1;let y,v,b;if(w)y={x:0,y:0,width:t,height:e},v=u.width,b=u.height;else{const I=Math.round(c.col*u.tileWidth*p),E=Math.round(c.row*u.tileHeight*p);y={x:I,y:E,width:Math.min(Math.round(u.tileWidth*p),t-I),height:Math.min(Math.round(u.tileHeight*p),e-E)},v=Math.ceil(y.width/p),b=Math.ceil(y.height/p)}return{...c,region:y,url:tt(n,y,v,b),fallbackUrl:m?tt(n,y,v,b,m):void 0}}}}function ve(n,t,e){return!(n.maxWidth&&t>n.maxWidth||n.maxHeight&&e>n.maxHeight||n.maxArea&&t*e>n.maxArea)}function be(n){const t=new Map;for(const e of n){const i=`${e.width}x${e.height}`,s=t.get(i);(!s||s.cols*s.rows<e.cols*e.rows)&&t.set(i,e)}return[...t.values()]}function Te(n,t){const e=n.levels;for(let i=0;i<e.length;i++)if(e[i].scaleFactor<=t*(1+1e-6))return i;return e.length-1}function T(n,t,e){const i=n.levels[t],s=i.tileWidth*i.scaleFactor,r=i.tileHeight*i.scaleFactor,o=Math.max(0,e.x),a=Math.max(0,e.y),d=Math.min(n.width,e.x+e.width),l=Math.min(n.height,e.y+e.height);if(d<=o||l<=a)return[];const f=Math.max(0,Math.floor(o/s)),m=Math.min(i.cols-1,Math.floor((d-1e-9)/s)),c=Math.max(0,Math.floor(a/r)),u=Math.min(i.rows-1,Math.floor((l-1e-9)/r)),p=[];for(let w=c;w<=u;w++)for(let y=f;y<=m;y++)p.push({level:t,col:y,row:w});return p}async function Ee(n,t){if(n.media)return Me(n,n.media);let e=null,i=null;if(n.service)try{e=xe(await Dt(n.service,t.infoOptions))}catch(c){i=c}if(!e){if(!n.url)throw i??new Error("Image has no source");const c=await t.loadStatic(n.url);t.cache.seed(n.url,c),e=pt(n.url,c.naturalWidth,c.naturalHeight)}const s=n.width&&n.height&&n.width>0&&n.height>0?{width:n.width,height:n.height}:{width:e.width,height:e.height},r=we(n.region,s.width,s.height)??{x:0,y:0,width:s.width,height:s.height},o=e.width/s.width,a=e.height/s.height,d={x:r.x*o,y:r.y*a,width:r.width*o,height:r.height*a},l=ge(n.rotation),f=l?ke(d,l):void 0,m={id:n.id,spec:n,pyramid:e,size:s,clip:d,contentClip:r,rect:{x:0,y:0,width:r.width,height:r.height},...f?{turn:f}:{}};return await t.cache.prefetch(T(e,0,d).map(c=>{const u=e.tile(c);return{url:u.url,fallbackUrl:u.fallbackUrl}})),m}const gt="media:";function Me(n,t){var a,d;const e=n.width||((a=n.placement)==null?void 0:a.width)||t.element.videoWidth||1600,i=n.height||((d=n.placement)==null?void 0:d.height)||t.element.videoHeight||900,s=`${gt}${n.id}`,r={width:e,height:i},o={x:0,y:0,width:e,height:i};return{id:n.id,spec:n,pyramid:pt(s,e,i),media:{kind:"media",source:t.element,width:e,height:i,naturalWidth:e,naturalHeight:i},size:r,clip:o,contentClip:o,rect:{...o}}}function ke(n,{degrees:t,mirror:e}){const i=t*Math.PI/180,s=f=>Math.abs(f)<1e-12?0:f,r=s(Math.cos(i)),o=s(Math.sin(i)),a=Math.abs(n.width*r)+Math.abs(n.height*o),d=Math.abs(n.width*o)+Math.abs(n.height*r),l=k(L(a/2,d/2),{a:r,b:o,c:-o,d:r,e:0,f:0},_(e?-1:1,1),L(-(n.x+n.width/2),-(n.y+n.height/2)));return{orient:l,unorient:kt(l),width:a,height:d}}function wt(n){var t;return((t=n.turn)==null?void 0:t.orient)??L(-n.clip.x,-n.clip.y)}function _e(n,t){const{turn:e,clip:i}=n;if(!e)return{...t,x:i.x+t.x,y:i.y+t.y};const s=ft(e.unorient,t),r=Math.max(s.x,i.x),o=Math.max(s.y,i.y);return{x:r,y:o,width:Math.max(0,Math.min(s.x+s.width,i.x+i.width)-r),height:Math.max(0,Math.min(s.y+s.height,i.y+i.height)-o)}}function Le(n,t){const{turn:e,clip:i}=n;return e?ut(e.unorient,t):{x:i.x+t.x,y:i.y+t.y}}function at(n){const{turn:t,clip:e,contentClip:i}=n;return t?{width:t.width*i.width/e.width,height:t.height*i.height/e.height}:i}function Pe(n){if(!n.length)return null;if(n.every(i=>i.spec.placement)){for(const i of n)i.rect={...i.spec.placement};return dt(n.map(i=>i.rect))}const t=at(n[0]).height;let e=0;for(const i of n){const s=at(i),r=s.width*t/s.height;i.rect={x:e,y:0,width:r,height:t},e+=r}return{x:0,y:0,width:e,height:t}}function B(n){const t=n.turn??n.clip;return{x:n.rect.width/t.width,y:n.rect.height/t.height}}function Ie(n){const t=B(n);return k(L(n.rect.x,n.rect.y),_(t.x,t.y),wt(n))}function Ae(n,t){var e,i;return n.service===t.service&&n.url===t.url&&n.width===t.width&&n.height===t.height&&n.region===t.region&&n.rotation===t.rotation&&((e=n.media)==null?void 0:e.element)===((i=t.media)==null?void 0:i.element)&&JSON.stringify(n.placement)===JSON.stringify(t.placement)}const Se=1e7,Re=15e6,Be=2e7,Oe=2;function Ce(n){const{items:t,camera:e,viewport:i,pixelRatio:s,getTile:r,destination:o}=n,a=It(e,i),d=[],l=[],f=[],m=(c,u,p)=>{const w=c.tile(u);l.push({url:w.url,fallbackUrl:w.fallbackUrl,priority:p})};for(const c of t){const{pyramid:u,clip:p,rect:w}=c,y=B(c);if(n.wantOverview)for(const g of T(u,0,p))m(u,g,Be);const v=ht(c,e,i,s),b=o?ht(c,o,i,s):v;if(f.push((v==null?void 0:v.target)??-1),!v&&!b)continue;const I=g=>x=>{const P=u.tile(x).region;return Math.hypot(P.x+P.width/2-g.x,P.y+P.height/2-g.y)};if(b){const g=I(b.center);for(const x of T(u,0,b.area))m(u,x,g(x)/1e3);if(b.target>0)for(const x of T(u,b.target,b.area))m(u,x,Se+g(x))}if(!v)continue;const{area:E,target:M}=v,Z=I(v.center),O=T(u,0,E),K=M===0?[]:T(u,M,E);if(b!==v){for(const x of O)m(u,x,Z(x)/1e3);const g=M-Oe;if(g>0)for(const x of T(u,g,E))m(u,x,Re+Z(x))}if(c.spec.hidden)continue;const yt=(M===0?O:K).every(g=>r(u.tile(g).url)!==void 0)?[M]:Array.from({length:M+1},(g,x)=>x),xt=k(a,L(w.x,w.y),_(y.x,y.y),wt(c));for(const g of yt){const x=g===0?O:g===M?K:T(u,g,E),P=u.levels[g].cols*u.levels[g].rows>1;for(const vt of x){const C=u.tile(vt),V=r(C.url);if(!V)continue;const q=Ue(c,C.region,V,xt,P);q&&d.push({...q,url:C.url})}}}return l.sort((c,u)=>c.priority-u.priority),{draws:d,wants:ze(l),levels:f}}function ht(n,t,e,i){const{pyramid:s,rect:r}=n,o=N(t,e);if(!_t(o,r))return null;const a=B(n),d=Math.max(o.x,r.x),l=Math.max(o.y,r.y),f=Math.min(o.x+o.width,r.x+r.width),m=Math.min(o.y+o.height,r.y+r.height),c=1/(a.x*t.zoom*i);return{area:_e(n,{x:(d-r.x)/a.x,y:(l-r.y)/a.y,width:(f-d)/a.x,height:(m-l)/a.y}),center:Le(n,{x:(t.x-r.x)/a.x,y:(t.y-r.y)/a.y}),target:Te(s,c)}}function Ue(n,t,e,i,s){const{clip:r}=n,o=Math.max(t.x,r.x),a=Math.max(t.y,r.y),d=Math.min(t.x+t.width,r.x+r.width),l=Math.min(t.y+t.height,r.y+r.height);if(d<=o||l<=a)return null;const f=e.width/t.width,m=e.height/t.height,c=1e-6;return{item:n,image:e,transform:k(i,L(t.x,t.y),_(1/f,1/m)),crop:{x:(o-t.x)*f,y:(a-t.y)*m,width:(d-o)*f,height:(l-a)*m},bleed:{right:s&&d<r.x+r.width-c,bottom:s&&l<r.y+r.height-c}}}function ze(n){const t=new Set;return n.filter(e=>t.has(e.url)?false:(t.add(e.url),true))}const We={maxZoomPixelRatio:1.1,minZoomImageRatio:.9,animationTime:.09,request:void 0,byteBudget:192*1024*1024,maxInFlight:6,releaseAfterMs:2e3},Fe=2,De=3,Ne=.1,He=1e-6,X={top:0,right:0,bottom:0,left:0};function ct(n,t="padding"){if(!n||typeof getComputedStyle!="function")return X;const e=getComputedStyle(n),i=s=>parseFloat(e.getPropertyValue(`${t}-${s}`))||0;return{top:i("top"),right:i("right"),bottom:i("bottom"),left:i("left")}}const Ge=(n,t)=>n.top===t.top&&n.right===t.right&&n.bottom===t.bottom&&n.left===t.left;let Xe;class Ze{constructor(t,e={}){h(this,"host");h(this,"overlays",null);h(this,"options");h(this,"backend",null);h(this,"backendPreference");h(this,"contextLosses",0);h(this,"holder",{hiddenSince:null,release:()=>this.giveBack()});h(this,"visible",true);h(this,"dom",null);h(this,"domAsked",false);h(this,"pending",null);h(this,"camera");h(this,"loop");h(this,"gestures");h(this,"gestureOptions",{});h(this,"cache");h(this,"navigator",null);h(this,"navigatorAsked",0);h(this,"viewport",{width:1,height:1});h(this,"inset",X);h(this,"pixelRatio",1);h(this,"items",[]);h(this,"worldBounds",null);h(this,"contentVersion",0);h(this,"opaqueUrls",new Set);h(this,"mediaByKey",new Map);h(this,"detachMedia",[]);h(this,"opened",false);h(this,"atHome",true);h(this,"lastEmitted",null);h(this,"generation",0);h(this,"listeners",new Map);h(this,"unloadable",false);h(this,"resizeObserver",null);h(this,"intersectionObserver",null);h(this,"releaseTimer",null);h(this,"dprQuery",null);h(this,"disposed",false);h(this,"dismisser",null);h(this,"tick",t2=>{var d,l;if(this.disposed)return false;const e2=this.camera.step(t2,this.viewport),i=this.camera.current,s=this.backend,r=pe(this.getTile,f=>s?s.has(f):true),o=Ce({items:this.items,camera:i,viewport:this.viewport,pixelRatio:this.pixelRatio,getTile:r.getTile,wantOverview:!!this.navigator,destination:e2?this.camera.destination:void 0}),a=o.wants.filter(f=>!f.url.startsWith(gt));return this.cache.update(a),o.draws.length?this.setUnloadable(false):a.length&&a.every(f=>this.cache.failed(f.url))&&this.setUnloadable(true),this.paint(o.draws),(d=this.overlays)==null||d.position(i,this.viewport),(l=this.navigator)==null||l.render(this.items.filter(f=>!f.spec.hidden),this.worldBounds,N(i,this.viewport),this.pixelRatio,this.getTile,this.contentVersion),(!this.lastEmitted||!Rt(this.lastEmitted,i))&&(this.lastEmitted={...i},this.opened&&this.emit("viewport")),e2||r.deferred});h(this,"getTile",t2=>this.mediaByKey.get(t2)??this.cache.get(t2));h(this,"onContextLost",()=>{this.contextLosses+=1,this.releaseBackend(),this.visible?this.acquireBackend(false):this.host.dataset.backend="released"});h(this,"onPixelRatioChange",()=>{this.measure(),this.watchPixelRatio()});this.host=t,this.backendPreference=e.backend??"auto",this.options={...We,...D(e)},Ve()&&(this.options.animationTime=0),this.camera=new $t({x:0,y:0,zoom:1,rotation:0},this.options.animationTime),this.loop=new fe(this.tick),this.gestureOptions=D(e.gestures??{}),this.gestures=new ee(t,this,{...H,...this.gestureOptions}),this.cache=new le({load:(i,s)=>this.loadTile(i,s),onSettled:()=>{this.contentVersion++,this.invalidate()},onEvict:i=>{var s;return(s=this.backend)==null?void 0:s.release(i)},byteBudget:this.options.byteBudget,maxInFlight:this.options.maxInFlight}),this.visible=Ke(t),this.visible?this.acquireBackend():this.holder.hiddenSince=lt(),this.measure(),this.observe()}get backendKind(){var t;return((t=this.backend)==null?void 0:t.kind)??"none"}get isOpen(){return this.opened}get isAtHome(){return this.atHome}on(t,e){let i=this.listeners.get(t);return i||(i=new Set,this.listeners.set(t,i)),i.add(e),()=>i==null?void 0:i.delete(e)}async setImages(t,{world:e,fit:i=false}={}){const s=++this.generation,r=new Map(this.items.map(f=>[f.id,f])),o=await Promise.allSettled(t.map(f=>{const m=r.get(f.id);return m&&Ae(m.spec,f)?(m.spec=f,Promise.resolve(m)):Ee(f,{cache:this.cache,loadStatic:c=>this.loadTile(c),infoOptions:{request:this.options.request}})}));if(s!==this.generation||this.disposed)return;const a=o.filter(f=>f.status==="fulfilled").map(f=>f.value),d=o.filter(f=>f.status==="rejected").map(f=>f.reason);this.items=a,this.watchMedia(a);const l=Pe(a);if(this.worldBounds=e?l?dt([e,l]):e:l,this.contentVersion++,d.length&&this.emit("error",d),this.setUnloadable(t.length>0&&!a.length&&d.length>0),!this.worldBounds){this.invalidate();return}this.opened?i?(this.home(true),this.emit("change")):(this.camera.set(this.constrain(this.camera.current)),this.emit("change")):(this.opened=true,this.home(true),this.emit("open")),this.invalidate()}clear(){this.setUnloadable(false),this.generation++,this.items=[],this.watchMedia([]),this.worldBounds=null,this.contentVersion++,this.invalidate()}setHidden(t){const e=new Set(t);let i=false;for(const s of this.items){const r=e.has(s.id);!!s.spec.hidden!==r&&(s.spec={...s.spec,hidden:r},i=true)}i&&this.invalidate()}isReady(t){const e=this.items.find(s=>s.id===t);if(!e)return false;if(e.spec.media)return true;const i=e.pyramid.levels[0];if(!i)return false;for(let s=0;s<i.rows;s++)for(let r=0;r<i.cols;r++)if(!this.getTile(e.pyramid.tile({level:0,col:r,row:s}).url))return false;return true}fitBounds(t,e=false,i=X){const s=this.fit(t,this.camera.destination.rotation,i);this.atHome=false,this.animateTo(this.constrain(s,{allowBeyondLimits:true}),e)}fit(t,e,{top:i,right:s,bottom:r,left:o}){const{width:a,height:d}=this.viewport,{zoom:l}=At(t,{width:Math.max(1,a-o-s),height:Math.max(1,d-i-r)},e);return{...S(Lt(t),{x:(a+o-s)/2,y:(d+i-r)/2},l,e,this.viewport),zoom:l,rotation:e}}fitItemRect(t,e,i=false){const s=this.itemRectToWorld(t,e);s&&this.fitAnnotation(s,i)}fitAnnotation(t,e=false){var r;const i=this.items[0];if(!i)return;const s=i.rect.width*Ne;this.fitBounds({x:t.x-s,y:t.y-s,width:t.width+s*2,height:t.height+s*2},e,ct((r=this.overlays)==null?void 0:r.container,"scroll-padding"))}getBounds(){return N(this.camera.current,this.viewport)}getHomeBounds(){return this.worldBounds?{...this.worldBounds}:null}getCamera(){return{...this.camera.current}}getZoomLimits(){var i;const t=((i=this.homeCamera())==null?void 0:i.zoom)??1,e=this.items.length?Math.min(...this.items.map(s=>B(s).x)):1;return{home:t,min:t*this.options.minZoomImageRatio,max:Math.max(t,this.options.maxZoomPixelRatio/e)}}home(t=false){const e=this.homeCamera();e&&(this.atHome=true,this.animateTo(e,t))}atMaxZoom(){return this.camera.destination.zoom>=this.getZoomLimits().max*(1-He)}zoomBy(t,e,i=true){const s=i?this.camera.destination:this.camera.current,r=e??{x:this.viewport.width/2,y:this.viewport.height/2},o=$(s,this.viewport,r),{min:a,max:d}=this.getZoomLimits(),l=A(s.zoom*t,a,d),f=S(o,r,l,s.rotation,this.viewport),m=this.constrain({...s,...f,zoom:l});this.atHome=false,i?this.camera.animateTo({state:m,anchor:{world:o,screen:r}},this.viewport):this.camera.set(m),this.invalidate()}panBy(t,e,i=false){const s=i?this.camera.destination:this.camera.current,r=ut(k(_(1/s.zoom),Pt(-s.rotation)),{x:t,y:e}),o=this.constrain({...s,x:s.x-r.x,y:s.y-r.y});this.atHome=false,i?this.camera.animateTo({state:o},this.viewport):this.camera.set(o),this.invalidate()}panTo(t,e=false){const i=e?this.camera.current:this.camera.destination;this.atHome=false,this.animateTo(this.constrain({...i,...t}),e)}flick(t,e){this.panBy(t*.25,e*.25,true)}rotateBy(t){const e=this.camera.destination;this.setRotation(e.rotation*180/Math.PI+t)}setRotation(t,e=false){const i=this.camera.destination,s=t*Math.PI/180;this.animateTo(this.constrain({...i,rotation:s}),e)}getRotation(){return this.camera.destination.rotation*180/Math.PI}tap(t){this.emit("tap",t)}setDismiss(t){this.dismisser=t}dismiss(){var t;return((t=this.dismisser)==null?void 0:t.call(this))??false}setGestures(t){this.gestures.setOptions({...H,...this.gestureOptions,...D(t)})}setInteracting(t){t&&this.camera.stop()}worldToScreenPoint(t){return St(this.camera.current,this.viewport,t)}screenToWorldPoint(t){return $(this.camera.current,this.viewport,t)}itemRectToWorld(t,e){const i=this.items[t];if(!i)return null;const{contentClip:s,clip:r}=i;if(i.turn)return ft(k(Ie(i),_(r.width/s.width,r.height/s.height)),e);const o=i.rect.width/s.width,a=i.rect.height/s.height;return{x:i.rect.x+(e.x-s.x)*o,y:i.rect.y+(e.y-s.y)*a,width:e.width*o,height:e.height*a}}attachNavigator(t){var r;(r=this.navigator)==null||r.dispose(),this.navigator=null;const e=++this.navigatorAsked;let i=null,s=false;return import("./Navigator-Bx4zS0Yr.mjs").then(o=>{s||this.disposed||e!==this.navigatorAsked||(i=new o.Navigator(t,(a,d)=>this.panTo(a,d)),this.navigator=i,this.invalidate())}),()=>{s=true,i==null||i.dispose(),i&&this.navigator===i&&(this.navigator=null)}}invalidate(){this.loop.invalidate()}dispose(){var t,e,i,s,r,o,a;this.disposed||(this.disposed=true,this.generation++,this.loop.dispose(),this.gestures.dispose(),(t=this.resizeObserver)==null||t.disconnect(),(e=this.intersectionObserver)==null||e.disconnect(),(s=(i=this.dprQuery)==null?void 0:i.removeEventListener)==null||s.call(i,"change",this.onPixelRatioChange),this.releaseTimer&&clearTimeout(this.releaseTimer),(r=this.navigator)==null||r.dispose(),this.navigator=null,this.releaseBackend(),this.cache.dispose(),(o=this.dom)==null||o.dispose(),(a=this.overlays)==null||a.dispose(),this.items=[],this.detachMedia.forEach(d=>d()),this.mediaByKey.clear(),this.listeners.clear(),delete this.host.dataset.backend)}watchMedia(t){this.detachMedia.forEach(e=>e()),this.detachMedia=[],this.mediaByKey.clear();for(const e of t){if(!e.media||e.media.kind!=="media")continue;const i=e.pyramid.tile({level:0,col:0,row:0}).url;this.mediaByKey.set(i,e.media);const s=e.media.source,r=()=>this.invalidate(),o=["play","seeked","loadeddata","resize"];o.forEach(a=>s.addEventListener(a,r)),this.detachMedia.push(()=>o.forEach(a=>s.removeEventListener(a,r)))}}paint(t){const e=this.backend,i=[],s=(e==null?void 0:e.kind)==="webgl2";e==null||e.begin();for(const r of t){const{image:o}=r;if(!(o.kind==="media"||o.kind==="element"&&s&&(o.opaque||this.opaqueUrls.has(r.url)))&&e){if(e.draw({key:r.url,source:o.source,width:o.width,height:o.height,transform:r.transform,crop:r.crop,opacity:1,bleed:r.bleed})!=="tainted"||o.kind==="bitmap")continue;this.opaqueUrls.add(r.url)}(o.kind==="element"||o.kind==="media")&&i.push({key:`${r.item.id}|${r.url}`,element:o.source,width:o.width,height:o.height,transform:r.transform,crop:r.crop,opacity:1})}e==null||e.end(),this.dom?this.dom.sync(i):i.length&&!this.domAsked&&(this.domAsked=true,import("./DomLayers-BxPU05-D.mjs").then(({DomLayers:r})=>{if(this.disposed)return;const o=new r(this.host);this.overlays&&this.host.insertBefore(o.container,this.overlays.container),this.dom=o,this.invalidate()}))}loadTile(t,e){return se(t,{signal:e,request:this.options.request,maxTextureSize:this.backend instanceof R?this.backend.maxTextureSize:void 0})}animateTo(t,e){this.camera.animateTo({state:t},this.viewport,e),this.invalidate()}homeCamera(){if(!this.worldBounds)return null;const t=2*Math.PI,e=Math.round(this.camera.destination.rotation/t)*t||0;return this.fit(this.worldBounds,e,this.inset)}constrain(t,{allowBeyondLimits:e=false}={}){const i=this.worldBounds;if(!i)return t;const{min:s,max:r}=this.getZoomLimits(),o=e?A(t.zoom,s,Math.max(r,t.zoom)):A(t.zoom,s,r);return{...t,zoom:o,x:A(t.x,i.x,i.x+i.width),y:A(t.y,i.y,i.y+i.height)}}acquireBackend(t=true){var r,o;if(this.backend||this.pending||this.disposed)return;const e=document.createElement("canvas");e.className="clover-canvas-surface",e.setAttribute("aria-hidden","true"),Object.assign(e.style,{position:"absolute",inset:"0",width:"100%",height:"100%",display:"block",pointerEvents:"none"}),this.host.insertBefore(e,((r=this.dom)==null?void 0:r.container)??((o=this.overlays)==null?void 0:o.container)??null);const i=t&&(this.backendPreference==="webgl2"||this.backendPreference==="auto"&&this.contextLosses<De);let s=null;i&&(Et(this.holder)||this.backendPreference==="webgl2")&&(s=R.create(e,{onLost:this.onContextLost}),s||Y(this.holder)),s?this.install(s):this.backendPreference==="webgl2"?this.none(e):(this.pending=e,(Xe??(Xe=import("./Canvas2DBackend-8wFavYdl.mjs"))).then(({Canvas2DBackend:a})=>{if(this.pending!==e)return;this.pending=null;const d=a.create(e);d?this.install(d):this.none(e)}))}none(t){t.remove(),this.host.dataset.backend="none"}install(t){this.backend=t,this.host.dataset.backend=t.kind,t.resize(this.viewport.width,this.viewport.height,this.pixelRatio),t.kind==="canvas2d"&&this.opaqueUrls.clear(),this.emit("backend",t.kind),this.invalidate()}releaseBackend(){var e;if(Y(this.holder),(e=this.pending)==null||e.remove(),this.pending=null,!this.backend)return;const t=this.backend.canvas;this.backend.dispose(),t.remove(),this.backend=null}giveBack(){this.releaseTimer&&clearTimeout(this.releaseTimer),this.releaseTimer=null,this.releaseBackend(),this.host.dataset.backend="released"}observe(){typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>this.measure(true)),this.resizeObserver.observe(this.host)),typeof IntersectionObserver<"u"&&(this.intersectionObserver=new IntersectionObserver(t=>{const e=t.some(i=>i.isIntersecting);this.setVisible(e)}),this.intersectionObserver.observe(this.host)),this.watchPixelRatio()}setVisible(t){var e;if(this.visible=t,t){this.holder.hiddenSince=null,this.releaseTimer&&clearTimeout(this.releaseTimer),this.releaseTimer=null,this.backend||this.acquireBackend();return}(e=this.holder).hiddenSince??(e.hiddenSince=lt()),!(!this.backend||this.releaseTimer)&&(this.releaseTimer=setTimeout(()=>this.giveBack(),this.options.releaseAfterMs))}measure(t=false){var d;const e=this.host.getBoundingClientRect(),i=Math.max(1,e.width),s=Math.max(1,e.height),r=ct(this.host),o=Math.min(typeof window<"u"&&window.devicePixelRatio||1,Fe);if(i===this.viewport.width&&s===this.viewport.height&&o===this.pixelRatio&&Ge(r,this.inset))return;const a=this.viewport;if(this.viewport={width:i,height:s},this.inset=r,this.pixelRatio=o,(d=this.backend)==null||d.resize(i,s,o),this.opened)if(this.atHome)this.home(true);else{const l=this.camera.current,f=i/Math.max(a.width,1);this.camera.set(this.constrain({...l,zoom:l.zoom*f}))}t?this.loop.drawNow():this.invalidate()}watchPixelRatio(){var t,e,i,s;typeof window>"u"||typeof window.matchMedia!="function"||((e=(t=this.dprQuery)==null?void 0:t.removeEventListener)==null||e.call(t,"change",this.onPixelRatioChange),this.dprQuery=window.matchMedia(`(resolution: ${window.devicePixelRatio||1}dppx)`),(s=(i=this.dprQuery).addEventListener)==null||s.call(i,"change",this.onPixelRatioChange))}setUnloadable(t){t!==this.unloadable&&(this.unloadable=t,this.emit("unloadable",t))}emit(t,e){var i;(i=this.listeners.get(t))==null||i.forEach(s=>s(e))}}const lt=()=>typeof performance<"u"?performance.now():Date.now();function Ke(n){if(typeof IntersectionObserver>"u"||typeof window>"u")return true;const{top:t,left:e,width:i,height:s}=n.getBoundingClientRect();return t+s>=0&&e+i>=0&&t<=window.innerHeight&&e<=window.innerWidth}function Ve(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function D(n){return Object.fromEntries(Object.entries(n).filter(([,t])=>t!==void 0))}const si=(n,t)=>new Ze(n,t);export{Ht as b,Nt as h,Ce as p,si as r};
|
|
22
|
+
`;class R{constructor(t,e,i){h(this,"kind","webgl2");h(this,"canvas");h(this,"maxTextureSize");h(this,"gl");h(this,"program",null);h(this,"vao",null);h(this,"uniforms",{matrix:null,crop:null,opacity:null,texture:null});h(this,"textures",new Map);h(this,"cssWidth",1);h(this,"cssHeight",1);h(this,"pixelRatio",1);h(this,"matrixScratch",new Float32Array(9));h(this,"isLost",false);h(this,"callbacks");h(this,"handleLost",()=>{var t2,e2;this.isLost=true,this.textures.clear(),(e2=(t2=this.callbacks).onLost)==null||e2.call(t2)});this.canvas=t,this.gl=e,this.callbacks=i,this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE)||4096;const s=Zt(e,Gt,Xt);this.program=s,this.uniforms={matrix:e.getUniformLocation(s,"u_matrix"),crop:e.getUniformLocation(s,"u_crop"),opacity:e.getUniformLocation(s,"u_opacity"),texture:e.getUniformLocation(s,"u_texture")};const r=e.createVertexArray();e.bindVertexArray(r);const o=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),e.STATIC_DRAW);const a=e.getAttribLocation(s,"a_position");e.enableVertexAttribArray(a),e.vertexAttribPointer(a,2,e.FLOAT,false,0,0),e.bindVertexArray(null),this.vao=r,e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,true),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,false),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.BROWSER_DEFAULT_WEBGL),t.addEventListener("webglcontextlost",this.handleLost)}static create(t,e={}){let i=null;try{i=t.getContext("webgl2",{alpha:true,premultipliedAlpha:true,antialias:false,depth:false,stencil:false,preserveDrawingBuffer:false})}catch{i=null}if(!i||typeof i.createShader!="function")return null;try{return new R(t,i,e)}catch{return null}}resize(t,e,i){this.cssWidth=Math.max(1,t),this.cssHeight=Math.max(1,e),this.pixelRatio=i;const s=Math.max(1,Math.round(t*i)),r=Math.max(1,Math.round(e*i));this.canvas.width!==s&&(this.canvas.width=s),this.canvas.height!==r&&(this.canvas.height=r)}begin(){if(this.isLost)return;const t=this.gl;t.viewport(0,0,this.canvas.width,this.canvas.height),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.useProgram(this.program),t.bindVertexArray(this.vao),t.activeTexture(t.TEXTURE0),t.uniform1i(this.uniforms.texture,0)}draw(t){if(this.isLost||!Nt(t.source))return"skipped";const e=this.gl,i=this.upload(t);if(i==="tainted")return"tainted";if(!i)return"skipped";const s=t.crop??{x:0,y:0,width:t.width,height:t.height},r=Ht(t,this.pixelRatio),o=k(t.transform,L(s.x,s.y),_(s.width+r.x,s.height+r.y));return e.uniformMatrix3fv(this.uniforms.matrix,false,Mt(o,this.cssWidth,this.cssHeight,this.matrixScratch)),e.uniform4f(this.uniforms.crop,s.x/t.width,s.y/t.height,s.width/t.width,s.height/t.height),e.uniform1f(this.uniforms.opacity,t.opacity),e.bindTexture(e.TEXTURE_2D,i.texture),e.drawArrays(e.TRIANGLE_STRIP,0,4),"drawn"}end(){this.isLost||this.gl.bindVertexArray(null)}has(t){return!this.isLost&&this.textures.has(t)}release(t){const e=this.textures.get(t);e&&(this.isLost||this.gl.deleteTexture(e.texture),this.textures.delete(t))}dispose(){var t;if(this.canvas.removeEventListener("webglcontextlost",this.handleLost),!this.isLost){for(const e of[...this.textures.keys()])this.release(e);this.program&&this.gl.deleteProgram(this.program),this.vao&&this.gl.deleteVertexArray(this.vao)}this.textures.clear(),(t=this.gl.getExtension("WEBGL_lose_context"))==null||t.loseContext(),this.isLost=true}upload(t){const e=this.gl,i=this.textures.get(t.key);if(i&&i.width===t.width&&i.height===t.height)return i;const s=(i==null?void 0:i.texture)??e.createTexture();if(!s)return null;e.bindTexture(e.TEXTURE_2D,s);try{e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source)}catch(o){if(i||e.deleteTexture(s),Kt(o))return"tainted";throw o}e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);const r={texture:s,width:t.width,height:t.height};return this.textures.set(t.key,r),r}}function Zt(n,t,e){const i=et(n,n.VERTEX_SHADER,t),s=et(n,n.FRAGMENT_SHADER,e),r=n.createProgram();if(!r)throw new Error("Could not create WebGL program");if(n.attachShader(r,i),n.attachShader(r,s),n.linkProgram(r),n.deleteShader(i),n.deleteShader(s),!n.getProgramParameter(r,n.LINK_STATUS)){const o=n.getProgramInfoLog(r);throw n.deleteProgram(r),new Error(`Could not link WebGL program: ${o}`)}return r}function et(n,t,e){const i=n.createShader(t);if(!i)throw new Error("Could not create WebGL shader");if(n.shaderSource(i,e),n.compileShader(i),!n.getShaderParameter(i,n.COMPILE_STATUS)){const s=n.getShaderInfoLog(i);throw n.deleteShader(i),new Error(`Could not compile WebGL shader: ${s}`)}return i}function Kt(n){return typeof n=="object"&&n!==null&&n.name==="SecurityError"}const Vt=.09,qt=1e-4,it=.05,Yt=1e-4;class $t{constructor(t,e=Vt){h(this,"current");h(this,"target",null);h(this,"timeConstant");this.current={...t},this.timeConstant=e}get destination(){return this.target?{...this.target.state}:{...this.current}}set(t){this.current={...t},this.target=null}animateTo(t,e,i=false){if(i||this.timeConstant===0){this.set(t.state);return}let s=t.anchor;if(s){const r=S(s.world,s.screen,t.state.zoom,t.state.rotation,e);Math.hypot(r.x-t.state.x,r.y-t.state.y)*t.state.zoom>it&&(s=void 0)}this.target={state:{...t.state},anchor:s}}stop(){this.target=null}step(t,e){const i=this.target;if(!i)return false;const s=1-Math.exp(-Math.max(t,0)/this.timeConstant),r=this.current,o=i.state,a=Math.exp(Math.log(r.zoom)+(Math.log(o.zoom)-Math.log(r.zoom))*s),d=r.rotation+(o.rotation-r.rotation)*s;let l;return i.anchor?l=S(i.anchor.world,i.anchor.screen,a,d,e):l={x:r.x+(o.x-r.x)*s,y:r.y+(o.y-r.y)*s},this.current={x:l.x,y:l.y,zoom:a,rotation:d},Math.abs(Math.log(o.zoom/a))<qt&&Math.abs(o.rotation-d)<Yt&&Math.hypot(o.x-l.x,o.y-l.y)*a<it?(this.current={...o},this.target=null,false):true}}const H={clickToZoom:true,dblClickToZoom:true,pinchToZoom:true,scrollToZoom:false,navigable:true},U=2,st=1.5,nt=.1,Qt=100,jt=200,Jt=.002,te=.01;class ee{constructor(t,e,i=H){h(this,"pointers",new Map);h(this,"samples",[]);h(this,"down",null);h(this,"pinch",null);h(this,"lastTap",null);h(this,"lastPointerType","");h(this,"penHovers",false);h(this,"onPointerDown",t2=>{var i2,s;if(this.lastPointerType=t2.pointerType,t2.pointerType==="mouse"&&t2.button!==0||Q(t2.target,this.element))return;(s=(i2=this.element).setPointerCapture)==null||s.call(i2,t2.pointerId);const e2=this.local(t2);this.pointers.set(t2.pointerId,e2),this.pointers.size===1?(this.down={x:e2.x,y:e2.y,t:t2.timeStamp,moved:false},this.samples=[{x:e2.x,y:e2.y,t:t2.timeStamp}],this.target.setInteracting(true)):this.pointers.size===2&&(this.pinch=this.pinchState(),this.down&&(this.down.moved=true))});h(this,"onPointerMove",t2=>{var s;Bt(t2)&&(this.penHovers=true);const e2=this.pointers.get(t2.pointerId);if(!e2)return;const i2=this.local(t2);if(this.pointers.set(t2.pointerId,i2),this.pointers.size===1){const r=i2.x-e2.x,o=i2.y-e2.y;this.down&&Math.hypot(i2.x-this.down.x,i2.y-this.down.y)>Ot&&(this.down.moved=true),(s=this.down)!=null&&s.moved&&this.options.navigable&&this.target.panBy(r,o,false),this.samples.push({x:i2.x,y:i2.y,t:t2.timeStamp});const a=t2.timeStamp-Qt;for(;this.samples.length>2&&this.samples[0].t<a;)this.samples.shift()}else if(this.pointers.size===2&&this.pinch&&this.options.navigable){const r=this.pinchState();this.options.pinchToZoom&&this.pinch.distance>0&&this.target.zoomBy(r.distance/this.pinch.distance,r.mid,false),this.target.panBy(r.mid.x-this.pinch.mid.x,r.mid.y-this.pinch.mid.y,false),this.pinch=r}});h(this,"onPointerUp",t2=>{var d,l,f,m,c,u;if(!this.pointers.has(t2.pointerId))return;if(this.pointers.delete(t2.pointerId),(l=(d=this.element).releasePointerCapture)==null||l.call(d,t2.pointerId),this.pointers.size===1){this.pinch=null;const[p]=this.pointers.values();this.samples=[{...p,t:t2.timeStamp}];return}if(this.pointers.size>0)return;const e2=this.down;if(this.down=null,this.pinch=null,this.target.setInteracting(false),!e2)return;const i2=this.local(t2);if(!e2.moved&&t2.type==="pointerup"&&t2.timeStamp-e2.t<j){if((m=(f=this.target).dismiss)!=null&&m.call(f)){this.lastTap=null;return}if(J(t2.pointerType,this.penHovers)){const p=this.lastTap;this.options.navigable&&(this.options.clickToZoom||this.options.dblClickToZoom)&&p&&t2.timeStamp-p.t<j&&Math.hypot(i2.x-p.x,i2.y-p.y)<Ct?(this.lastTap=null,this.zoomIn(i2)):this.lastTap={x:i2.x,y:i2.y,t:t2.timeStamp};return}this.options.clickToZoom&&this.options.navigable?t2.shiftKey?this.target.zoomBy(1/U,i2,true):this.zoomIn(i2):(u=(c=this.target).tap)==null||u.call(c,i2);return}if(!this.options.navigable)return;const r=this.samples[0],o=this.samples[this.samples.length-1],a=((o==null?void 0:o.t)??0)-((r==null?void 0:r.t)??0);if(r&&o&&a>0&&t2.timeStamp-o.t<50){const p=(o.x-r.x)/a*1e3,w=(o.y-r.y)/a*1e3;Math.hypot(p,w)>jt&&this.target.flick(p,w)}});h(this,"onDoubleClick",t2=>{this.options.navigable&&(this.options.clickToZoom||!this.options.dblClickToZoom||J(this.lastPointerType,this.penHovers)||Q(t2.target,this.element)||(t2.shiftKey?this.target.zoomBy(1/U,this.local(t2),true):this.zoomIn(this.local(t2))))});h(this,"onWheel",t2=>{const e2=t2.ctrlKey;if(!this.options.navigable||!e2&&!this.options.scrollToZoom||!e2&&Ut(t2.target,this.element,t2.deltaY))return;t2.preventDefault();const i2=ie(t2),s=e2?te:Jt;this.target.zoomBy(Math.exp(-i2*s),this.local(t2),!e2)});h(this,"onKeyDown",t2=>{if(t2.target!==this.element||!this.options.navigable||t2.altKey||t2.metaKey||t2.ctrlKey)return;const e2=this.element.getBoundingClientRect(),i2=e2.width*nt*(t2.shiftKey?3:1),s=e2.height*nt*(t2.shiftKey?3:1);switch(t2.key){case"ArrowLeft":this.target.panBy(i2,0,true);break;case"ArrowRight":this.target.panBy(-i2,0,true);break;case"ArrowUp":this.target.panBy(0,s,true);break;case"ArrowDown":this.target.panBy(0,-s,true);break;case"+":case"=":this.target.zoomBy(st,void 0,true);break;case"-":case"_":this.target.zoomBy(1/st,void 0,true);break;case"0":this.target.home();break;case"r":this.target.rotateBy(90);break;case"R":this.target.rotateBy(-90);break;default:return}t2.preventDefault()});this.element=t,this.target=e,this.options=i,t.addEventListener("pointerdown",this.onPointerDown),t.addEventListener("pointermove",this.onPointerMove),t.addEventListener("pointerup",this.onPointerUp),t.addEventListener("pointercancel",this.onPointerUp),t.addEventListener("dblclick",this.onDoubleClick),t.addEventListener("wheel",this.onWheel,{passive:false}),t.addEventListener("keydown",this.onKeyDown)}setOptions(t){this.options=t}dispose(){const t=this.element;t.removeEventListener("pointerdown",this.onPointerDown),t.removeEventListener("pointermove",this.onPointerMove),t.removeEventListener("pointerup",this.onPointerUp),t.removeEventListener("pointercancel",this.onPointerUp),t.removeEventListener("dblclick",this.onDoubleClick),t.removeEventListener("wheel",this.onWheel),t.removeEventListener("keydown",this.onKeyDown)}local(t){const e=this.element.getBoundingClientRect();return{x:t.clientX-e.left,y:t.clientY-e.top}}zoomIn(t){var e,i;(i=(e=this.target).atMaxZoom)!=null&&i.call(e)?this.target.home():this.target.zoomBy(U,t,true)}pinchState(){const[t,e]=[...this.pointers.values()];return{distance:Math.hypot(e.x-t.x,e.y-t.y),mid:{x:(t.x+e.x)/2,y:(t.y+e.y)/2}}}}function ie(n){return n.deltaMode===1?n.deltaY*16:n.deltaMode===2?n.deltaY*400:n.deltaY}class mt extends Error{constructor(t,e,i){super(t),this.url=e,this.status=i,this.name="ImageLoadError"}}const rt=new Set;async function se(n,t={}){const{signal:e,maxTextureSize:i,request:s}=t,r=zt(s),o=re(n);if(typeof createImageBitmap!="function"||typeof fetch!="function")return z(n,{signal:e,cors:true,withCredentials:r});if(o&&rt.has(o))return z(n,{signal:e,cors:false,withCredentials:r});let a;try{a=await Wt(s,n,{mode:"cors",signal:e})}catch(c){if(oe(c,e))throw c;const u=await z(n,{signal:e,cors:false,withCredentials:r});return o&&rt.add(o),u}if(!a.ok)throw new mt(`Image request failed with ${a.status}`,n,a.status);const d=await a.blob();let l=await ne(d);const f=l.width,m=l.height;if(i&&(l.width>i||l.height>i)){const c=i/Math.max(l.width,l.height),u=await createImageBitmap(l,{resizeWidth:Math.max(1,Math.floor(l.width*c)),resizeHeight:Math.max(1,Math.floor(l.height*c)),resizeQuality:"high"});l.close(),l=u}if(e!=null&&e.aborted)throw l.close(),G();return{kind:"bitmap",source:l,width:l.width,height:l.height,naturalWidth:f,naturalHeight:m,opaque:false}}async function ne(n){const t={imageOrientation:"from-image",premultiplyAlpha:"premultiply",colorSpaceConversion:"default"};try{return await createImageBitmap(n,t)}catch(e){if(e instanceof TypeError)return createImageBitmap(n);throw e}}function z(n,{signal:t,cors:e,withCredentials:i}){return new Promise((s,r)=>{if(t!=null&&t.aborted){r(G());return}const o=new Image;o.decoding="async",e&&(o.crossOrigin=i?"use-credentials":"anonymous");const a=()=>{o.onload=null,o.onerror=null,t==null||t.removeEventListener("abort",d)},d=()=>{a(),o.src="",r(G())};t==null||t.addEventListener("abort",d),o.onload=()=>{a();const l=()=>s({kind:"element",source:o,width:o.naturalWidth,height:o.naturalHeight,naturalWidth:o.naturalWidth,naturalHeight:o.naturalHeight,opaque:!e});typeof o.decode=="function"?o.decode().then(l,l):l()},o.onerror=()=>{a(),r(new mt("Image failed to load",n))},o.src=n})}function re(n){var t;try{return new URL(n,(t=globalThis.location)==null?void 0:t.href).origin}catch{return null}}function oe(n,t){return!!(t!=null&&t.aborted)||typeof n=="object"&&n!==null&&n.name==="AbortError"}function G(){const n=new Error("Aborted");return n.name="AbortError",n}function ot(n){n.kind==="bitmap"&&n.source.close()}const ae=192*1024*1024,he=6,ce=2;class le{constructor(t){h(this,"entries",new Map);h(this,"inFlight",0);h(this,"frame",0);h(this,"bytes",0);h(this,"wanted",[]);h(this,"disposed",false);h(this,"budget");h(this,"maxInFlight");this.options=t,this.budget=t.byteBudget??ae,this.maxInFlight=t.maxInFlight??he}get(t){const e=this.entries.get(t);if((e==null?void 0:e.state)==="ready")return e.lastUsed=this.frame,e.image}has(t){var e;return((e=this.entries.get(t))==null?void 0:e.state)==="ready"}failed(t){var e;return((e=this.entries.get(t))==null?void 0:e.state)==="failed"}get byteSize(){return this.bytes}get pending(){return this.inFlight}seed(t,e){var s;const i=this.entries.get(t);(i==null?void 0:i.state)!=="ready"&&((s=i==null?void 0:i.controller)==null||s.abort(),this.entries.set(t,{url:t,state:"ready",image:e,bytes:W(e),lastUsed:this.frame,attempts:0,pinned:false,waiters:(i==null?void 0:i.waiters)??[]}),this.bytes+=W(e),this.flushWaiters(t))}prefetch(t){return Promise.all(t.map(e=>new Promise(i=>{const s=this.entries.get(e.url);if(s&&s.state!=="loading")return i();if(s){s.waiters.push(i);return}this.start({...e,priority:-1},i)}))).then(()=>{})}update(t){if(this.disposed)return;this.frame++;const e=new Set(t.map(i=>i.url));this.wanted=[...t].sort((i,s)=>i.priority-s.priority);for(const i of this.entries.values())i.state==="loading"&&!i.pinned&&!e.has(i.url)&&i.controller&&(i.controller.abort(),this.entries.delete(i.url),this.inFlight--);for(const i of this.wanted){const s=this.entries.get(i.url);s&&(s.lastUsed=this.frame)}this.pump(),this.evict(e)}dispose(){var t;this.disposed=true;for(const e of this.entries.values())(t=e.controller)==null||t.abort(),this.flushWaiters(e.url);this.entries.clear(),this.bytes=0}forEachReady(t){for(const e of this.entries.values())e.state==="ready"&&e.image&&t(e.url,e.image)}pump(){for(const t of this.wanted){if(this.inFlight>=this.maxInFlight)break;this.entries.has(t.url)||this.start(t)}}start(t,e){const i=new AbortController,s={url:t.url,state:"loading",bytes:0,lastUsed:this.frame,attempts:0,controller:i,pinned:!!e,waiters:e?[e]:[]};this.entries.set(t.url,s),this.inFlight++,this.attempt(s,t,i,t.url)}attempt(t,e,i,s){t.attempts++,this.options.load(s,i.signal).then(r=>{if(this.disposed||this.entries.get(t.url)!==t){ot(r);return}t.state="ready",t.image=r,t.bytes=W(r),t.controller=void 0,t.pinned=false,this.bytes+=t.bytes,this.settle(t)},r=>{if(!(i.signal.aborted||this.disposed)&&this.entries.get(t.url)===t){if(t.attempts<ce&&!de(r,e)){this.attempt(t,e,i,e.fallbackUrl??e.url);return}t.state="failed",t.controller=void 0,t.pinned=false,this.settle(t)}})}settle(t){this.inFlight--,this.flushWaiters(t.url),this.options.onSettled(),this.pump()}flushWaiters(t){const e=this.entries.get(t);if(!e)return;const i=e.waiters;e.waiters=[],i.forEach(s=>s())}evict(t){if(this.bytes<=this.budget)return;const e=[...this.entries.values()].filter(i=>i.state==="ready"&&!t.has(i.url)).sort((i,s)=>i.lastUsed-s.lastUsed);for(const i of e){if(this.bytes<=this.budget)break;this.entries.delete(i.url),this.bytes-=i.bytes,i.image&&ot(i.image),this.options.onEvict(i.url)}}}function W(n){return n.width*n.height*4}function de(n,t){if(t.fallbackUrl)return false;const e=n==null?void 0:n.status;return typeof e=="number"&&e>=400&&e<500&&e!==408&&e!==429}const ue=.1;class fe{constructor(t,e=s=>requestAnimationFrame(s),i=s=>cancelAnimationFrame(s)){h(this,"handle",0);h(this,"last",0);h(this,"disposed",false);h(this,"frame",t2=>{if(this.handle=0,this.disposed)return;const e2=this.last?Math.min((t2-this.last)/1e3,ue):1/60;this.last=t2,this.tick(e2,t2)?this.invalidate():this.last=0});this.tick=t,this.raf=e,this.caf=i}invalidate(){this.disposed||this.handle||(this.handle=this.raf(this.frame))}drawNow(){this.disposed||(this.handle&&this.caf(this.handle),this.frame(performance.now()))}dispose(){this.disposed=true,this.handle&&this.caf(this.handle),this.handle=0}}const me=2*1024*1024;function pe(n,t,e=me){const i=new Set;let s=e,r=false;return{get deferred(){return r},getTile(o){const a=n(o);if(!a||a.kind==="media"||a.opaque||i.has(o)||t(o))return a;const d=a.width*a.height*4;if(i.size>0&&d>s){r=true;return}return s-=d,i.add(o),a}}}function ge(n){const t=/^(!)?(\d+(?:\.\d+)?)$/.exec((n==null?void 0:n.trim())??"");if(!t)return null;const e=Number(t[2]);if(e>360)return null;const i=e%360,s=!!t[1];return i||s?{degrees:i,mirror:s}:null}function we(n,t,e){if(!n)return null;let i=n.trim().replace(/^xywh=/,""),s=false;i.startsWith("pct:")?(s=true,i=i.slice(4)):i.startsWith("pixel:")&&(i=i.slice(6));const r=i.split(",").map(Number);if(r.length!==4||r.some(p=>!Number.isFinite(p)))return null;let[o,a,d,l]=r;s&&(o=o/100*t,a=a/100*e,d=d/100*t,l=l/100*e);const f=Math.max(0,o),m=Math.max(0,a),c=Math.min(t,o+d),u=Math.min(e,a+l);return c<=f||u<=m?null:{x:f,y:m,width:c-f,height:u-m}}const F=512,ye=16e6;function pt(n,t,e){return{width:t,height:e,levels:[{scaleFactor:1,width:t,height:e,tileWidth:t,tileHeight:e,cols:1,rows:1}],tile:s=>({...s,url:n,region:{x:0,y:0,width:t,height:e}})}}function xe(n){const{width:t,height:e}=n,i=[],s=n.regionByPx&&n.sizeByW,r=(c,u,p)=>{const w=Math.ceil(t/c),y=Math.ceil(e/c);return{scaleFactor:c,width:w,height:y,tileWidth:u,tileHeight:p,cols:Math.ceil(w/u),rows:Math.ceil(y/p)}},o=(c,u)=>({scaleFactor:t/c,width:c,height:u,tileWidth:c,tileHeight:u,cols:1,rows:1,whole:true}),a=n.tiles[0];if(a)for(const c of a.scaleFactors)i.push(r(c,a.width,a.height));else if(s)for(let c=1;;c*=2){const u=r(c,F,F);if(i.push(u),u.cols===1&&u.rows===1)break}const d=Math.max(0,...i.map(c=>c.scaleFactor));for(const c of n.sizes){const u=t/c.width;ve(n,c.width,c.height)&&u>d+1e-9&&i.push(o(c.width,c.height))}const l=i.reduce((c,u)=>!c||u.scaleFactor>c.scaleFactor?u:c,null);if(l&&l.cols*l.rows>1&&n.sizeByW){const c=Math.max(t,e)/F;i.push(o(Math.ceil(t/c),Math.ceil(e/c)))}(!i.length||!a&&!s&&t*e<=ye)&&(i.some(c=>c.scaleFactor===1)||i.push(o(t,e)));const f=be(i).sort((c,u)=>u.scaleFactor-c.scaleFactor),m=Ft(n);return{width:t,height:e,levels:f,tile(c){const u=f[c.level],p=u.scaleFactor,w=u.cols===1&&u.rows===1;let y,v,b;if(w)y={x:0,y:0,width:t,height:e},v=u.width,b=u.height;else{const I=Math.round(c.col*u.tileWidth*p),E=Math.round(c.row*u.tileHeight*p);y={x:I,y:E,width:Math.min(Math.round(u.tileWidth*p),t-I),height:Math.min(Math.round(u.tileHeight*p),e-E)},v=Math.ceil(y.width/p),b=Math.ceil(y.height/p)}return{...c,region:y,url:tt(n,y,v,b),fallbackUrl:m?tt(n,y,v,b,m):void 0}}}}function ve(n,t,e){return!(n.maxWidth&&t>n.maxWidth||n.maxHeight&&e>n.maxHeight||n.maxArea&&t*e>n.maxArea)}function be(n){const t=new Map;for(const e of n){const i=`${e.width}x${e.height}`,s=t.get(i);(!s||s.cols*s.rows<e.cols*e.rows)&&t.set(i,e)}return[...t.values()]}function Te(n,t){const e=n.levels;for(let i=0;i<e.length;i++)if(e[i].scaleFactor<=t*(1+1e-6))return i;return e.length-1}function T(n,t,e){const i=n.levels[t],s=i.tileWidth*i.scaleFactor,r=i.tileHeight*i.scaleFactor,o=Math.max(0,e.x),a=Math.max(0,e.y),d=Math.min(n.width,e.x+e.width),l=Math.min(n.height,e.y+e.height);if(d<=o||l<=a)return[];const f=Math.max(0,Math.floor(o/s)),m=Math.min(i.cols-1,Math.floor((d-1e-9)/s)),c=Math.max(0,Math.floor(a/r)),u=Math.min(i.rows-1,Math.floor((l-1e-9)/r)),p=[];for(let w=c;w<=u;w++)for(let y=f;y<=m;y++)p.push({level:t,col:y,row:w});return p}async function Ee(n,t){if(n.media)return Me(n,n.media);let e=null,i=null;if(n.service)try{e=xe(await Dt(n.service,t.infoOptions))}catch(c){i=c}if(!e){if(!n.url)throw i??new Error("Image has no source");const c=await t.loadStatic(n.url);t.cache.seed(n.url,c),e=pt(n.url,c.naturalWidth,c.naturalHeight)}const s=n.width&&n.height&&n.width>0&&n.height>0?{width:n.width,height:n.height}:{width:e.width,height:e.height},r=we(n.region,s.width,s.height)??{x:0,y:0,width:s.width,height:s.height},o=e.width/s.width,a=e.height/s.height,d={x:r.x*o,y:r.y*a,width:r.width*o,height:r.height*a},l=ge(n.rotation),f=l?ke(d,l):void 0,m={id:n.id,spec:n,pyramid:e,size:s,clip:d,contentClip:r,rect:{x:0,y:0,width:r.width,height:r.height},...f?{turn:f}:{}};return await t.cache.prefetch(T(e,0,d).map(c=>{const u=e.tile(c);return{url:u.url,fallbackUrl:u.fallbackUrl}})),m}const gt="media:";function Me(n,t){var a,d;const e=n.width||((a=n.placement)==null?void 0:a.width)||t.element.videoWidth||1600,i=n.height||((d=n.placement)==null?void 0:d.height)||t.element.videoHeight||900,s=`${gt}${n.id}`,r={width:e,height:i},o={x:0,y:0,width:e,height:i};return{id:n.id,spec:n,pyramid:pt(s,e,i),media:{kind:"media",source:t.element,width:e,height:i,naturalWidth:e,naturalHeight:i},size:r,clip:o,contentClip:o,rect:{...o}}}function ke(n,{degrees:t,mirror:e}){const i=t*Math.PI/180,s=f=>Math.abs(f)<1e-12?0:f,r=s(Math.cos(i)),o=s(Math.sin(i)),a=Math.abs(n.width*r)+Math.abs(n.height*o),d=Math.abs(n.width*o)+Math.abs(n.height*r),l=k(L(a/2,d/2),{a:r,b:o,c:-o,d:r,e:0,f:0},_(e?-1:1,1),L(-(n.x+n.width/2),-(n.y+n.height/2)));return{orient:l,unorient:kt(l),width:a,height:d}}function wt(n){var t;return((t=n.turn)==null?void 0:t.orient)??L(-n.clip.x,-n.clip.y)}function _e(n,t){const{turn:e,clip:i}=n;if(!e)return{...t,x:i.x+t.x,y:i.y+t.y};const s=ft(e.unorient,t),r=Math.max(s.x,i.x),o=Math.max(s.y,i.y);return{x:r,y:o,width:Math.max(0,Math.min(s.x+s.width,i.x+i.width)-r),height:Math.max(0,Math.min(s.y+s.height,i.y+i.height)-o)}}function Le(n,t){const{turn:e,clip:i}=n;return e?ut(e.unorient,t):{x:i.x+t.x,y:i.y+t.y}}function at(n){const{turn:t,clip:e,contentClip:i}=n;return t?{width:t.width*i.width/e.width,height:t.height*i.height/e.height}:i}function Pe(n){if(!n.length)return null;if(n.every(i=>i.spec.placement)){for(const i of n)i.rect={...i.spec.placement};return dt(n.map(i=>i.rect))}const t=at(n[0]).height;let e=0;for(const i of n){const s=at(i),r=s.width*t/s.height;i.rect={x:e,y:0,width:r,height:t},e+=r}return{x:0,y:0,width:e,height:t}}function B(n){const t=n.turn??n.clip;return{x:n.rect.width/t.width,y:n.rect.height/t.height}}function Ie(n){const t=B(n);return k(L(n.rect.x,n.rect.y),_(t.x,t.y),wt(n))}function Ae(n,t){var e,i;return n.service===t.service&&n.url===t.url&&n.width===t.width&&n.height===t.height&&n.region===t.region&&n.rotation===t.rotation&&((e=n.media)==null?void 0:e.element)===((i=t.media)==null?void 0:i.element)&&JSON.stringify(n.placement)===JSON.stringify(t.placement)}const Se=1e7,Re=15e6,Be=2e7,Oe=2;function Ce(n){const{items:t,camera:e,viewport:i,pixelRatio:s,getTile:r,destination:o}=n,a=It(e,i),d=[],l=[],f=[],m=(c,u,p)=>{const w=c.tile(u);l.push({url:w.url,fallbackUrl:w.fallbackUrl,priority:p})};for(const c of t){const{pyramid:u,clip:p,rect:w}=c,y=B(c);if(n.wantOverview)for(const g of T(u,0,p))m(u,g,Be);const v=ht(c,e,i,s),b=o?ht(c,o,i,s):v;if(f.push((v==null?void 0:v.target)??-1),!v&&!b)continue;const I=g=>x=>{const P=u.tile(x).region;return Math.hypot(P.x+P.width/2-g.x,P.y+P.height/2-g.y)};if(b){const g=I(b.center);for(const x of T(u,0,b.area))m(u,x,g(x)/1e3);if(b.target>0)for(const x of T(u,b.target,b.area))m(u,x,Se+g(x))}if(!v)continue;const{area:E,target:M}=v,Z=I(v.center),O=T(u,0,E),K=M===0?[]:T(u,M,E);if(b!==v){for(const x of O)m(u,x,Z(x)/1e3);const g=M-Oe;if(g>0)for(const x of T(u,g,E))m(u,x,Re+Z(x))}if(c.spec.hidden)continue;const yt=(M===0?O:K).every(g=>r(u.tile(g).url)!==void 0)?[M]:Array.from({length:M+1},(g,x)=>x),xt=k(a,L(w.x,w.y),_(y.x,y.y),wt(c));for(const g of yt){const x=g===0?O:g===M?K:T(u,g,E),P=u.levels[g].cols*u.levels[g].rows>1;for(const vt of x){const C=u.tile(vt),V=r(C.url);if(!V)continue;const q=Ue(c,C.region,V,xt,P);q&&d.push({...q,url:C.url})}}}return l.sort((c,u)=>c.priority-u.priority),{draws:d,wants:ze(l),levels:f}}function ht(n,t,e,i){const{pyramid:s,rect:r}=n,o=N(t,e);if(!_t(o,r))return null;const a=B(n),d=Math.max(o.x,r.x),l=Math.max(o.y,r.y),f=Math.min(o.x+o.width,r.x+r.width),m=Math.min(o.y+o.height,r.y+r.height),c=1/(a.x*t.zoom*i);return{area:_e(n,{x:(d-r.x)/a.x,y:(l-r.y)/a.y,width:(f-d)/a.x,height:(m-l)/a.y}),center:Le(n,{x:(t.x-r.x)/a.x,y:(t.y-r.y)/a.y}),target:Te(s,c)}}function Ue(n,t,e,i,s){const{clip:r}=n,o=Math.max(t.x,r.x),a=Math.max(t.y,r.y),d=Math.min(t.x+t.width,r.x+r.width),l=Math.min(t.y+t.height,r.y+r.height);if(d<=o||l<=a)return null;const f=e.width/t.width,m=e.height/t.height,c=1e-6;return{item:n,image:e,transform:k(i,L(t.x,t.y),_(1/f,1/m)),crop:{x:(o-t.x)*f,y:(a-t.y)*m,width:(d-o)*f,height:(l-a)*m},bleed:{right:s&&d<r.x+r.width-c,bottom:s&&l<r.y+r.height-c}}}function ze(n){const t=new Set;return n.filter(e=>t.has(e.url)?false:(t.add(e.url),true))}const We={maxZoomPixelRatio:1.1,minZoomImageRatio:.9,animationTime:.09,request:void 0,byteBudget:192*1024*1024,maxInFlight:6,releaseAfterMs:2e3},Fe=2,De=3,Ne=.1,He=1e-6,X={top:0,right:0,bottom:0,left:0};function ct(n,t="padding"){if(!n||typeof getComputedStyle!="function")return X;const e=getComputedStyle(n),i=s=>parseFloat(e.getPropertyValue(`${t}-${s}`))||0;return{top:i("top"),right:i("right"),bottom:i("bottom"),left:i("left")}}const Ge=(n,t)=>n.top===t.top&&n.right===t.right&&n.bottom===t.bottom&&n.left===t.left;let Xe;class Ze{constructor(t,e={}){h(this,"host");h(this,"overlays",null);h(this,"options");h(this,"backend",null);h(this,"backendPreference");h(this,"contextLosses",0);h(this,"holder",{hiddenSince:null,release:()=>this.giveBack()});h(this,"visible",true);h(this,"dom",null);h(this,"domAsked",false);h(this,"pending",null);h(this,"camera");h(this,"loop");h(this,"gestures");h(this,"gestureOptions",{});h(this,"cache");h(this,"navigator",null);h(this,"navigatorAsked",0);h(this,"viewport",{width:1,height:1});h(this,"inset",X);h(this,"pixelRatio",1);h(this,"items",[]);h(this,"worldBounds",null);h(this,"contentVersion",0);h(this,"opaqueUrls",new Set);h(this,"mediaByKey",new Map);h(this,"detachMedia",[]);h(this,"opened",false);h(this,"atHome",true);h(this,"lastEmitted",null);h(this,"generation",0);h(this,"listeners",new Map);h(this,"unloadable",false);h(this,"resizeObserver",null);h(this,"intersectionObserver",null);h(this,"releaseTimer",null);h(this,"dprQuery",null);h(this,"disposed",false);h(this,"dismisser",null);h(this,"tick",t2=>{var d,l;if(this.disposed)return false;const e2=this.camera.step(t2,this.viewport),i=this.camera.current,s=this.backend,r=pe(this.getTile,f=>s?s.has(f):true),o=Ce({items:this.items,camera:i,viewport:this.viewport,pixelRatio:this.pixelRatio,getTile:r.getTile,wantOverview:!!this.navigator,destination:e2?this.camera.destination:void 0}),a=o.wants.filter(f=>!f.url.startsWith(gt));return this.cache.update(a),o.draws.length?this.setUnloadable(false):a.length&&a.every(f=>this.cache.failed(f.url))&&this.setUnloadable(true),this.paint(o.draws),(d=this.overlays)==null||d.position(i,this.viewport),(l=this.navigator)==null||l.render(this.items.filter(f=>!f.spec.hidden),this.worldBounds,N(i,this.viewport),this.pixelRatio,this.getTile,this.contentVersion),(!this.lastEmitted||!Rt(this.lastEmitted,i))&&(this.lastEmitted={...i},this.opened&&this.emit("viewport")),e2||r.deferred});h(this,"getTile",t2=>this.mediaByKey.get(t2)??this.cache.get(t2));h(this,"onContextLost",()=>{this.contextLosses+=1,this.releaseBackend(),this.visible?this.acquireBackend(false):this.host.dataset.backend="released"});h(this,"onPixelRatioChange",()=>{this.measure(),this.watchPixelRatio()});this.host=t,this.backendPreference=e.backend??"auto",this.options={...We,...D(e)},Ve()&&(this.options.animationTime=0),this.camera=new $t({x:0,y:0,zoom:1,rotation:0},this.options.animationTime),this.loop=new fe(this.tick),this.gestureOptions=D(e.gestures??{}),this.gestures=new ee(t,this,{...H,...this.gestureOptions}),this.cache=new le({load:(i,s)=>this.loadTile(i,s),onSettled:()=>{this.contentVersion++,this.invalidate()},onEvict:i=>{var s;return(s=this.backend)==null?void 0:s.release(i)},byteBudget:this.options.byteBudget,maxInFlight:this.options.maxInFlight}),this.visible=Ke(t),this.visible?this.acquireBackend():this.holder.hiddenSince=lt(),this.measure(),this.observe()}get backendKind(){var t;return((t=this.backend)==null?void 0:t.kind)??"none"}get isOpen(){return this.opened}get isAtHome(){return this.atHome}on(t,e){let i=this.listeners.get(t);return i||(i=new Set,this.listeners.set(t,i)),i.add(e),()=>i==null?void 0:i.delete(e)}async setImages(t,{world:e,fit:i=false}={}){const s=++this.generation,r=new Map(this.items.map(f=>[f.id,f])),o=await Promise.allSettled(t.map(f=>{const m=r.get(f.id);return m&&Ae(m.spec,f)?(m.spec=f,Promise.resolve(m)):Ee(f,{cache:this.cache,loadStatic:c=>this.loadTile(c),infoOptions:{request:this.options.request}})}));if(s!==this.generation||this.disposed)return;const a=o.filter(f=>f.status==="fulfilled").map(f=>f.value),d=o.filter(f=>f.status==="rejected").map(f=>f.reason);this.items=a,this.watchMedia(a);const l=Pe(a);if(this.worldBounds=e?l?dt([e,l]):e:l,this.contentVersion++,d.length&&this.emit("error",d),this.setUnloadable(t.length>0&&!a.length&&d.length>0),!this.worldBounds){this.invalidate();return}this.opened?i?(this.home(true),this.emit("change")):(this.camera.set(this.constrain(this.camera.current)),this.emit("change")):(this.opened=true,this.home(true),this.emit("open")),this.invalidate()}clear(){this.setUnloadable(false),this.generation++,this.items=[],this.watchMedia([]),this.worldBounds=null,this.contentVersion++,this.invalidate()}setHidden(t){const e=new Set(t);let i=false;for(const s of this.items){const r=e.has(s.id);!!s.spec.hidden!==r&&(s.spec={...s.spec,hidden:r},i=true)}i&&this.invalidate()}isReady(t){const e=this.items.find(s=>s.id===t);if(!e)return false;if(e.spec.media)return true;const i=e.pyramid.levels[0];if(!i)return false;for(let s=0;s<i.rows;s++)for(let r=0;r<i.cols;r++)if(!this.getTile(e.pyramid.tile({level:0,col:r,row:s}).url))return false;return true}fitBounds(t,e=false,i=X){const s=this.fit(t,this.camera.destination.rotation,i);this.atHome=false,this.animateTo(this.constrain(s,{allowBeyondLimits:true}),e)}fit(t,e,{top:i,right:s,bottom:r,left:o}){const{width:a,height:d}=this.viewport,{zoom:l}=At(t,{width:Math.max(1,a-o-s),height:Math.max(1,d-i-r)},e);return{...S(Lt(t),{x:(a+o-s)/2,y:(d+i-r)/2},l,e,this.viewport),zoom:l,rotation:e}}fitItemRect(t,e,i=false){const s=this.itemRectToWorld(t,e);s&&this.fitAnnotation(s,i)}fitAnnotation(t,e=false){var r;const i=this.items[0];if(!i)return;const s=i.rect.width*Ne;this.fitBounds({x:t.x-s,y:t.y-s,width:t.width+s*2,height:t.height+s*2},e,ct((r=this.overlays)==null?void 0:r.container,"scroll-padding"))}getBounds(){return N(this.camera.current,this.viewport)}getHomeBounds(){return this.worldBounds?{...this.worldBounds}:null}getCamera(){return{...this.camera.current}}getZoomLimits(){var i;const t=((i=this.homeCamera())==null?void 0:i.zoom)??1,e=this.items.length?Math.min(...this.items.map(s=>B(s).x)):1;return{home:t,min:t*this.options.minZoomImageRatio,max:Math.max(t,this.options.maxZoomPixelRatio/e)}}home(t=false){const e=this.homeCamera();e&&(this.atHome=true,this.animateTo(e,t))}atMaxZoom(){return this.camera.destination.zoom>=this.getZoomLimits().max*(1-He)}zoomBy(t,e,i=true){const s=i?this.camera.destination:this.camera.current,r=e??{x:this.viewport.width/2,y:this.viewport.height/2},o=$(s,this.viewport,r),{min:a,max:d}=this.getZoomLimits(),l=A(s.zoom*t,a,d),f=S(o,r,l,s.rotation,this.viewport),m=this.constrain({...s,...f,zoom:l});this.atHome=false,i?this.camera.animateTo({state:m,anchor:{world:o,screen:r}},this.viewport):this.camera.set(m),this.invalidate()}panBy(t,e,i=false){const s=i?this.camera.destination:this.camera.current,r=ut(k(_(1/s.zoom),Pt(-s.rotation)),{x:t,y:e}),o=this.constrain({...s,x:s.x-r.x,y:s.y-r.y});this.atHome=false,i?this.camera.animateTo({state:o},this.viewport):this.camera.set(o),this.invalidate()}panTo(t,e=false){const i=e?this.camera.current:this.camera.destination;this.atHome=false,this.animateTo(this.constrain({...i,...t}),e)}flick(t,e){this.panBy(t*.25,e*.25,true)}rotateBy(t){const e=this.camera.destination;this.setRotation(e.rotation*180/Math.PI+t)}setRotation(t,e=false){const i=this.camera.destination,s=t*Math.PI/180;this.animateTo(this.constrain({...i,rotation:s}),e)}getRotation(){return this.camera.destination.rotation*180/Math.PI}tap(t){this.emit("tap",t)}setDismiss(t){this.dismisser=t}dismiss(){var t;return((t=this.dismisser)==null?void 0:t.call(this))??false}setGestures(t){this.gestures.setOptions({...H,...this.gestureOptions,...D(t)})}setInteracting(t){t&&this.camera.stop()}worldToScreenPoint(t){return St(this.camera.current,this.viewport,t)}screenToWorldPoint(t){return $(this.camera.current,this.viewport,t)}itemRectToWorld(t,e){const i=this.items[t];if(!i)return null;const{contentClip:s,clip:r}=i;if(i.turn)return ft(k(Ie(i),_(r.width/s.width,r.height/s.height)),e);const o=i.rect.width/s.width,a=i.rect.height/s.height;return{x:i.rect.x+(e.x-s.x)*o,y:i.rect.y+(e.y-s.y)*a,width:e.width*o,height:e.height*a}}attachNavigator(t){var r;(r=this.navigator)==null||r.dispose(),this.navigator=null;const e=++this.navigatorAsked;let i=null,s=false;return import("./Navigator-DrYPepzN.mjs").then(o=>{s||this.disposed||e!==this.navigatorAsked||(i=new o.Navigator(t,(a,d)=>this.panTo(a,d)),this.navigator=i,this.invalidate())}),()=>{s=true,i==null||i.dispose(),i&&this.navigator===i&&(this.navigator=null)}}invalidate(){this.loop.invalidate()}dispose(){var t,e,i,s,r,o,a;this.disposed||(this.disposed=true,this.generation++,this.loop.dispose(),this.gestures.dispose(),(t=this.resizeObserver)==null||t.disconnect(),(e=this.intersectionObserver)==null||e.disconnect(),(s=(i=this.dprQuery)==null?void 0:i.removeEventListener)==null||s.call(i,"change",this.onPixelRatioChange),this.releaseTimer&&clearTimeout(this.releaseTimer),(r=this.navigator)==null||r.dispose(),this.navigator=null,this.releaseBackend(),this.cache.dispose(),(o=this.dom)==null||o.dispose(),(a=this.overlays)==null||a.dispose(),this.items=[],this.detachMedia.forEach(d=>d()),this.mediaByKey.clear(),this.listeners.clear(),delete this.host.dataset.backend)}watchMedia(t){this.detachMedia.forEach(e=>e()),this.detachMedia=[],this.mediaByKey.clear();for(const e of t){if(!e.media||e.media.kind!=="media")continue;const i=e.pyramid.tile({level:0,col:0,row:0}).url;this.mediaByKey.set(i,e.media);const s=e.media.source,r=()=>this.invalidate(),o=["play","seeked","loadeddata","resize"];o.forEach(a=>s.addEventListener(a,r)),this.detachMedia.push(()=>o.forEach(a=>s.removeEventListener(a,r)))}}paint(t){const e=this.backend,i=[],s=(e==null?void 0:e.kind)==="webgl2";e==null||e.begin();for(const r of t){const{image:o}=r;if(!(o.kind==="media"||o.kind==="element"&&s&&(o.opaque||this.opaqueUrls.has(r.url)))&&e){if(e.draw({key:r.url,source:o.source,width:o.width,height:o.height,transform:r.transform,crop:r.crop,opacity:1,bleed:r.bleed})!=="tainted"||o.kind==="bitmap")continue;this.opaqueUrls.add(r.url)}(o.kind==="element"||o.kind==="media")&&i.push({key:`${r.item.id}|${r.url}`,element:o.source,width:o.width,height:o.height,transform:r.transform,crop:r.crop,opacity:1})}e==null||e.end(),this.dom?this.dom.sync(i):i.length&&!this.domAsked&&(this.domAsked=true,import("./DomLayers-DlRapZ1u.mjs").then(({DomLayers:r})=>{if(this.disposed)return;const o=new r(this.host);this.overlays&&this.host.insertBefore(o.container,this.overlays.container),this.dom=o,this.invalidate()}))}loadTile(t,e){return se(t,{signal:e,request:this.options.request,maxTextureSize:this.backend instanceof R?this.backend.maxTextureSize:void 0})}animateTo(t,e){this.camera.animateTo({state:t},this.viewport,e),this.invalidate()}homeCamera(){if(!this.worldBounds)return null;const t=2*Math.PI,e=Math.round(this.camera.destination.rotation/t)*t||0;return this.fit(this.worldBounds,e,this.inset)}constrain(t,{allowBeyondLimits:e=false}={}){const i=this.worldBounds;if(!i)return t;const{min:s,max:r}=this.getZoomLimits(),o=e?A(t.zoom,s,Math.max(r,t.zoom)):A(t.zoom,s,r);return{...t,zoom:o,x:A(t.x,i.x,i.x+i.width),y:A(t.y,i.y,i.y+i.height)}}acquireBackend(t=true){var r,o;if(this.backend||this.pending||this.disposed)return;const e=document.createElement("canvas");e.className="clover-canvas-surface",e.setAttribute("aria-hidden","true"),Object.assign(e.style,{position:"absolute",inset:"0",width:"100%",height:"100%",display:"block",pointerEvents:"none"}),this.host.insertBefore(e,((r=this.dom)==null?void 0:r.container)??((o=this.overlays)==null?void 0:o.container)??null);const i=t&&(this.backendPreference==="webgl2"||this.backendPreference==="auto"&&this.contextLosses<De);let s=null;i&&(Et(this.holder)||this.backendPreference==="webgl2")&&(s=R.create(e,{onLost:this.onContextLost}),s||Y(this.holder)),s?this.install(s):this.backendPreference==="webgl2"?this.none(e):(this.pending=e,(Xe??(Xe=import("./Canvas2DBackend-TZtR3zHf.mjs"))).then(({Canvas2DBackend:a})=>{if(this.pending!==e)return;this.pending=null;const d=a.create(e);d?this.install(d):this.none(e)}))}none(t){t.remove(),this.host.dataset.backend="none"}install(t){this.backend=t,this.host.dataset.backend=t.kind,t.resize(this.viewport.width,this.viewport.height,this.pixelRatio),t.kind==="canvas2d"&&this.opaqueUrls.clear(),this.emit("backend",t.kind),this.invalidate()}releaseBackend(){var e;if(Y(this.holder),(e=this.pending)==null||e.remove(),this.pending=null,!this.backend)return;const t=this.backend.canvas;this.backend.dispose(),t.remove(),this.backend=null}giveBack(){this.releaseTimer&&clearTimeout(this.releaseTimer),this.releaseTimer=null,this.releaseBackend(),this.host.dataset.backend="released"}observe(){typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>this.measure(true)),this.resizeObserver.observe(this.host)),typeof IntersectionObserver<"u"&&(this.intersectionObserver=new IntersectionObserver(t=>{const e=t.some(i=>i.isIntersecting);this.setVisible(e)}),this.intersectionObserver.observe(this.host)),this.watchPixelRatio()}setVisible(t){var e;if(this.visible=t,t){this.holder.hiddenSince=null,this.releaseTimer&&clearTimeout(this.releaseTimer),this.releaseTimer=null,this.backend||this.acquireBackend();return}(e=this.holder).hiddenSince??(e.hiddenSince=lt()),!(!this.backend||this.releaseTimer)&&(this.releaseTimer=setTimeout(()=>this.giveBack(),this.options.releaseAfterMs))}measure(t=false){var d;const e=this.host.getBoundingClientRect(),i=Math.max(1,e.width),s=Math.max(1,e.height),r=ct(this.host),o=Math.min(typeof window<"u"&&window.devicePixelRatio||1,Fe);if(i===this.viewport.width&&s===this.viewport.height&&o===this.pixelRatio&&Ge(r,this.inset))return;const a=this.viewport;if(this.viewport={width:i,height:s},this.inset=r,this.pixelRatio=o,(d=this.backend)==null||d.resize(i,s,o),this.opened)if(this.atHome)this.home(true);else{const l=this.camera.current,f=i/Math.max(a.width,1);this.camera.set(this.constrain({...l,zoom:l.zoom*f}))}t?this.loop.drawNow():this.invalidate()}watchPixelRatio(){var t,e,i,s;typeof window>"u"||typeof window.matchMedia!="function"||((e=(t=this.dprQuery)==null?void 0:t.removeEventListener)==null||e.call(t,"change",this.onPixelRatioChange),this.dprQuery=window.matchMedia(`(resolution: ${window.devicePixelRatio||1}dppx)`),(s=(i=this.dprQuery).addEventListener)==null||s.call(i,"change",this.onPixelRatioChange))}setUnloadable(t){t!==this.unloadable&&(this.unloadable=t,this.emit("unloadable",t))}emit(t,e){var i;(i=this.listeners.get(t))==null||i.forEach(s=>s(e))}}const lt=()=>typeof performance<"u"?performance.now():Date.now();function Ke(n){if(typeof IntersectionObserver>"u"||typeof window>"u")return true;const{top:t,left:e,width:i,height:s}=n.getBoundingClientRect();return t+s>=0&&e+i>=0&&t<=window.innerHeight&&e<=window.innerWidth}function Ve(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function D(n){return Object.fromEntries(Object.entries(n).filter(([,t])=>t!==void 0))}const si=(n,t)=>new Ze(n,t);export{Ht as b,Nt as h,Ce as p,si as r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as c,A as l,x as u,aC as p,_ as d,k as m}from"./shared-
|
|
1
|
+
import{u as c,A as l,x as u,aC as p,_ as d,k as m}from"./shared-DFAX0n3B.mjs";import"./styles-BwkYiCLC.mjs";const f=new WeakMap;function v(t){let n=f.get(t);if(!n){const{render:o}=t;n={canvasId:t.canvasId,format:t.format,match:t.match,component:r=>c(y,{...r,render:o})},f.set(t,n)}return n}function C(t){if(Array.isArray(t))return t.filter(n=>typeof n=="object"&&n!==null&&typeof n.render=="function").map(v)}function y({render:t,canvases:n,bodies:o,children:r}){const a=l(null),i=u(p);return d(()=>{const e=a.current;if(!e)return;const s=t(e,{canvases:n,bodies:o,clover:i});return()=>{typeof s=="function"&&s(),e.replaceChildren()}},[t,n,o,i]),c(m,{children:[c("div",{ref:a,className:"clover-body-renderer",style:{position:"absolute",inset:0}}),r&&c("div",{className:"clover-canvas-controls",children:r})]})}export{C as toRenderers};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{x as n,
|
|
1
|
+
import{x as n,Z as o,Q as r}from"./shared-DFAX0n3B.mjs";const t=(s,a)=>a==="canvas"?o(s.manifest,s.canvasId):s.manifest,e=r(null),i=()=>n(e);export{e as P,t as r,i as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a1 as a}from"./shared-
|
|
1
|
+
import{a1 as a}from"./shared-DFAX0n3B.mjs";function c(t){try{const o=new URL(t).pathname.split("/").filter(Boolean).pop();return o?decodeURIComponent(o):"download"}catch{return"download"}}async function i(t,o){try{const r=await a(o,t,{referrerPolicy:"no-referrer"});if(!r.ok)return false;const n=URL.createObjectURL(await r.blob()),e=document.createElement("a");return e.href=n,e.download=c(t),document.body.append(e),e.click(),e.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e4),true}catch{return false}}export{c as fileName,i as saveFile};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ay as w,S as f,a9 as x,U as S}from"./shared-
|
|
1
|
+
import{ay as w,S as f,a9 as x,U as S}from"./shared-DFAX0n3B.mjs";const A=10;async function R(r,t,s,o,e){var n,d;const i=(n=r.get().manifest)==null?void 0:n.id;try{const{hits:c,set:u}=await b(t,s,{request:o,signal:e});if(e.aborted||((d=r.get().manifest)==null?void 0:d.id)!==i)return;r.set({search:{query:s,status:"ready",hits:c,set:u}})}catch{if(e.aborted)return;r.set({search:{query:s,status:"error",hits:[],set:null}})}}async function b(r,t,{request:s,signal:o}={}){const e=new URL(r.id);e.searchParams.set("q",t);const i=[];let n=e.toString();const d=new Set;for(;n&&i.length<A&&!d.has(n);){d.add(n);const c=await w(s,n,o);i.push(c),n=$(c)}return E(i,t)}function T(r){var e;const t=f(r)[0];if(typeof t=="string"||!t)return t;const s=t.full??t["@id"],o=(e=f(t.selector)[0])==null?void 0:e.value;return typeof o=="string"&&typeof s=="string"?`${s}#${o}`:s}function $(r){var o;const t=r.next??((o=r.within)==null?void 0:o.next),s=typeof t=="string"?t:(t==null?void 0:t.id)??(t==null?void 0:t["@id"]);return typeof s=="string"?s:null}function E(r,t){var e,i;const s=[],o=[];for(const n of r){const d=Array.isArray(n.resources),c=d?n.resources:f(n.items),u=new Map;for(const a of c){const p=a.id??a["@id"],m=d?T(a.on):f(a.target)[0],v=x(m);if(!p||!v.id)continue;const y=d?(e=a.resource)==null?void 0:e.chars:f(a.body).map(l=>l==null?void 0:l.value).find(l=>typeof l=="string"),I={id:p,setId:S,canvasId:v.id,target:v,motivation:["highlighting"],bodies:[{value:String(y??t)}],annotation:{id:p,type:"Annotation",motivation:["highlighting"],body:{type:"TextualBody",value:String(y??t)},target:m}};u.set(p,I),s.push(I)}const g=d?H(n,u):M(n,u),h=new Set(g.flatMap(a=>a.entryIds));o.push(...g);for(const a of u.values())h.has(a.id)||o.push({id:a.id,canvasId:a.canvasId,entryIds:[a.id],match:((i=a.bodies[0])==null?void 0:i.value)??t})}return{query:t,hits:o,set:{id:S,label:{none:[t]},source:"search",entries:s}}}function H(r,t){var o;const s=[];for(const e of f(r.hits)){const i=f(e.annotations).filter(n=>t.has(n));i.length&&s.push({id:i.join(" "),canvasId:t.get(i[0]).canvasId,entryIds:i,before:e.before,match:String(e.match??((o=t.get(i[0]).bodies[0])==null?void 0:o.value)??""),after:e.after})}return s}function M(r,t){var o,e;const s=[];for(const i of f(r.annotations))for(const n of f(i==null?void 0:i.items))if(f(n==null?void 0:n.motivation).includes("contextualizing"))for(const c of f(n.target)){const u=typeof(c==null?void 0:c.source)=="string"?c.source:(o=c==null?void 0:c.source)==null?void 0:o.id,g=u?t.get(u):void 0;if(!g)continue;const h=f(c.selector).find(a=>(a==null?void 0:a.type)==="TextQuoteSelector");s.push({id:`${n.id??u}#${u}`,canvasId:g.canvasId,entryIds:[g.id],before:h==null?void 0:h.prefix,match:String((h==null?void 0:h.exact)??((e=g.bodies[0])==null?void 0:e.value)??""),after:h==null?void 0:h.suffix})}return s}export{E as readResults,b as search,R as searchInto};
|