@openlist-frontend/openlist-frontend 4.0.9 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/VERSION +1 -1
- package/dist/assets/{2fa-2cc2atzU.js → 2fa-QoYFzgIF.js} +1 -1
- package/dist/assets/{2fa-legacy-Bv6NDiiZ.js → 2fa-legacy-DAkfvuaM.js} +1 -1
- package/dist/assets/About-B7Kvo1aB.js +1 -0
- package/dist/assets/{About-legacy-QsfCSVxq.js → About-legacy-DVj51Yvw.js} +1 -1
- package/dist/assets/AddOrEdit-BO6ufF5N.js +1 -0
- package/dist/assets/{AddOrEdit-B2PSnD-9.js → AddOrEdit-BnhxwceZ.js} +1 -1
- package/dist/assets/{AddOrEdit-DKPH7EZ_.js → AddOrEdit-DjfJsYrk.js} +1 -1
- package/dist/assets/{AddOrEdit-legacy-DxIDnAk7.js → AddOrEdit-legacy-Bg4C0OQU.js} +1 -1
- package/dist/assets/{AddOrEdit-legacy-COHYBFCt.js → AddOrEdit-legacy-CyctaWfp.js} +1 -1
- package/dist/assets/AddOrEdit-legacy-f8K0IUMl.js +1 -0
- package/dist/assets/Common-Dpk1gc-_.js +1 -0
- package/dist/assets/Common-legacy-BmK8ewzu.js +1 -0
- package/dist/assets/{Copy-CENvweJK.js → Copy-CqqotY0z.js} +1 -1
- package/dist/assets/{Copy-legacy-D_8otiMK.js → Copy-legacy-BruqHTeV.js} +1 -1
- package/dist/assets/Decompress-DLkWzQ3S.js +1 -0
- package/dist/assets/{Decompress-legacy-Dv_Jku2u.js → Decompress-legacy-DAB5qPVJ.js} +1 -1
- package/dist/assets/{DeletePopover-BFBUMopn.js → DeletePopover-CJe1R9Ss.js} +1 -1
- package/dist/assets/{DeletePopover-legacy-BEDnzn-m.js → DeletePopover-legacy-DXKXbGri.js} +1 -1
- package/dist/assets/{File-DOBK5V8m.js → File-Dfqdcr_u.js} +2 -2
- package/dist/assets/{File-legacy-D1ODACuv.js → File-legacy-CQVS1Vpk.js} +1 -1
- package/dist/assets/{Folder-CGWdNP6D.js → Folder-1H_XPHli.js} +3 -3
- package/dist/assets/{Folder-legacy-YsG9JF-C.js → Folder-legacy-DBPPt3z3.js} +2 -2
- package/dist/assets/FolderTree-legacy-BSV4stNN.js +1 -0
- package/dist/assets/FolderTree-tZ6zUZ7j.js +1 -0
- package/dist/assets/Grid-BrJTEWW6.js +1 -0
- package/dist/assets/Grid-legacy-CmmbMWtK.js +1 -0
- package/dist/assets/GridItem-IiSsrrRE.js +1 -0
- package/dist/assets/GridItem-legacy-Dd_rurIk.js +1 -0
- package/dist/assets/{ImageWithError-gG_AK8KG.js → ImageWithError-CSUD2e5_.js} +1 -1
- package/dist/assets/{ImageWithError-legacy-B07XhroH.js → ImageWithError-legacy-bpUxh_rg.js} +1 -1
- package/dist/assets/Images-legacy-Bloy8aMr.js +1 -0
- package/dist/assets/Images-ohOuh-tZ.js +1 -0
- package/dist/assets/Layout-CTXbLLrz.js +6 -0
- package/dist/assets/Layout-legacy-BEddNSfP.js +6 -0
- package/dist/assets/List-CioFfC3F.js +1 -0
- package/dist/assets/List-legacy-3BnwxKd9.js +1 -0
- package/dist/assets/{Messenger-Dmz66wIv.js → Messenger-BwX5Ot-u.js} +1 -1
- package/dist/assets/{Messenger-legacy-DEa2mtGl.js → Messenger-legacy-BdURBipq.js} +1 -1
- package/dist/assets/{Metas-BV8fZzUC.js → Metas-C-KooGDN.js} +1 -1
- package/dist/assets/{Metas-legacy-Dsed9U0b.js → Metas-legacy-DNSLvcPZ.js} +1 -1
- package/dist/assets/{Move-CjmsQ4oK.js → Move-BmKqqWgw.js} +1 -1
- package/dist/assets/{Move-legacy-BJYFMCwm.js → Move-legacy-r10bw0e-.js} +1 -1
- package/dist/assets/Other-DvpG5x28.js +1 -0
- package/dist/assets/Other-legacy-CpHIszvT.js +1 -0
- package/dist/assets/PackageDownload-B9EgcsaJ.js +1 -0
- package/dist/assets/{PackageDownload-legacy-DghWe59X.js → PackageDownload-legacy-DSGHgtWt.js} +1 -1
- package/dist/assets/{Paginator-CfTq8QGy.js → Paginator-DRB7Z41C.js} +1 -1
- package/dist/assets/{Paginator-legacy-BBwW9rLz.js → Paginator-legacy-DTdrq2lp.js} +1 -1
- package/dist/assets/{Password-_jCVU1BX.js → Password-B11wTWqR.js} +1 -1
- package/dist/assets/{Password-legacy-B7VWpO0t.js → Password-legacy-BGfOD_8_.js} +1 -1
- package/dist/assets/{Profile-DQqzso6r.js → Profile-C1cliTl8.js} +1 -1
- package/dist/assets/{Profile-legacy-DxHXHWHS.js → Profile-legacy-GCM5na_Q.js} +1 -1
- package/dist/assets/{PublicKeys-BUewmKb-.js → PublicKeys-Bx-4Shpz.js} +1 -1
- package/dist/assets/{PublicKeys-legacy-L19QKXEm.js → PublicKeys-legacy-Dq05MCbe.js} +1 -1
- package/dist/assets/{ResponsiveGrid-DBqpPiu2.js → ResponsiveGrid-BoOhAULT.js} +1 -1
- package/dist/assets/{ResponsiveGrid-legacy-io27eqXp.js → ResponsiveGrid-legacy-1sf4PYbB.js} +1 -1
- package/dist/assets/{S3-Ue8_AwRX.js → S3-Do-y1BLJ.js} +1 -1
- package/dist/assets/{S3-legacy-BEIExV0a.js → S3-legacy-DpBe-p2k.js} +1 -1
- package/dist/assets/{SettingItem-CoyA-wst.js → SettingItem-CG5PkkHH.js} +1 -1
- package/dist/assets/{SettingItem-legacy-FkrTuUbn.js → SettingItem-legacy-B4Pb_Xz0.js} +1 -1
- package/dist/assets/{Storages-B0zOmRwd.js → Storages-C_m4s20G.js} +1 -1
- package/dist/assets/{Storages-legacy-CBl6TdCy.js → Storages-legacy-DXs5dP9Y.js} +1 -1
- package/dist/assets/{Upload-y6lHsBbS.js → Upload-CKRnF4DO.js} +1 -1
- package/dist/assets/{Upload-9DDOLajr.js → Upload-aH9yNoOD.js} +1 -1
- package/dist/assets/{Upload-legacy-uISx3f64.js → Upload-legacy-CxFEzbZB.js} +1 -1
- package/dist/assets/{Upload-legacy-BX35PWMt.js → Upload-legacy-Duci8WH8.js} +1 -1
- package/dist/assets/Users-BnHY9262.js +1 -0
- package/dist/assets/Users-legacy-_OwnC7o5.js +1 -0
- package/dist/assets/{Wether-enRDnS5x.js → Wether-CG_Kg5-q.js} +1 -1
- package/dist/assets/{Wether-legacy-CUYxMAIK.js → Wether-legacy-Bdidv3LZ.js} +1 -1
- package/dist/assets/{aliyun_office-4kFcJSQ7.js → aliyun_office-B1HBHrPf.js} +1 -1
- package/dist/assets/{aliyun_office-legacy-CeoV_l42.js → aliyun_office-legacy-DTmek5GS.js} +1 -1
- package/dist/{lite/assets/aliyun_video-b2790a1e.js → assets/aliyun_video-U-pLeC7E.js} +1 -1
- package/dist/assets/aliyun_video-legacy-DTBjmE9W.js +1 -0
- package/dist/assets/archive-DOr7Dqax.js +1 -0
- package/dist/assets/archive-legacy-wJmPUETd.js +1 -0
- package/dist/{lite/assets/asciinema-03a03960.js → assets/asciinema-ZQcYEkAW.js} +1 -1
- package/dist/assets/asciinema-legacy-zxAySqsq.js +1 -0
- package/dist/assets/audio-CRzHxaoi.js +1 -0
- package/dist/assets/audio-legacy-Feenv18g.js +1 -0
- package/dist/assets/{backup-restore-C5uaukNL.js → backup-restore-DI3_7B-r.js} +1 -1
- package/dist/assets/{backup-restore-legacy-BNzSREad.js → backup-restore-legacy-Buh90yQQ.js} +1 -1
- package/dist/assets/{entry-CzYCw4_c.js → entry-B8RFtHi3.js} +1 -1
- package/dist/assets/{entry-8adOMWDV.js → entry-B98kaxtp.js} +1 -1
- package/dist/assets/{entry-legacy-BJi3IsKO.js → entry-legacy-ClQCsMpg.js} +1 -1
- package/dist/assets/{entry-legacy-CPgG9LS1.js → entry-legacy-CvWDK9vA.js} +1 -1
- package/dist/assets/flash-06hWdflD.js +1 -0
- package/dist/assets/flash-legacy-CEkIWCeS.js +1 -0
- package/dist/assets/heic-Dcuye9xt.js +1 -0
- package/dist/assets/heic-legacy-C297mKdd.js +1 -0
- package/dist/{lite/assets/helper-59016ddf.js → assets/helper-D_ZwLK_B.js} +1 -1
- package/dist/assets/{helper-CJdkogiC.js → helper-EtkfBFKy.js} +1 -1
- package/dist/assets/{helper-legacy-B4Xut8Z5.js → helper-legacy-BZAtBbx-.js} +1 -1
- package/dist/assets/helper-legacy-Crstiw7Q.js +1 -0
- package/dist/assets/{hls-CdGSrFYh.js → hls-Ct2iKFyb.js} +1 -1
- package/dist/assets/{hls-legacy-BR5PAXA5.js → hls-legacy-D8ZW6jtp.js} +1 -1
- package/dist/{lite/assets/html-a748c03a.js → assets/html-Der_HXVQ.js} +1 -1
- package/dist/assets/{html-legacy-DS9vIClh.js → html-legacy-qRV9zl9j.js} +1 -1
- package/dist/assets/{icon-CgK9sKtW.js → icon-Di-A6oGV.js} +1 -1
- package/dist/assets/{icon-legacy-jbuQXJrW.js → icon-legacy-RrRPpu72.js} +1 -1
- package/dist/assets/image-Dcp8UQSC.js +1 -0
- package/dist/assets/image-legacy-MktRWNPk.js +1 -0
- package/dist/{lite/assets/index-b8211a8c.js → assets/index-39alBTSo.js} +1 -1
- package/dist/assets/{index-BS5bVjs5.js → index-BQ3fKbcZ.js} +1 -1
- package/dist/assets/{index-CSwg5QXS.js → index-BeFrtC4h.js} +6 -6
- package/dist/assets/{index-DOY4u_GJ.js → index-DQgSmKvW.js} +1 -1
- package/dist/{lite/assets/index-dfffd899.js → assets/index-DnhdS7oh.js} +1 -1
- package/dist/assets/{index-DqW5xUnX.js → index-KrJvblBL.js} +1 -1
- package/dist/assets/{index-BJaZW_cl.js → index-U2hEgx40.js} +1 -1
- package/dist/assets/{index-BClBcNEu.js → index-ZTxfPVQc.js} +1 -1
- package/dist/assets/{index-DV8SB530.js → index-cDisVFxX.js} +1 -1
- package/dist/assets/{index-legacy-CDfFAMGs.js → index-legacy--GMgRmYe.js} +1 -1
- package/dist/assets/{index-legacy-CwvCVg8-.js → index-legacy-B1wMIUVA.js} +1 -1
- package/dist/assets/{index-legacy-nH7bmAdo.js → index-legacy-BDBjlhRR.js} +1 -1
- package/dist/assets/{index-legacy-zjwrrR91.js → index-legacy-BDOGUGER.js} +1 -1
- package/dist/assets/{index-legacy-Ctuk5AXi.js → index-legacy-BHlOEqoB.js} +1 -1
- package/dist/assets/{index-legacy-DkZZKHvO.js → index-legacy-BZ7kWilP.js} +1 -1
- package/dist/assets/{index-legacy-C5X1tU4Z.js → index-legacy-BsAqemlM.js} +1 -1
- package/dist/assets/index-legacy-C_fp4R35.js +1 -0
- package/dist/assets/{index-legacy-CtC7fn6O.js → index-legacy-CfXu3iPN.js} +4 -4
- package/dist/assets/index-legacy-CiO_xwp7.js +1 -0
- package/dist/assets/index-uMglY6aV.js +2 -0
- package/dist/assets/{indexes-Ba0IqlDk.js → indexes-DHzNsR3X.js} +1 -1
- package/dist/assets/{indexes-legacy-DOV4Irpp.js → indexes-legacy-CYDIc_-J.js} +1 -1
- package/dist/assets/ipa-Bvq4GufD.js +1 -0
- package/dist/assets/ipa-legacy-CXj6nWH_.js +1 -0
- package/dist/assets/markdown-BTG5QgAB.js +1 -0
- package/dist/assets/markdown-legacy-B4FJ2KYb.js +1 -0
- package/dist/assets/markdown_with_word_wrap-legacy-BfAsPsKl.js +1 -0
- package/dist/assets/markdown_with_word_wrap-sqgjsEFq.js +1 -0
- package/dist/assets/offline_download-DSXlv_fS.js +1 -0
- package/dist/assets/{offline_download-legacy-TAKRiM_z.js → offline_download-legacy-IVHhY0Fl.js} +1 -1
- package/dist/assets/pdf-hzVb4Kgy.js +1 -0
- package/dist/assets/pdf-legacy-WbGyXlrg.js +45 -0
- package/dist/assets/{pdf.worker.min--PgD6g2g.mjs → pdf.worker.min-DbR_HJhJ.js} +4 -4
- package/dist/assets/plist-2Y50jjt-.js +1 -0
- package/dist/assets/plist-legacy-B8d_27Yt.js +1 -0
- package/dist/assets/{style-QIM1DiTv.js → style-Mplh4sB8.js} +1 -1
- package/dist/assets/{style-legacy-DqRFDAwL.js → style-legacy-Cxcb54Ge.js} +1 -1
- package/dist/assets/text-editor-DGAoQNZR.js +1 -0
- package/dist/assets/text-editor-legacy-B2-OWm_i.js +1 -0
- package/dist/assets/{url-BdlNs2qR.js → url-95TlThfV.js} +1 -1
- package/dist/assets/{url-legacy-BObEvUIa.js → url-legacy-BhY0uecs.js} +1 -1
- package/dist/assets/{useTitle-DVdBzpBf.js → useTitle-QM9-qgni.js} +1 -1
- package/dist/assets/{useTitle-legacy-CeyL-0_E.js → useTitle-legacy-D5B3yBZZ.js} +1 -1
- package/dist/assets/video-KiVJHX0P.js +7 -0
- package/dist/assets/video-legacy-BrJOpPW-.js +9 -0
- package/dist/assets/{video360-Ceo5Bzr3.js → video360-HOYCbLmb.js} +1 -1
- package/dist/assets/{video360-legacy-DKyKnnjk.js → video360-legacy-BHwShuvc.js} +1 -1
- package/dist/assets/{video_box-BSgDB9Qt.js → video_box-0_m4vtRE.js} +2 -2
- package/dist/assets/{video_box-legacy-OIbbmS-k.js → video_box-legacy-DVP4wTZQ.js} +1 -1
- package/dist/i18n.tar.gz +0 -0
- package/dist/index.html +11 -11
- package/dist/lite/VERSION +1 -1
- package/dist/lite/assets/2fa-Bpxh448n.js +1 -0
- package/dist/lite/assets/2fa-legacy-DwWWjhKd.js +1 -0
- package/dist/lite/assets/About-ArjASC3Q.js +1 -0
- package/dist/lite/assets/About-legacy-Bj3uriA_.js +1 -0
- package/dist/lite/assets/AddOrEdit-B3LjAnjt.js +1 -0
- package/dist/lite/assets/AddOrEdit-BAx3eDaB.js +1 -0
- package/dist/lite/assets/AddOrEdit-DF0Uwc_L.js +1 -0
- package/dist/lite/assets/AddOrEdit-legacy-BiTUAbBy.js +1 -0
- package/dist/lite/assets/AddOrEdit-legacy-CA9WRPx4.js +1 -0
- package/dist/lite/assets/AddOrEdit-legacy-Dfi2IkNZ.js +1 -0
- package/dist/lite/assets/Common-BzbR55Cb.js +1 -0
- package/dist/lite/assets/Common-legacy-3RN_unfO.js +1 -0
- package/dist/lite/assets/Copy-DiJEbe33.js +1 -0
- package/dist/lite/assets/Copy-legacy-Cde3ux6l.js +1 -0
- package/dist/lite/assets/Decompress-CFzo8jdo.js +1 -0
- package/dist/lite/assets/Decompress-legacy-DsqpmmrM.js +1 -0
- package/dist/lite/assets/{DeletePopover-239d6d9d.js → DeletePopover-Cvk3C2o6.js} +1 -1
- package/dist/lite/assets/DeletePopover-legacy-Dfx3CmJo.js +1 -0
- package/dist/lite/assets/File-cqzoU4-v.js +2 -0
- package/dist/lite/assets/File-legacy-DdJSf0C9.js +1 -0
- package/dist/lite/assets/Folder-Do8UmR7t.js +115 -0
- package/dist/lite/assets/Folder-legacy-CmfB2sKk.js +43 -0
- package/dist/lite/assets/{Folder-6651c4e8.css → Folder-pZUjROFs.css} +1 -1
- package/dist/lite/assets/FolderTree-CFJsWcYU.js +1 -0
- package/dist/lite/assets/FolderTree-legacy-CPmKKEH_.js +1 -0
- package/dist/lite/assets/Grid-Cb4KcOOA.js +1 -0
- package/dist/lite/assets/Grid-legacy-BS9-SmUZ.js +1 -0
- package/dist/lite/assets/GridItem-DWKtcQLG.js +1 -0
- package/dist/lite/assets/GridItem-legacy-D1hKWaXY.js +1 -0
- package/dist/lite/assets/{ImageWithError-7a45dab8.js → ImageWithError-BS_j8_6Y.js} +1 -1
- package/dist/lite/assets/ImageWithError-legacy-Ce8hrBNL.js +1 -0
- package/dist/lite/assets/Images-CMH8hgp4.js +1 -0
- package/dist/lite/assets/Images-legacy-CC9la4S2.js +1 -0
- package/dist/lite/assets/Layout-jFFnLZug.js +6 -0
- package/dist/lite/assets/Layout-legacy-sqNeJgu3.js +6 -0
- package/dist/lite/assets/List-BsIOu856.js +1 -0
- package/dist/lite/assets/List-legacy-Btd-Aw-v.js +1 -0
- package/dist/lite/assets/Messenger-h8Gtjg9d.js +1 -0
- package/dist/lite/assets/Messenger-legacy-MSqQNafv.js +1 -0
- package/dist/lite/assets/Metas-ChO30D8Y.js +1 -0
- package/dist/lite/assets/Metas-legacy-BYtt6Ssn.js +1 -0
- package/dist/lite/assets/Move-JKMnsjzW.js +1 -0
- package/dist/lite/assets/Move-legacy-io1yEHph.js +1 -0
- package/dist/lite/assets/Other-DkvzL5dr.js +1 -0
- package/dist/lite/assets/Other-legacy-en5g3QVf.js +1 -0
- package/dist/lite/assets/PackageDownload-A3XlgYaK.js +1 -0
- package/dist/lite/assets/PackageDownload-legacy-Bsc8kCYa.js +1 -0
- package/dist/lite/assets/{Paginator-c6bbb723.js → Paginator-DYHEaUXh.js} +1 -1
- package/dist/lite/assets/Paginator-legacy-CHY0GWFh.js +1 -0
- package/dist/lite/assets/Password-DFzvuu_a.js +1 -0
- package/dist/lite/assets/Password-legacy-D3G8Nj3a.js +1 -0
- package/dist/lite/assets/{Profile-8e13fe60.js → Profile-D7CiDttN.js} +1 -1
- package/dist/lite/assets/Profile-legacy-CWckDtrc.js +1 -0
- package/dist/lite/assets/PublicKeys-legacy-U88DZl4m.js +1 -0
- package/dist/lite/assets/PublicKeys-wq_H67SA.js +1 -0
- package/dist/lite/assets/ResponsiveGrid-legacy-q5IrbTkd.js +1 -0
- package/dist/lite/assets/ResponsiveGrid-xgt3u3bA.js +1 -0
- package/dist/lite/assets/S3-BbQW41ep.js +1 -0
- package/dist/lite/assets/S3-legacy-DGp5ZhSq.js +1 -0
- package/dist/lite/assets/SettingItem-legacy-DcZ5E_l_.js +1 -0
- package/dist/lite/assets/SettingItem-roKcFMua.js +1 -0
- package/dist/lite/assets/Storages-BaIcw41y.js +1 -0
- package/dist/lite/assets/Storages-legacy-CFy4b4ek.js +1 -0
- package/dist/lite/assets/Upload-DHbPCUwq.js +5 -0
- package/dist/lite/assets/Upload-RIL7iquw.js +1 -0
- package/dist/lite/assets/Upload-legacy-3NfgdpZd.js +1 -0
- package/dist/lite/assets/Upload-legacy-poADpzfh.js +6 -0
- package/dist/lite/assets/Users-BAqP24Qw.js +1 -0
- package/dist/lite/assets/Users-legacy-C0mMiKMz.js +1 -0
- package/dist/lite/assets/Wether-DK3WDUbh.js +1 -0
- package/dist/lite/assets/Wether-legacy-Cavl6pKD.js +1 -0
- package/dist/lite/assets/aliyun_office-DBqDX_hp.js +1 -0
- package/dist/lite/assets/aliyun_office-legacy-_79ghtZB.js +1 -0
- package/dist/lite/assets/aliyun_video-CZcF0Nna.js +1 -0
- package/dist/lite/assets/aliyun_video-legacy-Ct0Zt1SB.js +1 -0
- package/dist/lite/assets/archive-1Ny6qOnL.js +1 -0
- package/dist/lite/assets/archive-legacy-BkYvaOrc.js +1 -0
- package/dist/lite/assets/asciinema-legacy-vQ791H0a.js +1 -0
- package/dist/lite/assets/asciinema-sSQhDJ1O.js +1 -0
- package/dist/lite/assets/audio-CpqrlW8K.js +1 -0
- package/dist/lite/assets/{audio-43f4c02b.css → audio-DVCFhzL6.css} +1 -1
- package/dist/lite/assets/audio-legacy-BXgPWYfA.js +1 -0
- package/dist/lite/assets/{backup-restore-a1922c8b.js → backup-restore-DoLA2IME.js} +1 -1
- package/dist/lite/assets/backup-restore-legacy-DNPfsuAH.js +1 -0
- package/dist/lite/assets/entry-BtEOFyfY.js +1 -0
- package/dist/lite/assets/entry-DtuXLztK.js +1 -0
- package/dist/lite/assets/entry-legacy-BxiK1GJf.js +1 -0
- package/dist/lite/assets/entry-legacy-Du4R67kT.js +1 -0
- package/dist/lite/assets/{flash-9e68a05e.js → flash-Djj83tqh.js} +1 -1
- package/dist/lite/assets/flash-legacy-BRVpO4r6.js +1 -0
- package/dist/lite/assets/heic-NwUjtcuG.js +1 -0
- package/dist/lite/assets/heic-legacy-B3T6GJ6D.js +1 -0
- package/dist/lite/assets/helper-Ch7ToGeM.js +1 -0
- package/dist/lite/assets/helper-DwX_dOuD.js +1 -0
- package/dist/lite/assets/helper-legacy-B5KaTScg.js +1 -0
- package/dist/lite/assets/helper-legacy-DcsEUFIj.js +1 -0
- package/dist/lite/assets/hls-DBosaSUe.js +6 -0
- package/dist/lite/assets/hls-legacy-DgOWpufA.js +8 -0
- package/dist/{assets/html-CBeb2Gu_.js → lite/assets/html-Ba6vHZ_J.js} +1 -1
- package/dist/lite/assets/html-legacy-Mvg6eZYQ.js +1 -0
- package/dist/lite/assets/{icon-cb9eb834.js → icon-ceZ0r1RC.js} +1 -1
- package/dist/lite/assets/icon-legacy-BoOzfCLN.js +1 -0
- package/dist/lite/assets/image-Bu07NFPt.js +1 -0
- package/dist/lite/assets/image-legacy-N3F4kT0B.js +1 -0
- package/dist/lite/assets/index-B_TdULNl.js +21 -0
- package/dist/{assets/index-DNDW0loe.js → lite/assets/index-BcZBdJ0I.js} +1 -1
- package/dist/lite/assets/index-Bn2D_UmB.js +2 -0
- package/dist/lite/assets/index-C3V6yVI8.js +1 -0
- package/dist/lite/assets/{index-a14fae00.js → index-CRXmqRYq.js} +1 -1
- package/dist/lite/assets/{index-6a28cbb7.js → index-C_aiEtJn.js} +1 -1
- package/dist/lite/assets/index-C_jPYH9Z.js +1 -0
- package/dist/{assets/index-C7ih00qx.js → lite/assets/index-Dqq7pWSD.js} +1 -1
- package/dist/lite/assets/{index-67a90f4f.js → index-HMcyQa6d.js} +1 -1
- package/dist/lite/assets/index-e42Miit8.js +14 -0
- package/dist/lite/assets/index-legacy-BVyUBVta.js +1 -0
- package/dist/lite/assets/index-legacy-CLqrKPV_.js +1 -0
- package/dist/lite/assets/index-legacy-CVBschDa.js +1 -0
- package/dist/lite/assets/index-legacy-CzA4JGfb.js +28 -0
- package/dist/lite/assets/index-legacy-D0eoTtsv.js +1 -0
- package/dist/lite/assets/index-legacy-DCVYtsVs.js +1 -0
- package/dist/lite/assets/index-legacy-Dc8ardce.js +1 -0
- package/dist/lite/assets/index-legacy-DrvGupqT.js +1 -0
- package/dist/lite/assets/index-legacy-biWX0Baf.js +1 -0
- package/dist/lite/assets/index-legacy-d-CZR28M.js +18 -0
- package/dist/lite/assets/indexes-CR9gvSWH.js +1 -0
- package/dist/lite/assets/indexes-legacy-DFzWwoPv.js +1 -0
- package/dist/lite/assets/ipa-DwQ4X4s4.js +1 -0
- package/dist/lite/assets/ipa-legacy-BCZ_Zc3J.js +1 -0
- package/dist/lite/assets/item_type-legacy-NfhfVKtF.js +1 -0
- package/dist/lite/assets/markdown-B4ybtoLY.js +1 -0
- package/dist/lite/assets/markdown-legacy-DUdUSvRx.js +1 -0
- package/dist/lite/assets/markdown_with_word_wrap-C6ZJsL5G.js +1 -0
- package/dist/lite/assets/markdown_with_word_wrap-legacy-D6JpLTGQ.js +1 -0
- package/dist/lite/assets/offline_download-B5VAjVkY.js +1 -0
- package/dist/lite/assets/offline_download-legacy-iaAjOlRE.js +1 -0
- package/dist/lite/assets/plist-BPhLI2sw.js +1 -0
- package/dist/lite/assets/plist-legacy-D1tXE2us.js +1 -0
- package/dist/lite/assets/polyfills-legacy-fFt7otW2.js +4 -0
- package/dist/lite/assets/style-DhbY8MLj.js +1 -0
- package/dist/lite/assets/style-legacy-BCQSOKfk.js +1 -0
- package/dist/lite/assets/text-editor-CyJ0Qq4M.js +1 -0
- package/dist/lite/assets/text-editor-legacy-DShJUMbE.js +1 -0
- package/dist/lite/assets/url-CT_IfmFh.js +1 -0
- package/dist/lite/assets/url-legacy-Ct_LVIpR.js +1 -0
- package/dist/lite/assets/useTitle-Eavd_FAg.js +1 -0
- package/dist/lite/assets/useTitle-legacy-mcHxhUhu.js +1 -0
- package/dist/lite/assets/video-DbnoLf1P.js +7 -0
- package/dist/lite/assets/video-legacy-CwAVgHet.js +9 -0
- package/dist/lite/assets/video360-legacy-DXyquQE4.js +16 -0
- package/dist/lite/assets/video360-qu887L1T.js +14 -0
- package/dist/lite/assets/video_box-DtlDzrz5.js +6 -0
- package/dist/lite/assets/video_box-legacy-zTy3pZGq.js +8 -0
- package/dist/lite/assets/webauthn-json.browser-ponyfill-legacy-8XJfKV2b.js +1 -0
- package/dist/lite/i18n.tar.gz +0 -0
- package/dist/lite/index.html +12 -19
- package/dist/lite/static/manifest.json +1 -1
- package/package.json +1 -1
- package/dist/assets/About-Cu11TW0D.js +0 -1
- package/dist/assets/AddOrEdit-B7sPaR10.js +0 -1
- package/dist/assets/AddOrEdit-legacy-BLNrBEUZ.js +0 -1
- package/dist/assets/Common-CrTYhaeL.js +0 -1
- package/dist/assets/Common-legacy-CYNGdYU-.js +0 -1
- package/dist/assets/Decompress-CzLWbcw1.js +0 -1
- package/dist/assets/FolderTree-BopfuzE_.js +0 -1
- package/dist/assets/FolderTree-legacy-DH3Vf9XJ.js +0 -1
- package/dist/assets/Grid-DPqNI8Qb.js +0 -1
- package/dist/assets/Grid-legacy-BgCqAxPk.js +0 -1
- package/dist/assets/GridItem-DKsYPXRd.js +0 -1
- package/dist/assets/GridItem-legacy-B5BlOcYb.js +0 -1
- package/dist/assets/Images-OiLzswiq.js +0 -1
- package/dist/assets/Images-legacy-ByM1mPR1.js +0 -1
- package/dist/assets/Layout-CyS6jJ_b.js +0 -6
- package/dist/assets/Layout-legacy-D9Zk98K6.js +0 -6
- package/dist/assets/List-CZc2zrbB.js +0 -1
- package/dist/assets/List-legacy-CFAZAIBP.js +0 -1
- package/dist/assets/Other-DXc0kpSC.js +0 -1
- package/dist/assets/Other-legacy-38X7w6nZ.js +0 -1
- package/dist/assets/PackageDownload-CwKBLgrB.js +0 -1
- package/dist/assets/Users-BNQGZuWH.js +0 -1
- package/dist/assets/Users-legacy-BINPeiuk.js +0 -1
- package/dist/assets/aliyun_video-CwA2k3Pu.js +0 -1
- package/dist/assets/aliyun_video-legacy-BpsCIyHp.js +0 -1
- package/dist/assets/archive-96T1hx83.js +0 -1
- package/dist/assets/archive-legacy-DNLQfLr5.js +0 -1
- package/dist/assets/asciinema-CyHXgEN-.js +0 -1
- package/dist/assets/asciinema-legacy-t3iZqcax.js +0 -1
- package/dist/assets/audio-DSt_Oo19.js +0 -1
- package/dist/assets/audio-legacy-BhsBrhkI.js +0 -1
- package/dist/assets/flash-Be81XNne.js +0 -1
- package/dist/assets/flash-legacy-CPqjLHQp.js +0 -1
- package/dist/assets/heic-DpvwRot7.js +0 -1
- package/dist/assets/heic-legacy-BoU2N_4X.js +0 -1
- package/dist/assets/helper-Ha9z54Sm.js +0 -1
- package/dist/assets/helper-legacy-CiLX6aDH.js +0 -1
- package/dist/assets/image-DK0tWDig.js +0 -1
- package/dist/assets/image-legacy-BpyMVaKK.js +0 -1
- package/dist/assets/index-D0sWo-se.js +0 -2
- package/dist/assets/index-legacy-BYcwzmYP.js +0 -1
- package/dist/assets/index-legacy-DIduvs2M.js +0 -1
- package/dist/assets/ipa-CThENlHd.js +0 -1
- package/dist/assets/ipa-legacy-ruQ-749T.js +0 -1
- package/dist/assets/markdown-DAEQr1YU.js +0 -1
- package/dist/assets/markdown-legacy-DtXqlrxB.js +0 -1
- package/dist/assets/markdown_with_word_wrap-D_gGyBgt.js +0 -1
- package/dist/assets/markdown_with_word_wrap-legacy-D-tfNhGw.js +0 -1
- package/dist/assets/offline_download--qix7jck.js +0 -1
- package/dist/assets/pdf-DS1TLqP2.js +0 -1
- package/dist/assets/pdf-legacy-BF9lSw5M.js +0 -45
- package/dist/assets/plist-BdQrMloW.js +0 -1
- package/dist/assets/plist-legacy-Dzyq_tdc.js +0 -1
- package/dist/assets/text-editor-BvoSciLk.js +0 -1
- package/dist/assets/text-editor-legacy-AXNOcpgF.js +0 -1
- package/dist/assets/video-legacy-DYsnLlgJ.js +0 -9
- package/dist/assets/video-oPytqEM3.js +0 -7
- package/dist/lite/assets/2fa-d2e88785.js +0 -1
- package/dist/lite/assets/2fa-legacy-300dfa68.js +0 -1
- package/dist/lite/assets/About-e76de340.js +0 -1
- package/dist/lite/assets/About-legacy-79773dac.js +0 -1
- package/dist/lite/assets/AddOrEdit-3d3353a8.js +0 -1
- package/dist/lite/assets/AddOrEdit-807696e5.js +0 -1
- package/dist/lite/assets/AddOrEdit-d6caff63.js +0 -1
- package/dist/lite/assets/AddOrEdit-legacy-8f86f1ff.js +0 -1
- package/dist/lite/assets/AddOrEdit-legacy-9983f6e1.js +0 -1
- package/dist/lite/assets/AddOrEdit-legacy-d0c7c380.js +0 -1
- package/dist/lite/assets/Common-9c9167f7.js +0 -1
- package/dist/lite/assets/Common-legacy-d52fea2b.js +0 -1
- package/dist/lite/assets/Copy-104d7d48.js +0 -1
- package/dist/lite/assets/Copy-legacy-e1bce4e6.js +0 -1
- package/dist/lite/assets/Decompress-62fd7241.js +0 -1
- package/dist/lite/assets/Decompress-legacy-bd78eb4f.js +0 -1
- package/dist/lite/assets/DeletePopover-legacy-f4764c72.js +0 -1
- package/dist/lite/assets/File-9bb7b3b6.js +0 -1
- package/dist/lite/assets/File-legacy-dbaad256.js +0 -1
- package/dist/lite/assets/Folder-80505a0c.js +0 -114
- package/dist/lite/assets/Folder-legacy-dbe7957d.js +0 -49
- package/dist/lite/assets/FolderTree-a7545b65.js +0 -1
- package/dist/lite/assets/FolderTree-legacy-cc6e2591.js +0 -1
- package/dist/lite/assets/Grid-2ea09356.js +0 -1
- package/dist/lite/assets/Grid-legacy-7e146882.js +0 -1
- package/dist/lite/assets/GridItem-a16cc1c5.js +0 -1
- package/dist/lite/assets/GridItem-legacy-3d2048e2.js +0 -1
- package/dist/lite/assets/ImageWithError-legacy-c2f680e8.js +0 -1
- package/dist/lite/assets/Images-137f7509.js +0 -1
- package/dist/lite/assets/Images-legacy-a43b6098.js +0 -1
- package/dist/lite/assets/Layout-ac0937fd.js +0 -5
- package/dist/lite/assets/Layout-legacy-0be654c6.js +0 -6
- package/dist/lite/assets/List-64c7752c.js +0 -1
- package/dist/lite/assets/List-legacy-913c133e.js +0 -1
- package/dist/lite/assets/Messenger-254abffb.js +0 -1
- package/dist/lite/assets/Messenger-legacy-97283620.js +0 -1
- package/dist/lite/assets/Metas-1bad1832.js +0 -1
- package/dist/lite/assets/Metas-legacy-7042cb89.js +0 -1
- package/dist/lite/assets/Other-29b70647.js +0 -1
- package/dist/lite/assets/Other-legacy-607dbff6.js +0 -1
- package/dist/lite/assets/PackageDownload-e264bfda.js +0 -1
- package/dist/lite/assets/PackageDownload-legacy-55a29bc7.js +0 -1
- package/dist/lite/assets/Paginator-legacy-612bab7f.js +0 -1
- package/dist/lite/assets/Password-647ac2f5.js +0 -1
- package/dist/lite/assets/Password-legacy-2e2010d5.js +0 -1
- package/dist/lite/assets/Profile-legacy-93d7fe2b.js +0 -1
- package/dist/lite/assets/PublicKeys-7daab5c3.js +0 -1
- package/dist/lite/assets/PublicKeys-legacy-83570ba5.js +0 -1
- package/dist/lite/assets/ResponsiveGrid-f263846b.js +0 -1
- package/dist/lite/assets/ResponsiveGrid-legacy-a8200443.js +0 -1
- package/dist/lite/assets/S3-40b2a439.js +0 -1
- package/dist/lite/assets/S3-legacy-310983e4.js +0 -1
- package/dist/lite/assets/SettingItem-72aa2179.js +0 -1
- package/dist/lite/assets/SettingItem-legacy-91ff3c53.js +0 -1
- package/dist/lite/assets/Storages-90b21781.js +0 -1
- package/dist/lite/assets/Storages-legacy-49b7b995.js +0 -1
- package/dist/lite/assets/Upload-9447b1be.js +0 -5
- package/dist/lite/assets/Upload-98dd51d8.js +0 -1
- package/dist/lite/assets/Upload-legacy-3b92717c.js +0 -6
- package/dist/lite/assets/Upload-legacy-ac99e541.js +0 -1
- package/dist/lite/assets/Users-30333127.js +0 -1
- package/dist/lite/assets/Users-legacy-0719c277.js +0 -1
- package/dist/lite/assets/Wether-b430b024.js +0 -1
- package/dist/lite/assets/Wether-legacy-274cd4f2.js +0 -1
- package/dist/lite/assets/aliyun_office-b0b45663.js +0 -1
- package/dist/lite/assets/aliyun_office-legacy-2d148972.js +0 -1
- package/dist/lite/assets/aliyun_video-legacy-6a647909.js +0 -1
- package/dist/lite/assets/archive-25c8ef3b.js +0 -1
- package/dist/lite/assets/archive-legacy-348dc806.js +0 -1
- package/dist/lite/assets/asciinema-legacy-1917d686.js +0 -1
- package/dist/lite/assets/audio-ea14d1c5.js +0 -1
- package/dist/lite/assets/audio-legacy-303c3bd9.js +0 -1
- package/dist/lite/assets/backup-restore-legacy-d4b0f25c.js +0 -1
- package/dist/lite/assets/entry-27030f25.js +0 -1
- package/dist/lite/assets/entry-f2e52067.js +0 -1
- package/dist/lite/assets/entry-legacy-a1d93529.js +0 -1
- package/dist/lite/assets/entry-legacy-fd98eab3.js +0 -1
- package/dist/lite/assets/flash-legacy-80373572.js +0 -1
- package/dist/lite/assets/heic-2554ec65.js +0 -1
- package/dist/lite/assets/heic-legacy-2c1c78ca.js +0 -1
- package/dist/lite/assets/helper-af29c315.js +0 -1
- package/dist/lite/assets/helper-legacy-25bddff0.js +0 -1
- package/dist/lite/assets/helper-legacy-94b49e67.js +0 -1
- package/dist/lite/assets/hls-e031156d.js +0 -6
- package/dist/lite/assets/hls-legacy-20bdc1ee.js +0 -8
- package/dist/lite/assets/html-legacy-619368c0.js +0 -1
- package/dist/lite/assets/icon-legacy-eb0f5143.js +0 -1
- package/dist/lite/assets/image-c8b0bac2.js +0 -1
- package/dist/lite/assets/image-legacy-7afc3d49.js +0 -1
- package/dist/lite/assets/index-3f395f83.js +0 -14
- package/dist/lite/assets/index-53a1dd81.js +0 -20
- package/dist/lite/assets/index-83750b21.js +0 -1
- package/dist/lite/assets/index-9d2d674f.js +0 -1
- package/dist/lite/assets/index-b94004c5.js +0 -1
- package/dist/lite/assets/index-legacy-17656f04.js +0 -1
- package/dist/lite/assets/index-legacy-3d6bd4ab.js +0 -1
- package/dist/lite/assets/index-legacy-52bb5f2d.js +0 -1
- package/dist/lite/assets/index-legacy-6dddbd7f.js +0 -18
- package/dist/lite/assets/index-legacy-737b5776.js +0 -1
- package/dist/lite/assets/index-legacy-a79f37d7.js +0 -27
- package/dist/lite/assets/index-legacy-b6946699.js +0 -1
- package/dist/lite/assets/index-legacy-d4734338.js +0 -1
- package/dist/lite/assets/index-legacy-e78804fc.js +0 -1
- package/dist/lite/assets/index-legacy-e78c6961.js +0 -1
- package/dist/lite/assets/indexes-8d6a3830.js +0 -1
- package/dist/lite/assets/indexes-legacy-8aad9cf2.js +0 -1
- package/dist/lite/assets/ipa-14799eac.js +0 -1
- package/dist/lite/assets/ipa-legacy-05317cab.js +0 -1
- package/dist/lite/assets/item_type-legacy-d49ae974.js +0 -1
- package/dist/lite/assets/markdown-438acebf.js +0 -1
- package/dist/lite/assets/markdown-legacy-85cc7347.js +0 -1
- package/dist/lite/assets/markdown_with_word_wrap-02b3d898.js +0 -1
- package/dist/lite/assets/markdown_with_word_wrap-legacy-c80bbc34.js +0 -1
- package/dist/lite/assets/offline_download-64a4f5ec.js +0 -1
- package/dist/lite/assets/offline_download-legacy-13c80c46.js +0 -1
- package/dist/lite/assets/plist-caa63a1c.js +0 -1
- package/dist/lite/assets/plist-legacy-97df7129.js +0 -1
- package/dist/lite/assets/polyfills-legacy-84c7163c.js +0 -1
- package/dist/lite/assets/style-da60bdcd.js +0 -1
- package/dist/lite/assets/style-legacy-56f6ffc2.js +0 -1
- package/dist/lite/assets/text-editor-faffc12e.js +0 -1
- package/dist/lite/assets/text-editor-legacy-c28b9e68.js +0 -1
- package/dist/lite/assets/url-e7419bc0.js +0 -1
- package/dist/lite/assets/url-legacy-c605c2b3.js +0 -1
- package/dist/lite/assets/useTitle-3c39724b.js +0 -1
- package/dist/lite/assets/useTitle-legacy-f359aa82.js +0 -1
- package/dist/lite/assets/video-bdb2443b.js +0 -7
- package/dist/lite/assets/video-legacy-aaca36d8.js +0 -9
- package/dist/lite/assets/video360-8fe849f4.js +0 -14
- package/dist/lite/assets/video360-legacy-60cbacb5.js +0 -16
- package/dist/lite/assets/video_box-cfac536c.js +0 -6
- package/dist/lite/assets/video_box-legacy-6b3ebc5b.js +0 -8
- package/dist/lite/assets/webauthn-json.browser-ponyfill-legacy-456cc8e1.js +0 -1
- /package/dist/lite/assets/{asciinema-9107553b.css → asciinema-CxBn2iyI.css} +0 -0
- /package/dist/lite/assets/{index-c0564af7.css → index-DYLAoZjS.css} +0 -0
- /package/dist/lite/assets/{item_type-32dc6fdf.js → item_type-CV3e5W3l.js} +0 -0
- /package/dist/lite/assets/{lg-f2fe1c00.svg → lg-B0dIV2BS.svg} +0 -0
- /package/dist/lite/assets/{lg-fefc5c0d.woff → lg-CosQH4Cu.woff} +0 -0
- /package/dist/lite/assets/{lg-22b72ba5.ttf → lg-oyjwlqP2.ttf} +0 -0
- /package/dist/lite/assets/{loading-298ad3ff.gif → loading-BZOHaeKn.gif} +0 -0
- /package/dist/lite/assets/{style-a6d16836.css → style-qq4T_k44.css} +0 -0
- /package/dist/lite/assets/{subtitles-octopus-worker-f95f2186.js → subtitles-octopus-worker-BE_B0Qbi.js} +0 -0
- /package/dist/lite/assets/{subtitles-octopus-worker-62892886.wasm → subtitles-octopus-worker-DBPz2dPT.wasm} +0 -0
- /package/dist/lite/assets/{video360-f0192288.css → video360-Cpoa0Nlv.css} +0 -0
- /package/dist/lite/assets/{webauthn-json.browser-ponyfill-29d8152c.js → webauthn-json.browser-ponyfill-CVZeZdny.js} +0 -0
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import{a5 as Nt,am as Ge,af as He,x as ke,q as We,y as St,ag as qt,cd as Ye,ce as Xe,as as oe}from"./index-53a1dd81.js";import{V as Ke}from"./video_box-cfac536c.js";import{O as je}from"./icon-cb9eb834.js";import"./index-3f395f83.js";import"./index-67a90f4f.js";import"./Layout-ac0937fd.js";import"./useTitle-3c39724b.js";import"./FolderTree-a7545b65.js";import"./index-b8211a8c.js";import"./index-dfffd899.js";/*! *****************************************************************************
|
|
2
|
-
Copyright (c) Microsoft Corporation.
|
|
3
|
-
|
|
4
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
5
|
-
purpose with or without fee is hereby granted.
|
|
6
|
-
|
|
7
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
8
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
9
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
10
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
11
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
12
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
13
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
14
|
-
***************************************************************************** */function qe(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],s=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&s>=i.length&&(i=void 0),{value:i&&i[s++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function $e(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var s=e.call(i),n,r=[],o;try{for(;(t===void 0||t-- >0)&&!(n=s.next()).done;)r.push(n.value)}catch(a){o={error:a}}finally{try{n&&!n.done&&(e=s.return)&&e.call(s)}finally{if(o)throw o.error}}return r}function wt(){for(var i=[],t=0;t<arguments.length;t++)i=i.concat($e(arguments[t]));return i}var lt=function(i){return typeof i>"u"},Ut=function(){function i(e,s){var n,r;if(this._canceled=!1,s)try{for(var o=qe(Object.keys(s)),a=o.next();!a.done;a=o.next()){var h=a.value;this[h]=s[h]}}catch(l){n={error:l}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}this.eventType=e}var t=i.prototype;return t.stop=function(){this._canceled=!0},t.isCanceled=function(){return this._canceled},i}(),P=function(){function i(){this._eventHandler={}}var t=i.prototype;return t.trigger=function(e){for(var s=[],n=1;n<arguments.length;n++)s[n-1]=arguments[n];var r=e instanceof Ut?e.eventType:e,o=wt(this._eventHandler[r]||[]);return o.length<=0?this:(e instanceof Ut?(e.currentTarget=this,o.forEach(function(a){a(e)})):o.forEach(function(a){a.apply(void 0,wt(s))}),this)},t.once=function(e,s){var n=this;if(typeof e=="object"&<(s)){var r=e;for(var o in r)this.once(o,r[o]);return this}else if(typeof e=="string"&&typeof s=="function"){var a=function(){for(var h=[],l=0;l<arguments.length;l++)h[l]=arguments[l];s.apply(void 0,wt(h)),n.off(e,a)};this.on(e,a)}return this},t.hasOn=function(e){return!!this._eventHandler[e]},t.on=function(e,s){if(typeof e=="object"&<(s)){var n=e;for(var r in n)this.on(r,n[r]);return this}else if(typeof e=="string"&&typeof s=="function"){var o=this._eventHandler[e];lt(o)&&(this._eventHandler[e]=[],o=this._eventHandler[e]),o.push(s)}return this},t.off=function(e,s){if(lt(e))return this._eventHandler={},this;if(lt(s)){if(typeof e=="string")return delete this._eventHandler[e],this;var n=e;for(var r in n)this.off(r,n[r]);return this}var o=this._eventHandler[e];if(o){for(var a=o.length,h=0;h<a;++h)if(o[h]===s){o.splice(h,1),a<=1&&delete this._eventHandler[e];break}}return this},i.VERSION="3.0.5",i}(),ct=Ut,Y=1e-6,w=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var i=0,t=arguments.length;t--;)i+=arguments[t]*arguments[t];return Math.sqrt(i)});function Ze(){var i=new w(9);return w!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[5]=0,i[6]=0,i[7]=0),i[0]=1,i[4]=1,i[8]=1,i}function ft(){var i=new w(16);return w!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0),i[0]=1,i[5]=1,i[10]=1,i[15]=1,i}function Je(i){return i[0]=1,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=1,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=1,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i}function ae(i,t,e){var s=t[0],n=t[1],r=t[2],o=t[3],a=t[4],h=t[5],l=t[6],c=t[7],_=t[8],E=t[9],f=t[10],v=t[11],T=t[12],p=t[13],R=t[14],C=t[15],y=e[0],g=e[1],m=e[2],b=e[3];return i[0]=y*s+g*a+m*_+b*T,i[1]=y*n+g*h+m*E+b*p,i[2]=y*r+g*l+m*f+b*R,i[3]=y*o+g*c+m*v+b*C,y=e[4],g=e[5],m=e[6],b=e[7],i[4]=y*s+g*a+m*_+b*T,i[5]=y*n+g*h+m*E+b*p,i[6]=y*r+g*l+m*f+b*R,i[7]=y*o+g*c+m*v+b*C,y=e[8],g=e[9],m=e[10],b=e[11],i[8]=y*s+g*a+m*_+b*T,i[9]=y*n+g*h+m*E+b*p,i[10]=y*r+g*l+m*f+b*R,i[11]=y*o+g*c+m*v+b*C,y=e[12],g=e[13],m=e[14],b=e[15],i[12]=y*s+g*a+m*_+b*T,i[13]=y*n+g*h+m*E+b*p,i[14]=y*r+g*l+m*f+b*R,i[15]=y*o+g*c+m*v+b*C,i}function Qe(i,t,e,s){var n=t[0],r=t[1],o=t[2],a=t[3],h=n+n,l=r+r,c=o+o,_=n*h,E=n*l,f=n*c,v=r*l,T=r*c,p=o*c,R=a*h,C=a*l,y=a*c,g=s[0],m=s[1],b=s[2];return i[0]=(1-(v+p))*g,i[1]=(E+y)*g,i[2]=(f-C)*g,i[3]=0,i[4]=(E-y)*m,i[5]=(1-(_+p))*m,i[6]=(T+R)*m,i[7]=0,i[8]=(f+C)*b,i[9]=(T-R)*b,i[10]=(1-(_+v))*b,i[11]=0,i[12]=e[0],i[13]=e[1],i[14]=e[2],i[15]=1,i}function ts(i,t,e,s,n){var r=1/Math.tan(t/2),o;return i[0]=r/e,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=r,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=-1,i[12]=0,i[13]=0,i[15]=0,n!=null&&n!==1/0?(o=1/(s-n),i[10]=(n+s)*o,i[14]=2*n*s*o):(i[10]=-1,i[14]=-2*s),i}var es=ts;function ss(i,t,e,s){var n,r,o,a,h,l,c,_,E,f,v=t[0],T=t[1],p=t[2],R=s[0],C=s[1],y=s[2],g=e[0],m=e[1],b=e[2];return Math.abs(v-g)<Y&&Math.abs(T-m)<Y&&Math.abs(p-b)<Y?Je(i):(c=v-g,_=T-m,E=p-b,f=1/Math.hypot(c,_,E),c*=f,_*=f,E*=f,n=C*E-y*_,r=y*c-R*E,o=R*_-C*c,f=Math.hypot(n,r,o),f?(f=1/f,n*=f,r*=f,o*=f):(n=0,r=0,o=0),a=_*o-E*r,h=E*n-c*o,l=c*r-_*n,f=Math.hypot(a,h,l),f?(f=1/f,a*=f,h*=f,l*=f):(a=0,h=0,l=0),i[0]=n,i[1]=a,i[2]=c,i[3]=0,i[4]=r,i[5]=h,i[6]=_,i[7]=0,i[8]=o,i[9]=l,i[10]=E,i[11]=0,i[12]=-(n*v+r*T+o*p),i[13]=-(a*v+h*T+l*p),i[14]=-(c*v+_*T+E*p),i[15]=1,i)}function B(){var i=new w(3);return w!=Float32Array&&(i[0]=0,i[1]=0,i[2]=0),i}function Ft(i){var t=i[0],e=i[1],s=i[2];return Math.hypot(t,e,s)}function I(i,t,e){var s=new w(3);return s[0]=i,s[1]=t,s[2]=e,s}function is(i,t){return i[0]=t[0],i[1]=t[1],i[2]=t[2],i}function ns(i,t,e){return i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],i}function rs(i,t,e){return i[0]=t[0]*e,i[1]=t[1]*e,i[2]=t[2]*e,i}function he(i,t){var e=t[0],s=t[1],n=t[2],r=e*e+s*s+n*n;return r>0&&(r=1/Math.sqrt(r)),i[0]=t[0]*r,i[1]=t[1]*r,i[2]=t[2]*r,i}function le(i,t){return i[0]*t[0]+i[1]*t[1]+i[2]*t[2]}function Q(i,t,e){var s=t[0],n=t[1],r=t[2],o=e[0],a=e[1],h=e[2];return i[0]=n*h-r*a,i[1]=r*o-s*h,i[2]=s*a-n*o,i}function $t(i,t,e){var s=t[0],n=t[1],r=t[2],o=e[3]*s+e[7]*n+e[11]*r+e[15];return o=o||1,i[0]=(e[0]*s+e[4]*n+e[8]*r+e[12])/o,i[1]=(e[1]*s+e[5]*n+e[9]*r+e[13])/o,i[2]=(e[2]*s+e[6]*n+e[10]*r+e[14])/o,i}function F(i,t,e){var s=e[0],n=e[1],r=e[2],o=e[3],a=t[0],h=t[1],l=t[2],c=n*l-r*h,_=r*a-s*l,E=s*h-n*a,f=n*E-r*_,v=r*c-s*E,T=s*_-n*c,p=o*2;return c*=p,_*=p,E*=p,f*=2,v*=2,T*=2,i[0]=a+c+f,i[1]=h+_+v,i[2]=l+E+T,i}var os=Ft;(function(){var i=B();return function(t,e,s,n,r,o){var a,h;for(e||(e=3),s||(s=0),n?h=Math.min(n*e+s,t.length):h=t.length,a=s;a<h;a+=e)i[0]=t[a],i[1]=t[a+1],i[2]=t[a+2],r(i,i,o),t[a]=i[0],t[a+1]=i[1],t[a+2]=i[2];return t}})();function as(){var i=new w(4);return w!=Float32Array&&(i[0]=0,i[1]=0,i[2]=0,i[3]=0),i}function hs(i){var t=new w(4);return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t}function ls(i,t,e,s){var n=new w(4);return n[0]=i,n[1]=t,n[2]=e,n[3]=s,n}function cs(i,t){return i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i}function us(i,t,e,s,n){return i[0]=t,i[1]=e,i[2]=s,i[3]=n,i}function _s(i,t){var e=t[0],s=t[1],n=t[2],r=t[3],o=e*e+s*s+n*n+r*r;return o>0&&(o=1/Math.sqrt(o)),i[0]=e*o,i[1]=s*o,i[2]=n*o,i[3]=r*o,i}function ds(i,t){var e=i[0],s=i[1],n=i[2],r=i[3],o=t[0],a=t[1],h=t[2],l=t[3];return Math.abs(e-o)<=Y*Math.max(1,Math.abs(e),Math.abs(o))&&Math.abs(s-a)<=Y*Math.max(1,Math.abs(s),Math.abs(a))&&Math.abs(n-h)<=Y*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(r-l)<=Y*Math.max(1,Math.abs(r),Math.abs(l))}(function(){var i=as();return function(t,e,s,n,r,o){var a,h;for(e||(e=4),s||(s=0),n?h=Math.min(n*e+s,t.length):h=t.length,a=s;a<h;a+=e)i[0]=t[a],i[1]=t[a+1],i[2]=t[a+2],i[3]=t[a+3],r(i,i,o),t[a]=i[0],t[a+1]=i[1],t[a+2]=i[2],t[a+3]=i[3];return t}})();function G(){var i=new w(4);return w!=Float32Array&&(i[0]=0,i[1]=0,i[2]=0),i[3]=1,i}function ce(i){return i[0]=0,i[1]=0,i[2]=0,i[3]=1,i}function fs(i,t,e){e=e*.5;var s=Math.sin(e);return i[0]=s*t[0],i[1]=s*t[1],i[2]=s*t[2],i[3]=Math.cos(e),i}function Zt(i,t,e){var s=t[0],n=t[1],r=t[2],o=t[3],a=e[0],h=e[1],l=e[2],c=e[3];return i[0]=s*c+o*a+n*l-r*h,i[1]=n*c+o*h+r*a-s*l,i[2]=r*c+o*l+s*h-n*a,i[3]=o*c-s*a-n*h-r*l,i}function ue(i,t,e){e*=.5;var s=t[0],n=t[1],r=t[2],o=t[3],a=Math.sin(e),h=Math.cos(e);return i[0]=s*h+o*a,i[1]=n*h+r*a,i[2]=r*h-n*a,i[3]=o*h-s*a,i}function _e(i,t,e){e*=.5;var s=t[0],n=t[1],r=t[2],o=t[3],a=Math.sin(e),h=Math.cos(e);return i[0]=s*h-r*a,i[1]=n*h+o*a,i[2]=r*h+s*a,i[3]=o*h-n*a,i}function de(i,t,e){e*=.5;var s=t[0],n=t[1],r=t[2],o=t[3],a=Math.sin(e),h=Math.cos(e);return i[0]=s*h+n*a,i[1]=n*h-s*a,i[2]=r*h+o*a,i[3]=o*h-r*a,i}function vt(i,t,e,s){var n=t[0],r=t[1],o=t[2],a=t[3],h=e[0],l=e[1],c=e[2],_=e[3],E,f,v,T,p;return f=n*h+r*l+o*c+a*_,f<0&&(f=-f,h=-h,l=-l,c=-c,_=-_),1-f>Y?(E=Math.acos(f),v=Math.sin(E),T=Math.sin((1-s)*E)/v,p=Math.sin(s*E)/v):(T=1-s,p=s),i[0]=T*n+p*h,i[1]=T*r+p*l,i[2]=T*o+p*c,i[3]=T*a+p*_,i}function Es(i,t){var e=t[0]+t[4]+t[8],s;if(e>0)s=Math.sqrt(e+1),i[3]=.5*s,s=.5/s,i[0]=(t[5]-t[7])*s,i[1]=(t[6]-t[2])*s,i[2]=(t[1]-t[3])*s;else{var n=0;t[4]>t[0]&&(n=1),t[8]>t[n*3+n]&&(n=2);var r=(n+1)%3,o=(n+2)%3;s=Math.sqrt(t[n*3+n]-t[r*3+r]-t[o*3+o]+1),i[n]=.5*s,s=.5/s,i[3]=(t[r*3+o]-t[o*3+r])*s,i[r]=(t[r*3+n]+t[n*3+r])*s,i[o]=(t[o*3+n]+t[n*3+o])*s}return i}var ut=hs,ms=ls,ps=cs,gs=us,tt=_s,Jt=ds;(function(){var i=B(),t=I(1,0,0),e=I(0,1,0);return function(s,n,r){var o=le(n,r);return o<-.999999?(Q(i,t,n),os(i)<1e-6&&Q(i,e,n),he(i,i),fs(s,i,Math.PI),s):o>.999999?(s[0]=0,s[1]=0,s[2]=0,s[3]=1,s):(Q(i,n,r),s[0]=i[0],s[1]=i[1],s[2]=i[2],s[3]=1+o,tt(s,s))}})();(function(){var i=G(),t=G();return function(e,s,n,r,o,a){return vt(i,s,o,a),vt(t,n,r,a),vt(e,i,t,2*a*(1-a)),e}})();(function(){var i=Ze();return function(t,e,s,n){return i[0]=s[0],i[3]=s[1],i[6]=s[2],i[1]=n[0],i[4]=n[1],i[7]=n[2],i[2]=-e[0],i[5]=-e[1],i[8]=-e[2],tt(t,Es(t,i))}})();function vs(){var i=new w(2);return w!=Float32Array&&(i[0]=0,i[1]=0),i}function Ts(i,t){var e=new w(2);return e[0]=i,e[1]=t,e}(function(){var i=vs();return function(t,e,s,n,r,o){var a,h;for(e||(e=2),s||(s=0),n?h=Math.min(n*e+s,t.length):h=t.length,a=s;a<h;a+=e)i[0]=t[a],i[1]=t[a+1],r(i,i,o),t[a]=i[0],t[a+1]=i[1];return t}})();var Bt=function(i,t){return Bt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,s){e.__proto__=s}||function(e,s){for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n])},Bt(i,t)};function nt(i,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Bt(i,t);function e(){this.constructor=i}i.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}var st=function(){return st=Object.assign||function(t){for(var e,s=1,n=arguments.length;s<n;s++){e=arguments[s];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])}return t},st.apply(this,arguments)};function ys(){for(var i=0,t=0,e=arguments.length;t<e;t++)i+=arguments[t].length;for(var s=Array(i),n=0,t=0;t<e;t++)for(var r=arguments[t],o=0,a=r.length;o<a;o++,n++)s[n]=r[o];return s}var Gt=typeof window<"u",Rs=Gt?window.navigator.userAgent:"",bs=Gt?"getComputedStyle"in window:!1,Cs=/MSIE|Trident|Windows Phone|Edge/.test(Rs),Os=Gt?"addEventListener"in document:!1,Vt="width",_t="height";function Tt(i,t){return i.getAttribute(t)||""}function Rt(i){return[].slice.call(i)}function Is(i,t){return t===void 0&&(t="data-"),!!i.getAttribute(t+"width")}function fe(i,t){return t===void 0&&(t="data-"),"loading"in i&&i.getAttribute("loading")==="lazy"||!!i.getAttribute(t+"lazy")}function Ls(i,t){return t===void 0&&(t="data-"),!!i.getAttribute(t+"skip")}function Ee(i,t,e){Os?i.addEventListener(t,e,!1):i.attachEvent?i.attachEvent("on"+t,e):i["on"+t]=e}function me(i,t,e){i.removeEventListener?i.removeEventListener(t,e,!1):i.detachEvent?i.detachEvent("on"+t,e):i["on"+t]=null}function As(i){return pe(i,"Width")}function Ns(i){return pe(i,"Height")}function Ss(i){return(bs?window.getComputedStyle(i):i.currentStyle)||{}}function pe(i,t){var e=i["client"+t]||i["offset"+t];return parseFloat(e||Ss(i)[t.toLowerCase()])||0}function ws(i,t,e){var s=Rt(i.querySelectorAll(ys(["["+e+"skip] ["+e+"width]"],t.map(function(n){return["["+e+"skip] "+n,n+"["+e+"skip]","["+e+"width] "+n].join(", ")})).join(", ")));return Rt(i.querySelectorAll("["+e+"width], "+t.join(", "))).filter(function(n){return s.indexOf(n)===-1})}var et=[];function ge(i,t){!et.length&&Ee(window,"resize",Te),i.__PREFIX__=t,et.push(i),ve(i)}function Ps(i,t){var e=et.indexOf(i);if(!(e<0)){var s=Tt(i,t+"fixed");delete i.__PREFIX__,i.style[s===_t?Vt:_t]="",et.splice(e,1),!et.length&&me(window,"resize",Te)}}function ve(i,t){t===void 0&&(t="data-");var e=i.__PREFIX__||t,s=parseInt(Tt(i,""+e+Vt),10)||0,n=parseInt(Tt(i,""+e+_t),10)||0,r=Tt(i,e+"fixed");if(r===_t){var o=Ns(i)||n;i.style[Vt]=s/n*o+"px"}else{var o=As(i)||s;i.style[_t]=n/s*o+"px"}}function Te(){et.forEach(function(i){ve(i)})}var Ht=function(i){nt(t,i);function t(s,n){n===void 0&&(n={});var r=i.call(this)||this;r.isReady=!1,r.isPreReady=!1,r.hasDataSize=!1,r.hasLoading=!1,r.isSkip=!1,r.onCheck=function(a){r.clear(),a&&a.type==="error"&&r.onError(r.element),!(r.hasLoading&&r.checkElement())&&r.onReady()},r.options=st({prefix:"data-"},n),r.element=s;var o=r.options.prefix;return r.hasDataSize=Is(s,o),r.isSkip=Ls(s,o),r.hasLoading=fe(s,o),r}var e=t.prototype;return e.check=function(){return this.isSkip||!this.checkElement()?(this.onAlreadyReady(),!1):(this.hasDataSize&&ge(this.element,this.options.prefix),(this.hasDataSize||this.hasLoading)&&this.onAlreadyPreReady(),!0)},e.addEvents=function(){var s=this,n=this.element;this.constructor.EVENTS.forEach(function(r){Ee(n,r,s.onCheck)})},e.clear=function(){var s=this,n=this.element;this.constructor.EVENTS.forEach(function(r){me(n,r,s.onCheck)}),this.removeAutoSizer()},e.destroy=function(){this.clear(),this.off()},e.removeAutoSizer=function(){if(this.hasDataSize){var s=this.options.prefix;Ps(this.element,s)}},e.onError=function(s){this.trigger("error",{element:this.element,target:s})},e.onPreReady=function(){this.isPreReady||(this.isPreReady=!0,this.trigger("preReady",{element:this.element,hasLoading:this.hasLoading,isSkip:this.isSkip}))},e.onReady=function(){var s=this.isPreReady;this.isPreReady=!0,!this.isReady&&(this.removeAutoSizer(),this.isReady=!0,this.trigger("ready",{element:this.element,withPreReady:!s,hasLoading:this.hasLoading,isSkip:this.isSkip}))},e.onAlreadyError=function(s){var n=this;setTimeout(function(){n.onError(s)})},e.onAlreadyPreReady=function(){var s=this;setTimeout(function(){s.onPreReady()})},e.onAlreadyReady=function(){var s=this;setTimeout(function(){s.onReady()})},t.EVENTS=[],t}(P),xs=function(i){nt(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}var e=t.prototype;return e.setHasLoading=function(s){this.hasLoading=s},e.check=function(){return this.isSkip?(this.onAlreadyReady(),!1):(this.hasDataSize?(ge(this.element,this.options.prefix),this.onAlreadyPreReady()):this.trigger("requestChildren"),!0)},e.checkElement=function(){return!0},e.destroy=function(){this.clear(),this.trigger("requestDestroy"),this.off()},e.onAlreadyPreReady=function(){i.prototype.onAlreadyPreReady.call(this),this.trigger("reqeustReadyChildren")},t.EVENTS=[],t}(Ht),Ds=function(i){nt(t,i);function t(s){s===void 0&&(s={});var n=i.call(this)||this;return n.readyCount=0,n.preReadyCount=0,n.totalCount=0,n.totalErrorCount=0,n.isPreReadyOver=!0,n.elementInfos=[],n.options=st({loaders:{},prefix:"data-"},s),n}var e=t.prototype;return e.check=function(s){var n=this,r=this.options.prefix;this.clear(),this.elementInfos=Rt(s).map(function(a,h){var l=n.getLoader(a,{prefix:r});return l.check(),l.on("error",function(c){n.onError(h,c.target)}).on("preReady",function(c){var _=n.elementInfos[h];_.hasLoading=c.hasLoading,_.isSkip=c.isSkip;var E=n.checkPreReady(h);n.onPreReadyElement(h),E&&n.onPreReady()}).on("ready",function(c){var _=c.withPreReady,E=c.hasLoading,f=c.isSkip,v=n.elementInfos[h];v.hasLoading=E,v.isSkip=f;var T=_&&n.checkPreReady(h),p=n.checkReady(h);_&&n.onPreReadyElement(h),n.onReadyElement(h),T&&n.onPreReady(),p&&n.onReady()}),{loader:l,element:a,hasLoading:!1,hasError:!1,isPreReady:!1,isReady:!1,isSkip:!1}});var o=this.elementInfos.length;return this.totalCount=o,o||setTimeout(function(){n.onPreReady(),n.onReady()}),this},e.getTotalCount=function(){return this.totalCount},e.isPreReady=function(){return this.elementInfos.every(function(s){return s.isPreReady})},e.isReady=function(){return this.elementInfos.every(function(s){return s.isReady})},e.hasError=function(){return this.totalErrorCount>0},e.clear=function(){this.isPreReadyOver=!1,this.totalCount=0,this.preReadyCount=0,this.readyCount=0,this.totalErrorCount=0,this.elementInfos.forEach(function(s){s.loader&&s.loader.destroy()}),this.elementInfos=[]},e.destroy=function(){this.clear(),this.off()},e.getLoader=function(s,n){var r=this,o=s.tagName.toLowerCase(),a=this.options.loaders,h=n.prefix,l=Object.keys(a);if(a[o])return new a[o](s,n);var c=new xs(s,n),_=Rt(s.querySelectorAll(l.join(", ")));c.setHasLoading(_.some(function(f){return fe(f,h)}));var E=this.clone().on("error",function(f){c.onError(f.target)}).on("ready",function(){c.onReady()});return c.on("requestChildren",function(){var f=ws(s,l,r.options.prefix);E.check(f).on("preReady",function(v){v.isReady||c.onPreReady()})}).on("reqeustReadyChildren",function(){E.check(_)}).on("requestDestroy",function(){E.destroy()}),c},e.clone=function(){return new t(st({},this.options))},e.checkPreReady=function(s){return this.elementInfos[s].isPreReady=!0,++this.preReadyCount,!(this.preReadyCount<this.totalCount)},e.checkReady=function(s){return this.elementInfos[s].isReady=!0,++this.readyCount,!(this.readyCount<this.totalCount)},e.onError=function(s,n){var r=this.elementInfos[s];r.hasError=!0,this.trigger(new ct("error",{element:r.element,index:s,target:n,errorCount:this.getErrorCount(),totalErrorCount:++this.totalErrorCount}))},e.onPreReadyElement=function(s){var n=this.elementInfos[s];this.trigger(new ct("preReadyElement",{element:n.element,index:s,preReadyCount:this.preReadyCount,readyCount:this.readyCount,totalCount:this.totalCount,isPreReady:this.isPreReady(),isReady:this.isReady(),hasLoading:n.hasLoading,isSkip:n.isSkip}))},e.onPreReady=function(){this.isPreReadyOver=!0,this.trigger(new ct("preReady",{readyCount:this.readyCount,totalCount:this.totalCount,isReady:this.isReady(),hasLoading:this.hasLoading()}))},e.onReadyElement=function(s){var n=this.elementInfos[s];this.trigger(new ct("readyElement",{index:s,element:n.element,hasError:n.hasError,errorCount:this.getErrorCount(),totalErrorCount:this.totalErrorCount,preReadyCount:this.preReadyCount,readyCount:this.readyCount,totalCount:this.totalCount,isPreReady:this.isPreReady(),isReady:this.isReady(),hasLoading:n.hasLoading,isPreReadyOver:this.isPreReadyOver,isSkip:n.isSkip}))},e.onReady=function(){this.trigger(new ct("ready",{errorCount:this.getErrorCount(),totalErrorCount:this.totalErrorCount,totalCount:this.totalCount}))},e.getErrorCount=function(){return this.elementInfos.filter(function(s){return s.hasError}).length},e.hasLoading=function(){return this.elementInfos.some(function(s){return s.hasLoading})},t}(P),Ms=function(i){nt(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}var e=t.prototype;return e.checkElement=function(){var s=this.element,n=s.getAttribute("src");if(s.complete){if(n)return s.naturalWidth||this.onAlreadyError(s),!1;this.onAlreadyPreReady()}return this.addEvents(),Cs&&s.setAttribute("src",n),!0},t.EVENTS=["load","error"],t}(Ht),Us=function(i){nt(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}var e=t.prototype;return e.checkElement=function(){var s=this.element;return s.readyState>=1?!1:s.error?(this.onAlreadyError(s),!1):(this.addEvents(),!0)},t.EVENTS=["loadedmetadata","error"],t}(Ht),Fs=function(i){nt(t,i);function t(e){return e===void 0&&(e={}),i.call(this,st({loaders:{img:Ms,video:Us}},e))||this}return t}(Ds);const Bs=Fs;function M(i,t,e,s){function n(r){return r instanceof e?r:new e(function(o){o(r)})}return new(e||(e=Promise))(function(r,o){function a(c){try{l(s.next(c))}catch(_){o(_)}}function h(c){try{l(s.throw(c))}catch(_){o(_)}}function l(c){c.done?r(c.value):n(c.value).then(a,h)}l((s=s.apply(i,t||[])).next())})}class H extends Error{constructor(t,e){super(t),Object.setPrototypeOf(this,H.prototype),this.name="View360Error",this.code=e}}const Vs={WRONG_TYPE:0,WRONG_OPTION:1,ELEMENT_NOT_FOUND:2,CANVAS_NOT_FOUND:3,WEBGL_NOT_SUPPORTED:4,FAILED_CREATE_CONTEXT_2D:5,PROVIDE_PROJECTION_FIRST:6,FAILED_LINKING_PROGRAM:7,INSUFFICIENT_ARGS:8},zs={WRONG_TYPE:(i,t)=>"".concat(typeof i," is not a ").concat(t.map(e=>'"'.concat(e,'"')).join(" or "),"."),WRONG_OPTION:(i,t)=>'Bad option: given "'.concat(i,'" for option "').concat(t,'".'),ELEMENT_NOT_FOUND:i=>'Element with selector "'.concat(i,'" not found.'),CANVAS_NOT_FOUND:"The canvas element was not found inside the given root element.",WEBGL_NOT_SUPPORTED:"WebGL is not supported on this browser.",FAILED_CREATE_CONTEXT_2D:"Failed to create canvas 2D context",PROVIDE_PROJECTION_FIRST:'"projection" should be provided before initialization.',FAILED_LINKING_PROGRAM:(i,t)=>'Failed linking WebGL program - "'.concat(i,"\nShader compile Log: ").concat(t),INSUFFICIENT_ARGS:(i,t)=>'Insufficient arguments: given "'.concat(i,'" for "').concat(t,'".')};var U={CODES:Vs,MESSAGES:zs};const u={MOUSE_DOWN:"mousedown",MOUSE_MOVE:"mousemove",MOUSE_UP:"mouseup",TOUCH_START:"touchstart",TOUCH_MOVE:"touchmove",TOUCH_END:"touchend",WHEEL:"wheel",RESIZE:"resize",CONTEXT_MENU:"contextmenu",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_UP:"pointerup",POINTER_CANCEL:"pointercancel",POINTER_ENTER:"pointerenter",POINTER_LEAVE:"pointerleave",KEY_DOWN:"keydown",KEY_UP:"keyup",LOAD:"load",ERROR:"error",CLICK:"click",DOUBLE_CLICK:"dblclick",CONTEXT_CREATE_ERROR:"webglcontextcreationerror",CONTEXT_LOST:"webglcontextlost",CONTEXT_RESTORED:"webglcontextrestored",DEVICE_ORIENTATION:"deviceorientation",DEVICE_MOTION:"devicemotion",ORIENTATION_CHANGE:"orientationchange",VIDEO_PLAY:"play",VIDEO_PAUSE:"pause",VIDEO_LOADED_DATA:"loadeddata",VIDEO_VOLUME_CHANGE:"volumechange",VIDEO_TIME_UPDATE:"timeupdate",VIDEO_DURATION_CHANGE:"durationchange",VIDEO_CAN_PLAYTHROUGH:"canplaythrough",TRANSITION_END:"transitionend",XR_END:"end"},z="div",Ot="button";var zt;(function(i){i[i.LEFT=0]="LEFT",i[i.MIDDLE=1]="MIDDLE",i[i.RIGHT=2]="RIGHT"})(zt||(zt={}));const W={GRAB:"grab",GRABBING:"grabbing",NONE:""},Qt=["LEFT","UP","RIGHT","DOWN"];var bt;(function(i){i[i.LEFT=37]="LEFT",i[i.UP=38]="UP",i[i.RIGHT=39]="RIGHT",i[i.DOWN=40]="DOWN"})(bt||(bt={}));const Gs=32,ye={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",DOWN:"ArrowDown"},Hs=" ",te=["requestFullscreen","webkitRequestFullscreen","webkitRequestFullScreen","webkitCancelFullScreen","mozRequestFullScreen","msRequestFullscreen"],ks=["fullscreenElement","webkitFullscreenElement","webkitCurrentFullScreenElement","mozFullScreenElement","msFullscreenElement"],Ws=["exitFullscreen","webkitExitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"],Ct=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"],X={CONTAINER:"view360-container",CANVAS:"view360-canvas",CTX_LOST:"view360-ctx-lost",IN_VR:"view360-vr-presenting",HOTSPOT_CONTAINER:"view360-hotspots",HOTSPOT:"view360-hotspot",HOTSPOT_VISIBLE:"view360-hotspot-visible",HOTSPOT_FLIP_X:"view360-hotspot-flip-x",HOTSPOT_FLIP_Y:"view360-hotspot-flip-y"},O={READY:"ready",LOAD_START:"loadStart",LOAD:"load",PROJECTION_CHANGE:"projectionChange",RESIZE:"resize",BEFORE_RENDER:"beforeRender",RENDER:"render",INPUT_START:"inputStart",INPUT_END:"inputEnd",VIEW_CHANGE:"viewChange",STATIC_CLICK:"staticClick",VR_START:"vrStart",VR_END:"vrEnd"},Ys={LINEAR:i=>i,SINE_WAVE:i=>Math.sin(i*Math.PI*2),EASE_OUT_CUBIC:i=>1-Math.pow(1-i,3),EASE_OUT_BOUNCE:i=>i<1/2.75?7.5625*i*i:i<2/2.75?7.5625*(i-=1.5/2.75)*i+.75:i<2.5/2.75?7.5625*(i-=2.25/2.75)*i+.9375:7.5625*(i-=2.625/2.75)*i+.984375};var Pt;const Re={CHANGE:"change",ANIMATION_END:"animationEnd"},Xs={UPDATE:"update"},d={INPUT_START:"inputStart",CHANGE:"change",INPUT_END:"inputEnd",ENABLE:"enable",DISABLE:"disable",STATIC_CLICK:"staticClick"},N=Math.PI/180,Z=180/Math.PI,pt=Ys.EASE_OUT_CUBIC,gt=300,It={min:-1/0,max:1/0},be={min:-90,max:90},Ks={min:.6,max:10};var ee;(function(i){i[i.ZERO=0]="ZERO",i[i.CW_90=1]="CW_90",i[i.CCW_90=2]="CCW_90",i[i.CW_180=3]="CW_180"})(ee||(ee={}));const $="view360videotimechange",xt="http://www.w3.org/2000/svg",se="immersive-vr",ie="local",ne=(Pt=Number.EPSILON)!==null&&Pt!==void 0?Pt:2220446049250313e-31,kt=i=>typeof i=="string",js=i=>!!i&&i.nodeType===Node.ELEMENT_NODE,V=(i,t=z)=>{const e=document.createElement(t);return e.classList.add(i),e},Ce=(i,t)=>{let e=null;if(kt(i)){const n=(t||document).querySelector(i);if(!n)return null;e=n}else js(i)&&(e=i);return e},qs=(i,t)=>{const e=Ce(i,t);if(!e)throw kt(i)?new H(U.MESSAGES.ELEMENT_NOT_FOUND(i),U.CODES.ELEMENT_NOT_FOUND):new H(U.MESSAGES.WRONG_TYPE(i,["HTMLElement","string"]),U.CODES.WRONG_TYPE);return e},$s=(i,t)=>{const e=i.querySelector(t);if(!e)throw new H(U.MESSAGES.CANVAS_NOT_FOUND,U.CODES.CANVAS_NOT_FOUND);return e},S=(i,t,e)=>Math.max(Math.min(i,e),t),Oe=(i,t,e)=>i*(1-e)+t*e,it=(i,t,e)=>{const s=Math.abs(e-t);if(i<t){const n=(t-i)%s;i=e-n}else if(i>e){const n=(i-e)%s;i=t+n}return i},Zs=(i,t)=>{for(let e=0;e<i.length;e++)if(t(i[e]))return e;return-1},x=i=>typeof i=="object"?i:{},yt=(i,t)=>Math.atan(Math.tan(i*.5)/t)*2,dt=()=>{if(!document)return!1;for(const i of ks)if(document[i])return!0;return!1},Ie=()=>window.isSecureContext&&!!DeviceMotionEvent&&"requestPermission"in DeviceMotionEvent,Js=(i,t)=>{const e=Math.tan(N*i*.5),s=Math.tan(N*t*.5);return e/s},re=(i,t,e,s)=>{ce(i);const n=.01,r=S(e,-90+n,90-n);return _e(i,i,t*N),ue(i,i,r*N),de(i,i,s*N),i},Le=i=>{const t=i[0],e=i[1],s=i[2],n=i[3],r=t*t,o=e*e,a=s*s,h=n*n,l=r+o+a+h,c=t*n-e*s;let _,E;if(c>.499995*l)_=Math.PI/2,E=2*Math.atan2(e,t);else if(c<-.499995*l)_=-Math.PI/2,E=-2*Math.atan2(e,t);else{const f=I(0,0,1),v=I(0,1,0);F(f,f,i),F(v,v,i);const T=Math.sqrt(f[0]*f[0]+f[2]*f[2]);_=Math.atan2(-f[1],T),E=Math.atan2(f[0],f[2])}return{pitch:S(_*Z,-90,90),yaw:it(E*Z,0,360)}};class Et{get val(){return this._val}get start(){return this._start}get end(){return this._end}get progress(){return this._progress}get activated(){return this._activated}get duration(){return this._duration}set duration(t){this._duration=t}get loop(){return this._loop}set loop(t){this._loop=t}get range(){return this._range}get easing(){return this._easing}set easing(t){this._easing=t}constructor({duration:t=gt,loop:e=!1,range:s={min:0,max:1},easing:n=pt}={}){this._duration=t,this._loop=e,this._range=s,this._easing=n,this._activated=!1,this.reset(0)}update(t){if(!this._activated)return this._val=this._end,0;const e=this._start,s=this._end,n=this._duration,r=this._val,o=this._loop,a=this._progress+t/n;this._progress=o?it(a,0,1):S(a,0,1);const h=this._easing(this._progress);return this._val=Oe(e,s,h),!o&&this._progress>=1&&(this._activated=!1),this._val-r}reset(t){const e=this._range,s=S(t,e.min,e.max);this._start=s,this._end=s,this._val=s,this._progress=0,this._activated=!1}add(t){const e=this._range;this._start=S(this._start+t,e.min,e.max),this._end=S(this._end+t,e.min,e.max),this._val=S(this._val+t,e.min,e.max)}setNewEndByDelta(t){const e=this._range;this._start=this._val,this._end=S(this._end+t,e.min,e.max),this._progress=0,this._activated=!0}setRange(t,e){this._start=S(this._start,t,e),this._end=S(this._end,t,e),this._range={min:t,max:e}}}class Qs{get duration(){return this._motion.duration}set duration(t){this._motion.duration=t}get easing(){return this._motion.easing}set easing(t){this._motion.easing=t}constructor(t,e,s,{duration:n=gt,easing:r=pt}={}){this._camera=t,this._motion=new Et({duration:n,easing:r,range:{min:0,max:1}}),this._from=e,this._to=s,this._finishPromise=new Promise(o=>{this._finish=o}),this._motion.setNewEndByDelta(1)}getFinishPromise(){return this._finishPromise}update(t){const e=this._camera,s=this._from,n=this._to,r=this._motion;r.update(t);const o=r.val,a=G(),h=Oe(s.zoom,n.zoom,o);vt(a,s.rotation,n.rotation,o),e.rotate(a,h),o>=1&&this._finish()}}class ti extends P{get aspect(){return this._aspect}get changed(){return this._changed}get yawRange(){return this._initialYawRange}set yawRange(t){this._initialYawRange=t}get pitchRange(){return this._initialPitchRange}set pitchRange(t){this._initialPitchRange=t}get zoomRange(){return this._initialZoomRange}set zoomRange(t){this._initialZoomRange=t}constructor({initialYaw:t,initialPitch:e,initialZoom:s,yawRange:n,pitchRange:r,zoomRange:o,fov:a}){super(),this.yaw=t,this.pitch=e,this.zoom=s,this.rollOffset=0,this.initialYaw=t,this.initialPitch=e,this.initialZoom=s,this.position=B(),this.animation=null,this._up=I(0,1,0),this._aspect=1,this._initialYawRange=n,this._initialPitchRange=r,this._initialZoomRange=o,this._yawRange=n,this._pitchRange=r,this._zoomRange=o,this.quaternion=G(),this._updateQuaternion(),this.viewMatrix=ft(),this.projectionMatrix=ft(),this.fov=a,this._maxRenderHeight=-1}destroy(){this.off()}resize(t,e){const s=this._aspect;this._aspect=t/e,this._aspect!==s&&this.updateMatrix()}lookAt({yaw:t=this.yaw,pitch:e=this.pitch,zoom:s=this.zoom}){const n=ut(this.quaternion),r=this.zoom;this.yaw=it(t,0,360),this.pitch=S(e,-90,90),this.zoom=s,this._updateQuaternion();const o=Math.abs(s-r);(!Jt(this.quaternion,n)||o>=ne*10)&&this.updateMatrix()}rotate(t,e=this.zoom){const s=tt(G(),t),n=Jt(this.quaternion,s);ps(this.quaternion,s);const r=this.zoom,{yaw:o,pitch:a}=Le(s);this.yaw=o,this.pitch=a,this.zoom=e;const h=Math.abs(e-r);(!n||h>=ne*10)&&this.updateMatrix()}animateTo({yaw:t=this.yaw,pitch:e=this.pitch,zoom:s=this.zoom,duration:n=0,easing:r=pt}={}){return M(this,void 0,void 0,function*(){if(this.yaw===t&&this.pitch===e&&this.zoom===s)return;const o={rotation:ut(this.quaternion),zoom:this.zoom},a={rotation:re(G(),t,e,this.rollOffset),zoom:s},h=new Qs(this,o,a,{duration:n,easing:r}),l=h.getFinishPromise();return this.animation=h,l.then(()=>{this.animation=null,this.trigger(Re.ANIMATION_END,{animation:h})}),l})}restrictYawRange(t,e){this._yawRange={min:t,max:e}}restrictPitchRange(t,e){this._pitchRange={min:t,max:e}}restrictZoomRange(t,e){this._zoomRange={min:t,max:e}}restrictRenderHeight(t){this._maxRenderHeight=t}resetRange(){this._yawRange=this._initialYawRange,this._pitchRange=this._initialPitchRange,this._zoomRange=this._initialZoomRange,this._maxRenderHeight=-1}getYawRange(t){const e=this._yawRange,s=this._maxRenderHeight;if(!e)return It;const n=this.getHorizontalFov(t)*.5;let r=e.min,o=e.max;if(s>0){const a=yt(n*N,this._aspect),h=s*.5,l=Math.tan(a),c=Math.sqrt((1+h*h)/(1+l*l)),_=Math.atan(Math.tan(n*N)*c)*Z;r=e.min+_,o=e.max-_}return r>o&&(r=0,o=0),{min:r,max:o}}getPitchRange(t){const e=this._pitchRange,s=this._maxRenderHeight;if(!e)return be;let n=e.min,r=e.max;if(s>0){const o=this.getVerticalFov(t)*.5;n=e.min+o,r=e.max-o}return n>r&&(n=0,r=0),{min:Math.max(n,-90),max:Math.min(r,90)}}getZoomRange(){var t;const e=(t=this._zoomRange)!==null&&t!==void 0?t:Ks,s=this.getHorizontalFov(e.max),n=this.getHorizontalFov(e.min),r=this.getHorizontalFov(this.zoom);return{min:Math.max(s,1),max:Math.min(n,180),current:r}}getHorizontalFov(t=this.zoom){return this._getZoomedHorizontalFov(t)*Z}getVerticalFov(t=this.zoom){const e=this._aspect,s=this._getZoomedHorizontalFov(t);return yt(s,e)*Z}fovToZoom(t){const e=this.fov,s=Math.tan(N*e*.5),n=Math.tan(N*t*.5);return s/n}updateMatrix(){const t=this._up,e=this._aspect,s=this.viewMatrix,n=this.projectionMatrix,r=this.position,o=this.quaternion,a=B(),h=I(0,0,-1);F(h,h,o),F(a,t,o);const l=this._getZoomedHorizontalFov(),c=yt(l,e);ss(s,r,h,a),es(n,c,e,.1,100),this._changed=!0}onFrameRender(){this._changed=!1}_updateQuaternion(){re(this.quaternion,this.yaw,this.pitch,this.rollOffset)}_getZoomedHorizontalFov(t=this.zoom){return 2*Math.atan(Math.tan(N*this.fov*.5)/t)}}class Ae extends P{constructor(){super(),this._onMouseDown=t=>{const e=this._el;!e||t.button!==zt.LEFT||(t.preventDefault(),e.focus?e.focus():window.focus(),this._prevPos[0]=t.clientX,this._prevPos[1]=t.clientY,window.addEventListener(u.MOUSE_MOVE,this._onMouseMove,!1),window.addEventListener(u.MOUSE_UP,this._onMouseUp,!1),this.trigger(d.INPUT_START,{srcEvent:t,isTouch:!1,isKeyboard:!1}))},this._onMouseMove=t=>{t.preventDefault();const e=t.clientX,s=t.clientY,n=this._prevPos,r=e-n[0],o=s-n[1];this.trigger(d.CHANGE,{delta:{x:r,y:o},isTouch:!1,isKeyboard:!1}),n[0]=e,n[1]=s},this._onMouseUp=()=>{this._prevPos[0]=0,this._prevPos[1]=0,window.removeEventListener(u.MOUSE_MOVE,this._onMouseMove,!1),window.removeEventListener(u.MOUSE_UP,this._onMouseUp,!1),this.trigger(d.INPUT_END,{isTouch:!1,isKeyboard:!1,scrolling:!1})},this._el=null,this._prevPos=[0,0]}enable(t){this._el||(t.addEventListener(u.MOUSE_DOWN,this._onMouseDown),this._el=t)}disable(){const t=this._el;t&&(t.removeEventListener(u.MOUSE_DOWN,this._onMouseDown),window.removeEventListener(u.MOUSE_MOVE,this._onMouseMove,!1),window.removeEventListener(u.MOUSE_UP,this._onMouseUp,!1),this._el=null)}}class Ne extends P{get scrollable(){return this._scrollable}set scrollable(t){this._scrollable=t}constructor(){super(),this._onTouchStart=t=>{if(t.touches.length>1||this._scrolling)return;const e=t.touches[0];this._isFirstTouch=!0,this._prevPos[0]=e.clientX,this._prevPos[1]=e.clientY,this.trigger(d.INPUT_START,{srcEvent:t,isTouch:!0,isKeyboard:!1})},this._onTouchMove=t=>{if(t.touches.length>1||this._scrolling)return;const e=t.touches[0],s=this._scrollable,n=this._prevPos,r=e.clientX,o=e.clientY,a=r-n[0],h=o-n[1];if(this._isFirstTouch){if(s&&!dt()&&Math.abs(h)>Math.abs(a)){this._scrolling=!0;return}this._isFirstTouch=!1}t.cancelable!==!1&&t.preventDefault(),this.trigger(d.CHANGE,{delta:{x:a,y:h},isTouch:!0,isKeyboard:!1}),n[0]=r,n[1]=o},this._onTouchEnd=t=>{if(t.touches.length!==0)return;const e=t.touches[0],s=this._prevPos;e?(s[0]=e.clientX,s[1]=e.clientY):(s[0]=0,s[1]=0,this.trigger(d.INPUT_END,{isTouch:!0,isKeyboard:!1,scrolling:this._scrolling})),t.cancelable!==!1&&t.preventDefault(),this._scrolling=!1},this._el=null,this._prevPos=[0,0],this._isFirstTouch=!1,this._scrolling=!1,this._scrollable=!1}enable(t){this._el||(t.addEventListener(u.TOUCH_START,this._onTouchStart,{passive:!1}),t.addEventListener(u.TOUCH_MOVE,this._onTouchMove,{passive:!1}),t.addEventListener(u.TOUCH_END,this._onTouchEnd),this._el=t)}disable(){const t=this._el;t&&(t.removeEventListener(u.TOUCH_START,this._onTouchStart),t.removeEventListener(u.TOUCH_MOVE,this._onTouchMove),t.removeEventListener(u.TOUCH_END,this._onTouchEnd),this._el=null)}}class ei extends P{get active(){const t=this._pressed;return t.LEFT||t.UP||t.RIGHT||t.DOWN}constructor(){super(),this._onKeyDown=t=>{if(t.location!==KeyboardEvent.DOM_KEY_LOCATION_STANDARD)return;this._updateKeyPress(t,!0);const e=this._getPressedKeyCount();e<=0||(t.preventDefault(),e===1&&!t.repeat&&this.trigger(d.INPUT_START,{srcEvent:t,isTouch:!1,isKeyboard:!0}))},this._onKeyUp=t=>{t.location!==KeyboardEvent.DOM_KEY_LOCATION_STANDARD||(this._updateKeyPress(t,!1),this._getPressedKeyCount()>0)||this.trigger(d.INPUT_END,{isTouch:!1,isKeyboard:!0,scrolling:!1})},this._el=null,this._clearPressedKeys()}enable(t){this._el||(t.addEventListener(u.KEY_DOWN,this._onKeyDown),t.addEventListener(u.KEY_UP,this._onKeyUp),this._el=t,this._clearPressedKeys())}disable(){const t=this._el;t&&(t.removeEventListener(u.KEY_DOWN,this._onKeyDown),t.removeEventListener(u.KEY_UP,this._onKeyUp),this._el=null,this._clearPressedKeys())}update(){const t=this._getDeltaByPressedKeys();(t.x!==0||t.y!==0)&&this.trigger(d.CHANGE,{delta:t,isTouch:!1,isKeyboard:!0})}_clearPressedKeys(){this._pressed=Qt.reduce((t,e)=>Object.assign(Object.assign({},t),{[e]:!1}),{})}_updateKeyPress(t,e){const s=this._pressed,n=t.keyCode!=null?bt[t.keyCode]:ye[t.key];n&&(s[n]=e)}_getPressedKeyCount(){return Qt.filter(t=>this._pressed[t]).length}_getDeltaByPressedKeys(){const t=this._pressed;let e=0,s=0;return t.LEFT&&(e+=1),t.RIGHT&&(e-=1),t.UP&&(s+=1),t.DOWN&&(s-=1),{x:e,y:s}}}class si extends P{get enabled(){return this._enabled}get enableBlocked(){return this._enableBlocked}get animating(){return this._keyboardInput.active||this._xMotion.activated||this._yMotion.activated}get yaw(){return this._xMotion}get pitch(){return this._yMotion}get scrollable(){return this._touchInput.scrollable}set scrollable(t){this._touchInput.scrollable=t}get pointerScale(){return this._pointerScale}set pointerScale(t){this._pointerScale=t}get keyboardScale(){return this._keyboardScale}set keyboardScale(t){this._keyboardScale=t}get duration(){return this._duration}set duration(t){this._duration=t,this._xMotion.duration=t,this._yMotion.duration=t}get easing(){return this._easing}set easing(t){this._easing=t,this._xMotion.easing=t,this._yMotion.easing=t}get disablePitch(){return this._disablePitch}set disablePitch(t){this._disablePitch=t}get disableYaw(){return this._disableYaw}set disableYaw(t){this._disableYaw=t}get disableKeyboard(){return this._disableKeyboard}set disableKeyboard(t){this._disableKeyboard=t}constructor(t,e,{duration:s=gt,easing:n=pt,pointerScale:r=[1,1],keyboardScale:o=[1,1],disablePitch:a=!1,disableYaw:h=!1,disableKeyboard:l=!1}={}){super(),this._onInputStart=c=>{this._changedWhileDragging=!1,this.trigger(d.INPUT_START,Object.assign(Object.assign({},c),{inputType:"rotate"}))},this._onChange=c=>{const _=c.delta,E=1/this._zoomScale,f=this._screenScale,v=this._keyboardScale,T=this._pointerScale;let p;c.isKeyboard?p=[v[0]*E,v[1]*E]:p=[T[0]*f[0]*E,T[1]*f[1]*E];const R=_.x*p[0],C=_.y*p[1];this._xMotion.setNewEndByDelta(R),this._yMotion.setNewEndByDelta(C),this._changedWhileDragging=!0},this._onInputEnd=c=>{this.trigger(d.INPUT_END,Object.assign(Object.assign({},c),{inputType:"rotate"})),!this._changedWhileDragging&&!c.isKeyboard&&!c.scrolling&&this.trigger(d.STATIC_CLICK,{isTouch:c.isTouch}),this._changedWhileDragging=!1},this._controlEl=t,this._pointerScale=r,this._keyboardScale=o,this._duration=s,this._easing=n,this._disablePitch=a,this._disableYaw=h,this._disableKeyboard=l,this._enableBlocked=e,this._mouseInput=new Ae,this._touchInput=new Ne,this._keyboardInput=new ei,this._xMotion=new Et({duration:s,range:It,easing:n}),this._yMotion=new Et({duration:s,range:be,easing:n}),this._screenScale=[1,1],this._zoomScale=1,this._enabled=!1,this._changedWhileDragging=!1,this._bindInputs()}destroy(){this.disable(),this._mouseInput.off(),this._touchInput.off(),this._keyboardInput.off(),this.off(),this._changedWhileDragging=!1}update(t){if(!this._enabled)return;const e=this._xMotion,s=this._yMotion,n=this._keyboardInput;this._disableKeyboard||n.update(),this._disablePitch||s.update(t),this._disableYaw||e.update(t)}updateRange(t,e){const s=t.getYawRange(e),n=t.getPitchRange(e);this._xMotion.setRange(s.min,s.max),this._yMotion.setRange(n.min,n.max)}setZoomScale(t){this._zoomScale=t}resize(t,e,s,n){const r=yt(t*N,e)*Z;this._screenScale[0]=t/s,this._screenScale[1]=r/n}enable(){if(this._enabled)return;const t=this._controlEl;this._mouseInput.enable(t),this._touchInput.enable(t),this._keyboardInput.enable(t),this._enabled=!0,this._enableBlocked=!1,this.trigger(d.ENABLE,{control:this,updateCursor:!0})}disable(){this._enabled&&(this._mouseInput.disable(),this._touchInput.disable(),this._keyboardInput.disable(),this._enabled=!1,this.trigger(d.DISABLE,{updateCursor:!0}))}sync(t){this.updateRange(t,t.zoom),this._xMotion.reset(t.yaw),this._yMotion.reset(t.pitch)}_bindInputs(){const t=this._mouseInput,e=this._touchInput,s=this._keyboardInput;t.on(d.INPUT_START,this._onInputStart),t.on(d.CHANGE,this._onChange),t.on(d.INPUT_END,this._onInputEnd),e.on(d.INPUT_START,this._onInputStart),e.on(d.CHANGE,this._onChange),e.on(d.INPUT_END,this._onInputEnd),s.on(d.INPUT_START,this._onInputStart),s.on(d.CHANGE,this._onChange),s.on(d.INPUT_END,this._onInputEnd)}}class ii extends P{get scrollable(){return this._scrollable}set scrollable(t){this._scrollable=t}constructor(){super(),this._onWheel=t=>{const e=this._scrollable;if(t.deltaY===0||e)return;t.preventDefault(),t.stopPropagation(),this._inputTimer<0?this.trigger(d.INPUT_START,{srcEvent:t,isTouch:!1,isKeyboard:!1}):this._clearTimer();const s=this._baseScale*t.deltaY;this.trigger(d.CHANGE,{delta:s,isTouch:!1,isKeyboard:!1}),this._inputTimer=window.setTimeout(()=>{this.trigger(d.INPUT_END,{isTouch:!1,isKeyboard:!1,scrolling:!1}),this._inputTimer=-1},gt)},this._el=null,this._baseScale=.04,this._scrollable=!1,this._inputTimer=-1}enable(t){this._el||(t.addEventListener(u.WHEEL,this._onWheel,{passive:!1,capture:!1}),this._el=t,this._clearTimer())}disable(){const t=this._el;t&&(t.removeEventListener(u.WHEEL,this._onWheel,!1),this._el=null,this._clearTimer())}_clearTimer(){window.clearTimeout(this._inputTimer),this._inputTimer=-1}}class ni extends P{constructor(){super(),this._onTouchMove=t=>{const e=t.touches;if(e.length!==2||!t.cancelable)return;t.preventDefault(),t.stopPropagation();const s=this._prevDistance,n=[e[0].pageX-e[1].pageX,e[0].pageY-e[1].pageY],r=Math.sqrt(n[0]*n[0]+n[1]*n[1])*this._baseScale,o=this._isFirstTouch?0:r-s;this._isFirstTouch&&this.trigger(d.INPUT_START,{srcEvent:t,isTouch:!0,isKeyboard:!1}),this._prevDistance=r,this._isFirstTouch=!1,this.trigger(d.CHANGE,{delta:o,isTouch:!0,isKeyboard:!1})},this._onTouchEnd=t=>{t.touches.length===0&&(this._isFirstTouch||this.trigger(d.INPUT_END,{isTouch:!0,isKeyboard:!1,scrolling:!1}),this._prevDistance=-1,this._isFirstTouch=!0)},this._el=null,this._baseScale=-.2,this._prevDistance=-1,this._isFirstTouch=!0}enable(t){this._el||(t.addEventListener(u.TOUCH_MOVE,this._onTouchMove,{passive:!1,capture:!1}),t.addEventListener(u.TOUCH_END,this._onTouchEnd),this._el=t,this._prevDistance=-1,this._isFirstTouch=!0)}disable(){const t=this._el;t&&(t.removeEventListener(u.TOUCH_MOVE,this._onTouchMove,!1),t.removeEventListener(u.TOUCH_END,this._onTouchEnd),this._el=null)}}class ri extends P{get enabled(){return this._enabled}get enableBlocked(){return this._enableBlocked}get animating(){return this._motion.activated}get zoom(){return this._motion.val}get scrollable(){return this._wheelInput.scrollable}set scrollable(t){this._wheelInput.scrollable=t}get range(){return this._motion.range}get scale(){return this._scale}set scale(t){this._scale=t}get duration(){return this._motion.duration}get easing(){return this._motion.easing}constructor(t,e,{scale:s=1,duration:n=gt,easing:r=pt}={}){super(),this._onInputStart=o=>{this.trigger(d.INPUT_START,Object.assign(Object.assign({},o),{inputType:"zoom"}))},this._onChange=({delta:o})=>{const a=this._scale,h=o*a;this._motion.setNewEndByDelta(h)},this._onInputEnd=o=>{this.trigger(d.INPUT_END,Object.assign(Object.assign({},o),{inputType:"zoom"}))},this._scale=s,this._controlEl=t,this._enableBlocked=e,this._wheelInput=new ii,this._pinchInput=new ni,this._motion=new Et({duration:n,easing:r,range:It}),this._enabled=!1,this._bindInputs()}destroy(){this.disable(),this._wheelInput.off(),this._pinchInput.off(),this.off()}update(t){if(!this._enabled)return;this._motion.update(t)}enable(){if(this._enabled)return;const t=this._controlEl;this._wheelInput.enable(t),this._pinchInput.enable(t),this._enabled=!0,this._enableBlocked=!1,this.trigger(d.ENABLE,{control:this,updateCursor:!1})}disable(){this._enabled&&(this._wheelInput.disable(),this._pinchInput.disable(),this._enabled=!1,this.trigger(d.DISABLE,{updateCursor:!1}))}sync(t){const e=this._motion,s=t.getZoomRange();e.setRange(s.min,s.max),e.reset(s.current)}_bindInputs(){const t=this._wheelInput,e=this._pinchInput;t.on(d.INPUT_START,this._onInputStart),t.on(d.CHANGE,this._onChange),t.on(d.INPUT_END,this._onInputEnd),e.on(d.INPUT_START,this._onInputStart),e.on(d.CHANGE,this._onChange),e.on(d.INPUT_END,this._onInputEnd)}}const D={PITCH_DELTA:1,YAW_DELTA_BY_ROLL:2,YAW_DELTA_BY_YAW:3};D[D.PITCH_DELTA]={targetAxis:[0,1,0],meshPoint:[0,0,1]};D[D.YAW_DELTA_BY_ROLL]={targetAxis:[0,1,0],meshPoint:[1,0,0]};D[D.YAW_DELTA_BY_YAW]={targetAxis:[1,0,0],meshPoint:[0,0,1]};class oi extends P{get enabled(){return this._enabled}get orientationUpdated(){return this._orientationUpdated}get ignoreRoll(){return this._ignoreRoll}set ignoreRoll(t){this._ignoreRoll=t}constructor(){super(),this._onDeviceOrientation=t=>{const e=this._orientation,{alpha:s,beta:n,gamma:r}=t;s==null||n==null||r==null||(e.alpha=s,e.beta=n,e.gamma=r,this._orientationUpdated=!0,this._needsCalibrate&&(this._needsCalibrate=!1,this._calibrateSensor()))},this._updateScreenOrientation=()=>{window.screen&&window.screen.orientation&&window.screen.orientation.angle!==void 0?this._screenOrientation=screen.orientation.angle:window.orientation!==void 0?this._screenOrientation=window.orientation>=0?window.orientation:360+window.orientation:this._screenOrientation=0},this.quaternion=G(),this._orientation={alpha:0,beta:90,gamma:0},this._yawOrigin=0,this._yawOffset=0,this._orientationUpdated=!1,this._screenOrientation=0,this._needsCalibrate=!0,this._enabled=!1}enable(){this._enabled||(window.addEventListener(u.DEVICE_ORIENTATION,this._onDeviceOrientation),window.addEventListener(u.ORIENTATION_CHANGE,this._updateScreenOrientation),this._updateScreenOrientation(),this._orientationUpdated=!1,this._needsCalibrate=!0,this._enabled=!0)}disable(){this._enabled&&(window.removeEventListener(u.DEVICE_ORIENTATION,this._onDeviceOrientation),window.removeEventListener(u.ORIENTATION_CHANGE,this._updateScreenOrientation),this._enabled=!1)}update(){this._updateRotation(),this._orientationUpdated=!1}collectDelta(){if(!this._orientationUpdated)return{pitch:0,yaw:0};const t=ut(this.quaternion);return this._updateRotation(),this._orientationUpdated=!1,this._toEulerDelta(t,this.quaternion)}setInitialRotation(t){this._yawOrigin=t}_calibrateSensor(){const t=this._yawOrigin,e=this.quaternion;this._yawOffset=0,this._updateRotation();const{yaw:s}=Le(e);this._yawOffset=s-t,this._updateRotation(),this._needsCalibrate=!1}_updateRotation(){const t=this.quaternion,{alpha:e,beta:s,gamma:n}=this._orientation;ce(t),_e(t,t,(e-this._yawOffset)*N),ue(t,t,s*N),de(t,t,-n*N);const r=G(),o=-this._screenOrientation*.5*N,a=ms(-Math.sqrt(.5),0,0,Math.sqrt(.5));gs(r,0,Math.sin(o),0,Math.cos(o)),Zt(t,t,r),Zt(t,t,a),tt(t,t)}_toEulerDelta(t,e){return{yaw:this._getDeltaYaw(t,e),pitch:this._getDeltaPitch(t,e)}}_getDeltaYaw(t,e){const s=this._getRotationDelta(t,e,D.YAW_DELTA_BY_YAW);return this._getRotationDelta(t,e,D.YAW_DELTA_BY_ROLL)*Math.sin(this._extractPitchFromQuat(e))+s}_getDeltaPitch(t,e){return this._getRotationDelta(t,e,D.PITCH_DELTA)}_getRotationDelta(t,e,s){const n=I(D[s].targetAxis[0],D[s].targetAxis[1],D[s].targetAxis[2]),r=D[s].meshPoint,o=ut(t),a=ut(e);tt(o,o),tt(a,a);let h=I(0,0,1),l=I(0,0,1);F(h,h,o),F(l,l,a),F(n,n,a);const _=le(n,Q(B(),h,l))>0?1:-1,E=I(r[0],r[1],r[2]);let f;s!==D.YAW_DELTA_BY_YAW?f=I(0,_,0):f=I(_,0,0),F(E,E,a),F(f,f,a);const v=E,T=f,p=B();Q(p,v,T),he(p,p);const R=p[0],C=p[1],y=p[2];l=I(r[0],r[1],r[2]),F(l,l,a),h=I(r[0],r[1],r[2]),F(h,h,o);let g=Math.abs(h[0]*R+h[1]*C+h[2]*y);const m=B();ns(m,h,rs(B(),p,g));let b=(m[0]*l[0]+m[1]*l[1]+m[2]*l[2])/(Ft(m)*Ft(l));b>1&&(b=1);const Lt=Math.acos(b),rt=Q(B(),l,m);g=R*rt[0]+C*rt[1]+y*rt[2];let ot;return s!==D.YAW_DELTA_BY_YAW?ot=g>0?1:-1:ot=g<0?1:-1,Lt*ot*_*Z}_extractPitchFromQuat(t){const e=I(0,0,1);return F(e,e,t),-1*Math.atan2(e[1],Math.sqrt(Math.pow(e[0],2)+Math.pow(e[2],2)))}}class mt extends P{get enabled(){return this._input.enabled}get enableBlocked(){return this._enableBlocked}get animating(){return this._input.enabled&&this._input.orientationUpdated}get ignoreRoll(){return this._ignoreRoll}set ignoreRoll(t){this._ignoreRoll=t}static isAvailable(){return M(this,void 0,void 0,function*(){if(!DeviceMotionEvent)return!1;let t;const e=()=>new Promise(n=>{t=r=>{n(r.rotationRate&&r.rotationRate.alpha!=null)},window.addEventListener(u.DEVICE_MOTION,t)}),s=()=>new Promise(n=>{setTimeout(()=>n(!1),1e3)});return Promise.race([e(),s()]).then(n=>(window.removeEventListener(u.DEVICE_MOTION,t),n))})}static requestSensorPermission(){return M(this,void 0,void 0,function*(){return Ie()?DeviceMotionEvent.requestPermission().then(t=>t==="granted").catch(()=>!1):!0})}constructor(t,{ignoreRoll:e=!0}={}){super(),this._enableBlocked=t,this._ignoreRoll=e,this._input=new oi}destroy(){this.disable(),this._input.off(),this.off()}update(t,e,s,n){this._ignoreRoll?this._updateYawPitch(t,e,s,n):this._updateQuaternion(t,n)}enable(){this._input.enabled||(this._input.enable(),this._enableBlocked=!1,this.trigger(d.ENABLE,{control:this,updateCursor:!1}))}disable(){this._input.enabled&&(this._input.disable(),this.trigger(d.DISABLE,{updateCursor:!1}))}sync(){}_updateYawPitch(t,e,s,n){const r=this._input;if(!r.enabled)return;const{yaw:o,pitch:a}=r.collectDelta();e.add(o),s.add(a),t.lookAt({yaw:e.val,pitch:s.val,zoom:n})}_updateQuaternion(t,e){const s=this._input;s.enabled&&(s.update(),t.rotate(s.quaternion,e))}}class ai{get useGrabCursor(){return this._useGrabCursor}set useGrabCursor(t){t!==this._useGrabCursor&&(this._useGrabCursor=t,t&&this._enabled?this._setCursor(W.GRAB):t||this._setCursor(W.NONE))}get disableContextMenu(){return this._disableContextMenu}set disableContextMenu(t){t!==this._disableContextMenu&&(this._disableContextMenu=t,t&&this._enabled?this._blockContextMenu():t||this._restoreContextMenu())}get scrollable(){return this._rotateControl.scrollable}set scrollable(t){this._rotateControl.scrollable=t}get wheelScrollable(){return this._zoomControl.scrollable}set wheelScrollable(t){this._zoomControl.scrollable=t}get ignoreZoomScale(){return this._ignoreZoomScale}set ignoreZoomScale(t){this._ignoreZoomScale=t}get enabled(){return this._enabled}get rotate(){return this._rotateControl}get zoom(){return this._zoomControl}get gyro(){return this._gyroControl}get animating(){return this._rotateControl.animating||this._zoomControl.animating||this._gyroControl.animating}constructor(t,e,{useGrabCursor:s,scrollable:n,wheelScrollable:r,disableContextMenu:o,rotate:a,zoom:h,gyro:l}){this._preventContextMenu=c=>{c.preventDefault()},this._onInputStart=c=>{this._useGrabCursor&&!c.isKeyboard&&this._setCursor(W.GRABBING)},this._onInputEnd=c=>{this._useGrabCursor&&!c.isKeyboard&&this._setCursor(W.GRAB)},this._onEnable=({control:c,updateCursor:_})=>{_&&this._useGrabCursor&&this._setCursor(W.GRAB),c.sync(this._camera)},this._onDisable=({updateCursor:c})=>{c&&this._setCursor(W.NONE)},this._onCameraAnimationEnd=({animation:c})=>{c.getFinishPromise().then(()=>{this.sync()})},this._useGrabCursor=s,this._disableContextMenu=o,this._camera=e,this._controlEl=t,this._ignoreZoomScale=!1,this._enabled=!1,this._rotateControl=new si(t,!a,x(a)),this._zoomControl=new ri(t,!h,x(h)),this._gyroControl=new mt(!l,x(l)),this._rotateControl.scrollable=n,this._zoomControl.scrollable=r,this._bindEvents()}destroy(){this.disable(),this._rotateControl.destroy(),this._zoomControl.destroy(),this._setCursor(W.NONE)}resize(t,e){const s=this._camera;this._rotateControl.resize(s.fov,s.aspect,t,e)}enable(){return M(this,void 0,void 0,function*(){this._enabled||(this._rotateControl.enableBlocked||this._rotateControl.enable(),this._zoomControl.enableBlocked||this._zoomControl.enable(),this._gyroControl.enableBlocked||(yield mt.isAvailable())&&this._gyroControl.enable(),this.sync(),this._disableContextMenu&&this._blockContextMenu(),this._enabled=!0)})}disable(){this._enabled&&(this._rotateControl.disable(),this._zoomControl.disable(),this._gyroControl.disable(),this._restoreContextMenu(),this._enabled=!1)}update(t){const e=this._camera,s=this._rotateControl,n=this._zoomControl,r=this._gyroControl;n.update(t);const o=Js(e.fov,n.zoom),a=this._ignoreZoomScale?1:Math.max(o,1);s.setZoomScale(a),s.updateRange(e,o),s.update(t);const h=s.yaw,l=s.pitch;r.enabled?r.update(e,h,l,o):e.lookAt({yaw:h.val,pitch:l.val,zoom:o})}sync(){const t=this._camera;this._zoomControl.sync(t),this._rotateControl.sync(t)}_blockContextMenu(){this._controlEl.addEventListener(u.CONTEXT_MENU,this._preventContextMenu)}_restoreContextMenu(){this._controlEl.removeEventListener(u.CONTEXT_MENU,this._preventContextMenu)}_setCursor(t){if(!this._useGrabCursor&&t!==W.NONE)return;const e=this._controlEl;e.style.cursor=t}_bindEvents(){const t=this._rotateControl,e=this._zoomControl;t.on(d.INPUT_START,this._onInputStart),t.on(d.INPUT_END,this._onInputEnd),t.on(d.ENABLE,this._onEnable),t.on(d.DISABLE,this._onDisable),e.on(d.ENABLE,this._onEnable),e.on(d.DISABLE,this._onDisable),this._camera.on(Re.ANIMATION_END,this._onCameraAnimationEnd)}}class Se{constructor({width:t,height:e,flipY:s}){this.width=t,this.height=e,this.flipY=s,this.wrapS=WebGLRenderingContext.CLAMP_TO_EDGE,this.wrapT=WebGLRenderingContext.CLAMP_TO_EDGE}destroy(){}isVideo(){return!1}isCube(){return!1}}class we extends Se{constructor({source:t,width:e,height:s,flipY:n}){super({width:e,height:s,flipY:n}),this.source=t}}class hi extends we{destroy(){const t=this.source;t.pause(),t.removeAttribute("src"),t.load()}isVideo(){return!0}isPaused(){const t=this.source;return t.paused||t.ended||t.readyState<=2}hasAudio(){const t=this.source;return t.audioTracks?t.audioTracks.length>0:t.webkitAudioDecodedByteCount!=null?t.webkitAudioDecodedByteCount>0:t.mozHasAudio!=null?t.mozHasAudio:!0}}class li extends Se{constructor({sources:t,width:e,height:s,flipY:n}){super({width:e,height:s,flipY:n}),this.sources=t}isCube(){return!0}}class ci{constructor(){this._loadChecker=new Bs}load(t,e){return M(this,void 0,void 0,function*(){if(e)return this.loadVideo(t,x(e));if(Array.isArray(t)&&t.length>1)return this.loadCubeImage(t);{const s=Array.isArray(t)?t[0]:t;return this.loadImage(s)}})}loadImage(t){return M(this,void 0,void 0,function*(){const e=this._toImageArray(t);return this._load(e,s=>{const n=e[0];s(new we({source:n,width:n.naturalWidth,height:n.naturalHeight,flipY:!0}))})})}loadCubeImage(t){return M(this,void 0,void 0,function*(){const e=this._toImageArray(t);return this._load(e,s=>{s(new li({sources:e,width:e[0].naturalWidth,height:e[0].naturalHeight,flipY:!1}))})})}loadVideo(t,e){return M(this,void 0,void 0,function*(){const s=Object.assign({autoplay:!0,muted:!0,loop:!1,volume:1},e),n=this._toVideoElement(t,s);return this._load([n],r=>{const{autoplay:o,muted:a}=s;n.currentTime=0,o&&a&&n.play().catch(()=>{}),r(new hi({source:n,width:n.videoWidth,height:n.videoHeight,flipY:!0}))})})}_load(t,e){const s=this._loadChecker;return new Promise((n,r)=>{s.once("ready",o=>{o.errorCount>0||e(n)}),s.once("error",r),s.check(t)})}_toImageArray(t){return(Array.isArray(t)?t:[t]).map(s=>{if(kt(s)){const n=new Image;return n.crossOrigin="anonymous",n.src=s,n}else return s})}_toVideoElement(t,{muted:e,loop:s,volume:n}){if(t instanceof HTMLVideoElement)return t;const r=document.createElement("video");return r.crossOrigin="anonymous",r.playsInline=!0,r.setAttribute("webkit-playsinline",""),r.muted=e,r.volume=n,r.loop=s,Array.isArray(t)?t.forEach(a=>this._appendSourceElement(r,a)):this._appendSourceElement(r,t),r.querySelectorAll("source").length>0&&r.readyState<1&&r.load(),r}_appendSourceElement(t,e){if(e instanceof HTMLSourceElement)return e;const s=document.createElement("source");s.src=e,t.appendChild(s)}}class ui{constructor(t,e=window){this.maxDeltaTime=t,this._context=e,this._rafId=-1,this._rafTimer=-1,this._lastUpdateTime=-1}start(t){const e=this._context;if(!e||!t||this._rafId>=0||this._rafTimer>=0)return;const s=(n,r)=>{const o=Date.now(),a=Math.min(o-this._lastUpdateTime,this.maxDeltaTime*1e3);t(a,r),this._lastUpdateTime=o,this._rafId=e.requestAnimationFrame(s)};this._lastUpdateTime=Date.now(),this._rafId=e.requestAnimationFrame(s)}stop(){this._rafId>=0&&this._context.cancelAnimationFrame(this._rafId),this._rafTimer>=0&&clearTimeout(this._rafTimer),this._rafId=-1,this._rafTimer=-1}changeContext(t){this.stop(),this._context=t}}class _i{get useResizeObserver(){return this._useResizeObserver}get enabled(){return this._enabled}constructor(t,e){this._skipFirstResize=(()=>{let s=!0;return()=>{if(s){s=!1;return}this._onResize()}})(),this._useResizeObserver=t,this._enabled=!1,this._resizeObserver=null,this._onResize=e}enable(t){if(this._enabled&&this.disable(),this._useResizeObserver&&window.ResizeObserver){const e=t.getBoundingClientRect(),s=e.width!==0||e.height!==0,n=new ResizeObserver(s?this._skipFirstResize:this._onResize);n.observe(t),this._resizeObserver=n}else window.addEventListener(u.RESIZE,this._onResize);return this._enabled=!0,this}disable(){if(!this._enabled)return this;const t=this._resizeObserver;return t?(t.disconnect(),this._resizeObserver=null):window.removeEventListener(u.RESIZE,this._onResize),this._enabled=!1,this}}class di{get enabled(){return this._enabled}get enableBlocked(){return this._enableBlocked}get playing(){return this._enabled&&!this._interrupted}get delay(){return this._delay}set delay(t){this._delay=t}get delayOnMouseLeave(){return this._delayOnMouseLeave}set delayOnMouseLeave(t){this._delayOnMouseLeave=t}get speed(){return this._speed}set speed(t){this._speed=t}get pauseOnHover(){return this._pauseOnHover}set pauseOnHover(t){this._pauseOnHover=t}get canInterrupt(){return this._canInterrupt}set canInterrupt(t){this._canInterrupt=t}get disableOnInterrupt(){return this._disableOnInterrupt}set disableOnInterrupt(t){this._disableOnInterrupt=t}constructor(t,e,s){this._onInputStart=()=>{this._canInterrupt&&(this._interrupted=!0,this._clearTimeout())},this._onInputEnd=()=>{this._setUninterruptedAfterDelay(this._delay)},this._onGyroEnable=()=>{this.disable()},this._onMouseEnter=()=>{this._pauseOnHover&&(this._interrupted=!0,this._hovering=!0)},this._onMouseLeave=()=>{this._pauseOnHover&&(this._hovering=!1,this._setUninterruptedAfterDelay(this._delayOnMouseLeave))},this._camera=t.camera,this._control=t.control,this._element=e,this._enabled=!1,this._interrupted=!1,this._interruptionTimer=-1,this._hovering=!1;const{delay:n=2e3,delayOnMouseLeave:r=0,speed:o=1,pauseOnHover:a=!1,canInterrupt:h=!0,disableOnInterrupt:l=!1}=x(s);this._enableBlocked=!s,this._delay=n,this._delayOnMouseLeave=r,this._speed=o,this._pauseOnHover=a,this._canInterrupt=h,this._disableOnInterrupt=l}destroy(){this.disable()}update(t){if(!this._enabled)return;if(this._interrupted){this._disableOnInterrupt&&this.disable();return}const e=this._camera,s=-this._speed*t/100;e.yaw=it(e.yaw+s,0,360)}enable(){const t=this._control,e=this._element;this._enabled||t.gyro.enabled||(t.rotate.on(d.INPUT_START,this._onInputStart),t.rotate.on(d.INPUT_END,this._onInputEnd),t.zoom.on(d.INPUT_START,this._onInputStart),t.zoom.on(d.INPUT_END,this._onInputEnd),t.gyro.on(d.ENABLE,this._onGyroEnable),e.addEventListener(u.MOUSE_ENTER,this._onMouseEnter,!1),e.addEventListener(u.MOUSE_LEAVE,this._onMouseLeave,!1),this._enabled=!0,this._enableBlocked=!1)}enableAfterDelay(){this.enable(),this._interrupted=!0,this._setUninterruptedAfterDelay(this._delay)}disable(){if(!this._enabled)return;const t=this._control,e=this._element;t.rotate.off(d.INPUT_START,this._onInputStart),t.rotate.off(d.INPUT_END,this._onInputEnd),t.zoom.off(d.INPUT_START,this._onInputStart),t.zoom.off(d.INPUT_END,this._onInputEnd),t.gyro.off(d.ENABLE,this._onGyroEnable),e.removeEventListener(u.MOUSE_ENTER,this._onMouseEnter,!1),e.removeEventListener(u.MOUSE_LEAVE,this._onMouseLeave,!1),this._enabled=!1,this._interrupted=!1,this._hovering=!1,this._clearTimeout()}_setUninterruptedAfterDelay(t){this._hovering||(this._clearTimeout(),t>0?this._interruptionTimer=window.setTimeout(()=>{this._interrupted=!1,this._interruptionTimer=-1},t):(this._interrupted=!1,this._interruptionTimer=-1))}_clearTimeout(){this._interruptionTimer>=0&&(window.clearTimeout(this._interruptionTimer),this._interruptionTimer=-1)}}class fi extends P{constructor(t,e={}){super(),this.destroy=()=>{this.exit(),this.off()},this._onSessionEnd=()=>{this.exit(),this.trigger(O.VR_END)},this._xrSession=null,this._xrRefSpace=null,this._ctx=t,this._options=e}isAvailable(){return M(this,void 0,void 0,function*(){const t=window.navigator.xr;return t?t.isSessionSupported(se).then(e=>e).catch(()=>!1):!1})}enter(){return M(this,void 0,void 0,function*(){const t=this._ctx,e=window.navigator.xr;if(!e)return;yield mt.requestSensorPermission();const s=Object.assign({requiredFeatures:[ie]},this._options);yield t.makeXRCompatible();const n=yield e.requestSession(se,s);t.bindXRLayer(n);const r=yield n.requestReferenceSpace(ie);this._setSession(n,r),this.trigger(O.VR_START,{session:n})})}exit(){const t=this._xrSession;t&&t.end().catch(()=>{}),this._xrSession=null,this._xrRefSpace=null}canRender(t){const e=this._xrRefSpace;return e?!!t.getViewerPose(e):!1}getEyeParams(t){const e=t.session,s=t.getViewerPose(this._xrRefSpace);if(!s)return null;const n=e.renderState.baseLayer;return n?s.views.map(r=>{const o=n.getViewport(r),a=r.transform.inverse.matrix;return{viewport:o,vMatrix:a,pMatrix:r.projectionMatrix}}):null}_setSession(t,e){this._xrSession=t,this._xrRefSpace=e,t.addEventListener(u.XR_END,this._onSessionEnd)}}class Dt{constructor(t,e){this.element=t,this.position=e}}class Ei{constructor(t,e,{zoom:s=!1}){this._containerEl=Ce(".".concat(X.HOTSPOT_CONTAINER),t),this._renderer=e,this._hotspots=[],this._zoom=s}refresh(){const t=this._containerEl;if(!t)return;const e=[].slice.apply(t.querySelectorAll(".".concat(X.HOTSPOT)));this._hotspots=e.map(s=>this._parseHotspot(s))}render(t){const e=this._hotspots,s=this._renderer.width*.5,n=this._renderer.height*.5,r=t.zoom,o="translate(-50%, -50%)",a=this._zoom?"scale(".concat(r,")"):"";e.forEach(h=>{const l=h.position,c=B();if(is(c,l),$t(c,c,t.viewMatrix),$t(c,c,t.projectionMatrix),c[2]>1||c[2]<0){h.element.classList.remove(X.HOTSPOT_VISIBLE);return}const _=Ts(c[0]*s+s,-c[1]*n+n);h.element.classList.add(X.HOTSPOT_VISIBLE),h.element.style.transform=[o,"translate(".concat(_[0],"px, ").concat(_[1],"px)"),a].join(" ")})}_parseHotspot(t){const e=t.dataset.yaw,s=t.dataset.pitch,n=t.dataset.position;if(e||s){const r=e?parseFloat(e):0,o=s?parseFloat(s):0,a=this._yawPitchToVec3(r,o);return new Dt(t,a)}else if(n){const r=n.split(" ").map(o=>parseFloat(o));if(r.length<3)throw new H(U.MESSAGES.INSUFFICIENT_ARGS(n,'hotspot attribute "data-position"'),U.CODES.INSUFFICIENT_ARGS);return new Dt(t,I(r[0],r[1],r[2]))}else{const r=I(0,0,-1);return new Dt(t,r)}}_yawPitchToVec3(t,e){const s=t*N,n=e*N,r=B();return r[1]=Math.sin(n),r[2]=Math.cos(n),r[0]=r[2]*Math.sin(-s),r[2]=-r[2]*Math.cos(-s),r}}class mi{get count(){return this.geometry.indicies.count}constructor(t,e,s){this.obj=t,this.geometry=e,this.buffers=s}}class pi{get canvas(){return this._canvas}get maxTextureSize(){return this._maxTextureSize}get isWebGL2(){return this._isWebGL2}get supportVAO(){return this._isWebGL2||!!this._extensions.vao}get lost(){return this._contextLost}get debug(){return this._debug}constructor(t,e){this._onContextLost=()=>{this._canvas.classList.add(X.CTX_LOST),this._contextLost=!0},this._onContextRestore=()=>{this._canvas.classList.remove(X.CTX_LOST),this._contextLost=!1},this._canvas=t,this._contextLost=!1,this._debug=e,this._extensions={vao:null,loseContext:null}}init(){const t=this._canvas,{gl:e,isWebGL2:s}=this._getContext(t);this._gl=e,this._maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),this._isWebGL2=s,this._isWebGL2||(this._extensions.vao=e.getExtension("OES_vertex_array_object")),this._extensions.loseContext=e.getExtension("WEBGL_lose_context"),t.addEventListener(u.CONTEXT_LOST,this._onContextLost),t.addEventListener(u.CONTEXT_RESTORED,this._onContextRestore)}destroy(){const t=this._gl,e=this._canvas;t&&(t.bindBuffer(t.ARRAY_BUFFER,null),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),e.removeEventListener(u.CONTEXT_LOST,this._onContextLost),e.removeEventListener(u.CONTEXT_RESTORED,this._onContextRestore)}forceLoseContext(){const t=this._extensions.loseContext;t&&t.loseContext()}forceRestoreContext(){const t=this._extensions.loseContext;t&&t.restoreContext()}clear(){const t=this._gl;t.clear(t.COLOR_BUFFER_BIT)}resize(){const t=this._gl;t.viewport(0,0,t.drawingBufferWidth,t.drawingBufferHeight)}viewport(t,e,s,n){this._gl.viewport(t,e,s,n)}createVAO(t,e){const s=this._createNativeVAO(),n=new mi(s,t,{indicies:this._createBuffer(),position:this._createBuffer(),uv:this._createBuffer()});return s&&(this._bindNativeVAO(s),this._supplyGeometryData(n,e),this._bindNativeVAO(null),this._unbindBuffers()),n}draw(t,e){const s=this._gl;t.obj?this._bindNativeVAO(t.obj):this._supplyGeometryData(t,e),s.drawElements(s.TRIANGLES,t.count,s.UNSIGNED_SHORT,0),t.obj?this._bindNativeVAO(null):this._unbindBuffers()}releaseVAO(t){t.obj&&this._deleteNativeVAO(t.obj),this._deleteBuffer(t.buffers.indicies),this._deleteBuffer(t.buffers.position),this._deleteBuffer(t.buffers.uv)}getUniformLocations(t,e){const s=this._gl,n=Object.keys(e).reduce((r,o)=>(r[o]=s.getUniformLocation(t,o),r),{});return Object.assign(Object.assign({},this._getCommonUniformLocations(t)),n)}updateCommonUniforms(t,e,s){const n=this._gl,r=s.uniformLocations,o=t.matrix,a=ft();ae(a,e.viewMatrix,o),n.uniformMatrix4fv(r.uMVMatrix,!1,a),n.uniformMatrix4fv(r.uPMatrix,!1,e.projectionMatrix)}updateVRUniforms(t,e,s,n){const r=this._gl,o=t.uniformLocations;r.uniformMatrix4fv(o.uMVMatrix,!1,e),r.uniformMatrix4fv(o.uPMatrix,!1,s),o.uEye&&r.uniform1f(o.uEye,n)}updateUniforms(t){const e=this._gl,s=t.uniforms,n=t.uniformLocations;for(const r in s){const o=s[r],a=n[r];o&&o.needsUpdate&&o.update(e,a,this._isWebGL2)}}releaseShaderResources(t){const e=this._gl,s=t.uniforms;for(const n in s){const r=s[n];r&&r.needsUpdate&&r.destroy(e)}e.deleteProgram(t.program)}useProgram(t){this._gl.useProgram(t.program)}createProgram(t,e){const s=this._gl,n=s.createProgram(),r=this._compileShader(s.VERTEX_SHADER,t),o=this._compileShader(s.FRAGMENT_SHADER,e);if(s.attachShader(n,r),s.attachShader(n,o),s.bindAttribLocation(n,0,"position"),s.bindAttribLocation(n,1,"uv"),s.linkProgram(n),this._debug&&!s.getProgramParameter(n,s.LINK_STATUS)){let a=null;throw s.getShaderParameter(r,s.COMPILE_STATUS)?s.getShaderParameter(o,s.COMPILE_STATUS)||(a=s.getShaderInfoLog(o)):a=s.getShaderInfoLog(r),new H(U.MESSAGES.FAILED_LINKING_PROGRAM(s.getProgramInfoLog(n),a),U.CODES.FAILED_LINKING_PROGRAM)}return s.deleteShader(r),s.deleteShader(o),n}createWebGLTexture(t){const e=this._gl,s=e.createTexture();if(e.bindTexture(e.TEXTURE_2D,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,t.wrapS),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,t.wrapT),!t.isVideo()&&this._isWebGL2){const n=e;n.texStorage2D(n.TEXTURE_2D,1,n.RGBA8,t.width,t.height)}return s}createWebGLCubeTexture(t,e){const s=this._gl,n=s.createTexture();if(s.bindTexture(s.TEXTURE_CUBE_MAP,n),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_S,t.wrapS),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_WRAP_T,t.wrapT),this._isWebGL2){const r=s;r.texStorage2D(r.TEXTURE_CUBE_MAP,1,r.RGBA8,e,e)}return n}makeXRCompatible(){return M(this,void 0,void 0,function*(){const t=this._gl,e=t.getContextAttributes();e&&e.xrCompatible!==!0&&(yield t.makeXRCompatible())})}bindXRLayer(t){const e=this._gl,s=new XRWebGLLayer(t,e);t.updateRenderState({baseLayer:s})}bindXRFrame(t){const e=this._gl,n=t.session.renderState.baseLayer;e.bindFramebuffer(e.FRAMEBUFFER,n.framebuffer)}useDefaultFrameBuffer(){const t=this._gl;t.bindFramebuffer(t.FRAMEBUFFER,null)}_createBuffer(){return this._gl.createBuffer()}_deleteBuffer(t){return this._gl.deleteBuffer(t)}_createNativeVAO(){const t=this._gl;if(this._isWebGL2)return t.createVertexArray();{const e=this._extensions.vao;return(e==null?void 0:e.createVertexArrayOES())||null}}_bindNativeVAO(t){const e=this._gl;if(this._isWebGL2)e.bindVertexArray(t);else{const s=this._extensions.vao;s==null||s.bindVertexArrayOES(t)}}_deleteNativeVAO(t){const e=this._gl;if(this._isWebGL2)e.deleteVertexArray(t);else{const s=this._extensions.vao;s==null||s.deleteVertexArrayOES(t)}}_supplyGeometryData(t,e){const s=t.geometry;this._supplyIndiciesData(s.indicies,t.buffers.indicies),this._supplyAttributeData(s.vertices,e.program,"position",t.buffers.position),this._supplyAttributeData(s.uvs,e.program,"uv",t.buffers.uv)}_unbindBuffers(){const t=this._gl;t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),t.bindBuffer(t.ARRAY_BUFFER,null)}_supplyIndiciesData(t,e){const s=this._gl;s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,e),s.bufferData(s.ELEMENT_ARRAY_BUFFER,t.data,s.STATIC_DRAW)}_supplyAttributeData(t,e,s,n){const r=this._gl,o=r.getAttribLocation(e,s);o<0||(r.bindBuffer(r.ARRAY_BUFFER,n),r.bufferData(r.ARRAY_BUFFER,t.data,r.STATIC_DRAW),r.vertexAttribPointer(o,t.itemSize,r.FLOAT,!1,0,0),r.enableVertexAttribArray(o))}_compileShader(t,e){const s=this._gl,n=s.createShader(t);return s.shaderSource(n,e),s.compileShader(n),n}_getCommonUniformLocations(t){const e=this._gl;return{uMVMatrix:e.getUniformLocation(t,"uMVMatrix"),uPMatrix:e.getUniformLocation(t,"uPMatrix")}}_getContext(t){const e=["webgl2","webgl","experimental-webgl","webkit-3d","moz-webgl"];let s=null,n=!1;const r={preserveDrawingBuffer:!1,antialias:!1},o=a=>a.statusMessage;t.addEventListener(u.CONTEXT_CREATE_ERROR,o);for(const a of e){try{s=t.getContext(a,r),n=a==="webgl2"}catch(h){}if(s)break}if(t.removeEventListener(u.CONTEXT_CREATE_ERROR,o),!s)throw new H(U.MESSAGES.WEBGL_NOT_SUPPORTED,U.CODES.WEBGL_NOT_SUPPORTED);return{gl:s,isWebGL2:n}}}class gi{get canvas(){return this._canvas}get width(){return this._elementSize.x}get height(){return this._elementSize.y}get pixelRatio(){return this._pixelRatio}get aspect(){return this._elementSize.x/this._elementSize.y}constructor(t,e){this._canvas=t,this._elementSize={x:0,y:0},this._pixelRatio=1,this.ctx=new pi(t,e)}destroy(){const t=this._canvas;this.ctx.destroy(),t.width=1,t.height=1}resize(){const t=this._canvas,e=this._elementSize,s=window.devicePixelRatio;e.x=t.clientWidth,e.y=t.clientHeight,t.width=e.x*s,t.height=e.y*s,this._pixelRatio=s,this.ctx.resize()}render(t,e){const s=this.ctx;s.lost||(s.clear(),s.useProgram(t.program),s.updateCommonUniforms(t,e,t.program),t.update({camera:e}),s.updateUniforms(t.program),s.draw(t.vao,t.program))}renderVR(t,e,s){const n=this.ctx,r=e.getEyeParams(s);!r||!t||(n.bindXRFrame(s),n.useProgram(t.program),n.updateUniforms(t.program),r.forEach((o,a)=>{const h=o.viewport,l=ae(ft(),o.vMatrix,t.matrix);n.viewport(h.x,h.y,h.width,h.height),n.updateVRUniforms(t.program,l,o.pMatrix,a),n.draw(t.vao,t.program)}))}}class Pe extends P{get rootEl(){return this._rootEl}get renderer(){return this._renderer}get camera(){return this._camera}get control(){return this._control}get vr(){return this._vr}get hotspot(){return this._hotspot}get plugins(){return this._plugins}get projection(){return this._projection}set projection(t){this._initialized&&t?this.load(t):this._projection=t}get mesh(){return this._mesh}get initialized(){return this._initialized}get autoplay(){return this._autoplay}get autoInit(){return this._autoInit}get autoResize(){return this._autoResize}get canvasSelector(){return this._canvasSelector}get useResizeObserver(){return this._useResizeObserver}get tabIndex(){return this._tabIndex}set tabIndex(t){const e=this._renderer.canvas;this._tabIndex=t,t!=null?e.tabIndex=t:e.removeAttribute("tabindex")}get maxDeltaTime(){return this._animator.maxDeltaTime}set maxDeltaTime(t){this._animator.maxDeltaTime=t}get debug(){return this._debug}set debug(t){this._debug=t}get initialYaw(){return this._camera.initialYaw}set initialYaw(t){this._camera.initialYaw=t}get initialPitch(){return this._camera.initialPitch}set initialPitch(t){this._camera.initialPitch=t}get initialZoom(){return this._camera.initialZoom}set initialZoom(t){this._camera.initialZoom=t}get yawRange(){return this._camera.yawRange}set yawRange(t){this._camera.yawRange=t,this._projection&&this._projection.updateCamera(this._camera)}get pitchRange(){return this._camera.pitchRange}set pitchRange(t){this._camera.pitchRange=t,this._projection&&this._projection.updateCamera(this._camera)}get zoomRange(){return this._camera.zoomRange}set zoomRange(t){this._camera.zoomRange=t,this._projection&&this._projection.updateCamera(this._camera)}get fov(){return this._camera.fov}set fov(t){const e=this._camera,s=this._control;e.fov=t,e.updateMatrix(),s.sync()}get rotate(){return this._control.rotate}get zoom(){return this._control.zoom}get gyro(){return this._control.gyro}get useGrabCursor(){return this._control.useGrabCursor}set useGrabCursor(t){this._control.useGrabCursor=t}get disableContextMenu(){return this._control.disableContextMenu}set disableContextMenu(t){this._control.disableContextMenu=t}get scrollable(){return this._control.scrollable}set scrollable(t){this._control.scrollable=t}get wheelScrollable(){return this._control.wheelScrollable}set wheelScrollable(t){this._control.wheelScrollable=t}constructor(t,{projection:e=null,initialYaw:s=0,initialPitch:n=0,initialZoom:r=1,yawRange:o=null,pitchRange:a=null,zoomRange:h=null,fov:l=90,useGrabCursor:c=!0,disableContextMenu:_=!1,rotate:E=!0,zoom:f=!0,gyro:v=!1,scrollable:T=!0,wheelScrollable:p=!1,autoplay:R=!1,hotspot:C={},autoInit:y=!0,autoResize:g=!0,canvasSelector:m="canvas",useResizeObserver:b=!0,on:Lt={},plugins:rt=[],maxDeltaTime:ot=1/30,tabIndex:Xt=0,debug:Kt=!1}={}){super(),this.renderFrame=J=>{const A=this._camera,at=this._renderer,j=this._control,q=this._hotspot,ht=this._autoplay,jt=this._mesh;jt&&(this._emit(O.BEFORE_RENDER),ht.playing&&(ht.update(J),j.sync()),A.animation?A.animation.update(J):j.update(J),at.render(jt,A),q.render(A),A.changed&&this._emit(O.VIEW_CHANGE,{yaw:A.yaw,pitch:A.pitch,zoom:A.zoom,quaternion:[A.quaternion[0],A.quaternion[1],A.quaternion[2],A.quaternion[3]]}),A.onFrameRender(),this._emit(O.RENDER))},this._renderFrameOnDemand=J=>{const A=this._camera,at=this._control,j=this._autoplay,q=this._mesh,ht=q==null?void 0:q.getTexture();!this._initialized||!ht||!A.animation&&!at.animating&&!j.playing&&!ht.isVideo()||this.renderFrame(J)},this._renderVRFrame=(J,A)=>{const at=this._vr,j=this._mesh,q=this._renderer;j&&(this._emit(O.BEFORE_RENDER),q.renderVR(j,at,A),this._emit(O.RENDER))},this._rootEl=qs(t),this._plugins=rt,this._initialized=!1,this._autoInit=y,this._autoResize=g,this._canvasSelector=m,this._useResizeObserver=b,this._tabIndex=Xt,this._debug=Kt;const At=$s(this._rootEl,m);this._renderer=new gi(At,Kt),this._camera=new ti({initialYaw:s,initialPitch:n,initialZoom:r,fov:l,yawRange:o,pitchRange:a,zoomRange:h}),this._control=new ai(At,this._camera,{useGrabCursor:c,scrollable:T,wheelScrollable:p,disableContextMenu:_,rotate:E,zoom:f,gyro:v}),this._animator=new ui(ot),this._autoplay=new di(this,At,R),this._projection=e,this._mesh=null,this._autoResizer=new _i(b,()=>this.resize()),this._vr=new fi(this._renderer.ctx),this._hotspot=new Ei(this._rootEl,this._renderer,C),this._addEventHandlers(Lt),e&&y&&this.init()}destroy(){this._camera.destroy(),this._animator.stop(),this._renderer.destroy(),this._control.destroy(),this._autoResizer.disable(),this._mesh&&(this._mesh.destroy(this._renderer.ctx),this._mesh=null),this._plugins.forEach(t=>t.destroy(this)),this._initialized=!1}init(){return M(this,void 0,void 0,function*(){if(!this._projection)throw new H(U.MESSAGES.PROVIDE_PROJECTION_FIRST,U.CODES.PROVIDE_PROJECTION_FIRST);const t=this._renderer,e=this._camera,s=this._control,n=this._animator,r=this._hotspot,o=this._projection,a=t.canvas;this._bindComponentEvents(),t.ctx.init(),this._resizeComponents(),e.updateMatrix(),this._autoResize&&this._autoResizer.enable(a),this._autoplay.enableBlocked||this._autoplay.enable(),this._plugins.forEach(l=>{l.init(this)});const h=yield this._loadTexture(o);this._applyProjection(o,h),r.refresh(),n.start(this._renderFrameOnDemand),yield s.enable(),this._tabIndex!=null&&!a.hasAttribute("tabIndex")&&(a.tabIndex=this._tabIndex),this._initialized=!0,this.renderFrame(0),this._emit(O.READY)})}load(t){return M(this,void 0,void 0,function*(){if(!t)return!1;if(this._initialized){const e=yield this._loadTexture(t);this._applyProjection(t,e),this.renderFrame(0)}else this._projection=t,this.init();return!0})}resize(){if(!this._initialized)return;this._resizeComponents(),this.renderFrame(0);const{width:t,height:e}=this._renderer;this._emit(O.RESIZE,{width:t,height:e})}addPlugins(...t){this._initialized&&t.forEach(e=>{e.init(this)}),this._plugins.push(...t)}removePlugins(...t){t.forEach(e=>{const s=this._plugins.indexOf(e);s<0||(e.destroy(this),this._plugins.splice(s,1))})}_emit(t,...e){const s=e?e[0]:{};this.trigger(t,Object.assign({type:t,target:this},s))}_applyProjection(t,e){const s=this._camera,n=this._control,r=this._renderer,o=this._mesh;o&&o.destroy(r.ctx);const a=t.createMesh(r.ctx,e);t.updateCamera(s),t.updateControl(n),this._mesh=a,this._emit(O.PROJECTION_CHANGE,{projection:t})}_loadTexture(t){return M(this,void 0,void 0,function*(){const e=new ci,{src:s,video:n}=t;this._emit(O.LOAD_START,{src:s,video:n});const r=yield e.load(s,n);return this._emit(O.LOAD,{src:s,video:n}),r})}_resizeComponents(){const t=this._renderer,e=this._camera,s=this._control;t.resize(),e.resize(t.width,t.height),s.resize(t.width,t.height)}_addEventHandlers(t){Object.keys(t).forEach(e=>{this.on(e,t[e])})}_bindComponentEvents(){const t=this._rootEl,e=this._control,s=this._animator,n=this._renderer,r=this._vr;[d.STATIC_CLICK,d.INPUT_START,d.INPUT_END].forEach(a=>{e.rotate.on(a,h=>{this._emit(a,h)}),e.zoom.on(a,h=>{this._emit(a,h)})}),r.on(O.VR_START,a=>{t.classList.add(X.IN_VR),s.changeContext(a.session),s.start(this._renderVRFrame),this._emit(O.VR_START)}),r.on(O.VR_END,()=>{t.classList.remove(X.IN_VR),n.ctx.useDefaultFrameBuffer(),s.changeContext(window),s.start(this._renderFrameOnDemand),this.resize(),this._emit(O.VR_END)})}}Pe.VERSION="4.0.0-beta.7";class vi extends P{constructor(){super(),this.matrix=ft(),this.rotation=G(),this.position=I(0,0,0),this.scale=I(1,1,1)}updateMatrix(){Qe(this.matrix,this.rotation,this.position,this.scale)}update(t){this.trigger(Xs.UPDATE,t)}}class K{constructor(t){this.position=t.position,this.order=t.order}}const xe={CONTROLS_ROOT:"view360-controls",CONTROLS_BG:"view360-controls-background",CONTROLS_MAIN:"view360-controls-main",CONTROLS_TOP:"view360-controls-top",CONTROLS_BOTTOM:"view360-controls-bottom",CONTROLS_MID:"view360-controls-mid",CONTROLS_LEFT:"view360-controls-left",CONTROLS_RIGHT:"view360-controls-right",CONTROLS_FLOAT_LEFT:"view360-controls-float-left",CONTROLS_FLOAT_RIGHT:"view360-controls-float-right",CONTROLS_BUTTON:"view360-controls-button",PROGRESS_ROOT:"view360-controls-progress",VOLUME_ROOT:"view360-controls-volume",RANGE_ROOT:"view360-range",RANGE_TRACK:"view360-range-track",RANGE_THUMB:"view360-range-thumb",RANGE_FILLER:"view360-range-filler",PLAY_BUTTON:"view360-controls-play",PAUSE_BUTTON:"view360-controls-pause",UNMUTED_BUTTON:"view360-controls-unmuted",MUTED_BUTTON:"view360-controls-muted",FULLSCREEN_BUTTON:"view360-controls-fullscreen",FULLSCREEN_EXIT_BUTTON:"view360-controls-fullscreen-exit",VR_BUTTON:"view360-controls-vr",GYRO_ENABLED:"view360-controls-gyro-enabled",GYRO_DISABLED:"view360-controls-gyro-disabled",VIDEO_TIME_DISPLAY:"view360-controls-time",PIEVIEW_ROOT:"view360-controls-pie",FIXED:"view360-controls-fixed",UNAVAILABLE:"view360-controls-unavailable",HIDDEN:"view360-controls-hidden"},k={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",MAIN_TOP:"main-top",MAIN_BOTTOM:"main-bottom",MAIN_LEFT:"main-left",MAIN_RIGHT:"main-right"};class De extends P{constructor(){super(),this._onHold=({srcEvent:r,isTouch:o})=>{var a;const h=this._bbox;if(!h)return;const l=o?r.touches[0].pageX:r.pageX,c=h.x+((a=window.scrollX)!==null&&a!==void 0?a:window.pageXOffset),_=S(l,c,c+h.width),E=(_-c)/h.width;this._motion.reset(_),this.thumbEl.classList.add(this._fixedClass),this.trigger(d.INPUT_START,E)},this._onChange=({delta:r})=>{var o;const a=this._motion,h=this._bbox;if(!h)return;a.setNewEndByDelta(r.x),a.update(1);const l=h.x+((o=window.scrollX)!==null&&o!==void 0?o:window.pageXOffset),_=(S(a.val,l,l+h.width)-l)/h.width;this.trigger(d.CHANGE,_)},this._onRelease=()=>{this._bbox&&(this.thumbEl.classList.remove(this._fixedClass),this.trigger(d.INPUT_END))};const t=document.createElement(z),e=document.createElement(z),s=document.createElement(z),n=document.createElement(z);t.draggable=!1,e.appendChild(n),e.appendChild(s),t.appendChild(e),this.rootEl=t,this.trackEl=e,this.thumbEl=s,this.fillerEl=n,this._mouseInput=new Ae,this._touchInput=new Ne,this._motion=new Et({duration:1,range:It,easing:r=>r}),this._bbox={x:0,y:0,width:0,height:0,left:0,right:0,bottom:0,top:0},this._fixedClass=xe.FIXED}init(t){const e=this._mouseInput,s=this._touchInput;this.rootEl.classList.add(t.RANGE_ROOT),this.trackEl.classList.add(t.RANGE_TRACK),this.thumbEl.classList.add(t.RANGE_THUMB),this.fillerEl.classList.add(t.RANGE_FILLER),this._fixedClass=t.FIXED,e.on(d.INPUT_START,this._onHold),s.on(d.INPUT_START,this._onHold),e.on(d.INPUT_END,this._onRelease),s.on(d.INPUT_END,this._onRelease),e.on(d.CHANGE,this._onChange),s.on(d.CHANGE,this._onChange),e.enable(this.rootEl),s.enable(this.rootEl),this.resize()}destroy(){const t=this._mouseInput,e=this._touchInput;this.rootEl.className="",this.trackEl.className="",this.thumbEl.className="",this.fillerEl.className="",t.off(),e.off(),t.disable(),e.disable()}resize(){this._bbox=this.trackEl.getBoundingClientRect()}updateStyle(t){const e=this._bbox.width,s=S(t,0,1);this.fillerEl.style.width="".concat(s*100,"%"),this.thumbEl.style.transform="translateX(".concat(s*e,"px)")}}class Ti extends K{get element(){return this._rangeControl.rootEl}constructor({position:t=k.MAIN_TOP,order:e=9999}={}){super({position:t,order:e}),this._onResize=()=>{this._rangeControl.resize()},this._onTimeUpdate=()=>{const s=this._video;s&&(this._currentTime=s.source.currentTime,this._rangeControl.updateStyle(this._currentTime/this._duration))},this._onDurationChange=()=>{const s=this._video;s&&(this._duration=s.source.duration,this._rangeControl.updateStyle(this._currentTime/this._duration))},this._onHold=s=>{const n=this._video,r=this._controlBar;if(!n||!r)return;const o=n.isPaused();n.source.pause();const a=n.source.duration*s;n.source.currentTime=a,n.source.dispatchEvent(new CustomEvent($,{detail:{time:a}})),r.rootEl.classList.add(r.className.FIXED),this._wasPaused=!this._playPromise&&o},this._onControl=s=>{const n=this._video;if(!n)return;const r=n.source.duration*s;n.source.currentTime=r,n.source.dispatchEvent(new CustomEvent($,{detail:{time:r}}))},this._onRelease=()=>{const s=this._video,n=this._controlBar;s&&n&&!this._wasPaused&&!this._playPromise&&(this._playPromise=s.source.play().catch(()=>{}),this._playPromise.then(()=>{this._playPromise=null}),n.rootEl.classList.remove(n.className.FIXED)),this._wasPaused=!1},this.position=t,this.order=e,this._controlBar=null,this._rangeControl=new De,this._video=null,this._wasPaused=!1,this._currentTime=0,this._duration=0,this._playPromise=null}init(t,e){var s;const n=(s=t.mesh)===null||s===void 0?void 0:s.getTexture(),r=this.element,o=this._rangeControl,a=e.className.UNAVAILABLE;if(!n||!n.isVideo()){r.classList.add(a);return}r.classList.remove(a),r.classList.add(e.className.PROGRESS_ROOT),t.on(O.RESIZE,this._onResize),n.source.addEventListener(u.VIDEO_TIME_UPDATE,this._onTimeUpdate),n.source.addEventListener(u.VIDEO_DURATION_CHANGE,this._onDurationChange),n.source.addEventListener($,this._onTimeUpdate),o.init(e.className),o.on(d.INPUT_START,this._onHold),o.on(d.CHANGE,this._onControl),o.on(d.INPUT_END,this._onRelease),this._video=n,this._currentTime=n.source.currentTime,this._duration=n.source.duration,this._controlBar=e,o.updateStyle(this._currentTime/this._duration)}destroy(t){const e=this._video;t.off(O.RESIZE,this._onResize),e&&(e.source.removeEventListener(u.VIDEO_TIME_UPDATE,this._onTimeUpdate),e.source.removeEventListener(u.VIDEO_DURATION_CHANGE,this._onDurationChange),e.source.removeEventListener($,this._onTimeUpdate)),this._rangeControl.destroy(),this._video=null,this._playPromise=null}}class yi extends K{constructor({position:t=k.MAIN_LEFT,order:e=9999}={}){super({position:t,order:e}),this._onClick=()=>{const s=this._video;s&&(this._paused?s.source.play():s.source.pause())},this._onPlay=()=>{if(!this._controlBar)return;const s=this.element,n=this._controlBar.className;s.classList.add(n.PAUSE_BUTTON),s.classList.remove(n.PLAY_BUTTON),s.title="Pause Video",this._paused=!1},this._onPause=()=>{if(!this._controlBar)return;const s=this.element,n=this._controlBar.className;s.classList.add(n.PLAY_BUTTON),s.classList.remove(n.PAUSE_BUTTON),s.title="Play Video",this._paused=!0},this.element=document.createElement(Ot),this._video=null,this._paused=!0,this._controlBar=null}init(t,e){var s;const n=this.element,r=(s=t.mesh)===null||s===void 0?void 0:s.getTexture(),o=e.className,a=o.UNAVAILABLE;if(!r||!r.isVideo()){n.classList.add(a);return}n.classList.add(o.CONTROLS_BUTTON),n.classList.remove(a);const h=r.isPaused();this._video=r,this._paused=h,this._controlBar=e,h?this._onPause():this._onPlay(),n.addEventListener(u.CLICK,this._onClick),r.source.addEventListener(u.VIDEO_PLAY,this._onPlay),r.source.addEventListener(u.VIDEO_PAUSE,this._onPause)}destroy(){const t=this._video,e=this.element;t&&(e.className="",e.removeEventListener(u.CLICK,this._onClick),t.source.removeEventListener(u.VIDEO_PLAY,this._onPlay),t.source.removeEventListener(u.VIDEO_PAUSE,this._onPause),this._video=null,this._paused=!0,this._controlBar=null)}}class Ri extends K{get element(){return this._rootEl}constructor({position:t=k.MAIN_RIGHT,order:e=9999}={}){super({position:t,order:e}),this._onResize=()=>{this._rangeControl.resize(),this._updateDisplay()},this._onClick=()=>{const s=this._video;!s||this._rootEl.disabled||(s.source.muted=!s.source.muted)},this._onVolumeChange=()=>{const s=this._buttonEl,n=this._video,r=this._controlBar;if(!n||!r)return;const o=r.className;n.source.muted||n.source.volume===0?(s.classList.add(o.MUTED_BUTTON),s.classList.remove(o.UNMUTED_BUTTON)):(s.classList.add(o.UNMUTED_BUTTON),s.classList.remove(o.MUTED_BUTTON)),this._updateDisplay()},this._onHold=s=>{const n=this._video,r=this._controlBar;if(!n||!r)return;const o=r.className;n.source.volume=s,this._rootEl.classList.add(o.FIXED),r.containerEl.classList.add(o.FIXED),this._updateDisplay()},this._onChange=s=>{const n=this._video;n&&(n.source.volume=s,s>0?n.source.muted=!1:n.source.muted=!0,this._updateDisplay())},this._onRelease=()=>{const s=this._controlBar;if(!s)return;const n=s.className;this._rootEl.classList.remove(n.FIXED),s.containerEl.classList.remove(n.FIXED)},this._updateDisplay=()=>{const s=this._video,n=this._rootEl;if(!s)return;if(!s.hasAudio()){n.disabled=!0;return}n.disabled=!1;const r=s.source.muted?0:s.source.volume;this._rangeControl.updateStyle(r)},this._controlBar=null,this._rangeControl=new De,this._createElements(),this._video=null}init(t,e){var s;const n=(s=t.mesh)===null||s===void 0?void 0:s.getTexture(),r=this._rootEl,o=this._buttonEl,a=this._rangeControl,h=e.className,l=h.UNAVAILABLE;if(!n||!n.isVideo()){r.classList.add(l);return}r.classList.remove(l),r.classList.add(h.CONTROLS_BUTTON),r.classList.add(h.VOLUME_ROOT),o.classList.add(h.CONTROLS_BUTTON),n.source.muted?o.classList.add(h.MUTED_BUTTON):o.classList.add(h.UNMUTED_BUTTON),t.on(O.RESIZE,this._onResize),r.addEventListener(u.TRANSITION_END,this._onResize),o.addEventListener(u.CLICK,this._onClick),n.source.addEventListener(u.VIDEO_VOLUME_CHANGE,this._onVolumeChange),n.source.addEventListener(u.VIDEO_LOADED_DATA,this._updateDisplay),n.source.addEventListener(u.VIDEO_CAN_PLAYTHROUGH,this._updateDisplay),a.init(h),a.on(d.INPUT_START,this._onHold),a.on(d.CHANGE,this._onChange),a.on(d.INPUT_END,this._onRelease),this._controlBar=e,this._video=n,this._updateDisplay()}destroy(t){const e=this._video,s=this._buttonEl,n=this._rootEl;n.className="",s.className="",t.off(O.RESIZE,this._onResize),n.removeEventListener(u.TRANSITION_END,this._onResize),s.removeEventListener(u.CLICK,this._onClick),e&&(e.source.removeEventListener(u.VIDEO_VOLUME_CHANGE,this._onVolumeChange),e.source.removeEventListener(u.VIDEO_LOADED_DATA,this._updateDisplay),e.source.removeEventListener(u.VIDEO_CAN_PLAYTHROUGH,this._updateDisplay)),this._controlBar=null,this._rangeControl.destroy(),this._video=null}_createElements(){const t=document.createElement(Ot),e=document.createElement(z);t.appendChild(this._rangeControl.rootEl),t.appendChild(e),t.title="Toggle Mute",this._rootEl=t,this._buttonEl=e}}class bi extends K{constructor({position:t=k.MAIN_RIGHT,order:e=9999}={}){super({position:t,order:e}),this._onClick=()=>{const s=this._targetEl;s&&(dt()?this._exitFullscreen():this._requestFullscreen(s))},this._onFullscreenChange=()=>{const s=this.element,n=this._controlBar;if(!n)return;const r=n.className;dt()?(s.classList.add(r.FULLSCREEN_EXIT_BUTTON),s.classList.remove(r.FULLSCREEN_BUTTON)):(s.classList.add(r.FULLSCREEN_BUTTON),s.classList.remove(r.FULLSCREEN_EXIT_BUTTON))},this.element=document.createElement(Ot),this.element.title="Toggle Fullscreen",this._controlBar=null,this._targetEl=null}init(t,e){const s=this.element,n=e.className;if(!this._fullscreenAvailable()){s.classList.add(n.UNAVAILABLE);return}s.classList.add(n.CONTROLS_BUTTON),s.classList.remove(n.UNAVAILABLE),s.addEventListener(u.CLICK,this._onClick),this._addFullscreenHandlers(),dt()?s.classList.add(n.FULLSCREEN_EXIT_BUTTON):s.classList.add(n.FULLSCREEN_BUTTON),this._controlBar=e,this._targetEl=t.rootEl}destroy(){const t=this.element;t.className="",t.removeEventListener(u.CLICK,this._onClick),this._removeFullscreenHandlers(),this._controlBar=null,this._targetEl=null}_fullscreenAvailable(){return te.some(t=>!!document[t])}_requestFullscreen(t){for(const e of te){const s=t[e];if(s){s.call(t);return}}}_exitFullscreen(){for(const t of Ws){const e=document[t];if(e){e.call(document);return}}}_addFullscreenHandlers(){Ct.forEach(t=>{document.addEventListener(t,this._onFullscreenChange)})}_removeFullscreenHandlers(){Ct.forEach(t=>{document.removeEventListener(t,this._onFullscreenChange)})}}class Ci extends K{constructor({position:t=k.MAIN_LEFT,order:e=9999}={}){super({position:t,order:e}),this._onTimeUpdate=()=>{const s=this._video;s&&(this._currentTime=s.source.currentTime,this._updateDisplay())},this._onDurationChange=()=>{const s=this._video;s&&(this._duration=s.source.duration,this._updateDisplay())},this._onCustomTimeChange=s=>{this._currentTime=s.detail.time,this._updateDisplay()},this.element=document.createElement(z),this._video=null,this._currentTime=0,this._duration=0}init(t,e){var s;const n=(s=t.mesh)===null||s===void 0?void 0:s.getTexture(),r=this.element,o=e.className;if(!n||!n.isVideo()){r.classList.add(o.UNAVAILABLE);return}r.classList.add(o.VIDEO_TIME_DISPLAY),r.classList.remove(o.UNAVAILABLE),n.source.addEventListener(u.VIDEO_TIME_UPDATE,this._onTimeUpdate),n.source.addEventListener(u.VIDEO_DURATION_CHANGE,this._onDurationChange),n.source.addEventListener($,this._onCustomTimeChange),this._video=n,this._currentTime=n.source.currentTime,this._duration=n.source.duration,this._updateDisplay()}destroy(){const t=this._video;t&&(this.element.className="",t.source.removeEventListener(u.VIDEO_TIME_UPDATE,this._onTimeUpdate),t.source.removeEventListener(u.VIDEO_DURATION_CHANGE,this._onDurationChange),t.source.removeEventListener($,this._onCustomTimeChange),this._video=null)}_updateDisplay(){const t=this._currentTime,e=Math.floor(t/60),s=Math.floor(t-e*60),n=s<10?"0".concat(s):s,r=this._duration,o=Math.floor(r/60),a=Math.floor(r-o*60),h=a<10?"0".concat(a):a;this.element.innerText="".concat(e,":").concat(n," / ").concat(o,":").concat(h)}}class Oi extends K{constructor({resetCamera:t=!0,position:e=k.TOP_RIGHT,order:s=9999}={}){super({position:e,order:s}),this._onClick=()=>{const n=this._viewer,r=this.resetCamera;if(!n||!r)return;const{yaw:o=n.initialYaw,pitch:a=n.initialPitch,zoom:h=n.initialZoom,duration:l=500}=x(r);n.camera.animateTo({yaw:o,pitch:a,zoom:h,duration:l})},this._updatePie=({target:n})=>{const r=this._piePathEl,o=this._rangeCircleEl,a=n.camera,h=a.getHorizontalFov(),l=a.getYawRange(a.zoom),c=h*.5,_=24*Math.PI,E=_*h/360,f=_*(a.yaw+c+90)/360;if(r.setAttribute("stroke-dasharray","".concat(E," ").concat(_-E)),r.setAttribute("stroke-dashoffset","".concat(f)),isFinite(l.min)&&isFinite(l.max)){const v=45*Math.PI,T=(it(l.min,-180,180)-c)/360,p=(it(l.max,-180,180)+c)/360,R=v*Math.abs(p-T),C=-v*(T-.25);o.setAttribute("stroke-dasharray","".concat(R," ").concat(v-R)),o.setAttribute("stroke-dashoffset","".concat(C))}else o.setAttribute("stroke-dasharray",""),o.setAttribute("stroke-dashoffset","")},this.element=document.createElement(z),this.element.title="Reset view",this.resetCamera=t,this._createPieElements(),this._viewer=null}init(t,e){const s=this.element;t.initialized?this._updatePie({target:t}):t.once(O.READY,this._updatePie);const n=e.className.PIEVIEW_ROOT;s.classList.add(n),this.resetCamera&&s.addEventListener(u.CLICK,this._onClick),t.on(O.VIEW_CHANGE,this._updatePie),this._viewer=t}destroy(t){const e=this.element;e.removeEventListener(u.CLICK,this._onClick),e.className="",t.off(O.READY,this._updatePie),t.off(O.VIEW_CHANGE,this._updatePie),this._viewer=null}_createPieElements(){const t=this.element,e=document.createElementNS(xt,"svg");e.setAttribute("viewBox","0 0 48 48"),e.setAttribute("width","100%"),e.setAttribute("height","100%");const s=document.createElementNS(xt,"circle");s.setAttribute("stroke","currentColor"),s.setAttribute("fill","transparent"),s.setAttribute("cx","24"),s.setAttribute("cy","24"),s.setAttribute("r","12"),s.setAttribute("stroke-width","24"),e.appendChild(s);const n=document.createElementNS(xt,"circle");n.setAttribute("stroke","currentColor"),n.setAttribute("fill","transparent"),n.setAttribute("cx","24"),n.setAttribute("cy","24"),n.setAttribute("r","22.5"),n.setAttribute("stroke-width","3"),e.appendChild(n),t.appendChild(e),this._piePathEl=s,this._rangeCircleEl=n}}class Ii extends K{constructor({position:t=k.MAIN_RIGHT,order:e=9999}={}){super({position:t,order:e}),this._onClick=()=>{const s=this._viewer;s&&s.vr.enter()},this.element=document.createElement(Ot),this.element.title="Enter VR",this._viewer=null}init(t,e){const s=this.element,n=e.className;s.classList.add(n.UNAVAILABLE),s.classList.add(n.VR_BUTTON),s.classList.add(n.CONTROLS_BUTTON),t.vr.isAvailable().then(r=>{r&&s.classList.remove(n.UNAVAILABLE)}),s.addEventListener(u.CLICK,this._onClick),this._viewer=t}destroy(){const t=this.element;t.className="",t.removeEventListener(u.CLICK,this._onClick),this._viewer=null}}class Li extends K{constructor({position:t=k.MAIN_RIGHT,order:e=9999}={}){super({position:t,order:e}),this._onClick=()=>{const s=this._viewer,n=this._controlBar;if(!s||!n)return;const r=s.control.gyro;r.enabled?r.disable():mt.requestSensorPermission().then(o=>{o?r.enable():this.element.classList.add(n.className.UNAVAILABLE)})},this._updateStyle=()=>{const s=this.element,n=this._viewer,r=this._controlBar;if(!n||!r)return;const o=n.control.gyro,a=r.className;o.enabled?(s.classList.add(a.GYRO_ENABLED),s.classList.remove(a.GYRO_DISABLED)):(s.classList.add(a.GYRO_DISABLED),s.classList.remove(a.GYRO_ENABLED))},this.element=document.createElement(z),this.element.title="Toggle gyroscope control"}init(t,e){const s=this.element,n=e.className;s.addEventListener(u.CLICK,this._onClick),s.classList.add(n.CONTROLS_BUTTON),s.classList.add(n.UNAVAILABLE);const r=()=>{s.classList.remove(n.UNAVAILABLE),t.control.gyro.on(d.ENABLE,this._updateStyle),t.control.gyro.on(d.DISABLE,this._updateStyle)};Ie()?r():mt.isAvailable().then(o=>{o&&r()}),this._controlBar=e,this._viewer=t,this._updateStyle()}destroy(t){const e=this.element;t.control.gyro.off(d.ENABLE,this._updateStyle),t.control.gyro.off(d.DISABLE,this._updateStyle),e.removeEventListener(u.CLICK,this._onClick),e.className="",this._controlBar=null,this._viewer=null}}class Ai{get enabled(){return!!this._targetEl}get hidden(){return this._controlBar.containerEl.classList.contains(this._hiddenClass)}get _hiddenClass(){return this._controlBar.className.HIDDEN}get _fixedClass(){return this._controlBar.className.FIXED}constructor(t,{initialDelay:e=3e3,delay:s=0,idleDelay:n=3e3}){this._onMouseEnter=()=>{this._isCursorInside=!0,this.show()},this._onMouseLeave=()=>{this._isCursorInside=!1,this._hideAfterDelay()},this._onMouseMove=()=>{this._isFullscreen&&this.showTemporaliy()},this._onHold=r=>{this._isGrabbing=!0,r.pointerType==="mouse"&&(this._isCursorInside=!0),window.addEventListener(u.MOUSE_UP,this._onRelease),this.show()},this._onRelease=()=>{this._isGrabbing=!1,window.removeEventListener(u.MOUSE_UP,this._onRelease),this._hideAfterDelay()},this._onVideoPlay=()=>{this._targetEl&&this._controlBar.containerEl.classList.remove(this._fixedClass)},this._onVideoPause=()=>{this._targetEl&&this._controlBar.containerEl.classList.add(this._fixedClass)},this._onFullscreenChange=()=>{this._isFullscreen=dt(),this._isFullscreen&&this._hideAfterDelay()},this._controlBar=t,this._initialDelay=e,this._delay=s,this._idleDelay=n,this._timer=-1,this._isCursorInside=!1,this._isGrabbing=!1,this._isFullscreen=!1,this._video=null,this._targetEl=null}enable(t){var e;this._targetEl&&this.disable(t);const s=this._initialDelay,n=t.rootEl;this._targetEl=t.rootEl,this._timer=window.setTimeout(()=>{this.hide()},s),n.addEventListener(u.MOUSE_DOWN,this._onHold),n.addEventListener(u.MOUSE_ENTER,this._onMouseEnter),n.addEventListener(u.MOUSE_MOVE,this._onMouseMove),n.addEventListener(u.MOUSE_LEAVE,this._onMouseLeave),this._addFullscreenHandlers();const r=(e=t.mesh)===null||e===void 0?void 0:e.getTexture();!r||!r.isVideo()||(r.isPaused()&&this._controlBar.containerEl.classList.add(this._fixedClass),r.source.addEventListener(u.VIDEO_PLAY,this._onVideoPlay),r.source.addEventListener(u.VIDEO_PAUSE,this._onVideoPause),this._video=r)}disable(t){if(!this._targetEl)return;const e=this._controlBar,s=t.rootEl,n=this._video;s.removeEventListener(u.MOUSE_DOWN,this._onHold),window.removeEventListener(u.MOUSE_UP,this._onRelease),s.removeEventListener(u.MOUSE_ENTER,this._onMouseEnter),s.removeEventListener(u.MOUSE_MOVE,this._onMouseMove),s.removeEventListener(u.MOUSE_LEAVE,this._onMouseLeave),this._removeFullscreenHandlers(),window.clearTimeout(this._timer),e.containerEl.classList.remove(this._fixedClass),n&&(n.source.removeEventListener(u.VIDEO_PLAY,this._onVideoPlay),n.source.removeEventListener(u.VIDEO_PAUSE,this._onVideoPause)),this._isCursorInside=!1,this._isGrabbing=!1,this._video=null,this._targetEl=null}show(){this._clearHideTimer(),this._controlBar.containerEl.classList.remove(this._hiddenClass)}showTemporaliy(){this.show(),this._hideAfterDelay(this._idleDelay)}hide(){this._clearHideTimer(),this._controlBar.containerEl.classList.add(this._hiddenClass)}_clearHideTimer(){this._timer&&(window.clearTimeout(this._timer),this._timer=-1)}_hideAfterDelay(t=this._delay){this._isGrabbing||!this._isFullscreen&&this._isCursorInside||(this._clearHideTimer(),t<=0?this.hide():this._timer=window.setTimeout(()=>{this.hide()},t))}_addFullscreenHandlers(){Ct.forEach(t=>{document.addEventListener(t,this._onFullscreenChange)})}_removeFullscreenHandlers(){Ct.forEach(t=>{document.removeEventListener(t,this._onFullscreenChange)})}}class Ni{constructor(){this._onKeyDown=t=>{const e=this._video;if(!e)return;t.preventDefault(),t.stopPropagation();const s=e.source,n=t.keyCode!=null?bt[t.keyCode]:ye[t.key];switch(n){case"LEFT":case"RIGHT":return this._changeVideoTime(s,n==="RIGHT");case"UP":case"DOWN":return this._changeVideoVolume(s,n==="UP")}(t.keyCode===Gs||t.key===Hs)&&this._toggleVideo(e)}}enable(t,e){this._video=e,t.addEventListener(u.KEY_DOWN,this._onKeyDown,!0)}disable(t){this._video=null,t.removeEventListener(u.KEY_DOWN,this._onKeyDown,!0)}_changeVideoTime(t,e){const s=e?5:-5;t.currentTime+=s,t.dispatchEvent(new CustomEvent($,{detail:{time:t.currentTime}}))}_changeVideoVolume(t,e){const s=e?.1:-.1;t.muted?t.volume=S(s,0,1):t.volume=S(t.volume+s,0,1),t.volume>0?t.muted=!1:t.muted=!0}_toggleVideo(t){t.isPaused()?t.source.play():t.source.pause()}}class L{get rootEl(){return this._rootEl}get containerEl(){return this._containerEl}get backgroundEl(){return this._bgEl}get items(){return this._items}get customItems(){return this._customItems}constructor({autoHide:t,showBackground:e,clickToPlay:s=!0,keyboardControls:n=!0,progressBar:r=!0,playButton:o=!0,volumeButton:a=!0,fullscreenButton:h=!0,videoTime:l=!0,pieView:c=!0,vrButton:_=!0,gyroButton:E=!0,className:f={},customItems:v=[]}={}){var T;this._onStaticClick=({target:R,isTouch:C})=>{var y;const g=this._autoHider;if(C){if(!g.enabled)return;g.hidden?g.showTemporaliy():g.hide()}else{if(!this.clickToPlay)return;const m=(y=R.mesh)===null||y===void 0?void 0:y.getTexture();if(!m||!m.isVideo())return;m.isPaused()?m.source.play():m.source.pause()}},this._onNewSrcLoad=({target:R})=>{const C=this._items;this._updateBackground(R),this._updateAutoHide(R),this._updateKeyboardHandler(R),Object.keys(C).forEach(y=>{C[y].forEach(m=>{m.destroy(R,this),m.init(R,this)})})},this.autoHide=t,this.showBackground=e,this.clickToPlay=s,this.keyboardControls=n,this.progressBar=r,this.playButton=o,this.volumeButton=a,this.fullscreenButton=h,this.videoTime=l,this.pieView=c,this.vrButton=_,this.gyroButton=E,this.className=Object.assign(Object.assign({},L.DEFAULT_CLASS),f);const p=(T=f.CONTROLS_ROOT)!==null&&T!==void 0?T:L.DEFAULT_CLASS.CONTROLS_ROOT;this._rootEl=V(p),this._createPositionWrappers(),this._items=Object.keys(L.POSITION).reduce((R,C)=>(R[L.POSITION[C]]=[],R),{}),this._customItems=v,this._autoHider=new Ai(this,x(t)),this._videoControl=new Ni,v.forEach(R=>{this._items[R.position].push(R)})}init(t){const e=t.rootEl,s=this._rootEl,n=this._createDefaultItems();this._updateBackground(t),this._updateAutoHide(t),this._updateKeyboardHandler(t),e.appendChild(s),this._addItem(t,n),this._addItem(t,this._customItems),t.on(O.PROJECTION_CHANGE,this._onNewSrcLoad),t.on(O.STATIC_CLICK,this._onStaticClick)}destroy(t){const e=t.rootEl,s=this._rootEl,n=this._items;s.parentElement===e&&e.removeChild(s),Object.keys(n).forEach(r=>{n[r].forEach(a=>{a.destroy(t,this)}),n[r]=[]}),this._clearItemElements(),this._autoHider.disable(t),this._videoControl.disable(e),t.off(O.PROJECTION_CHANGE,this._onNewSrcLoad),t.off(O.STATIC_CLICK,this._onStaticClick)}_addItem(t,e){for(const s of e){const n=this._items[s.position],r=this._wrapperEl[s.position],o=Zs(n,a=>a.order>s.order);if(o>=0){const a=n[o].element;n.splice(o,0,s),r.insertBefore(s.element,a)}else n.push(s),r.appendChild(s.element);s.init(t,this)}}_createPositionWrappers(){const t=Object.assign(Object.assign({},L.DEFAULT_CLASS),this.className),e=this._rootEl,s=V(t.CONTROLS_BG),n=V(t.CONTROLS_FLOAT_LEFT),r=V(t.CONTROLS_FLOAT_RIGHT);e.appendChild(n),e.appendChild(r);const o=V(t.CONTROLS_MAIN),a=V(t.CONTROLS_TOP),h=V(t.CONTROLS_BOTTOM),l=V(t.CONTROLS_MID),c=V(t.CONTROLS_LEFT),_=V(t.CONTROLS_RIGHT);l.appendChild(c),l.appendChild(_),o.appendChild(s),o.appendChild(a),o.appendChild(l),o.appendChild(h),e.appendChild(o),this._bgEl=s,this._containerEl=o,this._wrapperEl={[L.POSITION.MAIN_TOP]:a,[L.POSITION.MAIN_LEFT]:c,[L.POSITION.MAIN_RIGHT]:_,[L.POSITION.MAIN_BOTTOM]:h,[L.POSITION.TOP_LEFT]:n,[L.POSITION.TOP_RIGHT]:r}}_clearItemElements(){Object.keys(L.POSITION).map(e=>L.POSITION[e]).map(e=>this._wrapperEl[e]).forEach(e=>{for(;e.firstChild;)e.removeChild(e.firstChild)})}_updateAutoHide(t){var e;const s=this.autoHide,n=this._autoHider;if(s!=null)s?n.enable(t):n.disable(t);else{const r=(e=t.mesh)===null||e===void 0?void 0:e.getTexture();r&&r.isVideo()?n.enable(t):n.disable(t)}}_updateBackground(t){var e,s;const n=this._bgEl,r=this.showBackground,o=(e=this.className.HIDDEN)!==null&&e!==void 0?e:L.DEFAULT_CLASS.HIDDEN;if(r!=null)r?n.classList.remove(o):n.classList.add(o);else{const a=(s=t.mesh)===null||s===void 0?void 0:s.getTexture();a&&a.isVideo()?n.classList.remove(o):n.classList.add(o)}}_updateKeyboardHandler(t){var e;const s=t.rootEl,n=this._videoControl,r=(e=t.mesh)===null||e===void 0?void 0:e.getTexture();this.keyboardControls&&r&&r.isVideo()?n.enable(s,r):n.disable(s)}_createDefaultItems(){const t=[];return this.progressBar&&t.push(new Ti(x(this.progressBar))),this.playButton&&t.push(new yi(x(this.playButton))),this.volumeButton&&t.push(new Ri(x(this.volumeButton))),this.gyroButton&&t.push(new Li(x(this.gyroButton))),this.vrButton&&t.push(new Ii(x(this.vrButton))),this.fullscreenButton&&t.push(new bi(x(this.fullscreenButton))),this.videoTime&&t.push(new Ci(x(this.videoTime))),this.pieView&&t.push(new Oi(x(this.pieView))),t}}L.DEFAULT_CLASS=xe;L.POSITION=k;class Me{constructor({src:t,video:e=!1}){this.src=t,this.video=e}updateCamera(t){t.resetRange()}updateControl(t){t.ignoreZoomScale=!1}}class Wt{constructor(){this.needsUpdate=!0}destroy(t){}}class Ue extends vi{constructor(t,e){super(),this.vao=t,this.program=e}destroy(t){t.releaseVAO(this.vao),t.releaseShaderResources(this.program)}getTexture(){return this.program.uniforms.uTexture.texture}}class Fe{constructor(t,e,s,n){this.program=t.createProgram(e,s),this.uniforms=n,this.uniformLocations=t.getUniformLocations(this.program,n)}}class Mt{constructor(t,e){this.data=t,this.itemSize=e,this.count=t.length/e}}class Si{constructor(t,e,s){this.vertices=new Mt(new Float32Array(t),3),this.indicies=new Mt(new Uint16Array(e),1),this.uvs=new Mt(new Float32Array(s),2)}}class Be extends Wt{constructor(t,e){super(),this.texture=e,this._webglTexture=t.createWebGLTexture(e)}destroy(t){this.texture.destroy(),t.deleteTexture(this._webglTexture)}update(t,e,s){const n=this.texture,r=n.isVideo();t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,n.flipY),t.uniform1i(e,0),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this._webglTexture),!r&&s?t.texSubImage2D(t.TEXTURE_2D,0,0,0,t.RGBA,t.UNSIGNED_BYTE,n.source):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n.source),r||(this.needsUpdate=!1)}}var wi="#define GLSLIFY 1\nattribute vec3 position;attribute vec2 uv;uniform mat4 uMVMatrix;uniform mat4 uPMatrix;varying highp vec2 vUV;void main(){vUV=uv;gl_Position=uPMatrix*uMVMatrix*vec4(position,1.0);}",Ve="#define GLSLIFY 1\nuniform sampler2D uTexture;varying highp vec2 vUV;void main(){gl_FragColor=texture2D(uTexture,vUV.st);}";class ze extends Si{constructor(){const s=-.5*Math.PI,n=[],r=[],o=[];let a,h;for(a=0;a<=60;a++){const l=(a/60-.5)*Math.PI,c=Math.sin(l),_=Math.cos(l);for(h=0;h<=60;h++){const E=(h/60-.5)*2*Math.PI+s,f=Math.sin(E),T=Math.cos(E)*_,p=c,R=f*_,C=h/60,y=a/60;if(n.push(C,y),r.push(T,p,R),h!==60&&a!==60){const g=a*61+h,m=g+60+1;o.push(g,g+1,m,m,g+1,m+1)}}}super(r,o,n)}}class Pi extends Me{constructor(t){super(t)}createMesh(t,e){const s={uTexture:new Be(t,e)},n=new ze,r=new Fe(t,wi,Ve,s),o=t.createVAO(n,r);return new Ue(o,r)}}class xi extends Wt{constructor(t){super(),this.val=t}update(t,e){t.uniform1f(e,this.val),this.needsUpdate=!1}}class Di extends Wt{constructor(t){super(),this.val=t}update(t,e){t.uniform4fv(e,this.val.reduce((s,n)=>[...s,...n],[])),this.needsUpdate=!1}}var Mi="#define GLSLIFY 1\nattribute vec3 position;attribute vec2 uv;uniform mat4 uMVMatrix;uniform mat4 uPMatrix;uniform vec4 uTexScaleOffset[2];uniform float uEye;varying highp vec2 vUV;void main(){vec4 scaleOffset=uTexScaleOffset[int(uEye)];vUV=uv.xy*scaleOffset.xy+scaleOffset.zw;gl_Position=uPMatrix*uMVMatrix*vec4(position,1.0);}";class Yt extends Me{constructor(t){super(t),this._mode=t.mode}createMesh(t,e){let s,n;switch(this._mode){case Yt.MODE.LEFT_RIGHT:s=[.5,1,0,0],n=[.5,1,.5,0];break;default:s=[1,.5,0,0],n=[1,.5,0,.5]}const r={uTexture:new Be(t,e),uEye:new xi(0),uTexScaleOffset:new Di([s,n])},o=new ze,a=new Fe(t,Mi,Ve,r),h=t.createVAO(o,a);return new Ue(h,a)}}Yt.MODE={LEFT_RIGHT:"left_right",TOP_BOTTOM:"top_bottom"};var Ui=oe("<canvas class=view360-canvas>"),Fi=oe("<video id=view360-video playsinline crossorigin=anonymous style=display:none;>");const ji=()=>{let i=Nt.objs.filter(n=>n.type===je.VIDEO);i.length===0&&(i=[Nt.obj]);let t;Ge(()=>{const n=document.getElementById("view360-container"),r=document.getElementById("view360-video");n&&r&&(t=new Pe(n,{projection:new Pi({src:r,video:{autoplay:He("video_autoplay")}}),plugins:[new L({pieView:{order:0},gyroButton:{position:"top-right",order:1},vrButton:{position:"top-right",order:2}})]}))}),ke(()=>t==null?void 0:t.destroy());const[e,s]=We(!1);return St(Ke,{onAutoNextChange:s,get children(){return St(qt,{w:"$full",h:"60vh",id:"video360-player",get children(){return St(qt,{w:"100%",h:"100%",id:"view360-container",className:"view360-container",get children(){return[Ui(),(()=>{var n=Fi();return Ye(()=>Xe(n,"src",Nt.raw_url)),n})()]}})}})}})};export{ji as default};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
System.register(["./index-legacy-a79f37d7.js","./video_box-legacy-6b3ebc5b.js","./icon-legacy-eb0f5143.js","./index-legacy-6dddbd7f.js","./index-legacy-e78804fc.js","./Layout-legacy-0be654c6.js","./useTitle-legacy-f359aa82.js","./FolderTree-legacy-cc6e2591.js","./index-legacy-3d6bd4ab.js","./index-legacy-d4734338.js"],(function(t,e){"use strict";var i,s,n,o,r,a,h,l,c,u,d,_;return{setters:[t=>{i=t.a5,s=t.am,n=t.af,o=t.x,r=t.q,a=t.y,h=t.ag,l=t.cd,c=t.ce,u=t.as},t=>{d=t.V},t=>{_=t.O},null,null,null,null,null,null,null],execute:function(){var e=document.createElement("style");function p(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var s,n,o=i.call(t),r=[];try{for(;(void 0===e||e-- >0)&&!(s=o.next()).done;)r.push(s.value)}catch(a){n={error:a}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return r}function m(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(p(arguments[e]));return t}e.textContent=".view360-container{position:relative;touch-action:pan-y;overflow:hidden}.view360-canvas{position:absolute;left:0;top:0;width:100%;height:100%;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.view360-canvas.ctx-lost{text-indent:.001px}.view360-container.is-1by1,.view360-container.is-square{padding-top:100%}.view360-container.is-5by4{padding-top:80%}.view360-container.is-4by3{padding-top:75%}.view360-container.is-3by2{padding-top:66.6666%}.view360-container.is-5by3{padding-top:60%}.view360-container.is-16by9{padding-top:56.25%}.view360-container.is-2by1{padding-top:50%}.view360-container.is-3by1{padding-top:33.3333%}.view360-container.is-4by5{padding-top:125%}.view360-container.is-3by4{padding-top:133.3333%}.view360-container.is-2by3{padding-top:150%}.view360-container.is-3by5{padding-top:166.6666%}.view360-container.is-9by16{padding-top:177.7777%}.view360-container.is-1by2{padding-top:200%}.view360-container.is-1by3{padding-top:300%}.view360-container:-ms-fullscreen{padding-top:0}.view360-container:fullscreen{padding-top:0}.view360-controls{position:absolute;top:0;left:0;width:100%;height:100%;padding:0;margin:0;border:0;pointer-events:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;z-index:1}.view360-main.view360-vr-presenting .view360-controls{display:none}.view360-controls-float-left,.view360-controls-float-right{position:absolute;display:flex;flex-direction:column}.view360-controls-float-left{left:0;top:0}.view360-controls-float-right{right:0;top:0}.view360-controls-main{position:absolute;bottom:0;left:0;width:100%;opacity:1;transition:none}.view360-controls-main.view360-controls-hidden{opacity:0;transition:opacity .5s}.view360-controls-main.view360-controls-hidden *{pointer-events:none}.view360-controls-main.view360-controls-fixed{opacity:1}.view360-controls-background{width:100%;height:calc(100% + 32px);position:absolute;left:0;bottom:0;background-image:linear-gradient(0deg,#323232,rgba(50,50,50,0))}.view360-controls-background.view360-controls-hidden{display:none}.view360-controls-mid{display:flex;flex-direction:row;position:relative}.view360-controls-left{display:flex;flex:1;justify-content:flex-start;align-items:center;flex-direction:row}.view360-controls-right,.view360-controls-bottom{display:flex;align-items:center;flex-direction:row}.view360-controls-button{display:inline-block;background-color:transparent;cursor:pointer;border:0;position:relative;background-size:24px 24px;background-origin:content-box;background-repeat:no-repeat;box-sizing:border-box;pointer-events:all;border-radius:20px;transition:opacity .25s;width:40px;height:40px;margin:6px;padding:8px;opacity:.8}.view360-controls-button:hover{opacity:1}.view360-controls-button.view360-controls-vr{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48' viewBox='0 0 100 100'%3E%3Cg%3E%3Cpath d='M5,30 L95,30 L95,80 L55,80 L50,70 L45,80 L5,80 L5,30' fill='transparent' stroke='%23fff' stroke-width='8' stroke-linejoin='round' stroke-linecap='round'/%3E%3Cpath d='M5,30 L15,10 L85,10 L95,30' fill='transparent' stroke='%23fff' stroke-width='8' stroke-linejoin='round' stroke-linecap='round'/%3E%3Ccircle cx='30' cy='55' r='10' stroke='%23fff' stroke-width='8' fill='transparent' /%3E%3Ccircle cx='70' cy='55' r='10' stroke='%23fff' stroke-width='8' fill='transparent' /%3E%3C/g%3E%3C/svg%3E\")}.view360-controls-button.view360-controls-play{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='%23fff' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M7 4v16l13 -8z'%3E%3C/path%3E%3C/svg%3E\")}.view360-controls-button.view360-controls-pause{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='%23fff' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Crect x='6' y='5' width='4' height='14' rx='1'%3E%3C/rect%3E%3Crect x='14' y='5' width='4' height='14' rx='1'%3E%3C/rect%3E%3C/svg%3E\")}.view360-controls-button.view360-controls-unmuted{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='%23fff' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M15 8a5 5 0 0 1 0 8'%3E%3C/path%3E%3Cpath d='M17.7 5a9 9 0 0 1 0 14'%3E%3C/path%3E%3Cpath d='M6 15h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l3.5 -4.5a0.8 .8 0 0 1 1.5 .5v14a0.8 .8 0 0 1 -1.5 .5l-3.5 -4.5'%3E%3C/path%3E%3C/svg%3E\")}.view360-controls-button.view360-controls-muted{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='%23fff' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 15h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l3.5 -4.5a0.8 .8 0 0 1 1.5 .5v14a0.8 .8 0 0 1 -1.5 .5l-3.5 -4.5'%3E%3C/path%3E%3Cpath d='M16 10l4 4m0 -4l-4 4'%3E%3C/path%3E%3C/svg%3E\")}.view360-controls-button.view360-controls-fullscreen{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='%23fff' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M4 8v-2a2 2 0 0 1 2 -2h2'%3E%3C/path%3E%3Cpath d='M4 16v2a2 2 0 0 0 2 2h2'%3E%3C/path%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v2'%3E%3C/path%3E%3Cpath d='M16 20h2a2 2 0 0 0 2 -2v-2'%3E%3C/path%3E%3C/svg%3E\")}.view360-controls-button.view360-controls-fullscreen-exit{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='%23fff' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M15 19v-2a2 2 0 0 1 2 -2h2'%3E%3C/path%3E%3Cpath d='M15 5v2a2 2 0 0 0 2 2h2'%3E%3C/path%3E%3Cpath d='M5 15h2a2 2 0 0 1 2 2v2'%3E%3C/path%3E%3Cpath d='M5 9h2a2 2 0 0 0 2 -2v-2'%3E%3C/path%3E%3C/svg%3E\")}.view360-controls-button.view360-controls-gyro-enabled{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48'%3E%3Cpath fill='%23fff' d='M22.5 7.6v2.95q-1 .15-1.975.475-.975.325-1.875.825L16.5 9.7q1.35-.9 2.875-1.4 1.525-.5 3.125-.7Zm15.35 15.35q-.2 1.6-.7 3.125-.5 1.525-1.4 2.875L33.6 26.8q.5-.9.825-1.875.325-.975.475-1.975Zm3.8 20.45L1.3 3.05 3.45.9 43.8 41.25ZM7 41.4q-1.25 0-2.125-.875T4 38.4v-8.6h3v8.6h8.6v3ZM41 13V4.4h-8.6v-3H41q1.25 0 2.125.875T44 4.4V13ZM4 13V4.4q0-.55.2-1.1t.6-1l2.1 2.1V13Zm28.4 28.4v-3h8.5l2.1 2.1q-.4.45-.925.675-.525.225-1.075.225Zm-21.2-37-3-3h7.4v3ZM44 37.2l-3-3v-4.4h3ZM10.15 22.95h2.95q.5 3.7 3.1 6.3 2.6 2.6 6.3 3.1v2.95q-4.9-.55-8.35-4-3.45-3.45-4-8.35Zm4-11.35 2.1 2.05q-1.3 1.3-2.1 2.9-.8 1.6-1.05 3.4h-2.95q.25-2.4 1.275-4.525Q12.45 13.3 14.15 11.6ZM31.8 29.2l2.05 2.1q-1.7 1.7-3.825 2.725Q27.9 35.05 25.5 35.3v-2.95q1.8-.25 3.4-1.05 1.6-.8 2.9-2.1ZM25.5 7.6q4.9.55 8.35 4 3.45 3.45 4 8.35H34.9q-.5-3.7-3.1-6.3-2.6-2.6-6.3-3.1Z'/%3E%3C/svg%3E\")}.view360-controls-button.view360-controls-gyro-disabled{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48'%3E%3Cpath fill='%23fff' d='M7 44q-1.2 0-2.1-.9Q4 42.2 4 41v-8.6h3V41h8.6v3ZM4 15.6V7q0-1.2.9-2.1Q5.8 4 7 4h8.6v3H7v8.6Zm18.5 22.25q-4.9-.55-8.35-4-3.45-3.45-4-8.35h2.95q.5 3.7 3.125 6.3 2.625 2.6 6.275 3.1ZM10.15 22.5q.55-4.9 4-8.35 3.45-3.45 8.35-4v2.95q-3.7.5-6.3 3.1-2.6 2.6-3.1 6.3Zm13.85 5q-1.45 0-2.475-1.025Q20.5 25.45 20.5 24q0-1.45 1.025-2.475Q22.55 20.5 24 20.5q1.45 0 2.475 1.025Q27.5 22.55 27.5 24q0 1.45-1.025 2.475Q25.45 27.5 24 27.5Zm1.5 10.35V34.9q3.7-.5 6.3-3.125 2.6-2.625 3.1-6.275h2.95q-.55 4.9-4 8.35-3.45 3.45-8.35 4Zm9.4-15.35q-.5-3.7-3.1-6.3-2.6-2.6-6.3-3.1v-2.95q4.9.55 8.35 4 3.45 3.45 4 8.35ZM32.4 44v-3H41v-8.6h3V41q0 1.2-.9 2.1-.9.9-2.1.9ZM41 15.6V7h-8.6V4H41q1.2 0 2.1.9.9.9.9 2.1v8.6Z'/%3E%3C/svg%3E\")}.view360-controls-time{display:inline-block;vertical-align:top;white-space:nowrap;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;font-weight:400;font-size:14px;z-index:1}.view360-controls-time:first-child{padding:0 16px}.view360-controls-progress{flex:1;width:100%;padding:0 16px;box-sizing:border-box}.view360-controls-progress:not(:first-child){padding-left:0}.view360-controls-bottom .view360-controls-progress{padding-bottom:20px}.view360-controls-volume{display:inline-flex;flex-direction:row;align-items:center;transition:width .25s,background-color .25s;overflow:hidden}.view360-controls-volume:not(:disabled).view360-controls-fixed,.view360-controls-volume:not(:disabled):hover{width:112px}.view360-controls-volume .view360-range{flex:1;height:100%;padding:0}.view360-controls-volume .view360-range .view360-range-track{width:calc(100% - 12px);transform:translate(-4px)}.view360-controls-volume .view360-controls-button{margin:0;padding:0;width:24px;height:24px;flex-shrink:0}.view360-controls-volume:disabled{opacity:.5;pointer-events:none}.view360-controls-volume:disabled *{pointer-events:none}.view360-controls-pie{width:36px;height:36px;margin:6px;padding:0;border-radius:18px;opacity:.8;pointer-events:all;cursor:pointer;color:#fff;position:relative;transition:opacity .25s}.view360-controls-pie>svg{position:absolute;top:0;left:0;width:100%;height:100%}.view360-controls-pie:hover{opacity:1}.view360-range{position:relative;cursor:pointer;pointer-events:all;display:flex;justify-content:center;align-items:center;touch-action:pan-y}.view360-range:hover .view360-range-thumb{opacity:1}.view360-range-track{width:100%;height:4px;border-radius:4px;position:relative;background-color:rgba(230,230,230,.4)}.view360-range-filler,.view360-range-load{position:absolute;left:0;top:0;width:0;height:100%;border-radius:4px}.view360-range-filler{background-color:#fff}.view360-range-load{background-color:#757575}.view360-range-thumb{width:13px;height:13px;position:absolute;top:-5px;left:-6.5px;border-radius:50%;background-color:#fff;box-sizing:border-box;transition:opacity .25s;opacity:0}.view360-range-thumb.view360-controls-fixed{opacity:1}.view360-controls-unavailable{display:none!important}@media screen and (max-width:768px){.view360-controls-button{background-size:18px 18px;width:30px;height:30px;margin:4.5px;padding:6px;border-radius:15px}.view360-controls-volume .view360-controls-button{width:18px;height:18px}.view360-controls-volume:not(:disabled).view360-controls-fixed,.view360-controls-volume:not(:disabled):hover{width:84px}.view360-controls-pie{width:27px;height:27px;margin:4.5px;padding:0;border-radius:13.5px}}.view360-spinner{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,.15)}.view360-spinner-ring{top:0;left:0;padding:0;margin:0;width:64px;height:64px;box-sizing:content-box;background-color:transparent;border-style:solid;border-radius:50%;border-width:10px;border-color:#fff;border-bottom-color:transparent;animation:view360-spin-animation 1.2s linear infinite}@keyframes view360-spin-animation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.view360-container.view360-vr-presenting{width:100vw;height:100vh;position:fixed;left:0;top:0;z-index:9999}.view360-hotspots{width:100%;height:100%;position:absolute;top:0;left:0;pointer-events:none}.view360-hotspot{pointer-events:none;visibility:hidden;position:absolute;top:0;left:0}.view360-hotspot-visible{visibility:visible;pointer-events:all}.view360-controls-main,.view360-controls-float-left,.view360-controls-float-right{pointer-events:all!important}.view360-controls-top .view360-range{height:8px!important}\n",document.head.appendChild(e);var g=function(t){return void 0===t},v=function(){function t(t,e){var i,s;if(this._canceled=!1,e)try{for(var n=
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */
|
|
16
|
-
function(t){var e="function"==typeof Symbol&&Symbol.iterator,i=e&&t[e],s=0;if(i)return i.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&s>=t.length&&(t=void 0),{value:t&&t[s++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}(Object.keys(e)),o=n.next();!o.done;o=n.next()){var r=o.value;this[r]=e[r]}}catch(a){i={error:a}}finally{try{o&&!o.done&&(s=n.return)&&s.call(n)}finally{if(i)throw i.error}}this.eventType=t}var e=t.prototype;return e.stop=function(){this._canceled=!0},e.isCanceled=function(){return this._canceled},t}(),f=function(){function t(){this._eventHandler={}}var e=t.prototype;return e.trigger=function(t){for(var e=[],i=1;i<arguments.length;i++)e[i-1]=arguments[i];var s=t instanceof v?t.eventType:t,n=m(this._eventHandler[s]||[]);return n.length<=0||(t instanceof v?(t.currentTarget=this,n.forEach((function(e){e(t)}))):n.forEach((function(t){t.apply(void 0,m(e))}))),this},e.once=function(t,e){var i=this;if("object"==typeof t&&g(e)){var s=t;for(var n in s)this.once(n,s[n]);return this}if("string"==typeof t&&"function"==typeof e){var o=function(){for(var s=[],n=0;n<arguments.length;n++)s[n]=arguments[n];e.apply(void 0,m(s)),i.off(t,o)};this.on(t,o)}return this},e.hasOn=function(t){return!!this._eventHandler[t]},e.on=function(t,e){if("object"==typeof t&&g(e)){var i=t;for(var s in i)this.on(s,i[s]);return this}if("string"==typeof t&&"function"==typeof e){var n=this._eventHandler[t];g(n)&&(this._eventHandler[t]=[],n=this._eventHandler[t]),n.push(e)}return this},e.off=function(t,e){if(g(t))return this._eventHandler={},this;if(g(e)){if("string"==typeof t)return delete this._eventHandler[t],this;var i=t;for(var s in i)this.off(s,i[s]);return this}var n=this._eventHandler[t];if(n)for(var o=n.length,r=0;r<o;++r)if(n[r]===e){n.splice(r,1),o<=1&&delete this._eventHandler[t];break}return this},t.VERSION="3.0.5",t}(),E=v,b=1e-6,y="undefined"!=typeof Float32Array?Float32Array:Array;function w(){var t=new y(16);return y!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function T(t,e,i){var s=e[0],n=e[1],o=e[2],r=e[3],a=e[4],h=e[5],l=e[6],c=e[7],u=e[8],d=e[9],_=e[10],p=e[11],m=e[12],g=e[13],v=e[14],f=e[15],E=i[0],b=i[1],y=i[2],w=i[3];return t[0]=E*s+b*a+y*u+w*m,t[1]=E*n+b*h+y*d+w*g,t[2]=E*o+b*l+y*_+w*v,t[3]=E*r+b*c+y*p+w*f,E=i[4],b=i[5],y=i[6],w=i[7],t[4]=E*s+b*a+y*u+w*m,t[5]=E*n+b*h+y*d+w*g,t[6]=E*o+b*l+y*_+w*v,t[7]=E*r+b*c+y*p+w*f,E=i[8],b=i[9],y=i[10],w=i[11],t[8]=E*s+b*a+y*u+w*m,t[9]=E*n+b*h+y*d+w*g,t[10]=E*o+b*l+y*_+w*v,t[11]=E*r+b*c+y*p+w*f,E=i[12],b=i[13],y=i[14],w=i[15],t[12]=E*s+b*a+y*u+w*m,t[13]=E*n+b*h+y*d+w*g,t[14]=E*o+b*l+y*_+w*v,t[15]=E*r+b*c+y*p+w*f,t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var x=function(t,e,i,s,n){var o,r=1/Math.tan(e/2);return t[0]=r/i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=n&&n!==1/0?(o=1/(s-n),t[10]=(n+s)*o,t[14]=2*n*s*o):(t[10]=-1,t[14]=-2*s),t};function C(){var t=new y(3);return y!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function R(t){var e=t[0],i=t[1],s=t[2];return Math.hypot(e,i,s)}function L(t,e,i){var s=new y(3);return s[0]=t,s[1]=e,s[2]=i,s}function O(t,e){var i=e[0],s=e[1],n=e[2],o=i*i+s*s+n*n;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t}function I(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function M(t,e,i){var s=e[0],n=e[1],o=e[2],r=i[0],a=i[1],h=i[2];return t[0]=n*h-o*a,t[1]=o*r-s*h,t[2]=s*a-n*r,t}function A(t,e,i){var s=e[0],n=e[1],o=e[2],r=i[3]*s+i[7]*n+i[11]*o+i[15];return r=r||1,t[0]=(i[0]*s+i[4]*n+i[8]*o+i[12])/r,t[1]=(i[1]*s+i[5]*n+i[9]*o+i[13])/r,t[2]=(i[2]*s+i[6]*n+i[10]*o+i[14])/r,t}function S(t,e,i){var s=i[0],n=i[1],o=i[2],r=i[3],a=e[0],h=e[1],l=e[2],c=n*l-o*h,u=o*a-s*l,d=s*h-n*a,_=n*d-o*u,p=o*c-s*d,m=s*u-n*c,g=2*r;return c*=g,u*=g,d*=g,_*=2,p*=2,m*=2,t[0]=a+c+_,t[1]=h+u+p,t[2]=l+d+m,t}function P(){var t=new y(4);return y!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function N(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function D(t,e,i){var s=e[0],n=e[1],o=e[2],r=e[3],a=i[0],h=i[1],l=i[2],c=i[3];return t[0]=s*c+r*a+n*l-o*h,t[1]=n*c+r*h+o*a-s*l,t[2]=o*c+r*l+s*h-n*a,t[3]=r*c-s*a-n*h-o*l,t}function k(t,e,i){i*=.5;var s=e[0],n=e[1],o=e[2],r=e[3],a=Math.sin(i),h=Math.cos(i);return t[0]=s*h+r*a,t[1]=n*h+o*a,t[2]=o*h-n*a,t[3]=r*h-s*a,t}function B(t,e,i){i*=.5;var s=e[0],n=e[1],o=e[2],r=e[3],a=Math.sin(i),h=Math.cos(i);return t[0]=s*h-o*a,t[1]=n*h+r*a,t[2]=o*h+s*a,t[3]=r*h-n*a,t}function F(t,e,i){i*=.5;var s=e[0],n=e[1],o=e[2],r=e[3],a=Math.sin(i),h=Math.cos(i);return t[0]=s*h+n*a,t[1]=n*h-s*a,t[2]=o*h+r*a,t[3]=r*h-o*a,t}function U(t,e,i,s){var n,o,r,a,h,l=e[0],c=e[1],u=e[2],d=e[3],_=i[0],p=i[1],m=i[2],g=i[3];return(o=l*_+c*p+u*m+d*g)<0&&(o=-o,_=-_,p=-p,m=-m,g=-g),1-o>b?(n=Math.acos(o),r=Math.sin(n),a=Math.sin((1-s)*n)/r,h=Math.sin(s*n)/r):(a=1-s,h=s),t[0]=a*l+h*_,t[1]=a*c+h*p,t[2]=a*u+h*m,t[3]=a*d+h*g,t}C(),function(){var t;t=new y(4),y!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}();var z,V=function(t){var e=new y(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},H=function(t,e,i,s){var n=new y(4);return n[0]=t,n[1]=e,n[2]=i,n[3]=s,n},G=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},j=function(t,e,i,s,n){return t[0]=e,t[1]=i,t[2]=s,t[3]=n,t},Y=function(t,e){var i=e[0],s=e[1],n=e[2],o=e[3],r=i*i+s*s+n*n+o*o;return r>0&&(r=1/Math.sqrt(r)),t[0]=i*r,t[1]=s*r,t[2]=n*r,t[3]=o*r,t},q=function(t,e){var i=t[0],s=t[1],n=t[2],o=t[3],r=e[0],a=e[1],h=e[2],l=e[3];return Math.abs(i-r)<=b*Math.max(1,Math.abs(i),Math.abs(r))&&Math.abs(s-a)<=b*Math.max(1,Math.abs(s),Math.abs(a))&&Math.abs(n-h)<=b*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(o-l)<=b*Math.max(1,Math.abs(o),Math.abs(l))};C(),L(1,0,0),L(0,1,0),P(),P(),z=new y(9),y!=Float32Array&&(z[1]=0,z[2]=0,z[3]=0,z[5]=0,z[6]=0,z[7]=0),z[0]=1,z[4]=1,z[8]=1,function(){var t=new y(2);y!=Float32Array&&(t[0]=0,t[1]=0)}();var W=function(t,e){return W=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},W(t,e)};function X(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}W(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}var K=function(){return K=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++)for(var n in e=arguments[i])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},K.apply(this,arguments)},Z="undefined"!=typeof window,$=Z?window.navigator.userAgent:"",Q=!!Z&&!!("getComputedStyle"in window),J=/MSIE|Trident|Windows Phone|Edge/.test($),tt=!!Z&&!!("addEventListener"in document),et="width",it="height";function st(t,e){return t.getAttribute(e)||""}function nt(t){return[].slice.call(t)}function ot(t,e){return void 0===e&&(e="data-"),"loading"in t&&"lazy"===t.getAttribute("loading")||!!t.getAttribute(e+"lazy")}function rt(t,e,i){tt?t.addEventListener(e,i,!1):t.attachEvent?t.attachEvent("on"+e,i):t["on"+e]=i}function at(t,e,i){t.removeEventListener?t.removeEventListener(e,i,!1):t.detachEvent?t.detachEvent("on"+e,i):t["on"+e]=null}function ht(t,e){var i=t["client"+e]||t["offset"+e];return parseFloat(i||function(t){return(Q?window.getComputedStyle(t):t.currentStyle)||{}}(t)[e.toLowerCase()])||0}function lt(t,e,i){var s=nt(t.querySelectorAll(function(){for(var t=0,e=0,i=arguments.length;e<i;e++)t+=arguments[e].length;var s=Array(t),n=0;for(e=0;e<i;e++)for(var o=arguments[e],r=0,a=o.length;r<a;r++,n++)s[n]=o[r];return s}(["["+i+"skip] ["+i+"width]"],e.map((function(t){return["["+i+"skip] "+t,t+"["+i+"skip]","["+i+"width] "+t].join(", ")}))).join(", ")));return nt(t.querySelectorAll("["+i+"width], "+e.join(", "))).filter((function(t){return-1===s.indexOf(t)}))}var ct=[];function ut(t,e){!ct.length&&rt(window,"resize",_t),t.__PREFIX__=e,ct.push(t),dt(t)}function dt(t,e){void 0===e&&(e="data-");var i=t.__PREFIX__||e,s=parseInt(st(t,""+i+et),10)||0,n=parseInt(st(t,""+i+it),10)||0;if(st(t,i+"fixed")===it){var o=ht(t,"Height")||n;t.style[et]=s/n*o+"px"}else o=function(t){return ht(t,"Width")}(t)||s,t.style[it]=n/s*o+"px"}function _t(){ct.forEach((function(t){dt(t)}))}var pt=function(t){function e(e,i){void 0===i&&(i={});var s=t.call(this)||this;s.isReady=!1,s.isPreReady=!1,s.hasDataSize=!1,s.hasLoading=!1,s.isSkip=!1,s.onCheck=function(t){s.clear(),t&&"error"===t.type&&s.onError(s.element),s.hasLoading&&s.checkElement()||s.onReady()},s.options=K({prefix:"data-"},i),s.element=e;var n=s.options.prefix;return s.hasDataSize=function(t,e){return void 0===e&&(e="data-"),!!t.getAttribute(e+"width")}(e,n),s.isSkip=function(t,e){return void 0===e&&(e="data-"),!!t.getAttribute(e+"skip")}(e,n),s.hasLoading=ot(e,n),s}X(e,t);var i=e.prototype;return i.check=function(){return this.isSkip||!this.checkElement()?(this.onAlreadyReady(),!1):(this.hasDataSize&&ut(this.element,this.options.prefix),(this.hasDataSize||this.hasLoading)&&this.onAlreadyPreReady(),!0)},i.addEvents=function(){var t=this,e=this.element;this.constructor.EVENTS.forEach((function(i){rt(e,i,t.onCheck)}))},i.clear=function(){var t=this,e=this.element;this.constructor.EVENTS.forEach((function(i){at(e,i,t.onCheck)})),this.removeAutoSizer()},i.destroy=function(){this.clear(),this.off()},i.removeAutoSizer=function(){if(this.hasDataSize){var t=this.options.prefix;!function(t,e){var i=ct.indexOf(t);if(!(i<0)){var s=st(t,e+"fixed");delete t.__PREFIX__,t.style[s===it?et:it]="",ct.splice(i,1),!ct.length&&at(window,"resize",_t)}}(this.element,t)}},i.onError=function(t){this.trigger("error",{element:this.element,target:t})},i.onPreReady=function(){this.isPreReady||(this.isPreReady=!0,this.trigger("preReady",{element:this.element,hasLoading:this.hasLoading,isSkip:this.isSkip}))},i.onReady=function(){var t=this.isPreReady;this.isPreReady=!0,this.isReady||(this.removeAutoSizer(),this.isReady=!0,this.trigger("ready",{element:this.element,withPreReady:!t,hasLoading:this.hasLoading,isSkip:this.isSkip}))},i.onAlreadyError=function(t){var e=this;setTimeout((function(){e.onError(t)}))},i.onAlreadyPreReady=function(){var t=this;setTimeout((function(){t.onPreReady()}))},i.onAlreadyReady=function(){var t=this;setTimeout((function(){t.onReady()}))},e.EVENTS=[],e}(f),mt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}X(e,t);var i=e.prototype;return i.setHasLoading=function(t){this.hasLoading=t},i.check=function(){return this.isSkip?(this.onAlreadyReady(),!1):(this.hasDataSize?(ut(this.element,this.options.prefix),this.onAlreadyPreReady()):this.trigger("requestChildren"),!0)},i.checkElement=function(){return!0},i.destroy=function(){this.clear(),this.trigger("requestDestroy"),this.off()},i.onAlreadyPreReady=function(){t.prototype.onAlreadyPreReady.call(this),this.trigger("reqeustReadyChildren")},e.EVENTS=[],e}(pt),gt=function(t){function e(e){void 0===e&&(e={});var i=t.call(this)||this;return i.readyCount=0,i.preReadyCount=0,i.totalCount=0,i.totalErrorCount=0,i.isPreReadyOver=!0,i.elementInfos=[],i.options=K({loaders:{},prefix:"data-"},e),i}X(e,t);var i=e.prototype;return i.check=function(t){var e=this,i=this.options.prefix;this.clear(),this.elementInfos=nt(t).map((function(t,s){var n=e.getLoader(t,{prefix:i});return n.check(),n.on("error",(function(t){e.onError(s,t.target)})).on("preReady",(function(t){var i=e.elementInfos[s];i.hasLoading=t.hasLoading,i.isSkip=t.isSkip;var n=e.checkPreReady(s);e.onPreReadyElement(s),n&&e.onPreReady()})).on("ready",(function(t){var i=t.withPreReady,n=t.hasLoading,o=t.isSkip,r=e.elementInfos[s];r.hasLoading=n,r.isSkip=o;var a=i&&e.checkPreReady(s),h=e.checkReady(s);i&&e.onPreReadyElement(s),e.onReadyElement(s),a&&e.onPreReady(),h&&e.onReady()})),{loader:n,element:t,hasLoading:!1,hasError:!1,isPreReady:!1,isReady:!1,isSkip:!1}}));var s=this.elementInfos.length;return this.totalCount=s,s||setTimeout((function(){e.onPreReady(),e.onReady()})),this},i.getTotalCount=function(){return this.totalCount},i.isPreReady=function(){return this.elementInfos.every((function(t){return t.isPreReady}))},i.isReady=function(){return this.elementInfos.every((function(t){return t.isReady}))},i.hasError=function(){return this.totalErrorCount>0},i.clear=function(){this.isPreReadyOver=!1,this.totalCount=0,this.preReadyCount=0,this.readyCount=0,this.totalErrorCount=0,this.elementInfos.forEach((function(t){t.loader&&t.loader.destroy()})),this.elementInfos=[]},i.destroy=function(){this.clear(),this.off()},i.getLoader=function(t,e){var i=this,s=t.tagName.toLowerCase(),n=this.options.loaders,o=e.prefix,r=Object.keys(n);if(n[s])return new n[s](t,e);var a=new mt(t,e),h=nt(t.querySelectorAll(r.join(", ")));a.setHasLoading(h.some((function(t){return ot(t,o)})));var l=this.clone().on("error",(function(t){a.onError(t.target)})).on("ready",(function(){a.onReady()}));return a.on("requestChildren",(function(){var e=lt(t,r,i.options.prefix);l.check(e).on("preReady",(function(t){t.isReady||a.onPreReady()}))})).on("reqeustReadyChildren",(function(){l.check(h)})).on("requestDestroy",(function(){l.destroy()})),a},i.clone=function(){return new e(K({},this.options))},i.checkPreReady=function(t){return this.elementInfos[t].isPreReady=!0,++this.preReadyCount,!(this.preReadyCount<this.totalCount)},i.checkReady=function(t){return this.elementInfos[t].isReady=!0,++this.readyCount,!(this.readyCount<this.totalCount)},i.onError=function(t,e){var i=this.elementInfos[t];i.hasError=!0,this.trigger(new E("error",{element:i.element,index:t,target:e,errorCount:this.getErrorCount(),totalErrorCount:++this.totalErrorCount}))},i.onPreReadyElement=function(t){var e=this.elementInfos[t];this.trigger(new E("preReadyElement",{element:e.element,index:t,preReadyCount:this.preReadyCount,readyCount:this.readyCount,totalCount:this.totalCount,isPreReady:this.isPreReady(),isReady:this.isReady(),hasLoading:e.hasLoading,isSkip:e.isSkip}))},i.onPreReady=function(){this.isPreReadyOver=!0,this.trigger(new E("preReady",{readyCount:this.readyCount,totalCount:this.totalCount,isReady:this.isReady(),hasLoading:this.hasLoading()}))},i.onReadyElement=function(t){var e=this.elementInfos[t];this.trigger(new E("readyElement",{index:t,element:e.element,hasError:e.hasError,errorCount:this.getErrorCount(),totalErrorCount:this.totalErrorCount,preReadyCount:this.preReadyCount,readyCount:this.readyCount,totalCount:this.totalCount,isPreReady:this.isPreReady(),isReady:this.isReady(),hasLoading:e.hasLoading,isPreReadyOver:this.isPreReadyOver,isSkip:e.isSkip}))},i.onReady=function(){this.trigger(new E("ready",{errorCount:this.getErrorCount(),totalErrorCount:this.totalErrorCount,totalCount:this.totalCount}))},i.getErrorCount=function(){return this.elementInfos.filter((function(t){return t.hasError})).length},i.hasLoading=function(){return this.elementInfos.some((function(t){return t.hasLoading}))},e}(f),vt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return X(e,t),e.prototype.checkElement=function(){var t=this.element,e=t.getAttribute("src");if(t.complete){if(e)return t.naturalWidth||this.onAlreadyError(t),!1;this.onAlreadyPreReady()}return this.addEvents(),J&&t.setAttribute("src",e),!0},e.EVENTS=["load","error"],e}(pt),ft=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return X(e,t),e.prototype.checkElement=function(){var t=this.element;return!(t.readyState>=1||(t.error?(this.onAlreadyError(t),1):(this.addEvents(),0)))},e.EVENTS=["loadedmetadata","error"],e}(pt);const Et=function(t){function e(e){return void 0===e&&(e={}),t.call(this,K({loaders:{img:vt,video:ft}},e))||this}return X(e,t),e}(gt);function bt(t,e,i,s){return new(i||(i=Promise))((function(n,o){function r(t){try{h(s.next(t))}catch(e){o(e)}}function a(t){try{h(s.throw(t))}catch(e){o(e)}}function h(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(r,a)}h((s=s.apply(t,e||[])).next())}))}class yt extends Error{constructor(t,e){super(t),Object.setPrototypeOf(this,yt.prototype),this.name="View360Error",this.code=e}}var wt={WRONG_TYPE:0,WRONG_OPTION:1,ELEMENT_NOT_FOUND:2,CANVAS_NOT_FOUND:3,WEBGL_NOT_SUPPORTED:4,FAILED_CREATE_CONTEXT_2D:5,PROVIDE_PROJECTION_FIRST:6,FAILED_LINKING_PROGRAM:7,INSUFFICIENT_ARGS:8},Tt={WRONG_TYPE:(t,e)=>`${typeof t} is not a ${e.map((t=>`"${t}"`)).join(" or ")}.`,WRONG_OPTION:(t,e)=>`Bad option: given "${t}" for option "${e}".`,ELEMENT_NOT_FOUND:t=>`Element with selector "${t}" not found.`,CANVAS_NOT_FOUND:"The canvas element was not found inside the given root element.",WEBGL_NOT_SUPPORTED:"WebGL is not supported on this browser.",FAILED_CREATE_CONTEXT_2D:"Failed to create canvas 2D context",PROVIDE_PROJECTION_FIRST:'"projection" should be provided before initialization.',FAILED_LINKING_PROGRAM:(t,e)=>`Failed linking WebGL program - "${t}\nShader compile Log: ${e}`,INSUFFICIENT_ARGS:(t,e)=>`Insufficient arguments: given "${t}" for "${e}".`};const xt="mousedown",Ct="mousemove",Rt="mouseup",Lt="touchstart",Ot="touchmove",It="touchend",Mt="wheel",At="resize",St="contextmenu",Pt="mouseenter",Nt="mouseleave",Dt="keydown",kt="keyup",Bt="click",Ft="webglcontextcreationerror",Ut="webglcontextlost",zt="webglcontextrestored",Vt="deviceorientation",Ht="devicemotion",Gt="orientationchange",jt="play",Yt="pause",qt="loadeddata",Wt="volumechange",Xt="timeupdate",Kt="durationchange",Zt="canplaythrough",$t="transitionend",Qt="end",Jt="div",te="button";var ee;!function(t){t[t.LEFT=0]="LEFT",t[t.MIDDLE=1]="MIDDLE",t[t.RIGHT=2]="RIGHT"}(ee||(ee={}));const ie="grab",se="grabbing",ne="",oe=["LEFT","UP","RIGHT","DOWN"];var re;!function(t){t[t.LEFT=37]="LEFT",t[t.UP=38]="UP",t[t.RIGHT=39]="RIGHT",t[t.DOWN=40]="DOWN"}(re||(re={}));const ae={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",DOWN:"ArrowDown"},he=["requestFullscreen","webkitRequestFullscreen","webkitRequestFullScreen","webkitCancelFullScreen","mozRequestFullScreen","msRequestFullscreen"],le=["fullscreenElement","webkitFullscreenElement","webkitCurrentFullScreenElement","mozFullScreenElement","msFullscreenElement"],ce=["exitFullscreen","webkitExitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"],ue=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"],de="view360-ctx-lost",_e="view360-vr-presenting",pe="view360-hotspots",me="view360-hotspot",ge="view360-hotspot-visible",ve="ready",fe="loadStart",Ee="load",be="projectionChange",ye="resize",we="beforeRender",Te="render",xe="viewChange",Ce="staticClick",Re="vrStart",Le="vrEnd",Oe=t=>1-Math.pow(1-t,3);var Ie;const Me="animationEnd",Ae="update",Se="inputStart",Pe="change",Ne="inputEnd",De="enable",ke="disable",Be="staticClick",Fe=Math.PI/180,Ue=180/Math.PI,ze=Oe,Ve=300,He={min:-1/0,max:1/0},Ge={min:-90,max:90},je={min:.6,max:10};var Ye;!function(t){t[t.ZERO=0]="ZERO",t[t.CW_90=1]="CW_90",t[t.CCW_90=2]="CCW_90",t[t.CW_180=3]="CW_180"}(Ye||(Ye={}));const qe="view360videotimechange",We="http://www.w3.org/2000/svg",Xe="immersive-vr",Ke="local",Ze=null!==(Ie=Number.EPSILON)&&void 0!==Ie?Ie:2220446049250313e-31,$e=t=>"string"==typeof t,Qe=(t,e=Jt)=>{const i=document.createElement(e);return i.classList.add(t),i},Je=(t,e)=>{let i=null;if($e(t)){const s=(e||document).querySelector(t);if(!s)return null;i=s}else(s=t)&&s.nodeType===Node.ELEMENT_NODE&&(i=t);var s;return i},ti=(t,e,i)=>Math.max(Math.min(t,i),e),ei=(t,e,i)=>t*(1-i)+e*i,ii=(t,e,i)=>{const s=Math.abs(i-e);return t<e?t=i-(e-t)%s:t>i&&(t=e+(t-i)%s),t},si=(t,e)=>{for(let i=0;i<t.length;i++)if(e(t[i]))return i;return-1},ni=t=>"object"==typeof t?t:{},oi=(t,e)=>2*Math.atan(Math.tan(.5*t)/e),ri=()=>{if(!document)return!1;for(const t of le)if(document[t])return!0;return!1},ai=()=>window.isSecureContext&&!!DeviceMotionEvent&&"requestPermission"in DeviceMotionEvent,hi=(t,e,i,s)=>{N(t);const n=ti(i,-89.99,89.99);return B(t,t,e*Fe),k(t,t,n*Fe),F(t,t,s*Fe),t},li=t=>{const e=t[0],i=t[1],s=t[2],n=t[3],o=e*e+i*i+s*s+n*n,r=e*n-i*s;let a,h;if(r>.499995*o)a=Math.PI/2,h=2*Math.atan2(i,e);else if(r<-.499995*o)a=-Math.PI/2,h=-2*Math.atan2(i,e);else{const e=L(0,0,1),i=L(0,1,0);S(e,e,t),S(i,i,t);const s=Math.sqrt(e[0]*e[0]+e[2]*e[2]);a=Math.atan2(-e[1],s),h=Math.atan2(e[0],e[2])}return{pitch:ti(a*Ue,-90,90),yaw:ii(h*Ue,0,360)}};class ci{get val(){return this._val}get start(){return this._start}get end(){return this._end}get progress(){return this._progress}get activated(){return this._activated}get duration(){return this._duration}set duration(t){this._duration=t}get loop(){return this._loop}set loop(t){this._loop=t}get range(){return this._range}get easing(){return this._easing}set easing(t){this._easing=t}constructor({duration:t=300,loop:e=!1,range:i={min:0,max:1},easing:s=ze}={}){this._duration=t,this._loop=e,this._range=i,this._easing=s,this._activated=!1,this.reset(0)}update(t){if(!this._activated)return this._val=this._end,0;const e=this._start,i=this._end,s=this._duration,n=this._val,o=this._loop,r=this._progress+t/s;this._progress=o?ii(r,0,1):ti(r,0,1);const a=this._easing(this._progress);return this._val=ei(e,i,a),!o&&this._progress>=1&&(this._activated=!1),this._val-n}reset(t){const e=this._range,i=ti(t,e.min,e.max);this._start=i,this._end=i,this._val=i,this._progress=0,this._activated=!1}add(t){const e=this._range;this._start=ti(this._start+t,e.min,e.max),this._end=ti(this._end+t,e.min,e.max),this._val=ti(this._val+t,e.min,e.max)}setNewEndByDelta(t){const e=this._range;this._start=this._val,this._end=ti(this._end+t,e.min,e.max),this._progress=0,this._activated=!0}setRange(t,e){this._start=ti(this._start,t,e),this._end=ti(this._end,t,e),this._range={min:t,max:e}}}class ui{get duration(){return this._motion.duration}set duration(t){this._motion.duration=t}get easing(){return this._motion.easing}set easing(t){this._motion.easing=t}constructor(t,e,i,{duration:s=300,easing:n=ze}={}){this._camera=t,this._motion=new ci({duration:s,easing:n,range:{min:0,max:1}}),this._from=e,this._to=i,this._finishPromise=new Promise((t=>{this._finish=t})),this._motion.setNewEndByDelta(1)}getFinishPromise(){return this._finishPromise}update(t){const e=this._camera,i=this._from,s=this._to,n=this._motion;n.update(t);const o=n.val,r=P(),a=ei(i.zoom,s.zoom,o);U(r,i.rotation,s.rotation,o),e.rotate(r,a),o>=1&&this._finish()}}class di extends f{get aspect(){return this._aspect}get changed(){return this._changed}get yawRange(){return this._initialYawRange}set yawRange(t){this._initialYawRange=t}get pitchRange(){return this._initialPitchRange}set pitchRange(t){this._initialPitchRange=t}get zoomRange(){return this._initialZoomRange}set zoomRange(t){this._initialZoomRange=t}constructor({initialYaw:t,initialPitch:e,initialZoom:i,yawRange:s,pitchRange:n,zoomRange:o,fov:r}){super(),this.yaw=t,this.pitch=e,this.zoom=i,this.rollOffset=0,this.initialYaw=t,this.initialPitch=e,this.initialZoom=i,this.position=C(),this.animation=null,this._up=L(0,1,0),this._aspect=1,this._initialYawRange=s,this._initialPitchRange=n,this._initialZoomRange=o,this._yawRange=s,this._pitchRange=n,this._zoomRange=o,this.quaternion=P(),this._updateQuaternion(),this.viewMatrix=w(),this.projectionMatrix=w(),this.fov=r,this._maxRenderHeight=-1}destroy(){this.off()}resize(t,e){const i=this._aspect;this._aspect=t/e,this._aspect!==i&&this.updateMatrix()}lookAt({yaw:t=this.yaw,pitch:e=this.pitch,zoom:i=this.zoom}){const s=V(this.quaternion),n=this.zoom;this.yaw=ii(t,0,360),this.pitch=ti(e,-90,90),this.zoom=i,this._updateQuaternion();const o=Math.abs(i-n);(!q(this.quaternion,s)||o>=10*Ze)&&this.updateMatrix()}rotate(t,e=this.zoom){const i=Y(P(),t),s=q(this.quaternion,i);G(this.quaternion,i);const n=this.zoom,{yaw:o,pitch:r}=li(i);this.yaw=o,this.pitch=r,this.zoom=e;const a=Math.abs(e-n);(!s||a>=10*Ze)&&this.updateMatrix()}animateTo({yaw:t=this.yaw,pitch:e=this.pitch,zoom:i=this.zoom,duration:s=0,easing:n=ze}={}){return bt(this,void 0,void 0,(function*(){if(this.yaw===t&&this.pitch===e&&this.zoom===i)return;const o={rotation:V(this.quaternion),zoom:this.zoom},r={rotation:hi(P(),t,e,this.rollOffset),zoom:i},a=new ui(this,o,r,{duration:s,easing:n}),h=a.getFinishPromise();return this.animation=a,h.then((()=>{this.animation=null,this.trigger(Me,{animation:a})})),h}))}restrictYawRange(t,e){this._yawRange={min:t,max:e}}restrictPitchRange(t,e){this._pitchRange={min:t,max:e}}restrictZoomRange(t,e){this._zoomRange={min:t,max:e}}restrictRenderHeight(t){this._maxRenderHeight=t}resetRange(){this._yawRange=this._initialYawRange,this._pitchRange=this._initialPitchRange,this._zoomRange=this._initialZoomRange,this._maxRenderHeight=-1}getYawRange(t){const e=this._yawRange,i=this._maxRenderHeight;if(!e)return He;const s=.5*this.getHorizontalFov(t);let n=e.min,o=e.max;if(i>0){const t=oi(s*Fe,this._aspect),r=.5*i,a=Math.tan(t),h=Math.sqrt((1+r*r)/(1+a*a)),l=Math.atan(Math.tan(s*Fe)*h)*Ue;n=e.min+l,o=e.max-l}return n>o&&(n=0,o=0),{min:n,max:o}}getPitchRange(t){const e=this._pitchRange,i=this._maxRenderHeight;if(!e)return Ge;let s=e.min,n=e.max;if(i>0){const i=.5*this.getVerticalFov(t);s=e.min+i,n=e.max-i}return s>n&&(s=0,n=0),{min:Math.max(s,-90),max:Math.min(n,90)}}getZoomRange(){var t;const e=null!==(t=this._zoomRange)&&void 0!==t?t:je,i=this.getHorizontalFov(e.max),s=this.getHorizontalFov(e.min),n=this.getHorizontalFov(this.zoom);return{min:Math.max(i,1),max:Math.min(s,180),current:n}}getHorizontalFov(t=this.zoom){return this._getZoomedHorizontalFov(t)*Ue}getVerticalFov(t=this.zoom){const e=this._aspect,i=this._getZoomedHorizontalFov(t);return oi(i,e)*Ue}fovToZoom(t){const e=this.fov;return Math.tan(Fe*e*.5)/Math.tan(Fe*t*.5)}updateMatrix(){const t=this._up,e=this._aspect,i=this.viewMatrix,s=this.projectionMatrix,n=this.position,o=this.quaternion,r=C(),a=L(0,0,-1);S(a,a,o),S(r,t,o);const h=this._getZoomedHorizontalFov(),l=oi(h,e);!function(t,e,i,s){var n,o,r,a,h,l,c,u,d,_,p=e[0],m=e[1],g=e[2],v=s[0],f=s[1],E=s[2],y=i[0],w=i[1],T=i[2];Math.abs(p-y)<b&&Math.abs(m-w)<b&&Math.abs(g-T)<b?function(t){t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1}(t):(c=p-y,u=m-w,d=g-T,n=f*(d*=_=1/Math.hypot(c,u,d))-E*(u*=_),o=E*(c*=_)-v*d,r=v*u-f*c,(_=Math.hypot(n,o,r))?(n*=_=1/_,o*=_,r*=_):(n=0,o=0,r=0),a=u*r-d*o,h=d*n-c*r,l=c*o-u*n,(_=Math.hypot(a,h,l))?(a*=_=1/_,h*=_,l*=_):(a=0,h=0,l=0),t[0]=n,t[1]=a,t[2]=c,t[3]=0,t[4]=o,t[5]=h,t[6]=u,t[7]=0,t[8]=r,t[9]=l,t[10]=d,t[11]=0,t[12]=-(n*p+o*m+r*g),t[13]=-(a*p+h*m+l*g),t[14]=-(c*p+u*m+d*g),t[15]=1)}(i,n,a,r),x(s,l,e,.1,100),this._changed=!0}onFrameRender(){this._changed=!1}_updateQuaternion(){hi(this.quaternion,this.yaw,this.pitch,this.rollOffset)}_getZoomedHorizontalFov(t=this.zoom){return 2*Math.atan(Math.tan(Fe*this.fov*.5)/t)}}class _i extends f{constructor(){super(),this._onMouseDown=t=>{const e=this._el;e&&t.button===ee.LEFT&&(t.preventDefault(),e.focus?e.focus():window.focus(),this._prevPos[0]=t.clientX,this._prevPos[1]=t.clientY,window.addEventListener(Ct,this._onMouseMove,!1),window.addEventListener(Rt,this._onMouseUp,!1),this.trigger(Se,{srcEvent:t,isTouch:!1,isKeyboard:!1}))},this._onMouseMove=t=>{t.preventDefault();const e=t.clientX,i=t.clientY,s=this._prevPos,n=e-s[0],o=i-s[1];this.trigger(Pe,{delta:{x:n,y:o},isTouch:!1,isKeyboard:!1}),s[0]=e,s[1]=i},this._onMouseUp=()=>{this._prevPos[0]=0,this._prevPos[1]=0,window.removeEventListener(Ct,this._onMouseMove,!1),window.removeEventListener(Rt,this._onMouseUp,!1),this.trigger(Ne,{isTouch:!1,isKeyboard:!1,scrolling:!1})},this._el=null,this._prevPos=[0,0]}enable(t){this._el||(t.addEventListener(xt,this._onMouseDown),this._el=t)}disable(){const t=this._el;t&&(t.removeEventListener(xt,this._onMouseDown),window.removeEventListener(Ct,this._onMouseMove,!1),window.removeEventListener(Rt,this._onMouseUp,!1),this._el=null)}}class pi extends f{get scrollable(){return this._scrollable}set scrollable(t){this._scrollable=t}constructor(){super(),this._onTouchStart=t=>{if(t.touches.length>1||this._scrolling)return;const e=t.touches[0];this._isFirstTouch=!0,this._prevPos[0]=e.clientX,this._prevPos[1]=e.clientY,this.trigger(Se,{srcEvent:t,isTouch:!0,isKeyboard:!1})},this._onTouchMove=t=>{if(t.touches.length>1||this._scrolling)return;const e=t.touches[0],i=this._scrollable,s=this._prevPos,n=e.clientX,o=e.clientY,r=n-s[0],a=o-s[1];if(this._isFirstTouch){if(i&&!ri()&&Math.abs(a)>Math.abs(r))return void(this._scrolling=!0);this._isFirstTouch=!1}!1!==t.cancelable&&t.preventDefault(),this.trigger(Pe,{delta:{x:r,y:a},isTouch:!0,isKeyboard:!1}),s[0]=n,s[1]=o},this._onTouchEnd=t=>{if(0!==t.touches.length)return;const e=t.touches[0],i=this._prevPos;e?(i[0]=e.clientX,i[1]=e.clientY):(i[0]=0,i[1]=0,this.trigger(Ne,{isTouch:!0,isKeyboard:!1,scrolling:this._scrolling})),!1!==t.cancelable&&t.preventDefault(),this._scrolling=!1},this._el=null,this._prevPos=[0,0],this._isFirstTouch=!1,this._scrolling=!1,this._scrollable=!1}enable(t){this._el||(t.addEventListener(Lt,this._onTouchStart,{passive:!1}),t.addEventListener(Ot,this._onTouchMove,{passive:!1}),t.addEventListener(It,this._onTouchEnd),this._el=t)}disable(){const t=this._el;t&&(t.removeEventListener(Lt,this._onTouchStart),t.removeEventListener(Ot,this._onTouchMove),t.removeEventListener(It,this._onTouchEnd),this._el=null)}}class mi extends f{get active(){const t=this._pressed;return t.LEFT||t.UP||t.RIGHT||t.DOWN}constructor(){super(),this._onKeyDown=t=>{if(t.location!==KeyboardEvent.DOM_KEY_LOCATION_STANDARD)return;this._updateKeyPress(t,!0);const e=this._getPressedKeyCount();e<=0||(t.preventDefault(),1!==e||t.repeat||this.trigger(Se,{srcEvent:t,isTouch:!1,isKeyboard:!0}))},this._onKeyUp=t=>{t.location===KeyboardEvent.DOM_KEY_LOCATION_STANDARD&&(this._updateKeyPress(t,!1),this._getPressedKeyCount()>0||this.trigger(Ne,{isTouch:!1,isKeyboard:!0,scrolling:!1}))},this._el=null,this._clearPressedKeys()}enable(t){this._el||(t.addEventListener(Dt,this._onKeyDown),t.addEventListener(kt,this._onKeyUp),this._el=t,this._clearPressedKeys())}disable(){const t=this._el;t&&(t.removeEventListener(Dt,this._onKeyDown),t.removeEventListener(kt,this._onKeyUp),this._el=null,this._clearPressedKeys())}update(){const t=this._getDeltaByPressedKeys();0===t.x&&0===t.y||this.trigger(Pe,{delta:t,isTouch:!1,isKeyboard:!0})}_clearPressedKeys(){this._pressed=oe.reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:!1})),{})}_updateKeyPress(t,e){const i=this._pressed,s=null!=t.keyCode?re[t.keyCode]:ae[t.key];s&&(i[s]=e)}_getPressedKeyCount(){return oe.filter((t=>this._pressed[t])).length}_getDeltaByPressedKeys(){const t=this._pressed;let e=0,i=0;return t.LEFT&&(e+=1),t.RIGHT&&(e-=1),t.UP&&(i+=1),t.DOWN&&(i-=1),{x:e,y:i}}}class gi extends f{get enabled(){return this._enabled}get enableBlocked(){return this._enableBlocked}get animating(){return this._keyboardInput.active||this._xMotion.activated||this._yMotion.activated}get yaw(){return this._xMotion}get pitch(){return this._yMotion}get scrollable(){return this._touchInput.scrollable}set scrollable(t){this._touchInput.scrollable=t}get pointerScale(){return this._pointerScale}set pointerScale(t){this._pointerScale=t}get keyboardScale(){return this._keyboardScale}set keyboardScale(t){this._keyboardScale=t}get duration(){return this._duration}set duration(t){this._duration=t,this._xMotion.duration=t,this._yMotion.duration=t}get easing(){return this._easing}set easing(t){this._easing=t,this._xMotion.easing=t,this._yMotion.easing=t}get disablePitch(){return this._disablePitch}set disablePitch(t){this._disablePitch=t}get disableYaw(){return this._disableYaw}set disableYaw(t){this._disableYaw=t}get disableKeyboard(){return this._disableKeyboard}set disableKeyboard(t){this._disableKeyboard=t}constructor(t,e,{duration:i=300,easing:s=ze,pointerScale:n=[1,1],keyboardScale:o=[1,1],disablePitch:r=!1,disableYaw:a=!1,disableKeyboard:h=!1}={}){super(),this._onInputStart=t=>{this._changedWhileDragging=!1,this.trigger(Se,Object.assign(Object.assign({},t),{inputType:"rotate"}))},this._onChange=t=>{const e=t.delta,i=1/this._zoomScale,s=this._screenScale,n=this._keyboardScale,o=this._pointerScale;let r;r=t.isKeyboard?[n[0]*i,n[1]*i]:[o[0]*s[0]*i,o[1]*s[1]*i];const a=e.x*r[0],h=e.y*r[1];this._xMotion.setNewEndByDelta(a),this._yMotion.setNewEndByDelta(h),this._changedWhileDragging=!0},this._onInputEnd=t=>{this.trigger(Ne,Object.assign(Object.assign({},t),{inputType:"rotate"})),this._changedWhileDragging||t.isKeyboard||t.scrolling||this.trigger(Be,{isTouch:t.isTouch}),this._changedWhileDragging=!1},this._controlEl=t,this._pointerScale=n,this._keyboardScale=o,this._duration=i,this._easing=s,this._disablePitch=r,this._disableYaw=a,this._disableKeyboard=h,this._enableBlocked=e,this._mouseInput=new _i,this._touchInput=new pi,this._keyboardInput=new mi,this._xMotion=new ci({duration:i,range:He,easing:s}),this._yMotion=new ci({duration:i,range:Ge,easing:s}),this._screenScale=[1,1],this._zoomScale=1,this._enabled=!1,this._changedWhileDragging=!1,this._bindInputs()}destroy(){this.disable(),this._mouseInput.off(),this._touchInput.off(),this._keyboardInput.off(),this.off(),this._changedWhileDragging=!1}update(t){if(!this._enabled)return;const e=this._xMotion,i=this._yMotion,s=this._keyboardInput;this._disableKeyboard||s.update(),this._disablePitch||i.update(t),this._disableYaw||e.update(t)}updateRange(t,e){const i=t.getYawRange(e),s=t.getPitchRange(e);this._xMotion.setRange(i.min,i.max),this._yMotion.setRange(s.min,s.max)}setZoomScale(t){this._zoomScale=t}resize(t,e,i,s){const n=oi(t*Fe,e)*Ue;this._screenScale[0]=t/i,this._screenScale[1]=n/s}enable(){if(this._enabled)return;const t=this._controlEl;this._mouseInput.enable(t),this._touchInput.enable(t),this._keyboardInput.enable(t),this._enabled=!0,this._enableBlocked=!1,this.trigger(De,{control:this,updateCursor:!0})}disable(){this._enabled&&(this._mouseInput.disable(),this._touchInput.disable(),this._keyboardInput.disable(),this._enabled=!1,this.trigger(ke,{updateCursor:!0}))}sync(t){this.updateRange(t,t.zoom),this._xMotion.reset(t.yaw),this._yMotion.reset(t.pitch)}_bindInputs(){const t=this._mouseInput,e=this._touchInput,i=this._keyboardInput;t.on(Se,this._onInputStart),t.on(Pe,this._onChange),t.on(Ne,this._onInputEnd),e.on(Se,this._onInputStart),e.on(Pe,this._onChange),e.on(Ne,this._onInputEnd),i.on(Se,this._onInputStart),i.on(Pe,this._onChange),i.on(Ne,this._onInputEnd)}}class vi extends f{get scrollable(){return this._scrollable}set scrollable(t){this._scrollable=t}constructor(){super(),this._onWheel=t=>{const e=this._scrollable;if(0===t.deltaY||e)return;t.preventDefault(),t.stopPropagation(),this._inputTimer<0?this.trigger(Se,{srcEvent:t,isTouch:!1,isKeyboard:!1}):this._clearTimer();const i=this._baseScale*t.deltaY;this.trigger(Pe,{delta:i,isTouch:!1,isKeyboard:!1}),this._inputTimer=window.setTimeout((()=>{this.trigger(Ne,{isTouch:!1,isKeyboard:!1,scrolling:!1}),this._inputTimer=-1}),Ve)},this._el=null,this._baseScale=.04,this._scrollable=!1,this._inputTimer=-1}enable(t){this._el||(t.addEventListener(Mt,this._onWheel,{passive:!1,capture:!1}),this._el=t,this._clearTimer())}disable(){const t=this._el;t&&(t.removeEventListener(Mt,this._onWheel,!1),this._el=null,this._clearTimer())}_clearTimer(){window.clearTimeout(this._inputTimer),this._inputTimer=-1}}class fi extends f{constructor(){super(),this._onTouchMove=t=>{const e=t.touches;if(2!==e.length)return;if(!t.cancelable)return;t.preventDefault(),t.stopPropagation();const i=this._prevDistance,s=[e[0].pageX-e[1].pageX,e[0].pageY-e[1].pageY],n=Math.sqrt(s[0]*s[0]+s[1]*s[1])*this._baseScale,o=this._isFirstTouch?0:n-i;this._isFirstTouch&&this.trigger(Se,{srcEvent:t,isTouch:!0,isKeyboard:!1}),this._prevDistance=n,this._isFirstTouch=!1,this.trigger(Pe,{delta:o,isTouch:!0,isKeyboard:!1})},this._onTouchEnd=t=>{0===t.touches.length&&(this._isFirstTouch||this.trigger(Ne,{isTouch:!0,isKeyboard:!1,scrolling:!1}),this._prevDistance=-1,this._isFirstTouch=!0)},this._el=null,this._baseScale=-.2,this._prevDistance=-1,this._isFirstTouch=!0}enable(t){this._el||(t.addEventListener(Ot,this._onTouchMove,{passive:!1,capture:!1}),t.addEventListener(It,this._onTouchEnd),this._el=t,this._prevDistance=-1,this._isFirstTouch=!0)}disable(){const t=this._el;t&&(t.removeEventListener(Ot,this._onTouchMove,!1),t.removeEventListener(It,this._onTouchEnd),this._el=null)}}class Ei extends f{get enabled(){return this._enabled}get enableBlocked(){return this._enableBlocked}get animating(){return this._motion.activated}get zoom(){return this._motion.val}get scrollable(){return this._wheelInput.scrollable}set scrollable(t){this._wheelInput.scrollable=t}get range(){return this._motion.range}get scale(){return this._scale}set scale(t){this._scale=t}get duration(){return this._motion.duration}get easing(){return this._motion.easing}constructor(t,e,{scale:i=1,duration:s=300,easing:n=ze}={}){super(),this._onInputStart=t=>{this.trigger(Se,Object.assign(Object.assign({},t),{inputType:"zoom"}))},this._onChange=({delta:t})=>{const e=t*this._scale;this._motion.setNewEndByDelta(e)},this._onInputEnd=t=>{this.trigger(Ne,Object.assign(Object.assign({},t),{inputType:"zoom"}))},this._scale=i,this._controlEl=t,this._enableBlocked=e,this._wheelInput=new vi,this._pinchInput=new fi,this._motion=new ci({duration:s,easing:n,range:He}),this._enabled=!1,this._bindInputs()}destroy(){this.disable(),this._wheelInput.off(),this._pinchInput.off(),this.off()}update(t){this._enabled&&this._motion.update(t)}enable(){if(this._enabled)return;const t=this._controlEl;this._wheelInput.enable(t),this._pinchInput.enable(t),this._enabled=!0,this._enableBlocked=!1,this.trigger(De,{control:this,updateCursor:!1})}disable(){this._enabled&&(this._wheelInput.disable(),this._pinchInput.disable(),this._enabled=!1,this.trigger(ke,{updateCursor:!1}))}sync(t){const e=this._motion,i=t.getZoomRange();e.setRange(i.min,i.max),e.reset(i.current)}_bindInputs(){const t=this._wheelInput,e=this._pinchInput;t.on(Se,this._onInputStart),t.on(Pe,this._onChange),t.on(Ne,this._onInputEnd),e.on(Se,this._onInputStart),e.on(Pe,this._onChange),e.on(Ne,this._onInputEnd)}}const bi={PITCH_DELTA:1,YAW_DELTA_BY_ROLL:2,YAW_DELTA_BY_YAW:3};bi[bi.PITCH_DELTA]={targetAxis:[0,1,0],meshPoint:[0,0,1]},bi[bi.YAW_DELTA_BY_ROLL]={targetAxis:[0,1,0],meshPoint:[1,0,0]},bi[bi.YAW_DELTA_BY_YAW]={targetAxis:[1,0,0],meshPoint:[0,0,1]};class yi extends f{get enabled(){return this._enabled}get orientationUpdated(){return this._orientationUpdated}get ignoreRoll(){return this._ignoreRoll}set ignoreRoll(t){this._ignoreRoll=t}constructor(){super(),this._onDeviceOrientation=t=>{const e=this._orientation,{alpha:i,beta:s,gamma:n}=t;null!=i&&null!=s&&null!=n&&(e.alpha=i,e.beta=s,e.gamma=n,this._orientationUpdated=!0,this._needsCalibrate&&(this._needsCalibrate=!1,this._calibrateSensor()))},this._updateScreenOrientation=()=>{window.screen&&window.screen.orientation&&void 0!==window.screen.orientation.angle?this._screenOrientation=screen.orientation.angle:void 0!==window.orientation?this._screenOrientation=window.orientation>=0?window.orientation:360+window.orientation:this._screenOrientation=0},this.quaternion=P(),this._orientation={alpha:0,beta:90,gamma:0},this._yawOrigin=0,this._yawOffset=0,this._orientationUpdated=!1,this._screenOrientation=0,this._needsCalibrate=!0,this._enabled=!1}enable(){this._enabled||(window.addEventListener(Vt,this._onDeviceOrientation),window.addEventListener(Gt,this._updateScreenOrientation),this._updateScreenOrientation(),this._orientationUpdated=!1,this._needsCalibrate=!0,this._enabled=!0)}disable(){this._enabled&&(window.removeEventListener(Vt,this._onDeviceOrientation),window.removeEventListener(Gt,this._updateScreenOrientation),this._enabled=!1)}update(){this._updateRotation(),this._orientationUpdated=!1}collectDelta(){if(!this._orientationUpdated)return{pitch:0,yaw:0};const t=V(this.quaternion);return this._updateRotation(),this._orientationUpdated=!1,this._toEulerDelta(t,this.quaternion)}setInitialRotation(t){this._yawOrigin=t}_calibrateSensor(){const t=this._yawOrigin,e=this.quaternion;this._yawOffset=0,this._updateRotation();const{yaw:i}=li(e);this._yawOffset=i-t,this._updateRotation(),this._needsCalibrate=!1}_updateRotation(){const t=this.quaternion,{alpha:e,beta:i,gamma:s}=this._orientation;N(t),B(t,t,(e-this._yawOffset)*Fe),k(t,t,i*Fe),F(t,t,-s*Fe);const n=P(),o=.5*-this._screenOrientation*Fe,r=H(-Math.sqrt(.5),0,0,Math.sqrt(.5));j(n,0,Math.sin(o),0,Math.cos(o)),D(t,t,n),D(t,t,r),Y(t,t)}_toEulerDelta(t,e){return{yaw:this._getDeltaYaw(t,e),pitch:this._getDeltaPitch(t,e)}}_getDeltaYaw(t,e){const i=this._getRotationDelta(t,e,bi.YAW_DELTA_BY_YAW);return this._getRotationDelta(t,e,bi.YAW_DELTA_BY_ROLL)*Math.sin(this._extractPitchFromQuat(e))+i}_getDeltaPitch(t,e){return this._getRotationDelta(t,e,bi.PITCH_DELTA)}_getRotationDelta(t,e,i){const s=L(bi[i].targetAxis[0],bi[i].targetAxis[1],bi[i].targetAxis[2]),n=bi[i].meshPoint,o=V(t),r=V(e);Y(o,o),Y(r,r);let a=L(0,0,1),h=L(0,0,1);S(a,a,o),S(h,h,r),S(s,s,r);const l=I(s,M(C(),a,h))>0?1:-1,c=L(n[0],n[1],n[2]);let u;u=i!==bi.YAW_DELTA_BY_YAW?L(0,l,0):L(l,0,0),S(c,c,r),S(u,u,r);const d=c,_=u,p=C();M(p,d,_),O(p,p);const m=p[0],g=p[1],v=p[2];h=L(n[0],n[1],n[2]),S(h,h,r),a=L(n[0],n[1],n[2]),S(a,a,o);let f=Math.abs(a[0]*m+a[1]*g+a[2]*v);const E=C();!function(t,e,i){t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2]}(E,a,function(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t}(C(),p,f));let b=(E[0]*h[0]+E[1]*h[1]+E[2]*h[2])/(R(E)*R(h));b>1&&(b=1);const y=Math.acos(b),w=M(C(),h,E);let T;return f=m*w[0]+g*w[1]+v*w[2],T=i!==bi.YAW_DELTA_BY_YAW?f>0?1:-1:f<0?1:-1,y*T*l*Ue}_extractPitchFromQuat(t){const e=L(0,0,1);return S(e,e,t),-1*Math.atan2(e[1],Math.sqrt(Math.pow(e[0],2)+Math.pow(e[2],2)))}}class wi extends f{get enabled(){return this._input.enabled}get enableBlocked(){return this._enableBlocked}get animating(){return this._input.enabled&&this._input.orientationUpdated}get ignoreRoll(){return this._ignoreRoll}set ignoreRoll(t){this._ignoreRoll=t}static isAvailable(){return bt(this,void 0,void 0,(function*(){if(!DeviceMotionEvent)return!1;let t;return Promise.race([new Promise((e=>{t=t=>{e(t.rotationRate&&null!=t.rotationRate.alpha)},window.addEventListener(Ht,t)})),new Promise((t=>{setTimeout((()=>t(!1)),1e3)}))]).then((e=>(window.removeEventListener(Ht,t),e)))}))}static requestSensorPermission(){return bt(this,void 0,void 0,(function*(){return!ai()||DeviceMotionEvent.requestPermission().then((t=>"granted"===t)).catch((()=>!1))}))}constructor(t,{ignoreRoll:e=!0}={}){super(),this._enableBlocked=t,this._ignoreRoll=e,this._input=new yi}destroy(){this.disable(),this._input.off(),this.off()}update(t,e,i,s){this._ignoreRoll?this._updateYawPitch(t,e,i,s):this._updateQuaternion(t,s)}enable(){this._input.enabled||(this._input.enable(),this._enableBlocked=!1,this.trigger(De,{control:this,updateCursor:!1}))}disable(){this._input.enabled&&(this._input.disable(),this.trigger(ke,{updateCursor:!1}))}sync(){}_updateYawPitch(t,e,i,s){const n=this._input;if(!n.enabled)return;const{yaw:o,pitch:r}=n.collectDelta();e.add(o),i.add(r),t.lookAt({yaw:e.val,pitch:i.val,zoom:s})}_updateQuaternion(t,e){const i=this._input;i.enabled&&(i.update(),t.rotate(i.quaternion,e))}}class Ti{get useGrabCursor(){return this._useGrabCursor}set useGrabCursor(t){t!==this._useGrabCursor&&(this._useGrabCursor=t,t&&this._enabled?this._setCursor(ie):t||this._setCursor(ne))}get disableContextMenu(){return this._disableContextMenu}set disableContextMenu(t){t!==this._disableContextMenu&&(this._disableContextMenu=t,t&&this._enabled?this._blockContextMenu():t||this._restoreContextMenu())}get scrollable(){return this._rotateControl.scrollable}set scrollable(t){this._rotateControl.scrollable=t}get wheelScrollable(){return this._zoomControl.scrollable}set wheelScrollable(t){this._zoomControl.scrollable=t}get ignoreZoomScale(){return this._ignoreZoomScale}set ignoreZoomScale(t){this._ignoreZoomScale=t}get enabled(){return this._enabled}get rotate(){return this._rotateControl}get zoom(){return this._zoomControl}get gyro(){return this._gyroControl}get animating(){return this._rotateControl.animating||this._zoomControl.animating||this._gyroControl.animating}constructor(t,e,{useGrabCursor:i,scrollable:s,wheelScrollable:n,disableContextMenu:o,rotate:r,zoom:a,gyro:h}){this._preventContextMenu=t=>{t.preventDefault()},this._onInputStart=t=>{this._useGrabCursor&&!t.isKeyboard&&this._setCursor(se)},this._onInputEnd=t=>{this._useGrabCursor&&!t.isKeyboard&&this._setCursor(ie)},this._onEnable=({control:t,updateCursor:e})=>{e&&this._useGrabCursor&&this._setCursor(ie),t.sync(this._camera)},this._onDisable=({updateCursor:t})=>{t&&this._setCursor(ne)},this._onCameraAnimationEnd=({animation:t})=>{t.getFinishPromise().then((()=>{this.sync()}))},this._useGrabCursor=i,this._disableContextMenu=o,this._camera=e,this._controlEl=t,this._ignoreZoomScale=!1,this._enabled=!1,this._rotateControl=new gi(t,!r,ni(r)),this._zoomControl=new Ei(t,!a,ni(a)),this._gyroControl=new wi(!h,ni(h)),this._rotateControl.scrollable=s,this._zoomControl.scrollable=n,this._bindEvents()}destroy(){this.disable(),this._rotateControl.destroy(),this._zoomControl.destroy(),this._setCursor(ne)}resize(t,e){const i=this._camera;this._rotateControl.resize(i.fov,i.aspect,t,e)}enable(){return bt(this,void 0,void 0,(function*(){this._enabled||(this._rotateControl.enableBlocked||this._rotateControl.enable(),this._zoomControl.enableBlocked||this._zoomControl.enable(),this._gyroControl.enableBlocked||(yield wi.isAvailable())&&this._gyroControl.enable(),this.sync(),this._disableContextMenu&&this._blockContextMenu(),this._enabled=!0)}))}disable(){this._enabled&&(this._rotateControl.disable(),this._zoomControl.disable(),this._gyroControl.disable(),this._restoreContextMenu(),this._enabled=!1)}update(t){const e=this._camera,i=this._rotateControl,s=this._zoomControl,n=this._gyroControl;s.update(t);const o=(r=e.fov,a=s.zoom,Math.tan(Fe*r*.5)/Math.tan(Fe*a*.5));var r,a;const h=this._ignoreZoomScale?1:Math.max(o,1);i.setZoomScale(h),i.updateRange(e,o),i.update(t);const l=i.yaw,c=i.pitch;n.enabled?n.update(e,l,c,o):e.lookAt({yaw:l.val,pitch:c.val,zoom:o})}sync(){const t=this._camera;this._zoomControl.sync(t),this._rotateControl.sync(t)}_blockContextMenu(){this._controlEl.addEventListener(St,this._preventContextMenu)}_restoreContextMenu(){this._controlEl.removeEventListener(St,this._preventContextMenu)}_setCursor(t){(this._useGrabCursor||t===ne)&&(this._controlEl.style.cursor=t)}_bindEvents(){const t=this._rotateControl,e=this._zoomControl;t.on(Se,this._onInputStart),t.on(Ne,this._onInputEnd),t.on(De,this._onEnable),t.on(ke,this._onDisable),e.on(De,this._onEnable),e.on(ke,this._onDisable),this._camera.on(Me,this._onCameraAnimationEnd)}}class xi{constructor({width:t,height:e,flipY:i}){this.width=t,this.height=e,this.flipY=i,this.wrapS=WebGLRenderingContext.CLAMP_TO_EDGE,this.wrapT=WebGLRenderingContext.CLAMP_TO_EDGE}destroy(){}isVideo(){return!1}isCube(){return!1}}class Ci extends xi{constructor({source:t,width:e,height:i,flipY:s}){super({width:e,height:i,flipY:s}),this.source=t}}class Ri extends Ci{destroy(){const t=this.source;t.pause(),t.removeAttribute("src"),t.load()}isVideo(){return!0}isPaused(){const t=this.source;return t.paused||t.ended||t.readyState<=2}hasAudio(){const t=this.source;return t.audioTracks?t.audioTracks.length>0:null!=t.webkitAudioDecodedByteCount?t.webkitAudioDecodedByteCount>0:null==t.mozHasAudio||t.mozHasAudio}}class Li extends xi{constructor({sources:t,width:e,height:i,flipY:s}){super({width:e,height:i,flipY:s}),this.sources=t}isCube(){return!0}}class Oi{constructor(){this._loadChecker=new Et}load(t,e){return bt(this,void 0,void 0,(function*(){if(e)return this.loadVideo(t,ni(e));if(Array.isArray(t)&&t.length>1)return this.loadCubeImage(t);{const e=Array.isArray(t)?t[0]:t;return this.loadImage(e)}}))}loadImage(t){return bt(this,void 0,void 0,(function*(){const e=this._toImageArray(t);return this._load(e,(t=>{const i=e[0];t(new Ci({source:i,width:i.naturalWidth,height:i.naturalHeight,flipY:!0}))}))}))}loadCubeImage(t){return bt(this,void 0,void 0,(function*(){const e=this._toImageArray(t);return this._load(e,(t=>{t(new Li({sources:e,width:e[0].naturalWidth,height:e[0].naturalHeight,flipY:!1}))}))}))}loadVideo(t,e){return bt(this,void 0,void 0,(function*(){const i=Object.assign({autoplay:!0,muted:!0,loop:!1,volume:1},e),s=this._toVideoElement(t,i);return this._load([s],(t=>{const{autoplay:e,muted:n}=i;s.currentTime=0,e&&n&&s.play().catch((()=>{})),t(new Ri({source:s,width:s.videoWidth,height:s.videoHeight,flipY:!0}))}))}))}_load(t,e){const i=this._loadChecker;return new Promise(((s,n)=>{i.once("ready",(t=>{t.errorCount>0||e(s)})),i.once("error",n),i.check(t)}))}_toImageArray(t){return(Array.isArray(t)?t:[t]).map((t=>{if($e(t)){const e=new Image;return e.crossOrigin="anonymous",e.src=t,e}return t}))}_toVideoElement(t,{muted:e,loop:i,volume:s}){if(t instanceof HTMLVideoElement)return t;const n=document.createElement("video");return n.crossOrigin="anonymous",n.playsInline=!0,n.setAttribute("webkit-playsinline",""),n.muted=e,n.volume=s,n.loop=i,Array.isArray(t)?t.forEach((t=>this._appendSourceElement(n,t))):this._appendSourceElement(n,t),n.querySelectorAll("source").length>0&&n.readyState<1&&n.load(),n}_appendSourceElement(t,e){if(e instanceof HTMLSourceElement)return e;const i=document.createElement("source");i.src=e,t.appendChild(i)}}class Ii{constructor(t,e=window){this.maxDeltaTime=t,this._context=e,this._rafId=-1,this._rafTimer=-1,this._lastUpdateTime=-1}start(t){const e=this._context;if(!e||!t)return;if(this._rafId>=0||this._rafTimer>=0)return;const i=(s,n)=>{const o=Date.now(),r=Math.min(o-this._lastUpdateTime,1e3*this.maxDeltaTime);t(r,n),this._lastUpdateTime=o,this._rafId=e.requestAnimationFrame(i)};this._lastUpdateTime=Date.now(),this._rafId=e.requestAnimationFrame(i)}stop(){this._rafId>=0&&this._context.cancelAnimationFrame(this._rafId),this._rafTimer>=0&&clearTimeout(this._rafTimer),this._rafId=-1,this._rafTimer=-1}changeContext(t){this.stop(),this._context=t}}class Mi{get useResizeObserver(){return this._useResizeObserver}get enabled(){return this._enabled}constructor(t,e){this._skipFirstResize=(()=>{let t=!0;return()=>{t?t=!1:this._onResize()}})(),this._useResizeObserver=t,this._enabled=!1,this._resizeObserver=null,this._onResize=e}enable(t){if(this._enabled&&this.disable(),this._useResizeObserver&&window.ResizeObserver){const e=t.getBoundingClientRect(),i=0!==e.width||0!==e.height,s=new ResizeObserver(i?this._skipFirstResize:this._onResize);s.observe(t),this._resizeObserver=s}else window.addEventListener(At,this._onResize);return this._enabled=!0,this}disable(){if(!this._enabled)return this;const t=this._resizeObserver;return t?(t.disconnect(),this._resizeObserver=null):window.removeEventListener(At,this._onResize),this._enabled=!1,this}}class Ai{get enabled(){return this._enabled}get enableBlocked(){return this._enableBlocked}get playing(){return this._enabled&&!this._interrupted}get delay(){return this._delay}set delay(t){this._delay=t}get delayOnMouseLeave(){return this._delayOnMouseLeave}set delayOnMouseLeave(t){this._delayOnMouseLeave=t}get speed(){return this._speed}set speed(t){this._speed=t}get pauseOnHover(){return this._pauseOnHover}set pauseOnHover(t){this._pauseOnHover=t}get canInterrupt(){return this._canInterrupt}set canInterrupt(t){this._canInterrupt=t}get disableOnInterrupt(){return this._disableOnInterrupt}set disableOnInterrupt(t){this._disableOnInterrupt=t}constructor(t,e,i){this._onInputStart=()=>{this._canInterrupt&&(this._interrupted=!0,this._clearTimeout())},this._onInputEnd=()=>{this._setUninterruptedAfterDelay(this._delay)},this._onGyroEnable=()=>{this.disable()},this._onMouseEnter=()=>{this._pauseOnHover&&(this._interrupted=!0,this._hovering=!0)},this._onMouseLeave=()=>{this._pauseOnHover&&(this._hovering=!1,this._setUninterruptedAfterDelay(this._delayOnMouseLeave))},this._camera=t.camera,this._control=t.control,this._element=e,this._enabled=!1,this._interrupted=!1,this._interruptionTimer=-1,this._hovering=!1;const{delay:s=2e3,delayOnMouseLeave:n=0,speed:o=1,pauseOnHover:r=!1,canInterrupt:a=!0,disableOnInterrupt:h=!1}=ni(i);this._enableBlocked=!i,this._delay=s,this._delayOnMouseLeave=n,this._speed=o,this._pauseOnHover=r,this._canInterrupt=a,this._disableOnInterrupt=h}destroy(){this.disable()}update(t){if(!this._enabled)return;if(this._interrupted)return void(this._disableOnInterrupt&&this.disable());const e=this._camera,i=-this._speed*t/100;e.yaw=ii(e.yaw+i,0,360)}enable(){const t=this._control,e=this._element;this._enabled||t.gyro.enabled||(t.rotate.on(Se,this._onInputStart),t.rotate.on(Ne,this._onInputEnd),t.zoom.on(Se,this._onInputStart),t.zoom.on(Ne,this._onInputEnd),t.gyro.on(De,this._onGyroEnable),e.addEventListener(Pt,this._onMouseEnter,!1),e.addEventListener(Nt,this._onMouseLeave,!1),this._enabled=!0,this._enableBlocked=!1)}enableAfterDelay(){this.enable(),this._interrupted=!0,this._setUninterruptedAfterDelay(this._delay)}disable(){if(!this._enabled)return;const t=this._control,e=this._element;t.rotate.off(Se,this._onInputStart),t.rotate.off(Ne,this._onInputEnd),t.zoom.off(Se,this._onInputStart),t.zoom.off(Ne,this._onInputEnd),t.gyro.off(De,this._onGyroEnable),e.removeEventListener(Pt,this._onMouseEnter,!1),e.removeEventListener(Nt,this._onMouseLeave,!1),this._enabled=!1,this._interrupted=!1,this._hovering=!1,this._clearTimeout()}_setUninterruptedAfterDelay(t){this._hovering||(this._clearTimeout(),t>0?this._interruptionTimer=window.setTimeout((()=>{this._interrupted=!1,this._interruptionTimer=-1}),t):(this._interrupted=!1,this._interruptionTimer=-1))}_clearTimeout(){this._interruptionTimer>=0&&(window.clearTimeout(this._interruptionTimer),this._interruptionTimer=-1)}}class Si extends f{constructor(t,e={}){super(),this.destroy=()=>{this.exit(),this.off()},this._onSessionEnd=()=>{this.exit(),this.trigger(Le)},this._xrSession=null,this._xrRefSpace=null,this._ctx=t,this._options=e}isAvailable(){return bt(this,void 0,void 0,(function*(){const t=window.navigator.xr;return!!t&&t.isSessionSupported(Xe).then((t=>t)).catch((()=>!1))}))}enter(){return bt(this,void 0,void 0,(function*(){const t=this._ctx,e=window.navigator.xr;if(!e)return;yield wi.requestSensorPermission();const i=Object.assign({requiredFeatures:[Ke]},this._options);yield t.makeXRCompatible();const s=yield e.requestSession(Xe,i);t.bindXRLayer(s);const n=yield s.requestReferenceSpace(Ke);this._setSession(s,n),this.trigger(Re,{session:s})}))}exit(){const t=this._xrSession;t&&t.end().catch((()=>{})),this._xrSession=null,this._xrRefSpace=null}canRender(t){const e=this._xrRefSpace;return!!e&&!!t.getViewerPose(e)}getEyeParams(t){const e=t.session,i=t.getViewerPose(this._xrRefSpace);if(!i)return null;const s=e.renderState.baseLayer;return s?i.views.map((t=>({viewport:s.getViewport(t),vMatrix:t.transform.inverse.matrix,pMatrix:t.projectionMatrix}))):null}_setSession(t,e){this._xrSession=t,this._xrRefSpace=e,t.addEventListener(Qt,this._onSessionEnd)}}class Pi{constructor(t,e){this.element=t,this.position=e}}class Ni{constructor(t,e,{zoom:i=!1}){this._containerEl=Je(`.${pe}`,t),this._renderer=e,this._hotspots=[],this._zoom=i}refresh(){const t=this._containerEl;if(!t)return;const e=[].slice.apply(t.querySelectorAll(`.${me}`));this._hotspots=e.map((t=>this._parseHotspot(t)))}render(t){const e=this._hotspots,i=.5*this._renderer.width,s=.5*this._renderer.height,n=t.zoom,o="translate(-50%, -50%)",r=this._zoom?`scale(${n})`:"";e.forEach((e=>{const n=e.position,a=C();if(function(t,e){t[0]=e[0],t[1]=e[1],t[2]=e[2]}(a,n),A(a,a,t.viewMatrix),A(a,a,t.projectionMatrix),a[2]>1||a[2]<0)return void e.element.classList.remove(ge);const h=function(t,e){var i=new y(2);return i[0]=t,i[1]=e,i}(a[0]*i+i,-a[1]*s+s);e.element.classList.add(ge),e.element.style.transform=[o,`translate(${h[0]}px, ${h[1]}px)`,r].join(" ")}))}_parseHotspot(t){const e=t.dataset.yaw,i=t.dataset.pitch,s=t.dataset.position;if(e||i){const s=e?parseFloat(e):0,n=i?parseFloat(i):0,o=this._yawPitchToVec3(s,n);return new Pi(t,o)}if(s){const e=s.split(" ").map((t=>parseFloat(t)));if(e.length<3)throw new yt(Tt.INSUFFICIENT_ARGS(s,'hotspot attribute "data-position"'),wt.INSUFFICIENT_ARGS);return new Pi(t,L(e[0],e[1],e[2]))}{const e=L(0,0,-1);return new Pi(t,e)}}_yawPitchToVec3(t,e){const i=t*Fe,s=e*Fe,n=C();return n[1]=Math.sin(s),n[2]=Math.cos(s),n[0]=n[2]*Math.sin(-i),n[2]=-n[2]*Math.cos(-i),n}}class Di{get count(){return this.geometry.indicies.count}constructor(t,e,i){this.obj=t,this.geometry=e,this.buffers=i}}class ki{get canvas(){return this._canvas}get maxTextureSize(){return this._maxTextureSize}get isWebGL2(){return this._isWebGL2}get supportVAO(){return this._isWebGL2||!!this._extensions.vao}get lost(){return this._contextLost}get debug(){return this._debug}constructor(t,e){this._onContextLost=()=>{this._canvas.classList.add(de),this._contextLost=!0},this._onContextRestore=()=>{this._canvas.classList.remove(de),this._contextLost=!1},this._canvas=t,this._contextLost=!1,this._debug=e,this._extensions={vao:null,loseContext:null}}init(){const t=this._canvas,{gl:e,isWebGL2:i}=this._getContext(t);this._gl=e,this._maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),this._isWebGL2=i,this._isWebGL2||(this._extensions.vao=e.getExtension("OES_vertex_array_object")),this._extensions.loseContext=e.getExtension("WEBGL_lose_context"),t.addEventListener(Ut,this._onContextLost),t.addEventListener(zt,this._onContextRestore)}destroy(){const t=this._gl,e=this._canvas;t&&(t.bindBuffer(t.ARRAY_BUFFER,null),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),e.removeEventListener(Ut,this._onContextLost),e.removeEventListener(zt,this._onContextRestore)}forceLoseContext(){const t=this._extensions.loseContext;t&&t.loseContext()}forceRestoreContext(){const t=this._extensions.loseContext;t&&t.restoreContext()}clear(){const t=this._gl;t.clear(t.COLOR_BUFFER_BIT)}resize(){const t=this._gl;t.viewport(0,0,t.drawingBufferWidth,t.drawingBufferHeight)}viewport(t,e,i,s){this._gl.viewport(t,e,i,s)}createVAO(t,e){const i=this._createNativeVAO(),s=new Di(i,t,{indicies:this._createBuffer(),position:this._createBuffer(),uv:this._createBuffer()});return i&&(this._bindNativeVAO(i),this._supplyGeometryData(s,e),this._bindNativeVAO(null),this._unbindBuffers()),s}draw(t,e){const i=this._gl;t.obj?this._bindNativeVAO(t.obj):this._supplyGeometryData(t,e),i.drawElements(i.TRIANGLES,t.count,i.UNSIGNED_SHORT,0),t.obj?this._bindNativeVAO(null):this._unbindBuffers()}releaseVAO(t){t.obj&&this._deleteNativeVAO(t.obj),this._deleteBuffer(t.buffers.indicies),this._deleteBuffer(t.buffers.position),this._deleteBuffer(t.buffers.uv)}getUniformLocations(t,e){const i=this._gl,s=Object.keys(e).reduce(((e,s)=>(e[s]=i.getUniformLocation(t,s),e)),{});return Object.assign(Object.assign({},this._getCommonUniformLocations(t)),s)}updateCommonUniforms(t,e,i){const s=this._gl,n=i.uniformLocations,o=t.matrix,r=w();T(r,e.viewMatrix,o),s.uniformMatrix4fv(n.uMVMatrix,!1,r),s.uniformMatrix4fv(n.uPMatrix,!1,e.projectionMatrix)}updateVRUniforms(t,e,i,s){const n=this._gl,o=t.uniformLocations;n.uniformMatrix4fv(o.uMVMatrix,!1,e),n.uniformMatrix4fv(o.uPMatrix,!1,i),o.uEye&&n.uniform1f(o.uEye,s)}updateUniforms(t){const e=this._gl,i=t.uniforms,s=t.uniformLocations;for(const n in i){const t=i[n],o=s[n];t&&t.needsUpdate&&t.update(e,o,this._isWebGL2)}}releaseShaderResources(t){const e=this._gl,i=t.uniforms;for(const s in i){const t=i[s];t&&t.needsUpdate&&t.destroy(e)}e.deleteProgram(t.program)}useProgram(t){this._gl.useProgram(t.program)}createProgram(t,e){const i=this._gl,s=i.createProgram(),n=this._compileShader(i.VERTEX_SHADER,t),o=this._compileShader(i.FRAGMENT_SHADER,e);if(i.attachShader(s,n),i.attachShader(s,o),i.bindAttribLocation(s,0,"position"),i.bindAttribLocation(s,1,"uv"),i.linkProgram(s),this._debug&&!i.getProgramParameter(s,i.LINK_STATUS)){let t=null;throw i.getShaderParameter(n,i.COMPILE_STATUS)?i.getShaderParameter(o,i.COMPILE_STATUS)||(t=i.getShaderInfoLog(o)):t=i.getShaderInfoLog(n),new yt(Tt.FAILED_LINKING_PROGRAM(i.getProgramInfoLog(s),t),wt.FAILED_LINKING_PROGRAM)}return i.deleteShader(n),i.deleteShader(o),s}createWebGLTexture(t){const e=this._gl,i=e.createTexture();if(e.bindTexture(e.TEXTURE_2D,i),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,t.wrapS),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,t.wrapT),!t.isVideo()&&this._isWebGL2){const i=e;i.texStorage2D(i.TEXTURE_2D,1,i.RGBA8,t.width,t.height)}return i}createWebGLCubeTexture(t,e){const i=this._gl,s=i.createTexture();if(i.bindTexture(i.TEXTURE_CUBE_MAP,s),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_S,t.wrapS),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_T,t.wrapT),this._isWebGL2){const t=i;t.texStorage2D(t.TEXTURE_CUBE_MAP,1,t.RGBA8,e,e)}return s}makeXRCompatible(){return bt(this,void 0,void 0,(function*(){const t=this._gl,e=t.getContextAttributes();e&&!0!==e.xrCompatible&&(yield t.makeXRCompatible())}))}bindXRLayer(t){const e=this._gl,i=new XRWebGLLayer(t,e);t.updateRenderState({baseLayer:i})}bindXRFrame(t){const e=this._gl,i=t.session.renderState.baseLayer;e.bindFramebuffer(e.FRAMEBUFFER,i.framebuffer)}useDefaultFrameBuffer(){const t=this._gl;t.bindFramebuffer(t.FRAMEBUFFER,null)}_createBuffer(){return this._gl.createBuffer()}_deleteBuffer(t){return this._gl.deleteBuffer(t)}_createNativeVAO(){const t=this._gl;if(this._isWebGL2)return t.createVertexArray();{const t=this._extensions.vao;return(null==t?void 0:t.createVertexArrayOES())||null}}_bindNativeVAO(t){const e=this._gl;if(this._isWebGL2)e.bindVertexArray(t);else{const e=this._extensions.vao;null==e||e.bindVertexArrayOES(t)}}_deleteNativeVAO(t){const e=this._gl;if(this._isWebGL2)e.deleteVertexArray(t);else{const e=this._extensions.vao;null==e||e.deleteVertexArrayOES(t)}}_supplyGeometryData(t,e){const i=t.geometry;this._supplyIndiciesData(i.indicies,t.buffers.indicies),this._supplyAttributeData(i.vertices,e.program,"position",t.buffers.position),this._supplyAttributeData(i.uvs,e.program,"uv",t.buffers.uv)}_unbindBuffers(){const t=this._gl;t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),t.bindBuffer(t.ARRAY_BUFFER,null)}_supplyIndiciesData(t,e){const i=this._gl;i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,e),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.data,i.STATIC_DRAW)}_supplyAttributeData(t,e,i,s){const n=this._gl,o=n.getAttribLocation(e,i);o<0||(n.bindBuffer(n.ARRAY_BUFFER,s),n.bufferData(n.ARRAY_BUFFER,t.data,n.STATIC_DRAW),n.vertexAttribPointer(o,t.itemSize,n.FLOAT,!1,0,0),n.enableVertexAttribArray(o))}_compileShader(t,e){const i=this._gl,s=i.createShader(t);return i.shaderSource(s,e),i.compileShader(s),s}_getCommonUniformLocations(t){const e=this._gl;return{uMVMatrix:e.getUniformLocation(t,"uMVMatrix"),uPMatrix:e.getUniformLocation(t,"uPMatrix")}}_getContext(t){const e=["webgl2","webgl","experimental-webgl","webkit-3d","moz-webgl"];let i=null,s=!1;const n={preserveDrawingBuffer:!1,antialias:!1},o=t=>t.statusMessage;t.addEventListener(Ft,o);for(const a of e){try{i=t.getContext(a,n),s="webgl2"===a}catch(r){}if(i)break}if(t.removeEventListener(Ft,o),!i)throw new yt(Tt.WEBGL_NOT_SUPPORTED,wt.WEBGL_NOT_SUPPORTED);return{gl:i,isWebGL2:s}}}class Bi{get canvas(){return this._canvas}get width(){return this._elementSize.x}get height(){return this._elementSize.y}get pixelRatio(){return this._pixelRatio}get aspect(){return this._elementSize.x/this._elementSize.y}constructor(t,e){this._canvas=t,this._elementSize={x:0,y:0},this._pixelRatio=1,this.ctx=new ki(t,e)}destroy(){const t=this._canvas;this.ctx.destroy(),t.width=1,t.height=1}resize(){const t=this._canvas,e=this._elementSize,i=window.devicePixelRatio;e.x=t.clientWidth,e.y=t.clientHeight,t.width=e.x*i,t.height=e.y*i,this._pixelRatio=i,this.ctx.resize()}render(t,e){const i=this.ctx;i.lost||(i.clear(),i.useProgram(t.program),i.updateCommonUniforms(t,e,t.program),t.update({camera:e}),i.updateUniforms(t.program),i.draw(t.vao,t.program))}renderVR(t,e,i){const s=this.ctx,n=e.getEyeParams(i);n&&t&&(s.bindXRFrame(i),s.useProgram(t.program),s.updateUniforms(t.program),n.forEach(((e,i)=>{const n=e.viewport,o=T(w(),e.vMatrix,t.matrix);s.viewport(n.x,n.y,n.width,n.height),s.updateVRUniforms(t.program,o,e.pMatrix,i),s.draw(t.vao,t.program)})))}}class Fi extends f{get rootEl(){return this._rootEl}get renderer(){return this._renderer}get camera(){return this._camera}get control(){return this._control}get vr(){return this._vr}get hotspot(){return this._hotspot}get plugins(){return this._plugins}get projection(){return this._projection}set projection(t){this._initialized&&t?this.load(t):this._projection=t}get mesh(){return this._mesh}get initialized(){return this._initialized}get autoplay(){return this._autoplay}get autoInit(){return this._autoInit}get autoResize(){return this._autoResize}get canvasSelector(){return this._canvasSelector}get useResizeObserver(){return this._useResizeObserver}get tabIndex(){return this._tabIndex}set tabIndex(t){const e=this._renderer.canvas;this._tabIndex=t,null!=t?e.tabIndex=t:e.removeAttribute("tabindex")}get maxDeltaTime(){return this._animator.maxDeltaTime}set maxDeltaTime(t){this._animator.maxDeltaTime=t}get debug(){return this._debug}set debug(t){this._debug=t}get initialYaw(){return this._camera.initialYaw}set initialYaw(t){this._camera.initialYaw=t}get initialPitch(){return this._camera.initialPitch}set initialPitch(t){this._camera.initialPitch=t}get initialZoom(){return this._camera.initialZoom}set initialZoom(t){this._camera.initialZoom=t}get yawRange(){return this._camera.yawRange}set yawRange(t){this._camera.yawRange=t,this._projection&&this._projection.updateCamera(this._camera)}get pitchRange(){return this._camera.pitchRange}set pitchRange(t){this._camera.pitchRange=t,this._projection&&this._projection.updateCamera(this._camera)}get zoomRange(){return this._camera.zoomRange}set zoomRange(t){this._camera.zoomRange=t,this._projection&&this._projection.updateCamera(this._camera)}get fov(){return this._camera.fov}set fov(t){const e=this._camera,i=this._control;e.fov=t,e.updateMatrix(),i.sync()}get rotate(){return this._control.rotate}get zoom(){return this._control.zoom}get gyro(){return this._control.gyro}get useGrabCursor(){return this._control.useGrabCursor}set useGrabCursor(t){this._control.useGrabCursor=t}get disableContextMenu(){return this._control.disableContextMenu}set disableContextMenu(t){this._control.disableContextMenu=t}get scrollable(){return this._control.scrollable}set scrollable(t){this._control.scrollable=t}get wheelScrollable(){return this._control.wheelScrollable}set wheelScrollable(t){this._control.wheelScrollable=t}constructor(t,{projection:e=null,initialYaw:i=0,initialPitch:s=0,initialZoom:n=1,yawRange:o=null,pitchRange:r=null,zoomRange:a=null,fov:h=90,useGrabCursor:l=!0,disableContextMenu:c=!1,rotate:u=!0,zoom:d=!0,gyro:_=!1,scrollable:p=!0,wheelScrollable:m=!1,autoplay:g=!1,hotspot:v={},autoInit:f=!0,autoResize:E=!0,canvasSelector:b="canvas",useResizeObserver:y=!0,on:w={},plugins:T=[],maxDeltaTime:x=1/30,tabIndex:C=0,debug:R=!1}={}){super(),this.renderFrame=t=>{const e=this._camera,i=this._renderer,s=this._control,n=this._hotspot,o=this._autoplay,r=this._mesh;r&&(this._emit(we),o.playing&&(o.update(t),s.sync()),e.animation?e.animation.update(t):s.update(t),i.render(r,e),n.render(e),e.changed&&this._emit(xe,{yaw:e.yaw,pitch:e.pitch,zoom:e.zoom,quaternion:[e.quaternion[0],e.quaternion[1],e.quaternion[2],e.quaternion[3]]}),e.onFrameRender(),this._emit(Te))},this._renderFrameOnDemand=t=>{const e=this._camera,i=this._control,s=this._autoplay,n=this._mesh,o=null==n?void 0:n.getTexture();this._initialized&&o&&(e.animation||i.animating||s.playing||o.isVideo())&&this.renderFrame(t)},this._renderVRFrame=(t,e)=>{const i=this._vr,s=this._mesh,n=this._renderer;s&&(this._emit(we),n.renderVR(s,i,e),this._emit(Te))},this._rootEl=((t,e)=>{const i=Je(t,e);if(!i)throw $e(t)?new yt(Tt.ELEMENT_NOT_FOUND(t),wt.ELEMENT_NOT_FOUND):new yt(Tt.WRONG_TYPE(t,["HTMLElement","string"]),wt.WRONG_TYPE);return i})(t),this._plugins=T,this._initialized=!1,this._autoInit=f,this._autoResize=E,this._canvasSelector=b,this._useResizeObserver=y,this._tabIndex=C,this._debug=R;const L=((t,e)=>{const i=t.querySelector(e);if(!i)throw new yt(Tt.CANVAS_NOT_FOUND,wt.CANVAS_NOT_FOUND);return i})(this._rootEl,b);this._renderer=new Bi(L,R),this._camera=new di({initialYaw:i,initialPitch:s,initialZoom:n,fov:h,yawRange:o,pitchRange:r,zoomRange:a}),this._control=new Ti(L,this._camera,{useGrabCursor:l,scrollable:p,wheelScrollable:m,disableContextMenu:c,rotate:u,zoom:d,gyro:_}),this._animator=new Ii(x),this._autoplay=new Ai(this,L,g),this._projection=e,this._mesh=null,this._autoResizer=new Mi(y,(()=>this.resize())),this._vr=new Si(this._renderer.ctx),this._hotspot=new Ni(this._rootEl,this._renderer,v),this._addEventHandlers(w),e&&f&&this.init()}destroy(){this._camera.destroy(),this._animator.stop(),this._renderer.destroy(),this._control.destroy(),this._autoResizer.disable(),this._mesh&&(this._mesh.destroy(this._renderer.ctx),this._mesh=null),this._plugins.forEach((t=>t.destroy(this))),this._initialized=!1}init(){return bt(this,void 0,void 0,(function*(){if(!this._projection)throw new yt(Tt.PROVIDE_PROJECTION_FIRST,wt.PROVIDE_PROJECTION_FIRST);const t=this._renderer,e=this._camera,i=this._control,s=this._animator,n=this._hotspot,o=this._projection,r=t.canvas;this._bindComponentEvents(),t.ctx.init(),this._resizeComponents(),e.updateMatrix(),this._autoResize&&this._autoResizer.enable(r),this._autoplay.enableBlocked||this._autoplay.enable(),this._plugins.forEach((t=>{t.init(this)}));const a=yield this._loadTexture(o);this._applyProjection(o,a),n.refresh(),s.start(this._renderFrameOnDemand),yield i.enable(),null==this._tabIndex||r.hasAttribute("tabIndex")||(r.tabIndex=this._tabIndex),this._initialized=!0,this.renderFrame(0),this._emit(ve)}))}load(t){return bt(this,void 0,void 0,(function*(){if(!t)return!1;if(this._initialized){const e=yield this._loadTexture(t);this._applyProjection(t,e),this.renderFrame(0)}else this._projection=t,this.init();return!0}))}resize(){if(!this._initialized)return;this._resizeComponents(),this.renderFrame(0);const{width:t,height:e}=this._renderer;this._emit(ye,{width:t,height:e})}addPlugins(...t){this._initialized&&t.forEach((t=>{t.init(this)})),this._plugins.push(...t)}removePlugins(...t){t.forEach((t=>{const e=this._plugins.indexOf(t);e<0||(t.destroy(this),this._plugins.splice(e,1))}))}_emit(t,...e){const i=e?e[0]:{};this.trigger(t,Object.assign({type:t,target:this},i))}_applyProjection(t,e){const i=this._camera,s=this._control,n=this._renderer,o=this._mesh;o&&o.destroy(n.ctx);const r=t.createMesh(n.ctx,e);t.updateCamera(i),t.updateControl(s),this._mesh=r,this._emit(be,{projection:t})}_loadTexture(t){return bt(this,void 0,void 0,(function*(){const e=new Oi,{src:i,video:s}=t;this._emit(fe,{src:i,video:s});const n=yield e.load(i,s);return this._emit(Ee,{src:i,video:s}),n}))}_resizeComponents(){const t=this._renderer,e=this._camera,i=this._control;t.resize(),e.resize(t.width,t.height),i.resize(t.width,t.height)}_addEventHandlers(t){Object.keys(t).forEach((e=>{this.on(e,t[e])}))}_bindComponentEvents(){const t=this._rootEl,e=this._control,i=this._animator,s=this._renderer,n=this._vr;[Be,Se,Ne].forEach((t=>{e.rotate.on(t,(e=>{this._emit(t,e)})),e.zoom.on(t,(e=>{this._emit(t,e)}))})),n.on(Re,(e=>{t.classList.add(_e),i.changeContext(e.session),i.start(this._renderVRFrame),this._emit(Re)})),n.on(Le,(()=>{t.classList.remove(_e),s.ctx.useDefaultFrameBuffer(),i.changeContext(window),i.start(this._renderFrameOnDemand),this.resize(),this._emit(Le)}))}}Fi.VERSION="4.0.0-beta.7";class Ui extends f{constructor(){super(),this.matrix=w(),this.rotation=P(),this.position=L(0,0,0),this.scale=L(1,1,1)}updateMatrix(){!function(t,e,i,s){var n=e[0],o=e[1],r=e[2],a=e[3],h=n+n,l=o+o,c=r+r,u=n*h,d=n*l,_=n*c,p=o*l,m=o*c,g=r*c,v=a*h,f=a*l,E=a*c,b=s[0],y=s[1],w=s[2];t[0]=(1-(p+g))*b,t[1]=(d+E)*b,t[2]=(_-f)*b,t[3]=0,t[4]=(d-E)*y,t[5]=(1-(u+g))*y,t[6]=(m+v)*y,t[7]=0,t[8]=(_+f)*w,t[9]=(m-v)*w,t[10]=(1-(u+p))*w,t[11]=0,t[12]=i[0],t[13]=i[1],t[14]=i[2],t[15]=1}(this.matrix,this.rotation,this.position,this.scale)}update(t){this.trigger(Ae,t)}}class zi{constructor(t){this.position=t.position,this.order=t.order}}const Vi={CONTROLS_ROOT:"view360-controls",CONTROLS_BG:"view360-controls-background",CONTROLS_MAIN:"view360-controls-main",CONTROLS_TOP:"view360-controls-top",CONTROLS_BOTTOM:"view360-controls-bottom",CONTROLS_MID:"view360-controls-mid",CONTROLS_LEFT:"view360-controls-left",CONTROLS_RIGHT:"view360-controls-right",CONTROLS_FLOAT_LEFT:"view360-controls-float-left",CONTROLS_FLOAT_RIGHT:"view360-controls-float-right",CONTROLS_BUTTON:"view360-controls-button",PROGRESS_ROOT:"view360-controls-progress",VOLUME_ROOT:"view360-controls-volume",RANGE_ROOT:"view360-range",RANGE_TRACK:"view360-range-track",RANGE_THUMB:"view360-range-thumb",RANGE_FILLER:"view360-range-filler",PLAY_BUTTON:"view360-controls-play",PAUSE_BUTTON:"view360-controls-pause",UNMUTED_BUTTON:"view360-controls-unmuted",MUTED_BUTTON:"view360-controls-muted",FULLSCREEN_BUTTON:"view360-controls-fullscreen",FULLSCREEN_EXIT_BUTTON:"view360-controls-fullscreen-exit",VR_BUTTON:"view360-controls-vr",GYRO_ENABLED:"view360-controls-gyro-enabled",GYRO_DISABLED:"view360-controls-gyro-disabled",VIDEO_TIME_DISPLAY:"view360-controls-time",PIEVIEW_ROOT:"view360-controls-pie",FIXED:"view360-controls-fixed",UNAVAILABLE:"view360-controls-unavailable",HIDDEN:"view360-controls-hidden"},Hi={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",MAIN_TOP:"main-top",MAIN_BOTTOM:"main-bottom",MAIN_LEFT:"main-left",MAIN_RIGHT:"main-right"};class Gi extends f{constructor(){super(),this._onHold=({srcEvent:t,isTouch:e})=>{var i;const s=this._bbox;if(!s)return;const n=e?t.touches[0].pageX:t.pageX,o=s.x+(null!==(i=window.scrollX)&&void 0!==i?i:window.pageXOffset),r=ti(n,o,o+s.width),a=(r-o)/s.width;this._motion.reset(r),this.thumbEl.classList.add(this._fixedClass),this.trigger(Se,a)},this._onChange=({delta:t})=>{var e;const i=this._motion,s=this._bbox;if(!s)return;i.setNewEndByDelta(t.x),i.update(1);const n=s.x+(null!==(e=window.scrollX)&&void 0!==e?e:window.pageXOffset),o=(ti(i.val,n,n+s.width)-n)/s.width;this.trigger(Pe,o)},this._onRelease=()=>{this._bbox&&(this.thumbEl.classList.remove(this._fixedClass),this.trigger(Ne))};const t=document.createElement(Jt),e=document.createElement(Jt),i=document.createElement(Jt),s=document.createElement(Jt);t.draggable=!1,e.appendChild(s),e.appendChild(i),t.appendChild(e),this.rootEl=t,this.trackEl=e,this.thumbEl=i,this.fillerEl=s,this._mouseInput=new _i,this._touchInput=new pi,this._motion=new ci({duration:1,range:He,easing:t=>t}),this._bbox={x:0,y:0,width:0,height:0,left:0,right:0,bottom:0,top:0},this._fixedClass=Vi.FIXED}init(t){const e=this._mouseInput,i=this._touchInput;this.rootEl.classList.add(t.RANGE_ROOT),this.trackEl.classList.add(t.RANGE_TRACK),this.thumbEl.classList.add(t.RANGE_THUMB),this.fillerEl.classList.add(t.RANGE_FILLER),this._fixedClass=t.FIXED,e.on(Se,this._onHold),i.on(Se,this._onHold),e.on(Ne,this._onRelease),i.on(Ne,this._onRelease),e.on(Pe,this._onChange),i.on(Pe,this._onChange),e.enable(this.rootEl),i.enable(this.rootEl),this.resize()}destroy(){const t=this._mouseInput,e=this._touchInput;this.rootEl.className="",this.trackEl.className="",this.thumbEl.className="",this.fillerEl.className="",t.off(),e.off(),t.disable(),e.disable()}resize(){this._bbox=this.trackEl.getBoundingClientRect()}updateStyle(t){const e=this._bbox.width,i=ti(t,0,1);this.fillerEl.style.width=100*i+"%",this.thumbEl.style.transform=`translateX(${i*e}px)`}}class ji extends zi{get element(){return this._rangeControl.rootEl}constructor({position:t=Hi.MAIN_TOP,order:e=9999}={}){super({position:t,order:e}),this._onResize=()=>{this._rangeControl.resize()},this._onTimeUpdate=()=>{const t=this._video;t&&(this._currentTime=t.source.currentTime,this._rangeControl.updateStyle(this._currentTime/this._duration))},this._onDurationChange=()=>{const t=this._video;t&&(this._duration=t.source.duration,this._rangeControl.updateStyle(this._currentTime/this._duration))},this._onHold=t=>{const e=this._video,i=this._controlBar;if(!e||!i)return;const s=e.isPaused();e.source.pause();const n=e.source.duration*t;e.source.currentTime=n,e.source.dispatchEvent(new CustomEvent(qe,{detail:{time:n}})),i.rootEl.classList.add(i.className.FIXED),this._wasPaused=!this._playPromise&&s},this._onControl=t=>{const e=this._video;if(!e)return;const i=e.source.duration*t;e.source.currentTime=i,e.source.dispatchEvent(new CustomEvent(qe,{detail:{time:i}}))},this._onRelease=()=>{const t=this._video,e=this._controlBar;t&&e&&(this._wasPaused||this._playPromise||(this._playPromise=t.source.play().catch((()=>{})),this._playPromise.then((()=>{this._playPromise=null})),e.rootEl.classList.remove(e.className.FIXED))),this._wasPaused=!1},this.position=t,this.order=e,this._controlBar=null,this._rangeControl=new Gi,this._video=null,this._wasPaused=!1,this._currentTime=0,this._duration=0,this._playPromise=null}init(t,e){var i;const s=null===(i=t.mesh)||void 0===i?void 0:i.getTexture(),n=this.element,o=this._rangeControl,r=e.className.UNAVAILABLE;s&&s.isVideo()?(n.classList.remove(r),n.classList.add(e.className.PROGRESS_ROOT),t.on(ye,this._onResize),s.source.addEventListener(Xt,this._onTimeUpdate),s.source.addEventListener(Kt,this._onDurationChange),s.source.addEventListener(qe,this._onTimeUpdate),o.init(e.className),o.on(Se,this._onHold),o.on(Pe,this._onControl),o.on(Ne,this._onRelease),this._video=s,this._currentTime=s.source.currentTime,this._duration=s.source.duration,this._controlBar=e,o.updateStyle(this._currentTime/this._duration)):n.classList.add(r)}destroy(t){const e=this._video;t.off(ye,this._onResize),e&&(e.source.removeEventListener(Xt,this._onTimeUpdate),e.source.removeEventListener(Kt,this._onDurationChange),e.source.removeEventListener(qe,this._onTimeUpdate)),this._rangeControl.destroy(),this._video=null,this._playPromise=null}}class Yi extends zi{constructor({position:t=Hi.MAIN_LEFT,order:e=9999}={}){super({position:t,order:e}),this._onClick=()=>{const t=this._video;t&&(this._paused?t.source.play():t.source.pause())},this._onPlay=()=>{if(!this._controlBar)return;const t=this.element,e=this._controlBar.className;t.classList.add(e.PAUSE_BUTTON),t.classList.remove(e.PLAY_BUTTON),t.title="Pause Video",this._paused=!1},this._onPause=()=>{if(!this._controlBar)return;const t=this.element,e=this._controlBar.className;t.classList.add(e.PLAY_BUTTON),t.classList.remove(e.PAUSE_BUTTON),t.title="Play Video",this._paused=!0},this.element=document.createElement(te),this._video=null,this._paused=!0,this._controlBar=null}init(t,e){var i;const s=this.element,n=null===(i=t.mesh)||void 0===i?void 0:i.getTexture(),o=e.className,r=o.UNAVAILABLE;if(!n||!n.isVideo())return void s.classList.add(r);s.classList.add(o.CONTROLS_BUTTON),s.classList.remove(r);const a=n.isPaused();this._video=n,this._paused=a,this._controlBar=e,a?this._onPause():this._onPlay(),s.addEventListener(Bt,this._onClick),n.source.addEventListener(jt,this._onPlay),n.source.addEventListener(Yt,this._onPause)}destroy(){const t=this._video,e=this.element;t&&(e.className="",e.removeEventListener(Bt,this._onClick),t.source.removeEventListener(jt,this._onPlay),t.source.removeEventListener(Yt,this._onPause),this._video=null,this._paused=!0,this._controlBar=null)}}class qi extends zi{get element(){return this._rootEl}constructor({position:t=Hi.MAIN_RIGHT,order:e=9999}={}){super({position:t,order:e}),this._onResize=()=>{this._rangeControl.resize(),this._updateDisplay()},this._onClick=()=>{const t=this._video;t&&!this._rootEl.disabled&&(t.source.muted=!t.source.muted)},this._onVolumeChange=()=>{const t=this._buttonEl,e=this._video,i=this._controlBar;if(!e||!i)return;const s=i.className;e.source.muted||0===e.source.volume?(t.classList.add(s.MUTED_BUTTON),t.classList.remove(s.UNMUTED_BUTTON)):(t.classList.add(s.UNMUTED_BUTTON),t.classList.remove(s.MUTED_BUTTON)),this._updateDisplay()},this._onHold=t=>{const e=this._video,i=this._controlBar;if(!e||!i)return;const s=i.className;e.source.volume=t,this._rootEl.classList.add(s.FIXED),i.containerEl.classList.add(s.FIXED),this._updateDisplay()},this._onChange=t=>{const e=this._video;e&&(e.source.volume=t,e.source.muted=!(t>0),this._updateDisplay())},this._onRelease=()=>{const t=this._controlBar;if(!t)return;const e=t.className;this._rootEl.classList.remove(e.FIXED),t.containerEl.classList.remove(e.FIXED)},this._updateDisplay=()=>{const t=this._video,e=this._rootEl;if(!t)return;if(!t.hasAudio())return void(e.disabled=!0);e.disabled=!1;const i=t.source.muted?0:t.source.volume;this._rangeControl.updateStyle(i)},this._controlBar=null,this._rangeControl=new Gi,this._createElements(),this._video=null}init(t,e){var i;const s=null===(i=t.mesh)||void 0===i?void 0:i.getTexture(),n=this._rootEl,o=this._buttonEl,r=this._rangeControl,a=e.className,h=a.UNAVAILABLE;s&&s.isVideo()?(n.classList.remove(h),n.classList.add(a.CONTROLS_BUTTON),n.classList.add(a.VOLUME_ROOT),o.classList.add(a.CONTROLS_BUTTON),s.source.muted?o.classList.add(a.MUTED_BUTTON):o.classList.add(a.UNMUTED_BUTTON),t.on(ye,this._onResize),n.addEventListener($t,this._onResize),o.addEventListener(Bt,this._onClick),s.source.addEventListener(Wt,this._onVolumeChange),s.source.addEventListener(qt,this._updateDisplay),s.source.addEventListener(Zt,this._updateDisplay),r.init(a),r.on(Se,this._onHold),r.on(Pe,this._onChange),r.on(Ne,this._onRelease),this._controlBar=e,this._video=s,this._updateDisplay()):n.classList.add(h)}destroy(t){const e=this._video,i=this._buttonEl,s=this._rootEl;s.className="",i.className="",t.off(ye,this._onResize),s.removeEventListener($t,this._onResize),i.removeEventListener(Bt,this._onClick),e&&(e.source.removeEventListener(Wt,this._onVolumeChange),e.source.removeEventListener(qt,this._updateDisplay),e.source.removeEventListener(Zt,this._updateDisplay)),this._controlBar=null,this._rangeControl.destroy(),this._video=null}_createElements(){const t=document.createElement(te),e=document.createElement(Jt);t.appendChild(this._rangeControl.rootEl),t.appendChild(e),t.title="Toggle Mute",this._rootEl=t,this._buttonEl=e}}class Wi extends zi{constructor({position:t=Hi.MAIN_RIGHT,order:e=9999}={}){super({position:t,order:e}),this._onClick=()=>{const t=this._targetEl;t&&(ri()?this._exitFullscreen():this._requestFullscreen(t))},this._onFullscreenChange=()=>{const t=this.element,e=this._controlBar;if(!e)return;const i=e.className;ri()?(t.classList.add(i.FULLSCREEN_EXIT_BUTTON),t.classList.remove(i.FULLSCREEN_BUTTON)):(t.classList.add(i.FULLSCREEN_BUTTON),t.classList.remove(i.FULLSCREEN_EXIT_BUTTON))},this.element=document.createElement(te),this.element.title="Toggle Fullscreen",this._controlBar=null,this._targetEl=null}init(t,e){const i=this.element,s=e.className;this._fullscreenAvailable()?(i.classList.add(s.CONTROLS_BUTTON),i.classList.remove(s.UNAVAILABLE),i.addEventListener(Bt,this._onClick),this._addFullscreenHandlers(),ri()?i.classList.add(s.FULLSCREEN_EXIT_BUTTON):i.classList.add(s.FULLSCREEN_BUTTON),this._controlBar=e,this._targetEl=t.rootEl):i.classList.add(s.UNAVAILABLE)}destroy(){const t=this.element;t.className="",t.removeEventListener(Bt,this._onClick),this._removeFullscreenHandlers(),this._controlBar=null,this._targetEl=null}_fullscreenAvailable(){return he.some((t=>!!document[t]))}_requestFullscreen(t){for(const e of he){const i=t[e];if(i)return void i.call(t)}}_exitFullscreen(){for(const t of ce){const e=document[t];if(e)return void e.call(document)}}_addFullscreenHandlers(){ue.forEach((t=>{document.addEventListener(t,this._onFullscreenChange)}))}_removeFullscreenHandlers(){ue.forEach((t=>{document.removeEventListener(t,this._onFullscreenChange)}))}}class Xi extends zi{constructor({position:t=Hi.MAIN_LEFT,order:e=9999}={}){super({position:t,order:e}),this._onTimeUpdate=()=>{const t=this._video;t&&(this._currentTime=t.source.currentTime,this._updateDisplay())},this._onDurationChange=()=>{const t=this._video;t&&(this._duration=t.source.duration,this._updateDisplay())},this._onCustomTimeChange=t=>{this._currentTime=t.detail.time,this._updateDisplay()},this.element=document.createElement(Jt),this._video=null,this._currentTime=0,this._duration=0}init(t,e){var i;const s=null===(i=t.mesh)||void 0===i?void 0:i.getTexture(),n=this.element,o=e.className;s&&s.isVideo()?(n.classList.add(o.VIDEO_TIME_DISPLAY),n.classList.remove(o.UNAVAILABLE),s.source.addEventListener(Xt,this._onTimeUpdate),s.source.addEventListener(Kt,this._onDurationChange),s.source.addEventListener(qe,this._onCustomTimeChange),this._video=s,this._currentTime=s.source.currentTime,this._duration=s.source.duration,this._updateDisplay()):n.classList.add(o.UNAVAILABLE)}destroy(){const t=this._video;t&&(this.element.className="",t.source.removeEventListener(Xt,this._onTimeUpdate),t.source.removeEventListener(Kt,this._onDurationChange),t.source.removeEventListener(qe,this._onCustomTimeChange),this._video=null)}_updateDisplay(){const t=this._currentTime,e=Math.floor(t/60),i=Math.floor(t-60*e),s=i<10?`0${i}`:i,n=this._duration,o=Math.floor(n/60),r=Math.floor(n-60*o),a=r<10?`0${r}`:r;this.element.innerText=`${e}:${s} / ${o}:${a}`}}class Ki extends zi{constructor({resetCamera:t=!0,position:e=Hi.TOP_RIGHT,order:i=9999}={}){super({position:e,order:i}),this._onClick=()=>{const t=this._viewer,e=this.resetCamera;if(!t||!e)return;const{yaw:i=t.initialYaw,pitch:s=t.initialPitch,zoom:n=t.initialZoom,duration:o=500}=ni(e);t.camera.animateTo({yaw:i,pitch:s,zoom:n,duration:o})},this._updatePie=({target:t})=>{const e=this._piePathEl,i=this._rangeCircleEl,s=t.camera,n=s.getHorizontalFov(),o=s.getYawRange(s.zoom),r=.5*n,a=24*Math.PI,h=a*n/360,l=a*(s.yaw+r+90)/360;if(e.setAttribute("stroke-dasharray",`${h} ${a-h}`),e.setAttribute("stroke-dashoffset",`${l}`),isFinite(o.min)&&isFinite(o.max)){const t=45*Math.PI,e=(ii(o.min,-180,180)-r)/360,s=(ii(o.max,-180,180)+r)/360,n=t*Math.abs(s-e),a=-t*(e-.25);i.setAttribute("stroke-dasharray",`${n} ${t-n}`),i.setAttribute("stroke-dashoffset",`${a}`)}else i.setAttribute("stroke-dasharray",""),i.setAttribute("stroke-dashoffset","")},this.element=document.createElement(Jt),this.element.title="Reset view",this.resetCamera=t,this._createPieElements(),this._viewer=null}init(t,e){const i=this.element;t.initialized?this._updatePie({target:t}):t.once(ve,this._updatePie);const s=e.className.PIEVIEW_ROOT;i.classList.add(s),this.resetCamera&&i.addEventListener(Bt,this._onClick),t.on(xe,this._updatePie),this._viewer=t}destroy(t){const e=this.element;e.removeEventListener(Bt,this._onClick),e.className="",t.off(ve,this._updatePie),t.off(xe,this._updatePie),this._viewer=null}_createPieElements(){const t=this.element,e=document.createElementNS(We,"svg");e.setAttribute("viewBox","0 0 48 48"),e.setAttribute("width","100%"),e.setAttribute("height","100%");const i=document.createElementNS(We,"circle");i.setAttribute("stroke","currentColor"),i.setAttribute("fill","transparent"),i.setAttribute("cx","24"),i.setAttribute("cy","24"),i.setAttribute("r","12"),i.setAttribute("stroke-width","24"),e.appendChild(i);const s=document.createElementNS(We,"circle");s.setAttribute("stroke","currentColor"),s.setAttribute("fill","transparent"),s.setAttribute("cx","24"),s.setAttribute("cy","24"),s.setAttribute("r","22.5"),s.setAttribute("stroke-width","3"),e.appendChild(s),t.appendChild(e),this._piePathEl=i,this._rangeCircleEl=s}}class Zi extends zi{constructor({position:t=Hi.MAIN_RIGHT,order:e=9999}={}){super({position:t,order:e}),this._onClick=()=>{const t=this._viewer;t&&t.vr.enter()},this.element=document.createElement(te),this.element.title="Enter VR",this._viewer=null}init(t,e){const i=this.element,s=e.className;i.classList.add(s.UNAVAILABLE),i.classList.add(s.VR_BUTTON),i.classList.add(s.CONTROLS_BUTTON),t.vr.isAvailable().then((t=>{t&&i.classList.remove(s.UNAVAILABLE)})),i.addEventListener(Bt,this._onClick),this._viewer=t}destroy(){const t=this.element;t.className="",t.removeEventListener(Bt,this._onClick),this._viewer=null}}class $i extends zi{constructor({position:t=Hi.MAIN_RIGHT,order:e=9999}={}){super({position:t,order:e}),this._onClick=()=>{const t=this._viewer,e=this._controlBar;if(!t||!e)return;const i=t.control.gyro;i.enabled?i.disable():wi.requestSensorPermission().then((t=>{t?i.enable():this.element.classList.add(e.className.UNAVAILABLE)}))},this._updateStyle=()=>{const t=this.element,e=this._viewer,i=this._controlBar;if(!e||!i)return;const s=e.control.gyro,n=i.className;s.enabled?(t.classList.add(n.GYRO_ENABLED),t.classList.remove(n.GYRO_DISABLED)):(t.classList.add(n.GYRO_DISABLED),t.classList.remove(n.GYRO_ENABLED))},this.element=document.createElement(Jt),this.element.title="Toggle gyroscope control"}init(t,e){const i=this.element,s=e.className;i.addEventListener(Bt,this._onClick),i.classList.add(s.CONTROLS_BUTTON),i.classList.add(s.UNAVAILABLE);const n=()=>{i.classList.remove(s.UNAVAILABLE),t.control.gyro.on(De,this._updateStyle),t.control.gyro.on(ke,this._updateStyle)};ai()?n():wi.isAvailable().then((t=>{t&&n()})),this._controlBar=e,this._viewer=t,this._updateStyle()}destroy(t){const e=this.element;t.control.gyro.off(De,this._updateStyle),t.control.gyro.off(ke,this._updateStyle),e.removeEventListener(Bt,this._onClick),e.className="",this._controlBar=null,this._viewer=null}}class Qi{get enabled(){return!!this._targetEl}get hidden(){return this._controlBar.containerEl.classList.contains(this._hiddenClass)}get _hiddenClass(){return this._controlBar.className.HIDDEN}get _fixedClass(){return this._controlBar.className.FIXED}constructor(t,{initialDelay:e=3e3,delay:i=0,idleDelay:s=3e3}){this._onMouseEnter=()=>{this._isCursorInside=!0,this.show()},this._onMouseLeave=()=>{this._isCursorInside=!1,this._hideAfterDelay()},this._onMouseMove=()=>{this._isFullscreen&&this.showTemporaliy()},this._onHold=t=>{this._isGrabbing=!0,"mouse"===t.pointerType&&(this._isCursorInside=!0),window.addEventListener(Rt,this._onRelease),this.show()},this._onRelease=()=>{this._isGrabbing=!1,window.removeEventListener(Rt,this._onRelease),this._hideAfterDelay()},this._onVideoPlay=()=>{this._targetEl&&this._controlBar.containerEl.classList.remove(this._fixedClass)},this._onVideoPause=()=>{this._targetEl&&this._controlBar.containerEl.classList.add(this._fixedClass)},this._onFullscreenChange=()=>{this._isFullscreen=ri(),this._isFullscreen&&this._hideAfterDelay()},this._controlBar=t,this._initialDelay=e,this._delay=i,this._idleDelay=s,this._timer=-1,this._isCursorInside=!1,this._isGrabbing=!1,this._isFullscreen=!1,this._video=null,this._targetEl=null}enable(t){var e;this._targetEl&&this.disable(t);const i=this._initialDelay,s=t.rootEl;this._targetEl=t.rootEl,this._timer=window.setTimeout((()=>{this.hide()}),i),s.addEventListener(xt,this._onHold),s.addEventListener(Pt,this._onMouseEnter),s.addEventListener(Ct,this._onMouseMove),s.addEventListener(Nt,this._onMouseLeave),this._addFullscreenHandlers();const n=null===(e=t.mesh)||void 0===e?void 0:e.getTexture();n&&n.isVideo()&&(n.isPaused()&&this._controlBar.containerEl.classList.add(this._fixedClass),n.source.addEventListener(jt,this._onVideoPlay),n.source.addEventListener(Yt,this._onVideoPause),this._video=n)}disable(t){if(!this._targetEl)return;const e=this._controlBar,i=t.rootEl,s=this._video;i.removeEventListener(xt,this._onHold),window.removeEventListener(Rt,this._onRelease),i.removeEventListener(Pt,this._onMouseEnter),i.removeEventListener(Ct,this._onMouseMove),i.removeEventListener(Nt,this._onMouseLeave),this._removeFullscreenHandlers(),window.clearTimeout(this._timer),e.containerEl.classList.remove(this._fixedClass),s&&(s.source.removeEventListener(jt,this._onVideoPlay),s.source.removeEventListener(Yt,this._onVideoPause)),this._isCursorInside=!1,this._isGrabbing=!1,this._video=null,this._targetEl=null}show(){this._clearHideTimer(),this._controlBar.containerEl.classList.remove(this._hiddenClass)}showTemporaliy(){this.show(),this._hideAfterDelay(this._idleDelay)}hide(){this._clearHideTimer(),this._controlBar.containerEl.classList.add(this._hiddenClass)}_clearHideTimer(){this._timer&&(window.clearTimeout(this._timer),this._timer=-1)}_hideAfterDelay(t=this._delay){this._isGrabbing||!this._isFullscreen&&this._isCursorInside||(this._clearHideTimer(),t<=0?this.hide():this._timer=window.setTimeout((()=>{this.hide()}),t))}_addFullscreenHandlers(){ue.forEach((t=>{document.addEventListener(t,this._onFullscreenChange)}))}_removeFullscreenHandlers(){ue.forEach((t=>{document.removeEventListener(t,this._onFullscreenChange)}))}}class Ji{constructor(){this._onKeyDown=t=>{const e=this._video;if(!e)return;t.preventDefault(),t.stopPropagation();const i=e.source,s=null!=t.keyCode?re[t.keyCode]:ae[t.key];switch(s){case"LEFT":case"RIGHT":return this._changeVideoTime(i,"RIGHT"===s);case"UP":case"DOWN":return this._changeVideoVolume(i,"UP"===s)}(32===t.keyCode||" "===t.key)&&this._toggleVideo(e)}}enable(t,e){this._video=e,t.addEventListener(Dt,this._onKeyDown,!0)}disable(t){this._video=null,t.removeEventListener(Dt,this._onKeyDown,!0)}_changeVideoTime(t,e){const i=e?5:-5;t.currentTime+=i,t.dispatchEvent(new CustomEvent(qe,{detail:{time:t.currentTime}}))}_changeVideoVolume(t,e){const i=e?.1:-.1;t.muted?t.volume=ti(i,0,1):t.volume=ti(t.volume+i,0,1),t.volume>0?t.muted=!1:t.muted=!0}_toggleVideo(t){t.isPaused()?t.source.play():t.source.pause()}}class ts{get rootEl(){return this._rootEl}get containerEl(){return this._containerEl}get backgroundEl(){return this._bgEl}get items(){return this._items}get customItems(){return this._customItems}constructor({autoHide:t,showBackground:e,clickToPlay:i=!0,keyboardControls:s=!0,progressBar:n=!0,playButton:o=!0,volumeButton:r=!0,fullscreenButton:a=!0,videoTime:h=!0,pieView:l=!0,vrButton:c=!0,gyroButton:u=!0,className:d={},customItems:_=[]}={}){var p;this._onStaticClick=({target:t,isTouch:e})=>{var i;const s=this._autoHider;if(e){if(!s.enabled)return;s.hidden?s.showTemporaliy():s.hide()}else{if(!this.clickToPlay)return;const e=null===(i=t.mesh)||void 0===i?void 0:i.getTexture();if(!e||!e.isVideo())return;e.isPaused()?e.source.play():e.source.pause()}},this._onNewSrcLoad=({target:t})=>{const e=this._items;this._updateBackground(t),this._updateAutoHide(t),this._updateKeyboardHandler(t),Object.keys(e).forEach((i=>{e[i].forEach((e=>{e.destroy(t,this),e.init(t,this)}))}))},this.autoHide=t,this.showBackground=e,this.clickToPlay=i,this.keyboardControls=s,this.progressBar=n,this.playButton=o,this.volumeButton=r,this.fullscreenButton=a,this.videoTime=h,this.pieView=l,this.vrButton=c,this.gyroButton=u,this.className=Object.assign(Object.assign({},ts.DEFAULT_CLASS),d);const m=null!==(p=d.CONTROLS_ROOT)&&void 0!==p?p:ts.DEFAULT_CLASS.CONTROLS_ROOT;this._rootEl=Qe(m),this._createPositionWrappers(),this._items=Object.keys(ts.POSITION).reduce(((t,e)=>(t[ts.POSITION[e]]=[],t)),{}),this._customItems=_,this._autoHider=new Qi(this,ni(t)),this._videoControl=new Ji,_.forEach((t=>{this._items[t.position].push(t)}))}init(t){const e=t.rootEl,i=this._rootEl,s=this._createDefaultItems();this._updateBackground(t),this._updateAutoHide(t),this._updateKeyboardHandler(t),e.appendChild(i),this._addItem(t,s),this._addItem(t,this._customItems),t.on(be,this._onNewSrcLoad),t.on(Ce,this._onStaticClick)}destroy(t){const e=t.rootEl,i=this._rootEl,s=this._items;i.parentElement===e&&e.removeChild(i),Object.keys(s).forEach((e=>{s[e].forEach((e=>{e.destroy(t,this)})),s[e]=[]})),this._clearItemElements(),this._autoHider.disable(t),this._videoControl.disable(e),t.off(be,this._onNewSrcLoad),t.off(Ce,this._onStaticClick)}_addItem(t,e){for(const i of e){const e=this._items[i.position],s=this._wrapperEl[i.position],n=si(e,(t=>t.order>i.order));if(n>=0){const t=e[n].element;e.splice(n,0,i),s.insertBefore(i.element,t)}else e.push(i),s.appendChild(i.element);i.init(t,this)}}_createPositionWrappers(){const t=Object.assign(Object.assign({},ts.DEFAULT_CLASS),this.className),e=this._rootEl,i=Qe(t.CONTROLS_BG),s=Qe(t.CONTROLS_FLOAT_LEFT),n=Qe(t.CONTROLS_FLOAT_RIGHT);e.appendChild(s),e.appendChild(n);const o=Qe(t.CONTROLS_MAIN),r=Qe(t.CONTROLS_TOP),a=Qe(t.CONTROLS_BOTTOM),h=Qe(t.CONTROLS_MID),l=Qe(t.CONTROLS_LEFT),c=Qe(t.CONTROLS_RIGHT);h.appendChild(l),h.appendChild(c),o.appendChild(i),o.appendChild(r),o.appendChild(h),o.appendChild(a),e.appendChild(o),this._bgEl=i,this._containerEl=o,this._wrapperEl={[ts.POSITION.MAIN_TOP]:r,[ts.POSITION.MAIN_LEFT]:l,[ts.POSITION.MAIN_RIGHT]:c,[ts.POSITION.MAIN_BOTTOM]:a,[ts.POSITION.TOP_LEFT]:s,[ts.POSITION.TOP_RIGHT]:n}}_clearItemElements(){Object.keys(ts.POSITION).map((t=>ts.POSITION[t])).map((t=>this._wrapperEl[t])).forEach((t=>{for(;t.firstChild;)t.removeChild(t.firstChild)}))}_updateAutoHide(t){var e;const i=this.autoHide,s=this._autoHider;if(null!=i)i?s.enable(t):s.disable(t);else{const i=null===(e=t.mesh)||void 0===e?void 0:e.getTexture();i&&i.isVideo()?s.enable(t):s.disable(t)}}_updateBackground(t){var e,i;const s=this._bgEl,n=this.showBackground,o=null!==(e=this.className.HIDDEN)&&void 0!==e?e:ts.DEFAULT_CLASS.HIDDEN;if(null!=n)n?s.classList.remove(o):s.classList.add(o);else{const e=null===(i=t.mesh)||void 0===i?void 0:i.getTexture();e&&e.isVideo()?s.classList.remove(o):s.classList.add(o)}}_updateKeyboardHandler(t){var e;const i=t.rootEl,s=this._videoControl,n=null===(e=t.mesh)||void 0===e?void 0:e.getTexture();this.keyboardControls&&n&&n.isVideo()?s.enable(i,n):s.disable(i)}_createDefaultItems(){const t=[];return this.progressBar&&t.push(new ji(ni(this.progressBar))),this.playButton&&t.push(new Yi(ni(this.playButton))),this.volumeButton&&t.push(new qi(ni(this.volumeButton))),this.gyroButton&&t.push(new $i(ni(this.gyroButton))),this.vrButton&&t.push(new Zi(ni(this.vrButton))),this.fullscreenButton&&t.push(new Wi(ni(this.fullscreenButton))),this.videoTime&&t.push(new Xi(ni(this.videoTime))),this.pieView&&t.push(new Ki(ni(this.pieView))),t}}ts.DEFAULT_CLASS=Vi,ts.POSITION=Hi;class es{constructor({src:t,video:e=!1}){this.src=t,this.video=e}updateCamera(t){t.resetRange()}updateControl(t){t.ignoreZoomScale=!1}}class is{constructor(){this.needsUpdate=!0}destroy(t){}}class ss extends Ui{constructor(t,e){super(),this.vao=t,this.program=e}destroy(t){t.releaseVAO(this.vao),t.releaseShaderResources(this.program)}getTexture(){return this.program.uniforms.uTexture.texture}}class ns{constructor(t,e,i,s){this.program=t.createProgram(e,i),this.uniforms=s,this.uniformLocations=t.getUniformLocations(this.program,s)}}class os{constructor(t,e){this.data=t,this.itemSize=e,this.count=t.length/e}}class rs{constructor(t,e,i){this.vertices=new os(new Float32Array(t),3),this.indicies=new os(new Uint16Array(e),1),this.uvs=new os(new Float32Array(i),2)}}class as extends is{constructor(t,e){super(),this.texture=e,this._webglTexture=t.createWebGLTexture(e)}destroy(t){this.texture.destroy(),t.deleteTexture(this._webglTexture)}update(t,e,i){const s=this.texture,n=s.isVideo();t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,s.flipY),t.uniform1i(e,0),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this._webglTexture),!n&&i?t.texSubImage2D(t.TEXTURE_2D,0,0,0,t.RGBA,t.UNSIGNED_BYTE,s.source):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,s.source),n||(this.needsUpdate=!1)}}var hs="#define GLSLIFY 1\nuniform sampler2D uTexture;varying highp vec2 vUV;void main(){gl_FragColor=texture2D(uTexture,vUV.st);}";class ls extends rs{constructor(){const t=60,e=-.5*Math.PI,i=[],s=[],n=[];let o,r;for(o=0;o<=60;o++){const a=(o/60-.5)*Math.PI,h=Math.sin(a),l=Math.cos(a);for(r=0;r<=t;r++){const a=2*(r/t-.5)*Math.PI+e,c=Math.sin(a),u=Math.cos(a)*l,d=h,_=c*l,p=r/t,m=o/60;if(i.push(p,m),s.push(u,d,_),r!==t&&60!==o){const e=61*o+r,i=e+t+1;n.push(e,e+1,i,i,e+1,i+1)}}}super(s,n,i)}}class cs extends es{constructor(t){super(t)}createMesh(t,e){const i={uTexture:new as(t,e)},s=new ls,n=new ns(t,"#define GLSLIFY 1\nattribute vec3 position;attribute vec2 uv;uniform mat4 uMVMatrix;uniform mat4 uPMatrix;varying highp vec2 vUV;void main(){vUV=uv;gl_Position=uPMatrix*uMVMatrix*vec4(position,1.0);}",hs,i),o=t.createVAO(s,n);return new ss(o,n)}}class us extends is{constructor(t){super(),this.val=t}update(t,e){t.uniform1f(e,this.val),this.needsUpdate=!1}}class ds extends is{constructor(t){super(),this.val=t}update(t,e){t.uniform4fv(e,this.val.reduce(((t,e)=>[...t,...e]),[])),this.needsUpdate=!1}}class _s extends es{constructor(t){super(t),this._mode=t.mode}createMesh(t,e){let i,s;this._mode===_s.MODE.LEFT_RIGHT?(i=[.5,1,0,0],s=[.5,1,.5,0]):(i=[1,.5,0,0],s=[1,.5,0,.5]);const n={uTexture:new as(t,e),uEye:new us(0),uTexScaleOffset:new ds([i,s])},o=new ls,r=new ns(t,"#define GLSLIFY 1\nattribute vec3 position;attribute vec2 uv;uniform mat4 uMVMatrix;uniform mat4 uPMatrix;uniform vec4 uTexScaleOffset[2];uniform float uEye;varying highp vec2 vUV;void main(){vec4 scaleOffset=uTexScaleOffset[int(uEye)];vUV=uv.xy*scaleOffset.xy+scaleOffset.zw;gl_Position=uPMatrix*uMVMatrix*vec4(position,1.0);}",hs,n),a=t.createVAO(o,r);return new ss(a,r)}}_s.MODE={LEFT_RIGHT:"left_right",TOP_BOTTOM:"top_bottom"};var ps=u("<canvas class=view360-canvas>"),ms=u("<video id=view360-video playsinline crossorigin=anonymous style=display:none;>");t("default",(()=>{let t,e=i.objs.filter((t=>t.type===_.VIDEO));0===e.length&&(e=[i.obj]),s((()=>{const e=document.getElementById("view360-container"),i=document.getElementById("view360-video");e&&i&&(t=new Fi(e,{projection:new cs({src:i,video:{autoplay:n("video_autoplay")}}),plugins:[new ts({pieView:{order:0},gyroButton:{position:"top-right",order:1},vrButton:{position:"top-right",order:2}})]}))})),o((()=>t?.destroy()));const[u,p]=r(!1);return a(d,{onAutoNextChange:p,get children(){return a(h,{w:"$full",h:"60vh",id:"video360-player",get children(){return a(h,{w:"100%",h:"100%",id:"view360-container",className:"view360-container",get children(){return[ps(),(t=ms(),l((()=>c(t,"src",i.raw_url))),t)];var t}})}})}})}))}}}));
|