@nulib/clover 4.6.1 → 4.8.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/README.md +2 -0
- package/dist/base.css +1 -0
- package/dist/components/Body/glyphs.mjs +48 -0
- package/dist/components/Canvas/CanvasView.mjs +27 -6
- package/dist/components/Canvas/ControlMenu.mjs +1 -1
- package/dist/components/Canvas/Controls.mjs +3 -2
- package/dist/components/Canvas/PlaceBox.mjs +41 -13
- package/dist/components/Canvas/media/Transport.mjs +1 -1
- package/dist/components/CollectionSelect/CollectionSelect.mjs +1 -1
- package/dist/components/Contents/Contents.mjs +9 -1
- package/dist/components/Items/clamped.mjs +1 -1
- package/dist/components/Label/Label.mjs +22 -2
- package/dist/components/Map/MapView.mjs +141 -40
- package/dist/components/Map/placePicture.mjs +16 -0
- package/dist/core/geo-detect.mjs +10 -4
- package/dist/core/geo.mjs +48 -11
- package/dist/i18n/locales/en.json.mjs +1 -1
- package/dist/i18n/locales/es.json.mjs +1 -1
- package/dist/i18n/locales/fi.json.mjs +1 -1
- package/dist/i18n/locales/fr.json.mjs +1 -1
- package/dist/i18n/locales/it.json.mjs +1 -1
- package/dist/i18n/locales/ja.json.mjs +1 -1
- package/dist/i18n/locales/nb.json.mjs +1 -1
- package/dist/i18n/locales/nn.json.mjs +1 -1
- package/dist/i18n/locales/no.json.mjs +1 -1
- package/dist/i18n/locales/pt.json.mjs +1 -1
- package/dist/i18n/locales/zh-Hans.json.mjs +1 -1
- package/dist/i18n/locales/zh-Hant.json.mjs +1 -1
- package/dist/index.d.mts +16 -2
- package/dist/map/index.d.mts +7 -1
- package/dist/spacing.css +1 -0
- package/dist/styles/core.css +1 -1
- package/dist/styles/default.css +1 -1
- package/dist/styles/items.css +1 -1
- package/dist/styles/map.css +1 -1
- package/dist/styles/split.css +1 -1
- package/dist/styles.css +1 -1
- package/dist/templates/default/Default.mjs +1 -0
- package/dist/ui/Tip.mjs +16 -10
- package/dist/ui/adoptSheet.mjs +6 -0
- package/dist/ui/controlGlyphs.mjs +2 -2
- package/dist/ui/sheets/map.mjs +1 -1
- package/dist/web-components/About-BBhina2G.mjs +1 -0
- package/dist/web-components/{AnnotationItems-BfQm1YRD.mjs → AnnotationItems-ixjSW8yC.mjs} +1 -1
- package/dist/web-components/{AnnotationMenu-guk9SbaL.mjs → AnnotationMenu-By2y_30w.mjs} +1 -1
- package/dist/web-components/{AnnotationState-BX7xh-bd.mjs → AnnotationState-B6FRNt_k.mjs} +1 -1
- package/dist/web-components/{Annotations-BJrje3Ey.mjs → Annotations-Y5LoB9VS.mjs} +1 -1
- package/dist/web-components/{Annotations-DBxLDLDf.mjs → Annotations-ulJZljFP.mjs} +1 -1
- package/dist/web-components/{Body-CQuiRv9p.mjs → Body-BKdgKqQH.mjs} +1 -1
- package/dist/web-components/{BodyAlert-DF9rnG5o.mjs → BodyAlert-Bc8OjERW.mjs} +1 -1
- package/dist/web-components/{Button-qhI73GCI.mjs → Button-Dh8tcsM0.mjs} +1 -1
- package/dist/web-components/{Camera-D2MnETlC.mjs → Camera-e5pZW5l9.mjs} +1 -1
- package/dist/web-components/{Canvas2DBackend-kJpOk_Pb.mjs → Canvas2DBackend-CyJf0y1M.mjs} +1 -1
- package/dist/web-components/CanvasView-H-adU7o_.mjs +2 -0
- package/dist/web-components/{CaptionDetails-Cl3fLJfr.mjs → CaptionDetails-F6h2wWBc.mjs} +1 -1
- package/dist/web-components/{ChaptersMenu-CB4zdVOh.mjs → ChaptersMenu-liO4U8ui.mjs} +1 -1
- package/dist/web-components/{Chevron-CT1ntI6B.mjs → Chevron-BNo5Q2aq.mjs} +1 -1
- package/dist/web-components/{ChoiceMenu-DoXMSLjk.mjs → ChoiceMenu-Cvy5dTot.mjs} +1 -1
- package/dist/web-components/{Collection-B8ipKdPl.mjs → Collection-DiFz-jee.mjs} +1 -1
- package/dist/web-components/CollectionSelect-C_g2Fe1a.mjs +1 -0
- package/dist/web-components/{Connected-DaP_DgGw.mjs → Connected-CWghNEmk.mjs} +1 -1
- package/dist/web-components/{Connected-L47VwCva.mjs → Connected-D9KwnUYu.mjs} +1 -1
- package/dist/web-components/{Connected-shq2_tc-.mjs → Connected-UFJ9HAdm.mjs} +1 -1
- package/dist/web-components/Contents-BNcywDyx.mjs +1 -0
- package/dist/web-components/ControlMenu-MLBcT_vr.mjs +1 -0
- package/dist/web-components/ControlsFade-Bizly8sa.mjs +1 -0
- package/dist/web-components/{CountMenu-CQ7ThPWJ.mjs → CountMenu-gdNdHeAS.mjs} +1 -1
- package/dist/web-components/Cue-D_qssa2V.mjs +1 -0
- package/dist/web-components/Document-yh-X-UO2.mjs +1 -0
- package/dist/web-components/{DomLayers-BIFA6J56.mjs → DomLayers-Bd10mvx8.mjs} +1 -1
- package/dist/web-components/{Download-BfZJVu-O.mjs → Download-rt8mrS37.mjs} +1 -1
- package/dist/web-components/{EntryBodies-Bld2RXeE.mjs → EntryBodies-qgESmAus.mjs} +1 -1
- package/dist/web-components/EntryThumbnail-aB6t0QY7.mjs +1 -0
- package/dist/web-components/{FieldPill-Dx--yBoK.mjs → FieldPill-JFwwrqWO.mjs} +1 -1
- package/dist/web-components/FrameAnimation-Ca1Pk7qj.mjs +1 -0
- package/dist/web-components/{Gallery-CkaSdVAP.mjs → Gallery-C1Ewonpl.mjs} +1 -1
- package/dist/web-components/{GlobeGlyph-CCi1sZgm.mjs → GlobeGlyph-vFbGlcLV.mjs} +1 -1
- package/dist/web-components/{HideToggle-nvJtMFOZ.mjs → HideToggle-4Lf9xVTa.mjs} +1 -1
- package/dist/web-components/{ImageControls-Df-M7F2R.mjs → ImageControls-Cp0A9tPX.mjs} +1 -1
- package/dist/web-components/Items-Doy0J7Ux.mjs +1 -0
- package/dist/web-components/{ItemsVertical-Dmhm1DBy.mjs → ItemsVertical-zBM4RrGw.mjs} +1 -1
- package/dist/web-components/Label-DB3g0INN.mjs +1 -0
- package/dist/web-components/{LanguageChoice-t55qbd8x.mjs → LanguageChoice-wwjVQRmA.mjs} +1 -1
- package/dist/web-components/{LanguageMenu-BlFBWRSO.mjs → LanguageMenu-kKZz7poC.mjs} +1 -1
- package/dist/web-components/{LightboxView-BhPao9ao.mjs → LightboxView-ftwkLwrJ.mjs} +1 -1
- package/dist/web-components/{ListEnd-KSoUQrsM.mjs → ListEnd-Du_798h9.mjs} +1 -1
- package/dist/web-components/{Loaded-uGqT3xyD.mjs → Loaded-ByZZ-qYa.mjs} +1 -1
- package/dist/web-components/{LoadedCanvas-fqjWHH0H.mjs → LoadedCanvas-BrMlbUZj.mjs} +1 -1
- package/dist/web-components/LoadedMap-kBEd97zG.mjs +1 -0
- package/dist/web-components/{Loading-DSaV1vxb.mjs → Loading-DTE24hmb.mjs} +1 -1
- package/dist/web-components/Map-BznyNYpR.mjs +1 -0
- package/dist/web-components/MapView-BnB09keO.mjs +3 -0
- package/dist/web-components/{Markup-DzUsOaNC.mjs → Markup-DpisaBAv.mjs} +1 -1
- package/dist/web-components/MediaBody-BciN7i_p.mjs +1 -0
- package/dist/web-components/{MediaBody-CJELKAWJ.mjs → MediaBody-GJYCIKKh.mjs} +1 -1
- package/dist/web-components/{NavDate-CD3sFxZJ.mjs → NavDate-Bgz3c5GY.mjs} +1 -1
- package/dist/web-components/{Navigator-CVDhe8R_.mjs → Navigator-kdzuaGZ3.mjs} +1 -1
- package/dist/web-components/{Pager-BmZaB--9.mjs → Pager-CLTw7uPB.mjs} +1 -1
- package/dist/web-components/{PagerLayout-DhIz3hKA.mjs → PagerLayout-Ce7YXoX-.mjs} +1 -1
- package/dist/web-components/Panel-CUH9brlN.mjs +1 -0
- package/dist/web-components/PanelPart-DUT_EYSr.mjs +1 -0
- package/dist/web-components/{PanelToggle-BqVj7sX0.mjs → PanelToggle-DbiKKtrJ.mjs} +1 -1
- package/dist/web-components/PartOfManifest-Df1eY2K1.mjs +1 -0
- package/dist/web-components/{Pending-CDXsIk5O.mjs → Pending-DYk0BE3F.mjs} +1 -1
- package/dist/web-components/PlaceBox-O88VA7H8.mjs +1 -0
- package/dist/web-components/Placeholder-DmXW9CPP.mjs +1 -0
- package/dist/web-components/{Position-oFMJoo4P.mjs → Position-D7KEsDvf.mjs} +1 -1
- package/dist/web-components/Primitives-CNiASHFF.mjs +1 -0
- package/dist/web-components/Provider-DnJAJHRK.mjs +1 -0
- package/dist/web-components/{ReadMore-f34RbHMm.mjs → ReadMore-UB3ZsYTS.mjs} +1 -1
- package/dist/web-components/{Root-CEtLCE4Y.mjs → Root-6ACRHIvO.mjs} +1 -1
- package/dist/web-components/Scene-BWWpIp5i.mjs +1 -0
- package/dist/web-components/{SceneView-D635_fRV.mjs → SceneView-BKtxkOM3.mjs} +1 -1
- package/dist/web-components/{Search-219u7M8o.mjs → Search-CryKgttq.mjs} +1 -1
- package/dist/web-components/{Sections-C3fPhGNx.mjs → Sections-BYdISeOX.mjs} +1 -1
- package/dist/web-components/{SeekMarks-Ds8v3SaW.mjs → SeekMarks-DTazLy01.mjs} +1 -1
- package/dist/web-components/{StandaloneItems-Mdh-k3w9.mjs → StandaloneItems-Bro9DLh-.mjs} +1 -1
- package/dist/web-components/{Status-CEkhPlDF.mjs → Status-BtQ3Lqc9.mjs} +1 -1
- package/dist/web-components/{Steps-BoNd47eB.mjs → Steps-BlSuRZ-G.mjs} +1 -1
- package/dist/web-components/{TargetItems-dFjJs-VP.mjs → TargetItems-BJUccJfF.mjs} +1 -1
- package/dist/web-components/Timeline-BmgF1gai.mjs +1 -0
- package/dist/web-components/Tip-B8n5Kjqv.mjs +1 -0
- package/dist/web-components/{Transcript-5wVgmZmU.mjs → Transcript-CwvckoND.mjs} +1 -1
- package/dist/web-components/Transport-Cm1pHOJa.mjs +1 -0
- package/dist/web-components/{Transport-DdNRlSa0.mjs → Transport-DmXWNiJV.mjs} +1 -1
- package/dist/web-components/annotation-collection-CQ-BJLMc.mjs +1 -0
- package/dist/web-components/{annotation-name-DhMF4ZHj.mjs → annotation-name-QYiS95M_.mjs} +1 -1
- package/dist/web-components/{annotations-content-CuWJZr4t.mjs → annotations-content-NdLfsk2q.mjs} +1 -1
- package/dist/web-components/{body-Bym9Uvav.mjs → body-DHQxq2z0.mjs} +1 -1
- package/dist/web-components/{canvas-BIXBggVo.mjs → canvas-Dbx-77OG.mjs} +1 -1
- package/dist/web-components/{cloverEngine-BEdb3g52.mjs → cloverEngine-Bh3k15LZ.mjs} +1 -1
- package/dist/web-components/{viewer/content-state-reader-BhDMcVmC.mjs → content-state-reader-BZSYqMJ7.mjs} +1 -1
- package/dist/web-components/{controlGlyphs-DMQCxKaT.mjs → controlGlyphs-3GULDog9.mjs} +1 -1
- package/dist/web-components/{controls-B1pIwRgH.mjs → controls-kvloQJj2.mjs} +1 -1
- package/dist/web-components/custom-elements.json +9 -1
- package/dist/web-components/downloads-D4s3htw7.mjs +1 -0
- package/dist/web-components/{dragToClose-BYUJ9qgo.mjs → dragToClose-DrW90oMa.mjs} +1 -1
- package/dist/web-components/{engine-DUv-Syum.mjs → engine-BIWYzj9q.mjs} +1 -1
- package/dist/web-components/{engines-BzM_oBU_.mjs → engines-BmbSBhjU.mjs} +1 -1
- package/dist/web-components/{es-Bx-zZBfZ.mjs → es-DRRI3WDi.mjs} +1 -1
- package/dist/web-components/fetchManifest-DXSuJeLM.mjs +1 -0
- package/dist/web-components/{fi-DsP1FhBy.mjs → fi-BmlZ-U-4.mjs} +1 -1
- package/dist/web-components/follow-content-auD0I2Nd.mjs +1 -0
- package/dist/web-components/{fr-BuL_F9Jq.mjs → fr-k93P7lwp.mjs} +1 -1
- package/dist/web-components/{fromManifest-DbgwTeBo.mjs → fromManifest-CdeuDtuO.mjs} +1 -1
- package/dist/web-components/geo-detect-D5AXivx8.mjs +1 -0
- package/dist/web-components/glyphs-BVPhaq44.mjs +1 -0
- package/dist/web-components/{hooks-DhTYPPVG.mjs → hooks-C0LNj0ea.mjs} +1 -1
- package/dist/web-components/image-layers-DzwVP7WA.mjs +1 -0
- package/dist/web-components/{image-service-content-CL_EZugL.mjs → image-service-content-CZwoPXfe.mjs} +1 -1
- package/dist/web-components/{imageService-BoQQvo1U.mjs → imageService-BCrg9Uyo.mjs} +1 -1
- package/dist/web-components/index-BA7fKawM.mjs +1 -0
- package/dist/web-components/index.mjs +1 -1
- package/dist/web-components/{it-DH3EtrgI.mjs → it-DEzCslib.mjs} +1 -1
- package/dist/web-components/items-BpimvRRq.mjs +1 -0
- package/dist/web-components/items-C7mdtSGR.mjs +1 -0
- package/dist/web-components/{ja-BEHbDotv.mjs → ja-BDKsn1vT.mjs} +1 -1
- package/dist/web-components/label-BQxfuivB.mjs +1 -0
- package/dist/web-components/layout-DSxI5Mzd.mjs +1 -0
- package/dist/web-components/link-DZAIqASM.mjs +1 -0
- package/dist/web-components/logo-CQokQEbF.mjs +1 -0
- package/dist/web-components/models-GZeNnoc0.mjs +1 -0
- package/dist/web-components/{no-Bdfn_mZs.mjs → nb-Cyf1RkZ8.mjs} +1 -1
- package/dist/web-components/{nn-BCWbSuK0.mjs → nn-CzczXFxL.mjs} +1 -1
- package/dist/web-components/{nb-Bdfn_mZs.mjs → no-Cyf1RkZ8.mjs} +1 -1
- package/dist/web-components/{nodes-BDyXzQhk.mjs → nodes-DgJ1Y0ql.mjs} +1 -1
- package/dist/web-components/overlayImage-CDpjGK3p.mjs +1 -0
- package/dist/web-components/{panel-rEGhe5fL.mjs → panel-D0ihN4Yg.mjs} +1 -1
- package/dist/web-components/part-CT8rMbqQ.mjs +1 -0
- package/dist/web-components/placePicture-DH51gowj.mjs +1 -0
- package/dist/web-components/{playerSurface-BthXi9l2.mjs → playerSurface-B4r18_Sh.mjs} +1 -1
- package/dist/web-components/{pointer-C22ufJ5w.mjs → pointer-ACmsWSTU.mjs} +1 -1
- package/dist/web-components/{provider-B2C3eH9p.mjs → provider-BSqLpfoT.mjs} +1 -1
- package/dist/web-components/{pt-Da5El49z.mjs → pt-Bx2G8tAe.mjs} +1 -1
- package/dist/web-components/range-regions-CFzuyC2x.mjs +1 -0
- package/dist/web-components/{read-more-B7LHzF4-.mjs → read-more-CT9mZ4NJ.mjs} +1 -1
- package/dist/web-components/{readingLanguages-B20n_dkw.mjs → readingLanguages-Bm51Uo8l.mjs} +1 -1
- package/dist/web-components/{rendererSurface-BfZP5clN.mjs → rendererSurface-C5m7KyMK.mjs} +2 -2
- package/dist/web-components/{renderers-C569MeQB.mjs → renderers-DqOPIccG.mjs} +1 -1
- package/dist/web-components/{resource-C5cMic8z.mjs → resource-CdnESvV9.mjs} +1 -1
- package/dist/web-components/{save-file-DsYdCZpi.mjs → save-file-12iPPQyl.mjs} +1 -1
- package/dist/web-components/search-BOcQWXXc.mjs +1 -0
- package/dist/web-components/shared-xNidXfMd.mjs +1 -0
- package/dist/web-components/{show-link-BqrJDDMV.mjs → show-link-CpmbC72n.mjs} +1 -1
- package/dist/web-components/{split-BZRKCI3g.mjs → split-crk5o-eb.mjs} +1 -1
- package/dist/web-components/{status-CwO2mygB.mjs → status-DoFsFCOb.mjs} +1 -1
- package/dist/web-components/styles-DN-wttmX.mjs +1 -0
- package/dist/web-components/three.mjs +1 -1
- package/dist/web-components/thumbnail-BxTYGSjc.mjs +1 -0
- package/dist/web-components/{tip-CNyxI6xd.mjs → tip-BdgOVBey.mjs} +1 -1
- package/dist/web-components/{toggle-lop2se80.mjs → toggle-CxlScMN7.mjs} +1 -1
- package/dist/web-components/{useContainerName-DR_6TyDU.mjs → useContainerName-C7EZNnlj.mjs} +1 -1
- package/dist/web-components/{useControlsVisibility-Dig_1-0T.mjs → useControlsVisibility-9PkGzYK3.mjs} +1 -1
- package/dist/web-components/{useNearViewport-B_kjW0WB.mjs → useNearViewport-C8Y9tbrm.mjs} +1 -1
- package/dist/web-components/{useScrollTrack-6BV6IizZ.mjs → useScrollTrack-C0Ef5b-M.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationItems-BDFH_6F_.mjs → AnnotationItems-C869mTYV.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationMenu-BHCrJoNx.mjs → AnnotationMenu-BdkH82NQ.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationState-BV0fzlj8.mjs → AnnotationState-CU298l_b.mjs} +1 -1
- package/dist/web-components/viewer/{Annotations-DEqkGlE1.mjs → Annotations-BY8QDb9l.mjs} +1 -1
- package/dist/web-components/viewer/{Annotations-BhA_Bbyj.mjs → Annotations-IaKX8BQB.mjs} +1 -1
- package/dist/web-components/viewer/{Canvas2DBackend-Bq_bo1mL.mjs → Canvas2DBackend-DuUL7Wn0.mjs} +1 -1
- package/dist/web-components/viewer/CaptionDetails-CnzK-9IJ.mjs +1 -0
- package/dist/web-components/viewer/{ChaptersMenu-DE2TFesS.mjs → ChaptersMenu-6Mu_YuaY.mjs} +1 -1
- package/dist/web-components/viewer/{ChoiceMenu-BVlpPUhr.mjs → ChoiceMenu-9EZhHBEq.mjs} +1 -1
- package/dist/web-components/viewer/{Collection-DIgmeOCD.mjs → Collection-C_iaTy8f.mjs} +1 -1
- package/dist/web-components/viewer/{Connected-D9dz_v1p.mjs → Connected-CEfEDzWJ.mjs} +1 -1
- package/dist/web-components/viewer/{Connected-7TgFouaR.mjs → Connected-DSMZIn9R.mjs} +1 -1
- package/dist/web-components/viewer/Contents-fAlVCKr5.mjs +1 -0
- package/dist/web-components/viewer/ControlMenu-Chi1pBFc.mjs +1 -0
- package/dist/web-components/viewer/ControlsFade-DguyDuyM.mjs +1 -0
- package/dist/web-components/viewer/{CountMenu-CCEH_rEu.mjs → CountMenu-BCeHt01J.mjs} +1 -1
- package/dist/web-components/viewer/Cue-B2yHzH0v.mjs +1 -0
- package/dist/web-components/viewer/{Document-8ADB98RM.mjs → Document-DfTuEc9K.mjs} +1 -1
- package/dist/web-components/viewer/{DomLayers-BXPbPq1a.mjs → DomLayers-kMBbOAxJ.mjs} +1 -1
- package/dist/web-components/viewer/{Download-YfjzAcAF.mjs → Download-odx1XL-v.mjs} +1 -1
- package/dist/web-components/viewer/{EntryBodies-B2DBmUYl.mjs → EntryBodies-DudDcNik.mjs} +1 -1
- package/dist/web-components/viewer/{EntryThumbnail-B2cRaP5D.mjs → EntryThumbnail-B6QXKl4_.mjs} +1 -1
- package/dist/web-components/viewer/{FieldPill-C7o8586T.mjs → FieldPill-McMG7d8J.mjs} +1 -1
- package/dist/web-components/viewer/{FrameAnimation-CytZC2Lx.mjs → FrameAnimation-nvSxSZXx.mjs} +1 -1
- package/dist/web-components/viewer/{Gallery-CQma5dBZ.mjs → Gallery-C1_u4G-E.mjs} +1 -1
- package/dist/web-components/viewer/{GlobeGlyph-UxhwZJy1.mjs → GlobeGlyph-CCLt6oJP.mjs} +1 -1
- package/dist/web-components/viewer/{HideToggle-DZMCACLG.mjs → HideToggle-Ce11kbAX.mjs} +1 -1
- package/dist/web-components/viewer/{ImageControls-fzFWqFVh.mjs → ImageControls-D91KmrS3.mjs} +1 -1
- package/dist/web-components/viewer/{ItemsVertical-BftsRVJP.mjs → ItemsVertical-FjomG7wy.mjs} +1 -1
- package/dist/web-components/viewer/{LanguageChoice-B8F2WhUM.mjs → LanguageChoice-DK0ITQY4.mjs} +1 -1
- package/dist/web-components/viewer/{LanguageMenu-BIpATvd4.mjs → LanguageMenu-BAoT1XAX.mjs} +1 -1
- package/dist/web-components/viewer/{LightboxView-D-6yYXCc.mjs → LightboxView-DOx6IfvN.mjs} +1 -1
- package/dist/web-components/viewer/{ListEnd-DhrDIRKM.mjs → ListEnd-CXsCFPMc.mjs} +1 -1
- package/dist/web-components/viewer/MapView-BsDJtLAk.mjs +3 -0
- package/dist/web-components/viewer/{MediaBody-C3fVbzuD.mjs → MediaBody-Cg4ARhwy.mjs} +1 -1
- package/dist/web-components/viewer/{MediaBody-D-1SNnW2.mjs → MediaBody-DsMNbnTU.mjs} +1 -1
- package/dist/web-components/viewer/{NavDate-B47wyKdc.mjs → NavDate-rmVMLVIA.mjs} +1 -1
- package/dist/web-components/viewer/{Navigator-BqNBxE5l.mjs → Navigator-Dh-a5-GN.mjs} +1 -1
- package/dist/web-components/viewer/{PagerLayout-DKdFxLZ1.mjs → PagerLayout-COLqXCRw.mjs} +1 -1
- package/dist/web-components/viewer/PanelPart-Dai61xLE.mjs +1 -0
- package/dist/web-components/viewer/{PartOfManifest-DF40jLNB.mjs → PartOfManifest-D1iufWAj.mjs} +1 -1
- package/dist/web-components/viewer/PlaceBox-CINvMgWh.mjs +1 -0
- package/dist/web-components/viewer/{Placeholder-BhAzmG0d.mjs → Placeholder-Biz7HHCE.mjs} +1 -1
- package/dist/web-components/viewer/{Search-CTkCx-SZ.mjs → Search-FbVd9LpP.mjs} +1 -1
- package/dist/web-components/viewer/{SeekMarks-8NvVfr4F.mjs → SeekMarks-Bd08UMXC.mjs} +1 -1
- package/dist/web-components/viewer/{StandaloneItems-P1ygiZtX.mjs → StandaloneItems-ByJy-Mo8.mjs} +1 -1
- package/dist/web-components/viewer/{Steps-DwqiM7sH.mjs → Steps-BWbZzM2H.mjs} +1 -1
- package/dist/web-components/viewer/{TargetItems-B873PbFR.mjs → TargetItems-DOtPfQtV.mjs} +1 -1
- package/dist/web-components/viewer/{Transcript-D7cFMWGk.mjs → Transcript-DccBh_ne.mjs} +1 -1
- package/dist/web-components/viewer/{Transport-DPURF464.mjs → Transport-Cb5zCNgN.mjs} +1 -1
- package/dist/web-components/viewer/Transport-DTPfFgtA.mjs +1 -0
- package/dist/web-components/viewer/{annotation-collection-BwY8uYqa.mjs → annotation-collection-_3io5Bjz.mjs} +1 -1
- package/dist/web-components/viewer/{annotation-name-DQMCd2DB.mjs → annotation-name-DV96qLy_.mjs} +1 -1
- package/dist/web-components/viewer/{annotations-content-q11OcPdT.mjs → annotations-content-O8srMa2_.mjs} +1 -1
- package/dist/web-components/viewer/{cloverEngine-K2HNl3W1.mjs → cloverEngine-Dm0m8BNg.mjs} +1 -1
- package/dist/web-components/viewer/content-state-reader-DZhx2OxK.mjs +1 -0
- package/dist/web-components/viewer/{dragToClose-BFhEkxmf.mjs → dragToClose-BrUDwA_c.mjs} +1 -1
- package/dist/web-components/viewer/{fetchManifest-aJRqlL7Q.mjs → fetchManifest-C7HrStJ2.mjs} +1 -1
- package/dist/web-components/viewer/{follow-content-Cy0flRSN.mjs → follow-content-DplyQT1g.mjs} +1 -1
- package/dist/web-components/viewer/{host-C4OSSUrc.mjs → host-BqYiw4PF.mjs} +1 -1
- package/dist/web-components/viewer/{image-layers-BmOyugIr.mjs → image-layers-BNSL4PGS.mjs} +1 -1
- package/dist/web-components/viewer/{image-service-content-BuqFuXBZ.mjs → image-service-content-Bs3jtvh5.mjs} +1 -1
- package/dist/web-components/viewer/index.mjs +1 -1
- package/dist/web-components/viewer/{link-BtdcvLLg.mjs → link-B-CqoY52.mjs} +1 -1
- package/dist/web-components/viewer/{overlayImage-BOilakHT.mjs → overlayImage-B9WbeUxW.mjs} +1 -1
- package/dist/web-components/viewer/placePicture-BrnrnHMa.mjs +1 -0
- package/dist/web-components/viewer/{range-regions-S1HcVfpb.mjs → range-regions-BFWHKv3i.mjs} +1 -1
- package/dist/web-components/viewer/{renderers-CetbXlHH.mjs → renderers-D7gh2mXP.mjs} +1 -1
- package/dist/web-components/viewer/{save-file-BohgaD35.mjs → save-file-DImt0i6t.mjs} +1 -1
- package/dist/web-components/viewer/{search-C0ZHXQW-.mjs → search-D-pqH7Ys.mjs} +1 -1
- package/dist/web-components/viewer/styles-BvYBVDBK.mjs +1 -0
- package/dist/web-components/viewer/{useControlsVisibility-CmA6PMfv.mjs → useControlsVisibility-Cehuan1d.mjs} +1 -1
- package/dist/web-components/viewer/viewer-D1qPD9xX.mjs +29 -0
- package/dist/web-components/viewer/{vtt-BIJk7HEl.mjs → vtt-DYzon3yt.mjs} +1 -1
- package/dist/web-components/{viewer-f_6tefcG.mjs → viewer-KTpprzfJ.mjs} +1 -1
- package/dist/web-components/{vtt-BRwnCWbJ.mjs → vtt-VqUamaGu.mjs} +1 -1
- package/dist/web-components/{zh-Hans-BhTHTZXT.mjs → zh-Hans-Dfs9s_bI.mjs} +1 -1
- package/dist/web-components/{zh-Hant-_CJAOTzC.mjs → zh-Hant-Dk8wlKuD.mjs} +1 -1
- package/package.json +3 -1
- package/dist/web-components/About-I4h1cfup.mjs +0 -1
- package/dist/web-components/CanvasView-B752g1bm.mjs +0 -2
- package/dist/web-components/CollectionSelect-C0Tunk6c.mjs +0 -1
- package/dist/web-components/Contents-_u13TaBJ.mjs +0 -1
- package/dist/web-components/ControlMenu-BW39OjKC.mjs +0 -1
- package/dist/web-components/ControlsFade-LFHufW32.mjs +0 -1
- package/dist/web-components/Cue-B1IlY4Ae.mjs +0 -1
- package/dist/web-components/Document-BChOw20c.mjs +0 -1
- package/dist/web-components/EntryThumbnail-C5df3CaH.mjs +0 -1
- package/dist/web-components/FrameAnimation-CpniJMTK.mjs +0 -1
- package/dist/web-components/Items-BsKByN_b.mjs +0 -1
- package/dist/web-components/Label-DElSTYS5.mjs +0 -1
- package/dist/web-components/LoadedMap-BpRHQPoU.mjs +0 -1
- package/dist/web-components/Map-CUY8HEgh.mjs +0 -1
- package/dist/web-components/MapView-DIVMYZZ1.mjs +0 -3
- package/dist/web-components/MediaBody-CN2ZTxK0.mjs +0 -1
- package/dist/web-components/Panel-CdJyJVBh.mjs +0 -1
- package/dist/web-components/PanelPart-m2QWHh_4.mjs +0 -1
- package/dist/web-components/PartOfManifest-Dgw1shMM.mjs +0 -1
- package/dist/web-components/PlaceBox-DNnl9coD.mjs +0 -1
- package/dist/web-components/Placeholder-D8Sabput.mjs +0 -1
- package/dist/web-components/Primitives-BdXIEpYW.mjs +0 -1
- package/dist/web-components/Provider-DWIlPOzR.mjs +0 -1
- package/dist/web-components/Scene-BJE8miZL.mjs +0 -1
- package/dist/web-components/Timeline-DPdS6bYG.mjs +0 -1
- package/dist/web-components/Tip-mcI7IRQh.mjs +0 -1
- package/dist/web-components/Transport-DYjd2GnA.mjs +0 -1
- package/dist/web-components/annotation-collection-C3UpNV1K.mjs +0 -1
- package/dist/web-components/content-state-reader-BGZEChSM.mjs +0 -1
- package/dist/web-components/downloads-DwzBIS-9.mjs +0 -1
- package/dist/web-components/fetchManifest-Cp7c8vs5.mjs +0 -1
- package/dist/web-components/follow-content-CmXq05TW.mjs +0 -1
- package/dist/web-components/glyphs-atKuagcd.mjs +0 -1
- package/dist/web-components/image-layers-CoBPhMZw.mjs +0 -1
- package/dist/web-components/index-Ciz5x8Tt.mjs +0 -1
- package/dist/web-components/items-CjtUJjSU.mjs +0 -1
- package/dist/web-components/items-DiQ3K5TV.mjs +0 -1
- package/dist/web-components/label-CKgFcOzZ.mjs +0 -1
- package/dist/web-components/layout-zjkkOHIj.mjs +0 -1
- package/dist/web-components/link-CrNaByf-.mjs +0 -1
- package/dist/web-components/logo-C2xm9WAL.mjs +0 -1
- package/dist/web-components/models-BFKa5v_H.mjs +0 -1
- package/dist/web-components/overlayImage-BGxovfPN.mjs +0 -1
- package/dist/web-components/part-PF-s_vD-.mjs +0 -1
- package/dist/web-components/range-regions-Ytq4QkMX.mjs +0 -1
- package/dist/web-components/search-kJ_71fbN.mjs +0 -1
- package/dist/web-components/shared-ByrLMUQa.mjs +0 -1
- package/dist/web-components/sizedImage-CyCf0GtL.mjs +0 -1
- package/dist/web-components/styles-BOXm_R8o.mjs +0 -1
- package/dist/web-components/thumbnail-Np4ftjUo.mjs +0 -1
- package/dist/web-components/viewer/CaptionDetails-D6Gd_EGS.mjs +0 -1
- package/dist/web-components/viewer/Contents-ROI1iuuR.mjs +0 -1
- package/dist/web-components/viewer/ControlMenu-CZlN7x0D.mjs +0 -1
- package/dist/web-components/viewer/ControlsFade-QEgqI3wY.mjs +0 -1
- package/dist/web-components/viewer/Cue-CLbO9g2X.mjs +0 -1
- package/dist/web-components/viewer/MapView-XFUp4DVX.mjs +0 -3
- package/dist/web-components/viewer/PanelPart-CuddftmQ.mjs +0 -1
- package/dist/web-components/viewer/PlaceBox-Bi1inmQv.mjs +0 -1
- package/dist/web-components/viewer/Transport-TvkdinN-.mjs +0 -1
- package/dist/web-components/viewer/styles-XRfyRUPf.mjs +0 -1
- package/dist/web-components/viewer/viewer-BXbkj7DJ.mjs +0 -29
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as a,f as c}from"./imageService-BCrg9Uyo.mjs";import{a as f}from"./thumbnail-BxTYGSjc.mjs";async function l(r,o,i){const t=typeof r.id=="string"?r.id:void 0,e=a(r.service);if(!e)return t;try{const n=await c(e,{request:i});return f(n,o)??t}catch{return t}}export{l as overlayImageUrl};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as v,A as g,y as p,u as s}from"./shared-
|
|
1
|
+
import{d as v,A as g,y as p,u as s}from"./shared-xNidXfMd.mjs";import{T as y,P as S}from"./Panel-CUH9brlN.mjs";import{u as b,M as C,C as w,s as A}from"./nodes-DgJ1Y0ql.mjs";const k=l=>[...l.children].filter(t=>t.localName==="clover-tab").map((t,e)=>{const n=t.getAttribute("value")||String(e);return{element:t,value:n,label:t.getAttribute("label")||n,labelSlot:A(t,"label")}}),E=(l,t)=>l.length===t.length&&l.every((e,n)=>e.element===t[n].element&&e.value===t[n].value&&e.label===t[n].label&&e.labelSlot===t[n].labelSlot),M=l=>l instanceof Element&&l.getAttribute("slot")==="label",a=new WeakMap;let O=0;const P=l=>(a.has(l)||a.set(l,++O),a.get(l));function T(l){const t=l.ownerDocument;for(let e=l;e&&e!==t.body;e=e.parentElement){if(!e.id)continue;const n=e.id.replace(/["\\]/g,"\\$&");if(t.querySelector(`[aria-controls~="${n}"]`)){e.hidden=true;return}}l.hidden=true}function q({hosted:l,props:t}){const e=l.element,n=b(e,()=>k(e),E),{value:r,closable:i,onValueChange:m,onClose:f,...d}=t,[h,c]=v(r),u=g(r);return p(()=>{r!==u.current&&(u.current=r,r&&c(r))},[r]),s(S,{...d,value:h,onValueChange:o=>{c(o),m(o)},onClose:i?()=>{f()&&T(e)}:void 0,children:n.length?n.map(o=>s(y,{value:o.value,label:o.labelSlot?s(w,{of:o.labelSlot}):o.label,children:s(C,{from:o.element,stays:M})},P(o.element))):null})}export{q as PanelElement};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{T as i,u as e}from"./shared-xNidXfMd.mjs";import{w as u}from"./nodes-DgJ1Y0ql.mjs";function a(r,t=[]){return function({props:n}){const o=i(()=>u(n,t),[n]);return e(r,{...o})}}export{a as drawn};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ay as m}from"./shared-xNidXfMd.mjs";import{t as r,r as f}from"./thumbnail-BxTYGSjc.mjs";async function u(a,n,o){var i;let s=a;if(a.type==="Manifest"&&!a.items){const t=await m(a,{request:o});s=t.thumbnail?t:(i=t.items)==null?void 0:i[0]}const e=r(s);return e?f(e,n,o):void 0}export{u as placePicture};
|
|
@@ -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-ACmsWSTU.mjs";import{u as S}from"./useControlsVisibility-9PkGzYK3.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 T=Object.defineProperty;var x=(e,t,n)=>t in e?T(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n;var L=(e,t,n)=>x(e,typeof t!="symbol"?t+"":t,n);import{a as m,A as M,d as h,ai as N,y as b,u as o,t as O,l as p,P as S,z as B,_ as I,q as P,C as H,R as A}from"./shared-
|
|
1
|
+
var T=Object.defineProperty;var x=(e,t,n)=>t in e?T(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n;var L=(e,t,n)=>x(e,typeof t!="symbol"?t+"":t,n);import{a as m,A as M,d as h,ai as N,y as b,u as o,t as O,l as p,P as S,z as B,_ as I,q as P,C as H,R as A}from"./shared-xNidXfMd.mjs";import{C as D}from"./glyphs-BVPhaq44.mjs";import{B as w}from"./Button-Dh8tcsM0.mjs";import"./styles-DN-wttmX.mjs";import{T as W}from"./Tip-B8n5Kjqv.mjs";import{e as _}from"./controlGlyphs-3GULDog9.mjs";const q=B(()=>import("./CaptionDetails-F6h2wWBc.mjs"));function oe(e){var t;return!!e.summary||!!((t=e.metadata)!=null&&t.length)}const U=(e,t)=>`${e}-label-${t}`,ae=({id:e,canvases:t,comments:n,open:s,onClose:r,language:a})=>{const{t:u,langOf:c}=m(),i=M(null),[f,v]=h(s);return s&&!f&&v(true),N(s,()=>r(false)),b(()=>{var l;s&&((l=i.current)==null||l.focus())},[s]),o("figcaption",{className:"clover-canvas-caption","data-open":s,"data-testid":"clover-canvas-caption",id:e,onKeyDown:l=>{l.key!=="Escape"||l.defaultPrevented||(l.preventDefault(),l.stopPropagation(),r(true))},ref:i,tabIndex:-1,children:[o(w,{className:"clover-canvas-caption-close",id:`close-${e}`,label:u("commonClose"),lang:c("commonClose"),onClick:()=>r(true),children:o(D,{})}),t.map((l,E)=>{const d=O(l.label,a);return o("section",{className:"clover-canvas-caption-canvas",children:[d.text&&o("p",{className:"clover-canvas-caption-label",id:U(e,E),...p(d.lang),children:d.text}),f&&o(S,{fallback:null,children:o(q,{summary:l.summary,metadata:l.metadata,comments:n==null?void 0:n.get(l.id),language:a})})]},l.id)})]})},z=112,$=128;function j(e){I(()=>{const t=e==null?void 0:e.closest(".clover-canvas");if(!e||!t)return;const n=(a=false)=>{let u=e.offsetWidth,c=0;for(const d of a?[]:Array.from(e.children))!(d instanceof HTMLElement)||!d.offsetParent||(u=Math.min(u,d.offsetLeft),c=Math.max(c,d.offsetTop+d.offsetHeight));const i={width:e.offsetWidth-u,height:c};for(const[d,C]of Object.entries(i)){const y=`--clover-canvas-controls-${d}`;c?t.style.setProperty(y,`${C}px`):t.style.removeProperty(y)}const f=e.offsetTop,v=t.querySelector(":scope > .clover-canvas-media > .clover-canvas-transport"),l=t.clientHeight-2*f-i.height-((v==null?void 0:v.offsetHeight)??0),E=e.offsetLeft+u-f;c&&l<z&&E>=$?t.dataset.popups="beside":delete t.dataset.popups};n();const s=new ResizeObserver(()=>n());s.observe(e),s.observe(t);const r=new MutationObserver(()=>n());return r.observe(e,{childList:true}),r.observe(t,{childList:true}),()=>{s.disconnect(),r.disconnect(),n(true)}},[e])}const g=()=>{if(typeof document>"u")return null;const e=document;return e.fullscreenElement??e.webkitFullscreenElement??null},F=()=>{if(typeof document>"u")return false;const e=document;return!!(e.fullscreenEnabled??e.webkitFullscreenEnabled)},k=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},K=(e,t)=>{if(typeof e.webkitEnterFullscreen!="function")return;const n=t.closest(".clover-canvas"),s=!e.isConnected&&!!n;if(s&&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 r=()=>{var a;try{(a=e.webkitEnterFullscreen)==null||a.call(e)}catch{}};s?requestAnimationFrame(r):r()},Y=async(e,t)=>{var s,r,a,u;const n=k(e);if(n)try{if(g()){const i=document;await(((s=i.exitFullscreen)==null?void 0:s.call(i))??((r=i.webkitExitFullscreen)==null?void 0:r.call(i)));return}if(!F()){t&&e&&K(t,e);return}const c=n;await(((a=c.requestFullscreen)==null?void 0:a.call(c))??((u=c.webkitRequestFullscreen)==null?void 0:u.call(c)))}catch{}};function R(e){const[t,n]=h(false);return b(()=>{if(!e)return;const s=()=>{var r;return n(!!((r=g())!=null&&r.contains(e)))};return s(),document.addEventListener("fullscreenchange",s),document.addEventListener("webkitfullscreenchange",s),()=>{document.removeEventListener("fullscreenchange",s),document.removeEventListener("webkitfullscreenchange",s)}},[e]),t}function ce({key:e,id:t,label:n,glyph:s,onClick:r,expanded:a,controls:u,shortcut:c,lang:i,unavailable:f},v){const l=v==null?void 0:v[e];return l?o(l,{buttonProps:{id:t,type:"button","aria-label":n,...i&&{lang:i},...c&&{"aria-keyshortcuts":c.keys},onClick:f?void 0:r,...f&&{"aria-disabled":true},...a!==void 0&&{"aria-expanded":a,"aria-controls":u}},icon:o(_,{label:n,children:s}),label:n,tip:o(W,{label:n,shortcut:c})},e):o(w,{id:t,label:n,onClick:f?void 0:r,unavailable:f,expanded:a,controls:u,shortcut:c,lang:i,children:s},e)}const le=({fit:e=false,clusterRef:t,children:n})=>{const[s,r]=h(null),a=R(s);j(s);const u=P(c=>{r(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:u,children:n})},V=()=>()=>{};function ie(){return H(V,F)}const ue=({hidden:e})=>{const{t,langOf:n}=m(),s=t("imageExitFullScreen");return o("button",{"aria-label":s,...p(n("imageExitFullScreen")),className:"clover-canvas-exit-full-screen",hidden:e,onClick:r=>void Y(r.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"})}),s]})};function de(e){const[t,n]=h(false);return b(()=>{if(!e)return;const s=()=>n(g()===e);return s(),document.addEventListener("fullscreenchange",s),document.addEventListener("webkitfullscreenchange",s),()=>{document.removeEventListener("fullscreenchange",s),document.removeEventListener("webkitfullscreenchange",s)}},[e]),t}function fe(e){const[t,n]=h(false);return b(()=>{if(!e)return;const s=()=>{const r=g();n(r===e||!!r&&k(e)===r&&(r==null?void 0:r.querySelector(".clover-canvas"))===e)};return s(),document.addEventListener("fullscreenchange",s),document.addEventListener("webkitfullscreenchange",s),()=>{document.removeEventListener("fullscreenchange",s),document.removeEventListener("webkitfullscreenchange",s)}},[e]),t}class ve extends A.Component{constructor(){super(...arguments);L(this,"state",{error:null})}static getDerivedStateFromError(n){return{error:n}}render(){const{error:n}=this.state;return n?o(G,{error:n}):this.props.children}}function G({error:e}){const{t,langOf:n}=m();return o("div",{className:"clover-canvas-error",role:"alert",children:[o("p",{className:"clover-canvas-error-headline","data-testid":"headline",...p(n("statusError")),children:t("statusError")}),e.message&&o("span",{className:"clover-canvas-error-body",lang:"en",children:e.message})]})}const J={image:"bodyUnloadableImage",video:"bodyUnloadableVideo",audio:"bodyUnloadableAudio",model:"bodyUnloadableModel"};function he({kind:e,shown:t,room:n=false}){const{t:s,langOf:r}=m(),a=J[e];return o("div",{className:"clover-body-unloadable","data-room":n||void 0,role:"status",children:t&&o("p",{...p(r(a)),children:s(a)})})}function pe({text:e,lang:t}){return o("div",{className:"clover-body-note","aria-hidden":"true",children:o("p",{...p(t),children:e})})}const Q=5,me=300,be=Q*4;function ge(e,t=false){return e==="touch"||e==="pen"&&!t}function Ee(e){return e.pointerType==="pen"&&e.buttons===0}function ye(e,t,n){for(let s=e;s&&s!==t;s=s.parentElement)if((n>0?s.scrollHeight-s.clientHeight-s.scrollTop:s.scrollTop)>=1&&/auto|scroll/.test(getComputedStyle(s).overflowY))return true;return false}function Le(e,t){var s;let n=e;for(;n&&n!==t;){if(n instanceof HTMLButtonElement||n instanceof HTMLAnchorElement||n instanceof HTMLInputElement||n instanceof HTMLLabelElement||n instanceof HTMLSelectElement||((s=n.dataset)==null?void 0:s.cloverCanvasInteractive)!==void 0)return true;n=n.parentElement}return false}export{he as B,le as C,be as D,ve as E,Q as T,Ee as a,me as b,ge as c,R as d,de as e,fe as f,U as g,oe as h,Le as i,ue as j,pe as k,ae as l,ce as r,ye as s,Y as t,ie as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as r}from"./shared-
|
|
1
|
+
import{u as r}from"./shared-xNidXfMd.mjs";import{L as n,P as a}from"./Provider-DnJAJHRK.mjs";import{u as i}from"./nodes-DgJ1Y0ql.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
|
-
const a=JSON.parse('{"commonClose":"Fechar","commonNext":"Seguinte","commonPrevious":"Anterior","commonSearch":"Pesquisar","commonViewAll":"Ver tudo","controlShortcut":"{{label}} ({{shortcut}})","contentSearchLoading":"A carregar...","contentSearchPlaceholder":"Pesquisar","contentSearchResultsNone":"Sem resultados","contentSearchResult":"1 resultado","contentSearchResults":"{{count}} resultados","contentSearchError":"N\xE3o foi poss\xEDvel concluir a pesquisa.","contentSearchPosition":"Resultado {{index}} de {{total}}","contentSearchClear":"Limpar a pesquisa","canvasPosition":"Item {{index}} de {{total}}","canvasImage":"Imagem","bodyUnloadableImage":"N\xE3o foi poss\xEDvel carregar esta imagem.","bodyUnloadableVideo":"N\xE3o foi poss\xEDvel carregar este v\xEDdeo.","bodyUnloadableAudio":"N\xE3o foi poss\xEDvel carregar este \xE1udio.","bodyUnloadableModel":"N\xE3o foi poss\xEDvel carregar este modelo.","canvasRoleDescription":"imagem ampli\xE1vel","canvasKeysImage":"Use as teclas de seta para deslocar a imagem, com Shift para ir mais longe, mais e menos para ampliar e reduzir, 0 para repor a vista, e R ou Shift+R para rodar.","canvasKeysMedia":"Prima Espa\xE7o ou K para reproduzir ou pausar, J ou L para recuar ou avan\xE7ar dez segundos, e M para silenciar ou ativar o som.","canvasKeysAnnotations":"Prima Esc para desmarcar a anota\xE7\xE3o.","sceneModel":"Modelo 3D","sceneRoleDescription":"modelo 3D rotativo","sceneKeys":"Use as teclas de seta para rodar o modelo, com Shift para ir mais longe, mais e menos para ampliar e reduzir, 0 para repor a vista, e R ou Shift+R para o rodar para a direita ou para a esquerda.","sceneRotateUp":"Rodar para cima","sceneRotateDown":"Rodar para baixo","sceneRotate":"Rodar","sceneResetView":"Repor a vista","statusLoading":"A carregar\u2026","statusError":"N\xE3o foi poss\xEDvel carregar este conte\xFAdo.","itemsLabel":"Itens","download":"Transferir","downloadPage":"Esta p\xE1gina","downloadAll":"Todas as p\xE1ginas","templateSidebar":"Itens","templateSidebarToggle":"Mostrar itens","templateBack":"Voltar","templateBackTo":"Voltar a {{label}}","collectionLabel":"Cole\xE7\xE3o","itemsScrollBack":"Mostrar itens anteriores","itemsScrollForward":"Mostrar mais itens","aboutRights":"Direitos","aboutDate":"Data","aboutHomepage":"P\xE1gina inicial","aboutSeeAlso":"Ver tamb\xE9m","aboutProvider":"Fornecedor","logo":"Log\xF3tipo","aboutManifest":"Manifesto IIIF","aboutCanvas":"Tela IIIF","aboutPartOf":"Parte de","aboutOpenManifest":"Abrir o manifesto completo","aboutCollection":"Cole\xE7\xE3o IIIF","readingLanguage":"Idioma","annotationsHide":"Ocultar anota\xE7\xF5es","annotationsHideTip":"Ocultar","readMore":"Ler mais","readLess":"Ler menos","annotationsShow":"Mostrar na imagem","annotationsShowTime":"Mostrar na grava\xE7\xE3o","annotationsImage":"Imagem","annotationsLanguage":"Idioma","annotationsOpenLink":"Abrir","transcriptLabel":"Transcri\xE7\xE3o","imageViewerOpen":"Abrir o visualizador de imagens","imageViewerClose":"Fechar o visualizador de imagens","canvasChoice":"Alternativas","canvasViewerControls":"Controlos do visualizador","canvasExpandControls":"Expandir os controlos do visualizador","canvasCollapseControls":"Recolher os controlos do visualizador","canvasScrollBack":"Mostrar controlos anteriores","canvasScrollForward":"Mostrar mais controlos","imageFullScreen":"Ecr\xE3 completo","imageExitFullScreen":"Sair do ecr\xE3 completo","imageResetZoom":"Repor o zoom","imageRotateLeft":"Rodar para a esquerda","imageRotateRight":"Rodar para a direita","imageZoomIn":"Ampliar","imageZoomOut":"Reduzir","informationPanelTabs":"Painel de informa\xE7\xF5es","sectionsScrollBack":"Mostrar separadores anteriores","sectionsScrollForward":"Mostrar mais separadores","informationPanelClose":"Fechar o painel de informa\xE7\xF5es","informationPanelTabsAbout":"Sobre","informationPanelTabsAnnotations":"Anota\xE7\xF5es","informationPanelTabsSearch":"Pesquisa","informationPanelTabsContents":"Conte\xFAdo","contentsSectionsIn":"Sec\xE7\xF5es de","informationPanelTabsMap":"Mapa","informationPanelTabsCollection":"Cole\xE7\xE3o","informationPanelTabsTargets":"Vistas","mapUnavailable":"N\xE3o foi poss\xEDvel mostrar o mapa.","mapLabel":"Mapa","mapAttribution":"Cr\xE9ditos do mapa","mapPlaceUntitled":"Local {{number}}","mapOverlay":"Imagem georreferenciada","mapPlacesListed":"Locais listados depois do mapa: {{count}}","informationPanelToggle":"Mais informa\xE7\xF5es","playerPlay":"Reproduzir","playerPause":"Pausar","playerMute":"Silenciar","playerUnmute":"Ativar o som","playerVolume":"Volume","playerSeek":"Posi\xE7\xE3o de reprodu\xE7\xE3o","playerCaptions":"Legendas","playerCaptionsOff":"Desativadas","playerChapters":"Cap\xEDtulos","playerFill":"Preencher o enquadramento","playerFit":"Ajustar ao enquadramento","playerCurrentTime":"Tempo atual","playerDuration":"Dura\xE7\xE3o","splitHandle":"Redimensionar os pain\xE9is"}');export{a as default};
|
|
1
|
+
const a=JSON.parse('{"commonClose":"Fechar","commonNext":"Seguinte","commonPrevious":"Anterior","commonSearch":"Pesquisar","commonViewAll":"Ver tudo","controlShortcut":"{{label}} ({{shortcut}})","contentSearchLoading":"A carregar...","contentSearchPlaceholder":"Pesquisar","contentSearchResultsNone":"Sem resultados","contentSearchResult":"1 resultado","contentSearchResults":"{{count}} resultados","contentSearchError":"N\xE3o foi poss\xEDvel concluir a pesquisa.","contentSearchPosition":"Resultado {{index}} de {{total}}","contentSearchClear":"Limpar a pesquisa","canvasPosition":"Item {{index}} de {{total}}","canvasImage":"Imagem","bodyUnloadableImage":"N\xE3o foi poss\xEDvel carregar esta imagem.","bodyUnloadableVideo":"N\xE3o foi poss\xEDvel carregar este v\xEDdeo.","bodyUnloadableAudio":"N\xE3o foi poss\xEDvel carregar este \xE1udio.","bodyUnloadableModel":"N\xE3o foi poss\xEDvel carregar este modelo.","canvasRoleDescription":"imagem ampli\xE1vel","canvasKeysImage":"Use as teclas de seta para deslocar a imagem, com Shift para ir mais longe, mais e menos para ampliar e reduzir, 0 para repor a vista, e R ou Shift+R para rodar.","canvasKeysMedia":"Prima Espa\xE7o ou K para reproduzir ou pausar, J ou L para recuar ou avan\xE7ar dez segundos, e M para silenciar ou ativar o som.","canvasKeysAnnotations":"Prima Esc para desmarcar a anota\xE7\xE3o.","sceneModel":"Modelo 3D","sceneRoleDescription":"modelo 3D rotativo","sceneKeys":"Use as teclas de seta para rodar o modelo, com Shift para ir mais longe, mais e menos para ampliar e reduzir, 0 para repor a vista, e R ou Shift+R para o rodar para a direita ou para a esquerda.","sceneRotateUp":"Rodar para cima","sceneRotateDown":"Rodar para baixo","sceneRotate":"Rodar","sceneResetView":"Repor a vista","statusLoading":"A carregar\u2026","statusError":"N\xE3o foi poss\xEDvel carregar este conte\xFAdo.","itemsLabel":"Itens","download":"Transferir","downloadPage":"Esta p\xE1gina","downloadAll":"Todas as p\xE1ginas","templateSidebar":"Itens","templateSidebarToggle":"Mostrar itens","templateBack":"Voltar","templateBackTo":"Voltar a {{label}}","collectionLabel":"Cole\xE7\xE3o","itemsScrollBack":"Mostrar itens anteriores","itemsScrollForward":"Mostrar mais itens","aboutRights":"Direitos","aboutDate":"Data","aboutHomepage":"P\xE1gina inicial","aboutSeeAlso":"Ver tamb\xE9m","aboutProvider":"Fornecedor","logo":"Log\xF3tipo","aboutManifest":"Manifesto IIIF","aboutCanvas":"Tela IIIF","aboutPartOf":"Parte de","aboutOpenManifest":"Abrir o manifesto completo","aboutCollection":"Cole\xE7\xE3o IIIF","readingLanguage":"Idioma","annotationsHide":"Ocultar anota\xE7\xF5es","annotationsHideTip":"Ocultar","readMore":"Ler mais","readLess":"Ler menos","annotationsShow":"Mostrar na imagem","annotationsShowTime":"Mostrar na grava\xE7\xE3o","annotationsImage":"Imagem","annotationsLanguage":"Idioma","annotationsOpenLink":"Abrir","transcriptLabel":"Transcri\xE7\xE3o","imageViewerOpen":"Abrir o visualizador de imagens","imageViewerClose":"Fechar o visualizador de imagens","canvasChoice":"Alternativas","canvasViewerControls":"Controlos do visualizador","canvasExpandControls":"Expandir os controlos do visualizador","canvasCollapseControls":"Recolher os controlos do visualizador","canvasScrollBack":"Mostrar controlos anteriores","canvasScrollForward":"Mostrar mais controlos","imageFullScreen":"Ecr\xE3 completo","imageExitFullScreen":"Sair do ecr\xE3 completo","imageResetZoom":"Repor o zoom","imageRotateLeft":"Rodar para a esquerda","imageRotateRight":"Rodar para a direita","imageZoomIn":"Ampliar","imageZoomOut":"Reduzir","informationPanelTabs":"Painel de informa\xE7\xF5es","sectionsScrollBack":"Mostrar separadores anteriores","sectionsScrollForward":"Mostrar mais separadores","informationPanelClose":"Fechar o painel de informa\xE7\xF5es","informationPanelTabsAbout":"Sobre","informationPanelTabsAnnotations":"Anota\xE7\xF5es","informationPanelTabsSearch":"Pesquisa","informationPanelTabsContents":"Conte\xFAdo","contentsSectionsIn":"Sec\xE7\xF5es de","contentsSectionsTip":"Sec\xE7\xF5es","informationPanelTabsMap":"Mapa","informationPanelTabsCollection":"Cole\xE7\xE3o","informationPanelTabsTargets":"Vistas","mapUnavailable":"N\xE3o foi poss\xEDvel mostrar o mapa.","mapLabel":"Mapa","mapExpand":"Expandir o mapa","mapCollapse":"Recolher o mapa","mapAttribution":"Cr\xE9ditos do mapa","mapPlaceUntitled":"Local {{number}}","mapOverlay":"Imagem georreferenciada","mapPlacesListed":"Locais listados depois do mapa: {{count}}","informationPanelToggle":"Mais informa\xE7\xF5es","playerPlay":"Reproduzir","playerPause":"Pausar","playerMute":"Silenciar","playerUnmute":"Ativar o som","playerVolume":"Volume","playerSeek":"Posi\xE7\xE3o de reprodu\xE7\xE3o","playerCaptions":"Legendas","playerCaptionsOff":"Desativadas","playerChapters":"Cap\xEDtulos","playerFill":"Preencher o enquadramento","playerFit":"Ajustar ao enquadramento","playerCurrentTime":"Tempo atual","playerDuration":"Dura\xE7\xE3o","splitHandle":"Redimensionar os pain\xE9is"}');export{a as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a1 as c,aC as l,af as g,aD as v,N as b}from"./shared-xNidXfMd.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 O(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),f=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 h=x++;if(!w||!e.rect)continue;const{x:T,y:I,w:S,h:$}=e.rect,u=b(n.id,h);i.push({id:u,setId:l,canvasId:e.id,target:{id:e.id,rect:e.rect},motivation:["highlighting"],bodies:d,...f>1?{place:{index:h+1,total:f}}:{},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=${T},${I},${S},${$}`}})}};c(t.structures).forEach(s);const p=i.length?{id:l,source:"contents",entries:i}:null;return a.set(t,p),p}export{O as contentsSet};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m,a7 as f,b,A as p,_ as n,u as v,l as g}from"./shared-
|
|
1
|
+
import{a as m,a7 as f,b,A as p,_ as n,u as v,l as g}from"./shared-xNidXfMd.mjs";import{u as L}from"./ReadMore-UB3ZsYTS.mjs";import{u as A}from"./nodes-DgJ1Y0ql.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{t as c,e as l,c as u,T as g,G as m,S as y}from"./shared-
|
|
1
|
+
import{t as c,e as l,c as u,T as g,G as m,S as y}from"./shared-xNidXfMd.mjs";const i=e=>e&&typeof e=="object"&&!Array.isArray(e)?Object.keys(e).filter(n=>n!=="none"&&n!=="@none"&&c({[n]:e[n]}).text):[];function b(e){if(!e)return[];const n=[...Array.isArray(e.metadata)?e.metadata:[],e.requiredStatement].filter(Boolean),a=[e.label,e.summary,...n.flatMap(s=>[s==null?void 0:s.label,s==null?void 0:s.value])].map(i).filter(s=>s.length>1);return[...new Set(a.flat())]}function L(){const{language:e,chooseLanguage:n,toggleDrawn:t}=l("About"),a=u(r=>r.manifest),s=g(()=>b(a),[a]),o=m(s,e);return o&&n?{languages:s,chosen:o,onChange:n,drawn:t??false}:null}function h(e,n){return e!=null&&e.drawn?n.every(t=>!!t&&t!=="none"&&e.languages.some(a=>y(a,t))):false}export{h as c,L as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Bt=Object.defineProperty;var Ot=(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)=>Ot(n,typeof t!="symbol"?t+"":t,e);import{c as Ct,r as et}from"./contexts-ByL3eA_T.mjs";import{c as A,s as I,t as S,a as Dt,u as D,i as zt,b as Et,d as kt,e as Ut,r as Wt,f as C,g as Ft}from"./CanvasView-
|
|
1
|
+
var Bt=Object.defineProperty;var Ot=(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)=>Ot(n,typeof t!="symbol"?t+"":t,e);import{c as Ct,r as et}from"./contexts-ByL3eA_T.mjs";import{c as A,s as I,t as S,a as Dt,u as D,i as zt,b as Et,d as kt,e as Ut,r as Wt,f as C,g as Ft}from"./CanvasView-H-adU7o_.mjs";import{a as z,w as Nt,v as q,f as Ht,s as it,b as st,c as Zt}from"./Camera-e5pZW5l9.mjs";import{i as nt,a as Gt,T as Xt,b as ot,c as rt,D as Kt,s as qt}from"./pointer-ACmsWSTU.mjs";import{a4 as Vt,a5 as Yt,a6 as $t}from"./shared-xNidXfMd.mjs";import{a as Qt,i as at,f as jt}from"./imageService-BCrg9Uyo.mjs";function Jt(n){return typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement?n.complete&&n.naturalWidth>0:true}function te(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 ee=`#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, ${ie.toFixed(1)}) * u_opacity;
|
|
21
21
|
}
|
|
22
|
-
`;class U{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=ne(e,ee,se);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 o=e.createVertexArray();e.bindVertexArray(o);const r=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,r),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=o,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 U(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)),o=Math.max(1,Math.round(e*i));this.canvas.width!==s&&(this.canvas.width=s),this.canvas.height!==o&&(this.canvas.height=o)}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||!Jt(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},o=te(t,this.pixelRatio),r=A(t.transform,S(s.x,s.y),I(s.width+o.x,s.height+o.y));return e.uniformMatrix3fv(this.uniforms.matrix,false,Dt(r,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(r){if(i||e.deleteTexture(s),oe(r))return"tainted";throw r}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 o={texture:s,width:t.width,height:t.height};return this.textures.set(t.key,o),o}}function ne(n,t,e){const i=ht(n,n.VERTEX_SHADER,t),s=ht(n,n.FRAGMENT_SHADER,e),o=n.createProgram();if(!o)throw new Error("Could not create WebGL program");if(n.attachShader(o,i),n.attachShader(o,s),n.linkProgram(o),n.deleteShader(i),n.deleteShader(s),!n.getProgramParameter(o,n.LINK_STATUS)){const r=n.getProgramInfoLog(o);throw n.deleteProgram(o),new Error(`Could not link WebGL program: ${r}`)}return o}function ht(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 oe(n){return typeof n=="object"&&n!==null&&n.name==="SecurityError"}const re=.09,ae=1e-4,ct=.05,he=1e-4;class ce{constructor(t,e=re,i){h(this,"current");h(this,"target",null);h(this,"timeConstant");h(this,"spring");h(this,"start");h(this,"elapsed",0);this.current={...t},this.start={...t},this.timeConstant=e,this.spring=i}get destination(){return this.target?{...this.target.state}:{...this.current}}set(t){this.current={...t},this.target=null}animateTo(t,e,i=false){const s=this.spring?this.spring.duration<=0:this.timeConstant===0;if(i||s){this.set(t.state);return}let o=t.anchor;if(o){const r=z(o.world,o.screen,t.state.zoom,t.state.rotation,e);Math.hypot(r.x-t.state.x,r.y-t.state.y)*t.state.zoom>ct&&(o=void 0)}this.start={...this.current},this.elapsed=0,this.target={state:{...t.state},anchor:o}}stop(){this.target=null}step(t,e){const i=this.target;if(!i)return false;const s=i.state;let o,r;if(this.spring){this.elapsed+=Math.max(t,0);const g=this.elapsed/this.spring.duration;if(g>=1)return this.current={...s},this.target=null,false;const p=this.spring.stiffness;o=this.start,r=(1-Math.exp(-p*g))/(1-Math.exp(-p))}else o=this.current,r=1-Math.exp(-Math.max(t,0)/this.timeConstant);const a=Math.exp(Math.log(o.zoom)+(Math.log(s.zoom)-Math.log(o.zoom))*r),u=o.rotation+(s.rotation-o.rotation)*r,c=i.anchor?z(i.anchor.world,i.anchor.screen,a,u,e):{x:o.x+(s.x-o.x)*r,y:o.y+(s.y-o.y)*r};return this.current={x:c.x,y:c.y,zoom:a,rotation:u},this.spring?true:Math.abs(Math.log(s.zoom/a))<ae&&Math.abs(s.rotation-u)<he&&Math.hypot(s.x-c.x,s.y-c.y)*a<ct?(this.current={...s},this.target=null,false):true}}const V={clickToZoom:true,dblClickToZoom:true,pinchToZoom:true,scrollToZoom:false,navigable:true,flickEnabled:true,flickMinSpeed:200,flickMomentum:.25},N=2,lt=1.5,dt=.1,le=100,de=.002,ue=.01;class fe{constructor(t,e,i=V){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||nt(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;Gt(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 o=i2.x-e2.x,r=i2.y-e2.y;this.down&&Math.hypot(i2.x-this.down.x,i2.y-this.down.y)>Xt&&(this.down.moved=true),(s=this.down)!=null&&s.moved&&this.options.navigable&&this.target.panBy(o,r,!this.tracksPointer(t2.pointerType)),this.samples.push({x:i2.x,y:i2.y,t:t2.timeStamp});const a=t2.timeStamp-le;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 o=this.pinchState();this.options.pinchToZoom&&this.pinch.distance>0&&this.target.zoomBy(o.distance/this.pinch.distance,o.mid,false),this.target.panBy(o.mid.x-this.pinch.mid.x,o.mid.y-this.pinch.mid.y,false),this.pinch=o}});h(this,"onPointerUp",t2=>{var u,c,m,g,p,l;if(!this.pointers.has(t2.pointerId))return;if(this.pointers.delete(t2.pointerId),(c=(u=this.element).releasePointerCapture)==null||c.call(u,t2.pointerId),this.pointers.size===1){this.pinch=null;const[d]=this.pointers.values();this.samples=[{...d,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<ot){if((g=(m=this.target).dismiss)!=null&&g.call(m)){this.lastTap=null;return}if(rt(t2.pointerType,this.penHovers)){const d=this.lastTap;this.options.navigable&&(this.options.clickToZoom||this.options.dblClickToZoom)&&d&&t2.timeStamp-d.t<ot&&Math.hypot(i2.x-d.x,i2.y-d.y)<Kt?(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/N,i2,true):this.zoomIn(i2):(l=(p=this.target).tap)==null||l.call(p,i2);return}if(!this.options.navigable||!this.tracksPointer(t2.pointerType))return;const o=this.samples[0],r=this.samples[this.samples.length-1],a=((r==null?void 0:r.t)??0)-((o==null?void 0:o.t)??0);if(o&&r&&a>0&&t2.timeStamp-r.t<50){const d=(r.x-o.x)/a*1e3,w=(r.y-o.y)/a*1e3,f=this.options.flickMomentum;f>0&&Math.hypot(d,w)>this.options.flickMinSpeed&&this.target.panBy(d*f,w*f,true)}});h(this,"onDoubleClick",t2=>{this.options.navigable&&(this.options.clickToZoom||!this.options.dblClickToZoom||rt(this.lastPointerType,this.penHovers)||nt(t2.target,this.element)||(t2.shiftKey?this.target.zoomBy(1/N,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&&qt(t2.target,this.element,t2.deltaY))return;t2.preventDefault();const i2=me(t2),s=e2?ue:de;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*dt*(t2.shiftKey?3:1),s=e2.height*dt*(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(lt,void 0,true);break;case"-":case"_":this.target.zoomBy(1/lt,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(N,t,true)}tracksPointer(t){return t==="touch"||this.options.flickEnabled}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 me(n){return n.deltaMode===1?n.deltaY*16:n.deltaMode===2?n.deltaY*400:n.deltaY}class Lt extends Error{constructor(t,e,i){super(t),this.url=e,this.status=i,this.name="ImageLoadError"}}const ut=new Set;async function pe(n,t={}){const{signal:e,maxTextureSize:i,request:s}=t,o=Vt(s),r=we(n);if(typeof createImageBitmap!="function"||typeof fetch!="function")return H(n,{signal:e,cors:true,withCredentials:o});if(r&&ut.has(r))return H(n,{signal:e,cors:false,withCredentials:o});let a;try{a=await Yt(s,n,{mode:"cors",signal:e})}catch(p){if(ye(p,e))throw p;const l=await H(n,{signal:e,cors:false,withCredentials:o});return r&&ut.add(r),l}if(!a.ok)throw $t(a),new Lt(`Image request failed with ${a.status}`,n,a.status);const u=await a.blob();let c=await ge(u);const m=c.width,g=c.height;if(i&&(c.width>i||c.height>i)){const p=i/Math.max(c.width,c.height),l=await createImageBitmap(c,{resizeWidth:Math.max(1,Math.floor(c.width*p)),resizeHeight:Math.max(1,Math.floor(c.height*p)),resizeQuality:"high"});c.close(),c=l}if(e!=null&&e.aborted)throw c.close(),Y();return{kind:"bitmap",source:c,width:c.width,height:c.height,naturalWidth:m,naturalHeight:g,opaque:false}}async function ge(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 H(n,{signal:t,cors:e,withCredentials:i}){return new Promise((s,o)=>{if(t!=null&&t.aborted){o(Y());return}const r=new Image;r.decoding="async",e&&(r.crossOrigin=i?"use-credentials":"anonymous");const a=()=>{r.onload=null,r.onerror=null,t==null||t.removeEventListener("abort",u)},u=()=>{a(),r.src="",o(Y())};t==null||t.addEventListener("abort",u),r.onload=()=>{a();const c=()=>s({kind:"element",source:r,width:r.naturalWidth,height:r.naturalHeight,naturalWidth:r.naturalWidth,naturalHeight:r.naturalHeight,opaque:!e});typeof r.decode=="function"?r.decode().then(c,c):c()},r.onerror=()=>{a(),o(new Lt("Image failed to load",n))},r.src=n})}function we(n){var t;try{return new URL(n,(t=globalThis.location)==null?void 0:t.href).origin}catch{return null}}function ye(n,t){return!!(t!=null&&t.aborted)||typeof n=="object"&&n!==null&&n.name==="AbortError"}function Y(){const n=new Error("Aborted");return n.name="AbortError",n}function ft(n){n.kind==="bitmap"&&n.source.close()}const xe=192*1024*1024,ve=16,be=2;class Te{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??xe,this.maxInFlight=t.maxInFlight??ve}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:Z(e),lastUsed:this.frame,attempts:0,pinned:false,waiters:(i==null?void 0:i.waiters)??[]}),this.bytes+=Z(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(o=>{if(this.disposed||this.entries.get(t.url)!==t){ft(o);return}t.state="ready",t.image=o,t.bytes=Z(o),t.controller=void 0,t.pinned=false,this.bytes+=t.bytes,this.settle(t)},o=>{if(!(i.signal.aborted||this.disposed)&&this.entries.get(t.url)===t){if(t.attempts<be&&!Me(o,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&&ft(i.image),this.options.onEvict(i.url)}}}function Z(n){return n.width*n.height*4}function Me(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 Ee=.1;class ke{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,Ee):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 Le=2*1024*1024;function _e(n,t,e=Le){const i=new Set;let s=e,o=false;return{get deferred(){return o},getTile(r){const a=n(r);if(!a||a.kind==="media"||a.opaque||i.has(r)||t(r))return a;const u=a.width*a.height*4;if(i.size>0&&u>s){o=true;return}return s-=u,i.add(r),a}}}function Pe(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 Ae(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 o=i.split(",").map(Number);if(o.length!==4||o.some(d=>!Number.isFinite(d)))return null;let[r,a,u,c]=o;s&&(r=r/100*t,a=a/100*e,u=u/100*t,c=c/100*e);const m=Math.max(0,r),g=Math.max(0,a),p=Math.min(t,r+u),l=Math.min(e,a+c);return p<=m||l<=g?null:{x:m,y:g,width:p-m,height:l-g}}const G=512,Ie=1024,Se=16e6;function _t(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 Re(n,t=Ie){const{width:e,height:i}=n,s=[],o=n.regionByPx&&n.sizeByW,r=(l,d,w)=>{const f=Math.ceil(e/l),x=Math.ceil(i/l);return{scaleFactor:l,width:f,height:x,tileWidth:d,tileHeight:w,cols:Math.ceil(f/d),rows:Math.ceil(x/w)}},a=(l,d)=>({scaleFactor:e/l,width:l,height:d,tileWidth:l,tileHeight:d,cols:1,rows:1,whole:true}),u=n.tiles[0];if(u){const{width:l,height:d}=o?Be(n,u,t):u;for(const w of u.scaleFactors)s.push(r(w,l,d))}else if(o){let l=Math.max(G,t);for(;l>G&&!$(n,l,l);)l/=2;for(let d=1;;d*=2){const w=r(d,l,l);if(s.push(w),w.cols===1&&w.rows===1)break}}const c=Math.max(0,...s.map(l=>l.scaleFactor));for(const l of n.sizes){const d=e/l.width;$(n,l.width,l.height)&&d>c+1e-9&&s.push(a(l.width,l.height))}const m=s.reduce((l,d)=>!l||d.scaleFactor>l.scaleFactor?d:l,null);if(m&&m.cols*m.rows>1&&n.sizeByW){const l=Math.max(e,i)/G;s.push(a(Math.ceil(e/l),Math.ceil(i/l)))}(!s.length||!u&&!o&&e*i<=Se)&&(s.some(l=>l.scaleFactor===1)||s.push(a(e,i)));const g=Oe(s).sort((l,d)=>d.scaleFactor-l.scaleFactor),p=Qt(n);return{width:e,height:i,levels:g,tile(l){const d=g[l.level],w=d.scaleFactor,f=d.cols===1&&d.rows===1;let x,v,b;if(f)x={x:0,y:0,width:e,height:i},v=d.width,b=d.height;else{const M=Math.round(l.col*d.tileWidth*w),E=Math.round(l.row*d.tileHeight*w);x={x:M,y:E,width:Math.min(Math.round(d.tileWidth*w),e-M),height:Math.min(Math.round(d.tileHeight*w),i-E)},v=Math.ceil(x.width/w),b=Math.ceil(x.height/w)}return{...l,region:x,url:at(n,x,v,b),fallbackUrl:p?at(n,x,v,b,p):void 0}}}}function Be(n,t,e){let i=Math.max(1,Math.floor(e/Math.max(t.width,t.height)));for(;i>1&&!$(n,t.width*i,t.height*i);)i--;return{width:t.width*i,height:t.height*i}}function $(n,t,e){return!(n.maxWidth&&t>n.maxWidth||n.maxHeight&&e>n.maxHeight||n.maxArea&&t*e>n.maxArea)}function Oe(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 Ce(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 P(n,t,e){const i=n.levels[t],s=i.tileWidth*i.scaleFactor,o=i.tileHeight*i.scaleFactor,r=Math.max(0,e.x),a=Math.max(0,e.y),u=Math.min(n.width,e.x+e.width),c=Math.min(n.height,e.y+e.height);if(u<=r||c<=a)return[];const m=Math.max(0,Math.floor(r/s)),g=Math.min(i.cols-1,Math.floor((u-1e-9)/s)),p=Math.max(0,Math.floor(a/o)),l=Math.min(i.rows-1,Math.floor((c-1e-9)/o)),d=[];for(let w=p;w<=l;w++)for(let f=m;f<=g;f++)d.push({level:t,col:f,row:w});return d}async function mt(n,t){if(n.media)return ze(n,n.media);let e=null,i=null;if(n.service)try{e=Re(await jt(n.service,t.infoOptions))}catch(p){i=p}if(!e){if(!n.url)throw i??new Error("Image has no source");const p=await t.loadStatic(n.url);t.cache.seed(n.url,p),e=_t(n.url,p.naturalWidth,p.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},o=Ae(n.region,s.width,s.height)??{x:0,y:0,width:s.width,height:s.height},r=e.width/s.width,a=e.height/s.height,u={x:o.x*r,y:o.y*a,width:o.width*r,height:o.height*a},c=Pe(n.rotation),m=c?Ue(u,c):void 0;return{id:n.id,spec:n,pyramid:e,size:s,clip:u,contentClip:o,rect:{x:0,y:0,width:o.width,height:o.height},...m?{turn:m}:{}}}function De(n,t){if(n.media)return Promise.resolve();const{pyramid:e,clip:i}=n;return t.prefetch(P(e,0,i).map(s=>{const o=e.tile(s);return{url:o.url,fallbackUrl:o.fallbackUrl}}))}const Pt="media:";function ze(n,t){var a,u;const e=n.width||((a=n.placement)==null?void 0:a.width)||t.element.videoWidth||1600,i=n.height||((u=n.placement)==null?void 0:u.height)||t.element.videoHeight||900,s=`${Pt}${n.id}`,o={width:e,height:i},r={x:0,y:0,width:e,height:i};return{id:n.id,spec:n,pyramid:_t(s,e,i),media:{kind:"media",source:t.element,width:e,height:i,naturalWidth:e,naturalHeight:i},size:o,clip:r,contentClip:r,rect:{...r}}}function Ue(n,{degrees:t,mirror:e}){const i=t*Math.PI/180,s=m=>Math.abs(m)<1e-12?0:m,o=s(Math.cos(i)),r=s(Math.sin(i)),a=Math.abs(n.width*o)+Math.abs(n.height*r),u=Math.abs(n.width*r)+Math.abs(n.height*o),c=A(S(a/2,u/2),{a:o,b:r,c:-r,d:o,e:0,f:0},I(e?-1:1,1),S(-(n.x+n.width/2),-(n.y+n.height/2)));return{orient:c,unorient:zt(c),width:a,height:u}}function At(n){var t;return((t=n.turn)==null?void 0:t.orient)??S(-n.clip.x,-n.clip.y)}function We(n,t){const{turn:e,clip:i}=n;if(!e)return{...t,x:i.x+t.x,y:i.y+t.y};const s=kt(e.unorient,t),o=Math.max(s.x,i.x),r=Math.max(s.y,i.y);return{x:o,y:r,width:Math.max(0,Math.min(s.x+s.width,i.x+i.width)-o),height:Math.max(0,Math.min(s.y+s.height,i.y+i.height)-r)}}function Fe(n,t){const{turn:e,clip:i}=n;return e?Et(e.unorient,t):{x:i.x+t.x,y:i.y+t.y}}function pt(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 gt(n){if(!n.length)return null;if(n.every(i=>i.spec.placement)){for(const i of n)i.rect={...i.spec.placement};return D(n.map(i=>i.rect))}const t=pt(n[0]).height;let e=0;for(const i of n){const s=pt(i),o=s.width*t/s.height;i.rect={x:e,y:0,width:o,height:t},e+=o}return{x:0,y:0,width:e,height:t}}function W(n){const t=n.turn??n.clip;return{x:n.rect.width/t.width,y:n.rect.height/t.height}}function Ne(n){const t=W(n);return A(S(n.rect.x,n.rect.y),I(t.x,t.y),At(n))}function He(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 Ze=5e6,It=1e7,Ge=15e6,Xe=2e7,wt=2;function yt(n){const{items:t,camera:e,viewport:i,pixelRatio:s,getTile:o,destination:r}=n,a=n.has??(l=>o(l)!==void 0),u=Nt(e,i),c=[],m=[],g=[],p=(l,d,w)=>{const f=l.tile(d);m.push({url:f.url,fallbackUrl:f.fallbackUrl,priority:w})};for(const l of t){const{pyramid:d,clip:w,rect:f}=l,x=W(l);if(n.wantOverview)for(const y of P(d,0,w))p(d,y,Xe);const v=xt(l,e,i,s),b=r?xt(l,r,i,s):v;if(g.push((v==null?void 0:v.target)??-1),!v&&!b)continue;const M=y=>T=>{const _=d.tile(T).region;return Math.hypot(_.x+_.width/2-y.x,_.y+_.height/2-y.y)};if(b){const y=M(b.center);for(const T of P(d,0,b.area))p(d,T,y(T)/1e3);if(b.target>0)for(const T of P(d,b.target,b.area))p(d,T,It+y(T))}if(!v)continue;const{area:E,target:k}=v,L=M(v.center),O=P(d,0,E),F=k===0?[]:P(d,k,E);if(b!==v){for(const T of O)p(d,T,L(T)/1e3);const y=k-wt;if(y>0)for(const T of P(d,y,E))p(d,T,Ge+L(T))}const j=k-wt;if(b===v&&j>0){const y=new Set;for(const T of F){const _=d.tile(T);if(!a(_.url))for(const R of P(d,j,_.region)){const B=`${R.col},${R.row}`;y.has(B)||(y.add(B),p(d,R,Ze+L(R)))}}}if(l.spec.hidden)continue;const St=(k===0?O:F).every(y=>o(d.tile(y).url)!==void 0)?[k]:Array.from({length:k+1},(y,T)=>T),Rt=A(u,S(f.x,f.y),I(x.x,x.y),At(l));for(const y of St){const T=y===0?O:y===k?F:P(d,y,E),_=d.levels[y].cols*d.levels[y].rows>1;for(const R of T){const B=d.tile(R),J=o(B.url);if(!J)continue;const tt=Ke(l,B.region,J,Rt,_);tt&&c.push({...tt,url:B.url})}}}return m.sort((l,d)=>l.priority-d.priority),{draws:c,wants:qe(m),levels:g}}function xt(n,t,e,i){const{pyramid:s,rect:o}=n,r=q(t,e);if(!Ut(r,o))return null;const a=W(n),u=Math.max(r.x,o.x),c=Math.max(r.y,o.y),m=Math.min(r.x+r.width,o.x+o.width),g=Math.min(r.y+r.height,o.y+o.height),p=1/(a.x*t.zoom*i);return{area:We(n,{x:(u-o.x)/a.x,y:(c-o.y)/a.y,width:(m-u)/a.x,height:(g-c)/a.y}),center:Fe(n,{x:(t.x-o.x)/a.x,y:(t.y-o.y)/a.y}),target:Ce(s,p)}}function Ke(n,t,e,i,s){const{clip:o}=n,r=Math.max(t.x,o.x),a=Math.max(t.y,o.y),u=Math.min(t.x+t.width,o.x+o.width),c=Math.min(t.y+t.height,o.y+o.height);if(u<=r||c<=a)return null;const m=e.width/t.width,g=e.height/t.height,p=1e-6;return{item:n,image:e,transform:A(i,S(t.x,t.y),I(1/m,1/g)),crop:{x:(r-t.x)*m,y:(a-t.y)*g,width:(u-r)*m,height:(c-a)*g},bleed:{right:s&&u<o.x+o.width-p,bottom:s&&c<o.y+o.height-p}}}function qe(n){const t=new Set;return n.filter(e=>t.has(e.url)?false:(t.add(e.url),true))}const Ve={maxZoomPixelRatio:1.1,minZoomImageRatio:.9,upscale:true,animationTime:.09,animationDuration:void 0,springStiffness:6.5,constrainDuringPan:true,request:void 0,byteBudget:192*1024*1024,maxInFlight:16,releaseAfterMs:2e3},Ye=2,$e=3,Qe=.1,X=1e-6,vt=1e8,je=6,Q={top:0,right:0,bottom:0,left:0};function bt(n,t="padding"){if(!n||typeof getComputedStyle!="function")return Q;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 Je=(n,t)=>n.top===t.top&&n.right===t.right&&n.bottom===t.bottom&&n.left===t.left;let ti;class ei{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",Q);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,"interacting",false);h(this,"lastEmitted",null);h(this,"generation",0);h(this,"landing",[]);h(this,"ahead",null);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 u,c;if(this.disposed)return false;const e2=this.camera.step(t2,this.viewport),i2=this.camera.current,s2=this.backend,o=_e(this.getTile,m=>s2?s2.has(m):true),r=yt({items:this.items,camera:i2,viewport:this.viewport,pixelRatio:this.pixelRatio,getTile:o.getTile,has:this.hasTile,wantOverview:!!this.navigator,destination:e2?this.camera.destination:void 0}),a=(this.landing.length?[...this.landing,...r.wants]:r.wants).filter(m=>!m.url.startsWith(Pt));if(this.cache.update(a),this.ahead&&!e2&&!this.cache.pending){const m=this.ahead;this.ahead=null,this.readAhead(m)}return r.draws.length?this.setUnloadable(false):a.length&&a.every(m=>this.cache.failed(m.url))&&this.setUnloadable(true),this.paint(r.draws),(u=this.overlays)==null||u.position(i2,this.viewport),(c=this.navigator)==null||c.render(this.items.filter(m=>!m.spec.hidden),this.worldBounds,q(i2,this.viewport),this.pixelRatio,this.getTile,this.contentVersion),(!this.lastEmitted||!st(this.lastEmitted,i2))&&(this.lastEmitted={...i2},this.opened&&this.emit("viewport")),e2||o.deferred});h(this,"getTile",t2=>this.mediaByKey.get(t2)??this.cache.get(t2));h(this,"hasTile",t2=>this.mediaByKey.has(t2)||this.cache.has(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={...Ve,...K(e)},Mt()&&(this.options.animationTime=0,this.options.animationDuration!==void 0&&(this.options.animationDuration=0));const{animationDuration:i,springStiffness:s}=this.options;this.camera=new ce({x:0,y:0,zoom:1,rotation:0},this.options.animationTime,i===void 0?void 0:{duration:i,stiffness:s}),this.loop=new ke(this.tick),this.gestureOptions=K(e.gestures??{}),Mt()&&(this.gestureOptions.flickMomentum=0),this.gestures=new fe(t,this,{...V,...this.gestureOptions}),this.cache=new Te({load:(o,r)=>this.loadTile(o,r),onSettled:()=>{this.contentVersion++,this.invalidate()},onEvict:o=>{var r;return(r=this.backend)==null?void 0:r.release(o)},byteBudget:this.options.byteBudget,maxInFlight:this.options.maxInFlight}),this.visible=ii(t),this.visible?this.acquireBackend():this.holder.hiddenSince=Tt(),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,o=()=>s!==this.generation||this.disposed,r=new Map(this.items.map(f=>[f.id,f]));this.landing=[],this.ahead=null;const a=this.prepareContext(),u=[],c=t.map(f=>{const x=r.get(f.id);if(x&&He(x.spec,f))return x.spec=f,{item:Promise.resolve(x),ready:Promise.resolve()};let v,b,M;const E=new Promise((L,O)=>{v=L,b=O}),k=new Promise(L=>M=L);return u.push(()=>mt(f,a).then(L=>(v(L),De(L,this.cache)),b).then(M,M)),{item:E,ready:k}}),m=()=>{var f;return(f=u.shift())==null?void 0:f().then(m)};for(let f=0;f<je;f++)m();const g=t.flatMap(f=>f.placement?[f.placement]:[]);let p=false;if(!this.items.length&&t.length>1&&g.length===t.length){const f=D(e?[e,...g]:g),x=[];c.forEach(({item:v,ready:b},M)=>{Promise.all([v,b]).then(([E])=>{o()||(x[M]=E,this.place(x.filter(Boolean),f,i,!p,false),p=true)},()=>{})})}const l=await Promise.allSettled(c.map(({item:f})=>f));if(o()||(this.landing=this.landingWants(l.flatMap(f=>f.status==="fulfilled"?[f.value]:[]),e,i||!this.opened),this.invalidate(),await Promise.all(c.map(({ready:f})=>f)),o()))return;this.landing=[];const d=l.filter(f=>f.status==="fulfilled").map(f=>f.value),w=l.filter(f=>f.status==="rejected").map(f=>f.reason);w.length&&this.emit("error",w),this.setUnloadable(t.length>0&&!d.length&&w.length>0),this.place(d,e,i,!p,true)}place(t,e,i,s,o){this.items=t,this.watchMedia(t);const r=gt(t);this.worldBounds=e?r?D([e,r]):e:r,this.contentVersion++,this.worldBounds&&(this.opened?s?(i?this.home(true):this.camera.set(this.constrain(this.camera.current)),this.emit("change")):o&&this.emit("change"):(this.opened=true,this.home(true),this.emit("open"))),this.invalidate()}prefetch(t,{world:e}={}){const i=t.filter(s=>!s.media);this.ahead=i.length?{images:i,world:e}:null,this.ahead&&this.invalidate()}async readAhead({images:t,world:e}){const i=this.generation,s=this.prepareContext(),o=(await Promise.allSettled(t.map(a=>mt(a,s)))).flatMap(a=>a.status==="fulfilled"?[a.value]:[]);if(!o.length||i!==this.generation||this.disposed)return;const r=this.landingWants(o,e,true).filter(a=>a.priority<It-vt);await this.cache.prefetch(r)}prepareContext(){return{cache:this.cache,loadStatic:t=>this.loadTile(t),infoOptions:{request:this.options.request}}}clear(){this.setUnloadable(false),this.generation++,this.landing=[],this.ahead=null,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 o=e.has(s.id);!!s.spec.hidden!==o&&(s.spec={...s.spec,hidden:o},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 o=0;o<i.cols;o++)if(!this.getTile(e.pyramid.tile({level:0,col:o,row:s}).url))return false;return true}fitBounds(t,e=false,i=Q){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:o,left:r},a=1/0){const{width:u,height:c}=this.viewport,m=Ht(t,{width:Math.max(1,u-r-s),height:Math.max(1,c-i-o)},e),g=Math.min(m.zoom,a);return{...z(Wt(t),{x:(u+r-s)/2,y:(c+i-o)/2},g,e,this.viewport),zoom:g,rotation:e}}fitItemRect(t,e,i=false){const s=this.itemRectToWorld(t,e);s&&this.fitAnnotation(s,i)}fitAnnotation(t,e=false){var o;const i=this.items[0];if(!i)return;const s=i.rect.width*Qe;this.fitBounds({x:t.x-s,y:t.y-s,width:t.width+s*2,height:t.height+s*2},e,bt((o=this.overlays)==null?void 0:o.container,"scroll-padding"))}getBounds(){return q(this.camera.current,this.viewport)}getHomeBounds(){return this.worldBounds?{...this.worldBounds}:null}getCamera(){return{...this.camera.current}}getZoomLimits(){var e;const t=((e=this.homeCamera())==null?void 0:e.zoom)??1;return{home:t,min:t*this.options.minZoomImageRatio,max:Math.max(t,this.closestZoom())}}closestZoom(t=this.items){const e=t.length?Math.min(...t.map(i=>W(i).x)):1;return this.options.maxZoomPixelRatio/e}home(t=false){const e=this.homeCamera();if(!e)return;const i=this.atHome;this.atHome=true,this.animateTo(e,t),!i&&this.opened&&this.emit("viewport")}atMaxZoom(){return this.camera.destination.zoom>=this.getZoomLimits().max*(1-X)}viewLimits(){const{zoom:t,x:e,y:i,rotation:s}=this.camera.destination,{min:o,max:r}=this.getZoomLimits(),a=this.atHome?this.homeCamera():null;return{atMax:t>=r*(1-X),atMin:t<=o*(1+X),atHome:this.atHome&&(!a||Math.abs(t/a.zoom-1)<.001&&Math.hypot(e-a.x,i-a.y)*t<.5&&Math.abs(s-a.rotation)<.001)}}zoomBy(t,e,i=true){const s=i?this.camera.destination:this.camera.current,o=e??{x:this.viewport.width/2,y:this.viewport.height/2},r=it(s,this.viewport,o),{min:a,max:u}=this.getZoomLimits(),c=C(s.zoom*t,a,u),m=z(r,o,c,s.rotation,this.viewport),g=this.constrain({...s,...m,zoom:c});this.atHome=false,i?this.camera.animateTo({state:g,anchor:{world:r,screen:o}},this.viewport):this.camera.set(g),this.invalidate()}panBy(t,e,i=false){const s=i?this.camera.destination:this.camera.current,o=Et(A(I(1/s.zoom),Ft(-s.rotation)),{x:t,y:e}),r=this.constrain({...s,x:s.x-o.x,y:s.y-o.y});this.atHome=false,i?this.camera.animateTo({state:r},this.viewport):this.camera.set(r),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)}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({...V,...this.gestureOptions,...K(t)})}setInteracting(t){if(this.interacting=t,t){this.camera.stop();return}if(this.options.constrainDuringPan)return;const e=this.camera.destination,i=this.constrain(e);st(e,i)||this.animateTo(i,false)}worldToScreenPoint(t){return Zt(this.camera.current,this.viewport,t)}screenToWorldPoint(t){return it(this.camera.current,this.viewport,t)}itemRectToWorld(t,e){const i=this.items[t];if(!i)return null;const{contentClip:s,clip:o}=i;if(i.turn)return kt(A(Ne(i),I(o.width/s.width,o.height/s.height)),e);const r=i.rect.width/s.width,a=i.rect.height/s.height;return{x:i.rect.x+(e.x-s.x)*r,y:i.rect.y+(e.y-s.y)*a,width:e.width*r,height:e.height*a}}attachNavigator(t){var o;(o=this.navigator)==null||o.dispose(),this.navigator=null;const e=++this.navigatorAsked;let i=null,s=false;return import("./Navigator-CVDhe8R_.mjs").then(r=>{s||this.disposed||e!==this.navigatorAsked||(i=new r.Navigator(t,(a,u)=>this.panTo(a,u)),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,o,r,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),(o=this.navigator)==null||o.dispose(),this.navigator=null,this.releaseBackend(),this.cache.dispose(),(r=this.dom)==null||r.dispose(),(a=this.overlays)==null||a.dispose(),this.items=[],this.detachMedia.forEach(u=>u()),this.mediaByKey.clear(),this.listeners.clear(),delete this.host.dataset.backend)}landingWants(t,e,i){const s=t.map(c=>({...c,rect:{...c.rect}})),o=gt(s),r=e?o?D([e,o]):e:o;if(!r)return[];const a=i?this.homeCamera(r,s):this.camera.destination;if(!a)return[];const{wants:u}=yt({items:s,camera:a,viewport:this.viewport,pixelRatio:this.pixelRatio,getTile:c=>this.cache.get(c)});return u.map(c=>({...c,priority:c.priority-vt}))}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,o=()=>this.invalidate(),r=["play","seeked","loadeddata","resize"];r.forEach(a=>s.addEventListener(a,o)),this.detachMedia.push(()=>r.forEach(a=>s.removeEventListener(a,o)))}}paint(t){const e=this.backend,i=[],s=(e==null?void 0:e.kind)==="webgl2";e==null||e.begin();for(const o of t){const{image:r}=o;if(!(r.kind==="media"||r.kind==="element"&&s&&(r.opaque||this.opaqueUrls.has(o.url)))&&e){if(e.draw({key:o.url,source:r.source,width:r.width,height:r.height,transform:o.transform,crop:o.crop,opacity:1,bleed:o.bleed})!=="tainted"||r.kind==="bitmap")continue;this.opaqueUrls.add(o.url)}(r.kind==="element"||r.kind==="media")&&i.push({key:`${o.item.id}|${o.url}`,element:r.source,width:r.width,height:r.height,transform:o.transform,crop:o.crop,opacity:1})}e==null||e.end(),this.dom?this.dom.sync(i):i.length&&!this.domAsked&&(this.domAsked=true,import("./DomLayers-BIFA6J56.mjs").then(({DomLayers:o})=>{if(this.disposed)return;const r=new o(this.host);this.overlays&&this.host.insertBefore(r.container,this.overlays.container),this.dom=r,this.invalidate()}))}loadTile(t,e){return pe(t,{signal:e,request:this.options.request,maxTextureSize:this.backend instanceof U?this.backend.maxTextureSize:void 0})}animateTo(t,e){this.camera.animateTo({state:t},this.viewport,e),this.invalidate()}homeCamera(t=this.worldBounds,e=this.items){if(!t)return null;const i=2*Math.PI,s=Math.round(this.camera.destination.rotation/i)*i||0;return this.fit(t,s,this.inset,this.options.upscale?1/0:this.closestZoom(e))}constrain(t,{allowBeyondLimits:e=false}={}){const i=this.worldBounds;if(!i)return t;const{min:s,max:o}=this.getZoomLimits(),r=e?C(t.zoom,s,Math.max(o,t.zoom)):C(t.zoom,s,o);return this.interacting&&!this.options.constrainDuringPan?{...t,zoom:r}:{...t,zoom:r,x:C(t.x,i.x,i.x+i.width),y:C(t.y,i.y,i.y+i.height)}}acquireBackend(t=true){var o,r;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,((o=this.dom)==null?void 0:o.container)??((r=this.overlays)==null?void 0:r.container)??null);const i=t&&(this.backendPreference==="webgl2"||this.backendPreference==="auto"&&this.contextLosses<$e);let s=null;i&&(Ct(this.holder)||this.backendPreference==="webgl2")&&(s=U.create(e,{onLost:this.onContextLost}),s||et(this.holder)),s?this.install(s):this.backendPreference==="webgl2"?this.none(e):(this.pending=e,(ti??(ti=import("./Canvas2DBackend-kJpOk_Pb.mjs"))).then(({Canvas2DBackend:a})=>{if(this.pending!==e)return;this.pending=null;const u=a.create(e);u?this.install(u):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(et(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=Tt()),!(!this.backend||this.releaseTimer)&&(this.releaseTimer=setTimeout(()=>this.giveBack(),this.options.releaseAfterMs))}measure(t=false){var u;const e=this.host.getBoundingClientRect(),i=Math.max(1,e.width),s=Math.max(1,e.height),o=bt(this.host),r=Math.min(typeof window<"u"&&window.devicePixelRatio||1,Ye);if(i===this.viewport.width&&s===this.viewport.height&&r===this.pixelRatio&&Je(o,this.inset))return;const a=this.viewport;if(this.viewport={width:i,height:s},this.inset=o,this.pixelRatio=r,(u=this.backend)==null||u.resize(i,s,r),this.opened){if(this.atHome)this.home(true);else{const c=this.camera.current,m=i/Math.max(a.width,1);this.camera.set(this.constrain({...c,zoom:c.zoom*m}))}this.emit("viewport")}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 Tt=()=>typeof performance<"u"?performance.now():Date.now();function ii(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 Mt(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function K(n){return Object.fromEntries(Object.entries(n).filter(([,t])=>t!==void 0))}const ui=(n,t)=>new ei(n,t);export{te as b,Jt as h,yt as p,ui as r};
|
|
22
|
+
`;class U{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=ne(e,ee,se);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 o=e.createVertexArray();e.bindVertexArray(o);const r=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,r),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=o,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 U(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)),o=Math.max(1,Math.round(e*i));this.canvas.width!==s&&(this.canvas.width=s),this.canvas.height!==o&&(this.canvas.height=o)}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||!Jt(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},o=te(t,this.pixelRatio),r=A(t.transform,S(s.x,s.y),I(s.width+o.x,s.height+o.y));return e.uniformMatrix3fv(this.uniforms.matrix,false,Dt(r,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(r){if(i||e.deleteTexture(s),oe(r))return"tainted";throw r}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 o={texture:s,width:t.width,height:t.height};return this.textures.set(t.key,o),o}}function ne(n,t,e){const i=ht(n,n.VERTEX_SHADER,t),s=ht(n,n.FRAGMENT_SHADER,e),o=n.createProgram();if(!o)throw new Error("Could not create WebGL program");if(n.attachShader(o,i),n.attachShader(o,s),n.linkProgram(o),n.deleteShader(i),n.deleteShader(s),!n.getProgramParameter(o,n.LINK_STATUS)){const r=n.getProgramInfoLog(o);throw n.deleteProgram(o),new Error(`Could not link WebGL program: ${r}`)}return o}function ht(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 oe(n){return typeof n=="object"&&n!==null&&n.name==="SecurityError"}const re=.09,ae=1e-4,ct=.05,he=1e-4;class ce{constructor(t,e=re,i){h(this,"current");h(this,"target",null);h(this,"timeConstant");h(this,"spring");h(this,"start");h(this,"elapsed",0);this.current={...t},this.start={...t},this.timeConstant=e,this.spring=i}get destination(){return this.target?{...this.target.state}:{...this.current}}set(t){this.current={...t},this.target=null}animateTo(t,e,i=false){const s=this.spring?this.spring.duration<=0:this.timeConstant===0;if(i||s){this.set(t.state);return}let o=t.anchor;if(o){const r=z(o.world,o.screen,t.state.zoom,t.state.rotation,e);Math.hypot(r.x-t.state.x,r.y-t.state.y)*t.state.zoom>ct&&(o=void 0)}this.start={...this.current},this.elapsed=0,this.target={state:{...t.state},anchor:o}}stop(){this.target=null}step(t,e){const i=this.target;if(!i)return false;const s=i.state;let o,r;if(this.spring){this.elapsed+=Math.max(t,0);const g=this.elapsed/this.spring.duration;if(g>=1)return this.current={...s},this.target=null,false;const p=this.spring.stiffness;o=this.start,r=(1-Math.exp(-p*g))/(1-Math.exp(-p))}else o=this.current,r=1-Math.exp(-Math.max(t,0)/this.timeConstant);const a=Math.exp(Math.log(o.zoom)+(Math.log(s.zoom)-Math.log(o.zoom))*r),u=o.rotation+(s.rotation-o.rotation)*r,c=i.anchor?z(i.anchor.world,i.anchor.screen,a,u,e):{x:o.x+(s.x-o.x)*r,y:o.y+(s.y-o.y)*r};return this.current={x:c.x,y:c.y,zoom:a,rotation:u},this.spring?true:Math.abs(Math.log(s.zoom/a))<ae&&Math.abs(s.rotation-u)<he&&Math.hypot(s.x-c.x,s.y-c.y)*a<ct?(this.current={...s},this.target=null,false):true}}const V={clickToZoom:true,dblClickToZoom:true,pinchToZoom:true,scrollToZoom:false,navigable:true,flickEnabled:true,flickMinSpeed:200,flickMomentum:.25},N=2,lt=1.5,dt=.1,le=100,de=.002,ue=.01;class fe{constructor(t,e,i=V){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||nt(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;Gt(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 o=i2.x-e2.x,r=i2.y-e2.y;this.down&&Math.hypot(i2.x-this.down.x,i2.y-this.down.y)>Xt&&(this.down.moved=true),(s=this.down)!=null&&s.moved&&this.options.navigable&&this.target.panBy(o,r,!this.tracksPointer(t2.pointerType)),this.samples.push({x:i2.x,y:i2.y,t:t2.timeStamp});const a=t2.timeStamp-le;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 o=this.pinchState();this.options.pinchToZoom&&this.pinch.distance>0&&this.target.zoomBy(o.distance/this.pinch.distance,o.mid,false),this.target.panBy(o.mid.x-this.pinch.mid.x,o.mid.y-this.pinch.mid.y,false),this.pinch=o}});h(this,"onPointerUp",t2=>{var u,c,m,g,p,l;if(!this.pointers.has(t2.pointerId))return;if(this.pointers.delete(t2.pointerId),(c=(u=this.element).releasePointerCapture)==null||c.call(u,t2.pointerId),this.pointers.size===1){this.pinch=null;const[d]=this.pointers.values();this.samples=[{...d,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<ot){if((g=(m=this.target).dismiss)!=null&&g.call(m)){this.lastTap=null;return}if(rt(t2.pointerType,this.penHovers)){const d=this.lastTap;this.options.navigable&&(this.options.clickToZoom||this.options.dblClickToZoom)&&d&&t2.timeStamp-d.t<ot&&Math.hypot(i2.x-d.x,i2.y-d.y)<Kt?(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/N,i2,true):this.zoomIn(i2):(l=(p=this.target).tap)==null||l.call(p,i2);return}if(!this.options.navigable||!this.tracksPointer(t2.pointerType))return;const o=this.samples[0],r=this.samples[this.samples.length-1],a=((r==null?void 0:r.t)??0)-((o==null?void 0:o.t)??0);if(o&&r&&a>0&&t2.timeStamp-r.t<50){const d=(r.x-o.x)/a*1e3,w=(r.y-o.y)/a*1e3,f=this.options.flickMomentum;f>0&&Math.hypot(d,w)>this.options.flickMinSpeed&&this.target.panBy(d*f,w*f,true)}});h(this,"onDoubleClick",t2=>{this.options.navigable&&(this.options.clickToZoom||!this.options.dblClickToZoom||rt(this.lastPointerType,this.penHovers)||nt(t2.target,this.element)||(t2.shiftKey?this.target.zoomBy(1/N,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&&qt(t2.target,this.element,t2.deltaY))return;t2.preventDefault();const i2=me(t2),s=e2?ue:de;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*dt*(t2.shiftKey?3:1),s=e2.height*dt*(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(lt,void 0,true);break;case"-":case"_":this.target.zoomBy(1/lt,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(N,t,true)}tracksPointer(t){return t==="touch"||this.options.flickEnabled}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 me(n){return n.deltaMode===1?n.deltaY*16:n.deltaMode===2?n.deltaY*400:n.deltaY}class Lt extends Error{constructor(t,e,i){super(t),this.url=e,this.status=i,this.name="ImageLoadError"}}const ut=new Set;async function pe(n,t={}){const{signal:e,maxTextureSize:i,request:s}=t,o=Vt(s),r=we(n);if(typeof createImageBitmap!="function"||typeof fetch!="function")return H(n,{signal:e,cors:true,withCredentials:o});if(r&&ut.has(r))return H(n,{signal:e,cors:false,withCredentials:o});let a;try{a=await Yt(s,n,{mode:"cors",signal:e})}catch(p){if(ye(p,e))throw p;const l=await H(n,{signal:e,cors:false,withCredentials:o});return r&&ut.add(r),l}if(!a.ok)throw $t(a),new Lt(`Image request failed with ${a.status}`,n,a.status);const u=await a.blob();let c=await ge(u);const m=c.width,g=c.height;if(i&&(c.width>i||c.height>i)){const p=i/Math.max(c.width,c.height),l=await createImageBitmap(c,{resizeWidth:Math.max(1,Math.floor(c.width*p)),resizeHeight:Math.max(1,Math.floor(c.height*p)),resizeQuality:"high"});c.close(),c=l}if(e!=null&&e.aborted)throw c.close(),Y();return{kind:"bitmap",source:c,width:c.width,height:c.height,naturalWidth:m,naturalHeight:g,opaque:false}}async function ge(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 H(n,{signal:t,cors:e,withCredentials:i}){return new Promise((s,o)=>{if(t!=null&&t.aborted){o(Y());return}const r=new Image;r.decoding="async",e&&(r.crossOrigin=i?"use-credentials":"anonymous");const a=()=>{r.onload=null,r.onerror=null,t==null||t.removeEventListener("abort",u)},u=()=>{a(),r.src="",o(Y())};t==null||t.addEventListener("abort",u),r.onload=()=>{a();const c=()=>s({kind:"element",source:r,width:r.naturalWidth,height:r.naturalHeight,naturalWidth:r.naturalWidth,naturalHeight:r.naturalHeight,opaque:!e});typeof r.decode=="function"?r.decode().then(c,c):c()},r.onerror=()=>{a(),o(new Lt("Image failed to load",n))},r.src=n})}function we(n){var t;try{return new URL(n,(t=globalThis.location)==null?void 0:t.href).origin}catch{return null}}function ye(n,t){return!!(t!=null&&t.aborted)||typeof n=="object"&&n!==null&&n.name==="AbortError"}function Y(){const n=new Error("Aborted");return n.name="AbortError",n}function ft(n){n.kind==="bitmap"&&n.source.close()}const xe=192*1024*1024,ve=16,be=2;class Te{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??xe,this.maxInFlight=t.maxInFlight??ve}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:Z(e),lastUsed:this.frame,attempts:0,pinned:false,waiters:(i==null?void 0:i.waiters)??[]}),this.bytes+=Z(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(o=>{if(this.disposed||this.entries.get(t.url)!==t){ft(o);return}t.state="ready",t.image=o,t.bytes=Z(o),t.controller=void 0,t.pinned=false,this.bytes+=t.bytes,this.settle(t)},o=>{if(!(i.signal.aborted||this.disposed)&&this.entries.get(t.url)===t){if(t.attempts<be&&!Me(o,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&&ft(i.image),this.options.onEvict(i.url)}}}function Z(n){return n.width*n.height*4}function Me(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 Ee=.1;class ke{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,Ee):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 Le=2*1024*1024;function _e(n,t,e=Le){const i=new Set;let s=e,o=false;return{get deferred(){return o},getTile(r){const a=n(r);if(!a||a.kind==="media"||a.opaque||i.has(r)||t(r))return a;const u=a.width*a.height*4;if(i.size>0&&u>s){o=true;return}return s-=u,i.add(r),a}}}function Pe(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 Ae(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 o=i.split(",").map(Number);if(o.length!==4||o.some(d=>!Number.isFinite(d)))return null;let[r,a,u,c]=o;s&&(r=r/100*t,a=a/100*e,u=u/100*t,c=c/100*e);const m=Math.max(0,r),g=Math.max(0,a),p=Math.min(t,r+u),l=Math.min(e,a+c);return p<=m||l<=g?null:{x:m,y:g,width:p-m,height:l-g}}const G=512,Ie=1024,Se=16e6;function _t(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 Re(n,t=Ie){const{width:e,height:i}=n,s=[],o=n.regionByPx&&n.sizeByW,r=(l,d,w)=>{const f=Math.ceil(e/l),x=Math.ceil(i/l);return{scaleFactor:l,width:f,height:x,tileWidth:d,tileHeight:w,cols:Math.ceil(f/d),rows:Math.ceil(x/w)}},a=(l,d)=>({scaleFactor:e/l,width:l,height:d,tileWidth:l,tileHeight:d,cols:1,rows:1,whole:true}),u=n.tiles[0];if(u){const{width:l,height:d}=o?Be(n,u,t):u;for(const w of u.scaleFactors)s.push(r(w,l,d))}else if(o){let l=Math.max(G,t);for(;l>G&&!$(n,l,l);)l/=2;for(let d=1;;d*=2){const w=r(d,l,l);if(s.push(w),w.cols===1&&w.rows===1)break}}const c=Math.max(0,...s.map(l=>l.scaleFactor));for(const l of n.sizes){const d=e/l.width;$(n,l.width,l.height)&&d>c+1e-9&&s.push(a(l.width,l.height))}const m=s.reduce((l,d)=>!l||d.scaleFactor>l.scaleFactor?d:l,null);if(m&&m.cols*m.rows>1&&n.sizeByW){const l=Math.max(e,i)/G;s.push(a(Math.ceil(e/l),Math.ceil(i/l)))}(!s.length||!u&&!o&&e*i<=Se)&&(s.some(l=>l.scaleFactor===1)||s.push(a(e,i)));const g=Oe(s).sort((l,d)=>d.scaleFactor-l.scaleFactor),p=Qt(n);return{width:e,height:i,levels:g,tile(l){const d=g[l.level],w=d.scaleFactor,f=d.cols===1&&d.rows===1;let x,v,b;if(f)x={x:0,y:0,width:e,height:i},v=d.width,b=d.height;else{const M=Math.round(l.col*d.tileWidth*w),E=Math.round(l.row*d.tileHeight*w);x={x:M,y:E,width:Math.min(Math.round(d.tileWidth*w),e-M),height:Math.min(Math.round(d.tileHeight*w),i-E)},v=Math.ceil(x.width/w),b=Math.ceil(x.height/w)}return{...l,region:x,url:at(n,x,v,b),fallbackUrl:p?at(n,x,v,b,p):void 0}}}}function Be(n,t,e){let i=Math.max(1,Math.floor(e/Math.max(t.width,t.height)));for(;i>1&&!$(n,t.width*i,t.height*i);)i--;return{width:t.width*i,height:t.height*i}}function $(n,t,e){return!(n.maxWidth&&t>n.maxWidth||n.maxHeight&&e>n.maxHeight||n.maxArea&&t*e>n.maxArea)}function Oe(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 Ce(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 P(n,t,e){const i=n.levels[t],s=i.tileWidth*i.scaleFactor,o=i.tileHeight*i.scaleFactor,r=Math.max(0,e.x),a=Math.max(0,e.y),u=Math.min(n.width,e.x+e.width),c=Math.min(n.height,e.y+e.height);if(u<=r||c<=a)return[];const m=Math.max(0,Math.floor(r/s)),g=Math.min(i.cols-1,Math.floor((u-1e-9)/s)),p=Math.max(0,Math.floor(a/o)),l=Math.min(i.rows-1,Math.floor((c-1e-9)/o)),d=[];for(let w=p;w<=l;w++)for(let f=m;f<=g;f++)d.push({level:t,col:f,row:w});return d}async function mt(n,t){if(n.media)return ze(n,n.media);let e=null,i=null;if(n.service)try{e=Re(await jt(n.service,t.infoOptions))}catch(p){i=p}if(!e){if(!n.url)throw i??new Error("Image has no source");const p=await t.loadStatic(n.url);t.cache.seed(n.url,p),e=_t(n.url,p.naturalWidth,p.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},o=Ae(n.region,s.width,s.height)??{x:0,y:0,width:s.width,height:s.height},r=e.width/s.width,a=e.height/s.height,u={x:o.x*r,y:o.y*a,width:o.width*r,height:o.height*a},c=Pe(n.rotation),m=c?Ue(u,c):void 0;return{id:n.id,spec:n,pyramid:e,size:s,clip:u,contentClip:o,rect:{x:0,y:0,width:o.width,height:o.height},...m?{turn:m}:{}}}function De(n,t){if(n.media)return Promise.resolve();const{pyramid:e,clip:i}=n;return t.prefetch(P(e,0,i).map(s=>{const o=e.tile(s);return{url:o.url,fallbackUrl:o.fallbackUrl}}))}const Pt="media:";function ze(n,t){var a,u;const e=n.width||((a=n.placement)==null?void 0:a.width)||t.element.videoWidth||1600,i=n.height||((u=n.placement)==null?void 0:u.height)||t.element.videoHeight||900,s=`${Pt}${n.id}`,o={width:e,height:i},r={x:0,y:0,width:e,height:i};return{id:n.id,spec:n,pyramid:_t(s,e,i),media:{kind:"media",source:t.element,width:e,height:i,naturalWidth:e,naturalHeight:i},size:o,clip:r,contentClip:r,rect:{...r}}}function Ue(n,{degrees:t,mirror:e}){const i=t*Math.PI/180,s=m=>Math.abs(m)<1e-12?0:m,o=s(Math.cos(i)),r=s(Math.sin(i)),a=Math.abs(n.width*o)+Math.abs(n.height*r),u=Math.abs(n.width*r)+Math.abs(n.height*o),c=A(S(a/2,u/2),{a:o,b:r,c:-r,d:o,e:0,f:0},I(e?-1:1,1),S(-(n.x+n.width/2),-(n.y+n.height/2)));return{orient:c,unorient:zt(c),width:a,height:u}}function At(n){var t;return((t=n.turn)==null?void 0:t.orient)??S(-n.clip.x,-n.clip.y)}function We(n,t){const{turn:e,clip:i}=n;if(!e)return{...t,x:i.x+t.x,y:i.y+t.y};const s=kt(e.unorient,t),o=Math.max(s.x,i.x),r=Math.max(s.y,i.y);return{x:o,y:r,width:Math.max(0,Math.min(s.x+s.width,i.x+i.width)-o),height:Math.max(0,Math.min(s.y+s.height,i.y+i.height)-r)}}function Fe(n,t){const{turn:e,clip:i}=n;return e?Et(e.unorient,t):{x:i.x+t.x,y:i.y+t.y}}function pt(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 gt(n){if(!n.length)return null;if(n.every(i=>i.spec.placement)){for(const i of n)i.rect={...i.spec.placement};return D(n.map(i=>i.rect))}const t=pt(n[0]).height;let e=0;for(const i of n){const s=pt(i),o=s.width*t/s.height;i.rect={x:e,y:0,width:o,height:t},e+=o}return{x:0,y:0,width:e,height:t}}function W(n){const t=n.turn??n.clip;return{x:n.rect.width/t.width,y:n.rect.height/t.height}}function Ne(n){const t=W(n);return A(S(n.rect.x,n.rect.y),I(t.x,t.y),At(n))}function He(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 Ze=5e6,It=1e7,Ge=15e6,Xe=2e7,wt=2;function yt(n){const{items:t,camera:e,viewport:i,pixelRatio:s,getTile:o,destination:r}=n,a=n.has??(l=>o(l)!==void 0),u=Nt(e,i),c=[],m=[],g=[],p=(l,d,w)=>{const f=l.tile(d);m.push({url:f.url,fallbackUrl:f.fallbackUrl,priority:w})};for(const l of t){const{pyramid:d,clip:w,rect:f}=l,x=W(l);if(n.wantOverview)for(const y of P(d,0,w))p(d,y,Xe);const v=xt(l,e,i,s),b=r?xt(l,r,i,s):v;if(g.push((v==null?void 0:v.target)??-1),!v&&!b)continue;const M=y=>T=>{const _=d.tile(T).region;return Math.hypot(_.x+_.width/2-y.x,_.y+_.height/2-y.y)};if(b){const y=M(b.center);for(const T of P(d,0,b.area))p(d,T,y(T)/1e3);if(b.target>0)for(const T of P(d,b.target,b.area))p(d,T,It+y(T))}if(!v)continue;const{area:E,target:k}=v,L=M(v.center),O=P(d,0,E),F=k===0?[]:P(d,k,E);if(b!==v){for(const T of O)p(d,T,L(T)/1e3);const y=k-wt;if(y>0)for(const T of P(d,y,E))p(d,T,Ge+L(T))}const j=k-wt;if(b===v&&j>0){const y=new Set;for(const T of F){const _=d.tile(T);if(!a(_.url))for(const R of P(d,j,_.region)){const B=`${R.col},${R.row}`;y.has(B)||(y.add(B),p(d,R,Ze+L(R)))}}}if(l.spec.hidden)continue;const St=(k===0?O:F).every(y=>o(d.tile(y).url)!==void 0)?[k]:Array.from({length:k+1},(y,T)=>T),Rt=A(u,S(f.x,f.y),I(x.x,x.y),At(l));for(const y of St){const T=y===0?O:y===k?F:P(d,y,E),_=d.levels[y].cols*d.levels[y].rows>1;for(const R of T){const B=d.tile(R),J=o(B.url);if(!J)continue;const tt=Ke(l,B.region,J,Rt,_);tt&&c.push({...tt,url:B.url})}}}return m.sort((l,d)=>l.priority-d.priority),{draws:c,wants:qe(m),levels:g}}function xt(n,t,e,i){const{pyramid:s,rect:o}=n,r=q(t,e);if(!Ut(r,o))return null;const a=W(n),u=Math.max(r.x,o.x),c=Math.max(r.y,o.y),m=Math.min(r.x+r.width,o.x+o.width),g=Math.min(r.y+r.height,o.y+o.height),p=1/(a.x*t.zoom*i);return{area:We(n,{x:(u-o.x)/a.x,y:(c-o.y)/a.y,width:(m-u)/a.x,height:(g-c)/a.y}),center:Fe(n,{x:(t.x-o.x)/a.x,y:(t.y-o.y)/a.y}),target:Ce(s,p)}}function Ke(n,t,e,i,s){const{clip:o}=n,r=Math.max(t.x,o.x),a=Math.max(t.y,o.y),u=Math.min(t.x+t.width,o.x+o.width),c=Math.min(t.y+t.height,o.y+o.height);if(u<=r||c<=a)return null;const m=e.width/t.width,g=e.height/t.height,p=1e-6;return{item:n,image:e,transform:A(i,S(t.x,t.y),I(1/m,1/g)),crop:{x:(r-t.x)*m,y:(a-t.y)*g,width:(u-r)*m,height:(c-a)*g},bleed:{right:s&&u<o.x+o.width-p,bottom:s&&c<o.y+o.height-p}}}function qe(n){const t=new Set;return n.filter(e=>t.has(e.url)?false:(t.add(e.url),true))}const Ve={maxZoomPixelRatio:1.1,minZoomImageRatio:.9,upscale:true,animationTime:.09,animationDuration:void 0,springStiffness:6.5,constrainDuringPan:true,request:void 0,byteBudget:192*1024*1024,maxInFlight:16,releaseAfterMs:2e3},Ye=2,$e=3,Qe=.1,X=1e-6,vt=1e8,je=6,Q={top:0,right:0,bottom:0,left:0};function bt(n,t="padding"){if(!n||typeof getComputedStyle!="function")return Q;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 Je=(n,t)=>n.top===t.top&&n.right===t.right&&n.bottom===t.bottom&&n.left===t.left;let ti;class ei{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",Q);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,"interacting",false);h(this,"lastEmitted",null);h(this,"generation",0);h(this,"landing",[]);h(this,"ahead",null);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 u,c;if(this.disposed)return false;const e2=this.camera.step(t2,this.viewport),i2=this.camera.current,s2=this.backend,o=_e(this.getTile,m=>s2?s2.has(m):true),r=yt({items:this.items,camera:i2,viewport:this.viewport,pixelRatio:this.pixelRatio,getTile:o.getTile,has:this.hasTile,wantOverview:!!this.navigator,destination:e2?this.camera.destination:void 0}),a=(this.landing.length?[...this.landing,...r.wants]:r.wants).filter(m=>!m.url.startsWith(Pt));if(this.cache.update(a),this.ahead&&!e2&&!this.cache.pending){const m=this.ahead;this.ahead=null,this.readAhead(m)}return r.draws.length?this.setUnloadable(false):a.length&&a.every(m=>this.cache.failed(m.url))&&this.setUnloadable(true),this.paint(r.draws),(u=this.overlays)==null||u.position(i2,this.viewport),(c=this.navigator)==null||c.render(this.items.filter(m=>!m.spec.hidden),this.worldBounds,q(i2,this.viewport),this.pixelRatio,this.getTile,this.contentVersion),(!this.lastEmitted||!st(this.lastEmitted,i2))&&(this.lastEmitted={...i2},this.opened&&this.emit("viewport")),e2||o.deferred});h(this,"getTile",t2=>this.mediaByKey.get(t2)??this.cache.get(t2));h(this,"hasTile",t2=>this.mediaByKey.has(t2)||this.cache.has(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={...Ve,...K(e)},Mt()&&(this.options.animationTime=0,this.options.animationDuration!==void 0&&(this.options.animationDuration=0));const{animationDuration:i,springStiffness:s}=this.options;this.camera=new ce({x:0,y:0,zoom:1,rotation:0},this.options.animationTime,i===void 0?void 0:{duration:i,stiffness:s}),this.loop=new ke(this.tick),this.gestureOptions=K(e.gestures??{}),Mt()&&(this.gestureOptions.flickMomentum=0),this.gestures=new fe(t,this,{...V,...this.gestureOptions}),this.cache=new Te({load:(o,r)=>this.loadTile(o,r),onSettled:()=>{this.contentVersion++,this.invalidate()},onEvict:o=>{var r;return(r=this.backend)==null?void 0:r.release(o)},byteBudget:this.options.byteBudget,maxInFlight:this.options.maxInFlight}),this.visible=ii(t),this.visible?this.acquireBackend():this.holder.hiddenSince=Tt(),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,o=()=>s!==this.generation||this.disposed,r=new Map(this.items.map(f=>[f.id,f]));this.landing=[],this.ahead=null;const a=this.prepareContext(),u=[],c=t.map(f=>{const x=r.get(f.id);if(x&&He(x.spec,f))return x.spec=f,{item:Promise.resolve(x),ready:Promise.resolve()};let v,b,M;const E=new Promise((L,O)=>{v=L,b=O}),k=new Promise(L=>M=L);return u.push(()=>mt(f,a).then(L=>(v(L),De(L,this.cache)),b).then(M,M)),{item:E,ready:k}}),m=()=>{var f;return(f=u.shift())==null?void 0:f().then(m)};for(let f=0;f<je;f++)m();const g=t.flatMap(f=>f.placement?[f.placement]:[]);let p=false;if(!this.items.length&&t.length>1&&g.length===t.length){const f=D(e?[e,...g]:g),x=[];c.forEach(({item:v,ready:b},M)=>{Promise.all([v,b]).then(([E])=>{o()||(x[M]=E,this.place(x.filter(Boolean),f,i,!p,false),p=true)},()=>{})})}const l=await Promise.allSettled(c.map(({item:f})=>f));if(o()||(this.landing=this.landingWants(l.flatMap(f=>f.status==="fulfilled"?[f.value]:[]),e,i||!this.opened),this.invalidate(),await Promise.all(c.map(({ready:f})=>f)),o()))return;this.landing=[];const d=l.filter(f=>f.status==="fulfilled").map(f=>f.value),w=l.filter(f=>f.status==="rejected").map(f=>f.reason);w.length&&this.emit("error",w),this.setUnloadable(t.length>0&&!d.length&&w.length>0),this.place(d,e,i,!p,true)}place(t,e,i,s,o){this.items=t,this.watchMedia(t);const r=gt(t);this.worldBounds=e?r?D([e,r]):e:r,this.contentVersion++,this.worldBounds&&(this.opened?s?(i?this.home(true):this.camera.set(this.constrain(this.camera.current)),this.emit("change")):o&&this.emit("change"):(this.opened=true,this.home(true),this.emit("open"))),this.invalidate()}prefetch(t,{world:e}={}){const i=t.filter(s=>!s.media);this.ahead=i.length?{images:i,world:e}:null,this.ahead&&this.invalidate()}async readAhead({images:t,world:e}){const i=this.generation,s=this.prepareContext(),o=(await Promise.allSettled(t.map(a=>mt(a,s)))).flatMap(a=>a.status==="fulfilled"?[a.value]:[]);if(!o.length||i!==this.generation||this.disposed)return;const r=this.landingWants(o,e,true).filter(a=>a.priority<It-vt);await this.cache.prefetch(r)}prepareContext(){return{cache:this.cache,loadStatic:t=>this.loadTile(t),infoOptions:{request:this.options.request}}}clear(){this.setUnloadable(false),this.generation++,this.landing=[],this.ahead=null,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 o=e.has(s.id);!!s.spec.hidden!==o&&(s.spec={...s.spec,hidden:o},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 o=0;o<i.cols;o++)if(!this.getTile(e.pyramid.tile({level:0,col:o,row:s}).url))return false;return true}fitBounds(t,e=false,i=Q){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:o,left:r},a=1/0){const{width:u,height:c}=this.viewport,m=Ht(t,{width:Math.max(1,u-r-s),height:Math.max(1,c-i-o)},e),g=Math.min(m.zoom,a);return{...z(Wt(t),{x:(u+r-s)/2,y:(c+i-o)/2},g,e,this.viewport),zoom:g,rotation:e}}fitItemRect(t,e,i=false){const s=this.itemRectToWorld(t,e);s&&this.fitAnnotation(s,i)}fitAnnotation(t,e=false){var o;const i=this.items[0];if(!i)return;const s=i.rect.width*Qe;this.fitBounds({x:t.x-s,y:t.y-s,width:t.width+s*2,height:t.height+s*2},e,bt((o=this.overlays)==null?void 0:o.container,"scroll-padding"))}getBounds(){return q(this.camera.current,this.viewport)}getHomeBounds(){return this.worldBounds?{...this.worldBounds}:null}getCamera(){return{...this.camera.current}}getZoomLimits(){var e;const t=((e=this.homeCamera())==null?void 0:e.zoom)??1;return{home:t,min:t*this.options.minZoomImageRatio,max:Math.max(t,this.closestZoom())}}closestZoom(t=this.items){const e=t.length?Math.min(...t.map(i=>W(i).x)):1;return this.options.maxZoomPixelRatio/e}home(t=false){const e=this.homeCamera();if(!e)return;const i=this.atHome;this.atHome=true,this.animateTo(e,t),!i&&this.opened&&this.emit("viewport")}atMaxZoom(){return this.camera.destination.zoom>=this.getZoomLimits().max*(1-X)}viewLimits(){const{zoom:t,x:e,y:i,rotation:s}=this.camera.destination,{min:o,max:r}=this.getZoomLimits(),a=this.atHome?this.homeCamera():null;return{atMax:t>=r*(1-X),atMin:t<=o*(1+X),atHome:this.atHome&&(!a||Math.abs(t/a.zoom-1)<.001&&Math.hypot(e-a.x,i-a.y)*t<.5&&Math.abs(s-a.rotation)<.001)}}zoomBy(t,e,i=true){const s=i?this.camera.destination:this.camera.current,o=e??{x:this.viewport.width/2,y:this.viewport.height/2},r=it(s,this.viewport,o),{min:a,max:u}=this.getZoomLimits(),c=C(s.zoom*t,a,u),m=z(r,o,c,s.rotation,this.viewport),g=this.constrain({...s,...m,zoom:c});this.atHome=false,i?this.camera.animateTo({state:g,anchor:{world:r,screen:o}},this.viewport):this.camera.set(g),this.invalidate()}panBy(t,e,i=false){const s=i?this.camera.destination:this.camera.current,o=Et(A(I(1/s.zoom),Ft(-s.rotation)),{x:t,y:e}),r=this.constrain({...s,x:s.x-o.x,y:s.y-o.y});this.atHome=false,i?this.camera.animateTo({state:r},this.viewport):this.camera.set(r),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)}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({...V,...this.gestureOptions,...K(t)})}setInteracting(t){if(this.interacting=t,t){this.camera.stop();return}if(this.options.constrainDuringPan)return;const e=this.camera.destination,i=this.constrain(e);st(e,i)||this.animateTo(i,false)}worldToScreenPoint(t){return Zt(this.camera.current,this.viewport,t)}screenToWorldPoint(t){return it(this.camera.current,this.viewport,t)}itemRectToWorld(t,e){const i=this.items[t];if(!i)return null;const{contentClip:s,clip:o}=i;if(i.turn)return kt(A(Ne(i),I(o.width/s.width,o.height/s.height)),e);const r=i.rect.width/s.width,a=i.rect.height/s.height;return{x:i.rect.x+(e.x-s.x)*r,y:i.rect.y+(e.y-s.y)*a,width:e.width*r,height:e.height*a}}attachNavigator(t){var o;(o=this.navigator)==null||o.dispose(),this.navigator=null;const e=++this.navigatorAsked;let i=null,s=false;return import("./Navigator-kdzuaGZ3.mjs").then(r=>{s||this.disposed||e!==this.navigatorAsked||(i=new r.Navigator(t,(a,u)=>this.panTo(a,u)),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,o,r,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),(o=this.navigator)==null||o.dispose(),this.navigator=null,this.releaseBackend(),this.cache.dispose(),(r=this.dom)==null||r.dispose(),(a=this.overlays)==null||a.dispose(),this.items=[],this.detachMedia.forEach(u=>u()),this.mediaByKey.clear(),this.listeners.clear(),delete this.host.dataset.backend)}landingWants(t,e,i){const s=t.map(c=>({...c,rect:{...c.rect}})),o=gt(s),r=e?o?D([e,o]):e:o;if(!r)return[];const a=i?this.homeCamera(r,s):this.camera.destination;if(!a)return[];const{wants:u}=yt({items:s,camera:a,viewport:this.viewport,pixelRatio:this.pixelRatio,getTile:c=>this.cache.get(c)});return u.map(c=>({...c,priority:c.priority-vt}))}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,o=()=>this.invalidate(),r=["play","seeked","loadeddata","resize"];r.forEach(a=>s.addEventListener(a,o)),this.detachMedia.push(()=>r.forEach(a=>s.removeEventListener(a,o)))}}paint(t){const e=this.backend,i=[],s=(e==null?void 0:e.kind)==="webgl2";e==null||e.begin();for(const o of t){const{image:r}=o;if(!(r.kind==="media"||r.kind==="element"&&s&&(r.opaque||this.opaqueUrls.has(o.url)))&&e){if(e.draw({key:o.url,source:r.source,width:r.width,height:r.height,transform:o.transform,crop:o.crop,opacity:1,bleed:o.bleed})!=="tainted"||r.kind==="bitmap")continue;this.opaqueUrls.add(o.url)}(r.kind==="element"||r.kind==="media")&&i.push({key:`${o.item.id}|${o.url}`,element:r.source,width:r.width,height:r.height,transform:o.transform,crop:o.crop,opacity:1})}e==null||e.end(),this.dom?this.dom.sync(i):i.length&&!this.domAsked&&(this.domAsked=true,import("./DomLayers-Bd10mvx8.mjs").then(({DomLayers:o})=>{if(this.disposed)return;const r=new o(this.host);this.overlays&&this.host.insertBefore(r.container,this.overlays.container),this.dom=r,this.invalidate()}))}loadTile(t,e){return pe(t,{signal:e,request:this.options.request,maxTextureSize:this.backend instanceof U?this.backend.maxTextureSize:void 0})}animateTo(t,e){this.camera.animateTo({state:t},this.viewport,e),this.invalidate()}homeCamera(t=this.worldBounds,e=this.items){if(!t)return null;const i=2*Math.PI,s=Math.round(this.camera.destination.rotation/i)*i||0;return this.fit(t,s,this.inset,this.options.upscale?1/0:this.closestZoom(e))}constrain(t,{allowBeyondLimits:e=false}={}){const i=this.worldBounds;if(!i)return t;const{min:s,max:o}=this.getZoomLimits(),r=e?C(t.zoom,s,Math.max(o,t.zoom)):C(t.zoom,s,o);return this.interacting&&!this.options.constrainDuringPan?{...t,zoom:r}:{...t,zoom:r,x:C(t.x,i.x,i.x+i.width),y:C(t.y,i.y,i.y+i.height)}}acquireBackend(t=true){var o,r;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,((o=this.dom)==null?void 0:o.container)??((r=this.overlays)==null?void 0:r.container)??null);const i=t&&(this.backendPreference==="webgl2"||this.backendPreference==="auto"&&this.contextLosses<$e);let s=null;i&&(Ct(this.holder)||this.backendPreference==="webgl2")&&(s=U.create(e,{onLost:this.onContextLost}),s||et(this.holder)),s?this.install(s):this.backendPreference==="webgl2"?this.none(e):(this.pending=e,(ti??(ti=import("./Canvas2DBackend-CyJf0y1M.mjs"))).then(({Canvas2DBackend:a})=>{if(this.pending!==e)return;this.pending=null;const u=a.create(e);u?this.install(u):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(et(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=Tt()),!(!this.backend||this.releaseTimer)&&(this.releaseTimer=setTimeout(()=>this.giveBack(),this.options.releaseAfterMs))}measure(t=false){var u;const e=this.host.getBoundingClientRect(),i=Math.max(1,e.width),s=Math.max(1,e.height),o=bt(this.host),r=Math.min(typeof window<"u"&&window.devicePixelRatio||1,Ye);if(i===this.viewport.width&&s===this.viewport.height&&r===this.pixelRatio&&Je(o,this.inset))return;const a=this.viewport;if(this.viewport={width:i,height:s},this.inset=o,this.pixelRatio=r,(u=this.backend)==null||u.resize(i,s,r),this.opened){if(this.atHome)this.home(true);else{const c=this.camera.current,m=i/Math.max(a.width,1);this.camera.set(this.constrain({...c,zoom:c.zoom*m}))}this.emit("viewport")}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 Tt=()=>typeof performance<"u"?performance.now():Date.now();function ii(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 Mt(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function K(n){return Object.fromEntries(Object.entries(n).filter(([,t])=>t!==void 0))}const ui=(n,t)=>new ei(n,t);export{te as b,Jt as h,yt as p,ui as r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as c,A as l,x as u,aK as p,_ as d,k as m}from"./shared-
|
|
1
|
+
import{u as c,A as l,x as u,aK as p,_ as d,k as m}from"./shared-xNidXfMd.mjs";import"./styles-DN-wttmX.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 b(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{b as toRenderers};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{x as n,a3 as o,Q as r}from"./shared-
|
|
1
|
+
import{x as n,a3 as o,Q as r}from"./shared-xNidXfMd.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{a5 as a,a6 as c}from"./shared-
|
|
1
|
+
import{a5 as a,a6 as c}from"./shared-xNidXfMd.mjs";function l(t){try{const o=new URL(t).pathname.split("/").filter(Boolean).pop();return o?decodeURIComponent(o):"download"}catch{return"download"}}async function d(t,o){try{const r=await a(o,t,{referrerPolicy:"no-referrer"});if(!r.ok)return c(r),false;const n=URL.createObjectURL(await r.blob()),e=document.createElement("a");return e.href=n,e.download=l(t),document.body.append(e),e.click(),e.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e4),true}catch{return false}}export{l as fileName,d as saveFile};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{aF as w,a1 as f,af as x,W as S}from"./shared-xNidXfMd.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};
|