@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
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./core-DHC7JJ3v.js","./package-Bop5TfAT.js","./runtime-core.esm-bundler-DO-WTVbd.js","./package-OvxnQO7z.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{h as e,r as t}from"./package-Bop5TfAT.js";import{C as n,D as r,J as i,X as a,f as o,i as s,r as c,s as l,y as u}from"./runtime-core.esm-bundler-DO-WTVbd.js";var d={class:`code-viewer`},f={class:`code-toolbar`},p={class:`code-area`},m=[`innerHTML`],h=e(o({__name:`CodeViewer`,props:{value:{},type:{}},setup(e){let o=e,h={bash:`bash`,c:`cpp`,cc:`cpp`,cjs:`javascript`,cpp:`cpp`,cs:`csharp`,css:`css`,diff:`diff`,go:`go`,h:`cpp`,hpp:`cpp`,html:`xml`,htm:`xml`,ini:`ini`,java:`java`,js:`javascript`,json:`json`,jsx:`javascript`,log:`plaintext`,md:`markdown`,markdown:`markdown`,mjs:`javascript`,php:`php`,py:`python`,rs:`rust`,sh:`bash`,sql:`sql`,ts:`typescript`,tsx:`typescript`,txt:`plaintext`,vue:`xml`,xml:`xml`,yaml:`yaml`,yml:`yaml`},g={bash:()=>t(()=>import(`./bash-LmRjUKlR.js`),[],import.meta.url),cpp:()=>t(()=>import(`./cpp-V0F2hNk9.js`),[],import.meta.url),csharp:()=>t(()=>import(`./csharp-GZmu99Fo.js`),[],import.meta.url),css:()=>t(()=>import(`./css-D5l_8KUR.js`),[],import.meta.url),diff:()=>t(()=>import(`./diff-CJb8JxGC.js`),[],import.meta.url),go:()=>t(()=>import(`./go-B-PCS5zA.js`),[],import.meta.url),ini:()=>t(()=>import(`./ini-B1CroMsf.js`),[],import.meta.url),java:()=>t(()=>import(`./java-ChVphriW.js`),[],import.meta.url),javascript:()=>t(()=>import(`./javascript-w9aIBC1S.js`),[],import.meta.url),json:()=>t(()=>import(`./json-DS4EA3dC.js`),[],import.meta.url),markdown:()=>t(()=>import(`./markdown-C8bVcNXx.js`),[],import.meta.url),php:()=>t(()=>import(`./php-5k5YNuRS.js`),[],import.meta.url),python:()=>t(()=>import(`./python-DwhXSSGr.js`),[],import.meta.url),rust:()=>t(()=>import(`./rust-Dk33Kfe-.js`),[],import.meta.url),sql:()=>t(()=>import(`./sql-DWRKyvJ-.js`),[],import.meta.url),typescript:()=>t(()=>import(`./typescript-BvteI6YB.js`),[],import.meta.url),xml:()=>t(()=>import(`./xml-DasnpDVC.js`),[],import.meta.url),yaml:()=>t(()=>import(`./yaml-1XF8XcZB.js`),[],import.meta.url)},_=null,v=new Set,y=async()=>(_||=t(()=>import(`./core-DHC7JJ3v.js`).then(e=>e.default),__vite__mapDeps([0,1,2,3]),import.meta.url),_),b=async(e,t)=>{if(v.has(t))return!0;let n=g[t];if(!n)return!1;let{default:r}=await n();return e.registerLanguage(t,r),v.add(t),!0},x=c(()=>h[o.type.toLowerCase()]||`plaintext`),S=e=>e.replace(/[&<>"']/g,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})[e]),C=r(``),w=0;n(()=>[o.value,x.value],async()=>{let e=++w,t=x.value;if(t===`plaintext`){C.value=S(o.value);return}try{let n=await y(),r=await b(n,t);if(e!==w)return;C.value=r?n.highlight(o.value,{language:t,ignoreIllegals:!0}).value:S(o.value)}catch{e===w&&(C.value=S(o.value))}},{immediate:!0});let T=c(()=>o.value.split(/\r\n|\r|\n/).length);return(t,n)=>(u(),l(`div`,d,[s(`div`,f,[s(`span`,null,a(e.type.toUpperCase()),1),s(`strong`,null,a(T.value)+` lines`,1)]),s(`pre`,p,[s(`code`,{class:i([`hljs`,`language-${x.value}`]),innerHTML:C.value},null,10,m)])]))}}),[[`__scopeId`,`data-v-cc4e2e1a`]]);export{h as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.code-viewer[data-v-cc4e2e1a]{--code-bg:#f6f8fa;--code-toolbar-bg:#ffffffeb;--code-border:#1f23281f;--code-text:#24292f;--code-muted:#57606a;--code-keyword:#cf222e;--code-title:#8250df;--code-string:#0a3069;--code-number:#0550ae;--code-comment:#6e7781;--code-attr:#953800;--code-built-in:#116329;background:var(--code-bg);min-height:100%;color:var(--code-text)}.code-toolbar[data-v-cc4e2e1a]{z-index:1;border-bottom:1px solid var(--code-border);background:var(--code-toolbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:16px;height:42px;padding:0 16px;display:flex;position:sticky;top:0}.code-toolbar span[data-v-cc4e2e1a],.code-toolbar strong[data-v-cc4e2e1a]{color:var(--code-muted);letter-spacing:0;font-size:12px;font-weight:700}.code-area[data-v-cc4e2e1a]{background:0 0;min-width:min-content;margin:0;padding:18px 20px 28px;display:block;overflow:auto}.code-area code[data-v-cc4e2e1a]{color:inherit;tab-size:2;white-space:pre;background:0 0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.7;display:block;overflow:visible}.code-area[data-v-cc4e2e1a] .hljs-comment,.code-area[data-v-cc4e2e1a] .hljs-quote{color:var(--code-comment)}.code-area[data-v-cc4e2e1a] .hljs-keyword,.code-area[data-v-cc4e2e1a] .hljs-selector-tag,.code-area[data-v-cc4e2e1a] .hljs-subst{color:var(--code-keyword)}.code-area[data-v-cc4e2e1a] .hljs-string,.code-area[data-v-cc4e2e1a] .hljs-doctag,.code-area[data-v-cc4e2e1a] .hljs-regexp{color:var(--code-string)}.code-area[data-v-cc4e2e1a] .hljs-title,.code-area[data-v-cc4e2e1a] .hljs-section,.code-area[data-v-cc4e2e1a] .hljs-selector-id{color:var(--code-title);font-weight:700}.code-area[data-v-cc4e2e1a] .hljs-number,.code-area[data-v-cc4e2e1a] .hljs-literal,.code-area[data-v-cc4e2e1a] .hljs-variable,.code-area[data-v-cc4e2e1a] .hljs-template-variable{color:var(--code-number)}.code-area[data-v-cc4e2e1a] .hljs-attr,.code-area[data-v-cc4e2e1a] .hljs-attribute,.code-area[data-v-cc4e2e1a] .hljs-name,.code-area[data-v-cc4e2e1a] .hljs-selector-class{color:var(--code-attr)}.code-area[data-v-cc4e2e1a] .hljs-built_in,.code-area[data-v-cc4e2e1a] .hljs-type,.code-area[data-v-cc4e2e1a] .hljs-class .hljs-title{color:var(--code-built-in)}.file-viewer[data-viewer-theme=dark] .code-viewer{--code-bg:#0d1117;--code-toolbar-bg:#0d1117eb;--code-border:#8b949e3d;--code-text:#e6edf3;--code-muted:#8b949e;--code-keyword:#ff7b72;--code-title:#d2a8ff;--code-string:#a5d6ff;--code-number:#79c0ff;--code-comment:#8b949e;--code-attr:#ffa657;--code-built-in:#7ee787}@media (prefers-color-scheme:dark){.file-viewer[data-viewer-theme=system] .code-viewer{--code-bg:#0d1117;--code-toolbar-bg:#0d1117eb;--code-border:#8b949e3d;--code-text:#e6edf3;--code-muted:#8b949e;--code-keyword:#ff7b72;--code-title:#d2a8ff;--code-string:#a5d6ff;--code-number:#79c0ff;--code-comment:#8b949e;--code-attr:#ffa657;--code-built-in:#7ee787}}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{$ as e,Bt as t,C as n,Ct as r,Dt as i,E as a,Et as o,F as s,Ft as c,Ht as l,I as u,K as d,Lt as f,Mt as p,Ot as m,R as h,Tt as g,U as _,V as v,Z as y,b,bt as x,et as S,f as C,ft as w,ht as T,m as E,n as D,nt as O,o as k,p as A,pt as j,q as M,r as N,rt as P,tt as F,u as I,w as L,wt as R,x as z,yt as B,z as V,zt as H}from"./three.module-
|
|
1
|
+
import{$ as e,Bt as t,C as n,Ct as r,Dt as i,E as a,Et as o,F as s,Ft as c,Ht as l,I as u,K as d,Lt as f,Mt as p,Ot as m,R as h,Tt as g,U as _,V as v,Z as y,b,bt as x,et as S,f as C,ft as w,ht as T,m as E,n as D,nt as O,o as k,p as A,pt as j,q as M,r as N,rt as P,tt as F,u as I,w as L,wt as R,x as z,yt as B,z as V,zt as H}from"./three.module-BFsVh7r1.js";var U=class extends b{constructor(e){super(e)}parse(e){function t(e){switch(e.image_type){case d:case m:if(e.colormap_length>256||e.colormap_size!==24||e.colormap_type!==1)throw Error(`THREE.TGALoader: Invalid type colormap data for indexed type.`);break;case f:case p:case h:case g:if(e.colormap_type)throw Error(`THREE.TGALoader: Invalid type colormap data for colormap type.`);break;case u:throw Error(`THREE.TGALoader: No data.`);default:throw Error(`THREE.TGALoader: Invalid type `+e.image_type)}if(e.width<=0||e.height<=0)throw Error(`THREE.TGALoader: Invalid image size.`);if(e.pixel_size!==8&&e.pixel_size!==16&&e.pixel_size!==24&&e.pixel_size!==32)throw Error(`THREE.TGALoader: Invalid pixel size `+e.pixel_size)}function n(e,t,n,r,i){let a,o,s=n.pixel_size>>3,c=n.width*n.height*s;if(t&&(o=i.subarray(r,r+=n.colormap_length*(n.colormap_size>>3))),e){a=new Uint8Array(c);let e,t,n,o=0,l=new Uint8Array(s);for(;o<c;)if(e=i[r++],t=(e&127)+1,e&128){for(n=0;n<s;++n)l[n]=i[r++];for(n=0;n<t;++n)a.set(l,o+n*s);o+=s*t}else{for(t*=s,n=0;n<t;++n)a[o+n]=i[r++];o+=t}}else a=i.subarray(r,r+=t?n.width*n.height:c);return{pixel_data:a,palettes:o}}function r(e,t,n,r,i,a,o,s,c){let l=c,u,d=0,f,p,m=E.width;for(p=t;p!==r;p+=n)for(f=i;f!==o;f+=a,d++)u=s[d],e[(f+m*p)*4+3]=255,e[(f+m*p)*4+2]=l[u*3+0],e[(f+m*p)*4+1]=l[u*3+1],e[(f+m*p)*4+0]=l[u*3+2];return e}function i(e,t,n,r,i,a,o,s){let c,l=0,u,d,f=E.width;for(d=t;d!==r;d+=n)for(u=i;u!==o;u+=a,l+=2)c=s[l+0]+(s[l+1]<<8),e[(u+f*d)*4+0]=(c&31744)>>7,e[(u+f*d)*4+1]=(c&992)>>2,e[(u+f*d)*4+2]=(c&31)<<3,e[(u+f*d)*4+3]=c&32768?0:255;return e}function a(e,t,n,r,i,a,o,s){let c=0,l,u,d=E.width;for(u=t;u!==r;u+=n)for(l=i;l!==o;l+=a,c+=3)e[(l+d*u)*4+3]=255,e[(l+d*u)*4+2]=s[c+0],e[(l+d*u)*4+1]=s[c+1],e[(l+d*u)*4+0]=s[c+2];return e}function o(e,t,n,r,i,a,o,s){let c=0,l,u,d=E.width;for(u=t;u!==r;u+=n)for(l=i;l!==o;l+=a,c+=4)e[(l+d*u)*4+2]=s[c+0],e[(l+d*u)*4+1]=s[c+1],e[(l+d*u)*4+0]=s[c+2],e[(l+d*u)*4+3]=s[c+3];return e}function s(e,t,n,r,i,a,o,s){let c,l=0,u,d,f=E.width;for(d=t;d!==r;d+=n)for(u=i;u!==o;u+=a,l++)c=s[l],e[(u+f*d)*4+0]=c,e[(u+f*d)*4+1]=c,e[(u+f*d)*4+2]=c,e[(u+f*d)*4+3]=255;return e}function c(e,t,n,r,i,a,o,s){let c=0,l,u,d=E.width;for(u=t;u!==r;u+=n)for(l=i;l!==o;l+=a,c+=2)e[(l+d*u)*4+0]=s[c+0],e[(l+d*u)*4+1]=s[c+0],e[(l+d*u)*4+2]=s[c+0],e[(l+d*u)*4+3]=s[c+1];return e}function l(e,t,n,l,u){let d,f,p,m,h,g;switch((E.flags&v)>>y){default:case S:d=0,p=1,h=t,f=0,m=1,g=n;break;case b:d=0,p=1,h=t,f=n-1,m=-1,g=-1;break;case C:d=t-1,p=-1,h=-1,f=0,m=1,g=n;break;case x:d=t-1,p=-1,h=-1,f=n-1,m=-1,g=-1;break}if(k)switch(E.pixel_size){case 8:s(e,f,m,g,d,p,h,l);break;case 16:c(e,f,m,g,d,p,h,l);break;default:throw Error(`THREE.TGALoader: Format not supported.`)}else switch(E.pixel_size){case 8:r(e,f,m,g,d,p,h,l,u);break;case 16:i(e,f,m,g,d,p,h,l);break;case 24:a(e,f,m,g,d,p,h,l);break;case 32:o(e,f,m,g,d,p,h,l);break;default:throw Error(`THREE.TGALoader: Format not supported.`)}return e}let u=0,d=1,f=2,p=3,m=9,h=10,g=11,v=48,y=4,b=0,x=1,S=2,C=3;if(e.length<19)throw Error(`THREE.TGALoader: Not enough data to contain header.`);let w=0,T=new Uint8Array(e),E={id_length:T[w++],colormap_type:T[w++],image_type:T[w++],colormap_index:T[w++]|T[w++]<<8,colormap_length:T[w++]|T[w++]<<8,colormap_size:T[w++],origin:[T[w++]|T[w++]<<8,T[w++]|T[w++]<<8],width:T[w++]|T[w++]<<8,height:T[w++]|T[w++]<<8,pixel_size:T[w++],flags:T[w++]};if(t(E),E.id_length+w>e.length)throw Error(`THREE.TGALoader: No data.`);w+=E.id_length;let D=!1,O=!1,k=!1;switch(E.image_type){case 9:D=!0,O=!0;break;case 1:O=!0;break;case 10:D=!0;break;case 2:break;case 11:D=!0,k=!0;break;case 3:k=!0;break}let A=new Uint8Array(E.width*E.height*4),j=n(D,O,E,w,T);return l(A,E.width,E.height,j.pixel_data,j.palettes),{data:A,width:E.width,height:E.height,flipY:!0,generateMipmaps:!0,minFilter:_}}};function W(e,t){let n=[],r=e.childNodes;for(let e=0,i=r.length;e<i;e++){let i=r[e];i.nodeName===t&&n.push(i)}return n}function G(e){return e.length===0?[]:e.trim().split(/\s+/)}function K(e){return e.length===0?[]:e.trim().split(/\s+/).map(parseFloat)}function q(e){return e.length===0?[]:e.trim().split(/\s+/).map(e=>parseInt(e))}function J(e){return e.substring(1)}var Y=class{constructor(){this.count=0}generateId(){return`three_default_`+ this.count++}parse(e){if(e.length===0)return null;let t=new DOMParser().parseFromString(e,`application/xml`),n=W(t,`COLLADA`)[0],r=t.getElementsByTagName(`parsererror`)[0];if(r!==void 0){let e=W(r,`div`)[0],t;return t=e?e.textContent:this.parserErrorToText(r),console.error(`THREE.ColladaLoader: Failed to parse collada file.
|
|
2
2
|
`,t),null}let i=n.getAttribute(`version`);console.debug(`THREE.ColladaLoader: File version`,i);let a=this.parseAsset(W(n,`asset`)[0]),o={animations:{},clips:{},controllers:{},images:{},effects:{},materials:{},cameras:{},lights:{},geometries:{},nodes:{},visualScenes:{},kinematicsModels:{},physicsModels:{},kinematicsScenes:{},joints:{}};return this.library=o,this.collada=n,this.parseLibrary(n,`library_animations`,`animation`,this.parseAnimation.bind(this)),this.parseLibrary(n,`library_animation_clips`,`animation_clip`,this.parseAnimationClip.bind(this)),this.parseLibrary(n,`library_controllers`,`controller`,this.parseController.bind(this)),this.parseLibrary(n,`library_images`,`image`,this.parseImage.bind(this)),this.parseLibrary(n,`library_effects`,`effect`,this.parseEffect.bind(this)),this.parseLibrary(n,`library_materials`,`material`,this.parseMaterial.bind(this)),this.parseLibrary(n,`library_cameras`,`camera`,this.parseCamera.bind(this)),this.parseLibrary(n,`library_lights`,`light`,this.parseLight.bind(this)),this.parseLibrary(n,`library_geometries`,`geometry`,this.parseGeometry.bind(this)),this.parseLibrary(n,`library_nodes`,`node`,this.parseNode.bind(this)),this.parseLibrary(n,`library_visual_scenes`,`visual_scene`,this.parseVisualScene.bind(this)),this.parseLibrary(n,`library_joints`,`joint`,this.parseLibraryJoint.bind(this)),this.parseLibrary(n,`library_kinematics_models`,`kinematics_model`,this.parseKinematicsModel.bind(this)),this.parseLibrary(n,`library_physics_models`,`physics_model`,this.parsePhysicsModel.bind(this)),this.parseLibrary(n,`scene`,`instance_kinematics_scene`,this.parseKinematicsScene.bind(this)),{library:o,asset:a,collada:n}}parserErrorToText(e){let t=[],n=[e];for(;n.length;){let e=n.shift();e.nodeType===Node.TEXT_NODE?t.push(e.textContent):(t.push(`
|
|
3
3
|
`),n.push(...e.childNodes))}return t.join(``).trim()}parseAsset(e){return{unit:this.parseAssetUnit(W(e,`unit`)[0]),upAxis:this.parseAssetUpAxis(W(e,`up_axis`)[0])}}parseAssetUnit(e){return e!==void 0&&e.hasAttribute(`meter`)===!0?parseFloat(e.getAttribute(`meter`)):1}parseAssetUpAxis(e){return e===void 0?`Y_UP`:e.textContent}parseLibrary(e,t,n,r){let i=W(e,t)[0];if(i!==void 0){let e=W(i,n);for(let t=0;t<e.length;t++)r(e[t])}}parseAnimation(e){let t={sources:{},samplers:{},channels:{}},n=!1;for(let r=0,i=e.childNodes.length;r<i;r++){let i=e.childNodes[r];if(i.nodeType!==1)continue;let a;switch(i.nodeName){case`source`:a=i.getAttribute(`id`),t.sources[a]=this.parseSource(i);break;case`sampler`:a=i.getAttribute(`id`),t.samplers[a]=this.parseAnimationSampler(i);break;case`channel`:a=i.getAttribute(`target`),t.channels[a]=this.parseAnimationChannel(i);break;case`animation`:this.parseAnimation(i),n=!0;break;default:}}n===!1&&(this.library.animations[e.getAttribute(`id`)||y.generateUUID()]=t)}parseAnimationSampler(e){let t={inputs:{}};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`input`:let e=J(r.getAttribute(`source`)),n=r.getAttribute(`semantic`);t.inputs[n]=e;break}}return t}parseAnimationChannel(e){let t={},n=e.getAttribute(`target`).split(`/`),r=n.shift(),i=n.shift(),a=i.indexOf(`(`)!==-1,o=i.indexOf(`.`)!==-1;if(o)n=i.split(`.`),i=n.shift(),t.member=n.shift();else if(a){let e=i.split(`(`);i=e.shift();for(let t=0;t<e.length;t++)e[t]=parseInt(e[t].replace(/\)/,``));t.indices=e}return t.id=r,t.sid=i,t.arraySyntax=a,t.memberSyntax=o,t.sampler=J(e.getAttribute(`source`)),t}parseAnimationClip(e){let t={name:e.getAttribute(`id`)||`default`,start:parseFloat(e.getAttribute(`start`)||0),end:parseFloat(e.getAttribute(`end`)||0),animations:[]};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`instance_animation`:t.animations.push(J(r.getAttribute(`url`)));break}}this.library.clips[e.getAttribute(`id`)]=t}parseController(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`skin`:t.id=J(r.getAttribute(`source`)),t.skin=this.parseSkin(r);break;case`morph`:t.id=J(r.getAttribute(`source`)),console.warn(`THREE.ColladaLoader: Morph target animation not supported yet.`);break}}this.library.controllers[e.getAttribute(`id`)]=t}parseSkin(e){let t={sources:{}};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`bind_shape_matrix`:t.bindShapeMatrix=K(r.textContent);break;case`source`:let e=r.getAttribute(`id`);t.sources[e]=this.parseSource(r);break;case`joints`:t.joints=this.parseJoints(r);break;case`vertex_weights`:t.vertexWeights=this.parseVertexWeights(r);break}}return t}parseJoints(e){let t={inputs:{}};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`input`:let e=r.getAttribute(`semantic`),n=J(r.getAttribute(`source`));t.inputs[e]=n;break}}return t}parseVertexWeights(e){let t={inputs:{}};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`input`:let e=r.getAttribute(`semantic`),n=J(r.getAttribute(`source`)),i=parseInt(r.getAttribute(`offset`));t.inputs[e]={id:n,offset:i};break;case`vcount`:t.vcount=q(r.textContent);break;case`v`:t.v=q(r.textContent);break}}return t}parseImage(e){let t={init_from:W(e,`init_from`)[0].textContent};this.library.images[e.getAttribute(`id`)]=t}parseEffect(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`profile_COMMON`:t.profile=this.parseEffectProfileCOMMON(r);break}}this.library.effects[e.getAttribute(`id`)]=t}parseEffectProfileCOMMON(e){let t={surfaces:{},samplers:{}};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`newparam`:this.parseEffectNewparam(r,t);break;case`technique`:t.technique=this.parseEffectTechnique(r);break;case`extra`:t.extra=this.parseEffectExtra(r);break}}return t}parseEffectNewparam(e,t){let n=e.getAttribute(`sid`);for(let r=0,i=e.childNodes.length;r<i;r++){let i=e.childNodes[r];if(i.nodeType===1)switch(i.nodeName){case`surface`:t.surfaces[n]=this.parseEffectSurface(i);break;case`sampler2D`:t.samplers[n]=this.parseEffectSampler(i);break}}}parseEffectSurface(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`init_from`:t.init_from=r.textContent;break}}return t}parseEffectSampler(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`source`:t.source=r.textContent;break}}return t}parseEffectTechnique(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`constant`:case`lambert`:case`blinn`:case`phong`:t.type=r.nodeName,t.parameters=this.parseEffectParameters(r);break;case`extra`:t.extra=this.parseEffectExtra(r);break}}return t}parseEffectParameters(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`emission`:case`diffuse`:case`specular`:case`bump`:case`ambient`:case`shininess`:case`transparency`:t[r.nodeName]=this.parseEffectParameter(r);break;case`transparent`:t[r.nodeName]={opaque:r.hasAttribute(`opaque`)?r.getAttribute(`opaque`):`A_ONE`,data:this.parseEffectParameter(r)};break}}return t}parseEffectParameter(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`color`:t[r.nodeName]=K(r.textContent);break;case`float`:t[r.nodeName]=parseFloat(r.textContent);break;case`texture`:t[r.nodeName]={id:r.getAttribute(`texture`),extra:this.parseEffectParameterTexture(r)};break}}return t}parseEffectParameterTexture(e){let t={technique:{}};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`extra`:this.parseEffectParameterTextureExtra(r,t);break}}return t}parseEffectParameterTextureExtra(e,t){for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`technique`:this.parseEffectParameterTextureExtraTechnique(r,t);break}}}parseEffectParameterTextureExtraTechnique(e,t){for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`repeatU`:case`repeatV`:case`offsetU`:case`offsetV`:t.technique[r.nodeName]=parseFloat(r.textContent);break;case`wrapU`:case`wrapV`:r.textContent.toUpperCase()===`TRUE`?t.technique[r.nodeName]=1:r.textContent.toUpperCase()===`FALSE`?t.technique[r.nodeName]=0:t.technique[r.nodeName]=parseInt(r.textContent);break;case`bump`:t[r.nodeName]=this.parseEffectExtraTechniqueBump(r);break}}}parseEffectExtra(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`technique`:t.technique=this.parseEffectExtraTechnique(r);break}}return t}parseEffectExtraTechnique(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`double_sided`:t[r.nodeName]=parseInt(r.textContent);break;case`bump`:t[r.nodeName]=this.parseEffectExtraTechniqueBump(r);break}}return t}parseEffectExtraTechniqueBump(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`texture`:t[r.nodeName]={id:r.getAttribute(`texture`),texcoord:r.getAttribute(`texcoord`),extra:this.parseEffectParameterTexture(r)};break}}return t}parseMaterial(e){let t={name:e.getAttribute(`name`)};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`instance_effect`:t.url=J(r.getAttribute(`url`));break}}this.library.materials[e.getAttribute(`id`)]=t}parseCamera(e){let t={name:e.getAttribute(`name`)};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`optics`:t.optics=this.parseCameraOptics(r);break}}this.library.cameras[e.getAttribute(`id`)]=t}parseCameraOptics(e){for(let t=0;t<e.childNodes.length;t++){let n=e.childNodes[t];switch(n.nodeName){case`technique_common`:return this.parseCameraTechnique(n)}}return{}}parseCameraTechnique(e){let t={};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];switch(r.nodeName){case`perspective`:case`orthographic`:t.technique=r.nodeName,t.parameters=this.parseCameraParameters(r);break}}return t}parseCameraParameters(e){let t={};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];switch(r.nodeName){case`xfov`:case`yfov`:case`xmag`:case`ymag`:case`znear`:case`zfar`:case`aspect_ratio`:t[r.nodeName]=parseFloat(r.textContent);break}}return t}parseLight(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`technique_common`:t=this.parseLightTechnique(r);break}}this.library.lights[e.getAttribute(`id`)]=t}parseLightTechnique(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`directional`:case`point`:case`spot`:case`ambient`:t.technique=r.nodeName,t.parameters=this.parseLightParameters(r);break}}return t}parseLightParameters(e){let t={};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`color`:let e=K(r.textContent);t.color=new A().fromArray(e),E.colorSpaceToWorking(t.color,R);break;case`falloff_angle`:t.falloffAngle=parseFloat(r.textContent);break;case`quadratic_attenuation`:let n=parseFloat(r.textContent);t.distance=n?Math.sqrt(1/n):0;break}}return t}parseGeometry(e){let t={name:e.getAttribute(`name`),sources:{},vertices:{},primitives:[]},n=W(e,`mesh`)[0];if(n!==void 0){for(let e=0;e<n.childNodes.length;e++){let r=n.childNodes[e];if(r.nodeType!==1)continue;let i=r.getAttribute(`id`);switch(r.nodeName){case`source`:t.sources[i]=this.parseSource(r);break;case`vertices`:t.vertices=this.parseGeometryVertices(r);break;case`polygons`:case`lines`:case`linestrips`:case`polylist`:case`triangles`:t.primitives.push(this.parseGeometryPrimitive(r));break;default:}}this.library.geometries[e.getAttribute(`id`)]=t}}parseSource(e){let t={array:[],stride:3};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`float_array`:t.array=K(r.textContent);break;case`Name_array`:t.array=G(r.textContent);break;case`technique_common`:let e=W(r,`accessor`)[0];e!==void 0&&(t.stride=parseInt(e.getAttribute(`stride`)));break}}return t}parseGeometryVertices(e){let t={};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];r.nodeType===1&&(t[r.getAttribute(`semantic`)]=J(r.getAttribute(`source`)))}return t}parseGeometryPrimitive(e){let t={type:e.nodeName,material:e.getAttribute(`material`),count:parseInt(e.getAttribute(`count`)),inputs:{},stride:0,hasUV:!1};for(let n=0,r=e.childNodes.length;n<r;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`input`:let e=J(r.getAttribute(`source`)),n=r.getAttribute(`semantic`),i=parseInt(r.getAttribute(`offset`)),a=parseInt(r.getAttribute(`set`)),o=a>0?n+a:n;t.inputs[o]={id:e,offset:i},t.stride=Math.max(t.stride,i+1),n===`TEXCOORD`&&(t.hasUV=!0);break;case`vcount`:t.vcount=q(r.textContent);break;case`p`:t.p=q(r.textContent);break}}return t.type===`polygons`&&(t.vcount=[t.p.length/t.stride]),t}parseLibraryJoint(e){this.library.joints[e.getAttribute(`id`)]=this.parseKinematicsJoint(e)}parseKinematicsModel(e){let t={name:e.getAttribute(`name`)||``,joints:{},links:[]};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`technique_common`:this.parseKinematicsTechniqueCommon(r,t);break}}this.library.kinematicsModels[e.getAttribute(`id`)]=t}parseKinematicsTechniqueCommon(e,t){for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`joint`:t.joints[r.getAttribute(`sid`)]=this.parseKinematicsJoint(r);break;case`instance_joint`:t.joints[r.getAttribute(`sid`)]=this.library.joints[J(r.getAttribute(`url`))];break;case`link`:t.links.push(this.parseKinematicsLink(r));break}}}parseKinematicsJoint(e){let t;for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`prismatic`:case`revolute`:t=this.parseKinematicsJointParameter(r);break}}return t}parseKinematicsJointParameter(e){let n={sid:e.getAttribute(`sid`),name:e.getAttribute(`name`)||``,axis:new t,limits:{min:0,max:0},type:e.nodeName,static:!1,zeroPosition:0,middlePosition:0};for(let t=0;t<e.childNodes.length;t++){let r=e.childNodes[t];if(r.nodeType===1)switch(r.nodeName){case`axis`:let e=K(r.textContent);n.axis.fromArray(e);break;case`limits`:let t=r.getElementsByTagName(`max`)[0],i=r.getElementsByTagName(`min`)[0];n.limits.max=parseFloat(t.textContent),n.limits.min=parseFloat(i.textContent);break}}return n.limits.min>=n.limits.max&&(n.static=!0),n.middlePosition=(n.limits.min+n.limits.max)/2,n}parseKinematicsLink(e){let t={sid:e.getAttribute(`sid`),name:e.getAttribute(`name`)||``,attachments:[],transforms:[]};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`attachment_full`:t.attachments.push(this.parseKinematicsAttachment(r));break;case`matrix`:case`translate`:case`rotate`:t.transforms.push(this.parseKinematicsTransform(r));break}}return t}parseKinematicsAttachment(e){let t={joint:e.getAttribute(`joint`).split(`/`).pop(),transforms:[],links:[]};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`link`:t.links.push(this.parseKinematicsLink(r));break;case`matrix`:case`translate`:case`rotate`:t.transforms.push(this.parseKinematicsTransform(r));break}}return t}parseKinematicsTransform(n){let r={type:n.nodeName},i=K(n.textContent);switch(r.type){case`matrix`:r.obj=new e,r.obj.fromArray(i).transpose();break;case`translate`:r.obj=new t,r.obj.fromArray(i);break;case`rotate`:r.obj=new t,r.obj.fromArray(i),r.angle=y.degToRad(i[3]);break}return r}parsePhysicsModel(e){let t={name:e.getAttribute(`name`)||``,rigidBodies:{}};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`rigid_body`:t.rigidBodies[r.getAttribute(`name`)]={},this.parsePhysicsRigidBody(r,t.rigidBodies[r.getAttribute(`name`)]);break}}this.library.physicsModels[e.getAttribute(`id`)]=t}parsePhysicsRigidBody(e,t){for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`technique_common`:this.parsePhysicsTechniqueCommon(r,t);break}}}parsePhysicsTechniqueCommon(e,t){for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`inertia`:t.inertia=K(r.textContent);break;case`mass`:t.mass=K(r.textContent)[0];break}}}parseKinematicsScene(e){let t={bindJointAxis:[]};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`bind_joint_axis`:t.bindJointAxis.push(this.parseKinematicsBindJointAxis(r));break}}this.library.kinematicsScenes[J(e.getAttribute(`url`))]=t}parseKinematicsBindJointAxis(e){let t={target:e.getAttribute(`target`).split(`/`).pop()};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r.nodeType===1)switch(r.nodeName){case`axis`:t.axis=r.getElementsByTagName(`param`)[0].textContent;let e=t.axis.split(`inst_`).pop().split(`axis`)[0];t.jointIndex=e.substring(0,e.length-1);break}}return t}prepareNodes(e){let t=e.getElementsByTagName(`node`);for(let e=0;e<t.length;e++){let n=t[e];n.hasAttribute(`id`)===!1&&n.setAttribute(`id`,this.generateId())}}parseNode(n){let r=new e,i=new t,a={name:n.getAttribute(`name`)||``,type:n.getAttribute(`type`),id:n.getAttribute(`id`),sid:n.getAttribute(`sid`),matrix:new e,nodes:[],instanceCameras:[],instanceControllers:[],instanceLights:[],instanceGeometries:[],instanceNodes:[],transforms:{},transformData:{},transformOrder:[]};for(let e=0;e<n.childNodes.length;e++){let t=n.childNodes[e];if(t.nodeType!==1)continue;let o;switch(t.nodeName){case`node`:a.nodes.push(t.getAttribute(`id`)),this.parseNode(t);break;case`instance_camera`:a.instanceCameras.push(J(t.getAttribute(`url`)));break;case`instance_controller`:a.instanceControllers.push(this.parseNodeInstance(t));break;case`instance_light`:a.instanceLights.push(J(t.getAttribute(`url`)));break;case`instance_geometry`:a.instanceGeometries.push(this.parseNodeInstance(t));break;case`instance_node`:a.instanceNodes.push(J(t.getAttribute(`url`)));break;case`matrix`:o=K(t.textContent),a.matrix.multiply(r.fromArray(o).transpose());{let e=t.getAttribute(`sid`);a.transforms[e]=t.nodeName,a.transformData[e]={type:`matrix`,array:o},a.transformOrder.push(e)}break;case`translate`:o=K(t.textContent),i.fromArray(o),a.matrix.multiply(r.makeTranslation(i.x,i.y,i.z));{let e=t.getAttribute(`sid`);a.transforms[e]=t.nodeName,a.transformData[e]={type:`translate`,x:o[0],y:o[1],z:o[2]},a.transformOrder.push(e)}break;case`rotate`:o=K(t.textContent);{let e=y.degToRad(o[3]);a.matrix.multiply(r.makeRotationAxis(i.fromArray(o),e));let n=t.getAttribute(`sid`);a.transforms[n]=t.nodeName,a.transformData[n]={type:`rotate`,axis:[o[0],o[1],o[2]],angle:o[3]},a.transformOrder.push(n)}break;case`scale`:o=K(t.textContent),a.matrix.scale(i.fromArray(o));{let e=t.getAttribute(`sid`);a.transforms[e]=t.nodeName,a.transformData[e]={type:`scale`,x:o[0],y:o[1],z:o[2]},a.transformOrder.push(e)}break;case`extra`:break;default:}}return this.hasNode(a.id)?console.warn(`THREE.ColladaLoader: There is already a node with ID %s. Exclude current node from further processing.`,a.id):this.library.nodes[a.id]=a,a}parseNodeInstance(e){let t={id:J(e.getAttribute(`url`)),materials:{},skeletons:[]};for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];switch(r.nodeName){case`bind_material`:let e=r.getElementsByTagName(`instance_material`);for(let n=0;n<e.length;n++){let r=e[n],i=r.getAttribute(`symbol`),a=r.getAttribute(`target`);t.materials[i]=J(a)}break;case`skeleton`:t.skeletons.push(J(r.textContent));break;default:break}}return t}parseVisualScene(e){let t={name:e.getAttribute(`name`),children:[]};this.prepareNodes(e);let n=W(e,`node`);for(let e=0;e<n.length;e++)t.children.push(this.parseNode(n[e]));this.library.visualScenes[e.getAttribute(`id`)]=t}hasNode(e){return this.library.nodes[e]!==void 0}},X=class{constructor(n,r,i,a){this.library=n,this.collada=r,this.textureLoader=i,this.tgaLoader=a,this.tempColor=new A,this.animations=[],this.kinematics={},this.position=new t,this.scale=new t,this.quaternion=new B,this.matrix=new e,this.deferredPivotAnimations={},this.transformNodes={}}compose(){let e=this.library;this.buildLibrary(e.animations,this.buildAnimation.bind(this)),this.buildLibrary(e.clips,this.buildAnimationClip.bind(this)),this.buildLibrary(e.controllers,this.buildController.bind(this)),this.buildLibrary(e.images,this.buildImage.bind(this)),this.buildLibrary(e.effects,this.buildEffect.bind(this)),this.buildLibrary(e.materials,this.buildMaterial.bind(this)),this.buildLibrary(e.cameras,this.buildCamera.bind(this)),this.buildLibrary(e.lights,this.buildLight.bind(this)),this.buildLibrary(e.geometries,this.buildGeometry.bind(this)),this.buildLibrary(e.visualScenes,this.buildVisualScene.bind(this)),this.setupAnimations(),this.setupKinematics();let t=this.parseScene(W(this.collada,`scene`)[0]);return t.animations=this.animations,{scene:t,animations:this.animations,kinematics:this.kinematics}}buildLibrary(e,t){for(let n in e){let r=e[n];r.build=t(e[n])}}getBuild(e,t){return e.build===void 0&&(e.build=t(e)),e.build}isEmpty(e){return Object.keys(e).length===0}buildAnimation(e){let t=[],n=e.channels,r=e.samplers,i=e.sources,a=this.aggregateAnimationChannels(n,r,i);for(let e in a){let n=this.library.nodes[e];if(!n)continue;let r=a[e];if(this.hasPivotTransforms(n))this.collectDeferredPivotAnimation(e,r);else{let i=this.getNode(e),a=!1;for(let e in r){let o=n.transforms[e],s=n.transformData[e],c=r[e];switch(o){case`matrix`:this.buildMatrixTracks(i,c,n,t);break;case`translate`:this.buildTranslateTrack(i,c,s,t);break;case`rotate`:a||=(this.buildRotateTrack(i,e,c,s,n,t),!0);break;case`scale`:this.buildScaleTrack(i,c,s,t);break}}}}return t}collectDeferredPivotAnimation(e,t){this.deferredPivotAnimations[e]||(this.deferredPivotAnimations[e]={});let n=this.deferredPivotAnimations[e];for(let e in t){n[e]||(n[e]={});for(let r in t[e])n[e][r]=t[e][r]}}hasPivotTransforms(e){for(let t of[`rotatePivot`,`rotatePivotInverse`,`rotatePivotTranslation`,`scalePivot`,`scalePivotInverse`,`scalePivotTranslation`])if(e.transforms[t]!==void 0)return!0;return!1}getAnimation(e){return this.getBuild(this.library.animations[e],this.buildAnimation.bind(this))}aggregateAnimationChannels(e,t,n){let r={};for(let i in e){if(!e.hasOwnProperty(i))continue;let a=e[i],o=t[a.sampler],s=o.inputs.INPUT,c=o.inputs.OUTPUT,l=n[s],u=n[c],d=o.inputs.INTERPOLATION,f=o.inputs.IN_TANGENT,p=o.inputs.OUT_TANGENT,m=d?n[d]:null,h=f?n[f]:null,g=p?n[p]:null,_=a.id,v=a.sid,y=a.member||`default`;r[_]||(r[_]={}),r[_][v]||(r[_][v]={}),r[_][v][y]={times:l.array,values:u.array,stride:u.stride,arraySyntax:a.arraySyntax,indices:a.indices,interpolation:m?m.array:null,inTangent:h?h.array:null,outTangent:g?g.array:null,inTangentStride:h?h.stride:0,outTangentStride:g?g.stride:0}}return r}buildMatrixTracks(e,t,n,r){let i=n.matrix.clone().transpose(),a={};for(let e in t){let n=t[e],r=n.times,i=n.values,o=n.stride;for(let e=0,t=r.length;e<t;e++){let t=r[e],s=e*o;if(a[t]===void 0&&(a[t]={}),n.arraySyntax===!0){let e=i[s],r=n.indices[0]+4*n.indices[1];a[t][r]=e}else for(let e=0;e<o;e++)a[t][e]=i[s+e]}}let o=this.prepareAnimationData(a,i),s={name:e.uuid,keyframes:o};this.createKeyframeTracks(s,r)}buildTranslateTrack(e,t,n,r){if(t.default&&t.default.stride===3){let n=t.default,i=Array.from(n.times),a=Array.from(n.values),o=new l(e.uuid+`.position`,i,a),s=this.getInterpolationInfo(t);this.applyInterpolation(o,s,t),r.push(o);return}let i=this.getTimesForAllAxes(t);if(i.length===0)return;let a=[],o=this.getInterpolationInfo(t);for(let e=0;e<i.length;e++){let r=i[e],o=this.getValueAtTime(t.X,r,n.x),s=this.getValueAtTime(t.Y,r,n.y),c=this.getValueAtTime(t.Z,r,n.z);a.push(o,s,c)}let s=new l(e.uuid+`.position`,i,a);this.applyInterpolation(s,o),r.push(s)}buildRotateTrack(e,n,r,i,a,o){let s=r.ANGLE||r.default;if(!s)return;let c=Array.from(s.times);if(c.length===0)return;let l=[];for(let e of a.transformOrder)if(a.transforms[e]===`rotate`){let n=a.transformData[e];l.push({sid:e,axis:new t(n.axis[0],n.axis[1],n.axis[2]),defaultAngle:n.angle})}let u=new B,d=new B,f=new B,p=[],m=this.getInterpolationInfo(r);for(let e=0;e<c.length;e++){let t=c[e];u.identity();for(let e of l){let r;r=e.sid===n?this.getValueAtTime(s,t,e.defaultAngle):e.defaultAngle;let i=y.degToRad(r);f.setFromAxisAngle(e.axis,i),u.multiply(f)}e>0&&d.dot(u)<0&&(u.x=-u.x,u.y=-u.y,u.z=-u.z,u.w=-u.w),d.copy(u),p.push(u.x,u.y,u.z,u.w)}let h=new x(e.uuid+`.quaternion`,c,p);this.applyInterpolation(h,m),o.push(h)}buildScaleTrack(e,t,n,r){if(t.default&&t.default.stride===3){let n=t.default,i=Array.from(n.times),a=Array.from(n.values),o=new l(e.uuid+`.scale`,i,a),s=this.getInterpolationInfo(t);this.applyInterpolation(o,s,t),r.push(o);return}let i=this.getTimesForAllAxes(t);if(i.length===0)return;let a=[],o=this.getInterpolationInfo(t);for(let e=0;e<i.length;e++){let r=i[e],o=this.getValueAtTime(t.X,r,n.x),s=this.getValueAtTime(t.Y,r,n.y),c=this.getValueAtTime(t.Z,r,n.z);a.push(o,s,c)}let s=new l(e.uuid+`.scale`,i,a);this.applyInterpolation(s,o),r.push(s)}getTimesForAllAxes(e){let t=[];return e.X&&(t=t.concat(Array.from(e.X.times))),e.Y&&(t=t.concat(Array.from(e.Y.times))),e.Z&&(t=t.concat(Array.from(e.Z.times))),e.ANGLE&&(t=t.concat(Array.from(e.ANGLE.times))),e.default&&(t=t.concat(Array.from(e.default.times))),t=[...new Set(t)].sort((e,t)=>e-t),t}getValueAtTime(e,t,n){if(!e)return n;let r=e.times,i=e.values,a=e.interpolation;for(let n=0;n<r.length;n++){if(r[n]===t)return i[n];if(r[n]>t){if(n===0)return i[0];let o=n-1,s=n,c=r[o],l=r[s],u=i[o],d=i[s],f=a?a[o]:`LINEAR`;return f===`STEP`?u:f===`BEZIER`&&e.inTangent&&e.outTangent?this.evaluateBezierComponent(e,o,s,c,l,t):u+(t-c)/(l-c)*(d-u)}}return i[i.length-1]}evaluateBezierComponent(e,t,n,r,i,a){let o=e.values,s=e.inTangent,c=e.outTangent,l=e.inTangentStride||1,u=o[t],d=o[n],f,p,m,h;l===2?(f=c[t*2],p=c[t*2+1],m=s[n*2],h=s[n*2+1]):(f=r+(i-r)/3,p=c[t],m=i-(i-r)/3,h=s[n]);let g=(a-r)/(i-r);for(let e=0;e<8;e++){let e=g*g,t=e*g,n=1-g,o=n*n,s=o*n*r+3*o*g*f+3*n*e*m+t*i,c=3*o*(f-r)+6*n*g*(m-f)+3*e*(i-m);if(Math.abs(c)<1e-10)break;let l=s-a;if(Math.abs(l)<1e-10)break;g-=l/c,g=Math.max(0,Math.min(1,g))}let _=g*g,v=_*g,y=1-g,b=y*y;return b*y*u+3*b*g*p+3*y*_*h+v*d}getInterpolationInfo(e){let t=[`X`,`Y`,`Z`,`ANGLE`,`default`],n=null,r=!0;for(let i of t){let t=e[i];if(!t||!t.interpolation)continue;let a=t.interpolation;for(let e=0;e<a.length;e++){let t=a[e];n===null?n=t:t!==n&&(r=!1)}}return{type:n||`LINEAR`,uniform:r}}applyInterpolation(e,t,n=null){if(t.type===`STEP`&&t.uniform)e.setInterpolation(u);else if(t.type===`BEZIER`&&t.uniform&&n){let t=n.default;t&&t.inTangent&&t.outTangent&&(e.setInterpolation(s),e.settings={inTangents:new Float32Array(t.inTangent),outTangents:new Float32Array(t.outTangent)})}}prepareAnimationData(e,t){let n=[];for(let t in e)n.push({time:parseFloat(t),value:e[t]});n.sort((e,t)=>e.time-t.time);for(let e=0;e<16;e++)this.transformAnimationData(n,e,t.elements[e]);return n}createKeyframeTracks(e,t){let n=e.keyframes,r=e.name,i=[],a=[],o=[],s=[],c=this.position,u=this.quaternion,d=this.scale,f=this.matrix;for(let e=0,t=n.length;e<t;e++){let t=n[e],r=t.time,l=t.value;f.fromArray(l).transpose(),f.decompose(c,u,d),i.push(r),a.push(c.x,c.y,c.z),o.push(u.x,u.y,u.z,u.w),s.push(d.x,d.y,d.z)}return a.length>0&&t.push(new l(r+`.position`,i,a)),o.length>0&&t.push(new x(r+`.quaternion`,i,o)),s.length>0&&t.push(new l(r+`.scale`,i,s)),t}transformAnimationData(e,t,n){let r,i=!0,a,o;for(a=0,o=e.length;a<o;a++)r=e[a],r.value[t]===void 0?r.value[t]=null:i=!1;if(i===!0)for(a=0,o=e.length;a<o;a++)r=e[a],r.value[t]=n;else this.createMissingKeyframes(e,t)}createMissingKeyframes(e,t){let n,r;for(let i=0,a=e.length;i<a;i++){let a=e[i];if(a.value[t]===null){if(n=this.getPrev(e,i,t),r=this.getNext(e,i,t),n===null){a.value[t]=r.value[t];continue}if(r===null){a.value[t]=n.value[t];continue}this.interpolate(a,n,r,t)}}}getPrev(e,t,n){for(;t>=0;){let r=e[t];if(r.value[n]!==null)return r;t--}return null}getNext(e,t,n){for(;t<e.length;){let r=e[t];if(r.value[n]!==null)return r;t++}return null}interpolate(e,t,n,r){if(n.time-t.time===0){e.value[r]=t.value[r];return}e.value[r]=(e.time-t.time)*(n.value[r]-t.value[r])/(n.time-t.time)+t.value[r]}buildAnimationClip(e){let t=[],n=e.name,r=e.end-e.start||-1,i=e.animations;for(let e=0,n=i.length;e<n;e++){let n=this.getAnimation(i[e]);for(let e=0,r=n.length;e<r;e++)t.push(n[e])}return new N(n,r,t)}getAnimationClip(e){return this.getBuild(this.library.clips[e],this.buildAnimationClip.bind(this))}buildController(e){let t={id:e.id},n=this.library.geometries[t.id];return e.skin!==void 0&&(t.skin=this.buildSkin(e.skin),n.sources.skinIndices=t.skin.indices,n.sources.skinWeights=t.skin.weights),t}buildSkin(t){let n={joints:[],indices:{array:[],stride:4},weights:{array:[],stride:4}},r=t.sources,i=t.vertexWeights,a=i.vcount,o=i.v,s=i.inputs.JOINT.offset,c=i.inputs.WEIGHT.offset,l=t.sources[t.joints.inputs.JOINT],u=t.sources[t.joints.inputs.INV_BIND_MATRIX],d=r[i.inputs.WEIGHT.id].array,f=0,p,m,h;for(p=0,h=a.length;p<h;p++){let e=a[p],t=[];for(m=0;m<e;m++){let e=o[f+s],n=d[o[f+c]];t.push({index:e,weight:n}),f+=2}for(t.sort(g),m=0;m<4;m++){let e=t[m];e===void 0?(n.indices.array.push(0),n.weights.array.push(0)):(n.indices.array.push(e.index),n.weights.array.push(e.weight))}}for(t.bindShapeMatrix?n.bindMatrix=new e().fromArray(t.bindShapeMatrix).transpose():n.bindMatrix=new e().identity(),p=0,h=l.array.length;p<h;p++){let t=l.array[p],r=new e().fromArray(u.array,p*u.stride).transpose();n.joints.push({name:t,boneInverse:r})}return n;function g(e,t){return t.weight-e.weight}}getController(e){return this.getBuild(this.library.controllers[e],this.buildController.bind(this))}buildImage(e){return e.build===void 0?e.init_from:e.build}getImage(e){let t=this.library.images[e];return t===void 0?(console.warn(`THREE.ColladaLoader: Couldn't find image with ID:`,e),null):this.getBuild(t,this.buildImage.bind(this))}buildEffect(e){return e}getEffect(e){return this.getBuild(this.library.effects[e],this.buildEffect.bind(this))}getTextureLoader(e){let t,n=e.slice((e.lastIndexOf(`.`)-1>>>0)+2);switch(n=n.toLowerCase(),n){case`tga`:t=this.tgaLoader;break;default:t=this.textureLoader}return t}buildMaterial(e){let t=this.getEffect(e.url),n=t.profile.technique,i;switch(n.type){case`phong`:case`blinn`:i=new P;break;case`lambert`:i=new O;break;default:i=new F;break}i.name=e.name||``;let a=this;function o(e,n=null){let i=t.profile.samplers[e.id],o=null;if(i!==void 0){let e=t.profile.surfaces[i.source];o=a.getImage(e.init_from)}else console.warn(`THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530).`),o=a.getImage(e.id);if(o!==null){let t=a.getTextureLoader(o);if(t!==void 0){let i=t.load(o),s=e.extra;if(s!==void 0&&s.technique!==void 0&&a.isEmpty(s.technique)===!1){let e=s.technique;i.wrapS=e.wrapU?r:C,i.wrapT=e.wrapV?r:C,i.offset.set(e.offsetU||0,e.offsetV||0),i.repeat.set(e.repeatU||1,e.repeatV||1)}else i.wrapS=r,i.wrapT=r;return n!==null&&(i.colorSpace=n),i}else return console.warn(`THREE.ColladaLoader: Loader for texture %s not found.`,o),null}else return console.warn(`THREE.ColladaLoader: Couldn't create texture with ID:`,e.id),null}let s=n.parameters;for(let e in s){let t=s[e];switch(e){case`diffuse`:t.color&&i.color.fromArray(t.color),t.texture&&(i.map=o(t.texture,R));break;case`specular`:t.color&&i.specular&&i.specular.fromArray(t.color),t.texture&&(i.specularMap=o(t.texture));break;case`bump`:t.texture&&(i.normalMap=o(t.texture));break;case`ambient`:t.texture&&(i.lightMap=o(t.texture,R));break;case`shininess`:t.float&&i.shininess&&(i.shininess=t.float);break;case`emission`:t.color&&i.emissive&&i.emissive.fromArray(t.color),t.texture&&(i.emissiveMap=o(t.texture,R));break}}E.colorSpaceToWorking(i.color,R),i.specular&&E.colorSpaceToWorking(i.specular,R),i.emissive&&E.colorSpaceToWorking(i.emissive,R);let c=s.transparent,l=s.transparency;if(l===void 0&&c&&(l={float:1}),c===void 0&&l&&(c={opaque:`A_ONE`,data:{color:[1,1,1,1]}}),c&&l)if(c.data.texture)i.transparent=!0;else{let e=c.data.color;switch(c.opaque){case`A_ONE`:i.opacity=e[3]*l.float;break;case`RGB_ZERO`:i.opacity=1-e[0]*l.float;break;case`A_ZERO`:i.opacity=1-e[3]*l.float;break;case`RGB_ONE`:i.opacity=e[0]*l.float;break;default:console.warn(`THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.`,c.opaque)}i.opacity<1&&(i.transparent=!0)}if(n.extra!==void 0&&n.extra.technique!==void 0){let e=n.extra.technique;for(let t in e){let n=e[t];switch(t){case`double_sided`:i.side=n===1?2:0;break;case`bump`:i.normalMap=o(n.texture),i.normalScale=new H(1,1);break}}}return i}getMaterial(e){return this.getBuild(this.library.materials[e],this.buildMaterial.bind(this))}buildCamera(e){let t;switch(e.optics.technique){case`perspective`:t=new j(e.optics.parameters.yfov,e.optics.parameters.aspect_ratio,e.optics.parameters.znear,e.optics.parameters.zfar);break;case`orthographic`:let n=e.optics.parameters.ymag,r=e.optics.parameters.xmag,i=e.optics.parameters.aspect_ratio;r=r===void 0?n*i:r,n=n===void 0?r/i:n,r*=.5,n*=.5,t=new w(-r,r,n,-n,e.optics.parameters.znear,e.optics.parameters.zfar);break;default:t=new j;break}return t.name=e.name||``,t}getCamera(e){let t=this.library.cameras[e];return t===void 0?(console.warn(`THREE.ColladaLoader: Couldn't find camera with ID:`,e),null):this.getBuild(t,this.buildCamera.bind(this))}buildLight(e){let t;switch(e.technique){case`directional`:t=new z;break;case`point`:t=new T;break;case`spot`:t=new p;break;case`ambient`:t=new D;break}return e.parameters.color&&t.color.copy(e.parameters.color),e.parameters.distance&&(t.distance=e.parameters.distance),e.parameters.falloffAngle&&(t.angle=y.degToRad(e.parameters.falloffAngle)),t}getLight(e){let t=this.library.lights[e];return t===void 0?(console.warn(`THREE.ColladaLoader: Couldn't find light with ID:`,e),null):this.getBuild(t,this.buildLight.bind(this))}groupPrimitives(e){let t={};for(let n=0;n<e.length;n++){let r=e[n];t[r.type]===void 0&&(t[r.type]=[]),t[r.type].push(r)}return t}checkUVCoordinates(e){let t=0;for(let n=0,r=e.length;n<r;n++)e[n].hasUV===!0&&t++;t>0&&t<e.length&&(e.uvsNeedsFix=!0)}buildGeometry(e){let t={},n=e.sources,r=e.vertices,i=e.primitives;if(i.length===0)return{};let a=this.groupPrimitives(i);for(let e in a){let i=a[e];this.checkUVCoordinates(i),t[e]=this.buildGeometryType(i,n,r)}return t}buildGeometryType(e,t,n){let r={},i={array:[],stride:0},a={array:[],stride:0},o={array:[],stride:0},s={array:[],stride:0},c={array:[],stride:0},l={array:[],stride:4},u={array:[],stride:4},d=new I,f=[],p=0;for(let r=0;r<e.length;r++){let m=e[r],h=m.inputs,g=0;switch(m.type){case`lines`:case`linestrips`:g=m.count*2;break;case`triangles`:g=m.count*3;break;case`polygons`:case`polylist`:for(let e=0;e<m.count;e++){let t=m.vcount[e];switch(t){case 3:g+=3;break;case 4:g+=6;break;default:g+=(t-2)*3;break}}break;default:console.warn(`THREE.ColladaLoader: Unknown primitive type:`,m.type)}d.addGroup(p,g,r),p+=g,m.material&&f.push(m.material);for(let r in h){let d=h[r];switch(r){case`VERTEX`:for(let r in n){let f=n[r];switch(r){case`POSITION`:let n=i.array.length;if(this.buildGeometryData(m,t[f],d.offset,i.array),i.stride=t[f].stride,t.skinWeights&&t.skinIndices&&(this.buildGeometryData(m,t.skinIndices,d.offset,l.array),this.buildGeometryData(m,t.skinWeights,d.offset,u.array)),m.hasUV===!1&&e.uvsNeedsFix===!0){let e=(i.array.length-n)/i.stride;for(let t=0;t<e;t++)o.array.push(0,0)}break;case`NORMAL`:this.buildGeometryData(m,t[f],d.offset,a.array),a.stride=t[f].stride;break;case`COLOR`:this.buildGeometryData(m,t[f],d.offset,c.array),c.stride=t[f].stride;break;case`TEXCOORD`:this.buildGeometryData(m,t[f],d.offset,o.array),o.stride=t[f].stride;break;case`TEXCOORD1`:this.buildGeometryData(m,t[f],d.offset,s.array),o.stride=t[f].stride;break;default:console.warn(`THREE.ColladaLoader: Semantic "%s" not handled in geometry build process.`,r)}}break;case`NORMAL`:this.buildGeometryData(m,t[d.id],d.offset,a.array),a.stride=t[d.id].stride;break;case`COLOR`:this.buildGeometryData(m,t[d.id],d.offset,c.array,!0),c.stride=t[d.id].stride;break;case`TEXCOORD`:this.buildGeometryData(m,t[d.id],d.offset,o.array),o.stride=t[d.id].stride;break;case`TEXCOORD1`:this.buildGeometryData(m,t[d.id],d.offset,s.array),s.stride=t[d.id].stride;break}}}return i.array.length>0&&d.setAttribute(`position`,new L(i.array,i.stride)),a.array.length>0&&d.setAttribute(`normal`,new L(a.array,a.stride)),c.array.length>0&&d.setAttribute(`color`,new L(c.array,c.stride)),o.array.length>0&&d.setAttribute(`uv`,new L(o.array,o.stride)),s.array.length>0&&d.setAttribute(`uv1`,new L(s.array,s.stride)),l.array.length>0&&d.setAttribute(`skinIndex`,new L(l.array,l.stride)),u.array.length>0&&d.setAttribute(`skinWeight`,new L(u.array,u.stride)),r.data=d,r.type=e[0].type,r.materialKeys=f,r}buildGeometryData(e,n,r,i,a=!1){let s=e.p,c=e.stride,l=e.vcount,u=this.tempColor;function d(e){let t=s[e+r]*m,n=t+m;for(;t<n;t++)i.push(p[t]);if(a){let e=i.length-m-1;u.setRGB(i[e+0],i[e+1],i[e+2],R),i[e+0]=u.r,i[e+1]=u.g,i[e+2]=u.b}}let p=n.array,m=n.stride;if(e.vcount!==void 0){let e=0;for(let n=0,r=l.length;n<r;n++){let r=l[n];if(r===4){let t=e+c*0,n=e+c*1,r=e+c*2,i=e+c*3;d(t),d(n),d(i),d(n),d(r),d(i)}else if(r===3){let t=e+c*0,n=e+c*1,r=e+c*2;d(t),d(n),d(r)}else if(r>4){let n=[];for(let i=0;i<r;i++){let r=s[e+c*i]*m,a=p[r],o=p[r+1],l=p[r+2];n.push(new t(a,o,l))}let i=new t,a=new f;a.a=n[0],a.b=n[1],a.c=n[2],a.getNormal(i);let l=[];if(Math.abs(i.x)>Math.abs(i.y)&&Math.abs(i.x)>Math.abs(i.z))for(let e=0;e<r;e++)l.push(new H(n[e].y,n[e].z));else if(Math.abs(i.y)>Math.abs(i.z))for(let e=0;e<r;e++)l.push(new H(n[e].x,n[e].z));else for(let e=0;e<r;e++)l.push(new H(n[e].x,n[e].y));let u=o.isClockWise(l);u===!0&&l.reverse();let h=o.triangulateShape(l,[]);for(let t=0;t<h.length;t++){let n=h[t],i,a,o;u===!1?(i=n[0],a=n[1],o=n[2]):(i=r-1-n[0],a=r-1-n[2],o=r-1-n[1]);let s=e+c*i,l=e+c*a,f=e+c*o;d(s),d(l),d(f)}}e+=c*r}}else for(let e=0,t=s.length;e<t;e+=c)d(e)}getGeometry(e){return this.getBuild(this.library.geometries[e],this.buildGeometry.bind(this))}buildKinematicsModel(e){return e.build===void 0?e:e.build}getKinematicsModel(e){return this.getBuild(this.library.kinematicsModels[e],this.buildKinematicsModel.bind(this))}buildKinematicsScene(e){return e.build===void 0?e:e.build}getKinematicsScene(e){return this.getBuild(this.library.kinematicsScenes[e],this.buildKinematicsScene.bind(this))}setupKinematics(){let t=Object.keys(this.library.kinematicsModels)[0],n=Object.keys(this.library.kinematicsScenes)[0],r=Object.keys(this.library.visualScenes)[0];if(t===void 0||n===void 0)return;let i=this.getKinematicsModel(t),a=this.getKinematicsScene(n),o=this.getVisualScene(r),s=a.bindJointAxis,c={},l=this.collada,u=this;for(let e=0,t=s.length;e<t;e++){let t=s[e],n=l.querySelector(`[sid="`+t.target+`"]`);if(n){let e=n.parentElement;d(t.jointIndex,e)}}function d(e,t){let n=t.getAttribute(`name`),r=i.joints[e],a=u.buildTransformList(t);o.traverse(function(t){t.name===n&&(c[e]={object:t,transforms:a,joint:r,position:r.zeroPosition})})}let f=new e,p=this.matrix;this.kinematics={joints:i&&i.joints,getJointValue:function(e){let t=c[e];if(t)return t.position;console.warn(`THREE.ColladaLoader: Joint `+e+` doesn't exist.`)},setJointValue:function(e,t){let n=c[e];if(n){let r=n.joint;if(t>r.limits.max||t<r.limits.min)console.warn(`THREE.ColladaLoader: Joint `+e+` value `+t+` outside of limits (min: `+r.limits.min+`, max: `+r.limits.max+`).`);else if(r.static)console.warn(`THREE.ColladaLoader: Joint `+e+` is static.`);else{let i=n.object,a=r.axis,o=n.transforms;p.identity();for(let n=0;n<o.length;n++){let i=o[n];if(i.sid&&i.sid.indexOf(e)!==-1)switch(r.type){case`revolute`:p.multiply(f.makeRotationAxis(a,y.degToRad(t)));break;case`prismatic`:p.multiply(f.makeTranslation(a.x*t,a.y*t,a.z*t));break;default:console.warn(`THREE.ColladaLoader: Unknown joint type: `+r.type);break}else switch(i.type){case`matrix`:p.multiply(i.obj);break;case`translate`:p.multiply(f.makeTranslation(i.obj.x,i.obj.y,i.obj.z));break;case`scale`:p.scale(i.obj);break;case`rotate`:p.multiply(f.makeRotationAxis(i.obj,i.angle));break}}i.matrix.copy(p),i.matrix.decompose(i.position,i.quaternion,i.scale),c[e].position=t}}else console.warn(`THREE.ColladaLoader: Joint `+e+` does not exist.`)}}}buildTransformList(n){let r=[],i=this.collada.querySelector(`[id="`+n.id+`"]`);for(let n=0;n<i.childNodes.length;n++){let a=i.childNodes[n];if(a.nodeType!==1)continue;let o,s;switch(a.nodeName){case`matrix`:o=K(a.textContent);let n=new e().fromArray(o).transpose();r.push({sid:a.getAttribute(`sid`),type:a.nodeName,obj:n});break;case`translate`:case`scale`:o=K(a.textContent),s=new t().fromArray(o),r.push({sid:a.getAttribute(`sid`),type:a.nodeName,obj:s});break;case`rotate`:o=K(a.textContent),s=new t().fromArray(o);let i=y.degToRad(o[3]);r.push({sid:a.getAttribute(`sid`),type:a.nodeName,obj:s,angle:i});break}}return r}buildSkeleton(e,t){let n=[],r=[],a,o,s;for(a=0;a<e.length;a++){let r=e[a],i;if(this.hasNode(r))i=this.getNode(r),this.buildBoneHierarchy(i,t,n);else if(this.hasVisualScene(r)){let e=this.library.visualScenes[r].children;for(let r=0;r<e.length;r++){let i=e[r];if(i.type===`JOINT`){let e=this.getNode(i.id);this.buildBoneHierarchy(e,t,n)}}}else console.error(`THREE.ColladaLoader: Unable to find root bone of skeleton with ID:`,r)}for(a=0;a<t.length;a++)for(o=0;o<n.length;o++)if(s=n[o],s.bone.name===t[a].name){r[a]=s,s.processed=!0;break}for(a=0;a<n.length;a++)s=n[a],s.processed===!1&&(r.push(s),s.processed=!0);let c=[],l=[];for(a=0;a<r.length;a++)s=r[a],c.push(s.bone),l.push(s.boneInverse);return new i(c,l)}buildBoneHierarchy(t,n,r){t.traverse(function(t){if(t.isBone===!0){let i;for(let e=0;e<n.length;e++){let r=n[e];if(r.name===t.name){i=r.boneInverse;break}}i===void 0&&(i=new e),r.push({bone:t,boneInverse:i,processed:!1})}})}buildNode(e){let t=[],n=e.matrix,r=e.nodes,i=e.type,o=e.instanceCameras,s=e.instanceControllers,c=e.instanceLights,l=e.instanceGeometries,u=e.instanceNodes;for(let e=0,n=r.length;e<n;e++)t.push(this.getNode(r[e]));for(let e=0,n=o.length;e<n;e++){let n=this.getCamera(o[e]);n!==null&&t.push(n.clone())}for(let e=0,n=s.length;e<n;e++){let n=s[e],r=this.getController(n.id),i=this.getGeometry(r.id),a=this.buildObjects(i,n.materials),o=n.skeletons,c=r.skin.joints,l=this.buildSkeleton(o,c);for(let e=0,n=a.length;e<n;e++){let n=a[e];n.isSkinnedMesh&&(n.bind(l,r.skin.bindMatrix),n.normalizeSkinWeights()),t.push(n)}}for(let e=0,n=c.length;e<n;e++){let n=this.getLight(c[e]);n!==null&&t.push(n.clone())}for(let e=0,n=l.length;e<n;e++){let n=l[e],r=this.getGeometry(n.id),i=this.buildObjects(r,n.materials);for(let e=0,n=i.length;e<n;e++)t.push(i[e])}for(let e=0,n=u.length;e<n;e++)t.push(this.getNode(u[e]).clone());let d;if(r.length===0&&t.length===1)d=t[0];else{d=i===`JOINT`?new k:new a;for(let e=0;e<t.length;e++)d.add(t[e])}return d.name=i===`JOINT`?e.sid:e.name,i!==`JOINT`&&this.hasPivotTransforms(e)?this.wrapWithTransformHierarchy(d,e):(d.matrix.copy(n),d.matrix.decompose(d.position,d.quaternion,d.scale),d)}wrapWithTransformHierarchy(n,r){let i=r.id;this.transformNodes[i]={};let o=r.transformOrder,s=r.transformData,c=new a;c.name=r.name;let l=c;for(let n=0;n<o.length;n++){let c=o[n],u=s[c],d=new a;switch(d.name=r.name+`_`+c,u.type){case`translate`:d.position.set(u.x,u.y,u.z);break;case`rotate`:{let e=new t(u.axis[0],u.axis[1],u.axis[2]),n=y.degToRad(u.angle);d.quaternion.setFromAxisAngle(e,n),d.userData.rotationAxis=e;break}case`scale`:d.scale.set(u.x,u.y,u.z);break;case`matrix`:new e().fromArray(u.array).transpose().decompose(d.position,d.quaternion,d.scale);break}this.transformNodes[i][c]=d,l.add(d),l=d}return l.add(n),c}resolveMaterialBinding(e,t){let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];i===void 0?(console.warn(`THREE.ColladaLoader: Material with key %s not found. Apply fallback material.`,e[r]),n.push(this.fallbackMaterial)):n.push(this.getMaterial(i))}return n}get fallbackMaterial(){return this._fallbackMaterial===void 0&&(this._fallbackMaterial=new F({name:d.DEFAULT_MATERIAL_NAME,color:16711935})),this._fallbackMaterial}buildObjects(e,t){let n=[];for(let r in e){let i=e[r],a=this.resolveMaterialBinding(i.materialKeys,t);if(a.length===0&&(r===`lines`||r===`linestrips`?a.push(new V):a.push(new P)),r===`lines`||r===`linestrips`)for(let e=0,t=a.length;e<t;e++){let t=a[e];if(t.isMeshPhongMaterial===!0||t.isMeshLambertMaterial===!0){let n=new V;n.color.copy(t.color),n.opacity=t.opacity,n.transparent=t.transparent,a[e]=n}}let o=i.data.attributes.skinIndex!==void 0,s=a.length===1?a[0]:a,c;switch(r){case`lines`:c=new v(i.data,s);break;case`linestrips`:c=new h(i.data,s);break;case`triangles`:case`polygons`:case`polylist`:c=o?new m(i.data,s):new S(i.data,s);break}n.push(c)}return n}hasNode(e){return this.library.nodes[e]!==void 0}getNode(e){return this.getBuild(this.library.nodes[e],this.buildNode.bind(this))}buildVisualScene(e){let t=new a;t.name=e.name;let n=e.children;for(let e=0;e<n.length;e++){let r=n[e];t.add(this.getNode(r.id))}return t}hasVisualScene(e){return this.library.visualScenes[e]!==void 0}getVisualScene(e){return this.getBuild(this.library.visualScenes[e],this.buildVisualScene.bind(this))}parseScene(e){let t=W(e,`instance_visual_scene`)[0];return this.getVisualScene(this.parseId(t.getAttribute(`url`)))}parseId(e){return e.substring(1)}setupAnimations(){let e=this.library.clips;if(this.isEmpty(e)===!0){if(this.isEmpty(this.library.animations)===!1){let e=[];for(let t in this.library.animations){let n=this.getAnimation(t);for(let t=0,r=n.length;t<r;t++)e.push(n[t])}this.buildDeferredPivotAnimationTracks(e),this.animations.push(new N(`default`,-1,e))}}else for(let t in e)this.animations.push(this.getAnimationClip(t))}buildDeferredPivotAnimationTracks(e){for(let t in this.deferredPivotAnimations){let n=this.library.nodes[t];if(!n)continue;let r=this.deferredPivotAnimations[t];this.buildTransformHierarchyTracks(t,r,n,e)}}buildTransformHierarchyTracks(e,t,n,r){let i=this.transformNodes[e];if(!i){console.warn(`THREE.ColladaLoader: Transform hierarchy not found for node:`,e);return}for(let e in t){let a=i[e];if(!a)continue;let o=n.transforms[e],s=n.transformData[e],c=t[e];switch(o){case`translate`:this.buildHierarchyTranslateTrack(a,c,s,r);break;case`rotate`:this.buildHierarchyRotateTrack(a,c,s,r);break;case`scale`:this.buildHierarchyScaleTrack(a,c,s,r);break}}}buildHierarchyTranslateTrack(e,t,n,r){if(t.default&&t.default.stride===3){let n=t.default,i=new l(e.uuid+`.position`,Array.from(n.times),Array.from(n.values)),a=this.getInterpolationInfo(t);this.applyInterpolation(i,a,t),r.push(i);return}let i=this.getTimesForAllAxes(t);if(i.length===0)return;let a=[],o=this.getInterpolationInfo(t);for(let e=0;e<i.length;e++){let r=i[e],o=this.getValueAtTime(t.X,r,n.x),s=this.getValueAtTime(t.Y,r,n.y),c=this.getValueAtTime(t.Z,r,n.z);a.push(o,s,c)}let s=new l(e.uuid+`.position`,i,a);this.applyInterpolation(s,o),r.push(s)}buildHierarchyRotateTrack(e,n,r,i){let a=n.ANGLE||n.default;if(!a)return;let o=Array.from(a.times);if(o.length===0)return;let s=e.userData.rotationAxis||new t(r.axis[0],r.axis[1],r.axis[2]),c=new B,l=new B,u=[],d=this.getInterpolationInfo(n);for(let e=0;e<o.length;e++){let t=o[e],n=this.getValueAtTime(a,t,r.angle),i=y.degToRad(n);c.setFromAxisAngle(s,i),e>0&&l.dot(c)<0&&(c.x=-c.x,c.y=-c.y,c.z=-c.z,c.w=-c.w),l.copy(c),u.push(c.x,c.y,c.z,c.w)}let f=new x(e.uuid+`.quaternion`,o,u);this.applyInterpolation(f,d),i.push(f)}buildHierarchyScaleTrack(e,t,n,r){if(t.default&&t.default.stride===3){let n=t.default,i=new l(e.uuid+`.scale`,Array.from(n.times),Array.from(n.values)),a=this.getInterpolationInfo(t);this.applyInterpolation(i,a,t),r.push(i);return}let i=this.getTimesForAllAxes(t);if(i.length===0)return;let a=[],o=this.getInterpolationInfo(t);for(let e=0;e<i.length;e++){let r=i[e],o=this.getValueAtTime(t.X,r,n.x),s=this.getValueAtTime(t.Y,r,n.y),c=this.getValueAtTime(t.Z,r,n.z);a.push(o,s,c)}let s=new l(e.uuid+`.scale`,i,a);this.applyInterpolation(s,o),r.push(s)}},Z=class extends d{load(e,t,r,i){let a=this,o=a.path===``?M.extractUrlBase(e):a.path,s=new n(a.manager);s.setPath(a.path),s.setRequestHeader(a.requestHeader),s.setWithCredentials(a.withCredentials),s.load(e,function(n){try{t(a.parse(n,o))}catch(t){i?i(t):console.error(t),a.manager.itemError(e)}},r,i)}parse(e,t){if(e.length===0)return{scene:new g};let n=new Y().parse(e);if(n===null)return null;let{library:r,asset:i,collada:a}=n,o=new c(this.manager);o.setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin);let s;U&&(s=new U(this.manager),s.setPath(this.resourcePath||t));let{scene:l,animations:u,kinematics:d}=new X(r,a,o,s).compose();return l.animations=u,i.upAxis===`Z_UP`&&(console.warn(`THREE.ColladaLoader: You are loading an asset with a Z-UP coordinate system. The loader just rotates the asset to transform it into Y-UP. The vertex data are not converted, see #24289.`),l.rotation.set(-Math.PI/2,0,0)),l.scale.multiplyScalar(i.unit),{get animations(){return console.warn(`THREE.ColladaLoader: Please access animations over scene.animations now.`),u},kinematics:d,library:r,scene:l}}};export{Z as ColladaLoader};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./rough.esm-DjrMDdlL.js","./package-Bop5TfAT.js","./runtime-core.esm-bundler-DO-WTVbd.js","./package-OvxnQO7z.css","./prod-B0HxyDM0.js","./chunk-K2UTITRG-BEkZoneJ.js","./chunk-SRAX5OIU-w1svEpmY.js","./chunk-ZUYEQ4TG-BzFOpW--.js","./chunk-6U3AYISY-C6-Mtja1.js","./chunk-Z3N5DIM6-D9TMVU7m.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{h as e,p as t,r as n}from"./package-Bop5TfAT.js";import{D as r,X as i,Y as a,_ as o,f as s,h as c,i as l,o as u,r as d,s as f,y as p}from"./runtime-core.esm-bundler-DO-WTVbd.js";var m={class:`drawing-viewer`},h={class:`drawing-toolbar`},g={class:`drawing-title`},_={class:`drawing-actions`},v={class:`drawing-stage`},y={key:0,class:`drawing-state`},b={key:1,class:`drawing-state error`},x={class:`drawing-scroll`},S=`https://viewer.diagrams.net/js/viewer-static.min.js`,C=`http://www.w3.org/2000/svg`,w=6e3,T=e(s({__name:`DrawingViewer`,props:{data:{},type:{}},setup(e){let s=e,T=null,E=r(`loading`),D=r(``),O=r(null),k=r(1),A=d(()=>s.type.toLowerCase()),j=d(()=>A.value===`excalidraw`),M=d(()=>A.value===`dio`?`DRAWIO`:A.value.toUpperCase()),N=d(()=>j.value?{transform:`scale(${k.value})`,transformOrigin:`top center`}:{zoom:k.value}),P=e=>Math.min(3,Math.max(.5,Number(e.toFixed(2)))),F=()=>{k.value=P(k.value+.15)},I=()=>{k.value=P(k.value-.15)},L=()=>{k.value=1},R=()=>{let e=O.value;if(e)for(delete e.dataset.drawingRendered;e.firstChild;)e.removeChild(e.firstChild)},z=()=>window.GraphViewer?Promise.resolve():(T||=new Promise((e,t)=>{let n=document.querySelector(`script[src="${S}"]`);if(n){n.addEventListener(`load`,()=>e(),{once:!0}),n.addEventListener(`error`,()=>t(Error(`diagrams.net viewer 加载失败`)),{once:!0});return}let r=document.createElement(`script`);r.src=S,r.async=!0,r.onload=()=>e(),r.onerror=()=>t(Error(`diagrams.net viewer 加载失败`)),document.head.appendChild(r)}),T),B=(e,t=0)=>{let n=Number(e);return Number.isFinite(n)?n:t},V=e=>!e||e===`transparent`||e===`rgba(0, 0, 0, 0)`,H=e=>document.createElementNS(C,e),U=async(e,t,n)=>{let r;try{return await Promise.race([e,new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)})])}finally{r&&clearTimeout(r)}},W=(e,t)=>e.dataset.drawingRendered?!1:(e.dataset.drawingRendered=t,!0),G=(e,t,n)=>{W(e,n)&&(t.classList.add(`drawing-svg`),e.appendChild(t))},K=()=>{let e=console.error,t=(...t)=>{t.map(e=>String(e)).join(` `).includes(`Failed to use workers for subsetting`)||e(...t)};return console.error=t,()=>{console.error===t&&(console.error=e)}},q=e=>Array.isArray(e.points)&&e.points.length?e.points.map(t=>[B(e.x)+B(t[0]),B(e.y)+B(t[1])]):[[B(e.x),B(e.y)],[B(e.x)+B(e.width),B(e.y)+B(e.height)]],J=e=>{let t=q(e),n=t.map(e=>e[0]),r=t.map(e=>e[1]);return Array.isArray(e.points)||(n.push(B(e.x)+B(e.width)),r.push(B(e.y)+B(e.height))),{minX:Math.min(...n),minY:Math.min(...r),maxX:Math.max(...n),maxY:Math.max(...r)}},Y=e=>{let t=e.reduce((e,t)=>{let n=J(t);return{minX:Math.min(e.minX,n.minX),minY:Math.min(e.minY,n.minY),maxX:Math.max(e.maxX,n.maxX),maxY:Math.max(e.maxY,n.maxY)}},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0});return Number.isFinite(t.minX)?t:{minX:0,minY:0,maxX:800,maxY:480}},X=e=>{let t=V(e.backgroundColor)?void 0:e.backgroundColor;return{stroke:e.strokeColor||`#1e1e1e`,strokeWidth:Math.max(1,B(e.strokeWidth,1)),roughness:Math.max(0,B(e.roughness,1)),fill:t,fillStyle:e.fillStyle||`hachure`,seed:B(e.seed,1),strokeLineDash:e.strokeStyle===`dashed`?[10,8]:e.strokeStyle===`dotted`?[2,6]:void 0}},Z=(e,t,n)=>{let r=B(t.opacity,100)/100;r<1&&n.setAttribute(`opacity`,String(r)),e.appendChild(n)},Q=e=>{let t=H(`g`),n=B(e.angle);if(n){let r=B(e.x)+B(e.width)/2,i=B(e.y)+B(e.height)/2;t.setAttribute(`transform`,`rotate(${n*180/Math.PI} ${r} ${i})`)}return t},$=(e,t)=>{let n=String(t.text||``);if(!n.trim())return;let r=H(`text`),i=Math.max(8,B(t.fontSize,20)),a=i*1.25,o=n.split(/\r?\n/),s={1:`Virgil, Segoe Print, Comic Sans MS, sans-serif`,2:`Helvetica, Arial, sans-serif`,3:`Cascadia Mono, Menlo, Consolas, monospace`};r.setAttribute(`x`,String(B(t.x))),r.setAttribute(`y`,String(B(t.y)+i)),r.setAttribute(`fill`,t.strokeColor||`#1e1e1e`),r.setAttribute(`font-size`,String(i)),r.setAttribute(`font-family`,s[B(t.fontFamily,1)]||s[1]),r.setAttribute(`font-weight`,String(t.fontWeight||400)),r.setAttribute(`text-anchor`,t.textAlign===`center`?`middle`:t.textAlign===`right`?`end`:`start`),t.textAlign===`center`?r.setAttribute(`x`,String(B(t.x)+B(t.width)/2)):t.textAlign===`right`&&r.setAttribute(`x`,String(B(t.x)+B(t.width))),o.forEach((e,n)=>{let i=H(`tspan`);i.setAttribute(`x`,r.getAttribute(`x`)||String(B(t.x))),i.setAttribute(`dy`,n===0?`0`:String(a)),i.textContent=e,r.appendChild(i)}),Z(e,t,r)},ee=(e,t,n)=>{if(!(t.endArrowhead||t.startArrowhead)||n.length<2)return;let r=n[n.length-1],i=n[n.length-2],a=Math.atan2(r[1]-i[1],r[0]-i[0]),o=Math.max(10,B(t.strokeWidth,1)*7),s=[r[0]-o*Math.cos(a-Math.PI/7),r[1]-o*Math.sin(a-Math.PI/7)],c=[r[0]-o*Math.cos(a+Math.PI/7),r[1]-o*Math.sin(a+Math.PI/7)],l=H(`polygon`);l.setAttribute(`points`,`${r.join(`,`)} ${s.join(`,`)} ${c.join(`,`)}`),l.setAttribute(`fill`,t.strokeColor||`#1e1e1e`),l.setAttribute(`stroke`,t.strokeColor||`#1e1e1e`),Z(e,t,l)},te=async(e,t,r)=>{let{default:i}=await n(async()=>{let{default:e}=await import(`./rough.esm-DjrMDdlL.js`).then(e=>e.n);return{default:e}},__vite__mapDeps([0,1,2,3]),import.meta.url),a=Y(t),o=Math.max(320,a.maxX-a.minX+160),s=Math.max(220,a.maxY-a.minY+160),c=H(`svg`),l=H(`g`),u=i.svg(c);c.setAttribute(`viewBox`,`${a.minX-80} ${a.minY-80} ${o} ${s}`),c.setAttribute(`width`,String(o)),c.setAttribute(`height`,String(s)),c.setAttribute(`role`,`img`),c.setAttribute(`aria-label`,`Excalidraw rough.js preview`);let d=H(`rect`);d.setAttribute(`x`,String(a.minX-80)),d.setAttribute(`y`,String(a.minY-80)),d.setAttribute(`width`,String(o)),d.setAttribute(`height`,String(s)),d.setAttribute(`fill`,e.appState?.viewBackgroundColor||`#ffffff`),c.appendChild(d),c.appendChild(l),t.forEach(e=>{let t=Q(e),n=X(e),r=B(e.x),i=B(e.y),a=B(e.width),o=B(e.height);if(e.type===`text`)$(t,e);else if(e.type===`rectangle`)Z(t,e,u.rectangle(r,i,a,o,n));else if(e.type===`diamond`)Z(t,e,u.polygon([[r+a/2,i],[r+a,i+o/2],[r+a/2,i+o],[r,i+o/2]],n));else if(e.type===`ellipse`)Z(t,e,u.ellipse(r+a/2,i+o/2,Math.abs(a),Math.abs(o),n));else if(e.type===`line`||e.type===`arrow`||e.type===`freedraw`){let r=q(e);Z(t,e,u.linearPath(r,n)),e.type===`arrow`&&ee(t,e,r)}t.childNodes.length&&l.appendChild(t)}),G(r,c,`rough`)},ne=async(e,t,r)=>{let i=K(),a=setTimeout(i,7e3),{exportToSvg:o,restore:s}=await n(async()=>{let{exportToSvg:e,restore:t}=await import(`./prod-B0HxyDM0.js`);return{exportToSvg:e,restore:t}},__vite__mapDeps([4,1,2,3,5,6,7,8,9]),import.meta.url);try{let n=s({elements:t,appState:e.appState||{},files:e.files||{}},null,null,{repairBindings:!0,refreshDimensions:!0});G(r,await o({elements:n.elements.filter(e=>!e.isDeleted),appState:{...n.appState,exportBackground:!0,viewBackgroundColor:n.appState.viewBackgroundColor||`#ffffff`},files:n.files||{}}),`official`)}finally{clearTimeout(a),i()}},re=async e=>{let t=O.value;if(!t)return;let n=JSON.parse(e),r=Array.isArray(n.elements)?n.elements.filter(e=>!e.isDeleted):[];if(!r.length)throw Error(`Excalidraw 文件中没有可预览图元`);try{await U(ne(n,r,t),w,`Excalidraw 官方导出超时,自动切换 rough.js 兼容渲染`)}catch(e){console.warn(e),await te(n,r,t)}},ie=async e=>{let t=O.value;if(!t)return;await z(),await c();let n=document.createElement(`div`);if(n.className=`mxgraph drawing-mxgraph`,n.setAttribute(`data-mxgraph`,JSON.stringify({xml:e,toolbar:`zoom layers lightbox`,nav:!0,resize:!0,"auto-fit":!0,"auto-crop":!0,"auto-origin":!0,"allow-zoom-in":!0,"allow-zoom-out":!0,border:16,highlight:`#0f766e`})),t.appendChild(n),!window.GraphViewer)throw Error(`diagrams.net viewer 未正确初始化`);window.GraphViewer.createViewerForElement(n)};return o(async()=>{E.value=`loading`,D.value=``,k.value=1,R();try{let e=await t(s.data);j.value?await re(e):await ie(e),E.value=`ready`}catch(e){console.error(e),D.value=e instanceof Error?e.message:String(e),E.value=`error`}}),(e,t)=>(p(),f(`div`,m,[l(`div`,h,[l(`div`,g,[l(`span`,null,i(M.value),1),l(`strong`,null,i(j.value?`Excalidraw 官方 SVG 预览`:`diagrams.net 官方 Viewer 预览`),1)]),l(`div`,_,[l(`button`,{type:`button`,title:`缩小`,onClick:I},`-`),l(`span`,null,i(Math.round(k.value*100))+`%`,1),l(`button`,{type:`button`,title:`放大`,onClick:F},`+`),l(`button`,{type:`button`,title:`适合宽度`,onClick:L},`适合`)])]),l(`div`,v,[E.value===`loading`?(p(),f(`div`,y,`正在加载官方绘图预览器...`)):E.value===`error`?(p(),f(`div`,b,i(D.value),1)):u(``,!0),l(`div`,x,[l(`div`,{ref_key:`stage`,ref:O,class:`drawing-canvas`,style:a(N.value)},null,4)])])]))}}),[[`__scopeId`,`data-v-6f438c82`]]);export{T as default};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cfb-DgjGJYYS.js","./package-Bop5TfAT.js","./runtime-core.esm-bundler-DO-WTVbd.js","./package-OvxnQO7z.css","./__vite-browser-external-BZdVR8v7.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{M as e,c as t,h as n,r,w as i}from"./package-Bop5TfAT.js";import{A as a,D as o,J as s,T as c,X as l,Y as u,_ as ee,b as d,f,i as p,l as te,o as m,r as h,s as g,t as _,y as v}from"./runtime-core.esm-bundler-DO-WTVbd.js";var y=[208,207,17,224,161,177,26,225],b=200,x=4096,S=192,C=180,w=24,T=420,E=e=>new Uint8Array(e),D=e=>y.every((t,n)=>e[n]===t),O=e=>e instanceof Uint8Array?e:new Uint8Array(e),k=e=>e.replace(/\u0000/g,``).replace(/[^\S\r\n]+/g,` `).replace(/\r\n/g,`
|
|
3
|
+
`).trim(),A=e=>k(e).toLowerCase(),j=e=>{let t=e.split(`/`).filter(Boolean);return t[t.length-1]||e||`/`},M=e=>e.replace(/\.[a-z0-9]+$/i,``),N=(e,t,n=1/0)=>{let r=k(t);!r||e.includes(r)||e.length>=n||e.push(r)},P=e=>{if(!e.length)return!1;let t=e.slice(0,Math.min(e.length,x)),n=0,r=0;for(let e of t)e===0&&(r+=1),(e===9||e===10||e===13||e>=32&&e<=126||e>=128)&&(n+=1);return n/t.length>.82||r/t.length>.25},F=e=>{let t=e.slice(0,Math.min(e.length,x));if(!t.length)return``;try{let e=0,n=0;for(let r=0;r<t.length;r+=1)t[r]===0&&(r%2==0?n+=1:e+=1);return k((e>t.length/5&&e>n*2?new TextDecoder(`utf-16le`,{fatal:!1}):new TextDecoder(`utf-8`,{fatal:!1})).decode(t))}catch{return``}},I=e=>{let t=e.slice(0,Math.min(e.length,S)),n=[];for(let e=0;e<t.length;e+=16){let r=t.slice(e,e+16),i=Array.from(r).map(e=>e.toString(16).padStart(2,`0`)).join(` `),a=Array.from(r).map(e=>e>=32&&e<=126?String.fromCharCode(e):`.`).join(``);n.push(`${e.toString(16).padStart(8,`0`)} ${i.padEnd(47)} ${a}`)}return n.join(`
|
|
4
|
+
`)},L=e=>{let t=[],n=``;for(let r of e){if(r>=32&&r<=126){n+=String.fromCharCode(r);continue}n.length>=4&&t.push(n),n=``}return n.length>=4&&t.push(n),t},R=e=>{let t=[],n=``;for(let r=0;r+1<e.length;r+=2){let i=e[r];if(e[r+1]===0&&i>=32&&i<=126){n+=String.fromCharCode(i);continue}n.length>=4&&t.push(n),n=``}return n.length>=4&&t.push(n),t},z=(e,t=C)=>{let n=new Set,r=[];return e.forEach(e=>{[...L(e),...R(e)].forEach(e=>{let i=k(e);!i||i.length<4||n.has(i)||r.length>=t||(n.add(i),r.push(i))})}),r},ne=/^\s*([A-Za-z][A-Za-z0-9_. /#-]{1,56})\s*[:=]\s*(.{1,240})\s*$/,re=/\b([A-Za-z][A-Za-z0-9_. /#-]{1,56})\s*=\s*([^;\n\r|]{1,240})/g,ie=e=>k(e).replace(/\s+/g,` `),B=(e,t,n,r,i)=>{if(e.length>=T)return;let a=ie(n),o=k(r);if(!a||!o)return;let s=`${i}\u0000${a.toLowerCase()}\u0000${o}`;t.has(s)||(t.add(s),e.push({key:a,value:o,source:i}))},V=(e,t,n)=>{let r=[],i=new Set;return[e,...t].filter(Boolean).forEach(e=>{k(e).split(/\n|[|;]/).forEach(e=>{let t=e.match(ne);t&&B(r,i,t[1],t[2],n)});for(let t of e.matchAll(re))B(r,i,t[1],t[2],n)}),r},H=(e,t)=>{let n=t.map(e=>e.toLowerCase());return e.some(e=>n.includes(e.key.toLowerCase()))},U=(e,t)=>{let n=t.map(e=>e.toLowerCase());return e.find(e=>n.includes(e.key.toLowerCase()))?.value},W=(e,t,n,r,i,a,o)=>{let s=A(`${t}\n${n}\n${r}\n${i.join(`
|
|
5
|
+
`)}`);if(s===`/`||t===`/`)return`root`;if(o===`storage`&&/(^|\/)(library|libraries)(\/|$)/i.test(t))return`library`;if(/(header|version|source|author|metadata|property|properties)/.test(s))return H(a,[`Name`,`Pins`,`Footprint`,`Padstack`])?`property`:`metadata`;if(e===`olb`){if(/(^|\/)(symbols?|parts?)(\/|$)/.test(s)||H(a,[`Pins`,`Footprint`,`PCB Footprint`,`Part Number`]))return`symbol`;if(/(^|\/)(library|capture|orcad)(\/|$)/.test(s))return`library`}if(e===`dra`){if(/(padstack|pad stack|thermal|antipad|drill)/.test(s)||H(a,[`Padstack`,`Drill`]))return`padstack`;if(/(footprint|package|psm|bsm|fsm|ssm|symbol)/.test(s))return`footprint`;if(/(route|net|via|ratsnest)/.test(s))return`net`;if(/(line |arc |circle|shape|outline|silk|place_bound|assembly|soldermask|pastemask)/.test(s))return`geometry`;if(/(drawing|units|layers?|constraint|allegro)/.test(s)||H(a,[`Units`,`Layers`]))return`drawing`}return a.length?`property`:o===`storage`?`library`:`unknown`},G=(e,t,n,r,i,a)=>{if(i===`storage`||!a)return{path:t,name:n,size:r,kind:i,role:W(e,t,n,``,[],[],i),strings:[],properties:[]};let o=P(a)?F(a):``,s=z([a],w),c=V(o,s,t),l=W(e,t,n,o,s,c,o?`text`:`binary`);return{path:t,name:n,size:r,kind:o?`text`:`binary`,role:l,sample:o,hex:o?void 0:I(a),strings:s,properties:c}},K=e=>{e.children.sort((e,t)=>e.children.length===t.children.length?e.name.localeCompare(t.name):t.children.length-e.children.length),e.children.forEach(K)},q=(e,t)=>{let n={id:`${t}:root`,path:`/`,name:t.toUpperCase(),kind:`storage`,role:`root`,size:0,children:[]},r=new Map([[`/`,n]]);return e.forEach(e=>{let i=e.path.split(`/`).filter(Boolean),a=n,o=``;i.forEach((n,s)=>{o+=`/${n}`;let c=s===i.length-1,l=r.get(o);l||(l={id:`${t}:${o}`,path:o,name:n,kind:c?e.kind:`storage`,role:c?e.role:W(t,o,n,``,[],[],`storage`),size:c?e.size:0,children:[]},r.set(o,l),a.children.push(l)),c&&(l.kind=e.kind,l.role=e.role,l.size=e.size),a=l})}),K(n),n.children},J=e=>{if(!e)return[];let t=[];return e.split(/[,/;| ]+/).forEach(e=>{/^[A-Za-z0-9_.+-]+$/.test(e)&&N(t,e,64)}),t},Y=(e,t)=>t===`olb`?e.role===`symbol`&&e.kind!==`storage`?`symbol`:null:e.role===`padstack`?`padstack`:e.role===`footprint`||e.role===`geometry`&&/\/footprint\//i.test(e.path)?`footprint`:e.role===`drawing`?`drawing`:null,ae=(e,t)=>t===`footprint`?e.path.match(/^(.+?\/Footprint)(?:\/|$)/i)?.[1]||e.path:t===`drawing`&&e.path.match(/^(.+?\/Drawing)(?:\/|$)/i)?.[1]||e.path,oe=(e,t,n)=>{let r=U(e.properties,[`Name`,`Part`,`Part Name`,`Symbol`,`Device`,`Footprint`,`PCB Footprint`,`Package`,`Padstack`,`Pad Stack`,`Drawing`]);if(r)return r;let i=M(j(n));return i&&i!==`/`?i:t.toUpperCase()},se=(e,t)=>{let n=[],r=`${e.path}\n${e.sample||``}\n${e.strings.join(`
|
|
6
|
+
`)}`.toLowerCase();return(t===`symbol`?[`pins`,`footprint`,`pspice`,`part`,`symbol`]:[`units`,`layers`,`padstack`,`drill`,`outline`,`route`,`constraint`,`shape`,`place_bound`]).forEach(e=>{r.includes(e)&&N(n,e,12)}),n},X=(e,t)=>{let n=new Set(e.map(e=>`${e.key.toLowerCase()}\u0000${e.value}`));t.forEach(t=>{let r=`${t.key.toLowerCase()}\u0000${t.value}`;n.has(r)||(n.add(r),e.push(t))})},ce=(e,t)=>{let n=new Map;return e.forEach(e=>{let r=Y(e,t);if(!r)return;let i=ae(e,r),a=`${r}:${i.toLowerCase()}`,o=n.get(a)||{id:a,name:oe(e,r,i),role:r,path:i,streamCount:0,byteLength:0,properties:[],pins:[],layers:[],keywords:[]};o.streamCount+=1,o.byteLength+=e.size,X(o.properties,e.properties),J(U(e.properties,[`Pins`,`Pin`,`Pin Numbers`])).forEach(e=>N(o.pins,e,96)),J(U(e.properties,[`Layers`,`Layer`])).forEach(e=>N(o.layers,e,64)),se(e,r).forEach(e=>N(o.keywords,e,16)),o.description||=U(o.properties,[`Description`,`Desc`]),o.footprint||=U(o.properties,[`Footprint`,`PCB Footprint`,`Package`]),n.set(a,o)}),Array.from(n.values()).sort((e,t)=>{let n={symbol:0,footprint:1,padstack:2,drawing:3};return(n[e.role]??9)-(n[t.role]??9)||e.name.localeCompare(t.name)})},le=e=>{let t=[];return e.forEach(e=>{(e.role===`metadata`||e.role===`library`||e.role===`drawing`)&&X(t,e.properties)}),t.slice(0,80)},ue=(e,t,n,r)=>{let i={textStreams:e.filter(e=>e.kind===`text`).length,binaryStreams:e.filter(e=>e.kind===`binary`).length,storageEntries:e.filter(e=>e.kind===`storage`).length,propertyCount:e.reduce((e,t)=>e+t.properties.length,0),stringCount:n.length,symbolCount:t.filter(e=>e.role===`symbol`).length,footprintCount:t.filter(e=>e.role===`footprint`).length,padstackCount:t.filter(e=>e.role===`padstack`).length,confidence:`low`};return r===`cfb`&&t.length&&i.propertyCount?i.confidence=`high`:(r===`cfb`||n.length||i.propertyCount)&&(i.confidence=`medium`),i},de=(e,t,n,r,i,a)=>{let o=a.map((e,t)=>({level:`warning`,code:`warning-${t+1}`,message:e}));o.push({level:`info`,code:`parser`,message:t===`cfb`?`已识别为 Microsoft Compound File / OLE2 复合文档容器,并在浏览器端解析目录与流。`:`未识别为 CFB 容器,已使用二进制字符串索引模式展示可读信息。`}),o.push({level:`info`,code:`coverage`,message:`已索引 ${n.length} 个条目、${i.length} 个可读字符串、${r.length} 个 EDA 结构候选。`});let s=e===`olb`&&!r.some(e=>e.role===`symbol`),c=e===`dra`&&!r.some(e=>e.role===`footprint`||e.role===`padstack`);return(s||c)&&o.push({level:`warning`,code:`domain-candidates`,message:e===`olb`?`未发现明确的元件符号候选,文件可能使用了私有二进制编码或需要专业工具导出 ASCII/XML 后再检查。`:`未发现明确的封装、图形或 padstack 候选,文件可能使用了私有二进制数据库编码。`}),o},Z=(e,t,n,r,i,a,o)=>{let s=i.reduce((e,t)=>e+t.size,0),c=ce(i,t),l=le(i),u=de(t,n,i,c,a,o);return{type:t,parser:n,title:t===`olb`?n===`cfb`?`OrCAD Capture Symbol Library`:`OLB Binary Library`:n===`cfb`?`OrCAD / Allegro Drawing Library`:`DRA Binary Drawing`,byteLength:e.byteLength,streamCount:r,totalStreamBytes:s,streams:i,tree:q(i,t),entities:c,metadata:l,strings:a,warnings:o,diagnostics:u,stats:ue(i,c,a,n)}},fe=async(t,n)=>{let i=(await r(()=>import(`./cfb-DgjGJYYS.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1,2,3,4]),import.meta.url)).parse(E(t),{type:`array`}),a=i.FileIndex.map((e,t)=>({entry:e,path:i.FullPaths[t]||e.name})).filter(e=>e.entry.type!==5&&e.path!==`/`&&e.entry.name).slice(0,b),o=[],s=a.map(({entry:e,path:t})=>{if(e.type===1)return G(n,t,e.name,e.size||0,`storage`);let r=O(e.content||[]);return o.push(r),G(n,t,e.name,e.size||r.byteLength||0,`binary`,r)}),c=a.length>=b?[`仅展示前 ${b} 个 CFB 项,完整文件仍可下载后在专业 EDA 工具中打开。`]:[];return Z(t,n,`cfb`,i.FileIndex.length,s,z(o),c)},Q=(e,t)=>{let n=E(e);return Z(e,t,`binary`,1,[G(t,`${t}.${t}`,`${t}.${t}`,e.byteLength,`binary`,n)],z([n]),[`该文件不是标准 CFB 容器,已退化为安全的二进制字符串索引预览。`])},pe=async(e,t=`olb`)=>{let n=t===`dra`?`dra`:`olb`;if(!D(E(e)))return Q(e,n);try{return await fe(e,n)}catch(t){let r=Q(e,n);return r.warnings.unshift(t instanceof Error?t.message:String(t)),r.diagnostics.unshift({level:`warning`,code:`cfb-parse-failed`,message:t instanceof Error?t.message:String(t)}),r}},me={class:`eda-viewer`},he={class:`eda-header`},ge={key:0},_e={key:0,class:`eda-body`},ve={class:`eda-sidebar`},ye={class:`eda-summary`},be={class:`eda-mini-grid`},xe={key:0,class:`eda-warning`},Se={class:`eda-stream-list`},Ce=[`onClick`],we=[`data-role`],Te={class:`eda-preview`},Ee={class:`eda-panel eda-panel--compact`},De={class:`eda-panel-head`},Oe={class:`eda-stat-grid`},ke={class:`eda-topology`},Ae={class:`eda-panel`},je={class:`eda-panel-head`},Me={class:`eda-tree`},Ne=[`onClick`],Pe={class:`eda-panel`},Fe={class:`eda-panel-head`},Ie={key:0,class:`eda-entities`},Le=[`onClick`],Re={key:0},ze={key:0},Be={key:1},Ve={key:2},He={key:3},Ue={key:1,class:`eda-empty`},We={class:`eda-panel`},Ge={class:`eda-panel-head`},Ke={key:0,class:`eda-selected-meta`},qe={key:1,class:`eda-property-grid`},Je={key:2},$={key:3,class:`eda-empty`},Ye={class:`eda-bottom`},Xe={class:`eda-panel`},Ze={class:`eda-panel-head`},Qe={class:`eda-string-grid`},$e={class:`eda-panel`},et={class:`eda-panel-head`},tt={class:`eda-diagnostics`},nt=[`data-level`],rt={key:0,class:`eda-local-strings`},it={key:1,class:`eda-state`},at={key:2,class:`eda-error`},ot=n(f({__name:`EdaViewer`,props:{data:{},type:{},filename:{}},setup(e){let n=e,r=o(null),f=o(!0),y=o(``),b=o(null),x=o(``),S={root:`根`,library:`库`,symbol:`元件符号`,footprint:`封装`,padstack:`Padstack`,drawing:`图纸`,metadata:`元数据`,property:`属性`,geometry:`几何`,net:`网络`,unknown:`未知`},C={high:`高`,medium:`中`,low:`低`},w=e=>S[e]||e,T=e=>e===`storage`?`目录`:e===`text`?`文本`:`二进制`,E=e=>e.replace(/^\/+/,``).toLowerCase(),D=h(()=>{if(!r.value)return[];let e=r.value.stats;return[{label:`文本流`,value:e.textStreams},{label:`二进制流`,value:e.binaryStreams},{label:`目录`,value:e.storageEntries},{label:`属性`,value:e.propertyCount},{label:`符号`,value:e.symbolCount},{label:`封装`,value:e.footprintCount},{label:`Padstack`,value:e.padstackCount},{label:`可信度`,value:C[e.confidence]}]}),O=h(()=>{let e=r.value?.entities||[],t=[{role:`symbol`,label:`元件符号`,items:[]},{role:`footprint`,label:`封装图形`,items:[]},{role:`padstack`,label:`Padstack`,items:[]},{role:`drawing`,label:`图纸信息`,items:[]}];return t.forEach(t=>{t.items=e.filter(e=>e.role===t.role)}),t.filter(e=>e.items.length)}),k=h(()=>{let e=x.value.trim().toLowerCase(),t=r.value?.streams||[];return e?t.filter(t=>{let n=t.properties.map(e=>`${e.key}=${e.value}`).join(`
|
|
7
|
+
`);return`${t.path}\n${t.name}\n${t.kind}\n${t.role}\n${t.sample||``}\n${t.strings.join(`
|
|
8
|
+
`)}\n${n}`.toLowerCase().includes(e)}):t}),A=(e,t=0)=>e.flatMap(e=>[{...e,depth:t},...A(e.children,t+1)]),j=h(()=>A(r.value?.tree||[])),M=h(()=>b.value?.properties||[]),N=h(()=>b.value?.strings||[]),P=h(()=>b.value?.sample||b.value?.hex||``),F=e=>{b.value=e},I=e=>{let t=E(e.path),n=r.value?.streams.find(e=>E(e.path)===t);n&&(b.value=n)},L=e=>{let t=E(e.path),n=r.value?.streams.find(e=>{let n=E(e.path);return n===t||n.startsWith(`${t}/`)});n&&(b.value=n)},R=async()=>{f.value=!0,y.value=``;try{let e=await pe(n.data,n.type);r.value=e,b.value=e.streams.find(e=>e.properties.length)||e.streams.find(e=>e.kind===`text`)||e.streams[0]||null}catch(e){console.error(e),y.value=e instanceof Error?e.message:String(e)}finally{f.value=!1}};return ee(()=>{R()}),(n,o)=>(v(),g(`section`,me,[p(`header`,he,[p(`div`,null,[p(`span`,null,l(r.value?.parser===`cfb`?`CFB STRUCTURE VIEWER`:`BINARY STRUCTURE VIEWER`),1),p(`h2`,null,l(e.filename),1)]),r.value?(v(),g(`dl`,ge,[p(`div`,null,[o[1]||=p(`dt`,null,`格式`,-1),p(`dd`,null,l(r.value.type.toUpperCase()),1)]),p(`div`,null,[o[2]||=p(`dt`,null,`大小`,-1),p(`dd`,null,l(a(t)(r.value.byteLength)),1)]),p(`div`,null,[o[3]||=p(`dt`,null,`条目`,-1),p(`dd`,null,l(r.value.streamCount),1)]),p(`div`,null,[o[4]||=p(`dt`,null,`可信度`,-1),p(`dd`,null,l(C[r.value.stats.confidence]),1)])])):m(``,!0)]),r.value?(v(),g(`div`,_e,[p(`aside`,ve,[p(`div`,ye,[p(`strong`,null,l(r.value.title),1),o[5]||=p(`p`,null,`OLB / DRA 属于 OrCAD / Allegro 生态的私有设计数据。预览器优先解析 CFB 结构、对象候选、属性和可读文本,并在纯前端安全退化。`,-1)]),p(`div`,be,[(v(!0),g(_,null,d(D.value.slice(0,4),e=>(v(),g(`div`,{key:e.label},[p(`span`,null,l(e.label),1),p(`strong`,null,l(e.value),1)]))),128))]),r.value.warnings.length?(v(),g(`div`,xe,[(v(!0),g(_,null,d(r.value.warnings,e=>(v(),g(`p`,{key:e},l(e),1))),128))])):m(``,!0),c(p(`input`,{"onUpdate:modelValue":o[0]||=e=>x.value=e,class:`eda-search`,type:`search`,placeholder:`筛选路径、角色、属性或文本`},null,512),[[i,x.value]]),p(`div`,Se,[(v(!0),g(_,null,d(k.value,e=>(v(),g(`button`,{key:e.path,type:`button`,class:s([`eda-stream`,{active:b.value?.path===e.path}]),onClick:t=>F(e)},[p(`span`,{"data-role":e.role},l(w(e.role)),9,we),p(`strong`,null,l(e.name||e.path),1),p(`em`,null,l(e.path),1),p(`small`,null,l(T(e.kind))+` · `+l(a(t)(e.size)),1)],10,Ce))),128))])]),p(`main`,Te,[p(`section`,Ee,[p(`div`,De,[o[6]||=p(`span`,null,`解析概览`,-1),p(`strong`,null,l(r.value.parser.toUpperCase())+` · `+l(a(t)(r.value.totalStreamBytes)),1)]),p(`div`,Oe,[(v(!0),g(_,null,d(D.value,e=>(v(),g(`div`,{key:e.label},[p(`span`,null,l(e.label),1),p(`strong`,null,l(e.value),1)]))),128))])]),p(`section`,ke,[p(`div`,Ae,[p(`div`,je,[o[7]||=p(`span`,null,`结构树`,-1),p(`strong`,null,l(j.value.length)+` 节点`,1)]),p(`div`,Me,[(v(!0),g(_,null,d(j.value,e=>(v(),g(`button`,{key:e.id,type:`button`,class:s({active:E(b.value?.path||``)===E(e.path)}),onClick:t=>I(e)},[p(`span`,{style:u({paddingLeft:`${e.depth*14}px`})},l(e.children.length?`▸`:`•`),5),p(`strong`,null,l(e.name),1),p(`em`,null,l(w(e.role)),1),p(`small`,null,l(e.size?a(t)(e.size):T(e.kind)),1)],10,Ne))),128))])]),p(`div`,Pe,[p(`div`,Fe,[o[8]||=p(`span`,null,`EDA 对象`,-1),p(`strong`,null,l(r.value.entities.length)+` 项`,1)]),O.value.length?(v(),g(`div`,Ie,[(v(!0),g(_,null,d(O.value,e=>(v(),g(`div`,{key:e.role,class:`eda-entity-group`},[p(`h3`,null,l(e.label),1),(v(!0),g(_,null,d(e.items,e=>(v(),g(`button`,{key:e.id,type:`button`,onClick:t=>L(e)},[p(`strong`,null,l(e.name),1),p(`span`,null,l(a(t)(e.byteLength))+` · `+l(e.streamCount)+` 条目`,1),e.description?(v(),g(`p`,Re,l(e.description),1)):m(``,!0),p(`dl`,null,[e.footprint?(v(),g(`div`,ze,[o[9]||=p(`dt`,null,`Footprint`,-1),p(`dd`,null,l(e.footprint),1)])):m(``,!0),e.pins.length?(v(),g(`div`,Be,[o[10]||=p(`dt`,null,`Pins`,-1),p(`dd`,null,l(e.pins.join(`, `)),1)])):m(``,!0),e.layers.length?(v(),g(`div`,Ve,[o[11]||=p(`dt`,null,`Layers`,-1),p(`dd`,null,l(e.layers.join(`, `)),1)])):m(``,!0),e.keywords.length?(v(),g(`div`,He,[o[12]||=p(`dt`,null,`Keywords`,-1),p(`dd`,null,l(e.keywords.join(`, `)),1)])):m(``,!0)])],8,Le))),128))]))),128))])):(v(),g(`div`,Ue,[...o[13]||=[p(`strong`,null,`没有明确对象候选`,-1),p(`p`,null,`仍可从结构树、属性和字符串索引中查看可读内容。`,-1)]]))])]),p(`section`,We,[p(`div`,Ge,[o[14]||=p(`span`,null,`当前条目`,-1),p(`strong`,null,l(b.value?.path||`未选择`),1)]),b.value?(v(),g(`div`,Ke,[p(`span`,null,l(w(b.value.role)),1),p(`span`,null,l(T(b.value.kind)),1),p(`span`,null,l(a(t)(b.value.size)),1)])):m(``,!0),M.value.length?(v(),g(`div`,qe,[(v(!0),g(_,null,d(M.value,e=>(v(),g(`div`,{key:`${e.source}-${e.key}-${e.value}`},[p(`span`,null,l(e.key),1),p(`strong`,null,l(e.value),1)]))),128))])):m(``,!0),P.value?(v(),g(`pre`,Je,l(P.value),1)):(v(),g(`div`,$,[...o[15]||=[p(`strong`,null,`目录条目`,-1),p(`p`,null,`该节点用于组织下级流,没有可直接展示的文本或十六进制片段。`,-1)]]))]),p(`section`,Ye,[p(`div`,Xe,[p(`div`,Ze,[o[16]||=p(`span`,null,`可读字符串`,-1),p(`strong`,null,l(r.value.strings.length)+` 项`,1)]),p(`div`,Qe,[(v(!0),g(_,null,d(r.value.strings,(e,t)=>(v(),g(`span`,{key:`${e}-${t}`},l(e),1))),128))])]),p(`div`,$e,[p(`div`,et,[o[17]||=p(`span`,null,`诊断`,-1),p(`strong`,null,l(r.value.diagnostics.length)+` 条`,1)]),p(`div`,tt,[(v(!0),g(_,null,d(r.value.diagnostics,e=>(v(),g(`p`,{key:`${e.code}-${e.message}`,"data-level":e.level},[p(`span`,null,l(e.level),1),te(` `+l(e.message),1)],8,nt))),128))]),N.value.length?(v(),g(`div`,rt,[o[18]||=p(`strong`,null,`当前条目字符串`,-1),(v(!0),g(_,null,d(N.value,(e,t)=>(v(),g(`span`,{key:`${e}-${t}`},l(e),1))),128))])):m(``,!0)])])])])):m(``,!0),f.value?(v(),g(`div`,it,[o[19]||=p(`span`,null,null,-1),p(`strong`,null,`正在解析 `+l(e.type.toUpperCase())+`...`,1)])):m(``,!0),y.value?(v(),g(`div`,at,[o[20]||=p(`strong`,null,`EDA 预览提示`,-1),p(`p`,null,l(y.value),1)])):m(``,!0)]))}}),[[`__scopeId`,`data-v-9eb9b927`]]);export{ot as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./lib-DVPOsS0g.js","./package-Bop5TfAT.js","./runtime-core.esm-bundler-DO-WTVbd.js","./package-OvxnQO7z.css","./__vite-browser-external-BZdVR8v7.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{M as e,h as t,r as n}from"./package-Bop5TfAT.js";import{D as r,J as i,X as a,_ as o,b as s,f as c,g as l,h as u,i as d,l as f,o as p,r as m,s as h,t as g,y as _}from"./runtime-core.esm-bundler-DO-WTVbd.js";import{t as v}from"./nestedRender-BAYFA7cb.js";var y={class:`email-viewer`},b={class:`email-header`},x={key:0,class:`email-meta`},S={key:0},C={key:0,class:`email-body`},w={class:`email-sidebar`},T={class:`body-tabs`},E=[`disabled`,`onClick`],D={class:`attachment-panel`},O={class:`attachment-title`},ee=[`onClick`],te={class:`message-panel`},k=[`srcdoc`],A={key:1,class:`email-text`},j={key:2,class:`email-text`},M={key:3,class:`attachment-preview`},N={class:`attachment-preview-head`},P={key:1,class:`email-state`},F={key:2,class:`email-error`},I=t(c({__name:`EmailViewer`,props:{data:{},type:{},filename:{},options:{}},setup(t){let c=t,I=r(null),L=r(!0),R=r(`正在解析邮件...`),z=r(``),B=r(`html`),V=r(null),H=r(null),U=new Map,W=[],G,K=e=>{if(!Number.isFinite(e)||e<0)return`-`;if(e<1024)return`${e} B`;let t=e/1024/1024;return t>=1?`${t.toFixed(+(t<10))} MB`:`${(e/1024).toFixed(+(e<10*1024))} KB`},q=e=>e?(Array.isArray(e)?e:[e]).flatMap(e=>{let t=e;return t.group?q(t.group):[{name:t.name||``,address:t.address||t.email||``}]}):[],J=e=>e.map(e=>e.name&&e.address?`${e.name} <${e.address}>`:e.address||e.name||``).filter(Boolean).join(`, `),Y=m(()=>{let e=I.value?.html||``;if(!e)return``;let t=e;return U.forEach((e,n)=>{t=t.replace(RegExp(`cid:${n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}`,`gi`),e)}),`<!doctype html><html><head><meta charset="utf-8"><base target="_blank"><style>body{margin:0;padding:18px;font-family:Aptos,"Segoe UI",sans-serif;line-height:1.6;color:#172033;word-break:break-word;}img{max-width:100%;height:auto;}</style></head><body>${t}</body></html>`}),X=m(()=>[{key:`html`,label:`HTML`,disabled:!I.value?.html},{key:`text`,label:`正文`,disabled:!I.value?.text},{key:`headers`,label:`头信息`,disabled:!I.value?.headers}]),Z=async e=>{if(e instanceof ArrayBuffer)return e;if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t.buffer}return Z(new TextEncoder().encode(e))},Q=async()=>{let e=await(await n(async()=>{let{default:e}=await import(`./postal-mime-kkzCFkih.js`);return{default:e}},[],import.meta.url)).default.parse(c.data,{attachmentEncoding:`arraybuffer`,maxNestingDepth:24,maxHeadersSize:2*1024*1024}),t=e.attachments.map((e,t)=>{let n=typeof e.content==`string`?e.content.length:e.content.byteLength,r=e.filename||`attachment-${t+1}`;return{id:`${t}-${r}`,name:r,mimeType:e.mimeType,size:n,contentId:e.contentId,load:()=>Z(e.content)}});return await Promise.all(t.map(async e=>{if(!e.contentId||!e.mimeType?.startsWith(`image/`))return;let t=await e.load(),n=URL.createObjectURL(new Blob([t],{type:e.mimeType}));W.push(n),U.set(e.contentId.replace(/[<>]/g,``),n)})),{kind:`eml`,subject:e.subject||c.filename,from:q(e.from),to:q(e.to),cc:q(e.cc),date:e.date,text:e.text,html:e.html,headers:e.headerLines?.map(e=>e.line).join(`
|
|
3
|
+
`)||e.headers?.map(e=>`${e.originalKey}: ${e.value}`).join(`
|
|
4
|
+
`),attachments:t}},ne=async()=>{let t=await n(()=>import(`./lib-DVPOsS0g.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1,2,3,4]),import.meta.url),r=new(t.default?.default||t.default)(c.data),i=r.getFileData(),a=(i.attachments||[]).map((e,t)=>{let n=e.fileName||e.fileNameShort||e.name||`attachment-${t+1}${e.extension||``}`;return{id:`${t}-${n}`,name:n,mimeType:`application/octet-stream`,size:e.contentLength||e.size||0,contentId:e.pidContentId,async load(){return Z(r.getAttachment(e).content)}}});return{kind:`msg`,subject:i.subject||c.filename,from:q({name:i.senderName,address:i.senderEmail}),to:q(i.recipients||[]).filter(e=>e.name||e.address),cc:[],date:i.messageDeliveryTime||i.clientSubmitTime||i.creationTime,text:i.body,html:i.html||``,headers:i.headers,attachments:a}},re=async()=>{L.value=!0,z.value=``;try{I.value=c.type===`msg`?await ne():await Q(),B.value=I.value.html?`html`:I.value.text?`text`:`headers`}catch(e){console.error(e),z.value=e instanceof Error?e.message:String(e)}finally{L.value=!1}},$=()=>{G?.unmount?.(),G=void 0;let e=H.value;if(e)for(;e.firstChild;)e.removeChild(e.firstChild)},ie=async e=>{V.value=e,L.value=!0,R.value=`正在打开附件 ${e.name}...`;try{let t=await e.load();await u(),$();let n=H.value;if(!n)return;let r=document.createElement(`div`);r.className=`email-attachment-render`,n.appendChild(r),G=await v(t,e.name.includes(`.`)?e.name.slice(e.name.lastIndexOf(`.`)+1).toLowerCase():`txt`,r,{filename:e.name,options:c.options})}catch(e){console.error(e),z.value=e instanceof Error?e.message:String(e)}finally{L.value=!1,R.value=`正在解析邮件...`}},ae=async e=>{let t=await e.load(),n=URL.createObjectURL(new Blob([t],{type:e.mimeType||`application/octet-stream`}));W.push(n);let r=document.createElement(`a`);r.href=n,r.download=e.name,document.body.appendChild(r),r.click(),r.remove()};return o(()=>{re()}),l(()=>{$(),W.forEach(e=>URL.revokeObjectURL(e))}),(e,n)=>(_(),h(`section`,y,[d(`header`,b,[d(`span`,null,a(I.value?.kind?.toUpperCase()||t.type.toUpperCase()),1),d(`h2`,null,a(I.value?.subject||t.filename),1),I.value?(_(),h(`div`,x,[d(`p`,null,[n[1]||=d(`strong`,null,`发件人`,-1),f(a(J(I.value.from)||`-`),1)]),d(`p`,null,[n[2]||=d(`strong`,null,`收件人`,-1),f(a(J(I.value.to)||`-`),1)]),I.value.cc.length?(_(),h(`p`,S,[n[3]||=d(`strong`,null,`抄送`,-1),f(a(J(I.value.cc)),1)])):p(``,!0),d(`p`,null,[n[4]||=d(`strong`,null,`时间`,-1),f(a(I.value.date||`-`),1)])])):p(``,!0)]),I.value?(_(),h(`div`,C,[d(`aside`,w,[d(`div`,T,[(_(!0),h(g,null,s(X.value,e=>(_(),h(`button`,{key:e.key,type:`button`,disabled:e.disabled,class:i({active:B.value===e.key}),onClick:t=>B.value=e.key},a(e.label),11,E))),128))]),d(`section`,D,[d(`div`,O,[n[5]||=d(`strong`,null,`附件`,-1),d(`span`,null,a(I.value.attachments.length),1)]),(_(!0),h(g,null,s(I.value.attachments,e=>(_(),h(`button`,{key:e.id,type:`button`,class:i([`attachment-item`,{active:V.value?.id===e.id}]),onClick:t=>ie(e)},[d(`span`,null,a(e.name.split(`.`).pop()?.toUpperCase()||`FILE`),1),d(`strong`,null,a(e.name),1),d(`em`,null,a(K(e.size)),1)],10,ee))),128))])]),d(`main`,te,[B.value===`html`&&Y.value?(_(),h(`iframe`,{key:0,class:`email-html`,sandbox:``,srcdoc:Y.value},null,8,k)):B.value===`text`?(_(),h(`pre`,A,a(I.value.text),1)):(_(),h(`pre`,j,a(I.value.headers),1)),V.value?(_(),h(`section`,M,[d(`div`,N,[d(`strong`,null,a(V.value.name),1),d(`button`,{type:`button`,onClick:n[0]||=e=>ae(V.value)},`下载附件`)]),d(`div`,{ref_key:`attachmentTarget`,ref:H,class:`attachment-target`},null,512)])):p(``,!0)])])):p(``,!0),L.value?(_(),h(`div`,P,[n[6]||=d(`span`,null,null,-1),d(`strong`,null,a(R.value),1)])):p(``,!0),z.value?(_(),h(`div`,F,[n[7]||=d(`strong`,null,`邮件预览提示`,-1),d(`p`,null,a(z.value),1)])):p(``,!0)]))}}),[[`__scopeId`,`data-v-0989d798`]]);export{I as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./src-CmLfrMFg.js","./package-Bop5TfAT.js","./runtime-core.esm-bundler-DO-WTVbd.js","./package-OvxnQO7z.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{h as e,r as t}from"./package-Bop5TfAT.js";import{D as n,J as r,X as i,Y as a,_ as o,b as s,f as c,g as l,h as u,i as d,o as f,r as p,s as m,t as h,y as g}from"./runtime-core.esm-bundler-DO-WTVbd.js";var _={class:`epub-toolbar`},v={class:`epub-title`},y={class:`epub-actions`},b=[`disabled`],x={class:`epub-progress`},S=[`disabled`],C={class:`epub-body`},w={key:0,class:`epub-toc`},T={class:`epub-toc-head`},E={class:`epub-toc-list`},D=[`onClick`],O={class:`epub-stage-wrap`},k={key:0,class:`epub-state`},A={key:1,class:`epub-state error`},j=e(c({__name:`EpubViewer`,props:{data:{}},setup(e){let c=e,j=n(null),M=n(`loading`),N=n(``),P=n(!0),F=n(`EPUB 电子书`),I=n(``),L=n([]),R=n(``),z=n(null),B=n(!0),V=n(!1),H,U,W=!1,G,K=p(()=>{if(!R.value)return``;let e=L.value.find(e=>e.href===R.value);return e?e.label:L.value.find(e=>R.value.includes(e.href.split(`#`)[0]))?.label||``}),q=p(()=>typeof z.value==`number`?`${z.value}%`:K.value||`阅读中`),J=(e,t)=>typeof e==`string`&&e.trim()?e.trim():t,Y=(e,t=0)=>Array.isArray(e)?e.flatMap((e,n)=>{let r=e,i=typeof r.href==`string`?r.href:``,a=J(r.label||r.title,`章节 ${n+1}`),o=Y(r.subitems||r.children,t+1);return i?[{depth:t,href:i,id:`${t}-${n}-${i}`,label:a},...o]:o}):[],X=e=>{let t=e.find(e=>{let t=e.label.toLowerCase();return/(^|\s)(chapter|part|book|prologue|preface|introduction)\b/.test(t)||/第[一二三四五六七八九十百千0-9]+[章节回部卷篇]/.test(e.label)});return t?t.href:e.find(e=>{let t=`${e.label} ${e.href}`.toLowerCase();return!/(cover|titlepage|title-page|copyright|license|toc|contents|nav|table-of-contents|wrap0000)/.test(t)})?.href||e[0]?.href},Z=e=>{B.value=!!e?.atStart,V.value=!!e?.atEnd,R.value=e?.start?.href||``,typeof e?.start?.percentage==`number`&&(z.value=Math.round(e.start.percentage*100))},Q=e=>new Promise(t=>{G=window.setTimeout(t,e)}),$=()=>{let e=(j.value?.querySelector(`iframe`))?.contentDocument?.body;return e?!!(e.innerText.trim()||e.querySelector(`img, svg, canvas`)):!1},ee=async()=>{for(let e=0;e<20;e++){if(W||$())return $();await Q(100)}return $()},te=async()=>{M.value=`loading`,await u();let e=j.value;if(e)try{let{default:n}=await t(async()=>{let{default:e}=await import(`./src-CmLfrMFg.js`);return{default:e}},__vite__mapDeps([0,1,2,3]),import.meta.url);if(W)return;H=n(c.data.slice(0),{openAs:`binary`,replacements:`blobUrl`}),U=H.renderTo(e,{allowScriptedContent:!1,flow:`scrolled`,height:`100%`,manager:`continuous`,resizeOnOrientationChange:!0,spread:`none`,width:`100%`}),U.themes.default({body:{color:`#172033`,fontFamily:`Georgia, "Times New Roman", serif`,lineHeight:`1.72`,padding:`0 8px`},img:{maxWidth:`100%`},html:{height:`auto`,overflow:`auto`}}),U.on(`relocated`,Z),await H.ready;let r=await H.loaded.metadata.catch(()=>void 0);F.value=J(r?.title,F.value),I.value=J(r?.creator,``),L.value=Y((await H.loaded.navigation.catch(()=>void 0))?.toc);let i=X(L.value);if(await U.display(i),!await ee())throw Error(`EPUB 正文渲染未完成,请刷新后重试`);if(W)return;M.value=`ready`,H.locations.generate(1200).catch(()=>void 0)}catch(e){console.error(e),N.value=e instanceof Error?e.message:String(e),M.value=`error`}},ne=async()=>{await U?.prev()},re=async()=>{await U?.next()},ie=async e=>{await U?.display(e.href),P.value=!1};return o(te),l(()=>{W=!0,G!==void 0&&(clearTimeout(G),G=void 0),U&&=(U.off(`relocated`,Z),U.destroy(),void 0),H?.destroy(),H=void 0}),(e,t)=>(g(),m(`div`,{class:r([`epub-viewer`,{"epub-viewer--toc-hidden":!P.value}])},[d(`div`,_,[d(`button`,{type:`button`,class:r([`epub-icon-button`,{active:P.value}]),title:`目录`,onClick:t[0]||=e=>P.value=!P.value},[...t[1]||=[d(`span`,null,null,-1)]],2),d(`div`,v,[d(`strong`,null,i(F.value),1),d(`span`,null,i(I.value||q.value),1)]),d(`div`,y,[d(`button`,{type:`button`,class:`epub-button`,disabled:M.value!==`ready`||B.value,onClick:ne},` 上一页 `,8,b),d(`span`,x,i(q.value),1),d(`button`,{type:`button`,class:`epub-button`,disabled:M.value!==`ready`||V.value,onClick:re},` 下一页 `,8,S)])]),d(`div`,C,[P.value?(g(),m(`aside`,w,[d(`div`,T,[t[2]||=d(`strong`,null,`目录`,-1),d(`span`,null,i(L.value.length)+` 项`,1)]),d(`div`,E,[(g(!0),m(h,null,s(L.value,e=>(g(),m(`button`,{key:e.id,type:`button`,class:r([`epub-toc-item`,{active:e.href===R.value}]),style:a({paddingLeft:`${12+e.depth*14}px`}),onClick:t=>ie(e)},i(e.label),15,D))),128))])])):f(``,!0),d(`main`,O,[d(`div`,{ref_key:`stage`,ref:j,class:`epub-stage`},null,512),M.value===`loading`?(g(),m(`div`,k,`正在解析 EPUB...`)):M.value===`error`?(g(),m(`div`,A,i(N.value),1)):f(``,!0)])])],2))}}),[[`__scopeId`,`data-v-8f8a2b3b`]]);export{j as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Bt as t,C as n,Ct as r,Dt as i,E as a,Et as o,Ft as s,Ht as c,K as l,Mt as u,Ot as d,Pt as f,Q as p,R as m,Rt as h,S as g,Vt as _,Z as v,_ as y,bt as b,dt as x,et as S,f as C,ht as w,m as T,n as E,nt as D,o as O,p as k,pt as A,q as ee,r as j,rt as M,u as N,ut as te,vt as P,w as F,wt as I,x as ne,yt as L,z as re,zt as ie}from"./three.module-B3kUtiXa.js";import{n as ae}from"./fflate.module-CET2rj3S.js";function R(e,t,n){let r=n.length-e-1;if(t>=n[r])return r-1;if(t<=n[e])return e;let i=e,a=r,o=Math.floor((i+a)/2);for(;t<n[o]||t>=n[o+1];)t<n[o]?a=o:i=o,o=Math.floor((i+a)/2);return o}function oe(e,t,n,r){let i=[],a=[],o=[];i[0]=1;for(let s=1;s<=n;++s){a[s]=t-r[e+1-s],o[s]=r[e+s]-t;let n=0;for(let e=0;e<s;++e){let t=o[e+1],r=a[s-e],c=i[e]/(t+r);i[e]=n+t*c,n=r*c}i[s]=n}return i}function se(e,t,n,r){let i=R(e,r,t),a=oe(i,r,e,t),o=new _(0,0,0,0);for(let t=0;t<=e;++t){let r=n[i-e+t],s=a[t],c=r.w*s;o.x+=r.x*c,o.y+=r.y*c,o.z+=r.z*c,o.w+=r.w*s}return o}function ce(e,t,n,r,i){let a=[];for(let e=0;e<=n;++e)a[e]=0;let o=[];for(let e=0;e<=r;++e)o[e]=a.slice(0);let s=[];for(let e=0;e<=n;++e)s[e]=a.slice(0);s[0][0]=1;let c=a.slice(0),l=a.slice(0);for(let r=1;r<=n;++r){c[r]=t-i[e+1-r],l[r]=i[e+r]-t;let n=0;for(let e=0;e<r;++e){let t=l[e+1],i=c[r-e];s[r][e]=t+i;let a=s[e][r-1]/s[r][e];s[e][r]=n+t*a,n=i*a}s[r][r]=n}for(let e=0;e<=n;++e)o[0][e]=s[e][n];for(let e=0;e<=n;++e){let t=0,i=1,c=[];for(let e=0;e<=n;++e)c[e]=a.slice(0);c[0][0]=1;for(let a=1;a<=r;++a){let r=0,l=e-a,u=n-a;e>=a&&(c[i][0]=c[t][0]/s[u+1][l],r=c[i][0]*s[l][u]);let d=l>=-1?1:-l,f=e-1<=u?a-1:n-e;for(let e=d;e<=f;++e)c[i][e]=(c[t][e]-c[t][e-1])/s[u+1][l+e],r+=c[i][e]*s[l+e][u];e<=u&&(c[i][a]=-c[t][a-1]/s[u+1][e],r+=c[i][a]*s[e][u]),o[a][e]=r;let p=t;t=i,i=p}}let u=n;for(let e=1;e<=r;++e){for(let t=0;t<=n;++t)o[e][t]*=u;u*=n-e}return o}function le(e,t,n,r,i){let a=i<e?i:e,o=[],s=R(e,r,t),c=ce(s,r,e,a,t),l=[];for(let e=0;e<n.length;++e){let t=n[e].clone(),r=t.w;t.x*=r,t.y*=r,t.z*=r,l[e]=t}for(let t=0;t<=a;++t){let n=l[s-e].clone().multiplyScalar(c[t][0]);for(let r=1;r<=e;++r)n.add(l[s-e+r].clone().multiplyScalar(c[t][r]));o[t]=n}for(let e=a+1;e<=i+1;++e)o[e]=new _(0,0,0);return o}function ue(e,t){let n=1;for(let t=2;t<=e;++t)n*=t;let r=1;for(let e=2;e<=t;++e)r*=e;for(let n=2;n<=e-t;++n)r*=n;return n/r}function de(e){let n=e.length,r=[],i=[];for(let a=0;a<n;++a){let n=e[a];r[a]=new t(n.x,n.y,n.z),i[a]=n.w}let a=[];for(let e=0;e<n;++e){let t=r[e].clone();for(let n=1;n<=e;++n)t.sub(a[e-n].clone().multiplyScalar(ue(e,n)*i[n]));a[e]=t.divideScalar(i[0])}return a}function z(e,t,n,r,i){return de(le(e,t,n,r,i))}var B=class extends y{constructor(e,t,n,r,i){super();let a=t?t.length-1:0,o=n?n.length:0;this.degree=e,this.knots=t,this.controlPoints=[],this.startKnot=r||0,this.endKnot=i||a;for(let e=0;e<o;++e){let t=n[e];this.controlPoints[e]=new _(t.x,t.y,t.z,t.w)}}getPoint(e,n=new t){let r=n,i=this.knots[this.startKnot]+e*(this.knots[this.endKnot]-this.knots[this.startKnot]),a=se(this.degree,this.knots,this.controlPoints,i);return a.w!==1&&a.divideScalar(a.w),r.set(a.x,a.y,a.z)}getTangent(e,n=new t){let r=n,i=this.knots[0]+e*(this.knots[this.knots.length-1]-this.knots[0]),a=z(this.degree,this.knots,this.controlPoints,i,1);return r.copy(a[1]).normalize(),r}toJSON(){let e=super.toJSON();return e.degree=this.degree,e.knots=[...this.knots],e.controlPoints=this.controlPoints.map(e=>e.toArray()),e.startKnot=this.startKnot,e.endKnot=this.endKnot,e}fromJSON(e){return super.fromJSON(e),this.degree=e.degree,this.knots=[...e.knots],this.controlPoints=e.controlPoints.map(e=>new _(e[0],e[1],e[2],e[3])),this.startKnot=e.startKnot,this.endKnot=e.endKnot,this}},V,H,U,fe=class extends l{constructor(e){super(e)}load(e,t,r,i){let a=this,o=a.path===``?ee.extractUrlBase(e):a.path,s=new n(this.manager);s.setPath(a.path),s.setResponseType(`arraybuffer`),s.setRequestHeader(a.requestHeader),s.setWithCredentials(a.withCredentials),s.load(e,function(n){try{t(a.parse(n,o))}catch(t){i?i(t):console.error(t),a.manager.itemError(e)}},r,i)}parse(e,t){if(ve(e))V=new _e().parse(e);else{let t=$(e);if(!ye(t))throw Error(`THREE.FBXLoader: Unknown format.`);if(K(t)<7e3)throw Error(`THREE.FBXLoader: FBX version not supported, FileVersion: `+K(t));V=new ge().parse(t)}return new pe(new s(this.manager).setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin),this.manager).parse(V)}},pe=class{constructor(e,t){this.textureLoader=e,this.manager=t}parse(){H=this.parseConnections();let e=this.parseImages(),t=this.parseTextures(e),n=this.parseMaterials(t),r=this.parseDeformers(),i=new me().parse(r);return this.parseScene(r,i,n),U}parseConnections(){let e=new Map;return`Connections`in V&&V.Connections.connections.forEach(function(t){let n=t[0],r=t[1],i=t[2];e.has(n)||e.set(n,{parents:[],children:[]});let a={ID:r,relationship:i};e.get(n).parents.push(a),e.has(r)||e.set(r,{parents:[],children:[]});let o={ID:n,relationship:i};e.get(r).children.push(o)}),e}parseImages(){let e={},t={};if(`Video`in V.Objects){let n=V.Objects.Video;for(let r in n){let i=n[r],a=parseInt(r);if(e[a]=i.RelativeFilename||i.Filename,`Content`in i){let e=i.Content instanceof ArrayBuffer&&i.Content.byteLength>0,a=typeof i.Content==`string`&&i.Content!==``;if(e||a){let e=this.parseImage(n[r]);t[i.RelativeFilename||i.Filename]=e}}}}for(let n in e){let r=e[n];t[r]===void 0?e[n]=e[n].split(`\\`).pop():e[n]=t[r]}return e}parseImage(e){let t=e.Content,n=e.RelativeFilename||e.Filename,r=n.slice(n.lastIndexOf(`.`)+1).toLowerCase(),i;switch(r){case`bmp`:i=`image/bmp`;break;case`jpg`:case`jpeg`:i=`image/jpeg`;break;case`png`:i=`image/png`;break;case`tif`:i=`image/tiff`;break;case`tga`:this.manager.getHandler(`.tga`)===null&&console.warn(`FBXLoader: TGA loader not found, skipping `,n),i=`image/tga`;break;case`webp`:i=`image/webp`;break;default:console.warn(`FBXLoader: Image type "`+r+`" is not supported.`);return}if(typeof t==`string`)return`data:`+i+`;base64,`+t;{let e=new Uint8Array(t);return window.URL.createObjectURL(new Blob([e],{type:i}))}}parseTextures(e){let t=new Map;if(`Texture`in V.Objects){let n=V.Objects.Texture;for(let r in n){let i=this.parseTexture(n[r],e);t.set(parseInt(r),i)}}return t}parseTexture(e,t){let n=this.loadTexture(e,t);n.ID=e.id,n.name=e.attrName;let i=e.WrapModeU,a=e.WrapModeV,o=i===void 0?0:i.value,s=a===void 0?0:a.value;if(n.wrapS=o===0?r:C,n.wrapT=s===0?r:C,`Scaling`in e){let t=e.Scaling.value;n.repeat.x=t[0],n.repeat.y=t[1]}if(`Translation`in e){let t=e.Translation.value;n.offset.x=t[0],n.offset.y=t[1]}return n}loadTexture(e,t){let n=e.FileName.split(`.`).pop().toLowerCase(),r=this.manager.getHandler(`.${n}`);r===null&&(r=this.textureLoader);let i=r.path;i||r.setPath(this.textureLoader.path);let a=H.get(e.id).children,o;if(a!==void 0&&a.length>0&&t[a[0].ID]!==void 0&&(o=t[a[0].ID],(o.indexOf(`blob:`)===0||o.indexOf(`data:`)===0)&&r.setPath(void 0)),o===void 0)return console.warn(`FBXLoader: Undefined filename, creating placeholder texture.`),new f;let s=r.load(o);return r.setPath(i),s}parseMaterials(e){let t=new Map;if(`Material`in V.Objects){let n=V.Objects.Material;for(let r in n){let i=this.parseMaterial(n[r],e);i!==null&&t.set(parseInt(r),i)}}return t}parseMaterial(e,t){let n=e.id,r=e.attrName,i=e.ShadingModel;if(typeof i==`object`&&(i=i.value),!H.has(n))return null;let a=this.parseParameters(e,t,n),o;switch(i.toLowerCase()){case`phong`:o=new M;break;case`lambert`:o=new D;break;default:console.warn(`THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.`,i),o=new M;break}return o.setValues(a),o.name=r,o}parseParameters(e,t,n){let r={};e.BumpFactor&&(r.bumpScale=e.BumpFactor.value),e.Diffuse?r.color=T.colorSpaceToWorking(new k().fromArray(e.Diffuse.value),I):e.DiffuseColor&&(e.DiffuseColor.type===`Color`||e.DiffuseColor.type===`ColorRGB`)&&(r.color=T.colorSpaceToWorking(new k().fromArray(e.DiffuseColor.value),I)),e.DisplacementFactor&&(r.displacementScale=e.DisplacementFactor.value),e.Emissive?r.emissive=T.colorSpaceToWorking(new k().fromArray(e.Emissive.value),I):e.EmissiveColor&&(e.EmissiveColor.type===`Color`||e.EmissiveColor.type===`ColorRGB`)&&(r.emissive=T.colorSpaceToWorking(new k().fromArray(e.EmissiveColor.value),I)),e.EmissiveFactor&&(r.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),r.opacity=1-(e.TransparencyFactor?parseFloat(e.TransparencyFactor.value):0),(r.opacity===1||r.opacity===0)&&(r.opacity=e.Opacity?parseFloat(e.Opacity.value):null,r.opacity===null&&(r.opacity=1)),r.opacity<1&&(r.transparent=!0),e.ReflectionFactor&&(r.reflectivity=e.ReflectionFactor.value),e.Shininess&&(r.shininess=e.Shininess.value),e.Specular?r.specular=T.colorSpaceToWorking(new k().fromArray(e.Specular.value),I):e.SpecularColor&&e.SpecularColor.type===`Color`&&(r.specular=T.colorSpaceToWorking(new k().fromArray(e.SpecularColor.value),I));let i=this;return H.get(n).children.forEach(function(e){let n=e.relationship;switch(n){case`Bump`:r.bumpMap=i.getTexture(t,e.ID);break;case`Maya|TEX_ao_map`:r.aoMap=i.getTexture(t,e.ID);break;case`DiffuseColor`:case`Maya|TEX_color_map`:r.map=i.getTexture(t,e.ID),r.map!==void 0&&(r.map.colorSpace=I);break;case`DisplacementColor`:r.displacementMap=i.getTexture(t,e.ID);break;case`EmissiveColor`:r.emissiveMap=i.getTexture(t,e.ID),r.emissiveMap!==void 0&&(r.emissiveMap.colorSpace=I);break;case`NormalMap`:case`Maya|TEX_normal_map`:r.normalMap=i.getTexture(t,e.ID);break;case`ReflectionColor`:r.envMap=i.getTexture(t,e.ID),r.envMap!==void 0&&(r.envMap.mapping=303,r.envMap.colorSpace=I);break;case`SpecularColor`:r.specularMap=i.getTexture(t,e.ID),r.specularMap!==void 0&&(r.specularMap.colorSpace=I);break;case`TransparentColor`:case`TransparencyFactor`:r.alphaMap=i.getTexture(t,e.ID),r.transparent=!0;break;default:console.warn(`THREE.FBXLoader: %s map is not supported in three.js, skipping texture.`,n);break}}),r}getTexture(e,t){return`LayeredTexture`in V.Objects&&t in V.Objects.LayeredTexture&&(console.warn(`THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.`),t=H.get(t).children[0].ID),e.get(t)}parseDeformers(){let e={},t={};if(`Deformer`in V.Objects){let n=V.Objects.Deformer;for(let r in n){let i=n[r],a=H.get(parseInt(r));if(i.attrType===`Skin`){let t=this.parseSkeleton(a,n);t.ID=r,a.parents.length>1&&console.warn(`THREE.FBXLoader: skeleton attached to more than one geometry is not supported.`),t.geometryID=a.parents[0].ID,e[r]=t}else if(i.attrType===`BlendShape`){let e={id:r};e.rawTargets=this.parseMorphTargets(a,n),e.id=r,a.parents.length>1&&console.warn(`THREE.FBXLoader: morph target attached to more than one geometry is not supported.`),t[r]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(t,n){let r=[];return t.children.forEach(function(t){let i=n[t.ID];if(i.attrType!==`Cluster`)return;let a={ID:t.ID,indices:[],weights:[],transformLink:new e().fromArray(i.TransformLink.a)};`Indexes`in i&&(a.indices=i.Indexes.a,a.weights=i.Weights.a),r.push(a)}),{rawBones:r,bones:[]}}parseMorphTargets(e,t){let n=[];for(let r=0;r<e.children.length;r++){let i=e.children[r],a=t[i.ID],o={name:a.attrName,initialWeight:a.DeformPercent,id:a.id,fullWeights:a.FullWeights.a};if(a.attrType!==`BlendShapeChannel`)return;o.geoID=H.get(parseInt(i.ID)).children.filter(function(e){return e.relationship===void 0})[0].ID,n.push(o)}return n}parseScene(t,n,r){U=new a;let i=this.parseModels(t.skeletons,n,r),o=V.Objects.Model,s=this;i.forEach(function(e){let t=o[e.ID];s.setLookAtProperties(e,t),H.get(e.ID).parents.forEach(function(t){let n=i.get(t.ID);n!==void 0&&n.add(e)}),e.parent===null&&U.add(e)}),this.addGlobalSceneSettings(),U.traverse(function(e){if(e.userData.transformData){e.parent&&(e.userData.transformData.parentMatrix=e.parent.matrix,e.userData.transformData.parentMatrixWorld=e.parent.matrixWorld);let t=X(e.userData.transformData);e.applyMatrix4(t),e.updateWorldMatrix()}});let c=this.parsePoseNodes(),l=new Set;for(let e in t.skeletons)t.skeletons[e].rawBones.forEach(function(n,r){let i=t.skeletons[e].bones[r];i&&l.add(i.ID)});let u=new e;U.traverse(function(e){if(e.isBone&&e.ID!==void 0&&!l.has(e.ID)){let t=c[e.ID];t!==void 0&&(e.parent?(u.copy(e.parent.matrixWorld).invert(),u.multiply(t)):u.copy(t),u.decompose(e.position,e.quaternion,e.scale),e.updateMatrix(),e.matrixWorld.copy(t))}}),this.bindSkeleton(t.skeletons,n,i);let d=new he().parse();U.children.length===1&&U.children[0].isGroup&&(U.children[0].animations=d,U=U.children[0]),U.animations=d,`GlobalSettings`in V&&`UpAxis`in V.GlobalSettings&&V.GlobalSettings.UpAxis.value===2&&(console.warn(`THREE.FBXLoader: You are loading an asset with a Z-UP coordinate system. The loader just rotates the asset to transform it into Y-UP. The vertex data are not converted.`),U.rotation.set(-Math.PI/2,0,0))}parseModels(e,t,n){let r=new Map,i=V.Objects.Model;for(let o in i){let s=parseInt(o),c=i[o],l=H.get(s),u=this.buildSkeleton(l,e,s,c.attrName);if(!u){switch(c.attrType){case`Camera`:u=this.createCamera(l);break;case`Light`:u=this.createLight(l);break;case`Mesh`:u=this.createMesh(l,t,n);break;case`NurbsCurve`:u=this.createCurve(l,t);break;case`LimbNode`:case`Root`:u=new O;break;default:u=new a;break}u.name=c.attrName?P.sanitizeNodeName(c.attrName):``,u.userData.originalName=c.attrName,u.ID=s}this.getTransformData(u,c),r.set(s,u)}return r}buildSkeleton(e,t,n,r){let i=null;return e.parents.forEach(function(e){for(let a in t){let o=t[a];o.rawBones.forEach(function(t,a){if(t.ID===e.ID){let e=i;i=new O,i.matrixWorld.copy(t.transformLink),i.name=r?P.sanitizeNodeName(r):``,i.userData.originalName=r,i.ID=n,o.bones[a]=i,e!==null&&i.add(e)}})}}),i}createCamera(e){let t,n;if(e.children.forEach(function(e){let t=V.Objects.NodeAttribute[e.ID];t!==void 0&&(n=t)}),n===void 0)t=new x;else{let e=0;n.CameraProjectionType!==void 0&&n.CameraProjectionType.value===1&&(e=1);let r=1;n.NearPlane!==void 0&&(r=n.NearPlane.value/1e3);let i=1e3;n.FarPlane!==void 0&&(i=n.FarPlane.value/1e3);let a=window.innerWidth,o=window.innerHeight;n.AspectWidth!==void 0&&n.AspectHeight!==void 0&&(a=n.AspectWidth.value,o=n.AspectHeight.value);let s=a/o,c=45;n.FieldOfView!==void 0&&(c=n.FieldOfView.value);let l=n.FocalLength?n.FocalLength.value:null;switch(e){case 0:t=new A(c,s,r,i),l!==null&&t.setFocalLength(l);break;case 1:console.warn(`THREE.FBXLoader: Orthographic cameras not supported yet.`),t=new x;break;default:console.warn(`THREE.FBXLoader: Unknown camera type `+e+`.`),t=new x;break}}return t}createLight(e){let t,n;if(e.children.forEach(function(e){let t=V.Objects.NodeAttribute[e.ID];t!==void 0&&(n=t)}),n===void 0)t=new x;else{let e;e=n.LightType===void 0?0:n.LightType.value;let r=16777215;n.Color!==void 0&&(r=T.colorSpaceToWorking(new k().fromArray(n.Color.value),I));let i=n.Intensity===void 0?1:n.Intensity.value/100;n.CastLightOnObject!==void 0&&n.CastLightOnObject.value===0&&(i=0);let a=0;switch(n.FarAttenuationEnd!==void 0&&(a=n.EnableFarAttenuation!==void 0&&n.EnableFarAttenuation.value===0?0:n.FarAttenuationEnd.value),e){case 0:t=new w(r,i,a,1);break;case 1:t=new ne(r,i);break;case 2:let e=Math.PI/3,o=0;n.OuterAngle===void 0?n.InnerAngle!==void 0&&(e=v.degToRad(n.InnerAngle.value)):(e=v.degToRad(n.OuterAngle.value),n.InnerAngle!==void 0&&(o=1-n.InnerAngle.value/n.OuterAngle.value,o=Math.max(0,o))),t=new u(r,i,a,e,o,1);break;default:console.warn(`THREE.FBXLoader: Unknown light type `+n.LightType.value+`, defaulting to a PointLight.`),t=new w(r,i);break}n.CastShadows!==void 0&&n.CastShadows.value===1&&(t.castShadow=!0)}return t}createMesh(e,t,n){let r,i=null,a=null,o=[];if(e.children.forEach(function(e){t.has(e.ID)&&(i=t.get(e.ID)),n.has(e.ID)&&o.push(n.get(e.ID))}),o.length>1?a=o:o.length>0?a=o[0]:(a=new M({name:l.DEFAULT_MATERIAL_NAME,color:13421772}),o.push(a)),`color`in i.attributes&&o.forEach(function(e){e.vertexColors=!0}),i.groups.length>0){let e=!1;for(let t=0,n=i.groups.length;t<n;t++){let n=i.groups[t];(n.materialIndex<0||n.materialIndex>=o.length)&&(n.materialIndex=o.length,e=!0)}if(e){let e=new M;o.push(e)}}return i.FBX_Deformer?(r=new d(i,a),r.normalizeSkinWeights()):r=new S(i,a),r}createCurve(e,t){return new m(e.children.reduce(function(e,n){return t.has(n.ID)&&(e=t.get(n.ID)),e},null),new re({name:l.DEFAULT_MATERIAL_NAME,color:3342591,linewidth:1}))}getTransformData(e,t){let n={};`InheritType`in t&&(n.inheritType=parseInt(t.InheritType.value)),`RotationOrder`in t?n.eulerOrder=Z(t.RotationOrder.value):n.eulerOrder=Z(0),`Lcl_Translation`in t&&(n.translation=t.Lcl_Translation.value),`PreRotation`in t&&(n.preRotation=t.PreRotation.value),`Lcl_Rotation`in t&&(n.rotation=t.Lcl_Rotation.value),`PostRotation`in t&&(n.postRotation=t.PostRotation.value),`Lcl_Scaling`in t&&(n.scale=t.Lcl_Scaling.value),`ScalingOffset`in t&&(n.scalingOffset=t.ScalingOffset.value),`ScalingPivot`in t&&(n.scalingPivot=t.ScalingPivot.value),`RotationOffset`in t&&(n.rotationOffset=t.RotationOffset.value),`RotationPivot`in t&&(n.rotationPivot=t.RotationPivot.value),e.userData.transformData=n}setLookAtProperties(e,n){`LookAtProperty`in n&&H.get(e.ID).children.forEach(function(n){if(n.relationship===`LookAtProperty`){let r=V.Objects.Model[n.ID];if(`Lcl_Translation`in r){let n=r.Lcl_Translation.value;e.target===void 0?e.lookAt(new t().fromArray(n)):(e.target.position.fromArray(n),U.add(e.target))}}})}bindSkeleton(t,n,r){for(let a in t){let o=t[a],s=[];for(let t=0,n=o.bones.length;t<n;t++){let n=new e;o.bones[t]&&o.rawBones[t]&&n.copy(o.rawBones[t].transformLink).invert(),s.push(n)}H.get(parseInt(o.ID)).parents.forEach(function(e){if(n.has(e.ID)){let t=e.ID;H.get(t).parents.forEach(function(e){if(r.has(e.ID)){let t=r.get(e.ID);t.updateMatrixWorld(!0),t.bind(new i(o.bones,s),t.matrixWorld)}})}})}}parsePoseNodes(){let t={};if(`Pose`in V.Objects){let n=V.Objects.Pose;for(let r in n)if(n[r].attrType===`BindPose`&&n[r].NbPoseNodes>0){let i=n[r].PoseNode;Array.isArray(i)?i.forEach(function(n){t[n.Node]=new e().fromArray(n.Matrix.a)}):t[i.Node]=new e().fromArray(i.Matrix.a)}}return t}addGlobalSceneSettings(){if(`GlobalSettings`in V){if(`AmbientColor`in V.GlobalSettings){let e=V.GlobalSettings.AmbientColor.value,t=e[0],n=e[1],r=e[2];if(t!==0||n!==0||r!==0){let e=new k().setRGB(t,n,r,I);U.add(new E(e,1))}}`UnitScaleFactor`in V.GlobalSettings&&(U.userData.unitScaleFactor=V.GlobalSettings.UnitScaleFactor.value)}}},me=class{constructor(){this.negativeMaterialIndices=!1}parse(e){let t=new Map;if(`Geometry`in V.Objects){let n=V.Objects.Geometry;for(let r in n){let i=H.get(parseInt(r)),a=this.parseGeometry(i,n[r],e);t.set(parseInt(r),a)}}return this.negativeMaterialIndices===!0&&console.warn(`THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected.`),t}parseGeometry(e,t,n){switch(t.attrType){case`Mesh`:return this.parseMeshGeometry(e,t,n);case`NurbsCurve`:return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,n){let r=n.skeletons,i=[],a=e.parents.map(function(e){return V.Objects.Model[e.ID]});if(a.length===0)return;let o=e.children.reduce(function(e,t){return r[t.ID]!==void 0&&(e=r[t.ID]),e},null);e.children.forEach(function(e){n.morphTargets[e.ID]!==void 0&&i.push(n.morphTargets[e.ID])});let s=a[0],c={};`RotationOrder`in s&&(c.eulerOrder=Z(s.RotationOrder.value)),`InheritType`in s&&(c.inheritType=parseInt(s.InheritType.value)),`GeometricTranslation`in s&&(c.translation=s.GeometricTranslation.value),`GeometricRotation`in s&&(c.rotation=s.GeometricRotation.value),`GeometricScaling`in s&&(c.scale=s.GeometricScaling.value);let l=X(c);return this.genGeometry(t,o,i,l)}genGeometry(e,t,n,r){let i=new N;e.attrName&&(i.name=e.attrName);let a=this.parseGeoNode(e,t),o=this.genBuffers(a),s=new F(o.vertex,3);if(s.applyMatrix4(r),i.setAttribute(`position`,s),o.colors.length>0&&i.setAttribute(`color`,new F(o.colors,3)),t&&(i.setAttribute(`skinIndex`,new h(o.weightsIndices,4)),i.setAttribute(`skinWeight`,new F(o.vertexWeights,4)),i.FBX_Deformer=t),o.normal.length>0){let e=new p().getNormalMatrix(r),t=new F(o.normal,3);t.applyNormalMatrix(e),i.setAttribute(`normal`,t)}if(o.uvs.forEach(function(e,t){let n=t===0?`uv`:`uv${t}`;i.setAttribute(n,new F(o.uvs[t],2))}),a.material&&a.material.mappingType!==`AllSame`){let e=o.materialIndex[0],t=0;if(o.materialIndex.forEach(function(n,r){n!==e&&(i.addGroup(t,r-t,e),e=n,t=r)}),i.groups.length>0){let t=i.groups[i.groups.length-1],n=t.start+t.count;n!==o.materialIndex.length&&i.addGroup(n,o.materialIndex.length-n,e)}i.groups.length===0&&i.addGroup(0,o.materialIndex.length,o.materialIndex[0])}return this.addMorphTargets(i,e,n,r),i}parseGeoNode(e,t){let n={};if(n.vertexPositions=e.Vertices===void 0?[]:e.Vertices.a,n.vertexIndices=e.PolygonVertexIndex===void 0?[]:e.PolygonVertexIndex.a,e.LayerElementColor&&e.LayerElementColor[0].Colors&&(n.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(n.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(n.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){n.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&n.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return n.weightTable={},t!==null&&(n.skeleton=t,t.rawBones.forEach(function(e,t){e.indices.forEach(function(r,i){n.weightTable[r]===void 0&&(n.weightTable[r]=[]),n.weightTable[r].push({id:t,weight:e.weights[i]})})})),n}genBuffers(e){let t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},n=0,r=0,i=!1,a=[],o=[],s=[],c=[],l=[],u=[],d=this;return e.vertexIndices.forEach(function(f,p){let m,h=!1;f<0&&(f^=-1,h=!0);let g=[],_=[];if(a.push(f*3,f*3+1,f*3+2),e.color){let t=q(p,n,f,e.color);s.push(t[0],t[1],t[2])}if(e.skeleton){if(e.weightTable[f]!==void 0&&e.weightTable[f].forEach(function(e){_.push(e.weight),g.push(e.id)}),_.length>4){i||=(console.warn(`THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.`),!0);let e=[0,0,0,0],t=[0,0,0,0];_.forEach(function(n,r){let i=n,a=g[r];t.forEach(function(t,n,r){if(i>t){r[n]=i,i=t;let o=e[n];e[n]=a,a=o}})}),g=e,_=t}for(;_.length<4;)_.push(0),g.push(0);for(let e=0;e<4;++e)l.push(_[e]),u.push(g[e])}if(e.normal){let t=q(p,n,f,e.normal);o.push(t[0],t[1],t[2])}e.material&&e.material.mappingType!==`AllSame`&&(m=q(p,n,f,e.material)[0],m<0&&(d.negativeMaterialIndices=!0,m=0)),e.uv&&e.uv.forEach(function(e,t){let r=q(p,n,f,e);c[t]===void 0&&(c[t]=[]),c[t].push(r[0]),c[t].push(r[1])}),r++,h&&(d.genFace(t,e,a,m,o,s,c,l,u,r),n++,r=0,a=[],o=[],s=[],c=[],l=[],u=[])}),t}getNormalNewell(e){let n=new t(0,0,0);for(let t=0;t<e.length;t++){let r=e[t],i=e[(t+1)%e.length];n.x+=(r.y-i.y)*(r.z+i.z),n.y+=(r.z-i.z)*(r.x+i.x),n.z+=(r.x-i.x)*(r.y+i.y)}return n.normalize(),n}getNormalTangentAndBitangent(e){let n=this.getNormalNewell(e),r=(Math.abs(n.z)>.5?new t(0,1,0):new t(0,0,1)).cross(n).normalize();return{normal:n,tangent:r,bitangent:n.clone().cross(r).normalize()}}flattenVertex(e,t,n){return new ie(e.dot(t),e.dot(n))}genFace(e,n,r,i,a,s,c,l,u,d){let f;if(d>3){let e=[],i=n.baseVertexPositions||n.vertexPositions;for(let n=0;n<r.length;n+=3)e.push(new t(i[r[n]],i[r[n+1]],i[r[n+2]]));let{tangent:a,bitangent:s}=this.getNormalTangentAndBitangent(e),c=[];for(let t of e)c.push(this.flattenVertex(t,a,s));f=o.triangulateShape(c,[])}else f=[[0,1,2]];for(let[t,o,d]of f)e.vertex.push(n.vertexPositions[r[t*3]]),e.vertex.push(n.vertexPositions[r[t*3+1]]),e.vertex.push(n.vertexPositions[r[t*3+2]]),e.vertex.push(n.vertexPositions[r[o*3]]),e.vertex.push(n.vertexPositions[r[o*3+1]]),e.vertex.push(n.vertexPositions[r[o*3+2]]),e.vertex.push(n.vertexPositions[r[d*3]]),e.vertex.push(n.vertexPositions[r[d*3+1]]),e.vertex.push(n.vertexPositions[r[d*3+2]]),n.skeleton&&(e.vertexWeights.push(l[t*4]),e.vertexWeights.push(l[t*4+1]),e.vertexWeights.push(l[t*4+2]),e.vertexWeights.push(l[t*4+3]),e.vertexWeights.push(l[o*4]),e.vertexWeights.push(l[o*4+1]),e.vertexWeights.push(l[o*4+2]),e.vertexWeights.push(l[o*4+3]),e.vertexWeights.push(l[d*4]),e.vertexWeights.push(l[d*4+1]),e.vertexWeights.push(l[d*4+2]),e.vertexWeights.push(l[d*4+3]),e.weightsIndices.push(u[t*4]),e.weightsIndices.push(u[t*4+1]),e.weightsIndices.push(u[t*4+2]),e.weightsIndices.push(u[t*4+3]),e.weightsIndices.push(u[o*4]),e.weightsIndices.push(u[o*4+1]),e.weightsIndices.push(u[o*4+2]),e.weightsIndices.push(u[o*4+3]),e.weightsIndices.push(u[d*4]),e.weightsIndices.push(u[d*4+1]),e.weightsIndices.push(u[d*4+2]),e.weightsIndices.push(u[d*4+3])),n.color&&(e.colors.push(s[t*3]),e.colors.push(s[t*3+1]),e.colors.push(s[t*3+2]),e.colors.push(s[o*3]),e.colors.push(s[o*3+1]),e.colors.push(s[o*3+2]),e.colors.push(s[d*3]),e.colors.push(s[d*3+1]),e.colors.push(s[d*3+2])),n.material&&n.material.mappingType!==`AllSame`&&(e.materialIndex.push(i),e.materialIndex.push(i),e.materialIndex.push(i)),n.normal&&(e.normal.push(a[t*3]),e.normal.push(a[t*3+1]),e.normal.push(a[t*3+2]),e.normal.push(a[o*3]),e.normal.push(a[o*3+1]),e.normal.push(a[o*3+2]),e.normal.push(a[d*3]),e.normal.push(a[d*3+1]),e.normal.push(a[d*3+2])),n.uv&&n.uv.forEach(function(n,r){e.uvs[r]===void 0&&(e.uvs[r]=[]),e.uvs[r].push(c[r][t*2]),e.uvs[r].push(c[r][t*2+1]),e.uvs[r].push(c[r][o*2]),e.uvs[r].push(c[r][o*2+1]),e.uvs[r].push(c[r][d*2]),e.uvs[r].push(c[r][d*2+1])})}addMorphTargets(e,t,n,r){if(n.length===0)return;e.morphTargetsRelative=!0,e.morphAttributes.position=[];let i=r.clone().setPosition(0,0,0),a=this;n.forEach(function(n){n.rawTargets.forEach(function(n){let r=V.Objects.Geometry[n.geoID];r!==void 0&&a.genMorphGeometry(e,t,r,i,n.name)})})}genMorphGeometry(e,t,n,r,i){let a=t.Vertices===void 0?[]:t.Vertices.a,o=t.PolygonVertexIndex===void 0?[]:t.PolygonVertexIndex.a,s=n.Vertices===void 0?[]:n.Vertices.a,c=n.Indexes===void 0?[]:n.Indexes.a,l=e.attributes.position.count*3,u=new Float32Array(l);for(let e=0;e<c.length;e++){let t=c[e]*3;u[t]=s[e*3],u[t+1]=s[e*3+1],u[t+2]=s[e*3+2]}let d={vertexIndices:o,vertexPositions:u,baseVertexPositions:a},f=new F(this.genBuffers(d).vertex,3);f.name=i||n.attrName,f.applyMatrix4(r),e.morphAttributes.position.push(f)}parseNormals(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.Normals.a,i=[];return n===`IndexToDirect`&&(`NormalIndex`in e?i=e.NormalIndex.a:`NormalsIndex`in e&&(i=e.NormalsIndex.a)),{dataSize:3,buffer:r,indices:i,mappingType:t,referenceType:n}}parseUVs(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.UV.a,i=[];return n===`IndexToDirect`&&(i=e.UVIndex.a),{dataSize:2,buffer:r,indices:i,mappingType:t,referenceType:n}}parseVertexColors(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.Colors.a,i=[];n===`IndexToDirect`&&(i=e.ColorIndex.a);for(let e=0,t=new k;e<r.length;e+=4)t.fromArray(r,e),T.colorSpaceToWorking(t,I),t.toArray(r,e);return{dataSize:4,buffer:r,indices:i,mappingType:t,referenceType:n}}parseMaterialIndices(e){let t=e.MappingInformationType,n=e.ReferenceInformationType;if(t===`NoMappingInformation`)return{dataSize:1,buffer:[0],indices:[0],mappingType:`AllSame`,referenceType:n};let r=e.Materials.a,i=[];for(let e=0;e<r.length;++e)i.push(e);return{dataSize:1,buffer:r,indices:i,mappingType:t,referenceType:n}}parseNurbsGeometry(e){let t=parseInt(e.Order);if(isNaN(t))return console.error(`THREE.FBXLoader: Invalid Order %s given for geometry ID: %s`,e.Order,e.id),new N;let n=t-1,r=e.KnotVector.a,i=[],a=e.Points.a;for(let e=0,t=a.length;e<t;e+=4)i.push(new _().fromArray(a,e));let o,s;if(e.Form===`Closed`)i.push(i[0]);else if(e.Form===`Periodic`){o=n,s=r.length-1-o;for(let e=0;e<n;++e)i.push(i[e])}let c=new B(n,r,i,o,s).getPoints(i.length*12);return new N().setFromPoints(c)}},he=class{parse(){let e=[],t=this.parseClips();if(t!==void 0)for(let n in t){let r=t[n],i=this.addClip(r);e.push(i)}return e}parseClips(){if(V.Objects.AnimationCurve===void 0)return;let e=this.parseAnimationCurveNodes();this.parseAnimationCurves(e);let t=this.parseAnimationLayers(e);return this.parseAnimStacks(t)}parseAnimationCurveNodes(){let e=V.Objects.AnimationCurveNode,t=new Map;for(let n in e){let r=e[n];if(r.attrName.match(/S|R|T|DeformPercent/)!==null){let e={id:r.id,attr:r.attrName,curves:{}};t.set(e.id,e)}}return t}parseAnimationCurves(e){let t=V.Objects.AnimationCurve;for(let n in t){let r={id:t[n].id,times:t[n].KeyTime.a.map(be),values:t[n].KeyValueFloat.a},i=H.get(r.id);if(i!==void 0){let t=i.parents[0].ID,n=i.parents[0].relationship;n.match(/X/)?e.get(t).curves.x=r:n.match(/Y/)?e.get(t).curves.y=r:n.match(/Z/)?e.get(t).curves.z=r:n.match(/DeformPercent/)&&e.has(t)&&(e.get(t).curves.morph=r)}}}parseAnimationLayers(t){let n=V.Objects.AnimationLayer,r=new Map;for(let i in n){let n=[],a=H.get(parseInt(i));a!==void 0&&(a.children.forEach(function(r,i){if(t.has(r.ID)){let a=t.get(r.ID);if(a.curves.x!==void 0||a.curves.y!==void 0||a.curves.z!==void 0){if(n[i]===void 0){let t=H.get(r.ID).parents.filter(function(e){return e.relationship!==void 0});if(t.length===0)return;let a=t[0].ID;if(a!==void 0){let t=V.Objects.Model[a.toString()];if(t===void 0){console.warn(`THREE.FBXLoader: Encountered a unused curve.`,r);return}let o={modelName:t.attrName?P.sanitizeNodeName(t.attrName):``,ID:t.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1]};U.traverse(function(e){e.ID===t.id&&(o.transform=e.matrix,e.userData.transformData&&(o.eulerOrder=e.userData.transformData.eulerOrder,e.userData.transformData.rotation&&(o.initialRotation=e.userData.transformData.rotation)))}),o.transform||=new e,`PreRotation`in t&&(o.preRotation=t.PreRotation.value),`PostRotation`in t&&(o.postRotation=t.PostRotation.value),n[i]=o}}n[i]&&(n[i][a.attr]=a)}else if(a.curves.morph!==void 0){if(n[i]===void 0){let e=H.get(r.ID).parents.filter(function(e){return e.relationship!==void 0});if(e.length===0)return;let t=e[0].ID,a=H.get(t).parents[0].ID,o=H.get(a).parents[0].ID,s=H.get(o).parents[0].ID,c=V.Objects.Model[s];n[i]={modelName:c.attrName?P.sanitizeNodeName(c.attrName):``,morphName:V.Objects.Deformer[t].attrName}}n[i][a.attr]=a}}}),r.set(parseInt(i),n))}return r}parseAnimStacks(e){let t=V.Objects.AnimationStack,n={};for(let r in t){let i=H.get(parseInt(r)).children;i.length>1&&console.warn(`THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.`);let a=e.get(i[0].ID);n[r]={name:t[r].attrName,layer:a}}return n}addClip(e){let t=[],n=this;return e.layer.forEach(function(e){t=t.concat(n.generateTracks(e))}),new j(e.name,-1,t)}generateTracks(e){let n=[],r=new t,i=new t;if(e.transform&&e.transform.decompose(r,new L,i),r=r.toArray(),i=i.toArray(),e.T!==void 0&&Object.keys(e.T.curves).length>0){let t=this.generateVectorTrack(e.modelName,e.T.curves,r,`position`);t!==void 0&&n.push(t)}if(e.R!==void 0&&Object.keys(e.R.curves).length>0){let t=this.generateRotationTrack(e.modelName,e.R.curves,e.preRotation,e.postRotation,e.eulerOrder,e.initialRotation);t!==void 0&&n.push(t)}if(e.S!==void 0&&Object.keys(e.S.curves).length>0){let t=this.generateVectorTrack(e.modelName,e.S.curves,i,`scale`);t!==void 0&&n.push(t)}if(e.DeformPercent!==void 0){let t=this.generateMorphTrack(e);t!==void 0&&n.push(t)}return n}generateVectorTrack(e,t,n,r){let i=this.getTimesForAllAxes(t),a=this.getKeyframeTrackValues(i,t,n);return new c(e+`.`+r,i,a)}generateRotationTrack(e,t,n,r,i,a){let o,s;if(t.x!==void 0||t.y!==void 0||t.z!==void 0){let e=this.getTimesForAllAxes(t);if(e.length>0){let n=a||[0,0,0],r=this.synchronizeCurve(t.x,e,n[0]),c=this.synchronizeCurve(t.y,e,n[1]),l=this.synchronizeCurve(t.z,e,n[2]),u=this.interpolateRotations(r,c,l,i);o=u[0],s=u[1]}}let c=Z(0);n!==void 0&&(n=n.map(v.degToRad),n.push(c),n=new g().fromArray(n),n=new L().setFromEuler(n)),r!==void 0&&(r=r.map(v.degToRad),r.push(c),r=new g().fromArray(r),r=new L().setFromEuler(r).invert());let l=new L,u=new g,d=[];if(!(!s||!o)){for(let e=0;e<s.length;e+=3)u.set(s[e],s[e+1],s[e+2],i),l.setFromEuler(u),n!==void 0&&l.premultiply(n),r!==void 0&&l.multiply(r),e>2&&new L().fromArray(d,(e-3)/3*4).dot(l)<0&&l.set(-l.x,-l.y,-l.z,-l.w),l.toArray(d,e/3*4);return new b(e+`.quaternion`,o,d)}}generateMorphTrack(e){let t=e.DeformPercent.curves.morph,n=t.values.map(function(e){return e/100}),r=U.getObjectByName(e.modelName).morphTargetDictionary[e.morphName];return new te(e.modelName+`.morphTargetInfluences[`+r+`]`,t.times,n)}getTimesForAllAxes(e){let t=[];if(e.x!==void 0&&(t=t.concat(e.x.times)),e.y!==void 0&&(t=t.concat(e.y.times)),e.z!==void 0&&(t=t.concat(e.z.times)),t=t.sort(function(e,t){return e-t}),t.length>1){let e=1,n=t[0];for(let r=1;r<t.length;r++){let i=t[r];i!==n&&(t[e]=i,n=i,e++)}t=t.slice(0,e)}return t}getKeyframeTrackValues(e,t,n){let r=n,i=[],a=-1,o=-1,s=-1;return e.forEach(function(e){if(t.x&&(a=t.x.times.indexOf(e)),t.y&&(o=t.y.times.indexOf(e)),t.z&&(s=t.z.times.indexOf(e)),a!==-1){let e=t.x.values[a];i.push(e),r[0]=e}else i.push(r[0]);if(o!==-1){let e=t.y.values[o];i.push(e),r[1]=e}else i.push(r[1]);if(s!==-1){let e=t.z.values[s];i.push(e),r[2]=e}else i.push(r[2])}),i}synchronizeCurve(e,t,n){if(e===void 0)return{times:t,values:t.map(()=>n)};if(e.times.length===t.length)return e;let r=[];for(let i=0;i<t.length;i++)r.push(this.sampleCurveValue(e,t[i],n));return{times:t,values:r}}sampleCurveValue(e,t,n){let r=e.times,i=e.values;if(t<=r[0])return i[0];if(t>=r[r.length-1])return i[i.length-1];for(let e=0;e<r.length-1;e++)if(t>=r[e]&&t<=r[e+1]){if(r[e]===t)return i[e];let n=(t-r[e])/(r[e+1]-r[e]);return i[e]*(1-n)+i[e+1]*n}return n}interpolateRotations(e,t,n,r){let i=[],a=[];i.push(e.times[0]),a.push(v.degToRad(e.values[0])),a.push(v.degToRad(t.values[0])),a.push(v.degToRad(n.values[0]));for(let o=1;o<e.values.length;o++){let s=[e.values[o-1],t.values[o-1],n.values[o-1]];if(isNaN(s[0])||isNaN(s[1])||isNaN(s[2]))continue;let c=s.map(v.degToRad),l=[e.values[o],t.values[o],n.values[o]];if(isNaN(l[0])||isNaN(l[1])||isNaN(l[2]))continue;let u=l.map(v.degToRad),d=[l[0]-s[0],l[1]-s[1],l[2]-s[2]],f=[Math.abs(d[0]),Math.abs(d[1]),Math.abs(d[2])];if(f[0]>=180||f[1]>=180||f[2]>=180){let t=Math.max(...f)/180,n=new g(...c,r),s=new g(...u,r),l=new L().setFromEuler(n),d=new L().setFromEuler(s);l.dot(d)<0&&d.set(-d.x,-d.y,-d.z,-d.w);let p=e.times[o-1],m=e.times[o]-p,h=new L,_=new g;for(let e=0;e<1;e+=1/t)h.copy(l.clone().slerp(d.clone(),e)),i.push(p+e*m),_.setFromQuaternion(h,r),a.push(_.x),a.push(_.y),a.push(_.z)}else i.push(e.times[o]),a.push(v.degToRad(e.values[o])),a.push(v.degToRad(t.values[o])),a.push(v.degToRad(n.values[o]))}return[i,a]}},ge=class{getPrevNode(){return this.nodeStack[this.currentIndent-2]}getCurrentNode(){return this.nodeStack[this.currentIndent-1]}getCurrentProp(){return this.currentProp}pushStack(e){this.nodeStack.push(e),this.currentIndent+=1}popStack(){this.nodeStack.pop(),--this.currentIndent}setCurrentProp(e,t){this.currentProp=e,this.currentPropName=t}parse(e){this.currentIndent=0,this.allNodes=new G,this.nodeStack=[],this.currentProp=[],this.currentPropName=``;let t=this,n=e.split(/[\r\n]+/);return n.forEach(function(e,r){let i=e.match(/^[\s\t]*;/),a=e.match(/^[\s\t]*$/);if(i||a)return;let o=e.match(`^\\t{`+t.currentIndent+`}(\\w+):(.*){`,``),s=e.match(`^\\t{`+t.currentIndent+`}(\\w+):[\\s\\t\\r\\n](.*)`),c=e.match(`^\\t{`+(t.currentIndent-1)+`}}`);o?t.parseNodeBegin(e,o):s?t.parseNodeProperty(e,s,n[++r]):c?t.popStack():e.match(/^[^\s\t}]/)&&t.parseNodePropertyContinued(e)}),this.allNodes}parseNodeBegin(e,t){let n=t[1].trim().replace(/^"/,``).replace(/"$/,``),r=t[2].split(`,`).map(function(e){return e.trim().replace(/^"/,``).replace(/"$/,``)}),i={name:n},a=this.parseNodeAttr(r),o=this.getCurrentNode();this.currentIndent===0?this.allNodes.add(n,i):n in o?(n===`PoseNode`?o.PoseNode.push(i):o[n].id!==void 0&&(o[n]={},o[n][o[n].id]=o[n]),a.id!==``&&(o[n][a.id]=i)):typeof a.id==`number`?(o[n]={},o[n][a.id]=i):n!==`Properties70`&&(n===`PoseNode`?o[n]=[i]:o[n]=i),typeof a.id==`number`&&(i.id=a.id),a.name!==``&&(i.attrName=a.name),a.type!==``&&(i.attrType=a.type),this.pushStack(i)}parseNodeAttr(e){let t=e[0];e[0]!==``&&(t=parseInt(e[0]),isNaN(t)&&(t=e[0]));let n=``,r=``;return e.length>1&&(n=e[1].replace(/^(\w+)::/,``),r=e[2]),{id:t,name:n,type:r}}parseNodeProperty(e,t,n){let r=t[1].replace(/^"/,``).replace(/"$/,``).trim(),i=t[2].replace(/^"/,``).replace(/"$/,``).trim();r===`Content`&&i===`,`&&(i=n.replace(/"/g,``).replace(/,$/,``).trim());let a=this.getCurrentNode();if(a.name===`Properties70`){this.parseNodeSpecialProperty(e,r,i);return}if(r===`C`){let e=i.split(`,`).slice(1),t=parseInt(e[0]),n=parseInt(e[1]),o=i.split(`,`).slice(3);o=o.map(function(e){return e.trim().replace(/^"/,``)}),r=`connections`,i=[t,n],Se(i,o),a[r]===void 0&&(a[r]=[])}r===`Node`&&(a.id=i),r in a&&Array.isArray(a[r])?a[r].push(i):r===`a`?a.a=i:a[r]=i,this.setCurrentProp(a,r),r===`a`&&i.slice(-1)!==`,`&&(a.a=Q(i))}parseNodePropertyContinued(e){let t=this.getCurrentNode();t.a+=e,e.slice(-1)!==`,`&&(t.a=Q(t.a))}parseNodeSpecialProperty(e,t,n){let r=n.split(`",`).map(function(e){return e.trim().replace(/^\"/,``).replace(/\s/,`_`)}),i=r[0],a=r[1],o=r[2],s=r[3],c=r[4];switch(a){case`int`:case`enum`:case`bool`:case`ULongLong`:case`double`:case`Number`:case`FieldOfView`:c=parseFloat(c);break;case`Color`:case`ColorRGB`:case`Vector3D`:case`Lcl_Translation`:case`Lcl_Rotation`:case`Lcl_Scaling`:c=Q(c);break}this.getPrevNode()[i]={type:a,type2:o,flag:s,value:c},this.setCurrentProp(this.getPrevNode(),i)}},_e=class{parse(e){let t=new W(e);t.skip(23);let n=t.getUint32();if(n<6400)throw Error(`THREE.FBXLoader: FBX version not supported, FileVersion: `+n);let r=new G;for(;!this.endOfContent(t);){let e=this.parseNode(t,n);e!==null&&r.add(e.name,e)}return r}endOfContent(e){return e.size()%16==0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){let n={},r=t>=7500?e.getUint64():e.getUint32(),i=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();let a=e.getUint8(),o=e.getString(a);if(r===0)return null;let s=[];for(let t=0;t<i;t++)s.push(this.parseProperty(e));let c=s.length>0?s[0]:``,l=s.length>1?s[1]:``,u=s.length>2?s[2]:``;for(n.singleProperty=i===1&&e.getOffset()===r;r>e.getOffset();){let r=this.parseNode(e,t);r!==null&&this.parseSubNode(o,n,r)}return n.propertyList=s,typeof c==`number`&&(n.id=c),l!==``&&(n.attrName=l),u!==``&&(n.attrType=u),o!==``&&(n.name=o),n}parseSubNode(e,t,n){if(n.singleProperty===!0){let e=n.propertyList[0];Array.isArray(e)?(t[n.name]=n,n.a=e):t[n.name]=e}else if(e===`Connections`&&n.name===`C`){let e=[];n.propertyList.forEach(function(t,n){n!==0&&e.push(t)}),t.connections===void 0&&(t.connections=[]),t.connections.push(e)}else if(n.name===`Properties70`)Object.keys(n).forEach(function(e){t[e]=n[e]});else if(e===`Properties70`&&n.name===`P`){let e=n.propertyList[0],r=n.propertyList[1],i=n.propertyList[2],a=n.propertyList[3],o;e.indexOf(`Lcl `)===0&&(e=e.replace(`Lcl `,`Lcl_`)),r.indexOf(`Lcl `)===0&&(r=r.replace(`Lcl `,`Lcl_`)),o=r===`Color`||r===`ColorRGB`||r===`Vector`||r===`Vector3D`||r.indexOf(`Lcl_`)===0?[n.propertyList[4],n.propertyList[5],n.propertyList[6]]:n.propertyList[4],t[e]={type:r,type2:i,flag:a,value:o}}else t[n.name]===void 0?typeof n.id==`number`?(t[n.name]={},t[n.name][n.id]=n):t[n.name]=n:n.name===`PoseNode`?(Array.isArray(t[n.name])||(t[n.name]=[t[n.name]]),t[n.name].push(n)):t[n.name][n.id]===void 0&&(t[n.name][n.id]=n)}parseProperty(e){let t=e.getString(1),n;switch(t){case`C`:return e.getBoolean();case`D`:return e.getFloat64();case`F`:return e.getFloat32();case`I`:return e.getInt32();case`L`:return e.getInt64();case`R`:return n=e.getUint32(),e.getArrayBuffer(n);case`S`:return n=e.getUint32(),e.getString(n);case`Y`:return e.getInt16();case`b`:case`c`:case`d`:case`f`:case`i`:case`l`:let r=e.getUint32(),i=e.getUint32(),a=e.getUint32();if(i===0)switch(t){case`b`:case`c`:return e.getBooleanArray(r);case`d`:return e.getFloat64Array(r);case`f`:return e.getFloat32Array(r);case`i`:return e.getInt32Array(r);case`l`:return e.getInt64Array(r)}let o=new W(ae(new Uint8Array(e.getArrayBuffer(a))).buffer);switch(t){case`b`:case`c`:return o.getBooleanArray(r);case`d`:return o.getFloat64Array(r);case`f`:return o.getFloat32Array(r);case`i`:return o.getInt32Array(r);case`l`:return o.getInt64Array(r)}break;default:throw Error(`THREE.FBXLoader: Unknown property type `+t)}}},W=class{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=t===void 0?!0:t,this._textDecoder=new TextDecoder}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return(this.getUint8()&1)==1}getBooleanArray(e){let t=[];for(let n=0;n<e;n++)t.push(this.getBoolean());return t}getUint8(){let e=this.dv.getUint8(this.offset);return this.offset+=1,e}getInt16(){let e=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,e}getInt32(){let e=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}getInt32Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getInt32());return t}getUint32(){let e=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,e}getInt64(){let e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),t&2147483648?(t=~t&4294967295,e=~e&4294967295,e===4294967295&&(t=t+1&4294967295),e=e+1&4294967295,-(t*4294967296+e)):t*4294967296+e}getInt64Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getInt64());return t}getUint64(){let e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),t*4294967296+e}getFloat32(){let e=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,e}getFloat32Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getFloat32());return t}getFloat64(){let e=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,e}getFloat64Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getFloat64());return t}getArrayBuffer(e){let t=this.dv.buffer.slice(this.offset,this.offset+e);return this.offset+=e,t}getString(e){let t=this.offset,n=new Uint8Array(this.dv.buffer,t,e);this.skip(e);let r=n.indexOf(0);return r>=0&&(n=new Uint8Array(this.dv.buffer,t,r)),this._textDecoder.decode(n)}},G=class{add(e,t){this[e]=t}};function ve(e){return e.byteLength>=21&&$(e,0,21)===`Kaydara FBX Binary \0`}function ye(e){let t=[`K`,`a`,`y`,`d`,`a`,`r`,`a`,`\\`,`F`,`B`,`X`,`\\`,`B`,`i`,`n`,`a`,`r`,`y`,`\\`,`\\`],n=0;function r(t){let r=e[t-1];return e=e.slice(n+t),n++,r}for(let e=0;e<t.length;++e)if(r(1)===t[e])return!1;return!0}function K(e){let t=e.match(/FBXVersion: (\d+)/);if(t)return parseInt(t[1]);throw Error(`THREE.FBXLoader: Cannot find the version number for the file given.`)}function be(e){return e/46186158e3}var xe=[];function q(e,t,n,r){let i;switch(r.mappingType){case`ByPolygonVertex`:i=e;break;case`ByPolygon`:i=t;break;case`ByVertice`:i=n;break;case`AllSame`:i=r.indices[0];break;default:console.warn(`THREE.FBXLoader: unknown attribute mapping type `+r.mappingType)}r.referenceType===`IndexToDirect`&&(i=r.indices[i]);let a=i*r.dataSize,o=a+r.dataSize;return Ce(xe,r.buffer,a,o)}var J=new g,Y=new t;function X(n){let r=new e,i=new e,a=new e,o=new e,s=new e,c=new e,l=new e,u=new e,d=new e,f=new e,p=new e,m=new e,h=n.inheritType?n.inheritType:0;n.translation&&r.setPosition(Y.fromArray(n.translation));let g=Z(0);if(n.preRotation){let e=n.preRotation.map(v.degToRad);e.push(g),i.makeRotationFromEuler(J.fromArray(e))}if(n.rotation){let e=n.rotation.map(v.degToRad);e.push(n.eulerOrder||g),a.makeRotationFromEuler(J.fromArray(e))}if(n.postRotation){let e=n.postRotation.map(v.degToRad);e.push(g),o.makeRotationFromEuler(J.fromArray(e)),o.invert()}n.scale&&s.scale(Y.fromArray(n.scale)),n.scalingOffset&&l.setPosition(Y.fromArray(n.scalingOffset)),n.scalingPivot&&c.setPosition(Y.fromArray(n.scalingPivot)),n.rotationOffset&&u.setPosition(Y.fromArray(n.rotationOffset)),n.rotationPivot&&d.setPosition(Y.fromArray(n.rotationPivot)),n.parentMatrixWorld&&(p.copy(n.parentMatrix),f.copy(n.parentMatrixWorld));let _=i.clone().multiply(a).multiply(o),y=new e;y.extractRotation(f);let b=new e;b.copyPosition(f);let x=b.clone().invert().multiply(f),S=y.clone().invert().multiply(x),C=s,w=new e;if(h===0)w.copy(y).multiply(_).multiply(S).multiply(C);else if(h===1)w.copy(y).multiply(S).multiply(_).multiply(C);else{let n=new e().scale(new t().setFromMatrixScale(p)).clone().invert(),r=S.clone().multiply(n);w.copy(y).multiply(_).multiply(r).multiply(C)}let T=d.clone().invert(),E=c.clone().invert(),D=r.clone().multiply(u).multiply(d).multiply(i).multiply(a).multiply(o).multiply(T).multiply(l).multiply(c).multiply(s).multiply(E),O=new e().copyPosition(D),k=f.clone().multiply(O);return m.copyPosition(k),D=m.clone().multiply(w),D.premultiply(f.invert()),D}function Z(e){e||=0;let t=[`ZYX`,`YZX`,`XZY`,`ZXY`,`YXZ`,`XYZ`];return e===6?(console.warn(`THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.`),t[0]):t[e]}function Q(e){return e.split(`,`).map(function(e){return parseFloat(e)})}function $(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=e.byteLength),new TextDecoder().decode(new Uint8Array(e,t,n))}function Se(e,t){for(let n=0,r=e.length,i=t.length;n<i;n++,r++)e[r]=t[n]}function Ce(e,t,n,r){for(let i=n,a=0;i<r;i++,a++)e[a]=t[i];return e}export{fe as FBXLoader};
|
|
1
|
+
import{$ as e,Bt as t,C as n,Ct as r,Dt as i,E as a,Et as o,Ft as s,Ht as c,K as l,Mt as u,Ot as d,Pt as f,Q as p,R as m,Rt as h,S as g,Vt as _,Z as v,_ as y,bt as b,dt as x,et as S,f as C,ht as w,m as T,n as E,nt as D,o as O,p as k,pt as A,q as ee,r as j,rt as M,u as N,ut as te,vt as P,w as F,wt as I,x as ne,yt as L,z as re,zt as ie}from"./three.module-BFsVh7r1.js";import{n as ae}from"./fflate.module-BIQmJeC9.js";function R(e,t,n){let r=n.length-e-1;if(t>=n[r])return r-1;if(t<=n[e])return e;let i=e,a=r,o=Math.floor((i+a)/2);for(;t<n[o]||t>=n[o+1];)t<n[o]?a=o:i=o,o=Math.floor((i+a)/2);return o}function oe(e,t,n,r){let i=[],a=[],o=[];i[0]=1;for(let s=1;s<=n;++s){a[s]=t-r[e+1-s],o[s]=r[e+s]-t;let n=0;for(let e=0;e<s;++e){let t=o[e+1],r=a[s-e],c=i[e]/(t+r);i[e]=n+t*c,n=r*c}i[s]=n}return i}function se(e,t,n,r){let i=R(e,r,t),a=oe(i,r,e,t),o=new _(0,0,0,0);for(let t=0;t<=e;++t){let r=n[i-e+t],s=a[t],c=r.w*s;o.x+=r.x*c,o.y+=r.y*c,o.z+=r.z*c,o.w+=r.w*s}return o}function ce(e,t,n,r,i){let a=[];for(let e=0;e<=n;++e)a[e]=0;let o=[];for(let e=0;e<=r;++e)o[e]=a.slice(0);let s=[];for(let e=0;e<=n;++e)s[e]=a.slice(0);s[0][0]=1;let c=a.slice(0),l=a.slice(0);for(let r=1;r<=n;++r){c[r]=t-i[e+1-r],l[r]=i[e+r]-t;let n=0;for(let e=0;e<r;++e){let t=l[e+1],i=c[r-e];s[r][e]=t+i;let a=s[e][r-1]/s[r][e];s[e][r]=n+t*a,n=i*a}s[r][r]=n}for(let e=0;e<=n;++e)o[0][e]=s[e][n];for(let e=0;e<=n;++e){let t=0,i=1,c=[];for(let e=0;e<=n;++e)c[e]=a.slice(0);c[0][0]=1;for(let a=1;a<=r;++a){let r=0,l=e-a,u=n-a;e>=a&&(c[i][0]=c[t][0]/s[u+1][l],r=c[i][0]*s[l][u]);let d=l>=-1?1:-l,f=e-1<=u?a-1:n-e;for(let e=d;e<=f;++e)c[i][e]=(c[t][e]-c[t][e-1])/s[u+1][l+e],r+=c[i][e]*s[l+e][u];e<=u&&(c[i][a]=-c[t][a-1]/s[u+1][e],r+=c[i][a]*s[e][u]),o[a][e]=r;let p=t;t=i,i=p}}let u=n;for(let e=1;e<=r;++e){for(let t=0;t<=n;++t)o[e][t]*=u;u*=n-e}return o}function le(e,t,n,r,i){let a=i<e?i:e,o=[],s=R(e,r,t),c=ce(s,r,e,a,t),l=[];for(let e=0;e<n.length;++e){let t=n[e].clone(),r=t.w;t.x*=r,t.y*=r,t.z*=r,l[e]=t}for(let t=0;t<=a;++t){let n=l[s-e].clone().multiplyScalar(c[t][0]);for(let r=1;r<=e;++r)n.add(l[s-e+r].clone().multiplyScalar(c[t][r]));o[t]=n}for(let e=a+1;e<=i+1;++e)o[e]=new _(0,0,0);return o}function ue(e,t){let n=1;for(let t=2;t<=e;++t)n*=t;let r=1;for(let e=2;e<=t;++e)r*=e;for(let n=2;n<=e-t;++n)r*=n;return n/r}function de(e){let n=e.length,r=[],i=[];for(let a=0;a<n;++a){let n=e[a];r[a]=new t(n.x,n.y,n.z),i[a]=n.w}let a=[];for(let e=0;e<n;++e){let t=r[e].clone();for(let n=1;n<=e;++n)t.sub(a[e-n].clone().multiplyScalar(ue(e,n)*i[n]));a[e]=t.divideScalar(i[0])}return a}function z(e,t,n,r,i){return de(le(e,t,n,r,i))}var B=class extends y{constructor(e,t,n,r,i){super();let a=t?t.length-1:0,o=n?n.length:0;this.degree=e,this.knots=t,this.controlPoints=[],this.startKnot=r||0,this.endKnot=i||a;for(let e=0;e<o;++e){let t=n[e];this.controlPoints[e]=new _(t.x,t.y,t.z,t.w)}}getPoint(e,n=new t){let r=n,i=this.knots[this.startKnot]+e*(this.knots[this.endKnot]-this.knots[this.startKnot]),a=se(this.degree,this.knots,this.controlPoints,i);return a.w!==1&&a.divideScalar(a.w),r.set(a.x,a.y,a.z)}getTangent(e,n=new t){let r=n,i=this.knots[0]+e*(this.knots[this.knots.length-1]-this.knots[0]),a=z(this.degree,this.knots,this.controlPoints,i,1);return r.copy(a[1]).normalize(),r}toJSON(){let e=super.toJSON();return e.degree=this.degree,e.knots=[...this.knots],e.controlPoints=this.controlPoints.map(e=>e.toArray()),e.startKnot=this.startKnot,e.endKnot=this.endKnot,e}fromJSON(e){return super.fromJSON(e),this.degree=e.degree,this.knots=[...e.knots],this.controlPoints=e.controlPoints.map(e=>new _(e[0],e[1],e[2],e[3])),this.startKnot=e.startKnot,this.endKnot=e.endKnot,this}},V,H,U,fe=class extends l{constructor(e){super(e)}load(e,t,r,i){let a=this,o=a.path===``?ee.extractUrlBase(e):a.path,s=new n(this.manager);s.setPath(a.path),s.setResponseType(`arraybuffer`),s.setRequestHeader(a.requestHeader),s.setWithCredentials(a.withCredentials),s.load(e,function(n){try{t(a.parse(n,o))}catch(t){i?i(t):console.error(t),a.manager.itemError(e)}},r,i)}parse(e,t){if(ve(e))V=new _e().parse(e);else{let t=$(e);if(!ye(t))throw Error(`THREE.FBXLoader: Unknown format.`);if(K(t)<7e3)throw Error(`THREE.FBXLoader: FBX version not supported, FileVersion: `+K(t));V=new ge().parse(t)}return new pe(new s(this.manager).setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin),this.manager).parse(V)}},pe=class{constructor(e,t){this.textureLoader=e,this.manager=t}parse(){H=this.parseConnections();let e=this.parseImages(),t=this.parseTextures(e),n=this.parseMaterials(t),r=this.parseDeformers(),i=new me().parse(r);return this.parseScene(r,i,n),U}parseConnections(){let e=new Map;return`Connections`in V&&V.Connections.connections.forEach(function(t){let n=t[0],r=t[1],i=t[2];e.has(n)||e.set(n,{parents:[],children:[]});let a={ID:r,relationship:i};e.get(n).parents.push(a),e.has(r)||e.set(r,{parents:[],children:[]});let o={ID:n,relationship:i};e.get(r).children.push(o)}),e}parseImages(){let e={},t={};if(`Video`in V.Objects){let n=V.Objects.Video;for(let r in n){let i=n[r],a=parseInt(r);if(e[a]=i.RelativeFilename||i.Filename,`Content`in i){let e=i.Content instanceof ArrayBuffer&&i.Content.byteLength>0,a=typeof i.Content==`string`&&i.Content!==``;if(e||a){let e=this.parseImage(n[r]);t[i.RelativeFilename||i.Filename]=e}}}}for(let n in e){let r=e[n];t[r]===void 0?e[n]=e[n].split(`\\`).pop():e[n]=t[r]}return e}parseImage(e){let t=e.Content,n=e.RelativeFilename||e.Filename,r=n.slice(n.lastIndexOf(`.`)+1).toLowerCase(),i;switch(r){case`bmp`:i=`image/bmp`;break;case`jpg`:case`jpeg`:i=`image/jpeg`;break;case`png`:i=`image/png`;break;case`tif`:i=`image/tiff`;break;case`tga`:this.manager.getHandler(`.tga`)===null&&console.warn(`FBXLoader: TGA loader not found, skipping `,n),i=`image/tga`;break;case`webp`:i=`image/webp`;break;default:console.warn(`FBXLoader: Image type "`+r+`" is not supported.`);return}if(typeof t==`string`)return`data:`+i+`;base64,`+t;{let e=new Uint8Array(t);return window.URL.createObjectURL(new Blob([e],{type:i}))}}parseTextures(e){let t=new Map;if(`Texture`in V.Objects){let n=V.Objects.Texture;for(let r in n){let i=this.parseTexture(n[r],e);t.set(parseInt(r),i)}}return t}parseTexture(e,t){let n=this.loadTexture(e,t);n.ID=e.id,n.name=e.attrName;let i=e.WrapModeU,a=e.WrapModeV,o=i===void 0?0:i.value,s=a===void 0?0:a.value;if(n.wrapS=o===0?r:C,n.wrapT=s===0?r:C,`Scaling`in e){let t=e.Scaling.value;n.repeat.x=t[0],n.repeat.y=t[1]}if(`Translation`in e){let t=e.Translation.value;n.offset.x=t[0],n.offset.y=t[1]}return n}loadTexture(e,t){let n=e.FileName.split(`.`).pop().toLowerCase(),r=this.manager.getHandler(`.${n}`);r===null&&(r=this.textureLoader);let i=r.path;i||r.setPath(this.textureLoader.path);let a=H.get(e.id).children,o;if(a!==void 0&&a.length>0&&t[a[0].ID]!==void 0&&(o=t[a[0].ID],(o.indexOf(`blob:`)===0||o.indexOf(`data:`)===0)&&r.setPath(void 0)),o===void 0)return console.warn(`FBXLoader: Undefined filename, creating placeholder texture.`),new f;let s=r.load(o);return r.setPath(i),s}parseMaterials(e){let t=new Map;if(`Material`in V.Objects){let n=V.Objects.Material;for(let r in n){let i=this.parseMaterial(n[r],e);i!==null&&t.set(parseInt(r),i)}}return t}parseMaterial(e,t){let n=e.id,r=e.attrName,i=e.ShadingModel;if(typeof i==`object`&&(i=i.value),!H.has(n))return null;let a=this.parseParameters(e,t,n),o;switch(i.toLowerCase()){case`phong`:o=new M;break;case`lambert`:o=new D;break;default:console.warn(`THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.`,i),o=new M;break}return o.setValues(a),o.name=r,o}parseParameters(e,t,n){let r={};e.BumpFactor&&(r.bumpScale=e.BumpFactor.value),e.Diffuse?r.color=T.colorSpaceToWorking(new k().fromArray(e.Diffuse.value),I):e.DiffuseColor&&(e.DiffuseColor.type===`Color`||e.DiffuseColor.type===`ColorRGB`)&&(r.color=T.colorSpaceToWorking(new k().fromArray(e.DiffuseColor.value),I)),e.DisplacementFactor&&(r.displacementScale=e.DisplacementFactor.value),e.Emissive?r.emissive=T.colorSpaceToWorking(new k().fromArray(e.Emissive.value),I):e.EmissiveColor&&(e.EmissiveColor.type===`Color`||e.EmissiveColor.type===`ColorRGB`)&&(r.emissive=T.colorSpaceToWorking(new k().fromArray(e.EmissiveColor.value),I)),e.EmissiveFactor&&(r.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),r.opacity=1-(e.TransparencyFactor?parseFloat(e.TransparencyFactor.value):0),(r.opacity===1||r.opacity===0)&&(r.opacity=e.Opacity?parseFloat(e.Opacity.value):null,r.opacity===null&&(r.opacity=1)),r.opacity<1&&(r.transparent=!0),e.ReflectionFactor&&(r.reflectivity=e.ReflectionFactor.value),e.Shininess&&(r.shininess=e.Shininess.value),e.Specular?r.specular=T.colorSpaceToWorking(new k().fromArray(e.Specular.value),I):e.SpecularColor&&e.SpecularColor.type===`Color`&&(r.specular=T.colorSpaceToWorking(new k().fromArray(e.SpecularColor.value),I));let i=this;return H.get(n).children.forEach(function(e){let n=e.relationship;switch(n){case`Bump`:r.bumpMap=i.getTexture(t,e.ID);break;case`Maya|TEX_ao_map`:r.aoMap=i.getTexture(t,e.ID);break;case`DiffuseColor`:case`Maya|TEX_color_map`:r.map=i.getTexture(t,e.ID),r.map!==void 0&&(r.map.colorSpace=I);break;case`DisplacementColor`:r.displacementMap=i.getTexture(t,e.ID);break;case`EmissiveColor`:r.emissiveMap=i.getTexture(t,e.ID),r.emissiveMap!==void 0&&(r.emissiveMap.colorSpace=I);break;case`NormalMap`:case`Maya|TEX_normal_map`:r.normalMap=i.getTexture(t,e.ID);break;case`ReflectionColor`:r.envMap=i.getTexture(t,e.ID),r.envMap!==void 0&&(r.envMap.mapping=303,r.envMap.colorSpace=I);break;case`SpecularColor`:r.specularMap=i.getTexture(t,e.ID),r.specularMap!==void 0&&(r.specularMap.colorSpace=I);break;case`TransparentColor`:case`TransparencyFactor`:r.alphaMap=i.getTexture(t,e.ID),r.transparent=!0;break;default:console.warn(`THREE.FBXLoader: %s map is not supported in three.js, skipping texture.`,n);break}}),r}getTexture(e,t){return`LayeredTexture`in V.Objects&&t in V.Objects.LayeredTexture&&(console.warn(`THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.`),t=H.get(t).children[0].ID),e.get(t)}parseDeformers(){let e={},t={};if(`Deformer`in V.Objects){let n=V.Objects.Deformer;for(let r in n){let i=n[r],a=H.get(parseInt(r));if(i.attrType===`Skin`){let t=this.parseSkeleton(a,n);t.ID=r,a.parents.length>1&&console.warn(`THREE.FBXLoader: skeleton attached to more than one geometry is not supported.`),t.geometryID=a.parents[0].ID,e[r]=t}else if(i.attrType===`BlendShape`){let e={id:r};e.rawTargets=this.parseMorphTargets(a,n),e.id=r,a.parents.length>1&&console.warn(`THREE.FBXLoader: morph target attached to more than one geometry is not supported.`),t[r]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(t,n){let r=[];return t.children.forEach(function(t){let i=n[t.ID];if(i.attrType!==`Cluster`)return;let a={ID:t.ID,indices:[],weights:[],transformLink:new e().fromArray(i.TransformLink.a)};`Indexes`in i&&(a.indices=i.Indexes.a,a.weights=i.Weights.a),r.push(a)}),{rawBones:r,bones:[]}}parseMorphTargets(e,t){let n=[];for(let r=0;r<e.children.length;r++){let i=e.children[r],a=t[i.ID],o={name:a.attrName,initialWeight:a.DeformPercent,id:a.id,fullWeights:a.FullWeights.a};if(a.attrType!==`BlendShapeChannel`)return;o.geoID=H.get(parseInt(i.ID)).children.filter(function(e){return e.relationship===void 0})[0].ID,n.push(o)}return n}parseScene(t,n,r){U=new a;let i=this.parseModels(t.skeletons,n,r),o=V.Objects.Model,s=this;i.forEach(function(e){let t=o[e.ID];s.setLookAtProperties(e,t),H.get(e.ID).parents.forEach(function(t){let n=i.get(t.ID);n!==void 0&&n.add(e)}),e.parent===null&&U.add(e)}),this.addGlobalSceneSettings(),U.traverse(function(e){if(e.userData.transformData){e.parent&&(e.userData.transformData.parentMatrix=e.parent.matrix,e.userData.transformData.parentMatrixWorld=e.parent.matrixWorld);let t=X(e.userData.transformData);e.applyMatrix4(t),e.updateWorldMatrix()}});let c=this.parsePoseNodes(),l=new Set;for(let e in t.skeletons)t.skeletons[e].rawBones.forEach(function(n,r){let i=t.skeletons[e].bones[r];i&&l.add(i.ID)});let u=new e;U.traverse(function(e){if(e.isBone&&e.ID!==void 0&&!l.has(e.ID)){let t=c[e.ID];t!==void 0&&(e.parent?(u.copy(e.parent.matrixWorld).invert(),u.multiply(t)):u.copy(t),u.decompose(e.position,e.quaternion,e.scale),e.updateMatrix(),e.matrixWorld.copy(t))}}),this.bindSkeleton(t.skeletons,n,i);let d=new he().parse();U.children.length===1&&U.children[0].isGroup&&(U.children[0].animations=d,U=U.children[0]),U.animations=d,`GlobalSettings`in V&&`UpAxis`in V.GlobalSettings&&V.GlobalSettings.UpAxis.value===2&&(console.warn(`THREE.FBXLoader: You are loading an asset with a Z-UP coordinate system. The loader just rotates the asset to transform it into Y-UP. The vertex data are not converted.`),U.rotation.set(-Math.PI/2,0,0))}parseModels(e,t,n){let r=new Map,i=V.Objects.Model;for(let o in i){let s=parseInt(o),c=i[o],l=H.get(s),u=this.buildSkeleton(l,e,s,c.attrName);if(!u){switch(c.attrType){case`Camera`:u=this.createCamera(l);break;case`Light`:u=this.createLight(l);break;case`Mesh`:u=this.createMesh(l,t,n);break;case`NurbsCurve`:u=this.createCurve(l,t);break;case`LimbNode`:case`Root`:u=new O;break;default:u=new a;break}u.name=c.attrName?P.sanitizeNodeName(c.attrName):``,u.userData.originalName=c.attrName,u.ID=s}this.getTransformData(u,c),r.set(s,u)}return r}buildSkeleton(e,t,n,r){let i=null;return e.parents.forEach(function(e){for(let a in t){let o=t[a];o.rawBones.forEach(function(t,a){if(t.ID===e.ID){let e=i;i=new O,i.matrixWorld.copy(t.transformLink),i.name=r?P.sanitizeNodeName(r):``,i.userData.originalName=r,i.ID=n,o.bones[a]=i,e!==null&&i.add(e)}})}}),i}createCamera(e){let t,n;if(e.children.forEach(function(e){let t=V.Objects.NodeAttribute[e.ID];t!==void 0&&(n=t)}),n===void 0)t=new x;else{let e=0;n.CameraProjectionType!==void 0&&n.CameraProjectionType.value===1&&(e=1);let r=1;n.NearPlane!==void 0&&(r=n.NearPlane.value/1e3);let i=1e3;n.FarPlane!==void 0&&(i=n.FarPlane.value/1e3);let a=window.innerWidth,o=window.innerHeight;n.AspectWidth!==void 0&&n.AspectHeight!==void 0&&(a=n.AspectWidth.value,o=n.AspectHeight.value);let s=a/o,c=45;n.FieldOfView!==void 0&&(c=n.FieldOfView.value);let l=n.FocalLength?n.FocalLength.value:null;switch(e){case 0:t=new A(c,s,r,i),l!==null&&t.setFocalLength(l);break;case 1:console.warn(`THREE.FBXLoader: Orthographic cameras not supported yet.`),t=new x;break;default:console.warn(`THREE.FBXLoader: Unknown camera type `+e+`.`),t=new x;break}}return t}createLight(e){let t,n;if(e.children.forEach(function(e){let t=V.Objects.NodeAttribute[e.ID];t!==void 0&&(n=t)}),n===void 0)t=new x;else{let e;e=n.LightType===void 0?0:n.LightType.value;let r=16777215;n.Color!==void 0&&(r=T.colorSpaceToWorking(new k().fromArray(n.Color.value),I));let i=n.Intensity===void 0?1:n.Intensity.value/100;n.CastLightOnObject!==void 0&&n.CastLightOnObject.value===0&&(i=0);let a=0;switch(n.FarAttenuationEnd!==void 0&&(a=n.EnableFarAttenuation!==void 0&&n.EnableFarAttenuation.value===0?0:n.FarAttenuationEnd.value),e){case 0:t=new w(r,i,a,1);break;case 1:t=new ne(r,i);break;case 2:let e=Math.PI/3,o=0;n.OuterAngle===void 0?n.InnerAngle!==void 0&&(e=v.degToRad(n.InnerAngle.value)):(e=v.degToRad(n.OuterAngle.value),n.InnerAngle!==void 0&&(o=1-n.InnerAngle.value/n.OuterAngle.value,o=Math.max(0,o))),t=new u(r,i,a,e,o,1);break;default:console.warn(`THREE.FBXLoader: Unknown light type `+n.LightType.value+`, defaulting to a PointLight.`),t=new w(r,i);break}n.CastShadows!==void 0&&n.CastShadows.value===1&&(t.castShadow=!0)}return t}createMesh(e,t,n){let r,i=null,a=null,o=[];if(e.children.forEach(function(e){t.has(e.ID)&&(i=t.get(e.ID)),n.has(e.ID)&&o.push(n.get(e.ID))}),o.length>1?a=o:o.length>0?a=o[0]:(a=new M({name:l.DEFAULT_MATERIAL_NAME,color:13421772}),o.push(a)),`color`in i.attributes&&o.forEach(function(e){e.vertexColors=!0}),i.groups.length>0){let e=!1;for(let t=0,n=i.groups.length;t<n;t++){let n=i.groups[t];(n.materialIndex<0||n.materialIndex>=o.length)&&(n.materialIndex=o.length,e=!0)}if(e){let e=new M;o.push(e)}}return i.FBX_Deformer?(r=new d(i,a),r.normalizeSkinWeights()):r=new S(i,a),r}createCurve(e,t){return new m(e.children.reduce(function(e,n){return t.has(n.ID)&&(e=t.get(n.ID)),e},null),new re({name:l.DEFAULT_MATERIAL_NAME,color:3342591,linewidth:1}))}getTransformData(e,t){let n={};`InheritType`in t&&(n.inheritType=parseInt(t.InheritType.value)),`RotationOrder`in t?n.eulerOrder=Z(t.RotationOrder.value):n.eulerOrder=Z(0),`Lcl_Translation`in t&&(n.translation=t.Lcl_Translation.value),`PreRotation`in t&&(n.preRotation=t.PreRotation.value),`Lcl_Rotation`in t&&(n.rotation=t.Lcl_Rotation.value),`PostRotation`in t&&(n.postRotation=t.PostRotation.value),`Lcl_Scaling`in t&&(n.scale=t.Lcl_Scaling.value),`ScalingOffset`in t&&(n.scalingOffset=t.ScalingOffset.value),`ScalingPivot`in t&&(n.scalingPivot=t.ScalingPivot.value),`RotationOffset`in t&&(n.rotationOffset=t.RotationOffset.value),`RotationPivot`in t&&(n.rotationPivot=t.RotationPivot.value),e.userData.transformData=n}setLookAtProperties(e,n){`LookAtProperty`in n&&H.get(e.ID).children.forEach(function(n){if(n.relationship===`LookAtProperty`){let r=V.Objects.Model[n.ID];if(`Lcl_Translation`in r){let n=r.Lcl_Translation.value;e.target===void 0?e.lookAt(new t().fromArray(n)):(e.target.position.fromArray(n),U.add(e.target))}}})}bindSkeleton(t,n,r){for(let a in t){let o=t[a],s=[];for(let t=0,n=o.bones.length;t<n;t++){let n=new e;o.bones[t]&&o.rawBones[t]&&n.copy(o.rawBones[t].transformLink).invert(),s.push(n)}H.get(parseInt(o.ID)).parents.forEach(function(e){if(n.has(e.ID)){let t=e.ID;H.get(t).parents.forEach(function(e){if(r.has(e.ID)){let t=r.get(e.ID);t.updateMatrixWorld(!0),t.bind(new i(o.bones,s),t.matrixWorld)}})}})}}parsePoseNodes(){let t={};if(`Pose`in V.Objects){let n=V.Objects.Pose;for(let r in n)if(n[r].attrType===`BindPose`&&n[r].NbPoseNodes>0){let i=n[r].PoseNode;Array.isArray(i)?i.forEach(function(n){t[n.Node]=new e().fromArray(n.Matrix.a)}):t[i.Node]=new e().fromArray(i.Matrix.a)}}return t}addGlobalSceneSettings(){if(`GlobalSettings`in V){if(`AmbientColor`in V.GlobalSettings){let e=V.GlobalSettings.AmbientColor.value,t=e[0],n=e[1],r=e[2];if(t!==0||n!==0||r!==0){let e=new k().setRGB(t,n,r,I);U.add(new E(e,1))}}`UnitScaleFactor`in V.GlobalSettings&&(U.userData.unitScaleFactor=V.GlobalSettings.UnitScaleFactor.value)}}},me=class{constructor(){this.negativeMaterialIndices=!1}parse(e){let t=new Map;if(`Geometry`in V.Objects){let n=V.Objects.Geometry;for(let r in n){let i=H.get(parseInt(r)),a=this.parseGeometry(i,n[r],e);t.set(parseInt(r),a)}}return this.negativeMaterialIndices===!0&&console.warn(`THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected.`),t}parseGeometry(e,t,n){switch(t.attrType){case`Mesh`:return this.parseMeshGeometry(e,t,n);case`NurbsCurve`:return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,n){let r=n.skeletons,i=[],a=e.parents.map(function(e){return V.Objects.Model[e.ID]});if(a.length===0)return;let o=e.children.reduce(function(e,t){return r[t.ID]!==void 0&&(e=r[t.ID]),e},null);e.children.forEach(function(e){n.morphTargets[e.ID]!==void 0&&i.push(n.morphTargets[e.ID])});let s=a[0],c={};`RotationOrder`in s&&(c.eulerOrder=Z(s.RotationOrder.value)),`InheritType`in s&&(c.inheritType=parseInt(s.InheritType.value)),`GeometricTranslation`in s&&(c.translation=s.GeometricTranslation.value),`GeometricRotation`in s&&(c.rotation=s.GeometricRotation.value),`GeometricScaling`in s&&(c.scale=s.GeometricScaling.value);let l=X(c);return this.genGeometry(t,o,i,l)}genGeometry(e,t,n,r){let i=new N;e.attrName&&(i.name=e.attrName);let a=this.parseGeoNode(e,t),o=this.genBuffers(a),s=new F(o.vertex,3);if(s.applyMatrix4(r),i.setAttribute(`position`,s),o.colors.length>0&&i.setAttribute(`color`,new F(o.colors,3)),t&&(i.setAttribute(`skinIndex`,new h(o.weightsIndices,4)),i.setAttribute(`skinWeight`,new F(o.vertexWeights,4)),i.FBX_Deformer=t),o.normal.length>0){let e=new p().getNormalMatrix(r),t=new F(o.normal,3);t.applyNormalMatrix(e),i.setAttribute(`normal`,t)}if(o.uvs.forEach(function(e,t){let n=t===0?`uv`:`uv${t}`;i.setAttribute(n,new F(o.uvs[t],2))}),a.material&&a.material.mappingType!==`AllSame`){let e=o.materialIndex[0],t=0;if(o.materialIndex.forEach(function(n,r){n!==e&&(i.addGroup(t,r-t,e),e=n,t=r)}),i.groups.length>0){let t=i.groups[i.groups.length-1],n=t.start+t.count;n!==o.materialIndex.length&&i.addGroup(n,o.materialIndex.length-n,e)}i.groups.length===0&&i.addGroup(0,o.materialIndex.length,o.materialIndex[0])}return this.addMorphTargets(i,e,n,r),i}parseGeoNode(e,t){let n={};if(n.vertexPositions=e.Vertices===void 0?[]:e.Vertices.a,n.vertexIndices=e.PolygonVertexIndex===void 0?[]:e.PolygonVertexIndex.a,e.LayerElementColor&&e.LayerElementColor[0].Colors&&(n.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(n.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(n.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){n.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&n.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return n.weightTable={},t!==null&&(n.skeleton=t,t.rawBones.forEach(function(e,t){e.indices.forEach(function(r,i){n.weightTable[r]===void 0&&(n.weightTable[r]=[]),n.weightTable[r].push({id:t,weight:e.weights[i]})})})),n}genBuffers(e){let t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},n=0,r=0,i=!1,a=[],o=[],s=[],c=[],l=[],u=[],d=this;return e.vertexIndices.forEach(function(f,p){let m,h=!1;f<0&&(f^=-1,h=!0);let g=[],_=[];if(a.push(f*3,f*3+1,f*3+2),e.color){let t=q(p,n,f,e.color);s.push(t[0],t[1],t[2])}if(e.skeleton){if(e.weightTable[f]!==void 0&&e.weightTable[f].forEach(function(e){_.push(e.weight),g.push(e.id)}),_.length>4){i||=(console.warn(`THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.`),!0);let e=[0,0,0,0],t=[0,0,0,0];_.forEach(function(n,r){let i=n,a=g[r];t.forEach(function(t,n,r){if(i>t){r[n]=i,i=t;let o=e[n];e[n]=a,a=o}})}),g=e,_=t}for(;_.length<4;)_.push(0),g.push(0);for(let e=0;e<4;++e)l.push(_[e]),u.push(g[e])}if(e.normal){let t=q(p,n,f,e.normal);o.push(t[0],t[1],t[2])}e.material&&e.material.mappingType!==`AllSame`&&(m=q(p,n,f,e.material)[0],m<0&&(d.negativeMaterialIndices=!0,m=0)),e.uv&&e.uv.forEach(function(e,t){let r=q(p,n,f,e);c[t]===void 0&&(c[t]=[]),c[t].push(r[0]),c[t].push(r[1])}),r++,h&&(d.genFace(t,e,a,m,o,s,c,l,u,r),n++,r=0,a=[],o=[],s=[],c=[],l=[],u=[])}),t}getNormalNewell(e){let n=new t(0,0,0);for(let t=0;t<e.length;t++){let r=e[t],i=e[(t+1)%e.length];n.x+=(r.y-i.y)*(r.z+i.z),n.y+=(r.z-i.z)*(r.x+i.x),n.z+=(r.x-i.x)*(r.y+i.y)}return n.normalize(),n}getNormalTangentAndBitangent(e){let n=this.getNormalNewell(e),r=(Math.abs(n.z)>.5?new t(0,1,0):new t(0,0,1)).cross(n).normalize();return{normal:n,tangent:r,bitangent:n.clone().cross(r).normalize()}}flattenVertex(e,t,n){return new ie(e.dot(t),e.dot(n))}genFace(e,n,r,i,a,s,c,l,u,d){let f;if(d>3){let e=[],i=n.baseVertexPositions||n.vertexPositions;for(let n=0;n<r.length;n+=3)e.push(new t(i[r[n]],i[r[n+1]],i[r[n+2]]));let{tangent:a,bitangent:s}=this.getNormalTangentAndBitangent(e),c=[];for(let t of e)c.push(this.flattenVertex(t,a,s));f=o.triangulateShape(c,[])}else f=[[0,1,2]];for(let[t,o,d]of f)e.vertex.push(n.vertexPositions[r[t*3]]),e.vertex.push(n.vertexPositions[r[t*3+1]]),e.vertex.push(n.vertexPositions[r[t*3+2]]),e.vertex.push(n.vertexPositions[r[o*3]]),e.vertex.push(n.vertexPositions[r[o*3+1]]),e.vertex.push(n.vertexPositions[r[o*3+2]]),e.vertex.push(n.vertexPositions[r[d*3]]),e.vertex.push(n.vertexPositions[r[d*3+1]]),e.vertex.push(n.vertexPositions[r[d*3+2]]),n.skeleton&&(e.vertexWeights.push(l[t*4]),e.vertexWeights.push(l[t*4+1]),e.vertexWeights.push(l[t*4+2]),e.vertexWeights.push(l[t*4+3]),e.vertexWeights.push(l[o*4]),e.vertexWeights.push(l[o*4+1]),e.vertexWeights.push(l[o*4+2]),e.vertexWeights.push(l[o*4+3]),e.vertexWeights.push(l[d*4]),e.vertexWeights.push(l[d*4+1]),e.vertexWeights.push(l[d*4+2]),e.vertexWeights.push(l[d*4+3]),e.weightsIndices.push(u[t*4]),e.weightsIndices.push(u[t*4+1]),e.weightsIndices.push(u[t*4+2]),e.weightsIndices.push(u[t*4+3]),e.weightsIndices.push(u[o*4]),e.weightsIndices.push(u[o*4+1]),e.weightsIndices.push(u[o*4+2]),e.weightsIndices.push(u[o*4+3]),e.weightsIndices.push(u[d*4]),e.weightsIndices.push(u[d*4+1]),e.weightsIndices.push(u[d*4+2]),e.weightsIndices.push(u[d*4+3])),n.color&&(e.colors.push(s[t*3]),e.colors.push(s[t*3+1]),e.colors.push(s[t*3+2]),e.colors.push(s[o*3]),e.colors.push(s[o*3+1]),e.colors.push(s[o*3+2]),e.colors.push(s[d*3]),e.colors.push(s[d*3+1]),e.colors.push(s[d*3+2])),n.material&&n.material.mappingType!==`AllSame`&&(e.materialIndex.push(i),e.materialIndex.push(i),e.materialIndex.push(i)),n.normal&&(e.normal.push(a[t*3]),e.normal.push(a[t*3+1]),e.normal.push(a[t*3+2]),e.normal.push(a[o*3]),e.normal.push(a[o*3+1]),e.normal.push(a[o*3+2]),e.normal.push(a[d*3]),e.normal.push(a[d*3+1]),e.normal.push(a[d*3+2])),n.uv&&n.uv.forEach(function(n,r){e.uvs[r]===void 0&&(e.uvs[r]=[]),e.uvs[r].push(c[r][t*2]),e.uvs[r].push(c[r][t*2+1]),e.uvs[r].push(c[r][o*2]),e.uvs[r].push(c[r][o*2+1]),e.uvs[r].push(c[r][d*2]),e.uvs[r].push(c[r][d*2+1])})}addMorphTargets(e,t,n,r){if(n.length===0)return;e.morphTargetsRelative=!0,e.morphAttributes.position=[];let i=r.clone().setPosition(0,0,0),a=this;n.forEach(function(n){n.rawTargets.forEach(function(n){let r=V.Objects.Geometry[n.geoID];r!==void 0&&a.genMorphGeometry(e,t,r,i,n.name)})})}genMorphGeometry(e,t,n,r,i){let a=t.Vertices===void 0?[]:t.Vertices.a,o=t.PolygonVertexIndex===void 0?[]:t.PolygonVertexIndex.a,s=n.Vertices===void 0?[]:n.Vertices.a,c=n.Indexes===void 0?[]:n.Indexes.a,l=e.attributes.position.count*3,u=new Float32Array(l);for(let e=0;e<c.length;e++){let t=c[e]*3;u[t]=s[e*3],u[t+1]=s[e*3+1],u[t+2]=s[e*3+2]}let d={vertexIndices:o,vertexPositions:u,baseVertexPositions:a},f=new F(this.genBuffers(d).vertex,3);f.name=i||n.attrName,f.applyMatrix4(r),e.morphAttributes.position.push(f)}parseNormals(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.Normals.a,i=[];return n===`IndexToDirect`&&(`NormalIndex`in e?i=e.NormalIndex.a:`NormalsIndex`in e&&(i=e.NormalsIndex.a)),{dataSize:3,buffer:r,indices:i,mappingType:t,referenceType:n}}parseUVs(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.UV.a,i=[];return n===`IndexToDirect`&&(i=e.UVIndex.a),{dataSize:2,buffer:r,indices:i,mappingType:t,referenceType:n}}parseVertexColors(e){let t=e.MappingInformationType,n=e.ReferenceInformationType,r=e.Colors.a,i=[];n===`IndexToDirect`&&(i=e.ColorIndex.a);for(let e=0,t=new k;e<r.length;e+=4)t.fromArray(r,e),T.colorSpaceToWorking(t,I),t.toArray(r,e);return{dataSize:4,buffer:r,indices:i,mappingType:t,referenceType:n}}parseMaterialIndices(e){let t=e.MappingInformationType,n=e.ReferenceInformationType;if(t===`NoMappingInformation`)return{dataSize:1,buffer:[0],indices:[0],mappingType:`AllSame`,referenceType:n};let r=e.Materials.a,i=[];for(let e=0;e<r.length;++e)i.push(e);return{dataSize:1,buffer:r,indices:i,mappingType:t,referenceType:n}}parseNurbsGeometry(e){let t=parseInt(e.Order);if(isNaN(t))return console.error(`THREE.FBXLoader: Invalid Order %s given for geometry ID: %s`,e.Order,e.id),new N;let n=t-1,r=e.KnotVector.a,i=[],a=e.Points.a;for(let e=0,t=a.length;e<t;e+=4)i.push(new _().fromArray(a,e));let o,s;if(e.Form===`Closed`)i.push(i[0]);else if(e.Form===`Periodic`){o=n,s=r.length-1-o;for(let e=0;e<n;++e)i.push(i[e])}let c=new B(n,r,i,o,s).getPoints(i.length*12);return new N().setFromPoints(c)}},he=class{parse(){let e=[],t=this.parseClips();if(t!==void 0)for(let n in t){let r=t[n],i=this.addClip(r);e.push(i)}return e}parseClips(){if(V.Objects.AnimationCurve===void 0)return;let e=this.parseAnimationCurveNodes();this.parseAnimationCurves(e);let t=this.parseAnimationLayers(e);return this.parseAnimStacks(t)}parseAnimationCurveNodes(){let e=V.Objects.AnimationCurveNode,t=new Map;for(let n in e){let r=e[n];if(r.attrName.match(/S|R|T|DeformPercent/)!==null){let e={id:r.id,attr:r.attrName,curves:{}};t.set(e.id,e)}}return t}parseAnimationCurves(e){let t=V.Objects.AnimationCurve;for(let n in t){let r={id:t[n].id,times:t[n].KeyTime.a.map(be),values:t[n].KeyValueFloat.a},i=H.get(r.id);if(i!==void 0){let t=i.parents[0].ID,n=i.parents[0].relationship;n.match(/X/)?e.get(t).curves.x=r:n.match(/Y/)?e.get(t).curves.y=r:n.match(/Z/)?e.get(t).curves.z=r:n.match(/DeformPercent/)&&e.has(t)&&(e.get(t).curves.morph=r)}}}parseAnimationLayers(t){let n=V.Objects.AnimationLayer,r=new Map;for(let i in n){let n=[],a=H.get(parseInt(i));a!==void 0&&(a.children.forEach(function(r,i){if(t.has(r.ID)){let a=t.get(r.ID);if(a.curves.x!==void 0||a.curves.y!==void 0||a.curves.z!==void 0){if(n[i]===void 0){let t=H.get(r.ID).parents.filter(function(e){return e.relationship!==void 0});if(t.length===0)return;let a=t[0].ID;if(a!==void 0){let t=V.Objects.Model[a.toString()];if(t===void 0){console.warn(`THREE.FBXLoader: Encountered a unused curve.`,r);return}let o={modelName:t.attrName?P.sanitizeNodeName(t.attrName):``,ID:t.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1]};U.traverse(function(e){e.ID===t.id&&(o.transform=e.matrix,e.userData.transformData&&(o.eulerOrder=e.userData.transformData.eulerOrder,e.userData.transformData.rotation&&(o.initialRotation=e.userData.transformData.rotation)))}),o.transform||=new e,`PreRotation`in t&&(o.preRotation=t.PreRotation.value),`PostRotation`in t&&(o.postRotation=t.PostRotation.value),n[i]=o}}n[i]&&(n[i][a.attr]=a)}else if(a.curves.morph!==void 0){if(n[i]===void 0){let e=H.get(r.ID).parents.filter(function(e){return e.relationship!==void 0});if(e.length===0)return;let t=e[0].ID,a=H.get(t).parents[0].ID,o=H.get(a).parents[0].ID,s=H.get(o).parents[0].ID,c=V.Objects.Model[s];n[i]={modelName:c.attrName?P.sanitizeNodeName(c.attrName):``,morphName:V.Objects.Deformer[t].attrName}}n[i][a.attr]=a}}}),r.set(parseInt(i),n))}return r}parseAnimStacks(e){let t=V.Objects.AnimationStack,n={};for(let r in t){let i=H.get(parseInt(r)).children;i.length>1&&console.warn(`THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.`);let a=e.get(i[0].ID);n[r]={name:t[r].attrName,layer:a}}return n}addClip(e){let t=[],n=this;return e.layer.forEach(function(e){t=t.concat(n.generateTracks(e))}),new j(e.name,-1,t)}generateTracks(e){let n=[],r=new t,i=new t;if(e.transform&&e.transform.decompose(r,new L,i),r=r.toArray(),i=i.toArray(),e.T!==void 0&&Object.keys(e.T.curves).length>0){let t=this.generateVectorTrack(e.modelName,e.T.curves,r,`position`);t!==void 0&&n.push(t)}if(e.R!==void 0&&Object.keys(e.R.curves).length>0){let t=this.generateRotationTrack(e.modelName,e.R.curves,e.preRotation,e.postRotation,e.eulerOrder,e.initialRotation);t!==void 0&&n.push(t)}if(e.S!==void 0&&Object.keys(e.S.curves).length>0){let t=this.generateVectorTrack(e.modelName,e.S.curves,i,`scale`);t!==void 0&&n.push(t)}if(e.DeformPercent!==void 0){let t=this.generateMorphTrack(e);t!==void 0&&n.push(t)}return n}generateVectorTrack(e,t,n,r){let i=this.getTimesForAllAxes(t),a=this.getKeyframeTrackValues(i,t,n);return new c(e+`.`+r,i,a)}generateRotationTrack(e,t,n,r,i,a){let o,s;if(t.x!==void 0||t.y!==void 0||t.z!==void 0){let e=this.getTimesForAllAxes(t);if(e.length>0){let n=a||[0,0,0],r=this.synchronizeCurve(t.x,e,n[0]),c=this.synchronizeCurve(t.y,e,n[1]),l=this.synchronizeCurve(t.z,e,n[2]),u=this.interpolateRotations(r,c,l,i);o=u[0],s=u[1]}}let c=Z(0);n!==void 0&&(n=n.map(v.degToRad),n.push(c),n=new g().fromArray(n),n=new L().setFromEuler(n)),r!==void 0&&(r=r.map(v.degToRad),r.push(c),r=new g().fromArray(r),r=new L().setFromEuler(r).invert());let l=new L,u=new g,d=[];if(!(!s||!o)){for(let e=0;e<s.length;e+=3)u.set(s[e],s[e+1],s[e+2],i),l.setFromEuler(u),n!==void 0&&l.premultiply(n),r!==void 0&&l.multiply(r),e>2&&new L().fromArray(d,(e-3)/3*4).dot(l)<0&&l.set(-l.x,-l.y,-l.z,-l.w),l.toArray(d,e/3*4);return new b(e+`.quaternion`,o,d)}}generateMorphTrack(e){let t=e.DeformPercent.curves.morph,n=t.values.map(function(e){return e/100}),r=U.getObjectByName(e.modelName).morphTargetDictionary[e.morphName];return new te(e.modelName+`.morphTargetInfluences[`+r+`]`,t.times,n)}getTimesForAllAxes(e){let t=[];if(e.x!==void 0&&(t=t.concat(e.x.times)),e.y!==void 0&&(t=t.concat(e.y.times)),e.z!==void 0&&(t=t.concat(e.z.times)),t=t.sort(function(e,t){return e-t}),t.length>1){let e=1,n=t[0];for(let r=1;r<t.length;r++){let i=t[r];i!==n&&(t[e]=i,n=i,e++)}t=t.slice(0,e)}return t}getKeyframeTrackValues(e,t,n){let r=n,i=[],a=-1,o=-1,s=-1;return e.forEach(function(e){if(t.x&&(a=t.x.times.indexOf(e)),t.y&&(o=t.y.times.indexOf(e)),t.z&&(s=t.z.times.indexOf(e)),a!==-1){let e=t.x.values[a];i.push(e),r[0]=e}else i.push(r[0]);if(o!==-1){let e=t.y.values[o];i.push(e),r[1]=e}else i.push(r[1]);if(s!==-1){let e=t.z.values[s];i.push(e),r[2]=e}else i.push(r[2])}),i}synchronizeCurve(e,t,n){if(e===void 0)return{times:t,values:t.map(()=>n)};if(e.times.length===t.length)return e;let r=[];for(let i=0;i<t.length;i++)r.push(this.sampleCurveValue(e,t[i],n));return{times:t,values:r}}sampleCurveValue(e,t,n){let r=e.times,i=e.values;if(t<=r[0])return i[0];if(t>=r[r.length-1])return i[i.length-1];for(let e=0;e<r.length-1;e++)if(t>=r[e]&&t<=r[e+1]){if(r[e]===t)return i[e];let n=(t-r[e])/(r[e+1]-r[e]);return i[e]*(1-n)+i[e+1]*n}return n}interpolateRotations(e,t,n,r){let i=[],a=[];i.push(e.times[0]),a.push(v.degToRad(e.values[0])),a.push(v.degToRad(t.values[0])),a.push(v.degToRad(n.values[0]));for(let o=1;o<e.values.length;o++){let s=[e.values[o-1],t.values[o-1],n.values[o-1]];if(isNaN(s[0])||isNaN(s[1])||isNaN(s[2]))continue;let c=s.map(v.degToRad),l=[e.values[o],t.values[o],n.values[o]];if(isNaN(l[0])||isNaN(l[1])||isNaN(l[2]))continue;let u=l.map(v.degToRad),d=[l[0]-s[0],l[1]-s[1],l[2]-s[2]],f=[Math.abs(d[0]),Math.abs(d[1]),Math.abs(d[2])];if(f[0]>=180||f[1]>=180||f[2]>=180){let t=Math.max(...f)/180,n=new g(...c,r),s=new g(...u,r),l=new L().setFromEuler(n),d=new L().setFromEuler(s);l.dot(d)<0&&d.set(-d.x,-d.y,-d.z,-d.w);let p=e.times[o-1],m=e.times[o]-p,h=new L,_=new g;for(let e=0;e<1;e+=1/t)h.copy(l.clone().slerp(d.clone(),e)),i.push(p+e*m),_.setFromQuaternion(h,r),a.push(_.x),a.push(_.y),a.push(_.z)}else i.push(e.times[o]),a.push(v.degToRad(e.values[o])),a.push(v.degToRad(t.values[o])),a.push(v.degToRad(n.values[o]))}return[i,a]}},ge=class{getPrevNode(){return this.nodeStack[this.currentIndent-2]}getCurrentNode(){return this.nodeStack[this.currentIndent-1]}getCurrentProp(){return this.currentProp}pushStack(e){this.nodeStack.push(e),this.currentIndent+=1}popStack(){this.nodeStack.pop(),--this.currentIndent}setCurrentProp(e,t){this.currentProp=e,this.currentPropName=t}parse(e){this.currentIndent=0,this.allNodes=new G,this.nodeStack=[],this.currentProp=[],this.currentPropName=``;let t=this,n=e.split(/[\r\n]+/);return n.forEach(function(e,r){let i=e.match(/^[\s\t]*;/),a=e.match(/^[\s\t]*$/);if(i||a)return;let o=e.match(`^\\t{`+t.currentIndent+`}(\\w+):(.*){`,``),s=e.match(`^\\t{`+t.currentIndent+`}(\\w+):[\\s\\t\\r\\n](.*)`),c=e.match(`^\\t{`+(t.currentIndent-1)+`}}`);o?t.parseNodeBegin(e,o):s?t.parseNodeProperty(e,s,n[++r]):c?t.popStack():e.match(/^[^\s\t}]/)&&t.parseNodePropertyContinued(e)}),this.allNodes}parseNodeBegin(e,t){let n=t[1].trim().replace(/^"/,``).replace(/"$/,``),r=t[2].split(`,`).map(function(e){return e.trim().replace(/^"/,``).replace(/"$/,``)}),i={name:n},a=this.parseNodeAttr(r),o=this.getCurrentNode();this.currentIndent===0?this.allNodes.add(n,i):n in o?(n===`PoseNode`?o.PoseNode.push(i):o[n].id!==void 0&&(o[n]={},o[n][o[n].id]=o[n]),a.id!==``&&(o[n][a.id]=i)):typeof a.id==`number`?(o[n]={},o[n][a.id]=i):n!==`Properties70`&&(n===`PoseNode`?o[n]=[i]:o[n]=i),typeof a.id==`number`&&(i.id=a.id),a.name!==``&&(i.attrName=a.name),a.type!==``&&(i.attrType=a.type),this.pushStack(i)}parseNodeAttr(e){let t=e[0];e[0]!==``&&(t=parseInt(e[0]),isNaN(t)&&(t=e[0]));let n=``,r=``;return e.length>1&&(n=e[1].replace(/^(\w+)::/,``),r=e[2]),{id:t,name:n,type:r}}parseNodeProperty(e,t,n){let r=t[1].replace(/^"/,``).replace(/"$/,``).trim(),i=t[2].replace(/^"/,``).replace(/"$/,``).trim();r===`Content`&&i===`,`&&(i=n.replace(/"/g,``).replace(/,$/,``).trim());let a=this.getCurrentNode();if(a.name===`Properties70`){this.parseNodeSpecialProperty(e,r,i);return}if(r===`C`){let e=i.split(`,`).slice(1),t=parseInt(e[0]),n=parseInt(e[1]),o=i.split(`,`).slice(3);o=o.map(function(e){return e.trim().replace(/^"/,``)}),r=`connections`,i=[t,n],Se(i,o),a[r]===void 0&&(a[r]=[])}r===`Node`&&(a.id=i),r in a&&Array.isArray(a[r])?a[r].push(i):r===`a`?a.a=i:a[r]=i,this.setCurrentProp(a,r),r===`a`&&i.slice(-1)!==`,`&&(a.a=Q(i))}parseNodePropertyContinued(e){let t=this.getCurrentNode();t.a+=e,e.slice(-1)!==`,`&&(t.a=Q(t.a))}parseNodeSpecialProperty(e,t,n){let r=n.split(`",`).map(function(e){return e.trim().replace(/^\"/,``).replace(/\s/,`_`)}),i=r[0],a=r[1],o=r[2],s=r[3],c=r[4];switch(a){case`int`:case`enum`:case`bool`:case`ULongLong`:case`double`:case`Number`:case`FieldOfView`:c=parseFloat(c);break;case`Color`:case`ColorRGB`:case`Vector3D`:case`Lcl_Translation`:case`Lcl_Rotation`:case`Lcl_Scaling`:c=Q(c);break}this.getPrevNode()[i]={type:a,type2:o,flag:s,value:c},this.setCurrentProp(this.getPrevNode(),i)}},_e=class{parse(e){let t=new W(e);t.skip(23);let n=t.getUint32();if(n<6400)throw Error(`THREE.FBXLoader: FBX version not supported, FileVersion: `+n);let r=new G;for(;!this.endOfContent(t);){let e=this.parseNode(t,n);e!==null&&r.add(e.name,e)}return r}endOfContent(e){return e.size()%16==0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){let n={},r=t>=7500?e.getUint64():e.getUint32(),i=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();let a=e.getUint8(),o=e.getString(a);if(r===0)return null;let s=[];for(let t=0;t<i;t++)s.push(this.parseProperty(e));let c=s.length>0?s[0]:``,l=s.length>1?s[1]:``,u=s.length>2?s[2]:``;for(n.singleProperty=i===1&&e.getOffset()===r;r>e.getOffset();){let r=this.parseNode(e,t);r!==null&&this.parseSubNode(o,n,r)}return n.propertyList=s,typeof c==`number`&&(n.id=c),l!==``&&(n.attrName=l),u!==``&&(n.attrType=u),o!==``&&(n.name=o),n}parseSubNode(e,t,n){if(n.singleProperty===!0){let e=n.propertyList[0];Array.isArray(e)?(t[n.name]=n,n.a=e):t[n.name]=e}else if(e===`Connections`&&n.name===`C`){let e=[];n.propertyList.forEach(function(t,n){n!==0&&e.push(t)}),t.connections===void 0&&(t.connections=[]),t.connections.push(e)}else if(n.name===`Properties70`)Object.keys(n).forEach(function(e){t[e]=n[e]});else if(e===`Properties70`&&n.name===`P`){let e=n.propertyList[0],r=n.propertyList[1],i=n.propertyList[2],a=n.propertyList[3],o;e.indexOf(`Lcl `)===0&&(e=e.replace(`Lcl `,`Lcl_`)),r.indexOf(`Lcl `)===0&&(r=r.replace(`Lcl `,`Lcl_`)),o=r===`Color`||r===`ColorRGB`||r===`Vector`||r===`Vector3D`||r.indexOf(`Lcl_`)===0?[n.propertyList[4],n.propertyList[5],n.propertyList[6]]:n.propertyList[4],t[e]={type:r,type2:i,flag:a,value:o}}else t[n.name]===void 0?typeof n.id==`number`?(t[n.name]={},t[n.name][n.id]=n):t[n.name]=n:n.name===`PoseNode`?(Array.isArray(t[n.name])||(t[n.name]=[t[n.name]]),t[n.name].push(n)):t[n.name][n.id]===void 0&&(t[n.name][n.id]=n)}parseProperty(e){let t=e.getString(1),n;switch(t){case`C`:return e.getBoolean();case`D`:return e.getFloat64();case`F`:return e.getFloat32();case`I`:return e.getInt32();case`L`:return e.getInt64();case`R`:return n=e.getUint32(),e.getArrayBuffer(n);case`S`:return n=e.getUint32(),e.getString(n);case`Y`:return e.getInt16();case`b`:case`c`:case`d`:case`f`:case`i`:case`l`:let r=e.getUint32(),i=e.getUint32(),a=e.getUint32();if(i===0)switch(t){case`b`:case`c`:return e.getBooleanArray(r);case`d`:return e.getFloat64Array(r);case`f`:return e.getFloat32Array(r);case`i`:return e.getInt32Array(r);case`l`:return e.getInt64Array(r)}let o=new W(ae(new Uint8Array(e.getArrayBuffer(a))).buffer);switch(t){case`b`:case`c`:return o.getBooleanArray(r);case`d`:return o.getFloat64Array(r);case`f`:return o.getFloat32Array(r);case`i`:return o.getInt32Array(r);case`l`:return o.getInt64Array(r)}break;default:throw Error(`THREE.FBXLoader: Unknown property type `+t)}}},W=class{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=t===void 0?!0:t,this._textDecoder=new TextDecoder}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return(this.getUint8()&1)==1}getBooleanArray(e){let t=[];for(let n=0;n<e;n++)t.push(this.getBoolean());return t}getUint8(){let e=this.dv.getUint8(this.offset);return this.offset+=1,e}getInt16(){let e=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,e}getInt32(){let e=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}getInt32Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getInt32());return t}getUint32(){let e=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,e}getInt64(){let e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),t&2147483648?(t=~t&4294967295,e=~e&4294967295,e===4294967295&&(t=t+1&4294967295),e=e+1&4294967295,-(t*4294967296+e)):t*4294967296+e}getInt64Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getInt64());return t}getUint64(){let e,t;return this.littleEndian?(e=this.getUint32(),t=this.getUint32()):(t=this.getUint32(),e=this.getUint32()),t*4294967296+e}getFloat32(){let e=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,e}getFloat32Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getFloat32());return t}getFloat64(){let e=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,e}getFloat64Array(e){let t=[];for(let n=0;n<e;n++)t.push(this.getFloat64());return t}getArrayBuffer(e){let t=this.dv.buffer.slice(this.offset,this.offset+e);return this.offset+=e,t}getString(e){let t=this.offset,n=new Uint8Array(this.dv.buffer,t,e);this.skip(e);let r=n.indexOf(0);return r>=0&&(n=new Uint8Array(this.dv.buffer,t,r)),this._textDecoder.decode(n)}},G=class{add(e,t){this[e]=t}};function ve(e){return e.byteLength>=21&&$(e,0,21)===`Kaydara FBX Binary \0`}function ye(e){let t=[`K`,`a`,`y`,`d`,`a`,`r`,`a`,`\\`,`F`,`B`,`X`,`\\`,`B`,`i`,`n`,`a`,`r`,`y`,`\\`,`\\`],n=0;function r(t){let r=e[t-1];return e=e.slice(n+t),n++,r}for(let e=0;e<t.length;++e)if(r(1)===t[e])return!1;return!0}function K(e){let t=e.match(/FBXVersion: (\d+)/);if(t)return parseInt(t[1]);throw Error(`THREE.FBXLoader: Cannot find the version number for the file given.`)}function be(e){return e/46186158e3}var xe=[];function q(e,t,n,r){let i;switch(r.mappingType){case`ByPolygonVertex`:i=e;break;case`ByPolygon`:i=t;break;case`ByVertice`:i=n;break;case`AllSame`:i=r.indices[0];break;default:console.warn(`THREE.FBXLoader: unknown attribute mapping type `+r.mappingType)}r.referenceType===`IndexToDirect`&&(i=r.indices[i]);let a=i*r.dataSize,o=a+r.dataSize;return Ce(xe,r.buffer,a,o)}var J=new g,Y=new t;function X(n){let r=new e,i=new e,a=new e,o=new e,s=new e,c=new e,l=new e,u=new e,d=new e,f=new e,p=new e,m=new e,h=n.inheritType?n.inheritType:0;n.translation&&r.setPosition(Y.fromArray(n.translation));let g=Z(0);if(n.preRotation){let e=n.preRotation.map(v.degToRad);e.push(g),i.makeRotationFromEuler(J.fromArray(e))}if(n.rotation){let e=n.rotation.map(v.degToRad);e.push(n.eulerOrder||g),a.makeRotationFromEuler(J.fromArray(e))}if(n.postRotation){let e=n.postRotation.map(v.degToRad);e.push(g),o.makeRotationFromEuler(J.fromArray(e)),o.invert()}n.scale&&s.scale(Y.fromArray(n.scale)),n.scalingOffset&&l.setPosition(Y.fromArray(n.scalingOffset)),n.scalingPivot&&c.setPosition(Y.fromArray(n.scalingPivot)),n.rotationOffset&&u.setPosition(Y.fromArray(n.rotationOffset)),n.rotationPivot&&d.setPosition(Y.fromArray(n.rotationPivot)),n.parentMatrixWorld&&(p.copy(n.parentMatrix),f.copy(n.parentMatrixWorld));let _=i.clone().multiply(a).multiply(o),y=new e;y.extractRotation(f);let b=new e;b.copyPosition(f);let x=b.clone().invert().multiply(f),S=y.clone().invert().multiply(x),C=s,w=new e;if(h===0)w.copy(y).multiply(_).multiply(S).multiply(C);else if(h===1)w.copy(y).multiply(S).multiply(_).multiply(C);else{let n=new e().scale(new t().setFromMatrixScale(p)).clone().invert(),r=S.clone().multiply(n);w.copy(y).multiply(_).multiply(r).multiply(C)}let T=d.clone().invert(),E=c.clone().invert(),D=r.clone().multiply(u).multiply(d).multiply(i).multiply(a).multiply(o).multiply(T).multiply(l).multiply(c).multiply(s).multiply(E),O=new e().copyPosition(D),k=f.clone().multiply(O);return m.copyPosition(k),D=m.clone().multiply(w),D.premultiply(f.invert()),D}function Z(e){e||=0;let t=[`ZYX`,`YZX`,`XZY`,`ZXY`,`YXZ`,`XYZ`];return e===6?(console.warn(`THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.`),t[0]):t[e]}function Q(e){return e.split(`,`).map(function(e){return parseFloat(e)})}function $(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=e.byteLength),new TextDecoder().decode(new Uint8Array(e,t,n))}function Se(e,t){for(let n=0,r=e.length,i=t.length;n<i;n++,r++)e[r]=t[n]}function Ce(e,t,n,r){for(let i=n,a=0;i<r;i++,a++)e[a]=t[i];return e}export{fe as FBXLoader};
|