@flyfish-group/file-viewer-web 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/dist/index.d.ts +41 -2
- package/dist/index.js +5 -2
- package/package.json +1 -1
- package/viewer/_headers +7 -0
- package/viewer/assets/{3MFLoader-BvkYWcpH.js → 3MFLoader--yjh7udp.js} +1 -1
- package/viewer/assets/{AMFLoader-1v3YJhwU.js → AMFLoader-C0y7NIAO.js} +1 -1
- package/viewer/assets/ArchiveViewer-CZ4MDsrb.js +1 -0
- package/viewer/assets/AudioViewer-DjyDsudI.js +1 -0
- package/viewer/assets/CadViewer-BInkfPwZ.css +1 -0
- package/viewer/assets/CadViewer-BdTvIAMP.js +106 -0
- package/viewer/assets/CodeViewer-57pZ6W1s.js +2 -0
- package/viewer/assets/CodeViewer-CWJinXd-.css +1 -0
- package/viewer/assets/{ColladaLoader-BBfE2bw_.js → ColladaLoader-DTiuvWJL.js} +1 -1
- package/viewer/assets/DrawingViewer-NO4nzeA1.js +2 -0
- package/viewer/assets/EdaViewer-B296bd4C.js +8 -0
- package/viewer/assets/EmailViewer-CPSeSuYo.js +4 -0
- package/viewer/assets/EpubViewer-BCSRMeWe.js +2 -0
- package/viewer/assets/{FBXLoader-BI6tq8Dw.js → FBXLoader-Bj34Z_uf.js} +1 -1
- package/viewer/assets/{GLTFLoader-Dp4jm4wN.js → GLTFLoader-BNUIXeRP.js} +1 -1
- package/viewer/assets/ImageViewer-DnZM9hve.js +1 -0
- package/viewer/assets/{KMZLoader-BKHay62Q.js → KMZLoader-DTmXWzX_.js} +1 -1
- package/viewer/assets/{MarkdownViewer-BTZgVGwJ.js → MarkdownViewer-CmNTA_kD.js} +19 -19
- package/viewer/assets/{MarkdownViewer-eiSmDN4C.css → MarkdownViewer-DfpNPUlw.css} +1 -1
- package/viewer/assets/ModelViewer-D9x3ivqk.js +2 -0
- package/viewer/assets/{OBJLoader-Bjl2rCei.js → OBJLoader-DW4Mv-mq.js} +1 -1
- package/viewer/assets/OfdViewer-IhXBAdUl.js +2 -0
- package/viewer/assets/{PCDLoader-DXunJ4GV.js → PCDLoader-CHA1g8rk.js} +1 -1
- package/viewer/assets/{PLYLoader-B3OJWCbR.js → PLYLoader-DwTzA-Dg.js} +1 -1
- package/viewer/assets/PdfView-E1iujAnQ.js +558 -0
- package/viewer/assets/PdfView-fzvUeFZP.css +1 -0
- package/viewer/assets/PptxRender-Dad6hvcj.js +32 -0
- package/viewer/assets/{STLLoader-Op9AFGeI.js → STLLoader-Bt7FMgMu.js} +1 -1
- package/viewer/assets/{TDSLoader-C1_bDdal.js → TDSLoader-D__OhSS9.js} +1 -1
- package/viewer/assets/TypstViewer-DGGaqvFG.css +1 -0
- package/viewer/assets/TypstViewer-gzZvcE-4.js +60 -0
- package/viewer/assets/{USDLoader-BHMJbkNs.js → USDLoader-BovI5HgZ.js} +1 -1
- package/viewer/assets/UmdViewer-YzLD0vlj.js +3 -0
- package/viewer/assets/{VRMLLoader-x8hh4wKO.js → VRMLLoader-_VxVXPvX.js} +13 -13
- package/viewer/assets/{VTKLoader-C8oP0RB4.js → VTKLoader-BfnzBXsa.js} +1 -1
- package/viewer/assets/{XYZLoader-BYFk6Tzj.js → XYZLoader-DbQZs-aZ.js} +1 -1
- package/viewer/assets/XlsxTable-CZSQVOJ0.js +5 -0
- package/viewer/assets/__vite-browser-external-BZdVR8v7.js +1 -0
- package/viewer/assets/{ar-SA-G6X2FPQ2-xk-WWT3w.js → ar-SA-G6X2FPQ2-DIej4228.js} +1 -1
- package/viewer/assets/{arc-BPHhLzLE.js → arc-C_eH0vTw.js} +1 -1
- package/viewer/assets/architecture-7EHR7CIX-sRujR5WN.js +1 -0
- package/viewer/assets/architectureDiagram-3BPJPVTR-aQ-MRDKN.js +36 -0
- package/viewer/assets/archive-CRrvkqZk.js +2 -0
- package/viewer/assets/audio-DWT9z9tK.js +2 -0
- package/viewer/assets/{az-AZ-76LH7QW2-R9QiS28n.js → az-AZ-76LH7QW2-CS2qXUFa.js} +1 -1
- package/viewer/assets/{bg-BG-XCXSNQG7-DcJ2p4Qo.js → bg-BG-XCXSNQG7-9ujIdMwb.js} +1 -1
- package/viewer/assets/{blockDiagram-GPEHLZMM-B0b4Dtdi.js → blockDiagram-GPEHLZMM-DkVCZJHC.js} +1 -1
- package/viewer/assets/{bn-BD-2XOGV67Q-CETyJYwI.js → bn-BD-2XOGV67Q-Bz4MKzNd.js} +1 -1
- package/viewer/assets/{c4Diagram-AAUBKEIU-DwaRi9ek.js → c4Diagram-AAUBKEIU-BhUtgtBE.js} +1 -1
- package/viewer/assets/{ca-ES-6MX7JW3Y-BqhnZGeU.js → ca-ES-6MX7JW3Y-CQ0i-M2m.js} +1 -1
- package/viewer/assets/cad-B78pKw7N.js +2 -0
- package/viewer/assets/{cfb-D9osJ2bn.js → cfb-DgjGJYYS.js} +1 -1
- package/viewer/assets/channel-Dz5mnghj.js +1 -0
- package/viewer/assets/{chunk-2J33WTMH-DlBDlv1R.js → chunk-2J33WTMH-CruGLWY_.js} +1 -1
- package/viewer/assets/{chunk-3OPIFGDE-Ck4ELslx.js → chunk-3OPIFGDE-BBTvqaNI.js} +1 -1
- package/viewer/assets/{chunk-4BX2VUAB-BOSktpvM.js → chunk-4BX2VUAB-DnDF0gw2.js} +1 -1
- package/viewer/assets/chunk-55IACEB6-BXXbpqd4.js +1 -0
- package/viewer/assets/{chunk-5ZQYHXKU-DlEMgrTt.js → chunk-5ZQYHXKU-D-OgLpMs.js} +1 -1
- package/viewer/assets/{chunk-727SXJPM-C0iAJ7Cu.js → chunk-727SXJPM-DF6e3Zgf.js} +1 -1
- package/viewer/assets/chunk-AGHRB4JF-Fz9kp2Fp.js +1 -0
- package/viewer/assets/{chunk-AQP2D5EJ-BRJvm_dI.js → chunk-AQP2D5EJ-B3sX7UtP.js} +1 -1
- package/viewer/assets/{chunk-BSJP7CBP-2vUOgnIA.js → chunk-BSJP7CBP-BkJdmh17.js} +1 -1
- package/viewer/assets/{chunk-CSCIHK7Q-BYzrvQRZ.js → chunk-CSCIHK7Q-VDPd5eNJ.js} +2 -2
- package/viewer/assets/{chunk-EIO257PC-Bce8DpIq.js → chunk-EIO257PC-Dq8JiXSZ.js} +7 -7
- package/viewer/assets/{chunk-FMBD7UC4-BODFQR0j.js → chunk-FMBD7UC4-CKA5OKZ8.js} +1 -1
- package/viewer/assets/chunk-K2UTITRG-BEkZoneJ.js +35 -0
- package/viewer/assets/{chunk-KSCS5N6A-wYKDRFjc.js → chunk-KSCS5N6A-BuXf0YOu.js} +1 -1
- package/viewer/assets/{chunk-L5ZTLDWV-CQdI2mTB.js → chunk-L5ZTLDWV-CzNJ_8is.js} +1 -1
- package/viewer/assets/chunk-LZXEDZCA-n9zJSIw5.js +2 -0
- package/viewer/assets/{chunk-ND2GUHAM-LfMVcnRk.js → chunk-ND2GUHAM-zGgwlxna.js} +1 -1
- package/viewer/assets/chunk-NNHCCRGN-DlpIbxXb.js +159 -0
- package/viewer/assets/{chunk-NZK2D7GU-6U4u7z0c.js → chunk-NZK2D7GU-Cte2JwiA.js} +1 -1
- package/viewer/assets/{chunk-O5CBEL6O-BImcv37W.js → chunk-O5CBEL6O-Bu7jDUJy.js} +1 -1
- package/viewer/assets/chunk-QZHKN3VN-DmWvf513.js +1 -0
- package/viewer/assets/{chunk-SRAX5OIU-CBKhxrzT.js → chunk-SRAX5OIU-w1svEpmY.js} +1 -1
- package/viewer/assets/chunk-WU5MYG2G-h67ucwKy.js +1 -0
- package/viewer/assets/{chunk-XPW4576I-NsaRS98A.js → chunk-XPW4576I-SsWL9gHk.js} +1 -1
- package/viewer/assets/classDiagram-4FO5ZUOK-B-NZYxkE.js +1 -0
- package/viewer/assets/classDiagram-v2-Q7XG4LA2-B-NZYxkE.js +1 -0
- package/viewer/assets/compare-BA1y8ff-.css +1 -0
- package/viewer/assets/compare-CYFnIciQ.js +1 -0
- package/viewer/assets/{compiler-5cD-dlgE.js → compiler-Doo7uL6g.js} +1 -1
- package/viewer/assets/core-DHC7JJ3v.js +3 -0
- package/viewer/assets/cose-bilkent-S5V4N54A-BbY9gLB6.js +1 -0
- package/viewer/assets/cpp-V0F2hNk9.js +1 -0
- package/viewer/assets/{cs-CZ-2BRQDIVT-BGMNe1H_.js → cs-CZ-2BRQDIVT-CNJY03Br.js} +1 -1
- package/viewer/assets/{cytoscape.esm-BhgqxaGC.js → cytoscape.esm-C8YCVR3_.js} +2 -2
- package/viewer/assets/{da-DK-5WZEPLOC-Bh201dfY.js → da-DK-5WZEPLOC-kycNORr2.js} +1 -1
- package/viewer/assets/{dagre-BM42HDAG-B5YGgjz8.js → dagre-BM42HDAG-CtFkfSMu.js} +1 -1
- package/viewer/assets/{dagre-CBmA6wnT.js → dagre-Bx709z4p.js} +1 -1
- package/viewer/assets/{de-DE-XR44H4JA-C-u3piBT.js → de-DE-XR44H4JA-DgEFBHUE.js} +1 -1
- package/viewer/assets/{diagram-2AECGRRQ-BmQYluZm.js → diagram-2AECGRRQ-OITOieDL.js} +1 -1
- package/viewer/assets/{diagram-5GNKFQAL-CMfY5STH.js → diagram-5GNKFQAL-CkpmTcRT.js} +1 -1
- package/viewer/assets/{diagram-KO2AKTUF-DDu8xFk_.js → diagram-KO2AKTUF-Q-LQjcLw.js} +1 -1
- package/viewer/assets/{diagram-LMA3HP47-DV_OEza0.js → diagram-LMA3HP47-BlbmzDQ6.js} +1 -1
- package/viewer/assets/{diagram-OG6HWLK6-iqg-Bb_O.js → diagram-OG6HWLK6-CcX1M4RU.js} +1 -1
- package/viewer/assets/{directory-open-4ed118d0-D-tRUWVb.js → directory-open-4ed118d0-1i309Asm.js} +1 -1
- package/viewer/assets/{dist-BNvURj4h.js → dist-Bgk0P6Wx.js} +5 -5
- package/viewer/assets/dist-BzZSLV34.js +1 -0
- package/viewer/assets/{dist-CTxWUw4J.js → dist-idVqPIzq.js} +1 -1
- package/viewer/assets/docx-preview-CbKtHvXt.js +20 -0
- package/viewer/assets/drawing-Cg8yKw0a.js +2 -0
- package/viewer/assets/ebook-B0xdVki1.js +2 -0
- package/viewer/assets/eda-DB_j3--n.js +2 -0
- package/viewer/assets/{el-GR-BZB4AONW-BSN-5LwV.js → el-GR-BZB4AONW-DQbI2D0z.js} +1 -1
- package/viewer/assets/email-ZYgs8alH.js +2 -0
- package/viewer/assets/{en-B4ZKOASM-Bda1Tcbv.js → en-B4ZKOASM-gYELMyZ6.js} +1 -1
- package/viewer/assets/{erDiagram-TEJ5UH35-DM1Zmk67.js → erDiagram-TEJ5UH35-DEgxv-IW.js} +1 -1
- package/viewer/assets/{es-ES-U4NZUMDT-CkMK345k.js → es-ES-U4NZUMDT-e1S39Ti1.js} +1 -1
- package/viewer/assets/{eu-ES-A7QVB2H4-CmA46qjA.js → eu-ES-A7QVB2H4-BFR4rl79.js} +1 -1
- package/viewer/assets/eventmodeling-FCH6USID-BtBKHIsk.js +1 -0
- package/viewer/assets/{fa-IR-HGAKTJCU-BJKEnhdI.js → fa-IR-HGAKTJCU-D9rZqekR.js} +1 -1
- package/viewer/assets/{fi-FI-Z5N7JZ37-CfAW_T5T.js → fi-FI-Z5N7JZ37-LaYcmFdb.js} +1 -1
- package/viewer/assets/{flowDiagram-I6XJVG4X-BDU6nwXG.js → flowDiagram-I6XJVG4X-nqVkey0o.js} +2 -2
- package/viewer/assets/{fr-FR-RHASNOE6-CWHiIHlP.js → fr-FR-RHASNOE6-DaN_dVyx.js} +1 -1
- package/viewer/assets/{ganttDiagram-6RSMTGT7-CdlUoXLH.js → ganttDiagram-6RSMTGT7-B5XdNYHP.js} +1 -1
- package/viewer/assets/gitGraph-WXDBUCRP-CcEeprvc.js +1 -0
- package/viewer/assets/{gitGraphDiagram-PVQCEYII-BNuzMBaq.js → gitGraphDiagram-PVQCEYII-DoyI3hWK.js} +1 -1
- package/viewer/assets/{gl-ES-HMX3MZ6V-CKGulAoG.js → gl-ES-HMX3MZ6V-Dw-96yV4.js} +1 -1
- package/viewer/assets/{he-IL-6SHJWFNN-BHLKQ5ek.js → he-IL-6SHJWFNN-DSze4qOo.js} +1 -1
- package/viewer/assets/{hi-IN-IWLTKZ5I-Bo7HJAMD.js → hi-IN-IWLTKZ5I-BrDOKcx0.js} +1 -1
- package/viewer/assets/{hu-HU-A5ZG7DT2-BXfRd9JR.js → hu-HU-A5ZG7DT2-B5MZHRE0.js} +1 -1
- package/viewer/assets/{id-ID-SAP4L64H-CdFXQmZ-.js → id-ID-SAP4L64H-CLeuopyl.js} +1 -1
- package/viewer/assets/image-0vZMjp0Z.js +2 -0
- package/viewer/assets/image-GAAHSSAO-Di-5eHoS.js +1 -0
- package/viewer/assets/info-J43DQDTF-ECAOGDME.js +1 -0
- package/viewer/assets/{infoDiagram-5YYISTIA-BGN5iH-k.js → infoDiagram-5YYISTIA-C0vYc3h2.js} +1 -1
- package/viewer/assets/{ishikawaDiagram-YF4QCWOH-DsRLHhIQ.js → ishikawaDiagram-YF4QCWOH-CG_Ph_lH.js} +1 -1
- package/viewer/assets/{it-IT-JPQ66NNP-DOWVBjEX.js → it-IT-JPQ66NNP-CU1apqHk.js} +1 -1
- package/viewer/assets/{ja-JP-DBVTYXUO-D2YrGCS8.js → ja-JP-DBVTYXUO-B39Q-cJE.js} +1 -1
- package/viewer/assets/java-ChVphriW.js +1 -0
- package/viewer/assets/javascript-w9aIBC1S.js +1 -0
- package/viewer/assets/{journeyDiagram-JHISSGLW-Cvh5ehZ2.js → journeyDiagram-JHISSGLW-Bls8b6p5.js} +1 -1
- package/viewer/assets/{jszip.min-BTb9aZRk.js → jszip.min-CoyCHGS6.js} +1 -1
- package/viewer/assets/{kaa-6HZHGXH3-BNjseYto.js → kaa-6HZHGXH3-DNr0Hbws.js} +1 -1
- package/viewer/assets/{kab-KAB-ZGHBKWFO-CZ8Z2ARN.js → kab-KAB-ZGHBKWFO-DUqxtUd5.js} +1 -1
- package/viewer/assets/{kanban-definition-UN3LZRKU-B4aRb-70.js → kanban-definition-UN3LZRKU-D7NWNdGb.js} +1 -1
- package/viewer/assets/{kk-KZ-P5N5QNE5-BiGoXKgs.js → kk-KZ-P5N5QNE5-oAQRY--4.js} +1 -1
- package/viewer/assets/{km-KH-HSX4SM5Z-nQQmi6SK.js → km-KH-HSX4SM5Z-aIsalLJg.js} +1 -1
- package/viewer/assets/{ko-KR-MTYHY66A-VWIngjov.js → ko-KR-MTYHY66A-Dxxq4OHv.js} +1 -1
- package/viewer/assets/{ku-TR-6OUDTVRD-BMC8PKps.js → ku-TR-6OUDTVRD-cGosJj47.js} +1 -1
- package/viewer/assets/{lib-BG9mhXfy.js → lib-DVPOsS0g.js} +2 -2
- package/viewer/assets/{linear-CxDdtsor.js → linear-DAeDjlp3.js} +1 -1
- package/viewer/assets/{lt-LT-XHIRWOB4-DE1pHKyp.js → lt-LT-XHIRWOB4-BrbcDiBa.js} +1 -1
- package/viewer/assets/{lv-LV-5QDEKY6T-CwojNUbs.js → lv-LV-5QDEKY6T-BJB3sRF-.js} +1 -1
- package/viewer/assets/main-BmxokhSj.js +4 -0
- package/viewer/assets/main-G-3rADWH.css +1 -0
- package/viewer/assets/md-GXqo3xMM.js +2 -0
- package/viewer/assets/mermaid-parser.core-919mtcVP.js +4 -0
- package/viewer/assets/{mindmap-definition-RKZ34NQL-C-TGBNLX.js → mindmap-definition-RKZ34NQL-jpsqOaHj.js} +1 -1
- package/viewer/assets/model-DNiDRYMH.js +2 -0
- package/viewer/assets/{mr-IN-CRQNXWMA-CWtUkVOL.js → mr-IN-CRQNXWMA-DYl82JZe.js} +1 -1
- package/viewer/assets/{my-MM-5M5IBNSE-C_XxxIOL.js → my-MM-5M5IBNSE-CdnDB-54.js} +1 -1
- package/viewer/assets/{nb-NO-T6EIAALU-Btei_XbN.js → nb-NO-T6EIAALU-T-ly9gG2.js} +1 -1
- package/viewer/assets/nestedRender-BAYFA7cb.js +3 -0
- package/viewer/assets/{nl-NL-IS3SIHDZ-CLa9lIGi.js → nl-NL-IS3SIHDZ-CZqPZnHj.js} +1 -1
- package/viewer/assets/{nn-NO-6E72VCQL-STHIRJJz.js → nn-NO-6E72VCQL-CvMupQbc.js} +1 -1
- package/viewer/assets/{oc-FR-POXYY2M6-AlqHSf2A.js → oc-FR-POXYY2M6-BRlPd_BR.js} +1 -1
- package/viewer/assets/ofd-BJzyd_Eq.js +2 -0
- package/viewer/assets/{ofd-LNt40L0x.js → ofd-roCNaEHA.js} +1 -1
- package/viewer/assets/{ordinal-DCScp9-v.js → ordinal-hYBb2elL.js} +1 -1
- package/viewer/assets/{pa-IN-N4M65BXN-C5YYhOry.js → pa-IN-N4M65BXN-BfVUAlRi.js} +1 -1
- package/viewer/assets/package-Bop5TfAT.js +296 -0
- package/viewer/assets/package-OvxnQO7z.css +1 -0
- package/viewer/assets/packet-YPE3B663-BLIVl-jG.js +1 -0
- package/viewer/assets/pdf-CDtYB0WY.js +2 -0
- package/viewer/assets/percentages-BXMCSKIN-C5NgCvxl.js +1 -0
- package/viewer/assets/{pica-D7mbm30s.js → pica-Dfy4NaK_.js} +1 -1
- package/viewer/assets/{pie-CRd9Jc0K.js → pie-CZr-MxNa.js} +1 -1
- package/viewer/assets/pie-LRSECV5Y-DcYPzp1c.js +1 -0
- package/viewer/assets/{pieDiagram-4H26LBE5-CR0X6m7j.js → pieDiagram-4H26LBE5-CMzoHPw-.js} +1 -1
- package/viewer/assets/{pl-PL-T2D74RX3-DNpdFsH8.js → pl-PL-T2D74RX3-CXvOHlyd.js} +1 -1
- package/viewer/assets/pptx-CI2NrkhY.js +2 -0
- package/viewer/assets/{prod-sjH-QSi1.js → prod-B0HxyDM0.js} +8 -8
- package/viewer/assets/{pt-BR-5N22H2LF-CovgHQeR.js → pt-BR-5N22H2LF-CAHMJIN0.js} +1 -1
- package/viewer/assets/{pt-PT-UZXXM6DQ-dokXVmhl.js → pt-PT-UZXXM6DQ-9stw3O1j.js} +1 -1
- package/viewer/assets/{quadrantDiagram-W4KKPZXB-6kMEtAn4.js → quadrantDiagram-W4KKPZXB-BS8uQ6E6.js} +1 -1
- package/viewer/assets/radar-GUYGQ44K-Bqokr2eR.js +1 -0
- package/viewer/assets/renderer-BMLnfeSl.js +1 -0
- package/viewer/assets/{requirementDiagram-4Y6WPE33-BA75MpNz.js → requirementDiagram-4Y6WPE33-pyX-Egau.js} +1 -1
- package/viewer/assets/{ro-RO-JPDTUUEW-B03_KW0v.js → ro-RO-JPDTUUEW-_Ym6U2of.js} +1 -1
- package/viewer/assets/{rough.esm-CtRmaVvx.js → rough.esm-DjrMDdlL.js} +1 -1
- package/viewer/assets/{ru-RU-B4JR7IUQ-B_C8A3aI.js → ru-RU-B4JR7IUQ-DWUO9__j.js} +1 -1
- package/viewer/assets/runtime-core.esm-bundler-DO-WTVbd.js +1 -0
- package/viewer/assets/rust-Dk33Kfe-.js +1 -0
- package/viewer/assets/{sankeyDiagram-5OEKKPKP-Bvr9MFlL.js → sankeyDiagram-5OEKKPKP-BIl0S1dQ.js} +1 -1
- package/viewer/assets/{sequenceDiagram-3UESZ5HK-D2lyTrsV.js → sequenceDiagram-3UESZ5HK-EhMFCxNn.js} +2 -2
- package/viewer/assets/{si-LK-N5RQ5JYF-DegugaM_.js → si-LK-N5RQ5JYF-DOuaKjIP.js} +1 -1
- package/viewer/assets/{sk-SK-C5VTKIMK-B4PJqvUJ.js → sk-SK-C5VTKIMK-D04wnRn8.js} +1 -1
- package/viewer/assets/{sl-SI-NN7IZMDC-Df64jVGw.js → sl-SI-NN7IZMDC-DlSoyI38.js} +1 -1
- package/viewer/assets/{src-CBaGS_wh.js → src-CmLfrMFg.js} +5 -5
- package/viewer/assets/{stateDiagram-AJRCARHV-PKtpCfic.js → stateDiagram-AJRCARHV-CBylKBpj.js} +1 -1
- package/viewer/assets/stateDiagram-v2-BHNVJYJU-f7X6eKbo.js +1 -0
- package/viewer/assets/subset-shared.chunk-WzaeClRm.js +1 -0
- package/viewer/assets/{subset-worker.chunk-DtRH5DPE.js → subset-worker.chunk-CXi44O4x.js} +1 -1
- package/viewer/assets/{sv-SE-XGPEYMSR-B9XZHkYy.js → sv-SE-XGPEYMSR-y8nUmsTq.js} +1 -1
- package/viewer/assets/{ta-IN-2NMHFXQM-CSyfBCRt.js → ta-IN-2NMHFXQM-BTlY1MOo.js} +1 -1
- package/viewer/assets/text-BTWcQTKM.js +2 -0
- package/viewer/assets/{th-TH-HPSO5L25-Dqnv5J3c.js → th-TH-HPSO5L25-B0-Jm0dR.js} +1 -1
- package/viewer/assets/{three.module-B3kUtiXa.js → three.module-BFsVh7r1.js} +3 -3
- package/viewer/assets/{time-DJ3gVSNH.js → time-B8nkukJS.js} +1 -1
- package/viewer/assets/{timeline-definition-PNZ67QCA-BAzZv7xK.js → timeline-definition-PNZ67QCA-BrR0Lwj6.js} +1 -1
- package/viewer/assets/{tr-TR-DEFEU3FU-DC2uSW18.js → tr-TR-DEFEU3FU-CuiTnA8n.js} +1 -1
- package/viewer/assets/treeView-BLDUP644-B3NDovtS.js +1 -0
- package/viewer/assets/treemap-LRROVOQU-CNBN28UV.js +1 -0
- package/viewer/assets/typescript-BvteI6YB.js +1 -0
- package/viewer/assets/typst-BlzZcMe5.js +2 -0
- package/viewer/assets/{uk-UA-QMV73CPH-BDESx35z.js → uk-UA-QMV73CPH-za143PJQ.js} +1 -1
- package/viewer/assets/umd-CaNdxjcL.js +2 -0
- package/viewer/assets/{vennDiagram-CIIHVFJN-BmGEKaQ-.js → vennDiagram-CIIHVFJN-BkqtdITb.js} +2 -2
- package/viewer/assets/{vi-VN-M7AON7JQ-CMeKEsgs.js → vi-VN-M7AON7JQ-BkwUlhW4.js} +1 -1
- package/viewer/assets/wardley-L42UT6IY-B82Hng0D.js +1 -0
- package/viewer/assets/{wardleyDiagram-YWT4CUSO-C8oe-4j_.js → wardleyDiagram-YWT4CUSO-d1SlYFch.js} +1 -1
- package/viewer/assets/word-CbznmAOT.js +126 -0
- package/viewer/assets/xlsx-B70Tzp_0.js +2 -0
- package/viewer/assets/{xychartDiagram-2RQKCTM6-CkUeox50.js → xychartDiagram-2RQKCTM6-AETQ-2hJ.js} +1 -1
- package/viewer/assets/yaml-1XF8XcZB.js +1 -0
- package/viewer/assets/{zh-CN-LNUGB5OW-DYFA40K_.js → zh-CN-LNUGB5OW-CLMN5wFH.js} +1 -1
- package/viewer/assets/{zh-HK-E62DVLB3-BZBLV5qY.js → zh-HK-E62DVLB3-BQAhIarC.js} +1 -1
- package/viewer/assets/{zh-TW-RAJ6MFWO-DFF6eags.js → zh-TW-RAJ6MFWO-D3o6FRFS.js} +1 -1
- package/viewer/compare.html +5 -4
- package/viewer/flyfish-viewer-manifest.json +1 -1
- package/viewer/index.html +6 -5
- package/viewer/wasm/cad/DwgWorker-CuZJ5EUe.js +349 -0
- package/viewer/wasm/cad/dwfv-render.wasm +0 -0
- package/viewer/wasm/cad/dwg-worker.js +349 -0
- package/viewer/wasm/cad/index-C365l3i9.js +4161 -0
- package/viewer/wasm/cad/libredwg-web.js +15 -0
- package/viewer/wasm/cad/libredwg-web.wasm +0 -0
- package/viewer/assets/ArchiveViewer-CKe5u-zG.js +0 -1
- package/viewer/assets/AudioViewer-T0MB6cNf.js +0 -1
- package/viewer/assets/CadViewer-CmPS5vTY.js +0 -1
- package/viewer/assets/CadViewer-DZAS6XFY.css +0 -1
- package/viewer/assets/CodeViewer-Da2e-Pih.js +0 -2
- package/viewer/assets/CodeViewer-KlbtXDJA.css +0 -1
- package/viewer/assets/DrawingViewer-BLx5reKf.js +0 -2
- package/viewer/assets/EdaViewer-akuOQN_s.js +0 -8
- package/viewer/assets/EmailViewer-DCP5VSNh.js +0 -4
- package/viewer/assets/EpubViewer-CRYkXMns.js +0 -2
- package/viewer/assets/ImageViewer-DdBS2hkD.js +0 -1
- package/viewer/assets/ModelViewer-aTW19aj5.js +0 -2
- package/viewer/assets/OfdViewer-BFdudh_g.js +0 -2
- package/viewer/assets/PdfView-CBNN3RKQ.js +0 -558
- package/viewer/assets/PdfView-d7S_ChQk.css +0 -1
- package/viewer/assets/PptxRender-DGZ75Ujc.js +0 -32
- package/viewer/assets/TypstViewer-BzRqtvUb.js +0 -60
- package/viewer/assets/TypstViewer-CYzlZT3R.css +0 -1
- package/viewer/assets/UmdViewer-BV_C7-QC.js +0 -3
- package/viewer/assets/XlsxTable-B3gt0BRc.js +0 -5
- package/viewer/assets/__vite-browser-external-4zOfcZki.js +0 -1
- package/viewer/assets/architecture-7EHR7CIX-SZfMq0T-.js +0 -1
- package/viewer/assets/architectureDiagram-3BPJPVTR-NhnkJCQk.js +0 -36
- package/viewer/assets/archive-BCYExDTt.js +0 -2
- package/viewer/assets/audio-DyKOGNoB.js +0 -2
- package/viewer/assets/cad-X6fHTob3.js +0 -2
- package/viewer/assets/channel-t0jydsTy.js +0 -1
- package/viewer/assets/chunk-55IACEB6-Ddx8r-cT.js +0 -1
- package/viewer/assets/chunk-AGHRB4JF-Bp3D13tN.js +0 -1
- package/viewer/assets/chunk-K2UTITRG-DVRoJJYJ.js +0 -35
- package/viewer/assets/chunk-LZXEDZCA-fZu08oS2.js +0 -2
- package/viewer/assets/chunk-QZHKN3VN-Fg_X1rG4.js +0 -1
- package/viewer/assets/chunk-WU5MYG2G-BGIX6we7.js +0 -1
- package/viewer/assets/classDiagram-4FO5ZUOK-BYZ4FOo_.js +0 -1
- package/viewer/assets/classDiagram-v2-Q7XG4LA2-DuchuCsI.js +0 -1
- package/viewer/assets/compare-BDsbatdp.css +0 -1
- package/viewer/assets/compare-CaIbij3A.js +0 -1
- package/viewer/assets/core-jd_XA2DR.js +0 -3
- package/viewer/assets/cose-bilkent-S5V4N54A-DmYXhVYe.js +0 -1
- package/viewer/assets/cpp-5qXNyrbZ.js +0 -1
- package/viewer/assets/dist-CP5u4RQ7.js +0 -7
- package/viewer/assets/docx-preview-HLZcXk8x.js +0 -20
- package/viewer/assets/drawing-nZ3hKOuj.js +0 -2
- package/viewer/assets/ebook-Dg6QYLrm.js +0 -2
- package/viewer/assets/eda-6lhgdEsa.js +0 -2
- package/viewer/assets/email-B8Pjza3z.js +0 -2
- package/viewer/assets/eventmodeling-FCH6USID-DY_1pO49.js +0 -1
- package/viewer/assets/gitGraph-WXDBUCRP-DkbGK_l8.js +0 -1
- package/viewer/assets/image-BqV53LfN.js +0 -2
- package/viewer/assets/image-GAAHSSAO-CflKrgYb.js +0 -1
- package/viewer/assets/info-J43DQDTF-DSuj3Emf.js +0 -1
- package/viewer/assets/java-Bt-CuAbH.js +0 -1
- package/viewer/assets/javascript-ByQvC393.js +0 -1
- package/viewer/assets/main-DiKVn7u-.js +0 -4
- package/viewer/assets/main-Qy_H7MQU.css +0 -1
- package/viewer/assets/md-ZsTh5p5_.js +0 -2
- package/viewer/assets/mermaid-parser.core-BGXVtjga.js +0 -161
- package/viewer/assets/model-WJMzK3Bx.js +0 -2
- package/viewer/assets/nestedRender-BYf7LsWF.js +0 -3
- package/viewer/assets/ofd-hH7Lx5fE.js +0 -2
- package/viewer/assets/package-BzUY3Le1.js +0 -296
- package/viewer/assets/package-avoqJ--x.css +0 -1
- package/viewer/assets/packet-YPE3B663-DqBKru-C.js +0 -1
- package/viewer/assets/pdf-DUcu0vwy.js +0 -2
- package/viewer/assets/percentages-BXMCSKIN-C5naDcRH.js +0 -1
- package/viewer/assets/pie-LRSECV5Y-DgIgfV4D.js +0 -1
- package/viewer/assets/pptx-BhaDWkfM.js +0 -2
- package/viewer/assets/radar-GUYGQ44K-DDAIGbwM.js +0 -1
- package/viewer/assets/renderer-DgCTjHNM.js +0 -1
- package/viewer/assets/rust-ByqymhlZ.js +0 -1
- package/viewer/assets/stateDiagram-v2-BHNVJYJU-Dge3aXLV.js +0 -1
- package/viewer/assets/subset-shared.chunk-3OFU-pwz.js +0 -1
- package/viewer/assets/text-BIuCfuAP.js +0 -2
- package/viewer/assets/treeView-BLDUP644-ChlIgn-W.js +0 -1
- package/viewer/assets/treemap-LRROVOQU-BAyamQqb.js +0 -1
- package/viewer/assets/typescript-CavFMSnb.js +0 -1
- package/viewer/assets/typst-SgSPYOMT.js +0 -2
- package/viewer/assets/umd-B8xdAyvH.js +0 -2
- package/viewer/assets/wardley-L42UT6IY-2zg3KYzM.js +0 -1
- package/viewer/assets/word-DHSOzOoC.js +0 -126
- package/viewer/assets/xlsx-CW-rEu9c.js +0 -2
- package/viewer/assets/yaml-BmvXLson.js +0 -1
- /package/viewer/assets/{bash-S8eE0ZTO.js → bash-LmRjUKlR.js} +0 -0
- /package/viewer/assets/{chunk-6U3AYISY-D3Imc8oH.js → chunk-6U3AYISY-C6-Mtja1.js} +0 -0
- /package/viewer/assets/{chunk-Z3N5DIM6-DxbXKGME.js → chunk-Z3N5DIM6-D9TMVU7m.js} +0 -0
- /package/viewer/assets/{chunk-ZUYEQ4TG-D5ZmrcSz.js → chunk-ZUYEQ4TG-BzFOpW--.js} +0 -0
- /package/viewer/assets/{csharp-DyDx6xfk.js → csharp-GZmu99Fo.js} +0 -0
- /package/viewer/assets/{css-EhEuVXep.js → css-D5l_8KUR.js} +0 -0
- /package/viewer/assets/{defaultLocale-Be9Eo3DJ.js → defaultLocale-C8Fc0cco.js} +0 -0
- /package/viewer/assets/{diff-C7rShVzh.js → diff-CJb8JxGC.js} +0 -0
- /package/viewer/assets/{directory-open-01563666-DZbHD0S2.js → directory-open-01563666-D4xXyWb_.js} +0 -0
- /package/viewer/assets/{fflate.module-CET2rj3S.js → fflate.module-BIQmJeC9.js} +0 -0
- /package/viewer/assets/{file-open-002ab408-B9k9Qrj1.js → file-open-002ab408-BHUWm0Sh.js} +0 -0
- /package/viewer/assets/{file-open-7c801643-zM-3dRdG.js → file-open-7c801643-DZtJT5zp.js} +0 -0
- /package/viewer/assets/{file-save-3189631c-ByhXkl1_.js → file-save-3189631c-CO9S4HFW.js} +0 -0
- /package/viewer/assets/{file-save-745eba88-Dl2X9_bt.js → file-save-745eba88-Bwdfz6OZ.js} +0 -0
- /package/viewer/assets/{global-compiler-55_NTk_S.js → global-compiler-D1EEBbpA.js} +0 -0
- /package/viewer/assets/{global-renderer-BjQLhJVE.js → global-renderer-AKzBLvRw.js} +0 -0
- /package/viewer/assets/{go-DwST4yyI.js → go-B-PCS5zA.js} +0 -0
- /package/viewer/assets/{graphlib-BtaXJDGg.js → graphlib-B8gBHxth.js} +0 -0
- /package/viewer/assets/{image-blob-reduce.esm-z38uXItA.js → image-blob-reduce.esm-NzmDxm1v.js} +0 -0
- /package/viewer/assets/{ini-1rCXzZpj.js → ini-B1CroMsf.js} +0 -0
- /package/viewer/assets/{init-L_XUKIOb.js → init-D6jRqBbL.js} +0 -0
- /package/viewer/assets/{json-BAKNGepy.js → json-DS4EA3dC.js} +0 -0
- /package/viewer/assets/{katex-CX8BRU-l.js → katex-Vhh-h91d.js} +0 -0
- /package/viewer/assets/{libarchive-BAtGUHS7.js → libarchive-DknIq1tb.js} +0 -0
- /package/viewer/assets/{markdown-BcrQOQXE.js → markdown-C8bVcNXx.js} +0 -0
- /package/viewer/assets/{mp4-8ORj0kfb.js → mp4-Dho29Zd7.js} +0 -0
- /package/viewer/assets/{php-CPVBpRrh.js → php-5k5YNuRS.js} +0 -0
- /package/viewer/assets/{postal-mime-BmZ9KSZh.js → postal-mime-kkzCFkih.js} +0 -0
- /package/viewer/assets/{printLayout-ChXxuL39.js → printLayout-D2pf0W9y.js} +0 -0
- /package/viewer/assets/{python-Lq7lY5pJ.js → python-DwhXSSGr.js} +0 -0
- /package/viewer/assets/{roundRect-CO90fevV.js → roundRect-D01gJrlt.js} +0 -0
- /package/viewer/assets/{sql-k7828v9s.js → sql-DWRKyvJ-.js} +0 -0
- /package/viewer/assets/{src-DgPMd_PO.js → src-BrOGWJpF.js} +0 -0
- /package/viewer/assets/{wasm-D8RgCHep.js → wasm-C3ukMqzA.js} +0 -0
- /package/viewer/assets/{wasm-pack-shim-PvChQaoQ.js → wasm-pack-shim-BShYmbRf.js} +0 -0
- /package/viewer/assets/{wasm-pack-shim-C7VIdtxY.js → wasm-pack-shim-BnuNh1z7.js} +0 -0
- /package/viewer/assets/{worker-ref-AQYU8C4A.js → worker-ref-BbTnHTC-.js} +0 -0
- /package/viewer/assets/{xml-CN7UyfCr.js → xml-DasnpDVC.js} +0 -0
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
纯 Web 文件预览组件。只提供私有化部署路线: npm 包随包携带 Vue 基线 viewer 产物;使用 `npm install` 或已允许 pnpm 安装脚本后,会自动复制到宿主项目的 `public/file-viewer`,组件默认加载 `/file-viewer/index.html`。
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install @flyfish-group/file-viewer-web@1.0.
|
|
6
|
+
npm install @flyfish-group/file-viewer-web@1.0.23
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
pnpm 10 默认会拦截依赖包的 `postinstall`。如果安装后提示 `Ignored build scripts: @flyfish-group/file-viewer-web`,请执行 `pnpm approve-builds` 允许该包,或运行 `pnpm exec file-viewer-copy-assets ./public/file-viewer`。复制脚本会先清空目标目录再复制,避免 `index.html` 和 `assets/*` hash 不同版本导致动态 import 404。
|
|
@@ -19,7 +19,10 @@ mountViewerFrame(document.getElementById('viewer')!, {
|
|
|
19
19
|
console.log(event.type, event.event, event.payload)
|
|
20
20
|
},
|
|
21
21
|
options: {
|
|
22
|
-
|
|
22
|
+
theme: 'light',
|
|
23
|
+
toolbar: { position: 'bottom-right' },
|
|
24
|
+
search: { maxMatches: 1000 },
|
|
25
|
+
pdf: { toolbar: true },
|
|
23
26
|
watermark: { text: '内部预览', opacity: 0.14 },
|
|
24
27
|
archive: { workerUrl: '/file-viewer/vendor/libarchive/worker-bundle.js', cache: true }
|
|
25
28
|
}
|
|
@@ -58,9 +61,9 @@ mountViewerFrame(el, {
|
|
|
58
61
|
|
|
59
62
|
```html
|
|
60
63
|
<iframe
|
|
61
|
-
src="/vendor/file-viewer/index.html?url=%2Ffiles%2Fdemo.docx&__flyfish_viewer_version=1.0.
|
|
64
|
+
src="/vendor/file-viewer/index.html?url=%2Ffiles%2Fdemo.docx&__flyfish_viewer_version=1.0.23"
|
|
62
65
|
style="width: 100%; height: 100vh; border: 0"
|
|
63
66
|
></iframe>
|
|
64
67
|
```
|
|
65
68
|
|
|
66
|
-
`options` 会透传给 Vue
|
|
69
|
+
`options` 会透传给 Vue 基线预览器,可配置主题、下载/打印/导出 HTML 操作栏、文字或图片水印、搜索高亮、AI 友好文本切片,以及压缩包预览的 `libarchive.js` Worker、IndexedDB 缓存和体积上限。`theme` 支持 `light`、`dark`、`system`,默认跟随系统;固定浅色宿主 UI 建议传 `theme: 'light'`。`toolbar.position` 支持 `auto`、`top`、`bottom-right`,默认 `auto`,PDF 会自动悬浮到右下角以避开自身导航栏;`pdf.toolbar` 可隐藏 PDF 自身工具栏,适合文档比对等紧凑场景。搜索 API 会按格式选择最佳链路,PDF 走 PDF.js 原生搜索,文本类格式走通用 DOM 高亮。打印按钮会按当前格式和渲染链路动态显隐;Word / PDF 打印和导出会生成完整页面,不依赖当前 iframe 视口或已渲染 canvas。生命周期、操作能力变化、搜索状态和当前位置会通过 `onEvent` 回传给宿主,事件类型包括 `flyfish-viewer:lifecycle`、`flyfish-viewer:operation`、`flyfish-viewer:search` 和 `flyfish-viewer:location`,适合记录加载耗时、审计下载/打印尝试、搜索命中、页码/行号、AI 切片和溯源状态。
|
package/dist/index.d.ts
CHANGED
|
@@ -14,10 +14,15 @@ export interface ViewerWatermarkOptions {
|
|
|
14
14
|
color?: string;
|
|
15
15
|
fontFamily?: string;
|
|
16
16
|
}
|
|
17
|
+
export type ViewerToolbarPosition = 'auto' | 'top' | 'bottom-right';
|
|
17
18
|
export interface ViewerToolbarOptions {
|
|
18
19
|
download?: boolean;
|
|
19
20
|
print?: boolean;
|
|
20
21
|
exportHtml?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* 操作栏位置。默认 `auto`: PDF 自动悬浮到右下角,其他格式保持顶部。
|
|
24
|
+
*/
|
|
25
|
+
position?: ViewerToolbarPosition;
|
|
21
26
|
}
|
|
22
27
|
export interface ViewerArchiveOptions {
|
|
23
28
|
workerUrl?: string;
|
|
@@ -25,12 +30,46 @@ export interface ViewerArchiveOptions {
|
|
|
25
30
|
maxArchiveSize?: number;
|
|
26
31
|
maxEntryPreviewSize?: number;
|
|
27
32
|
}
|
|
33
|
+
export interface ViewerPdfOptions {
|
|
34
|
+
toolbar?: boolean;
|
|
35
|
+
navigation?: boolean;
|
|
36
|
+
defaultNavigationVisible?: boolean;
|
|
37
|
+
rotation?: number;
|
|
38
|
+
streaming?: boolean | 'same-origin';
|
|
39
|
+
rangeChunkSize?: number;
|
|
40
|
+
withCredentials?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface ViewerSearchOptions {
|
|
43
|
+
enabled?: boolean;
|
|
44
|
+
caseSensitive?: boolean;
|
|
45
|
+
wholeWord?: boolean;
|
|
46
|
+
maxMatches?: number;
|
|
47
|
+
debounce?: number;
|
|
48
|
+
className?: string;
|
|
49
|
+
activeClassName?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface ViewerAiOptions {
|
|
52
|
+
enabled?: boolean;
|
|
53
|
+
collectText?: boolean;
|
|
54
|
+
maxTextLength?: number;
|
|
55
|
+
chunkSize?: number;
|
|
56
|
+
chunkOverlap?: number;
|
|
57
|
+
}
|
|
58
|
+
export type ViewerThemeMode = 'light' | 'dark' | 'system';
|
|
28
59
|
export interface ViewerRuntimeOptions {
|
|
60
|
+
/**
|
|
61
|
+
* 预览器主题。默认 `system`,即跟随浏览器 `prefers-color-scheme`。
|
|
62
|
+
* 浅色业务系统建议传 `light`,避免 iframe 内预览区被系统深色模式自动切暗。
|
|
63
|
+
*/
|
|
64
|
+
theme?: ViewerThemeMode;
|
|
29
65
|
watermark?: boolean | ViewerWatermarkOptions;
|
|
30
66
|
toolbar?: boolean | ViewerToolbarOptions;
|
|
67
|
+
search?: boolean | ViewerSearchOptions;
|
|
68
|
+
ai?: boolean | ViewerAiOptions;
|
|
31
69
|
archive?: ViewerArchiveOptions;
|
|
70
|
+
pdf?: ViewerPdfOptions;
|
|
32
71
|
}
|
|
33
|
-
export type ViewerFrameEventType = 'flyfish-viewer:lifecycle' | 'flyfish-viewer:operation';
|
|
72
|
+
export type ViewerFrameEventType = 'flyfish-viewer:lifecycle' | 'flyfish-viewer:operation' | 'flyfish-viewer:search' | 'flyfish-viewer:location';
|
|
34
73
|
export interface ViewerFrameEventPayload {
|
|
35
74
|
type: ViewerFrameEventType;
|
|
36
75
|
event: string;
|
|
@@ -99,7 +138,7 @@ export interface ViewerFrameController {
|
|
|
99
138
|
}
|
|
100
139
|
export declare const DEFAULT_VIEWER_PUBLIC_DIR = "/file-viewer";
|
|
101
140
|
export declare const DEFAULT_VIEWER_URL = "/file-viewer/index.html";
|
|
102
|
-
export declare const VIEWER_FRAME_CACHE_KEY = "1.0.
|
|
141
|
+
export declare const VIEWER_FRAME_CACHE_KEY = "1.0.23";
|
|
103
142
|
export declare const getCurrentOrigin: () => string;
|
|
104
143
|
export declare const getViewerUrl: (viewerUrl?: string) => string;
|
|
105
144
|
export declare const getViewerOrigin: (viewerUrl?: string) => string;
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const DEFAULT_VIEWER_PUBLIC_DIR = '/file-viewer';
|
|
2
2
|
export const DEFAULT_VIEWER_URL = `${DEFAULT_VIEWER_PUBLIC_DIR}/index.html`;
|
|
3
|
-
export const VIEWER_FRAME_CACHE_KEY = '1.0.
|
|
3
|
+
export const VIEWER_FRAME_CACHE_KEY = '1.0.23';
|
|
4
4
|
const DEFAULT_FRAME_TITLE = 'Flyfish Viewer 文件预览';
|
|
5
5
|
const FILE_POST_RETRY_LIMIT = 8;
|
|
6
6
|
const FILE_POST_RETRY_INTERVAL = 120;
|
|
@@ -52,7 +52,10 @@ const isViewerFrameEvent = (value) => {
|
|
|
52
52
|
return false;
|
|
53
53
|
}
|
|
54
54
|
const candidate = value;
|
|
55
|
-
return candidate.type === 'flyfish-viewer:lifecycle' ||
|
|
55
|
+
return candidate.type === 'flyfish-viewer:lifecycle' ||
|
|
56
|
+
candidate.type === 'flyfish-viewer:operation' ||
|
|
57
|
+
candidate.type === 'flyfish-viewer:search' ||
|
|
58
|
+
candidate.type === 'flyfish-viewer:location';
|
|
56
59
|
};
|
|
57
60
|
export const getCurrentOrigin = () => {
|
|
58
61
|
return canUseDom() ? window.location.origin : '';
|
package/package.json
CHANGED
package/viewer/_headers
CHANGED
|
@@ -11,5 +11,12 @@
|
|
|
11
11
|
/vendor/*
|
|
12
12
|
Cache-Control: public, max-age=31536000, immutable
|
|
13
13
|
|
|
14
|
+
/wasm/*
|
|
15
|
+
Cache-Control: public, max-age=31536000, immutable
|
|
16
|
+
X-Content-Type-Options: nosniff
|
|
17
|
+
|
|
18
|
+
/wasm/*.wasm
|
|
19
|
+
Content-Type: application/wasm
|
|
20
|
+
|
|
14
21
|
/example/*
|
|
15
22
|
Cache-Control: public, max-age=86400
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,C as t,Ct as n,E as r,Ft as i,H as a,K as o,U as s,at as c,et as l,f as u,l as d,ot as f,p,rt as m,st as h,u as g,w as _,wt as v}from"./three.module-B3kUtiXa.js";import{t as y}from"./fflate.module-CET2rj3S.js";var b=v,x=class extends o{constructor(e){super(e),this.availableExtensions=[]}load(e,n,r,i){let a=this,o=new t(a.manager);o.setPath(a.path),o.setResponseType(`arraybuffer`),o.setRequestHeader(a.requestHeader),o.setWithCredentials(a.withCredentials),o.load(e,function(t){try{n(a.parse(t))}catch(t){i?i(t):console.error(t),a.manager.itemError(e)}},r,i)}parse(t){let v=this,x=new i(this.manager);function S(e){let t=null,n=null,r,i,a=[],o=[],s,c={},l={},u={},d=new TextDecoder;try{t=y(new Uint8Array(e))}catch(e){if(e instanceof ReferenceError)return console.error(`THREE.3MFLoader: fflate missing and file is compressed.`),null}let f=null;for(n in t)n.match(/\_rels\/.rels$/)?r=n:n.match(/3D\/_rels\/.*\.model\.rels$/)?i=n:n.match(/^3D\/[^\/]*\.model$/)?f=n:n.match(/^3D\/.*\/.*\.model$/)?a.push(n):n.match(/^3D\/Textures?\/.*/)&&o.push(n);if(a.push(f),r===void 0)throw Error("THREE.ThreeMFLoader: Cannot find relationship file `rels` in 3MF archive.");let p=t[r],m=C(d.decode(p));if(i){let e=t[i];s=C(d.decode(e))}for(let e=0;e<a.length;e++){let n=a[e],r=t[n],i=d.decode(r),o=new DOMParser().parseFromString(i,`application/xml`);o.documentElement.nodeName.toLowerCase()!==`model`&&console.error(`THREE.3MFLoader: Error loading 3MF - no 3MF document found: `,n);let s=o.querySelector(`model`),l={};for(let e=0;e<s.attributes.length;e++){let t=s.attributes[e];t.name.match(/^xmlns:(.+)$/)&&(l[t.value]=RegExp.$1)}let u=R(s);u.xml=s,0<Object.keys(l).length&&(u.extensions=l),c[n]=u}for(let e=0;e<o.length;e++){let n=o[e];u[n]=t[n].buffer}return{rels:m,modelRels:s,model:c,printTicket:l,texture:u}}function C(e){let t=[],n=new DOMParser().parseFromString(e,`application/xml`).querySelectorAll(`Relationship`);for(let e=0;e<n.length;e++){let r=n[e],i={target:r.getAttribute(`Target`),id:r.getAttribute(`Id`),type:r.getAttribute(`Type`)};t.push(i)}return t}function w(e){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=r.getAttribute(`name`);0<=[`Title`,`Designer`,`Description`,`Copyright`,`LicenseTerms`,`Rating`,`CreationDate`,`ModificationDate`].indexOf(i)&&(t[i]=r.textContent)}return t}function T(e){let t={id:e.getAttribute(`id`),basematerials:[]},n=e.querySelectorAll(`base`);for(let e=0;e<n.length;e++){let r=n[e],i=A(r);i.index=e,t.basematerials.push(i)}return t}function E(e){return{id:e.getAttribute(`id`),path:e.getAttribute(`path`),contenttype:e.getAttribute(`contenttype`),tilestyleu:e.getAttribute(`tilestyleu`),tilestylev:e.getAttribute(`tilestylev`),filter:e.getAttribute(`filter`)}}function ee(e){let t={id:e.getAttribute(`id`),texid:e.getAttribute(`texid`),displaypropertiesid:e.getAttribute(`displaypropertiesid`)},n=e.querySelectorAll(`tex2coord`),r=[];for(let e=0;e<n.length;e++){let t=n[e],i=t.getAttribute(`u`),a=t.getAttribute(`v`);r.push(parseFloat(i),parseFloat(a))}return t.uvs=new Float32Array(r),t}function te(e){let t={id:e.getAttribute(`id`),displaypropertiesid:e.getAttribute(`displaypropertiesid`)},n=e.querySelectorAll(`color`),r=[],i=new p;for(let e=0;e<n.length;e++){let t=n[e].getAttribute(`color`);i.setStyle(t.substring(0,7),b),r.push(i.r,i.g,i.b)}return t.colors=new Float32Array(r),t}function D(e){let t=e.children,n={};for(let e=0;e<t.length;e++){let r={type:t[e].nodeName.substring(2)};for(let n=0;n<t[e].attributes.length;n++){let i=t[e].attributes[n];i.specified&&(r[i.name]=i.value)}n[t[e].getAttribute(`identifier`)]=r}return n}function O(e){let t={id:e.getAttribute(`id`),displayname:e.getAttribute(`displayname`)},n=e.children,r={};for(let e=0;e<n.length;e++){let t=n[e];if(t.nodeName===`i:in`||t.nodeName===`i:out`)r[t.nodeName===`i:in`?`inputs`:`outputs`]=D(t);else{let e=t.children,n={op:t.nodeName.substring(2),identifier:t.getAttribute(`identifier`)};for(let t=0;t<e.length;t++)n[e[t].nodeName.substring(2)]=D(e[t]);r[n.identifier]=n}}return t.operations=r,t}function k(e){let t={id:e.getAttribute(`id`)},n=e.querySelectorAll(`pbmetallic`),r=[];for(let e=0;e<n.length;e++){let t=n[e];r.push({name:t.getAttribute(`name`),metallicness:parseFloat(t.getAttribute(`metallicness`)),roughness:parseFloat(t.getAttribute(`roughness`))})}return t.data=r,t}function A(e){let t={};return t.name=e.getAttribute(`name`),t.displaycolor=e.getAttribute(`displaycolor`),t.displaypropertiesid=e.getAttribute(`displaypropertiesid`),t}function j(e){let t={},n=[],r=e.querySelectorAll(`vertices vertex`);for(let e=0;e<r.length;e++){let t=r[e],i=t.getAttribute(`x`),a=t.getAttribute(`y`),o=t.getAttribute(`z`);n.push(parseFloat(i),parseFloat(a),parseFloat(o))}t.vertices=new Float32Array(n);let i=[],a=[],o=e.querySelectorAll(`triangles triangle`);for(let e=0;e<o.length;e++){let t=o[e],n=t.getAttribute(`v1`),r=t.getAttribute(`v2`),s=t.getAttribute(`v3`),c=t.getAttribute(`p1`),l=t.getAttribute(`p2`),u=t.getAttribute(`p3`),d=t.getAttribute(`pid`),f={};f.v1=parseInt(n,10),f.v2=parseInt(r,10),f.v3=parseInt(s,10),a.push(f.v1,f.v2,f.v3),c&&(f.p1=parseInt(c,10)),l&&(f.p2=parseInt(l,10)),u&&(f.p3=parseInt(u,10)),d&&(f.pid=d),0<Object.keys(f).length&&i.push(f)}return t.triangleProperties=i,t.triangles=new Uint32Array(a),t}function M(e){let t=[],n=e.querySelectorAll(`component`);for(let e=0;e<n.length;e++){let r=n[e],i=N(r);t.push(i)}return t}function N(e){let t={};t.objectId=e.getAttribute(`objectid`);let n=e.getAttribute(`transform`);return n&&(t.transform=P(n)),t}function P(t){let n=[];t.split(` `).forEach(function(e){n.push(parseFloat(e))});let r=new e;return r.set(n[0],n[3],n[6],n[9],n[1],n[4],n[7],n[10],n[2],n[5],n[8],n[11],0,0,0,1),r}function F(e){let t={type:e.getAttribute(`type`)},n=e.getAttribute(`id`);n&&(t.id=n);let r=e.getAttribute(`pid`);r&&(t.pid=r);let i=e.getAttribute(`pindex`);i&&(t.pindex=i);let a=e.getAttribute(`thumbnail`);a&&(t.thumbnail=a);let o=e.getAttribute(`partnumber`);o&&(t.partnumber=o);let s=e.getAttribute(`name`);s&&(t.name=s);let c=e.querySelector(`mesh`);c&&(t.mesh=j(c));let l=e.querySelector(`components`);return l&&(t.components=M(l)),t}function I(e){let t={};t.basematerials={};let n=e.querySelectorAll(`basematerials`);for(let e=0;e<n.length;e++){let r=n[e],i=T(r);t.basematerials[i.id]=i}t.texture2d={};let r=e.querySelectorAll(`texture2d`);for(let e=0;e<r.length;e++){let n=r[e],i=E(n);t.texture2d[i.id]=i}t.colorgroup={};let i=e.querySelectorAll(`colorgroup`);for(let e=0;e<i.length;e++){let n=i[e],r=te(n);t.colorgroup[r.id]=r}let a=e.querySelectorAll(`implicitfunction`);a.length>0&&(t.implicitfunction={});for(let e=0;e<a.length;e++){let n=a[e],r=O(n);t.implicitfunction[r.id]=r}t.pbmetallicdisplayproperties={};let o=e.querySelectorAll(`pbmetallicdisplayproperties`);for(let e=0;e<o.length;e++){let n=o[e],r=k(n);t.pbmetallicdisplayproperties[r.id]=r}t.texture2dgroup={};let s=e.querySelectorAll(`texture2dgroup`);for(let e=0;e<s.length;e++){let n=s[e],r=ee(n);t.texture2dgroup[r.id]=r}t.object={};let c=e.querySelectorAll(`object`);for(let e=0;e<c.length;e++){let n=c[e],r=F(n);t.object[r.id]=r}return t}function L(e){let t=[],n=e.querySelectorAll(`item`);for(let e=0;e<n.length;e++){let r=n[e],i={objectId:r.getAttribute(`objectid`)},a=r.getAttribute(`transform`);a&&(i.transform=P(a)),t.push(i)}return t}function R(e){let t={unit:e.getAttribute(`unit`)||`millimeter`},n=e.querySelectorAll(`metadata`);n&&(t.metadata=w(n));let r=e.querySelector(`resources`);r&&(t.resources=I(r));let i=e.querySelector(`build`);return i&&(t.build=L(i)),t}function z(e,t,r,i){let o=e.texid,c=r.resources.texture2d[o];if(c){let e=i[c.path],t=c.contenttype,r=new Blob([e],{type:t}),o=URL.createObjectURL(r),l=x.load(o,function(){URL.revokeObjectURL(o)});switch(l.colorSpace=b,c.tilestyleu){case`wrap`:l.wrapS=n;break;case`mirror`:l.wrapS=f;break;case`none`:case`clamp`:l.wrapS=u;break;default:l.wrapS=n}switch(c.tilestylev){case`wrap`:l.wrapT=n;break;case`mirror`:l.wrapT=f;break;case`none`:case`clamp`:l.wrapT=u;break;default:l.wrapT=n}switch(c.filter){case`auto`:l.magFilter=a,l.minFilter=s;break;case`linear`:l.magFilter=a,l.minFilter=a,l.generateMipmaps=!1;break;case`nearest`:l.magFilter=h,l.minFilter=h,l.generateMipmaps=!1;break;default:l.magFilter=a,l.minFilter=s}return l}else return null}function B(e,t,n,r,i,a,o){let s=o.pindex,c={};for(let e=0,n=t.length;e<n;e++){let n=t[e],r=n.p1===void 0?s:n.p1;c[r]===void 0&&(c[r]=[]),c[r].push(n)}let u=Object.keys(c),d=[];for(let t=0,s=u.length;t<s;t++){let s=u[t],f=c[s],p=e.basematerials[s],m=Y(p,r,i,a,o,X),h=new g,v=[],y=n.vertices;for(let e=0,t=f.length;e<t;e++){let t=f[e];v.push(y[t.v1*3+0]),v.push(y[t.v1*3+1]),v.push(y[t.v1*3+2]),v.push(y[t.v2*3+0]),v.push(y[t.v2*3+1]),v.push(y[t.v2*3+2]),v.push(y[t.v3*3+0]),v.push(y[t.v3*3+1]),v.push(y[t.v3*3+2])}h.setAttribute(`position`,new _(v,3));let b=new l(h,m);d.push(b)}return d}function V(e,t,n,r,i,a,o){let s=new g,c=[],u=[],d=n.vertices,f=e.uvs;for(let e=0,n=t.length;e<n;e++){let n=t[e];c.push(d[n.v1*3+0]),c.push(d[n.v1*3+1]),c.push(d[n.v1*3+2]),c.push(d[n.v2*3+0]),c.push(d[n.v2*3+1]),c.push(d[n.v2*3+2]),c.push(d[n.v3*3+0]),c.push(d[n.v3*3+1]),c.push(d[n.v3*3+2]),u.push(f[n.p1*2+0]),u.push(f[n.p1*2+1]),u.push(f[n.p2*2+0]),u.push(f[n.p2*2+1]),u.push(f[n.p3*2+0]),u.push(f[n.p3*2+1])}return s.setAttribute(`position`,new _(c,3)),s.setAttribute(`uv`,new _(u,2)),new l(s,new m({map:Y(e,r,i,a,o,z),flatShading:!0}))}function H(e,t,n,r){let i=new g,a=[],o=[],s=n.vertices,c=e.colors;for(let e=0,n=t.length;e<n;e++){let n=t[e],i=n.v1,l=n.v2,u=n.v3;a.push(s[i*3+0]),a.push(s[i*3+1]),a.push(s[i*3+2]),a.push(s[l*3+0]),a.push(s[l*3+1]),a.push(s[l*3+2]),a.push(s[u*3+0]),a.push(s[u*3+1]),a.push(s[u*3+2]);let d=n.p1===void 0?r.pindex:n.p1,f=n.p2===void 0?d:n.p2,p=n.p3===void 0?d:n.p3;o.push(c[d*3+0]),o.push(c[d*3+1]),o.push(c[d*3+2]),o.push(c[f*3+0]),o.push(c[f*3+1]),o.push(c[f*3+2]),o.push(c[p*3+0]),o.push(c[p*3+1]),o.push(c[p*3+2])}return i.setAttribute(`position`,new _(a,3)),i.setAttribute(`color`,new _(o,3)),new l(i,new m({vertexColors:!0,flatShading:!0}))}function U(e){let t=new g;return t.setIndex(new d(e.triangles,1)),t.setAttribute(`position`,new d(e.vertices,3)),new l(t,new m({name:o.DEFAULT_MATERIAL_NAME,color:16777215,flatShading:!0}))}function W(e,t,n,r,i,a){let o=Object.keys(e),s=[];for(let c=0,l=o.length;c<l;c++){let l=o[c],u=e[l];switch(G(l,r)){case`material`:let e=r.resources.basematerials[l],o=B(e,u,t,n,r,i,a);for(let e=0,t=o.length;e<t;e++)s.push(o[e]);break;case`texture`:let c=r.resources.texture2dgroup[l];s.push(V(c,u,t,n,r,i,a));break;case`vertexColors`:let d=r.resources.colorgroup[l];s.push(H(d,u,t,a));break;case`default`:s.push(U(t));break;default:console.error(`THREE.3MFLoader: Unsupported resource type.`)}}if(a.name)for(let e=0;e<s.length;e++)s[e].name=a.name;return s}function G(e,t){if(t.resources.texture2dgroup[e]!==void 0)return`texture`;if(t.resources.basematerials[e]!==void 0)return`material`;if(t.resources.colorgroup[e]!==void 0)return`vertexColors`;if(e===`default`)return`default`}function K(e,t){let n={},r=e.triangleProperties,i=t.pid;for(let e=0,t=r.length;e<t;e++){let t=r[e],a=t.pid===void 0?i:t.pid;a===void 0&&(a=`default`),n[a]===void 0&&(n[a]=[]),n[a].push(t)}return n}function q(e,t,n,i,a){let o=new r,s=W(K(e,a),e,t,n,i,a);for(let e=0,t=s.length;e<t;e++)o.add(s[e]);return o}function J(e,t,n){if(!e)return;let r=[],i=Object.keys(e);for(let e=0;e<i.length;e++){let t=i[e];for(let e=0;e<v.availableExtensions.length;e++){let n=v.availableExtensions[e];n.ns===t&&r.push(n)}}for(let i=0;i<r.length;i++){let a=r[i];a.apply(n,e[a.ns],t)}}function Y(e,t,n,r,i,a){return e.build===void 0&&(e.build=a(e,t,n,r,i)),e.build}function X(e,t,n){let r,i=e.displaypropertiesid,a=n.resources.pbmetallicdisplayproperties;if(i!==null&&a[i]!==void 0){let t=a[i].data[e.index];r=new c({flatShading:!0,roughness:t.roughness,metalness:t.metallicness})}else r=new m({flatShading:!0});r.name=e.name;let o=e.displaycolor,s=o.substring(0,7);return r.color.setStyle(s,b),o.length===9&&(r.opacity=parseInt(o.charAt(7)+o.charAt(8),16)/255),r}function Z(e,t,n,i){let a=new r;for(let r=0;r<e.length;r++){let o=e[r],s=t[o.objectId];s===void 0&&(Q(o.objectId,t,n,i),s=t[o.objectId]);let c=s.clone(),l=o.transform;l&&c.applyMatrix4(l),a.add(c)}return a}function Q(e,t,n,r){let i=n.resources.object[e];if(i.mesh){let e=i.mesh,a=n.extensions,o=n.xml;J(a,e,o),t[i.id]=Y(e,t,n,r,i,q)}else{let e=i.components;t[i.id]=Y(e,t,n,r,i,Z)}i.name&&(t[i.id].name=i.name),n.resources.implicitfunction&&console.warn(`THREE.ThreeMFLoader: Implicit Functions are implemented in data-only.`,n.resources.implicitfunction)}function ne(e){let t=e.model,n=e.modelRels,r={},i=Object.keys(t),a={};if(n)for(let t=0,r=n.length;t<r;t++){let r=n[t],i=r.target.substring(1);e.texture[i]&&(a[r.target]=e.texture[i])}for(let e=0;e<i.length;e++){let n=t[i[e]],o=Object.keys(n.resources.object);for(let e=0;e<o.length;e++){let t=o[e];Q(t,r,n,a)}}return r}function re(e){for(let t=0;t<e.length;t++){let n=e[t];if(n.target.split(`.`).pop().toLowerCase()===`model`)return n}}function ie(e,t){let n=new r,i=re(t.rels),a=t.model[i.target.substring(1)].build;for(let t=0;t<a.length;t++){let r=a[t],i=e[r.objectId].clone(),o=r.transform;o&&i.applyMatrix4(o),n.add(i)}return n}let $=S(t);return ie(ne($),$)}addExtension(e){this.availableExtensions.push(e)}};export{x as ThreeMFLoader};
|
|
1
|
+
import{$ as e,C as t,Ct as n,E as r,Ft as i,H as a,K as o,U as s,at as c,et as l,f as u,l as d,ot as f,p,rt as m,st as h,u as g,w as _,wt as v}from"./three.module-BFsVh7r1.js";import{t as y}from"./fflate.module-BIQmJeC9.js";var b=v,x=class extends o{constructor(e){super(e),this.availableExtensions=[]}load(e,n,r,i){let a=this,o=new t(a.manager);o.setPath(a.path),o.setResponseType(`arraybuffer`),o.setRequestHeader(a.requestHeader),o.setWithCredentials(a.withCredentials),o.load(e,function(t){try{n(a.parse(t))}catch(t){i?i(t):console.error(t),a.manager.itemError(e)}},r,i)}parse(t){let v=this,x=new i(this.manager);function S(e){let t=null,n=null,r,i,a=[],o=[],s,c={},l={},u={},d=new TextDecoder;try{t=y(new Uint8Array(e))}catch(e){if(e instanceof ReferenceError)return console.error(`THREE.3MFLoader: fflate missing and file is compressed.`),null}let f=null;for(n in t)n.match(/\_rels\/.rels$/)?r=n:n.match(/3D\/_rels\/.*\.model\.rels$/)?i=n:n.match(/^3D\/[^\/]*\.model$/)?f=n:n.match(/^3D\/.*\/.*\.model$/)?a.push(n):n.match(/^3D\/Textures?\/.*/)&&o.push(n);if(a.push(f),r===void 0)throw Error("THREE.ThreeMFLoader: Cannot find relationship file `rels` in 3MF archive.");let p=t[r],m=C(d.decode(p));if(i){let e=t[i];s=C(d.decode(e))}for(let e=0;e<a.length;e++){let n=a[e],r=t[n],i=d.decode(r),o=new DOMParser().parseFromString(i,`application/xml`);o.documentElement.nodeName.toLowerCase()!==`model`&&console.error(`THREE.3MFLoader: Error loading 3MF - no 3MF document found: `,n);let s=o.querySelector(`model`),l={};for(let e=0;e<s.attributes.length;e++){let t=s.attributes[e];t.name.match(/^xmlns:(.+)$/)&&(l[t.value]=RegExp.$1)}let u=R(s);u.xml=s,0<Object.keys(l).length&&(u.extensions=l),c[n]=u}for(let e=0;e<o.length;e++){let n=o[e];u[n]=t[n].buffer}return{rels:m,modelRels:s,model:c,printTicket:l,texture:u}}function C(e){let t=[],n=new DOMParser().parseFromString(e,`application/xml`).querySelectorAll(`Relationship`);for(let e=0;e<n.length;e++){let r=n[e],i={target:r.getAttribute(`Target`),id:r.getAttribute(`Id`),type:r.getAttribute(`Type`)};t.push(i)}return t}function w(e){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=r.getAttribute(`name`);0<=[`Title`,`Designer`,`Description`,`Copyright`,`LicenseTerms`,`Rating`,`CreationDate`,`ModificationDate`].indexOf(i)&&(t[i]=r.textContent)}return t}function T(e){let t={id:e.getAttribute(`id`),basematerials:[]},n=e.querySelectorAll(`base`);for(let e=0;e<n.length;e++){let r=n[e],i=A(r);i.index=e,t.basematerials.push(i)}return t}function E(e){return{id:e.getAttribute(`id`),path:e.getAttribute(`path`),contenttype:e.getAttribute(`contenttype`),tilestyleu:e.getAttribute(`tilestyleu`),tilestylev:e.getAttribute(`tilestylev`),filter:e.getAttribute(`filter`)}}function ee(e){let t={id:e.getAttribute(`id`),texid:e.getAttribute(`texid`),displaypropertiesid:e.getAttribute(`displaypropertiesid`)},n=e.querySelectorAll(`tex2coord`),r=[];for(let e=0;e<n.length;e++){let t=n[e],i=t.getAttribute(`u`),a=t.getAttribute(`v`);r.push(parseFloat(i),parseFloat(a))}return t.uvs=new Float32Array(r),t}function te(e){let t={id:e.getAttribute(`id`),displaypropertiesid:e.getAttribute(`displaypropertiesid`)},n=e.querySelectorAll(`color`),r=[],i=new p;for(let e=0;e<n.length;e++){let t=n[e].getAttribute(`color`);i.setStyle(t.substring(0,7),b),r.push(i.r,i.g,i.b)}return t.colors=new Float32Array(r),t}function D(e){let t=e.children,n={};for(let e=0;e<t.length;e++){let r={type:t[e].nodeName.substring(2)};for(let n=0;n<t[e].attributes.length;n++){let i=t[e].attributes[n];i.specified&&(r[i.name]=i.value)}n[t[e].getAttribute(`identifier`)]=r}return n}function O(e){let t={id:e.getAttribute(`id`),displayname:e.getAttribute(`displayname`)},n=e.children,r={};for(let e=0;e<n.length;e++){let t=n[e];if(t.nodeName===`i:in`||t.nodeName===`i:out`)r[t.nodeName===`i:in`?`inputs`:`outputs`]=D(t);else{let e=t.children,n={op:t.nodeName.substring(2),identifier:t.getAttribute(`identifier`)};for(let t=0;t<e.length;t++)n[e[t].nodeName.substring(2)]=D(e[t]);r[n.identifier]=n}}return t.operations=r,t}function k(e){let t={id:e.getAttribute(`id`)},n=e.querySelectorAll(`pbmetallic`),r=[];for(let e=0;e<n.length;e++){let t=n[e];r.push({name:t.getAttribute(`name`),metallicness:parseFloat(t.getAttribute(`metallicness`)),roughness:parseFloat(t.getAttribute(`roughness`))})}return t.data=r,t}function A(e){let t={};return t.name=e.getAttribute(`name`),t.displaycolor=e.getAttribute(`displaycolor`),t.displaypropertiesid=e.getAttribute(`displaypropertiesid`),t}function j(e){let t={},n=[],r=e.querySelectorAll(`vertices vertex`);for(let e=0;e<r.length;e++){let t=r[e],i=t.getAttribute(`x`),a=t.getAttribute(`y`),o=t.getAttribute(`z`);n.push(parseFloat(i),parseFloat(a),parseFloat(o))}t.vertices=new Float32Array(n);let i=[],a=[],o=e.querySelectorAll(`triangles triangle`);for(let e=0;e<o.length;e++){let t=o[e],n=t.getAttribute(`v1`),r=t.getAttribute(`v2`),s=t.getAttribute(`v3`),c=t.getAttribute(`p1`),l=t.getAttribute(`p2`),u=t.getAttribute(`p3`),d=t.getAttribute(`pid`),f={};f.v1=parseInt(n,10),f.v2=parseInt(r,10),f.v3=parseInt(s,10),a.push(f.v1,f.v2,f.v3),c&&(f.p1=parseInt(c,10)),l&&(f.p2=parseInt(l,10)),u&&(f.p3=parseInt(u,10)),d&&(f.pid=d),0<Object.keys(f).length&&i.push(f)}return t.triangleProperties=i,t.triangles=new Uint32Array(a),t}function M(e){let t=[],n=e.querySelectorAll(`component`);for(let e=0;e<n.length;e++){let r=n[e],i=N(r);t.push(i)}return t}function N(e){let t={};t.objectId=e.getAttribute(`objectid`);let n=e.getAttribute(`transform`);return n&&(t.transform=P(n)),t}function P(t){let n=[];t.split(` `).forEach(function(e){n.push(parseFloat(e))});let r=new e;return r.set(n[0],n[3],n[6],n[9],n[1],n[4],n[7],n[10],n[2],n[5],n[8],n[11],0,0,0,1),r}function F(e){let t={type:e.getAttribute(`type`)},n=e.getAttribute(`id`);n&&(t.id=n);let r=e.getAttribute(`pid`);r&&(t.pid=r);let i=e.getAttribute(`pindex`);i&&(t.pindex=i);let a=e.getAttribute(`thumbnail`);a&&(t.thumbnail=a);let o=e.getAttribute(`partnumber`);o&&(t.partnumber=o);let s=e.getAttribute(`name`);s&&(t.name=s);let c=e.querySelector(`mesh`);c&&(t.mesh=j(c));let l=e.querySelector(`components`);return l&&(t.components=M(l)),t}function I(e){let t={};t.basematerials={};let n=e.querySelectorAll(`basematerials`);for(let e=0;e<n.length;e++){let r=n[e],i=T(r);t.basematerials[i.id]=i}t.texture2d={};let r=e.querySelectorAll(`texture2d`);for(let e=0;e<r.length;e++){let n=r[e],i=E(n);t.texture2d[i.id]=i}t.colorgroup={};let i=e.querySelectorAll(`colorgroup`);for(let e=0;e<i.length;e++){let n=i[e],r=te(n);t.colorgroup[r.id]=r}let a=e.querySelectorAll(`implicitfunction`);a.length>0&&(t.implicitfunction={});for(let e=0;e<a.length;e++){let n=a[e],r=O(n);t.implicitfunction[r.id]=r}t.pbmetallicdisplayproperties={};let o=e.querySelectorAll(`pbmetallicdisplayproperties`);for(let e=0;e<o.length;e++){let n=o[e],r=k(n);t.pbmetallicdisplayproperties[r.id]=r}t.texture2dgroup={};let s=e.querySelectorAll(`texture2dgroup`);for(let e=0;e<s.length;e++){let n=s[e],r=ee(n);t.texture2dgroup[r.id]=r}t.object={};let c=e.querySelectorAll(`object`);for(let e=0;e<c.length;e++){let n=c[e],r=F(n);t.object[r.id]=r}return t}function L(e){let t=[],n=e.querySelectorAll(`item`);for(let e=0;e<n.length;e++){let r=n[e],i={objectId:r.getAttribute(`objectid`)},a=r.getAttribute(`transform`);a&&(i.transform=P(a)),t.push(i)}return t}function R(e){let t={unit:e.getAttribute(`unit`)||`millimeter`},n=e.querySelectorAll(`metadata`);n&&(t.metadata=w(n));let r=e.querySelector(`resources`);r&&(t.resources=I(r));let i=e.querySelector(`build`);return i&&(t.build=L(i)),t}function z(e,t,r,i){let o=e.texid,c=r.resources.texture2d[o];if(c){let e=i[c.path],t=c.contenttype,r=new Blob([e],{type:t}),o=URL.createObjectURL(r),l=x.load(o,function(){URL.revokeObjectURL(o)});switch(l.colorSpace=b,c.tilestyleu){case`wrap`:l.wrapS=n;break;case`mirror`:l.wrapS=f;break;case`none`:case`clamp`:l.wrapS=u;break;default:l.wrapS=n}switch(c.tilestylev){case`wrap`:l.wrapT=n;break;case`mirror`:l.wrapT=f;break;case`none`:case`clamp`:l.wrapT=u;break;default:l.wrapT=n}switch(c.filter){case`auto`:l.magFilter=a,l.minFilter=s;break;case`linear`:l.magFilter=a,l.minFilter=a,l.generateMipmaps=!1;break;case`nearest`:l.magFilter=h,l.minFilter=h,l.generateMipmaps=!1;break;default:l.magFilter=a,l.minFilter=s}return l}else return null}function B(e,t,n,r,i,a,o){let s=o.pindex,c={};for(let e=0,n=t.length;e<n;e++){let n=t[e],r=n.p1===void 0?s:n.p1;c[r]===void 0&&(c[r]=[]),c[r].push(n)}let u=Object.keys(c),d=[];for(let t=0,s=u.length;t<s;t++){let s=u[t],f=c[s],p=e.basematerials[s],m=Y(p,r,i,a,o,X),h=new g,v=[],y=n.vertices;for(let e=0,t=f.length;e<t;e++){let t=f[e];v.push(y[t.v1*3+0]),v.push(y[t.v1*3+1]),v.push(y[t.v1*3+2]),v.push(y[t.v2*3+0]),v.push(y[t.v2*3+1]),v.push(y[t.v2*3+2]),v.push(y[t.v3*3+0]),v.push(y[t.v3*3+1]),v.push(y[t.v3*3+2])}h.setAttribute(`position`,new _(v,3));let b=new l(h,m);d.push(b)}return d}function V(e,t,n,r,i,a,o){let s=new g,c=[],u=[],d=n.vertices,f=e.uvs;for(let e=0,n=t.length;e<n;e++){let n=t[e];c.push(d[n.v1*3+0]),c.push(d[n.v1*3+1]),c.push(d[n.v1*3+2]),c.push(d[n.v2*3+0]),c.push(d[n.v2*3+1]),c.push(d[n.v2*3+2]),c.push(d[n.v3*3+0]),c.push(d[n.v3*3+1]),c.push(d[n.v3*3+2]),u.push(f[n.p1*2+0]),u.push(f[n.p1*2+1]),u.push(f[n.p2*2+0]),u.push(f[n.p2*2+1]),u.push(f[n.p3*2+0]),u.push(f[n.p3*2+1])}return s.setAttribute(`position`,new _(c,3)),s.setAttribute(`uv`,new _(u,2)),new l(s,new m({map:Y(e,r,i,a,o,z),flatShading:!0}))}function H(e,t,n,r){let i=new g,a=[],o=[],s=n.vertices,c=e.colors;for(let e=0,n=t.length;e<n;e++){let n=t[e],i=n.v1,l=n.v2,u=n.v3;a.push(s[i*3+0]),a.push(s[i*3+1]),a.push(s[i*3+2]),a.push(s[l*3+0]),a.push(s[l*3+1]),a.push(s[l*3+2]),a.push(s[u*3+0]),a.push(s[u*3+1]),a.push(s[u*3+2]);let d=n.p1===void 0?r.pindex:n.p1,f=n.p2===void 0?d:n.p2,p=n.p3===void 0?d:n.p3;o.push(c[d*3+0]),o.push(c[d*3+1]),o.push(c[d*3+2]),o.push(c[f*3+0]),o.push(c[f*3+1]),o.push(c[f*3+2]),o.push(c[p*3+0]),o.push(c[p*3+1]),o.push(c[p*3+2])}return i.setAttribute(`position`,new _(a,3)),i.setAttribute(`color`,new _(o,3)),new l(i,new m({vertexColors:!0,flatShading:!0}))}function U(e){let t=new g;return t.setIndex(new d(e.triangles,1)),t.setAttribute(`position`,new d(e.vertices,3)),new l(t,new m({name:o.DEFAULT_MATERIAL_NAME,color:16777215,flatShading:!0}))}function W(e,t,n,r,i,a){let o=Object.keys(e),s=[];for(let c=0,l=o.length;c<l;c++){let l=o[c],u=e[l];switch(G(l,r)){case`material`:let e=r.resources.basematerials[l],o=B(e,u,t,n,r,i,a);for(let e=0,t=o.length;e<t;e++)s.push(o[e]);break;case`texture`:let c=r.resources.texture2dgroup[l];s.push(V(c,u,t,n,r,i,a));break;case`vertexColors`:let d=r.resources.colorgroup[l];s.push(H(d,u,t,a));break;case`default`:s.push(U(t));break;default:console.error(`THREE.3MFLoader: Unsupported resource type.`)}}if(a.name)for(let e=0;e<s.length;e++)s[e].name=a.name;return s}function G(e,t){if(t.resources.texture2dgroup[e]!==void 0)return`texture`;if(t.resources.basematerials[e]!==void 0)return`material`;if(t.resources.colorgroup[e]!==void 0)return`vertexColors`;if(e==="default")return`default`}function K(e,t){let n={},r=e.triangleProperties,i=t.pid;for(let e=0,t=r.length;e<t;e++){let t=r[e],a=t.pid===void 0?i:t.pid;a===void 0&&(a=`default`),n[a]===void 0&&(n[a]=[]),n[a].push(t)}return n}function q(e,t,n,i,a){let o=new r,s=W(K(e,a),e,t,n,i,a);for(let e=0,t=s.length;e<t;e++)o.add(s[e]);return o}function J(e,t,n){if(!e)return;let r=[],i=Object.keys(e);for(let e=0;e<i.length;e++){let t=i[e];for(let e=0;e<v.availableExtensions.length;e++){let n=v.availableExtensions[e];n.ns===t&&r.push(n)}}for(let i=0;i<r.length;i++){let a=r[i];a.apply(n,e[a.ns],t)}}function Y(e,t,n,r,i,a){return e.build===void 0&&(e.build=a(e,t,n,r,i)),e.build}function X(e,t,n){let r,i=e.displaypropertiesid,a=n.resources.pbmetallicdisplayproperties;if(i!==null&&a[i]!==void 0){let t=a[i].data[e.index];r=new c({flatShading:!0,roughness:t.roughness,metalness:t.metallicness})}else r=new m({flatShading:!0});r.name=e.name;let o=e.displaycolor,s=o.substring(0,7);return r.color.setStyle(s,b),o.length===9&&(r.opacity=parseInt(o.charAt(7)+o.charAt(8),16)/255),r}function Z(e,t,n,i){let a=new r;for(let r=0;r<e.length;r++){let o=e[r],s=t[o.objectId];s===void 0&&(Q(o.objectId,t,n,i),s=t[o.objectId]);let c=s.clone(),l=o.transform;l&&c.applyMatrix4(l),a.add(c)}return a}function Q(e,t,n,r){let i=n.resources.object[e];if(i.mesh){let e=i.mesh,a=n.extensions,o=n.xml;J(a,e,o),t[i.id]=Y(e,t,n,r,i,q)}else{let e=i.components;t[i.id]=Y(e,t,n,r,i,Z)}i.name&&(t[i.id].name=i.name),n.resources.implicitfunction&&console.warn(`THREE.ThreeMFLoader: Implicit Functions are implemented in data-only.`,n.resources.implicitfunction)}function ne(e){let t=e.model,n=e.modelRels,r={},i=Object.keys(t),a={};if(n)for(let t=0,r=n.length;t<r;t++){let r=n[t],i=r.target.substring(1);e.texture[i]&&(a[r.target]=e.texture[i])}for(let e=0;e<i.length;e++){let n=t[i[e]],o=Object.keys(n.resources.object);for(let e=0;e<o.length;e++){let t=o[e];Q(t,r,n,a)}}return r}function re(e){for(let t=0;t<e.length;t++){let n=e[t];if(n.target.split(`.`).pop().toLowerCase()===`model`)return n}}function ie(e,t){let n=new r,i=re(t.rels),a=t.model[i.target.substring(1)].build;for(let t=0;t<a.length;t++){let r=a[t],i=e[r.objectId].clone(),o=r.transform;o&&i.applyMatrix4(o),n.add(i)}return n}let $=S(t);return ie(ne($),$)}addExtension(e){this.availableExtensions.push(e)}};export{x as ThreeMFLoader};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,E as t,K as n,et as r,p as i,rt as a,u as o,w as s}from"./three.module-
|
|
1
|
+
import{C as e,E as t,K as n,et as r,p as i,rt as a,u as o,w as s}from"./three.module-BFsVh7r1.js";import{t as c}from"./fflate.module-BIQmJeC9.js";var l=class extends n{constructor(e){super(e)}load(t,n,r,i){let a=this,o=new e(a.manager);o.setPath(a.path),o.setResponseType(`arraybuffer`),o.setRequestHeader(a.requestHeader),o.setWithCredentials(a.withCredentials),o.load(t,function(e){try{n(a.parse(e))}catch(e){i?i(e):console.error(e),a.manager.itemError(t)}},r,i)}parse(e){function l(e){let t=new DataView(e);if(String.fromCharCode(t.getUint8(0),t.getUint8(1))===`PK`){let n=null,r=null;console.log(`THREE.AMFLoader: Loading Zip`);try{n=c(new Uint8Array(e))}catch(e){if(e instanceof ReferenceError)return console.log(`THREE.AMFLoader: fflate missing and file is compressed.`),null}for(r in n)if(r.toLowerCase().slice(-4)===`.amf`)break;console.log(`THREE.AMFLoader: Trying to load file asset: `+r),t=new DataView(n[r].buffer)}let n=new TextDecoder().decode(t),r=new DOMParser().parseFromString(n,`application/xml`);return r.documentElement.nodeName.toLowerCase()===`amf`?r:(console.log(`THREE.AMFLoader: Error loading AMF - no AMF document found.`),null)}function u(e){let t=1,n=`millimeter`;e.documentElement.attributes.unit!==void 0&&(n=e.documentElement.attributes.unit.value.toLowerCase());let r={millimeter:1,inch:25.4,feet:304.8,meter:1e3,micron:.001};return r[n]!==void 0&&(t=r[n]),console.log(`THREE.AMFLoader: Unit scale: `+t),t}function d(e){let t=`AMF Material`,n=e.attributes.id.textContent,r={r:1,g:1,b:1,a:1},o=null;for(let n=0;n<e.childNodes.length;n++){let i=e.childNodes[n];i.nodeName===`metadata`&&i.attributes.type!==void 0?i.attributes.type.value===`name`&&(t=i.textContent):i.nodeName===`color`&&(r=f(i))}return o=new a({flatShading:!0,color:new i(r.r,r.g,r.b),name:t}),r.a!==1&&(o.transparent=!0,o.opacity=r.a),{id:n,material:o}}function f(e){let t={r:1,g:1,b:1,a:1};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];r.nodeName===`r`?t.r=r.textContent:r.nodeName===`g`?t.g=r.textContent:r.nodeName===`b`?t.b=r.textContent:r.nodeName===`a`&&(t.a=r.textContent)}return t}function p(e){let t={name:``,triangles:[],materialId:null},n=e.firstElementChild;for(e.attributes.materialid!==void 0&&(t.materialId=e.attributes.materialid.nodeValue);n;){if(n.nodeName===`metadata`)n.attributes.type!==void 0&&n.attributes.type.value===`name`&&(t.name=n.textContent);else if(n.nodeName===`triangle`){let e=n.getElementsByTagName(`v1`)[0].textContent,r=n.getElementsByTagName(`v2`)[0].textContent,i=n.getElementsByTagName(`v3`)[0].textContent;t.triangles.push(e,r,i)}n=n.nextElementSibling}return t}function m(e){let t=[],n=[],r=e.firstElementChild;for(;r;){if(r.nodeName===`vertex`){let e=r.firstElementChild;for(;e;){if(e.nodeName===`coordinates`){let n=e.getElementsByTagName(`x`)[0].textContent,r=e.getElementsByTagName(`y`)[0].textContent,i=e.getElementsByTagName(`z`)[0].textContent;t.push(n,r,i)}else if(e.nodeName===`normal`){let t=e.getElementsByTagName(`nx`)[0].textContent,r=e.getElementsByTagName(`ny`)[0].textContent,i=e.getElementsByTagName(`nz`)[0].textContent;n.push(t,r,i)}e=e.nextElementSibling}}r=r.nextElementSibling}return{vertices:t,normals:n}}function h(e){let t=e.attributes.id.textContent,n={name:`amfobject`,meshes:[]},r=null,i=e.firstElementChild;for(;i;){if(i.nodeName===`metadata`)i.attributes.type!==void 0&&i.attributes.type.value===`name`&&(n.name=i.textContent);else if(i.nodeName===`color`)r=f(i);else if(i.nodeName===`mesh`){let e=i.firstElementChild,t={vertices:[],normals:[],volumes:[],color:r};for(;e;){if(e.nodeName===`vertices`){let n=m(e);t.normals=t.normals.concat(n.normals),t.vertices=t.vertices.concat(n.vertices)}else e.nodeName===`volume`&&t.volumes.push(p(e));e=e.nextElementSibling}n.meshes.push(t)}i=i.nextElementSibling}return{id:t,obj:n}}let g=l(e),_=``,v=``,y=u(g),b={},x={},S=g.documentElement.childNodes,C,w;for(C=0;C<S.length;C++){let e=S[C];if(e.nodeName===`metadata`)e.attributes.type!==void 0&&(e.attributes.type.value===`name`?_=e.textContent:e.attributes.type.value===`author`&&(v=e.textContent));else if(e.nodeName===`material`){let t=d(e);b[t.id]=t.material}else if(e.nodeName===`object`){let t=h(e);x[t.id]=t.obj}}let T=new t,E=new a({name:n.DEFAULT_MATERIAL_NAME,color:11184895,flatShading:!0});T.name=_,T.userData.author=v,T.userData.loader=`AMF`;for(let e in x){let n=x[e],a=n.meshes,c=new t;for(c.name=n.name||``,C=0;C<a.length;C++){let e=E,t=a[C],n=new s(t.vertices,3),l=null;if(t.normals.length&&(l=new s(t.normals,3)),t.color){let n=t.color;e=E.clone(),e.color=new i(n.r,n.g,n.b),n.a!==1&&(e.transparent=!0,e.opacity=n.a)}let u=t.volumes;for(w=0;w<u.length;w++){let t=u[w],i=new o,a=e;i.setIndex(t.triangles),i.setAttribute(`position`,n.clone()),l&&i.setAttribute(`normal`,l.clone()),b[t.materialId]!==void 0&&(a=b[t.materialId]),i.scale(y,y,y),c.add(new r(i,a.clone()))}}T.add(c)}return T}};export{l as AMFLoader};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,h as t,o as n,r,s as i,w as a}from"./package-Bop5TfAT.js";import{A as o,D as s,J as c,O as ee,T as l,X as u,Y as te,_ as ne,b as re,f as d,g as ie,h as ae,i as f,o as p,r as m,s as h,t as oe,y as g}from"./runtime-core.esm-bundler-DO-WTVbd.js";import{t as _}from"./nestedRender-BAYFA7cb.js";var v=`flyfish-file-viewer-cache`,y=`archiveEntries`,b=1,x=24*1024*1024,S=96*1024*1024,C=null,w=()=>typeof indexedDB<`u`,T=()=>w()?C||(C=new Promise((e,t)=>{let n=indexedDB.open(v,b);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(y)||e.createObjectStore(y,{keyPath:`key`}).createIndex(`updatedAt`,`updatedAt`)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}),C):Promise.reject(Error(`IndexedDB 不可用`)),E=async(e,t)=>{let n=await T();return new Promise((r,i)=>{let a=n.transaction(y,e),o=t(a.objectStore(y));o.onsuccess=()=>r(o.result),o.onerror=()=>i(o.error),a.onerror=()=>i(a.error)})},D=async e=>{try{return await E(`readonly`,t=>t.get(e))||null}catch{return null}},O=async()=>{try{let e=await T();await new Promise((t,n)=>{let r=e.transaction(y,`readwrite`),i=r.objectStore(y),a=i.index(`updatedAt`),o=[],s=0;a.openCursor().onsuccess=e=>{let t=e.target.result;if(!t){for(;s>S&&o.length;){let e=o.shift();e&&(s-=e.size,i.delete(e.key))}return}let n=t.value;s+=n.size||0,o.push({key:n.key,size:n.size||0}),t.continue()},r.oncomplete=()=>t(),r.onerror=()=>n(r.error)})}catch{}},k=async e=>{if(!(e.size>x))try{await E(`readwrite`,t=>t.put({...e,updatedAt:Date.now()})),await O()}catch{}},A='/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst e=Symbol("Comlink.proxy"),r=Symbol("Comlink.endpoint"),t=Symbol("Comlink.releaseProxy"),n=Symbol("Comlink.finalizer"),o=Symbol("Comlink.thrown"),a=e=>"object"==typeof e&&null!==e||"function"==typeof e,s=new Map([["proxy",{canHandle:r=>a(r)&&r[e],serialize(e){const{port1:r,port2:t}=new MessageChannel;return i(e,r),[t,[t]]},deserialize(e){return e.start(),f(e,[],r);var r}}],["throw",{canHandle:e=>a(e)&&o in e,serialize({value:e}){let r;return r=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[r,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function i(r,t=globalThis,a=["*"]){t.addEventListener("message",(function s(l){if(!l||!l.data)return;if(!function(e,r){for(const t of e){if(r===t||"*"===t)return!0;if(t instanceof RegExp&&t.test(r))return!0}return!1}(a,l.origin))return void console.warn(`Invalid origin \'${l.origin}\' for comlink proxy`);const{id:c,type:d,path:h}=Object.assign({path:[]},l.data),f=(l.data.argumentList||[]).map(w);let m;try{const t=h.slice(0,-1).reduce(((e,r)=>e[r]),r),n=h.reduce(((e,r)=>e[r]),r);switch(d){case"GET":m=n;break;case"SET":t[h.slice(-1)[0]]=w(l.data.value),m=!0;break;case"APPLY":m=n.apply(t,f);break;case"CONSTRUCT":m=function(r){return Object.assign(r,{[e]:!0})}(new n(...f));break;case"ENDPOINT":{const{port1:e,port2:t}=new MessageChannel;i(r,t),m=function(e,r){return p.set(e,r),e}(e,[e])}break;case"RELEASE":m=void 0;break;default:return}}catch(e){m={value:e,[o]:0}}Promise.resolve(m).catch((e=>({value:e,[o]:0}))).then((e=>{const[o,a]=v(e);t.postMessage(Object.assign(Object.assign({},o),{id:c}),a),"RELEASE"===d&&(t.removeEventListener("message",s),u(t),n in r&&"function"==typeof r[n]&&r[n]())})).catch((e=>{const[r,n]=v({value:new TypeError("Unserializable return value"),[o]:0});t.postMessage(Object.assign(Object.assign({},r),{id:c}),n)}))})),t.start&&t.start()}function u(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function l(e){if(e)throw new Error("Proxy has been released and is not useable")}function c(e){return g(e,{type:"RELEASE"}).then((()=>{u(e)}))}const d=new WeakMap,h="FinalizationRegistry"in globalThis&&new FinalizationRegistry((e=>{const r=(d.get(e)||0)-1;d.set(e,r),0===r&&c(e)}));function f(e,n=[],o=function(){}){let a=!1;const s=new Proxy(o,{get(r,o){if(l(a),o===t)return()=>{!function(e){h&&h.unregister(e)}(s),c(e),a=!0};if("then"===o){if(0===n.length)return{then:()=>s};const r=g(e,{type:"GET",path:n.map((e=>e.toString()))}).then(w);return r.then.bind(r)}return f(e,[...n,o])},set(r,t,o){l(a);const[s,i]=v(o);return g(e,{type:"SET",path:[...n,t].map((e=>e.toString())),value:s},i).then(w)},apply(t,o,s){l(a);const i=n[n.length-1];if(i===r)return g(e,{type:"ENDPOINT"}).then(w);if("bind"===i)return f(e,n.slice(0,-1));const[u,c]=m(s);return g(e,{type:"APPLY",path:n.map((e=>e.toString())),argumentList:u},c).then(w)},construct(r,t){l(a);const[o,s]=m(t);return g(e,{type:"CONSTRUCT",path:n.map((e=>e.toString())),argumentList:o},s).then(w)}});return function(e,r){const t=(d.get(r)||0)+1;d.set(r,t),h&&h.register(e,r,e)}(s,e),s}function m(e){const r=e.map(v);return[r.map((e=>e[0])),(t=r.map((e=>e[1])),Array.prototype.concat.apply([],t))];var t}const p=new WeakMap;function v(e){for(const[r,t]of s)if(t.canHandle(e)){const[n,o]=t.serialize(e);return[{type:"HANDLER",name:r,value:n},o]}return[{type:"RAW",value:e},p.get(e)||[]]}function w(e){switch(e.type){case"HANDLER":return s.get(e.name).deserialize(e.value);case"RAW":return e.value}}function g(e,r,t){return new Promise((n=>{const o=new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-");e.addEventListener("message",(function r(t){t.data&&t.data.id&&t.data.id===o&&(e.removeEventListener("message",r),n(t.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:o},r),t)}))}const _={32768:"FILE",16384:"DIR",40960:"SYMBOLIC_LINK",49152:"SOCKET",8192:"CHARACTER_DEVICE",24576:"BLOCK_DEVICE",4096:"NAMED_PIPE"};class y{constructor(e){this._wasmModule=e,this._runCode=e.runCode,this._file=null,this._passphrase=null,this._locale="en_US.UTF-8"}async open(e){null!==this._file&&(console.warn("Closing previous file"),this.close());const r=await this._loadFile(e);this._fileLength=r.length,this._filePtr=r.ptr}close(){this._runCode.closeArchive(this._archive),this._wasmModule._free(this._filePtr),this._file=null,this._filePtr=null,this._archive=null}hasEncryptedData(){this._archive=this._runCode.openArchive(this._filePtr,this._fileLength,this._passphrase,this._locale),this._runCode.getNextEntry(this._archive);const e=this._runCode.hasEncryptedEntries(this._archive);return 0!==e&&(e>0||null)}setPassphrase(e){this._passphrase=e}setLocale(e){this._locale=e}*entries(e=!1,r=null){let t;for(this._archive=this._runCode.openArchive(this._filePtr,this._fileLength,this._passphrase,this._locale);t=this._runCode.getNextEntry(this._archive),0!==t;){const n={size:this._runCode.getEntrySize(t),path:this._runCode.getEntryName(t),type:_[this._runCode.getEntryType(t)],lastModified:this._runCode.getEntryLastModified(t),ref:t};if("FILE"===n.type){let e=n.path.split("/");n.fileName=e[e.length-1]}if(e&&r!==n.path)this._runCode.skipEntry(this._archive);else{const e=this._runCode.getFileData(this._archive,n.size);if(e<0)throw new Error(this._runCode.getError(this._archive));n.fileData=this._wasmModule.HEAPU8.slice(e,e+n.size),this._wasmModule._free(e)}yield n}}async _loadFile(e){const r=await e.arrayBuffer(),t=new Uint8Array(r),n=this._runCode.malloc(t.length);return this._wasmModule.HEAPU8.set(t,n),{ptr:n,length:t.length}}}class E{constructor(e){this._wasmModule=e,this._runCode=e.runCode,this._passphrase=null,this._locale="en_US.UTF-8"}async write(e,r,t,n=null){let o=e.reduce(((e,{file:r})=>e+r.size+128),0)+128;const a=this._runCode.malloc(o),s=this._runCode.malloc(this._runCode.sizeOfSizeT()),i=this._runCode.startArchiveWrite(r,t,a,o,s,n);for(const{file:r,pathname:t}of e){const e=await this._loadFile(r);this._runCode.writeArchiveFile(i,t||r.name,e.length,e.ptr),this._runCode.free(e.ptr)}const u=this._runCode.finishArchiveWrite(i,s);if(u<0)throw new Error(this._runCode.getError(i));return this._wasmModule.HEAPU8.slice(a,a+u)}async _loadFile(e){const r=await e.arrayBuffer(),t=new Uint8Array(r),n=this._runCode.malloc(t.length);return this._wasmModule.HEAPU8.set(t,n),{ptr:n,length:t.length}}}var b,k=(b=import.meta.url,async function(e={}){var r,t,n=e;n.ready=new Promise(((e,n)=>{r=e,t=n}));var o,a,s,i=Object.assign({},n),u="./this.program",l=(e,r)=>{throw r},c="object"==typeof window,d="function"==typeof importScripts,h="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,f="";if(h){const{createRequire:e}=await import("module");var m=e(import.meta.url),p=m("fs"),v=m("path");f=d?v.dirname(f)+"/":m("url").fileURLToPath(new URL("./",import.meta.url)),o=(e,r)=>(e=Y(e)?new URL(e):v.normalize(e),p.readFileSync(e,r?void 0:"utf8")),s=e=>{var r=o(e,!0);return r.buffer||(r=new Uint8Array(r)),r},a=(e,r,t,n=!0)=>{e=Y(e)?new URL(e):v.normalize(e),p.readFile(e,n?void 0:"utf8",((e,o)=>{e?t(e):r(n?o.buffer:o)}))},!n.thisProgram&&process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,"/")),process.argv.slice(2),l=(e,r)=>{throw process.exitCode=e,r},n.inspect=()=>"[Emscripten Module object]"}else(c||d)&&(d?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),b&&(f=b),f=0!==f.indexOf("blob:")?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"",o=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},d&&(s=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),a=(e,r,t)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?r(n.response):t()},n.onerror=t,n.send(null)});var w,g,_=n.print||console.log.bind(console),y=n.printErr||console.error.bind(console);Object.assign(n,i),i=null,n.arguments&&n.arguments,n.thisProgram&&(u=n.thisProgram),n.quit&&(l=n.quit),n.wasmBinary&&(w=n.wasmBinary),"object"!=typeof WebAssembly&&O("no native wasm support detected");var E,k,S,F,D,M=!1;function A(e,r){e||O(r)}function C(){var e=g.buffer;n.HEAP8=E=new Int8Array(e),n.HEAP16=S=new Int16Array(e),n.HEAPU8=k=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAP32=F=new Int32Array(e),n.HEAPU32=D=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e)}var P=[],T=[],R=[],z=0,U=null;function L(e){z++,n.monitorRunDependencies?.(z)}function x(e){if(z--,n.monitorRunDependencies?.(z),0==z&&U){var r=U;U=null,r()}}function O(e){n.onAbort?.(e),y(e="Aborted("+e+")"),M=!0,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw t(r),r}var N,B,j,I,H=e=>e.startsWith("data:application/octet-stream;base64,"),Y=e=>e.startsWith("file://");function W(e){if(e==N&&w)return new Uint8Array(w);if(s)return s(e);throw"both async and sync fetching of the wasm failed"}function K(e,r,t){return function(e){if(!w&&(c||d)){if("function"==typeof fetch&&!Y(e))return fetch(e,{credentials:"same-origin"}).then((r=>{if(!r.ok)throw"failed to load wasm binary file at \'"+e+"\'";return r.arrayBuffer()})).catch((()=>W(e)));if(a)return new Promise(((r,t)=>{a(e,(e=>r(new Uint8Array(e))),t)}))}return Promise.resolve().then((()=>W(e)))}(e).then((e=>WebAssembly.instantiate(e,r))).then((e=>e)).then(t,(e=>{y(`failed to asynchronously prepare wasm: ${e}`),O(e)}))}function q(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}n.locateFile?H(N="libarchive.wasm")||(B=N,N=n.locateFile?n.locateFile(B,f):f+B):N=new URL("libarchive.wasm",import.meta.url).href;var $=e=>{for(;e.length>0;)e.shift()(n)},X=n.noExitRuntime||!0,Z={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1),normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=Z.isAbs(e),t="/"===e.substr(-1);return(e=Z.normalizeArray(e.split("/").filter((e=>!!e)),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=Z.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:e=>{if("/"===e)return"/";var r=(e=(e=Z.normalize(e)).replace(/\\/$/,"")).lastIndexOf("/");return-1===r?e:e.substr(r+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Z.normalize(e.join("/"))},join2:(e,r)=>Z.normalize(e+"/"+r)},G=e=>(G=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=>crypto.getRandomValues(e);if(h)try{var e=m("crypto");if(e.randomFillSync)return r=>e.randomFillSync(r);var r=e.randomBytes;return e=>(e.set(r(e.byteLength)),e)}catch(e){}O("initRandomDevice")})())(e),V={resolve:function(){for(var e="",r=!1,t=arguments.length-1;t>=-1&&!r;t--){var n=t>=0?arguments[t]:le.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r=Z.isAbs(n)}return(r?"/":"")+(e=Z.normalizeArray(e.split("/").filter((e=>!!e)),!r).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;t>=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=V.resolve(e).substr(1),r=V.resolve(r).substr(1);for(var n=t(e.split("/")),o=t(r.split("/")),a=Math.min(n.length,o.length),s=a,i=0;i<a;i++)if(n[i]!==o[i]){s=i;break}var u=[];for(i=s;i<n.length;i++)u.push("..");return(u=u.concat(o.slice(s))).join("/")}},J="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Q=(e,r,t)=>{for(var n=r+t,o=r;e[o]&&!(o>=n);)++o;if(o-r>16&&e.buffer&&J)return J.decode(e.subarray(r,o));for(var a="";r<o;){var s=e[r++];if(128&s){var i=63&e[r++];if(192!=(224&s)){var u=63&e[r++];if((s=224==(240&s)?(15&s)<<12|i<<6|u:(7&s)<<18|i<<12|u<<6|63&e[r++])<65536)a+=String.fromCharCode(s);else{var l=s-65536;a+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else a+=String.fromCharCode((31&s)<<6|i)}else a+=String.fromCharCode(s)}return a},ee=[],re=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},te=(e,r,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,s=0;s<e.length;++s){var i=e.charCodeAt(s);if(i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++s)),i<=127){if(t>=a)break;r[t++]=i}else if(i<=2047){if(t+1>=a)break;r[t++]=192|i>>6,r[t++]=128|63&i}else if(i<=65535){if(t+2>=a)break;r[t++]=224|i>>12,r[t++]=128|i>>6&63,r[t++]=128|63&i}else{if(t+3>=a)break;r[t++]=240|i>>18,r[t++]=128|i>>12&63,r[t++]=128|i>>6&63,r[t++]=128|63&i}}return r[t]=0,t-o};function ne(e,r,t){var n=t>0?t:re(e)+1,o=new Array(n),a=te(e,o,0,o.length);return r&&(o.length=a),o}var oe={ttys:[],init(){},shutdown(){},register(e,r){oe.ttys[e]={input:[],output:[],ops:r},le.registerDevice(e,oe.stream_ops)},stream_ops:{open(e){var r=oe.ttys[e.node.rdev];if(!r)throw new le.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new le.ErrnoError(60);for(var a=0,s=0;s<n;s++){var i;try{i=e.tty.ops.get_char(e.tty)}catch(e){throw new le.ErrnoError(29)}if(void 0===i&&0===a)throw new le.ErrnoError(6);if(null==i)break;a++,r[t+s]=i}return a&&(e.node.timestamp=Date.now()),a},write(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new le.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,r[t+a])}catch(e){throw new le.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:e=>(()=>{if(!ee.length){var e=null;if(h){var r=Buffer.alloc(256),t=0,n=process.stdin.fd;try{t=p.readSync(n,r)}catch(e){if(!e.toString().includes("EOF"))throw e;t=0}e=t>0?r.slice(0,t).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\\n");if(!e)return null;ee=ne(e,!0)}return ee.shift()})(),put_char(e,r){null===r||10===r?(_(Q(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&(_(Q(e.output,0)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,r,t)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,r){null===r||10===r?(y(Q(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&(y(Q(e.output,0)),e.output=[])}}},ae=e=>{O()},se={ops_table:null,mount:e=>se.createNode(null,"/",16895,0),createNode(e,r,t,n){if(le.isBlkdev(t)||le.isFIFO(t))throw new le.ErrnoError(63);se.ops_table||={dir:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,lookup:se.node_ops.lookup,mknod:se.node_ops.mknod,rename:se.node_ops.rename,unlink:se.node_ops.unlink,rmdir:se.node_ops.rmdir,readdir:se.node_ops.readdir,symlink:se.node_ops.symlink},stream:{llseek:se.stream_ops.llseek}},file:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:{llseek:se.stream_ops.llseek,read:se.stream_ops.read,write:se.stream_ops.write,allocate:se.stream_ops.allocate,mmap:se.stream_ops.mmap,msync:se.stream_ops.msync}},link:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,readlink:se.node_ops.readlink},stream:{}},chrdev:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:le.chrdev_stream_ops}};var o=le.createNode(e,r,t,n);return le.isDir(o.mode)?(o.node_ops=se.ops_table.dir.node,o.stream_ops=se.ops_table.dir.stream,o.contents={}):le.isFile(o.mode)?(o.node_ops=se.ops_table.file.node,o.stream_ops=se.ops_table.file.stream,o.usedBytes=0,o.contents=null):le.isLink(o.mode)?(o.node_ops=se.ops_table.link.node,o.stream_ops=se.ops_table.link.stream):le.isChrdev(o.mode)&&(o.node_ops=se.ops_table.chrdev.node,o.stream_ops=se.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[r]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var n=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=le.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,le.isDir(e.mode)?r.size=4096:le.isFile(e.mode)?r.size=e.usedBytes:le.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&se.resizeFileStorage(e,r.size)},lookup(e,r){throw le.genericErrors[44]},mknod:(e,r,t,n)=>se.createNode(e,r,t,n),rename(e,r,t){if(le.isDir(e.mode)){var n;try{n=le.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new le.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,r.contents[t]=e,r.timestamp=e.parent.timestamp,e.parent=r},unlink(e,r){delete e.contents[r],e.timestamp=Date.now()},rmdir(e,r){var t=le.lookupNode(e,r);for(var n in t.contents)throw new le.ErrnoError(55);delete e.contents[r],e.timestamp=Date.now()},readdir(e){var r=[".",".."];for(var t of Object.keys(e.contents))r.push(t);return r},symlink(e,r,t){var n=se.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!le.isLink(e.mode))throw new le.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-o,n);if(s>8&&a.subarray)r.set(a.subarray(o,o+s),t);else for(var i=0;i<s;i++)r[t+i]=a[o+i];return s},write(e,r,t,n,o,a){if(r.buffer===E.buffer&&(a=!1),!n)return 0;var s=e.node;if(s.timestamp=Date.now(),r.subarray&&(!s.contents||s.contents.subarray)){if(a)return s.contents=r.subarray(t,t+n),s.usedBytes=n,n;if(0===s.usedBytes&&0===o)return s.contents=r.slice(t,t+n),s.usedBytes=n,n;if(o+n<=s.usedBytes)return s.contents.set(r.subarray(t,t+n),o),n}if(se.expandFileStorage(s,o+n),s.contents.subarray&&r.subarray)s.contents.set(r.subarray(t,t+n),o);else for(var i=0;i<n;i++)s.contents[o+i]=r[t+i];return s.usedBytes=Math.max(s.usedBytes,o+n),n},llseek(e,r,t){var n=r;if(1===t?n+=e.position:2===t&&le.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new le.ErrnoError(28);return n},allocate(e,r,t){se.expandFileStorage(e.node,r+t),e.node.usedBytes=Math.max(e.node.usedBytes,r+t)},mmap(e,r,t,n,o){if(!le.isFile(e.node.mode))throw new le.ErrnoError(43);var a,s,i=e.node.contents;if(2&o||i.buffer!==E.buffer){if((t>0||t+r<i.length)&&(i=i.subarray?i.subarray(t,t+r):Array.prototype.slice.call(i,t,t+r)),s=!0,!(a=ae()))throw new le.ErrnoError(48);E.set(i,a)}else s=!1,a=i.byteOffset;return{ptr:a,allocated:s}},msync:(e,r,t,n,o)=>(se.stream_ops.write(e,r,0,n,t,!1),0)}},ie=n.preloadPlugins||[],ue=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},le={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,r={}){if(!(e=V.resolve(e)))return{path:"",node:null};if((r=Object.assign({follow_mount:!0,recurse_count:0},r)).recurse_count>8)throw new le.ErrnoError(32);for(var t=e.split("/").filter((e=>!!e)),n=le.root,o="/",a=0;a<t.length;a++){var s=a===t.length-1;if(s&&r.parent)break;if(n=le.lookupNode(n,t[a]),o=Z.join2(o,t[a]),le.isMountpoint(n)&&(!s||s&&r.follow_mount)&&(n=n.mounted.root),!s||r.follow)for(var i=0;le.isLink(n.mode);){var u=le.readlink(o);if(o=V.resolve(Z.dirname(o),u),n=le.lookupPath(o,{recurse_count:r.recurse_count+1}).node,i++>40)throw new le.ErrnoError(32)}}return{path:o,node:n}},getPath(e){for(var r;;){if(le.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%le.nameTable.length},hashAddNode(e){var r=le.hashName(e.parent.id,e.name);e.name_next=le.nameTable[r],le.nameTable[r]=e},hashRemoveNode(e){var r=le.hashName(e.parent.id,e.name);if(le.nameTable[r]===e)le.nameTable[r]=e.name_next;else for(var t=le.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=le.mayLookup(e);if(t)throw new le.ErrnoError(t,e);for(var n=le.hashName(e.id,r),o=le.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===e.id&&a===r)return o}return le.lookup(e,r)},createNode(e,r,t,n){var o=new le.FSNode(e,r,t,n);return le.hashAddNode(o),o},destroyNode(e){le.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagsToPermissionString(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:(e,r)=>le.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2,mayLookup(e){var r=le.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){try{return le.lookupNode(e,r),20}catch(e){}return le.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=le.lookupNode(e,r)}catch(e){return e.errno}var o=le.nodePermissions(e,"wx");if(o)return o;if(t){if(!le.isDir(n.mode))return 54;if(le.isRoot(n)||le.getPath(n)===le.cwd())return 10}else if(le.isDir(n.mode))return 31;return 0},mayOpen:(e,r)=>e?le.isLink(e.mode)?32:le.isDir(e.mode)&&("r"!==le.flagsToPermissionString(r)||512&r)?31:le.nodePermissions(e,le.flagsToPermissionString(r)):44,MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=le.MAX_OPEN_FDS;e++)if(!le.streams[e])return e;throw new le.ErrnoError(33)},getStreamChecked(e){var r=le.getStream(e);if(!r)throw new le.ErrnoError(8);return r},getStream:e=>le.streams[e],createStream:(e,r=-1)=>(le.FSStream||(le.FSStream=function(){this.shared={}},le.FSStream.prototype={},Object.defineProperties(le.FSStream.prototype,{object:{get(){return this.node},set(e){this.node=e}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return 0!=(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(e){this.shared.flags=e}},position:{get(){return this.shared.position},set(e){this.shared.position=e}}})),e=Object.assign(new le.FSStream,e),-1==r&&(r=le.nextfd()),e.fd=r,le.streams[r]=e,e),closeStream(e){le.streams[e]=null},chrdev_stream_ops:{open(e){var r=le.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new le.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice(e,r){le.devices[e]={stream_ops:r}},getDevice:e=>le.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs(e,r){"function"==typeof e&&(r=e,e=!1),le.syncFSRequests++,le.syncFSRequests>1&&y(`warning: ${le.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=le.getMounts(le.root.mount),n=0;function o(e){return le.syncFSRequests--,r(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++n>=t.length&&o(null)}t.forEach((r=>{if(!r.type.syncfs)return a(null);r.type.syncfs(r,e,a)}))},mount(e,r,t){var n,o="/"===t,a=!t;if(o&&le.root)throw new le.ErrnoError(10);if(!o&&!a){var s=le.lookupPath(t,{follow_mount:!1});if(t=s.path,n=s.node,le.isMountpoint(n))throw new le.ErrnoError(10);if(!le.isDir(n.mode))throw new le.ErrnoError(54)}var i={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(i);return u.mount=i,i.root=u,o?le.root=u:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),u},unmount(e){var r=le.lookupPath(e,{follow_mount:!1});if(!le.isMountpoint(r.node))throw new le.ErrnoError(28);var t=r.node,n=t.mounted,o=le.getMounts(n);Object.keys(le.nameTable).forEach((e=>{for(var r=le.nameTable[e];r;){var t=r.name_next;o.includes(r.mount)&&le.destroyNode(r),r=t}})),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:(e,r)=>e.node_ops.lookup(e,r),mknod(e,r,t){var n=le.lookupPath(e,{parent:!0}).node,o=Z.basename(e);if(!o||"."===o||".."===o)throw new le.ErrnoError(28);var a=le.mayCreate(n,o);if(a)throw new le.ErrnoError(a);if(!n.node_ops.mknod)throw new le.ErrnoError(63);return n.node_ops.mknod(n,o,r,t)},create:(e,r)=>(r=void 0!==r?r:438,r&=4095,r|=32768,le.mknod(e,r,0)),mkdir:(e,r)=>(r=void 0!==r?r:511,r&=1023,r|=16384,le.mknod(e,r,0)),mkdirTree(e,r){for(var t=e.split("/"),n="",o=0;o<t.length;++o)if(t[o]){n+="/"+t[o];try{le.mkdir(n,r)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,r,t)=>(void 0===t&&(t=r,r=438),r|=8192,le.mknod(e,r,t)),symlink(e,r){if(!V.resolve(e))throw new le.ErrnoError(44);var t=le.lookupPath(r,{parent:!0}).node;if(!t)throw new le.ErrnoError(44);var n=Z.basename(r),o=le.mayCreate(t,n);if(o)throw new le.ErrnoError(o);if(!t.node_ops.symlink)throw new le.ErrnoError(63);return t.node_ops.symlink(t,n,e)},rename(e,r){var t,n,o=Z.dirname(e),a=Z.dirname(r),s=Z.basename(e),i=Z.basename(r);if(t=le.lookupPath(e,{parent:!0}).node,n=le.lookupPath(r,{parent:!0}).node,!t||!n)throw new le.ErrnoError(44);if(t.mount!==n.mount)throw new le.ErrnoError(75);var u,l=le.lookupNode(t,s),c=V.relative(e,a);if("."!==c.charAt(0))throw new le.ErrnoError(28);if("."!==(c=V.relative(r,o)).charAt(0))throw new le.ErrnoError(55);try{u=le.lookupNode(n,i)}catch(e){}if(l!==u){var d=le.isDir(l.mode),h=le.mayDelete(t,s,d);if(h)throw new le.ErrnoError(h);if(h=u?le.mayDelete(n,i,d):le.mayCreate(n,i))throw new le.ErrnoError(h);if(!t.node_ops.rename)throw new le.ErrnoError(63);if(le.isMountpoint(l)||u&&le.isMountpoint(u))throw new le.ErrnoError(10);if(n!==t&&(h=le.nodePermissions(t,"w")))throw new le.ErrnoError(h);le.hashRemoveNode(l);try{t.node_ops.rename(l,n,i)}catch(e){throw e}finally{le.hashAddNode(l)}}},rmdir(e){var r=le.lookupPath(e,{parent:!0}).node,t=Z.basename(e),n=le.lookupNode(r,t),o=le.mayDelete(r,t,!0);if(o)throw new le.ErrnoError(o);if(!r.node_ops.rmdir)throw new le.ErrnoError(63);if(le.isMountpoint(n))throw new le.ErrnoError(10);r.node_ops.rmdir(r,t),le.destroyNode(n)},readdir(e){var r=le.lookupPath(e,{follow:!0}).node;if(!r.node_ops.readdir)throw new le.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){var r=le.lookupPath(e,{parent:!0}).node;if(!r)throw new le.ErrnoError(44);var t=Z.basename(e),n=le.lookupNode(r,t),o=le.mayDelete(r,t,!1);if(o)throw new le.ErrnoError(o);if(!r.node_ops.unlink)throw new le.ErrnoError(63);if(le.isMountpoint(n))throw new le.ErrnoError(10);r.node_ops.unlink(r,t),le.destroyNode(n)},readlink(e){var r=le.lookupPath(e).node;if(!r)throw new le.ErrnoError(44);if(!r.node_ops.readlink)throw new le.ErrnoError(28);return V.resolve(le.getPath(r.parent),r.node_ops.readlink(r))},stat(e,r){var t=le.lookupPath(e,{follow:!r}).node;if(!t)throw new le.ErrnoError(44);if(!t.node_ops.getattr)throw new le.ErrnoError(63);return t.node_ops.getattr(t)},lstat:e=>le.stat(e,!0),chmod(e,r,t){var n;if(!(n="string"==typeof e?le.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new le.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&r|-4096&n.mode,timestamp:Date.now()})},lchmod(e,r){le.chmod(e,r,!0)},fchmod(e,r){var t=le.getStreamChecked(e);le.chmod(t.node,r)},chown(e,r,t,n){var o;if(!(o="string"==typeof e?le.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new le.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(e,r,t){le.chown(e,r,t,!0)},fchown(e,r,t){var n=le.getStreamChecked(e);le.chown(n.node,r,t)},truncate(e,r){if(r<0)throw new le.ErrnoError(28);var t;if(!(t="string"==typeof e?le.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new le.ErrnoError(63);if(le.isDir(t.mode))throw new le.ErrnoError(31);if(!le.isFile(t.mode))throw new le.ErrnoError(28);var n=le.nodePermissions(t,"w");if(n)throw new le.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate(e,r){var t=le.getStreamChecked(e);if(0==(2097155&t.flags))throw new le.ErrnoError(28);le.truncate(t.node,r)},utime(e,r,t){var n=le.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open(e,r,t){if(""===e)throw new le.ErrnoError(44);var o;if(t=void 0===t?438:t,t=64&(r="string"==typeof r?(e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===r)throw new Error(`Unknown file open mode: ${e}`);return r})(r):r)?4095&t|32768:0,"object"==typeof e)o=e;else{e=Z.normalize(e);try{o=le.lookupPath(e,{follow:!(131072&r)}).node}catch(e){}}var a=!1;if(64&r)if(o){if(128&r)throw new le.ErrnoError(20)}else o=le.mknod(e,t,0),a=!0;if(!o)throw new le.ErrnoError(44);if(le.isChrdev(o.mode)&&(r&=-513),65536&r&&!le.isDir(o.mode))throw new le.ErrnoError(54);if(!a){var s=le.mayOpen(o,r);if(s)throw new le.ErrnoError(s)}512&r&&!a&&le.truncate(o,0),r&=-131713;var i=le.createStream({node:o,path:le.getPath(o),flags:r,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return i.stream_ops.open&&i.stream_ops.open(i),!n.logReadFiles||1&r||(le.readFiles||(le.readFiles={}),e in le.readFiles||(le.readFiles[e]=1)),i},close(e){if(le.isClosed(e))throw new le.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{le.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,r,t){if(le.isClosed(e))throw new le.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new le.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new le.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,o){if(n<0||o<0)throw new le.ErrnoError(28);if(le.isClosed(e))throw new le.ErrnoError(8);if(1==(2097155&e.flags))throw new le.ErrnoError(8);if(le.isDir(e.node.mode))throw new le.ErrnoError(31);if(!e.stream_ops.read)throw new le.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new le.ErrnoError(70)}else o=e.position;var s=e.stream_ops.read(e,r,t,n,o);return a||(e.position+=s),s},write(e,r,t,n,o,a){if(n<0||o<0)throw new le.ErrnoError(28);if(le.isClosed(e))throw new le.ErrnoError(8);if(0==(2097155&e.flags))throw new le.ErrnoError(8);if(le.isDir(e.node.mode))throw new le.ErrnoError(31);if(!e.stream_ops.write)throw new le.ErrnoError(28);e.seekable&&1024&e.flags&&le.llseek(e,0,2);var s=void 0!==o;if(s){if(!e.seekable)throw new le.ErrnoError(70)}else o=e.position;var i=e.stream_ops.write(e,r,t,n,o,a);return s||(e.position+=i),i},allocate(e,r,t){if(le.isClosed(e))throw new le.ErrnoError(8);if(r<0||t<=0)throw new le.ErrnoError(28);if(0==(2097155&e.flags))throw new le.ErrnoError(8);if(!le.isFile(e.node.mode)&&!le.isDir(e.node.mode))throw new le.ErrnoError(43);if(!e.stream_ops.allocate)throw new le.ErrnoError(138);e.stream_ops.allocate(e,r,t)},mmap(e,r,t,n,o){if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new le.ErrnoError(2);if(1==(2097155&e.flags))throw new le.ErrnoError(2);if(!e.stream_ops.mmap)throw new le.ErrnoError(43);return e.stream_ops.mmap(e,r,t,n,o)},msync:(e,r,t,n,o)=>e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0,munmap:e=>0,ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new le.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error(`Invalid encoding type "${r.encoding}"`);var t,n=le.open(e,r.flags),o=le.stat(e).size,a=new Uint8Array(o);return le.read(n,a,0,o,0),"utf8"===r.encoding?t=Q(a,0):"binary"===r.encoding&&(t=a),le.close(n),t},writeFile(e,r,t={}){t.flags=t.flags||577;var n=le.open(e,t.flags,t.mode);if("string"==typeof r){var o=new Uint8Array(re(r)+1),a=te(r,o,0,o.length);le.write(n,o,0,a,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");le.write(n,r,0,r.byteLength,void 0,t.canOwn)}le.close(n)},cwd:()=>le.currentPath,chdir(e){var r=le.lookupPath(e,{follow:!0});if(null===r.node)throw new le.ErrnoError(44);if(!le.isDir(r.node.mode))throw new le.ErrnoError(54);var t=le.nodePermissions(r.node,"x");if(t)throw new le.ErrnoError(t);le.currentPath=r.path},createDefaultDirectories(){le.mkdir("/tmp"),le.mkdir("/home"),le.mkdir("/home/web_user")},createDefaultDevices(){le.mkdir("/dev"),le.registerDevice(le.makedev(1,3),{read:()=>0,write:(e,r,t,n,o)=>n}),le.mkdev("/dev/null",le.makedev(1,3)),oe.register(le.makedev(5,0),oe.default_tty_ops),oe.register(le.makedev(6,0),oe.default_tty1_ops),le.mkdev("/dev/tty",le.makedev(5,0)),le.mkdev("/dev/tty1",le.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(0===r&&(r=G(e).byteLength),e[--r]);le.createDevice("/dev","random",t),le.createDevice("/dev","urandom",t),le.mkdir("/dev/shm"),le.mkdir("/dev/shm/tmp")},createSpecialDirectories(){le.mkdir("/proc");var e=le.mkdir("/proc/self");le.mkdir("/proc/self/fd"),le.mount({mount(){var r=le.createNode(e,"fd",16895,73);return r.node_ops={lookup(e,r){var t=+r,n=le.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},r}},{},"/proc/self/fd")},createStandardStreams(){n.stdin?le.createDevice("/dev","stdin",n.stdin):le.symlink("/dev/tty","/dev/stdin"),n.stdout?le.createDevice("/dev","stdout",null,n.stdout):le.symlink("/dev/tty","/dev/stdout"),n.stderr?le.createDevice("/dev","stderr",null,n.stderr):le.symlink("/dev/tty1","/dev/stderr"),le.open("/dev/stdin",0),le.open("/dev/stdout",1),le.open("/dev/stderr",1)},ensureErrnoError(){le.ErrnoError||(le.ErrnoError=function(e,r){this.name="ErrnoError",this.node=r,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},le.ErrnoError.prototype=new Error,le.ErrnoError.prototype.constructor=le.ErrnoError,[44].forEach((e=>{le.genericErrors[e]=new le.ErrnoError(e),le.genericErrors[e].stack="<generic error, no stack>"})))},staticInit(){le.ensureErrnoError(),le.nameTable=new Array(4096),le.mount(se,{},"/"),le.createDefaultDirectories(),le.createDefaultDevices(),le.createSpecialDirectories(),le.filesystems={MEMFS:se}},init(e,r,t){le.init.initialized=!0,le.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=r||n.stdout,n.stderr=t||n.stderr,le.createStandardStreams()},quit(){le.init.initialized=!1;for(var e=0;e<le.streams.length;e++){var r=le.streams[e];r&&le.close(r)}},findObject(e,r){var t=le.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{e=(n=le.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=le.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=Z.basename(e),n=le.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(e){t.error=e.errno}return t},createPath(e,r,t,n){e="string"==typeof e?e:le.getPath(e);for(var o=r.split("/").reverse();o.length;){var a=o.pop();if(a){var s=Z.join2(e,a);try{le.mkdir(s)}catch(e){}e=s}}return s},createFile(e,r,t,n,o){var a=Z.join2("string"==typeof e?e:le.getPath(e),r),s=ue(n,o);return le.create(a,s)},createDataFile(e,r,t,n,o,a){var s=r;e&&(e="string"==typeof e?e:le.getPath(e),s=r?Z.join2(e,r):e);var i=ue(n,o),u=le.create(s,i);if(t){if("string"==typeof t){for(var l=new Array(t.length),c=0,d=t.length;c<d;++c)l[c]=t.charCodeAt(c);t=l}le.chmod(u,146|i);var h=le.open(u,577);le.write(h,t,0,t.length,0,a),le.close(h),le.chmod(u,i)}},createDevice(e,r,t,n){var o=Z.join2("string"==typeof e?e:le.getPath(e),r),a=ue(!!t,!!n);le.createDevice.major||(le.createDevice.major=64);var s=le.makedev(le.createDevice.major++,0);return le.registerDevice(s,{open(e){e.seekable=!1},close(e){n?.buffer?.length&&n(10)},read(e,r,n,o,a){for(var s=0,i=0;i<o;i++){var u;try{u=t()}catch(e){throw new le.ErrnoError(29)}if(void 0===u&&0===s)throw new le.ErrnoError(6);if(null==u)break;s++,r[n+i]=u}return s&&(e.node.timestamp=Date.now()),s},write(e,r,t,o,a){for(var s=0;s<o;s++)try{n(r[t+s])}catch(e){throw new le.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),s}}),le.mkdev(o,a,s)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!o)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=ne(o(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new le.ErrnoError(29)}},createLazyFile(e,r,t,n,o){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var r=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[r]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",t,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn\'t load "+t+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),o=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,a=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,s=1048576;o||(s=n);var i=this;i.setDataGetter((e=>{var r=e*s,o=(e+1)*s-1;if(o=Math.min(o,n-1),void 0===i.chunks[e]&&(i.chunks[e]=((e,r)=>{if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",t,!1),n!==s&&o.setRequestHeader("Range","bytes="+e+"-"+r),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn\'t load "+t+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):ne(o.responseText||"",!0)})(r,o)),void 0===i.chunks[e])throw new Error("doXHR failed!");return i.chunks[e]})),!a&&n||(s=n=1,n=this.getter(0).length,s=n,_("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=s,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!d)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var i={isDevice:!1,contents:s}}else i={isDevice:!1,url:t};var u=le.createFile(e,r,i,n,o);i.contents?u.contents=i.contents:i.url&&(u.contents=null,u.url=i.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var l={};function c(e,r,t,n,o){var a=e.node.contents;if(o>=a.length)return 0;var s=Math.min(a.length-o,n);if(a.slice)for(var i=0;i<s;i++)r[t+i]=a[o+i];else for(i=0;i<s;i++)r[t+i]=a.get(o+i);return s}return Object.keys(u.stream_ops).forEach((e=>{var r=u.stream_ops[e];l[e]=function(){return le.forceLoadFile(u),r.apply(null,arguments)}})),l.read=(e,r,t,n,o)=>(le.forceLoadFile(u),c(e,r,t,n,o)),l.mmap=(e,r,t,n,o)=>{le.forceLoadFile(u);var a=ae();if(!a)throw new le.ErrnoError(48);return c(e,E,a,r,t),{ptr:a,allocated:!0}},u.stream_ops=l,u}},ce=(e,r)=>e?Q(k,e,r):"",de={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(Z.isAbs(r))return r;var n;if(n=-100===e?le.cwd():de.getStreamFromFD(e).path,0==r.length){if(!t)throw new le.ErrnoError(44);return n}return Z.join2(n,r)},doStat(e,r,t){try{var n=e(r)}catch(e){if(e&&e.node&&Z.normalize(r)!==Z.normalize(le.getPath(e.node)))return-54;throw e}F[t>>2]=n.dev,F[t+4>>2]=n.mode,D[t+8>>2]=n.nlink,F[t+12>>2]=n.uid,F[t+16>>2]=n.gid,F[t+20>>2]=n.rdev,I=[n.size>>>0,(j=n.size,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+24>>2]=I[0],F[t+28>>2]=I[1],F[t+32>>2]=4096,F[t+36>>2]=n.blocks;var o=n.atime.getTime(),a=n.mtime.getTime(),s=n.ctime.getTime();return I=[Math.floor(o/1e3)>>>0,(j=Math.floor(o/1e3),+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+40>>2]=I[0],F[t+44>>2]=I[1],D[t+48>>2]=o%1e3*1e3,I=[Math.floor(a/1e3)>>>0,(j=Math.floor(a/1e3),+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+56>>2]=I[0],F[t+60>>2]=I[1],D[t+64>>2]=a%1e3*1e3,I=[Math.floor(s/1e3)>>>0,(j=Math.floor(s/1e3),+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+72>>2]=I[0],F[t+76>>2]=I[1],D[t+80>>2]=s%1e3*1e3,I=[n.ino>>>0,(j=n.ino,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[t+88>>2]=I[0],F[t+92>>2]=I[1],0},doMsync(e,r,t,n,o){if(!le.isFile(r.node.mode))throw new le.ErrnoError(43);if(2&n)return 0;var a=k.slice(e,e+t);le.msync(r,a,o,t,n)},varargs:void 0,get(){var e=F[+de.varargs>>2];return de.varargs+=4,e},getp:()=>de.get(),getStr:e=>ce(e),getStreamFromFD:e=>le.getStreamChecked(e)},he=e=>(F[Oe()>>2]=e,e),fe={BUCKET_BUFFER_SIZE:8192,mount:e=>le.createNode(null,"/",16895,0),createPipe(){var e={buckets:[],refcnt:2};e.buckets.push({buffer:new Uint8Array(fe.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var r=fe.nextname(),t=fe.nextname(),n=le.createNode(fe.root,r,4096,0),o=le.createNode(fe.root,t,4096,0);n.pipe=e,o.pipe=e;var a=le.createStream({path:r,node:n,flags:0,seekable:!1,stream_ops:fe.stream_ops});n.stream=a;var s=le.createStream({path:t,node:o,flags:1,seekable:!1,stream_ops:fe.stream_ops});return o.stream=s,{readable_fd:a.fd,writable_fd:s.fd}},stream_ops:{poll(e){var r=e.node.pipe;if(1==(2097155&e.flags))return 260;if(r.buckets.length>0)for(var t=0;t<r.buckets.length;t++){var n=r.buckets[t];if(n.offset-n.roffset>0)return 65}return 0},ioctl:(e,r,t)=>28,fsync:e=>28,read(e,r,t,n,o){for(var a=e.node.pipe,s=0,i=0;i<a.buckets.length;i++){var u=a.buckets[i];s+=u.offset-u.roffset}var l=r.subarray(t,t+n);if(n<=0)return 0;if(0==s)throw new le.ErrnoError(6);var c=Math.min(s,n),d=c,h=0;for(i=0;i<a.buckets.length;i++){var f=a.buckets[i],m=f.offset-f.roffset;if(c<=m){var p=f.buffer.subarray(f.roffset,f.offset);c<m?(p=p.subarray(0,c),f.roffset+=c):h++,l.set(p);break}p=f.buffer.subarray(f.roffset,f.offset),l.set(p),l=l.subarray(p.byteLength),c-=p.byteLength,h++}return h&&h==a.buckets.length&&(h--,a.buckets[h].offset=0,a.buckets[h].roffset=0),a.buckets.splice(0,h),d},write(e,r,t,n,o){var a=e.node.pipe,s=r.subarray(t,t+n),i=s.byteLength;if(i<=0)return 0;var u=null;0==a.buckets.length?(u={buffer:new Uint8Array(fe.BUCKET_BUFFER_SIZE),offset:0,roffset:0},a.buckets.push(u)):u=a.buckets[a.buckets.length-1],A(u.offset<=fe.BUCKET_BUFFER_SIZE);var l=fe.BUCKET_BUFFER_SIZE-u.offset;if(l>=i)return u.buffer.set(s,u.offset),u.offset+=i,i;l>0&&(u.buffer.set(s.subarray(0,l),u.offset),u.offset+=l,s=s.subarray(l,s.byteLength));for(var c=s.byteLength/fe.BUCKET_BUFFER_SIZE|0,d=s.byteLength%fe.BUCKET_BUFFER_SIZE,h=0;h<c;h++){var f={buffer:new Uint8Array(fe.BUCKET_BUFFER_SIZE),offset:fe.BUCKET_BUFFER_SIZE,roffset:0};a.buckets.push(f),f.buffer.set(s.subarray(0,fe.BUCKET_BUFFER_SIZE)),s=s.subarray(fe.BUCKET_BUFFER_SIZE,s.byteLength)}return d>0&&(f={buffer:new Uint8Array(fe.BUCKET_BUFFER_SIZE),offset:s.byteLength,roffset:0},a.buckets.push(f),f.buffer.set(s)),i},close(e){var r=e.node.pipe;r.refcnt--,0===r.refcnt&&(r.buckets=null)}},nextname:()=>(fe.nextname.current||(fe.nextname.current=0),"pipe["+fe.nextname.current+++"]")},me=(e,r)=>r+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*r:NaN,pe=e=>e%4==0&&(e%100!=0||e%400==0),ve=[0,31,60,91,121,152,182,213,244,274,305,335],we=[0,31,59,90,120,151,181,212,243,273,304,334],ge=e=>(pe(e.getFullYear())?ve:we)[e.getMonth()]+e.getDate()-1,_e=(e,r,t)=>te(e,k,r,t),ye=e=>{var r=re(e)+1,t=xe(r);return t&&_e(e,t,r),t},Ee=e=>{var r=(e-g.buffer.byteLength+65535)/65536;try{return g.grow(r),C(),1}catch(e){}},be={},ke=()=>{if(!ke.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:u||"./this.program"};for(var r in be)void 0===be[r]?delete e[r]:e[r]=be[r];var t=[];for(var r in e)t.push(`${r}=${e[r]}`);ke.strings=t}return ke.strings},Se=e=>{X||(n.onExit?.(e),M=!0),l(e,new q(e))},Fe=(e,r)=>{Se(e)},De=[31,29,31,30,31,30,31,31,30,31,30,31],Me=[31,28,31,30,31,30,31,31,30,31,30,31],Ae=(e,r)=>{E.set(e,r)},Ce=e=>n["_"+e],Pe=(e,r,t,n,o)=>{var a={string:e=>{var r=0;return null!=e&&0!==e&&(r=(e=>{var r=re(e)+1,t=He(r);return _e(e,t,r),t})(e)),r},array:e=>{var r=He(e.length);return Ae(e,r),r}},s=Ce(e),i=[],u=0;if(n)for(var l=0;l<n.length;l++){var c=a[t[l]];c?(0===u&&(u=je()),i[l]=c(n[l])):i[l]=n[l]}var d=s.apply(null,i);return d=function(e){return 0!==u&&Ie(u),function(e){return"string"===r?ce(e):"boolean"===r?Boolean(e):e}(e)}(d)},Te=function(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=le.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n},Re=365,ze=146;Object.defineProperties(Te.prototype,{read:{get:function(){return(this.mode&Re)===Re},set:function(e){e?this.mode|=Re:this.mode&=-366}},write:{get:function(){return(this.mode&ze)===ze},set:function(e){e?this.mode|=ze:this.mode&=-147}},isFolder:{get:function(){return le.isDir(this.mode)}},isDevice:{get:function(){return le.isChrdev(this.mode)}}}),le.FSNode=Te,le.createPreloadedFile=(e,r,t,n,o,s,i,u,l,c)=>{var d=r?V.resolve(Z.join2(e,r)):e;function h(t){function a(t){c?.(),u||((e,r,t,n,o,a)=>{le.createDataFile(e,r,t,n,o,a)})(e,r,t,n,o,l),s?.(),x()}((e,r,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return ie.forEach((a=>{o||a.canHandle(r)&&(a.handle(e,r,t,n),o=!0)})),o})(t,d,a,(()=>{i?.(),x()}))||a(t)}L(),"string"==typeof t?((e,r,t,n)=>{var o=n?"":`al ${e}`;a(e,(t=>{A(t,`Loading data file "${e}" failed (no arrayBuffer).`),r(new Uint8Array(t)),o&&x()}),(r=>{if(!t)throw`Loading data file "${e}" failed.`;t()})),o&&L()})(t,(e=>h(e)),i):h(t)},le.staticInit();var Ue={i:function(e){try{var r=de.getStreamFromFD(e);return le.createStream(r).fd}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},a:function(e,r,t){de.varargs=t;try{var n=de.getStreamFromFD(e);switch(r){case 0:if((o=de.get())<0)return-28;for(;le.streams[o];)o++;return le.createStream(n,o).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var o=de.get();return n.flags|=o,0;case 5:return o=de.getp(),S[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return he(28),-1}}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},x:function(e,r){try{var t=de.getStreamFromFD(e);return de.doStat(le.stat,t.path,r)}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},u:function(e,r){try{return e=de.getStr(e),de.doStat(le.lstat,e,r)}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},v:function(e,r,t,n){try{r=de.getStr(r);var o=256&n,a=4096&n;return n&=-6401,r=de.calculateAt(e,r,a),de.doStat(o?le.lstat:le.stat,r,t)}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},y:function(e,r,t,n){de.varargs=n;try{r=de.getStr(r),r=de.calculateAt(e,r);var o=n?de.get():0;return le.open(r,t,o).fd}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},t:function(e){try{if(0==e)throw new le.ErrnoError(21);var r=fe.createPipe();return F[e>>2]=r.readable_fd,F[e+4>>2]=r.writable_fd,0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},s:function(e,r,t){try{for(var n=0,o=0;o<r;o++){var a=e+8*o,s=F[a>>2],i=S[a+4>>1],u=32,l=le.getStream(s);l&&(u=de.DEFAULT_POLLMASK,l.stream_ops.poll&&(u=l.stream_ops.poll(l,-1))),(u&=24|i)&&n++,S[a+6>>1]=u}return n}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},w:function(e,r){try{return e=de.getStr(e),de.doStat(le.stat,e,r)}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},q:function(e,r,t){try{return r=de.getStr(r),r=de.calculateAt(e,r),0===t?le.unlink(r):512===t?le.rmdir(r):O("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return-e.errno}},B:()=>1,k:function(e,r,t){var n=me(e,r),o=new Date(1e3*n);F[t>>2]=o.getUTCSeconds(),F[t+4>>2]=o.getUTCMinutes(),F[t+8>>2]=o.getUTCHours(),F[t+12>>2]=o.getUTCDate(),F[t+16>>2]=o.getUTCMonth(),F[t+20>>2]=o.getUTCFullYear()-1900,F[t+24>>2]=o.getUTCDay();var a=Date.UTC(o.getUTCFullYear(),0,1,0,0,0,0),s=(o.getTime()-a)/864e5|0;F[t+28>>2]=s},l:function(e,r,t){var n=me(e,r),o=new Date(1e3*n);F[t>>2]=o.getSeconds(),F[t+4>>2]=o.getMinutes(),F[t+8>>2]=o.getHours(),F[t+12>>2]=o.getDate(),F[t+16>>2]=o.getMonth(),F[t+20>>2]=o.getFullYear()-1900,F[t+24>>2]=o.getDay();var a=0|ge(o);F[t+28>>2]=a,F[t+36>>2]=-60*o.getTimezoneOffset();var s=new Date(o.getFullYear(),0,1),i=new Date(o.getFullYear(),6,1).getTimezoneOffset(),u=s.getTimezoneOffset(),l=0|(i!=u&&o.getTimezoneOffset()==Math.min(u,i));F[t+32>>2]=l},m:function(e){var r=(()=>{var r=new Date(F[e+20>>2]+1900,F[e+16>>2],F[e+12>>2],F[e+8>>2],F[e+4>>2],F[e>>2],0),t=F[e+32>>2],n=r.getTimezoneOffset(),o=new Date(r.getFullYear(),0,1),a=new Date(r.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),i=Math.min(s,a);if(t<0)F[e+32>>2]=Number(a!=s&&i==n);else if(t>0!=(i==n)){var u=Math.max(s,a),l=t>0?i:u;r.setTime(r.getTime()+6e4*(l-n))}F[e+24>>2]=r.getDay();var c=0|ge(r);F[e+28>>2]=c,F[e>>2]=r.getSeconds(),F[e+4>>2]=r.getMinutes(),F[e+8>>2]=r.getHours(),F[e+12>>2]=r.getDate(),F[e+16>>2]=r.getMonth(),F[e+20>>2]=r.getYear();var d=r.getTime();return isNaN(d)?(he(61),-1):d/1e3})();return Be((j=r,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)),r>>>0},n:function(e){var r=(()=>{var r=Date.UTC(F[e+20>>2]+1900,F[e+16>>2],F[e+12>>2],F[e+8>>2],F[e+4>>2],F[e>>2],0),t=new Date(r);F[e+24>>2]=t.getUTCDay();var n=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),o=(t.getTime()-n)/864e5|0;return F[e+28>>2]=o,t.getTime()/1e3})();return Be((j=r,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)),r>>>0},r:(e,r,t)=>{var n=(new Date).getFullYear(),o=new Date(n,0,1),a=new Date(n,6,1),s=o.getTimezoneOffset(),i=a.getTimezoneOffset(),u=Math.max(s,i);function l(e){var r=e.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return r?r[1]:"GMT"}D[e>>2]=60*u,F[r>>2]=Number(s!=i);var c=l(o),d=l(a),h=ye(c),f=ye(d);i<s?(D[t>>2]=h,D[t+4>>2]=f):(D[t>>2]=f,D[t+4>>2]=h)},b:()=>{O("")},c:()=>Date.now(),h:(e,r,t)=>k.copyWithin(e,r,r+t),p:e=>{var r=k.length,t=2147483648;if((e>>>=0)>t)return!1;for(var n,o,a=1;a<=4;a*=2){var s=r*(1+.2/a);s=Math.min(s,e+100663296);var i=Math.min(t,(n=Math.max(e,s))+((o=65536)-n%o)%o);if(Ee(i))return!0}return!1},z:(e,r)=>{var t=0;return ke().forEach(((n,o)=>{var a=r+t;D[e+4*o>>2]=a,((e,r)=>{for(var t=0;t<e.length;++t)E[r++>>0]=e.charCodeAt(t);E[r>>0]=0})(n,a),t+=n.length+1})),0},A:(e,r)=>{var t=ke();D[e>>2]=t.length;var n=0;return t.forEach((e=>n+=e.length+1)),D[r>>2]=n,0},g:Fe,e:function(e){try{var r=de.getStreamFromFD(e);return le.close(r),0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return e.errno}},j:function(e,r,t,n){try{var o=((e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var s=D[r>>2],i=D[r+4>>2];r+=8;var u=le.read(e,E,s,i,n);if(u<0)return-1;if(o+=u,u<i)break;void 0!==n&&(n+=u)}return o})(de.getStreamFromFD(e),r,t);return D[n>>2]=o,0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return e.errno}},o:function(e,r,t,n,o){var a=me(r,t);try{if(isNaN(a))return 61;var s=de.getStreamFromFD(e);return le.llseek(s,a,n),I=[s.position>>>0,(j=s.position,+Math.abs(j)>=1?j>0?+Math.floor(j/4294967296)>>>0:~~+Math.ceil((j-+(~~j>>>0))/4294967296)>>>0:0)],F[o>>2]=I[0],F[o+4>>2]=I[1],s.getdents&&0===a&&0===n&&(s.getdents=null),0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return e.errno}},d:function(e,r,t,n){try{var o=((e,r,t,n)=>{for(var o=0,a=0;a<t;a++){var s=D[r>>2],i=D[r+4>>2];r+=8;var u=le.write(e,E,s,i,n);if(u<0)return-1;o+=u,void 0!==n&&(n+=u)}return o})(de.getStreamFromFD(e),r,t);return D[n>>2]=o,0}catch(e){if(void 0===le||"ErrnoError"!==e.name)throw e;return e.errno}},f:(e,r,t,n)=>{var o=D[n+40>>2],a={tm_sec:F[n>>2],tm_min:F[n+4>>2],tm_hour:F[n+8>>2],tm_mday:F[n+12>>2],tm_mon:F[n+16>>2],tm_year:F[n+20>>2],tm_wday:F[n+24>>2],tm_yday:F[n+28>>2],tm_isdst:F[n+32>>2],tm_gmtoff:F[n+36>>2],tm_zone:o?ce(o):""},s=ce(t),i={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in i)s=s.replace(new RegExp(u,"g"),i[u]);var l=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(e,r,t){for(var n="number"==typeof e?e.toString():e||"";n.length<r;)n=t[0]+n;return n}function h(e,r){return d(e,r,"0")}function f(e,r){function t(e){return e<0?-1:e>0?1:0}var n;return 0===(n=t(e.getFullYear()-r.getFullYear()))&&0===(n=t(e.getMonth()-r.getMonth()))&&(n=t(e.getDate()-r.getDate())),n}function m(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function p(e){var r=((e,r)=>{for(var t=new Date(e.getTime());r>0;){var n=pe(t.getFullYear()),o=t.getMonth(),a=(n?De:Me)[o];if(!(r>a-t.getDate()))return t.setDate(t.getDate()+r),t;r-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t})(new Date(e.tm_year+1900,0,1),e.tm_yday),t=new Date(r.getFullYear(),0,4),n=new Date(r.getFullYear()+1,0,4),o=m(t),a=m(n);return f(o,r)<=0?f(a,r)<=0?r.getFullYear()+1:r.getFullYear():r.getFullYear()-1}var v={"%a":e=>l[e.tm_wday].substring(0,3),"%A":e=>l[e.tm_wday],"%b":e=>c[e.tm_mon].substring(0,3),"%B":e=>c[e.tm_mon],"%C":e=>h((e.tm_year+1900)/100|0,2),"%d":e=>h(e.tm_mday,2),"%e":e=>d(e.tm_mday,2," "),"%g":e=>p(e).toString().substring(2),"%G":e=>p(e),"%H":e=>h(e.tm_hour,2),"%I":e=>{var r=e.tm_hour;return 0==r?r=12:r>12&&(r-=12),h(r,2)},"%j":e=>h(e.tm_mday+((e,r)=>{for(var t=0,n=0;n<=r;t+=e[n++]);return t})(pe(e.tm_year+1900)?De:Me,e.tm_mon-1),3),"%m":e=>h(e.tm_mon+1,2),"%M":e=>h(e.tm_min,2),"%n":()=>"\\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>h(e.tm_sec,2),"%t":()=>"\\t","%u":e=>e.tm_wday||7,"%U":e=>{var r=e.tm_yday+7-e.tm_wday;return h(Math.floor(r/7),2)},"%V":e=>{var r=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&r++,r){if(53==r){var t=(e.tm_wday+371-e.tm_yday)%7;4==t||3==t&&pe(e.tm_year)||(r=1)}}else{r=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&pe(e.tm_year%400-1))&&r++}return h(r,2)},"%w":e=>e.tm_wday,"%W":e=>{var r=e.tm_yday+7-(e.tm_wday+6)%7;return h(Math.floor(r/7),2)},"%y":e=>(e.tm_year+1900).toString().substring(2),"%Y":e=>e.tm_year+1900,"%z":e=>{var r=e.tm_gmtoff,t=r>=0;return r=(r=Math.abs(r)/60)/60*100+r%60,(t?"+":"-")+String("0000"+r).slice(-4)},"%Z":e=>e.tm_zone,"%%":()=>"%"};for(var u in s=s.replace(/%%/g,"\\0\\0"),v)s.includes(u)&&(s=s.replace(new RegExp(u,"g"),v[u](a)));var w=ne(s=s.replace(/\\0\\0/g,"%"),!1);return w.length>r?0:(Ae(w,e),w.length-1)}},Le=function(){var e,r,o,a,s={a:Ue};function i(e,r){var t;return Le=e.exports,g=Le.C,C(),t=Le.D,T.unshift(t),x(),Le}if(L(),n.instantiateWasm)try{return n.instantiateWasm(s,i)}catch(e){y(`Module.instantiateWasm callback failed with error: ${e}`),t(e)}return(e=w,r=N,o=s,a=function(e){i(e.instance)},e||"function"!=typeof WebAssembly.instantiateStreaming||H(r)||Y(r)||h||"function"!=typeof fetch?K(r,o,a):fetch(r,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,o).then(a,(function(e){return y(`wasm streaming compile failed: ${e}`),y("falling back to ArrayBuffer instantiation"),K(r,o,a)}))))).catch(t),{}}();n._get_version=()=>(n._get_version=Le.E)(),n._archive_open=(e,r,t,o)=>(n._archive_open=Le.F)(e,r,t,o),n._archive_read_add_passphrase=(e,r)=>(n._archive_read_add_passphrase=Le.G)(e,r),n._archive_error_string=e=>(n._archive_error_string=Le.H)(e),n._get_next_entry=e=>(n._get_next_entry=Le.I)(e),n._get_filedata=(e,r)=>(n._get_filedata=Le.J)(e,r);var xe=n._malloc=e=>(xe=n._malloc=Le.K)(e);n._archive_close=e=>(n._archive_close=Le.L)(e),n._start_archive_write=(e,r,t,o,a,s)=>(n._start_archive_write=Le.M)(e,r,t,o,a,s),n._write_archive_file=(e,r,t,o)=>(n._write_archive_file=Le.N)(e,r,t,o),n._size_of_size_t=()=>(n._size_of_size_t=Le.O)(),n._finish_archive_write=(e,r)=>(n._finish_archive_write=Le.P)(e,r),n._free=e=>(n._free=Le.Q)(e);var Oe=()=>(Oe=Le.R)();n._archive_entry_birthtime_nsec=e=>(n._archive_entry_birthtime_nsec=Le.S)(e),n._archive_entry_filetype=e=>(n._archive_entry_filetype=Le.T)(e),n._archive_entry_mtime_nsec=e=>(n._archive_entry_mtime_nsec=Le.U)(e),n._archive_entry_pathname=e=>(n._archive_entry_pathname=Le.V)(e),n._archive_entry_pathname_utf8=e=>(n._archive_entry_pathname_utf8=Le.W)(e),n._archive_entry_size=e=>(n._archive_entry_size=Le.X)(e),n._archive_entry_is_encrypted=e=>(n._archive_entry_is_encrypted=Le.Y)(e),n._archive_read_has_encrypted_entries=e=>(n._archive_read_has_encrypted_entries=Le.Z)(e),n._archive_read_data_skip=e=>(n._archive_read_data_skip=Le._)(e);var Ne,Be=e=>(Be=Le.aa)(e),je=()=>(je=Le.ba)(),Ie=e=>(Ie=Le.ca)(e),He=e=>(He=Le.da)(e);function Ye(){function e(){Ne||(Ne=!0,n.calledRun=!0,M||(n.noFSInit||le.init.initialized||le.init(),le.ignorePermissions=!1,fe.root=le.mount(fe,{},null),$(T),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),function(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)e=n.postRun.shift(),R.unshift(e);var e;$(R)}()))}z>0||(function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)e=n.preRun.shift(),P.unshift(e);var e;$(P)}(),z>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),e()}),1)):e()))}if(n.cwrap=(e,r,t,n)=>{var o=!t||t.every((e=>"number"===e||"boolean"===e));return"string"!==r&&o&&!n?Ce(e):function(){return Pe(e,r,t,arguments)}},n.allocate=(e,r)=>{var t;return t=1==r?He(e.length):xe(e.length),e.subarray||e.slice||(e=new Uint8Array(e)),k.set(e,t),t},U=function e(){Ne||Ye(),Ne||(U=e)},n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Ye(),e.ready});class S{constructor(){this.preRun=[],this.postRun=[],this.totalDependencies=0}print(...e){console.log(e)}printErr(...e){console.error(e)}initFunctions(){this.runCode={getVersion:this.cwrap("get_version","string",[]),openArchive:this.cwrap("archive_open","number",["number","number","string","string"]),getNextEntry:this.cwrap("get_next_entry","number",["number"]),getFileData:this.cwrap("get_filedata","number",["number","number"]),skipEntry:this.cwrap("archive_read_data_skip","number",["number"]),closeArchive:this.cwrap("archive_close",null,["number"]),getEntrySize:this.cwrap("archive_entry_size","number",["number"]),getEntryName:this.cwrap("archive_entry_pathname","string",["number"]),getEntryType:this.cwrap("archive_entry_filetype","number",["number"]),getEntryLastModified:this.cwrap("archive_entry_mtime_nsec","number",["number"]),getError:this.cwrap("archive_error_string","string",["number"]),startArchiveWrite:this.cwrap("start_archive_write","number",["string","string","number","number","number","string"]),writeArchiveFile:this.cwrap("write_archive_file",null,["number","string","number","number"]),finishArchiveWrite:this.cwrap("finish_archive_write","number",["number","number"]),entryIsEncrypted:this.cwrap("archive_entry_is_encrypted","number",["number"]),hasEncryptedEntries:this.cwrap("archive_read_has_encrypted_entries","number",["number"]),addPassphrase:this.cwrap("archive_read_add_passphrase","number",["number","string"]),string:e=>this.allocate(this.intArrayFromString(e),"i8",0),malloc:this.cwrap("malloc","number",["number"]),free:this.cwrap("free",null,["number"]),sizeOfSizeT:this.cwrap("size_of_size_t","number",[])}}monitorRunDependencies(){}}let F=null,D=null,M=!1;class A{constructor(e){A.readyCallback=e,M&&setTimeout((()=>e()),0)}open(e,r){F.open(e).then((()=>r()))}listFiles(){let e=[];for(const r of F.entries(!0))e.push(r);return e}extractFiles(){let e=[];for(const r of F.entries(!1))e.push(r);return e}extractSingleFile(e){for(const r of F.entries(!0,e))if(r.fileData)return r}hasEncryptedData(){return F.hasEncryptedData()}usePassword(e){F.setPassphrase(e)}setLocale(e){F.setLocale(e)}writeArchive(e,r,t,n){return D.write(e,r,t,n)}close(){F.close()}}var C;C=e=>{F=new y(e),D=new E(e),A?.readyCallback?.(),M=!0},k(new S).then((e=>{e.initFunctions(),C(e)})),i(A);\n',j=``+new URL(`libarchive-DxGirPmi.wasm`,import.meta.url).href,M={class:`archive-viewer`},N={class:`archive-sidebar`},P={class:`archive-head`},F={key:0,class:`archive-warning`},I={class:`archive-list`,role:`list`},L=[`onClick`],R={class:`entry-ext`},z={class:`entry-copy`},B={class:`archive-preview`},V={class:`archive-preview-toolbar`},se={key:0,class:`archive-empty`},H={key:0,class:`archive-state`},U={key:1,class:`archive-error`},W=320*1024*1024,G=64*1024*1024,K=5e3,q=t(d({__name:`ArchiveViewer`,props:{data:{},filename:{},options:{}},setup(t){let d=t,v=ee(null),y=s([]),b=s(null),x=s(!1),S=s(`正在读取压缩包目录...`),C=s(``),w=s(``),T=s(null),E=s(null),O,q=[],J=m(()=>d.options?.maxArchiveSize||W),Y=m(()=>d.options?.maxEntryPreviewSize||G),X=m(()=>d.options?.cache!==!1),ce=m(()=>({archive:d.options})),Z=m(()=>{let e=y.value.reduce((e,t)=>e+t.size,0),t=y.value.filter(e=>e.previewable).length;return{count:y.value.length,totalSize:e,previewableCount:t}}),le=m(()=>{let e=w.value.trim().toLowerCase();return(e?y.value.filter(t=>t.path.toLowerCase().includes(e)):y.value).slice(0,K)}),ue=()=>{let e=JSON.stringify(j),t=A.replace(/new URL\((['"])libarchive\.wasm\1\s*,\s*import\.meta\.url\)\.href/g,e),n=URL.createObjectURL(new Blob([t],{type:`application/javascript`}));return q.push(n),n},de=async()=>{if(d.options?.workerUrl)return d.options.workerUrl;let e=new URL(`/vendor/libarchive/worker-bundle.js`,window.location.href).toString();try{let t=await fetch(e,{method:`HEAD`}),n=t.headers.get(`content-type`)||``;if(t.ok&&/javascript|ecmascript|octet-stream/i.test(n))return e}catch{}return ue()},Q=()=>{O?.unmount?.(),O=void 0;let e=E.value;if(e)for(;e.firstChild;)e.removeChild(e.firstChild)},fe=async()=>{await v.value?.close?.(),v.value=null},pe=async()=>{if(d.data.byteLength>J.value){C.value=`压缩包体积 ${e(d.data.byteLength)} 超过安全上限 ${e(J.value)},请下载后在本地解压。`;return}x.value=!0,S.value=`正在初始化压缩包解析 Worker...`,C.value=``;try{let[{Archive:e},t]=await Promise.all([r(()=>import(`./libarchive-DknIq1tb.js`),[],import.meta.url),de()]);e.init({workerUrl:t}),S.value=`正在读取压缩包目录...`;let n=new File([d.data],d.filename||`archive.bin`),a=await e.open(n);v.value=a,T.value=await a.hasEncryptedData().catch(()=>null),y.value=i(await a.getFilesObject()).sort((e,t)=>e.path.localeCompare(t.path))}catch(e){console.error(e),C.value=e instanceof Error?e.message:String(e)}finally{x.value=!1}},me=async(e,t)=>{await ae();let n=E.value;if(!n)return;Q();let r=document.createElement(`div`);r.className=`archive-nested-content`,n.appendChild(r),O=await _(t,e.extension,r,{filename:e.name,options:ce.value})},$=async e=>{let t=n(d.filename,d.data.byteLength,e);if(X.value){let e=await D(t);if(e)return e.buffer}let r=await(await e.compressedFile.extract()).arrayBuffer();return X.value&&await k({key:t,filename:e.name,size:r.byteLength,updatedAt:Date.now(),buffer:r}),r},he=async t=>{if(b.value=t,t.size>Y.value){C.value=`压缩包内文件 ${t.name} 体积 ${e(t.size)} 超过预览上限 ${e(Y.value)}。`;return}x.value=!0,S.value=`正在按需解压 ${t.name}...`,C.value=``;try{let e=await $(t);S.value=`正在渲染 ${t.name}...`,await me(t,e)}catch(e){console.error(e),C.value=e instanceof Error?e.message:String(e)}finally{x.value=!1}},ge=async e=>{x.value=!0,S.value=`正在导出 ${e.name}...`;try{let t=await $(e),n=URL.createObjectURL(new Blob([t]));q.push(n);let r=document.createElement(`a`);r.href=n,r.download=e.name,document.body.appendChild(r),r.click(),r.remove()}finally{x.value=!1}};return ne(()=>{pe()}),ie(()=>{Q(),fe(),q.forEach(e=>URL.revokeObjectURL(e))}),(n,r)=>(g(),h(`section`,M,[f(`aside`,N,[f(`div`,P,[r[2]||=f(`span`,null,`ARCHIVE`,-1),f(`strong`,null,u(t.filename),1),f(`p`,null,u(Z.value.count)+` 个文件 · `+u(o(e)(Z.value.totalSize))+` · `+u(Z.value.previewableCount)+` 个可直接预览`,1)]),T.value?(g(),h(`div`,F,`检测到加密内容,当前在线预览不接收密码,建议下载后本地解压。`)):p(``,!0),l(f(`input`,{"onUpdate:modelValue":r[0]||=e=>w.value=e,class:`archive-search`,type:`search`,placeholder:`筛选压缩包内文件`},null,512),[[a,w.value]]),f(`div`,I,[(g(!0),h(oe,null,re(le.value,t=>(g(),h(`button`,{key:t.id,type:`button`,class:c([`archive-entry`,{active:b.value?.id===t.id}]),style:te({"--entry-depth":t.depth}),onClick:e=>he(t)},[f(`span`,R,u(t.extension||`file`),1),f(`span`,z,[f(`strong`,null,u(t.name),1),f(`em`,null,u(t.path),1)]),f(`small`,null,u(o(e)(t.size)),1)],14,L))),128))])]),f(`main`,B,[f(`div`,V,[f(`div`,null,[r[3]||=f(`span`,null,`压缩包内预览`,-1),f(`strong`,null,u(b.value?.name||`请选择一个文件`),1)]),b.value?(g(),h(`button`,{key:0,type:`button`,onClick:r[1]||=e=>ge(b.value)},`下载文件`)):p(``,!0)]),f(`div`,{ref_key:`nestedTarget`,ref:E,class:`archive-nested-target`},[!b.value&&!x.value?(g(),h(`div`,se,[...r[4]||=[f(`strong`,null,`选择左侧文件即可预览`,-1),f(`p`,null,`压缩包只读取目录;文件内容会在点击后按需解压,并在体积允许时缓存到 IndexedDB。`,-1)]])):p(``,!0)],512)]),x.value?(g(),h(`div`,H,[f(`div`,null,[r[5]||=f(`span`,{class:`archive-spinner`},null,-1),f(`strong`,null,u(S.value),1),r[6]||=f(`p`,null,`大文件会在 Worker 中解析,避免阻塞主线程。`,-1)])])):p(``,!0),C.value?(g(),h(`div`,U,[r[7]||=f(`strong`,null,`压缩包预览提示`,-1),f(`p`,null,u(C.value),1)])):p(``,!0)]))}}),[[`__scopeId`,`data-v-63b4b1b1`]]);export{q as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as e}from"./package-Bop5TfAT.js";import{C as t,D as n,X as r,Y as i,_ as a,f as o,g as s,i as c,r as l,s as u,y as d}from"./runtime-core.esm-bundler-DO-WTVbd.js";var f={class:`audio-viewer`},p={class:`audio-card`},m={class:`audio-copy`},h={class:`audio-kicker`},g={class:`audio-meter`},_={class:`audio-progress`,"aria-hidden":`true`},v=[`src`],y=e(o({__name:`AudioViewer`,props:{data:{},type:{}},setup(e){let o=e,y=n(null),b=n(``),x=n(0),S=n(0),C=n(!1),w={aac:`audio/aac`,flac:`audio/flac`,m4a:`audio/mp4`,mp3:`audio/mpeg`,mpeg:`audio/mpeg`,oga:`audio/ogg`,ogg:`audio/ogg`,opus:`audio/ogg; codecs=opus`,wav:`audio/wav`,weba:`audio/webm`},T=l(()=>o.type.trim().toLowerCase()),E=l(()=>w[T.value]||`audio/*`),D=l(()=>T.value.toUpperCase()||`AUDIO`),O=l(()=>!Number.isFinite(S.value)||S.value<=0?0:Math.min(100,Math.max(0,x.value/S.value*100))),k=e=>{if(!Number.isFinite(e)||e<=0)return`00:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`},A=()=>{b.value&&=(URL.revokeObjectURL(b.value),``)},j=()=>{A(),x.value=0,S.value=0,C.value=!1,b.value=URL.createObjectURL(new Blob([o.data],{type:E.value}))},M=()=>{S.value=y.value?.duration||0,C.value=!0},N=()=>{x.value=y.value?.currentTime||0};return a(j),t(()=>[o.data,o.type],j),s(A),(e,t)=>(d(),u(`div`,f,[c(`section`,p,[t[2]||=c(`div`,{class:`audio-art`},[c(`span`),c(`i`)],-1),c(`div`,m,[c(`span`,h,r(D.value),1),t[0]||=c(`strong`,null,`音频预览`,-1),t[1]||=c(`p`,null,`使用浏览器原生播放器打开,兼容性取决于当前浏览器支持的音频编码。`,-1)]),c(`div`,g,[c(`span`,null,r(k(x.value)),1),c(`div`,_,[c(`i`,{style:i({width:`${O.value}%`})},null,4)]),c(`span`,null,r(C.value?k(S.value):`--:--`),1)]),c(`audio`,{ref_key:`audioRef`,ref:y,class:`audio-control`,src:b.value,controls:``,preload:`metadata`,onLoadedmetadata:M,onTimeupdate:N},` 当前浏览器不支持音频播放。 `,40,v)])]))}}),[[`__scopeId`,`data-v-608bd328`]]);export{y as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.dwfv-root{color:#111827;grid-template-rows:auto 1fr;height:100%;min-height:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:grid}.dwfv-toolbar{background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;gap:8px;padding:8px 12px;display:flex}.dwfv-toolbar button,.dwfv-toolbar select{font:inherit}.dwfv-workspace{grid-template-columns:minmax(220px,300px) 1fr;min-height:0;display:grid}.dwfv-tree{background:#fff;border-right:1px solid #d6d8dd;padding:8px;font-size:12px;overflow:auto}.dwfv-tree[style*="display: none"]+.dwfv-stage{grid-column:1/-1}.dwfv-tree-header{margin-bottom:4px;font-weight:700}.dwfv-tree-stats{color:#6b7280;margin-bottom:8px}.dwfv-tree details{margin-left:8px}.dwfv-tree summary{cursor:pointer;padding:2px 0}.dwfv-tree-meta{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;padding-left:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;overflow:hidden}.dwfv-stage{background:#e5e7eb;position:relative;overflow:hidden}.dwfv-canvas{width:100%;height:100%;position:absolute;inset:0}.dwfv-webgl-canvas{pointer-events:none}.dwfv-overlay-canvas{pointer-events:auto;touch-action:none;cursor:grab}.dwfv-overlay-canvas:active{cursor:grabbing}.dwfv-status{color:#4b5563;margin-left:auto;font-size:12px}.dwfv-warn{color:#92400e}.cad-viewer-container{min-width:0;min-height:0;position:relative;overflow:hidden}.cad-viewer-canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.cad-viewer-canvas.is-dragging{cursor:grabbing}.cad-viewer-webgl-canvas{z-index:0;position:relative}.cad-viewer-text-overlay{contain:strict;-webkit-user-select:none;user-select:none;display:block}.cad-viewer-native-host{z-index:2;background:#05070d;min-width:0;min-height:0;display:none;position:absolute;inset:0}.cad-viewer-native-host.is-active{display:block}.cad-viewer-native-host .dwfv-root{color:#dbeafe;background:#05070d;height:100%;min-height:0}.cad-viewer-native-host .dwfv-toolbar{color:#e5e7eb;background:#0f172af5;border-bottom:1px solid #475569a6;gap:6px;min-height:34px;padding:5px 8px}.cad-viewer-native-host .dwfv-toolbar button,.cad-viewer-native-host .dwfv-toolbar select{color:#e5e7eb;background:#111827;border:1px solid #64748bbf;border-radius:6px;height:24px;font-size:12px}.cad-viewer-native-host .dwfv-toolbar button{cursor:pointer;padding:0 8px}.cad-viewer-native-host .dwfv-toolbar button:hover,.cad-viewer-native-host .dwfv-toolbar select:hover{color:#bfdbfe;border-color:#60a5fa}.cad-viewer-native-host .dwfv-status{color:#93c5fd;font-size:12px}.cad-viewer-native-host .dwfv-workspace{background:#05070d;min-height:0}.cad-viewer-native-host .dwfv-stage{background:#05070d}.cad-viewer-native-host .dwfv-tree{color:#dbeafe;background:#0f172a;border-right:1px solid #475569b3}.cad-viewer-native-host .dwfv-tree-stats,.cad-viewer-native-host .dwfv-tree-meta{color:#94a3b8}.cad-viewer-native-host .dwfv-warn{color:#fbbf24}.cad-shell[data-v-06294777]{color:#142335;background:#f5f7fb;flex-direction:column;height:100%;min-height:100%;display:flex}.cad-toolbar[data-v-06294777]{background:#fff;border-bottom:1px solid #0f172a14;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:0 14px;display:flex}.cad-tools[data-v-06294777],.cad-meta[data-v-06294777]{align-items:center;gap:8px;display:flex}.cad-tools button[data-v-06294777]{color:#25344c;cursor:pointer;background:#0f172a0f;border:0;border-radius:8px;min-width:34px;min-height:30px;font-weight:800;transition:background-color .18s,color .18s}.cad-tools button[data-v-06294777]:hover{color:#0f8f62;background:#1f966e24}.cad-zoom[data-v-06294777],.cad-meta span[data-v-06294777]{color:#64748b;letter-spacing:0;font-size:12px;font-weight:800}.cad-meta span[data-v-06294777]{background:#0f172a0f;border-radius:999px;padding:5px 9px}.cad-body[data-v-06294777]{background:#eef2f7;flex:1;grid-template-columns:minmax(168px,220px) minmax(0,1fr) minmax(150px,190px);min-height:0;display:grid}.cad-body.without-layers[data-v-06294777]{grid-template-columns:minmax(0,1fr) minmax(150px,190px)}.cad-layers[data-v-06294777],.cad-inspector[data-v-06294777]{background:#fff;border-right:1px solid #0f172a14;min-height:0;overflow:auto}.cad-inspector[data-v-06294777]{border-left:1px solid #0f172a14;border-right:0;padding:14px}.cad-layers-head[data-v-06294777]{color:#1f2a3d;z-index:1;background:#fff;justify-content:space-between;align-items:center;padding:12px 12px 8px;font-size:13px;display:flex;position:sticky;top:0}.cad-layers-head span[data-v-06294777]{color:#7b8ca5;font-size:12px;font-weight:700}.cad-layers button[data-v-06294777]{color:#25344c;cursor:pointer;text-align:left;background:#f8fafc;border:1px solid #94a3b838;border-radius:8px;align-items:center;gap:8px;width:calc(100% - 16px);min-height:34px;margin:0 8px 6px;font-size:12px;font-weight:700;display:flex}.cad-layers button.muted[data-v-06294777]{opacity:.48}.cad-layer-color[data-v-06294777]{background:#1f966e;border-radius:50%;flex:none;width:10px;height:10px;box-shadow:inset 0 0 0 1px #0f172a24}.cad-canvas-wrap[data-v-06294777]{background-color:#f8fafc;background-image:linear-gradient(90deg,#0f172a0a 1px,#0000 1px),linear-gradient(#0f172a0a 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-width:0;min-height:0;position:relative;overflow:hidden}.cad-stage[data-v-06294777]{width:100%;height:100%;min-height:420px;position:relative;overflow:hidden}.cad-stage[data-v-06294777] canvas{display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.cad-native-stage[data-v-06294777]{z-index:2;display:none;position:absolute;inset:0;overflow:hidden}.cad-native-stage[data-v-06294777]:not(:empty){display:block}.cad-native-stage[data-v-06294777] *{box-sizing:border-box}.cad-state[data-v-06294777]{color:#53637a;text-align:center;background:#ffffffeb;border-radius:12px;max-width:min(520px,100% - 48px);padding:14px 18px;font-size:13px;font-weight:800;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 14px 38px #0f172a1f}.cad-state.error[data-v-06294777]{color:#b42318}.cad-inspector strong[data-v-06294777]{color:#1f2a3d;margin-bottom:12px;font-size:13px;display:block}.cad-inspector dl[data-v-06294777]{gap:8px;margin:0;display:grid}.cad-inspector dl div[data-v-06294777]{background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.cad-inspector dt[data-v-06294777],.cad-inspector dd[data-v-06294777]{margin:0;font-size:12px}.cad-inspector dt[data-v-06294777]{color:#7b8ca5;font-weight:700}.cad-inspector dd[data-v-06294777]{color:#20304a;font-weight:900}.cad-warning[data-v-06294777]{color:#92400e;background:#f59e0b21;border-radius:8px;margin:12px 0 0;padding:10px;font-size:12px;line-height:1.55}@media (width<=860px){.cad-body[data-v-06294777],.cad-body.without-layers[data-v-06294777]{grid-template-columns:minmax(0,1fr)}.cad-layers[data-v-06294777],.cad-inspector[data-v-06294777]{display:none}}
|