@layers-app/editor 2.3.18 → 2.3.19
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/index.cjs +2 -2
- package/dist/index.d.ts +14 -2
- package/dist/index.js +2 -2
- package/dist/{layers.DgU1mViH.js → layers.0pVoBoMb.js} +1 -1
- package/dist/{layers.66pQ86Bp.js → layers.20dJ8d3m.js} +1 -1
- package/dist/{layers.pyiZj5d7.js → layers.2LZNQAQ4.js} +1 -1
- package/dist/{layers.CWHsJCaN.js → layers.3WbIyvQn.js} +1 -1
- package/dist/{layers.BvOJbrmp.js → layers.4Lak4nDL.js} +1 -1
- package/dist/{layers.BsDBdfqH.js → layers.5JQx3ad3.js} +1 -1
- package/dist/{layers.D34siG70.js → layers.85FReFF8.js} +1 -1
- package/dist/{layers.CMQMi5J7.js → layers.8jFfhBTg.js} +2 -2
- package/dist/{layers.BF1Oi8ra.js → layers.9tep09Ov.js} +3 -3
- package/dist/{layers.BbD-H7SK.js → layers.9yGDkmuR.js} +1 -1
- package/dist/{layers.DuRy5kDu.js → layers.B-6Mj14-.js} +1 -1
- package/dist/{layers.B7hcd1bD.js → layers.B0O7NMEc.js} +1 -1
- package/dist/{layers.wbP8hMOK.js → layers.B0RwVZwd.js} +24 -24
- package/dist/{layers.ClGlhZaD.js → layers.B0ZUdXzZ.js} +1 -1
- package/dist/{layers.D4QwuxT7.js → layers.B1WBtyba.js} +1 -1
- package/dist/{layers.BQyYsLOK.js → layers.B51WWPZ9.js} +1 -1
- package/dist/{layers.ADUhHp2v.js → layers.B57bbjKT.js} +1 -1
- package/dist/{layers.JlT1VvkC.js → layers.B6O37jaF.js} +1 -1
- package/dist/{layers.KEdDrRpj.js → layers.BAq71XkI.js} +1 -1
- package/dist/{layers.C5qQo7zb.js → layers.BCgBOUJe.js} +1 -1
- package/dist/{layers.D3CyptWx.js → layers.BEA0x5Qr.js} +1 -1
- package/dist/{layers.DVeaUfy7.js → layers.BEKcP56x.js} +7 -7
- package/dist/{layers.My1dNxG6.js → layers.BEeQZxiO.js} +4 -4
- package/dist/{layers.B_SPQOz4.js → layers.BFPTOZwG.js} +1 -1
- package/dist/{layers.CJp2LiNp.js → layers.BH_3Bz4_.js} +1 -1
- package/dist/{layers.LTJreIqY.js → layers.BIJtwrVL.js} +1 -1
- package/dist/{layers.C6I_P3A_.js → layers.BJvIUuBq.js} +1 -1
- package/dist/{layers.CIUgJjlB.js → layers.BK2sl3IR.js} +1 -1
- package/dist/{layers.DnYucDkD.js → layers.BK51rcis.js} +1 -1
- package/dist/{layers.BMiXxuAm.js → layers.BKLzYDfb.js} +1 -1
- package/dist/{layers.Btm3Cjhc.js → layers.BKv8CCu4.js} +2 -2
- package/dist/{layers.K_NFUH-V.js → layers.BNCRviHC.js} +3 -3
- package/dist/{layers.BuO6wX_P.js → layers.BOGO8eVM.js} +1 -1
- package/dist/{layers.pPX7fCSp.js → layers.BPIVZ_V7.js} +1 -1
- package/dist/{layers.cqdKpf2J.js → layers.BPjcDK6e.js} +1 -1
- package/dist/{layers.BAKIK-ME.js → layers.BPtzUKwC.js} +1 -1
- package/dist/{layers.CYtzhYuO.js → layers.BPxwi2wV.js} +1 -1
- package/dist/{layers.z17Slos1.js → layers.BRGGgdyM.js} +1 -1
- package/dist/{layers.C6Z8pH5K.js → layers.BSfbB726.js} +1 -1
- package/dist/{layers.BKU8FwMW.js → layers.BUsZC1CV.js} +1 -1
- package/dist/{layers.CbbZkC_z.js → layers.BVeh3tvZ.js} +1 -1
- package/dist/{layers.BNYBftNz.js → layers.BVkv1Ykf.js} +1 -1
- package/dist/{layers.BWojL5X6.js → layers.BW9ZUxwa.js} +1 -1
- package/dist/{layers.fl0BO3BT.js → layers.BXSKaKEf.js} +1 -1
- package/dist/{layers.DuIxmQ6H.js → layers.BYHpW1r3.js} +1 -1
- package/dist/{layers.CHBpUOD6.js → layers.BaWab3Lw.js} +1 -1
- package/dist/{layers.YbOwiZ3i.js → layers.BazfgAX9.js} +1 -1
- package/dist/{layers.DgBaSf8x.js → layers.BbboM1R1.js} +1 -1
- package/dist/{layers.Bz1lFaRT.js → layers.Bglq4oZW.js} +1 -1
- package/dist/{layers.BOiRFzJc.js → layers.Bi12bXQ1.js} +1 -1
- package/dist/{layers.Bl_LexIx.js → layers.BiU3S38d.js} +1 -1
- package/dist/{layers.-7_aQkHq.js → layers.Bk_wN_--.js} +1 -1
- package/dist/{layers.DVilyAwz.js → layers.BkbVj_aF.js} +4 -4
- package/dist/{layers.Cd45CBtx.js → layers.Bl8PSqjG.js} +1 -1
- package/dist/{layers.CF6I2bOX.js → layers.BmERH96j.js} +1 -1
- package/dist/{layers.0bN62e5a.js → layers.BowKbERD.js} +1 -1
- package/dist/{layers.Z_MVcrjd.js → layers.BpaU6Hkm.js} +1 -1
- package/dist/{layers.CxAdCFiQ.js → layers.BpaxV5hx.js} +1 -1
- package/dist/{layers.k2qIe_Pb.js → layers.BvQCg8gf.js} +1 -1
- package/dist/{layers.qNFfCYti.js → layers.BvlyqCUt.js} +1 -1
- package/dist/{layers.CKQDzZHJ.js → layers.BwBz6j2M.js} +1 -1
- package/dist/{layers.BhBN7Ccb.js → layers.By6sWMFE.js} +1 -1
- package/dist/{layers.AaqQVTSn.js → layers.C-2wfy5y.js} +1 -1
- package/dist/{layers.BiwTF-FM.js → layers.C08LvaHZ.js} +1 -1
- package/dist/{layers.CYznMprl.js → layers.C2KeqvRu.js} +1 -1
- package/dist/{layers.CC0Jc_TL.js → layers.C3DFvkSj.js} +3 -3
- package/dist/{layers.D2xQT85g.js → layers.C6s_bFky.js} +1 -1
- package/dist/{layers.ByfhUEoM.js → layers.C72CzbTL.js} +2 -2
- package/dist/{layers.Dggi4j_V.js → layers.C7f9795O.js} +1 -1
- package/dist/{layers.CB8AuGpd.js → layers.C7v8iUVP.js} +1 -1
- package/dist/{layers.CeQYs1jT.js → layers.C9wFmF4s.js} +1 -1
- package/dist/{layers.C31OdJkg.js → layers.CAHB2FhC.js} +1 -1
- package/dist/{layers.Bq0-YIrH.js → layers.CFAJig2x.js} +1 -1
- package/dist/{layers.DX9RPmEu.js → layers.CG57G9q7.js} +3 -3
- package/dist/{layers.2yVRXlZs.js → layers.CGtDjGTe.js} +1 -1
- package/dist/layers.CHwVQE6q.js +1 -0
- package/dist/{layers.CYFjDjQ2.js → layers.CHzNv5Wv.js} +1 -1
- package/dist/{layers.tfkRfflb.js → layers.CItMwjGh.js} +1 -1
- package/dist/{layers.QW4W1RT5.js → layers.CJgRNDIo.js} +1 -1
- package/dist/{layers.DaD-4pGv.js → layers.CKLIOsnj.js} +1 -1
- package/dist/{layers.Br9bh--2.js → layers.CKcUIoId.js} +1 -1
- package/dist/{layers.3tSbWJlo.js → layers.CLKXY0Q4.js} +1 -1
- package/dist/{layers.CB5s3Znn.js → layers.CLzY1N3M.js} +1 -1
- package/dist/{layers._ZYm15-5.js → layers.CM_fgqFk.js} +1 -1
- package/dist/{layers.Dwa-uS90.js → layers.CMe1yC3a.js} +1 -1
- package/dist/{layers.DUkpYPGM.js → layers.CN9G3OuP.js} +3 -3
- package/dist/{layers.DPeIq0Ir.js → layers.CNhPoNSp.js} +1 -1
- package/dist/{layers.oScuVOUU.js → layers.COvWt6kE.js} +3 -3
- package/dist/{layers.Dek78nS7.js → layers.CPJp3koX.js} +1 -1
- package/dist/{layers.B0qR80SJ.js → layers.CQBW0YVz.js} +1 -1
- package/dist/{layers.Da4lz7li.js → layers.CS_7nTGM.js} +1 -1
- package/dist/{layers.D7cQsWLV.js → layers.CUor30Ri.js} +1 -1
- package/dist/{layers.B8gLv0n6.js → layers.CVnyd1z9.js} +1 -1
- package/dist/{layers.DodFliP8.js → layers.CWeXJThw.js} +2 -2
- package/dist/{layers.PY6KPcIz.js → layers.CXC45YDv.js} +1 -1
- package/dist/{layers.CzfAqlIO.js → layers.CXGecfYW.js} +1 -1
- package/dist/{layers._KUaaWlY.js → layers.CXSxQPVf.js} +1 -1
- package/dist/{layers.BAHqzXxW.js → layers.CYIXgjDp.js} +1 -1
- package/dist/{layers.BJ1ASTf8.js → layers.CYTqcEY2.js} +1 -1
- package/dist/{layers.DI9fzxbs.js → layers.C_ez3xcQ.js} +1 -1
- package/dist/{layers.CYBy4Hel.js → layers.CbeCzNGY.js} +1 -1
- package/dist/{layers.D22H6Io_.js → layers.CdCYchhF.js} +1 -1
- package/dist/{layers.k63BA6LL.js → layers.CeEN7yl5.js} +1 -1
- package/dist/{layers.BJ06_STQ.js → layers.CeP2adcl.js} +1 -1
- package/dist/{layers.jZgDT8cj.js → layers.CfDmDLV8.js} +1 -1
- package/dist/{layers.BlIMqAlU.js → layers.CgTSaL8c.js} +1 -1
- package/dist/{layers.DNs6gWyP.js → layers.Ch9THspM.js} +1 -1
- package/dist/{layers.BCTfPVD2.js → layers.Cku10oY6.js} +2 -2
- package/dist/{layers.B-I4DgCA.js → layers.Cl4mJKw3.js} +2 -2
- package/dist/{layers.Bt4LL19k.js → layers.ClGc5PM7.js} +1 -1
- package/dist/{layers.Cb7Yx9I7.js → layers.Cly9kX2V.js} +1 -1
- package/dist/{layers.CZsjcpjz.js → layers.CnU-dghi.js} +4 -4
- package/dist/{layers.BwQ3gk4v.js → layers.CokfkQB1.js} +1 -1
- package/dist/{layers.KWUVkFHX.js → layers.CpUTu3XY.js} +1 -1
- package/dist/{layers.ClovDzAL.js → layers.CsE4ajo5.js} +1 -1
- package/dist/{layers.BxKYB0Zb.js → layers.CsoYzDRr.js} +1 -1
- package/dist/{layers.CSB7SZWd.js → layers.Cux05y7j.js} +1 -1
- package/dist/{layers.UwVYZnnj.js → layers.CvLDqwQs.js} +3 -3
- package/dist/{layers.DPaw8H6g.js → layers.CwKXb4ny.js} +1 -1
- package/dist/{layers.DAyvEV1C.js → layers.Cy3b290X.js} +1 -1
- package/dist/{layers.BaaRiIkP.js → layers.CykPxPF6.js} +1 -1
- package/dist/{layers.DMUtd9Bh.js → layers.Cz3ivauP.js} +1 -1
- package/dist/{layers.oWxncU37.js → layers.D-_ZZX7q.js} +1 -1
- package/dist/{layers.dcskmG_5.js → layers.D-wXz5l5.js} +1 -1
- package/dist/{layers.B8BBcTbk.js → layers.D0-te90v.js} +1 -1
- package/dist/{layers.DfmY4Hic.js → layers.D0mSdT-s.js} +1 -1
- package/dist/{layers.DZnL68Xs.js → layers.D1QLwHjg.js} +1 -1
- package/dist/{layers.Cpo5zdfT.js → layers.D3oKf5rS.js} +1 -1
- package/dist/{layers.2ZAu_4yL.js → layers.D3yrh-Va.js} +1 -1
- package/dist/{layers.CMefIH-H.js → layers.D9rHQgCj.js} +1 -1
- package/dist/{layers.MNmrYX9n.js → layers.DAUpTqJ4.js} +1 -1
- package/dist/{layers.CoB71GFb.js → layers.DELuGJ4V.js} +1 -1
- package/dist/{layers.CPxowkwx.js → layers.DFknsu17.js} +1 -1
- package/dist/{layers.CD9cq83Z.js → layers.DGjFtmdh.js} +2 -2
- package/dist/{layers.BhrnyU-B.js → layers.DHcvJRmy.js} +1 -1
- package/dist/{layers.B8VAU-lK.js → layers.DLJX4-pt.js} +1 -1
- package/dist/{layers.D7CKbDsq.js → layers.DMwzDjFw.js} +1 -1
- package/dist/{layers.CNXAtVBo.js → layers.DNI5KB4H.js} +1 -1
- package/dist/{layers.Bq683QN0.js → layers.DNTuMkI2.js} +1 -1
- package/dist/{layers.B0RkbJQ6.js → layers.DPBkCTNx.js} +4 -4
- package/dist/layers.DRRrIDtD.js +858 -0
- package/dist/{layers.zf_qOADF.js → layers.DS5q3o1Y.js} +1 -1
- package/dist/{layers.D2M-lWiD.js → layers.DS5t6NRe.js} +1 -1
- package/dist/{layers.SoEnrLhC.js → layers.DS6VagUz.js} +1 -1
- package/dist/{layers.BDAGnKOM.js → layers.DSXwMSoF.js} +1 -1
- package/dist/{layers.BDXqAJBQ.js → layers.DVazXRGk.js} +3 -3
- package/dist/{layers.CAg9V2kj.js → layers.DVri1zv_.js} +1 -1
- package/dist/{layers.Cw34XsF8.js → layers.DWgwWzuv.js} +1 -1
- package/dist/{layers.RZ6dNiJ4.js → layers.DWlasRen.js} +1 -1
- package/dist/{layers.xfJeJDLD.js → layers.DXGCl8VJ.js} +1 -1
- package/dist/{layers.B2V06dj-.js → layers.D_Ytuaz0.js} +1 -1
- package/dist/{layers.CwEfgTL0.js → layers.DaZn8a4K.js} +1 -1
- package/dist/{layers.Bbq8wwg9.js → layers.Db_ZkORT.js} +1 -1
- package/dist/{layers.Cg4CtWUh.js → layers.DcPu1d0d.js} +8 -8
- package/dist/{layers.Q7HrolYw.js → layers.DcXTu5uD.js} +1 -1
- package/dist/{layers.DASXAwdh.js → layers.Dg8a13OG.js} +1 -1
- package/dist/{layers.DtJtkNMf.js → layers.DhP87zgz.js} +1 -1
- package/dist/{layers.C1K1BFW9.js → layers.DhSEzPZk.js} +1 -1
- package/dist/{layers.VEhP-fXN.js → layers.DhhJSvu0.js} +1 -1
- package/dist/{layers.BaJ_gnbK.js → layers.Di53oIpy.js} +1 -1
- package/dist/{layers.D1ukRgux.js → layers.Dj_f-cAU.js} +1 -1
- package/dist/{layers.VfhjG54X.js → layers.DmHMPCRN.js} +3 -3
- package/dist/{layers.BsksHt8P.js → layers.DmVy91Du.js} +1 -1
- package/dist/{layers.Cg506eVE.js → layers.Dnca0ywX.js} +2 -2
- package/dist/{layers.it_aryug.js → layers.DrlbsVAH.js} +1 -1
- package/dist/{layers.DC-BKKsD.js → layers.Ds88HrG0.js} +1 -1
- package/dist/{layers.BwzPJZAF.js → layers.DsKYBeDX.js} +1 -1
- package/dist/{layers.BNI7lQbB.js → layers.DsSqd5ZW.js} +1 -1
- package/dist/{layers.CEEBJIXe.js → layers.DuJlUMpq.js} +1 -1
- package/dist/{layers.B_s2EU-A.js → layers.DumFjh5T.js} +1 -1
- package/dist/{layers.Bw1B45qB.js → layers.Dv0JLzw_.js} +1 -1
- package/dist/layers.DyUlAo2a.js +6 -0
- package/dist/{layers.21KR3XA1.js → layers.DygQOu7R.js} +2 -2
- package/dist/{layers.Du5Y9vaB.js → layers.Dygqo_7R.js} +3 -3
- package/dist/{layers.K5Ybjb9J.js → layers.DzzjHMNx.js} +1 -1
- package/dist/{layers.CNcaX11k.js → layers.FN8ApBPR.js} +1 -1
- package/dist/{layers.DZtAfJuC.js → layers.Gscx1Pqs.js} +1 -1
- package/dist/{layers.B2fnxSiR.js → layers.LZZYgS_d.js} +1 -1
- package/dist/{layers.CY786q_d.js → layers.MVv54I0U.js} +1 -1
- package/dist/{layers.CZ7OCAlj.js → layers.OKesFrD3.js} +1 -1
- package/dist/{layers.Chqpq3Gq.js → layers.P5tzCmAQ.js} +1 -1
- package/dist/layers.R9nNbVeX.js +8 -0
- package/dist/{layers.CFTaGY8G.js → layers.RHCx8VZV.js} +1 -1
- package/dist/{layers.D1vUn3W_.js → layers.RHYUvWrf.js} +1 -1
- package/dist/{layers.DEKOZ9ja.js → layers.SifyoeNo.js} +1 -1
- package/dist/{layers.C8I8CGKD.js → layers.SqDdh6VE.js} +1 -1
- package/dist/{layers.CetjX-wb.js → layers.SsMv6N0G.js} +1 -1
- package/dist/{layers.CYOcGsM_.js → layers.Ts2IR8D3.js} +1 -1
- package/dist/{layers.CKqRRpB7.js → layers.UNy10Vw4.js} +1 -1
- package/dist/{layers.BKPBccPL.js → layers.VI8qoLd6.js} +1 -1
- package/dist/{layers.DA1h9-pS.js → layers.Xvy10Hcm.js} +1 -1
- package/dist/{layers.Dc8LQY0y.js → layers.Ygdtuvwz.js} +1 -1
- package/dist/{layers.CO9THavS.js → layers.fD9OBd7c.js} +2 -2
- package/dist/{layers.-uDn1HIA.js → layers.hI_cUDWu.js} +1 -1
- package/dist/{layers.Ckvw_TyQ.js → layers.lJAM5CWg.js} +3 -3
- package/dist/layers.leRLHsek.js +1 -0
- package/dist/{layers.Bv5xX0ZZ.js → layers.oYaf_965.js} +1 -1
- package/dist/{layers.uP8UE6iW.js → layers.pcnP6TqY.js} +1 -1
- package/dist/{layers.D__Ff58z.js → layers.uNLn1juy.js} +3 -3
- package/dist/{layers.Blc6-0r6.js → layers.uhnFiBj8.js} +1 -1
- package/dist/{layers.D1Y9Edq-.js → layers.vJpF1BxF.js} +5 -5
- package/dist/{layers.Er-Llw26.js → layers.vdPQKpeg.js} +1 -1
- package/dist/{layers.DFf6Ybzk.js → layers.wvBOkExp.js} +19401 -18141
- package/dist/{layers.BK8h4ryA.js → layers.xOXCjpN5.js} +1 -1
- package/dist/{layers.CF37qBUV.js → layers.zIjQhXoZ.js} +1 -1
- package/dist/{layers.CVM-MWUJ.js → layers.zNOdMkKU.js} +1 -1
- package/package.json +1 -1
- package/dist/layers.AkBweZJu.js +0 -6
- package/dist/layers.CVrYV6L-.js +0 -858
- package/dist/layers.Cncr1F7V.js +0 -1
- package/dist/layers.DMIpKsYW.js +0 -8
- package/dist/layers.Ruz6byBj.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),W=require("react-i18next"),F=require("@lexical/react/LexicalComposerContext"),w=require("@mantine/core"),S=require("lexical"),e=require("./layers.CVrYV6L-.js"),H=require("@layers-app/shared"),G=require("@lexical/react/useLexicalEditable"),z=require("@mantine/hooks");require("@lexical/react/LexicalDecoratorBlockNode");require("@lexical/utils");require("@lexical/mark");require("@lexical/code");require("@lexical/selection");require("react-dom");require("@lexical/react/LexicalErrorBoundary");require("@lexical/react/LexicalBlockWithAlignableContents");require("@mantine/notifications");function ye(o,a){const n=document.createElement("a");n.href=o,n.download=a,n.rel="noopener",document.body.appendChild(n),n.click(),n.remove()}function V(o){try{const n=new URL(o,window.location.origin).pathname.split("/").pop()||"image";return n.includes(".")?n:`${n}.png`}catch{return"image"}}async function X(o,a){const n=await fetch(o);if(!n.ok)throw new Error("fetch failed");const s=await n.blob(),l=URL.createObjectURL(s);try{ye(l,a)}finally{setTimeout(()=>URL.revokeObjectURL(l),0)}}function Ce({editor:o,nodeKey:a,href:n,onClose:s}){const[l,u]=r.useState(()=>e.getLinkTypeFromUrl(n)),[c,g]=r.useState(()=>e.removeProtocol(n)),[j,v]=r.useState(!1),f=r.useCallback(p=>{u(p),v(!1)},[]),h=r.useCallback(p=>{g(p),v(!1)},[]),x=r.useCallback(()=>{const p=e.addProtocolIfNeeded(c.trim(),l);if(!p||!e.isValidUrl(p,l)){v(!0);return}e.$writeImageLinkToNode(o,a,e.sanitizeUrl(p)),s()},[o,a,c,l,s]),C=r.useCallback(()=>{e.$writeImageLinkToNode(o,a,""),s()},[o,a,s]),y=r.useCallback(p=>{p.key==="Enter"?(p.preventDefault(),x()):p.key==="Escape"&&(p.preventDefault(),s())},[x,s]);return{linkType:l,linkUrl:c,error:j,onLinkTypeChange:f,onUrlInputChange:h,onUrlInputKeyDown:y,onSave:x,onRemove:C}}function Y({editor:o,nodeKey:a,href:n,onClose:s,mobile:l}){const u=r.useRef(null),c=Ce({editor:o,nodeKey:a,href:n,onClose:s});return r.useEffect(()=>{var g;(g=u.current)==null||g.focus({preventScroll:!0})},[]),t.jsx(e.CreateMode,{inputRef:u,linkUrl:c.linkUrl,linkType:c.linkType,error:c.error,mobile:l,onLinkTypeChange:c.onLinkTypeChange,onUrlInputChange:c.onUrlInputChange,onUrlInputKeyDown:c.onUrlInputKeyDown,onCancel:s,onSave:c.onSave,onRemove:n?c.onRemove:void 0})}function le({opened:o,onOpenChange:a,t:n,onDownload:s,onDelete:l,hasLink:u,onLinkAction:c}){return t.jsxs(w.Menu,{opened:o,onChange:a,transitionProps:e.zt,shadow:"md",position:"bottom-start",offset:4,withinPortal:!0,closeOnItemClick:!0,children:[t.jsx(w.Menu.Target,{children:t.jsx(e.At,{label:n("editor.toolbar.more"),icon:e.K1,iconColor:"var(--mantine-color-gray-text)","aria-label":n("editor.toolbar.more")})}),t.jsxs(w.Menu.Dropdown,{p:4,miw:164,w:"max-content",onMouseDown:g=>g.preventDefault(),children:[c&&t.jsx(w.Menu.Item,{leftSection:t.jsx(w.Flex,{align:"center",justify:"center",c:"gray.6",children:t.jsx(e.Icon,{name:"link",size:16})}),onClick:g=>{g.stopPropagation(),c()},children:n(u?"editor.link.editLink":"editor.link.addLink")}),t.jsx(w.Menu.Item,{leftSection:t.jsx(w.Flex,{align:"center",justify:"center",c:"gray.6",children:t.jsx(e.HugeiconsIcon,{icon:e.Tm,size:16})}),onClick:g=>{g.stopPropagation(),s()},children:n("editor.gallery.download")}),t.jsx(w.Menu.Item,{color:"red",leftSection:t.jsx(w.Flex,{align:"center",justify:"center",c:"red.6",children:t.jsx(e.HugeiconsIcon,{icon:e.lg,size:16})}),onClick:g=>{g.stopPropagation(),l()},children:n("editor.contextMenu.delete")})]})]})}const ce=({t:o,src:a,setShown:n,id:s})=>{const[l,{open:u,close:c}]=z.useDisclosure(!1),g=e.useCanDownload(),j=r.useMemo(()=>[{id:!s||s==="0"?"":s,Url:a??"",contentType:"image/*",originalFileName:"",fileSize:0,storageType:"",storagePath:"",fileName:"",parentType:"",parentId:"",ownerId:"",createdAt:new Date,updatedAt:new Date,version:0,deleted:!1,deletedAt:new Date}],[a,s]),v=f=>{f?u():c()};return t.jsxs(t.Fragment,{children:[t.jsx(H.AttachmentsGalleryModal,{opened:l,onOpenChange:v,attachments:j,allowDownload:g}),t.jsx(e.At,{label:o("editor.image.preview"),icon:e.gn$1,iconColor:"var(--mantine-color-gray-text)","aria-label":o("editor.image.preview"),onClick:()=>{n(!1),u()}})]})},Ie=({nodeKey:o,src:a,href:n})=>{const[s]=F.useLexicalComposerContext(),l=G.useLexicalEditable(),[u,c]=r.useState(!1),[g,j]=r.useState(!1),[v,f]=r.useState(!1),{t:h}=W.useTranslation();r.useEffect(()=>{if(!v)return;const y=p=>{const b=p.target;b!=null&&b.closest(".floating-link-dropdown")||b!=null&&b.closest(".floating-link-type-combobox-dropdown")||f(!1)};return document.addEventListener("pointerdown",y,!0),()=>document.removeEventListener("pointerdown",y,!0)},[v]);const x=r.useCallback(()=>{s.update(()=>{const y=S.$getNodeByKey(o);e.$isImageNode(y)&&y.remove()})},[s,o]),C=r.useCallback(async()=>{if(a)try{await X(a,V(a))}catch{}},[a]);return t.jsxs(w.Popover,{opened:v,onChange:f,position:"bottom-end",offset:4,shadow:"md",radius:"md",withinPortal:!0,closeOnClickOutside:!1,children:[t.jsx(w.Popover.Target,{children:t.jsxs("div",{className:`media-actions ${l?"":"media-actions--readonly"}`,children:[t.jsx(ce,{t:h,src:a,setShown:()=>{}}),l&&t.jsxs(t.Fragment,{children:[t.jsx(e.gr,{opened:u,setOpened:c,t:h,editor:s,nodeKey:o,setShown:()=>{}}),t.jsx(le,{opened:g,onOpenChange:j,t:h,onDownload:()=>void C(),onDelete:x,hasLink:!!n,onLinkAction:()=>f(!0)})]})]})}),t.jsx(w.Popover.Dropdown,{className:`floating-link-dropdown floating-link-dropdown--${n?"edit":"create"}-mode`,"data-test-id":"floating-link-dropdown",children:t.jsx(Y,{editor:s,nodeKey:o,href:n,onClose:()=>f(!1)})})]})},je=()=>{};function De({nodeKey:o,src:a,id:n,href:s}){const{t:l}=W.useTranslation(),[u]=F.useLexicalComposerContext(),c=G.useLexicalEditable(),[g,j]=r.useState(!1),[v,f]=r.useState(!1),[h,x]=r.useState(!1);r.useEffect(()=>{if(!h)return;const p=b=>{const N=b.target;N!=null&&N.closest(".floating-link-dropdown")||N!=null&&N.closest(".floating-link-type-combobox-dropdown")||x(!1)};return document.addEventListener("pointerdown",p,!0),()=>document.removeEventListener("pointerdown",p,!0)},[h]);const C=r.useCallback(()=>{f(!1),u.update(()=>{const p=S.$getNodeByKey(o);if(!e.$isImageNode(p))return;const b=p.getParent();e.$isImageOverlayWrapperNode(b)?b.remove():p.remove()})},[u,o]),y=r.useCallback(async()=>{if(a)try{await X(a,V(a))}catch{}},[a]);return t.jsxs(w.Popover,{opened:h,onChange:x,position:"bottom-end",offset:4,shadow:"md",radius:"md",withinPortal:!0,closeOnClickOutside:!1,children:[t.jsx(w.Popover.Target,{children:t.jsxs("div",{className:"media-actions visible",style:{position:"absolute",top:10,right:10,zIndex:10,pointerEvents:"auto",display:"flex",gap:4},onClick:p=>p.stopPropagation(),children:[t.jsx(ce,{t:l,src:a,setShown:je,id:n}),c&&t.jsxs(t.Fragment,{children:[t.jsx(e.gr,{opened:g,setOpened:j,t:l,editor:u,nodeKey:o}),t.jsx(le,{opened:v,onOpenChange:f,t:l,onDownload:()=>void y(),onDelete:C,hasLink:!!s,onLinkAction:()=>x(!0)})]})]})}),t.jsx(w.Popover.Dropdown,{className:`floating-link-dropdown floating-link-dropdown--${s?"edit":"create"}-mode`,"data-test-id":"floating-link-dropdown",children:t.jsx(Y,{editor:u,nodeKey:o,href:s,onClose:()=>x(!1)})})]})}function Se({nodeKey:o,src:a,id:n,href:s}){const{t:l}=W.useTranslation(),[u]=F.useLexicalComposerContext(),c=G.useLexicalEditable(),g=e.useCanDownload(),[j,{open:v,close:f}]=z.useDisclosure(!1),[h,{open:x,close:C}]=z.useDisclosure(!1),[y,{open:p,close:b}]=z.useDisclosure(!1),N=()=>{f(),p()},O=r.useMemo(()=>[{id:!n||n==="0"?"":n,Url:a??"",contentType:"image/*",originalFileName:"",fileSize:0,storageType:"",storagePath:"",fileName:"",parentType:"",parentId:"",ownerId:"",createdAt:new Date,updatedAt:new Date,version:0,deleted:!1,deletedAt:new Date}],[a,n]),k=()=>{f(),x()},L=r.useCallback(async()=>{if(f(),!!a)try{await X(a,V(a))}catch{}},[a,f]),P=r.useCallback(()=>{f(),u.update(()=>{const I=S.$getNodeByKey(o);e.$isImageNode(I)&&I.remove()})},[u,o,f]);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"image-touch-actions",style:{position:"absolute",top:8,right:8,zIndex:10,pointerEvents:"auto"},onClick:I=>I.stopPropagation(),children:t.jsx(e.At,{label:l("editor.toolbar.more"),icon:e.O1,iconColor:"var(--mantine-color-gray-text)","aria-label":l("editor.toolbar.more"),onClick:v})}),t.jsx(H.AttachmentsGalleryModal,{opened:h,onOpenChange:I=>I?x():C(),attachments:O,allowDownload:g}),t.jsx(e.gn,{opened:j,onClose:f,title:l("editor.image.mobileActions"),children:t.jsxs(w.Stack,{gap:4,p:0,children:[t.jsx(w.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:k,leftSection:t.jsx(e.HugeiconsIcon,{icon:e.gn$1,size:16,color:"var(--mantine-color-dimmed)"}),children:l("editor.image.previewFullScreen")}),c&&t.jsx(w.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:N,leftSection:t.jsx(e.HugeiconsIcon,{icon:e.zz,size:16,color:"var(--mantine-color-dimmed)"}),children:l(s?"editor.link.editLink":"editor.link.addLink")}),g&&t.jsx(w.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:()=>void L(),leftSection:t.jsx(e.HugeiconsIcon,{icon:e.Tm,size:16,color:"var(--mantine-color-dimmed)"}),children:l("editor.gallery.download")}),c&&t.jsx(w.Button,{type:"button",variant:"subtle",color:"red",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:P,leftSection:t.jsx(e.HugeiconsIcon,{icon:e.lg,size:16,color:"var(--mantine-color-red-6)"}),children:l("editor.actions.delete")})]})}),t.jsx(e.gn,{opened:y,onClose:b,title:l(s?"editor.link.editLink":"editor.link.addLink"),children:t.jsx(Y,{editor:u,nodeKey:o,href:s,onClose:b,mobile:!0})})]})}const se=o=>{const{width:a,height:n,isLoading:s,isError:l,src:u,id:c,altText:g,imageRef:j,maxWidth:v,aspectRatio:f,href:h}=o,x=r.useRef(null);return t.jsxs("div",{className:"media-wrapper","data-reserved-box":f?"":void 0,style:{width:a,height:f?"auto":n,aspectRatio:f||void 0,display:"inline-flex",position:"relative"},children:[t.jsx(w.LoadingOverlay,{visible:s,zIndex:1e3,overlayProps:{backgroundOpacity:.5},loaderProps:{size:24,color:"black"}}),t.jsx("a",{className:"editor-image-link","data-link":h?"true":void 0,"data-href":h?e.sanitizeUrl(h):void 0,role:h?"link":void 0,rel:h?"noopener noreferrer":void 0,draggable:!1,onMouseDown:h?C=>{x.current={x:C.clientX,y:C.clientY}}:void 0,onClick:h?C=>{C.preventDefault();const y=x.current;x.current=null,!(y&&Math.hypot(C.clientX-y.x,C.clientY-y.y)>5)&&window.open(e.sanitizeUrl(h),"_blank","noopener,noreferrer")}:void 0,children:t.jsx(Ne,{className:null,src:u,altText:g,imageRef:j,width:"inherit",height:"inherit",maxWidth:v||"auto",id:c})}),e.Ke&&t.jsx(Se,{nodeKey:o.nodeKey,src:u,id:c,href:h}),e.or&&t.jsx(De,{nodeKey:o.nodeKey,src:u,id:c,href:h}),e.It&&!e.Ke&&!e.or&&t.jsx(Ie,{nodeKey:o.nodeKey,src:u,href:h})]})};function Ne({altText:o,className:a,imageRef:n,src:s,width:l,height:u,maxWidth:c,id:g}){const[j,v]=r.useState(!1);return t.jsx("img",{className:`${a||void 0} ${j?"":"loading"}`,src:s,alt:o,ref:n,style:{height:u,maxWidth:c,width:l},onLoad:()=>{s.includes("splash")?setTimeout(()=>{v(!0)},100):v(!0)},draggable:"false","data-id":g})}function Le(o){const{disable:a}=r.useContext(e.Context);return a&&e.ImageNode.isPlaceholderSrc(o.src)?null:t.jsx(Ee,{...o})}function Ee({src:o,altText:a,nodeKey:n,width:s,height:l,maxWidth:u,showCaption:c,caption:g,id:j,create:v,alignment:f,imagePickerTab:h,aspectRatio:x,href:C}){var re,ae;const y=r.useRef(null),[p,b]=r.useState(!0),[N,O]=r.useState(!1),[k]=F.useLexicalComposerContext(),[L,P]=r.useState(!0),[I,U]=r.useState({width:0,height:0}),{start:Z,cancel:J}=e.fr(),[Pe,M]=r.useState(0),{fetchUploadMedia:A,fetchDeleteMedia:Q,maxFileSize:Te,imperativeHandleRef:E,disable:de}=r.useContext(e.Context),$=e.mediaMap.has(o)&&(((re=e.mediaMap.get(o))==null?void 0:re.mediaNodeKeys.length)===0||((ae=e.mediaMap.get(o))==null?void 0:ae.mediaNodeKeys.length)===void 0||o.trim()===""),{t:R}=W.useTranslation(),K=i=>{if(typeof i=="number")return i>0?i:null;if(typeof i=="string"&&!i.includes("%")){const m=parseFloat(i);return Number.isFinite(m)&&m>0?m:null}return null},T=K(s),ee=K(l),te=T&&ee?T/ee:void 0,[ue,ge]=r.useState(void 0),oe=r.useMemo(()=>{try{const i=parseFloat(localStorage.getItem("layers-img-ratio:"+o)||"");return Number.isFinite(i)&&i>0?i:void 0}catch{return}},[o]),pe=te??x??oe??ue,[me,q]=r.useState(!1),fe=!me&&!te&&(x??oe)!=null,[Oe,he]=r.useState(0);r.useEffect(()=>k.registerDecoratorListener(()=>{he(i=>i+1)}),[$]),r.useEffect(()=>{const i=k.getElementByKey(n);i&&(i.style.removeProperty("aspect-ratio"),i.style.removeProperty("width"))},[k,n]),r.useEffect(()=>{if(!o||o.startsWith("data:image/")||!o.trim()){b(!1);return}const i=new Image;i.src=o,i.onload=()=>{if(b(!1),i.naturalWidth){const m=i.naturalWidth/i.naturalHeight;if(ge(m),i.naturalWidth>=100)try{localStorage.setItem("layers-img-ratio:"+o,String(m))}catch{}!x&&i.naturalWidth>=100&&k.update(()=>{const d=S.$getNodeByKey(n);e.$isImageNode(d)&&d.getAspectRatio()==null&&d.setAspectRatio(m)},{tag:"history-merge"})}},i.onerror=()=>{b(!1)}},[o,$]);const we=(i,m)=>{k.update(()=>{S.$setSelection(null);const d=S.$getNodeByKey(n);e.$isImageNode(d)&&d.setWidthAndHeight(i,m)})},{historyState:ne}=e.useSharedHistoryContext(),{settings:{showNestedEditorTreeView:ie}}=e.useSettings();function xe(i){const m=e.decodeSvgDataUrl(i);return m?e.getSvgMarkupSize(m).width:0}function be(i){return new Promise((m,d)=>{if(e.isSvgSource(i)){m(xe(i));return}const D=new Image;D.src=i,D.onload=()=>{m(D.width)},D.onerror=()=>{d(new Error("Failed to load image"))}})}r.useEffect(()=>{let i=s,m=l,d=100;if((o.includes("unsplash")?o.trim():!$&&o.trim()||o.includes("upload-src-editor"))&&o!=="upload"){if(T!=null&&T>=d){P(!1),U({width:T,height:T}),q(!0);return}be(o).then(D=>{typeof i=="number"&&i<d&&D<d?(P(!0),U({width:i,height:m})):D<d?(P(!0),U({width:"auto",height:"auto"})):(U({width:D,height:D}),P(!1)),q(!0)}).catch(D=>{q(!0),console.warn("Ошибка при загрузке изображения:",D.message)})}},[o,$]),r.useEffect(()=>{I.width&&I.height&&L&&k.update(()=>{const i=S.$getNodeByKey(n);e.$isImageNode(i)&&i.setWidthAndHeight(I.width,I.height)})},[I.width,I.height,L]);const ke=r.useCallback(i=>e.$writeImagePickerTabToNode(k,n,i),[k,n]),B=r.useCallback((i,m)=>{O(!1),b(!1),k.update(()=>{const d=S.$getNodeByKey(n);e.$isImageNode(d)&&(d.setSrc(i),d.setId(m))})},[k,n]),ve=r.useCallback(()=>{J(),O(!1),b(!1),M(0)},[J]),_=r.useCallback(i=>{O(!0),b(!0);const m=Z();A&&A(i[0],(d,D)=>{B(d,D),M(0)},d=>{d&&H.showErrorNotification({message:R("editor.gallery.errorFile")}),M(0),B(o.startsWith("blob:")?"upload":"","")},m,d=>{M(d)},k.getEditorState().read(()=>{const d=S.$getNodeByKey(n);return e.$isImageNode(d)?d.getId():void 0}))},[k,A,n,Z,R,B,o]);return r.useEffect(()=>k.registerCommand(e.UPLOAD_IMAGE_COMMAND,i=>!o.startsWith("blob:")&&o!=="upload"||i.targetNodeKey!==n?!1:(_(i.files),!0),S.COMMAND_PRIORITY_LOW),[k,_,n,o]),!o||o==="upload"?N?t.jsx(w.Box,{"data-editor-image-picker-drop-root":!0,w:"100%",children:t.jsx(e.ur,{onCancel:ve})}):t.jsx(w.Box,{"data-editor-image-picker-drop-root":!0,w:"100%",children:t.jsx(e.ImagePicker,{inline:!0,nodeKey:n,defaultTabValue:h,onWriteTabToNode:ke,onUpload:i=>{var d,D;if(!A||!i.length)return;_([i[0]]);const m=i.slice(1);m.length&&((D=(d=E==null?void 0:E.current)==null?void 0:d.insertImages)==null||D.call(d,m))},popoverProps:{opened:!0,position:"bottom",zIndex:e.EDITOR_UI_MIN_Z_INDEX},onChange:i=>{k.update(()=>{const m=S.$getNodeByKey(n);e.$isImageNode(m)&&m.setSrc(i)})}})}):L&&!fe?t.jsx(se,{width:I.width,height:I.height,isLoading:p,isError:!1,isIcon:L,src:o,id:j,editor:k,nodeKey:n,fetchDeleteMedia:Q,altText:a,imageRef:y,maxWidth:u,showCaption:c,caption:g,isCollabActive:!1,historyState:ne,showNestedEditorTreeView:ie,t:R,href:C}):t.jsx(e.mr,{editor:k,isIcon:L,width:e.parseContainerSize(s),height:e.parseContainerSize(l),initialWidth:I.width||"",initialHeight:I.height||"",onResizeEnd:we,alignment:f,disable:de,onRegisterDecoratorEnter:i=>{E!=null&&E.current&&(E.current.decoratorEnterAction=i)},onActivate:()=>k.dispatchCommand(e.ON_CHANGE_COMMAND,"show_menu"),children:t.jsx(se,{width:"inherit",height:"inherit",aspectRatio:pe,isLoading:p,isError:!1,isIcon:L,src:o,id:j,editor:k,nodeKey:n,fetchDeleteMedia:Q,altText:a,imageRef:y,maxWidth:u,showCaption:c,caption:g,isCollabActive:!1,historyState:ne,showNestedEditorTreeView:ie,t:R,href:C})})}exports.default=Le;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),W=require("react-i18next"),F=require("@lexical/react/LexicalComposerContext"),w=require("@mantine/core"),S=require("lexical"),e=require("./layers.DRRrIDtD.js"),H=require("@layers-app/shared"),G=require("@lexical/react/useLexicalEditable"),z=require("@mantine/hooks");require("@lexical/react/LexicalDecoratorBlockNode");require("@lexical/utils");require("@lexical/mark");require("@lexical/code");require("@lexical/selection");require("react-dom");require("@lexical/react/LexicalErrorBoundary");require("@lexical/react/LexicalBlockWithAlignableContents");require("@mantine/notifications");function ye(o,a){const n=document.createElement("a");n.href=o,n.download=a,n.rel="noopener",document.body.appendChild(n),n.click(),n.remove()}function V(o){try{const n=new URL(o,window.location.origin).pathname.split("/").pop()||"image";return n.includes(".")?n:`${n}.png`}catch{return"image"}}async function X(o,a){const n=await fetch(o);if(!n.ok)throw new Error("fetch failed");const s=await n.blob(),l=URL.createObjectURL(s);try{ye(l,a)}finally{setTimeout(()=>URL.revokeObjectURL(l),0)}}function Ce({editor:o,nodeKey:a,href:n,onClose:s}){const[l,u]=r.useState(()=>e.getLinkTypeFromUrl(n)),[c,g]=r.useState(()=>e.removeProtocol(n)),[j,v]=r.useState(!1),f=r.useCallback(p=>{u(p),v(!1)},[]),h=r.useCallback(p=>{g(p),v(!1)},[]),x=r.useCallback(()=>{const p=e.addProtocolIfNeeded(c.trim(),l);if(!p||!e.isValidUrl(p,l)){v(!0);return}e.$writeImageLinkToNode(o,a,e.sanitizeUrl(p)),s()},[o,a,c,l,s]),C=r.useCallback(()=>{e.$writeImageLinkToNode(o,a,""),s()},[o,a,s]),y=r.useCallback(p=>{p.key==="Enter"?(p.preventDefault(),x()):p.key==="Escape"&&(p.preventDefault(),s())},[x,s]);return{linkType:l,linkUrl:c,error:j,onLinkTypeChange:f,onUrlInputChange:h,onUrlInputKeyDown:y,onSave:x,onRemove:C}}function Y({editor:o,nodeKey:a,href:n,onClose:s,mobile:l}){const u=r.useRef(null),c=Ce({editor:o,nodeKey:a,href:n,onClose:s});return r.useEffect(()=>{var g;(g=u.current)==null||g.focus({preventScroll:!0})},[]),t.jsx(e.CreateMode,{inputRef:u,linkUrl:c.linkUrl,linkType:c.linkType,error:c.error,mobile:l,onLinkTypeChange:c.onLinkTypeChange,onUrlInputChange:c.onUrlInputChange,onUrlInputKeyDown:c.onUrlInputKeyDown,onCancel:s,onSave:c.onSave,onRemove:n?c.onRemove:void 0})}function le({opened:o,onOpenChange:a,t:n,onDownload:s,onDelete:l,hasLink:u,onLinkAction:c}){return t.jsxs(w.Menu,{opened:o,onChange:a,transitionProps:e.zt,shadow:"md",position:"bottom-start",offset:4,withinPortal:!0,closeOnItemClick:!0,children:[t.jsx(w.Menu.Target,{children:t.jsx(e.At,{label:n("editor.toolbar.more"),icon:e.K1,iconColor:"var(--mantine-color-gray-text)","aria-label":n("editor.toolbar.more")})}),t.jsxs(w.Menu.Dropdown,{p:4,miw:164,w:"max-content",onMouseDown:g=>g.preventDefault(),children:[c&&t.jsx(w.Menu.Item,{leftSection:t.jsx(w.Flex,{align:"center",justify:"center",c:"gray.6",children:t.jsx(e.Icon,{name:"link",size:16})}),onClick:g=>{g.stopPropagation(),c()},children:n(u?"editor.link.editLink":"editor.link.addLink")}),t.jsx(w.Menu.Item,{leftSection:t.jsx(w.Flex,{align:"center",justify:"center",c:"gray.6",children:t.jsx(e.HugeiconsIcon,{icon:e.Tm,size:16})}),onClick:g=>{g.stopPropagation(),s()},children:n("editor.gallery.download")}),t.jsx(w.Menu.Item,{color:"red",leftSection:t.jsx(w.Flex,{align:"center",justify:"center",c:"red.6",children:t.jsx(e.HugeiconsIcon,{icon:e.lg,size:16})}),onClick:g=>{g.stopPropagation(),l()},children:n("editor.contextMenu.delete")})]})]})}const ce=({t:o,src:a,setShown:n,id:s})=>{const[l,{open:u,close:c}]=z.useDisclosure(!1),g=e.useCanDownload(),j=r.useMemo(()=>[{id:!s||s==="0"?"":s,Url:a??"",contentType:"image/*",originalFileName:"",fileSize:0,storageType:"",storagePath:"",fileName:"",parentType:"",parentId:"",ownerId:"",createdAt:new Date,updatedAt:new Date,version:0,deleted:!1,deletedAt:new Date}],[a,s]),v=f=>{f?u():c()};return t.jsxs(t.Fragment,{children:[t.jsx(H.AttachmentsGalleryModal,{opened:l,onOpenChange:v,attachments:j,allowDownload:g}),t.jsx(e.At,{label:o("editor.image.preview"),icon:e.gn$1,iconColor:"var(--mantine-color-gray-text)","aria-label":o("editor.image.preview"),onClick:()=>{n(!1),u()}})]})},Ie=({nodeKey:o,src:a,href:n})=>{const[s]=F.useLexicalComposerContext(),l=G.useLexicalEditable(),[u,c]=r.useState(!1),[g,j]=r.useState(!1),[v,f]=r.useState(!1),{t:h}=W.useTranslation();r.useEffect(()=>{if(!v)return;const y=p=>{const b=p.target;b!=null&&b.closest(".floating-link-dropdown")||b!=null&&b.closest(".floating-link-type-combobox-dropdown")||f(!1)};return document.addEventListener("pointerdown",y,!0),()=>document.removeEventListener("pointerdown",y,!0)},[v]);const x=r.useCallback(()=>{s.update(()=>{const y=S.$getNodeByKey(o);e.$isImageNode(y)&&y.remove()})},[s,o]),C=r.useCallback(async()=>{if(a)try{await X(a,V(a))}catch{}},[a]);return t.jsxs(w.Popover,{opened:v,onChange:f,position:"bottom-end",offset:4,shadow:"md",radius:"md",withinPortal:!0,closeOnClickOutside:!1,children:[t.jsx(w.Popover.Target,{children:t.jsxs("div",{className:`media-actions ${l?"":"media-actions--readonly"}`,children:[t.jsx(ce,{t:h,src:a,setShown:()=>{}}),l&&t.jsxs(t.Fragment,{children:[t.jsx(e.gr,{opened:u,setOpened:c,t:h,editor:s,nodeKey:o,setShown:()=>{}}),t.jsx(le,{opened:g,onOpenChange:j,t:h,onDownload:()=>void C(),onDelete:x,hasLink:!!n,onLinkAction:()=>f(!0)})]})]})}),t.jsx(w.Popover.Dropdown,{className:`floating-link-dropdown floating-link-dropdown--${n?"edit":"create"}-mode`,"data-test-id":"floating-link-dropdown",children:t.jsx(Y,{editor:s,nodeKey:o,href:n,onClose:()=>f(!1)})})]})},je=()=>{};function De({nodeKey:o,src:a,id:n,href:s}){const{t:l}=W.useTranslation(),[u]=F.useLexicalComposerContext(),c=G.useLexicalEditable(),[g,j]=r.useState(!1),[v,f]=r.useState(!1),[h,x]=r.useState(!1);r.useEffect(()=>{if(!h)return;const p=b=>{const N=b.target;N!=null&&N.closest(".floating-link-dropdown")||N!=null&&N.closest(".floating-link-type-combobox-dropdown")||x(!1)};return document.addEventListener("pointerdown",p,!0),()=>document.removeEventListener("pointerdown",p,!0)},[h]);const C=r.useCallback(()=>{f(!1),u.update(()=>{const p=S.$getNodeByKey(o);if(!e.$isImageNode(p))return;const b=p.getParent();e.$isImageOverlayWrapperNode(b)?b.remove():p.remove()})},[u,o]),y=r.useCallback(async()=>{if(a)try{await X(a,V(a))}catch{}},[a]);return t.jsxs(w.Popover,{opened:h,onChange:x,position:"bottom-end",offset:4,shadow:"md",radius:"md",withinPortal:!0,closeOnClickOutside:!1,children:[t.jsx(w.Popover.Target,{children:t.jsxs("div",{className:"media-actions visible",style:{position:"absolute",top:10,right:10,zIndex:10,pointerEvents:"auto",display:"flex",gap:4},onClick:p=>p.stopPropagation(),children:[t.jsx(ce,{t:l,src:a,setShown:je,id:n}),c&&t.jsxs(t.Fragment,{children:[t.jsx(e.gr,{opened:g,setOpened:j,t:l,editor:u,nodeKey:o}),t.jsx(le,{opened:v,onOpenChange:f,t:l,onDownload:()=>void y(),onDelete:C,hasLink:!!s,onLinkAction:()=>x(!0)})]})]})}),t.jsx(w.Popover.Dropdown,{className:`floating-link-dropdown floating-link-dropdown--${s?"edit":"create"}-mode`,"data-test-id":"floating-link-dropdown",children:t.jsx(Y,{editor:u,nodeKey:o,href:s,onClose:()=>x(!1)})})]})}function Se({nodeKey:o,src:a,id:n,href:s}){const{t:l}=W.useTranslation(),[u]=F.useLexicalComposerContext(),c=G.useLexicalEditable(),g=e.useCanDownload(),[j,{open:v,close:f}]=z.useDisclosure(!1),[h,{open:x,close:C}]=z.useDisclosure(!1),[y,{open:p,close:b}]=z.useDisclosure(!1),N=()=>{f(),p()},O=r.useMemo(()=>[{id:!n||n==="0"?"":n,Url:a??"",contentType:"image/*",originalFileName:"",fileSize:0,storageType:"",storagePath:"",fileName:"",parentType:"",parentId:"",ownerId:"",createdAt:new Date,updatedAt:new Date,version:0,deleted:!1,deletedAt:new Date}],[a,n]),k=()=>{f(),x()},L=r.useCallback(async()=>{if(f(),!!a)try{await X(a,V(a))}catch{}},[a,f]),P=r.useCallback(()=>{f(),u.update(()=>{const I=S.$getNodeByKey(o);e.$isImageNode(I)&&I.remove()})},[u,o,f]);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"image-touch-actions",style:{position:"absolute",top:8,right:8,zIndex:10,pointerEvents:"auto"},onClick:I=>I.stopPropagation(),children:t.jsx(e.At,{label:l("editor.toolbar.more"),icon:e.O1,iconColor:"var(--mantine-color-gray-text)","aria-label":l("editor.toolbar.more"),onClick:v})}),t.jsx(H.AttachmentsGalleryModal,{opened:h,onOpenChange:I=>I?x():C(),attachments:O,allowDownload:g}),t.jsx(e.gn,{opened:j,onClose:f,title:l("editor.image.mobileActions"),children:t.jsxs(w.Stack,{gap:4,p:0,children:[t.jsx(w.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:k,leftSection:t.jsx(e.HugeiconsIcon,{icon:e.gn$1,size:16,color:"var(--mantine-color-dimmed)"}),children:l("editor.image.previewFullScreen")}),c&&t.jsx(w.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:N,leftSection:t.jsx(e.HugeiconsIcon,{icon:e.zz,size:16,color:"var(--mantine-color-dimmed)"}),children:l(s?"editor.link.editLink":"editor.link.addLink")}),g&&t.jsx(w.Button,{type:"button",variant:"subtle",color:"gray",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:()=>void L(),leftSection:t.jsx(e.HugeiconsIcon,{icon:e.Tm,size:16,color:"var(--mantine-color-dimmed)"}),children:l("editor.gallery.download")}),c&&t.jsx(w.Button,{type:"button",variant:"subtle",color:"red",fullWidth:!0,justify:"flex-start",bg:"var(--editor-action-bg)",onClick:P,leftSection:t.jsx(e.HugeiconsIcon,{icon:e.lg,size:16,color:"var(--mantine-color-red-6)"}),children:l("editor.actions.delete")})]})}),t.jsx(e.gn,{opened:y,onClose:b,title:l(s?"editor.link.editLink":"editor.link.addLink"),children:t.jsx(Y,{editor:u,nodeKey:o,href:s,onClose:b,mobile:!0})})]})}const se=o=>{const{width:a,height:n,isLoading:s,isError:l,src:u,id:c,altText:g,imageRef:j,maxWidth:v,aspectRatio:f,href:h}=o,x=r.useRef(null);return t.jsxs("div",{className:"media-wrapper","data-reserved-box":f?"":void 0,style:{width:a,height:f?"auto":n,aspectRatio:f||void 0,display:"inline-flex",position:"relative"},children:[t.jsx(w.LoadingOverlay,{visible:s,zIndex:1e3,overlayProps:{backgroundOpacity:.5},loaderProps:{size:24,color:"black"}}),t.jsx("a",{className:"editor-image-link","data-link":h?"true":void 0,"data-href":h?e.sanitizeUrl(h):void 0,role:h?"link":void 0,rel:h?"noopener noreferrer":void 0,draggable:!1,onMouseDown:h?C=>{x.current={x:C.clientX,y:C.clientY}}:void 0,onClick:h?C=>{C.preventDefault();const y=x.current;x.current=null,!(y&&Math.hypot(C.clientX-y.x,C.clientY-y.y)>5)&&window.open(e.sanitizeUrl(h),"_blank","noopener,noreferrer")}:void 0,children:t.jsx(Ne,{className:null,src:u,altText:g,imageRef:j,width:"inherit",height:"inherit",maxWidth:v||"auto",id:c})}),e.Ke&&t.jsx(Se,{nodeKey:o.nodeKey,src:u,id:c,href:h}),e.or&&t.jsx(De,{nodeKey:o.nodeKey,src:u,id:c,href:h}),e.It&&!e.Ke&&!e.or&&t.jsx(Ie,{nodeKey:o.nodeKey,src:u,href:h})]})};function Ne({altText:o,className:a,imageRef:n,src:s,width:l,height:u,maxWidth:c,id:g}){const[j,v]=r.useState(!1);return t.jsx("img",{className:`${a||void 0} ${j?"":"loading"}`,src:s,alt:o,ref:n,style:{height:u,maxWidth:c,width:l},onLoad:()=>{s.includes("splash")?setTimeout(()=>{v(!0)},100):v(!0)},draggable:"false","data-id":g})}function Le(o){const{disable:a}=r.useContext(e.Context);return a&&e.ImageNode.isPlaceholderSrc(o.src)?null:t.jsx(Ee,{...o})}function Ee({src:o,altText:a,nodeKey:n,width:s,height:l,maxWidth:u,showCaption:c,caption:g,id:j,create:v,alignment:f,imagePickerTab:h,aspectRatio:x,href:C}){var re,ae;const y=r.useRef(null),[p,b]=r.useState(!0),[N,O]=r.useState(!1),[k]=F.useLexicalComposerContext(),[L,P]=r.useState(!0),[I,U]=r.useState({width:0,height:0}),{start:Z,cancel:J}=e.fr(),[Pe,M]=r.useState(0),{fetchUploadMedia:A,fetchDeleteMedia:Q,maxFileSize:Te,imperativeHandleRef:E,disable:de}=r.useContext(e.Context),$=e.mediaMap.has(o)&&(((re=e.mediaMap.get(o))==null?void 0:re.mediaNodeKeys.length)===0||((ae=e.mediaMap.get(o))==null?void 0:ae.mediaNodeKeys.length)===void 0||o.trim()===""),{t:R}=W.useTranslation(),K=i=>{if(typeof i=="number")return i>0?i:null;if(typeof i=="string"&&!i.includes("%")){const m=parseFloat(i);return Number.isFinite(m)&&m>0?m:null}return null},T=K(s),ee=K(l),te=T&&ee?T/ee:void 0,[ue,ge]=r.useState(void 0),oe=r.useMemo(()=>{try{const i=parseFloat(localStorage.getItem("layers-img-ratio:"+o)||"");return Number.isFinite(i)&&i>0?i:void 0}catch{return}},[o]),pe=te??x??oe??ue,[me,q]=r.useState(!1),fe=!me&&!te&&(x??oe)!=null,[Oe,he]=r.useState(0);r.useEffect(()=>k.registerDecoratorListener(()=>{he(i=>i+1)}),[$]),r.useEffect(()=>{const i=k.getElementByKey(n);i&&(i.style.removeProperty("aspect-ratio"),i.style.removeProperty("width"))},[k,n]),r.useEffect(()=>{if(!o||o.startsWith("data:image/")||!o.trim()){b(!1);return}const i=new Image;i.src=o,i.onload=()=>{if(b(!1),i.naturalWidth){const m=i.naturalWidth/i.naturalHeight;if(ge(m),i.naturalWidth>=100)try{localStorage.setItem("layers-img-ratio:"+o,String(m))}catch{}!x&&i.naturalWidth>=100&&k.update(()=>{const d=S.$getNodeByKey(n);e.$isImageNode(d)&&d.getAspectRatio()==null&&d.setAspectRatio(m)},{tag:"history-merge"})}},i.onerror=()=>{b(!1)}},[o,$]);const we=(i,m)=>{k.update(()=>{S.$setSelection(null);const d=S.$getNodeByKey(n);e.$isImageNode(d)&&d.setWidthAndHeight(i,m)})},{historyState:ne}=e.useSharedHistoryContext(),{settings:{showNestedEditorTreeView:ie}}=e.useSettings();function xe(i){const m=e.decodeSvgDataUrl(i);return m?e.getSvgMarkupSize(m).width:0}function be(i){return new Promise((m,d)=>{if(e.isSvgSource(i)){m(xe(i));return}const D=new Image;D.src=i,D.onload=()=>{m(D.width)},D.onerror=()=>{d(new Error("Failed to load image"))}})}r.useEffect(()=>{let i=s,m=l,d=100;if((o.includes("unsplash")?o.trim():!$&&o.trim()||o.includes("upload-src-editor"))&&o!=="upload"){if(T!=null&&T>=d){P(!1),U({width:T,height:T}),q(!0);return}be(o).then(D=>{typeof i=="number"&&i<d&&D<d?(P(!0),U({width:i,height:m})):D<d?(P(!0),U({width:"auto",height:"auto"})):(U({width:D,height:D}),P(!1)),q(!0)}).catch(D=>{q(!0),console.warn("Ошибка при загрузке изображения:",D.message)})}},[o,$]),r.useEffect(()=>{I.width&&I.height&&L&&k.update(()=>{const i=S.$getNodeByKey(n);e.$isImageNode(i)&&i.setWidthAndHeight(I.width,I.height)})},[I.width,I.height,L]);const ke=r.useCallback(i=>e.$writeImagePickerTabToNode(k,n,i),[k,n]),B=r.useCallback((i,m)=>{O(!1),b(!1),k.update(()=>{const d=S.$getNodeByKey(n);e.$isImageNode(d)&&(d.setSrc(i),d.setId(m))})},[k,n]),ve=r.useCallback(()=>{J(),O(!1),b(!1),M(0)},[J]),_=r.useCallback(i=>{O(!0),b(!0);const m=Z();A&&A(i[0],(d,D)=>{B(d,D),M(0)},d=>{d&&H.showErrorNotification({message:R("editor.gallery.errorFile")}),M(0),B(o.startsWith("blob:")?"upload":"","")},m,d=>{M(d)},k.getEditorState().read(()=>{const d=S.$getNodeByKey(n);return e.$isImageNode(d)?d.getId():void 0}))},[k,A,n,Z,R,B,o]);return r.useEffect(()=>k.registerCommand(e.UPLOAD_IMAGE_COMMAND,i=>!o.startsWith("blob:")&&o!=="upload"||i.targetNodeKey!==n?!1:(_(i.files),!0),S.COMMAND_PRIORITY_LOW),[k,_,n,o]),!o||o==="upload"?N?t.jsx(w.Box,{"data-editor-image-picker-drop-root":!0,w:"100%",children:t.jsx(e.ur,{onCancel:ve})}):t.jsx(w.Box,{"data-editor-image-picker-drop-root":!0,w:"100%",children:t.jsx(e.ImagePicker,{inline:!0,nodeKey:n,defaultTabValue:h,onWriteTabToNode:ke,onUpload:i=>{var d,D;if(!A||!i.length)return;_([i[0]]);const m=i.slice(1);m.length&&((D=(d=E==null?void 0:E.current)==null?void 0:d.insertImages)==null||D.call(d,m))},popoverProps:{opened:!0,position:"bottom",zIndex:e.EDITOR_UI_MIN_Z_INDEX},onChange:i=>{k.update(()=>{const m=S.$getNodeByKey(n);e.$isImageNode(m)&&m.setSrc(i)})}})}):L&&!fe?t.jsx(se,{width:I.width,height:I.height,isLoading:p,isError:!1,isIcon:L,src:o,id:j,editor:k,nodeKey:n,fetchDeleteMedia:Q,altText:a,imageRef:y,maxWidth:u,showCaption:c,caption:g,isCollabActive:!1,historyState:ne,showNestedEditorTreeView:ie,t:R,href:C}):t.jsx(e.mr,{editor:k,isIcon:L,width:e.parseContainerSize(s),height:e.parseContainerSize(l),initialWidth:I.width||"",initialHeight:I.height||"",onResizeEnd:we,alignment:f,disable:de,onRegisterDecoratorEnter:i=>{E!=null&&E.current&&(E.current.decoratorEnterAction=i)},onActivate:()=>k.dispatchCommand(e.ON_CHANGE_COMMAND,"show_menu"),children:t.jsx(se,{width:"inherit",height:"inherit",aspectRatio:pe,isLoading:p,isError:!1,isIcon:L,src:o,id:j,editor:k,nodeKey:n,fetchDeleteMedia:Q,altText:a,imageRef:y,maxWidth:u,showCaption:c,caption:g,isCollabActive:!1,historyState:ne,showNestedEditorTreeView:ie,t:R,href:C})})}exports.default=Le;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.BEKcP56x.js");var e={paste:"Colar",pasteAsPlaintext:"Colar como texto sem formatação",pasteCharts:"Colar gráficos",selectAll:"Selecionar tudo",multiSelect:"Adicionar elemento à seleção",moveCanvas:"Mover tela",cut:"Recortar",copy:"Copiar",copyAsPng:"Copiar para a área de transferência como PNG",copyAsSvg:"Copiar para a área de transferência como SVG",copyText:"Copiar para área de transferência como texto",copySource:"",convertToCode:"",bringForward:"Trazer para a frente",sendToBack:"Enviar para o fundo",bringToFront:"Trazer para o primeiro plano",sendBackward:"Enviar para trás",delete:"Apagar",copyStyles:"Copiar os estilos",pasteStyles:"Colar os estilos",stroke:"Contorno",background:"Fundo",fill:"Preenchimento",strokeWidth:"Espessura do traço",strokeStyle:"Estilo de traço",strokeStyle_solid:"Sólido",strokeStyle_dashed:"Tracejado",strokeStyle_dotted:"Pontilhado",sloppiness:"Precisão do traço",opacity:"Opacidade",textAlign:"Alinhamento do texto",edges:"Arestas",sharp:"Pontudo",round:"Arredondado",arrowheads:"Pontas",arrowhead_none:"Nenhuma",arrowhead_arrow:"Flecha",arrowhead_bar:"Barra",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Triângulo",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Tamanho da fonte",fontFamily:"Família da fonte",addWatermark:'Adicionar "Feito com Excalidraw"',handDrawn:"Manuscrito",normal:"Normal",code:"Código",small:"Pequeno",medium:"Médio",large:"Grande",veryLarge:"Muito grande",solid:"Sólido",hachure:"Hachura",zigzag:"Zigue-zague",crossHatch:"Hachura cruzada",thin:"Fino",bold:"Espesso",left:"Esquerda",center:"Centralizar",right:"Direita",extraBold:"Muito espesso",architect:"Arquiteto",artist:"Artista",cartoonist:"Cartunista",fileTitle:"Nome do arquivo",colorPicker:"Seletor de cores",canvasColors:"Usado na tela",canvasBackground:"Fundo da tela",drawingCanvas:"Tela de desenho",layers:"Camadas",actions:"Ações",language:"Idioma",liveCollaboration:"Colaboração ao vivo...",duplicateSelection:"Duplicar",untitled:"Sem título",name:"Nome",yourName:"Seu nome",madeWithExcalidraw:"Feito com Excalidraw",group:"Agrupar seleção",ungroup:"Desagrupar seleção",collaborators:"Colaboradores",showGrid:"Mostrar grade",addToLibrary:"Adicionar à biblioteca",removeFromLibrary:"Remover da biblioteca",libraryLoadingMessage:"Carregando biblioteca…",libraries:"Procurar bibliotecas",loadingScene:"Carregando cena…",align:"Alinhamento",alignTop:"Alinhar ao topo",alignBottom:"Alinhar embaixo",alignLeft:"Alinhar à esquerda",alignRight:"Alinhar à direita",centerVertically:"Centralizar verticalmente",centerHorizontally:"Centralizar horizontalmente",distributeHorizontally:"Distribuir horizontalmente",distributeVertically:"Distribuir verticalmente",flipHorizontal:"Inverter horizontalmente",flipVertical:"Inverter verticalmente",viewMode:"Modo de visualização",share:"Compartilhar",showStroke:"Exibir seletor de cores do traço",showBackground:"Exibir seletor de cores do fundo",toggleTheme:"Alternar tema",personalLib:"Biblioteca Pessoal",excalidrawLib:"Biblioteca do Excalidraw",decreaseFontSize:"Diminuir o tamanho da fonte",increaseFontSize:"Aumentar o tamanho da fonte",unbindText:"Desvincular texto",bindText:"Vincular texto ao contêiner",createContainerFromText:"Envolver texto em um contêiner",link:{edit:"Editar link",editEmbed:"",create:"Criar link",createEmbed:"",label:"Link",labelEmbed:"",empty:""},lineEditor:{edit:"Editar linha",exit:"Sair do editor de linha"},elementLock:{lock:"Bloquear",unlock:"Desbloquear",lockAll:"Bloquear tudo",unlockAll:"Desbloquear tudo"},statusPublished:"Publicado",sidebarLock:"Manter barra lateral aberta",selectAllElementsInFrame:"Selecionar todos os elementos no quadro",removeAllElementsFromFrame:"Remover todos os elementos do quadro",eyeDropper:"Escolher cor da tela",textToDiagram:"",prompt:""},a={noItems:"Nenhum item adicionado ainda...",hint_emptyLibrary:"Selecione um item na tela para adicioná-lo aqui, ou instale uma biblioteca do repositório público, abaixo.",hint_emptyPrivateLibrary:"Selecione um item na tela para adicioná-lo aqui."},o={clearReset:"Limpar o canvas e redefinir a cor de fundo",exportJSON:"Exportar arquivo",exportImage:"Exportar imagem...",export:"Salvar como...",copyToClipboard:"Copiar para o clipboard",save:"Salvar para o arquivo atual",saveAs:"Salvar como",load:"Abrir",getShareableLink:"Obter um link de compartilhamento",close:"Fechar",selectLanguage:"Selecionar idioma",scrollBackToContent:"Voltar para o conteúdo",zoomIn:"Aumentar zoom",zoomOut:"Diminuir zoom",resetZoom:"Redefinir zoom",menu:"Menu",done:"Concluído",edit:"Editar",undo:"Desfazer",redo:"Refazer",resetLibrary:"Redefinir biblioteca",createNewRoom:"Criar nova sala",fullScreen:"Tela cheia",darkMode:"Modo escuro",lightMode:"Modo claro",zenMode:"Modo Zen",objectsSnapMode:"",exitZenMode:"Sair do modo zen",cancel:"Cancelar",clear:"Limpar",remove:"Remover",embed:"",publishLibrary:"Publicar",submit:"Enviar",confirm:"Confirmar",embeddableInteractionButton:""},r={clearReset:"Isto irá limpar toda a tela. Você tem certeza?",couldNotCreateShareableLink:"Não foi possível criar um link de compartilhamento.",couldNotCreateShareableLinkTooBig:"Não foi possível criar um link compartilhável: a cena é muito grande",couldNotLoadInvalidFile:"Não foi possível carregar o arquivo inválido",importBackendFailed:"A importação do servidor falhou.",cannotExportEmptyCanvas:"Não é possível exportar um canvas vazio.",couldNotCopyToClipboard:"Não foi possível copiar para a área de transferência.",decryptFailed:"Não foi possível descriptografar os dados.",uploadedSecurly:"O upload foi protegido com criptografia de ponta a ponta, o que significa que o servidor do Excalidraw e terceiros não podem ler o conteúdo.",loadSceneOverridePrompt:"Carregar um desenho externo substituirá o seu conteúdo existente. Deseja continuar?",collabStopOverridePrompt:`Ao interromper a sessão, você substituirá seu desenho anterior, armazenado localmente. Você tem certeza?
|
|
2
2
|
|
|
3
3
|
(Se você deseja manter seu desenho local, simplesmente feche a aba do navegador.)`,errorAddingToLibrary:"Não foi possível adicionar o item à biblioteca",errorRemovingFromLibrary:"Não foi possível remover o item da biblioteca",confirmAddLibrary:"Isso adicionará {{numShapes}} forma(s) à sua biblioteca. Tem certeza?",imageDoesNotContainScene:"Esta imagem parece não conter dados de cenas. Você ativou a incorporação da cena durante a exportação?",cannotRestoreFromImage:"Não foi possível restaurar a cena deste arquivo de imagem",invalidSceneUrl:"Não foi possível importar a cena da URL fornecida. Ela está incompleta ou não contém dados JSON válidos do Excalidraw.",resetLibrary:"Isto limpará a sua biblioteca. Você tem certeza?",removeItemsFromsLibrary:"Excluir {{count}} item(ns) da biblioteca?",invalidEncryptionKey:"A chave de encriptação deve ter 22 caracteres. A colaboração ao vivo está desabilitada.",collabOfflineWarning:`Sem conexão com a internet disponível.
|
|
4
4
|
Suas alterações não serão salvas!`},i={unsupportedFileType:"Tipo de arquivo não suportado.",imageInsertError:"Não foi possível inserir imagem. Tente novamente mais tarde...",fileTooBig:"O arquivo é muito grande. O tamanho máximo permitido é {{maxSize}}.",svgImageInsertError:"Não foi possível inserir a imagem SVG. A marcação SVG parece inválida.",failedToFetchImage:"",invalidSVGString:"SVG Inválido.",cannotResolveCollabServer:"Não foi possível conectar-se ao servidor colaborativo. Por favor, recarregue a página e tente novamente.",importLibraryError:"Não foi possível carregar a biblioteca",collabSaveFailed:"Não foi possível salvar no banco de dados do servidor. Se os problemas persistirem, salve o arquivo localmente para garantir que não perca o seu trabalho.",collabSaveFailed_sizeExceeded:"Não foi possível salvar no banco de dados do servidor, a tela parece ser muito grande. Se os problemas persistirem, salve o arquivo localmente para garantir que não perca o seu trabalho.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Parece que você está usando o navegador Brave com a configuração <bold>Bloquear Impressões Digitais</bold> no modo agressivo.",line2:"Isso pode acabar quebrando <bold>Elementos de Texto</bold> em seus desenhos.",line3:"Recomendamos fortemente desativar essa configuração. Você pode acessar o <link>passo a passo</link> sobre como fazer isso.",line4:"Se desativar essa configuração não corrigir a exibição de elementos de texto, por favor abra uma <issueLink>issue</issueLink> em nosso GitHub, ou mande uma mensagem em nosso <discordLink>Discord</discordLink>"},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},t={selection:"Seleção",image:"Inserir imagem",rectangle:"Retângulo",diamond:"Losango",ellipse:"Elipse",arrow:"Flecha",line:"Linha",freedraw:"Desenhar",text:"Texto",library:"Biblioteca",lock:"Manter ativa a ferramenta selecionada após desenhar",penMode:"Modo caneta — impede o toque",link:"Adicionar/Atualizar link para uma forma selecionada",eraser:"Borracha",frame:"Ferramenta de quadro",magicframe:"",embeddable:"",laser:"",hand:"Mão (ferramenta de rolagem)",extraTools:"Mais ferramentas",mermaidToExcalidraw:"",magicSettings:""},s={canvasActions:"Ações da tela",selectedShapeActions:"Ações das formas selecionadas",shapes:"Formas"},n={canvasPanning:"Para mover a tela, segure a roda do mouse ou a barra de espaço enquanto arrasta ou use a ferramenta de mão",linearElement:"Clique para iniciar vários pontos, arraste para uma única linha",freeDraw:"Toque e arraste, solte quando terminar",text:"Dica: você também pode adicionar texto clicando duas vezes em qualquer lugar com a ferramenta de seleção",embeddable:"",text_selected:"Clique duplo ou tecle ENTER para editar o texto",text_editing:"Pressione Esc ou Ctrl/Cmd+ENTER para encerrar a edição",linearElementMulti:"Clique no último ponto ou pressione Escape ou Enter para terminar",lockAngle:"Você pode restringir o ângulo segurando o SHIFT",resize:`Você pode restringir proporções segurando SHIFT enquanto redimensiona,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("./layers.My1dNxG6.js"),re=require("./layers.Cpo5zdfT.js"),Ee=require("./layers.Dxr2o7ON.js");require("lodash-es/memoize.js");require("lodash-es/merge.js");require("lodash-es/isEmpty.js");var Bt=(function(){var e=function(_t,_,x,m){for(x=x||{},m=_t.length;m--;x[_t[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],D=[1,31],P=[1,32],B=[1,33],I=[1,34],q=[1,35],H=[1,36],G=[1,37],K=[1,38],J=[1,39],Z=[1,40],$=[1,41],tt=[1,42],et=[1,43],it=[1,44],nt=[1,45],st=[1,46],at=[1,47],rt=[1,48],lt=[1,50],ot=[1,51],ct=[1,52],ht=[1,53],ut=[1,54],dt=[1,55],ft=[1,56],pt=[1,57],yt=[1,58],gt=[1,59],bt=[1,60],Ct=[14,42],Ut=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],wt=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],A=[1,83],k=[1,84],C=[1,85],T=[12,14,42],te=[12,14,33,42],St=[12,14,33,42,76,77,79,80],Et=[12,33],Ft=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Vt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,R,u,Ot){var y=u.length-1;switch(R){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let vt={};vt[u[y-1].trim()]=u[y].trim(),this.$=vt;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ct,[2,14]),e(Ut,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(wt,[2,19]),e(wt,[2,20]),{25:[1,78]},{27:[1,79]},e(wt,[2,23]),{35:80,75:81,76:v,77:A,79:k,80:C},{35:86,75:81,76:v,77:A,79:k,80:C},{35:87,75:81,76:v,77:A,79:k,80:C},{35:88,75:81,76:v,77:A,79:k,80:C},{35:89,75:81,76:v,77:A,79:k,80:C},{35:90,75:81,76:v,77:A,79:k,80:C},{35:91,75:81,76:v,77:A,79:k,80:C},{35:92,75:81,76:v,77:A,79:k,80:C},{35:93,75:81,76:v,77:A,79:k,80:C},{35:94,75:81,76:v,77:A,79:k,80:C},{35:95,75:81,76:v,77:A,79:k,80:C},{35:96,75:81,76:v,77:A,79:k,80:C},{35:97,75:81,76:v,77:A,79:k,80:C},{35:98,75:81,76:v,77:A,79:k,80:C},{35:99,75:81,76:v,77:A,79:k,80:C},{35:100,75:81,76:v,77:A,79:k,80:C},{35:101,75:81,76:v,77:A,79:k,80:C},{35:102,75:81,76:v,77:A,79:k,80:C},{35:103,75:81,76:v,77:A,79:k,80:C},{35:104,75:81,76:v,77:A,79:k,80:C},e(T,[2,59]),{35:105,75:81,76:v,77:A,79:k,80:C},{35:106,75:81,76:v,77:A,79:k,80:C},{35:107,75:81,76:v,77:A,79:k,80:C},{35:108,75:81,76:v,77:A,79:k,80:C},{35:109,75:81,76:v,77:A,79:k,80:C},{35:110,75:81,76:v,77:A,79:k,80:C},{35:111,75:81,76:v,77:A,79:k,80:C},{35:112,75:81,76:v,77:A,79:k,80:C},{35:113,75:81,76:v,77:A,79:k,80:C},{35:114,75:81,76:v,77:A,79:k,80:C},{35:115,75:81,76:v,77:A,79:k,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:A,79:k,80:C},{35:120,75:81,76:v,77:A,79:k,80:C},{35:121,75:81,76:v,77:A,79:k,80:C},{35:122,75:81,76:v,77:A,79:k,80:C},{35:123,75:81,76:v,77:A,79:k,80:C},{35:124,75:81,76:v,77:A,79:k,80:C},{35:125,75:81,76:v,77:A,79:k,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Ut,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(wt,[2,21]),e(wt,[2,22]),e(T,[2,39]),e(te,[2,71],{75:81,35:132,76:v,77:A,79:k,80:C}),e(St,[2,73]),{78:[1,133]},e(St,[2,75]),e(St,[2,76]),e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(T,[2,43]),e(T,[2,44]),e(T,[2,45]),e(T,[2,46]),e(T,[2,47]),e(T,[2,48]),e(T,[2,49]),e(T,[2,50]),e(T,[2,51]),e(T,[2,52]),e(T,[2,53]),e(T,[2,54]),e(T,[2,55]),e(T,[2,56]),e(T,[2,57]),e(T,[2,58]),e(T,[2,60]),e(T,[2,61]),e(T,[2,62]),e(T,[2,63]),e(T,[2,64]),e(T,[2,65]),e(T,[2,66]),e(T,[2,67]),e(T,[2,68]),e(T,[2,69]),e(T,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(Et,[2,28]),e(Et,[2,29]),e(Et,[2,30]),e(Et,[2,31]),e(Et,[2,32]),e(Et,[2,33]),e(Et,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Ut,[2,18]),e(Ct,[2,38]),e(te,[2,72]),e(St,[2,74]),e(T,[2,24]),e(T,[2,35]),e(Ft,[2,25]),e(Ft,[2,26],{12:[1,138]}),e(Ft,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],R=[null],u=[],Ot=this.table,y="",vt=0,ee=0,be=2,ie=1,_e=u.slice.call(arguments,1),S=Object.create(this.lexer),At={yy:{}};for(var Wt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Wt)&&(At.yy[Wt]=this.yy[Wt]);S.setInput(_,At.yy),At.yy.lexer=S,At.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var Xt=S.yylloc;u.push(Xt);var xe=S.options&&S.options.ranges;typeof At.yy.parseError=="function"?this.parseError=At.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var X;return X=g.pop()||S.lex()||ie,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var L,kt,N,Qt,Tt={},Pt,W,ne,Mt;;){if(kt=m[m.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((L===null||typeof L>"u")&&(L=me()),N=Ot[kt]&&Ot[kt][L]),typeof N>"u"||!N.length||!N[0]){var qt="";Mt=[];for(Pt in Ot[kt])this.terminals_[Pt]&&Pt>be&&Mt.push("'"+this.terminals_[Pt]+"'");S.showPosition?qt="Parse error on line "+(vt+1)+`:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("./layers.BEeQZxiO.js"),re=require("./layers.D3oKf5rS.js"),Ee=require("./layers.Dxr2o7ON.js");require("lodash-es/memoize.js");require("lodash-es/merge.js");require("lodash-es/isEmpty.js");var Bt=(function(){var e=function(_t,_,x,m){for(x=x||{},m=_t.length;m--;x[_t[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],D=[1,31],P=[1,32],B=[1,33],I=[1,34],q=[1,35],H=[1,36],G=[1,37],K=[1,38],J=[1,39],Z=[1,40],$=[1,41],tt=[1,42],et=[1,43],it=[1,44],nt=[1,45],st=[1,46],at=[1,47],rt=[1,48],lt=[1,50],ot=[1,51],ct=[1,52],ht=[1,53],ut=[1,54],dt=[1,55],ft=[1,56],pt=[1,57],yt=[1,58],gt=[1,59],bt=[1,60],Ct=[14,42],Ut=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],wt=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],A=[1,83],k=[1,84],C=[1,85],T=[12,14,42],te=[12,14,33,42],St=[12,14,33,42,76,77,79,80],Et=[12,33],Ft=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Vt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,R,u,Ot){var y=u.length-1;switch(R){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let vt={};vt[u[y-1].trim()]=u[y].trim(),this.$=vt;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ct,[2,14]),e(Ut,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(wt,[2,19]),e(wt,[2,20]),{25:[1,78]},{27:[1,79]},e(wt,[2,23]),{35:80,75:81,76:v,77:A,79:k,80:C},{35:86,75:81,76:v,77:A,79:k,80:C},{35:87,75:81,76:v,77:A,79:k,80:C},{35:88,75:81,76:v,77:A,79:k,80:C},{35:89,75:81,76:v,77:A,79:k,80:C},{35:90,75:81,76:v,77:A,79:k,80:C},{35:91,75:81,76:v,77:A,79:k,80:C},{35:92,75:81,76:v,77:A,79:k,80:C},{35:93,75:81,76:v,77:A,79:k,80:C},{35:94,75:81,76:v,77:A,79:k,80:C},{35:95,75:81,76:v,77:A,79:k,80:C},{35:96,75:81,76:v,77:A,79:k,80:C},{35:97,75:81,76:v,77:A,79:k,80:C},{35:98,75:81,76:v,77:A,79:k,80:C},{35:99,75:81,76:v,77:A,79:k,80:C},{35:100,75:81,76:v,77:A,79:k,80:C},{35:101,75:81,76:v,77:A,79:k,80:C},{35:102,75:81,76:v,77:A,79:k,80:C},{35:103,75:81,76:v,77:A,79:k,80:C},{35:104,75:81,76:v,77:A,79:k,80:C},e(T,[2,59]),{35:105,75:81,76:v,77:A,79:k,80:C},{35:106,75:81,76:v,77:A,79:k,80:C},{35:107,75:81,76:v,77:A,79:k,80:C},{35:108,75:81,76:v,77:A,79:k,80:C},{35:109,75:81,76:v,77:A,79:k,80:C},{35:110,75:81,76:v,77:A,79:k,80:C},{35:111,75:81,76:v,77:A,79:k,80:C},{35:112,75:81,76:v,77:A,79:k,80:C},{35:113,75:81,76:v,77:A,79:k,80:C},{35:114,75:81,76:v,77:A,79:k,80:C},{35:115,75:81,76:v,77:A,79:k,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:A,79:k,80:C},{35:120,75:81,76:v,77:A,79:k,80:C},{35:121,75:81,76:v,77:A,79:k,80:C},{35:122,75:81,76:v,77:A,79:k,80:C},{35:123,75:81,76:v,77:A,79:k,80:C},{35:124,75:81,76:v,77:A,79:k,80:C},{35:125,75:81,76:v,77:A,79:k,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Ut,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:D,47:P,48:B,49:I,50:q,51:H,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:it,60:nt,61:st,62:at,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(wt,[2,21]),e(wt,[2,22]),e(T,[2,39]),e(te,[2,71],{75:81,35:132,76:v,77:A,79:k,80:C}),e(St,[2,73]),{78:[1,133]},e(St,[2,75]),e(St,[2,76]),e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(T,[2,43]),e(T,[2,44]),e(T,[2,45]),e(T,[2,46]),e(T,[2,47]),e(T,[2,48]),e(T,[2,49]),e(T,[2,50]),e(T,[2,51]),e(T,[2,52]),e(T,[2,53]),e(T,[2,54]),e(T,[2,55]),e(T,[2,56]),e(T,[2,57]),e(T,[2,58]),e(T,[2,60]),e(T,[2,61]),e(T,[2,62]),e(T,[2,63]),e(T,[2,64]),e(T,[2,65]),e(T,[2,66]),e(T,[2,67]),e(T,[2,68]),e(T,[2,69]),e(T,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(Et,[2,28]),e(Et,[2,29]),e(Et,[2,30]),e(Et,[2,31]),e(Et,[2,32]),e(Et,[2,33]),e(Et,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Ut,[2,18]),e(Ct,[2,38]),e(te,[2,72]),e(St,[2,74]),e(T,[2,24]),e(T,[2,35]),e(Ft,[2,25]),e(Ft,[2,26],{12:[1,138]}),e(Ft,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],R=[null],u=[],Ot=this.table,y="",vt=0,ee=0,be=2,ie=1,_e=u.slice.call(arguments,1),S=Object.create(this.lexer),At={yy:{}};for(var Wt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Wt)&&(At.yy[Wt]=this.yy[Wt]);S.setInput(_,At.yy),At.yy.lexer=S,At.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var Xt=S.yylloc;u.push(Xt);var xe=S.options&&S.options.ranges;typeof At.yy.parseError=="function"?this.parseError=At.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var X;return X=g.pop()||S.lex()||ie,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var L,kt,N,Qt,Tt={},Pt,W,ne,Mt;;){if(kt=m[m.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((L===null||typeof L>"u")&&(L=me()),N=Ot[kt]&&Ot[kt][L]),typeof N>"u"||!N.length||!N[0]){var qt="";Mt=[];for(Pt in Ot[kt])this.terminals_[Pt]&&Pt>be&&Mt.push("'"+this.terminals_[Pt]+"'");S.showPosition?qt="Parse error on line "+(vt+1)+`:
|
|
2
2
|
`+S.showPosition()+`
|
|
3
3
|
Expecting `+Mt.join(", ")+", got '"+(this.terminals_[L]||L)+"'":qt="Parse error on line "+(vt+1)+": Unexpected "+(L==ie?"end of input":"'"+(this.terminals_[L]||L)+"'"),this.parseError(qt,{text:S.match,token:this.terminals_[L]||L,line:S.yylineno,loc:Xt,expected:Mt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+kt+", token: "+L);switch(N[0]){case 1:m.push(L),R.push(S.yytext),u.push(S.yylloc),m.push(N[1]),L=null,ee=S.yyleng,y=S.yytext,vt=S.yylineno,Xt=S.yylloc;break;case 2:if(W=this.productions_[N[1]][1],Tt.$=R[R.length-W],Tt._$={first_line:u[u.length-(W||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(W||1)].first_column,last_column:u[u.length-1].last_column},xe&&(Tt._$.range=[u[u.length-(W||1)].range[0],u[u.length-1].range[1]]),Qt=this.performAction.apply(Tt,[y,ee,vt,At.yy,N[1],R,u].concat(_e)),typeof Qt<"u")return Qt;W&&(m=m.slice(0,-1*W*2),R=R.slice(0,-1*W),u=u.slice(0,-1*W)),m.push(this.productions_[N[1]][0]),R.push(Tt.$),u.push(Tt._$),ne=Ot[m[m.length-2]][m[m.length-1]],m.push(ne);break;case 3:return!0}}return!0}},ge=(function(){var _t={EOF:1,parseError:function(x,m){if(this.yy.parser)this.yy.parser.parseError(x,m);else throw new Error(x)},setInput:function(_,x){return this.yy=x||this.yy||{},this._input=_,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var x=_.match(/(?:\r\n?|\n).*/g);return x?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},unput:function(_){var x=_.length,m=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-x),this.offset-=x;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),m.length-1&&(this.yylineno-=m.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:m?(m.length===g.length?this.yylloc.first_column:0)+g[g.length-m.length].length-m[0].length:this.yylloc.first_column-x},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-x]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(_){this.unput(this.match.slice(_))},pastInput:function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var _=this.pastInput(),x=new Array(_.length+1).join("-");return _+this.upcomingInput()+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.BEKcP56x.js");var u={paste:"貼上",pasteAsPlaintext:"以純文字貼上",pasteCharts:"貼上圖表",selectAll:"全選",multiSelect:"將物件加入選取範圍",moveCanvas:"移動畫布",cut:"剪下",copy:"複製",copyAsPng:"以PNG格式儲存到剪貼板",copyAsSvg:"以SVG格式複製到剪貼板",copyText:"以文字格式複製至剪貼簿",copySource:"複製來源至剪貼簿",convertToCode:"轉換為程式碼",bringForward:"上移一層",sendToBack:"移到最底層",bringToFront:"置於最頂層",sendBackward:"往後移一層",delete:"刪除",copyStyles:"複製樣式",pasteStyles:"貼上樣式",stroke:"筆畫",background:"背景",fill:"填滿",strokeWidth:"筆跡寬度",strokeStyle:"筆畫樣式",strokeStyle_solid:"實線",strokeStyle_dashed:"虛線",strokeStyle_dotted:"點線",sloppiness:"線條風格",opacity:"透明度",textAlign:"文字對齊",edges:"邊緣",sharp:"尖銳",round:"平滑",arrowheads:"箭頭",arrowhead_none:"無",arrowhead_arrow:"箭頭",arrowhead_bar:"條狀箭頭",arrowhead_circle:"圓形",arrowhead_circle_outline:"圓形(外框)",arrowhead_triangle:"三角形",arrowhead_triangle_outline:"三角形(外框)",arrowhead_diamond:"菱形",arrowhead_diamond_outline:"菱形(外框)",fontSize:"字型大小",fontFamily:"字體集",addWatermark:'加上 "Made with Excalidraw" 浮水印',handDrawn:"手寫",normal:"一般",code:"代碼",small:"小",medium:"中",large:"大",veryLarge:"特大",solid:"實心",hachure:"斜線筆觸",zigzag:"Z字形",crossHatch:"交叉筆觸",thin:"細",bold:"粗",left:"左側",center:"置中",right:"右側",extraBold:"極粗",architect:"精確",artist:"藝術",cartoonist:"卡通",fileTitle:"檔案名稱",colorPicker:"色彩選擇工具",canvasColors:"使用於畫布",canvasBackground:"Canvas 背景",drawingCanvas:"繪圖 canvas",layers:"圖層",actions:"動作",language:"語言",liveCollaboration:"即時協作...",duplicateSelection:"複製",untitled:"無標題",name:"名稱",yourName:"你的名稱",madeWithExcalidraw:"以 Excalidraw 製作",group:"建立群組",ungroup:"取消群組",collaborators:"協作者",showGrid:"顯示格線",addToLibrary:"加入資料庫",removeFromLibrary:"從資料庫中移除",libraryLoadingMessage:"資料庫讀取中…",libraries:"瀏覽資料庫",loadingScene:"場景讀取中…",align:"對齊",alignTop:"對齊頂部",alignBottom:"對齊底部",alignLeft:"對齊左側",alignRight:"對齊右側",centerVertically:"垂直置中",centerHorizontally:"水平置中",distributeHorizontally:"水平分布",distributeVertically:"垂直分布",flipHorizontal:"水平翻轉",flipVertical:"垂直翻轉",viewMode:"檢視模式",share:"共享",showStroke:"顯示線條檢色器",showBackground:"顯示背景檢色器",toggleTheme:"切換主題",personalLib:"個人資料庫",excalidrawLib:"Excalidraw 資料庫",decreaseFontSize:"縮小文字",increaseFontSize:"放大文字",unbindText:"取消綁定文字",bindText:"結合文字至容器",createContainerFromText:"將文字包於容器中",link:{edit:"編輯連結",editEmbed:"編輯連結&嵌入",create:"建立連結",createEmbed:"建立連結&嵌入",label:"連結",labelEmbed:"連結&嵌入",empty:"未設定連結"},lineEditor:{edit:"編輯線條",exit:"結束線條編輯"},elementLock:{lock:"鎖定",unlock:"解鎖",lockAll:"全部鎖定",unlockAll:"全部解鎖"},statusPublished:"已發布",sidebarLock:"側欄維持開啟",selectAllElementsInFrame:"選取框架內的所有元素",removeAllElementsFromFrame:"從框架內移除所有元素",eyeDropper:"從畫布中選取顏色",textToDiagram:"文字轉圖表",prompt:"提示詞"},F={noItems:"尚未加入任何物件...",hint_emptyLibrary:"選取畫布上的物件以加入,或從下方的公開 repository 中安裝資料庫",hint_emptyPrivateLibrary:"選擇畫布上的物件以在此加入"},e={clearReset:"重置 canvas",exportJSON:"匯出至檔案",exportImage:"匯出圖片",export:"儲存至...",copyToClipboard:"複製至剪貼簿",save:"儲存目前檔案",saveAs:"儲存為",load:"開啟",getShareableLink:"取得共享連結",close:"關閉",selectLanguage:"選擇語言",scrollBackToContent:"捲動回到內容",zoomIn:"放大",zoomOut:"縮小",resetZoom:"重設縮放",menu:"選單",done:"完成",edit:"編輯",undo:"復原",redo:"重做",resetLibrary:"重設資料庫",createNewRoom:"建立新協作會議室",fullScreen:"全螢幕",darkMode:"深色模式",lightMode:"淺色模式",zenMode:"專注模式",objectsSnapMode:"吸附至物件",exitZenMode:"離開專注模式",cancel:"取消",clear:"清除",remove:"刪除",embed:"切換嵌入",publishLibrary:"發布",submit:"送出",confirm:"確認",embeddableInteractionButton:"點擊以互動"},E={clearReset:"這將會清除整個 canvas。你確定嗎?",couldNotCreateShareableLink:"無法建立共享連結。",couldNotCreateShareableLinkTooBig:"無法建立共享連結:場景太大",couldNotLoadInvalidFile:"無法讀取失效的檔案。",importBackendFailed:"後端讀取失敗。",cannotExportEmptyCanvas:"無法輸出空白的 canvas。",couldNotCopyToClipboard:"無法複製到剪貼簿",decryptFailed:"無法解密資料。",uploadedSecurly:"上傳已通過 end-to-end 加密,Excalidraw 伺服器和第三方無法皆讀取其內容。",loadSceneOverridePrompt:"讀取外部圖樣將取代目前的內容。是否要繼續?",collabStopOverridePrompt:`停止連線將覆蓋您先前於本機儲存的繪圖進度,是否確認?
|
|
2
2
|
|
|
3
3
|
(如要保留原有的本機繪圖進度,直接關閉瀏覽器分頁即可。)`,errorAddingToLibrary:"無法於此資料庫加入項目",errorRemovingFromLibrary:"無法由此資料庫移除項目",confirmAddLibrary:"這將會將 {{numShapes}} 個圖形加入你的資料庫,你確定嗎?",imageDoesNotContainScene:"此圖檔中未包含場景資料。輸出檔案時是否有包含場景資料?",cannotRestoreFromImage:"無法由此檔案回復場景。",invalidSceneUrl:"無法由提供的 URL 匯入場景。可能是發生異常,或未包含有效的 Excalidraw JSON 資料。",resetLibrary:"這會清除您的資料庫,是否確定?",removeItemsFromsLibrary:"從資料庫刪除 {{count}} 項?",invalidEncryptionKey:"加密鍵必須為22字元。即時協作已停用。",collabOfflineWarning:`沒有可用的網路連線。
|
|
4
4
|
變更無法儲存!`},C={unsupportedFileType:"不支援的檔案類型。",imageInsertError:"無法插入圖片。請稍後再試…",fileTooBig:"檔案過大。可接受的最大尺寸為 {{maxSize}} 。",svgImageInsertError:"無法插入 SVG 圖片。此 SVG 檔案有問題。",failedToFetchImage:"無法獲取圖片。",invalidSVGString:"無效的 SVG。",cannotResolveCollabServer:"無法連結至 collab 伺服器。請重新整理後再試一次。",importLibraryError:"無法載入資料庫",collabSaveFailed:"無法儲存至後端資料庫。若此問題持續發生,請將檔案儲存於本機以確保資料不會遺失。",collabSaveFailed_sizeExceeded:"無法儲存至後端資料庫,可能的原因為畫布尺寸過大。請將檔案儲存於本機以確保資料不會遺失。",imageToolNotSupported:"圖片已停用",brave_measure_text_error:{line1:"看起來您開啟了 Brave 瀏覽器的 <bold>Aggressively Block Fingerprinting</bold> 設定。",line2:"這可能造成您畫布中 <bold>文字元素</bold> 的異常。",line3:"我們強烈建議您關閉此設定。您可以依照 <link>這些步驟</link> 來進行。",line4:"若關閉此設定並未修復文字元素的顯示問題,請回報於我們 GitHub 上的 <issueLink>issue</issueLink>,或在 <discordLink>Discord</discordLink> 上告訴我們。"},libraryElementTypeError:{embeddable:"可嵌入元素無法加入資料庫",iframe:"IFrame 元素無法加入資料庫",image:"即將支援加入圖片至資料庫!"},asyncPasteFailedOnRead:"無法貼上(無法由系統剪貼簿讀入)",asyncPasteFailedOnParse:"無法貼上",copyToSystemClipboardFailed:"無法複製至剪貼簿"},A={selection:"選取",image:"插入圖片",rectangle:"長方形",diamond:"菱形",ellipse:"橢圓",arrow:"箭頭",line:"線條",freedraw:"繪圖",text:"文字",library:"資料庫",lock:"可連續使用選取的工具",penMode:"筆模式 - 避免觸摸",link:"為所選的形狀增加\b/更新連結",eraser:"橡皮擦",frame:"框架工具",magicframe:"線框稿轉為程式碼",embeddable:"嵌入網站",laser:"雷射筆",hand:"手形(平移工具)",extraTools:"更多工具",mermaidToExcalidraw:"Mermaid 至 Excalidraw",magicSettings:"AI 設定"},D={canvasActions:"canvas 動作",selectedShapeActions:"選取圖形動作",shapes:"形狀"},B={canvasPanning:"若要移動畫布,請在拖曳時按住滑鼠滾輪或空白鍵,或使用手形工具",linearElement:"點擊以繪製多點曲線;或拖曳以繪製直線",freeDraw:"點擊並拖曳來繪圖,放開即結束",text:"提示:亦可使用選取工具在任何地方雙擊來加入文字",embeddable:"點擊並拖移以建立嵌入網站",text_selected:"雙擊滑鼠或按 Enter 以編輯文字",text_editing:"按跳脫鍵或 Ctrl 或 Cmd + Enter 以結束編輯",linearElementMulti:"按下 Escape 或 Enter 以結束繪製",lockAngle:"按住 SHIFT 可限制旋轉角度",resize:"縮放時按住 Shift 可保持原比例縮放;\\n按住 Alt 可由中心點進行縮放",resizeImage:"按住 SHIFT 可任意縮放,按住 ALT 可由中央縮放。",rotate:"旋轉時按住 Shift 可限制旋轉角度",lineEditor_info:"按住 Ctrl 或 Cmd 並雙擊或按住 Ctrl 或 Cmd + Enter 來編輯控制點",lineEditor_pointSelected:"按下 Delete 可移除錨點;Ctrl 或 Cmd + D 可複製;或可拖曳來移動",lineEditor_nothingSelected:`選擇要編輯的錨點(按住 SHIFT 可多選),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.BEKcP56x.js");var a={paste:"Tempel",pasteAsPlaintext:"Tempel sebagai teks biasa",pasteCharts:"Tempel diagram",selectAll:"Pilih semua",multiSelect:"Tambahkan elemen ke pilihan",moveCanvas:"Pindahkan kanvas",cut:"Potong",copy:"Salin",copyAsPng:"Salin ke papan klip sebagai PNG",copyAsSvg:"Salin ke papan klip sebagai SVG",copyText:"Salin ke papan klip sebagai teks",copySource:"",convertToCode:"",bringForward:"Bawa maju",sendToBack:"Kirim ke belakang",bringToFront:"Bawa ke depan",sendBackward:"Kirim mundur",delete:"Hapus",copyStyles:"Salin gaya",pasteStyles:"Tempelkan gaya",stroke:"Guratan",background:"Latar",fill:"Isian",strokeWidth:"Lebar guratan",strokeStyle:"Gaya guratan",strokeStyle_solid:"Padat",strokeStyle_dashed:"Putus-putus",strokeStyle_dotted:"Titik-titik",sloppiness:"Kecerobohan",opacity:"Keburaman",textAlign:"Perataan teks",edges:"Tepi",sharp:"Tajam",round:"Bulat",arrowheads:"Mata panah",arrowhead_none:"Tidak ada",arrowhead_arrow:"Panah",arrowhead_bar:"Batang",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"Segitiga",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"Ukuran font",fontFamily:"Jenis font",addWatermark:'Tambahkan "Dibuat dengan Excalidraw"',handDrawn:"Tulisan tangan",normal:"Normal",code:"Kode",small:"Kecil",medium:"Sedang",large:"Besar",veryLarge:"Sangat besar",solid:"Padat",hachure:"Garis-garis",zigzag:"Zigzag",crossHatch:"Asiran silang",thin:"Lembut",bold:"Tebal",left:"Kiri",center:"Tengah",right:"Kanan",extraBold:"Sangat tebal",architect:"Arsitek",artist:"Artis",cartoonist:"Kartunis",fileTitle:"Nama file",colorPicker:"Pilihan Warna",canvasColors:"Digunakan di kanvas",canvasBackground:"Latar Kanvas",drawingCanvas:"Kanvas",layers:"Lapisan",actions:"Aksi",language:"Bahasa",liveCollaboration:"Kolaborasi langsung...",duplicateSelection:"Duplikat",untitled:"Tanpa judul",name:"Nama",yourName:"Nama Anda",madeWithExcalidraw:"Dibuat dengan Excalidraw",group:"Kelompokan pilihan",ungroup:"Pisahkan pilihan",collaborators:"Kolaborator",showGrid:"Tampilkan grid",addToLibrary:"Tambahkan ke pustaka",removeFromLibrary:"Hapus dari pustaka",libraryLoadingMessage:"Memuat pustaka…",libraries:"Telusur pustaka",loadingScene:"Memuat pemandangan…",align:"Perataan",alignTop:"Rata atas",alignBottom:"Rata bawah",alignLeft:"Rata kiri",alignRight:"Rata kanan",centerVertically:"Pusatkan secara vertikal",centerHorizontally:"Pusatkan secara horizontal",distributeHorizontally:"Distribusikan horizontal",distributeVertically:"Distribusikan vertikal",flipHorizontal:"Balikkan horizontal",flipVertical:"Balikkan vertikal",viewMode:"Mode tampilan",share:"Bagikan",showStroke:"Tampilkan garis pengambil warna",showBackground:"Tampilkan latar pengambil warna",toggleTheme:"Ubah tema",personalLib:"Pustaka Pribadi",excalidrawLib:"Pustaka Excalidraw",decreaseFontSize:"Kecilkan ukuran font",increaseFontSize:"Besarkan ukuran font",unbindText:"Lepas teks",bindText:"Kunci teks ke kontainer",createContainerFromText:"Bungkus teks dalam kontainer",link:{edit:"Edit tautan",editEmbed:"",create:"Buat tautan",createEmbed:"",label:"Tautan",labelEmbed:"",empty:""},lineEditor:{edit:"Edit tautan",exit:"Keluar editor garis"},elementLock:{lock:"Kunci",unlock:"Lepas",lockAll:"Kunci semua",unlockAll:"Lepas semua"},statusPublished:"Telah terbit",sidebarLock:"Biarkan sidebar tetap terbuka",selectAllElementsInFrame:"Pilih semua elemen di bingkai",removeAllElementsFromFrame:"Hapus semua elemen dari bingkai",eyeDropper:"Ambil warna dari kanvas",textToDiagram:"",prompt:""},e={noItems:"Belum ada item yang ditambahkan...",hint_emptyLibrary:"Pilih item pada kanvas untuk menambahkan nya di sini, atau pasang pustaka dari gudang di bawah ini.",hint_emptyPrivateLibrary:"Pilih item pada kanvas untuk menambahkan nya di sini."},n={clearReset:"Setel Ulang Kanvas",exportJSON:"Ekspor ke file",exportImage:"Ekspor gambar...",export:"Simpan ke...",copyToClipboard:"Salin ke Papan Klip",save:"Simpan ke file sekarang",saveAs:"Simpan sebagai",load:"Buka",getShareableLink:"Buat Tautan yang Bisa Dibagian",close:"Tutup",selectLanguage:"Pilih bahasa",scrollBackToContent:"Gulir kembali ke konten",zoomIn:"Besarkan",zoomOut:"Kecilkan",resetZoom:"Reset Pembesaran",menu:"Menu",done:"Selesai",edit:"Edit",undo:"Urungkan",redo:"Ulangi",resetLibrary:"Reset pustaka",createNewRoom:"Buat ruang baru",fullScreen:"Layar penuh",darkMode:"Mode gelap",lightMode:"Mode terang",zenMode:"Mode zen",objectsSnapMode:"",exitZenMode:"Keluar dari mode zen",cancel:"Batal",clear:"Hapus",remove:"Hapus",embed:"",publishLibrary:"Terbitkan",submit:"Kirimkan",confirm:"Konfirmasi",embeddableInteractionButton:""},i={clearReset:"Ini akan menghapus semua yang ada dikanvas. Apakah kamu yakin ?",couldNotCreateShareableLink:"Tidak bisa membuat tautan yang bisa dibagikan",couldNotCreateShareableLinkTooBig:"Tidak dapat membuat tautan yang dapat dibagikan: pemandangan terlalu besar",couldNotLoadInvalidFile:"Tidak dapat memuat berkas yang tidak valid",importBackendFailed:"Gagal mengimpor dari backend",cannotExportEmptyCanvas:"Tidak bisa mengekspor kanvas kosong",couldNotCopyToClipboard:"Tidak bisa menyalin ke papan klip.",decryptFailed:"Tidak dapat mengdekripsi data.",uploadedSecurly:"Pengunggahan ini telah diamankan menggunakan enkripsi end-to-end, artinya server Excalidraw dan pihak ketiga tidak data membaca nya",loadSceneOverridePrompt:"Memuat gambar external akan mengganti konten Anda yang ada. Apakah Anda ingin melanjutkan?",collabStopOverridePrompt:`Menghentikan sesi akan menimpa gambar Anda yang tersimpan secara lokal. Anda yakin?
|
|
2
2
|
|
|
3
3
|
(Jika Anda ingin menyimpan gambar lokal Anda, gantinya cukup tutup tab browser.)`,errorAddingToLibrary:"Tidak dapat menambahkan item ke pustaka",errorRemovingFromLibrary:"Tidak dapat membuang item dari pustaka",confirmAddLibrary:"Ini akan menambahkan {{numShapes}} bentuk ke pustaka Anda. Anda yakin?",imageDoesNotContainScene:"Gambar ini sepertinya tidak terdapat data pemandangan. Sudahkah Anda mengaktifkan penyematan pemandangan ketika ekspor?",cannotRestoreFromImage:"Pemandangan tidak dapat dipulihkan dari file gambar ini",invalidSceneUrl:"Tidak dapat impor pemandangan dari URL. Kemungkinan URL itu rusak atau tidak berisi data JSON Excalidraw yang valid.",resetLibrary:"Ini akan menghapus pustaka Anda. Anda yakin?",removeItemsFromsLibrary:"Hapus {{count}} item dari pustaka?",invalidEncryptionKey:"Sandi enkripsi harus 22 karakter. Kolaborasi langsung dinonaktifkan.",collabOfflineWarning:`Tidak ada koneksi internet.
|
|
4
4
|
Perubahan tidak akan disimpan!`},t={unsupportedFileType:"Tipe file tidak didukung.",imageInsertError:"Tidak dapat menyisipkan gambar. Coba lagi nanti...",fileTooBig:"File terlalu besar. Ukuran maksimum yang dibolehkan {{maxSize}}.",svgImageInsertError:"Tidak dapat menyisipkan gambar SVG. Markup SVG sepertinya tidak valid.",failedToFetchImage:"",invalidSVGString:"SVG tidak valid.",cannotResolveCollabServer:"Tidak dapat terhubung ke server kolab. Muat ulang laman dan coba lagi.",importLibraryError:"Tidak dapat memuat pustaka",collabSaveFailed:"Tidak dapat menyimpan ke dalam basis data server. Jika masih berlanjut, Anda sebaiknya simpan berkas Anda secara lokal untuk memastikan pekerjaan Anda tidak hilang.",collabSaveFailed_sizeExceeded:"Tidak dapat menyimpan ke dalam basis data server, tampaknya ukuran kanvas terlalu besar. Anda sebaiknya simpan berkas Anda secara lokal untuk memastikan pekerjaan Anda tidak hilang.",imageToolNotSupported:"",brave_measure_text_error:{line1:"Sepertinya Anda menggunkan peramban Brave dengan pengaturan <bold>Blokir Fingerprinting yang Agresif</bold> diaktifkan.",line2:"Ini dapat membuat <bold>Elemen Teks</bold> dalam gambar mu.",line3:"Kami sangat menyarankan mematikan pengaturan ini. Anda dapat mengikuti <link>langkah-langkah ini</link> untuk melakukannya.",line4:`Jika mematikan pengaturan ini tidak membenarkan tampilan elemen teks, mohon buka
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./layers.
|
|
1
|
+
import "./layers.DcPu1d0d.js";
|
|
2
2
|
var u = { paste: "चिपकाएँ", pasteAsPlaintext: "सादे पाठ के रूप में चिपकाएं", pasteCharts: "चार्ट चिपकाएँ", selectAll: "सभी चुनें", multiSelect: "आकार को चयन में जोड़ें", moveCanvas: "कैनवास को स्थानांतरित करें", cut: "काटें", copy: "प्रतिलिपि", copyAsPng: "क्लिपबोर्ड पर कॉपी करें ,पीएनजी के रूप में", copyAsSvg: "क्लिपबोर्ड पर कॉपी करें,एसवीजी के रूप में", copyText: "लेखन के रूप में पटल पर कॉपी करें", copySource: "स्त्रोत को प्रति-फलक पे प्रतिलिपित करे.", convertToCode: "सांकेतिक लिपि में परिवर्तित करे", bringForward: "सामने लाएं", sendToBack: "पीछे भेजें", bringToFront: "सामने लाएँ", sendBackward: "पीचे भीजे", delete: "मिटाए", copyStyles: "कॉपी स्टाइल", pasteStyles: "स्टाइल पेस्ट करें", stroke: "रेखा", background: "पृष्ठभूमि", fill: "भरें", strokeWidth: "रेखा की चौड़ाई", strokeStyle: "स्ट्रोक का आकार", strokeStyle_solid: "ठोस", strokeStyle_dashed: "डैश", strokeStyle_dotted: "बिंदीदार", sloppiness: "बेढ़ंगापन", opacity: "अपारदर्शिता", textAlign: "टेक्स्ट संरेखन", edges: "किनारा", sharp: "नुकीला", round: "गोल", arrowheads: "तीर शीर्ष", arrowhead_none: "कोई भी नहीं", arrowhead_arrow: "तीर", arrowhead_bar: "बार", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "त्रिकोण", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "फ़ॉन्ट का आकार", fontFamily: "फ़ॉन्ट का परिवार", addWatermark: 'ऐड "मेड विथ एक्सकैलिडराव"', handDrawn: "हाथ से बनाया हुआ", normal: "साधारण", code: "कोड", small: "छोटा", medium: "मध्यम", large: "बड़ा", veryLarge: "बहुत बड़ा", solid: "दृढ़", hachure: "हैशूर", zigzag: "तेढ़ी मेढ़ी", crossHatch: "क्रॉस हैच", thin: "पतला", bold: "मोटा", left: "बाएं", center: "मध्य", right: "दाएँ", extraBold: "बहुत मोटा", architect: "वास्तुकार", artist: "कलाकार", cartoonist: "व्यंग्य चित्रकार", fileTitle: "फ़ाइल का नाम", colorPicker: "रंग चयन", canvasColors: "कॅनवास पर प्रयोगित", canvasBackground: "कैनवास बैकग्राउंड", drawingCanvas: "कैनवास बना रहे हैं", layers: "परतें", actions: "कार्रवाई", language: "भाषा", liveCollaboration: "जीवंत सहयोग...", duplicateSelection: "डुप्लिकेट", untitled: "अशीर्षित", name: "नाम", yourName: "आपका नाम", madeWithExcalidraw: "मेड विथ एक्सकैलिडराव", group: "समूह चयन", ungroup: "समूह चयन असमूहीकृत करें", collaborators: "सहयोगी", showGrid: "ग्रिड दिखाएं", addToLibrary: "लाइब्रेरी से जोड़ें", removeFromLibrary: "लाइब्रेरी से निकालें", libraryLoadingMessage: "लाइब्रेरी खुल रही है", libraries: "लाइब्रेरी ब्राउज़ करें", loadingScene: "दृश्य खुल रहा है", align: "संरेखित करें", alignTop: "ऊपर संरेखित करें", alignBottom: "नीचे संरेखित करें", alignLeft: "बायें संरेखित करें", alignRight: "दायें संरेखित करें", centerVertically: "लंबवत केन्द्रित", centerHorizontally: "क्षैतिज केन्द्रित", distributeHorizontally: "क्षैतिज रूप से वितरित करें", distributeVertically: "खड़ी रूप से वितरित करें", flipHorizontal: "दायें बायें पलटे", flipVertical: "ऊपर नीचे पलटे", viewMode: "अलग अलग देखें", share: "शेयर करें", showStroke: "", showBackground: "पृष्ठभूमि रंग वरक़ दिखाये", toggleTheme: "", personalLib: "वैयक्तिक समूहकोष", excalidrawLib: "एक्सकेलीड्रॉ समूहकोष", decreaseFontSize: "आकार घटाइऐ", increaseFontSize: "फ़ॉन्ट आकार बढ़ाएँ", unbindText: "लिपि को बंधमुक्त करें", bindText: "लेखन को कोश से जोड़े", createContainerFromText: "मूलपाठ कंटेनर में मोड के दिखाए", link: { edit: "कड़ी संपादित करे", editEmbed: "", create: "", createEmbed: "", label: "", labelEmbed: "", empty: "" }, lineEditor: { edit: "रेखा संपादित करे", exit: "रेखा संपादक के बाहर" }, elementLock: { lock: "ताले में रखें", unlock: "ताले से बाहर", lockAll: "सब ताले के अंदर रखे", unlockAll: "सब ताले के बाहर निकाले" }, statusPublished: "प्रकाशित", sidebarLock: "साइडबार खुला रखे.", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "चित्रफलक से रंग चुने", textToDiagram: "", prompt: "" }, E = { noItems: "अभी तक कोई आइटम जोडा नहीं गया.", hint_emptyLibrary: "यहाँ जोड़ने के लिए पटल से एक वस्तु चुने, अथवा जन कोष से एक संग्रह नीचे स्थापित करें.", hint_emptyPrivateLibrary: "यहाँ जोड़ने के लिए पटल से एक वस्तु चुने." }, F = { clearReset: "कैनवास रीसेट करें", exportJSON: "", exportImage: "प्रतिमा निर्यात करे...", export: "यंहा सुरक्षित करे...", copyToClipboard: "क्लिपबोर्ड पर प्रतिलिपि बनाएँ", save: "", saveAs: "सेव करे इस तरह", load: "खोलें", getShareableLink: "साझा करने योग्य लिंक प्राप्त करें", close: "बंद करें", selectLanguage: "भाषा चुनें", scrollBackToContent: "सामग्री पर वापस स्क्रॉल करें", zoomIn: "बड़ा करें", zoomOut: "छोटा करें", resetZoom: "ज़ूम रीसेट करें", menu: "मेन्यू", done: "समाप्त", edit: "संशोधन करें", undo: "पूर्ववत् करें", redo: "फिर से करें", resetLibrary: "", createNewRoom: "एक नया कमरा बनाएं", fullScreen: "पूरी स्क्रीन", darkMode: "डार्क मोड", lightMode: "लाइट मोड", zenMode: "ज़ेन मोड", objectsSnapMode: "वस्तुओं से पकड़े", exitZenMode: "जेन मोड से बाहर निकलें", cancel: "", clear: "साफ़ करे", remove: "हटाएं", embed: "", publishLibrary: "प्रकाशित करें", submit: "प्रस्तुत करे", confirm: "पुष्टि करें", embeddableInteractionButton: "" }, e = { clearReset: "इससे पूरा कैनवास साफ हो जाएगा। क्या आपको यकीन है?", couldNotCreateShareableLink: "साझा करने योग्य लिंक नहीं बनाया जा सका।", couldNotCreateShareableLinkTooBig: "लिंक शेयर नहीं कर सकता: दृश्य बहुत बड़ा", couldNotLoadInvalidFile: "अमान्य फ़ाइल लोड नहीं की जा सकी", importBackendFailed: "बैकएंड से आयात करना विफल रहा।", cannotExportEmptyCanvas: "खाली कैनवास निर्यात नहीं कर सकता।", couldNotCopyToClipboard: "क्लिपबोर्ड पर कॉपी नहीं किया जा सका", decryptFailed: "डेटा को डिक्रिप्ट नहीं किया जा सका।", uploadedSecurly: "अपलोड को एंड-टू-एंड एन्क्रिप्शन के साथ सुरक्षित किया गया है, जिसका मतलब है कि एक्सक्लूसिव सर्वर और थर्ड पार्टी कंटेंट नहीं पढ़ सकते हैं।", loadSceneOverridePrompt: "लोड हो रहा है बाहरी ड्राइंग आपके मौजूदा सामग्री को बदल देगा। क्या आप जारी रखना चाहते हैं?", collabStopOverridePrompt: "चालू सत्र समाप्ति से आपका संग्रहित पूर्व स्थानीय अधिलेखन नष्ट होकर पुनः अधिलेखित होगा, क्या आपको यक़ीन हैं? ( यदी आपको पूर्व स्थापित अधिलेखन सुरक्षित चाहिये तो बस ब्राउज़र टैब बंद करे)", errorAddingToLibrary: "संग्रह में जोडा न जा सका", errorRemovingFromLibrary: "संग्रह से हटाया नहीं जा सका", confirmAddLibrary: "लाइब्रेरी जोड़ें पुष्टि करें आकार संख्या", imageDoesNotContainScene: "ऐसा लगता है कि इस छवि में कोई दृश्य डेटा नहीं है। क्या आपने निर्यात के दौरान दृश्य एम्बेडिंग अनुमतित की है?", cannotRestoreFromImage: "छवि फ़ाइल बहाल दृश्य नहीं है", invalidSceneUrl: "दिये गये युआरेल से दृश्य आयात नहीं किया जा सका. यह या तो अनुचित है, या इसमें उचित Excalidraw JSON डेटा नहीं है।", resetLibrary: "यह पूरा संग्रह रिक्त करेगा. क्या आपको यक़ीन हैं?", removeItemsFromsLibrary: "{{count}} वस्तु(यें) संग्रह से हटायें?", invalidEncryptionKey: "कूटलेखन कुंजी 22 अक्षरों की होनी चाहिये, इसलिये जीवंत सहयोग अक्षम हैं", collabOfflineWarning: `कोई इंटरनेट कनेक्शन उपलब्ध नहीं है।
|
|
3
3
|
आपके बदलाव सहेजे नहीं जाएंगे!` }, D = { unsupportedFileType: "असमर्थित फाइल प्रकार", imageInsertError: "छवि सम्मिलित नहीं की जा सकी. पुनः प्रयत्न करे...", fileTooBig: "फ़ाइल ज़रूरत से ज़्यादा बड़ी हैं. अधिकतम अनुमित परिमाण {{maxSize}} हैं", svgImageInsertError: "एसवीजी छवि सम्मिलित नहीं कर सके, एसवीजी रचना अनुचित हैं", failedToFetchImage: "", invalidSVGString: "अनुचित SVG", cannotResolveCollabServer: "कॉलेब सर्वर से कनेक्शन नहीं हो पा रहा. कृपया पृष्ठ को पुनः लाने का प्रयास करे.", importLibraryError: "संग्रह प्रतिष्ठापित नहीं किया जा सका", collabSaveFailed: "किसी कारण वश अंदरूनी डेटाबेस में सहेजा नहीं जा सका। यदि समस्या बनी रहती है, तो किये काम को खोने न देने के लिये अपनी फ़ाइल को स्थानीय रूप से सहेजे।", collabSaveFailed_sizeExceeded: "लगता है कि पृष्ठ तल काफ़ी बड़ा है, इस्कारण अंदरूनी डेटाबेस में सहेजा नहीं जा सका। किये काम को खोने न देने के लिये अपनी फ़ाइल को स्थानीय रूप से सहेजे।", imageToolNotSupported: "प्रतिमायें अक्षम की गयी हैं", brave_measure_text_error: { line1: "लगता है कि आप Brave ब्राउज़र का उपयोग कर रहे और साथ में <bold>आक्रामक उँगलियो के छाप </bold> का चयन किया हुवा है", line2: "यह आपके चित्रों के <bold>पाठ तत्वों</bold>को खंडित कर सकता हैं", line3: "हमें आपसे ठोस आग्रह है की आप सेट्टिंग में इस विकल्प का चयन ना करे.<link> इस अनुक्रम </link> का पालन करके इसका पता लगा सकते हैं", line4: "यदि इस सेटिंग्स को अक्षम करने पर भी पृष्ठ ठीक नहीं दिखता हो तो, हमारे GitHub पर एक <issueLink>मुद्दा प्रस्तुत</issueLink> करे, या हमें <discordLink>डिस्कोर्ड</discordLink> पर लिखित सम्पर्क करें" }, libraryElementTypeError: { embeddable: "", iframe: "आयफ़्रेम तत्व समूहकोष में जोडा नहीं जा सका.", image: "" }, asyncPasteFailedOnRead: "चिपकाया नहीं जा सका (सिस्टम क्लिपबोर्ड से पढ़ा नहीं जा सका).", asyncPasteFailedOnParse: "चिपकाया नहीं जा सका.", copyToSystemClipboardFailed: "क्लिपबोर्ड पर प्रतिलिपि नहीं बनाई जा सकी." }, o = { selection: "चयन", image: "छवि सम्मिलित करें", rectangle: "आयात", diamond: "तिर्यग्वर्ग", ellipse: "दीर्घवृत्त", arrow: "तीर", line: "रेखा", freedraw: "चित्रांतित करे", text: "पाठ", library: "लाइब्रेरी", lock: "ड्राइंग के बाद चयनित टूल को सक्रिय रखें", penMode: "पेन का मोड - स्पर्श टाले", link: "", eraser: "रबड़", frame: "", magicframe: "तारिक ढाँचें को सांकेतिक लिपि में", embeddable: "", laser: "लेसर टॉर्च", hand: "हाथ ( खिसकाने का औज़ार)", extraTools: "", mermaidToExcalidraw: "मर्मेड से एक्सकाली में", magicSettings: "कृतिम बुद्धिमत्ता सेटिंग्स" }, a = { canvasActions: "कैनवास क्रिया", selectedShapeActions: "चयनित आकृति क्रियाएं", shapes: "आकृतियाँ" }, r = { canvasPanning: "कैनवास को सरकाने के लिए, ड्रैग करते समय माउस व्हील को पकड़े रखे या स्पेसबार को दबाए रखे, अथवा हाथ वाले औज़ार का उपयोग करें", linearElement: "कई बिंदुओं को शुरू करने के लिए क्लिक करें, सिंगल लाइन के लिए खींचें", freeDraw: "क्लिक करें और खींचें। समाप्त करने के लिए, छोड़ो", text: "आप चयन टूल से कहीं भी डबल-क्लिक करके टेक्स्ट जोड़ सकते हैं", embeddable: "", text_selected: "", text_editing: "", linearElementMulti: "अंतिम बिंदु पर क्लिक करें या समाप्त होने के लिए एस्केप या एंटर दबाएं", lockAngle: "आप घूर्णन करते समय SHIFT पकड़कर कोणों को मोड़ सकते हैं", resize: `आकार बदलते समय आप SHIFT को पकड़ कर अनुपात में कमी कर सकते हैं,
|
|
4
4
|
केंद्र से आकार बदलने के लिए ALT दबाए रखें`, resizeImage: "", rotate: "आप घूर्णन करते समय SHIFT पकड़कर कोणों को विवश कर सकते हैं", lineEditor_info: "बिंदुओं को सम्पादित करने के लिए CtrlOrCmd को दबायें रखते हुये डबल क्लिक करे, अथवा CtrlOrCmd + Enter साथ दबाये", lineEditor_pointSelected: "", lineEditor_nothingSelected: "", placeImage: "", publishLibrary: "", bindTextToElement: "", deepBoxSelect: "", eraserRevert: "मिटाने के लिए चुने हुए चीजों को ना चुनने के लिए Alt साथ में दबाए", firefox_clipboard_write: '"dom.events.asyncClipboard.clipboardItem" फ़्लैग को "true" पर सेट करके इस सुविधा को संभवतः सक्षम किया जा सकता है। Firefox में ब्राउज़र फ़्लैग बदलने के लिए, "about:config" पृष्ठ पर जाएँ।', disableSnapping: "स्नैपिंग को निष्क्रिय करने के लिए CtrlOrCmd दबाए रखें" }, t = { cannotShowPreview: "पूर्वावलोकन नहीं दिखा सकते हैं", canvasTooBig: "कैनवास बहुत बड़ा", canvasTooBigTip: "कैनवास बहुत बड़ा टिप" }, i = { headingMain: "एक त्रुटि का सामना करना पड़ा। प्रयत्न <button>इस पृष्ठ को पुनः लोड करें</button>", clearCanvasMessage: "यदि पुनः लोड करना काम नहीं करता है, तो प्रयास करें <button>कैनवास साफ करना।</button>", clearCanvasCaveat: " इससे काम का नुकसान होगा ", trackedToSentry: "पहचानकर्ता के साथ त्रुटि {{eventId}} हमारे सिस्टम पर नज़र रखी गई थी।", openIssueMessage: "हम बहुत सतर्क थे कि त्रुटि पर आपकी दृश्य जानकारी शामिल न करें। यदि आपका दृश्य निजी नहीं है, तो कृपया हमारे बारे में विचार करें <button>बग ट्रैकर</button> कृपया GitHub मुद्दे को कॉपी और पेस्ट करके नीचे दी गई जानकारी शामिल करें।", sceneContent: "दृश्य सामग्री:" }, A = { desc_intro: "आप अपने वर्तमान दृश्य के लोगों को अपने साथ सहयोग करने के लिए आमंत्रित कर सकते हैं।", desc_privacy: "चिंता न करें, सत्र अंत-से-अंत एन्क्रिप्शन का उपयोग करता है, इसलिए आप जो भी ड्रा करेंगे वह निजी रहेगा। यहां तक कि हमारा सर्वर भी नहीं देख पाएगा कि आप क्या कर रहे हैं।", button_startSession: "सत्र प्रारंभ करें", button_stopSession: "सत्र रुकें", desc_inProgressIntro: "लाइव सहयोग सत्र अब जारी है।", desc_shareLink: "इस लिंक को आप जिस किसी के साथ भी सहयोग करना चाहते हैं, उसके साथ साझा करें", desc_exitSession: "सत्र रोकना आपको रूम से बाहर कर देगा, लेकिन आप स्थानीय स्तर पर दृश्य के साथ काम करना जारी रख पाएंगे। ध्यान दें कि यह अन्य लोगों को प्रभावित नहीं करेगा, और वे अभी भी अपने संस्करण पर सहयोग करने में सक्षम होंगे।", shareTitle: "" }, l = { title: "गलती" }, n = { disk_title: "", disk_details: "", disk_button: "", link_title: "", link_details: "", link_button: "", excalidrawplus_description: "", excalidrawplus_button: "", excalidrawplus_exportError: "" }, C = { blog: "हमारा ब्लॉग पढे", click: "क्लिक करें", deepSelect: "", deepBoxSelect: "", curvedArrow: "वक्र तीर", curvedLine: "वक्र रेखा", documentation: "", doubleClick: "", drag: "खींचें", editor: "संपादक", editLineArrowPoints: "रेखा/तीर बिंदु सम्पादित करे", editText: "पाठ्य सम्पादित करे/ लेबल जोड़े", github: "मुद्दा मिला? प्रस्तुत करें", howto: "हमारे गाइड का पालन करें", or: "या", preventBinding: "तीर बंधन रोकें", tools: "औज़ार", shortcuts: "कीबोर्ड के शॉर्टकट्स", textFinish: "", textNewLine: "", title: "मदद", view: "दृश्य", zoomToFit: "सभी तत्वों को फिट करने के लिए ज़ूम करें", zoomToSelection: "चयन तक ज़ूम करे", toggleElementLock: "ताले के अंदर/बाहर चुनाव", movePageUpDown: "पृष्ठ ऊपर/नीचे करे", movePageLeftRight: "पृष्ठ बायी/दायी तरफ करे" }, s = { title: "" }, B = { title: "", itemName: "", authorName: "", githubUsername: "", twitterUsername: "", libraryName: "", libraryDesc: "", website: "", placeholder: { authorName: "", libraryName: "", libraryDesc: "", githubHandle: "", twitterHandle: "", website: "" }, errors: { required: "", website: "मान्य URL प्रविष्ट करें" }, noteDescription: "संग्रह सम्मिलित करने हेतु प्रस्तुत करें <link>सार्वजनिक संग्रहालय</link>अन्य वक्तियों को उनके चित्रकारी में उपयोग के लिये", noteGuidelines: "संग्रह को पहले स्वीकृति आवश्यक कृपया यह पढ़ें <link>दिशा-निर्देश</link>", noteLicense: "जमा करके, आप सहमत हैं कि संग्रहण को <link>MIT लाइसेंस</link> के तहत प्रकाशित किया जाएगा, जिसका संक्षिप्त अर्थ है कि कोई भी बिना किसी प्रतिबंध के उनका उपयोग कर सकता है।", noteItems: "", atleastOneLibItem: "", republishWarning: "टिप्पणी: कुछ चुने हुवे आइटम पहले ही प्रकाशित/प्रस्तुत किए जा चुके हैं। किसी प्रकाशित संग्रह को अद्यतन करते समय या पहले से प्रस्तुत आइटम को पुन्हा प्रस्तुत करते समय, आप बस उसे केवल अद्यतन करें ।" }, d = { title: "", content: "{{authorName}} धन्यवाद. आपका संग्रहण समीक्षा के लिए दर्ज हो चुका है. समीक्षा स्थिति <link>यहाँ</link>जान सकते हैं." }, c = { resetLibrary: "", removeItemsFromLib: "" }, b = { header: "", label: { withBackground: "", onlySelected: "", darkMode: "", embedScene: "", scale: "", padding: "" }, tooltip: { embedScene: "" }, title: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" }, button: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" } }, m = { tooltip: "आपके चित्र अंत-से-अंत एन्क्रिप्टेड हैं, इसलिए एक्सक्लूसिव्रॉव के सर्वर उन्हें कभी नहीं देखेंगे।", link: "" }, p = { angle: "कोण", element: "एलिमेंट", elements: "एलिमेंट", height: "ऊंचाई", scene: "दृश्य", selected: "चयनित", storage: "संग्रह", title: "बेवकूफ के लिए आँकड़े", total: "कुल", version: "संस्करण", versionCopy: "काॅपी करने के लिए क्लिक करें", versionNotAvailable: "संस्करण उपलब्ध नहीं है", width: "चौड़ाई" }, g = { addedToLibrary: "", copyStyles: "काॅपी कीए स्टाइल", copyToClipboard: "क्लिपबोर्ड में कॉपी कीए", copyToClipboardAsPng: "", fileSaved: "", fileSavedToFilename: "", canvas: "", selection: "", pasteAsSingleElement: `एक अवयव के रूप में चिपकाने के लिए {{shortcut}} का उपयोग करें,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./layers.CWHsJCaN.js"),t=require("./layers.My1dNxG6.js");require("lodash-es");const z=require("./layers.Cyzu9PKQ.js"),T=require("./layers.BLd2spTm.js");require("./layers.Dxr2o7ON.js");require("lodash-es/memoize.js");require("lodash-es/merge.js");require("lodash-es/isEmpty.js");const L=require("./layers.BQyYsLOK.js"),P=e=>e.append("circle").attr("class","start-state").attr("r",t.getConfig().state.sizeUnit).attr("cx",t.getConfig().state.padding+t.getConfig().state.sizeUnit).attr("cy",t.getConfig().state.padding+t.getConfig().state.sizeUnit),q=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t.getConfig().state.textHeight).attr("class","divider").attr("x2",t.getConfig().state.textHeight*2).attr("y1",0).attr("y2",0),A=(e,n)=>{const s=e.append("text").attr("x",2*t.getConfig().state.padding).attr("y",t.getConfig().state.textHeight+2*t.getConfig().state.padding).attr("font-size",t.getConfig().state.fontSize).attr("class","state-title").text(n.id),g=s.node().getBBox();return e.insert("rect",":first-child").attr("x",t.getConfig().state.padding).attr("y",t.getConfig().state.padding).attr("width",g.width+2*t.getConfig().state.padding).attr("height",g.height+2*t.getConfig().state.padding).attr("rx",t.getConfig().state.radius),s},G=(e,n)=>{const s=function(c,w,y){const S=c.append("tspan").attr("x",2*t.getConfig().state.padding).text(w);y||S.attr("dy",t.getConfig().state.textHeight)},a=e.append("text").attr("x",2*t.getConfig().state.padding).attr("y",t.getConfig().state.textHeight+1.3*t.getConfig().state.padding).attr("font-size",t.getConfig().state.fontSize).attr("class","state-title").text(n.descriptions[0]).node().getBBox(),l=a.height,f=e.append("text").attr("x",t.getConfig().state.padding).attr("y",l+t.getConfig().state.padding*.4+t.getConfig().state.dividerMargin+t.getConfig().state.textHeight).attr("class","state-description");let i=!0,r=!0;n.descriptions.forEach(function(c){i||(s(f,c,r),r=!1),i=!1});const C=e.append("line").attr("x1",t.getConfig().state.padding).attr("y1",t.getConfig().state.padding+l+t.getConfig().state.dividerMargin/2).attr("y2",t.getConfig().state.padding+l+t.getConfig().state.dividerMargin/2).attr("class","descr-divider"),p=f.node().getBBox(),d=Math.max(p.width,a.width);return C.attr("x2",d+3*t.getConfig().state.padding),e.insert("rect",":first-child").attr("x",t.getConfig().state.padding).attr("y",t.getConfig().state.padding).attr("width",d+2*t.getConfig().state.padding).attr("height",p.height+l+2*t.getConfig().state.padding).attr("rx",t.getConfig().state.radius),e},W=(e,n,s)=>{const g=t.getConfig().state.padding,a=2*t.getConfig().state.padding,l=e.node().getBBox(),f=l.width,i=l.x,r=e.append("text").attr("x",0).attr("y",t.getConfig().state.titleShift).attr("font-size",t.getConfig().state.fontSize).attr("class","state-title").text(n.id),p=r.node().getBBox().width+a;let d=Math.max(p,f);d===f&&(d=d+a);let c;const w=e.node().getBBox();n.doc,c=i-g,p>f&&(c=(f-d)/2+g),Math.abs(i-w.x)<g&&p>f&&(c=i-(p-f)/2);const y=1-t.getConfig().state.textHeight;return e.insert("rect",":first-child").attr("x",c).attr("y",y).attr("class",s?"alt-composit":"composit").attr("width",d).attr("height",w.height+t.getConfig().state.textHeight+t.getConfig().state.titleShift+1).attr("rx","0"),r.attr("x",c+g),p<=f&&r.attr("x",i+(d-a)/2-p/2+g),e.insert("rect",":first-child").attr("x",c).attr("y",t.getConfig().state.titleShift-t.getConfig().state.textHeight-t.getConfig().state.padding).attr("width",d).attr("height",t.getConfig().state.textHeight*3).attr("rx",t.getConfig().state.radius),e.insert("rect",":first-child").attr("x",c).attr("y",t.getConfig().state.titleShift-t.getConfig().state.textHeight-t.getConfig().state.padding).attr("width",d).attr("height",w.height+3+2*t.getConfig().state.textHeight).attr("rx",t.getConfig().state.radius),e},v=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t.getConfig().state.sizeUnit+t.getConfig().state.miniPadding).attr("cx",t.getConfig().state.padding+t.getConfig().state.sizeUnit+t.getConfig().state.miniPadding).attr("cy",t.getConfig().state.padding+t.getConfig().state.sizeUnit+t.getConfig().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t.getConfig().state.sizeUnit).attr("cx",t.getConfig().state.padding+t.getConfig().state.sizeUnit+2).attr("cy",t.getConfig().state.padding+t.getConfig().state.sizeUnit+2)),R=(e,n)=>{let s=t.getConfig().state.forkWidth,g=t.getConfig().state.forkHeight;if(n.parentId){let a=s;s=g,g=a}return e.append("rect").style("stroke","black").style("fill","black").attr("width",s).attr("height",g).attr("x",t.getConfig().state.padding).attr("y",t.getConfig().state.padding)},U=(e,n,s,g)=>{let a=0;const l=g.append("text");l.style("text-anchor","start"),l.attr("class","noteText");let f=e.replace(/\r\n/g,"<br/>");f=f.replace(/\n/g,"<br/>");const i=f.split(t.common$1.lineBreakRegex);let r=1.25*t.getConfig().state.noteMargin;for(const C of i){const p=C.trim();if(p.length>0){const d=l.append("tspan");if(d.text(p),r===0){const c=d.node().getBBox();r+=c.height}a+=r,d.attr("x",n+t.getConfig().state.noteMargin),d.attr("y",s+a+1.25*t.getConfig().state.noteMargin)}}return{textWidth:l.node().getBBox().width,textHeight:a}},F=(e,n)=>{n.attr("class","state-note");const s=n.append("rect").attr("x",0).attr("y",t.getConfig().state.padding),g=n.append("g"),{textWidth:a,textHeight:l}=U(e,0,0,g);return s.attr("height",l+2*t.getConfig().state.noteMargin),s.attr("width",a+t.getConfig().state.noteMargin*2),s},M=function(e,n){const s=n.id,g={id:s,label:n.id,width:0,height:0},a=e.append("g").attr("id",s).attr("class","stateGroup");n.type==="start"&&P(a),n.type==="end"&&v(a),(n.type==="fork"||n.type==="join")&&R(a,n),n.type==="note"&&F(n.note.text,a),n.type==="divider"&&q(a),n.type==="default"&&n.descriptions.length===0&&A(a,n),n.type==="default"&&n.descriptions.length>0&&G(a,n);const l=a.node().getBBox();return g.width=l.width+2*t.getConfig().state.padding,g.height=l.height+2*t.getConfig().state.padding,g};let H=0;const O=function(e,n,s){const g=function(r){switch(r){case m.db.relationType.AGGREGATION:return"aggregation";case m.db.relationType.EXTENSION:return"extension";case m.db.relationType.COMPOSITION:return"composition";case m.db.relationType.DEPENDENCY:return"dependency"}};n.points=n.points.filter(r=>!Number.isNaN(r.y));const a=n.points,l=L.line().x(function(r){return r.x}).y(function(r){return r.y}).curve(t.curveBasis),f=e.append("path").attr("d",l(a)).attr("id","edge"+H).attr("class","transition");let i="";if(t.getConfig().state.arrowMarkerAbsolute&&(i=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,i=i.replace(/\(/g,"\\("),i=i.replace(/\)/g,"\\)")),f.attr("marker-end","url("+i+"#"+g(m.db.relationType.DEPENDENCY)+"End)"),s.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:C,y:p}=t.utils.calcLabelPosition(n.points),d=t.common$1.getRows(s.title);let c=0;const w=[];let y=0,S=0;for(let x=0;x<=d.length;x++){const h=r.append("text").attr("text-anchor","middle").text(d[x]).attr("x",C).attr("y",p+c),u=h.node().getBBox();y=Math.max(y,u.width),S=Math.min(S,u.x),t.log$1.info(u.x,C,p+c),c===0&&(c=h.node().getBBox().height,t.log$1.info("Title height",c,p)),w.push(h)}let E=c*d.length;if(d.length>1){const x=(d.length-1)*c*.5;w.forEach((h,u)=>h.attr("y",p+u*c-x)),E=c*d.length}const o=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",C-y/2-t.getConfig().state.padding/2).attr("y",p-E/2-t.getConfig().state.padding/2-3.5).attr("width",y+t.getConfig().state.padding).attr("height",E+t.getConfig().state.padding),t.log$1.info(o)}H++};let b;const N={},X=function(){},J=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},Y=function(e,n,s,g){b=t.getConfig().state;const a=t.getConfig().securityLevel;let l;a==="sandbox"&&(l=t.select("#i"+n));const f=a==="sandbox"?t.select(l.nodes()[0].contentDocument.body):t.select("body"),i=a==="sandbox"?l.nodes()[0].contentDocument:document;t.log$1.debug("Rendering diagram "+e);const r=f.select(`[id='${n}']`);J(r);const C=g.db.getRootDoc();$(C,r,void 0,!1,f,i,g);const p=b.padding,d=r.node().getBBox(),c=d.width+p*2,w=d.height+p*2,y=c*1.75;t.configureSvgSize(r,w,y,b.useMaxWidth),r.attr("viewBox",`${d.x-b.padding} ${d.y-b.padding} `+c+" "+w)},I=e=>e?e.length*b.fontSizeFactor:1,$=(e,n,s,g,a,l,f)=>{const i=new T.Graph({compound:!0,multigraph:!0});let r,C=!0;for(r=0;r<e.length;r++)if(e[r].stmt==="relation"){C=!1;break}s?i.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:C?1:b.edgeLengthFactor,nodeSep:C?1:50,isMultiGraph:!0}):i.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:C?1:b.edgeLengthFactor,nodeSep:C?1:50,ranker:"tight-tree",isMultiGraph:!0}),i.setDefaultEdgeLabel(function(){return{}}),f.db.extract(e);const p=f.db.getStates(),d=f.db.getRelations(),c=Object.keys(p);for(const o of c){const x=p[o];s&&(x.parentId=s);let h;if(x.doc){let u=n.append("g").attr("id",x.id).attr("class","stateGroup");h=$(x.doc,u,x.id,!g,a,l,f);{u=W(u,x,g);let B=u.node().getBBox();h.width=B.width,h.height=B.height+b.padding/2,N[x.id]={y:b.compositTitleSize}}}else h=M(n,x);if(x.note){const u={descriptions:[],id:x.id+"-note",note:x.note,type:"note"},B=M(n,u);x.note.position==="left of"?(i.setNode(h.id+"-note",B),i.setNode(h.id,h)):(i.setNode(h.id,h),i.setNode(h.id+"-note",B)),i.setParent(h.id,h.id+"-group"),i.setParent(h.id+"-note",h.id+"-group")}else i.setNode(h.id,h)}t.log$1.debug("Count=",i.nodeCount(),i);let w=0;d.forEach(function(o){w++,t.log$1.debug("Setting edge",o),i.setEdge(o.id1,o.id2,{relation:o,width:I(o.title),height:b.labelHeight*t.common$1.getRows(o.title).length,labelpos:"c"},"id"+w)}),z.layout(i),t.log$1.debug("Graph after layout",i.nodes());const y=n.node();i.nodes().forEach(function(o){o!==void 0&&i.node(o)!==void 0?(t.log$1.warn("Node "+o+": "+JSON.stringify(i.node(o))),a.select("#"+y.id+" #"+o).attr("transform","translate("+(i.node(o).x-i.node(o).width/2)+","+(i.node(o).y+(N[o]?N[o].y:0)-i.node(o).height/2)+" )"),a.select("#"+y.id+" #"+o).attr("data-x-shift",i.node(o).x-i.node(o).width/2),l.querySelectorAll("#"+y.id+" #"+o+" .divider").forEach(h=>{const u=h.parentElement;let B=0,k=0;u&&(u.parentElement&&(B=u.parentElement.getBBox().width),k=parseInt(u.getAttribute("data-x-shift"),10),Number.isNaN(k)&&(k=0)),h.setAttribute("x1",0-k+8),h.setAttribute("x2",B-k-8)})):t.log$1.debug("No Node "+o+": "+JSON.stringify(i.node(o)))});let S=y.getBBox();i.edges().forEach(function(o){o!==void 0&&i.edge(o)!==void 0&&(t.log$1.debug("Edge "+o.v+" -> "+o.w+": "+JSON.stringify(i.edge(o))),O(n,i.edge(o),i.edge(o).relation))}),S=y.getBBox();const E={id:s||"root",label:s||"root",width:0,height:0};return E.width=S.width+2*b.padding,E.height=S.height+2*b.padding,t.log$1.debug("Doc rendered",E,i),E},_={setConf:X,draw:Y},Z={parser:m.parser$1,db:m.db,renderer:_,styles:m.styles,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,m.db.clear()}};exports.diagram=Z;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./layers.3WbIyvQn.js"),t=require("./layers.BEeQZxiO.js");require("lodash-es");const z=require("./layers.Cyzu9PKQ.js"),T=require("./layers.BLd2spTm.js");require("./layers.Dxr2o7ON.js");require("lodash-es/memoize.js");require("lodash-es/merge.js");require("lodash-es/isEmpty.js");const L=require("./layers.B51WWPZ9.js"),P=e=>e.append("circle").attr("class","start-state").attr("r",t.getConfig().state.sizeUnit).attr("cx",t.getConfig().state.padding+t.getConfig().state.sizeUnit).attr("cy",t.getConfig().state.padding+t.getConfig().state.sizeUnit),q=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t.getConfig().state.textHeight).attr("class","divider").attr("x2",t.getConfig().state.textHeight*2).attr("y1",0).attr("y2",0),A=(e,n)=>{const s=e.append("text").attr("x",2*t.getConfig().state.padding).attr("y",t.getConfig().state.textHeight+2*t.getConfig().state.padding).attr("font-size",t.getConfig().state.fontSize).attr("class","state-title").text(n.id),g=s.node().getBBox();return e.insert("rect",":first-child").attr("x",t.getConfig().state.padding).attr("y",t.getConfig().state.padding).attr("width",g.width+2*t.getConfig().state.padding).attr("height",g.height+2*t.getConfig().state.padding).attr("rx",t.getConfig().state.radius),s},G=(e,n)=>{const s=function(c,w,y){const S=c.append("tspan").attr("x",2*t.getConfig().state.padding).text(w);y||S.attr("dy",t.getConfig().state.textHeight)},a=e.append("text").attr("x",2*t.getConfig().state.padding).attr("y",t.getConfig().state.textHeight+1.3*t.getConfig().state.padding).attr("font-size",t.getConfig().state.fontSize).attr("class","state-title").text(n.descriptions[0]).node().getBBox(),l=a.height,f=e.append("text").attr("x",t.getConfig().state.padding).attr("y",l+t.getConfig().state.padding*.4+t.getConfig().state.dividerMargin+t.getConfig().state.textHeight).attr("class","state-description");let i=!0,r=!0;n.descriptions.forEach(function(c){i||(s(f,c,r),r=!1),i=!1});const C=e.append("line").attr("x1",t.getConfig().state.padding).attr("y1",t.getConfig().state.padding+l+t.getConfig().state.dividerMargin/2).attr("y2",t.getConfig().state.padding+l+t.getConfig().state.dividerMargin/2).attr("class","descr-divider"),p=f.node().getBBox(),d=Math.max(p.width,a.width);return C.attr("x2",d+3*t.getConfig().state.padding),e.insert("rect",":first-child").attr("x",t.getConfig().state.padding).attr("y",t.getConfig().state.padding).attr("width",d+2*t.getConfig().state.padding).attr("height",p.height+l+2*t.getConfig().state.padding).attr("rx",t.getConfig().state.radius),e},W=(e,n,s)=>{const g=t.getConfig().state.padding,a=2*t.getConfig().state.padding,l=e.node().getBBox(),f=l.width,i=l.x,r=e.append("text").attr("x",0).attr("y",t.getConfig().state.titleShift).attr("font-size",t.getConfig().state.fontSize).attr("class","state-title").text(n.id),p=r.node().getBBox().width+a;let d=Math.max(p,f);d===f&&(d=d+a);let c;const w=e.node().getBBox();n.doc,c=i-g,p>f&&(c=(f-d)/2+g),Math.abs(i-w.x)<g&&p>f&&(c=i-(p-f)/2);const y=1-t.getConfig().state.textHeight;return e.insert("rect",":first-child").attr("x",c).attr("y",y).attr("class",s?"alt-composit":"composit").attr("width",d).attr("height",w.height+t.getConfig().state.textHeight+t.getConfig().state.titleShift+1).attr("rx","0"),r.attr("x",c+g),p<=f&&r.attr("x",i+(d-a)/2-p/2+g),e.insert("rect",":first-child").attr("x",c).attr("y",t.getConfig().state.titleShift-t.getConfig().state.textHeight-t.getConfig().state.padding).attr("width",d).attr("height",t.getConfig().state.textHeight*3).attr("rx",t.getConfig().state.radius),e.insert("rect",":first-child").attr("x",c).attr("y",t.getConfig().state.titleShift-t.getConfig().state.textHeight-t.getConfig().state.padding).attr("width",d).attr("height",w.height+3+2*t.getConfig().state.textHeight).attr("rx",t.getConfig().state.radius),e},v=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t.getConfig().state.sizeUnit+t.getConfig().state.miniPadding).attr("cx",t.getConfig().state.padding+t.getConfig().state.sizeUnit+t.getConfig().state.miniPadding).attr("cy",t.getConfig().state.padding+t.getConfig().state.sizeUnit+t.getConfig().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t.getConfig().state.sizeUnit).attr("cx",t.getConfig().state.padding+t.getConfig().state.sizeUnit+2).attr("cy",t.getConfig().state.padding+t.getConfig().state.sizeUnit+2)),R=(e,n)=>{let s=t.getConfig().state.forkWidth,g=t.getConfig().state.forkHeight;if(n.parentId){let a=s;s=g,g=a}return e.append("rect").style("stroke","black").style("fill","black").attr("width",s).attr("height",g).attr("x",t.getConfig().state.padding).attr("y",t.getConfig().state.padding)},U=(e,n,s,g)=>{let a=0;const l=g.append("text");l.style("text-anchor","start"),l.attr("class","noteText");let f=e.replace(/\r\n/g,"<br/>");f=f.replace(/\n/g,"<br/>");const i=f.split(t.common$1.lineBreakRegex);let r=1.25*t.getConfig().state.noteMargin;for(const C of i){const p=C.trim();if(p.length>0){const d=l.append("tspan");if(d.text(p),r===0){const c=d.node().getBBox();r+=c.height}a+=r,d.attr("x",n+t.getConfig().state.noteMargin),d.attr("y",s+a+1.25*t.getConfig().state.noteMargin)}}return{textWidth:l.node().getBBox().width,textHeight:a}},F=(e,n)=>{n.attr("class","state-note");const s=n.append("rect").attr("x",0).attr("y",t.getConfig().state.padding),g=n.append("g"),{textWidth:a,textHeight:l}=U(e,0,0,g);return s.attr("height",l+2*t.getConfig().state.noteMargin),s.attr("width",a+t.getConfig().state.noteMargin*2),s},M=function(e,n){const s=n.id,g={id:s,label:n.id,width:0,height:0},a=e.append("g").attr("id",s).attr("class","stateGroup");n.type==="start"&&P(a),n.type==="end"&&v(a),(n.type==="fork"||n.type==="join")&&R(a,n),n.type==="note"&&F(n.note.text,a),n.type==="divider"&&q(a),n.type==="default"&&n.descriptions.length===0&&A(a,n),n.type==="default"&&n.descriptions.length>0&&G(a,n);const l=a.node().getBBox();return g.width=l.width+2*t.getConfig().state.padding,g.height=l.height+2*t.getConfig().state.padding,g};let H=0;const O=function(e,n,s){const g=function(r){switch(r){case m.db.relationType.AGGREGATION:return"aggregation";case m.db.relationType.EXTENSION:return"extension";case m.db.relationType.COMPOSITION:return"composition";case m.db.relationType.DEPENDENCY:return"dependency"}};n.points=n.points.filter(r=>!Number.isNaN(r.y));const a=n.points,l=L.line().x(function(r){return r.x}).y(function(r){return r.y}).curve(t.curveBasis),f=e.append("path").attr("d",l(a)).attr("id","edge"+H).attr("class","transition");let i="";if(t.getConfig().state.arrowMarkerAbsolute&&(i=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,i=i.replace(/\(/g,"\\("),i=i.replace(/\)/g,"\\)")),f.attr("marker-end","url("+i+"#"+g(m.db.relationType.DEPENDENCY)+"End)"),s.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:C,y:p}=t.utils.calcLabelPosition(n.points),d=t.common$1.getRows(s.title);let c=0;const w=[];let y=0,S=0;for(let x=0;x<=d.length;x++){const h=r.append("text").attr("text-anchor","middle").text(d[x]).attr("x",C).attr("y",p+c),u=h.node().getBBox();y=Math.max(y,u.width),S=Math.min(S,u.x),t.log$1.info(u.x,C,p+c),c===0&&(c=h.node().getBBox().height,t.log$1.info("Title height",c,p)),w.push(h)}let E=c*d.length;if(d.length>1){const x=(d.length-1)*c*.5;w.forEach((h,u)=>h.attr("y",p+u*c-x)),E=c*d.length}const o=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",C-y/2-t.getConfig().state.padding/2).attr("y",p-E/2-t.getConfig().state.padding/2-3.5).attr("width",y+t.getConfig().state.padding).attr("height",E+t.getConfig().state.padding),t.log$1.info(o)}H++};let b;const N={},X=function(){},J=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},Y=function(e,n,s,g){b=t.getConfig().state;const a=t.getConfig().securityLevel;let l;a==="sandbox"&&(l=t.select("#i"+n));const f=a==="sandbox"?t.select(l.nodes()[0].contentDocument.body):t.select("body"),i=a==="sandbox"?l.nodes()[0].contentDocument:document;t.log$1.debug("Rendering diagram "+e);const r=f.select(`[id='${n}']`);J(r);const C=g.db.getRootDoc();$(C,r,void 0,!1,f,i,g);const p=b.padding,d=r.node().getBBox(),c=d.width+p*2,w=d.height+p*2,y=c*1.75;t.configureSvgSize(r,w,y,b.useMaxWidth),r.attr("viewBox",`${d.x-b.padding} ${d.y-b.padding} `+c+" "+w)},I=e=>e?e.length*b.fontSizeFactor:1,$=(e,n,s,g,a,l,f)=>{const i=new T.Graph({compound:!0,multigraph:!0});let r,C=!0;for(r=0;r<e.length;r++)if(e[r].stmt==="relation"){C=!1;break}s?i.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:C?1:b.edgeLengthFactor,nodeSep:C?1:50,isMultiGraph:!0}):i.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:C?1:b.edgeLengthFactor,nodeSep:C?1:50,ranker:"tight-tree",isMultiGraph:!0}),i.setDefaultEdgeLabel(function(){return{}}),f.db.extract(e);const p=f.db.getStates(),d=f.db.getRelations(),c=Object.keys(p);for(const o of c){const x=p[o];s&&(x.parentId=s);let h;if(x.doc){let u=n.append("g").attr("id",x.id).attr("class","stateGroup");h=$(x.doc,u,x.id,!g,a,l,f);{u=W(u,x,g);let B=u.node().getBBox();h.width=B.width,h.height=B.height+b.padding/2,N[x.id]={y:b.compositTitleSize}}}else h=M(n,x);if(x.note){const u={descriptions:[],id:x.id+"-note",note:x.note,type:"note"},B=M(n,u);x.note.position==="left of"?(i.setNode(h.id+"-note",B),i.setNode(h.id,h)):(i.setNode(h.id,h),i.setNode(h.id+"-note",B)),i.setParent(h.id,h.id+"-group"),i.setParent(h.id+"-note",h.id+"-group")}else i.setNode(h.id,h)}t.log$1.debug("Count=",i.nodeCount(),i);let w=0;d.forEach(function(o){w++,t.log$1.debug("Setting edge",o),i.setEdge(o.id1,o.id2,{relation:o,width:I(o.title),height:b.labelHeight*t.common$1.getRows(o.title).length,labelpos:"c"},"id"+w)}),z.layout(i),t.log$1.debug("Graph after layout",i.nodes());const y=n.node();i.nodes().forEach(function(o){o!==void 0&&i.node(o)!==void 0?(t.log$1.warn("Node "+o+": "+JSON.stringify(i.node(o))),a.select("#"+y.id+" #"+o).attr("transform","translate("+(i.node(o).x-i.node(o).width/2)+","+(i.node(o).y+(N[o]?N[o].y:0)-i.node(o).height/2)+" )"),a.select("#"+y.id+" #"+o).attr("data-x-shift",i.node(o).x-i.node(o).width/2),l.querySelectorAll("#"+y.id+" #"+o+" .divider").forEach(h=>{const u=h.parentElement;let B=0,k=0;u&&(u.parentElement&&(B=u.parentElement.getBBox().width),k=parseInt(u.getAttribute("data-x-shift"),10),Number.isNaN(k)&&(k=0)),h.setAttribute("x1",0-k+8),h.setAttribute("x2",B-k-8)})):t.log$1.debug("No Node "+o+": "+JSON.stringify(i.node(o)))});let S=y.getBBox();i.edges().forEach(function(o){o!==void 0&&i.edge(o)!==void 0&&(t.log$1.debug("Edge "+o.v+" -> "+o.w+": "+JSON.stringify(i.edge(o))),O(n,i.edge(o),i.edge(o).relation))}),S=y.getBBox();const E={id:s||"root",label:s||"root",width:0,height:0};return E.width=S.width+2*b.padding,E.height=S.height+2*b.padding,t.log$1.debug("Doc rendered",E,i),E},_={setConf:X,draw:Y},Z={parser:m.parser$1,db:m.db,renderer:_,styles:m.styles,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,m.db.clear()}};exports.diagram=Z;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { f as $, p as St } from "./layers.
|
|
2
|
-
import { d as x, J as R, l as M, g as D, G as Lt, H as z, I as W, a6 as Z, C as tt, j as et } from "./layers.
|
|
1
|
+
import { f as $, p as St } from "./layers.C9wFmF4s.js";
|
|
2
|
+
import { d as x, J as R, l as M, g as D, G as Lt, H as z, I as W, a6 as Z, C as tt, j as et } from "./layers.B0RwVZwd.js";
|
|
3
3
|
import * as rt from "lodash-es";
|
|
4
4
|
import { pick as _t, defaults as I } from "lodash-es";
|
|
5
5
|
import { l as Et } from "./layers.D4T8fTcj.js";
|
|
6
6
|
import { G as Tt } from "./layers.BJDrjORS.js";
|
|
7
|
-
import { b as T, c as at, i as nt, d as _, e as st, g as it, f as Nt, a as At, s as Pt } from "./layers.
|
|
8
|
-
import { l as Ct } from "./layers.
|
|
7
|
+
import { b as T, c as at, i as nt, d as _, e as st, g as it, f as Nt, a as At, s as Pt } from "./layers.CvLDqwQs.js";
|
|
8
|
+
import { l as Ct } from "./layers.D1QLwHjg.js";
|
|
9
9
|
import "./layers.Bg7BQcmt.js";
|
|
10
10
|
import "lodash-es/memoize.js";
|
|
11
11
|
import "lodash-es/merge.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const P=require("lodash-es"),J=require("./layers.Cyzu9PKQ.js"),k=require("./layers.BLd2spTm.js"),u=require("./layers.BlIMqAlU.js"),i=require("./layers.My1dNxG6.js"),j=require("./layers.xfJeJDLD.js");function G(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const m=G(P);function x(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:M(e),edges:F(e)};return m.isUndefined(e.graph())||(t.value=m.clone(e.graph())),t}function M(e){return m.map(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),s={v:t};return m.isUndefined(n)||(s.value=n),m.isUndefined(r)||(s.parent=r),s})}function F(e){return m.map(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return m.isUndefined(t.name)||(r.name=t.name),m.isUndefined(n)||(r.value=n),r})}let a={},w={},p={};const q=()=>{w={},p={},a={}},X=(e,t)=>(i.log$1.trace("In isDescendant",t," ",e," = ",w[t].includes(e)),!!w[t].includes(e)),_=(e,t)=>(i.log$1.info("Descendants of ",t," is ",w[t]),i.log$1.info("Edge is ",e),e.v===t||e.w===t?!1:w[t]?w[t].includes(e.v)||X(e.v,t)||X(e.w,t)||w[t].includes(e.w):(i.log$1.debug("Tilt, ",t,",not in descendants"),!1)),B=(e,t,n,r)=>{i.log$1.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const s=t.children(e)||[];e!==r&&s.push(e),i.log$1.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach(o=>{if(t.children(o).length>0)B(o,t,n,r);else{const f=t.node(o);i.log$1.info("cp ",o," to ",r," with parent ",e),n.setNode(o,f),r!==t.parent(o)&&(i.log$1.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==r&&o!==e?(i.log$1.debug("Setting parent",o,e),n.setParent(o,e)):(i.log$1.info("In copy ",e,"root",r,"data",t.node(e),r),i.log$1.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==r,"node!==clusterId",o!==e));const g=t.edges(o);i.log$1.debug("Copying Edges",g),g.forEach(d=>{i.log$1.info("Edge",d);const h=t.edge(d.v,d.w,d.name);i.log$1.info("Edge data",h,r);try{_(d,r)?(i.log$1.info("Copying as ",d.v,d.w,h,d.name),n.setEdge(d.v,d.w,h,d.name),i.log$1.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.log$1.info("Skipping copy of edge ",d.v,"-->",d.w," rootId: ",r," clusterId:",e)}catch($){i.log$1.error($)}})}i.log$1.debug("Removing node",o),t.removeNode(o)})},D=(e,t)=>{const n=t.children(e);let r=[...n];for(const s of n)p[s]=e,r=[...r,...D(s,t)];return r},C=(e,t)=>{i.log$1.trace("Searching",e);const n=t.children(e);if(i.log$1.trace("Searching children of id ",e,n),n.length<1)return i.log$1.trace("This is a valid node",e),e;for(const r of n){const s=C(r,t);if(s)return i.log$1.trace("Found replacement for",e," => ",s),s}},S=e=>!a[e]||!a[e].externalConnections?e:a[e]?a[e].id:e,U=(e,t)=>{if(!e||t>10){i.log$1.debug("Opting out, no graph ");return}else i.log$1.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.log$1.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),w[n]=D(n,e),a[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),s=e.edges();r.length>0?(i.log$1.debug("Cluster identified",n,w),s.forEach(o=>{if(o.v!==n&&o.w!==n){const f=X(o.v,n),g=X(o.w,n);f^g&&(i.log$1.warn("Edge: ",o," leaves cluster ",n),i.log$1.warn("Descendants of XXX ",n,": ",w[n]),a[n].externalConnections=!0)}})):i.log$1.debug("Not a cluster ",n,w)});for(let n of Object.keys(a)){const r=a[n].id,s=e.parent(r);s!==n&&a[s]&&!a[s].externalConnections&&(a[n].id=s)}e.edges().forEach(function(n){const r=e.edge(n);i.log$1.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.log$1.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let s=n.v,o=n.w;if(i.log$1.warn("Fix XXX",a,"ids:",n.v,n.w,"Translating: ",a[n.v]," --- ",a[n.w]),a[n.v]&&a[n.w]&&a[n.v]===a[n.w]){i.log$1.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),i.log$1.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name);const f=n.w+"---"+n.v;e.setNode(f,{domId:f,id:f,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const g=structuredClone(r),d=structuredClone(r);g.label="",g.arrowTypeEnd="none",d.label="",g.fromCluster=n.v,d.toCluster=n.v,e.setEdge(s,f,g,n.name+"-cyclic-special"),e.setEdge(f,o,d,n.name+"-cyclic-special")}else if(a[n.v]||a[n.w]){if(i.log$1.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name),s!==n.v){const f=e.parent(s);a[f].externalConnections=!0,r.fromCluster=n.v}if(o!==n.w){const f=e.parent(o);a[f].externalConnections=!0,r.toCluster=n.w}i.log$1.warn("Fix Replacing with XXX",s,o,n.name),e.setEdge(s,o,r,n.name)}}),i.log$1.warn("Adjusted Graph",x(e)),T(e,0),i.log$1.trace(a)},T=(e,t)=>{if(i.log$1.warn("extractor - ",t,x(e),e.children("D")),t>10){i.log$1.error("Bailing out");return}let n=e.nodes(),r=!1;for(const s of n){const o=e.children(s);r=r||o.length>0}if(!r){i.log$1.debug("Done, no node has children",e.nodes());return}i.log$1.debug("Nodes = ",n,t);for(const s of n)if(i.log$1.debug("Extracting node",s,a,a[s]&&!a[s].externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",t),!a[s])i.log$1.debug("Not a cluster",s,t);else if(!a[s].externalConnections&&e.children(s)&&e.children(s).length>0){i.log$1.warn("Cluster without external connections, without a parent and with children",s,t);let f=e.graph().rankdir==="TB"?"LR":"TB";a[s]&&a[s].clusterData&&a[s].clusterData.dir&&(f=a[s].clusterData.dir,i.log$1.warn("Fixing dir",a[s].clusterData.dir,f));const g=new k.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:f,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.log$1.warn("Old graph before copy",x(e)),B(s,e,g,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:a[s].clusterData,labelText:a[s].labelText,graph:g}),i.log$1.warn("New graph after copy node: (",s,")",x(g)),i.log$1.debug("Old graph after copy",x(e))}else i.log$1.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!a[s].externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),t),i.log$1.debug(a);n=e.nodes(),i.log$1.warn("New list of nodes",n);for(const s of n){const o=e.node(s);i.log$1.warn(" Now next level",s,o),o.clusterNode&&T(o.graph,t+1)}},O=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const s=e.children(r),o=O(e,s);n=[...n,...o]}),n},A=e=>O(e,e.children()),H=(e,t)=>{i.log$1.info("Creating subgraph rect for ",t.id,t);const n=i.getConfig(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),s=r.insert("rect",":first-child"),o=i.evaluate(n.flowchart.htmlLabels),f=r.insert("g").attr("class","cluster-label"),g=t.labelType==="markdown"?j.createText(f,t.labelText,{style:t.labelStyle,useHtmlLabels:o}):f.node().appendChild(u.createLabel$1(t.labelText,t.labelStyle,void 0,!0));let d=g.getBBox();if(i.evaluate(n.flowchart.htmlLabels)){const l=g.children[0],c=i.select(g);d=l.getBoundingClientRect(),c.attr("width",d.width),c.attr("height",d.height)}const h=0*t.padding,$=h/2,b=t.width<=d.width+h?d.width+h:t.width;t.width<=d.width+h?t.diff=(d.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,i.log$1.trace("Data ",t,JSON.stringify(t)),s.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-b/2).attr("y",t.y-t.height/2-$).attr("width",b).attr("height",t.height+h);const{subGraphTitleTopMargin:N}=u.getSubGraphTitleMargins(n);o?f.attr("transform",`translate(${t.x-d.width/2}, ${t.y-t.height/2+N})`):f.attr("transform",`translate(${t.x}, ${t.y-t.height/2+N})`);const y=s.node().getBBox();return t.width=y.width,t.height=y.height,t.intersect=function(l){return u.intersectRect$1(t,l)},r},V=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,o=s/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2-o).attr("width",t.width+s).attr("height",t.height+s).attr("fill","none");const f=r.node().getBBox();return t.width=f.width,t.height=f.height,t.intersect=function(g){return u.intersectRect$1(t,g)},n},z=(e,t)=>{const n=i.getConfig(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),s=r.insert("rect",":first-child"),o=r.insert("g").attr("class","cluster-label"),f=r.append("rect"),g=o.node().appendChild(u.createLabel$1(t.labelText,t.labelStyle,void 0,!0));let d=g.getBBox();if(i.evaluate(n.flowchart.htmlLabels)){const l=g.children[0],c=i.select(g);d=l.getBoundingClientRect(),c.attr("width",d.width),c.attr("height",d.height)}d=g.getBBox();const h=0*t.padding,$=h/2,b=t.width<=d.width+t.padding?d.width+t.padding:t.width;t.width<=d.width+t.padding?t.diff=(d.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,s.attr("class","outer").attr("x",t.x-b/2-$).attr("y",t.y-t.height/2-$).attr("width",b+h).attr("height",t.height+h),f.attr("class","inner").attr("x",t.x-b/2-$).attr("y",t.y-t.height/2-$+d.height-1).attr("width",b+h).attr("height",t.height+h-d.height-3);const{subGraphTitleTopMargin:N}=u.getSubGraphTitleMargins(n);o.attr("transform",`translate(${t.x-d.width/2}, ${t.y-t.height/2-t.padding/3+(i.evaluate(n.flowchart.htmlLabels)?5:3)+N})`);const y=s.node().getBBox();return t.height=y.height,t.intersect=function(l){return u.intersectRect$1(t,l)},r},W=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,o=s/2;r.attr("class","divider").attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2).attr("width",t.width+s).attr("height",t.height+s);const f=r.node().getBBox();return t.width=f.width,t.height=f.height,t.diff=-t.padding/2,t.intersect=function(g){return u.intersectRect$1(t,g)},n},K={rect:H,roundedWithTitle:z,noteGroup:V,divider:W};let R={};const Q=(e,t)=>{i.log$1.trace("Inserting cluster");const n=t.shape||"rect";R[t.id]=K[n](e,t)},Y=()=>{R={}},L=async(e,t,n,r,s,o)=>{i.log$1.info("Graph in recursive render: XXX",x(t),s);const f=t.graph().rankdir;i.log$1.trace("Dir in recursive render - dir:",f);const g=e.insert("g").attr("class","root");t.nodes()?i.log$1.info("Recursive render XXX",t.nodes()):i.log$1.info("No nodes found for",t),t.edges().length>0&&i.log$1.trace("Recursive edges",t.edge(t.edges()[0]));const d=g.insert("g").attr("class","clusters"),h=g.insert("g").attr("class","edgePaths"),$=g.insert("g").attr("class","edgeLabels"),b=g.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(l){const c=t.node(l);if(s!==void 0){const v=JSON.parse(JSON.stringify(s.clusterData));i.log$1.info("Setting data for cluster XXX (",l,") ",v,s),t.setNode(s.id,v),t.parent(l)||(i.log$1.trace("Setting parent",l,s.id),t.setParent(l,s.id,v))}if(i.log$1.info("(Insert) Node XXX"+l+": "+JSON.stringify(t.node(l))),c&&c.clusterNode){i.log$1.info("Cluster identified",l,c.width,t.node(l));const v=await L(b,c.graph,n,r,t.node(l),o),E=v.elem;u.updateNodeBounds(c,E),c.diff=v.diff||0,i.log$1.info("Node bounds (abc123)",l,c,c.width,c.x,c.y),u.setNodeElem(E,c),i.log$1.warn("Recursive render complete ",E,c)}else t.children(l).length>0?(i.log$1.info("Cluster - the non recursive path XXX",l,c.id,c,t),i.log$1.info(C(c.id,t)),a[c.id]={id:C(c.id,t),node:c}):(i.log$1.info("Node - the non recursive path",l,c.id,c),await u.insertNode(b,t.node(l),f))})),t.edges().forEach(function(l){const c=t.edge(l.v,l.w,l.name);i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(l)),i.log$1.info("Edge "+l.v+" -> "+l.w+": ",l," ",JSON.stringify(t.edge(l))),i.log$1.info("Fix",a,"ids:",l.v,l.w,"Translating: ",a[l.v],a[l.w]),u.insertEdgeLabel($,c)}),t.edges().forEach(function(l){i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(l))}),i.log$1.info("#############################################"),i.log$1.info("### Layout ###"),i.log$1.info("#############################################"),i.log$1.info(t),J.layout(t),i.log$1.info("Graph after layout:",x(t));let N=0;const{subGraphTitleTotalMargin:y}=u.getSubGraphTitleMargins(o);return A(t).forEach(function(l){const c=t.node(l);i.log$1.info("Position "+l+": "+JSON.stringify(t.node(l))),i.log$1.info("Position "+l+": ("+c.x,","+c.y,") width: ",c.width," height: ",c.height),c&&c.clusterNode?(c.y+=y,u.positionNode(c)):t.children(l).length>0?(c.height+=y,Q(d,c),a[c.id].node=c):(c.y+=y/2,u.positionNode(c))}),t.edges().forEach(function(l){const c=t.edge(l);i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(c),c),c.points.forEach(E=>E.y+=y/2);const v=u.insertEdge(h,l,c,a,n,t,r);u.positionEdgeLabel(c,v)}),t.nodes().forEach(function(l){const c=t.node(l);i.log$1.info(l,c.type,c.diff),c.type==="group"&&(N=c.diff)}),{elem:g,diff:N}},Z=async(e,t,n,r,s)=>{u.insertMarkers$1(e,n,r,s),u.clear$1(),u.clear(),Y(),q(),i.log$1.warn("Graph at first:",JSON.stringify(x(t))),U(t),i.log$1.warn("Graph after:",JSON.stringify(x(t)));const o=i.getConfig();await L(e,t,r,s,void 0,o)};exports.render=Z;
|
|
1
|
+
"use strict";const P=require("lodash-es"),J=require("./layers.Cyzu9PKQ.js"),k=require("./layers.BLd2spTm.js"),u=require("./layers.CgTSaL8c.js"),i=require("./layers.BEeQZxiO.js"),j=require("./layers.DXGCl8VJ.js");function G(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const m=G(P);function x(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:M(e),edges:F(e)};return m.isUndefined(e.graph())||(t.value=m.clone(e.graph())),t}function M(e){return m.map(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),s={v:t};return m.isUndefined(n)||(s.value=n),m.isUndefined(r)||(s.parent=r),s})}function F(e){return m.map(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return m.isUndefined(t.name)||(r.name=t.name),m.isUndefined(n)||(r.value=n),r})}let a={},w={},p={};const q=()=>{w={},p={},a={}},X=(e,t)=>(i.log$1.trace("In isDescendant",t," ",e," = ",w[t].includes(e)),!!w[t].includes(e)),_=(e,t)=>(i.log$1.info("Descendants of ",t," is ",w[t]),i.log$1.info("Edge is ",e),e.v===t||e.w===t?!1:w[t]?w[t].includes(e.v)||X(e.v,t)||X(e.w,t)||w[t].includes(e.w):(i.log$1.debug("Tilt, ",t,",not in descendants"),!1)),B=(e,t,n,r)=>{i.log$1.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const s=t.children(e)||[];e!==r&&s.push(e),i.log$1.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach(o=>{if(t.children(o).length>0)B(o,t,n,r);else{const f=t.node(o);i.log$1.info("cp ",o," to ",r," with parent ",e),n.setNode(o,f),r!==t.parent(o)&&(i.log$1.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==r&&o!==e?(i.log$1.debug("Setting parent",o,e),n.setParent(o,e)):(i.log$1.info("In copy ",e,"root",r,"data",t.node(e),r),i.log$1.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==r,"node!==clusterId",o!==e));const g=t.edges(o);i.log$1.debug("Copying Edges",g),g.forEach(d=>{i.log$1.info("Edge",d);const h=t.edge(d.v,d.w,d.name);i.log$1.info("Edge data",h,r);try{_(d,r)?(i.log$1.info("Copying as ",d.v,d.w,h,d.name),n.setEdge(d.v,d.w,h,d.name),i.log$1.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.log$1.info("Skipping copy of edge ",d.v,"-->",d.w," rootId: ",r," clusterId:",e)}catch($){i.log$1.error($)}})}i.log$1.debug("Removing node",o),t.removeNode(o)})},D=(e,t)=>{const n=t.children(e);let r=[...n];for(const s of n)p[s]=e,r=[...r,...D(s,t)];return r},C=(e,t)=>{i.log$1.trace("Searching",e);const n=t.children(e);if(i.log$1.trace("Searching children of id ",e,n),n.length<1)return i.log$1.trace("This is a valid node",e),e;for(const r of n){const s=C(r,t);if(s)return i.log$1.trace("Found replacement for",e," => ",s),s}},S=e=>!a[e]||!a[e].externalConnections?e:a[e]?a[e].id:e,U=(e,t)=>{if(!e||t>10){i.log$1.debug("Opting out, no graph ");return}else i.log$1.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.log$1.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),w[n]=D(n,e),a[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),s=e.edges();r.length>0?(i.log$1.debug("Cluster identified",n,w),s.forEach(o=>{if(o.v!==n&&o.w!==n){const f=X(o.v,n),g=X(o.w,n);f^g&&(i.log$1.warn("Edge: ",o," leaves cluster ",n),i.log$1.warn("Descendants of XXX ",n,": ",w[n]),a[n].externalConnections=!0)}})):i.log$1.debug("Not a cluster ",n,w)});for(let n of Object.keys(a)){const r=a[n].id,s=e.parent(r);s!==n&&a[s]&&!a[s].externalConnections&&(a[n].id=s)}e.edges().forEach(function(n){const r=e.edge(n);i.log$1.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.log$1.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let s=n.v,o=n.w;if(i.log$1.warn("Fix XXX",a,"ids:",n.v,n.w,"Translating: ",a[n.v]," --- ",a[n.w]),a[n.v]&&a[n.w]&&a[n.v]===a[n.w]){i.log$1.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),i.log$1.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name);const f=n.w+"---"+n.v;e.setNode(f,{domId:f,id:f,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const g=structuredClone(r),d=structuredClone(r);g.label="",g.arrowTypeEnd="none",d.label="",g.fromCluster=n.v,d.toCluster=n.v,e.setEdge(s,f,g,n.name+"-cyclic-special"),e.setEdge(f,o,d,n.name+"-cyclic-special")}else if(a[n.v]||a[n.w]){if(i.log$1.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),s=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name),s!==n.v){const f=e.parent(s);a[f].externalConnections=!0,r.fromCluster=n.v}if(o!==n.w){const f=e.parent(o);a[f].externalConnections=!0,r.toCluster=n.w}i.log$1.warn("Fix Replacing with XXX",s,o,n.name),e.setEdge(s,o,r,n.name)}}),i.log$1.warn("Adjusted Graph",x(e)),T(e,0),i.log$1.trace(a)},T=(e,t)=>{if(i.log$1.warn("extractor - ",t,x(e),e.children("D")),t>10){i.log$1.error("Bailing out");return}let n=e.nodes(),r=!1;for(const s of n){const o=e.children(s);r=r||o.length>0}if(!r){i.log$1.debug("Done, no node has children",e.nodes());return}i.log$1.debug("Nodes = ",n,t);for(const s of n)if(i.log$1.debug("Extracting node",s,a,a[s]&&!a[s].externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",t),!a[s])i.log$1.debug("Not a cluster",s,t);else if(!a[s].externalConnections&&e.children(s)&&e.children(s).length>0){i.log$1.warn("Cluster without external connections, without a parent and with children",s,t);let f=e.graph().rankdir==="TB"?"LR":"TB";a[s]&&a[s].clusterData&&a[s].clusterData.dir&&(f=a[s].clusterData.dir,i.log$1.warn("Fixing dir",a[s].clusterData.dir,f));const g=new k.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:f,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.log$1.warn("Old graph before copy",x(e)),B(s,e,g,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:a[s].clusterData,labelText:a[s].labelText,graph:g}),i.log$1.warn("New graph after copy node: (",s,")",x(g)),i.log$1.debug("Old graph after copy",x(e))}else i.log$1.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!a[s].externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),t),i.log$1.debug(a);n=e.nodes(),i.log$1.warn("New list of nodes",n);for(const s of n){const o=e.node(s);i.log$1.warn(" Now next level",s,o),o.clusterNode&&T(o.graph,t+1)}},O=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const s=e.children(r),o=O(e,s);n=[...n,...o]}),n},A=e=>O(e,e.children()),H=(e,t)=>{i.log$1.info("Creating subgraph rect for ",t.id,t);const n=i.getConfig(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),s=r.insert("rect",":first-child"),o=i.evaluate(n.flowchart.htmlLabels),f=r.insert("g").attr("class","cluster-label"),g=t.labelType==="markdown"?j.createText(f,t.labelText,{style:t.labelStyle,useHtmlLabels:o}):f.node().appendChild(u.createLabel$1(t.labelText,t.labelStyle,void 0,!0));let d=g.getBBox();if(i.evaluate(n.flowchart.htmlLabels)){const l=g.children[0],c=i.select(g);d=l.getBoundingClientRect(),c.attr("width",d.width),c.attr("height",d.height)}const h=0*t.padding,$=h/2,b=t.width<=d.width+h?d.width+h:t.width;t.width<=d.width+h?t.diff=(d.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,i.log$1.trace("Data ",t,JSON.stringify(t)),s.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-b/2).attr("y",t.y-t.height/2-$).attr("width",b).attr("height",t.height+h);const{subGraphTitleTopMargin:N}=u.getSubGraphTitleMargins(n);o?f.attr("transform",`translate(${t.x-d.width/2}, ${t.y-t.height/2+N})`):f.attr("transform",`translate(${t.x}, ${t.y-t.height/2+N})`);const y=s.node().getBBox();return t.width=y.width,t.height=y.height,t.intersect=function(l){return u.intersectRect$1(t,l)},r},V=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,o=s/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2-o).attr("width",t.width+s).attr("height",t.height+s).attr("fill","none");const f=r.node().getBBox();return t.width=f.width,t.height=f.height,t.intersect=function(g){return u.intersectRect$1(t,g)},n},z=(e,t)=>{const n=i.getConfig(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),s=r.insert("rect",":first-child"),o=r.insert("g").attr("class","cluster-label"),f=r.append("rect"),g=o.node().appendChild(u.createLabel$1(t.labelText,t.labelStyle,void 0,!0));let d=g.getBBox();if(i.evaluate(n.flowchart.htmlLabels)){const l=g.children[0],c=i.select(g);d=l.getBoundingClientRect(),c.attr("width",d.width),c.attr("height",d.height)}d=g.getBBox();const h=0*t.padding,$=h/2,b=t.width<=d.width+t.padding?d.width+t.padding:t.width;t.width<=d.width+t.padding?t.diff=(d.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,s.attr("class","outer").attr("x",t.x-b/2-$).attr("y",t.y-t.height/2-$).attr("width",b+h).attr("height",t.height+h),f.attr("class","inner").attr("x",t.x-b/2-$).attr("y",t.y-t.height/2-$+d.height-1).attr("width",b+h).attr("height",t.height+h-d.height-3);const{subGraphTitleTopMargin:N}=u.getSubGraphTitleMargins(n);o.attr("transform",`translate(${t.x-d.width/2}, ${t.y-t.height/2-t.padding/3+(i.evaluate(n.flowchart.htmlLabels)?5:3)+N})`);const y=s.node().getBBox();return t.height=y.height,t.intersect=function(l){return u.intersectRect$1(t,l)},r},W=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),s=0*t.padding,o=s/2;r.attr("class","divider").attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2).attr("width",t.width+s).attr("height",t.height+s);const f=r.node().getBBox();return t.width=f.width,t.height=f.height,t.diff=-t.padding/2,t.intersect=function(g){return u.intersectRect$1(t,g)},n},K={rect:H,roundedWithTitle:z,noteGroup:V,divider:W};let R={};const Q=(e,t)=>{i.log$1.trace("Inserting cluster");const n=t.shape||"rect";R[t.id]=K[n](e,t)},Y=()=>{R={}},L=async(e,t,n,r,s,o)=>{i.log$1.info("Graph in recursive render: XXX",x(t),s);const f=t.graph().rankdir;i.log$1.trace("Dir in recursive render - dir:",f);const g=e.insert("g").attr("class","root");t.nodes()?i.log$1.info("Recursive render XXX",t.nodes()):i.log$1.info("No nodes found for",t),t.edges().length>0&&i.log$1.trace("Recursive edges",t.edge(t.edges()[0]));const d=g.insert("g").attr("class","clusters"),h=g.insert("g").attr("class","edgePaths"),$=g.insert("g").attr("class","edgeLabels"),b=g.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(l){const c=t.node(l);if(s!==void 0){const v=JSON.parse(JSON.stringify(s.clusterData));i.log$1.info("Setting data for cluster XXX (",l,") ",v,s),t.setNode(s.id,v),t.parent(l)||(i.log$1.trace("Setting parent",l,s.id),t.setParent(l,s.id,v))}if(i.log$1.info("(Insert) Node XXX"+l+": "+JSON.stringify(t.node(l))),c&&c.clusterNode){i.log$1.info("Cluster identified",l,c.width,t.node(l));const v=await L(b,c.graph,n,r,t.node(l),o),E=v.elem;u.updateNodeBounds(c,E),c.diff=v.diff||0,i.log$1.info("Node bounds (abc123)",l,c,c.width,c.x,c.y),u.setNodeElem(E,c),i.log$1.warn("Recursive render complete ",E,c)}else t.children(l).length>0?(i.log$1.info("Cluster - the non recursive path XXX",l,c.id,c,t),i.log$1.info(C(c.id,t)),a[c.id]={id:C(c.id,t),node:c}):(i.log$1.info("Node - the non recursive path",l,c.id,c),await u.insertNode(b,t.node(l),f))})),t.edges().forEach(function(l){const c=t.edge(l.v,l.w,l.name);i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(l)),i.log$1.info("Edge "+l.v+" -> "+l.w+": ",l," ",JSON.stringify(t.edge(l))),i.log$1.info("Fix",a,"ids:",l.v,l.w,"Translating: ",a[l.v],a[l.w]),u.insertEdgeLabel($,c)}),t.edges().forEach(function(l){i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(l))}),i.log$1.info("#############################################"),i.log$1.info("### Layout ###"),i.log$1.info("#############################################"),i.log$1.info(t),J.layout(t),i.log$1.info("Graph after layout:",x(t));let N=0;const{subGraphTitleTotalMargin:y}=u.getSubGraphTitleMargins(o);return A(t).forEach(function(l){const c=t.node(l);i.log$1.info("Position "+l+": "+JSON.stringify(t.node(l))),i.log$1.info("Position "+l+": ("+c.x,","+c.y,") width: ",c.width," height: ",c.height),c&&c.clusterNode?(c.y+=y,u.positionNode(c)):t.children(l).length>0?(c.height+=y,Q(d,c),a[c.id].node=c):(c.y+=y/2,u.positionNode(c))}),t.edges().forEach(function(l){const c=t.edge(l);i.log$1.info("Edge "+l.v+" -> "+l.w+": "+JSON.stringify(c),c),c.points.forEach(E=>E.y+=y/2);const v=u.insertEdge(h,l,c,a,n,t,r);u.positionEdgeLabel(c,v)}),t.nodes().forEach(function(l){const c=t.node(l);i.log$1.info(l,c.type,c.diff),c.type==="group"&&(N=c.diff)}),{elem:g,diff:N}},Z=async(e,t,n,r,s)=>{u.insertMarkers$1(e,n,r,s),u.clear$1(),u.clear(),Y(),q(),i.log$1.warn("Graph at first:",JSON.stringify(x(t))),U(t),i.log$1.warn("Graph after:",JSON.stringify(x(t)));const o=i.getConfig();await L(e,t,r,s,void 0,o)};exports.render=Z;
|