webapp.blockDiagram-9f4a6865.49a29f31.js.map Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of langgraph4j-studio-jetty Show documentation
Show all versions of langgraph4j-studio-jetty Show documentation
an **embed playground webapp** to run a Langgraph4j workflow in visual way
The newest version!
{"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,A,W,iB,C,E,E,Q,C,E,Q,S,C,C,C,E,E,E,O,C,U,I,G,ICAI,EAAI,E,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,S,E,S,E,S,E,SAiBR,IAAI,EAAS,WACX,IAAI,EAAI,SAAS,CAAC,CAAE,CAAC,CAAE,CAAE,CAAE,CAAC,EAC1B,IAAK,EAAK,GAAM,CAAC,EAAG,EAAI,EAAE,MAAM,CAAE,IAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAG,GAElD,OAAO,CACT,EAAG,EAAM,CAAC,EAAG,EAAE,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CAAE,EAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,CAAE,EAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,CAAE,EAAM,CAAC,EAAG,GAAG,CACjV,EAAU,CACZ,MAAO,WACP,EACA,GAAI,CAAC,EACL,SAAU,CAAE,MAAS,EAAG,WAAc,EAAG,UAAa,EAAG,GAAM,EAAG,UAAa,EAAG,MAAS,EAAG,IAAO,EAAG,MAAS,EAAG,kBAAqB,GAAI,SAAY,GAAI,KAAQ,GAAI,UAAa,GAAI,KAAQ,GAAI,KAAQ,GAAI,WAAc,GAAI,WAAc,GAAI,IAAO,GAAI,cAAiB,GAAI,iBAAoB,GAAI,YAAe,GAAI,eAAkB,GAAI,kBAAqB,GAAI,kBAAqB,GAAI,eAAkB,GAAI,KAAQ,GAAI,KAAQ,GAAI,QAAW,GAAI,WAAY,GAAI,IAAO,GAAI,MAAS,GAAI,QAAW,GAAI,gBAAmB,GAAI,QAAW,GAAI,IAAO,GAAI,YAAe,GAAI,UAAa,GAAI,kBAAqB,GAAI,gBAAmB,GAAI,SAAY,GAAI,YAAe,GAAI,mBAAsB,GAAI,QAAW,GAAI,MAAS,GAAI,gBAAmB,GAAI,WAAc,GAAI,MAAS,GAAI,iBAAoB,GAAI,sBAAyB,GAAI,QAAW,EAAG,KAAQ,CAAE,EAC91B,WAAY,CAAE,EAAG,QAAS,EAAG,YAAa,EAAG,KAAM,EAAG,QAAS,EAAG,MAAO,GAAI,oBAAqB,GAAI,OAAQ,GAAI,aAAc,GAAI,aAAc,GAAI,MAAO,GAAI,cAAe,GAAI,OAAQ,GAAI,UAAW,GAAI,WAAY,GAAI,MAAO,GAAI,QAAS,GAAI,UAAW,GAAI,MAAO,GAAI,cAAe,GAAI,YAAa,GAAI,oBAAqB,GAAI,kBAAmB,GAAI,WAAY,GAAI,cAAe,GAAI,qBAAsB,GAAI,UAAW,GAAI,QAAS,GAAI,kBAAmB,GAAI,aAAc,GAAI,QAAS,GAAI,mBAAoB,GAAI,uBAAwB,EACpiB,aAAc,CAAC,EAAG,CAAC,EAAG,EAAE,CAAE,CAAC,EAAG,EAAE,CAAE,CAAC,EAAG,EAAE,CAAE,CAAC,EAAG,EAAE,CAAE,CAAC,EAAG,EAAE,CAAE,CAAC,EAAG,EAAE,CAAE,CAAC,EAAG,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAE,CAAC,GAAI,EAAE,CAAC,CAChW,cAAe,SAAmB,CAAM,CAAE,CAAM,CAAE,CAAQ,CAAE,CAAE,CAAE,CAAO,CAAE,CAAE,CAAE,CAAE,EAC7E,IAAI,EAAK,EAAG,MAAM,CAAG,EACrB,OAAQ,GACN,KAAK,EACH,EAAG,SAAS,GAAG,KAAK,CAAC,yBACrB,KACF,MAAK,EACH,EAAG,SAAS,GAAG,KAAK,CAAC,4BACrB,KACF,MAAK,EACH,EAAG,SAAS,GAAG,KAAK,CAAC,0BACrB,KACF,MAAK,EACH,EAAG,SAAS,GAAG,KAAK,CAAC,oBAAqB,CAAE,CAAC,EAAK,EAAE,EACpD,EAAG,YAAY,CAAC,CAAE,CAAC,EAAK,EAAE,EAC1B,KACF,MAAK,EACH,EAAG,SAAS,GAAG,KAAK,CAAC,YACrB,KACF,MAAK,EACH,EAAG,SAAS,GAAG,KAAK,CAAC,aACrB,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,aACrB,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,cACrB,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,oBAAqB,CAAE,CAAC,EAAG,EAChD,AAAyB,UAAzB,OAAO,CAAE,CAAC,EAAG,CAAC,MAAM,CAAgB,IAAI,CAAC,CAAC,CAAG,CAAE,CAAC,EAAG,CAAG,IAAI,CAAC,CAAC,CAAG,CAAC,CAAE,CAAC,EAAG,CAAC,CACvE,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,uBAAwB,CAAE,CAAC,EAAK,EAAE,EACvD,IAAI,CAAC,CAAC,CAAG,CAAC,CAAE,CAAC,EAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,EAAG,EACnC,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,eAAgB,CAAE,CAAC,EAAG,CAAE,GAC7C,IAAI,CAAC,CAAC,CAAG,CAAE,YAAa,CAAE,CAAC,EAAG,CAAE,MAAO,EAAG,EAC1C,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,qBAAsB,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAG,EACzE,IAAI,CAAC,CAAC,CAAG,CAAE,YAAa,CAAE,CAAC,EAAG,CAAE,MAAO,CAAE,CAAC,EAAK,EAAE,AAAC,EAClD,KACF,MAAK,GACH,IAAM,EAAM,SAAS,CAAE,CAAC,EAAG,EACrB,EAAU,EAAG,UAAU,EAC7B,CAAA,IAAI,CAAC,CAAC,CAAG,CAAE,GAAI,EAAS,KAAM,QAAS,MAAO,GAAI,MAAO,EAAK,SAAU,EAAE,AAAC,EAC3E,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,mCAAoC,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAG,CAAE,aAAc,CAAE,CAAC,EAAK,EAAE,CAAC,WAAW,EAC7H,IAAM,EAAW,EAAG,iBAAiB,CAAC,CAAE,CAAC,EAAK,EAAE,CAAC,WAAW,CAC5D,CAAA,IAAI,CAAC,CAAC,CAAG,CACP,CAAE,GAAI,CAAE,CAAC,EAAK,EAAE,CAAC,EAAE,CAAE,MAAO,CAAE,CAAC,EAAK,EAAE,CAAC,KAAK,CAAE,KAAM,CAAE,CAAC,EAAK,EAAE,CAAC,IAAI,CAAE,WAAY,CAAE,CAAC,EAAK,EAAE,CAAC,UAAU,AAAC,EACvG,CAAE,GAAI,CAAE,CAAC,EAAK,EAAE,CAAC,EAAE,CAAG,IAAM,CAAE,CAAC,EAAG,CAAC,EAAE,CAAE,MAAO,CAAE,CAAC,EAAK,EAAE,CAAC,EAAE,CAAE,IAAK,CAAE,CAAC,EAAG,CAAC,EAAE,CAAE,MAAO,CAAE,CAAC,EAAK,EAAE,CAAC,KAAK,CAAE,KAAM,OAAQ,WAAY,CAAE,CAAC,EAAG,CAAC,UAAU,CAAE,aAAc,EAAU,eAAgB,YAAa,EACxM,CAAE,GAAI,CAAE,CAAC,EAAG,CAAC,EAAE,CAAE,MAAO,CAAE,CAAC,EAAG,CAAC,KAAK,CAAE,KAAM,EAAG,YAAY,CAAC,CAAE,CAAC,EAAG,CAAC,OAAO,EAAG,WAAY,CAAE,CAAC,EAAG,CAAC,UAAU,AAAC,EAC5G,CACD,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,yCAA0C,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAG,EACjF,IAAI,CAAC,CAAC,CAAG,CAAE,GAAI,CAAE,CAAC,EAAK,EAAE,CAAC,EAAE,CAAE,MAAO,CAAE,CAAC,EAAK,EAAE,CAAC,KAAK,CAAE,KAAM,EAAG,YAAY,CAAC,CAAE,CAAC,EAAK,EAAE,CAAC,OAAO,EAAG,WAAY,CAAE,CAAC,EAAK,EAAE,CAAC,UAAU,CAAE,eAAgB,SAAS,CAAE,CAAC,EAAG,CAAE,GAAI,EAC1K,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,8BAA+B,CAAE,CAAC,EAAG,EAC1D,IAAI,CAAC,CAAC,CAAG,CAAE,GAAI,CAAE,CAAC,EAAG,CAAC,EAAE,CAAE,MAAO,CAAE,CAAC,EAAG,CAAC,KAAK,CAAE,KAAM,EAAG,YAAY,CAAC,CAAE,CAAC,EAAG,CAAC,OAAO,EAAG,WAAY,CAAE,CAAC,EAAG,CAAC,UAAU,CAAE,eAAgB,CAAE,EACvI,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,SAAU,IAAI,CAAG,IAAI,CAAG,MAC7C,EAAG,SAAS,GAAG,KAAK,CAAC,YAAa,CAAE,CAAC,EAAG,EACxC,IAAI,CAAC,CAAC,CAAG,CAAE,KAAM,iBAAkB,QAAS,AAAW,SAAX,CAAE,CAAC,EAAG,CAAc,GAAK,SAAS,CAAE,CAAC,EAAG,CAAE,EACtF,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,8BAA+B,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAK,EAAE,EAC1E,EAAG,UAAU,GACb,IAAI,CAAC,CAAC,CAAG,CAAE,GAAG,CAAE,CAAC,EAAK,EAAE,CAAE,KAAM,YAAa,SAAU,CAAE,CAAC,EAAK,EAAE,AAAC,EAClE,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,0BAA2B,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAG,EAC9E,IAAM,EAAK,EAAG,UAAU,EACxB,CAAA,IAAI,CAAC,CAAC,CAAG,CAAE,GAAA,EAAI,KAAM,YAAa,MAAO,GAAI,SAAU,CAAE,CAAC,EAAK,EAAE,AAAC,EAClE,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,mCAAoC,CAAE,CAAC,EAAG,EAC/D,IAAI,CAAC,CAAC,CAAG,CAAE,GAAI,CAAE,CAAC,EAAG,AAAC,EACtB,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,mDAAoD,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAG,EAC3F,IAAI,CAAC,CAAC,CAAG,CAAE,GAAI,CAAE,CAAC,EAAK,EAAE,CAAE,MAAO,CAAE,CAAC,EAAG,CAAC,KAAK,CAAE,QAAS,CAAE,CAAC,EAAG,CAAC,OAAO,CAAE,WAAY,CAAE,CAAC,EAAG,CAAC,UAAU,AAAC,EACvG,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,kBAAmB,CAAE,CAAC,EAAG,EAC9C,IAAI,CAAC,CAAC,CAAG,CAAC,CAAE,CAAC,EAAG,CAAC,CACjB,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,kBAAmB,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAG,EAC1D,IAAI,CAAC,CAAC,CAAG,CAAC,CAAE,CAAC,EAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,EAAG,EACnC,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,0BAA2B,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAG,EAC9E,IAAI,CAAC,CAAC,CAAG,CAAE,QAAS,CAAE,CAAC,EAAK,EAAE,CAAG,CAAE,CAAC,EAAG,CAAE,MAAO,CAAE,CAAC,EAAK,EAAE,AAAC,EAC3D,KACF,MAAK,GACH,EAAG,SAAS,GAAG,KAAK,CAAC,sCAAuC,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAK,EAAE,CAAE,OAAQ,CAAE,CAAC,EAAK,EAAE,CAAE,CAAE,CAAC,EAAG,EAC9G,IAAI,CAAC,CAAC,CAAG,CAAE,QAAS,CAAE,CAAC,EAAK,EAAE,CAAG,CAAE,CAAC,EAAG,CAAE,MAAO,CAAE,CAAC,EAAK,EAAE,CAAE,WAAY,CAAE,CAAC,EAAK,EAAE,AAAC,EACnF,KACF,MAAK,GACL,KAAK,GACH,IAAI,CAAC,CAAC,CAAG,CAAE,KAAM,WAAY,GAAI,CAAE,CAAC,EAAK,EAAE,CAAC,IAAI,GAAI,IAAK,CAAE,CAAC,EAAG,CAAC,IAAI,EAAG,EACvE,KACF,MAAK,GACH,IAAI,CAAC,CAAC,CAAG,CAAE,KAAM,aAAc,GAAI,CAAE,CAAC,EAAK,EAAE,CAAC,IAAI,GAAI,WAAY,CAAE,CAAC,EAAG,CAAC,IAAI,EAAG,EAChF,KACF,MAAK,GACH,IAAI,CAAC,CAAC,CAAG,CAAE,KAAM,cAAe,GAAI,CAAE,CAAC,EAAK,EAAE,CAAC,IAAI,GAAI,UAAW,CAAE,CAAC,EAAG,CAAC,IAAI,EAAG,CAEpF,CACF,EACA,MAAO,CAAC,CAAE,EAAG,EAAG,GAAI,CAAC,EAAG,EAAE,AAAC,EAAG,CAAE,EAAG,CAAC,EAAE,AAAC,EAAG,CAAE,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAK,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,EAAG,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,EAAK,GAAI,CAAI,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,GAAI,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,CAAI,EAAG,CAAE,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAK,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,CAAE,CAAE,GAAI,GAAI,GAAI,CAAC,EAAG,GAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,GAAI,CAAE,EAAG,CAAC,EAAG,EAAE,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,GAAI,GAAI,GAAI,CAAI,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,EAAE,EAAK,CAAC,EAAG,GAAG,EAAG,CAAE,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAG,GAAI,EAAG,GAAI,EAAK,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,CAAI,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,AAAC,EAAG,CAAE,GAA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","sources":["","node_modules/mermaid/dist/blockDiagram-9f4a6865.js","node_modules/lodash-es/clone.js","node_modules/khroma/dist/methods/channel.js"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n var parcelRequire = $parcel$global[\"parcelRequire0031\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"8q4j7\", function(module, exports) {\n\n$parcel$export(module.exports, \"diagram\", () => $621417c51b042472$export$6118d022d940d562);\n\nvar $4jcZX = parcelRequire(\"4jcZX\");\n\nvar $hNIl0 = parcelRequire(\"hNIl0\");\n\nvar $jDsny = parcelRequire(\"jDsny\");\nvar $b1Vti = parcelRequire(\"b1Vti\");\n\nvar $hl1Sc = parcelRequire(\"hl1Sc\");\n\nvar $4LkSm = parcelRequire(\"4LkSm\");\n\nvar $2YFJl = parcelRequire(\"2YFJl\");\nparcelRequire(\"eJNXH\");\nparcelRequire(\"gngdn\");\nparcelRequire(\"2ujND\");\nparcelRequire(\"i8Fxz\");\n\n\n\n\n\n\nvar $621417c51b042472$var$_a, $621417c51b042472$var$_b;\nvar $621417c51b042472$var$parser = function() {\n var o = function(k, v, o2, l) {\n for(o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v);\n return o2;\n }, $V0 = [\n 1,\n 7\n ], $V1 = [\n 1,\n 13\n ], $V2 = [\n 1,\n 14\n ], $V3 = [\n 1,\n 15\n ], $V4 = [\n 1,\n 19\n ], $V5 = [\n 1,\n 16\n ], $V6 = [\n 1,\n 17\n ], $V7 = [\n 1,\n 18\n ], $V8 = [\n 8,\n 30\n ], $V9 = [\n 8,\n 21,\n 28,\n 29,\n 30,\n 31,\n 32,\n 40,\n 44,\n 47\n ], $Va = [\n 1,\n 23\n ], $Vb = [\n 1,\n 24\n ], $Vc = [\n 8,\n 15,\n 16,\n 21,\n 28,\n 29,\n 30,\n 31,\n 32,\n 40,\n 44,\n 47\n ], $Vd = [\n 8,\n 15,\n 16,\n 21,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 40,\n 44,\n 47\n ], $Ve = [\n 1,\n 49\n ];\n var parser2 = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"spaceLines\": 3,\n \"SPACELINE\": 4,\n \"NL\": 5,\n \"separator\": 6,\n \"SPACE\": 7,\n \"EOF\": 8,\n \"start\": 9,\n \"BLOCK_DIAGRAM_KEY\": 10,\n \"document\": 11,\n \"stop\": 12,\n \"statement\": 13,\n \"link\": 14,\n \"LINK\": 15,\n \"START_LINK\": 16,\n \"LINK_LABEL\": 17,\n \"STR\": 18,\n \"nodeStatement\": 19,\n \"columnsStatement\": 20,\n \"SPACE_BLOCK\": 21,\n \"blockStatement\": 22,\n \"classDefStatement\": 23,\n \"cssClassStatement\": 24,\n \"styleStatement\": 25,\n \"node\": 26,\n \"SIZE\": 27,\n \"COLUMNS\": 28,\n \"id-block\": 29,\n \"end\": 30,\n \"block\": 31,\n \"NODE_ID\": 32,\n \"nodeShapeNLabel\": 33,\n \"dirList\": 34,\n \"DIR\": 35,\n \"NODE_DSTART\": 36,\n \"NODE_DEND\": 37,\n \"BLOCK_ARROW_START\": 38,\n \"BLOCK_ARROW_END\": 39,\n \"classDef\": 40,\n \"CLASSDEF_ID\": 41,\n \"CLASSDEF_STYLEOPTS\": 42,\n \"DEFAULT\": 43,\n \"class\": 44,\n \"CLASSENTITY_IDS\": 45,\n \"STYLECLASS\": 46,\n \"style\": 47,\n \"STYLE_ENTITY_IDS\": 48,\n \"STYLE_DEFINITION_DATA\": 49,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 2: \"error\",\n 4: \"SPACELINE\",\n 5: \"NL\",\n 7: \"SPACE\",\n 8: \"EOF\",\n 10: \"BLOCK_DIAGRAM_KEY\",\n 15: \"LINK\",\n 16: \"START_LINK\",\n 17: \"LINK_LABEL\",\n 18: \"STR\",\n 21: \"SPACE_BLOCK\",\n 27: \"SIZE\",\n 28: \"COLUMNS\",\n 29: \"id-block\",\n 30: \"end\",\n 31: \"block\",\n 32: \"NODE_ID\",\n 35: \"DIR\",\n 36: \"NODE_DSTART\",\n 37: \"NODE_DEND\",\n 38: \"BLOCK_ARROW_START\",\n 39: \"BLOCK_ARROW_END\",\n 40: \"classDef\",\n 41: \"CLASSDEF_ID\",\n 42: \"CLASSDEF_STYLEOPTS\",\n 43: \"DEFAULT\",\n 44: \"class\",\n 45: \"CLASSENTITY_IDS\",\n 46: \"STYLECLASS\",\n 47: \"style\",\n 48: \"STYLE_ENTITY_IDS\",\n 49: \"STYLE_DEFINITION_DATA\"\n },\n productions_: [\n 0,\n [\n 3,\n 1\n ],\n [\n 3,\n 2\n ],\n [\n 3,\n 2\n ],\n [\n 6,\n 1\n ],\n [\n 6,\n 1\n ],\n [\n 6,\n 1\n ],\n [\n 9,\n 3\n ],\n [\n 12,\n 1\n ],\n [\n 12,\n 1\n ],\n [\n 12,\n 2\n ],\n [\n 12,\n 2\n ],\n [\n 11,\n 1\n ],\n [\n 11,\n 2\n ],\n [\n 14,\n 1\n ],\n [\n 14,\n 4\n ],\n [\n 13,\n 1\n ],\n [\n 13,\n 1\n ],\n [\n 13,\n 1\n ],\n [\n 13,\n 1\n ],\n [\n 13,\n 1\n ],\n [\n 13,\n 1\n ],\n [\n 13,\n 1\n ],\n [\n 19,\n 3\n ],\n [\n 19,\n 2\n ],\n [\n 19,\n 1\n ],\n [\n 20,\n 1\n ],\n [\n 22,\n 4\n ],\n [\n 22,\n 3\n ],\n [\n 26,\n 1\n ],\n [\n 26,\n 2\n ],\n [\n 34,\n 1\n ],\n [\n 34,\n 2\n ],\n [\n 33,\n 3\n ],\n [\n 33,\n 4\n ],\n [\n 23,\n 3\n ],\n [\n 23,\n 3\n ],\n [\n 24,\n 3\n ],\n [\n 25,\n 3\n ]\n ],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch(yystate){\n case 4:\n yy.getLogger().debug(\"Rule: separator (NL) \");\n break;\n case 5:\n yy.getLogger().debug(\"Rule: separator (Space) \");\n break;\n case 6:\n yy.getLogger().debug(\"Rule: separator (EOF) \");\n break;\n case 7:\n yy.getLogger().debug(\"Rule: hierarchy: \", $$[$0 - 1]);\n yy.setHierarchy($$[$0 - 1]);\n break;\n case 8:\n yy.getLogger().debug(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().debug(\"Stop EOF \");\n break;\n case 10:\n yy.getLogger().debug(\"Stop NL2 \");\n break;\n case 11:\n yy.getLogger().debug(\"Stop EOF2 \");\n break;\n case 12:\n yy.getLogger().debug(\"Rule: statement: \", $$[$0]);\n typeof $$[$0].length === \"number\" ? this.$ = $$[$0] : this.$ = [\n $$[$0]\n ];\n break;\n case 13:\n yy.getLogger().debug(\"Rule: statement #2: \", $$[$0 - 1]);\n this.$ = [\n $$[$0 - 1]\n ].concat($$[$0]);\n break;\n case 14:\n yy.getLogger().debug(\"Rule: link: \", $$[$0], yytext);\n this.$ = {\n edgeTypeStr: $$[$0],\n label: \"\"\n };\n break;\n case 15:\n yy.getLogger().debug(\"Rule: LABEL link: \", $$[$0 - 3], $$[$0 - 1], $$[$0]);\n this.$ = {\n edgeTypeStr: $$[$0],\n label: $$[$0 - 1]\n };\n break;\n case 18:\n const num = parseInt($$[$0]);\n const spaceId = yy.generateId();\n this.$ = {\n id: spaceId,\n type: \"space\",\n label: \"\",\n width: num,\n children: []\n };\n break;\n case 23:\n yy.getLogger().debug(\"Rule: (nodeStatement link node) \", $$[$0 - 2], $$[$0 - 1], $$[$0], \" typestr: \", $$[$0 - 1].edgeTypeStr);\n const edgeData = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr);\n this.$ = [\n {\n id: $$[$0 - 2].id,\n label: $$[$0 - 2].label,\n type: $$[$0 - 2].type,\n directions: $$[$0 - 2].directions\n },\n {\n id: $$[$0 - 2].id + \"-\" + $$[$0].id,\n start: $$[$0 - 2].id,\n end: $$[$0].id,\n label: $$[$0 - 1].label,\n type: \"edge\",\n directions: $$[$0].directions,\n arrowTypeEnd: edgeData,\n arrowTypeStart: \"arrow_open\"\n },\n {\n id: $$[$0].id,\n label: $$[$0].label,\n type: yy.typeStr2Type($$[$0].typeStr),\n directions: $$[$0].directions\n }\n ];\n break;\n case 24:\n yy.getLogger().debug(\"Rule: nodeStatement (abc88 node size) \", $$[$0 - 1], $$[$0]);\n this.$ = {\n id: $$[$0 - 1].id,\n label: $$[$0 - 1].label,\n type: yy.typeStr2Type($$[$0 - 1].typeStr),\n directions: $$[$0 - 1].directions,\n widthInColumns: parseInt($$[$0], 10)\n };\n break;\n case 25:\n yy.getLogger().debug(\"Rule: nodeStatement (node) \", $$[$0]);\n this.$ = {\n id: $$[$0].id,\n label: $$[$0].label,\n type: yy.typeStr2Type($$[$0].typeStr),\n directions: $$[$0].directions,\n widthInColumns: 1\n };\n break;\n case 26:\n yy.getLogger().debug(\"APA123\", this ? this : \"na\");\n yy.getLogger().debug(\"COLUMNS: \", $$[$0]);\n this.$ = {\n type: \"column-setting\",\n columns: $$[$0] === \"auto\" ? -1 : parseInt($$[$0])\n };\n break;\n case 27:\n yy.getLogger().debug(\"Rule: id-block statement : \", $$[$0 - 2], $$[$0 - 1]);\n yy.generateId();\n this.$ = {\n ...$$[$0 - 2],\n type: \"composite\",\n children: $$[$0 - 1]\n };\n break;\n case 28:\n yy.getLogger().debug(\"Rule: blockStatement : \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n const id = yy.generateId();\n this.$ = {\n id: id,\n type: \"composite\",\n label: \"\",\n children: $$[$0 - 1]\n };\n break;\n case 29:\n yy.getLogger().debug(\"Rule: node (NODE_ID separator): \", $$[$0]);\n this.$ = {\n id: $$[$0]\n };\n break;\n case 30:\n yy.getLogger().debug(\"Rule: node (NODE_ID nodeShapeNLabel separator): \", $$[$0 - 1], $$[$0]);\n this.$ = {\n id: $$[$0 - 1],\n label: $$[$0].label,\n typeStr: $$[$0].typeStr,\n directions: $$[$0].directions\n };\n break;\n case 31:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0]);\n this.$ = [\n $$[$0]\n ];\n break;\n case 32:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0 - 1], $$[$0]);\n this.$ = [\n $$[$0 - 1]\n ].concat($$[$0]);\n break;\n case 33:\n yy.getLogger().debug(\"Rule: nodeShapeNLabel: \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n this.$ = {\n typeStr: $$[$0 - 2] + $$[$0],\n label: $$[$0 - 1]\n };\n break;\n case 34:\n yy.getLogger().debug(\"Rule: BLOCK_ARROW nodeShapeNLabel: \", $$[$0 - 3], $$[$0 - 2], \" #3:\", $$[$0 - 1], $$[$0]);\n this.$ = {\n typeStr: $$[$0 - 3] + $$[$0],\n label: $$[$0 - 2],\n directions: $$[$0 - 1]\n };\n break;\n case 35:\n case 36:\n this.$ = {\n type: \"classDef\",\n id: $$[$0 - 1].trim(),\n css: $$[$0].trim()\n };\n break;\n case 37:\n this.$ = {\n type: \"applyClass\",\n id: $$[$0 - 1].trim(),\n styleClass: $$[$0].trim()\n };\n break;\n case 38:\n this.$ = {\n type: \"applyStyles\",\n id: $$[$0 - 1].trim(),\n stylesStr: $$[$0].trim()\n };\n break;\n }\n },\n table: [\n {\n 9: 1,\n 10: [\n 1,\n 2\n ]\n },\n {\n 1: [\n 3\n ]\n },\n {\n 11: 3,\n 13: 4,\n 19: 5,\n 20: 6,\n 21: $V0,\n 22: 8,\n 23: 9,\n 24: 10,\n 25: 11,\n 26: 12,\n 28: $V1,\n 29: $V2,\n 31: $V3,\n 32: $V4,\n 40: $V5,\n 44: $V6,\n 47: $V7\n },\n {\n 8: [\n 1,\n 20\n ]\n },\n o($V8, [\n 2,\n 12\n ], {\n 13: 4,\n 19: 5,\n 20: 6,\n 22: 8,\n 23: 9,\n 24: 10,\n 25: 11,\n 26: 12,\n 11: 21,\n 21: $V0,\n 28: $V1,\n 29: $V2,\n 31: $V3,\n 32: $V4,\n 40: $V5,\n 44: $V6,\n 47: $V7\n }),\n o($V9, [\n 2,\n 16\n ], {\n 14: 22,\n 15: $Va,\n 16: $Vb\n }),\n o($V9, [\n 2,\n 17\n ]),\n o($V9, [\n 2,\n 18\n ]),\n o($V9, [\n 2,\n 19\n ]),\n o($V9, [\n 2,\n 20\n ]),\n o($V9, [\n 2,\n 21\n ]),\n o($V9, [\n 2,\n 22\n ]),\n o($Vc, [\n 2,\n 25\n ], {\n 27: [\n 1,\n 25\n ]\n }),\n o($V9, [\n 2,\n 26\n ]),\n {\n 19: 26,\n 26: 12,\n 32: $V4\n },\n {\n 11: 27,\n 13: 4,\n 19: 5,\n 20: 6,\n 21: $V0,\n 22: 8,\n 23: 9,\n 24: 10,\n 25: 11,\n 26: 12,\n 28: $V1,\n 29: $V2,\n 31: $V3,\n 32: $V4,\n 40: $V5,\n 44: $V6,\n 47: $V7\n },\n {\n 41: [\n 1,\n 28\n ],\n 43: [\n 1,\n 29\n ]\n },\n {\n 45: [\n 1,\n 30\n ]\n },\n {\n 48: [\n 1,\n 31\n ]\n },\n o($Vd, [\n 2,\n 29\n ], {\n 33: 32,\n 36: [\n 1,\n 33\n ],\n 38: [\n 1,\n 34\n ]\n }),\n {\n 1: [\n 2,\n 7\n ]\n },\n o($V8, [\n 2,\n 13\n ]),\n {\n 26: 35,\n 32: $V4\n },\n {\n 32: [\n 2,\n 14\n ]\n },\n {\n 17: [\n 1,\n 36\n ]\n },\n o($Vc, [\n 2,\n 24\n ]),\n {\n 11: 37,\n 13: 4,\n 14: 22,\n 15: $Va,\n 16: $Vb,\n 19: 5,\n 20: 6,\n 21: $V0,\n 22: 8,\n 23: 9,\n 24: 10,\n 25: 11,\n 26: 12,\n 28: $V1,\n 29: $V2,\n 31: $V3,\n 32: $V4,\n 40: $V5,\n 44: $V6,\n 47: $V7\n },\n {\n 30: [\n 1,\n 38\n ]\n },\n {\n 42: [\n 1,\n 39\n ]\n },\n {\n 42: [\n 1,\n 40\n ]\n },\n {\n 46: [\n 1,\n 41\n ]\n },\n {\n 49: [\n 1,\n 42\n ]\n },\n o($Vd, [\n 2,\n 30\n ]),\n {\n 18: [\n 1,\n 43\n ]\n },\n {\n 18: [\n 1,\n 44\n ]\n },\n o($Vc, [\n 2,\n 23\n ]),\n {\n 18: [\n 1,\n 45\n ]\n },\n {\n 30: [\n 1,\n 46\n ]\n },\n o($V9, [\n 2,\n 28\n ]),\n o($V9, [\n 2,\n 35\n ]),\n o($V9, [\n 2,\n 36\n ]),\n o($V9, [\n 2,\n 37\n ]),\n o($V9, [\n 2,\n 38\n ]),\n {\n 37: [\n 1,\n 47\n ]\n },\n {\n 34: 48,\n 35: $Ve\n },\n {\n 15: [\n 1,\n 50\n ]\n },\n o($V9, [\n 2,\n 27\n ]),\n o($Vd, [\n 2,\n 33\n ]),\n {\n 39: [\n 1,\n 51\n ]\n },\n {\n 34: 52,\n 35: $Ve,\n 39: [\n 2,\n 31\n ]\n },\n {\n 32: [\n 2,\n 15\n ]\n },\n o($Vd, [\n 2,\n 34\n ]),\n {\n 39: [\n 2,\n 32\n ]\n }\n ],\n defaultActions: {\n 20: [\n 2,\n 7\n ],\n 23: [\n 2,\n 14\n ],\n 50: [\n 2,\n 15\n ],\n 52: [\n 2,\n 32\n ]\n },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) this.trace(str);\n else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [\n 0\n ], tstack = [], vstack = [\n null\n ], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = {\n yy: {}\n };\n for(var k in this.yy)if (Object.prototype.hasOwnProperty.call(this.yy, k)) sharedState.yy[k] = this.yy[k];\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") lexer2.yylloc = {};\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") this.parseError = sharedState.yy.parseError;\n else this.parseError = Object.getPrototypeOf(this).parseError;\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while(true){\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) action = this.defaultActions[state];\n else {\n if (symbol === null || typeof symbol == \"undefined\") symbol = lex();\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for(p in table[state])if (this.terminals_[p] && p > TERROR) expected.push(\"'\" + this.terminals_[p] + \"'\");\n if (lexer2.showPosition) errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n else errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n switch(action[0]){\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") return r;\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) this.yy.parser.parseError(str, hash);\n else throw new Error(str);\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\n \"INITIAL\"\n ];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) this.yylloc.range = [\n 0,\n 0\n ];\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else this.yylloc.last_column++;\n if (this.options.ranges) this.yylloc.range[1]++;\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) this.yylineno -= lines.length - 1;\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) this.yylloc.range = [\n r[0],\n r[0] + this.yyleng - len\n ];\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) this._backtrack = true;\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) next += this._input.substr(0, 20 - next.length);\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) backup.yylloc.range = this.yylloc.range.slice(0);\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) this.yylloc.range = [\n this.offset,\n this.offset += this.yyleng\n ];\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) this.done = false;\n if (token) return token;\n else if (this._backtrack) {\n for(var k in backup)this[k] = backup[k];\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) return this.EOF;\n if (!this._input) this.done = true;\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for(var i = 0; i < rules.length; i++){\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) return token;\n else if (this._backtrack) {\n match = false;\n continue;\n } else return false;\n } else if (!this.options.flex) break;\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) return token;\n return false;\n }\n if (this._input === \"\") return this.EOF;\n else return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) return r;\n else return this.lex();\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) return this.conditionStack.pop();\n else return this.conditionStack[0];\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n else return this.conditions[\"INITIAL\"].rules;\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) return this.conditionStack[n];\n else return \"INITIAL\";\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch($avoiding_name_collisions){\n case 0:\n return 10;\n case 1:\n yy.getLogger().debug(\"Found space-block\");\n return 31;\n case 2:\n yy.getLogger().debug(\"Found nl-block\");\n return 31;\n case 3:\n yy.getLogger().debug(\"Found space-block\");\n return 29;\n case 4:\n yy.getLogger().debug(\".\", yy_.yytext);\n break;\n case 5:\n yy.getLogger().debug(\"_\", yy_.yytext);\n break;\n case 6:\n return 5;\n case 7:\n yy_.yytext = -1;\n return 28;\n case 8:\n yy_.yytext = yy_.yytext.replace(/columns\\s+/, \"\");\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 28;\n case 9:\n this.pushState(\"md_string\");\n break;\n case 10:\n return \"MD_STR\";\n case 11:\n this.popState();\n break;\n case 12:\n this.pushState(\"string\");\n break;\n case 13:\n yy.getLogger().debug(\"LEX: POPPING STR:\", yy_.yytext);\n this.popState();\n break;\n case 14:\n yy.getLogger().debug(\"LEX: STR end:\", yy_.yytext);\n return \"STR\";\n case 15:\n yy_.yytext = yy_.yytext.replace(/space\\:/, \"\");\n yy.getLogger().debug(\"SPACE NUM (LEX)\", yy_.yytext);\n return 21;\n case 16:\n yy_.yytext = \"1\";\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 21;\n case 17:\n return 43;\n case 18:\n return \"LINKSTYLE\";\n case 19:\n return \"INTERPOLATE\";\n case 20:\n this.pushState(\"CLASSDEF\");\n return 40;\n case 21:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n case 22:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 41;\n case 23:\n this.popState();\n return 42;\n case 24:\n this.pushState(\"CLASS\");\n return 44;\n case 25:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 45;\n case 26:\n this.popState();\n return 46;\n case 27:\n this.pushState(\"STYLE_STMNT\");\n return 47;\n case 28:\n this.popState();\n this.pushState(\"STYLE_DEFINITION\");\n return 48;\n case 29:\n this.popState();\n return 49;\n case 30:\n this.pushState(\"acc_title\");\n return \"acc_title\";\n case 31:\n this.popState();\n return \"acc_title_value\";\n case 32:\n this.pushState(\"acc_descr\");\n return \"acc_descr\";\n case 33:\n this.popState();\n return \"acc_descr_value\";\n case 34:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 35:\n this.popState();\n break;\n case 36:\n return \"acc_descr_multiline_value\";\n case 37:\n return 30;\n case 38:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 39:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 40:\n this.popState();\n yy.getLogger().debug(\"Lex: ))\");\n return \"NODE_DEND\";\n case 41:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 42:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 43:\n this.popState();\n yy.getLogger().debug(\"Lex: (-\");\n return \"NODE_DEND\";\n case 44:\n this.popState();\n yy.getLogger().debug(\"Lex: -)\");\n return \"NODE_DEND\";\n case 45:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 46:\n this.popState();\n yy.getLogger().debug(\"Lex: ]]\");\n return \"NODE_DEND\";\n case 47:\n this.popState();\n yy.getLogger().debug(\"Lex: (\");\n return \"NODE_DEND\";\n case 48:\n this.popState();\n yy.getLogger().debug(\"Lex: ])\");\n return \"NODE_DEND\";\n case 49:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n case 50:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n case 51:\n this.popState();\n yy.getLogger().debug(\"Lex: )]\");\n return \"NODE_DEND\";\n case 52:\n this.popState();\n yy.getLogger().debug(\"Lex: )\");\n return \"NODE_DEND\";\n case 53:\n this.popState();\n yy.getLogger().debug(\"Lex: ]>\");\n return \"NODE_DEND\";\n case 54:\n this.popState();\n yy.getLogger().debug(\"Lex: ]\");\n return \"NODE_DEND\";\n case 55:\n yy.getLogger().debug(\"Lexa: -)\");\n this.pushState(\"NODE\");\n return 36;\n case 56:\n yy.getLogger().debug(\"Lexa: (-\");\n this.pushState(\"NODE\");\n return 36;\n case 57:\n yy.getLogger().debug(\"Lexa: ))\");\n this.pushState(\"NODE\");\n return 36;\n case 58:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 59:\n yy.getLogger().debug(\"Lex: (((\");\n this.pushState(\"NODE\");\n return 36;\n case 60:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 61:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 62:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 63:\n yy.getLogger().debug(\"Lexc: >\");\n this.pushState(\"NODE\");\n return 36;\n case 64:\n yy.getLogger().debug(\"Lexa: ([\");\n this.pushState(\"NODE\");\n return 36;\n case 65:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 66:\n this.pushState(\"NODE\");\n return 36;\n case 67:\n this.pushState(\"NODE\");\n return 36;\n case 68:\n this.pushState(\"NODE\");\n return 36;\n case 69:\n this.pushState(\"NODE\");\n return 36;\n case 70:\n this.pushState(\"NODE\");\n return 36;\n case 71:\n this.pushState(\"NODE\");\n return 36;\n case 72:\n this.pushState(\"NODE\");\n return 36;\n case 73:\n yy.getLogger().debug(\"Lexa: [\");\n this.pushState(\"NODE\");\n return 36;\n case 74:\n this.pushState(\"BLOCK_ARROW\");\n yy.getLogger().debug(\"LEX ARR START\");\n return 38;\n case 75:\n yy.getLogger().debug(\"Lex: NODE_ID\", yy_.yytext);\n return 32;\n case 76:\n yy.getLogger().debug(\"Lex: EOF\", yy_.yytext);\n return 8;\n case 77:\n this.pushState(\"md_string\");\n break;\n case 78:\n this.pushState(\"md_string\");\n break;\n case 79:\n return \"NODE_DESCR\";\n case 80:\n this.popState();\n break;\n case 81:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n break;\n case 82:\n yy.getLogger().debug(\"LEX ARR: Starting string\");\n this.pushState(\"string\");\n break;\n case 83:\n yy.getLogger().debug(\"LEX: NODE_DESCR:\", yy_.yytext);\n return \"NODE_DESCR\";\n case 84:\n yy.getLogger().debug(\"LEX POPPING\");\n this.popState();\n break;\n case 85:\n yy.getLogger().debug(\"Lex: =>BAE\");\n this.pushState(\"ARROW_DIR\");\n break;\n case 86:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (right): dir:\", yy_.yytext);\n return \"DIR\";\n case 87:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (left):\", yy_.yytext);\n return \"DIR\";\n case 88:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (x):\", yy_.yytext);\n return \"DIR\";\n case 89:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (y):\", yy_.yytext);\n return \"DIR\";\n case 90:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (up):\", yy_.yytext);\n return \"DIR\";\n case 91:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (down):\", yy_.yytext);\n return \"DIR\";\n case 92:\n yy_.yytext = \"]>\";\n yy.getLogger().debug(\"Lex (ARROW_DIR end):\", yy_.yytext);\n this.popState();\n this.popState();\n return \"BLOCK_ARROW_END\";\n case 93:\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n case 94:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 95:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 96:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 97:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 98:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 99:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 100:\n this.pushState(\"md_string\");\n break;\n case 101:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n return \"LINK_LABEL\";\n case 102:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n case 103:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 104:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 105:\n yy.getLogger().debug(\"Lex: COLON\", yy_.yytext);\n yy_.yytext = yy_.yytext.slice(1);\n return 27;\n }\n },\n rules: [\n /^(?:block-beta\\b)/,\n /^(?:block\\s+)/,\n /^(?:block\\n+)/,\n /^(?:block:)/,\n /^(?:[\\s]+)/,\n /^(?:[\\n]+)/,\n /^(?:((\\u000D\\u000A)|(\\u000A)))/,\n /^(?:columns\\s+auto\\b)/,\n /^(?:columns\\s+[\\d]+)/,\n /^(?:[\"][`])/,\n /^(?:[^`\"]+)/,\n /^(?:[`][\"])/,\n /^(?:[\"])/,\n /^(?:[\"])/,\n /^(?:[^\"]*)/,\n /^(?:space[:]\\d+)/,\n /^(?:space\\b)/,\n /^(?:default\\b)/,\n /^(?:linkStyle\\b)/,\n /^(?:interpolate\\b)/,\n /^(?:classDef\\s+)/,\n /^(?:DEFAULT\\s+)/,\n /^(?:\\w+\\s+)/,\n /^(?:[^\\n]*)/,\n /^(?:class\\s+)/,\n /^(?:(\\w+)+((,\\s*\\w+)*))/,\n /^(?:[^\\n]*)/,\n /^(?:style\\s+)/,\n /^(?:(\\w+)+((,\\s*\\w+)*))/,\n /^(?:[^\\n]*)/,\n /^(?:accTitle\\s*:\\s*)/,\n /^(?:(?!\\n||)*[^\\n]*)/,\n /^(?:accDescr\\s*:\\s*)/,\n /^(?:(?!\\n||)*[^\\n]*)/,\n /^(?:accDescr\\s*\\{\\s*)/,\n /^(?:[\\}])/,\n /^(?:[^\\}]*)/,\n /^(?:end\\b\\s*)/,\n /^(?:\\(\\(\\()/,\n /^(?:\\)\\)\\))/,\n /^(?:[\\)]\\))/,\n /^(?:\\}\\})/,\n /^(?:\\})/,\n /^(?:\\(-)/,\n /^(?:-\\))/,\n /^(?:\\(\\()/,\n /^(?:\\]\\])/,\n /^(?:\\()/,\n /^(?:\\]\\))/,\n /^(?:\\\\\\])/,\n /^(?:\\/\\])/,\n /^(?:\\)\\])/,\n /^(?:[\\)])/,\n /^(?:\\]>)/,\n /^(?:[\\]])/,\n /^(?:-\\))/,\n /^(?:\\(-)/,\n /^(?:\\)\\))/,\n /^(?:\\))/,\n /^(?:\\(\\(\\()/,\n /^(?:\\(\\()/,\n /^(?:\\{\\{)/,\n /^(?:\\{)/,\n /^(?:>)/,\n /^(?:\\(\\[)/,\n /^(?:\\()/,\n /^(?:\\[\\[)/,\n /^(?:\\[\\|)/,\n /^(?:\\[\\()/,\n /^(?:\\)\\)\\))/,\n /^(?:\\[\\\\)/,\n /^(?:\\[\\/)/,\n /^(?:\\[\\\\)/,\n /^(?:\\[)/,\n /^(?:<\\[)/,\n /^(?:[^\\(\\[\\n\\-\\)\\{\\}\\s\\<\\>:]+)/,\n /^(?:$)/,\n /^(?:[\"][`])/,\n /^(?:[\"][`])/,\n /^(?:[^`\"]+)/,\n /^(?:[`][\"])/,\n /^(?:[\"])/,\n /^(?:[\"])/,\n /^(?:[^\"]+)/,\n /^(?:[\"])/,\n /^(?:\\]>\\s*\\()/,\n /^(?:,?\\s*right\\s*)/,\n /^(?:,?\\s*left\\s*)/,\n /^(?:,?\\s*x\\s*)/,\n /^(?:,?\\s*y\\s*)/,\n /^(?:,?\\s*up\\s*)/,\n /^(?:,?\\s*down\\s*)/,\n /^(?:\\)\\s*)/,\n /^(?:\\s*[xo<]?--+[-xo>]\\s*)/,\n /^(?:\\s*[xo<]?==+[=xo>]\\s*)/,\n /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/,\n /^(?:\\s*~~[\\~]+\\s*)/,\n /^(?:\\s*[xo<]?--\\s*)/,\n /^(?:\\s*[xo<]?==\\s*)/,\n /^(?:\\s*[xo<]?-\\.\\s*)/,\n /^(?:[\"][`])/,\n /^(?:[\"])/,\n /^(?:\\s*[xo<]?--+[-xo>]\\s*)/,\n /^(?:\\s*[xo<]?==+[=xo>]\\s*)/,\n /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/,\n /^(?::\\d+)/\n ],\n conditions: {\n \"STYLE_DEFINITION\": {\n \"rules\": [\n 29\n ],\n \"inclusive\": false\n },\n \"STYLE_STMNT\": {\n \"rules\": [\n 28\n ],\n \"inclusive\": false\n },\n \"CLASSDEFID\": {\n \"rules\": [\n 23\n ],\n \"inclusive\": false\n },\n \"CLASSDEF\": {\n \"rules\": [\n 21,\n 22\n ],\n \"inclusive\": false\n },\n \"CLASS_STYLE\": {\n \"rules\": [\n 26\n ],\n \"inclusive\": false\n },\n \"CLASS\": {\n \"rules\": [\n 25\n ],\n \"inclusive\": false\n },\n \"LLABEL\": {\n \"rules\": [\n 100,\n 101,\n 102,\n 103,\n 104\n ],\n \"inclusive\": false\n },\n \"ARROW_DIR\": {\n \"rules\": [\n 86,\n 87,\n 88,\n 89,\n 90,\n 91,\n 92\n ],\n \"inclusive\": false\n },\n \"BLOCK_ARROW\": {\n \"rules\": [\n 77,\n 82,\n 85\n ],\n \"inclusive\": false\n },\n \"NODE\": {\n \"rules\": [\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 78,\n 81\n ],\n \"inclusive\": false\n },\n \"md_string\": {\n \"rules\": [\n 10,\n 11,\n 79,\n 80\n ],\n \"inclusive\": false\n },\n \"space\": {\n \"rules\": [],\n \"inclusive\": false\n },\n \"string\": {\n \"rules\": [\n 13,\n 14,\n 83,\n 84\n ],\n \"inclusive\": false\n },\n \"acc_descr_multiline\": {\n \"rules\": [\n 35,\n 36\n ],\n \"inclusive\": false\n },\n \"acc_descr\": {\n \"rules\": [\n 33\n ],\n \"inclusive\": false\n },\n \"acc_title\": {\n \"rules\": [\n 31\n ],\n \"inclusive\": false\n },\n \"INITIAL\": {\n \"rules\": [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 12,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 24,\n 27,\n 30,\n 32,\n 34,\n 37,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 93,\n 94,\n 95,\n 96,\n 97,\n 98,\n 99,\n 105\n ],\n \"inclusive\": true\n }\n }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\n$621417c51b042472$var$parser.parser = $621417c51b042472$var$parser;\nconst $621417c51b042472$var$parser$1 = $621417c51b042472$var$parser;\nlet $621417c51b042472$var$blockDatabase = {};\nlet $621417c51b042472$var$edgeList = [];\nlet $621417c51b042472$var$edgeCount = {};\nconst $621417c51b042472$var$COLOR_KEYWORD = \"color\";\nconst $621417c51b042472$var$FILL_KEYWORD = \"fill\";\nconst $621417c51b042472$var$BG_FILL = \"bgFill\";\nconst $621417c51b042472$var$STYLECLASS_SEP = \",\";\nconst $621417c51b042472$var$config = (0, $4jcZX.c)();\nlet $621417c51b042472$var$classes = {};\nconst $621417c51b042472$var$sanitizeText = (txt)=>(0, $4jcZX.e).sanitizeText(txt, $621417c51b042472$var$config);\nconst $621417c51b042472$var$addStyleClass = function(id, styleAttributes = \"\") {\n if ($621417c51b042472$var$classes[id] === void 0) $621417c51b042472$var$classes[id] = {\n id: id,\n styles: [],\n textStyles: []\n };\n const foundClass = $621417c51b042472$var$classes[id];\n if (styleAttributes !== void 0 && styleAttributes !== null) styleAttributes.split($621417c51b042472$var$STYLECLASS_SEP).forEach((attrib)=>{\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (attrib.match($621417c51b042472$var$COLOR_KEYWORD)) {\n const newStyle1 = fixedAttrib.replace($621417c51b042472$var$FILL_KEYWORD, $621417c51b042472$var$BG_FILL);\n const newStyle2 = newStyle1.replace($621417c51b042472$var$COLOR_KEYWORD, $621417c51b042472$var$FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n};\nconst $621417c51b042472$var$addStyle2Node = function(id, styles = \"\") {\n const foundBlock = $621417c51b042472$var$blockDatabase[id];\n if (styles !== void 0 && styles !== null) foundBlock.styles = styles.split($621417c51b042472$var$STYLECLASS_SEP);\n};\nconst $621417c51b042472$var$setCssClass = function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundBlock = $621417c51b042472$var$blockDatabase[id];\n if (foundBlock === void 0) {\n const trimmedId = id.trim();\n $621417c51b042472$var$blockDatabase[trimmedId] = {\n id: trimmedId,\n type: \"na\",\n children: []\n };\n foundBlock = $621417c51b042472$var$blockDatabase[trimmedId];\n }\n if (!foundBlock.classes) foundBlock.classes = [];\n foundBlock.classes.push(cssClassName);\n });\n};\nconst $621417c51b042472$var$populateBlockDatabase = (_blockList, parent)=>{\n const blockList = _blockList.flat();\n const children = [];\n for (const block of blockList){\n if (block.label) block.label = $621417c51b042472$var$sanitizeText(block.label);\n if (block.type === \"classDef\") {\n $621417c51b042472$var$addStyleClass(block.id, block.css);\n continue;\n }\n if (block.type === \"applyClass\") {\n $621417c51b042472$var$setCssClass(block.id, (block == null ? void 0 : block.styleClass) || \"\");\n continue;\n }\n if (block.type === \"applyStyles\") {\n if (block == null ? void 0 : block.stylesStr) $621417c51b042472$var$addStyle2Node(block.id, block == null ? void 0 : block.stylesStr);\n continue;\n }\n if (block.type === \"column-setting\") parent.columns = block.columns || -1;\n else if (block.type === \"edge\") {\n if ($621417c51b042472$var$edgeCount[block.id]) $621417c51b042472$var$edgeCount[block.id]++;\n else $621417c51b042472$var$edgeCount[block.id] = 1;\n block.id = $621417c51b042472$var$edgeCount[block.id] + \"-\" + block.id;\n $621417c51b042472$var$edgeList.push(block);\n } else {\n if (!block.label) {\n if (block.type === \"composite\") block.label = \"\";\n else block.label = block.id;\n }\n const newBlock = !$621417c51b042472$var$blockDatabase[block.id];\n if (newBlock) $621417c51b042472$var$blockDatabase[block.id] = block;\n else {\n if (block.type !== \"na\") $621417c51b042472$var$blockDatabase[block.id].type = block.type;\n if (block.label !== block.id) $621417c51b042472$var$blockDatabase[block.id].label = block.label;\n }\n if (block.children) $621417c51b042472$var$populateBlockDatabase(block.children, block);\n if (block.type === \"space\") {\n const w = block.width || 1;\n for(let j = 0; j < w; j++){\n const newBlock2 = (0, $hNIl0.default)(block);\n newBlock2.id = newBlock2.id + \"-\" + j;\n $621417c51b042472$var$blockDatabase[newBlock2.id] = newBlock2;\n children.push(newBlock2);\n }\n } else if (newBlock) children.push(block);\n }\n }\n parent.children = children;\n};\nlet $621417c51b042472$var$blocks = [];\nlet $621417c51b042472$var$rootBlock = {\n id: \"root\",\n type: \"composite\",\n children: [],\n columns: -1\n};\nconst $621417c51b042472$var$clear = ()=>{\n (0, $4jcZX.l).debug(\"Clear called\");\n (0, $4jcZX.v)();\n $621417c51b042472$var$rootBlock = {\n id: \"root\",\n type: \"composite\",\n children: [],\n columns: -1\n };\n $621417c51b042472$var$blockDatabase = {\n root: $621417c51b042472$var$rootBlock\n };\n $621417c51b042472$var$blocks = [];\n $621417c51b042472$var$classes = {};\n $621417c51b042472$var$edgeList = [];\n $621417c51b042472$var$edgeCount = {};\n};\nfunction $621417c51b042472$var$typeStr2Type(typeStr) {\n (0, $4jcZX.l).debug(\"typeStr2Type\", typeStr);\n switch(typeStr){\n case \"[]\":\n return \"square\";\n case \"()\":\n (0, $4jcZX.l).debug(\"we have a round\");\n return \"round\";\n case \"(())\":\n return \"circle\";\n case \">]\":\n return \"rect_left_inv_arrow\";\n case \"{}\":\n return \"diamond\";\n case \"{{}}\":\n return \"hexagon\";\n case \"([])\":\n return \"stadium\";\n case \"[[]]\":\n return \"subroutine\";\n case \"[()]\":\n return \"cylinder\";\n case \"((()))\":\n return \"doublecircle\";\n case \"[//]\":\n return \"lean_right\";\n case \"[\\\\\\\\]\":\n return \"lean_left\";\n case \"[/\\\\]\":\n return \"trapezoid\";\n case \"[\\\\/]\":\n return \"inv_trapezoid\";\n case \"<[]>\":\n return \"block_arrow\";\n default:\n return \"na\";\n }\n}\nfunction $621417c51b042472$var$edgeTypeStr2Type(typeStr) {\n (0, $4jcZX.l).debug(\"typeStr2Type\", typeStr);\n switch(typeStr){\n case \"==\":\n return \"thick\";\n default:\n return \"normal\";\n }\n}\nfunction $621417c51b042472$var$edgeStrToEdgeData(typeStr) {\n switch(typeStr.trim()){\n case \"--x\":\n return \"arrow_cross\";\n case \"--o\":\n return \"arrow_circle\";\n default:\n return \"arrow_point\";\n }\n}\nlet $621417c51b042472$var$cnt = 0;\nconst $621417c51b042472$var$generateId = ()=>{\n $621417c51b042472$var$cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + $621417c51b042472$var$cnt;\n};\nconst $621417c51b042472$var$setHierarchy = (block)=>{\n $621417c51b042472$var$rootBlock.children = block;\n $621417c51b042472$var$populateBlockDatabase(block, $621417c51b042472$var$rootBlock);\n $621417c51b042472$var$blocks = $621417c51b042472$var$rootBlock.children;\n};\nconst $621417c51b042472$var$getColumns = (blockId)=>{\n const block = $621417c51b042472$var$blockDatabase[blockId];\n if (!block) return -1;\n if (block.columns) return block.columns;\n if (!block.children) return -1;\n return block.children.length;\n};\nconst $621417c51b042472$var$getBlocksFlat = ()=>{\n return [\n ...Object.values($621417c51b042472$var$blockDatabase)\n ];\n};\nconst $621417c51b042472$var$getBlocks = ()=>{\n return $621417c51b042472$var$blocks || [];\n};\nconst $621417c51b042472$var$getEdges = ()=>{\n return $621417c51b042472$var$edgeList;\n};\nconst $621417c51b042472$var$getBlock = (id)=>{\n return $621417c51b042472$var$blockDatabase[id];\n};\nconst $621417c51b042472$var$setBlock = (block)=>{\n $621417c51b042472$var$blockDatabase[block.id] = block;\n};\nconst $621417c51b042472$var$getLogger = ()=>console;\nconst $621417c51b042472$var$getClasses$1 = function() {\n return $621417c51b042472$var$classes;\n};\nconst $621417c51b042472$var$db = {\n getConfig: ()=>(0, $4jcZX.F)().block,\n typeStr2Type: $621417c51b042472$var$typeStr2Type,\n edgeTypeStr2Type: $621417c51b042472$var$edgeTypeStr2Type,\n edgeStrToEdgeData: $621417c51b042472$var$edgeStrToEdgeData,\n getLogger: $621417c51b042472$var$getLogger,\n getBlocksFlat: $621417c51b042472$var$getBlocksFlat,\n getBlocks: $621417c51b042472$var$getBlocks,\n getEdges: $621417c51b042472$var$getEdges,\n setHierarchy: $621417c51b042472$var$setHierarchy,\n getBlock: $621417c51b042472$var$getBlock,\n setBlock: $621417c51b042472$var$setBlock,\n getColumns: $621417c51b042472$var$getColumns,\n getClasses: $621417c51b042472$var$getClasses$1,\n clear: $621417c51b042472$var$clear,\n generateId: $621417c51b042472$var$generateId\n};\nconst $621417c51b042472$var$db$1 = $621417c51b042472$var$db;\nconst $621417c51b042472$var$fade = (color, opacity)=>{\n const channel = $jDsny.default;\n const r = channel(color, \"r\");\n const g = channel(color, \"g\");\n const b = channel(color, \"b\");\n return $b1Vti.default(r, g, b, opacity);\n};\nconst $621417c51b042472$var$getStyles = (options)=>`.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${$621417c51b042472$var$fade(options.edgeLabelBackground, 0.5)};\n // background-color:\n }\n\n .node .cluster {\n // fill: ${$621417c51b042472$var$fade(options.mainBkg, 0.5)};\n fill: ${$621417c51b042472$var$fade(options.clusterBkg, 0.5)};\n stroke: ${$621417c51b042472$var$fade(options.clusterBorder, 0.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`;\nconst $621417c51b042472$var$flowStyles = $621417c51b042472$var$getStyles;\nfunction $621417c51b042472$var$getNodeFromBlock(block, db2, positioned = false) {\n var _a2, _b2, _c;\n const vertex = block;\n let classStr = \"default\";\n if ((((_a2 = vertex == null ? void 0 : vertex.classes) == null ? void 0 : _a2.length) || 0) > 0) classStr = ((vertex == null ? void 0 : vertex.classes) || []).join(\" \");\n classStr = classStr + \" flowchart-label\";\n let radius = 0;\n let shape = \"\";\n let padding2;\n switch(vertex.type){\n case \"round\":\n radius = 5;\n shape = \"rect\";\n break;\n case \"composite\":\n radius = 0;\n shape = \"composite\";\n padding2 = 0;\n break;\n case \"square\":\n shape = \"rect\";\n break;\n case \"diamond\":\n shape = \"question\";\n break;\n case \"hexagon\":\n shape = \"hexagon\";\n break;\n case \"block_arrow\":\n shape = \"block_arrow\";\n break;\n case \"odd\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n shape = \"lean_right\";\n break;\n case \"lean_left\":\n shape = \"lean_left\";\n break;\n case \"trapezoid\":\n shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n shape = \"inv_trapezoid\";\n break;\n case \"rect_left_inv_arrow\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n shape = \"circle\";\n break;\n case \"ellipse\":\n shape = \"ellipse\";\n break;\n case \"stadium\":\n shape = \"stadium\";\n break;\n case \"subroutine\":\n shape = \"subroutine\";\n break;\n case \"cylinder\":\n shape = \"cylinder\";\n break;\n case \"group\":\n shape = \"rect\";\n break;\n case \"doublecircle\":\n shape = \"doublecircle\";\n break;\n default:\n shape = \"rect\";\n }\n const styles = (0, $4jcZX.k)((vertex == null ? void 0 : vertex.styles) || []);\n const vertexText = vertex.label;\n const bounds = vertex.size || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n const node = {\n labelStyle: styles.labelStyle,\n shape: shape,\n labelText: vertexText,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n directions: vertex.directions,\n width: bounds.width,\n height: bounds.height,\n x: bounds.x,\n y: bounds.y,\n positioned: positioned,\n intersect: void 0,\n type: vertex.type,\n padding: padding2 ?? (((_c = (_b2 = (0, $4jcZX.F)()) == null ? void 0 : _b2.block) == null ? void 0 : _c.padding) || 0)\n };\n return node;\n}\nasync function $621417c51b042472$var$calculateBlockSize(elem, block, db2) {\n const node = $621417c51b042472$var$getNodeFromBlock(block, db2, false);\n if (node.type === \"group\") return;\n const nodeEl = await (0, $hl1Sc.e)(elem, node);\n const boundingBox = nodeEl.node().getBBox();\n const obj = db2.getBlock(node.id);\n obj.size = {\n width: boundingBox.width,\n height: boundingBox.height,\n x: 0,\n y: 0,\n node: nodeEl\n };\n db2.setBlock(obj);\n nodeEl.remove();\n}\nasync function $621417c51b042472$var$insertBlockPositioned(elem, block, db2) {\n const node = $621417c51b042472$var$getNodeFromBlock(block, db2, true);\n const obj = db2.getBlock(node.id);\n if (obj.type !== \"space\") {\n await (0, $hl1Sc.e)(elem, node);\n block.intersect = node == null ? void 0 : node.intersect;\n (0, $hl1Sc.p)(node);\n }\n}\nasync function $621417c51b042472$var$performOperations(elem, blocks2, db2, operation) {\n for (const block of blocks2){\n await operation(elem, block, db2);\n if (block.children) await $621417c51b042472$var$performOperations(elem, block.children, db2, operation);\n }\n}\nasync function $621417c51b042472$var$calculateBlockSizes(elem, blocks2, db2) {\n await $621417c51b042472$var$performOperations(elem, blocks2, db2, $621417c51b042472$var$calculateBlockSize);\n}\nasync function $621417c51b042472$var$insertBlocks(elem, blocks2, db2) {\n await $621417c51b042472$var$performOperations(elem, blocks2, db2, $621417c51b042472$var$insertBlockPositioned);\n}\nasync function $621417c51b042472$var$insertEdges(elem, edges, blocks2, db2, id) {\n const g = new $4LkSm.Graph({\n multigraph: true,\n compound: true\n });\n g.setGraph({\n rankdir: \"TB\",\n nodesep: 10,\n ranksep: 10,\n marginx: 8,\n marginy: 8\n });\n for (const block of blocks2)if (block.size) g.setNode(block.id, {\n width: block.size.width,\n height: block.size.height,\n intersect: block.intersect\n });\n for (const edge of edges)if (edge.start && edge.end) {\n const startBlock = db2.getBlock(edge.start);\n const endBlock = db2.getBlock(edge.end);\n if ((startBlock == null ? void 0 : startBlock.size) && (endBlock == null ? void 0 : endBlock.size)) {\n const start = startBlock.size;\n const end = endBlock.size;\n const points = [\n {\n x: start.x,\n y: start.y\n },\n {\n x: start.x + (end.x - start.x) / 2,\n y: start.y + (end.y - start.y) / 2\n },\n {\n x: end.x,\n y: end.y\n }\n ];\n await (0, $hl1Sc.h)(elem, {\n v: edge.start,\n w: edge.end,\n name: edge.id\n }, {\n ...edge,\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points: points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n }, void 0, \"block\", g, id);\n if (edge.label) {\n await (0, $hl1Sc.f)(elem, {\n ...edge,\n label: edge.label,\n labelStyle: \"stroke: #333; stroke-width: 1.5px;fill:none;\",\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points: points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n });\n await (0, $hl1Sc.j)({\n ...edge,\n x: points[1].x,\n y: points[1].y\n }, {\n originalPath: points\n });\n }\n }\n }\n}\nconst $621417c51b042472$var$padding = (($621417c51b042472$var$_b = ($621417c51b042472$var$_a = (0, $4jcZX.c)()) == null ? void 0 : $621417c51b042472$var$_a.block) == null ? void 0 : $621417c51b042472$var$_b.padding) || 8;\nfunction $621417c51b042472$var$calculateBlockPosition(columns, position) {\n if (columns === 0 || !Number.isInteger(columns)) throw new Error(\"Columns must be an integer !== 0.\");\n if (position < 0 || !Number.isInteger(position)) throw new Error(\"Position must be a non-negative integer.\" + position);\n if (columns < 0) return {\n px: position,\n py: 0\n };\n if (columns === 1) return {\n px: 0,\n py: position\n };\n const px = position % columns;\n const py = Math.floor(position / columns);\n return {\n px: px,\n py: py\n };\n}\nconst $621417c51b042472$var$getMaxChildSize = (block)=>{\n let maxWidth = 0;\n let maxHeight = 0;\n for (const child of block.children){\n const { width: width, height: height, x: x, y: y } = child.size || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n (0, $4jcZX.l).debug(\"getMaxChildSize abc95 child:\", child.id, \"width:\", width, \"height:\", height, \"x:\", x, \"y:\", y, child.type);\n if (child.type === \"space\") continue;\n if (width > maxWidth) maxWidth = width / (block.widthInColumns || 1);\n if (height > maxHeight) maxHeight = height;\n }\n return {\n width: maxWidth,\n height: maxHeight\n };\n};\nfunction $621417c51b042472$var$setBlockSizes(block, db2, siblingWidth = 0, siblingHeight = 0) {\n var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n (0, $4jcZX.l).debug(\"setBlockSizes abc95 (start)\", block.id, (_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x, \"block width =\", block == null ? void 0 : block.size, \"sieblingWidth\", siblingWidth);\n if (!((_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.width)) block.size = {\n width: siblingWidth,\n height: siblingHeight,\n x: 0,\n y: 0\n };\n let maxWidth = 0;\n let maxHeight = 0;\n if (((_c = block.children) == null ? void 0 : _c.length) > 0) {\n for (const child of block.children)$621417c51b042472$var$setBlockSizes(child, db2);\n const childSize = $621417c51b042472$var$getMaxChildSize(block);\n maxWidth = childSize.width;\n maxHeight = childSize.height;\n (0, $4jcZX.l).debug(\"setBlockSizes abc95 maxWidth of\", block.id, \":s children is \", maxWidth, maxHeight);\n for (const child of block.children)if (child.size) {\n (0, $4jcZX.l).debug(`abc95 Setting size of children of ${block.id} id=${child.id} ${maxWidth} ${maxHeight} ${child.size}`);\n child.size.width = maxWidth * (child.widthInColumns || 1) + $621417c51b042472$var$padding * ((child.widthInColumns || 1) - 1);\n child.size.height = maxHeight;\n child.size.x = 0;\n child.size.y = 0;\n (0, $4jcZX.l).debug(`abc95 updating size of ${block.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}`);\n }\n for (const child of block.children)$621417c51b042472$var$setBlockSizes(child, db2, maxWidth, maxHeight);\n const columns = block.columns || -1;\n let numItems = 0;\n for (const child of block.children)numItems += child.widthInColumns || 1;\n let xSize = block.children.length;\n if (columns > 0 && columns < numItems) xSize = columns;\n block.widthInColumns;\n const ySize = Math.ceil(numItems / xSize);\n let width = xSize * (maxWidth + $621417c51b042472$var$padding) + $621417c51b042472$var$padding;\n let height = ySize * (maxHeight + $621417c51b042472$var$padding) + $621417c51b042472$var$padding;\n if (width < siblingWidth) {\n (0, $4jcZX.l).debug(`Detected to small siebling: abc95 ${block.id} sieblingWidth ${siblingWidth} sieblingHeight ${siblingHeight} width ${width}`);\n width = siblingWidth;\n height = siblingHeight;\n const childWidth = (siblingWidth - xSize * $621417c51b042472$var$padding - $621417c51b042472$var$padding) / xSize;\n const childHeight = (siblingHeight - ySize * $621417c51b042472$var$padding - $621417c51b042472$var$padding) / ySize;\n (0, $4jcZX.l).debug(\"Size indata abc88\", block.id, \"childWidth\", childWidth, \"maxWidth\", maxWidth);\n (0, $4jcZX.l).debug(\"Size indata abc88\", block.id, \"childHeight\", childHeight, \"maxHeight\", maxHeight);\n (0, $4jcZX.l).debug(\"Size indata abc88 xSize\", xSize, \"padding\", $621417c51b042472$var$padding);\n for (const child of block.children)if (child.size) {\n child.size.width = childWidth;\n child.size.height = childHeight;\n child.size.x = 0;\n child.size.y = 0;\n }\n }\n (0, $4jcZX.l).debug(`abc95 (finale calc) ${block.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block.children.length} width=${Math.max(width, ((_d = block.size) == null ? void 0 : _d.width) || 0)}`);\n if (width < (((_e = block == null ? void 0 : block.size) == null ? void 0 : _e.width) || 0)) {\n width = ((_f = block == null ? void 0 : block.size) == null ? void 0 : _f.width) || 0;\n const num = columns > 0 ? Math.min(block.children.length, columns) : block.children.length;\n if (num > 0) {\n const childWidth = (width - num * $621417c51b042472$var$padding - $621417c51b042472$var$padding) / num;\n (0, $4jcZX.l).debug(\"abc95 (growing to fit) width\", block.id, width, (_g = block.size) == null ? void 0 : _g.width, childWidth);\n for (const child of block.children)if (child.size) child.size.width = childWidth;\n }\n }\n block.size = {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n }\n (0, $4jcZX.l).debug(\"setBlockSizes abc94 (done)\", block.id, (_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x, (_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width, (_j = block == null ? void 0 : block.size) == null ? void 0 : _j.y, (_k = block == null ? void 0 : block.size) == null ? void 0 : _k.height);\n}\nfunction $621417c51b042472$var$layoutBlocks(block, db2) {\n var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n (0, $4jcZX.l).debug(`abc85 layout blocks (=>layoutBlocks) ${block.id} x: ${(_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x} y: ${(_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.y} width: ${(_c = block == null ? void 0 : block.size) == null ? void 0 : _c.width}`);\n const columns = block.columns || -1;\n (0, $4jcZX.l).debug(\"layoutBlocks columns abc95\", block.id, \"=>\", columns, block);\n if (block.children && // find max width of children\n block.children.length > 0) {\n const width = ((_e = (_d = block == null ? void 0 : block.children[0]) == null ? void 0 : _d.size) == null ? void 0 : _e.width) || 0;\n const widthOfChildren = block.children.length * width + (block.children.length - 1) * $621417c51b042472$var$padding;\n (0, $4jcZX.l).debug(\"widthOfChildren 88\", widthOfChildren, \"posX\");\n let columnPos = 0;\n (0, $4jcZX.l).debug(\"abc91 block?.size?.x\", block.id, (_f = block == null ? void 0 : block.size) == null ? void 0 : _f.x);\n let startingPosX = ((_g = block == null ? void 0 : block.size) == null ? void 0 : _g.x) ? ((_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x) + (-((_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width) / 2 || 0) : -$621417c51b042472$var$padding;\n let rowPos = 0;\n for (const child of block.children){\n const parent = block;\n if (!child.size) continue;\n const { width: width2, height: height } = child.size;\n const { px: px, py: py } = $621417c51b042472$var$calculateBlockPosition(columns, columnPos);\n if (py != rowPos) {\n rowPos = py;\n startingPosX = ((_j = block == null ? void 0 : block.size) == null ? void 0 : _j.x) ? ((_k = block == null ? void 0 : block.size) == null ? void 0 : _k.x) + (-((_l = block == null ? void 0 : block.size) == null ? void 0 : _l.width) / 2 || 0) : -$621417c51b042472$var$padding;\n (0, $4jcZX.l).debug(\"New row in layout for block\", block.id, \" and child \", child.id, rowPos);\n }\n (0, $4jcZX.l).debug(`abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${(_m = parent == null ? void 0 : parent.size) == null ? void 0 : _m.x},${(_n = parent == null ? void 0 : parent.size) == null ? void 0 : _n.y}) parent: ${parent.id} width: ${width2}${$621417c51b042472$var$padding}`);\n if (parent.size) {\n const halfWidth = width2 / 2;\n child.size.x = startingPosX + $621417c51b042472$var$padding + halfWidth;\n (0, $4jcZX.l).debug(`abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${$621417c51b042472$var$padding} width=${width2} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}`);\n startingPosX = child.size.x + halfWidth;\n child.size.y = parent.size.y - parent.size.height / 2 + py * (height + $621417c51b042472$var$padding) + height / 2 + $621417c51b042472$var$padding;\n (0, $4jcZX.l).debug(`abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${$621417c51b042472$var$padding}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}`);\n }\n if (child.children) $621417c51b042472$var$layoutBlocks(child);\n columnPos += (child == null ? void 0 : child.widthInColumns) || 1;\n (0, $4jcZX.l).debug(\"abc88 columnsPos\", child, columnPos);\n }\n }\n (0, $4jcZX.l).debug(`layout blocks (<==layoutBlocks) ${block.id} x: ${(_o = block == null ? void 0 : block.size) == null ? void 0 : _o.x} y: ${(_p = block == null ? void 0 : block.size) == null ? void 0 : _p.y} width: ${(_q = block == null ? void 0 : block.size) == null ? void 0 : _q.width}`);\n}\nfunction $621417c51b042472$var$findBounds(block, { minX: minX, minY: minY, maxX: maxX, maxY: maxY } = {\n minX: 0,\n minY: 0,\n maxX: 0,\n maxY: 0\n}) {\n if (block.size && block.id !== \"root\") {\n const { x: x, y: y, width: width, height: height } = block.size;\n if (x - width / 2 < minX) minX = x - width / 2;\n if (y - height / 2 < minY) minY = y - height / 2;\n if (x + width / 2 > maxX) maxX = x + width / 2;\n if (y + height / 2 > maxY) maxY = y + height / 2;\n }\n if (block.children) for (const child of block.children)({ minX: minX, minY: minY, maxX: maxX, maxY: maxY } = $621417c51b042472$var$findBounds(child, {\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY\n }));\n return {\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY\n };\n}\nfunction $621417c51b042472$var$layout(db2) {\n const root = db2.getBlock(\"root\");\n if (!root) return;\n $621417c51b042472$var$setBlockSizes(root, db2, 0, 0);\n $621417c51b042472$var$layoutBlocks(root);\n (0, $4jcZX.l).debug(\"getBlocks\", JSON.stringify(root, null, 2));\n const { minX: minX, minY: minY, maxX: maxX, maxY: maxY } = $621417c51b042472$var$findBounds(root);\n const height = maxY - minY;\n const width = maxX - minX;\n return {\n x: minX,\n y: minY,\n width: width,\n height: height\n };\n}\nconst $621417c51b042472$var$getClasses = function(text, diagObj) {\n return diagObj.db.getClasses();\n};\nconst $621417c51b042472$var$draw = async function(text, id, _version, diagObj) {\n const { securityLevel: securityLevel, block: conf } = (0, $4jcZX.F)();\n const db2 = diagObj.db;\n let sandboxElement;\n if (securityLevel === \"sandbox\") sandboxElement = (0, $2YFJl.select)(\"#i\" + id);\n const root = securityLevel === \"sandbox\" ? (0, $2YFJl.select)(sandboxElement.nodes()[0].contentDocument.body) : (0, $2YFJl.select)(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : (0, $2YFJl.select)(`[id=\"${id}\"]`);\n const markers = [\n \"point\",\n \"circle\",\n \"cross\"\n ];\n (0, $hl1Sc.a)(svg, markers, diagObj.type, id);\n const bl = db2.getBlocks();\n const blArr = db2.getBlocksFlat();\n const edges = db2.getEdges();\n const nodes = svg.insert(\"g\").attr(\"class\", \"block\");\n await $621417c51b042472$var$calculateBlockSizes(nodes, bl, db2);\n const bounds = $621417c51b042472$var$layout(db2);\n await $621417c51b042472$var$insertBlocks(nodes, bl, db2);\n await $621417c51b042472$var$insertEdges(nodes, edges, blArr, db2, id);\n if (bounds) {\n const bounds2 = bounds;\n const magicFactor = Math.max(1, Math.round(0.125 * (bounds2.width / bounds2.height)));\n const height = bounds2.height + magicFactor + 10;\n const width = bounds2.width + 10;\n const { useMaxWidth: useMaxWidth } = conf;\n (0, $4jcZX.i)(svg, height, width, !!useMaxWidth);\n (0, $4jcZX.l).debug(\"Here Bounds\", bounds, bounds2);\n svg.attr(\"viewBox\", `${bounds2.x - 5} ${bounds2.y - 5} ${bounds2.width + 10} ${bounds2.height + 10}`);\n }\n (0, $2YFJl.scaleOrdinal)((0, $2YFJl.schemeTableau10));\n};\nconst $621417c51b042472$var$renderer = {\n draw: $621417c51b042472$var$draw,\n getClasses: $621417c51b042472$var$getClasses\n};\nconst $621417c51b042472$export$6118d022d940d562 = {\n parser: $621417c51b042472$var$parser$1,\n db: $621417c51b042472$var$db$1,\n renderer: $621417c51b042472$var$renderer,\n styles: $621417c51b042472$var$flowStyles\n};\n\n});\nparcelRegister(\"hNIl0\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $cf5967d89366f433$export$2e2bcd8739ae039);\n\nvar $gbpSA = parcelRequire(\"gbpSA\");\n/** Used to compose bitmasks for cloning. */ var $cf5967d89366f433$var$CLONE_SYMBOLS_FLAG = 4;\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */ function $cf5967d89366f433$var$clone(value) {\n return (0, $gbpSA.default)(value, $cf5967d89366f433$var$CLONE_SYMBOLS_FLAG);\n}\nvar $cf5967d89366f433$export$2e2bcd8739ae039 = $cf5967d89366f433$var$clone;\n\n});\n\nparcelRegister(\"jDsny\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", () => $e4b7ac47d39c456d$export$2e2bcd8739ae039);\n/* IMPORT */ \nvar $i9He5 = parcelRequire(\"i9He5\");\n\nvar $9VYra = parcelRequire(\"9VYra\");\n/* MAIN */ const $e4b7ac47d39c456d$var$channel = (color, channel)=>{\n return (0, $i9He5.default).lang.round((0, $9VYra.default).parse(color)[channel]);\n};\nvar /* EXPORT */ $e4b7ac47d39c456d$export$2e2bcd8739ae039 = $e4b7ac47d39c456d$var$channel;\n\n});\n\n\n\n//# sourceMappingURL=blockDiagram-9f4a6865.49a29f31.js.map\n","var _a, _b;\nimport { c as getConfig, F as getConfig$1, l as log, v as clear$1, e as common, k as getStylesFromArray, i as configureSvgSize } from \"./mermaid-6dc72991.js\";\nimport clone from \"lodash-es/clone.js\";\nimport * as khroma from \"khroma\";\nimport { h as insertEdge, f as insertEdgeLabel, j as positionEdgeLabel, e as insertNode, p as positionNode, a as insertMarkers } from \"./edges-066a5561.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, scaleOrdinal, schemeTableau10 } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"./createText-ca0c5216.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 7], $V1 = [1, 13], $V2 = [1, 14], $V3 = [1, 15], $V4 = [1, 19], $V5 = [1, 16], $V6 = [1, 17], $V7 = [1, 18], $V8 = [8, 30], $V9 = [8, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Va = [1, 23], $Vb = [1, 24], $Vc = [8, 15, 16, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Vd = [8, 15, 16, 21, 27, 28, 29, 30, 31, 32, 40, 44, 47], $Ve = [1, 49];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"spaceLines\": 3, \"SPACELINE\": 4, \"NL\": 5, \"separator\": 6, \"SPACE\": 7, \"EOF\": 8, \"start\": 9, \"BLOCK_DIAGRAM_KEY\": 10, \"document\": 11, \"stop\": 12, \"statement\": 13, \"link\": 14, \"LINK\": 15, \"START_LINK\": 16, \"LINK_LABEL\": 17, \"STR\": 18, \"nodeStatement\": 19, \"columnsStatement\": 20, \"SPACE_BLOCK\": 21, \"blockStatement\": 22, \"classDefStatement\": 23, \"cssClassStatement\": 24, \"styleStatement\": 25, \"node\": 26, \"SIZE\": 27, \"COLUMNS\": 28, \"id-block\": 29, \"end\": 30, \"block\": 31, \"NODE_ID\": 32, \"nodeShapeNLabel\": 33, \"dirList\": 34, \"DIR\": 35, \"NODE_DSTART\": 36, \"NODE_DEND\": 37, \"BLOCK_ARROW_START\": 38, \"BLOCK_ARROW_END\": 39, \"classDef\": 40, \"CLASSDEF_ID\": 41, \"CLASSDEF_STYLEOPTS\": 42, \"DEFAULT\": 43, \"class\": 44, \"CLASSENTITY_IDS\": 45, \"STYLECLASS\": 46, \"style\": 47, \"STYLE_ENTITY_IDS\": 48, \"STYLE_DEFINITION_DATA\": 49, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACELINE\", 5: \"NL\", 7: \"SPACE\", 8: \"EOF\", 10: \"BLOCK_DIAGRAM_KEY\", 15: \"LINK\", 16: \"START_LINK\", 17: \"LINK_LABEL\", 18: \"STR\", 21: \"SPACE_BLOCK\", 27: \"SIZE\", 28: \"COLUMNS\", 29: \"id-block\", 30: \"end\", 31: \"block\", 32: \"NODE_ID\", 35: \"DIR\", 36: \"NODE_DSTART\", 37: \"NODE_DEND\", 38: \"BLOCK_ARROW_START\", 39: \"BLOCK_ARROW_END\", 40: \"classDef\", 41: \"CLASSDEF_ID\", 42: \"CLASSDEF_STYLEOPTS\", 43: \"DEFAULT\", 44: \"class\", 45: \"CLASSENTITY_IDS\", 46: \"STYLECLASS\", 47: \"style\", 48: \"STYLE_ENTITY_IDS\", 49: \"STYLE_DEFINITION_DATA\" },\n productions_: [0, [3, 1], [3, 2], [3, 2], [6, 1], [6, 1], [6, 1], [9, 3], [12, 1], [12, 1], [12, 2], [12, 2], [11, 1], [11, 2], [14, 1], [14, 4], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [19, 3], [19, 2], [19, 1], [20, 1], [22, 4], [22, 3], [26, 1], [26, 2], [34, 1], [34, 2], [33, 3], [33, 4], [23, 3], [23, 3], [24, 3], [25, 3]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.getLogger().debug(\"Rule: separator (NL) \");\n break;\n case 5:\n yy.getLogger().debug(\"Rule: separator (Space) \");\n break;\n case 6:\n yy.getLogger().debug(\"Rule: separator (EOF) \");\n break;\n case 7:\n yy.getLogger().debug(\"Rule: hierarchy: \", $$[$0 - 1]);\n yy.setHierarchy($$[$0 - 1]);\n break;\n case 8:\n yy.getLogger().debug(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().debug(\"Stop EOF \");\n break;\n case 10:\n yy.getLogger().debug(\"Stop NL2 \");\n break;\n case 11:\n yy.getLogger().debug(\"Stop EOF2 \");\n break;\n case 12:\n yy.getLogger().debug(\"Rule: statement: \", $$[$0]);\n typeof $$[$0].length === \"number\" ? this.$ = $$[$0] : this.$ = [$$[$0]];\n break;\n case 13:\n yy.getLogger().debug(\"Rule: statement #2: \", $$[$0 - 1]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 14:\n yy.getLogger().debug(\"Rule: link: \", $$[$0], yytext);\n this.$ = { edgeTypeStr: $$[$0], label: \"\" };\n break;\n case 15:\n yy.getLogger().debug(\"Rule: LABEL link: \", $$[$0 - 3], $$[$0 - 1], $$[$0]);\n this.$ = { edgeTypeStr: $$[$0], label: $$[$0 - 1] };\n break;\n case 18:\n const num = parseInt($$[$0]);\n const spaceId = yy.generateId();\n this.$ = { id: spaceId, type: \"space\", label: \"\", width: num, children: [] };\n break;\n case 23:\n yy.getLogger().debug(\"Rule: (nodeStatement link node) \", $$[$0 - 2], $$[$0 - 1], $$[$0], \" typestr: \", $$[$0 - 1].edgeTypeStr);\n const edgeData = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr);\n this.$ = [\n { id: $$[$0 - 2].id, label: $$[$0 - 2].label, type: $$[$0 - 2].type, directions: $$[$0 - 2].directions },\n { id: $$[$0 - 2].id + \"-\" + $$[$0].id, start: $$[$0 - 2].id, end: $$[$0].id, label: $$[$0 - 1].label, type: \"edge\", directions: $$[$0].directions, arrowTypeEnd: edgeData, arrowTypeStart: \"arrow_open\" },\n { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions }\n ];\n break;\n case 24:\n yy.getLogger().debug(\"Rule: nodeStatement (abc88 node size) \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1].id, label: $$[$0 - 1].label, type: yy.typeStr2Type($$[$0 - 1].typeStr), directions: $$[$0 - 1].directions, widthInColumns: parseInt($$[$0], 10) };\n break;\n case 25:\n yy.getLogger().debug(\"Rule: nodeStatement (node) \", $$[$0]);\n this.$ = { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions, widthInColumns: 1 };\n break;\n case 26:\n yy.getLogger().debug(\"APA123\", this ? this : \"na\");\n yy.getLogger().debug(\"COLUMNS: \", $$[$0]);\n this.$ = { type: \"column-setting\", columns: $$[$0] === \"auto\" ? -1 : parseInt($$[$0]) };\n break;\n case 27:\n yy.getLogger().debug(\"Rule: id-block statement : \", $$[$0 - 2], $$[$0 - 1]);\n yy.generateId();\n this.$ = { ...$$[$0 - 2], type: \"composite\", children: $$[$0 - 1] };\n break;\n case 28:\n yy.getLogger().debug(\"Rule: blockStatement : \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n const id = yy.generateId();\n this.$ = { id, type: \"composite\", label: \"\", children: $$[$0 - 1] };\n break;\n case 29:\n yy.getLogger().debug(\"Rule: node (NODE_ID separator): \", $$[$0]);\n this.$ = { id: $$[$0] };\n break;\n case 30:\n yy.getLogger().debug(\"Rule: node (NODE_ID nodeShapeNLabel separator): \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1], label: $$[$0].label, typeStr: $$[$0].typeStr, directions: $$[$0].directions };\n break;\n case 31:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0]);\n this.$ = [$$[$0]];\n break;\n case 32:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0 - 1], $$[$0]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 33:\n yy.getLogger().debug(\"Rule: nodeShapeNLabel: \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 2] + $$[$0], label: $$[$0 - 1] };\n break;\n case 34:\n yy.getLogger().debug(\"Rule: BLOCK_ARROW nodeShapeNLabel: \", $$[$0 - 3], $$[$0 - 2], \" #3:\", $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 3] + $$[$0], label: $$[$0 - 2], directions: $$[$0 - 1] };\n break;\n case 35:\n case 36:\n this.$ = { type: \"classDef\", id: $$[$0 - 1].trim(), css: $$[$0].trim() };\n break;\n case 37:\n this.$ = { type: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 38:\n this.$ = { type: \"applyStyles\", id: $$[$0 - 1].trim(), stylesStr: $$[$0].trim() };\n break;\n }\n },\n table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 11: 3, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 8: [1, 20] }, o($V8, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 21: $V0, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }), o($V9, [2, 16], { 14: 22, 15: $Va, 16: $Vb }), o($V9, [2, 17]), o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), o($V9, [2, 21]), o($V9, [2, 22]), o($Vc, [2, 25], { 27: [1, 25] }), o($V9, [2, 26]), { 19: 26, 26: 12, 32: $V4 }, { 11: 27, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 41: [1, 28], 43: [1, 29] }, { 45: [1, 30] }, { 48: [1, 31] }, o($Vd, [2, 29], { 33: 32, 36: [1, 33], 38: [1, 34] }), { 1: [2, 7] }, o($V8, [2, 13]), { 26: 35, 32: $V4 }, { 32: [2, 14] }, { 17: [1, 36] }, o($Vc, [2, 24]), { 11: 37, 13: 4, 14: 22, 15: $Va, 16: $Vb, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 30: [1, 38] }, { 42: [1, 39] }, { 42: [1, 40] }, { 46: [1, 41] }, { 49: [1, 42] }, o($Vd, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, o($Vc, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, o($V9, [2, 28]), o($V9, [2, 35]), o($V9, [2, 36]), o($V9, [2, 37]), o($V9, [2, 38]), { 37: [1, 47] }, { 34: 48, 35: $Ve }, { 15: [1, 50] }, o($V9, [2, 27]), o($Vd, [2, 33]), { 39: [1, 51] }, { 34: 52, 35: $Ve, 39: [2, 31] }, { 32: [2, 15] }, o($Vd, [2, 34]), { 39: [2, 32] }],\n defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 10;\n case 1:\n yy.getLogger().debug(\"Found space-block\");\n return 31;\n case 2:\n yy.getLogger().debug(\"Found nl-block\");\n return 31;\n case 3:\n yy.getLogger().debug(\"Found space-block\");\n return 29;\n case 4:\n yy.getLogger().debug(\".\", yy_.yytext);\n break;\n case 5:\n yy.getLogger().debug(\"_\", yy_.yytext);\n break;\n case 6:\n return 5;\n case 7:\n yy_.yytext = -1;\n return 28;\n case 8:\n yy_.yytext = yy_.yytext.replace(/columns\\s+/, \"\");\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 28;\n case 9:\n this.pushState(\"md_string\");\n break;\n case 10:\n return \"MD_STR\";\n case 11:\n this.popState();\n break;\n case 12:\n this.pushState(\"string\");\n break;\n case 13:\n yy.getLogger().debug(\"LEX: POPPING STR:\", yy_.yytext);\n this.popState();\n break;\n case 14:\n yy.getLogger().debug(\"LEX: STR end:\", yy_.yytext);\n return \"STR\";\n case 15:\n yy_.yytext = yy_.yytext.replace(/space\\:/, \"\");\n yy.getLogger().debug(\"SPACE NUM (LEX)\", yy_.yytext);\n return 21;\n case 16:\n yy_.yytext = \"1\";\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 21;\n case 17:\n return 43;\n case 18:\n return \"LINKSTYLE\";\n case 19:\n return \"INTERPOLATE\";\n case 20:\n this.pushState(\"CLASSDEF\");\n return 40;\n case 21:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n case 22:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 41;\n case 23:\n this.popState();\n return 42;\n case 24:\n this.pushState(\"CLASS\");\n return 44;\n case 25:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 45;\n case 26:\n this.popState();\n return 46;\n case 27:\n this.pushState(\"STYLE_STMNT\");\n return 47;\n case 28:\n this.popState();\n this.pushState(\"STYLE_DEFINITION\");\n return 48;\n case 29:\n this.popState();\n return 49;\n case 30:\n this.pushState(\"acc_title\");\n return \"acc_title\";\n case 31:\n this.popState();\n return \"acc_title_value\";\n case 32:\n this.pushState(\"acc_descr\");\n return \"acc_descr\";\n case 33:\n this.popState();\n return \"acc_descr_value\";\n case 34:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 35:\n this.popState();\n break;\n case 36:\n return \"acc_descr_multiline_value\";\n case 37:\n return 30;\n case 38:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 39:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 40:\n this.popState();\n yy.getLogger().debug(\"Lex: ))\");\n return \"NODE_DEND\";\n case 41:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 42:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 43:\n this.popState();\n yy.getLogger().debug(\"Lex: (-\");\n return \"NODE_DEND\";\n case 44:\n this.popState();\n yy.getLogger().debug(\"Lex: -)\");\n return \"NODE_DEND\";\n case 45:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 46:\n this.popState();\n yy.getLogger().debug(\"Lex: ]]\");\n return \"NODE_DEND\";\n case 47:\n this.popState();\n yy.getLogger().debug(\"Lex: (\");\n return \"NODE_DEND\";\n case 48:\n this.popState();\n yy.getLogger().debug(\"Lex: ])\");\n return \"NODE_DEND\";\n case 49:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n case 50:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n case 51:\n this.popState();\n yy.getLogger().debug(\"Lex: )]\");\n return \"NODE_DEND\";\n case 52:\n this.popState();\n yy.getLogger().debug(\"Lex: )\");\n return \"NODE_DEND\";\n case 53:\n this.popState();\n yy.getLogger().debug(\"Lex: ]>\");\n return \"NODE_DEND\";\n case 54:\n this.popState();\n yy.getLogger().debug(\"Lex: ]\");\n return \"NODE_DEND\";\n case 55:\n yy.getLogger().debug(\"Lexa: -)\");\n this.pushState(\"NODE\");\n return 36;\n case 56:\n yy.getLogger().debug(\"Lexa: (-\");\n this.pushState(\"NODE\");\n return 36;\n case 57:\n yy.getLogger().debug(\"Lexa: ))\");\n this.pushState(\"NODE\");\n return 36;\n case 58:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 59:\n yy.getLogger().debug(\"Lex: (((\");\n this.pushState(\"NODE\");\n return 36;\n case 60:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 61:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 62:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 63:\n yy.getLogger().debug(\"Lexc: >\");\n this.pushState(\"NODE\");\n return 36;\n case 64:\n yy.getLogger().debug(\"Lexa: ([\");\n this.pushState(\"NODE\");\n return 36;\n case 65:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 66:\n this.pushState(\"NODE\");\n return 36;\n case 67:\n this.pushState(\"NODE\");\n return 36;\n case 68:\n this.pushState(\"NODE\");\n return 36;\n case 69:\n this.pushState(\"NODE\");\n return 36;\n case 70:\n this.pushState(\"NODE\");\n return 36;\n case 71:\n this.pushState(\"NODE\");\n return 36;\n case 72:\n this.pushState(\"NODE\");\n return 36;\n case 73:\n yy.getLogger().debug(\"Lexa: [\");\n this.pushState(\"NODE\");\n return 36;\n case 74:\n this.pushState(\"BLOCK_ARROW\");\n yy.getLogger().debug(\"LEX ARR START\");\n return 38;\n case 75:\n yy.getLogger().debug(\"Lex: NODE_ID\", yy_.yytext);\n return 32;\n case 76:\n yy.getLogger().debug(\"Lex: EOF\", yy_.yytext);\n return 8;\n case 77:\n this.pushState(\"md_string\");\n break;\n case 78:\n this.pushState(\"md_string\");\n break;\n case 79:\n return \"NODE_DESCR\";\n case 80:\n this.popState();\n break;\n case 81:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n break;\n case 82:\n yy.getLogger().debug(\"LEX ARR: Starting string\");\n this.pushState(\"string\");\n break;\n case 83:\n yy.getLogger().debug(\"LEX: NODE_DESCR:\", yy_.yytext);\n return \"NODE_DESCR\";\n case 84:\n yy.getLogger().debug(\"LEX POPPING\");\n this.popState();\n break;\n case 85:\n yy.getLogger().debug(\"Lex: =>BAE\");\n this.pushState(\"ARROW_DIR\");\n break;\n case 86:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (right): dir:\", yy_.yytext);\n return \"DIR\";\n case 87:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (left):\", yy_.yytext);\n return \"DIR\";\n case 88:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (x):\", yy_.yytext);\n return \"DIR\";\n case 89:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (y):\", yy_.yytext);\n return \"DIR\";\n case 90:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (up):\", yy_.yytext);\n return \"DIR\";\n case 91:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (down):\", yy_.yytext);\n return \"DIR\";\n case 92:\n yy_.yytext = \"]>\";\n yy.getLogger().debug(\"Lex (ARROW_DIR end):\", yy_.yytext);\n this.popState();\n this.popState();\n return \"BLOCK_ARROW_END\";\n case 93:\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n case 94:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 95:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 96:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 97:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 98:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 99:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 100:\n this.pushState(\"md_string\");\n break;\n case 101:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n return \"LINK_LABEL\";\n case 102:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n case 103:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 104:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 105:\n yy.getLogger().debug(\"Lex: COLON\", yy_.yytext);\n yy_.yytext = yy_.yytext.slice(1);\n return 27;\n }\n },\n rules: [/^(?:block-beta\\b)/, /^(?:block\\s+)/, /^(?:block\\n+)/, /^(?:block:)/, /^(?:[\\s]+)/, /^(?:[\\n]+)/, /^(?:((\\u000D\\u000A)|(\\u000A)))/, /^(?:columns\\s+auto\\b)/, /^(?:columns\\s+[\\d]+)/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:space[:]\\d+)/, /^(?:space\\b)/, /^(?:default\\b)/, /^(?:linkStyle\\b)/, /^(?:interpolate\\b)/, /^(?:classDef\\s+)/, /^(?:DEFAULT\\s+)/, /^(?:\\w+\\s+)/, /^(?:[^\\n]*)/, /^(?:class\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:style\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:end\\b\\s*)/, /^(?:\\(\\(\\()/, /^(?:\\)\\)\\))/, /^(?:[\\)]\\))/, /^(?:\\}\\})/, /^(?:\\})/, /^(?:\\(-)/, /^(?:-\\))/, /^(?:\\(\\()/, /^(?:\\]\\])/, /^(?:\\()/, /^(?:\\]\\))/, /^(?:\\\\\\])/, /^(?:\\/\\])/, /^(?:\\)\\])/, /^(?:[\\)])/, /^(?:\\]>)/, /^(?:[\\]])/, /^(?:-\\))/, /^(?:\\(-)/, /^(?:\\)\\))/, /^(?:\\))/, /^(?:\\(\\(\\()/, /^(?:\\(\\()/, /^(?:\\{\\{)/, /^(?:\\{)/, /^(?:>)/, /^(?:\\(\\[)/, /^(?:\\()/, /^(?:\\[\\[)/, /^(?:\\[\\|)/, /^(?:\\[\\()/, /^(?:\\)\\)\\))/, /^(?:\\[\\\\)/, /^(?:\\[\\/)/, /^(?:\\[\\\\)/, /^(?:\\[)/, /^(?:<\\[)/, /^(?:[^\\(\\[\\n\\-\\)\\{\\}\\s\\<\\>:]+)/, /^(?:$)/, /^(?:[\"][`])/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:\\]>\\s*\\()/, /^(?:,?\\s*right\\s*)/, /^(?:,?\\s*left\\s*)/, /^(?:,?\\s*x\\s*)/, /^(?:,?\\s*y\\s*)/, /^(?:,?\\s*up\\s*)/, /^(?:,?\\s*down\\s*)/, /^(?:\\)\\s*)/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?:\\s*~~[\\~]+\\s*)/, /^(?:\\s*[xo<]?--\\s*)/, /^(?:\\s*[xo<]?==\\s*)/, /^(?:\\s*[xo<]?-\\.\\s*)/, /^(?:[\"][`])/, /^(?:[\"])/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?::\\d+)/],\n conditions: { \"STYLE_DEFINITION\": { \"rules\": [29], \"inclusive\": false }, \"STYLE_STMNT\": { \"rules\": [28], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [23], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [21, 22], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [26], \"inclusive\": false }, \"CLASS\": { \"rules\": [25], \"inclusive\": false }, \"LLABEL\": { \"rules\": [100, 101, 102, 103, 104], \"inclusive\": false }, \"ARROW_DIR\": { \"rules\": [86, 87, 88, 89, 90, 91, 92], \"inclusive\": false }, \"BLOCK_ARROW\": { \"rules\": [77, 82, 85], \"inclusive\": false }, \"NODE\": { \"rules\": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 78, 81], \"inclusive\": false }, \"md_string\": { \"rules\": [10, 11, 79, 80], \"inclusive\": false }, \"space\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [13, 14, 83, 84], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [35, 36], \"inclusive\": false }, \"acc_descr\": { \"rules\": [33], \"inclusive\": false }, \"acc_title\": { \"rules\": [31], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 24, 27, 30, 32, 34, 37, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, 105], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet blockDatabase = {};\nlet edgeList = [];\nlet edgeCount = {};\nconst COLOR_KEYWORD = \"color\";\nconst FILL_KEYWORD = \"fill\";\nconst BG_FILL = \"bgFill\";\nconst STYLECLASS_SEP = \",\";\nconst config = getConfig();\nlet classes = {};\nconst sanitizeText = (txt) => common.sanitizeText(txt, config);\nconst addStyleClass = function(id, styleAttributes = \"\") {\n if (classes[id] === void 0) {\n classes[id] = { id, styles: [], textStyles: [] };\n }\n const foundClass = classes[id];\n if (styleAttributes !== void 0 && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (attrib.match(COLOR_KEYWORD)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n};\nconst addStyle2Node = function(id, styles = \"\") {\n const foundBlock = blockDatabase[id];\n if (styles !== void 0 && styles !== null) {\n foundBlock.styles = styles.split(STYLECLASS_SEP);\n }\n};\nconst setCssClass = function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundBlock = blockDatabase[id];\n if (foundBlock === void 0) {\n const trimmedId = id.trim();\n blockDatabase[trimmedId] = { id: trimmedId, type: \"na\", children: [] };\n foundBlock = blockDatabase[trimmedId];\n }\n if (!foundBlock.classes) {\n foundBlock.classes = [];\n }\n foundBlock.classes.push(cssClassName);\n });\n};\nconst populateBlockDatabase = (_blockList, parent) => {\n const blockList = _blockList.flat();\n const children = [];\n for (const block of blockList) {\n if (block.label) {\n block.label = sanitizeText(block.label);\n }\n if (block.type === \"classDef\") {\n addStyleClass(block.id, block.css);\n continue;\n }\n if (block.type === \"applyClass\") {\n setCssClass(block.id, (block == null ? void 0 : block.styleClass) || \"\");\n continue;\n }\n if (block.type === \"applyStyles\") {\n if (block == null ? void 0 : block.stylesStr) {\n addStyle2Node(block.id, block == null ? void 0 : block.stylesStr);\n }\n continue;\n }\n if (block.type === \"column-setting\") {\n parent.columns = block.columns || -1;\n } else if (block.type === \"edge\") {\n if (edgeCount[block.id]) {\n edgeCount[block.id]++;\n } else {\n edgeCount[block.id] = 1;\n }\n block.id = edgeCount[block.id] + \"-\" + block.id;\n edgeList.push(block);\n } else {\n if (!block.label) {\n if (block.type === \"composite\") {\n block.label = \"\";\n } else {\n block.label = block.id;\n }\n }\n const newBlock = !blockDatabase[block.id];\n if (newBlock) {\n blockDatabase[block.id] = block;\n } else {\n if (block.type !== \"na\") {\n blockDatabase[block.id].type = block.type;\n }\n if (block.label !== block.id) {\n blockDatabase[block.id].label = block.label;\n }\n }\n if (block.children) {\n populateBlockDatabase(block.children, block);\n }\n if (block.type === \"space\") {\n const w = block.width || 1;\n for (let j = 0; j < w; j++) {\n const newBlock2 = clone(block);\n newBlock2.id = newBlock2.id + \"-\" + j;\n blockDatabase[newBlock2.id] = newBlock2;\n children.push(newBlock2);\n }\n } else if (newBlock) {\n children.push(block);\n }\n }\n }\n parent.children = children;\n};\nlet blocks = [];\nlet rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\nconst clear = () => {\n log.debug(\"Clear called\");\n clear$1();\n rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\n blockDatabase = { root: rootBlock };\n blocks = [];\n classes = {};\n edgeList = [];\n edgeCount = {};\n};\nfunction typeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"[]\":\n return \"square\";\n case \"()\":\n log.debug(\"we have a round\");\n return \"round\";\n case \"(())\":\n return \"circle\";\n case \">]\":\n return \"rect_left_inv_arrow\";\n case \"{}\":\n return \"diamond\";\n case \"{{}}\":\n return \"hexagon\";\n case \"([])\":\n return \"stadium\";\n case \"[[]]\":\n return \"subroutine\";\n case \"[()]\":\n return \"cylinder\";\n case \"((()))\":\n return \"doublecircle\";\n case \"[//]\":\n return \"lean_right\";\n case \"[\\\\\\\\]\":\n return \"lean_left\";\n case \"[/\\\\]\":\n return \"trapezoid\";\n case \"[\\\\/]\":\n return \"inv_trapezoid\";\n case \"<[]>\":\n return \"block_arrow\";\n default:\n return \"na\";\n }\n}\nfunction edgeTypeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"==\":\n return \"thick\";\n default:\n return \"normal\";\n }\n}\nfunction edgeStrToEdgeData(typeStr) {\n switch (typeStr.trim()) {\n case \"--x\":\n return \"arrow_cross\";\n case \"--o\":\n return \"arrow_circle\";\n default:\n return \"arrow_point\";\n }\n}\nlet cnt = 0;\nconst generateId = () => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n};\nconst setHierarchy = (block) => {\n rootBlock.children = block;\n populateBlockDatabase(block, rootBlock);\n blocks = rootBlock.children;\n};\nconst getColumns = (blockId) => {\n const block = blockDatabase[blockId];\n if (!block) {\n return -1;\n }\n if (block.columns) {\n return block.columns;\n }\n if (!block.children) {\n return -1;\n }\n return block.children.length;\n};\nconst getBlocksFlat = () => {\n return [...Object.values(blockDatabase)];\n};\nconst getBlocks = () => {\n return blocks || [];\n};\nconst getEdges = () => {\n return edgeList;\n};\nconst getBlock = (id) => {\n return blockDatabase[id];\n};\nconst setBlock = (block) => {\n blockDatabase[block.id] = block;\n};\nconst getLogger = () => console;\nconst getClasses$1 = function() {\n return classes;\n};\nconst db = {\n getConfig: () => getConfig$1().block,\n typeStr2Type,\n edgeTypeStr2Type,\n edgeStrToEdgeData,\n getLogger,\n getBlocksFlat,\n getBlocks,\n getEdges,\n setHierarchy,\n getBlock,\n setBlock,\n getColumns,\n getClasses: getClasses$1,\n clear,\n generateId\n};\nconst db$1 = db;\nconst fade = (color, opacity) => {\n const channel = khroma.channel;\n const r = channel(color, \"r\");\n const g = channel(color, \"g\");\n const b = channel(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${fade(options.edgeLabelBackground, 0.5)};\n // background-color:\n }\n\n .node .cluster {\n // fill: ${fade(options.mainBkg, 0.5)};\n fill: ${fade(options.clusterBkg, 0.5)};\n stroke: ${fade(options.clusterBorder, 0.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`;\nconst flowStyles = getStyles;\nfunction getNodeFromBlock(block, db2, positioned = false) {\n var _a2, _b2, _c;\n const vertex = block;\n let classStr = \"default\";\n if ((((_a2 = vertex == null ? void 0 : vertex.classes) == null ? void 0 : _a2.length) || 0) > 0) {\n classStr = ((vertex == null ? void 0 : vertex.classes) || []).join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n let radius = 0;\n let shape = \"\";\n let padding2;\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n shape = \"rect\";\n break;\n case \"composite\":\n radius = 0;\n shape = \"composite\";\n padding2 = 0;\n break;\n case \"square\":\n shape = \"rect\";\n break;\n case \"diamond\":\n shape = \"question\";\n break;\n case \"hexagon\":\n shape = \"hexagon\";\n break;\n case \"block_arrow\":\n shape = \"block_arrow\";\n break;\n case \"odd\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n shape = \"lean_right\";\n break;\n case \"lean_left\":\n shape = \"lean_left\";\n break;\n case \"trapezoid\":\n shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n shape = \"inv_trapezoid\";\n break;\n case \"rect_left_inv_arrow\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n shape = \"circle\";\n break;\n case \"ellipse\":\n shape = \"ellipse\";\n break;\n case \"stadium\":\n shape = \"stadium\";\n break;\n case \"subroutine\":\n shape = \"subroutine\";\n break;\n case \"cylinder\":\n shape = \"cylinder\";\n break;\n case \"group\":\n shape = \"rect\";\n break;\n case \"doublecircle\":\n shape = \"doublecircle\";\n break;\n default:\n shape = \"rect\";\n }\n const styles = getStylesFromArray((vertex == null ? void 0 : vertex.styles) || []);\n const vertexText = vertex.label;\n const bounds = vertex.size || { width: 0, height: 0, x: 0, y: 0 };\n const node = {\n labelStyle: styles.labelStyle,\n shape,\n labelText: vertexText,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n directions: vertex.directions,\n width: bounds.width,\n height: bounds.height,\n x: bounds.x,\n y: bounds.y,\n positioned,\n intersect: void 0,\n type: vertex.type,\n padding: padding2 ?? (((_c = (_b2 = getConfig$1()) == null ? void 0 : _b2.block) == null ? void 0 : _c.padding) || 0)\n };\n return node;\n}\nasync function calculateBlockSize(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, false);\n if (node.type === \"group\") {\n return;\n }\n const nodeEl = await insertNode(elem, node);\n const boundingBox = nodeEl.node().getBBox();\n const obj = db2.getBlock(node.id);\n obj.size = { width: boundingBox.width, height: boundingBox.height, x: 0, y: 0, node: nodeEl };\n db2.setBlock(obj);\n nodeEl.remove();\n}\nasync function insertBlockPositioned(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, true);\n const obj = db2.getBlock(node.id);\n if (obj.type !== \"space\") {\n await insertNode(elem, node);\n block.intersect = node == null ? void 0 : node.intersect;\n positionNode(node);\n }\n}\nasync function performOperations(elem, blocks2, db2, operation) {\n for (const block of blocks2) {\n await operation(elem, block, db2);\n if (block.children) {\n await performOperations(elem, block.children, db2, operation);\n }\n }\n}\nasync function calculateBlockSizes(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, calculateBlockSize);\n}\nasync function insertBlocks(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, insertBlockPositioned);\n}\nasync function insertEdges(elem, edges, blocks2, db2, id) {\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n });\n g.setGraph({\n rankdir: \"TB\",\n nodesep: 10,\n ranksep: 10,\n marginx: 8,\n marginy: 8\n });\n for (const block of blocks2) {\n if (block.size) {\n g.setNode(block.id, {\n width: block.size.width,\n height: block.size.height,\n intersect: block.intersect\n });\n }\n }\n for (const edge of edges) {\n if (edge.start && edge.end) {\n const startBlock = db2.getBlock(edge.start);\n const endBlock = db2.getBlock(edge.end);\n if ((startBlock == null ? void 0 : startBlock.size) && (endBlock == null ? void 0 : endBlock.size)) {\n const start = startBlock.size;\n const end = endBlock.size;\n const points = [\n { x: start.x, y: start.y },\n { x: start.x + (end.x - start.x) / 2, y: start.y + (end.y - start.y) / 2 },\n { x: end.x, y: end.y }\n ];\n await insertEdge(\n elem,\n { v: edge.start, w: edge.end, name: edge.id },\n {\n ...edge,\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n },\n void 0,\n \"block\",\n g,\n id\n );\n if (edge.label) {\n await insertEdgeLabel(elem, {\n ...edge,\n label: edge.label,\n labelStyle: \"stroke: #333; stroke-width: 1.5px;fill:none;\",\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n });\n await positionEdgeLabel(\n { ...edge, x: points[1].x, y: points[1].y },\n {\n originalPath: points\n }\n );\n }\n }\n }\n }\n}\nconst padding = ((_b = (_a = getConfig()) == null ? void 0 : _a.block) == null ? void 0 : _b.padding) || 8;\nfunction calculateBlockPosition(columns, position) {\n if (columns === 0 || !Number.isInteger(columns)) {\n throw new Error(\"Columns must be an integer !== 0.\");\n }\n if (position < 0 || !Number.isInteger(position)) {\n throw new Error(\"Position must be a non-negative integer.\" + position);\n }\n if (columns < 0) {\n return { px: position, py: 0 };\n }\n if (columns === 1) {\n return { px: 0, py: position };\n }\n const px = position % columns;\n const py = Math.floor(position / columns);\n return { px, py };\n}\nconst getMaxChildSize = (block) => {\n let maxWidth = 0;\n let maxHeight = 0;\n for (const child of block.children) {\n const { width, height, x, y } = child.size || { width: 0, height: 0, x: 0, y: 0 };\n log.debug(\n \"getMaxChildSize abc95 child:\",\n child.id,\n \"width:\",\n width,\n \"height:\",\n height,\n \"x:\",\n x,\n \"y:\",\n y,\n child.type\n );\n if (child.type === \"space\") {\n continue;\n }\n if (width > maxWidth) {\n maxWidth = width / (block.widthInColumns || 1);\n }\n if (height > maxHeight) {\n maxHeight = height;\n }\n }\n return { width: maxWidth, height: maxHeight };\n};\nfunction setBlockSizes(block, db2, siblingWidth = 0, siblingHeight = 0) {\n var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n log.debug(\n \"setBlockSizes abc95 (start)\",\n block.id,\n (_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x,\n \"block width =\",\n block == null ? void 0 : block.size,\n \"sieblingWidth\",\n siblingWidth\n );\n if (!((_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.width)) {\n block.size = {\n width: siblingWidth,\n height: siblingHeight,\n x: 0,\n y: 0\n };\n }\n let maxWidth = 0;\n let maxHeight = 0;\n if (((_c = block.children) == null ? void 0 : _c.length) > 0) {\n for (const child of block.children) {\n setBlockSizes(child, db2);\n }\n const childSize = getMaxChildSize(block);\n maxWidth = childSize.width;\n maxHeight = childSize.height;\n log.debug(\"setBlockSizes abc95 maxWidth of\", block.id, \":s children is \", maxWidth, maxHeight);\n for (const child of block.children) {\n if (child.size) {\n log.debug(\n `abc95 Setting size of children of ${block.id} id=${child.id} ${maxWidth} ${maxHeight} ${child.size}`\n );\n child.size.width = maxWidth * (child.widthInColumns || 1) + padding * ((child.widthInColumns || 1) - 1);\n child.size.height = maxHeight;\n child.size.x = 0;\n child.size.y = 0;\n log.debug(\n `abc95 updating size of ${block.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}`\n );\n }\n }\n for (const child of block.children) {\n setBlockSizes(child, db2, maxWidth, maxHeight);\n }\n const columns = block.columns || -1;\n let numItems = 0;\n for (const child of block.children) {\n numItems += child.widthInColumns || 1;\n }\n let xSize = block.children.length;\n if (columns > 0 && columns < numItems) {\n xSize = columns;\n }\n block.widthInColumns || 1;\n const ySize = Math.ceil(numItems / xSize);\n let width = xSize * (maxWidth + padding) + padding;\n let height = ySize * (maxHeight + padding) + padding;\n if (width < siblingWidth) {\n log.debug(\n `Detected to small siebling: abc95 ${block.id} sieblingWidth ${siblingWidth} sieblingHeight ${siblingHeight} width ${width}`\n );\n width = siblingWidth;\n height = siblingHeight;\n const childWidth = (siblingWidth - xSize * padding - padding) / xSize;\n const childHeight = (siblingHeight - ySize * padding - padding) / ySize;\n log.debug(\"Size indata abc88\", block.id, \"childWidth\", childWidth, \"maxWidth\", maxWidth);\n log.debug(\"Size indata abc88\", block.id, \"childHeight\", childHeight, \"maxHeight\", maxHeight);\n log.debug(\"Size indata abc88 xSize\", xSize, \"padding\", padding);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n child.size.height = childHeight;\n child.size.x = 0;\n child.size.y = 0;\n }\n }\n }\n log.debug(\n `abc95 (finale calc) ${block.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block.children.length} width=${Math.max(width, ((_d = block.size) == null ? void 0 : _d.width) || 0)}`\n );\n if (width < (((_e = block == null ? void 0 : block.size) == null ? void 0 : _e.width) || 0)) {\n width = ((_f = block == null ? void 0 : block.size) == null ? void 0 : _f.width) || 0;\n const num = columns > 0 ? Math.min(block.children.length, columns) : block.children.length;\n if (num > 0) {\n const childWidth = (width - num * padding - padding) / num;\n log.debug(\"abc95 (growing to fit) width\", block.id, width, (_g = block.size) == null ? void 0 : _g.width, childWidth);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n }\n }\n }\n }\n block.size = {\n width,\n height,\n x: 0,\n y: 0\n };\n }\n log.debug(\n \"setBlockSizes abc94 (done)\",\n block.id,\n (_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x,\n (_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width,\n (_j = block == null ? void 0 : block.size) == null ? void 0 : _j.y,\n (_k = block == null ? void 0 : block.size) == null ? void 0 : _k.height\n );\n}\nfunction layoutBlocks(block, db2) {\n var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n log.debug(\n `abc85 layout blocks (=>layoutBlocks) ${block.id} x: ${(_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x} y: ${(_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.y} width: ${(_c = block == null ? void 0 : block.size) == null ? void 0 : _c.width}`\n );\n const columns = block.columns || -1;\n log.debug(\"layoutBlocks columns abc95\", block.id, \"=>\", columns, block);\n if (block.children && // find max width of children\n block.children.length > 0) {\n const width = ((_e = (_d = block == null ? void 0 : block.children[0]) == null ? void 0 : _d.size) == null ? void 0 : _e.width) || 0;\n const widthOfChildren = block.children.length * width + (block.children.length - 1) * padding;\n log.debug(\"widthOfChildren 88\", widthOfChildren, \"posX\");\n let columnPos = 0;\n log.debug(\"abc91 block?.size?.x\", block.id, (_f = block == null ? void 0 : block.size) == null ? void 0 : _f.x);\n let startingPosX = ((_g = block == null ? void 0 : block.size) == null ? void 0 : _g.x) ? ((_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x) + (-((_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width) / 2 || 0) : -padding;\n let rowPos = 0;\n for (const child of block.children) {\n const parent = block;\n if (!child.size) {\n continue;\n }\n const { width: width2, height } = child.size;\n const { px, py } = calculateBlockPosition(columns, columnPos);\n if (py != rowPos) {\n rowPos = py;\n startingPosX = ((_j = block == null ? void 0 : block.size) == null ? void 0 : _j.x) ? ((_k = block == null ? void 0 : block.size) == null ? void 0 : _k.x) + (-((_l = block == null ? void 0 : block.size) == null ? void 0 : _l.width) / 2 || 0) : -padding;\n log.debug(\"New row in layout for block\", block.id, \" and child \", child.id, rowPos);\n }\n log.debug(\n `abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${(_m = parent == null ? void 0 : parent.size) == null ? void 0 : _m.x},${(_n = parent == null ? void 0 : parent.size) == null ? void 0 : _n.y}) parent: ${parent.id} width: ${width2}${padding}`\n );\n if (parent.size) {\n const halfWidth = width2 / 2;\n child.size.x = startingPosX + padding + halfWidth;\n log.debug(\n `abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${padding} width=${width2} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}`\n );\n startingPosX = child.size.x + halfWidth;\n child.size.y = parent.size.y - parent.size.height / 2 + py * (height + padding) + height / 2 + padding;\n log.debug(\n `abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${padding}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}`\n );\n }\n if (child.children) {\n layoutBlocks(child);\n }\n columnPos += (child == null ? void 0 : child.widthInColumns) || 1;\n log.debug(\"abc88 columnsPos\", child, columnPos);\n }\n }\n log.debug(\n `layout blocks (<==layoutBlocks) ${block.id} x: ${(_o = block == null ? void 0 : block.size) == null ? void 0 : _o.x} y: ${(_p = block == null ? void 0 : block.size) == null ? void 0 : _p.y} width: ${(_q = block == null ? void 0 : block.size) == null ? void 0 : _q.width}`\n );\n}\nfunction findBounds(block, { minX, minY, maxX, maxY } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) {\n if (block.size && block.id !== \"root\") {\n const { x, y, width, height } = block.size;\n if (x - width / 2 < minX) {\n minX = x - width / 2;\n }\n if (y - height / 2 < minY) {\n minY = y - height / 2;\n }\n if (x + width / 2 > maxX) {\n maxX = x + width / 2;\n }\n if (y + height / 2 > maxY) {\n maxY = y + height / 2;\n }\n }\n if (block.children) {\n for (const child of block.children) {\n ({ minX, minY, maxX, maxY } = findBounds(child, { minX, minY, maxX, maxY }));\n }\n }\n return { minX, minY, maxX, maxY };\n}\nfunction layout(db2) {\n const root = db2.getBlock(\"root\");\n if (!root) {\n return;\n }\n setBlockSizes(root, db2, 0, 0);\n layoutBlocks(root);\n log.debug(\"getBlocks\", JSON.stringify(root, null, 2));\n const { minX, minY, maxX, maxY } = findBounds(root);\n const height = maxY - minY;\n const width = maxX - minX;\n return { x: minX, y: minY, width, height };\n}\nconst getClasses = function(text, diagObj) {\n return diagObj.db.getClasses();\n};\nconst draw = async function(text, id, _version, diagObj) {\n const { securityLevel, block: conf } = getConfig$1();\n const db2 = diagObj.db;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n const markers = [\"point\", \"circle\", \"cross\"];\n insertMarkers(svg, markers, diagObj.type, id);\n const bl = db2.getBlocks();\n const blArr = db2.getBlocksFlat();\n const edges = db2.getEdges();\n const nodes = svg.insert(\"g\").attr(\"class\", \"block\");\n await calculateBlockSizes(nodes, bl, db2);\n const bounds = layout(db2);\n await insertBlocks(nodes, bl, db2);\n await insertEdges(nodes, edges, blArr, db2, id);\n if (bounds) {\n const bounds2 = bounds;\n const magicFactor = Math.max(1, Math.round(0.125 * (bounds2.width / bounds2.height)));\n const height = bounds2.height + magicFactor + 10;\n const width = bounds2.width + 10;\n const { useMaxWidth } = conf;\n configureSvgSize(svg, height, width, !!useMaxWidth);\n log.debug(\"Here Bounds\", bounds, bounds2);\n svg.attr(\n \"viewBox\",\n `${bounds2.x - 5} ${bounds2.y - 5} ${bounds2.width + 10} ${bounds2.height + 10}`\n );\n }\n scaleOrdinal(schemeTableau10);\n};\nconst renderer = {\n draw,\n getClasses\n};\nconst diagram = {\n parser: parser$1,\n db: db$1,\n renderer,\n styles: flowStyles\n};\nexport {\n diagram\n};\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst channel = (color, channel) => {\n return _.lang.round(Color.parse(color)[channel]);\n};\n/* EXPORT */\nexport default channel;\n"],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","parcelRequire","$parcel$global","globalThis","parcelRegister","register","module","exports","$621417c51b042472$export$6118d022d940d562","$621417c51b042472$var$_a","$621417c51b042472$var$_b","$4jcZX","$hNIl0","$jDsny","$b1Vti","$hl1Sc","$4LkSm","$2YFJl","$621417c51b042472$var$parser","o","k","o2","l","length","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","parser2","trace","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","getLogger","debug","setHierarchy","$","concat","edgeTypeStr","label","num","parseInt","spaceId","generateId","id","type","width","children","edgeData","edgeStrToEdgeData","directions","start","end","arrowTypeEnd","arrowTypeStart","typeStr2Type","typeStr","widthInColumns","columns","trim","css","styleClass","stylesStr","table","defaultActions","parseError","str","hash","recoverable","error","Error","parse","input","self","stack","tstack","vstack","lstack","args","slice","call","arguments","lexer2","create","lexer","sharedState","prototype","hasOwnProperty","setInput","parser","yylloc","yyloc","push","ranges","options","getPrototypeOf","symbol","state","action","r","p","len","newState","expected","yyval","lex","token","pop","Array","errStr","showPosition","join","text","match","line","loc","first_line","last_line","first_column","last_column","range","apply","Parser","EOF","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","unput","lines","split","substr","oldLines","more","reject","backtrack_lexer","less","pastInput","past","replace","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","index","rules","_currentRules","i","flex","begin","condition","popState","conditions","topState","Math","abs","pushState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","$621417c51b042472$var$blockDatabase","$621417c51b042472$var$edgeList","$621417c51b042472$var$edgeCount","$621417c51b042472$var$COLOR_KEYWORD","$621417c51b042472$var$FILL_KEYWORD","$621417c51b042472$var$config","$621417c51b042472$var$classes","$621417c51b042472$var$sanitizeText","txt","sanitizeText","$621417c51b042472$var$addStyleClass","styleAttributes","styles","textStyles","foundClass","forEach","attrib","fixedAttrib","newStyle2","newStyle1","$621417c51b042472$var$addStyle2Node","foundBlock","$621417c51b042472$var$setCssClass","itemIds","cssClassName","trimmedId","classes","$621417c51b042472$var$populateBlockDatabase","_blockList","parent","blockList","flat","block","newBlock","w","j","newBlock2","default","$621417c51b042472$var$blocks","$621417c51b042472$var$rootBlock","$621417c51b042472$var$cnt","$621417c51b042472$var$fade","color","opacity","channel","g","b","$621417c51b042472$var$getNodeFromBlock","db2","positioned","_a2","_b2","_c","padding2","classStr","vertex","radius","shape","vertexText","bounds","size","height","x","y","labelStyle","labelText","rx","ry","class","style","intersect","padding","F","$621417c51b042472$var$calculateBlockSize","elem","node","nodeEl","boundingBox","getBBox","obj","getBlock","setBlock","remove","$621417c51b042472$var$insertBlockPositioned","$621417c51b042472$var$performOperations","blocks2","operation","$621417c51b042472$var$calculateBlockSizes","$621417c51b042472$var$insertBlocks","$621417c51b042472$var$insertEdges","edges","Graph","multigraph","compound","setGraph","rankdir","nodesep","ranksep","marginx","marginy","setNode","edge","startBlock","endBlock","points","h","name","f","originalPath","$621417c51b042472$var$padding","$621417c51b042472$var$getMaxChildSize","maxWidth","maxHeight","child","db","getConfig","edgeTypeStr2Type","console","getBlocksFlat","values","getBlocks","getEdges","getColumns","blockId","getClasses","clear","root","random","toString","renderer","draw","_version","diagObj","sandboxElement","securityLevel","conf","select","nodes","contentDocument","body","svg","a","bl","blArr","insert","attr","$621417c51b042472$var$layout","$621417c51b042472$var$setBlockSizes","siblingWidth","siblingHeight","_d","_e","_f","_g","_h","_i","_j","_k","childSize","numItems","xSize","ySize","ceil","childWidth","childHeight","max","min","$621417c51b042472$var$layoutBlocks","_l","_m","_n","_o","_p","_q","widthOfChildren","columnPos","startingPosX","rowPos","width2","px","py","$621417c51b042472$var$calculateBlockPosition","position","Number","isInteger","floor","halfWidth","JSON","stringify","minX","minY","maxX","maxY","$621417c51b042472$var$findBounds","magicFactor","round","bounds2","useMaxWidth","scaleOrdinal","schemeTableau10","fontFamily","nodeTextColor","textColor","titleColor","mainBkg","nodeBorder","arrowheadColor","lineColor","edgeLabelBackground","clusterBkg","clusterBorder","tertiaryColor","border2","$cf5967d89366f433$export$2e2bcd8739ae039","$gbpSA","value","$e4b7ac47d39c456d$export$2e2bcd8739ae039","$i9He5","$9VYra","lang"],"version":3,"file":"blockDiagram-9f4a6865.49a29f31.js.map"}