@dwelle/excalidraw 0.5.0-bb58eff → 0.5.0-bcfbd91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-9cddb37f-5K5MMBTZ.js → c4Diagram-9cddb37f-Z2BVR4KG.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-YLFK45LY.js → chunk-2R746FJ3.js} +21 -21
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-HPE2QM6Z.js → chunk-4YGSGIMJ.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-FG5PX37Z.js → chunk-7ZK24NYG.js} +398 -930
- package/dist/browser/dev/excalidraw-assets-dev/chunk-7ZK24NYG.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-VJWYXZRD.js → chunk-A4L3DQO2.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-LARCHXKL.js → chunk-CWUUGB6C.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-PTRCE3YZ.js → chunk-DLCKQH3C.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-ABU3Y4P6.js → chunk-IVZGHBP3.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-VVJS3CBB.js → chunk-J3RT3AEL.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-AQ5OI7FF.js → chunk-KN673SBB.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-OBKV4VWD.js → chunk-OGN4DE2Q.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-JRHEG4KR.js → chunk-P3NJMBHG.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-UN4RKPVH.js → chunk-QP4L67PY.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-AU5UG6FO.js → chunk-U7QYLFAH.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-FSI24XHB.js → chunk-ULL4JVA4.js} +7 -7
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-2WPXONHI.js → chunk-WFIY45QO.js} +2 -5
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-2WPXONHI.js.map → chunk-WFIY45QO.js.map} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-RMILGNZX.js → chunk-WWRYLVJC.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-bc733c3b-NWRL2CDH.js → classDiagram-bc733c3b-K5SPPM5G.js} +7 -7
- package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-8931bdaf-Y5FPX4CT.js → classDiagram-v2-8931bdaf-LMQ4MBCJ.js} +10 -10
- package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-VWSBJ543.js → directory-open-01563666-HET5VGVW.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-FYNYOZXP.js → directory-open-4ed118d0-EEZTUAOR.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/dist-MMLCHBGE.js +10 -0
- package/dist/browser/dev/excalidraw-assets-dev/{en-OFPNSLTO.js → en-CJBKYSM5.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-f6946109-URHWBVQF.js → erDiagram-f6946109-T5ZYWW62.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-K7UWK3UX.js → file-open-002ab408-2OQEKDVS.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-PUS6AQBV.js → file-open-7c801643-7IDWBVQC.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-AVBJT4K7.js → file-save-3189631c-D66DZOSK.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-FCWOWXVA.js → file-save-745eba88-3NARDH2Z.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-93327f21-ARY24FIN.js → flowDiagram-93327f21-OFTBRZYD.js} +11 -11
- package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-476db779-Y3LYCDLM.js → flowDiagram-v2-476db779-VVUICW5U.js} +11 -11
- package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5082a990-DTGYPOS7.js → flowchart-elk-definition-5082a990-KDDK5LFE.js} +8 -8
- package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-7ce12d6b-GWKDCJYX.js → ganttDiagram-7ce12d6b-XW6BLNYB.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-1e960c50-A4SIEE63.js → gitGraphDiagram-1e960c50-WAVVX7YE.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{image-ZQHNSB7P.css → image-BMBZMPAN.css} +20 -99
- package/dist/browser/dev/excalidraw-assets-dev/image-BMBZMPAN.css.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{image-J27XZPQC.js → image-DG6G3CCZ.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-BDWVJKFQ.js → image-blob-reduce.esm-OJYOZNL4.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-264bed3e-AUF35UHX.js → infoDiagram-264bed3e-SMYVWNAJ.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-31be0096-ADAT3O42.js → journeyDiagram-31be0096-IXIWAKJV.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-4fc2557c-YC2LM75P.js → mindmap-definition-4fc2557c-H5WTPEBY.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{pica-GXUQBC7B.js → pica-RRHXYZO2.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-157505fe-4XR6DLIZ.js → pieDiagram-157505fe-3LXENDEP.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-fd70f2d0-LIR55Z6M.js → quadrantDiagram-fd70f2d0-CBA7LD4X.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-19c99588-NKRCRRBM.js → requirementDiagram-19c99588-53JLZTYM.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{roundRect-ZNZYUVWJ.js → roundRect-5HI6M3OA.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-5dfd0049-VUKNRO5G.js → sequenceDiagram-5dfd0049-XJRLBGS7.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-133e3642-3NYPG4IW.js → stateDiagram-133e3642-ZVPN2MPZ.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-6371a76b-YINZI7AG.js → stateDiagram-v2-6371a76b-QIW3VCSC.js} +10 -10
- package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-5ed366f4-KWC42LPI.js → timeline-definition-5ed366f4-LGCWVNZT.js} +3 -3
- package/dist/browser/dev/index.css +19 -98
- package/dist/browser/dev/index.css.map +2 -2
- package/dist/browser/dev/index.js +5 -5
- package/dist/browser/prod/excalidraw-assets/{c4Diagram-9cddb37f-UIUBGLLC.js → c4Diagram-9cddb37f-CSAXQUMT.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-I32TF3FD.js → chunk-56HIV6N6.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-X3V4W6Y3.js → chunk-5PG4MN6E.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-XXT5RS66.js → chunk-5PXNTGLF.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-EQDCUI7P.js → chunk-6LDES2GZ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-4C6GEPVI.js → chunk-BWJEY7EX.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-LOWTGNCV.js → chunk-CP5W5ACF.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/chunk-DBUEOZT5.js +269 -0
- package/dist/browser/prod/excalidraw-assets/{chunk-MJ2YKZ3B.js → chunk-DF24HG3F.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-FVDUD6XA.js → chunk-DVVGVVYL.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-7CLKPETF.js → chunk-GTO2REC5.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-YGSQT3TE.js → chunk-KQZZ435A.js} +2 -2
- package/dist/browser/prod/excalidraw-assets/{chunk-RVQN2TTU.js → chunk-ONH2E3HD.js} +3 -3
- package/dist/browser/prod/excalidraw-assets/{chunk-FGOIQKRL.js → chunk-QK2I4STK.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-VZ5ZGWAN.js → chunk-TGFMJVS6.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-5EY4KGYU.js → chunk-V6GEKVIM.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-VI6ARPX6.js → chunk-W7OUYNQP.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{classDiagram-bc733c3b-6BX33ZTH.js → classDiagram-bc733c3b-FZUH7HPQ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{classDiagram-v2-8931bdaf-ACBVEHQO.js → classDiagram-v2-8931bdaf-LRVGH5BD.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{directory-open-01563666-C2PFQBKL.js → directory-open-01563666-WBDEPWFN.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{directory-open-4ed118d0-E55HNHTS.js → directory-open-4ed118d0-SHTOCZXQ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/dist-JMLVFQ4W.js +1 -0
- package/dist/browser/prod/excalidraw-assets/{en-46OXMRU6.js → en-6EOGX47W.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{erDiagram-f6946109-TYWREFGK.js → erDiagram-f6946109-IIBR3HHT.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{file-open-002ab408-FQU3HANB.js → file-open-002ab408-7YMAGCE3.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{file-open-7c801643-BCD55L36.js → file-open-7c801643-2UIR6WEW.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{file-save-3189631c-TAXV2OAM.js → file-save-3189631c-UAJTEO5I.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{file-save-745eba88-DPWZ3VE6.js → file-save-745eba88-TOUSYUTX.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{flowDiagram-93327f21-4VGGLTSV.js → flowDiagram-93327f21-XIY3FFTU.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-476db779-EQMWJJEV.js +1 -0
- package/dist/browser/prod/excalidraw-assets/{flowchart-elk-definition-5082a990-DWI3JPDY.js → flowchart-elk-definition-5082a990-LJBHN7JH.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{ganttDiagram-7ce12d6b-FGLMWLXT.js → ganttDiagram-7ce12d6b-CBM3PKRU.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{gitGraphDiagram-1e960c50-6PYRBTDK.js → gitGraphDiagram-1e960c50-TZDQTV4Y.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/image-NFLQBKBU.js +1 -0
- package/dist/browser/prod/excalidraw-assets/image-TGGHFJHC.css +1 -0
- package/dist/browser/prod/excalidraw-assets/{image-blob-reduce.esm-7C326NDW.js → image-blob-reduce.esm-NOK55Z4R.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{infoDiagram-264bed3e-B3RQYU4J.js → infoDiagram-264bed3e-VTVTW2PT.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{journeyDiagram-31be0096-SPHJ2Z6S.js → journeyDiagram-31be0096-3RXCXFNL.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{mindmap-definition-4fc2557c-EKE5IPT5.js → mindmap-definition-4fc2557c-U2MTITUZ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{pica-WBNTBMON.js → pica-FN4U5BBA.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{pieDiagram-157505fe-R3GPKUOS.js → pieDiagram-157505fe-UPOKDCDE.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{quadrantDiagram-fd70f2d0-E6DDN2FC.js → quadrantDiagram-fd70f2d0-G6SC76BN.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{requirementDiagram-19c99588-EDK37RW4.js → requirementDiagram-19c99588-OPA5Q2CG.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{roundRect-P4IDSYXR.js → roundRect-YDYZGRTK.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{sequenceDiagram-5dfd0049-SDPAZI6N.js → sequenceDiagram-5dfd0049-RLLGIVI3.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{stateDiagram-133e3642-2GOIU2WH.js → stateDiagram-133e3642-POU4VV6D.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{stateDiagram-v2-6371a76b-HIFSCSY4.js → stateDiagram-v2-6371a76b-TI5DGF27.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{timeline-definition-5ed366f4-KTXR6TKT.js → timeline-definition-5ed366f4-RRRA7YP4.js} +1 -1
- package/dist/browser/prod/index.css +1 -1
- package/dist/browser/prod/index.js +1 -1
- package/dist/{prod/en-54AU74IP.json → dev/en-JBWHKG2R.json} +1 -4
- package/dist/dev/index.css +19 -98
- package/dist/dev/index.css.map +2 -2
- package/dist/dev/index.js +524 -863
- package/dist/dev/index.js.map +4 -4
- package/dist/excalidraw/actions/actionAddToLibrary.d.ts +0 -9
- package/dist/excalidraw/actions/actionBoundText.d.ts +0 -6
- package/dist/excalidraw/actions/actionBoundText.js +1 -4
- package/dist/excalidraw/actions/actionCanvas.d.ts +0 -36
- package/dist/excalidraw/actions/actionClipboard.d.ts +0 -21
- package/dist/excalidraw/actions/actionDeleteSelected.d.ts +0 -9
- package/dist/excalidraw/actions/actionDuplicateSelection.js +0 -4
- package/dist/excalidraw/actions/actionElementLock.d.ts +0 -6
- package/dist/excalidraw/actions/actionExport.d.ts +1 -28
- package/dist/excalidraw/actions/actionFinalize.d.ts +0 -6
- package/dist/excalidraw/actions/actionFrame.d.ts +0 -9
- package/dist/excalidraw/actions/actionGroup.d.ts +0 -6
- package/dist/excalidraw/actions/actionGroup.js +2 -4
- package/dist/excalidraw/actions/actionHistory.js +0 -3
- package/dist/excalidraw/actions/actionLinearEditor.d.ts +0 -3
- package/dist/excalidraw/actions/actionLink.d.ts +0 -3
- package/dist/excalidraw/actions/actionMenu.d.ts +0 -9
- package/dist/excalidraw/actions/actionNavigate.d.ts +0 -6
- package/dist/excalidraw/actions/actionNavigate.js +6 -15
- package/dist/excalidraw/actions/actionProperties.d.ts +0 -39
- package/dist/excalidraw/actions/actionSelectAll.d.ts +0 -3
- package/dist/excalidraw/actions/actionStyles.d.ts +0 -3
- package/dist/excalidraw/actions/actionToggleGridMode.d.ts +0 -3
- package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +0 -3
- package/dist/excalidraw/actions/actionToggleStats.d.ts +0 -3
- package/dist/excalidraw/actions/actionToggleViewMode.d.ts +0 -3
- package/dist/excalidraw/actions/actionToggleZenMode.d.ts +0 -3
- package/dist/excalidraw/actions/actionZindex.d.ts +11 -11
- package/dist/excalidraw/clients.d.ts +1 -10
- package/dist/excalidraw/clients.js +6 -153
- package/dist/excalidraw/components/App.d.ts +3 -3
- package/dist/excalidraw/components/App.js +38 -20
- package/dist/excalidraw/components/Avatar.d.ts +3 -2
- package/dist/excalidraw/components/Avatar.js +5 -2
- package/dist/excalidraw/components/UserList.d.ts +7 -3
- package/dist/excalidraw/components/UserList.js +34 -63
- package/dist/excalidraw/components/canvases/InteractiveCanvas.js +22 -19
- package/dist/excalidraw/components/icons.d.ts +0 -2
- package/dist/excalidraw/components/icons.js +1 -3
- package/dist/excalidraw/constants.d.ts +3 -2
- package/dist/excalidraw/constants.js +3 -3
- package/dist/excalidraw/data/restore.d.ts +3 -3
- package/dist/excalidraw/data/restore.js +6 -5
- package/dist/excalidraw/data/transform.d.ts +1 -1
- package/dist/excalidraw/data/transform.js +3 -4
- package/dist/excalidraw/element/embeddable.d.ts +0 -3
- package/dist/excalidraw/element/linearElementEditor.d.ts +1 -5
- package/dist/excalidraw/element/newElement.d.ts +1 -1
- package/dist/excalidraw/element/newElement.js +1 -2
- package/dist/excalidraw/element/types.d.ts +2 -14
- package/dist/excalidraw/errors.d.ts +0 -3
- package/dist/excalidraw/errors.js +0 -3
- package/dist/excalidraw/frame.d.ts +1 -1
- package/dist/excalidraw/laser-trails.js +1 -1
- package/dist/excalidraw/locales/en.json +1 -4
- package/dist/excalidraw/renderer/interactiveScene.js +119 -13
- package/dist/excalidraw/renderer/staticScene.js +4 -5
- package/dist/excalidraw/scene/Scene.d.ts +6 -7
- package/dist/excalidraw/scene/Scene.js +13 -28
- package/dist/excalidraw/scene/export.js +1 -2
- package/dist/excalidraw/scene/types.d.ts +21 -10
- package/dist/excalidraw/types.d.ts +4 -7
- package/dist/excalidraw/utils.js +0 -3
- package/dist/excalidraw/zindex.d.ts +2 -2
- package/dist/excalidraw/zindex.js +13 -9
- package/dist/{dev/en-54AU74IP.json → prod/en-JBWHKG2R.json} +1 -4
- package/dist/prod/index.css +1 -1
- package/dist/prod/index.js +39 -39
- package/package.json +3 -4
- package/dist/browser/dev/excalidraw-assets-dev/chunk-FG5PX37Z.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/dist-HOOQ44NM.js +0 -10
- package/dist/browser/dev/excalidraw-assets-dev/image-ZQHNSB7P.css.map +0 -7
- package/dist/browser/prod/excalidraw-assets/chunk-D2I3QE7U.js +0 -269
- package/dist/browser/prod/excalidraw-assets/dist-XTBKPFET.js +0 -1
- package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-476db779-KLWICWG3.js +0 -1
- package/dist/browser/prod/excalidraw-assets/image-M662KTMJ.css +0 -1
- package/dist/browser/prod/excalidraw-assets/image-XP52XYUU.js +0 -1
- package/dist/excalidraw/data/reconcile.d.ts +0 -6
- package/dist/excalidraw/data/reconcile.js +0 -49
- package/dist/excalidraw/fractionalIndex.d.ts +0 -40
- package/dist/excalidraw/fractionalIndex.js +0 -241
- /package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-9cddb37f-5K5MMBTZ.js.map → c4Diagram-9cddb37f-Z2BVR4KG.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-YLFK45LY.js.map → chunk-2R746FJ3.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-HPE2QM6Z.js.map → chunk-4YGSGIMJ.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-VJWYXZRD.js.map → chunk-A4L3DQO2.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-LARCHXKL.js.map → chunk-CWUUGB6C.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-PTRCE3YZ.js.map → chunk-DLCKQH3C.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-ABU3Y4P6.js.map → chunk-IVZGHBP3.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-VVJS3CBB.js.map → chunk-J3RT3AEL.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-AQ5OI7FF.js.map → chunk-KN673SBB.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-OBKV4VWD.js.map → chunk-OGN4DE2Q.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-JRHEG4KR.js.map → chunk-P3NJMBHG.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-UN4RKPVH.js.map → chunk-QP4L67PY.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-AU5UG6FO.js.map → chunk-U7QYLFAH.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-FSI24XHB.js.map → chunk-ULL4JVA4.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-RMILGNZX.js.map → chunk-WWRYLVJC.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-bc733c3b-NWRL2CDH.js.map → classDiagram-bc733c3b-K5SPPM5G.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-8931bdaf-Y5FPX4CT.js.map → classDiagram-v2-8931bdaf-LMQ4MBCJ.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-VWSBJ543.js.map → directory-open-01563666-HET5VGVW.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-FYNYOZXP.js.map → directory-open-4ed118d0-EEZTUAOR.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{dist-HOOQ44NM.js.map → dist-MMLCHBGE.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{en-OFPNSLTO.js.map → en-CJBKYSM5.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-f6946109-URHWBVQF.js.map → erDiagram-f6946109-T5ZYWW62.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-K7UWK3UX.js.map → file-open-002ab408-2OQEKDVS.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-PUS6AQBV.js.map → file-open-7c801643-7IDWBVQC.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-AVBJT4K7.js.map → file-save-3189631c-D66DZOSK.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-FCWOWXVA.js.map → file-save-745eba88-3NARDH2Z.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-93327f21-ARY24FIN.js.map → flowDiagram-93327f21-OFTBRZYD.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-476db779-Y3LYCDLM.js.map → flowDiagram-v2-476db779-VVUICW5U.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5082a990-DTGYPOS7.js.map → flowchart-elk-definition-5082a990-KDDK5LFE.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-7ce12d6b-GWKDCJYX.js.map → ganttDiagram-7ce12d6b-XW6BLNYB.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-1e960c50-A4SIEE63.js.map → gitGraphDiagram-1e960c50-WAVVX7YE.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{image-J27XZPQC.js.map → image-DG6G3CCZ.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-BDWVJKFQ.js.map → image-blob-reduce.esm-OJYOZNL4.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-264bed3e-AUF35UHX.js.map → infoDiagram-264bed3e-SMYVWNAJ.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-31be0096-ADAT3O42.js.map → journeyDiagram-31be0096-IXIWAKJV.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-4fc2557c-YC2LM75P.js.map → mindmap-definition-4fc2557c-H5WTPEBY.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{pica-GXUQBC7B.js.map → pica-RRHXYZO2.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-157505fe-4XR6DLIZ.js.map → pieDiagram-157505fe-3LXENDEP.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-fd70f2d0-LIR55Z6M.js.map → quadrantDiagram-fd70f2d0-CBA7LD4X.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-19c99588-NKRCRRBM.js.map → requirementDiagram-19c99588-53JLZTYM.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{roundRect-ZNZYUVWJ.js.map → roundRect-5HI6M3OA.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-5dfd0049-VUKNRO5G.js.map → sequenceDiagram-5dfd0049-XJRLBGS7.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-133e3642-3NYPG4IW.js.map → stateDiagram-133e3642-ZVPN2MPZ.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-6371a76b-YINZI7AG.js.map → stateDiagram-v2-6371a76b-QIW3VCSC.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-5ed366f4-KWC42LPI.js.map → timeline-definition-5ed366f4-LGCWVNZT.js.map} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
define_import_meta_env_default,
|
|
3
3
|
init_define_import_meta_env
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OGN4DE2Q.js";
|
|
5
5
|
import {
|
|
6
6
|
en_default
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WFIY45QO.js";
|
|
8
8
|
import {
|
|
9
9
|
percentages_default
|
|
10
10
|
} from "./chunk-YZTYRBEQ.js";
|
|
@@ -5588,7 +5588,7 @@ var require_use_sync_external_store_shim_development = __commonJS({
|
|
|
5588
5588
|
return x3 === y3 && (x3 !== 0 || 1 / x3 === 1 / y3) || x3 !== x3 && y3 !== y3;
|
|
5589
5589
|
}
|
|
5590
5590
|
var objectIs = typeof Object.is === "function" ? Object.is : is;
|
|
5591
|
-
var useState35 = React49.useState, useEffect37 = React49.useEffect,
|
|
5591
|
+
var useState35 = React49.useState, useEffect37 = React49.useEffect, useLayoutEffect10 = React49.useLayoutEffect, useDebugValue3 = React49.useDebugValue;
|
|
5592
5592
|
var didWarnOld18Alpha = false;
|
|
5593
5593
|
var didWarnUncachedGetSnapshot = false;
|
|
5594
5594
|
function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
|
|
@@ -5616,7 +5616,7 @@ var require_use_sync_external_store_shim_development = __commonJS({
|
|
|
5616
5616
|
getSnapshot
|
|
5617
5617
|
}
|
|
5618
5618
|
}), inst = _useState[0].inst, forceUpdate = _useState[1];
|
|
5619
|
-
|
|
5619
|
+
useLayoutEffect10(function() {
|
|
5620
5620
|
inst.value = value;
|
|
5621
5621
|
inst.getSnapshot = getSnapshot;
|
|
5622
5622
|
if (checkIfSnapshotChanged(inst)) {
|
|
@@ -5959,7 +5959,6 @@ var isSafari = !isChrome && navigator.userAgent.indexOf("Safari") !== -1;
|
|
|
5959
5959
|
var isIOS = /iPad|iPhone/.test(navigator.platform) || // iPadOS 13+
|
|
5960
5960
|
navigator.userAgent.includes("Mac") && "ontouchend" in document;
|
|
5961
5961
|
var isBrave = () => navigator.brave?.isBrave?.name === "isBrave";
|
|
5962
|
-
var supportsResizeObserver = typeof window !== "undefined" && "ResizeObserver" in window;
|
|
5963
5962
|
var APP_NAME = "Excalidraw";
|
|
5964
5963
|
var DRAGGING_THRESHOLD = 10;
|
|
5965
5964
|
var LINE_CONFIRM_THRESHOLD = 8;
|
|
@@ -6041,7 +6040,6 @@ var DEFAULT_ZOOM_VALUE = 1;
|
|
|
6041
6040
|
var COLOR_WHITE = "#ffffff";
|
|
6042
6041
|
var COLOR_CHARCOAL_BLACK = "#1e1e1e";
|
|
6043
6042
|
var COLOR_TRANSPARENT = "transparent";
|
|
6044
|
-
var COLOR_VOICE_CALL = "#a2f1a6";
|
|
6045
6043
|
var GRID_SIZE = 20;
|
|
6046
6044
|
var IMAGE_MIME_TYPES = {
|
|
6047
6045
|
svg: "image/svg+xml",
|
|
@@ -6155,6 +6153,7 @@ var ROUNDNESS = {
|
|
|
6155
6153
|
// (see DEFAULT_ADAPTIVE_RADIUS constant)
|
|
6156
6154
|
ADAPTIVE_RADIUS: 3
|
|
6157
6155
|
};
|
|
6156
|
+
var PRECEDING_ELEMENT_KEY = "__precedingElement__";
|
|
6158
6157
|
var ROUGHNESS = {
|
|
6159
6158
|
architect: 0,
|
|
6160
6159
|
artist: 1,
|
|
@@ -6863,14 +6862,6 @@ var isShallowEqual = (objA, objB, comparators, debug = false) => {
|
|
|
6863
6862
|
const aKeys = Object.keys(objA);
|
|
6864
6863
|
const bKeys = Object.keys(objB);
|
|
6865
6864
|
if (aKeys.length !== bKeys.length) {
|
|
6866
|
-
if (debug) {
|
|
6867
|
-
console.warn(
|
|
6868
|
-
`%cisShallowEqual: objects don't have same properties ->`,
|
|
6869
|
-
"color: #8B4000",
|
|
6870
|
-
objA,
|
|
6871
|
-
objB
|
|
6872
|
-
);
|
|
6873
|
-
}
|
|
6874
6865
|
return false;
|
|
6875
6866
|
}
|
|
6876
6867
|
if (comparators && Array.isArray(comparators)) {
|
|
@@ -12520,7 +12511,7 @@ var LinearElementEditor = class _LinearElementEditor {
|
|
|
12520
12511
|
pointerDownState: linearElementEditor.pointerDownState,
|
|
12521
12512
|
selectedPointsIndices: linearElementEditor.selectedPointsIndices
|
|
12522
12513
|
};
|
|
12523
|
-
const
|
|
12514
|
+
const midpoint = _LinearElementEditor.createPointAt(
|
|
12524
12515
|
element,
|
|
12525
12516
|
elementsMap,
|
|
12526
12517
|
pointerCoords.x,
|
|
@@ -12529,7 +12520,7 @@ var LinearElementEditor = class _LinearElementEditor {
|
|
|
12529
12520
|
);
|
|
12530
12521
|
const points = [
|
|
12531
12522
|
...element.points.slice(0, segmentMidpoint.index),
|
|
12532
|
-
|
|
12523
|
+
midpoint,
|
|
12533
12524
|
...element.points.slice(segmentMidpoint.index)
|
|
12534
12525
|
];
|
|
12535
12526
|
mutateElement(element, {
|
|
@@ -15540,7 +15531,6 @@ var _newElementBase = (type, {
|
|
|
15540
15531
|
angle = 0,
|
|
15541
15532
|
groupIds = [],
|
|
15542
15533
|
frameId = null,
|
|
15543
|
-
index: index2 = null,
|
|
15544
15534
|
roundness = null,
|
|
15545
15535
|
boundElements = null,
|
|
15546
15536
|
link = null,
|
|
@@ -15564,7 +15554,6 @@ var _newElementBase = (type, {
|
|
|
15564
15554
|
opacity,
|
|
15565
15555
|
groupIds,
|
|
15566
15556
|
frameId,
|
|
15567
|
-
index: index2,
|
|
15568
15557
|
roundness,
|
|
15569
15558
|
seed: rest.seed ?? randomInteger(),
|
|
15570
15559
|
version: rest.version || 1,
|
|
@@ -16674,12 +16663,12 @@ var e = (() => {
|
|
|
16674
16663
|
return "showOpenFilePicker";
|
|
16675
16664
|
return false;
|
|
16676
16665
|
})();
|
|
16677
|
-
var t = e ? import("./file-open-002ab408-
|
|
16666
|
+
var t = e ? import("./file-open-002ab408-2OQEKDVS.js") : import("./file-open-7c801643-7IDWBVQC.js");
|
|
16678
16667
|
async function n(...e3) {
|
|
16679
16668
|
return (await t).default(...e3);
|
|
16680
16669
|
}
|
|
16681
|
-
var i = e ? import("./directory-open-4ed118d0-
|
|
16682
|
-
var o = e ? import("./file-save-745eba88-
|
|
16670
|
+
var i = e ? import("./directory-open-4ed118d0-EEZTUAOR.js") : import("./directory-open-01563666-HET5VGVW.js");
|
|
16671
|
+
var o = e ? import("./file-save-745eba88-3NARDH2Z.js") : import("./file-save-3189631c-D66DZOSK.js");
|
|
16683
16672
|
async function s(...e3) {
|
|
16684
16673
|
return (await o).default(...e3);
|
|
16685
16674
|
}
|
|
@@ -16706,9 +16695,6 @@ var ImageSceneDataError = class extends Error {
|
|
|
16706
16695
|
this.code = code;
|
|
16707
16696
|
}
|
|
16708
16697
|
};
|
|
16709
|
-
var InvalidFractionalIndexError = class extends Error {
|
|
16710
|
-
code = "ELEMENT_HAS_INVALID_INDEX";
|
|
16711
|
-
};
|
|
16712
16698
|
|
|
16713
16699
|
// data/filesystem.ts
|
|
16714
16700
|
var INPUT_CHANGE_INTERVAL_MS = 500;
|
|
@@ -16946,376 +16932,6 @@ var normalizeSVG = async (SVGString) => {
|
|
|
16946
16932
|
|
|
16947
16933
|
// data/restore.ts
|
|
16948
16934
|
init_define_import_meta_env();
|
|
16949
|
-
|
|
16950
|
-
// fractionalIndex.ts
|
|
16951
|
-
init_define_import_meta_env();
|
|
16952
|
-
|
|
16953
|
-
// ../../node_modules/fractional-indexing/src/index.js
|
|
16954
|
-
init_define_import_meta_env();
|
|
16955
|
-
var BASE_62_DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
16956
|
-
function midpoint(a4, b4, digits) {
|
|
16957
|
-
const zero = digits[0];
|
|
16958
|
-
if (b4 != null && a4 >= b4) {
|
|
16959
|
-
throw new Error(a4 + " >= " + b4);
|
|
16960
|
-
}
|
|
16961
|
-
if (a4.slice(-1) === zero || b4 && b4.slice(-1) === zero) {
|
|
16962
|
-
throw new Error("trailing zero");
|
|
16963
|
-
}
|
|
16964
|
-
if (b4) {
|
|
16965
|
-
let n4 = 0;
|
|
16966
|
-
while ((a4[n4] || zero) === b4[n4]) {
|
|
16967
|
-
n4++;
|
|
16968
|
-
}
|
|
16969
|
-
if (n4 > 0) {
|
|
16970
|
-
return b4.slice(0, n4) + midpoint(a4.slice(n4), b4.slice(n4), digits);
|
|
16971
|
-
}
|
|
16972
|
-
}
|
|
16973
|
-
const digitA = a4 ? digits.indexOf(a4[0]) : 0;
|
|
16974
|
-
const digitB = b4 != null ? digits.indexOf(b4[0]) : digits.length;
|
|
16975
|
-
if (digitB - digitA > 1) {
|
|
16976
|
-
const midDigit = Math.round(0.5 * (digitA + digitB));
|
|
16977
|
-
return digits[midDigit];
|
|
16978
|
-
} else {
|
|
16979
|
-
if (b4 && b4.length > 1) {
|
|
16980
|
-
return b4.slice(0, 1);
|
|
16981
|
-
} else {
|
|
16982
|
-
return digits[digitA] + midpoint(a4.slice(1), null, digits);
|
|
16983
|
-
}
|
|
16984
|
-
}
|
|
16985
|
-
}
|
|
16986
|
-
function validateInteger(int) {
|
|
16987
|
-
if (int.length !== getIntegerLength(int[0])) {
|
|
16988
|
-
throw new Error("invalid integer part of order key: " + int);
|
|
16989
|
-
}
|
|
16990
|
-
}
|
|
16991
|
-
function getIntegerLength(head) {
|
|
16992
|
-
if (head >= "a" && head <= "z") {
|
|
16993
|
-
return head.charCodeAt(0) - "a".charCodeAt(0) + 2;
|
|
16994
|
-
} else if (head >= "A" && head <= "Z") {
|
|
16995
|
-
return "Z".charCodeAt(0) - head.charCodeAt(0) + 2;
|
|
16996
|
-
} else {
|
|
16997
|
-
throw new Error("invalid order key head: " + head);
|
|
16998
|
-
}
|
|
16999
|
-
}
|
|
17000
|
-
function getIntegerPart(key) {
|
|
17001
|
-
const integerPartLength = getIntegerLength(key[0]);
|
|
17002
|
-
if (integerPartLength > key.length) {
|
|
17003
|
-
throw new Error("invalid order key: " + key);
|
|
17004
|
-
}
|
|
17005
|
-
return key.slice(0, integerPartLength);
|
|
17006
|
-
}
|
|
17007
|
-
function validateOrderKey(key, digits) {
|
|
17008
|
-
if (key === "A" + digits[0].repeat(26)) {
|
|
17009
|
-
throw new Error("invalid order key: " + key);
|
|
17010
|
-
}
|
|
17011
|
-
const i4 = getIntegerPart(key);
|
|
17012
|
-
const f3 = key.slice(i4.length);
|
|
17013
|
-
if (f3.slice(-1) === digits[0]) {
|
|
17014
|
-
throw new Error("invalid order key: " + key);
|
|
17015
|
-
}
|
|
17016
|
-
}
|
|
17017
|
-
function incrementInteger(x3, digits) {
|
|
17018
|
-
validateInteger(x3);
|
|
17019
|
-
const [head, ...digs] = x3.split("");
|
|
17020
|
-
let carry = true;
|
|
17021
|
-
for (let i4 = digs.length - 1; carry && i4 >= 0; i4--) {
|
|
17022
|
-
const d3 = digits.indexOf(digs[i4]) + 1;
|
|
17023
|
-
if (d3 === digits.length) {
|
|
17024
|
-
digs[i4] = digits[0];
|
|
17025
|
-
} else {
|
|
17026
|
-
digs[i4] = digits[d3];
|
|
17027
|
-
carry = false;
|
|
17028
|
-
}
|
|
17029
|
-
}
|
|
17030
|
-
if (carry) {
|
|
17031
|
-
if (head === "Z") {
|
|
17032
|
-
return "a" + digits[0];
|
|
17033
|
-
}
|
|
17034
|
-
if (head === "z") {
|
|
17035
|
-
return null;
|
|
17036
|
-
}
|
|
17037
|
-
const h3 = String.fromCharCode(head.charCodeAt(0) + 1);
|
|
17038
|
-
if (h3 > "a") {
|
|
17039
|
-
digs.push(digits[0]);
|
|
17040
|
-
} else {
|
|
17041
|
-
digs.pop();
|
|
17042
|
-
}
|
|
17043
|
-
return h3 + digs.join("");
|
|
17044
|
-
} else {
|
|
17045
|
-
return head + digs.join("");
|
|
17046
|
-
}
|
|
17047
|
-
}
|
|
17048
|
-
function decrementInteger(x3, digits) {
|
|
17049
|
-
validateInteger(x3);
|
|
17050
|
-
const [head, ...digs] = x3.split("");
|
|
17051
|
-
let borrow = true;
|
|
17052
|
-
for (let i4 = digs.length - 1; borrow && i4 >= 0; i4--) {
|
|
17053
|
-
const d3 = digits.indexOf(digs[i4]) - 1;
|
|
17054
|
-
if (d3 === -1) {
|
|
17055
|
-
digs[i4] = digits.slice(-1);
|
|
17056
|
-
} else {
|
|
17057
|
-
digs[i4] = digits[d3];
|
|
17058
|
-
borrow = false;
|
|
17059
|
-
}
|
|
17060
|
-
}
|
|
17061
|
-
if (borrow) {
|
|
17062
|
-
if (head === "a") {
|
|
17063
|
-
return "Z" + digits.slice(-1);
|
|
17064
|
-
}
|
|
17065
|
-
if (head === "A") {
|
|
17066
|
-
return null;
|
|
17067
|
-
}
|
|
17068
|
-
const h3 = String.fromCharCode(head.charCodeAt(0) - 1);
|
|
17069
|
-
if (h3 < "Z") {
|
|
17070
|
-
digs.push(digits.slice(-1));
|
|
17071
|
-
} else {
|
|
17072
|
-
digs.pop();
|
|
17073
|
-
}
|
|
17074
|
-
return h3 + digs.join("");
|
|
17075
|
-
} else {
|
|
17076
|
-
return head + digs.join("");
|
|
17077
|
-
}
|
|
17078
|
-
}
|
|
17079
|
-
function generateKeyBetween(a4, b4, digits = BASE_62_DIGITS) {
|
|
17080
|
-
if (a4 != null) {
|
|
17081
|
-
validateOrderKey(a4, digits);
|
|
17082
|
-
}
|
|
17083
|
-
if (b4 != null) {
|
|
17084
|
-
validateOrderKey(b4, digits);
|
|
17085
|
-
}
|
|
17086
|
-
if (a4 != null && b4 != null && a4 >= b4) {
|
|
17087
|
-
throw new Error(a4 + " >= " + b4);
|
|
17088
|
-
}
|
|
17089
|
-
if (a4 == null) {
|
|
17090
|
-
if (b4 == null) {
|
|
17091
|
-
return "a" + digits[0];
|
|
17092
|
-
}
|
|
17093
|
-
const ib2 = getIntegerPart(b4);
|
|
17094
|
-
const fb2 = b4.slice(ib2.length);
|
|
17095
|
-
if (ib2 === "A" + digits[0].repeat(26)) {
|
|
17096
|
-
return ib2 + midpoint("", fb2, digits);
|
|
17097
|
-
}
|
|
17098
|
-
if (ib2 < b4) {
|
|
17099
|
-
return ib2;
|
|
17100
|
-
}
|
|
17101
|
-
const res = decrementInteger(ib2, digits);
|
|
17102
|
-
if (res == null) {
|
|
17103
|
-
throw new Error("cannot decrement any more");
|
|
17104
|
-
}
|
|
17105
|
-
return res;
|
|
17106
|
-
}
|
|
17107
|
-
if (b4 == null) {
|
|
17108
|
-
const ia2 = getIntegerPart(a4);
|
|
17109
|
-
const fa2 = a4.slice(ia2.length);
|
|
17110
|
-
const i5 = incrementInteger(ia2, digits);
|
|
17111
|
-
return i5 == null ? ia2 + midpoint(fa2, null, digits) : i5;
|
|
17112
|
-
}
|
|
17113
|
-
const ia = getIntegerPart(a4);
|
|
17114
|
-
const fa = a4.slice(ia.length);
|
|
17115
|
-
const ib = getIntegerPart(b4);
|
|
17116
|
-
const fb = b4.slice(ib.length);
|
|
17117
|
-
if (ia === ib) {
|
|
17118
|
-
return ia + midpoint(fa, fb, digits);
|
|
17119
|
-
}
|
|
17120
|
-
const i4 = incrementInteger(ia, digits);
|
|
17121
|
-
if (i4 == null) {
|
|
17122
|
-
throw new Error("cannot increment any more");
|
|
17123
|
-
}
|
|
17124
|
-
if (i4 < b4) {
|
|
17125
|
-
return i4;
|
|
17126
|
-
}
|
|
17127
|
-
return ia + midpoint(fa, null, digits);
|
|
17128
|
-
}
|
|
17129
|
-
function generateNKeysBetween(a4, b4, n4, digits = BASE_62_DIGITS) {
|
|
17130
|
-
if (n4 === 0) {
|
|
17131
|
-
return [];
|
|
17132
|
-
}
|
|
17133
|
-
if (n4 === 1) {
|
|
17134
|
-
return [generateKeyBetween(a4, b4, digits)];
|
|
17135
|
-
}
|
|
17136
|
-
if (b4 == null) {
|
|
17137
|
-
let c4 = generateKeyBetween(a4, b4, digits);
|
|
17138
|
-
const result = [c4];
|
|
17139
|
-
for (let i4 = 0; i4 < n4 - 1; i4++) {
|
|
17140
|
-
c4 = generateKeyBetween(c4, b4, digits);
|
|
17141
|
-
result.push(c4);
|
|
17142
|
-
}
|
|
17143
|
-
return result;
|
|
17144
|
-
}
|
|
17145
|
-
if (a4 == null) {
|
|
17146
|
-
let c4 = generateKeyBetween(a4, b4, digits);
|
|
17147
|
-
const result = [c4];
|
|
17148
|
-
for (let i4 = 0; i4 < n4 - 1; i4++) {
|
|
17149
|
-
c4 = generateKeyBetween(a4, c4, digits);
|
|
17150
|
-
result.push(c4);
|
|
17151
|
-
}
|
|
17152
|
-
result.reverse();
|
|
17153
|
-
return result;
|
|
17154
|
-
}
|
|
17155
|
-
const mid = Math.floor(n4 / 2);
|
|
17156
|
-
const c3 = generateKeyBetween(a4, b4, digits);
|
|
17157
|
-
return [
|
|
17158
|
-
...generateNKeysBetween(a4, c3, mid, digits),
|
|
17159
|
-
c3,
|
|
17160
|
-
...generateNKeysBetween(c3, b4, n4 - mid - 1, digits)
|
|
17161
|
-
];
|
|
17162
|
-
}
|
|
17163
|
-
|
|
17164
|
-
// fractionalIndex.ts
|
|
17165
|
-
var validateFractionalIndices = (indices) => {
|
|
17166
|
-
for (const [i4, index2] of indices.entries()) {
|
|
17167
|
-
const predecessorIndex = indices[i4 - 1];
|
|
17168
|
-
const successorIndex = indices[i4 + 1];
|
|
17169
|
-
if (!isValidFractionalIndex(index2, predecessorIndex, successorIndex)) {
|
|
17170
|
-
throw new InvalidFractionalIndexError(
|
|
17171
|
-
`Fractional indices invariant for element has been compromised - ["${predecessorIndex}", "${index2}", "${successorIndex}"] [predecessor, current, successor]`
|
|
17172
|
-
);
|
|
17173
|
-
}
|
|
17174
|
-
}
|
|
17175
|
-
};
|
|
17176
|
-
var syncMovedIndices = (elements, movedElements) => {
|
|
17177
|
-
try {
|
|
17178
|
-
const indicesGroups = getMovedIndicesGroups(elements, movedElements);
|
|
17179
|
-
const elementsUpdates = generateIndices(elements, indicesGroups);
|
|
17180
|
-
validateFractionalIndices(
|
|
17181
|
-
elements.map((x3) => elementsUpdates.get(x3)?.index || x3.index)
|
|
17182
|
-
);
|
|
17183
|
-
for (const [element, update] of elementsUpdates) {
|
|
17184
|
-
mutateElement(element, update, false);
|
|
17185
|
-
}
|
|
17186
|
-
} catch (e3) {
|
|
17187
|
-
syncInvalidIndices(elements);
|
|
17188
|
-
}
|
|
17189
|
-
return elements;
|
|
17190
|
-
};
|
|
17191
|
-
var syncInvalidIndices = (elements) => {
|
|
17192
|
-
const indicesGroups = getInvalidIndicesGroups(elements);
|
|
17193
|
-
const elementsUpdates = generateIndices(elements, indicesGroups);
|
|
17194
|
-
for (const [element, update] of elementsUpdates) {
|
|
17195
|
-
mutateElement(element, update, false);
|
|
17196
|
-
}
|
|
17197
|
-
return elements;
|
|
17198
|
-
};
|
|
17199
|
-
var getMovedIndicesGroups = (elements, movedElements) => {
|
|
17200
|
-
const indicesGroups = [];
|
|
17201
|
-
let i4 = 0;
|
|
17202
|
-
while (i4 < elements.length) {
|
|
17203
|
-
if (movedElements.has(elements[i4].id) && !isValidFractionalIndex(
|
|
17204
|
-
elements[i4]?.index,
|
|
17205
|
-
elements[i4 - 1]?.index,
|
|
17206
|
-
elements[i4 + 1]?.index
|
|
17207
|
-
)) {
|
|
17208
|
-
const indicesGroup = [i4 - 1, i4];
|
|
17209
|
-
while (++i4 < elements.length) {
|
|
17210
|
-
if (!(movedElements.has(elements[i4].id) && !isValidFractionalIndex(
|
|
17211
|
-
elements[i4]?.index,
|
|
17212
|
-
elements[i4 - 1]?.index,
|
|
17213
|
-
elements[i4 + 1]?.index
|
|
17214
|
-
))) {
|
|
17215
|
-
break;
|
|
17216
|
-
}
|
|
17217
|
-
indicesGroup.push(i4);
|
|
17218
|
-
}
|
|
17219
|
-
indicesGroup.push(i4);
|
|
17220
|
-
indicesGroups.push(indicesGroup);
|
|
17221
|
-
} else {
|
|
17222
|
-
i4++;
|
|
17223
|
-
}
|
|
17224
|
-
}
|
|
17225
|
-
return indicesGroups;
|
|
17226
|
-
};
|
|
17227
|
-
var getInvalidIndicesGroups = (elements) => {
|
|
17228
|
-
const indicesGroups = [];
|
|
17229
|
-
let lowerBound = void 0;
|
|
17230
|
-
let upperBound = void 0;
|
|
17231
|
-
let lowerBoundIndex = -1;
|
|
17232
|
-
let upperBoundIndex = 0;
|
|
17233
|
-
const getLowerBound = (index2) => {
|
|
17234
|
-
const lowerBound2 = elements[lowerBoundIndex] ? elements[lowerBoundIndex].index : void 0;
|
|
17235
|
-
const candidate = elements[index2 - 1]?.index;
|
|
17236
|
-
if (!lowerBound2 && candidate || // first lowerBound
|
|
17237
|
-
lowerBound2 && candidate && candidate > lowerBound2) {
|
|
17238
|
-
return [candidate, index2 - 1];
|
|
17239
|
-
}
|
|
17240
|
-
return [lowerBound2, lowerBoundIndex];
|
|
17241
|
-
};
|
|
17242
|
-
const getUpperBound = (index2) => {
|
|
17243
|
-
const upperBound2 = elements[upperBoundIndex] ? elements[upperBoundIndex].index : void 0;
|
|
17244
|
-
if (upperBound2 && index2 < upperBoundIndex) {
|
|
17245
|
-
return [upperBound2, upperBoundIndex];
|
|
17246
|
-
}
|
|
17247
|
-
let i5 = upperBoundIndex;
|
|
17248
|
-
while (++i5 < elements.length) {
|
|
17249
|
-
const candidate = elements[i5]?.index;
|
|
17250
|
-
if (!upperBound2 && candidate || // first upperBound
|
|
17251
|
-
upperBound2 && candidate && candidate > upperBound2) {
|
|
17252
|
-
return [candidate, i5];
|
|
17253
|
-
}
|
|
17254
|
-
}
|
|
17255
|
-
return [void 0, i5];
|
|
17256
|
-
};
|
|
17257
|
-
let i4 = 0;
|
|
17258
|
-
while (i4 < elements.length) {
|
|
17259
|
-
const current = elements[i4].index;
|
|
17260
|
-
[lowerBound, lowerBoundIndex] = getLowerBound(i4);
|
|
17261
|
-
[upperBound, upperBoundIndex] = getUpperBound(i4);
|
|
17262
|
-
if (!isValidFractionalIndex(current, lowerBound, upperBound)) {
|
|
17263
|
-
const indicesGroup = [lowerBoundIndex, i4];
|
|
17264
|
-
while (++i4 < elements.length) {
|
|
17265
|
-
const current2 = elements[i4].index;
|
|
17266
|
-
const [nextLowerBound, nextLowerBoundIndex] = getLowerBound(i4);
|
|
17267
|
-
const [nextUpperBound, nextUpperBoundIndex] = getUpperBound(i4);
|
|
17268
|
-
if (isValidFractionalIndex(current2, nextLowerBound, nextUpperBound)) {
|
|
17269
|
-
break;
|
|
17270
|
-
}
|
|
17271
|
-
[lowerBound, lowerBoundIndex] = [nextLowerBound, nextLowerBoundIndex];
|
|
17272
|
-
[upperBound, upperBoundIndex] = [nextUpperBound, nextUpperBoundIndex];
|
|
17273
|
-
indicesGroup.push(i4);
|
|
17274
|
-
}
|
|
17275
|
-
indicesGroup.push(upperBoundIndex);
|
|
17276
|
-
indicesGroups.push(indicesGroup);
|
|
17277
|
-
} else {
|
|
17278
|
-
i4++;
|
|
17279
|
-
}
|
|
17280
|
-
}
|
|
17281
|
-
return indicesGroups;
|
|
17282
|
-
};
|
|
17283
|
-
var isValidFractionalIndex = (index2, predecessor, successor) => {
|
|
17284
|
-
if (!index2) {
|
|
17285
|
-
return false;
|
|
17286
|
-
}
|
|
17287
|
-
if (predecessor && successor) {
|
|
17288
|
-
return predecessor < index2 && index2 < successor;
|
|
17289
|
-
}
|
|
17290
|
-
if (!predecessor && successor) {
|
|
17291
|
-
return index2 < successor;
|
|
17292
|
-
}
|
|
17293
|
-
if (predecessor && !successor) {
|
|
17294
|
-
return predecessor < index2;
|
|
17295
|
-
}
|
|
17296
|
-
return !!index2;
|
|
17297
|
-
};
|
|
17298
|
-
var generateIndices = (elements, indicesGroups) => {
|
|
17299
|
-
const elementsUpdates = /* @__PURE__ */ new Map();
|
|
17300
|
-
for (const indices of indicesGroups) {
|
|
17301
|
-
const lowerBoundIndex = indices.shift();
|
|
17302
|
-
const upperBoundIndex = indices.pop();
|
|
17303
|
-
const fractionalIndices = generateNKeysBetween(
|
|
17304
|
-
elements[lowerBoundIndex]?.index,
|
|
17305
|
-
elements[upperBoundIndex]?.index,
|
|
17306
|
-
indices.length
|
|
17307
|
-
);
|
|
17308
|
-
for (let i4 = 0; i4 < indices.length; i4++) {
|
|
17309
|
-
const element = elements[indices[i4]];
|
|
17310
|
-
elementsUpdates.set(element, {
|
|
17311
|
-
index: fractionalIndices[i4]
|
|
17312
|
-
});
|
|
17313
|
-
}
|
|
17314
|
-
}
|
|
17315
|
-
return elementsUpdates;
|
|
17316
|
-
};
|
|
17317
|
-
|
|
17318
|
-
// data/restore.ts
|
|
17319
16935
|
var AllowedExcalidrawActiveTools = {
|
|
17320
16936
|
selection: true,
|
|
17321
16937
|
text: true,
|
|
@@ -17353,7 +16969,6 @@ var restoreElementWithProperties = (element, extra) => {
|
|
|
17353
16969
|
// newly added elements
|
|
17354
16970
|
version: element.version || 1,
|
|
17355
16971
|
versionNonce: element.versionNonce ?? 0,
|
|
17356
|
-
index: element.index ?? null,
|
|
17357
16972
|
isDeleted: element.isDeleted ?? false,
|
|
17358
16973
|
id: element.id || randomId(),
|
|
17359
16974
|
fillStyle: element.fillStyle || DEFAULT_ELEMENT_PROPS.fillStyle,
|
|
@@ -17384,6 +16999,9 @@ var restoreElementWithProperties = (element, extra) => {
|
|
|
17384
16999
|
if ("customData" in element || "customData" in extra) {
|
|
17385
17000
|
base.customData = "customData" in extra ? extra.customData : element.customData;
|
|
17386
17001
|
}
|
|
17002
|
+
if (PRECEDING_ELEMENT_KEY in element) {
|
|
17003
|
+
base[PRECEDING_ELEMENT_KEY] = element[PRECEDING_ELEMENT_KEY];
|
|
17004
|
+
}
|
|
17387
17005
|
return {
|
|
17388
17006
|
...base,
|
|
17389
17007
|
...getNormalizedDimensions(base),
|
|
@@ -17534,28 +17152,23 @@ var repairFrameMembership = (element, elementsMap) => {
|
|
|
17534
17152
|
var restoreElements = (elements, localElements, opts) => {
|
|
17535
17153
|
const existingIds = /* @__PURE__ */ new Set();
|
|
17536
17154
|
const localElementsMap = localElements ? arrayToMap(localElements) : null;
|
|
17537
|
-
const restoredElements =
|
|
17538
|
-
(
|
|
17539
|
-
|
|
17540
|
-
|
|
17541
|
-
|
|
17542
|
-
|
|
17543
|
-
|
|
17544
|
-
migratedElement = bumpVersion(
|
|
17545
|
-
migratedElement,
|
|
17546
|
-
localElement.version
|
|
17547
|
-
);
|
|
17548
|
-
}
|
|
17549
|
-
if (existingIds.has(migratedElement.id)) {
|
|
17550
|
-
migratedElement = { ...migratedElement, id: randomId() };
|
|
17551
|
-
}
|
|
17552
|
-
existingIds.add(migratedElement.id);
|
|
17553
|
-
elements2.push(migratedElement);
|
|
17155
|
+
const restoredElements = (elements || []).reduce((elements2, element) => {
|
|
17156
|
+
if (element.type !== "selection" && !isInvisiblySmallElement(element)) {
|
|
17157
|
+
let migratedElement = restoreElement(element);
|
|
17158
|
+
if (migratedElement) {
|
|
17159
|
+
const localElement = localElementsMap?.get(element.id);
|
|
17160
|
+
if (localElement && localElement.version > migratedElement.version) {
|
|
17161
|
+
migratedElement = bumpVersion(migratedElement, localElement.version);
|
|
17554
17162
|
}
|
|
17163
|
+
if (existingIds.has(migratedElement.id)) {
|
|
17164
|
+
migratedElement = { ...migratedElement, id: randomId() };
|
|
17165
|
+
}
|
|
17166
|
+
existingIds.add(migratedElement.id);
|
|
17167
|
+
elements2.push(migratedElement);
|
|
17555
17168
|
}
|
|
17556
|
-
|
|
17557
|
-
|
|
17558
|
-
);
|
|
17169
|
+
}
|
|
17170
|
+
return elements2;
|
|
17171
|
+
}, []);
|
|
17559
17172
|
if (!opts?.repairBindings) {
|
|
17560
17173
|
return restoredElements;
|
|
17561
17174
|
}
|
|
@@ -17794,11 +17407,10 @@ var bootstrapCanvas = ({
|
|
|
17794
17407
|
// renderer/staticScene.ts
|
|
17795
17408
|
var strokeGrid = (context, gridSize, scrollX, scrollY, zoom, width, height) => {
|
|
17796
17409
|
const BOLD_LINE_FREQUENCY = 5;
|
|
17797
|
-
|
|
17798
|
-
|
|
17799
|
-
|
|
17800
|
-
|
|
17801
|
-
})(GridLineColor || (GridLineColor = {}));
|
|
17410
|
+
const GridLineColor = {
|
|
17411
|
+
Bold: "#cccccc",
|
|
17412
|
+
Regular: "#e5e5e5"
|
|
17413
|
+
};
|
|
17802
17414
|
const offsetX = -Math.round(zoom.value / gridSize) * gridSize + scrollX % gridSize;
|
|
17803
17415
|
const offsetY = -Math.round(zoom.value / gridSize) * gridSize + scrollY % gridSize;
|
|
17804
17416
|
const lineWidth = Math.min(1 / zoom.value, 1);
|
|
@@ -17810,7 +17422,7 @@ var strokeGrid = (context, gridSize, scrollX, scrollY, zoom, width, height) => {
|
|
|
17810
17422
|
const isBold = Math.round(x3 - scrollX) % (BOLD_LINE_FREQUENCY * gridSize) === 0;
|
|
17811
17423
|
context.beginPath();
|
|
17812
17424
|
context.setLineDash(isBold ? [] : lineDash);
|
|
17813
|
-
context.strokeStyle = isBold ?
|
|
17425
|
+
context.strokeStyle = isBold ? GridLineColor.Bold : GridLineColor.Regular;
|
|
17814
17426
|
context.moveTo(x3, offsetY - gridSize);
|
|
17815
17427
|
context.lineTo(x3, offsetY + height + gridSize * 2);
|
|
17816
17428
|
context.stroke();
|
|
@@ -17819,7 +17431,7 @@ var strokeGrid = (context, gridSize, scrollX, scrollY, zoom, width, height) => {
|
|
|
17819
17431
|
const isBold = Math.round(y3 - scrollY) % (BOLD_LINE_FREQUENCY * gridSize) === 0;
|
|
17820
17432
|
context.beginPath();
|
|
17821
17433
|
context.setLineDash(isBold ? [] : lineDash);
|
|
17822
|
-
context.strokeStyle = isBold ?
|
|
17434
|
+
context.strokeStyle = isBold ? GridLineColor.Bold : GridLineColor.Regular;
|
|
17823
17435
|
context.moveTo(offsetX - gridSize, y3);
|
|
17824
17436
|
context.lineTo(offsetX + width + gridSize * 2, y3);
|
|
17825
17437
|
context.stroke();
|
|
@@ -18276,7 +17888,7 @@ var exportToCanvas = async ({
|
|
|
18276
17888
|
arrayToMap(elementsForRender)
|
|
18277
17889
|
),
|
|
18278
17890
|
allElementsMap: toBrandedType(
|
|
18279
|
-
arrayToMap(
|
|
17891
|
+
arrayToMap(elements)
|
|
18280
17892
|
),
|
|
18281
17893
|
visibleElements: elementsForRender,
|
|
18282
17894
|
appState: {
|
|
@@ -18338,7 +17950,7 @@ var exportToSvg = async ({
|
|
|
18338
17950
|
let metadata = "";
|
|
18339
17951
|
if (exportEmbedScene) {
|
|
18340
17952
|
try {
|
|
18341
|
-
metadata = await (await import("./image-
|
|
17953
|
+
metadata = await (await import("./image-DG6G3CCZ.js")).encodeSvgMetadata({
|
|
18342
17954
|
// when embedding scene, we want to embed the origionally supplied
|
|
18343
17955
|
// elements which don't contain the temp frame labels.
|
|
18344
17956
|
// But it also requires that the exportToSvg is being supplied with
|
|
@@ -19999,7 +19611,7 @@ var globImport_locales_json = __glob({
|
|
|
19999
19611
|
"./locales/da-DK.json": () => import("./da-DK-6OKJ2GQ6.js"),
|
|
20000
19612
|
"./locales/de-DE.json": () => import("./de-DE-BD5ICOQ2.js"),
|
|
20001
19613
|
"./locales/el-GR.json": () => import("./el-GR-JFDBTDHS.js"),
|
|
20002
|
-
"./locales/en.json": () => import("./en-
|
|
19614
|
+
"./locales/en.json": () => import("./en-CJBKYSM5.js"),
|
|
20003
19615
|
"./locales/es-ES.json": () => import("./es-ES-CBBTGYGR.js"),
|
|
20004
19616
|
"./locales/eu-ES.json": () => import("./eu-ES-CHAPMSLE.js"),
|
|
20005
19617
|
"./locales/fa-IR.json": () => import("./fa-IR-LOJOKEJO.js"),
|
|
@@ -20625,8 +20237,6 @@ __export(icons_exports, {
|
|
|
20625
20237
|
laserPointerToolIcon: () => laserPointerToolIcon,
|
|
20626
20238
|
menu: () => menu,
|
|
20627
20239
|
mermaidLogoIcon: () => mermaidLogoIcon,
|
|
20628
|
-
microphoneIcon: () => microphoneIcon,
|
|
20629
|
-
microphoneMutedIcon: () => microphoneMutedIcon,
|
|
20630
20240
|
palette: () => palette,
|
|
20631
20241
|
playerPlayIcon: () => playerPlayIcon,
|
|
20632
20242
|
playerStopFilledIcon: () => playerStopFilledIcon,
|
|
@@ -22436,7 +22046,7 @@ var fullscreenIcon = createIcon(
|
|
|
22436
22046
|
tablerIconProps
|
|
22437
22047
|
);
|
|
22438
22048
|
var eyeIcon = createIcon(
|
|
22439
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("g", { stroke: "currentColor", fill: "none",
|
|
22049
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("g", { stroke: "currentColor", fill: "none", children: [
|
|
22440
22050
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
22441
22051
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" }),
|
|
22442
22052
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" })
|
|
@@ -22472,27 +22082,6 @@ var searchIcon = createIcon(
|
|
|
22472
22082
|
] }),
|
|
22473
22083
|
tablerIconProps
|
|
22474
22084
|
);
|
|
22475
|
-
var microphoneIcon = createIcon(
|
|
22476
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("g", { strokeWidth: 1.5, children: [
|
|
22477
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
22478
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M9 2m0 3a3 3 0 0 1 3 -3h0a3 3 0 0 1 3 3v5a3 3 0 0 1 -3 3h0a3 3 0 0 1 -3 -3z" }),
|
|
22479
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M5 10a7 7 0 0 0 14 0" }),
|
|
22480
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M8 21l8 0" }),
|
|
22481
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 17l0 4" })
|
|
22482
|
-
] }),
|
|
22483
|
-
tablerIconProps
|
|
22484
|
-
);
|
|
22485
|
-
var microphoneMutedIcon = createIcon(
|
|
22486
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("g", { strokeWidth: 1.5, children: [
|
|
22487
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
22488
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M3 3l18 18" }),
|
|
22489
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M9 5a3 3 0 0 1 6 0v5a3 3 0 0 1 -.13 .874m-2 2a3 3 0 0 1 -3.87 -2.872v-1" }),
|
|
22490
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M5 10a7 7 0 0 0 10.846 5.85m2 -2a6.967 6.967 0 0 0 1.152 -3.85" }),
|
|
22491
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M8 21l8 0" }),
|
|
22492
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 17l0 4" })
|
|
22493
|
-
] }),
|
|
22494
|
-
tablerIconProps
|
|
22495
|
-
);
|
|
22496
22085
|
|
|
22497
22086
|
// actions/actionDeleteSelected.tsx
|
|
22498
22087
|
var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
|
|
@@ -22774,9 +22363,9 @@ var getTargetIndex = (appState, elements, boundaryIndex, direction, containingFr
|
|
|
22774
22363
|
var getTargetElementsMap = (elements, indices) => {
|
|
22775
22364
|
return indices.reduce((acc, index2) => {
|
|
22776
22365
|
const element = elements[index2];
|
|
22777
|
-
acc
|
|
22366
|
+
acc[element.id] = element;
|
|
22778
22367
|
return acc;
|
|
22779
|
-
},
|
|
22368
|
+
}, {});
|
|
22780
22369
|
};
|
|
22781
22370
|
var shiftElementsByOne = (elements, appState, direction) => {
|
|
22782
22371
|
const indicesToMove = getIndicesToMove(elements, appState);
|
|
@@ -22822,8 +22411,12 @@ var shiftElementsByOne = (elements, appState, direction) => {
|
|
|
22822
22411
|
...trailingElements
|
|
22823
22412
|
];
|
|
22824
22413
|
});
|
|
22825
|
-
|
|
22826
|
-
|
|
22414
|
+
return elements.map((element) => {
|
|
22415
|
+
if (targetElementsMap[element.id]) {
|
|
22416
|
+
return bumpVersion(element);
|
|
22417
|
+
}
|
|
22418
|
+
return element;
|
|
22419
|
+
});
|
|
22827
22420
|
};
|
|
22828
22421
|
var shiftElementsToEnd = (elements, appState, direction, containingFrame, elementsToBeMoved) => {
|
|
22829
22422
|
const indicesToMove = getIndicesToMove(elements, appState, elementsToBeMoved);
|
|
@@ -22878,10 +22471,12 @@ var shiftElementsToEnd = (elements, appState, direction, containingFrame, elemen
|
|
|
22878
22471
|
displacedElements.push(elements[index2]);
|
|
22879
22472
|
}
|
|
22880
22473
|
}
|
|
22881
|
-
const targetElements =
|
|
22474
|
+
const targetElements = Object.values(targetElementsMap).map((element) => {
|
|
22475
|
+
return bumpVersion(element);
|
|
22476
|
+
});
|
|
22882
22477
|
const leadingElements = elements.slice(0, leadingIndex);
|
|
22883
22478
|
const trailingElements = elements.slice(trailingIndex + 1);
|
|
22884
|
-
|
|
22479
|
+
return direction === "left" ? [
|
|
22885
22480
|
...leadingElements,
|
|
22886
22481
|
...targetElements,
|
|
22887
22482
|
...displacedElements,
|
|
@@ -22892,8 +22487,6 @@ var shiftElementsToEnd = (elements, appState, direction, containingFrame, elemen
|
|
|
22892
22487
|
...targetElements,
|
|
22893
22488
|
...trailingElements
|
|
22894
22489
|
];
|
|
22895
|
-
syncMovedIndices(nextElements, targetElementsMap);
|
|
22896
|
-
return nextElements;
|
|
22897
22490
|
};
|
|
22898
22491
|
function shiftElementsAccountingForFrames(allElements, appState, direction, shiftFunction) {
|
|
22899
22492
|
const elementsToMove = arrayToMap(
|
|
@@ -23247,7 +22840,6 @@ var duplicateElements2 = (elements, appState) => {
|
|
|
23247
22840
|
const newElements = [];
|
|
23248
22841
|
const oldElements = [];
|
|
23249
22842
|
const oldIdToDuplicatedId = /* @__PURE__ */ new Map();
|
|
23250
|
-
const duplicatedElementsMap = /* @__PURE__ */ new Map();
|
|
23251
22843
|
const duplicateAndOffsetElement = (element) => {
|
|
23252
22844
|
const newElement2 = duplicateElement(
|
|
23253
22845
|
appState.editingGroupId,
|
|
@@ -23258,7 +22850,6 @@ var duplicateElements2 = (elements, appState) => {
|
|
|
23258
22850
|
y: element.y + GRID_SIZE / 2
|
|
23259
22851
|
}
|
|
23260
22852
|
);
|
|
23261
|
-
duplicatedElementsMap.set(newElement2.id, newElement2);
|
|
23262
22853
|
oldIdToDuplicatedId.set(element.id, newElement2.id);
|
|
23263
22854
|
oldElements.push(element);
|
|
23264
22855
|
newElements.push(newElement2);
|
|
@@ -23350,7 +22941,6 @@ var duplicateElements2 = (elements, appState) => {
|
|
|
23350
22941
|
}
|
|
23351
22942
|
}
|
|
23352
22943
|
const finalElements = finalElementsReversed.reverse();
|
|
23353
|
-
syncMovedIndices(finalElements, arrayToMap([...oldElements, ...newElements]));
|
|
23354
22944
|
bindTextToShapeAfterDuplication(
|
|
23355
22945
|
elementsWithClones,
|
|
23356
22946
|
oldElements,
|
|
@@ -29805,7 +29395,7 @@ var exportAsImage = async ({
|
|
|
29805
29395
|
const blob = canvasToBlob(tempCanvas);
|
|
29806
29396
|
if (data.appState.exportEmbedScene) {
|
|
29807
29397
|
blob.then(
|
|
29808
|
-
(blob2) => import("./image-
|
|
29398
|
+
(blob2) => import("./image-DG6G3CCZ.js").then(
|
|
29809
29399
|
({ encodePngMetadata: encodePngMetadata2 }) => encodePngMetadata2({
|
|
29810
29400
|
blob: blob2,
|
|
29811
29401
|
metadata: serializeAsJSON(
|
|
@@ -30434,12 +30024,11 @@ var actionGroup = register({
|
|
|
30434
30024
|
const elementsBeforeGroup = nextElements.slice(0, lastGroupElementIndex).filter(
|
|
30435
30025
|
(updatedElement) => !isElementInGroup(updatedElement, newGroupId)
|
|
30436
30026
|
);
|
|
30437
|
-
|
|
30027
|
+
nextElements = [
|
|
30438
30028
|
...elementsBeforeGroup,
|
|
30439
30029
|
...elementsInGroup,
|
|
30440
30030
|
...elementsAfterGroup
|
|
30441
30031
|
];
|
|
30442
|
-
syncMovedIndices(reorderedElements, arrayToMap(elementsInGroup));
|
|
30443
30032
|
return {
|
|
30444
30033
|
appState: {
|
|
30445
30034
|
...appState,
|
|
@@ -30449,7 +30038,7 @@ var actionGroup = register({
|
|
|
30449
30038
|
getNonDeletedElements2(nextElements)
|
|
30450
30039
|
)
|
|
30451
30040
|
},
|
|
30452
|
-
elements:
|
|
30041
|
+
elements: nextElements,
|
|
30453
30042
|
commitToHistory: true
|
|
30454
30043
|
};
|
|
30455
30044
|
},
|
|
@@ -30562,37 +30151,6 @@ init_define_import_meta_env();
|
|
|
30562
30151
|
|
|
30563
30152
|
// clients.ts
|
|
30564
30153
|
init_define_import_meta_env();
|
|
30565
|
-
|
|
30566
|
-
// renderer/roundRect.ts
|
|
30567
|
-
init_define_import_meta_env();
|
|
30568
|
-
var roundRect = (context, x3, y3, width, height, radius, strokeColor) => {
|
|
30569
|
-
context.beginPath();
|
|
30570
|
-
context.moveTo(x3 + radius, y3);
|
|
30571
|
-
context.lineTo(x3 + width - radius, y3);
|
|
30572
|
-
context.quadraticCurveTo(x3 + width, y3, x3 + width, y3 + radius);
|
|
30573
|
-
context.lineTo(x3 + width, y3 + height - radius);
|
|
30574
|
-
context.quadraticCurveTo(
|
|
30575
|
-
x3 + width,
|
|
30576
|
-
y3 + height,
|
|
30577
|
-
x3 + width - radius,
|
|
30578
|
-
y3 + height
|
|
30579
|
-
);
|
|
30580
|
-
context.lineTo(x3 + radius, y3 + height);
|
|
30581
|
-
context.quadraticCurveTo(x3, y3 + height, x3, y3 + height - radius);
|
|
30582
|
-
context.lineTo(x3, y3 + radius);
|
|
30583
|
-
context.quadraticCurveTo(x3, y3, x3 + radius, y3);
|
|
30584
|
-
context.closePath();
|
|
30585
|
-
context.fill();
|
|
30586
|
-
if (strokeColor) {
|
|
30587
|
-
context.strokeStyle = strokeColor;
|
|
30588
|
-
}
|
|
30589
|
-
context.stroke();
|
|
30590
|
-
};
|
|
30591
|
-
|
|
30592
|
-
// types.ts
|
|
30593
|
-
init_define_import_meta_env();
|
|
30594
|
-
|
|
30595
|
-
// clients.ts
|
|
30596
30154
|
function hashToInteger(id) {
|
|
30597
30155
|
let hash = 0;
|
|
30598
30156
|
if (id.length === 0) {
|
|
@@ -30604,8 +30162,8 @@ function hashToInteger(id) {
|
|
|
30604
30162
|
}
|
|
30605
30163
|
return hash;
|
|
30606
30164
|
}
|
|
30607
|
-
var getClientColor = (
|
|
30608
|
-
const hash = Math.abs(hashToInteger(
|
|
30165
|
+
var getClientColor = (id) => {
|
|
30166
|
+
const hash = Math.abs(hashToInteger(id));
|
|
30609
30167
|
const hue = hash % 37 * 10;
|
|
30610
30168
|
const saturation = 100;
|
|
30611
30169
|
const lightness = 83;
|
|
@@ -30615,162 +30173,6 @@ var getNameInitial = (name) => {
|
|
|
30615
30173
|
const firstCodePoint = name?.trim()?.codePointAt(0);
|
|
30616
30174
|
return (firstCodePoint ? String.fromCodePoint(firstCodePoint) : "?").toUpperCase();
|
|
30617
30175
|
};
|
|
30618
|
-
var renderRemoteCursors = ({
|
|
30619
|
-
context,
|
|
30620
|
-
renderConfig,
|
|
30621
|
-
appState,
|
|
30622
|
-
normalizedWidth,
|
|
30623
|
-
normalizedHeight
|
|
30624
|
-
}) => {
|
|
30625
|
-
for (const [socketId, pointer] of renderConfig.remotePointerViewportCoords) {
|
|
30626
|
-
let { x: x3, y: y3 } = pointer;
|
|
30627
|
-
const collaborator = appState.collaborators.get(socketId);
|
|
30628
|
-
x3 -= appState.offsetLeft;
|
|
30629
|
-
y3 -= appState.offsetTop;
|
|
30630
|
-
const width = 11;
|
|
30631
|
-
const height = 14;
|
|
30632
|
-
const isOutOfBounds = x3 < 0 || x3 > normalizedWidth - width || y3 < 0 || y3 > normalizedHeight - height;
|
|
30633
|
-
x3 = Math.max(x3, 0);
|
|
30634
|
-
x3 = Math.min(x3, normalizedWidth - width);
|
|
30635
|
-
y3 = Math.max(y3, 0);
|
|
30636
|
-
y3 = Math.min(y3, normalizedHeight - height);
|
|
30637
|
-
const background = getClientColor(socketId, collaborator);
|
|
30638
|
-
context.save();
|
|
30639
|
-
context.strokeStyle = background;
|
|
30640
|
-
context.fillStyle = background;
|
|
30641
|
-
const userState = renderConfig.remotePointerUserStates.get(socketId);
|
|
30642
|
-
const isInactive = isOutOfBounds || userState === "idle" /* IDLE */ || userState === "away" /* AWAY */;
|
|
30643
|
-
if (isInactive) {
|
|
30644
|
-
context.globalAlpha = 0.3;
|
|
30645
|
-
}
|
|
30646
|
-
if (renderConfig.remotePointerButton.get(socketId) === "down") {
|
|
30647
|
-
context.beginPath();
|
|
30648
|
-
context.arc(x3, y3, 15, 0, 2 * Math.PI, false);
|
|
30649
|
-
context.lineWidth = 3;
|
|
30650
|
-
context.strokeStyle = "#ffffff88";
|
|
30651
|
-
context.stroke();
|
|
30652
|
-
context.closePath();
|
|
30653
|
-
context.beginPath();
|
|
30654
|
-
context.arc(x3, y3, 15, 0, 2 * Math.PI, false);
|
|
30655
|
-
context.lineWidth = 1;
|
|
30656
|
-
context.strokeStyle = background;
|
|
30657
|
-
context.stroke();
|
|
30658
|
-
context.closePath();
|
|
30659
|
-
}
|
|
30660
|
-
const IS_SPEAKING_COLOR = appState.theme === THEME.DARK ? "#2f6330" : COLOR_VOICE_CALL;
|
|
30661
|
-
const isSpeaking = collaborator?.isSpeaking;
|
|
30662
|
-
if (isSpeaking) {
|
|
30663
|
-
context.fillStyle = IS_SPEAKING_COLOR;
|
|
30664
|
-
context.strokeStyle = IS_SPEAKING_COLOR;
|
|
30665
|
-
context.lineWidth = 10;
|
|
30666
|
-
context.lineJoin = "round";
|
|
30667
|
-
context.beginPath();
|
|
30668
|
-
context.moveTo(x3, y3);
|
|
30669
|
-
context.lineTo(x3 + 0, y3 + 14);
|
|
30670
|
-
context.lineTo(x3 + 4, y3 + 9);
|
|
30671
|
-
context.lineTo(x3 + 11, y3 + 8);
|
|
30672
|
-
context.closePath();
|
|
30673
|
-
context.stroke();
|
|
30674
|
-
context.fill();
|
|
30675
|
-
}
|
|
30676
|
-
context.fillStyle = COLOR_WHITE;
|
|
30677
|
-
context.strokeStyle = COLOR_WHITE;
|
|
30678
|
-
context.lineWidth = 6;
|
|
30679
|
-
context.lineJoin = "round";
|
|
30680
|
-
context.beginPath();
|
|
30681
|
-
context.moveTo(x3, y3);
|
|
30682
|
-
context.lineTo(x3 + 0, y3 + 14);
|
|
30683
|
-
context.lineTo(x3 + 4, y3 + 9);
|
|
30684
|
-
context.lineTo(x3 + 11, y3 + 8);
|
|
30685
|
-
context.closePath();
|
|
30686
|
-
context.stroke();
|
|
30687
|
-
context.fill();
|
|
30688
|
-
context.fillStyle = background;
|
|
30689
|
-
context.strokeStyle = background;
|
|
30690
|
-
context.lineWidth = 2;
|
|
30691
|
-
context.lineJoin = "round";
|
|
30692
|
-
context.beginPath();
|
|
30693
|
-
if (isInactive) {
|
|
30694
|
-
context.moveTo(x3 - 1, y3 - 1);
|
|
30695
|
-
context.lineTo(x3 - 1, y3 + 15);
|
|
30696
|
-
context.lineTo(x3 + 5, y3 + 10);
|
|
30697
|
-
context.lineTo(x3 + 12, y3 + 9);
|
|
30698
|
-
context.closePath();
|
|
30699
|
-
context.fill();
|
|
30700
|
-
} else {
|
|
30701
|
-
context.moveTo(x3, y3);
|
|
30702
|
-
context.lineTo(x3 + 0, y3 + 14);
|
|
30703
|
-
context.lineTo(x3 + 4, y3 + 9);
|
|
30704
|
-
context.lineTo(x3 + 11, y3 + 8);
|
|
30705
|
-
context.closePath();
|
|
30706
|
-
context.fill();
|
|
30707
|
-
context.stroke();
|
|
30708
|
-
}
|
|
30709
|
-
const username = renderConfig.remotePointerUsernames.get(socketId) || "";
|
|
30710
|
-
if (!isOutOfBounds && username) {
|
|
30711
|
-
context.font = "600 12px sans-serif";
|
|
30712
|
-
const offsetX = (isSpeaking ? x3 + 0 : x3) + width / 2;
|
|
30713
|
-
const offsetY = (isSpeaking ? y3 + 0 : y3) + height + 2;
|
|
30714
|
-
const paddingHorizontal = 5;
|
|
30715
|
-
const paddingVertical = 3;
|
|
30716
|
-
const measure = context.measureText(username);
|
|
30717
|
-
const measureHeight = measure.actualBoundingBoxDescent + measure.actualBoundingBoxAscent;
|
|
30718
|
-
const finalHeight = Math.max(measureHeight, 12);
|
|
30719
|
-
const boxX = offsetX - 1;
|
|
30720
|
-
const boxY = offsetY - 1;
|
|
30721
|
-
const boxWidth = measure.width + 2 + paddingHorizontal * 2 + 2;
|
|
30722
|
-
const boxHeight = finalHeight + 2 + paddingVertical * 2 + 2;
|
|
30723
|
-
if (context.roundRect) {
|
|
30724
|
-
context.beginPath();
|
|
30725
|
-
context.roundRect(boxX, boxY, boxWidth, boxHeight, 8);
|
|
30726
|
-
context.fillStyle = background;
|
|
30727
|
-
context.fill();
|
|
30728
|
-
context.strokeStyle = COLOR_WHITE;
|
|
30729
|
-
context.stroke();
|
|
30730
|
-
if (isSpeaking) {
|
|
30731
|
-
context.beginPath();
|
|
30732
|
-
context.roundRect(boxX - 2, boxY - 2, boxWidth + 4, boxHeight + 4, 8);
|
|
30733
|
-
context.strokeStyle = IS_SPEAKING_COLOR;
|
|
30734
|
-
context.stroke();
|
|
30735
|
-
}
|
|
30736
|
-
} else {
|
|
30737
|
-
roundRect(context, boxX, boxY, boxWidth, boxHeight, 8, COLOR_WHITE);
|
|
30738
|
-
}
|
|
30739
|
-
context.fillStyle = COLOR_CHARCOAL_BLACK;
|
|
30740
|
-
context.fillText(
|
|
30741
|
-
username,
|
|
30742
|
-
offsetX + paddingHorizontal + 1,
|
|
30743
|
-
offsetY + paddingVertical + measure.actualBoundingBoxAscent + Math.floor((finalHeight - measureHeight) / 2) + 2
|
|
30744
|
-
);
|
|
30745
|
-
if (isSpeaking) {
|
|
30746
|
-
context.fillStyle = IS_SPEAKING_COLOR;
|
|
30747
|
-
const barheight = 8;
|
|
30748
|
-
const margin = 8;
|
|
30749
|
-
const gap = 5;
|
|
30750
|
-
context.fillRect(
|
|
30751
|
-
boxX + boxWidth + margin,
|
|
30752
|
-
boxY + (boxHeight / 2 - barheight / 2),
|
|
30753
|
-
2,
|
|
30754
|
-
barheight
|
|
30755
|
-
);
|
|
30756
|
-
context.fillRect(
|
|
30757
|
-
boxX + boxWidth + margin + gap,
|
|
30758
|
-
boxY + (boxHeight / 2 - barheight * 2 / 2),
|
|
30759
|
-
2,
|
|
30760
|
-
barheight * 2
|
|
30761
|
-
);
|
|
30762
|
-
context.fillRect(
|
|
30763
|
-
boxX + boxWidth + margin + gap * 2,
|
|
30764
|
-
boxY + (boxHeight / 2 - barheight / 2),
|
|
30765
|
-
2,
|
|
30766
|
-
barheight
|
|
30767
|
-
);
|
|
30768
|
-
}
|
|
30769
|
-
}
|
|
30770
|
-
context.restore();
|
|
30771
|
-
context.closePath();
|
|
30772
|
-
}
|
|
30773
|
-
};
|
|
30774
30176
|
|
|
30775
30177
|
// components/Avatar.tsx
|
|
30776
30178
|
init_define_import_meta_env();
|
|
@@ -30781,22 +30183,34 @@ var Avatar = ({
|
|
|
30781
30183
|
onClick,
|
|
30782
30184
|
name,
|
|
30783
30185
|
src,
|
|
30784
|
-
|
|
30186
|
+
isBeingFollowed,
|
|
30187
|
+
isCurrentUser
|
|
30785
30188
|
}) => {
|
|
30786
30189
|
const shortName = getNameInitial(name);
|
|
30787
30190
|
const [error, setError] = (0, import_react42.useState)(false);
|
|
30788
30191
|
const loadImg = !error && src;
|
|
30789
30192
|
const style = loadImg ? void 0 : { background: color };
|
|
30790
|
-
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30791
|
-
"
|
|
30193
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30194
|
+
"div",
|
|
30792
30195
|
{
|
|
30793
|
-
className: "Avatar
|
|
30794
|
-
|
|
30795
|
-
|
|
30796
|
-
|
|
30797
|
-
|
|
30196
|
+
className: clsx_m_default("Avatar", {
|
|
30197
|
+
"Avatar--is-followed": isBeingFollowed,
|
|
30198
|
+
"Avatar--is-current-user": isCurrentUser
|
|
30199
|
+
}),
|
|
30200
|
+
style,
|
|
30201
|
+
onClick,
|
|
30202
|
+
children: loadImg ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
30203
|
+
"img",
|
|
30204
|
+
{
|
|
30205
|
+
className: "Avatar-img",
|
|
30206
|
+
src,
|
|
30207
|
+
alt: shortName,
|
|
30208
|
+
referrerPolicy: "no-referrer",
|
|
30209
|
+
onError: () => setError(true)
|
|
30210
|
+
}
|
|
30211
|
+
) : shortName
|
|
30798
30212
|
}
|
|
30799
|
-
)
|
|
30213
|
+
);
|
|
30800
30214
|
};
|
|
30801
30215
|
|
|
30802
30216
|
// actions/actionNavigate.tsx
|
|
@@ -30829,39 +30243,12 @@ var actionGoToCollaborator = register({
|
|
|
30829
30243
|
};
|
|
30830
30244
|
},
|
|
30831
30245
|
PanelComponent: ({ updateData, data, appState }) => {
|
|
30832
|
-
const {
|
|
30833
|
-
const background = getClientColor(
|
|
30834
|
-
const statusClassNames = clsx_m_default({
|
|
30835
|
-
"is-followed": isBeingFollowed,
|
|
30836
|
-
"is-current-user": collaborator.isCurrentUser === true,
|
|
30837
|
-
"is-speaking": collaborator.isSpeaking,
|
|
30838
|
-
"is-in-call": collaborator.isInCall,
|
|
30839
|
-
"is-muted": collaborator.isMuted
|
|
30840
|
-
});
|
|
30841
|
-
const statusIconJSX = collaborator.isInCall ? collaborator.isSpeaking ? /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
30842
|
-
"div",
|
|
30843
|
-
{
|
|
30844
|
-
className: "UserList__collaborator-status-icon-speaking-indicator",
|
|
30845
|
-
title: t2("userList.hint.isSpeaking"),
|
|
30846
|
-
children: [
|
|
30847
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", {}),
|
|
30848
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", {}),
|
|
30849
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", {})
|
|
30850
|
-
]
|
|
30851
|
-
}
|
|
30852
|
-
) : collaborator.isMuted ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
30853
|
-
"div",
|
|
30854
|
-
{
|
|
30855
|
-
className: "UserList__collaborator-status-icon-microphone-muted",
|
|
30856
|
-
title: t2("userList.hint.micMuted"),
|
|
30857
|
-
children: microphoneMutedIcon
|
|
30858
|
-
}
|
|
30859
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { title: t2("userList.hint.inCall"), children: microphoneIcon }) : null;
|
|
30246
|
+
const { clientId, collaborator, withName, isBeingFollowed } = data;
|
|
30247
|
+
const background = getClientColor(clientId);
|
|
30860
30248
|
return withName ? /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
30861
30249
|
"div",
|
|
30862
30250
|
{
|
|
30863
|
-
className:
|
|
30864
|
-
style: { [`--avatar-size`]: "1.5rem" },
|
|
30251
|
+
className: "dropdown-menu-item dropdown-menu-item-base UserList__collaborator",
|
|
30865
30252
|
onClick: () => updateData(collaborator),
|
|
30866
30253
|
children: [
|
|
30867
30254
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
@@ -30872,43 +30259,35 @@ var actionGoToCollaborator = register({
|
|
|
30872
30259
|
},
|
|
30873
30260
|
name: collaborator.username || "",
|
|
30874
30261
|
src: collaborator.avatarUrl,
|
|
30875
|
-
|
|
30262
|
+
isBeingFollowed,
|
|
30263
|
+
isCurrentUser: collaborator.isCurrentUser === true
|
|
30876
30264
|
}
|
|
30877
30265
|
),
|
|
30878
30266
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "UserList__collaborator-name", children: collaborator.username }),
|
|
30879
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "UserList__collaborator-status-icons", "aria-hidden": true, children: [
|
|
30880
|
-
isBeingFollowed && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
30881
|
-
"div",
|
|
30882
|
-
{
|
|
30883
|
-
className: "UserList__collaborator-status-icon-is-followed",
|
|
30884
|
-
title: t2("userList.hint.followStatus"),
|
|
30885
|
-
children: eyeIcon
|
|
30886
|
-
}
|
|
30887
|
-
),
|
|
30888
|
-
statusIconJSX
|
|
30889
|
-
] })
|
|
30890
|
-
]
|
|
30891
|
-
}
|
|
30892
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
30893
|
-
"div",
|
|
30894
|
-
{
|
|
30895
|
-
className: `UserList__collaborator UserList__collaborator--avatar-only ${statusClassNames}`,
|
|
30896
|
-
children: [
|
|
30897
30267
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
30898
|
-
|
|
30268
|
+
"div",
|
|
30899
30269
|
{
|
|
30900
|
-
|
|
30901
|
-
|
|
30902
|
-
|
|
30903
|
-
|
|
30904
|
-
|
|
30905
|
-
src: collaborator.avatarUrl,
|
|
30906
|
-
className: statusClassNames
|
|
30270
|
+
className: "UserList__collaborator-follow-status-icon",
|
|
30271
|
+
style: { visibility: isBeingFollowed ? "visible" : "hidden" },
|
|
30272
|
+
title: isBeingFollowed ? t2("userList.hint.followStatus") : void 0,
|
|
30273
|
+
"aria-hidden": true,
|
|
30274
|
+
children: eyeIcon
|
|
30907
30275
|
}
|
|
30908
|
-
)
|
|
30909
|
-
statusIconJSX && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "UserList__collaborator-status-icon", children: statusIconJSX })
|
|
30276
|
+
)
|
|
30910
30277
|
]
|
|
30911
30278
|
}
|
|
30279
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
30280
|
+
Avatar,
|
|
30281
|
+
{
|
|
30282
|
+
color: background,
|
|
30283
|
+
onClick: () => {
|
|
30284
|
+
updateData(collaborator);
|
|
30285
|
+
},
|
|
30286
|
+
name: collaborator.username || "",
|
|
30287
|
+
src: collaborator.avatarUrl,
|
|
30288
|
+
isBeingFollowed,
|
|
30289
|
+
isCurrentUser: collaborator.isCurrentUser === true
|
|
30290
|
+
}
|
|
30912
30291
|
);
|
|
30913
30292
|
}
|
|
30914
30293
|
});
|
|
@@ -32537,7 +31916,6 @@ var pushTextAboveContainer = (elements, container, textElement) => {
|
|
|
32537
31916
|
(ele) => ele.id === container.id
|
|
32538
31917
|
);
|
|
32539
31918
|
updatedElements.splice(containerIndex + 1, 0, textElement);
|
|
32540
|
-
syncMovedIndices(updatedElements, arrayToMap([container, textElement]));
|
|
32541
31919
|
return updatedElements;
|
|
32542
31920
|
};
|
|
32543
31921
|
var pushContainerBelowText = (elements, container, textElement) => {
|
|
@@ -32550,7 +31928,6 @@ var pushContainerBelowText = (elements, container, textElement) => {
|
|
|
32550
31928
|
(ele) => ele.id === textElement.id
|
|
32551
31929
|
);
|
|
32552
31930
|
updatedElements.splice(textElementIndex, 0, container);
|
|
32553
|
-
syncMovedIndices(updatedElements, arrayToMap([container, textElement]));
|
|
32554
31931
|
return updatedElements;
|
|
32555
31932
|
};
|
|
32556
31933
|
var actionWrapTextInContainer = register({
|
|
@@ -33169,7 +32546,6 @@ var writeData = (prevElements, appState, updater) => {
|
|
|
33169
32546
|
)
|
|
33170
32547
|
);
|
|
33171
32548
|
fixBindingsAfterDeletion(elements, deletedElements);
|
|
33172
|
-
syncInvalidIndices(elements);
|
|
33173
32549
|
return {
|
|
33174
32550
|
elements,
|
|
33175
32551
|
appState: { ...appState, ...data.appState },
|
|
@@ -38682,23 +38058,24 @@ var HelpDialog = ({ onClose }) => {
|
|
|
38682
38058
|
init_define_import_meta_env();
|
|
38683
38059
|
var import_react72 = __toESM(require_react(), 1);
|
|
38684
38060
|
var import_jsx_runtime81 = __toESM(require_jsx_runtime(), 1);
|
|
38685
|
-
var
|
|
38061
|
+
var FIRST_N_AVATARS = 3;
|
|
38686
38062
|
var SHOW_COLLABORATORS_FILTER_AT = 8;
|
|
38687
38063
|
var ConditionalTooltipWrapper = ({
|
|
38688
38064
|
shouldWrap,
|
|
38689
38065
|
children,
|
|
38066
|
+
clientId,
|
|
38690
38067
|
username
|
|
38691
|
-
}) => shouldWrap ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Tooltip, { label: username || "Unknown user", children }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_react72.default.Fragment, { children });
|
|
38068
|
+
}) => shouldWrap ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Tooltip, { label: username || "Unknown user", children }, clientId) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_react72.default.Fragment, { children }, clientId);
|
|
38692
38069
|
var renderCollaborator = ({
|
|
38693
38070
|
actionManager,
|
|
38694
38071
|
collaborator,
|
|
38695
|
-
|
|
38072
|
+
clientId,
|
|
38696
38073
|
withName = false,
|
|
38697
38074
|
shouldWrapWithTooltip = false,
|
|
38698
38075
|
isBeingFollowed
|
|
38699
38076
|
}) => {
|
|
38700
38077
|
const data = {
|
|
38701
|
-
|
|
38078
|
+
clientId,
|
|
38702
38079
|
collaborator,
|
|
38703
38080
|
withName,
|
|
38704
38081
|
isBeingFollowed
|
|
@@ -38707,21 +38084,19 @@ var renderCollaborator = ({
|
|
|
38707
38084
|
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
38708
38085
|
ConditionalTooltipWrapper,
|
|
38709
38086
|
{
|
|
38087
|
+
clientId,
|
|
38710
38088
|
username: collaborator.username,
|
|
38711
38089
|
shouldWrap: shouldWrapWithTooltip,
|
|
38712
38090
|
children: avatarJSX
|
|
38713
38091
|
},
|
|
38714
|
-
|
|
38092
|
+
clientId
|
|
38715
38093
|
);
|
|
38716
38094
|
};
|
|
38717
38095
|
var collaboratorComparatorKeys = [
|
|
38718
38096
|
"avatarUrl",
|
|
38719
38097
|
"id",
|
|
38720
38098
|
"socketId",
|
|
38721
|
-
"username"
|
|
38722
|
-
"isInCall",
|
|
38723
|
-
"isSpeaking",
|
|
38724
|
-
"isMuted"
|
|
38099
|
+
"username"
|
|
38725
38100
|
];
|
|
38726
38101
|
var UserList = import_react72.default.memo(
|
|
38727
38102
|
({ className, mobile, collaborators, userToFollow }) => {
|
|
@@ -38735,138 +38110,107 @@ var UserList = import_react72.default.memo(
|
|
|
38735
38110
|
{ ...collaborator, socketId }
|
|
38736
38111
|
);
|
|
38737
38112
|
});
|
|
38738
|
-
const uniqueCollaboratorsArray = Array.from(
|
|
38739
|
-
|
|
38740
|
-
)
|
|
38113
|
+
const uniqueCollaboratorsArray = Array.from(uniqueCollaboratorsMap).filter(
|
|
38114
|
+
([_, collaborator]) => collaborator.username?.trim()
|
|
38115
|
+
);
|
|
38741
38116
|
const [searchTerm, setSearchTerm] = import_react72.default.useState("");
|
|
38742
|
-
|
|
38743
|
-
|
|
38744
|
-
|
|
38745
|
-
const updateMaxAvatars = (width) => {
|
|
38746
|
-
const maxAvatars2 = Math.max(1, Math.min(8, Math.floor(width / 38)));
|
|
38747
|
-
setMaxAvatars(maxAvatars2);
|
|
38748
|
-
};
|
|
38749
|
-
updateMaxAvatars(userListWrapper.current.clientWidth);
|
|
38750
|
-
if (!supportsResizeObserver) {
|
|
38751
|
-
return;
|
|
38752
|
-
}
|
|
38753
|
-
const resizeObserver = new ResizeObserver((entries) => {
|
|
38754
|
-
for (const entry of entries) {
|
|
38755
|
-
const { width } = entry.contentRect;
|
|
38756
|
-
updateMaxAvatars(width);
|
|
38757
|
-
}
|
|
38758
|
-
});
|
|
38759
|
-
resizeObserver.observe(userListWrapper.current);
|
|
38760
|
-
return () => {
|
|
38761
|
-
resizeObserver.disconnect();
|
|
38762
|
-
};
|
|
38763
|
-
}
|
|
38764
|
-
}, []);
|
|
38765
|
-
const [maxAvatars, setMaxAvatars] = import_react72.default.useState(DEFAULT_MAX_AVATARS);
|
|
38117
|
+
if (uniqueCollaboratorsArray.length === 0) {
|
|
38118
|
+
return null;
|
|
38119
|
+
}
|
|
38766
38120
|
const searchTermNormalized = searchTerm.trim().toLowerCase();
|
|
38767
38121
|
const filteredCollaborators = searchTermNormalized ? uniqueCollaboratorsArray.filter(
|
|
38768
|
-
(collaborator) => collaborator.username?.toLowerCase().includes(searchTerm)
|
|
38122
|
+
([, collaborator]) => collaborator.username?.toLowerCase().includes(searchTerm)
|
|
38769
38123
|
) : uniqueCollaboratorsArray;
|
|
38770
38124
|
const firstNCollaborators = uniqueCollaboratorsArray.slice(
|
|
38771
38125
|
0,
|
|
38772
|
-
|
|
38126
|
+
FIRST_N_AVATARS
|
|
38773
38127
|
);
|
|
38774
38128
|
const firstNAvatarsJSX = firstNCollaborators.map(
|
|
38775
|
-
(collaborator) => renderCollaborator({
|
|
38129
|
+
([clientId, collaborator]) => renderCollaborator({
|
|
38776
38130
|
actionManager,
|
|
38777
38131
|
collaborator,
|
|
38778
|
-
|
|
38132
|
+
clientId,
|
|
38779
38133
|
shouldWrapWithTooltip: true,
|
|
38780
38134
|
isBeingFollowed: collaborator.socketId === userToFollow
|
|
38781
38135
|
})
|
|
38782
38136
|
);
|
|
38783
38137
|
return mobile ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: clsx_m_default("UserList UserList_mobile", className), children: uniqueCollaboratorsArray.map(
|
|
38784
|
-
(collaborator) => renderCollaborator({
|
|
38138
|
+
([clientId, collaborator]) => renderCollaborator({
|
|
38785
38139
|
actionManager,
|
|
38786
38140
|
collaborator,
|
|
38787
|
-
|
|
38141
|
+
clientId,
|
|
38788
38142
|
shouldWrapWithTooltip: true,
|
|
38789
38143
|
isBeingFollowed: collaborator.socketId === userToFollow
|
|
38790
38144
|
})
|
|
38791
|
-
) }) : /* @__PURE__ */ (0, import_jsx_runtime81.
|
|
38792
|
-
|
|
38793
|
-
|
|
38794
|
-
|
|
38795
|
-
|
|
38796
|
-
|
|
38797
|
-
|
|
38798
|
-
|
|
38799
|
-
$cb5cc270b50c6fcd$export$be92b6f5f03c0fe9,
|
|
38800
|
-
{
|
|
38801
|
-
onOpenChange: (isOpen) => {
|
|
38802
|
-
if (!isOpen) {
|
|
38803
|
-
setSearchTerm("");
|
|
38804
|
-
}
|
|
38805
|
-
},
|
|
38806
|
-
children: [
|
|
38807
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)($cb5cc270b50c6fcd$export$41fb9f06171c75f4, { className: "UserList__more", children: [
|
|
38808
|
-
"+",
|
|
38809
|
-
uniqueCollaboratorsArray.length - maxAvatars + 1
|
|
38810
|
-
] }),
|
|
38811
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
38812
|
-
$cb5cc270b50c6fcd$export$7c6e2c02157bb7d2,
|
|
38813
|
-
{
|
|
38814
|
-
style: {
|
|
38815
|
-
zIndex: 2,
|
|
38816
|
-
width: "15rem",
|
|
38817
|
-
textAlign: "left"
|
|
38818
|
-
},
|
|
38819
|
-
align: "end",
|
|
38820
|
-
sideOffset: 10,
|
|
38821
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(Island, { style: { overflow: "hidden" }, children: [
|
|
38822
|
-
uniqueCollaboratorsArray.length >= SHOW_COLLABORATORS_FILTER_AT && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "UserList__search-wrapper", children: [
|
|
38823
|
-
searchIcon,
|
|
38824
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
38825
|
-
"input",
|
|
38826
|
-
{
|
|
38827
|
-
className: "UserList__search",
|
|
38828
|
-
type: "text",
|
|
38829
|
-
placeholder: t2("userList.search.placeholder"),
|
|
38830
|
-
value: searchTerm,
|
|
38831
|
-
onChange: (e3) => {
|
|
38832
|
-
setSearchTerm(e3.target.value);
|
|
38833
|
-
}
|
|
38834
|
-
}
|
|
38835
|
-
)
|
|
38836
|
-
] }),
|
|
38837
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "dropdown-menu UserList__collaborators", children: [
|
|
38838
|
-
filteredCollaborators.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "UserList__collaborators__empty", children: t2("userList.search.empty") }),
|
|
38839
|
-
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "UserList__hint", children: t2("userList.hint.text") }),
|
|
38840
|
-
filteredCollaborators.map(
|
|
38841
|
-
(collaborator) => renderCollaborator({
|
|
38842
|
-
actionManager,
|
|
38843
|
-
collaborator,
|
|
38844
|
-
socketId: collaborator.socketId,
|
|
38845
|
-
withName: true,
|
|
38846
|
-
isBeingFollowed: collaborator.socketId === userToFollow
|
|
38847
|
-
})
|
|
38848
|
-
)
|
|
38849
|
-
] })
|
|
38850
|
-
] })
|
|
38851
|
-
}
|
|
38852
|
-
)
|
|
38853
|
-
]
|
|
38145
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: clsx_m_default("UserList", className), children: [
|
|
38146
|
+
firstNAvatarsJSX,
|
|
38147
|
+
uniqueCollaboratorsArray.length > FIRST_N_AVATARS && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
38148
|
+
$cb5cc270b50c6fcd$export$be92b6f5f03c0fe9,
|
|
38149
|
+
{
|
|
38150
|
+
onOpenChange: (isOpen) => {
|
|
38151
|
+
if (!isOpen) {
|
|
38152
|
+
setSearchTerm("");
|
|
38854
38153
|
}
|
|
38855
|
-
|
|
38856
|
-
|
|
38857
|
-
|
|
38858
|
-
|
|
38154
|
+
},
|
|
38155
|
+
children: [
|
|
38156
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)($cb5cc270b50c6fcd$export$41fb9f06171c75f4, { className: "UserList__more", children: [
|
|
38157
|
+
"+",
|
|
38158
|
+
uniqueCollaboratorsArray.length - FIRST_N_AVATARS
|
|
38159
|
+
] }),
|
|
38160
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
38161
|
+
$cb5cc270b50c6fcd$export$7c6e2c02157bb7d2,
|
|
38162
|
+
{
|
|
38163
|
+
style: {
|
|
38164
|
+
zIndex: 2,
|
|
38165
|
+
width: "13rem",
|
|
38166
|
+
textAlign: "left"
|
|
38167
|
+
},
|
|
38168
|
+
align: "end",
|
|
38169
|
+
sideOffset: 10,
|
|
38170
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(Island, { style: { overflow: "hidden" }, children: [
|
|
38171
|
+
uniqueCollaboratorsArray.length >= SHOW_COLLABORATORS_FILTER_AT && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "UserList__search-wrapper", children: [
|
|
38172
|
+
searchIcon,
|
|
38173
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
38174
|
+
"input",
|
|
38175
|
+
{
|
|
38176
|
+
className: "UserList__search",
|
|
38177
|
+
type: "text",
|
|
38178
|
+
placeholder: t2("userList.search.placeholder"),
|
|
38179
|
+
value: searchTerm,
|
|
38180
|
+
onChange: (e3) => {
|
|
38181
|
+
setSearchTerm(e3.target.value);
|
|
38182
|
+
}
|
|
38183
|
+
}
|
|
38184
|
+
)
|
|
38185
|
+
] }),
|
|
38186
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "dropdown-menu UserList__collaborators", children: [
|
|
38187
|
+
filteredCollaborators.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "UserList__collaborators__empty", children: t2("userList.search.empty") }),
|
|
38188
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "UserList__hint", children: t2("userList.hint.text") }),
|
|
38189
|
+
filteredCollaborators.map(
|
|
38190
|
+
([clientId, collaborator]) => renderCollaborator({
|
|
38191
|
+
actionManager,
|
|
38192
|
+
collaborator,
|
|
38193
|
+
clientId,
|
|
38194
|
+
withName: true,
|
|
38195
|
+
isBeingFollowed: collaborator.socketId === userToFollow
|
|
38196
|
+
})
|
|
38197
|
+
)
|
|
38198
|
+
] })
|
|
38199
|
+
] })
|
|
38200
|
+
}
|
|
38201
|
+
)
|
|
38202
|
+
]
|
|
38203
|
+
}
|
|
38204
|
+
)
|
|
38205
|
+
] });
|
|
38859
38206
|
},
|
|
38860
38207
|
(prev, next) => {
|
|
38861
38208
|
if (prev.collaborators.size !== next.collaborators.size || prev.mobile !== next.mobile || prev.className !== next.className || prev.userToFollow !== next.userToFollow) {
|
|
38862
38209
|
return false;
|
|
38863
38210
|
}
|
|
38864
|
-
const nextCollaboratorSocketIds = next.collaborators.keys();
|
|
38865
38211
|
for (const [socketId, collaborator] of prev.collaborators) {
|
|
38866
38212
|
const nextCollaborator = next.collaborators.get(socketId);
|
|
38867
|
-
if (!nextCollaborator ||
|
|
38868
|
-
// as previous render
|
|
38869
|
-
socketId !== nextCollaboratorSocketIds.next().value || !isShallowEqual(
|
|
38213
|
+
if (!nextCollaborator || !isShallowEqual(
|
|
38870
38214
|
collaborator,
|
|
38871
38215
|
nextCollaborator,
|
|
38872
38216
|
collaboratorComparatorKeys
|
|
@@ -41348,7 +40692,7 @@ TTD mermaid definition render errror: ${error3.message}`,
|
|
|
41348
40692
|
refOnGenerate.current = onGenerate;
|
|
41349
40693
|
const [mermaidToExcalidrawLib, setMermaidToExcalidrawLib] = (0, import_react89.useState)({
|
|
41350
40694
|
loaded: false,
|
|
41351
|
-
api: import("./dist-
|
|
40695
|
+
api: import("./dist-MMLCHBGE.js")
|
|
41352
40696
|
});
|
|
41353
40697
|
(0, import_react89.useEffect)(() => {
|
|
41354
40698
|
const fn = async () => {
|
|
@@ -43464,12 +42808,10 @@ var ElementStore = class {
|
|
|
43464
42808
|
this.excalidrawElements.set(ele.id, ele);
|
|
43465
42809
|
};
|
|
43466
42810
|
getElements = () => {
|
|
43467
|
-
return
|
|
42811
|
+
return Array.from(this.excalidrawElements.values());
|
|
43468
42812
|
};
|
|
43469
42813
|
getElementsMap = () => {
|
|
43470
|
-
return toBrandedType(
|
|
43471
|
-
arrayToMap(this.getElements())
|
|
43472
|
-
);
|
|
42814
|
+
return toBrandedType(this.excalidrawElements);
|
|
43473
42815
|
};
|
|
43474
42816
|
getElement = (id) => {
|
|
43475
42817
|
return this.excalidrawElements.get(id);
|
|
@@ -43770,6 +43112,35 @@ var isRenderThrottlingEnabled = (() => {
|
|
|
43770
43112
|
// renderer/interactiveScene.ts
|
|
43771
43113
|
init_define_import_meta_env();
|
|
43772
43114
|
|
|
43115
|
+
// renderer/roundRect.ts
|
|
43116
|
+
init_define_import_meta_env();
|
|
43117
|
+
var roundRect = (context, x3, y3, width, height, radius, strokeColor) => {
|
|
43118
|
+
context.beginPath();
|
|
43119
|
+
context.moveTo(x3 + radius, y3);
|
|
43120
|
+
context.lineTo(x3 + width - radius, y3);
|
|
43121
|
+
context.quadraticCurveTo(x3 + width, y3, x3 + width, y3 + radius);
|
|
43122
|
+
context.lineTo(x3 + width, y3 + height - radius);
|
|
43123
|
+
context.quadraticCurveTo(
|
|
43124
|
+
x3 + width,
|
|
43125
|
+
y3 + height,
|
|
43126
|
+
x3 + width - radius,
|
|
43127
|
+
y3 + height
|
|
43128
|
+
);
|
|
43129
|
+
context.lineTo(x3 + radius, y3 + height);
|
|
43130
|
+
context.quadraticCurveTo(x3, y3 + height, x3, y3 + height - radius);
|
|
43131
|
+
context.lineTo(x3, y3 + radius);
|
|
43132
|
+
context.quadraticCurveTo(x3, y3, x3 + radius, y3);
|
|
43133
|
+
context.closePath();
|
|
43134
|
+
context.fill();
|
|
43135
|
+
if (strokeColor) {
|
|
43136
|
+
context.strokeStyle = strokeColor;
|
|
43137
|
+
}
|
|
43138
|
+
context.stroke();
|
|
43139
|
+
};
|
|
43140
|
+
|
|
43141
|
+
// types.ts
|
|
43142
|
+
init_define_import_meta_env();
|
|
43143
|
+
|
|
43773
43144
|
// renderer/renderSnaps.ts
|
|
43774
43145
|
init_define_import_meta_env();
|
|
43775
43146
|
var SNAP_COLOR_LIGHT = "#ff6b6b";
|
|
@@ -44342,18 +43713,15 @@ var _renderInteractiveScene = ({
|
|
|
44342
43713
|
if (locallySelectedIds.has(element.id) && !isSelectedViaGroup(appState, element)) {
|
|
44343
43714
|
selectionColors.push(selectionColor);
|
|
44344
43715
|
}
|
|
44345
|
-
|
|
44346
|
-
element.id
|
|
44347
|
-
);
|
|
44348
|
-
if (remoteClients) {
|
|
43716
|
+
if (renderConfig.remoteSelectedElementIds[element.id]) {
|
|
44349
43717
|
selectionColors.push(
|
|
44350
|
-
...
|
|
44351
|
-
|
|
44352
|
-
socketId
|
|
44353
|
-
|
|
44354
|
-
|
|
44355
|
-
|
|
44356
|
-
|
|
43718
|
+
...renderConfig.remoteSelectedElementIds[element.id].map(
|
|
43719
|
+
(socketId) => {
|
|
43720
|
+
const { id } = renderConfig.remotePointerViewportCoords[socketId];
|
|
43721
|
+
const background = getClientColor(id);
|
|
43722
|
+
return background;
|
|
43723
|
+
}
|
|
43724
|
+
)
|
|
44357
43725
|
);
|
|
44358
43726
|
}
|
|
44359
43727
|
if (selectionColors.length) {
|
|
@@ -44365,7 +43733,7 @@ var _renderInteractiveScene = ({
|
|
|
44365
43733
|
elementX2,
|
|
44366
43734
|
elementY2,
|
|
44367
43735
|
selectionColors,
|
|
44368
|
-
dashed: !!
|
|
43736
|
+
dashed: !!renderConfig.remoteSelectedElementIds[element.id],
|
|
44369
43737
|
cx,
|
|
44370
43738
|
cy,
|
|
44371
43739
|
activeEmbeddable: appState.activeEmbeddable?.element === element && appState.activeEmbeddable.state === "active"
|
|
@@ -44460,13 +43828,107 @@ var _renderInteractiveScene = ({
|
|
|
44460
43828
|
}
|
|
44461
43829
|
renderSnaps(context, appState);
|
|
44462
43830
|
context.restore();
|
|
44463
|
-
|
|
44464
|
-
|
|
44465
|
-
|
|
44466
|
-
appState
|
|
44467
|
-
|
|
44468
|
-
|
|
44469
|
-
|
|
43831
|
+
for (const clientId in renderConfig.remotePointerViewportCoords) {
|
|
43832
|
+
let { x: x3, y: y3, id } = renderConfig.remotePointerViewportCoords[clientId];
|
|
43833
|
+
x3 -= appState.offsetLeft;
|
|
43834
|
+
y3 -= appState.offsetTop;
|
|
43835
|
+
const width = 11;
|
|
43836
|
+
const height = 14;
|
|
43837
|
+
const isOutOfBounds = x3 < 0 || x3 > normalizedWidth - width || y3 < 0 || y3 > normalizedHeight - height;
|
|
43838
|
+
x3 = Math.max(x3, 0);
|
|
43839
|
+
x3 = Math.min(x3, normalizedWidth - width);
|
|
43840
|
+
y3 = Math.max(y3, 0);
|
|
43841
|
+
y3 = Math.min(y3, normalizedHeight - height);
|
|
43842
|
+
const background = getClientColor(id);
|
|
43843
|
+
context.save();
|
|
43844
|
+
context.strokeStyle = background;
|
|
43845
|
+
context.fillStyle = background;
|
|
43846
|
+
const userState = renderConfig.remotePointerUserStates[clientId];
|
|
43847
|
+
const isInactive = isOutOfBounds || userState === "idle" /* IDLE */ || userState === "away" /* AWAY */;
|
|
43848
|
+
if (isInactive) {
|
|
43849
|
+
context.globalAlpha = 0.3;
|
|
43850
|
+
}
|
|
43851
|
+
if (renderConfig.remotePointerButton && renderConfig.remotePointerButton[clientId] === "down") {
|
|
43852
|
+
context.beginPath();
|
|
43853
|
+
context.arc(x3, y3, 15, 0, 2 * Math.PI, false);
|
|
43854
|
+
context.lineWidth = 3;
|
|
43855
|
+
context.strokeStyle = "#ffffff88";
|
|
43856
|
+
context.stroke();
|
|
43857
|
+
context.closePath();
|
|
43858
|
+
context.beginPath();
|
|
43859
|
+
context.arc(x3, y3, 15, 0, 2 * Math.PI, false);
|
|
43860
|
+
context.lineWidth = 1;
|
|
43861
|
+
context.strokeStyle = background;
|
|
43862
|
+
context.stroke();
|
|
43863
|
+
context.closePath();
|
|
43864
|
+
}
|
|
43865
|
+
context.fillStyle = open_color_default.white;
|
|
43866
|
+
context.strokeStyle = open_color_default.white;
|
|
43867
|
+
context.lineWidth = 6;
|
|
43868
|
+
context.lineJoin = "round";
|
|
43869
|
+
context.beginPath();
|
|
43870
|
+
context.moveTo(x3, y3);
|
|
43871
|
+
context.lineTo(x3 + 0, y3 + 14);
|
|
43872
|
+
context.lineTo(x3 + 4, y3 + 9);
|
|
43873
|
+
context.lineTo(x3 + 11, y3 + 8);
|
|
43874
|
+
context.closePath();
|
|
43875
|
+
context.stroke();
|
|
43876
|
+
context.fill();
|
|
43877
|
+
context.fillStyle = background;
|
|
43878
|
+
context.strokeStyle = background;
|
|
43879
|
+
context.lineWidth = 2;
|
|
43880
|
+
context.lineJoin = "round";
|
|
43881
|
+
context.beginPath();
|
|
43882
|
+
if (isInactive) {
|
|
43883
|
+
context.moveTo(x3 - 1, y3 - 1);
|
|
43884
|
+
context.lineTo(x3 - 1, y3 + 15);
|
|
43885
|
+
context.lineTo(x3 + 5, y3 + 10);
|
|
43886
|
+
context.lineTo(x3 + 12, y3 + 9);
|
|
43887
|
+
context.closePath();
|
|
43888
|
+
context.fill();
|
|
43889
|
+
} else {
|
|
43890
|
+
context.moveTo(x3, y3);
|
|
43891
|
+
context.lineTo(x3 + 0, y3 + 14);
|
|
43892
|
+
context.lineTo(x3 + 4, y3 + 9);
|
|
43893
|
+
context.lineTo(x3 + 11, y3 + 8);
|
|
43894
|
+
context.closePath();
|
|
43895
|
+
context.fill();
|
|
43896
|
+
context.stroke();
|
|
43897
|
+
}
|
|
43898
|
+
const username = renderConfig.remotePointerUsernames[clientId] || "";
|
|
43899
|
+
if (!isOutOfBounds && username) {
|
|
43900
|
+
context.font = "600 12px sans-serif";
|
|
43901
|
+
const offsetX = x3 + width / 2;
|
|
43902
|
+
const offsetY = y3 + height + 2;
|
|
43903
|
+
const paddingHorizontal = 5;
|
|
43904
|
+
const paddingVertical = 3;
|
|
43905
|
+
const measure = context.measureText(username);
|
|
43906
|
+
const measureHeight = measure.actualBoundingBoxDescent + measure.actualBoundingBoxAscent;
|
|
43907
|
+
const finalHeight = Math.max(measureHeight, 12);
|
|
43908
|
+
const boxX = offsetX - 1;
|
|
43909
|
+
const boxY = offsetY - 1;
|
|
43910
|
+
const boxWidth = measure.width + 2 + paddingHorizontal * 2 + 2;
|
|
43911
|
+
const boxHeight = finalHeight + 2 + paddingVertical * 2 + 2;
|
|
43912
|
+
if (context.roundRect) {
|
|
43913
|
+
context.beginPath();
|
|
43914
|
+
context.roundRect(boxX, boxY, boxWidth, boxHeight, 8);
|
|
43915
|
+
context.fillStyle = background;
|
|
43916
|
+
context.fill();
|
|
43917
|
+
context.strokeStyle = open_color_default.white;
|
|
43918
|
+
context.stroke();
|
|
43919
|
+
} else {
|
|
43920
|
+
roundRect(context, boxX, boxY, boxWidth, boxHeight, 8, open_color_default.white);
|
|
43921
|
+
}
|
|
43922
|
+
context.fillStyle = open_color_default.black;
|
|
43923
|
+
context.fillText(
|
|
43924
|
+
username,
|
|
43925
|
+
offsetX + paddingHorizontal + 1,
|
|
43926
|
+
offsetY + paddingVertical + measure.actualBoundingBoxAscent + Math.floor((finalHeight - measureHeight) / 2) + 2
|
|
43927
|
+
);
|
|
43928
|
+
}
|
|
43929
|
+
context.restore();
|
|
43930
|
+
context.closePath();
|
|
43931
|
+
}
|
|
44470
43932
|
let scrollBars;
|
|
44471
43933
|
if (renderConfig.renderScrollbars) {
|
|
44472
43934
|
scrollBars = getScrollBars(
|
|
@@ -44524,40 +43986,40 @@ var InteractiveCanvas = (props) => {
|
|
|
44524
43986
|
isComponentMounted.current = true;
|
|
44525
43987
|
return;
|
|
44526
43988
|
}
|
|
44527
|
-
const
|
|
44528
|
-
const
|
|
44529
|
-
const remoteSelectedElementIds =
|
|
44530
|
-
const
|
|
44531
|
-
const
|
|
43989
|
+
const cursorButton = {};
|
|
43990
|
+
const pointerViewportCoords = {};
|
|
43991
|
+
const remoteSelectedElementIds = {};
|
|
43992
|
+
const pointerUsernames = {};
|
|
43993
|
+
const pointerUserStates = {};
|
|
44532
43994
|
props.appState.collaborators.forEach((user, socketId) => {
|
|
44533
43995
|
if (user.selectedElementIds) {
|
|
44534
43996
|
for (const id of Object.keys(user.selectedElementIds)) {
|
|
44535
|
-
if (!
|
|
44536
|
-
remoteSelectedElementIds
|
|
43997
|
+
if (!(id in remoteSelectedElementIds)) {
|
|
43998
|
+
remoteSelectedElementIds[id] = [];
|
|
44537
43999
|
}
|
|
44538
|
-
remoteSelectedElementIds
|
|
44000
|
+
remoteSelectedElementIds[id].push(socketId);
|
|
44539
44001
|
}
|
|
44540
44002
|
}
|
|
44541
44003
|
if (!user.pointer || user.pointer.renderCursor === false) {
|
|
44542
44004
|
return;
|
|
44543
44005
|
}
|
|
44544
44006
|
if (user.username) {
|
|
44545
|
-
|
|
44007
|
+
pointerUsernames[socketId] = user.username;
|
|
44546
44008
|
}
|
|
44547
44009
|
if (user.userState) {
|
|
44548
|
-
|
|
44010
|
+
pointerUserStates[socketId] = user.userState;
|
|
44549
44011
|
}
|
|
44550
|
-
|
|
44551
|
-
|
|
44552
|
-
sceneCoordsToViewportCoords(
|
|
44012
|
+
pointerViewportCoords[socketId] = {
|
|
44013
|
+
...sceneCoordsToViewportCoords(
|
|
44553
44014
|
{
|
|
44554
44015
|
sceneX: user.pointer.x,
|
|
44555
44016
|
sceneY: user.pointer.y
|
|
44556
44017
|
},
|
|
44557
44018
|
props.appState
|
|
44558
|
-
)
|
|
44559
|
-
|
|
44560
|
-
|
|
44019
|
+
),
|
|
44020
|
+
id: user.id || socketId
|
|
44021
|
+
};
|
|
44022
|
+
cursorButton[socketId] = user.button;
|
|
44561
44023
|
});
|
|
44562
44024
|
const selectionColor = props.containerRef?.current && getComputedStyle(props.containerRef.current).getPropertyValue(
|
|
44563
44025
|
"--color-selection"
|
|
@@ -44571,11 +44033,11 @@ var InteractiveCanvas = (props) => {
|
|
|
44571
44033
|
scale: window.devicePixelRatio,
|
|
44572
44034
|
appState: props.appState,
|
|
44573
44035
|
renderConfig: {
|
|
44574
|
-
remotePointerViewportCoords,
|
|
44575
|
-
remotePointerButton,
|
|
44036
|
+
remotePointerViewportCoords: pointerViewportCoords,
|
|
44037
|
+
remotePointerButton: cursorButton,
|
|
44576
44038
|
remoteSelectedElementIds,
|
|
44577
|
-
remotePointerUsernames,
|
|
44578
|
-
remotePointerUserStates,
|
|
44039
|
+
remotePointerUsernames: pointerUsernames,
|
|
44040
|
+
remotePointerUserStates: pointerUserStates,
|
|
44579
44041
|
selectionColor,
|
|
44580
44042
|
renderScrollbars: false
|
|
44581
44043
|
},
|
|
@@ -45611,7 +45073,7 @@ var LaserTrails = class {
|
|
|
45611
45073
|
if (!this.collabTrails.has(key)) {
|
|
45612
45074
|
trail = new AnimatedTrail(this.animationFrameHandler, this.app, {
|
|
45613
45075
|
...this.getTrailOptions(),
|
|
45614
|
-
fill: () => collaborator.pointer?.laserColor || getClientColor(key
|
|
45076
|
+
fill: () => collaborator.pointer?.laserColor || getClientColor(collaborator.id || key)
|
|
45615
45077
|
});
|
|
45616
45078
|
trail.start(this.container);
|
|
45617
45079
|
this.collabTrails.set(key, trail);
|
|
@@ -46156,6 +45618,7 @@ var useExcalidrawElements = () => (0, import_react96.useContext)(ExcalidrawEleme
|
|
|
46156
45618
|
var useExcalidrawAppState = () => (0, import_react96.useContext)(ExcalidrawAppStateContext);
|
|
46157
45619
|
var useExcalidrawSetAppState = () => (0, import_react96.useContext)(ExcalidrawSetAppStateContext);
|
|
46158
45620
|
var useExcalidrawActionManager = () => (0, import_react96.useContext)(ExcalidrawActionManagerContext);
|
|
45621
|
+
var supportsResizeObserver = typeof window !== "undefined" && "ResizeObserver" in window;
|
|
46159
45622
|
var didTapTwice = false;
|
|
46160
45623
|
var tappedTwiceTimer = 0;
|
|
46161
45624
|
var isHoldingSpace = false;
|
|
@@ -47394,7 +46857,7 @@ var App = class _App extends import_react96.default.Component {
|
|
|
47394
46857
|
opacity: 100,
|
|
47395
46858
|
locked: false
|
|
47396
46859
|
});
|
|
47397
|
-
this.scene.
|
|
46860
|
+
this.scene.addNewElement(frame);
|
|
47398
46861
|
for (const child of selectedElements) {
|
|
47399
46862
|
mutateElement(child, { frameId: frame.id });
|
|
47400
46863
|
}
|
|
@@ -48239,18 +47702,19 @@ var App = class _App extends import_react96.default.Component {
|
|
|
48239
47702
|
randomizeSeed: !opts.retainSeed
|
|
48240
47703
|
}
|
|
48241
47704
|
);
|
|
48242
|
-
const
|
|
48243
|
-
|
|
48244
|
-
|
|
47705
|
+
const allElements = [
|
|
47706
|
+
...this.scene.getElementsIncludingDeleted(),
|
|
47707
|
+
...newElements
|
|
47708
|
+
];
|
|
48245
47709
|
const topLayerFrame = this.getTopLayerFrameAtSceneCoords({ x: x3, y: y3 });
|
|
48246
47710
|
if (topLayerFrame) {
|
|
48247
47711
|
const eligibleElements = filterElementsEligibleAsFrameChildren(
|
|
48248
47712
|
newElements,
|
|
48249
47713
|
topLayerFrame
|
|
48250
47714
|
);
|
|
48251
|
-
addElementsToFrame(
|
|
47715
|
+
addElementsToFrame(allElements, eligibleElements, topLayerFrame);
|
|
48252
47716
|
}
|
|
48253
|
-
this.scene.replaceAllElements(
|
|
47717
|
+
this.scene.replaceAllElements(allElements);
|
|
48254
47718
|
newElements.forEach((newElement2) => {
|
|
48255
47719
|
if (isTextElement(newElement2) && isBoundToContainer(newElement2)) {
|
|
48256
47720
|
const container = getContainerElement(
|
|
@@ -48438,7 +47902,18 @@ var App = class _App extends import_react96.default.Component {
|
|
|
48438
47902
|
if (textElements.length === 0) {
|
|
48439
47903
|
return;
|
|
48440
47904
|
}
|
|
48441
|
-
|
|
47905
|
+
const frameId = textElements[0].frameId;
|
|
47906
|
+
if (frameId) {
|
|
47907
|
+
this.scene.insertElementsAtIndex(
|
|
47908
|
+
textElements,
|
|
47909
|
+
this.scene.getElementIndex(frameId)
|
|
47910
|
+
);
|
|
47911
|
+
} else {
|
|
47912
|
+
this.scene.replaceAllElements([
|
|
47913
|
+
...this.scene.getElementsIncludingDeleted(),
|
|
47914
|
+
...textElements
|
|
47915
|
+
]);
|
|
47916
|
+
}
|
|
48442
47917
|
this.setState({
|
|
48443
47918
|
selectedElementIds: makeNextSelectedElementIds(
|
|
48444
47919
|
Object.fromEntries(textElements.map((el) => [el.id, true])),
|
|
@@ -49301,7 +48776,7 @@ var App = class _App extends import_react96.default.Component {
|
|
|
49301
48776
|
const containerIndex = this.scene.getElementIndex(container.id);
|
|
49302
48777
|
this.scene.insertElementAtIndex(element, containerIndex + 1);
|
|
49303
48778
|
} else {
|
|
49304
|
-
this.scene.
|
|
48779
|
+
this.scene.addNewElement(element);
|
|
49305
48780
|
}
|
|
49306
48781
|
}
|
|
49307
48782
|
this.setState({
|
|
@@ -50693,7 +50168,7 @@ var App = class _App extends import_react96.default.Component {
|
|
|
50693
50168
|
this.scene.getNonDeletedElements(),
|
|
50694
50169
|
this.scene.getNonDeletedElementsMap()
|
|
50695
50170
|
);
|
|
50696
|
-
this.scene.
|
|
50171
|
+
this.scene.addNewElement(element);
|
|
50697
50172
|
this.setState({
|
|
50698
50173
|
draggingElement: element,
|
|
50699
50174
|
editingElement: element,
|
|
@@ -50728,7 +50203,10 @@ var App = class _App extends import_react96.default.Component {
|
|
|
50728
50203
|
width,
|
|
50729
50204
|
height
|
|
50730
50205
|
});
|
|
50731
|
-
this.scene.
|
|
50206
|
+
this.scene.replaceAllElements([
|
|
50207
|
+
...this.scene.getElementsIncludingDeleted(),
|
|
50208
|
+
element
|
|
50209
|
+
]);
|
|
50732
50210
|
return element;
|
|
50733
50211
|
};
|
|
50734
50212
|
//create rectangle element with youtube top left on nearest grid point width / hight 640/360
|
|
@@ -50769,7 +50247,10 @@ var App = class _App extends import_react96.default.Component {
|
|
|
50769
50247
|
height: embedLink.intrinsicSize.h,
|
|
50770
50248
|
link
|
|
50771
50249
|
});
|
|
50772
|
-
this.scene.
|
|
50250
|
+
this.scene.replaceAllElements([
|
|
50251
|
+
...this.scene.getElementsIncludingDeleted(),
|
|
50252
|
+
element
|
|
50253
|
+
]);
|
|
50773
50254
|
return element;
|
|
50774
50255
|
};
|
|
50775
50256
|
createImageElement = ({
|
|
@@ -50885,7 +50366,7 @@ var App = class _App extends import_react96.default.Component {
|
|
|
50885
50366
|
this.scene.getNonDeletedElements(),
|
|
50886
50367
|
this.scene.getNonDeletedElementsMap()
|
|
50887
50368
|
);
|
|
50888
|
-
this.scene.
|
|
50369
|
+
this.scene.addNewElement(element);
|
|
50889
50370
|
this.setState({
|
|
50890
50371
|
draggingElement: element,
|
|
50891
50372
|
editingElement: element,
|
|
@@ -50941,7 +50422,7 @@ var App = class _App extends import_react96.default.Component {
|
|
|
50941
50422
|
draggingElement: element
|
|
50942
50423
|
});
|
|
50943
50424
|
} else {
|
|
50944
|
-
this.scene.
|
|
50425
|
+
this.scene.addNewElement(element);
|
|
50945
50426
|
this.setState({
|
|
50946
50427
|
multiElement: null,
|
|
50947
50428
|
draggingElement: element,
|
|
@@ -50963,7 +50444,10 @@ var App = class _App extends import_react96.default.Component {
|
|
|
50963
50444
|
...FRAME_STYLE
|
|
50964
50445
|
};
|
|
50965
50446
|
const frame = type === TOOL_TYPE.magicframe ? newMagicFrameElement(constructorOpts) : newFrameElement(constructorOpts);
|
|
50966
|
-
this.scene.
|
|
50447
|
+
this.scene.replaceAllElements([
|
|
50448
|
+
...this.scene.getElementsIncludingDeleted(),
|
|
50449
|
+
frame
|
|
50450
|
+
]);
|
|
50967
50451
|
this.setState({
|
|
50968
50452
|
multiElement: null,
|
|
50969
50453
|
draggingElement: frame,
|
|
@@ -51251,7 +50735,6 @@ var App = class _App extends import_react96.default.Component {
|
|
|
51251
50735
|
}
|
|
51252
50736
|
}
|
|
51253
50737
|
const nextSceneElements = [...nextElements, ...elementsToAppend];
|
|
51254
|
-
syncMovedIndices(nextSceneElements, arrayToMap(elementsToAppend));
|
|
51255
50738
|
bindTextToShapeAfterDuplication(
|
|
51256
50739
|
nextElements,
|
|
51257
50740
|
elementsToAppend,
|
|
@@ -52145,7 +51628,7 @@ var App = class _App extends import_react96.default.Component {
|
|
|
52145
51628
|
this.setState({ errorMessage: t2("errors.imageToolNotSupported") });
|
|
52146
51629
|
return;
|
|
52147
51630
|
}
|
|
52148
|
-
this.scene.
|
|
51631
|
+
this.scene.addNewElement(imageElement);
|
|
52149
51632
|
try {
|
|
52150
51633
|
return await this.initializeImage({
|
|
52151
51634
|
imageFile,
|
|
@@ -53019,9 +52502,7 @@ var createTestHook = () => {
|
|
|
53019
52502
|
return this.app?.scene.getElementsIncludingDeleted();
|
|
53020
52503
|
},
|
|
53021
52504
|
set(elements) {
|
|
53022
|
-
return this.app?.scene.replaceAllElements(
|
|
53023
|
-
syncInvalidIndices(elements)
|
|
53024
|
-
);
|
|
52505
|
+
return this.app?.scene.replaceAllElements(elements);
|
|
53025
52506
|
}
|
|
53026
52507
|
}
|
|
53027
52508
|
});
|
|
@@ -53556,7 +53037,7 @@ var ExcalidrawBase = (props) => {
|
|
|
53556
53037
|
}
|
|
53557
53038
|
(0, import_react97.useEffect)(() => {
|
|
53558
53039
|
const importPolyfill = async () => {
|
|
53559
|
-
await import("./roundRect-
|
|
53040
|
+
await import("./roundRect-5HI6M3OA.js");
|
|
53560
53041
|
};
|
|
53561
53042
|
importPolyfill();
|
|
53562
53043
|
const handleTouchMove = (event) => {
|
|
@@ -54314,10 +53795,7 @@ var getNonDeletedElements3 = (allElements) => {
|
|
|
54314
53795
|
for (const element of allElements) {
|
|
54315
53796
|
if (!element.isDeleted) {
|
|
54316
53797
|
elements.push(element);
|
|
54317
|
-
elementsMap.set(
|
|
54318
|
-
element.id,
|
|
54319
|
-
element
|
|
54320
|
-
);
|
|
53798
|
+
elementsMap.set(element.id, element);
|
|
54321
53799
|
}
|
|
54322
53800
|
}
|
|
54323
53801
|
return { elementsMap, elements };
|
|
@@ -54364,7 +53842,6 @@ var Scene = class _Scene {
|
|
|
54364
53842
|
nonDeletedElementsMap = toBrandedType(
|
|
54365
53843
|
/* @__PURE__ */ new Map()
|
|
54366
53844
|
);
|
|
54367
|
-
// ideally all elements within the scene should be wrapped around with `Ordered` type, but right now there is no real benefit doing so
|
|
54368
53845
|
elements = [];
|
|
54369
53846
|
nonDeletedFramesLikes = [];
|
|
54370
53847
|
frames = [];
|
|
@@ -54456,15 +53933,9 @@ var Scene = class _Scene {
|
|
|
54456
53933
|
return didChange;
|
|
54457
53934
|
}
|
|
54458
53935
|
replaceAllElements(nextElements) {
|
|
54459
|
-
|
|
54460
|
-
|
|
54461
|
-
nextElements instanceof Array ? nextElements : Array.from(nextElements.values())
|
|
54462
|
-
);
|
|
53936
|
+
this.elements = // ts doesn't like `Array.isArray` of `instanceof Map`
|
|
53937
|
+
nextElements instanceof Array ? nextElements : Array.from(nextElements.values());
|
|
54463
53938
|
const nextFrameLikes = [];
|
|
54464
|
-
if (define_import_meta_env_default.DEV || define_import_meta_env_default.MODE === ENV.TEST) {
|
|
54465
|
-
validateFractionalIndices(_nextElements.map((x3) => x3.index));
|
|
54466
|
-
}
|
|
54467
|
-
this.elements = syncInvalidIndices(_nextElements);
|
|
54468
53939
|
this.elementsMap.clear();
|
|
54469
53940
|
this.elements.forEach((element) => {
|
|
54470
53941
|
if (isFrameLikeElement(element)) {
|
|
@@ -54499,8 +53970,8 @@ var Scene = class _Scene {
|
|
|
54499
53970
|
};
|
|
54500
53971
|
}
|
|
54501
53972
|
destroy() {
|
|
54502
|
-
this.elements = [];
|
|
54503
53973
|
this.nonDeletedElements = [];
|
|
53974
|
+
this.elements = [];
|
|
54504
53975
|
this.nonDeletedFramesLikes = [];
|
|
54505
53976
|
this.frames = [];
|
|
54506
53977
|
this.elementsMap.clear();
|
|
@@ -54525,7 +53996,6 @@ var Scene = class _Scene {
|
|
|
54525
53996
|
element,
|
|
54526
53997
|
...this.elements.slice(index2)
|
|
54527
53998
|
];
|
|
54528
|
-
syncMovedIndices(nextElements, arrayToMap([element]));
|
|
54529
53999
|
this.replaceAllElements(nextElements);
|
|
54530
54000
|
}
|
|
54531
54001
|
insertElementsAtIndex(elements, index2) {
|
|
@@ -54539,16 +54009,14 @@ var Scene = class _Scene {
|
|
|
54539
54009
|
...elements,
|
|
54540
54010
|
...this.elements.slice(index2)
|
|
54541
54011
|
];
|
|
54542
|
-
syncMovedIndices(nextElements, arrayToMap(elements));
|
|
54543
54012
|
this.replaceAllElements(nextElements);
|
|
54544
54013
|
}
|
|
54545
|
-
|
|
54546
|
-
|
|
54547
|
-
|
|
54548
|
-
|
|
54549
|
-
|
|
54550
|
-
|
|
54551
|
-
this.insertElementsAtIndex(elements, index2);
|
|
54014
|
+
addNewElement = (element) => {
|
|
54015
|
+
if (element.frameId) {
|
|
54016
|
+
this.insertElementAtIndex(element, this.getElementIndex(element.frameId));
|
|
54017
|
+
} else {
|
|
54018
|
+
this.replaceAllElements([...this.elements, element]);
|
|
54019
|
+
}
|
|
54552
54020
|
};
|
|
54553
54021
|
getElementIndex(elementId) {
|
|
54554
54022
|
return this.elements.findIndex((element) => element.id === elementId);
|
|
@@ -54997,7 +54465,7 @@ var parseFileContents = async (blob) => {
|
|
|
54997
54465
|
let contents;
|
|
54998
54466
|
if (blob.type === MIME_TYPES.png) {
|
|
54999
54467
|
try {
|
|
55000
|
-
return await (await import("./image-
|
|
54468
|
+
return await (await import("./image-DG6G3CCZ.js")).decodePngMetadata(blob);
|
|
55001
54469
|
} catch (error) {
|
|
55002
54470
|
if (error.message === "INVALID") {
|
|
55003
54471
|
throw new ImageSceneDataError(
|
|
@@ -55024,7 +54492,7 @@ var parseFileContents = async (blob) => {
|
|
|
55024
54492
|
}
|
|
55025
54493
|
if (blob.type === MIME_TYPES.svg) {
|
|
55026
54494
|
try {
|
|
55027
|
-
return await (await import("./image-
|
|
54495
|
+
return await (await import("./image-DG6G3CCZ.js")).decodeSvgMetadata({
|
|
55028
54496
|
svg: contents
|
|
55029
54497
|
});
|
|
55030
54498
|
} catch (error) {
|
|
@@ -55187,9 +54655,9 @@ var resizeImageFile = async (file2, opts) => {
|
|
|
55187
54655
|
return file2;
|
|
55188
54656
|
}
|
|
55189
54657
|
const [pica, imageBlobReduce] = await Promise.all([
|
|
55190
|
-
import("./pica-
|
|
54658
|
+
import("./pica-RRHXYZO2.js").then((res) => res.default),
|
|
55191
54659
|
// a wrapper for pica for better API
|
|
55192
|
-
import("./image-blob-reduce.esm-
|
|
54660
|
+
import("./image-blob-reduce.esm-OJYOZNL4.js").then((res) => res.default)
|
|
55193
54661
|
]);
|
|
55194
54662
|
const reduce = imageBlobReduce({
|
|
55195
54663
|
pica: pica({ features: ["js", "wasm"] })
|
|
@@ -55589,4 +55057,4 @@ use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.developme
|
|
|
55589
55057
|
* LICENSE file in the root directory of this source tree.
|
|
55590
55058
|
*)
|
|
55591
55059
|
*/
|
|
55592
|
-
//# sourceMappingURL=chunk-
|
|
55060
|
+
//# sourceMappingURL=chunk-7ZK24NYG.js.map
|