sketchboard-app 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/sketchboard.js +49 -0
- package/package.json +38 -0
- package/public/Assistant-Regular.woff2 +0 -0
- package/public/Cascadia.woff2 +0 -0
- package/public/Virgil.woff2 +0 -0
- package/public/_headers +2 -0
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/assets/CodeMirrorEditor-DLdTFwmz.js +2 -0
- package/public/assets/CodeMirrorEditor-DLdTFwmz.js.map +1 -0
- package/public/assets/_basePickBy-ZfSBwMAc.js +2 -0
- package/public/assets/_basePickBy-ZfSBwMAc.js.map +1 -0
- package/public/assets/_baseUniq-BrAtqm7r.js +2 -0
- package/public/assets/_baseUniq-BrAtqm7r.js.map +1 -0
- package/public/assets/architectureDiagram-VXUJARFQ-CM5vRAuo.js +37 -0
- package/public/assets/architectureDiagram-VXUJARFQ-CM5vRAuo.js.map +1 -0
- package/public/assets/blockDiagram-VD42YOAC-B1Z6hTXo.js +123 -0
- package/public/assets/blockDiagram-VD42YOAC-B1Z6hTXo.js.map +1 -0
- package/public/assets/bug-issue-template-BID_ABWq.js +12 -0
- package/public/assets/bug-issue-template-BID_ABWq.js.map +1 -0
- package/public/assets/c4Diagram-YG6GDRKO-Cv9Zizqx.js +11 -0
- package/public/assets/c4Diagram-YG6GDRKO-Cv9Zizqx.js.map +1 -0
- package/public/assets/chunk-4BX2VUAB-Bb3u24_X.js +2 -0
- package/public/assets/chunk-4BX2VUAB-Bb3u24_X.js.map +1 -0
- package/public/assets/chunk-55IACEB6-91xqgfYx.js +2 -0
- package/public/assets/chunk-55IACEB6-91xqgfYx.js.map +1 -0
- package/public/assets/chunk-B4BG7PRW-CQKyBsz0.js +166 -0
- package/public/assets/chunk-B4BG7PRW-CQKyBsz0.js.map +1 -0
- package/public/assets/chunk-DI55MBZ5-BY2TlPT6.js +221 -0
- package/public/assets/chunk-DI55MBZ5-BY2TlPT6.js.map +1 -0
- package/public/assets/chunk-FMBD7UC4-B2zhnDqu.js +16 -0
- package/public/assets/chunk-FMBD7UC4-B2zhnDqu.js.map +1 -0
- package/public/assets/chunk-QN33PNHL-CkKTlLkk.js +2 -0
- package/public/assets/chunk-QN33PNHL-CkKTlLkk.js.map +1 -0
- package/public/assets/chunk-QZHKN3VN-CD9rwyT-.js +2 -0
- package/public/assets/chunk-QZHKN3VN-CD9rwyT-.js.map +1 -0
- package/public/assets/chunk-TZMSLE5B-CGEL2dZG.js +2 -0
- package/public/assets/chunk-TZMSLE5B-CGEL2dZG.js.map +1 -0
- package/public/assets/classDiagram-2ON5EDUG-OE1zz8Rb.js +2 -0
- package/public/assets/classDiagram-2ON5EDUG-OE1zz8Rb.js.map +1 -0
- package/public/assets/classDiagram-v2-WZHVMYZB-OE1zz8Rb.js +2 -0
- package/public/assets/classDiagram-v2-WZHVMYZB-OE1zz8Rb.js.map +1 -0
- package/public/assets/clone-DKsuYKPC.js +2 -0
- package/public/assets/clone-DKsuYKPC.js.map +1 -0
- package/public/assets/codemirror.chunk-CLhMQAUm.js +13 -0
- package/public/assets/codemirror.chunk-CLhMQAUm.js.map +1 -0
- package/public/assets/cose-bilkent-S5V4N54A-BOimuZ77.js +2 -0
- package/public/assets/cose-bilkent-S5V4N54A-BOimuZ77.js.map +1 -0
- package/public/assets/cytoscape.esm-CyJtwmzi.js +332 -0
- package/public/assets/cytoscape.esm-CyJtwmzi.js.map +1 -0
- package/public/assets/dagre-6UL2VRFP-DYyliwSQ.js +5 -0
- package/public/assets/dagre-6UL2VRFP-DYyliwSQ.js.map +1 -0
- package/public/assets/diagram-PSM6KHXK-BLc04vxi.js +25 -0
- package/public/assets/diagram-PSM6KHXK-BLc04vxi.js.map +1 -0
- package/public/assets/diagram-QEK2KX5R-ukB6kMmO.js +44 -0
- package/public/assets/diagram-QEK2KX5R-ukB6kMmO.js.map +1 -0
- package/public/assets/diagram-S2PKOQOG-DaX2mZca.js +25 -0
- package/public/assets/diagram-S2PKOQOG-DaX2mZca.js.map +1 -0
- package/public/assets/erDiagram-Q2GNP2WA-DL9LpaEF.js +61 -0
- package/public/assets/erDiagram-Q2GNP2WA-DL9LpaEF.js.map +1 -0
- package/public/assets/flowDiagram-NV44I4VS-CIstAb2z.js +163 -0
- package/public/assets/flowDiagram-NV44I4VS-CIstAb2z.js.map +1 -0
- package/public/assets/ganttDiagram-JELNMOA3-CNSqBTtR.js +268 -0
- package/public/assets/ganttDiagram-JELNMOA3-CNSqBTtR.js.map +1 -0
- package/public/assets/gitGraphDiagram-NY62KEGX-DxG2NOZV.js +66 -0
- package/public/assets/gitGraphDiagram-NY62KEGX-DxG2NOZV.js.map +1 -0
- package/public/assets/graph-CDNE6afq.js +2 -0
- package/public/assets/graph-CDNE6afq.js.map +1 -0
- package/public/assets/image-blob-reduce.esm-B6b2_-a4.js +8 -0
- package/public/assets/image-blob-reduce.esm-B6b2_-a4.js.map +1 -0
- package/public/assets/index-BqdqoSDd.css +1 -0
- package/public/assets/index-ChGp7972.js +2 -0
- package/public/assets/index-ChGp7972.js.map +1 -0
- package/public/assets/index-DPcDil7M.js +310 -0
- package/public/assets/index-DPcDil7M.js.map +1 -0
- package/public/assets/infoDiagram-WHAUD3N6-B_GahSu_.js +3 -0
- package/public/assets/infoDiagram-WHAUD3N6-B_GahSu_.js.map +1 -0
- package/public/assets/journeyDiagram-XKPGCS4Q-BpcUsKNT.js +140 -0
- package/public/assets/journeyDiagram-XKPGCS4Q-BpcUsKNT.js.map +1 -0
- package/public/assets/kanban-definition-3W4ZIXB7-BbuWO2gE.js +90 -0
- package/public/assets/kanban-definition-3W4ZIXB7-BbuWO2gE.js.map +1 -0
- package/public/assets/katex-Cu_Erd72.js +262 -0
- package/public/assets/katex-Cu_Erd72.js.map +1 -0
- package/public/assets/layout-DQkrSs1j.js +2 -0
- package/public/assets/layout-DQkrSs1j.js.map +1 -0
- package/public/assets/locales/ar-SA.json-B0e8d-qe.js +9 -0
- package/public/assets/locales/ar-SA.json-B0e8d-qe.js.map +1 -0
- package/public/assets/locales/az-AZ.json-DtyjPp_C.js +2 -0
- package/public/assets/locales/az-AZ.json-DtyjPp_C.js.map +1 -0
- package/public/assets/locales/bg-BG.json-CqhOM8G4.js +6 -0
- package/public/assets/locales/bg-BG.json-CqhOM8G4.js.map +1 -0
- package/public/assets/locales/bn-BD.json-CarEu6to.js +4 -0
- package/public/assets/locales/bn-BD.json-CarEu6to.js.map +1 -0
- package/public/assets/locales/bn-IN.json-vhiIjuiP.js +4 -0
- package/public/assets/locales/bn-IN.json-vhiIjuiP.js.map +1 -0
- package/public/assets/locales/ca-ES.json-DDTuZiJG.js +9 -0
- package/public/assets/locales/ca-ES.json-DDTuZiJG.js.map +1 -0
- package/public/assets/locales/cs-CZ.json-GJzW7TSE.js +8 -0
- package/public/assets/locales/cs-CZ.json-GJzW7TSE.js.map +1 -0
- package/public/assets/locales/da-DK.json-Be0TzPzl.js +3 -0
- package/public/assets/locales/da-DK.json-Be0TzPzl.js.map +1 -0
- package/public/assets/locales/de-CH.json-D69230kg.js +8 -0
- package/public/assets/locales/de-CH.json-D69230kg.js.map +1 -0
- package/public/assets/locales/de-DE.json-D69230kg.js +8 -0
- package/public/assets/locales/de-DE.json-D69230kg.js.map +1 -0
- package/public/assets/locales/el-GR.json-CHr149cq.js +8 -0
- package/public/assets/locales/el-GR.json-CHr149cq.js.map +1 -0
- package/public/assets/locales/es-ES.json-mElEeZ2D.js +8 -0
- package/public/assets/locales/es-ES.json-mElEeZ2D.js.map +1 -0
- package/public/assets/locales/eu-ES.json-CNw2jJEU.js +8 -0
- package/public/assets/locales/eu-ES.json-CNw2jJEU.js.map +1 -0
- package/public/assets/locales/fa-IR.json-92JiA0KN.js +10 -0
- package/public/assets/locales/fa-IR.json-92JiA0KN.js.map +1 -0
- package/public/assets/locales/fi-FI.json-CdOAdcjo.js +7 -0
- package/public/assets/locales/fi-FI.json-CdOAdcjo.js.map +1 -0
- package/public/assets/locales/fr-FR.json-Cl7dF38g.js +13 -0
- package/public/assets/locales/fr-FR.json-Cl7dF38g.js.map +1 -0
- package/public/assets/locales/gl-ES.json-fzzZLZQ9.js +7 -0
- package/public/assets/locales/gl-ES.json-fzzZLZQ9.js.map +1 -0
- package/public/assets/locales/he-IL.json-BAKkfUWM.js +9 -0
- package/public/assets/locales/he-IL.json-BAKkfUWM.js.map +1 -0
- package/public/assets/locales/hi-IN.json-CUCyTyWo.js +4 -0
- package/public/assets/locales/hi-IN.json-CUCyTyWo.js.map +1 -0
- package/public/assets/locales/hu-HU.json-CV3SA8ex.js +4 -0
- package/public/assets/locales/hu-HU.json-CV3SA8ex.js.map +1 -0
- package/public/assets/locales/id-ID.json-DE2Cqq5b.js +9 -0
- package/public/assets/locales/id-ID.json-DE2Cqq5b.js.map +1 -0
- package/public/assets/locales/it-IT.json-2PLJraya.js +13 -0
- package/public/assets/locales/it-IT.json-2PLJraya.js.map +1 -0
- package/public/assets/locales/ja-JP.json-CQMoyVLC.js +8 -0
- package/public/assets/locales/ja-JP.json-CQMoyVLC.js.map +1 -0
- package/public/assets/locales/kaa.json-Dh-4QROb.js +2 -0
- package/public/assets/locales/kaa.json-Dh-4QROb.js.map +1 -0
- package/public/assets/locales/kab-KAB.json-B6YUps6Z.js +5 -0
- package/public/assets/locales/kab-KAB.json-B6YUps6Z.js.map +1 -0
- package/public/assets/locales/kk-KZ.json-1lyZ103-.js +2 -0
- package/public/assets/locales/kk-KZ.json-1lyZ103-.js.map +1 -0
- package/public/assets/locales/km-KH.json-YG2La45k.js +8 -0
- package/public/assets/locales/km-KH.json-YG2La45k.js.map +1 -0
- package/public/assets/locales/ko-KR.json-DQzg7NpQ.js +6 -0
- package/public/assets/locales/ko-KR.json-DQzg7NpQ.js.map +1 -0
- package/public/assets/locales/ku-TR.json-DulXJuPf.js +7 -0
- package/public/assets/locales/ku-TR.json-DulXJuPf.js.map +1 -0
- package/public/assets/locales/lt-LT.json-BI5PGxiE.js +4 -0
- package/public/assets/locales/lt-LT.json-BI5PGxiE.js.map +1 -0
- package/public/assets/locales/lv-LV.json-Dd3uiNAK.js +5 -0
- package/public/assets/locales/lv-LV.json-Dd3uiNAK.js.map +1 -0
- package/public/assets/locales/mr-IN.json-CE3us3Fi.js +10 -0
- package/public/assets/locales/mr-IN.json-CE3us3Fi.js.map +1 -0
- package/public/assets/locales/my-MM.json-B-uNC5oj.js +2 -0
- package/public/assets/locales/my-MM.json-B-uNC5oj.js.map +1 -0
- package/public/assets/locales/nb-NO.json-B2a_ll4z.js +9 -0
- package/public/assets/locales/nb-NO.json-B2a_ll4z.js.map +1 -0
- package/public/assets/locales/nl-NL.json-CfAX9f-w.js +14 -0
- package/public/assets/locales/nl-NL.json-CfAX9f-w.js.map +1 -0
- package/public/assets/locales/nn-NO.json-CIGsfoKm.js +5 -0
- package/public/assets/locales/nn-NO.json-CIGsfoKm.js.map +1 -0
- package/public/assets/locales/oc-FR.json-DfxVss9i.js +5 -0
- package/public/assets/locales/oc-FR.json-DfxVss9i.js.map +1 -0
- package/public/assets/locales/pa-IN.json-Cyd9VJab.js +5 -0
- package/public/assets/locales/pa-IN.json-Cyd9VJab.js.map +1 -0
- package/public/assets/locales/pl-PL.json-CB5UbRiG.js +13 -0
- package/public/assets/locales/pl-PL.json-CB5UbRiG.js.map +1 -0
- package/public/assets/locales/pt-BR.json-GPJR67js.js +7 -0
- package/public/assets/locales/pt-BR.json-GPJR67js.js.map +1 -0
- package/public/assets/locales/pt-PT.json-Cyhb98dc.js +9 -0
- package/public/assets/locales/pt-PT.json-Cyhb98dc.js.map +1 -0
- package/public/assets/locales/ro-RO.json-DtuisOGY.js +13 -0
- package/public/assets/locales/ro-RO.json-DtuisOGY.js.map +1 -0
- package/public/assets/locales/ru-RU.json-C9d6W5vW.js +11 -0
- package/public/assets/locales/ru-RU.json-C9d6W5vW.js.map +1 -0
- package/public/assets/locales/si-LK.json-DWhqtTpr.js +2 -0
- package/public/assets/locales/si-LK.json-DWhqtTpr.js.map +1 -0
- package/public/assets/locales/sk-SK.json-Dp16EYYR.js +8 -0
- package/public/assets/locales/sk-SK.json-Dp16EYYR.js.map +1 -0
- package/public/assets/locales/sl-SI.json-CXPYOnbI.js +7 -0
- package/public/assets/locales/sl-SI.json-CXPYOnbI.js.map +1 -0
- package/public/assets/locales/sv-SE.json-DECpv7fU.js +9 -0
- package/public/assets/locales/sv-SE.json-DECpv7fU.js.map +1 -0
- package/public/assets/locales/ta-IN.json-5HNGLlpx.js +7 -0
- package/public/assets/locales/ta-IN.json-5HNGLlpx.js.map +1 -0
- package/public/assets/locales/th-TH.json-t8UcrCT-.js +2 -0
- package/public/assets/locales/th-TH.json-t8UcrCT-.js.map +1 -0
- package/public/assets/locales/tr-TR.json-DClzbz6u.js +5 -0
- package/public/assets/locales/tr-TR.json-DClzbz6u.js.map +1 -0
- package/public/assets/locales/uk-UA.json-DD2kmKOm.js +7 -0
- package/public/assets/locales/uk-UA.json-DD2kmKOm.js.map +1 -0
- package/public/assets/locales/uz-UZ.json-D78i0hec.js +2 -0
- package/public/assets/locales/uz-UZ.json-D78i0hec.js.map +1 -0
- package/public/assets/locales/vi-VN.json-DbtrA-ar.js +8 -0
- package/public/assets/locales/vi-VN.json-DbtrA-ar.js.map +1 -0
- package/public/assets/locales/zh-CN.json-D8B0Xgmh.js +12 -0
- package/public/assets/locales/zh-CN.json-D8B0Xgmh.js.map +1 -0
- package/public/assets/locales/zh-HK.json-Bv007uRw.js +2 -0
- package/public/assets/locales/zh-HK.json-Bv007uRw.js.map +1 -0
- package/public/assets/locales/zh-TW.json-BvenwCxf.js +10 -0
- package/public/assets/locales/zh-TW.json-BvenwCxf.js.map +1 -0
- package/public/assets/mermaid-to-excalidraw-D-aVQaad.js +280 -0
- package/public/assets/mermaid-to-excalidraw-D-aVQaad.js.map +1 -0
- package/public/assets/mindmap-definition-VGOIOE7T-mFLCToYA.js +69 -0
- package/public/assets/mindmap-definition-VGOIOE7T-mFLCToYA.js.map +1 -0
- package/public/assets/pica-fTKOVOgy.js +8 -0
- package/public/assets/pica-fTKOVOgy.js.map +1 -0
- package/public/assets/pieDiagram-ADFJNKIX-tDTRGJE3.js +31 -0
- package/public/assets/pieDiagram-ADFJNKIX-tDTRGJE3.js.map +1 -0
- package/public/assets/qrcode.chunk-DRz-_p9I.js +2 -0
- package/public/assets/qrcode.chunk-DRz-_p9I.js.map +1 -0
- package/public/assets/quadrantDiagram-AYHSOK5B-Y6TmIak2.js +8 -0
- package/public/assets/quadrantDiagram-AYHSOK5B-Y6TmIak2.js.map +1 -0
- package/public/assets/random-username.esm-__vdrxyo.js +2 -0
- package/public/assets/random-username.esm-__vdrxyo.js.map +1 -0
- package/public/assets/requirementDiagram-UZGBJVZJ-D7lgxClk.js +65 -0
- package/public/assets/requirementDiagram-UZGBJVZJ-D7lgxClk.js.map +1 -0
- package/public/assets/roundRect-0PYZxl1G.js +2 -0
- package/public/assets/roundRect-0PYZxl1G.js.map +1 -0
- package/public/assets/sankeyDiagram-TZEHDZUN-DeN5o3Zo.js +11 -0
- package/public/assets/sankeyDiagram-TZEHDZUN-DeN5o3Zo.js.map +1 -0
- package/public/assets/sequenceDiagram-WL72ISMW-A2jXBx54.js +146 -0
- package/public/assets/sequenceDiagram-WL72ISMW-A2jXBx54.js.map +1 -0
- package/public/assets/stateDiagram-FKZM4ZOC-tI2s18Rq.js +2 -0
- package/public/assets/stateDiagram-FKZM4ZOC-tI2s18Rq.js.map +1 -0
- package/public/assets/stateDiagram-v2-4FDKWEC3-BxhL9Cgi.js +2 -0
- package/public/assets/stateDiagram-v2-4FDKWEC3-BxhL9Cgi.js.map +1 -0
- package/public/assets/subset-shared.chunk-D3ioWSie.js +85 -0
- package/public/assets/subset-shared.chunk-D3ioWSie.js.map +1 -0
- package/public/assets/subset-worker.chunk-CVR6pt27.js +2 -0
- package/public/assets/subset-worker.chunk-CVR6pt27.js.map +1 -0
- package/public/assets/timeline-definition-IT6M3QCI-Bth-_zy2.js +62 -0
- package/public/assets/timeline-definition-IT6M3QCI-Bth-_zy2.js.map +1 -0
- package/public/assets/treemap-KMMF4GRG-CNTnVawn.js +135 -0
- package/public/assets/treemap-KMMF4GRG-CNTnVawn.js.map +1 -0
- package/public/assets/workbox-window.prod.es5-B9K5rw8f.js +3 -0
- package/public/assets/workbox-window.prod.es5-B9K5rw8f.js.map +1 -0
- package/public/assets/xychartDiagram-PRI3JC2R-C0zuH6pP.js +8 -0
- package/public/assets/xychartDiagram-PRI3JC2R-C0zuH6pP.js.map +1 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/favicon.svg +7 -0
- package/public/fonts/CascadiaCode/CascadiaCode-Regular.woff2 +0 -0
- package/public/fonts/ComicShanns/ComicShanns-Regular-279a7b317d12eb88de06167bd672b4b4.woff2 +0 -0
- package/public/fonts/ComicShanns/ComicShanns-Regular-6e066e8de2ac57ea9283adb9c24d7f0c.woff2 +0 -0
- package/public/fonts/ComicShanns/ComicShanns-Regular-dc6a8806fa96795d7b3be5026f989a17.woff2 +0 -0
- package/public/fonts/ComicShanns/ComicShanns-Regular-fcb0fc02dcbee4c9846b3e2508668039.woff2 +0 -0
- package/public/fonts/Excalifont/Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2 +0 -0
- package/public/fonts/Excalifont/Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2 +0 -0
- package/public/fonts/Excalifont/Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2 +0 -0
- package/public/fonts/Excalifont/Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2 +0 -0
- package/public/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2 +0 -0
- package/public/fonts/Excalifont/Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2 +0 -0
- package/public/fonts/Excalifont/Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2 +0 -0
- package/public/fonts/LiberationSans/LiberationSans-Regular.woff2 +0 -0
- package/public/fonts/Lilita/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYE98RXi4EwSsbg.woff2 +0 -0
- package/public/fonts/Lilita/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYEF8RXi4EwQ.woff2 +0 -0
- package/public/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTA3j6zbXWjgevT5.woff2 +0 -0
- package/public/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTQ3j6zbXWjgeg.woff2 +0 -0
- package/public/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTk3j6zbXWjgevT5.woff2 +0 -0
- package/public/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTo3j6zbXWjgevT5.woff2 +0 -0
- package/public/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTs3j6zbXWjgevT5.woff2 +0 -0
- package/public/fonts/Virgil/Virgil-Regular.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-019d66dcad46dc156b162d267f981c20.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-04b718e5623574919c8b0dea5f301444.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-069e77aac84590e2e991d0a0176d34f2.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-06c77b8c66e51ed6c63ccb502dd8b8af.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-08e0dc436ad0ad61ba5558db0674d762.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-093b9ef39a46ceae95a1df18a0a3a326.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-095c169f3314805276f603a362766abd.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-09850c4077f3fffe707905872e0e2460.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-0986d134c05864f5025962eef9f994a0.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-0b5d723fdc4e249c140f0909e87d03b4.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-0f626226ba1272e832aea87bafd9720e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-0f7fb1e0d5015bb1371343153ecf7ce3.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-0fa55a080fcd0f9dc2e0b0058b793df8.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-0facdf1ea213ba40261022f5d5ed4493.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-10a7ae9a371830a80c3d844acf1c02d7.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-112c051027b2d766c19a519f6ee1f4f7.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-11c345711937f0ba4b8f7b6b919c8440.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-12b52b58eb3df36804b9a654ec9ee194.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-13ae07ed2e272d26d59bc0691cd7117a.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-13d2887ec8ee73c43acdabc52a05af7b.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-145aa02cdd91946e67dc934e1acffe75.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-15dc6d811c9cd078f9086a740d5a1038.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-173945821411c09f70c95f98d590e697.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-1b611157cd46bb184d4fa4dae2d6a2b8.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-1e6fd68f1f3902ce48ce8c69df385622.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-1ee544f0f1dac422545c505baa788992.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-1fdc0c67ed57263a80fd108c1f6ccf24.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-203b0e569e3b14aac86a003dc3fa523e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-20cc1bbf50e7efb442756cb605672c1f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-20e7bf72fa05de9adf7dbcc7bf51dde6.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-21430ee05a1248901da8d0de08744d47.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-23686f7f29da6e8008c36dd3a80c83d6.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-23ad2d71b280f00b1363b95b7bea94eb.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-23f228f3999c01983860012330e4be08.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-24476a126f129212beb33f66853ea151.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-24a21c1e4449222e8d1898d69ff3a404.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-25b7f38e18f035f96cb5e547bd2bd08c.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-29cec36cd205b211da97acabaa62f055.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-2a26d20a23b00898ce82f09d2ee47c3f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-2adbc89c11e65905393d3dfc468b9d5b.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-2b7441d46298788ac94e610ffcc709b6.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-2b77e8ebfb2367ab2662396a60e7d320.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-2cf96d082d35ea3d8106851223ad0d16.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-2d43040e86ff03ba677f6f9c04cd0805.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-2e33e8dc771ef5e1d9127d60a6b73679.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-33432927cd87d40cfe393c7482bf221f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-353f33792a8f60dc69323ddf635a269e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-36925dfe329a45086cbb7fc5c20d45ac.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-3717077e38f98d89eae729b6c14e56dc.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-3756e81d3e149cf6099163ee79944fec.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-395c35dd584b56b0789f58a0559beaf1.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-3c9de2ae0ea4bc91a510942dfa4be8d2.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-3cc70dbb64df5b21f1326cc24dee2195.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-3e1f8f654357353bf0e04ba5c34b5f7f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-3e63ed8162808a9e425ed80a8bc79114.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-3eaa538115d76932653c21d8dc28f207.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4095eb84ef3874e2600247bee0b04026.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-41521fade99856108931b4768b1b2648.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-450da755d5bcb70906e1295e559b9602.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-452225341522a7942f0f6aab1a5c91a3.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4535823663ad81405188a528d8f2b1a2.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4806e761d750087c2d734fc64596eaff.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4a0fdb40036e87b40aa08dd30584cb85.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4a38cc3e9cf104e69ba246d37f8cf135.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4aca6a43e59aceee2166b0c7e4e85ef1.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4bfaa8ffa64c5ee560aa2daba7c9cbd3.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4dc6d5f188d5c96d44815cd1e81aa885.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4ddc14ed3eb0c3e46364317dfc0144a3.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4ee10ae43505e2e0bc62656ced49c0fa.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-4f50e5136e136527280bc902c5817561.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-51502f1206be09c565f1547c406e9558.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-51a0e808bbc8361236ac521a119758a3.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-52a84a22fd1369bffeaf21da2d6158dc.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5330a2119a716e4e7224ed108b085dac.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-543fa46ace099a7099dad69123399400.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-544fc28abe2c5c30e62383fd4dac255f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-54acdfc2166ad7fcbd074f75fd4a56ba.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5572b3513ba8df57a3d5d7303ee6b11b.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-56467a5c8840c4d23a60b2f935114848.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-56a32a7689abd0326e57c10c6c069bb4.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-57862b464a55b18c7bf234ce22907d73.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-583d166e56ba0de4b77eabb47ef67839.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5882ffa04f32584d26109137e2da4352.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-58fd02350d0bc52cf1ca3bb32ce9766e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5935a5775af3d5c6307ac667bd9ae74e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-59e9ff77b0efaf684bc09274fb6908c9.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5a1ce3117cfe90c48e8fb4a9a00f694d.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5a45d991244d4c7140217e1e5f5ca4f4.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5a7fac4b8b23a6e4e5ba0c9bf1756c91.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5b0ed6971aaab9c8ad563230bd5471a7.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-5d2898fbc097a7e24c6f38d80587621e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-603aefd23e350ba7eb124273e3c9bcf1.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-60a3089806700d379f11827ee9843b6b.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-60a41c7e1c68f22424e6d22df544bc82.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-642b26e2e5f5fb780b51b593dbc8c851.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-66493ba5a8367f2928812f446f47b56a.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-670ba603758d94268e8606f240a42e12.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-671a2c20b1eb9e4ef8a192833940e319.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-684d65f1793cac449dde5d59cb3c47fb.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-69c09cc5fa3e55c74fc4821f76909cc3.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-6ae5b42180ad70b971c91e7eefb8eba2.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-6e092f71c1e634059ada0e52abadce67.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-6f3256af8454371776bc46670d33cc65.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-6fe5c5973cc06f74b2387a631ea36b88.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-70c2eb8d64e71a42a834eb857ea9df51.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-70e811fd7994e61f408c923de6ddd078.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7197d6fda6cba7c3874c53d6381ca239.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-72252d73220fa3cd856677888cee1635.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-72536a3d71b694a0d53dd90ddceae41e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-726303e0774b4e678bff8c2deb6ca603.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-733171b4ffcd17ea1fe1c0ba627173bf.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-739bc1a567439c7cffcd1614644593d2.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-73e309718fd16cea44b4d54a33581811.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7494dc504ae00ee9cd0505f990f88c5d.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-74e2263a91439c25b91d5132ce9f4d62.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-761d05e3cd968cf574166867998ef06a.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7718fe60986d8b42b1be9c5ace5ccf25.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-774d4f764a1299da5d28ec2f2ffe0d69.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-79d494361ae093b69e74ee9dbe65bfd4.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-79f007c1c6d07557120982951ea67998.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7a07ddc0f0c0f5f4a9bad6ee3dda66b5.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7ab2bed91166a9dca83a5ebfbe2a7f38.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7ccce86603f80a099ddb0cb21d4ae3e3.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7e4bde7e9c7f84cd34d8a845e384c746.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7e929f262f30c8ee78bf398150b1a7cd.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7eb9fffd1aa890d07d0f88cc82e6cfe4.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-7f855356ab893b0d2b9c1c83b8116f0e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-829615148e6357d826b9242eb7fbbd1e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-866fa7613df6b3fd272bcfd4530c0bb9.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-87599f94b6cc129d505b375798d0d751.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-8c2f33cee3993174f7e87c28e4bf42ee.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-8d3bcabb847b56243b16afe62adaaf21.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-8de5b863cb50dfefdd07cb11c774d579.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-8e9f97f01034820170065b2921b4fb5e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-8f476c4c99813d57cbe6eca4727388ad.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-903bb6865f3452e2fda42e3a25547bc5.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-91ddb2969bf2d31ba02ad82998d1314c.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-938d90c10ff8c20386af7f242c05d6b0.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-93fc8f28a33234bcadf1527cafabd502.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-95429962233afd82db1c27df1500a28c.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-9544732d2e62d1a429674f8ee41b5d3a.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-9592bfc861f07bcb8d75c196b370e548.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-95bfd249da4902577b4b7d76ebdd0b44.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-968cffdc8ee679da094e77ebf50f58ef.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-97f7f48ce90c9429bf32ae51469db74d.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-982b630266d87db93d2539affb1275c6.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-98f2ad84457de7f3740d9920b8fa8667.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-99a16ef6a64934d5781933dbd9c46b2e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-9cfb2a77a4e45025105ad29a1748b90d.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-9d81066dd2b337c938df6e90380a00dc.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-9eb5a99df4e76ac3363453ac9ca288b1.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-a004ddfcb26e67bd6e678c8ed19e25ce.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-a0ca5df4258213d7fc9fce80f65ce760.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-a1f916d6039285c4ffb900cd654e418f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-a203b91dad570bf05a58c3c3ddb529bf.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-a365e82ed54697a52f27adcea1315fe8.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-a4c34be6d42152e64b0df90bc4607f64.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-a7accba310e821da5505f71c03b76bdb.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-aa0d470430e6391eca720c7cfa44446f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-aa5c9ca6cf4fba00433b7aa3fa10671a.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-ac9ceb44437becc3e9c4dbfebab7fc2d.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-b1220a3c61f85cc0408deedb4c5f57a2.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-b358f7a51ece39a3247942b1feabdb29.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-b57aaedfd8ebdf3931f25119dc6a5eb2.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-b5c1596551c256e0e9cf02028595b092.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-b6d128682ee29e471486354d486a1b90.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-b6fd38ca30869792244804b04bc058da.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-b7d203b051eff504ff59ddca7576b6a9.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-b96d9226ce77ec94ceca043d712182e6.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-ba3de316d63c7e339987b16f41a0b879.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-bafff7a14c27403dcc6cf1432e8ea836.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-bd77e3c7f9e0b072d96af37f73d1aa32.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-be549ab72f0719d606a5c01e2c0219b6.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-c16ed9740b85badf16e86ea782a3062f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-c1f94158256bb1f3bf665b053d895af9.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-c40533fdf4cc57177b12803598af7e59.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-c4a687ac4f0c2766eefc9f77ed99cddf.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-c69f61a4ab18d0488c8d1fc12e7028e8.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-c8b71798409ccc126ee264a00aadcf21.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-c99eda15fc26a2941579560f76c3a5cf.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-cb17fc3db95f6d139afc9d31a8e93293.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-cbaaefaaf326668277aa24dfa93c4d28.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-cd145ce4a0ea18469358df53c207bc1b.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-cdbce89e82cc1ab53a2decbf5819278f.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-ce4884f96f11589608b76b726a755803.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-cf2cc71752631e579e35b0e423bf2638.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-cf6ff4e0f491ca0cf3038187a997b9b4.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-cfb211578629b7e8153b37240de6a9d5.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-d0cf73942fea1c74edbdf0b3011f4656.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-d2666cbed13462c5dc36fa2f15c202ca.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-d3716376641d615e2995605b29bca7b6.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-dac48066b5883d8b4551fc584f0c2a3e.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-dbea1af6dcd9860be40c3d18254338f5.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-e11567fd2accf9957cd0d3c2be937d87.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-e2ead7ea7da0437f085f42ffc05f8d13.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-e3fcf5180fd466c8915c4e8069491054.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-e480d9c614742d05f0e78f274f1e69e6.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-e4bca6cfa53e499cae0a6be4894a90e9.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-e51ef413167c6e14e0c0fdcc585f2fc9.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-e5f453bb04da18eed01675eeebd88bf8.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-e656f091b9dc4709722c9f4b84d3c797.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-ec181b795ac1fb5a50d700b6e996d745.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-ee8bae97908d5147b423f77ad0d3c1bb.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-f0f13b5c60e0af5553bd359f5513be1b.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-f2b54d4e7be0eaefe1c2c56836fa5368.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-f56414bf9bced67990def8660e306759.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-f5d079153c99a25b9be5b8583c4cc8a7.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-f6032fc06eb20480f096199713f70885.woff2 +0 -0
- package/public/fonts/Xiaolai/Xiaolai-Regular-f8ee5d36068a42b51d0e4a1116cfcec1.woff2 +0 -0
- package/public/index.html +30 -0
- package/public/manifest.webmanifest +1 -0
- package/public/maskable_icon_x192.png +0 -0
- package/public/maskable_icon_x512.png +0 -0
- package/public/og-image-3.png +0 -0
- package/public/oss_promo_comments_dark.jpg +0 -0
- package/public/oss_promo_comments_light.jpg +0 -0
- package/public/oss_promo_presentations_dark.svg +1 -0
- package/public/oss_promo_presentations_light.svg +1 -0
- package/public/robots.txt +13 -0
- package/public/screenshots/collaboration.png +0 -0
- package/public/screenshots/export.png +0 -0
- package/public/screenshots/illustration.png +0 -0
- package/public/screenshots/shapes.png +0 -0
- package/public/screenshots/virtual-whiteboard.png +0 -0
- package/public/screenshots/wireframe.png +0 -0
- package/public/service-worker.js +20 -0
- package/public/sitemap.xml +1 -0
- package/public/sw.js +2 -0
- package/public/sw.js.map +1 -0
- package/public/version.json +3 -0
- package/public/workbox-3631b453.js +2 -0
- package/public/workbox-3631b453.js.map +1 -0
- package/routes/auth.js +24 -0
- package/routes/collab.js +52 -0
- package/routes/drawings.js +49 -0
- package/routes/library.js +15 -0
- package/routes/users.js +32 -0
- package/server.js +109 -0
- package/storage.js +171 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitGraphDiagram-NY62KEGX-DxG2NOZV.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-NY62KEGX.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n ImperativeState\n} from \"./chunk-QZHKN3VN.mjs\";\nimport {\n cleanAndMerge,\n random,\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n common_default,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle,\n setupGraphViewbox2 as setupGraphViewbox\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/git/gitGraphParser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/git/gitGraphTypes.ts\nvar commitType = {\n NORMAL: 0,\n REVERSE: 1,\n HIGHLIGHT: 2,\n MERGE: 3,\n CHERRY_PICK: 4\n};\n\n// src/diagrams/git/gitGraphAst.ts\nvar DEFAULT_GITGRAPH_CONFIG = defaultConfig_default.gitGraph;\nvar getConfig3 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_GITGRAPH_CONFIG,\n ...getConfig().gitGraph\n });\n return config;\n}, \"getConfig\");\nvar state = new ImperativeState(() => {\n const config = getConfig3();\n const mainBranchName = config.mainBranchName;\n const mainBranchOrder = config.mainBranchOrder;\n return {\n mainBranchName,\n commits: /* @__PURE__ */ new Map(),\n head: null,\n branchConfig: /* @__PURE__ */ new Map([[mainBranchName, { name: mainBranchName, order: mainBranchOrder }]]),\n branches: /* @__PURE__ */ new Map([[mainBranchName, null]]),\n currBranch: mainBranchName,\n direction: \"LR\",\n seq: 0,\n options: {}\n };\n});\nfunction getID() {\n return random({ length: 7 });\n}\n__name(getID, \"getID\");\nfunction uniqBy(list, fn) {\n const recordMap = /* @__PURE__ */ Object.create(null);\n return list.reduce((out, item) => {\n const key = fn(item);\n if (!recordMap[key]) {\n recordMap[key] = true;\n out.push(item);\n }\n return out;\n }, []);\n}\n__name(uniqBy, \"uniqBy\");\nvar setDirection = /* @__PURE__ */ __name(function(dir2) {\n state.records.direction = dir2;\n}, \"setDirection\");\nvar setOptions = /* @__PURE__ */ __name(function(rawOptString) {\n log.debug(\"options str\", rawOptString);\n rawOptString = rawOptString?.trim();\n rawOptString = rawOptString || \"{}\";\n try {\n state.records.options = JSON.parse(rawOptString);\n } catch (e) {\n log.error(\"error while parsing gitGraph options\", e.message);\n }\n}, \"setOptions\");\nvar getOptions = /* @__PURE__ */ __name(function() {\n return state.records.options;\n}, \"getOptions\");\nvar commit = /* @__PURE__ */ __name(function(commitDB) {\n let msg = commitDB.msg;\n let id = commitDB.id;\n const type = commitDB.type;\n let tags = commitDB.tags;\n log.info(\"commit\", msg, id, type, tags);\n log.debug(\"Entering commit:\", msg, id, type, tags);\n const config = getConfig3();\n id = common_default.sanitizeText(id, config);\n msg = common_default.sanitizeText(msg, config);\n tags = tags?.map((tag) => common_default.sanitizeText(tag, config));\n const newCommit = {\n id: id ? id : state.records.seq + \"-\" + getID(),\n message: msg,\n seq: state.records.seq++,\n type: type ?? commitType.NORMAL,\n tags: tags ?? [],\n parents: state.records.head == null ? [] : [state.records.head.id],\n branch: state.records.currBranch\n };\n state.records.head = newCommit;\n log.info(\"main branch\", config.mainBranchName);\n if (state.records.commits.has(newCommit.id)) {\n log.warn(`Commit ID ${newCommit.id} already exists`);\n }\n state.records.commits.set(newCommit.id, newCommit);\n state.records.branches.set(state.records.currBranch, newCommit.id);\n log.debug(\"in pushCommit \" + newCommit.id);\n}, \"commit\");\nvar branch = /* @__PURE__ */ __name(function(branchDB) {\n let name = branchDB.name;\n const order = branchDB.order;\n name = common_default.sanitizeText(name, getConfig3());\n if (state.records.branches.has(name)) {\n throw new Error(\n `Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using \"checkout ${name}\")`\n );\n }\n state.records.branches.set(name, state.records.head != null ? state.records.head.id : null);\n state.records.branchConfig.set(name, { name, order });\n checkout(name);\n log.debug(\"in createBranch\");\n}, \"branch\");\nvar merge = /* @__PURE__ */ __name((mergeDB) => {\n let otherBranch = mergeDB.branch;\n let customId = mergeDB.id;\n const overrideType = mergeDB.type;\n const customTags = mergeDB.tags;\n const config = getConfig3();\n otherBranch = common_default.sanitizeText(otherBranch, config);\n if (customId) {\n customId = common_default.sanitizeText(customId, config);\n }\n const currentBranchCheck = state.records.branches.get(state.records.currBranch);\n const otherBranchCheck = state.records.branches.get(otherBranch);\n const currentCommit = currentBranchCheck ? state.records.commits.get(currentBranchCheck) : void 0;\n const otherCommit = otherBranchCheck ? state.records.commits.get(otherBranchCheck) : void 0;\n if (currentCommit && otherCommit && currentCommit.branch === otherBranch) {\n throw new Error(`Cannot merge branch '${otherBranch}' into itself.`);\n }\n if (state.records.currBranch === otherBranch) {\n const error = new Error('Incorrect usage of \"merge\". Cannot merge a branch to itself');\n error.hash = {\n text: `merge ${otherBranch}`,\n token: `merge ${otherBranch}`,\n expected: [\"branch abc\"]\n };\n throw error;\n }\n if (currentCommit === void 0 || !currentCommit) {\n const error = new Error(\n `Incorrect usage of \"merge\". Current branch (${state.records.currBranch})has no commits`\n );\n error.hash = {\n text: `merge ${otherBranch}`,\n token: `merge ${otherBranch}`,\n expected: [\"commit\"]\n };\n throw error;\n }\n if (!state.records.branches.has(otherBranch)) {\n const error = new Error(\n 'Incorrect usage of \"merge\". Branch to be merged (' + otherBranch + \") does not exist\"\n );\n error.hash = {\n text: `merge ${otherBranch}`,\n token: `merge ${otherBranch}`,\n expected: [`branch ${otherBranch}`]\n };\n throw error;\n }\n if (otherCommit === void 0 || !otherCommit) {\n const error = new Error(\n 'Incorrect usage of \"merge\". Branch to be merged (' + otherBranch + \") has no commits\"\n );\n error.hash = {\n text: `merge ${otherBranch}`,\n token: `merge ${otherBranch}`,\n expected: ['\"commit\"']\n };\n throw error;\n }\n if (currentCommit === otherCommit) {\n const error = new Error('Incorrect usage of \"merge\". Both branches have same head');\n error.hash = {\n text: `merge ${otherBranch}`,\n token: `merge ${otherBranch}`,\n expected: [\"branch abc\"]\n };\n throw error;\n }\n if (customId && state.records.commits.has(customId)) {\n const error = new Error(\n 'Incorrect usage of \"merge\". Commit with id:' + customId + \" already exists, use different custom id\"\n );\n error.hash = {\n text: `merge ${otherBranch} ${customId} ${overrideType} ${customTags?.join(\" \")}`,\n token: `merge ${otherBranch} ${customId} ${overrideType} ${customTags?.join(\" \")}`,\n expected: [\n `merge ${otherBranch} ${customId}_UNIQUE ${overrideType} ${customTags?.join(\" \")}`\n ]\n };\n throw error;\n }\n const verifiedBranch = otherBranchCheck ? otherBranchCheck : \"\";\n const commit2 = {\n id: customId || `${state.records.seq}-${getID()}`,\n message: `merged branch ${otherBranch} into ${state.records.currBranch}`,\n seq: state.records.seq++,\n parents: state.records.head == null ? [] : [state.records.head.id, verifiedBranch],\n branch: state.records.currBranch,\n type: commitType.MERGE,\n customType: overrideType,\n customId: customId ? true : false,\n tags: customTags ?? []\n };\n state.records.head = commit2;\n state.records.commits.set(commit2.id, commit2);\n state.records.branches.set(state.records.currBranch, commit2.id);\n log.debug(state.records.branches);\n log.debug(\"in mergeBranch\");\n}, \"merge\");\nvar cherryPick = /* @__PURE__ */ __name(function(cherryPickDB) {\n let sourceId = cherryPickDB.id;\n let targetId = cherryPickDB.targetId;\n let tags = cherryPickDB.tags;\n let parentCommitId = cherryPickDB.parent;\n log.debug(\"Entering cherryPick:\", sourceId, targetId, tags);\n const config = getConfig3();\n sourceId = common_default.sanitizeText(sourceId, config);\n targetId = common_default.sanitizeText(targetId, config);\n tags = tags?.map((tag) => common_default.sanitizeText(tag, config));\n parentCommitId = common_default.sanitizeText(parentCommitId, config);\n if (!sourceId || !state.records.commits.has(sourceId)) {\n const error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit id should exist and provided'\n );\n error.hash = {\n text: `cherryPick ${sourceId} ${targetId}`,\n token: `cherryPick ${sourceId} ${targetId}`,\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const sourceCommit = state.records.commits.get(sourceId);\n if (sourceCommit === void 0 || !sourceCommit) {\n throw new Error('Incorrect usage of \"cherryPick\". Source commit id should exist and provided');\n }\n if (parentCommitId && !(Array.isArray(sourceCommit.parents) && sourceCommit.parents.includes(parentCommitId))) {\n const error = new Error(\n \"Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.\"\n );\n throw error;\n }\n const sourceCommitBranch = sourceCommit.branch;\n if (sourceCommit.type === commitType.MERGE && !parentCommitId) {\n const error = new Error(\n \"Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.\"\n );\n throw error;\n }\n if (!targetId || !state.records.commits.has(targetId)) {\n if (sourceCommitBranch === state.records.currBranch) {\n const error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit is already on current branch'\n );\n error.hash = {\n text: `cherryPick ${sourceId} ${targetId}`,\n token: `cherryPick ${sourceId} ${targetId}`,\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const currentCommitId = state.records.branches.get(state.records.currBranch);\n if (currentCommitId === void 0 || !currentCommitId) {\n const error = new Error(\n `Incorrect usage of \"cherry-pick\". Current branch (${state.records.currBranch})has no commits`\n );\n error.hash = {\n text: `cherryPick ${sourceId} ${targetId}`,\n token: `cherryPick ${sourceId} ${targetId}`,\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const currentCommit = state.records.commits.get(currentCommitId);\n if (currentCommit === void 0 || !currentCommit) {\n const error = new Error(\n `Incorrect usage of \"cherry-pick\". Current branch (${state.records.currBranch})has no commits`\n );\n error.hash = {\n text: `cherryPick ${sourceId} ${targetId}`,\n token: `cherryPick ${sourceId} ${targetId}`,\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const commit2 = {\n id: state.records.seq + \"-\" + getID(),\n message: `cherry-picked ${sourceCommit?.message} into ${state.records.currBranch}`,\n seq: state.records.seq++,\n parents: state.records.head == null ? [] : [state.records.head.id, sourceCommit.id],\n branch: state.records.currBranch,\n type: commitType.CHERRY_PICK,\n tags: tags ? tags.filter(Boolean) : [\n `cherry-pick:${sourceCommit.id}${sourceCommit.type === commitType.MERGE ? `|parent:${parentCommitId}` : \"\"}`\n ]\n };\n state.records.head = commit2;\n state.records.commits.set(commit2.id, commit2);\n state.records.branches.set(state.records.currBranch, commit2.id);\n log.debug(state.records.branches);\n log.debug(\"in cherryPick\");\n }\n}, \"cherryPick\");\nvar checkout = /* @__PURE__ */ __name(function(branch2) {\n branch2 = common_default.sanitizeText(branch2, getConfig3());\n if (!state.records.branches.has(branch2)) {\n const error = new Error(\n `Trying to checkout branch which is not yet created. (Help try using \"branch ${branch2}\")`\n );\n error.hash = {\n text: `checkout ${branch2}`,\n token: `checkout ${branch2}`,\n expected: [`branch ${branch2}`]\n };\n throw error;\n } else {\n state.records.currBranch = branch2;\n const id = state.records.branches.get(state.records.currBranch);\n if (id === void 0 || !id) {\n state.records.head = null;\n } else {\n state.records.head = state.records.commits.get(id) ?? null;\n }\n }\n}, \"checkout\");\nfunction upsert(arr, key, newVal) {\n const index = arr.indexOf(key);\n if (index === -1) {\n arr.push(newVal);\n } else {\n arr.splice(index, 1, newVal);\n }\n}\n__name(upsert, \"upsert\");\nfunction prettyPrintCommitHistory(commitArr) {\n const commit2 = commitArr.reduce((out, commit3) => {\n if (out.seq > commit3.seq) {\n return out;\n }\n return commit3;\n }, commitArr[0]);\n let line = \"\";\n commitArr.forEach(function(c) {\n if (c === commit2) {\n line += \"\t*\";\n } else {\n line += \"\t|\";\n }\n });\n const label = [line, commit2.id, commit2.seq];\n for (const branch2 in state.records.branches) {\n if (state.records.branches.get(branch2) === commit2.id) {\n label.push(branch2);\n }\n }\n log.debug(label.join(\" \"));\n if (commit2.parents && commit2.parents.length == 2 && commit2.parents[0] && commit2.parents[1]) {\n const newCommit = state.records.commits.get(commit2.parents[0]);\n upsert(commitArr, commit2, newCommit);\n if (commit2.parents[1]) {\n commitArr.push(state.records.commits.get(commit2.parents[1]));\n }\n } else if (commit2.parents.length == 0) {\n return;\n } else {\n if (commit2.parents[0]) {\n const newCommit = state.records.commits.get(commit2.parents[0]);\n upsert(commitArr, commit2, newCommit);\n }\n }\n commitArr = uniqBy(commitArr, (c) => c.id);\n prettyPrintCommitHistory(commitArr);\n}\n__name(prettyPrintCommitHistory, \"prettyPrintCommitHistory\");\nvar prettyPrint = /* @__PURE__ */ __name(function() {\n log.debug(state.records.commits);\n const node = getCommitsArray()[0];\n prettyPrintCommitHistory([node]);\n}, \"prettyPrint\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n state.reset();\n clear();\n}, \"clear\");\nvar getBranchesAsObjArray = /* @__PURE__ */ __name(function() {\n const branchesArray = [...state.records.branchConfig.values()].map((branchConfig, i) => {\n if (branchConfig.order !== null && branchConfig.order !== void 0) {\n return branchConfig;\n }\n return {\n ...branchConfig,\n order: parseFloat(`0.${i}`)\n };\n }).sort((a, b) => (a.order ?? 0) - (b.order ?? 0)).map(({ name }) => ({ name }));\n return branchesArray;\n}, \"getBranchesAsObjArray\");\nvar getBranches = /* @__PURE__ */ __name(function() {\n return state.records.branches;\n}, \"getBranches\");\nvar getCommits = /* @__PURE__ */ __name(function() {\n return state.records.commits;\n}, \"getCommits\");\nvar getCommitsArray = /* @__PURE__ */ __name(function() {\n const commitArr = [...state.records.commits.values()];\n commitArr.forEach(function(o) {\n log.debug(o.id);\n });\n commitArr.sort((a, b) => a.seq - b.seq);\n return commitArr;\n}, \"getCommitsArray\");\nvar getCurrentBranch = /* @__PURE__ */ __name(function() {\n return state.records.currBranch;\n}, \"getCurrentBranch\");\nvar getDirection = /* @__PURE__ */ __name(function() {\n return state.records.direction;\n}, \"getDirection\");\nvar getHead = /* @__PURE__ */ __name(function() {\n return state.records.head;\n}, \"getHead\");\nvar db = {\n commitType,\n getConfig: getConfig3,\n setDirection,\n setOptions,\n getOptions,\n commit,\n branch,\n merge,\n cherryPick,\n checkout,\n //reset,\n prettyPrint,\n clear: clear2,\n getBranchesAsObjArray,\n getBranches,\n getCommits,\n getCommitsArray,\n getCurrentBranch,\n getDirection,\n getHead,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\n\n// src/diagrams/git/gitGraphParser.ts\nvar populate = /* @__PURE__ */ __name((ast, db2) => {\n populateCommonDb(ast, db2);\n if (ast.dir) {\n db2.setDirection(ast.dir);\n }\n for (const statement of ast.statements) {\n parseStatement(statement, db2);\n }\n}, \"populate\");\nvar parseStatement = /* @__PURE__ */ __name((statement, db2) => {\n const parsers = {\n Commit: /* @__PURE__ */ __name((stmt) => db2.commit(parseCommit(stmt)), \"Commit\"),\n Branch: /* @__PURE__ */ __name((stmt) => db2.branch(parseBranch(stmt)), \"Branch\"),\n Merge: /* @__PURE__ */ __name((stmt) => db2.merge(parseMerge(stmt)), \"Merge\"),\n Checkout: /* @__PURE__ */ __name((stmt) => db2.checkout(parseCheckout(stmt)), \"Checkout\"),\n CherryPicking: /* @__PURE__ */ __name((stmt) => db2.cherryPick(parseCherryPicking(stmt)), \"CherryPicking\")\n };\n const parser2 = parsers[statement.$type];\n if (parser2) {\n parser2(statement);\n } else {\n log.error(`Unknown statement type: ${statement.$type}`);\n }\n}, \"parseStatement\");\nvar parseCommit = /* @__PURE__ */ __name((commit2) => {\n const commitDB = {\n id: commit2.id,\n msg: commit2.message ?? \"\",\n type: commit2.type !== void 0 ? commitType[commit2.type] : commitType.NORMAL,\n tags: commit2.tags ?? void 0\n };\n return commitDB;\n}, \"parseCommit\");\nvar parseBranch = /* @__PURE__ */ __name((branch2) => {\n const branchDB = {\n name: branch2.name,\n order: branch2.order ?? 0\n };\n return branchDB;\n}, \"parseBranch\");\nvar parseMerge = /* @__PURE__ */ __name((merge2) => {\n const mergeDB = {\n branch: merge2.branch,\n id: merge2.id ?? \"\",\n type: merge2.type !== void 0 ? commitType[merge2.type] : void 0,\n tags: merge2.tags ?? void 0\n };\n return mergeDB;\n}, \"parseMerge\");\nvar parseCheckout = /* @__PURE__ */ __name((checkout2) => {\n const branch2 = checkout2.branch;\n return branch2;\n}, \"parseCheckout\");\nvar parseCherryPicking = /* @__PURE__ */ __name((cherryPicking) => {\n const cherryPickDB = {\n id: cherryPicking.id,\n targetId: \"\",\n tags: cherryPicking.tags?.length === 0 ? void 0 : cherryPicking.tags,\n parent: cherryPicking.parent\n };\n return cherryPickDB;\n}, \"parseCherryPicking\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"gitGraph\", input);\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\nif (void 0) {\n const { it, expect, describe } = void 0;\n const mockDB = {\n commitType,\n setDirection: vi.fn(),\n commit: vi.fn(),\n branch: vi.fn(),\n merge: vi.fn(),\n cherryPick: vi.fn(),\n checkout: vi.fn()\n };\n describe(\"GitGraph Parser\", () => {\n it(\"should parse a commit statement\", () => {\n const commit2 = {\n $type: \"Commit\",\n id: \"1\",\n message: \"test\",\n tags: [\"tag1\", \"tag2\"],\n type: \"NORMAL\"\n };\n parseStatement(commit2, mockDB);\n expect(mockDB.commit).toHaveBeenCalledWith({\n id: \"1\",\n msg: \"test\",\n tags: [\"tag1\", \"tag2\"],\n type: 0\n });\n });\n it(\"should parse a branch statement\", () => {\n const branch2 = {\n $type: \"Branch\",\n name: \"newBranch\",\n order: 1\n };\n parseStatement(branch2, mockDB);\n expect(mockDB.branch).toHaveBeenCalledWith({ name: \"newBranch\", order: 1 });\n });\n it(\"should parse a checkout statement\", () => {\n const checkout2 = {\n $type: \"Checkout\",\n branch: \"newBranch\"\n };\n parseStatement(checkout2, mockDB);\n expect(mockDB.checkout).toHaveBeenCalledWith(\"newBranch\");\n });\n it(\"should parse a merge statement\", () => {\n const merge2 = {\n $type: \"Merge\",\n branch: \"newBranch\",\n id: \"1\",\n tags: [\"tag1\", \"tag2\"],\n type: \"NORMAL\"\n };\n parseStatement(merge2, mockDB);\n expect(mockDB.merge).toHaveBeenCalledWith({\n branch: \"newBranch\",\n id: \"1\",\n tags: [\"tag1\", \"tag2\"],\n type: 0\n });\n });\n it(\"should parse a cherry picking statement\", () => {\n const cherryPick2 = {\n $type: \"CherryPicking\",\n id: \"1\",\n tags: [\"tag1\", \"tag2\"],\n parent: \"2\"\n };\n parseStatement(cherryPick2, mockDB);\n expect(mockDB.cherryPick).toHaveBeenCalledWith({\n id: \"1\",\n targetId: \"\",\n parent: \"2\",\n tags: [\"tag1\", \"tag2\"]\n });\n });\n it(\"should parse a langium generated gitGraph ast\", () => {\n const dummy = {\n $type: \"GitGraph\",\n statements: []\n };\n const gitGraphAst = {\n $type: \"GitGraph\",\n statements: [\n {\n $container: dummy,\n $type: \"Commit\",\n id: \"1\",\n message: \"test\",\n tags: [\"tag1\", \"tag2\"],\n type: \"NORMAL\"\n },\n {\n $container: dummy,\n $type: \"Branch\",\n name: \"newBranch\",\n order: 1\n },\n {\n $container: dummy,\n $type: \"Merge\",\n branch: \"newBranch\",\n id: \"1\",\n tags: [\"tag1\", \"tag2\"],\n type: \"NORMAL\"\n },\n {\n $container: dummy,\n $type: \"Checkout\",\n branch: \"newBranch\"\n },\n {\n $container: dummy,\n $type: \"CherryPicking\",\n id: \"1\",\n tags: [\"tag1\", \"tag2\"],\n parent: \"2\"\n }\n ]\n };\n populate(gitGraphAst, mockDB);\n expect(mockDB.commit).toHaveBeenCalledWith({\n id: \"1\",\n msg: \"test\",\n tags: [\"tag1\", \"tag2\"],\n type: 0\n });\n expect(mockDB.branch).toHaveBeenCalledWith({ name: \"newBranch\", order: 1 });\n expect(mockDB.merge).toHaveBeenCalledWith({\n branch: \"newBranch\",\n id: \"1\",\n tags: [\"tag1\", \"tag2\"],\n type: 0\n });\n expect(mockDB.checkout).toHaveBeenCalledWith(\"newBranch\");\n });\n });\n}\n\n// src/diagrams/git/gitGraphRenderer.ts\nimport { select } from \"d3\";\nvar DEFAULT_CONFIG = getConfig2();\nvar DEFAULT_GITGRAPH_CONFIG2 = DEFAULT_CONFIG?.gitGraph;\nvar LAYOUT_OFFSET = 10;\nvar COMMIT_STEP = 40;\nvar PX = 4;\nvar PY = 2;\nvar THEME_COLOR_LIMIT = 8;\nvar branchPos = /* @__PURE__ */ new Map();\nvar commitPos = /* @__PURE__ */ new Map();\nvar defaultPos = 30;\nvar allCommitsDict = /* @__PURE__ */ new Map();\nvar lanes = [];\nvar maxPos = 0;\nvar dir = \"LR\";\nvar clear3 = /* @__PURE__ */ __name(() => {\n branchPos.clear();\n commitPos.clear();\n allCommitsDict.clear();\n maxPos = 0;\n lanes = [];\n dir = \"LR\";\n}, \"clear\");\nvar drawText = /* @__PURE__ */ __name((txt) => {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n const rows = typeof txt === \"string\" ? txt.split(/\\\\n|\\n|<br\\s*\\/?>/gi) : txt;\n rows.forEach((row) => {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n tspan.setAttribute(\"class\", \"row\");\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n });\n return svgLabel;\n}, \"drawText\");\nvar findClosestParent = /* @__PURE__ */ __name((parents) => {\n let closestParent;\n let comparisonFunc;\n let targetPosition;\n if (dir === \"BT\") {\n comparisonFunc = /* @__PURE__ */ __name((a, b) => a <= b, \"comparisonFunc\");\n targetPosition = Infinity;\n } else {\n comparisonFunc = /* @__PURE__ */ __name((a, b) => a >= b, \"comparisonFunc\");\n targetPosition = 0;\n }\n parents.forEach((parent) => {\n const parentPosition = dir === \"TB\" || dir == \"BT\" ? commitPos.get(parent)?.y : commitPos.get(parent)?.x;\n if (parentPosition !== void 0 && comparisonFunc(parentPosition, targetPosition)) {\n closestParent = parent;\n targetPosition = parentPosition;\n }\n });\n return closestParent;\n}, \"findClosestParent\");\nvar findClosestParentBT = /* @__PURE__ */ __name((parents) => {\n let closestParent = \"\";\n let maxPosition = Infinity;\n parents.forEach((parent) => {\n const parentPosition = commitPos.get(parent).y;\n if (parentPosition <= maxPosition) {\n closestParent = parent;\n maxPosition = parentPosition;\n }\n });\n return closestParent || void 0;\n}, \"findClosestParentBT\");\nvar setParallelBTPos = /* @__PURE__ */ __name((sortedKeys, commits, defaultPos2) => {\n let curPos = defaultPos2;\n let maxPosition = defaultPos2;\n const roots = [];\n sortedKeys.forEach((key) => {\n const commit2 = commits.get(key);\n if (!commit2) {\n throw new Error(`Commit not found for key ${key}`);\n }\n if (commit2.parents.length) {\n curPos = calculateCommitPosition(commit2);\n maxPosition = Math.max(curPos, maxPosition);\n } else {\n roots.push(commit2);\n }\n setCommitPosition(commit2, curPos);\n });\n curPos = maxPosition;\n roots.forEach((commit2) => {\n setRootPosition(commit2, curPos, defaultPos2);\n });\n sortedKeys.forEach((key) => {\n const commit2 = commits.get(key);\n if (commit2?.parents.length) {\n const closestParent = findClosestParentBT(commit2.parents);\n curPos = commitPos.get(closestParent).y - COMMIT_STEP;\n if (curPos <= maxPosition) {\n maxPosition = curPos;\n }\n const x = branchPos.get(commit2.branch).pos;\n const y = curPos - LAYOUT_OFFSET;\n commitPos.set(commit2.id, { x, y });\n }\n });\n}, \"setParallelBTPos\");\nvar findClosestParentPos = /* @__PURE__ */ __name((commit2) => {\n const closestParent = findClosestParent(commit2.parents.filter((p) => p !== null));\n if (!closestParent) {\n throw new Error(`Closest parent not found for commit ${commit2.id}`);\n }\n const closestParentPos = commitPos.get(closestParent)?.y;\n if (closestParentPos === void 0) {\n throw new Error(`Closest parent position not found for commit ${commit2.id}`);\n }\n return closestParentPos;\n}, \"findClosestParentPos\");\nvar calculateCommitPosition = /* @__PURE__ */ __name((commit2) => {\n const closestParentPos = findClosestParentPos(commit2);\n return closestParentPos + COMMIT_STEP;\n}, \"calculateCommitPosition\");\nvar setCommitPosition = /* @__PURE__ */ __name((commit2, curPos) => {\n const branch2 = branchPos.get(commit2.branch);\n if (!branch2) {\n throw new Error(`Branch not found for commit ${commit2.id}`);\n }\n const x = branch2.pos;\n const y = curPos + LAYOUT_OFFSET;\n commitPos.set(commit2.id, { x, y });\n return { x, y };\n}, \"setCommitPosition\");\nvar setRootPosition = /* @__PURE__ */ __name((commit2, curPos, defaultPos2) => {\n const branch2 = branchPos.get(commit2.branch);\n if (!branch2) {\n throw new Error(`Branch not found for commit ${commit2.id}`);\n }\n const y = curPos + defaultPos2;\n const x = branch2.pos;\n commitPos.set(commit2.id, { x, y });\n}, \"setRootPosition\");\nvar drawCommitBullet = /* @__PURE__ */ __name((gBullets, commit2, commitPosition, typeClass, branchIndex, commitSymbolType) => {\n if (commitSymbolType === commitType.HIGHLIGHT) {\n gBullets.append(\"rect\").attr(\"x\", commitPosition.x - 10).attr(\"y\", commitPosition.y - 10).attr(\"width\", 20).attr(\"height\", 20).attr(\n \"class\",\n `commit ${commit2.id} commit-highlight${branchIndex % THEME_COLOR_LIMIT} ${typeClass}-outer`\n );\n gBullets.append(\"rect\").attr(\"x\", commitPosition.x - 6).attr(\"y\", commitPosition.y - 6).attr(\"width\", 12).attr(\"height\", 12).attr(\n \"class\",\n `commit ${commit2.id} commit${branchIndex % THEME_COLOR_LIMIT} ${typeClass}-inner`\n );\n } else if (commitSymbolType === commitType.CHERRY_PICK) {\n gBullets.append(\"circle\").attr(\"cx\", commitPosition.x).attr(\"cy\", commitPosition.y).attr(\"r\", 10).attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"circle\").attr(\"cx\", commitPosition.x - 3).attr(\"cy\", commitPosition.y + 2).attr(\"r\", 2.75).attr(\"fill\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"circle\").attr(\"cx\", commitPosition.x + 3).attr(\"cy\", commitPosition.y + 2).attr(\"r\", 2.75).attr(\"fill\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"line\").attr(\"x1\", commitPosition.x + 3).attr(\"y1\", commitPosition.y + 1).attr(\"x2\", commitPosition.x).attr(\"y2\", commitPosition.y - 5).attr(\"stroke\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"line\").attr(\"x1\", commitPosition.x - 3).attr(\"y1\", commitPosition.y + 1).attr(\"x2\", commitPosition.x).attr(\"y2\", commitPosition.y - 5).attr(\"stroke\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n } else {\n const circle = gBullets.append(\"circle\");\n circle.attr(\"cx\", commitPosition.x);\n circle.attr(\"cy\", commitPosition.y);\n circle.attr(\"r\", commit2.type === commitType.MERGE ? 9 : 10);\n circle.attr(\"class\", `commit ${commit2.id} commit${branchIndex % THEME_COLOR_LIMIT}`);\n if (commitSymbolType === commitType.MERGE) {\n const circle2 = gBullets.append(\"circle\");\n circle2.attr(\"cx\", commitPosition.x);\n circle2.attr(\"cy\", commitPosition.y);\n circle2.attr(\"r\", 6);\n circle2.attr(\n \"class\",\n `commit ${typeClass} ${commit2.id} commit${branchIndex % THEME_COLOR_LIMIT}`\n );\n }\n if (commitSymbolType === commitType.REVERSE) {\n const cross = gBullets.append(\"path\");\n cross.attr(\n \"d\",\n `M ${commitPosition.x - 5},${commitPosition.y - 5}L${commitPosition.x + 5},${commitPosition.y + 5}M${commitPosition.x - 5},${commitPosition.y + 5}L${commitPosition.x + 5},${commitPosition.y - 5}`\n ).attr(\"class\", `commit ${typeClass} ${commit2.id} commit${branchIndex % THEME_COLOR_LIMIT}`);\n }\n }\n}, \"drawCommitBullet\");\nvar drawCommitLabel = /* @__PURE__ */ __name((gLabels, commit2, commitPosition, pos) => {\n if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && DEFAULT_GITGRAPH_CONFIG2?.showCommitLabel) {\n const wrapper = gLabels.append(\"g\");\n const labelBkg = wrapper.insert(\"rect\").attr(\"class\", \"commit-label-bkg\");\n const text = wrapper.append(\"text\").attr(\"x\", pos).attr(\"y\", commitPosition.y + 25).attr(\"class\", \"commit-label\").text(commit2.id);\n const bbox = text.node()?.getBBox();\n if (bbox) {\n labelBkg.attr(\"x\", commitPosition.posWithOffset - bbox.width / 2 - PY).attr(\"y\", commitPosition.y + 13.5).attr(\"width\", bbox.width + 2 * PY).attr(\"height\", bbox.height + 2 * PY);\n if (dir === \"TB\" || dir === \"BT\") {\n labelBkg.attr(\"x\", commitPosition.x - (bbox.width + 4 * PX + 5)).attr(\"y\", commitPosition.y - 12);\n text.attr(\"x\", commitPosition.x - (bbox.width + 4 * PX)).attr(\"y\", commitPosition.y + bbox.height - 12);\n } else {\n text.attr(\"x\", commitPosition.posWithOffset - bbox.width / 2);\n }\n if (DEFAULT_GITGRAPH_CONFIG2.rotateCommitLabel) {\n if (dir === \"TB\" || dir === \"BT\") {\n text.attr(\n \"transform\",\n \"rotate(-45, \" + commitPosition.x + \", \" + commitPosition.y + \")\"\n );\n labelBkg.attr(\n \"transform\",\n \"rotate(-45, \" + commitPosition.x + \", \" + commitPosition.y + \")\"\n );\n } else {\n const r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;\n const r_y = 10 + bbox.width / 25 * 8.5;\n wrapper.attr(\n \"transform\",\n \"translate(\" + r_x + \", \" + r_y + \") rotate(-45, \" + pos + \", \" + commitPosition.y + \")\"\n );\n }\n }\n }\n }\n}, \"drawCommitLabel\");\nvar drawCommitTags = /* @__PURE__ */ __name((gLabels, commit2, commitPosition, pos) => {\n if (commit2.tags.length > 0) {\n let yOffset = 0;\n let maxTagBboxWidth = 0;\n let maxTagBboxHeight = 0;\n const tagElements = [];\n for (const tagValue of commit2.tags.reverse()) {\n const rect = gLabels.insert(\"polygon\");\n const hole = gLabels.append(\"circle\");\n const tag = gLabels.append(\"text\").attr(\"y\", commitPosition.y - 16 - yOffset).attr(\"class\", \"tag-label\").text(tagValue);\n const tagBbox = tag.node()?.getBBox();\n if (!tagBbox) {\n throw new Error(\"Tag bbox not found\");\n }\n maxTagBboxWidth = Math.max(maxTagBboxWidth, tagBbox.width);\n maxTagBboxHeight = Math.max(maxTagBboxHeight, tagBbox.height);\n tag.attr(\"x\", commitPosition.posWithOffset - tagBbox.width / 2);\n tagElements.push({\n tag,\n hole,\n rect,\n yOffset\n });\n yOffset += 20;\n }\n for (const { tag, hole, rect, yOffset: yOffset2 } of tagElements) {\n const h2 = maxTagBboxHeight / 2;\n const ly = commitPosition.y - 19.2 - yOffset2;\n rect.attr(\"class\", \"tag-label-bkg\").attr(\n \"points\",\n `\n ${pos - maxTagBboxWidth / 2 - PX / 2},${ly + PY} \n ${pos - maxTagBboxWidth / 2 - PX / 2},${ly - PY}\n ${commitPosition.posWithOffset - maxTagBboxWidth / 2 - PX},${ly - h2 - PY}\n ${commitPosition.posWithOffset + maxTagBboxWidth / 2 + PX},${ly - h2 - PY}\n ${commitPosition.posWithOffset + maxTagBboxWidth / 2 + PX},${ly + h2 + PY}\n ${commitPosition.posWithOffset - maxTagBboxWidth / 2 - PX},${ly + h2 + PY}`\n );\n hole.attr(\"cy\", ly).attr(\"cx\", pos - maxTagBboxWidth / 2 + PX / 2).attr(\"r\", 1.5).attr(\"class\", \"tag-hole\");\n if (dir === \"TB\" || dir === \"BT\") {\n const yOrigin = pos + yOffset2;\n rect.attr(\"class\", \"tag-label-bkg\").attr(\n \"points\",\n `\n ${commitPosition.x},${yOrigin + 2}\n ${commitPosition.x},${yOrigin - 2}\n ${commitPosition.x + LAYOUT_OFFSET},${yOrigin - h2 - 2}\n ${commitPosition.x + LAYOUT_OFFSET + maxTagBboxWidth + 4},${yOrigin - h2 - 2}\n ${commitPosition.x + LAYOUT_OFFSET + maxTagBboxWidth + 4},${yOrigin + h2 + 2}\n ${commitPosition.x + LAYOUT_OFFSET},${yOrigin + h2 + 2}`\n ).attr(\"transform\", \"translate(12,12) rotate(45, \" + commitPosition.x + \",\" + pos + \")\");\n hole.attr(\"cx\", commitPosition.x + PX / 2).attr(\"cy\", yOrigin).attr(\"transform\", \"translate(12,12) rotate(45, \" + commitPosition.x + \",\" + pos + \")\");\n tag.attr(\"x\", commitPosition.x + 5).attr(\"y\", yOrigin + 3).attr(\"transform\", \"translate(14,14) rotate(45, \" + commitPosition.x + \",\" + pos + \")\");\n }\n }\n }\n}, \"drawCommitTags\");\nvar getCommitClassType = /* @__PURE__ */ __name((commit2) => {\n const commitSymbolType = commit2.customType ?? commit2.type;\n switch (commitSymbolType) {\n case commitType.NORMAL:\n return \"commit-normal\";\n case commitType.REVERSE:\n return \"commit-reverse\";\n case commitType.HIGHLIGHT:\n return \"commit-highlight\";\n case commitType.MERGE:\n return \"commit-merge\";\n case commitType.CHERRY_PICK:\n return \"commit-cherry-pick\";\n default:\n return \"commit-normal\";\n }\n}, \"getCommitClassType\");\nvar calculatePosition = /* @__PURE__ */ __name((commit2, dir2, pos, commitPos2) => {\n const defaultCommitPosition = { x: 0, y: 0 };\n if (commit2.parents.length > 0) {\n const closestParent = findClosestParent(commit2.parents);\n if (closestParent) {\n const parentPosition = commitPos2.get(closestParent) ?? defaultCommitPosition;\n if (dir2 === \"TB\") {\n return parentPosition.y + COMMIT_STEP;\n } else if (dir2 === \"BT\") {\n const currentPosition = commitPos2.get(commit2.id) ?? defaultCommitPosition;\n return currentPosition.y - COMMIT_STEP;\n } else {\n return parentPosition.x + COMMIT_STEP;\n }\n }\n } else {\n if (dir2 === \"TB\") {\n return defaultPos;\n } else if (dir2 === \"BT\") {\n const currentPosition = commitPos2.get(commit2.id) ?? defaultCommitPosition;\n return currentPosition.y - COMMIT_STEP;\n } else {\n return 0;\n }\n }\n return 0;\n}, \"calculatePosition\");\nvar getCommitPosition = /* @__PURE__ */ __name((commit2, pos, isParallelCommits) => {\n const posWithOffset = dir === \"BT\" && isParallelCommits ? pos : pos + LAYOUT_OFFSET;\n const y = dir === \"TB\" || dir === \"BT\" ? posWithOffset : branchPos.get(commit2.branch)?.pos;\n const x = dir === \"TB\" || dir === \"BT\" ? branchPos.get(commit2.branch)?.pos : posWithOffset;\n if (x === void 0 || y === void 0) {\n throw new Error(`Position were undefined for commit ${commit2.id}`);\n }\n return { x, y, posWithOffset };\n}, \"getCommitPosition\");\nvar drawCommits = /* @__PURE__ */ __name((svg, commits, modifyGraph) => {\n if (!DEFAULT_GITGRAPH_CONFIG2) {\n throw new Error(\"GitGraph config not found\");\n }\n const gBullets = svg.append(\"g\").attr(\"class\", \"commit-bullets\");\n const gLabels = svg.append(\"g\").attr(\"class\", \"commit-labels\");\n let pos = dir === \"TB\" || dir === \"BT\" ? defaultPos : 0;\n const keys = [...commits.keys()];\n const isParallelCommits = DEFAULT_GITGRAPH_CONFIG2?.parallelCommits ?? false;\n const sortKeys = /* @__PURE__ */ __name((a, b) => {\n const seqA = commits.get(a)?.seq;\n const seqB = commits.get(b)?.seq;\n return seqA !== void 0 && seqB !== void 0 ? seqA - seqB : 0;\n }, \"sortKeys\");\n let sortedKeys = keys.sort(sortKeys);\n if (dir === \"BT\") {\n if (isParallelCommits) {\n setParallelBTPos(sortedKeys, commits, pos);\n }\n sortedKeys = sortedKeys.reverse();\n }\n sortedKeys.forEach((key) => {\n const commit2 = commits.get(key);\n if (!commit2) {\n throw new Error(`Commit not found for key ${key}`);\n }\n if (isParallelCommits) {\n pos = calculatePosition(commit2, dir, pos, commitPos);\n }\n const commitPosition = getCommitPosition(commit2, pos, isParallelCommits);\n if (modifyGraph) {\n const typeClass = getCommitClassType(commit2);\n const commitSymbolType = commit2.customType ?? commit2.type;\n const branchIndex = branchPos.get(commit2.branch)?.index ?? 0;\n drawCommitBullet(gBullets, commit2, commitPosition, typeClass, branchIndex, commitSymbolType);\n drawCommitLabel(gLabels, commit2, commitPosition, pos);\n drawCommitTags(gLabels, commit2, commitPosition, pos);\n }\n if (dir === \"TB\" || dir === \"BT\") {\n commitPos.set(commit2.id, { x: commitPosition.x, y: commitPosition.posWithOffset });\n } else {\n commitPos.set(commit2.id, { x: commitPosition.posWithOffset, y: commitPosition.y });\n }\n pos = dir === \"BT\" && isParallelCommits ? pos + COMMIT_STEP : pos + COMMIT_STEP + LAYOUT_OFFSET;\n if (pos > maxPos) {\n maxPos = pos;\n }\n });\n}, \"drawCommits\");\nvar shouldRerouteArrow = /* @__PURE__ */ __name((commitA, commitB, p1, p2, allCommits) => {\n const commitBIsFurthest = dir === \"TB\" || dir === \"BT\" ? p1.x < p2.x : p1.y < p2.y;\n const branchToGetCurve = commitBIsFurthest ? commitB.branch : commitA.branch;\n const isOnBranchToGetCurve = /* @__PURE__ */ __name((x) => x.branch === branchToGetCurve, \"isOnBranchToGetCurve\");\n const isBetweenCommits = /* @__PURE__ */ __name((x) => x.seq > commitA.seq && x.seq < commitB.seq, \"isBetweenCommits\");\n return [...allCommits.values()].some((commitX) => {\n return isBetweenCommits(commitX) && isOnBranchToGetCurve(commitX);\n });\n}, \"shouldRerouteArrow\");\nvar findLane = /* @__PURE__ */ __name((y1, y2, depth = 0) => {\n const candidate = y1 + Math.abs(y1 - y2) / 2;\n if (depth > 5) {\n return candidate;\n }\n const ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);\n if (ok) {\n lanes.push(candidate);\n return candidate;\n }\n const diff = Math.abs(y1 - y2);\n return findLane(y1, y2 - diff / 5, depth + 1);\n}, \"findLane\");\nvar drawArrow = /* @__PURE__ */ __name((svg, commitA, commitB, allCommits) => {\n const p1 = commitPos.get(commitA.id);\n const p2 = commitPos.get(commitB.id);\n if (p1 === void 0 || p2 === void 0) {\n throw new Error(`Commit positions not found for commits ${commitA.id} and ${commitB.id}`);\n }\n const arrowNeedsRerouting = shouldRerouteArrow(commitA, commitB, p1, p2, allCommits);\n let arc = \"\";\n let arc2 = \"\";\n let radius = 0;\n let offset = 0;\n let colorClassNum = branchPos.get(commitB.branch)?.index;\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n colorClassNum = branchPos.get(commitA.branch)?.index;\n }\n let lineDef;\n if (arrowNeedsRerouting) {\n arc = \"A 10 10, 0, 0, 0,\";\n arc2 = \"A 10 10, 0, 0, 1,\";\n radius = 10;\n offset = 10;\n const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);\n const lineX = p1.x < p2.x ? findLane(p1.x, p2.x) : findLane(p2.x, p1.x);\n if (dir === \"TB\") {\n if (p1.x < p2.x) {\n lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius} ${p1.y} ${arc2} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc} ${lineX + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n colorClassNum = branchPos.get(commitA.branch)?.index;\n lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius} ${p1.y} ${arc} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc2} ${lineX - offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n } else if (dir === \"BT\") {\n if (p1.x < p2.x) {\n lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius} ${p1.y} ${arc} ${lineX} ${p1.y - offset} L ${lineX} ${p2.y + radius} ${arc2} ${lineX + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n colorClassNum = branchPos.get(commitA.branch)?.index;\n lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius} ${p1.y} ${arc2} ${lineX} ${p1.y - offset} L ${lineX} ${p2.y + radius} ${arc} ${lineX - offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n } else {\n if (p1.y < p2.y) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`;\n } else {\n colorClassNum = branchPos.get(commitA.branch)?.index;\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`;\n }\n }\n } else {\n arc = \"A 20 20, 0, 0, 0,\";\n arc2 = \"A 20 20, 0, 0, 1,\";\n radius = 20;\n offset = 20;\n if (dir === \"TB\") {\n if (p1.x < p2.x) {\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.x > p2.x) {\n arc = \"A 20 20, 0, 0, 0,\";\n arc2 = \"A 20 20, 0, 0, 1,\";\n radius = 20;\n offset = 20;\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc2} ${p1.x - offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x + radius} ${p1.y} ${arc} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.x === p2.x) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`;\n }\n } else if (dir === \"BT\") {\n if (p1.x < p2.x) {\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y + radius} ${arc2} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.x > p2.x) {\n arc = \"A 20 20, 0, 0, 0,\";\n arc2 = \"A 20 20, 0, 0, 1,\";\n radius = 20;\n offset = 20;\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y + radius} ${arc} ${p1.x - offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.x === p2.x) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`;\n }\n } else {\n if (p1.y < p2.y) {\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.y > p2.y) {\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y + radius} ${arc2} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.y === p2.y) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`;\n }\n }\n }\n if (lineDef === void 0) {\n throw new Error(\"Line definition not found\");\n }\n svg.append(\"path\").attr(\"d\", lineDef).attr(\"class\", \"arrow arrow\" + colorClassNum % THEME_COLOR_LIMIT);\n}, \"drawArrow\");\nvar drawArrows = /* @__PURE__ */ __name((svg, commits) => {\n const gArrows = svg.append(\"g\").attr(\"class\", \"commit-arrows\");\n [...commits.keys()].forEach((key) => {\n const commit2 = commits.get(key);\n if (commit2.parents && commit2.parents.length > 0) {\n commit2.parents.forEach((parent) => {\n drawArrow(gArrows, commits.get(parent), commit2, commits);\n });\n }\n });\n}, \"drawArrows\");\nvar drawBranches = /* @__PURE__ */ __name((svg, branches) => {\n const g = svg.append(\"g\");\n branches.forEach((branch2, index) => {\n const adjustIndexForTheme = index % THEME_COLOR_LIMIT;\n const pos = branchPos.get(branch2.name)?.pos;\n if (pos === void 0) {\n throw new Error(`Position not found for branch ${branch2.name}`);\n }\n const line = g.append(\"line\");\n line.attr(\"x1\", 0);\n line.attr(\"y1\", pos);\n line.attr(\"x2\", maxPos);\n line.attr(\"y2\", pos);\n line.attr(\"class\", \"branch branch\" + adjustIndexForTheme);\n if (dir === \"TB\") {\n line.attr(\"y1\", defaultPos);\n line.attr(\"x1\", pos);\n line.attr(\"y2\", maxPos);\n line.attr(\"x2\", pos);\n } else if (dir === \"BT\") {\n line.attr(\"y1\", maxPos);\n line.attr(\"x1\", pos);\n line.attr(\"y2\", defaultPos);\n line.attr(\"x2\", pos);\n }\n lanes.push(pos);\n const name = branch2.name;\n const labelElement = drawText(name);\n const bkg = g.insert(\"rect\");\n const branchLabel = g.insert(\"g\").attr(\"class\", \"branchLabel\");\n const label = branchLabel.insert(\"g\").attr(\"class\", \"label branch-label\" + adjustIndexForTheme);\n label.node().appendChild(labelElement);\n const bbox = labelElement.getBBox();\n bkg.attr(\"class\", \"branchLabelBkg label\" + adjustIndexForTheme).attr(\"rx\", 4).attr(\"ry\", 4).attr(\"x\", -bbox.width - 4 - (DEFAULT_GITGRAPH_CONFIG2?.rotateCommitLabel === true ? 30 : 0)).attr(\"y\", -bbox.height / 2 + 8).attr(\"width\", bbox.width + 18).attr(\"height\", bbox.height + 4);\n label.attr(\n \"transform\",\n \"translate(\" + (-bbox.width - 14 - (DEFAULT_GITGRAPH_CONFIG2?.rotateCommitLabel === true ? 30 : 0)) + \", \" + (pos - bbox.height / 2 - 1) + \")\"\n );\n if (dir === \"TB\") {\n bkg.attr(\"x\", pos - bbox.width / 2 - 10).attr(\"y\", 0);\n label.attr(\"transform\", \"translate(\" + (pos - bbox.width / 2 - 5) + \", 0)\");\n } else if (dir === \"BT\") {\n bkg.attr(\"x\", pos - bbox.width / 2 - 10).attr(\"y\", maxPos);\n label.attr(\"transform\", \"translate(\" + (pos - bbox.width / 2 - 5) + \", \" + maxPos + \")\");\n } else {\n bkg.attr(\"transform\", \"translate(-19, \" + (pos - bbox.height / 2) + \")\");\n }\n });\n}, \"drawBranches\");\nvar setBranchPosition = /* @__PURE__ */ __name(function(name, pos, index, bbox, rotateCommitLabel) {\n branchPos.set(name, { pos, index });\n pos += 50 + (rotateCommitLabel ? 40 : 0) + (dir === \"TB\" || dir === \"BT\" ? bbox.width / 2 : 0);\n return pos;\n}, \"setBranchPosition\");\nvar draw = /* @__PURE__ */ __name(function(txt, id, ver, diagObj) {\n clear3();\n log.debug(\"in gitgraph renderer\", txt + \"\\n\", \"id:\", id, ver);\n if (!DEFAULT_GITGRAPH_CONFIG2) {\n throw new Error(\"GitGraph config not found\");\n }\n const rotateCommitLabel = DEFAULT_GITGRAPH_CONFIG2.rotateCommitLabel ?? false;\n const db2 = diagObj.db;\n allCommitsDict = db2.getCommits();\n const branches = db2.getBranchesAsObjArray();\n dir = db2.getDirection();\n const diagram2 = select(`[id=\"${id}\"]`);\n let pos = 0;\n branches.forEach((branch2, index) => {\n const labelElement = drawText(branch2.name);\n const g = diagram2.append(\"g\");\n const branchLabel = g.insert(\"g\").attr(\"class\", \"branchLabel\");\n const label = branchLabel.insert(\"g\").attr(\"class\", \"label branch-label\");\n label.node()?.appendChild(labelElement);\n const bbox = labelElement.getBBox();\n pos = setBranchPosition(branch2.name, pos, index, bbox, rotateCommitLabel);\n label.remove();\n branchLabel.remove();\n g.remove();\n });\n drawCommits(diagram2, allCommitsDict, false);\n if (DEFAULT_GITGRAPH_CONFIG2.showBranches) {\n drawBranches(diagram2, branches);\n }\n drawArrows(diagram2, allCommitsDict);\n drawCommits(diagram2, allCommitsDict, true);\n utils_default.insertTitle(\n diagram2,\n \"gitTitleText\",\n DEFAULT_GITGRAPH_CONFIG2.titleTopMargin ?? 0,\n db2.getDiagramTitle()\n );\n setupGraphViewbox(\n void 0,\n diagram2,\n DEFAULT_GITGRAPH_CONFIG2.diagramPadding,\n DEFAULT_GITGRAPH_CONFIG2.useMaxWidth\n );\n}, \"draw\");\nvar gitGraphRenderer_default = {\n draw\n};\nif (void 0) {\n const { it, expect, describe } = void 0;\n describe(\"drawText\", () => {\n it(\"should drawText\", () => {\n const svgLabel = drawText(\"main\");\n expect(svgLabel).toBeDefined();\n expect(svgLabel.children[0].innerHTML).toBe(\"main\");\n });\n });\n describe(\"branchPosition\", () => {\n const bbox = {\n x: 0,\n y: 0,\n width: 10,\n height: 10,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n toJSON: /* @__PURE__ */ __name(() => \"\", \"toJSON\")\n };\n it(\"should setBranchPositions LR with two branches\", () => {\n dir = \"LR\";\n const pos = setBranchPosition(\"main\", 0, 0, bbox, true);\n expect(pos).toBe(90);\n expect(branchPos.get(\"main\")).toEqual({ pos: 0, index: 0 });\n const posNext = setBranchPosition(\"develop\", pos, 1, bbox, true);\n expect(posNext).toBe(180);\n expect(branchPos.get(\"develop\")).toEqual({ pos, index: 1 });\n });\n it(\"should setBranchPositions TB with two branches\", () => {\n dir = \"TB\";\n bbox.width = 34.9921875;\n const pos = setBranchPosition(\"main\", 0, 0, bbox, true);\n expect(pos).toBe(107.49609375);\n expect(branchPos.get(\"main\")).toEqual({ pos: 0, index: 0 });\n bbox.width = 56.421875;\n const posNext = setBranchPosition(\"develop\", pos, 1, bbox, true);\n expect(posNext).toBe(225.70703125);\n expect(branchPos.get(\"develop\")).toEqual({ pos, index: 1 });\n });\n });\n describe(\"commitPosition\", () => {\n const commits = /* @__PURE__ */ new Map([\n [\n \"commitZero\",\n {\n id: \"ZERO\",\n message: \"\",\n seq: 0,\n type: commitType.NORMAL,\n tags: [],\n parents: [],\n branch: \"main\"\n }\n ],\n [\n \"commitA\",\n {\n id: \"A\",\n message: \"\",\n seq: 1,\n type: commitType.NORMAL,\n tags: [],\n parents: [\"ZERO\"],\n branch: \"feature\"\n }\n ],\n [\n \"commitB\",\n {\n id: \"B\",\n message: \"\",\n seq: 2,\n type: commitType.NORMAL,\n tags: [],\n parents: [\"A\"],\n branch: \"feature\"\n }\n ],\n [\n \"commitM\",\n {\n id: \"M\",\n message: \"merged branch feature into main\",\n seq: 3,\n type: commitType.MERGE,\n tags: [],\n parents: [\"ZERO\", \"B\"],\n branch: \"main\",\n customId: true\n }\n ],\n [\n \"commitC\",\n {\n id: \"C\",\n message: \"\",\n seq: 4,\n type: commitType.NORMAL,\n tags: [],\n parents: [\"ZERO\"],\n branch: \"release\"\n }\n ],\n [\n \"commit5_8928ea0\",\n {\n id: \"5-8928ea0\",\n message: \"cherry-picked [object Object] into release\",\n seq: 5,\n type: commitType.CHERRY_PICK,\n tags: [],\n parents: [\"C\", \"M\"],\n branch: \"release\"\n }\n ],\n [\n \"commitD\",\n {\n id: \"D\",\n message: \"\",\n seq: 6,\n type: commitType.NORMAL,\n tags: [],\n parents: [\"5-8928ea0\"],\n branch: \"release\"\n }\n ],\n [\n \"commit7_ed848ba\",\n {\n id: \"7-ed848ba\",\n message: \"cherry-picked [object Object] into release\",\n seq: 7,\n type: commitType.CHERRY_PICK,\n tags: [],\n parents: [\"D\", \"M\"],\n branch: \"release\"\n }\n ]\n ]);\n let pos = 0;\n branchPos.set(\"main\", { pos: 0, index: 0 });\n branchPos.set(\"feature\", { pos: 107.49609375, index: 1 });\n branchPos.set(\"release\", { pos: 224.03515625, index: 2 });\n describe(\"TB\", () => {\n pos = 30;\n dir = \"TB\";\n const expectedCommitPositionTB = /* @__PURE__ */ new Map([\n [\"commitZero\", { x: 0, y: 40, posWithOffset: 40 }],\n [\"commitA\", { x: 107.49609375, y: 90, posWithOffset: 90 }],\n [\"commitB\", { x: 107.49609375, y: 140, posWithOffset: 140 }],\n [\"commitM\", { x: 0, y: 190, posWithOffset: 190 }],\n [\"commitC\", { x: 224.03515625, y: 240, posWithOffset: 240 }],\n [\"commit5_8928ea0\", { x: 224.03515625, y: 290, posWithOffset: 290 }],\n [\"commitD\", { x: 224.03515625, y: 340, posWithOffset: 340 }],\n [\"commit7_ed848ba\", { x: 224.03515625, y: 390, posWithOffset: 390 }]\n ]);\n commits.forEach((commit2, key) => {\n it(`should give the correct position for commit ${key}`, () => {\n const position = getCommitPosition(commit2, pos, false);\n expect(position).toEqual(expectedCommitPositionTB.get(key));\n pos += 50;\n });\n });\n });\n describe(\"LR\", () => {\n let pos2 = 30;\n dir = \"LR\";\n const expectedCommitPositionLR = /* @__PURE__ */ new Map([\n [\"commitZero\", { x: 0, y: 40, posWithOffset: 40 }],\n [\"commitA\", { x: 107.49609375, y: 90, posWithOffset: 90 }],\n [\"commitB\", { x: 107.49609375, y: 140, posWithOffset: 140 }],\n [\"commitM\", { x: 0, y: 190, posWithOffset: 190 }],\n [\"commitC\", { x: 224.03515625, y: 240, posWithOffset: 240 }],\n [\"commit5_8928ea0\", { x: 224.03515625, y: 290, posWithOffset: 290 }],\n [\"commitD\", { x: 224.03515625, y: 340, posWithOffset: 340 }],\n [\"commit7_ed848ba\", { x: 224.03515625, y: 390, posWithOffset: 390 }]\n ]);\n commits.forEach((commit2, key) => {\n it(`should give the correct position for commit ${key}`, () => {\n const position = getCommitPosition(commit2, pos2, false);\n expect(position).toEqual(expectedCommitPositionLR.get(key));\n pos2 += 50;\n });\n });\n });\n describe(\"getCommitClassType\", () => {\n const expectedCommitClassType = /* @__PURE__ */ new Map([\n [\"commitZero\", \"commit-normal\"],\n [\"commitA\", \"commit-normal\"],\n [\"commitB\", \"commit-normal\"],\n [\"commitM\", \"commit-merge\"],\n [\"commitC\", \"commit-normal\"],\n [\"commit5_8928ea0\", \"commit-cherry-pick\"],\n [\"commitD\", \"commit-normal\"],\n [\"commit7_ed848ba\", \"commit-cherry-pick\"]\n ]);\n commits.forEach((commit2, key) => {\n it(`should give the correct class type for commit ${key}`, () => {\n const classType = getCommitClassType(commit2);\n expect(classType).toBe(expectedCommitClassType.get(key));\n });\n });\n });\n });\n describe(\"building BT parallel commit diagram\", () => {\n const commits = /* @__PURE__ */ new Map([\n [\n \"1-abcdefg\",\n {\n id: \"1-abcdefg\",\n message: \"\",\n seq: 0,\n type: 0,\n tags: [],\n parents: [],\n branch: \"main\"\n }\n ],\n [\n \"2-abcdefg\",\n {\n id: \"2-abcdefg\",\n message: \"\",\n seq: 1,\n type: 0,\n tags: [],\n parents: [\"1-abcdefg\"],\n branch: \"main\"\n }\n ],\n [\n \"3-abcdefg\",\n {\n id: \"3-abcdefg\",\n message: \"\",\n seq: 2,\n type: 0,\n tags: [],\n parents: [\"2-abcdefg\"],\n branch: \"develop\"\n }\n ],\n [\n \"4-abcdefg\",\n {\n id: \"4-abcdefg\",\n message: \"\",\n seq: 3,\n type: 0,\n tags: [],\n parents: [\"3-abcdefg\"],\n branch: \"develop\"\n }\n ],\n [\n \"5-abcdefg\",\n {\n id: \"5-abcdefg\",\n message: \"\",\n seq: 4,\n type: 0,\n tags: [],\n parents: [\"2-abcdefg\"],\n branch: \"feature\"\n }\n ],\n [\n \"6-abcdefg\",\n {\n id: \"6-abcdefg\",\n message: \"\",\n seq: 5,\n type: 0,\n tags: [],\n parents: [\"5-abcdefg\"],\n branch: \"feature\"\n }\n ],\n [\n \"7-abcdefg\",\n {\n id: \"7-abcdefg\",\n message: \"\",\n seq: 6,\n type: 0,\n tags: [],\n parents: [\"2-abcdefg\"],\n branch: \"main\"\n }\n ],\n [\n \"8-abcdefg\",\n {\n id: \"8-abcdefg\",\n message: \"\",\n seq: 7,\n type: 0,\n tags: [],\n parents: [\"7-abcdefg\"],\n branch: \"main\"\n }\n ]\n ]);\n const expectedCommitPosition = /* @__PURE__ */ new Map([\n [\"1-abcdefg\", { x: 0, y: 40 }],\n [\"2-abcdefg\", { x: 0, y: 90 }],\n [\"3-abcdefg\", { x: 107.49609375, y: 140 }],\n [\"4-abcdefg\", { x: 107.49609375, y: 190 }],\n [\"5-abcdefg\", { x: 225.70703125, y: 140 }],\n [\"6-abcdefg\", { x: 225.70703125, y: 190 }],\n [\"7-abcdefg\", { x: 0, y: 140 }],\n [\"8-abcdefg\", { x: 0, y: 190 }]\n ]);\n const expectedCommitPositionAfterParallel = /* @__PURE__ */ new Map([\n [\"1-abcdefg\", { x: 0, y: 210 }],\n [\"2-abcdefg\", { x: 0, y: 160 }],\n [\"3-abcdefg\", { x: 107.49609375, y: 110 }],\n [\"4-abcdefg\", { x: 107.49609375, y: 60 }],\n [\"5-abcdefg\", { x: 225.70703125, y: 110 }],\n [\"6-abcdefg\", { x: 225.70703125, y: 60 }],\n [\"7-abcdefg\", { x: 0, y: 110 }],\n [\"8-abcdefg\", { x: 0, y: 60 }]\n ]);\n const expectedCommitCurrentPosition = /* @__PURE__ */ new Map([\n [\"1-abcdefg\", 30],\n [\"2-abcdefg\", 80],\n [\"3-abcdefg\", 130],\n [\"4-abcdefg\", 180],\n [\"5-abcdefg\", 130],\n [\"6-abcdefg\", 180],\n [\"7-abcdefg\", 130],\n [\"8-abcdefg\", 180]\n ]);\n const sortedKeys = [...expectedCommitPosition.keys()];\n it(\"should get the correct commit position and current position\", () => {\n dir = \"BT\";\n let curPos = 30;\n commitPos.clear();\n branchPos.clear();\n branchPos.set(\"main\", { pos: 0, index: 0 });\n branchPos.set(\"develop\", { pos: 107.49609375, index: 1 });\n branchPos.set(\"feature\", { pos: 225.70703125, index: 2 });\n DEFAULT_GITGRAPH_CONFIG2.parallelCommits = true;\n commits.forEach((commit2, key) => {\n if (commit2.parents.length > 0) {\n curPos = calculateCommitPosition(commit2);\n }\n const position = setCommitPosition(commit2, curPos);\n expect(position).toEqual(expectedCommitPosition.get(key));\n expect(curPos).toEqual(expectedCommitCurrentPosition.get(key));\n });\n });\n it(\"should get the correct commit position after parallel commits\", () => {\n commitPos.clear();\n branchPos.clear();\n dir = \"BT\";\n const curPos = 30;\n commitPos.clear();\n branchPos.clear();\n branchPos.set(\"main\", { pos: 0, index: 0 });\n branchPos.set(\"develop\", { pos: 107.49609375, index: 1 });\n branchPos.set(\"feature\", { pos: 225.70703125, index: 2 });\n setParallelBTPos(sortedKeys, commits, curPos);\n sortedKeys.forEach((commit2) => {\n const position = commitPos.get(commit2);\n expect(position).toEqual(expectedCommitPositionAfterParallel.get(commit2));\n });\n });\n });\n DEFAULT_GITGRAPH_CONFIG2.parallelCommits = false;\n it(\"add\", () => {\n commitPos.set(\"parent1\", { x: 1, y: 1 });\n commitPos.set(\"parent2\", { x: 2, y: 2 });\n commitPos.set(\"parent3\", { x: 3, y: 3 });\n dir = \"LR\";\n const parents = [\"parent1\", \"parent2\", \"parent3\"];\n const closestParent = findClosestParent(parents);\n expect(closestParent).toBe(\"parent3\");\n commitPos.clear();\n });\n}\n\n// src/diagrams/git/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0, 1, 2, 3, 4, 5, 6, 7].map(\n (i) => `\n .branch-label${i} { fill: ${options[\"gitBranchLabel\" + i]}; }\n .commit${i} { stroke: ${options[\"git\" + i]}; fill: ${options[\"git\" + i]}; }\n .commit-highlight${i} { stroke: ${options[\"gitInv\" + i]}; fill: ${options[\"gitInv\" + i]}; }\n .label${i} { fill: ${options[\"git\" + i]}; }\n .arrow${i} { stroke: ${options[\"git\" + i]}; }\n `\n).join(\"\\n\")}\n\n .branch {\n stroke-width: 1;\n stroke: ${options.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${options.commitLabelFontSize}; fill: ${options.commitLabelColor};}\n .commit-label-bkg { font-size: ${options.commitLabelFontSize}; fill: ${options.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${options.tagLabelFontSize}; fill: ${options.tagLabelColor};}\n .tag-label-bkg { fill: ${options.tagLabelBackground}; stroke: ${options.tagLabelBorder}; }\n .tag-hole { fill: ${options.textColor}; }\n\n .commit-merge {\n stroke: ${options.primaryColor};\n fill: ${options.primaryColor};\n }\n .commit-reverse {\n stroke: ${options.primaryColor};\n fill: ${options.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${options.primaryColor};\n fill: ${options.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/git/gitGraphDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer: gitGraphRenderer_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["commitType","DEFAULT_GITGRAPH_CONFIG","defaultConfig_default","getConfig3","__name","cleanAndMerge","getConfig","state","ImperativeState","config","mainBranchName","mainBranchOrder","getID","random","uniqBy","list","fn","recordMap","out","item","key","setDirection","dir2","setOptions","rawOptString","log","e","getOptions","commit","commitDB","msg","id","type","tags","common_default","tag","newCommit","branch","branchDB","name","order","checkout","merge","mergeDB","otherBranch","customId","overrideType","customTags","currentBranchCheck","otherBranchCheck","currentCommit","otherCommit","error","verifiedBranch","commit2","cherryPick","cherryPickDB","sourceId","targetId","parentCommitId","sourceCommit","sourceCommitBranch","currentCommitId","branch2","upsert","arr","newVal","index","prettyPrintCommitHistory","commitArr","commit3","line","c","label","prettyPrint","node","getCommitsArray","clear2","clear","getBranchesAsObjArray","branchConfig","i","a","b","getBranches","getCommits","o","getCurrentBranch","getDirection","getHead","db","setAccTitle","getAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","populate","ast","db2","populateCommonDb","statement","parseStatement","parser2","stmt","parseCommit","parseBranch","parseMerge","parseCheckout","parseCherryPicking","merge2","checkout2","cherryPicking","_a","parser","input","parse","DEFAULT_CONFIG","getConfig2","DEFAULT_GITGRAPH_CONFIG2","LAYOUT_OFFSET","COMMIT_STEP","PX","PY","THEME_COLOR_LIMIT","branchPos","commitPos","defaultPos","allCommitsDict","lanes","maxPos","dir","clear3","drawText","txt","svgLabel","row","tspan","findClosestParent","parents","closestParent","comparisonFunc","targetPosition","parent","parentPosition","_b","findClosestParentBT","maxPosition","setParallelBTPos","sortedKeys","commits","defaultPos2","curPos","roots","calculateCommitPosition","setCommitPosition","setRootPosition","x","y","findClosestParentPos","p","closestParentPos","drawCommitBullet","gBullets","commitPosition","typeClass","branchIndex","commitSymbolType","circle","circle2","drawCommitLabel","gLabels","pos","wrapper","labelBkg","text","bbox","r_x","r_y","drawCommitTags","yOffset","maxTagBboxWidth","maxTagBboxHeight","tagElements","tagValue","rect","hole","tagBbox","yOffset2","h2","ly","yOrigin","getCommitClassType","calculatePosition","commitPos2","defaultCommitPosition","getCommitPosition","isParallelCommits","posWithOffset","drawCommits","svg","modifyGraph","keys","sortKeys","seqA","seqB","shouldRerouteArrow","commitA","commitB","p1","p2","allCommits","branchToGetCurve","isOnBranchToGetCurve","isBetweenCommits","commitX","findLane","y1","y2","depth","candidate","lane","diff","drawArrow","arrowNeedsRerouting","arc","arc2","radius","offset","colorClassNum","lineDef","lineY","lineX","_c","_d","_e","drawArrows","gArrows","drawBranches","branches","g","adjustIndexForTheme","labelElement","bkg","setBranchPosition","rotateCommitLabel","draw","ver","diagObj","diagram2","select","branchLabel","utils_default","setupGraphViewbox","gitGraphRenderer_default","getStyles","options","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{am as N,an as j,ao as f,ap as b,aq as E}from"./mermaid-to-excalidraw-D-aVQaad.js";import{a as v,c as P,k as _,f as g,d,i as l,v as p,r as D}from"./_baseUniq-BrAtqm7r.js";var w=N(function(o){return v(P(o,1,j,!0))}),F="\0",a="\0",O="";class L{constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=f(void 0),this._defaultEdgeLabelFn=f(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[a]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return b(e)||(e=f(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return _(this._nodes)}sources(){var e=this;return g(this.nodes(),function(t){return E(e._in[t])})}sinks(){var e=this;return g(this.nodes(),function(t){return E(e._out[t])})}setNodes(e,t){var s=arguments,i=this;return d(e,function(r){s.length>1?i.setNode(r,t):i.setNode(r)}),this}setNode(e,t){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=a,this._children[e]={},this._children[a][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var t=s=>this.removeEdge(this._edgeObjs[s]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],d(this.children(e),s=>{this.setParent(s)}),delete this._children[e]),d(_(this._in[e]),t),delete this._in[e],delete this._preds[e],d(_(this._out[e]),t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(l(t))t=a;else{t+="";for(var s=t;!l(s);s=this.parent(s))if(s===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==a)return t}}children(e){if(l(e)&&(e=a),this._isCompound){var t=this._children[e];if(t)return _(t)}else{if(e===a)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var t=this._preds[e];if(t)return _(t)}successors(e){var t=this._sucs[e];if(t)return _(t)}neighbors(e){var t=this.predecessors(e);if(t)return w(t,this.successors(e))}isLeaf(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var s=this;d(this._nodes,function(n,h){e(h)&&t.setNode(h,n)}),d(this._edgeObjs,function(n){t.hasNode(n.v)&&t.hasNode(n.w)&&t.setEdge(n,s.edge(n))});var i={};function r(n){var h=s.parent(n);return h===void 0||t.hasNode(h)?(i[n]=h,h):h in i?i[h]:r(h)}return this._isCompound&&d(t.nodes(),function(n){t.setParent(n,r(n))}),t}setDefaultEdgeLabel(e){return b(e)||(e=f(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return p(this._edgeObjs)}setPath(e,t){var s=this,i=arguments;return D(e,function(r,n){return i.length>1?s.setEdge(r,n,t):s.setEdge(r,n),n}),this}setEdge(){var e,t,s,i,r=!1,n=arguments[0];typeof n=="object"&&n!==null&&"v"in n?(e=n.v,t=n.w,s=n.name,arguments.length===2&&(i=arguments[1],r=!0)):(e=n,t=arguments[1],s=arguments[3],arguments.length>2&&(i=arguments[2],r=!0)),e=""+e,t=""+t,l(s)||(s=""+s);var h=c(this._isDirected,e,t,s);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,h))return r&&(this._edgeLabels[h]=i),this;if(!l(s)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[h]=r?i:this._defaultEdgeLabelFn(e,t,s);var u=M(this._isDirected,e,t,s);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[h]=u,y(this._preds[t],e),y(this._sucs[e],t),this._in[t][h]=u,this._out[e][h]=u,this._edgeCount++,this}edge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s);return this._edgeLabels[i]}hasEdge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s),r=this._edgeObjs[i];return r&&(e=r.v,t=r.w,delete this._edgeLabels[i],delete this._edgeObjs[i],C(this._preds[t],e),C(this._sucs[e],t),delete this._in[t][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,t){var s=this._in[e];if(s){var i=p(s);return t?g(i,function(r){return r.v===t}):i}}outEdges(e,t){var s=this._out[e];if(s){var i=p(s);return t?g(i,function(r){return r.w===t}):i}}nodeEdges(e,t){var s=this.inEdges(e,t);if(s)return s.concat(this.outEdges(e,t))}}L.prototype._nodeCount=0;L.prototype._edgeCount=0;function y(o,e){o[e]?o[e]++:o[e]=1}function C(o,e){--o[e]||delete o[e]}function c(o,e,t,s){var i=""+e,r=""+t;if(!o&&i>r){var n=i;i=r,r=n}return i+O+r+O+(l(s)?F:s)}function M(o,e,t,s){var i=""+e,r=""+t;if(!o&&i>r){var n=i;i=r,r=n}var h={v:i,w:r};return s&&(h.name=s),h}function m(o,e){return c(o,e.v,e.w,e.name)}export{L as G};
|
|
2
|
+
//# sourceMappingURL=graph-CDNE6afq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-CDNE6afq.js","sources":["../../../node_modules/lodash-es/union.js","../../../node_modules/dagre-d3-es/src/graphlib/graph.js"],"sourcesContent":["import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\nexport class Graph {\n constructor(opts = {}) {\n this._isDirected = Object.prototype.hasOwnProperty.call(opts, 'directed')\n ? opts.directed\n : true;\n this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, 'multigraph')\n ? opts.multigraph\n : false;\n this._isCompound = Object.prototype.hasOwnProperty.call(opts, 'compound')\n ? opts.compound\n : false;\n\n // Label for the graph itself\n this._label = undefined;\n\n // Defaults to be set when creating a new node\n this._defaultNodeLabelFn = _.constant(undefined);\n\n // Defaults to be set when creating a new edge\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n // v -> label\n this._nodes = {};\n\n if (this._isCompound) {\n // v -> parent\n this._parent = {};\n\n // v -> children\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n // v -> edgeObj\n this._in = {};\n\n // u -> v -> Number\n this._preds = {};\n\n // v -> edgeObj\n this._out = {};\n\n // v -> w -> Number\n this._sucs = {};\n\n // e -> edgeObj\n this._edgeObjs = {};\n\n // e -> label\n this._edgeLabels = {};\n }\n /* === Graph functions ========= */\n isDirected() {\n return this._isDirected;\n }\n isMultigraph() {\n return this._isMultigraph;\n }\n isCompound() {\n return this._isCompound;\n }\n setGraph(label) {\n this._label = label;\n return this;\n }\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n nodeCount() {\n return this._nodeCount;\n }\n nodes() {\n return _.keys(this._nodes);\n }\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n setNode(v, value) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n // @ts-expect-error\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n node(v) {\n return this._nodes[v];\n }\n hasNode(v) {\n return Object.prototype.hasOwnProperty.call(this._nodes, v);\n }\n removeNode(v) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), (child) => {\n this.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n filterNodes(filter) {\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n // @ts-expect-error\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n /* === Edge functions ========== */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n edgeCount() {\n return this._edgeCount;\n }\n edges() {\n return _.values(this._edgeObjs);\n }\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n /*\n * setEdge(v, w, [value, [name]])\n * setEdge({ v, w, [name] }, [value])\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n // @ts-expect-error\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);\n }\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n"],"names":["union","baseRest","arrays","baseUniq","baseFlatten","isArrayLikeObject","DEFAULT_EDGE_NAME","GRAPH_NODE","EDGE_KEY_DELIM","Graph","opts","_.constant","label","newDefault","_.isFunction","_.keys","self","_.filter","v","_.isEmpty","vs","value","args","_.each","removeEdge","e","child","parent","_.isUndefined","ancestor","children","predsV","sucsV","preds","_.union","neighbors","filter","copy","parents","findParent","_.values","_.reduce","w","name","valueSpecified","arg0","edgeArgsToId","edgeObj","edgeArgsToObj","incrementOrInitEntry","edgeObjToId","edge","decrementOrRemoveEntry","u","inV","edges","outV","inEdges","map","k","isDirected","v_","w_","tmp"],"mappings":"iLAqBA,IAAIA,EAAQC,EAAS,SAASC,EAAQ,CACpC,OAAOC,EAASC,EAAYF,EAAQ,EAAGG,EAAmB,EAAI,CAAC,CACjE,CAAC,ECrBGC,EAAoB,KACpBC,EAAa,KACbC,EAAiB,IAqBd,MAAMC,CAAM,CACjB,YAAYC,EAAO,GAAI,CACrB,KAAK,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAM,UAAU,EACpEA,EAAK,SACL,GACJ,KAAK,cAAgB,OAAO,UAAU,eAAe,KAAKA,EAAM,YAAY,EACxEA,EAAK,WACL,GACJ,KAAK,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAM,UAAU,EACpEA,EAAK,SACL,GAGJ,KAAK,OAAS,OAGd,KAAK,oBAAsBC,EAAW,MAAS,EAG/C,KAAK,oBAAsBA,EAAW,MAAS,EAG/C,KAAK,OAAS,CAAE,EAEZ,KAAK,cAEP,KAAK,QAAU,CAAE,EAGjB,KAAK,UAAY,CAAE,EACnB,KAAK,UAAUJ,CAAU,EAAI,CAAE,GAIjC,KAAK,IAAM,CAAE,EAGb,KAAK,OAAS,CAAE,EAGhB,KAAK,KAAO,CAAE,EAGd,KAAK,MAAQ,CAAE,EAGf,KAAK,UAAY,CAAE,EAGnB,KAAK,YAAc,CAAE,CACzB,CAEE,YAAa,CACX,OAAO,KAAK,WAChB,CACE,cAAe,CACb,OAAO,KAAK,aAChB,CACE,YAAa,CACX,OAAO,KAAK,WAChB,CACE,SAASK,EAAO,CACd,YAAK,OAASA,EACP,IACX,CACE,OAAQ,CACN,OAAO,KAAK,MAChB,CAEE,oBAAoBC,EAAY,CAC9B,OAAKC,EAAaD,CAAU,IAC1BA,EAAaF,EAAWE,CAAU,GAEpC,KAAK,oBAAsBA,EACpB,IACX,CACE,WAAY,CACV,OAAO,KAAK,UAChB,CACE,OAAQ,CACN,OAAOE,EAAO,KAAK,MAAM,CAC7B,CACE,SAAU,CACR,IAAIC,EAAO,KACX,OAAOC,EAAS,KAAK,MAAO,EAAE,SAAUC,EAAG,CACzC,OAAOC,EAAUH,EAAK,IAAIE,CAAC,CAAC,CAClC,CAAK,CACL,CACE,OAAQ,CACN,IAAIF,EAAO,KACX,OAAOC,EAAS,KAAK,MAAO,EAAE,SAAUC,EAAG,CACzC,OAAOC,EAAUH,EAAK,KAAKE,CAAC,CAAC,CACnC,CAAK,CACL,CACE,SAASE,EAAIC,EAAO,CAClB,IAAIC,EAAO,UACPN,EAAO,KACXO,OAAAA,EAAOH,EAAI,SAAUF,EAAG,CAClBI,EAAK,OAAS,EAChBN,EAAK,QAAQE,EAAGG,CAAK,EAErBL,EAAK,QAAQE,CAAC,CAEtB,CAAK,EACM,IACX,CACE,QAAQA,EAAGG,EAAO,CAChB,OAAI,OAAO,UAAU,eAAe,KAAK,KAAK,OAAQH,CAAC,GACjD,UAAU,OAAS,IACrB,KAAK,OAAOA,CAAC,EAAIG,GAEZ,OAIT,KAAK,OAAOH,CAAC,EAAI,UAAU,OAAS,EAAIG,EAAQ,KAAK,oBAAoBH,CAAC,EACtE,KAAK,cACP,KAAK,QAAQA,CAAC,EAAIX,EAClB,KAAK,UAAUW,CAAC,EAAI,CAAE,EACtB,KAAK,UAAUX,CAAU,EAAEW,CAAC,EAAI,IAElC,KAAK,IAAIA,CAAC,EAAI,CAAE,EAChB,KAAK,OAAOA,CAAC,EAAI,CAAE,EACnB,KAAK,KAAKA,CAAC,EAAI,CAAE,EACjB,KAAK,MAAMA,CAAC,EAAI,CAAE,EAClB,EAAE,KAAK,WACA,KACX,CACE,KAAKA,EAAG,CACN,OAAO,KAAK,OAAOA,CAAC,CACxB,CACE,QAAQA,EAAG,CACT,OAAO,OAAO,UAAU,eAAe,KAAK,KAAK,OAAQA,CAAC,CAC9D,CACE,WAAWA,EAAG,CACZ,GAAI,OAAO,UAAU,eAAe,KAAK,KAAK,OAAQA,CAAC,EAAG,CACxD,IAAIM,EAAcC,GAAM,KAAK,WAAW,KAAK,UAAUA,CAAC,CAAC,EACzD,OAAO,KAAK,OAAOP,CAAC,EAChB,KAAK,cACP,KAAK,4BAA4BA,CAAC,EAClC,OAAO,KAAK,QAAQA,CAAC,EACrBK,EAAO,KAAK,SAASL,CAAC,EAAIQ,GAAU,CAClC,KAAK,UAAUA,CAAK,CAC9B,CAAS,EACD,OAAO,KAAK,UAAUR,CAAC,GAEzBK,EAAOR,EAAO,KAAK,IAAIG,CAAC,CAAC,EAAGM,CAAU,EACtC,OAAO,KAAK,IAAIN,CAAC,EACjB,OAAO,KAAK,OAAOA,CAAC,EACpBK,EAAOR,EAAO,KAAK,KAAKG,CAAC,CAAC,EAAGM,CAAU,EACvC,OAAO,KAAK,KAAKN,CAAC,EAClB,OAAO,KAAK,MAAMA,CAAC,EACnB,EAAE,KAAK,UACb,CACI,OAAO,IACX,CACE,UAAUA,EAAGS,EAAQ,CACnB,GAAI,CAAC,KAAK,YACR,MAAM,IAAI,MAAM,2CAA2C,EAG7D,GAAIC,EAAcD,CAAM,EACtBA,EAASpB,MACJ,CAELoB,GAAU,GACV,QAASE,EAAWF,EAAQ,CAACC,EAAcC,CAAQ,EAAGA,EAAW,KAAK,OAAOA,CAAQ,EACnF,GAAIA,IAAaX,EACf,MAAM,IAAI,MAAM,WAAaS,EAAS,iBAAmBT,EAAI,uBAAuB,EAIxF,KAAK,QAAQS,CAAM,CACzB,CAEI,YAAK,QAAQT,CAAC,EACd,KAAK,4BAA4BA,CAAC,EAClC,KAAK,QAAQA,CAAC,EAAIS,EAClB,KAAK,UAAUA,CAAM,EAAET,CAAC,EAAI,GACrB,IACX,CACE,4BAA4BA,EAAG,CAC7B,OAAO,KAAK,UAAU,KAAK,QAAQA,CAAC,CAAC,EAAEA,CAAC,CAC5C,CACE,OAAOA,EAAG,CACR,GAAI,KAAK,YAAa,CACpB,IAAIS,EAAS,KAAK,QAAQT,CAAC,EAC3B,GAAIS,IAAWpB,EACb,OAAOoB,CAEf,CACA,CACE,SAAST,EAAG,CAKV,GAJIU,EAAcV,CAAC,IACjBA,EAAIX,GAGF,KAAK,YAAa,CACpB,IAAIuB,EAAW,KAAK,UAAUZ,CAAC,EAC/B,GAAIY,EACF,OAAOf,EAAOe,CAAQ,CAE9B,KAAW,IAAIZ,IAAMX,EACf,OAAO,KAAK,MAAO,EACd,GAAI,KAAK,QAAQW,CAAC,EACvB,MAAO,CAAE,EAEf,CACE,aAAaA,EAAG,CACd,IAAIa,EAAS,KAAK,OAAOb,CAAC,EAC1B,GAAIa,EACF,OAAOhB,EAAOgB,CAAM,CAE1B,CACE,WAAWb,EAAG,CACZ,IAAIc,EAAQ,KAAK,MAAMd,CAAC,EACxB,GAAIc,EACF,OAAOjB,EAAOiB,CAAK,CAEzB,CACE,UAAUd,EAAG,CACX,IAAIe,EAAQ,KAAK,aAAaf,CAAC,EAC/B,GAAIe,EACF,OAAOC,EAAQD,EAAO,KAAK,WAAWf,CAAC,CAAC,CAE9C,CACE,OAAOA,EAAG,CACR,IAAIiB,EACJ,OAAI,KAAK,aACPA,EAAY,KAAK,WAAWjB,CAAC,EAE7BiB,EAAY,KAAK,UAAUjB,CAAC,EAEvBiB,EAAU,SAAW,CAChC,CACE,YAAYC,EAAQ,CAElB,IAAIC,EAAO,IAAI,KAAK,YAAY,CAC9B,SAAU,KAAK,YACf,WAAY,KAAK,cACjB,SAAU,KAAK,WACrB,CAAK,EAEDA,EAAK,SAAS,KAAK,OAAO,EAE1B,IAAIrB,EAAO,KACXO,EAAO,KAAK,OAAQ,SAAUF,EAAOH,EAAG,CAClCkB,EAAOlB,CAAC,GACVmB,EAAK,QAAQnB,EAAGG,CAAK,CAE7B,CAAK,EAEDE,EAAO,KAAK,UAAW,SAAUE,EAAG,CAE9BY,EAAK,QAAQZ,EAAE,CAAC,GAAKY,EAAK,QAAQZ,EAAE,CAAC,GACvCY,EAAK,QAAQZ,EAAGT,EAAK,KAAKS,CAAC,CAAC,CAEpC,CAAK,EAED,IAAIa,EAAU,CAAE,EAChB,SAASC,EAAWrB,EAAG,CACrB,IAAIS,EAASX,EAAK,OAAOE,CAAC,EAC1B,OAAIS,IAAW,QAAaU,EAAK,QAAQV,CAAM,GAC7CW,EAAQpB,CAAC,EAAIS,EACNA,GACEA,KAAUW,EACZA,EAAQX,CAAM,EAEdY,EAAWZ,CAAM,CAEhC,CAEI,OAAI,KAAK,aACPJ,EAAOc,EAAK,MAAO,EAAE,SAAUnB,EAAG,CAChCmB,EAAK,UAAUnB,EAAGqB,EAAWrB,CAAC,CAAC,CACvC,CAAO,EAGImB,CACX,CAEE,oBAAoBxB,EAAY,CAC9B,OAAKC,EAAaD,CAAU,IAC1BA,EAAaF,EAAWE,CAAU,GAEpC,KAAK,oBAAsBA,EACpB,IACX,CACE,WAAY,CACV,OAAO,KAAK,UAChB,CACE,OAAQ,CACN,OAAO2B,EAAS,KAAK,SAAS,CAClC,CACE,QAAQpB,EAAIC,EAAO,CACjB,IAAIL,EAAO,KACPM,EAAO,UACXmB,OAAAA,EAASrB,EAAI,SAAUF,EAAGwB,EAAG,CAC3B,OAAIpB,EAAK,OAAS,EAChBN,EAAK,QAAQE,EAAGwB,EAAGrB,CAAK,EAExBL,EAAK,QAAQE,EAAGwB,CAAC,EAEZA,CACb,CAAK,EACM,IACX,CAKE,SAAU,CACR,IAAIxB,EAAGwB,EAAGC,EAAMtB,EACZuB,EAAiB,GACjBC,EAAO,UAAU,CAAC,EAElB,OAAOA,GAAS,UAAYA,IAAS,MAAQ,MAAOA,GACtD3B,EAAI2B,EAAK,EACTH,EAAIG,EAAK,EACTF,EAAOE,EAAK,KACR,UAAU,SAAW,IACvBxB,EAAQ,UAAU,CAAC,EACnBuB,EAAiB,MAGnB1B,EAAI2B,EACJH,EAAI,UAAU,CAAC,EACfC,EAAO,UAAU,CAAC,EACd,UAAU,OAAS,IACrBtB,EAAQ,UAAU,CAAC,EACnBuB,EAAiB,KAIrB1B,EAAI,GAAKA,EACTwB,EAAI,GAAKA,EACJd,EAAce,CAAI,IACrBA,EAAO,GAAKA,GAGd,IAAIlB,EAAIqB,EAAa,KAAK,YAAa5B,EAAGwB,EAAGC,CAAI,EACjD,GAAI,OAAO,UAAU,eAAe,KAAK,KAAK,YAAalB,CAAC,EAC1D,OAAImB,IACF,KAAK,YAAYnB,CAAC,EAAIJ,GAEjB,KAGT,GAAI,CAACO,EAAce,CAAI,GAAK,CAAC,KAAK,cAChC,MAAM,IAAI,MAAM,mDAAmD,EAKrE,KAAK,QAAQzB,CAAC,EACd,KAAK,QAAQwB,CAAC,EAGd,KAAK,YAAYjB,CAAC,EAAImB,EAAiBvB,EAAQ,KAAK,oBAAoBH,EAAGwB,EAAGC,CAAI,EAElF,IAAII,EAAUC,EAAc,KAAK,YAAa9B,EAAGwB,EAAGC,CAAI,EAExD,OAAAzB,EAAI6B,EAAQ,EACZL,EAAIK,EAAQ,EAEZ,OAAO,OAAOA,CAAO,EACrB,KAAK,UAAUtB,CAAC,EAAIsB,EACpBE,EAAqB,KAAK,OAAOP,CAAC,EAAGxB,CAAC,EACtC+B,EAAqB,KAAK,MAAM/B,CAAC,EAAGwB,CAAC,EACrC,KAAK,IAAIA,CAAC,EAAEjB,CAAC,EAAIsB,EACjB,KAAK,KAAK7B,CAAC,EAAEO,CAAC,EAAIsB,EAClB,KAAK,aACE,IACX,CACE,KAAK7B,EAAGwB,EAAGC,EAAM,CACf,IAAIlB,EACF,UAAU,SAAW,EACjByB,EAAY,KAAK,YAAa,UAAU,CAAC,CAAC,EAC1CJ,EAAa,KAAK,YAAa5B,EAAGwB,EAAGC,CAAI,EAC/C,OAAO,KAAK,YAAYlB,CAAC,CAC7B,CACE,QAAQP,EAAGwB,EAAGC,EAAM,CAClB,IAAIlB,EACF,UAAU,SAAW,EACjByB,EAAY,KAAK,YAAa,UAAU,CAAC,CAAC,EAC1CJ,EAAa,KAAK,YAAa5B,EAAGwB,EAAGC,CAAI,EAC/C,OAAO,OAAO,UAAU,eAAe,KAAK,KAAK,YAAalB,CAAC,CACnE,CACE,WAAWP,EAAGwB,EAAGC,EAAM,CACrB,IAAIlB,EACF,UAAU,SAAW,EACjByB,EAAY,KAAK,YAAa,UAAU,CAAC,CAAC,EAC1CJ,EAAa,KAAK,YAAa5B,EAAGwB,EAAGC,CAAI,EAC3CQ,EAAO,KAAK,UAAU1B,CAAC,EAC3B,OAAI0B,IACFjC,EAAIiC,EAAK,EACTT,EAAIS,EAAK,EACT,OAAO,KAAK,YAAY1B,CAAC,EACzB,OAAO,KAAK,UAAUA,CAAC,EACvB2B,EAAuB,KAAK,OAAOV,CAAC,EAAGxB,CAAC,EACxCkC,EAAuB,KAAK,MAAMlC,CAAC,EAAGwB,CAAC,EACvC,OAAO,KAAK,IAAIA,CAAC,EAAEjB,CAAC,EACpB,OAAO,KAAK,KAAKP,CAAC,EAAEO,CAAC,EACrB,KAAK,cAEA,IACX,CACE,QAAQP,EAAGmC,EAAG,CACZ,IAAIC,EAAM,KAAK,IAAIpC,CAAC,EACpB,GAAIoC,EAAK,CACP,IAAIC,EAAQf,EAASc,CAAG,EACxB,OAAKD,EAGEpC,EAASsC,EAAO,SAAUJ,EAAM,CACrC,OAAOA,EAAK,IAAME,CAC1B,CAAO,EAJQE,CAKf,CACA,CACE,SAASrC,EAAGwB,EAAG,CACb,IAAIc,EAAO,KAAK,KAAKtC,CAAC,EACtB,GAAIsC,EAAM,CACR,IAAID,EAAQf,EAASgB,CAAI,EACzB,OAAKd,EAGEzB,EAASsC,EAAO,SAAUJ,EAAM,CACrC,OAAOA,EAAK,IAAMT,CAC1B,CAAO,EAJQa,CAKf,CACA,CACE,UAAUrC,EAAGwB,EAAG,CACd,IAAIe,EAAU,KAAK,QAAQvC,EAAGwB,CAAC,EAC/B,GAAIe,EACF,OAAOA,EAAQ,OAAO,KAAK,SAASvC,EAAGwB,CAAC,CAAC,CAE/C,CACA,CAGAjC,EAAM,UAAU,WAAa,EAG7BA,EAAM,UAAU,WAAa,EAE7B,SAASwC,EAAqBS,EAAKC,EAAG,CAChCD,EAAIC,CAAC,EACPD,EAAIC,CAAC,IAELD,EAAIC,CAAC,EAAI,CAEb,CAEA,SAASP,EAAuBM,EAAKC,EAAG,CACjC,EAAED,EAAIC,CAAC,GACV,OAAOD,EAAIC,CAAC,CAEhB,CAEA,SAASb,EAAac,EAAYC,EAAIC,EAAInB,EAAM,CAC9C,IAAIzB,EAAI,GAAK2C,EACTnB,EAAI,GAAKoB,EACb,GAAI,CAACF,GAAc1C,EAAIwB,EAAG,CACxB,IAAIqB,EAAM7C,EACVA,EAAIwB,EACJA,EAAIqB,CACR,CACE,OAAO7C,EAAIV,EAAiBkC,EAAIlC,GAAkBoB,EAAce,CAAI,EAAIrC,EAAoBqC,EAC9F,CAEA,SAASK,EAAcY,EAAYC,EAAIC,EAAInB,EAAM,CAC/C,IAAIzB,EAAI,GAAK2C,EACTnB,EAAI,GAAKoB,EACb,GAAI,CAACF,GAAc1C,EAAIwB,EAAG,CACxB,IAAIqB,EAAM7C,EACVA,EAAIwB,EACJA,EAAIqB,CACR,CACE,IAAIhB,EAAU,CAAE,EAAG7B,EAAG,EAAGwB,CAAG,EAC5B,OAAIC,IACFI,EAAQ,KAAOJ,GAEVI,CACT,CAEA,SAASG,EAAYU,EAAYb,EAAS,CACxC,OAAOD,EAAac,EAAYb,EAAQ,EAAGA,EAAQ,EAAGA,EAAQ,IAAI,CACpE","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*! image-blob-reduce 3.0.1 https://github.com/nodeca/image-blob-reduce @license MIT */var K=function(I){for(var d,h=1;h<arguments.length;h++){d=Object(arguments[h]);for(var x in d)Object.prototype.hasOwnProperty.call(d,x)&&(I[x]=d[x])}return I};function N(A,I){var d={};return I.forEach(function(h){Object.prototype.hasOwnProperty.call(A,h)&&(d[h]=A[h])}),d}function V(A){return N(A,["alpha","unsharpAmount","unsharpRadius","unsharpThreshold","cancelToken"])}var J=N,$=V,W={assign:K,pick:J,pick_pica_resize_options:$};function q(A){var I={exports:{}};return A(I,I.exports),I.exports}function H(A){throw new Error('Could not dynamically require "'+A+'". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.')}/*!
|
|
2
|
+
|
|
3
|
+
pica
|
|
4
|
+
https://github.com/nodeca/pica
|
|
5
|
+
|
|
6
|
+
*/var X=q(function(A,I){(function(d){A.exports=d()})(function(){return function(){function d(h,x,g){function c(e,i){if(!x[e]){if(!h[e]){var a=typeof H=="function"&&H;if(!i&&a)return a(e,!0);if(r)return r(e,!0);var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}var s=x[e]={exports:{}};h[e][0].call(s.exports,function(f){var u=h[e][1][f];return c(u||f)},s,s.exports,d,h,x,g)}return x[e].exports}for(var r=typeof H=="function"&&H,t=0;t<g.length;t++)c(g[t]);return c}return d}()({1:[function(d,h,x){var g=d("inherits"),c=d("multimath"),r=d("./mm_unsharp_mask"),t=d("./mm_resize");function e(i){var a=i||[],n={js:a.indexOf("js")>=0,wasm:a.indexOf("wasm")>=0};c.call(this,n),this.features={js:n.js,wasm:n.wasm&&this.has_wasm()},this.use(r),this.use(t)}g(e,c),e.prototype.resizeAndUnsharp=function(a,n){var s=this.resize(a,n);return a.unsharpAmount&&this.unsharp_mask(s,a.toWidth,a.toHeight,a.unsharpAmount,a.unsharpRadius,a.unsharpThreshold),s},h.exports=e},{"./mm_resize":4,"./mm_unsharp_mask":9,inherits:19,multimath:20}],2:[function(d,h,x){function g(t){return t<0?0:t>255?255:t}function c(t,e,i,a,n,s){var f,u,l,y,m,b,B,C,F,O,E,k=0,R=0;for(F=0;F<a;F++){for(m=0,O=0;O<n;O++){for(b=s[m++],B=s[m++],C=k+b*4|0,f=u=l=y=0;B>0;B--)E=s[m++],y=y+E*t[C+3]|0,l=l+E*t[C+2]|0,u=u+E*t[C+1]|0,f=f+E*t[C]|0,C=C+4|0;e[R+3]=g(y+8192>>14),e[R+2]=g(l+8192>>14),e[R+1]=g(u+8192>>14),e[R]=g(f+8192>>14),R=R+a*4|0}R=(F+1)*4|0,k=(F+1)*i*4|0}}function r(t,e,i,a,n,s){var f,u,l,y,m,b,B,C,F,O,E,k=0,R=0;for(F=0;F<a;F++){for(m=0,O=0;O<n;O++){for(b=s[m++],B=s[m++],C=k+b*4|0,f=u=l=y=0;B>0;B--)E=s[m++],y=y+E*t[C+3]|0,l=l+E*t[C+2]|0,u=u+E*t[C+1]|0,f=f+E*t[C]|0,C=C+4|0;e[R+3]=g(y+8192>>14),e[R+2]=g(l+8192>>14),e[R+1]=g(u+8192>>14),e[R]=g(f+8192>>14),R=R+a*4|0}R=(F+1)*4|0,k=(F+1)*i*4|0}}h.exports={convolveHorizontally:c,convolveVertically:r}},{}],3:[function(d,h,x){h.exports="AGFzbQEAAAAADAZkeWxpbmsAAAAAAAEXA2AAAGAGf39/f39/AGAHf39/f39/fwACDwEDZW52Bm1lbW9yeQIAAAMEAwABAgYGAX8AQQALB1cFEV9fd2FzbV9jYWxsX2N0b3JzAAAIY29udm9sdmUAAQpjb252b2x2ZUhWAAIMX19kc29faGFuZGxlAwAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAK7AMDAwABC8YDAQ9/AkAgA0UNACAERQ0AA0AgDCENQQAhE0EAIQcDQCAHQQJqIQYCfyAHQQF0IAVqIgcuAQIiFEUEQEGAwAAhCEGAwAAhCUGAwAAhCkGAwAAhCyAGDAELIBIgBy4BAGohCEEAIQsgFCEHQQAhDiAGIQlBACEPQQAhEANAIAUgCUEBdGouAQAiESAAIAhBAnRqKAIAIgpBGHZsIBBqIRAgCkH/AXEgEWwgC2ohCyAKQRB2Qf8BcSARbCAPaiEPIApBCHZB/wFxIBFsIA5qIQ4gCEEBaiEIIAlBAWohCSAHQQFrIgcNAAsgC0GAQGshCCAOQYBAayEJIA9BgEBrIQogEEGAQGshCyAGIBRqCyEHIAEgDUECdGogCUEOdSIGQf8BIAZB/wFIGyIGQQAgBkEAShtBCHRBgP4DcSAKQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EQdEGAgPwHcSALQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EYdHJyIAhBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobcjYCACADIA1qIQ0gE0EBaiITIARHDQALIAxBAWoiDCACbCESIAMgDEcNAAsLCx4AQQAgAiADIAQgBSAAEAEgAkEAIAQgBSAGIAEQAQs="},{}],4:[function(d,h,x){h.exports={name:"resize",fn:d("./resize"),wasm_fn:d("./resize_wasm"),wasm_src:d("./convolve_wasm_base64")}},{"./convolve_wasm_base64":3,"./resize":5,"./resize_wasm":8}],5:[function(d,h,x){var g=d("./resize_filter_gen"),c=d("./convolve").convolveHorizontally,r=d("./convolve").convolveVertically;function t(e,i,a){for(var n=3,s=i*a*4|0;n<s;)e[n]=255,n=n+4|0}h.exports=function(i){var a=i.src,n=i.width,s=i.height,f=i.toWidth,u=i.toHeight,l=i.scaleX||i.toWidth/i.width,y=i.scaleY||i.toHeight/i.height,m=i.offsetX||0,b=i.offsetY||0,B=i.dest||new Uint8Array(f*u*4),C=typeof i.quality>"u"?3:i.quality,F=i.alpha||!1,O=g(C,n,f,l,m),E=g(C,s,u,y,b),k=new Uint8Array(f*s*4);return c(a,k,n,s,f,O),r(k,B,s,f,u,E),F||t(B,f,u),B}},{"./convolve":2,"./resize_filter_gen":6}],6:[function(d,h,x){var g=d("./resize_filter_info"),c=14;function r(t){return Math.round(t*((1<<c)-1))}h.exports=function(e,i,a,n,s){var f=g[e].filter,u=1/n,l=Math.min(1,n),y=g[e].win/l,m,b,B,C,F,O,E,k,R,D,S,j,G,o,p,_,v,w=Math.floor((y+1)*2),U=new Int16Array((w+2)*a),Q=0,M=!U.subarray||!U.set;for(m=0;m<a;m++){for(b=(m+.5)*u+s,B=Math.max(0,Math.floor(b-y)),C=Math.min(i-1,Math.ceil(b+y)),F=C-B+1,O=new Float32Array(F),E=new Int16Array(F),k=0,R=B,D=0;R<=C;R++,D++)S=f((R+.5-b)*l),k+=S,O[D]=S;for(j=0,D=0;D<O.length;D++)G=O[D]/k,j+=G,E[D]=r(G);for(E[a>>1]+=r(1-j),o=0;o<E.length&&E[o]===0;)o++;if(o<E.length){for(p=E.length-1;p>0&&E[p]===0;)p--;if(_=B+o,v=p-o+1,U[Q++]=_,U[Q++]=v,!M)U.set(E.subarray(o,p+1),Q),Q+=v;else for(D=o;D<=p;D++)U[Q++]=E[D]}else U[Q++]=0,U[Q++]=0}return U}},{"./resize_filter_info":7}],7:[function(d,h,x){h.exports=[{win:.5,filter:function(c){return c>=-.5&&c<.5?1:0}},{win:1,filter:function(c){if(c<=-1||c>=1)return 0;if(c>-11920929e-14&&c<11920929e-14)return 1;var r=c*Math.PI;return Math.sin(r)/r*(.54+.46*Math.cos(r/1))}},{win:2,filter:function(c){if(c<=-2||c>=2)return 0;if(c>-11920929e-14&&c<11920929e-14)return 1;var r=c*Math.PI;return Math.sin(r)/r*Math.sin(r/2)/(r/2)}},{win:3,filter:function(c){if(c<=-3||c>=3)return 0;if(c>-11920929e-14&&c<11920929e-14)return 1;var r=c*Math.PI;return Math.sin(r)/r*Math.sin(r/3)/(r/3)}}]},{}],8:[function(d,h,x){var g=d("./resize_filter_gen");function c(i,a,n){for(var s=3,f=a*n*4|0;s<f;)i[s]=255,s=s+4|0}function r(i){return new Uint8Array(i.buffer,0,i.byteLength)}var t=!0;try{t=new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0]===1}catch{}function e(i,a,n){if(t){a.set(r(i),n);return}for(var s=n,f=0;f<i.length;f++){var u=i[f];a[s++]=u&255,a[s++]=u>>8&255}}h.exports=function(a){var n=a.src,s=a.width,f=a.height,u=a.toWidth,l=a.toHeight,y=a.scaleX||a.toWidth/a.width,m=a.scaleY||a.toHeight/a.height,b=a.offsetX||0,B=a.offsetY||0,C=a.dest||new Uint8Array(u*l*4),F=typeof a.quality>"u"?3:a.quality,O=a.alpha||!1,E=g(F,s,u,y,b),k=g(F,f,l,m,B),R=0,D=this.__align(R+Math.max(n.byteLength,C.byteLength)),S=this.__align(D+f*u*4),j=this.__align(S+E.byteLength),G=j+k.byteLength,o=this.__instance("resize",G),p=new Uint8Array(this.__memory.buffer),_=new Uint32Array(this.__memory.buffer),v=new Uint32Array(n.buffer);_.set(v),e(E,p,S),e(k,p,j);var w=o.exports.convolveHV||o.exports._convolveHV;w(S,j,D,s,f,u,l);var U=new Uint32Array(C.buffer);return U.set(new Uint32Array(this.__memory.buffer,0,l*u)),O||c(C,u,l),C}},{"./resize_filter_gen":6}],9:[function(d,h,x){h.exports={name:"unsharp_mask",fn:d("./unsharp_mask"),wasm_fn:d("./unsharp_mask_wasm"),wasm_src:d("./unsharp_mask_wasm_base64")}},{"./unsharp_mask":10,"./unsharp_mask_wasm":11,"./unsharp_mask_wasm_base64":12}],10:[function(d,h,x){var g=d("glur/mono16");function c(r,t,e){for(var i=t*e,a=new Uint16Array(i),n,s,f,u,l=0;l<i;l++)n=r[4*l],s=r[4*l+1],f=r[4*l+2],u=n>=s&&n>=f?n:s>=f&&s>=n?s:f,a[l]=u<<8;return a}h.exports=function(t,e,i,a,n,s){var f,u,l,y,m;if(!(a===0||n<.5)){n>2&&(n=2);var b=c(t,e,i),B=new Uint16Array(b);g(B,e,i,n);for(var C=a/100*4096+.5|0,F=s<<8,O=e*i,E=0;E<O;E++)f=b[E],y=f-B[E],Math.abs(y)>=F&&(u=f+(C*y+2048>>12),u=u>65280?65280:u,u=u<0?0:u,f=f!==0?f:1,l=(u<<12)/f|0,m=E*4,t[m]=t[m]*l+2048>>12,t[m+1]=t[m+1]*l+2048>>12,t[m+2]=t[m+2]*l+2048>>12)}}},{"glur/mono16":18}],11:[function(d,h,x){h.exports=function(c,r,t,e,i,a){if(!(e===0||i<.5)){i>2&&(i=2);var n=r*t,s=n*4,f=n*2,u=n*2,l=Math.max(r,t)*4,y=8*4,m=0,b=s,B=b+f,C=B+u,F=C+u,O=F+l,E=this.__instance("unsharp_mask",s+f+u*2+l+y,{exp:Math.exp}),k=new Uint32Array(c.buffer),R=new Uint32Array(this.__memory.buffer);R.set(k);var D=E.exports.hsv_v16||E.exports._hsv_v16;D(m,b,r,t),D=E.exports.blurMono16||E.exports._blurMono16,D(b,B,C,F,O,r,t,i),D=E.exports.unsharp||E.exports._unsharp,D(m,m,b,B,r,t,e,a),k.set(new Uint32Array(this.__memory.buffer,0,n))}}},{}],12:[function(d,h,x){h.exports="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"},{}],13:[function(d,h,x){var g=100;function c(r,t){this.create=r,this.available=[],this.acquired={},this.lastId=1,this.timeoutId=0,this.idle=t||2e3}c.prototype.acquire=function(){var r=this,t;return this.available.length!==0?t=this.available.pop():(t=this.create(),t.id=this.lastId++,t.release=function(){return r.release(t)}),this.acquired[t.id]=t,t},c.prototype.release=function(r){var t=this;delete this.acquired[r.id],r.lastUsed=Date.now(),this.available.push(r),this.timeoutId===0&&(this.timeoutId=setTimeout(function(){return t.gc()},g))},c.prototype.gc=function(){var r=this,t=Date.now();this.available=this.available.filter(function(e){return t-e.lastUsed>r.idle?(e.destroy(),!1):!0}),this.available.length!==0?this.timeoutId=setTimeout(function(){return r.gc()},g):this.timeoutId=0},h.exports=c},{}],14:[function(d,h,x){var g=2;h.exports=function(r,t,e,i,a,n){var s=e/r,f=i/t,u=(2*n+g+1)/a;if(u>.5)return[[e,i]];var l=Math.ceil(Math.log(Math.min(s,f))/Math.log(u));if(l<=1)return[[e,i]];for(var y=[],m=0;m<l;m++){var b=Math.round(Math.pow(Math.pow(r,l-m-1)*Math.pow(e,m+1),1/l)),B=Math.round(Math.pow(Math.pow(t,l-m-1)*Math.pow(i,m+1),1/l));y.push([b,B])}return y}},{}],15:[function(d,h,x){var g=1e-5;function c(t){var e=Math.round(t);return Math.abs(t-e)<g?e:Math.floor(t)}function r(t){var e=Math.round(t);return Math.abs(t-e)<g?e:Math.ceil(t)}h.exports=function(e){var i=e.toWidth/e.width,a=e.toHeight/e.height,n=c(e.srcTileSize*i)-2*e.destTileBorder,s=c(e.srcTileSize*a)-2*e.destTileBorder;if(n<1||s<1)throw new Error("Internal error in pica: target tile width/height is too small.");var f,u,l,y,m,b,B=[],C;for(y=0;y<e.toHeight;y+=s)for(l=0;l<e.toWidth;l+=n)f=l-e.destTileBorder,f<0&&(f=0),m=l+n+e.destTileBorder-f,f+m>=e.toWidth&&(m=e.toWidth-f),u=y-e.destTileBorder,u<0&&(u=0),b=y+s+e.destTileBorder-u,u+b>=e.toHeight&&(b=e.toHeight-u),C={toX:f,toY:u,toWidth:m,toHeight:b,toInnerX:l,toInnerY:y,toInnerWidth:n,toInnerHeight:s,offsetX:f/i-c(f/i),offsetY:u/a-c(u/a),scaleX:i,scaleY:a,x:c(f/i),y:c(u/a),width:r(m/i),height:r(b/a)},B.push(C);return B}},{}],16:[function(d,h,x){function g(c){return Object.prototype.toString.call(c)}h.exports.isCanvas=function(r){var t=g(r);return t==="[object HTMLCanvasElement]"||t==="[object OffscreenCanvas]"||t==="[object Canvas]"},h.exports.isImage=function(r){return g(r)==="[object HTMLImageElement]"},h.exports.isImageBitmap=function(r){return g(r)==="[object ImageBitmap]"},h.exports.limiter=function(r){var t=0,e=[];function i(){t<r&&e.length&&(t++,e.shift()())}return function(n){return new Promise(function(s,f){e.push(function(){n().then(function(u){s(u),t--,i()},function(u){f(u),t--,i()})}),i()})}},h.exports.cib_quality_name=function(r){switch(r){case 0:return"pixelated";case 1:return"low";case 2:return"medium"}return"high"},h.exports.cib_support=function(r){return Promise.resolve().then(function(){if(typeof createImageBitmap>"u")return!1;var t=r(100,100);return createImageBitmap(t,0,0,100,100,{resizeWidth:10,resizeHeight:10,resizeQuality:"high"}).then(function(e){var i=e.width===10;return e.close(),t=null,i})}).catch(function(){return!1})},h.exports.worker_offscreen_canvas_support=function(){return new Promise(function(r,t){if(typeof OffscreenCanvas>"u"){r(!1);return}function e(n){if(typeof createImageBitmap>"u"){n.postMessage(!1);return}Promise.resolve().then(function(){var s=new OffscreenCanvas(10,10),f=s.getContext("2d");return f.rect(0,0,1,1),createImageBitmap(s,0,0,1,1)}).then(function(){return n.postMessage(!0)},function(){return n.postMessage(!1)})}var i=btoa("(".concat(e.toString(),")(self);")),a=new Worker("data:text/javascript;base64,".concat(i));a.onmessage=function(n){return r(n.data)},a.onerror=t}).then(function(r){return r},function(){return!1})},h.exports.can_use_canvas=function(r){var t=!1;try{var e=r(2,1),i=e.getContext("2d"),a=i.createImageData(2,1);a.data[0]=12,a.data[1]=23,a.data[2]=34,a.data[3]=255,a.data[4]=45,a.data[5]=56,a.data[6]=67,a.data[7]=255,i.putImageData(a,0,0),a=null,a=i.getImageData(0,0,2,1),a.data[0]===12&&a.data[1]===23&&a.data[2]===34&&a.data[3]===255&&a.data[4]===45&&a.data[5]===56&&a.data[6]===67&&a.data[7]===255&&(t=!0)}catch{}return t},h.exports.cib_can_use_region=function(){return new Promise(function(r){if(typeof createImageBitmap>"u"){r(!1);return}var t=new Image;t.src="data:image/jpeg;base64,/9j/4QBiRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAYAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAAAAABIAAAAAQAAAEgAAAAB/9sAQwAEAwMEAwMEBAMEBQQEBQYKBwYGBgYNCQoICg8NEBAPDQ8OERMYFBESFxIODxUcFRcZGRsbGxAUHR8dGh8YGhsa/9sAQwEEBQUGBQYMBwcMGhEPERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoa/8IAEQgAAQACAwERAAIRAQMRAf/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAF/P//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQH//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z",t.onload=function(){createImageBitmap(t,0,0,t.width,t.height).then(function(e){e.width===t.width&&e.height===t.height?r(!0):r(!1)},function(){return r(!1)})},t.onerror=function(){return r(!1)}})}},{}],17:[function(d,h,x){h.exports=function(){var g=d("./mathlib"),c;onmessage=function(t){var e=t.data.opts,i=!1;if(!e.src&&e.srcBitmap){var a=new OffscreenCanvas(e.width,e.height),n=a.getContext("2d",{alpha:!!e.alpha});n.drawImage(e.srcBitmap,0,0),e.src=n.getImageData(0,0,e.width,e.height).data,a.width=a.height=0,a=null,e.srcBitmap.close(),e.srcBitmap=null,i=!0}c||(c=new g(t.data.features));var s=c.resizeAndUnsharp(e);if(i){var f=new ImageData(new Uint8ClampedArray(s),e.toWidth,e.toHeight),u=new OffscreenCanvas(e.toWidth,e.toHeight),l=u.getContext("2d",{alpha:!!e.alpha});l.putImageData(f,0,0),createImageBitmap(u).then(function(y){postMessage({bitmap:y},[y])})}else postMessage({data:s},[s.buffer])}}},{"./mathlib":1}],18:[function(d,h,x){var g,c,r,t,e,i,a,n;function s(l){l<.5&&(l=.5);var y=Math.exp(.726*.726)/l,m=Math.exp(-y),b=Math.exp(-2*y),B=(1-m)*(1-m)/(1+2*y*m-b);return g=B,c=B*(y-1)*m,r=B*(y+1)*m,t=-B*b,e=2*m,i=-b,a=(g+c)/(1-e-i),n=(r+t)/(1-e-i),new Float32Array([g,c,r,t,e,i,a,n])}function f(l,y,m,b,B,C){var F,O,E,k,R,D,S,j,G,o,p,_,v,w;for(G=0;G<C;G++){for(D=G*B,S=G,j=0,F=l[D],R=F*b[6],k=R,p=b[0],_=b[1],v=b[4],w=b[5],o=0;o<B;o++)O=l[D],E=O*p+F*_+k*v+R*w,R=k,k=E,F=O,m[j]=k,j++,D++;for(D--,j--,S+=C*(B-1),F=l[D],R=F*b[7],k=R,O=F,p=b[2],_=b[3],o=B-1;o>=0;o--)E=O*p+F*_+k*v+R*w,R=k,k=E,F=O,O=l[D],y[S]=m[j]+k,D--,j--,S-=C}}function u(l,y,m,b){if(b){var B=new Uint16Array(l.length),C=new Float32Array(Math.max(y,m)),F=s(b);f(l,B,C,F,y,m),f(B,l,C,F,m,y)}}h.exports=u},{}],19:[function(d,h,x){typeof Object.create=="function"?h.exports=function(c,r){r&&(c.super_=r,c.prototype=Object.create(r.prototype,{constructor:{value:c,enumerable:!1,writable:!0,configurable:!0}}))}:h.exports=function(c,r){if(r){c.super_=r;var t=function(){};t.prototype=r.prototype,c.prototype=new t,c.prototype.constructor=c}}},{}],20:[function(d,h,x){var g=d("object-assign"),c=d("./lib/base64decode"),r=d("./lib/wa_detect"),t={js:!0,wasm:!0};function e(i){if(!(this instanceof e))return new e(i);var a=g({},t,i||{});if(this.options=a,this.__cache={},this.__init_promise=null,this.__modules=a.modules||{},this.__memory=null,this.__wasm={},this.__isLE=new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0]===1,!this.options.js&&!this.options.wasm)throw new Error('mathlib: at least "js" or "wasm" should be enabled')}e.prototype.has_wasm=r,e.prototype.use=function(i){return this.__modules[i.name]=i,this.options.wasm&&this.has_wasm()&&i.wasm_fn?this[i.name]=i.wasm_fn:this[i.name]=i.fn,this},e.prototype.init=function(){if(this.__init_promise)return this.__init_promise;if(!this.options.js&&this.options.wasm&&!this.has_wasm())return Promise.reject(new Error(`mathlib: only "wasm" was enabled, but it's not supported`));var i=this;return this.__init_promise=Promise.all(Object.keys(i.__modules).map(function(a){var n=i.__modules[a];return!i.options.wasm||!i.has_wasm()||!n.wasm_fn||i.__wasm[a]?null:WebAssembly.compile(i.__base64decode(n.wasm_src)).then(function(s){i.__wasm[a]=s})})).then(function(){return i}),this.__init_promise},e.prototype.__base64decode=c,e.prototype.__reallocate=function(a){if(!this.__memory)return this.__memory=new WebAssembly.Memory({initial:Math.ceil(a/(64*1024))}),this.__memory;var n=this.__memory.buffer.byteLength;return n<a&&this.__memory.grow(Math.ceil((a-n)/(64*1024))),this.__memory},e.prototype.__instance=function(a,n,s){if(n&&this.__reallocate(n),!this.__wasm[a]){var f=this.__modules[a];this.__wasm[a]=new WebAssembly.Module(this.__base64decode(f.wasm_src))}if(!this.__cache[a]){var u={memoryBase:0,memory:this.__memory,tableBase:0,table:new WebAssembly.Table({initial:0,element:"anyfunc"})};this.__cache[a]=new WebAssembly.Instance(this.__wasm[a],{env:g(u,s||{})})}return this.__cache[a]},e.prototype.__align=function(a,n){n=n||8;var s=a%n;return a+(s?n-s:0)},h.exports=e},{"./lib/base64decode":21,"./lib/wa_detect":22,"object-assign":23}],21:[function(d,h,x){var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";h.exports=function(r){for(var t=r.replace(/[\r\n=]/g,""),e=t.length,i=new Uint8Array(e*3>>2),a=0,n=0,s=0;s<e;s++)s%4===0&&s&&(i[n++]=a>>16&255,i[n++]=a>>8&255,i[n++]=a&255),a=a<<6|g.indexOf(t.charAt(s));var f=e%4*6;return f===0?(i[n++]=a>>16&255,i[n++]=a>>8&255,i[n++]=a&255):f===18?(i[n++]=a>>10&255,i[n++]=a>>2&255):f===12&&(i[n++]=a>>4&255),i}},{}],22:[function(d,h,x){var g;h.exports=function(){if(typeof g<"u"||(g=!1,typeof WebAssembly>"u"))return g;try{var r=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),t=new WebAssembly.Module(r),e=new WebAssembly.Instance(t,{});return e.exports.test(4)!==0&&(g=!0),g}catch{}return g}},{}],23:[function(d,h,x){var g=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function t(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function e(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var a={},n=0;n<10;n++)a["_"+String.fromCharCode(n)]=n;var s=Object.getOwnPropertyNames(a).map(function(u){return a[u]});if(s.join("")!=="0123456789")return!1;var f={};return"abcdefghijklmnopqrst".split("").forEach(function(u){f[u]=u}),Object.keys(Object.assign({},f)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}h.exports=e()?Object.assign:function(i,a){for(var n,s=t(i),f,u=1;u<arguments.length;u++){n=Object(arguments[u]);for(var l in n)c.call(n,l)&&(s[l]=n[l]);if(g){f=g(n);for(var y=0;y<f.length;y++)r.call(n,f[y])&&(s[f[y]]=n[f[y]])}}return s}},{}],24:[function(d,h,x){var g=arguments[3],c=arguments[4],r=arguments[5],t=JSON.stringify;h.exports=function(e,i){for(var a,n=Object.keys(r),s=0,f=n.length;s<f;s++){var u=n[s],l=r[u].exports;if(l===e||l&&l.default===e){a=u;break}}if(!a){a=Math.floor(Math.pow(16,8)*Math.random()).toString(16);for(var y={},s=0,f=n.length;s<f;s++){var u=n[s];y[u]=u}c[a]=["function(require,module,exports){"+e+"(self); }",y]}var m=Math.floor(Math.pow(16,8)*Math.random()).toString(16),b={};b[a]=a,c[m]=["function(require,module,exports){var f = require("+t(a)+");(f.default ? f.default : f)(self);}",b];var B={};C(m);function C(D){B[D]=!0;for(var S in c[D][1]){var j=c[D][1][S];B[j]||C(j)}}var F="("+g+")({"+Object.keys(B).map(function(D){return t(D)+":["+c[D][0]+","+t(c[D][1])+"]"}).join(",")+"},{},["+t(m)+"])",O=window.URL||window.webkitURL||window.mozURL||window.msURL,E=new Blob([F],{type:"text/javascript"});if(i&&i.bare)return E;var k=O.createObjectURL(E),R=new Worker(k);return R.objectURL=k,R}},{}],"/index.js":[function(d,h,x){function g(o,p){return i(o)||e(o,p)||r(o,p)||c()}function c(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
7
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function r(o,p){if(o){if(typeof o=="string")return t(o,p);var _=Object.prototype.toString.call(o).slice(8,-1);if(_==="Object"&&o.constructor&&(_=o.constructor.name),_==="Map"||_==="Set")return Array.from(o);if(_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_))return t(o,p)}}function t(o,p){(p==null||p>o.length)&&(p=o.length);for(var _=0,v=new Array(p);_<p;_++)v[_]=o[_];return v}function e(o,p){var _=o==null?null:typeof Symbol<"u"&&o[Symbol.iterator]||o["@@iterator"];if(_!=null){var v=[],w=!0,U=!1,Q,M;try{for(_=_.call(o);!(w=(Q=_.next()).done)&&(v.push(Q.value),!(p&&v.length===p));w=!0);}catch(P){U=!0,M=P}finally{try{!w&&_.return!=null&&_.return()}finally{if(U)throw M}}return v}}function i(o){if(Array.isArray(o))return o}var a=d("object-assign"),n=d("webworkify"),s=d("./lib/mathlib"),f=d("./lib/pool"),u=d("./lib/utils"),l=d("./lib/worker"),y=d("./lib/stepper"),m=d("./lib/tiler"),b={},B=!1;try{typeof navigator<"u"&&navigator.userAgent&&(B=navigator.userAgent.indexOf("Safari")>=0)}catch{}var C=1;typeof navigator<"u"&&(C=Math.min(navigator.hardwareConcurrency||1,4));var F={tile:1024,concurrency:C,features:["js","wasm","ww"],idle:2e3,createCanvas:function(p,_){var v=document.createElement("canvas");return v.width=p,v.height=_,v}},O={quality:3,alpha:!1,unsharpAmount:0,unsharpRadius:0,unsharpThreshold:0},E=!1,k=!1,R=!1,D=!1,S=!1;function j(){return{value:n(l),destroy:function(){if(this.value.terminate(),typeof window<"u"){var p=window.URL||window.webkitURL||window.mozURL||window.msURL;p&&p.revokeObjectURL&&this.value.objectURL&&p.revokeObjectURL(this.value.objectURL)}}}}function G(o){if(!(this instanceof G))return new G(o);this.options=a({},F,o||{});var p="lk_".concat(this.options.concurrency);this.__limit=b[p]||u.limiter(this.options.concurrency),b[p]||(b[p]=this.__limit),this.features={js:!1,wasm:!1,cib:!1,ww:!1},this.__workersPool=null,this.__requested_features=[],this.__mathlib=null}G.prototype.init=function(){var o=this;if(this.__initPromise)return this.__initPromise;if(typeof ImageData<"u"&&typeof Uint8ClampedArray<"u")try{new ImageData(new Uint8ClampedArray(400),10,10),E=!0}catch{}typeof ImageBitmap<"u"&&(ImageBitmap.prototype&&ImageBitmap.prototype.close?k=!0:this.debug("ImageBitmap does not support .close(), disabled"));var p=this.options.features.slice();if(p.indexOf("all")>=0&&(p=["cib","wasm","js","ww"]),this.__requested_features=p,this.__mathlib=new s(p),p.indexOf("ww")>=0&&typeof window<"u"&&"Worker"in window)try{var _=d("webworkify")(function(){});_.terminate(),this.features.ww=!0;var v="wp_".concat(JSON.stringify(this.options));b[v]?this.__workersPool=b[v]:(this.__workersPool=new f(j,this.options.idle),b[v]=this.__workersPool)}catch{}var w=this.__mathlib.init().then(function(P){a(o.features,P.features)}),U;k?U=u.cib_support(this.options.createCanvas).then(function(P){if(o.features.cib&&p.indexOf("cib")<0){o.debug("createImageBitmap() resize supported, but disabled by config");return}p.indexOf("cib")>=0&&(o.features.cib=P)}):U=Promise.resolve(!1),R=u.can_use_canvas(this.options.createCanvas);var Q;k&&E&&p.indexOf("ww")!==-1?Q=u.worker_offscreen_canvas_support():Q=Promise.resolve(!1),Q=Q.then(function(P){D=P});var M=u.cib_can_use_region().then(function(P){S=P});return this.__initPromise=Promise.all([w,U,Q,M]).then(function(){return o}),this.__initPromise},G.prototype.__invokeResize=function(o,p){var _=this;return p.__mathCache=p.__mathCache||{},Promise.resolve().then(function(){return _.features.ww?new Promise(function(v,w){var U=_.__workersPool.acquire();p.cancelToken&&p.cancelToken.catch(function(M){return w(M)}),U.value.onmessage=function(M){U.release(),M.data.err?w(M.data.err):v(M.data)};var Q=[];o.src&&Q.push(o.src.buffer),o.srcBitmap&&Q.push(o.srcBitmap),U.value.postMessage({opts:o,features:_.__requested_features,preload:{wasm_nodule:_.__mathlib.__}},Q)}):{data:_.__mathlib.resizeAndUnsharp(o,p.__mathCache)}})},G.prototype.__extractTileData=function(o,p,_,v,w){if(this.features.ww&&D&&(u.isCanvas(p)||S))return this.debug("Create tile for OffscreenCanvas"),createImageBitmap(v.srcImageBitmap||p,o.x,o.y,o.width,o.height).then(function(M){return w.srcBitmap=M,w});if(u.isCanvas(p))return v.srcCtx||(v.srcCtx=p.getContext("2d",{alpha:!!_.alpha})),this.debug("Get tile pixel data"),w.src=v.srcCtx.getImageData(o.x,o.y,o.width,o.height).data,w;this.debug("Draw tile imageBitmap/image to temporary canvas");var U=this.options.createCanvas(o.width,o.height),Q=U.getContext("2d",{alpha:!!_.alpha});return Q.globalCompositeOperation="copy",Q.drawImage(v.srcImageBitmap||p,o.x,o.y,o.width,o.height,0,0,o.width,o.height),this.debug("Get tile pixel data"),w.src=Q.getImageData(0,0,o.width,o.height).data,U.width=U.height=0,w},G.prototype.__landTileData=function(o,p,_){var v;if(this.debug("Convert raw rgba tile result to ImageData"),p.bitmap)return _.toCtx.drawImage(p.bitmap,o.toX,o.toY),null;if(E)v=new ImageData(new Uint8ClampedArray(p.data),o.toWidth,o.toHeight);else if(v=_.toCtx.createImageData(o.toWidth,o.toHeight),v.data.set)v.data.set(p.data);else for(var w=v.data.length-1;w>=0;w--)v.data[w]=p.data[w];return this.debug("Draw tile"),B?_.toCtx.putImageData(v,o.toX,o.toY,o.toInnerX-o.toX,o.toInnerY-o.toY,o.toInnerWidth+1e-5,o.toInnerHeight+1e-5):_.toCtx.putImageData(v,o.toX,o.toY,o.toInnerX-o.toX,o.toInnerY-o.toY,o.toInnerWidth,o.toInnerHeight),null},G.prototype.__tileAndResize=function(o,p,_){var v=this,w={srcCtx:null,srcImageBitmap:null,isImageBitmapReused:!1,toCtx:null},U=function(M){return v.__limit(function(){if(_.canceled)return _.cancelToken;var P={width:M.width,height:M.height,toWidth:M.toWidth,toHeight:M.toHeight,scaleX:M.scaleX,scaleY:M.scaleY,offsetX:M.offsetX,offsetY:M.offsetY,quality:_.quality,alpha:_.alpha,unsharpAmount:_.unsharpAmount,unsharpRadius:_.unsharpRadius,unsharpThreshold:_.unsharpThreshold};return v.debug("Invoke resize math"),Promise.resolve(P).then(function(T){return v.__extractTileData(M,o,_,w,T)}).then(function(T){return v.debug("Invoke resize math"),v.__invokeResize(T,_)}).then(function(T){return _.canceled?_.cancelToken:(w.srcImageData=null,v.__landTileData(M,T,w))})})};return Promise.resolve().then(function(){if(w.toCtx=p.getContext("2d",{alpha:!!_.alpha}),u.isCanvas(o))return null;if(u.isImageBitmap(o))return w.srcImageBitmap=o,w.isImageBitmapReused=!0,null;if(u.isImage(o))return k?(v.debug("Decode image via createImageBitmap"),createImageBitmap(o).then(function(Q){w.srcImageBitmap=Q}).catch(function(Q){return null})):null;throw new Error('Pica: ".from" should be Image, Canvas or ImageBitmap')}).then(function(){if(_.canceled)return _.cancelToken;v.debug("Calculate tiles");var Q=m({width:_.width,height:_.height,srcTileSize:v.options.tile,toWidth:_.toWidth,toHeight:_.toHeight,destTileBorder:_.__destTileBorder}),M=Q.map(function(T){return U(T)});function P(T){T.srcImageBitmap&&(T.isImageBitmapReused||T.srcImageBitmap.close(),T.srcImageBitmap=null)}return v.debug("Process tiles"),Promise.all(M).then(function(){return v.debug("Finished!"),P(w),p},function(T){throw P(w),T})})},G.prototype.__processStages=function(o,p,_,v){var w=this;if(v.canceled)return v.cancelToken;var U=o.shift(),Q=g(U,2),M=Q[0],P=Q[1],T=o.length===0;v=a({},v,{toWidth:M,toHeight:P,quality:T?v.quality:Math.min(1,v.quality)});var z;return T||(z=this.options.createCanvas(M,P)),this.__tileAndResize(p,T?_:z,v).then(function(){return T?_:(v.width=M,v.height=P,w.__processStages(o,z,_,v))}).then(function(Z){return z&&(z.width=z.height=0),Z})},G.prototype.__resizeViaCreateImageBitmap=function(o,p,_){var v=this,w=p.getContext("2d",{alpha:!!_.alpha});return this.debug("Resize via createImageBitmap()"),createImageBitmap(o,{resizeWidth:_.toWidth,resizeHeight:_.toHeight,resizeQuality:u.cib_quality_name(_.quality)}).then(function(U){if(_.canceled)return _.cancelToken;if(!_.unsharpAmount)return w.drawImage(U,0,0),U.close(),w=null,v.debug("Finished!"),p;v.debug("Unsharp result");var Q=v.options.createCanvas(_.toWidth,_.toHeight),M=Q.getContext("2d",{alpha:!!_.alpha});M.drawImage(U,0,0),U.close();var P=M.getImageData(0,0,_.toWidth,_.toHeight);return v.__mathlib.unsharp_mask(P.data,_.toWidth,_.toHeight,_.unsharpAmount,_.unsharpRadius,_.unsharpThreshold),w.putImageData(P,0,0),Q.width=Q.height=0,P=M=Q=w=null,v.debug("Finished!"),p})},G.prototype.resize=function(o,p,_){var v=this;this.debug("Start resize...");var w=a({},O);if(isNaN(_)?_&&(w=a(w,_)):w=a(w,{quality:_}),w.toWidth=p.width,w.toHeight=p.height,w.width=o.naturalWidth||o.width,w.height=o.naturalHeight||o.height,p.width===0||p.height===0)return Promise.reject(new Error("Invalid output size: ".concat(p.width,"x").concat(p.height)));w.unsharpRadius>2&&(w.unsharpRadius=2),w.canceled=!1,w.cancelToken&&(w.cancelToken=w.cancelToken.then(function(Q){throw w.canceled=!0,Q},function(Q){throw w.canceled=!0,Q}));var U=3;return w.__destTileBorder=Math.ceil(Math.max(U,2.5*w.unsharpRadius|0)),this.init().then(function(){if(w.canceled)return w.cancelToken;if(v.features.cib)return v.__resizeViaCreateImageBitmap(o,p,w);if(!R){var Q=new Error("Pica: cannot use getImageData on canvas, make sure fingerprinting protection isn't enabled");throw Q.code="ERR_GET_IMAGE_DATA",Q}var M=y(w.width,w.height,w.toWidth,w.toHeight,v.options.tile,w.__destTileBorder);return v.__processStages(M,o,p,w)})},G.prototype.resizeBuffer=function(o){var p=this,_=a({},O,o);return this.init().then(function(){return p.__mathlib.resizeAndUnsharp(_)})},G.prototype.toBlob=function(o,p,_){return p=p||"image/png",new Promise(function(v){if(o.toBlob){o.toBlob(function(P){return v(P)},p,_);return}if(o.convertToBlob){v(o.convertToBlob({type:p,quality:_}));return}for(var w=atob(o.toDataURL(p,_).split(",")[1]),U=w.length,Q=new Uint8Array(U),M=0;M<U;M++)Q[M]=w.charCodeAt(M);v(new Blob([Q],{type:p}))})},G.prototype.debug=function(){},h.exports=G},{"./lib/mathlib":1,"./lib/pool":13,"./lib/stepper":14,"./lib/tiler":15,"./lib/utils":16,"./lib/worker":17,"object-assign":23,webworkify:24}]},{},[])("/index.js")})}),Y=q(function(A){function I(r,t){var e=new Error(r);return e.code=t,e}function d(r){for(var t=r.toString(16).toUpperCase(),e=2-t.length;e>0;e--)t="0"+t;return"0x"+t}function h(r){try{return unescape(encodeURIComponent(r))}catch{return r}}function x(r){try{return decodeURIComponent(escape(r))}catch{return r}}function g(r){return Object.prototype.toString.call(r)==="[object Uint8Array]"}function c(r,t,e){this.input=r.subarray(t,e),this.start=t;var i=String.fromCharCode.apply(null,this.input.subarray(0,4));if(i!=="II*\0"&&i!=="MM\0*")throw I("invalid TIFF signature","EBADDATA");this.big_endian=i[0]==="M"}c.prototype.each=function(r){this.aborted=!1;var t=this.read_uint32(4);for(this.ifds_to_read=[{id:0,offset:t}];this.ifds_to_read.length>0&&!this.aborted;){var e=this.ifds_to_read.shift();e.offset&&this.scan_ifd(e.id,e.offset,r)}},c.prototype.filter=function(r){var t={};t.ifd0={id:0,entries:[]},this.each(function(n){r(n)===!1&&!n.is_subifd_link||n.is_subifd_link&&n.count!==1&&n.format!==4||(t["ifd"+n.ifd]||(t["ifd"+n.ifd]={id:n.ifd,entries:[]}),t["ifd"+n.ifd].entries.push(n))}),delete t.ifd1;var e=8;Object.keys(t).forEach(function(n){e+=2,t[n].entries.forEach(function(s){e+=12+(s.data_length>4?Math.ceil(s.data_length/2)*2:0)}),e+=4}),this.output=new Uint8Array(e),this.output[0]=this.output[1]=(this.big_endian?"M":"I").charCodeAt(0),this.write_uint16(2,42);var i=8,a=this;if(this.write_uint32(4,i),Object.keys(t).forEach(function(n){t[n].written_offset=i;var s=i,f=s+2+t[n].entries.length*12+4;i=f,a.write_uint16(s,t[n].entries.length),t[n].entries.sort(function(l,y){return l.tag-y.tag}).forEach(function(l,y){var m=s+2+y*12;a.write_uint16(m,l.tag),a.write_uint16(m+2,l.format),a.write_uint32(m+4,l.count),l.is_subifd_link?t["ifd"+l.tag]&&(t["ifd"+l.tag].link_offset=m+8):l.data_length<=4?a.output.set(a.input.subarray(l.data_offset-a.start,l.data_offset-a.start+4),m+8):(a.write_uint32(m+8,i),a.output.set(a.input.subarray(l.data_offset-a.start,l.data_offset-a.start+l.data_length),i),i+=Math.ceil(l.data_length/2)*2)});var u=t["ifd"+(t[n].id+1)];u&&(u.link_offset=f-4)}),Object.keys(t).forEach(function(n){t[n].written_offset&&t[n].link_offset&&a.write_uint32(t[n].link_offset,t[n].written_offset)}),this.output.length!==i)throw I("internal error: incorrect buffer size allocated");return this.output},c.prototype.read_uint16=function(r){var t=this.input;if(r+2>t.length)throw I("unexpected EOF","EBADDATA");return this.big_endian?t[r]*256+t[r+1]:t[r]+t[r+1]*256},c.prototype.read_uint32=function(r){var t=this.input;if(r+4>t.length)throw I("unexpected EOF","EBADDATA");return this.big_endian?t[r]*16777216+t[r+1]*65536+t[r+2]*256+t[r+3]:t[r]+t[r+1]*256+t[r+2]*65536+t[r+3]*16777216},c.prototype.write_uint16=function(r,t){var e=this.output;this.big_endian?(e[r]=t>>>8&255,e[r+1]=t&255):(e[r]=t&255,e[r+1]=t>>>8&255)},c.prototype.write_uint32=function(r,t){var e=this.output;this.big_endian?(e[r]=t>>>24&255,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255):(e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24&255)},c.prototype.is_subifd_link=function(r,t){return r===0&&t===34665||r===0&&t===34853||r===34665&&t===40965},c.prototype.exif_format_length=function(r){switch(r){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}},c.prototype.exif_format_read=function(r,t){var e;switch(r){case 1:case 2:return e=this.input[t],e;case 6:return e=this.input[t],e|(e&128)*33554430;case 3:return e=this.read_uint16(t),e;case 8:return e=this.read_uint16(t),e|(e&32768)*131070;case 4:return e=this.read_uint32(t),e;case 9:return e=this.read_uint32(t),e|0;case 5:case 10:case 11:case 12:return null;case 7:return null;default:return null}},c.prototype.scan_ifd=function(r,t,e){var i=this.read_uint16(t);t+=2;for(var a=0;a<i;a++){var n=this.read_uint16(t),s=this.read_uint16(t+2),f=this.read_uint32(t+4),u=this.exif_format_length(s),l=f*u,y=l<=4?t+8:this.read_uint32(t+8),m=!1;if(y+l>this.input.length)throw I("unexpected EOF","EBADDATA");for(var b=[],B=y,C=0;C<f;C++,B+=u){var F=this.exif_format_read(s,B);if(F===null){b=null;break}b.push(F)}if(Array.isArray(b)&&s===2){try{b=x(String.fromCharCode.apply(null,b))}catch{b=null}b&&b[b.length-1]==="\0"&&(b=b.slice(0,-1))}this.is_subifd_link(r,n)&&Array.isArray(b)&&Number.isInteger(b[0])&&b[0]>0&&(this.ifds_to_read.push({id:n,offset:b[0]}),m=!0);var O={is_big_endian:this.big_endian,ifd:r,tag:n,format:s,count:f,entry_offset:t+this.start,data_length:l,data_offset:y+this.start,value:b,is_subifd_link:m};if(e(O)===!1){this.aborted=!0;return}t+=12}r===0&&this.ifds_to_read.push({id:1,offset:this.read_uint32(t)})},A.exports.is_jpeg=function(r){return r.length>=4&&r[0]===255&&r[1]===216&&r[2]===255},A.exports.jpeg_segments_each=function(r,t){if(!g(r))throw I("Invalid argument (jpeg_bin), Uint8Array expected","EINVAL");if(typeof t!="function")throw I("Invalid argument (on_segment), Function expected","EINVAL");if(!A.exports.is_jpeg(r))throw I("Unknown file format","ENOTJPEG");for(var e=0,i=r.length,a=!1;;){var n,s;if(e+1>=i)throw I("Unexpected EOF","EBADDATA");var f=r[e],u=r[e+1];if(f===255&&u===255)n=255,s=1;else if(f===255&&u!==0){if(n=u,s=2,!(208<=n&&n<=217||n===1)){if(e+3>=i)throw I("Unexpected EOF","EBADDATA");if(s+=r[e+2]*256+r[e+3],s<2)throw I("Invalid segment length","EBADDATA");if(e+s-1>=i)throw I("Unexpected EOF","EBADDATA")}a&&(n>=208&&n<=215||(a=!1)),n===218&&(a=!0)}else if(a)for(var l=e+1;;l++){if(l>=i)throw I("Unexpected EOF","EBADDATA");if(r[l]===255){if(l+1>=i)throw I("Unexpected EOF","EBADDATA");if(r[l+1]!==0){n=0,s=l-e;break}}}else throw I("Unexpected byte at segment start: "+d(f)+" (offset "+d(e)+")","EBADDATA");if(t({code:n,offset:e,length:s})===!1||n===217)break;e+=s}},A.exports.jpeg_segments_filter=function(r,t){if(!g(r))throw I("Invalid argument (jpeg_bin), Uint8Array expected","EINVAL");if(typeof t!="function")throw I("Invalid argument (on_segment), Function expected","EINVAL");var e=[],i=0;A.exports.jpeg_segments_each(r,function(s){var f=t(s);if(g(f))e.push({data:f}),i+=f.length;else if(Array.isArray(f))f.filter(g).forEach(function(l){e.push({data:l}),i+=l.length});else if(f!==!1){var u={start:s.offset,end:s.offset+s.length};e.length>0&&e[e.length-1].end===u.start?e[e.length-1].end=u.end:e.push(u),i+=s.length}});var a=new Uint8Array(i),n=0;return e.forEach(function(s){var f=s.data||r.subarray(s.start,s.end);a.set(f,n),n+=f.length}),a},A.exports.jpeg_exif_tags_each=function(r,t){if(!g(r))throw I("Invalid argument (jpeg_bin), Uint8Array expected","EINVAL");if(typeof t!="function")throw I("Invalid argument (on_exif_entry), Function expected","EINVAL");A.exports.jpeg_segments_each(r,function(e){if(e.code===218)return!1;if(e.code===225&&e.length>=10&&r[e.offset+4]===69&&r[e.offset+5]===120&&r[e.offset+6]===105&&r[e.offset+7]===102&&r[e.offset+8]===0&&r[e.offset+9]===0)return new c(r,e.offset+10,e.offset+e.length).each(t),!1})},A.exports.jpeg_exif_tags_filter=function(r,t){if(!g(r))throw I("Invalid argument (jpeg_bin), Uint8Array expected","EINVAL");if(typeof t!="function")throw I("Invalid argument (on_exif_entry), Function expected","EINVAL");var e=!1;return A.exports.jpeg_segments_filter(r,function(i){if(!e&&(i.code===218&&(e=!0),i.code===225&&i.length>=10&&r[i.offset+4]===69&&r[i.offset+5]===120&&r[i.offset+6]===105&&r[i.offset+7]===102&&r[i.offset+8]===0&&r[i.offset+9]===0)){var a=new c(r,i.offset+10,i.offset+i.length).filter(t);if(!a)return!1;var n=new Uint8Array(10);return n.set(r.slice(i.offset,i.offset+10)),n[2]=a.length+8>>>8&255,n[3]=a.length+8&255,e=!0,[n,a]}})},A.exports.jpeg_add_comment=function(r,t){var e=!1,i=0;return A.exports.jpeg_segments_filter(r,function(a){if(i++,!(i===1&&a.code===216)&&!(i===2&&a.code===224)&&!e){t=h(t);var n=new Uint8Array(5+t.length),s=0;return n[s++]=255,n[s++]=254,n[s++]=t.length+3>>>8&255,n[s++]=t.length+3&255,t.split("").forEach(function(f){n[s++]=f.charCodeAt(0)&255}),n[s++]=0,e=!0,[n,r.subarray(a.offset,a.offset+a.length)]}})}});function tt(A){return this._getUint8Array(A.blob).then(function(I){if(A.is_jpeg=Y.is_jpeg(I),!A.is_jpeg)return Promise.resolve(A);A.orig_blob=A.blob;try{var d,h;if(Y.jpeg_exif_tags_each(I,function(g){if(g.ifd===0&&g.tag===274&&Array.isArray(g.value))return A.orientation=g.value[0]||1,d=g.is_big_endian,h=g.data_offset,!1}),h){var x=d?new Uint8Array([0,1]):new Uint8Array([1,0]);A.blob=new Blob([I.slice(0,h),x,I.slice(h+2)],{type:"image/jpeg"})}}catch{}return A})}function et(A){if(!A.is_jpeg)return Promise.resolve(A);var I=A.orientation-1;if(!I)return Promise.resolve(A);var d;I&4?d=this.pica.options.createCanvas(A.out_canvas.height,A.out_canvas.width):d=this.pica.options.createCanvas(A.out_canvas.width,A.out_canvas.height);var h=d.getContext("2d");return h.save(),I&1&&h.transform(-1,0,0,1,d.width,0),I&2&&h.transform(-1,0,0,-1,d.width,d.height),I&4&&h.transform(0,1,1,0,0,0),h.drawImage(A.out_canvas,0,0),h.restore(),A.out_canvas.width=A.out_canvas.height=0,A.out_canvas=d,Promise.resolve(A)}function rt(A){return A.is_jpeg?Promise.all([this._getUint8Array(A.blob),this._getUint8Array(A.out_blob)]).then(function(I){var d=I[0],h=I[1];if(!Y.is_jpeg(d))return Promise.resolve(A);var x=[];return Y.jpeg_segments_each(d,function(g){if(g.code===218)return!1;x.push(g)}),x=x.filter(function(g){return g.code===226?!1:g.code>=224&&g.code<240||g.code===254}).map(function(g){return d.slice(g.offset,g.offset+g.length)}),A.out_blob=new Blob([h.slice(0,2)].concat(x).concat([h.slice(20)]),{type:"image/jpeg"}),A}):Promise.resolve(A)}function at(A){A.before("_blob_to_image",tt),A.after("_transform",et),A.after("_create_blob",rt)}var it=at,nt={assign:it};function L(A){if(!(this instanceof L))return new L(A);A=A||{},this.pica=A.pica||X({}),this.initialized=!1,this.utils=W}L.prototype.use=function(A){var I=[this].concat(Array.prototype.slice.call(arguments,1));return A.apply(A,I),this};L.prototype.init=function(){this.use(nt.assign)};L.prototype.toBlob=function(A,I){var d=W.assign({max:1/0},I),h={blob:A,opts:d};return this.initialized||(this.init(),this.initialized=!0),Promise.resolve(h).then(this._blob_to_image).then(this._calculate_size).then(this._transform).then(this._cleanup).then(this._create_blob).then(function(x){return x.out_canvas.width=x.out_canvas.height=0,x.out_blob})};L.prototype.toCanvas=function(A,I){var d=W.assign({max:1/0},I),h={blob:A,opts:d};return this.initialized||(this.init(),this.initialized=!0),Promise.resolve(h).then(this._blob_to_image).then(this._calculate_size).then(this._transform).then(this._cleanup).then(function(x){return x.out_canvas})};L.prototype.before=function(A,I){if(!this[A])throw new Error('Method "'+A+'" does not exist');if(typeof I!="function")throw new Error('Invalid argument "fn", function expected');var d=this[A],h=this;return this[A]=function(x){return I.call(h,x).then(function(g){return d.call(h,g)})},this};L.prototype.after=function(A,I){if(!this[A])throw new Error('Method "'+A+'" does not exist');if(typeof I!="function")throw new Error('Invalid argument "fn", function expected');var d=this[A],h=this;return this[A]=function(x){return d.call(h,x).then(function(g){return I.call(h,g)})},this};L.prototype._blob_to_image=function(A){var I=window.URL||window.webkitURL||window.mozURL||window.msURL;return A.image=document.createElement("img"),A.image_url=I.createObjectURL(A.blob),A.image.src=A.image_url,new Promise(function(d,h){A.image.onerror=function(){h(new Error("ImageBlobReduce: failed to create Image() from blob"))},A.image.onload=function(){d(A)}})};L.prototype._calculate_size=function(A){var I=A.opts.max/Math.max(A.image.width,A.image.height);return I>1&&(I=1),A.transform_width=Math.max(Math.round(A.image.width*I),1),A.transform_height=Math.max(Math.round(A.image.height*I),1),A.scale_factor=I,Promise.resolve(A)};L.prototype._transform=function(A){A.out_canvas=this.pica.options.createCanvas(A.transform_width,A.transform_height),A.transform_width=null,A.transform_height=null;var I={alpha:A.blob.type==="image/png"};return this.utils.assign(I,this.utils.pick_pica_resize_options(A.opts)),this.pica.resize(A.image,A.out_canvas,I).then(function(){return A})};L.prototype._cleanup=function(A){A.image.src="",A.image=null;var I=window.URL||window.webkitURL||window.mozURL||window.msURL;return I.revokeObjectURL&&I.revokeObjectURL(A.image_url),A.image_url=null,Promise.resolve(A)};L.prototype._create_blob=function(A){return this.pica.toBlob(A.out_canvas,A.blob.type).then(function(I){return A.out_blob=I,A})};L.prototype._getUint8Array=function(A){return A.arrayBuffer?A.arrayBuffer().then(function(I){return new Uint8Array(I)}):new Promise(function(I,d){var h=new FileReader;h.readAsArrayBuffer(A),h.onload=function(){I(new Uint8Array(h.result))},h.onerror=function(){d(new Error("ImageBlobReduce: failed to load data from input blob")),h.abort()},h.onabort=function(){d(new Error("ImageBlobReduce: failed to load data from input blob (aborted)"))}})};L.pica=X;var ot=L;export{ot as default};
|
|
8
|
+
//# sourceMappingURL=image-blob-reduce.esm-B6b2_-a4.js.map
|