cc-viewer 1.6.293 → 1.6.294

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/assets/App-C66LoBEz.js +2 -0
  2. package/dist/assets/App-eFrjLzF_.css +1 -0
  3. package/dist/assets/{MdxEditorPanel-Cf01KF6Z.js → MdxEditorPanel-B8xrlDZJ.js} +1 -1
  4. package/dist/assets/{Mobile-BJlGkvAP.js → Mobile-fsi8-Lpb.js} +1 -1
  5. package/dist/assets/{_baseUniq-CPUnJ5bQ.js → _baseUniq-r3p3rodd.js} +1 -1
  6. package/dist/assets/{arc-WhuJ-oY5.js → arc-CjTV5gxc.js} +1 -1
  7. package/dist/assets/{architectureDiagram-Q4EWVU46-CWx77Yhd.js → architectureDiagram-Q4EWVU46-BqzjXpCq.js} +1 -1
  8. package/dist/assets/{blockDiagram-DXYQGD6D-D7AQLCoj.js → blockDiagram-DXYQGD6D-CLyFfeHh.js} +1 -1
  9. package/dist/assets/{c4Diagram-AHTNJAMY-BoPHNqCF.js → c4Diagram-AHTNJAMY-BaO-0tuc.js} +1 -1
  10. package/dist/assets/{channel-B9Ja6Xkc.js → channel-yOyhvOLV.js} +1 -1
  11. package/dist/assets/{chunk-4BX2VUAB-B-b0RYab.js → chunk-4BX2VUAB-CMTnvZkS.js} +1 -1
  12. package/dist/assets/{chunk-4TB4RGXK-BK_V34yf.js → chunk-4TB4RGXK-QI41m9WP.js} +1 -1
  13. package/dist/assets/{chunk-55IACEB6-D-kMbu-2.js → chunk-55IACEB6-C4ZO8bM3.js} +1 -1
  14. package/dist/assets/{chunk-EDXVE4YY-CEtSkZzd.js → chunk-EDXVE4YY-Bo8P4o65.js} +1 -1
  15. package/dist/assets/{chunk-FMBD7UC4-BXa_7Pn3.js → chunk-FMBD7UC4-CTHLGcHh.js} +1 -1
  16. package/dist/assets/{chunk-OYMX7WX6-tvM_OApS.js → chunk-OYMX7WX6-D0OHxKGd.js} +1 -1
  17. package/dist/assets/{chunk-QZHKN3VN-DrEmcVHf.js → chunk-QZHKN3VN-CoYnjUpS.js} +1 -1
  18. package/dist/assets/{chunk-YZCP3GAM-D2M9T_R5.js → chunk-YZCP3GAM-BY71mTXM.js} +1 -1
  19. package/dist/assets/classDiagram-6PBFFD2Q-C9o5ip5q.js +1 -0
  20. package/dist/assets/classDiagram-v2-HSJHXN6E-C9o5ip5q.js +1 -0
  21. package/dist/assets/clone-GDqN3kwT.js +1 -0
  22. package/dist/assets/{cose-bilkent-S5V4N54A-H7bkwu5F.js → cose-bilkent-S5V4N54A-DUNsA_MT.js} +1 -1
  23. package/dist/assets/{dagre-KV5264BT-DKXEGN18.js → dagre-KV5264BT-BzlT2Exr.js} +1 -1
  24. package/dist/assets/{diagram-5BDNPKRD-DZFhwpI3.js → diagram-5BDNPKRD-CiqQK3Ci.js} +1 -1
  25. package/dist/assets/{diagram-G4DWMVQ6-Crg9GlIk.js → diagram-G4DWMVQ6-BciK18tQ.js} +1 -1
  26. package/dist/assets/{diagram-MMDJMWI5-B8Qn1fKP.js → diagram-MMDJMWI5-C1WH1vfU.js} +1 -1
  27. package/dist/assets/{diagram-TYMM5635-BHE1LjtY.js → diagram-TYMM5635-CR5RzJ6u.js} +1 -1
  28. package/dist/assets/{erDiagram-SMLLAGMA-BaEqFWLd.js → erDiagram-SMLLAGMA-NJQKXu51.js} +1 -1
  29. package/dist/assets/{flowDiagram-DWJPFMVM-b2ukTawV.js → flowDiagram-DWJPFMVM-Cjx5t_1H.js} +1 -1
  30. package/dist/assets/{ganttDiagram-T4ZO3ILL-D5quyFgK.js → ganttDiagram-T4ZO3ILL-YFTDBBiU.js} +1 -1
  31. package/dist/assets/{gitGraphDiagram-UUTBAWPF-BE1H5_fN.js → gitGraphDiagram-UUTBAWPF-C2muKahz.js} +1 -1
  32. package/dist/assets/{graph-D_JLoOax.js → graph-I1olozIg.js} +1 -1
  33. package/dist/assets/{index-Cx8bk0Tp.js → index-7vxIrUNA.js} +1 -1
  34. package/dist/assets/index-BTZqk5O5.js +2 -0
  35. package/dist/assets/{index-BDUs32pN.css → index-Be9T-kDq.css} +1 -1
  36. package/dist/assets/{index-CtrY6gFZ.js → index-C1RNAzAB.js} +1 -1
  37. package/dist/assets/{index-CQrdpZQb.js → index-Cf4FBg-V.js} +1 -1
  38. package/dist/assets/{index-B8UmlA4F.js → index-D-HPuqxB.js} +1 -1
  39. package/dist/assets/{index-k0AH8cvI.js → index-D2QUxu18.js} +1 -1
  40. package/dist/assets/{index-DiZ9CErG.js → index-DhzoJ5wE.js} +1 -1
  41. package/dist/assets/{index-CWjqMDrs.js → index-fhI0i2p3.js} +1 -1
  42. package/dist/assets/{infoDiagram-42DDH7IO-DQKlrVkw.js → infoDiagram-42DDH7IO-C9bza97c.js} +1 -1
  43. package/dist/assets/{ishikawaDiagram-UXIWVN3A-BchFlpPc.js → ishikawaDiagram-UXIWVN3A-BtZGipfW.js} +1 -1
  44. package/dist/assets/{journeyDiagram-VCZTEJTY-Dg1mt4df.js → journeyDiagram-VCZTEJTY-CKTp590c.js} +1 -1
  45. package/dist/assets/{jszip.min-LIb2SFoK.js → jszip.min-DDU-_oA-.js} +1 -1
  46. package/dist/assets/{kanban-definition-6JOO6SKY-226va2PS.js → kanban-definition-6JOO6SKY-BHLNWfr5.js} +1 -1
  47. package/dist/assets/{layout-rSa8rcPi.js → layout-DBmqcl9N.js} +1 -1
  48. package/dist/assets/{linear-BeARi8nH.js → linear-Br9n7mCI.js} +1 -1
  49. package/dist/assets/{mermaid.core-CDgdx9l7.js → mermaid.core-BV3ugHFm.js} +2 -2
  50. package/dist/assets/{min-B9yebCuj.js → min-D-YA3MGY.js} +1 -1
  51. package/dist/assets/{mindmap-definition-QFDTVHPH-C3apVbdg.js → mindmap-definition-QFDTVHPH-CzrYj3cB.js} +1 -1
  52. package/dist/assets/{pieDiagram-DEJITSTG-xjOQoQeL.js → pieDiagram-DEJITSTG-BAvtfiT3.js} +1 -1
  53. package/dist/assets/{quadrantDiagram-34T5L4WZ-Dq8x_VN2.js → quadrantDiagram-34T5L4WZ-i4zhnBJq.js} +1 -1
  54. package/dist/assets/{requirementDiagram-MS252O5E-CLmO1Gai.js → requirementDiagram-MS252O5E-Cb2wX9Sk.js} +1 -1
  55. package/dist/assets/{sankeyDiagram-XADWPNL6-BuUP1Eqq.js → sankeyDiagram-XADWPNL6-CcpbP6z5.js} +1 -1
  56. package/dist/assets/seqResourceLoaders-6k4uXcNn.js +2 -0
  57. package/dist/assets/{seqResourceLoaders-DWKAvGtj.css → seqResourceLoaders-De_-fYhE.css} +2 -2
  58. package/dist/assets/{sequenceDiagram-FGHM5R23-B18koU20.js → sequenceDiagram-FGHM5R23-BcbUxMmI.js} +1 -1
  59. package/dist/assets/{stateDiagram-FHFEXIEX-Cj57OCcO.js → stateDiagram-FHFEXIEX-CpIa1qoO.js} +1 -1
  60. package/dist/assets/{stateDiagram-v2-QKLJ7IA2-C01a2p--.js → stateDiagram-v2-QKLJ7IA2-d3GoyW9S.js} +1 -1
  61. package/dist/assets/{timeline-definition-GMOUNBTQ-cOlsEN_F.js → timeline-definition-GMOUNBTQ-BfQPSOuT.js} +1 -1
  62. package/dist/assets/{vendor-antd-DqFS7Zj9.js → vendor-antd-Bur5ZxWE.js} +1 -1
  63. package/dist/assets/{vendor-codemirror-B_pF4DrA.js → vendor-codemirror-Si44UqBp.js} +1 -1
  64. package/dist/assets/{vendor-mdxeditor-B_IrHcWH.js → vendor-mdxeditor-Cco3AQJS.js} +2 -2
  65. package/dist/assets/{vendor-qrcode-C4PneAS5.js → vendor-qrcode-Dn3GYC4l.js} +1 -1
  66. package/dist/assets/{vendor-virtuoso-CEGeJyDP.js → vendor-virtuoso-CW9EqKMt.js} +1 -1
  67. package/dist/assets/{vennDiagram-DHZGUBPP-BCjdwiDk.js → vennDiagram-DHZGUBPP-hTgiYDQL.js} +1 -1
  68. package/dist/assets/{wardley-RL74JXVD-CRmLlBwn.js → wardley-RL74JXVD-ByDpAPp1.js} +1 -1
  69. package/dist/assets/{wardleyDiagram-NUSXRM2D-BJYVDJ4F.js → wardleyDiagram-NUSXRM2D-D7LJTuWq.js} +1 -1
  70. package/dist/assets/{xychartDiagram-5P7HB3ND-el5C4S1Z.js → xychartDiagram-5P7HB3ND-MW_KOomO.js} +1 -1
  71. package/dist/index.html +5 -5
  72. package/package.json +1 -1
  73. package/server/lib/adapters/dingtalk-adapter.js +7 -0
  74. package/server/lib/adapters/discord-adapter.js +9 -1
  75. package/server/lib/adapters/feishu-adapter.js +19 -0
  76. package/server/lib/adapters/wecom-adapter.js +4 -0
  77. package/server/lib/im-bridge-core.js +59 -7
  78. package/server/lib/im-claude-md.js +37 -1
  79. package/server/lib/im-senders.js +73 -0
  80. package/server/routes/im.js +117 -3
  81. package/server/routes/skills.js +180 -165
  82. package/dist/assets/App-DRvRd96X.css +0 -1
  83. package/dist/assets/App-OM2oqZRW.js +0 -1
  84. package/dist/assets/classDiagram-6PBFFD2Q-CCwGJXEA.js +0 -1
  85. package/dist/assets/classDiagram-v2-HSJHXN6E-CCwGJXEA.js +0 -1
  86. package/dist/assets/clone-BuQbTPQO.js +0 -1
  87. package/dist/assets/index-CnWSVlWW.js +0 -2
  88. package/dist/assets/seqResourceLoaders-BZ6M3Jb-.js +0 -2
@@ -1 +1 @@
1
- import{E as EditorView,X as EditorSelection,a as LanguageSupport,Y as html,Z as parseMixed,_ as syntaxTree,$ as LRLanguage,a0 as styleTags,t as tags,a1 as indentNodeProp,a2 as delimitedIndent,a3 as foldNodeProp,a4 as LRParser,a5 as ExternalTokenizer}from"./vendor-codemirror-B_pF4DrA.js";import"./vendor-antd-DqFS7Zj9.js";function wordChar(code){return code>=65&&code<=90||code>=97&&code<=122}const base=new ExternalTokenizer(input=>{let start=input.pos;for(;;){let{next:next}=input;if(next<0)break;if(123==next){let after=input.peek(1);if(123==after){if(input.pos>start)break;return void input.acceptToken(1,2)}if(37==after){if(input.pos>start)break;let scan=2,size=2;for(;;){let next2=input.peek(scan);if(32==next2||10==next2)++scan;else if(35==next2)for(++scan;;){let comment2=input.peek(scan);if(comment2<0||10==comment2)break;scan++}else{if(45!=next2||2!=size){let end=101==next2&&110==input.peek(scan+1)&&100==input.peek(scan+2);return void input.acceptToken(end?3:2,size)}size=++scan}}}}if(input.advance(),10==next)break}input.pos>start&&input.acceptToken(180)});function rawTokenizer(endTag,text2,tagStart2){return new ExternalTokenizer(input=>{let start=input.pos;for(;;){let{next:next}=input;if(123==next&&37==input.peek(1)){let scan=2;for(;;scan++){let ch=input.peek(scan);if(32!=ch&&10!=ch)break}let word="";for(;;scan++){let next2=input.peek(scan);if(!wordChar(next2))break;word+=String.fromCharCode(next2)}if(word==endTag){if(input.pos>start)break;input.acceptToken(tagStart2,2);break}}else if(next<0)break;if(input.advance(),10==next)break}input.pos>start&&input.acceptToken(text2)})}const comment=rawTokenizer("endcomment",182,5),raw=rawTokenizer("endraw",181,4),inlineComment=new ExternalTokenizer(input=>{if(35==input.next){for(input.advance();!(10==input.next||input.next<0)&&(37!=input.next&&125!=input.next||125!=input.peek(1));)input.advance();input.acceptToken(6)}}),spec_identifier={__proto__:null,contains:34,or:38,and:38,true:52,false:52,empty:54,forloop:57,tablerowloop:59,continue:61,in:131,with:197,for:199,as:201,if:237,endif:241,unless:247,endunless:251,elsif:255,else:259,case:265,endcase:269,when:273,endfor:281,tablerow:287,endtablerow:291,break:295,cycle:301,echo:305,render:309,include:313,assign:317,capture:323,endcapture:327,increment:331,decrement:335},spec_TagName={__proto__:null,if:86,endif:90,elsif:94,else:98,unless:104,endunless:108,case:114,endcase:118,when:122,for:128,endfor:138,tablerow:144,endtablerow:148,break:152,continue:156,cycle:160,comment:166,endcomment:172,raw:178,endraw:184,echo:188,render:192,include:204,assign:208,capture:214,endcapture:218,increment:222,decrement:226,liquid:230},parser=LRParser.deserialize({version:14,states:"KtQYOPOOOOOP'#F{'#F{OeOaO'#CdOsQhO'#CfO!bQxO'#DSO#{OPO'#DVO$ZOPO'#D`O$iOPO'#DeO$wOPO'#DlO%VOPO'#DtO%eOSO'#EPO%jOQO'#EVO%oOPO'#EiOOOP'#Ge'#GeOOOP'#G]'#G]OOOP'#Fz'#FzQYOPOOOOOP-E9y-E9yOOQW'#Cg'#CgO&cQ!jO,59QO&jQ!jO'#G^OsQhO'#CtOOQW'#Gb'#GbOOQW'#Gc'#GcOOQW'#Gd'#GdOOQW'#G^'#G^OOOP,59n,59nO)YQhO,59nOsQhO,59rOsQhO,59vO)dQhO,59xOsQhO,59{OsQhO,5:QOsQhO,5:UO!]QhO,5:XO!]QhO,5:aO)iQhO,5:eO)nQhO,5:gO)sQhO,5:iO)xQhO,5:lO)}QhO,5:rOsQhO,5:wOsQhO,5:yOsQhO,5;POsQhO,5;ROsQhO,5;UOsQhO,5;YOsQhO,5;[O+^QhO,5;^O+eOPO'#CdOOOP,59q,59qO#{OPO,59qO+sQxO'#DYOOOP,59z,59zO$ZOPO,59zO+xQxO'#DcOOOP,5:P,5:PO$iOPO,5:PO+}QxO'#DhOOOP,5:W,5:WO$wOPO,5:WO,SQxO'#DrOOOP,5:`,5:`O%VOPO,5:`O,XQxO'#DwOOOS'#GQ'#GQO,^OSO'#ESO,fOSO,5:kOOOQ'#GR'#GRO,kOQO'#EYO,sOQO,5:qOOOP,5;T,5;TO%oOPO,5;TO,xQxO'#ElOOOP-E9x-E9xO,}Q#|O,59SOsQhO,59VOsQhO,59WOsQhO,59WO-SQhO'#C}OOQW'#F|'#F|O-XQhO1G.lOOOP1G.l1G.lOsQhO,59WOsQhO,59[O-rQ!jO,59`O-yQ!jO1G/YO.QQhO1G/YOOOP1G/Y1G/YO.YQ!jO1G/^O.aQ!jO1G/bOOOP1G/d1G/dO.hQ!jO1G/gO.oQ!jO1G/lO.vQ!jO1G/pO/QQhO1G/sO/QQhO1G/{OOOP1G0P1G0POOOP1G0R1G0RO/VQhO1G0TOOOS1G0W1G0WOOOQ1G0^1G0^O/bQ!jO1G0cO/iQ!jO1G0eO/yQ!jO1G0kO0QQ!jO1G0mO0XQ!jO1G0pO0`Q!jO1G0tO0gQ!jO1G0vOOQW'#Gh'#GhOOQW'#Gk'#GkOsQhO'#EuO0nQhO'#EtOOQW'#Gm'#GmOsQhO'#EzO0uQhO'#EyOOQW'#Go'#GoOsQhO'#FOOOQW'#Gp'#GpOOQW'#FQ'#FQOOQW'#Gq'#GqOsQhO'#FTO0|QhO'#FSOOQW'#Gs'#GsOsQhO'#FXO!]QhO'#F[O1TQhO'#FZOOQW'#Gu'#GuO!]QhO'#F`O1[QhO'#F_OOQW'#Gw'#GwOOQW'#Fd'#FdOOQW'#Ff'#FfOOQW'#Gx'#GxO1cQhO'#FgOOQW'#Gy'#GyOsQhO'#FiOOQW'#Gz'#GzOsQhO'#FkOOQW'#G{'#G{OsQhO'#FmOOQW'#G|'#G|OsQhO'#FoOOQW'#G}'#G}OsQhO'#FrO1hQhO'#FqOOQW'#HP'#HPOsQhO'#FvOOQW'#HQ'#HQOsQhO'#FxOOQW'#Gj'#GjOOQW'#GT'#GTO1oQhO1G0xOOOP1G0x1G0xOOOP1G/]1G/]O1vQhO,59tOOOP1G/f1G/fO1{QhO,59}OOOP1G/k1G/kO2QQhO,5:SOOOP1G/r1G/rO2VQhO,5:^OOOP1G/z1G/zO2[QhO,5:cOOOS-E:O-E:OOOOP1G0V1G0VO2aQxO'#ETOOOQ-E:P-E:POOOP1G0]1G0]O2fQxO'#EZOOOP1G0o1G0oO2kQhO,5;WOOQW1G.n1G.nO2pQ!jO1G.qO5aQ!jO1G.rO5hQ!jO1G.rOOQW'#DP'#DPO7vQhO,59iOOQW-E9z-E9zOOOP7+$W7+$WO9pQ!jO1G.rO9wQ!jO1G.vOsQhO1G.zO<VQhO7+$tOOOP7+$t7+$tOOOP7+$x7+$xOOOP7+$|7+$|OOOP7+%R7+%ROOOP7+%W7+%WOsQhO'#F}O<_QhO7+%[OOOP7+%[7+%[OOQW'#Gf'#GfOsQhO7+%_OsQhO7+%gO<gQhO'#GPO<lQhO7+%oOOOP7+%o7+%oO<tQhO7+%oO<yQhO7+%}OOOP7+%}7+%}OOQW'#Gg'#GgO!]QhO'#EaOsQhO'#EaOOQW'#GS'#GSO=RQhO7+&POOOP7+&P7+&POOOP7+&V7+&VO=aQhO7+&XOOOP7+&X7+&XOOOP7+&[7+&[OOOP7+&`7+&`OOOP7+&b7+&bO=iQ!jO,5;aOOQW'#Gl'#GlOOQW'#Ew'#EwOOQW,5;`,5;`O0nQhO,5;`O>xQ!jO,5;fOOQW'#Gn'#GnOOQW'#E|'#E|OOQW,5;e,5;eO0uQhO,5;eO@XQ!jO,5;jOAzQ!jO,5;oOOQW'#Gr'#GrOOQW'#FV'#FVOOQW,5;n,5;nO0|QhO,5;nOCZQ!jO,5;sO/QQhO,5;vOOQW'#Gt'#GtOOQW'#F]'#F]OOQW,5;u,5;uO1TQhO,5;uO/QQhO,5;zOOQW'#Gv'#GvOOQW'#Fb'#FbOOQW,5;y,5;yO1[QhO,5;yOEPQhO,5<ROFvQ!jO,5<TOHiQ!jO,5<VOJbQ!jO,5<XOLTQ!jO,5<ZOMvQ!jO,5<^OOQW'#HO'#HOOOQW'#Ft'#FtOOQW,5<],5<]O1hQhO,5<]O! VQ!jO,5<bO!!xQ!jO,5<dOOQW-E:R-E:ROOOP7+&d7+&dOOOP1G/`1G/`OOOP1G/i1G/iOOOP1G/n1G/nOOOP1G/x1G/xOOOP1G/}1G/}O!$kQhO,5:oO!$pQhO,5:uOOOP1G0r1G0rOOQW7+$]7+$]OsQhO1G/TO!$uQ!jO7+$fOOOP<<H`<<H`O!$|Q!jO,5<iOOQW-E9{-E9{OOOP<<Hv<<HvO!&xQ!jO<<HyO!'SQ!jO<<IROOQW,5<k,5<kOOQW-E9}-E9}OOOP<<IZ<<IZO!'^QhO<<IZOOOP<<Ii<<IiO!'fQhO,5:{O!'kQ!jO,5:{OOQW-E:Q-E:QOOOP<<Ik<<IkOOOP<<Is<<IsOOQW1G0z1G0zOOQW1G1P1G1POOQW1G1Y1G1YO!)gQhO1G1_OsQhO1G1bOOQW1G1a1G1aOsQhO1G1fOOQW1G1e1G1eO!+ZQhO1G1mO!,}QhO1G1mO!-SQhO1G1oOOQW'#GU'#GUO!.vQhO1G1qO!0mQhO1G1uOOQW1G1w1G1wOOOP1G0Z1G0ZOOOP1G0a1G0aO!2aQ!jO7+$oOOQW<<HQ<<HQOOQW'#Dq'#DqO!4]QhO'#DpOOQW'#GO'#GOO!5vQhOAN>eOOOPAN>eAN>eO!6OQhOAN>mOOOPAN>mAN>mO!6WQhOAN>uOOOPAN>uAN>uOsQhO1G0gOOQW'#Gi'#GiO!]QhO1G0gO!6`Q!jO7+&|O!7rQ!jO7+'QO!9UQhO7+'XOOQW-E:S-E:SO!:xQhO<<HZOsQhO,5:[OOQW-E9|-E9|OOOPG24PG24POOOPG24XG24XOOOPG24aG24aO!<rQ!jO7+&ROOQW7+&R7+&RO!>kQhO<<JhO!?{QhO<<JlO!A]QhO<<JsO!CPQ!jO1G/v",stateData:"!Di~O%OOSUOS~OPROQSO$zPO~O$zPOPWXQWX$yWX~OgeOjiOkiOlfOmgOnhOoiOpiO%RbO~OwkOxjO{lO!PmO!RnO!UoO!ZpO!_qO!brO!jsO!ntO!puO!rvO!uwO!{xO#QyO#SzO#Y{O#[|O#_}O#c!OO#e!PO#g!QO~OPROQSOR!UO$zPO~OPROQSOR!XO$zPO~OPROQSOR![O$zPO~OPROQSOR!_O$zPO~OPROQSOR!bO$zPO~O$|!cO~O${!fO~OPROQSOR!kO$zPO~O]!mOa!uOb!oOc!pOr!qO%T!nO~OX!tO~P%}Oe!vOX%QX]%QXa%QXb%QXc%QXr%QX%T%QXi%QXx%QXu%QX#U%QX#V%QX%S%QXn%QX#j%QX#l%QX#o%QX#s%QX#u%QX#x%QX#|%QX$T%QX$X%QX$[%QX$^%QX$`%QX$b%QX$d%QX$g%QX$k%QX$m%QX#q%QX#z%QX$i%QXf%QX%R%QX#W%QX$Q%QX$V%QX~Or!qOx!zO~PsOx!}O~Ox#TO~Ox#UO~Oo#VO~Ox#WO~Ox#XO~OnhO#V#aO#j#bO#o#eO#s#hO#u#jO#x#lO#|#oO$T#sO$X#vO$[#yO$^#{O$`#}O$b$PO$d$RO$g$TO$k$WO$m$YO~Ox$_O~P*SO$zPOPWXQWXRWX~O}$aO~O!W$cO~O!]$eO~O!g$gO~O!l$iO~O$|!cOT!vX~OT$lO~O${!fOS!|X~OS$oO~O#a$qO~O^$rO~O%R$vO~OX$yOr!qO~O]!mOa!uOb!oOc!pO%T!nO~Oi$|O~P-aOx%OO~P%}Or!qOx%OO~Ox%PO~P-aOx%QO~P-aOx%RO~P-aOx%SO~P-aOu%TOx%VO~P-aO!c%WO~Ot%^Ou%ZOx%]O~Ox%`O~P%}Ou%bOx%fO#U%aO#V#aO~P-aOx%gO~P-aOx%iO~P%}Ox%jO~P-aOx%kO~P-aOx%lO~P-aO#l%nO~P*SO#q%sO~P*SO#z%yO~P*SO$Q&PO~P*SO$V&UO~P*SOo&YO~O$i&`O~P*SOx&gO~P*SOx&hO~Ox&iO~Ox&jO~Ox&kO~Ox&lO~O!x&mO~O#O&nO~Ox&oO~O%S&pO~P-aO]!mO%T!nOX`ia`ic`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~Ob`i~P2wOX`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~P-aOt&qOXqarqaxqanqa#Vqa#jqa#oqa#sqa#uqa#xqa#|qa$Tqa$Xqa$[qa$^qa$`qa$bqa$dqa$gqa$kqa$mqa#lqa#qqa#zqa$Qqa$Vqa$iqa~Ob!oO~P2wOXdirdiidixdiudi#Udi#Vdi%Sdindi#jdi#ldi#odi#sdi#udi#xdi#|di$Tdi$Xdi$[di$^di$`di$bdi$ddi$gdi$kdi$mdi#qdi#zdi$idifdi%Rdi#Wdi$Qdi$Vdi~P-aOr!qOx&sO~Ou%TOx&vO~Oo&yO~Ou%ZOx&{O~Oo&|O~Or!qOx&}O~Ou%bOx'RO#U%aO#V#aO~Or!qOx'SO~On#ia#V#ia#j#ia#l#ia#o#ia#s#ia#u#ia#x#ia#|#ia$T#ia$X#ia$[#ia$^#ia$`#ia$b#ia$d#ia$g#ia$k#ia$m#ia~P-aOn#na#V#na#j#na#o#na#q#na#s#na#u#na#x#na#|#na$T#na$X#na$[#na$^#na$`#na$b#na$d#na$g#na$k#na$m#na~P-aOn#rax#ra#V#ra#j#ra#o#ra#s#ra#u#ra#x#ra#|#ra$T#ra$X#ra$[#ra$^#ra$`#ra$b#ra$d#ra$g#ra$k#ra$m#ra#l#ra#q#ra#z#ra$Q#ra$V#ra$i#ra~P-aOn#wa#V#wa#j#wa#o#wa#s#wa#u#wa#x#wa#z#wa#|#wa$T#wa$X#wa$[#wa$^#wa$`#wa$b#wa$d#wa$g#wa$k#wa$m#wa~P-aOu%TOn#{ax#{a#V#{a#j#{a#o#{a#s#{a#u#{a#x#{a#|#{a$T#{a$X#{a$[#{a$^#{a$`#{a$b#{a$d#{a$g#{a$k#{a$m#{a#l#{a#q#{a#z#{a$Q#{a$V#{a$i#{a~P-aOt'^Ou%ZOn$Zax$Za#V$Za#j$Za#o$Za#s$Za#u$Za#x$Za#|$Za$T$Za$X$Za$[$Za$^$Za$`$Za$b$Za$d$Za$g$Za$k$Za$m$Za#l$Za#q$Za#z$Za$Q$Za$V$Za$i$Za~On$]ax$]a#V$]a#j$]a#o$]a#s$]a#u$]a#x$]a#|$]a$T$]a$X$]a$[$]a$^$]a$`$]a$b$]a$d$]a$g$]a$k$]a$m$]a#l$]a#q$]a#z$]a$Q$]a$V$]a$i$]a~P%}Ou%bO#U%aO#V#aOn$_ax$_a#j$_a#o$_a#s$_a#u$_a#x$_a#|$_a$T$_a$X$_a$[$_a$^$_a$`$_a$b$_a$d$_a$g$_a$k$_a$m$_a#l$_a#q$_a#z$_a$Q$_a$V$_a$i$_a~P-aOn$aax$aa#V$aa#j$aa#o$aa#s$aa#u$aa#x$aa#|$aa$T$aa$X$aa$[$aa$^$aa$`$aa$b$aa$d$aa$g$aa$k$aa$m$aa#l$aa#q$aa#z$aa$Q$aa$V$aa$i$aa~P-aOn$cax$ca#V$ca#j$ca#o$ca#s$ca#u$ca#x$ca#|$ca$T$ca$X$ca$[$ca$^$ca$`$ca$b$ca$d$ca$g$ca$k$ca$m$ca#l$ca#q$ca#z$ca$Q$ca$V$ca$i$ca~P%}On$fa#V$fa#j$fa#o$fa#s$fa#u$fa#x$fa#|$fa$T$fa$X$fa$[$fa$^$fa$`$fa$b$fa$d$fa$g$fa$i$fa$k$fa$m$fa~P-aOn$jax$ja#V$ja#j$ja#o$ja#s$ja#u$ja#x$ja#|$ja$T$ja$X$ja$[$ja$^$ja$`$ja$b$ja$d$ja$g$ja$k$ja$m$ja#l$ja#q$ja#z$ja$Q$ja$V$ja$i$ja~P-aOn$lax$la#V$la#j$la#o$la#s$la#u$la#x$la#|$la$T$la$X$la$[$la$^$la$`$la$b$la$d$la$g$la$k$la$m$la#l$la#q$la#z$la$Q$la$V$la$i$la~P-aOx'dO~Ox'eO~Of'gO~P-aOu$qax$qan$qa#V$qa#j$qa#o$qa#s$qa#u$qa#x$qa#|$qa$T$qa$X$qa$[$qa$^$qa$`$qa$b$qa$d$qa$g$qa$k$qa$m$qa#l$qa#q$qa#z$qa$Q$qa$V$qa$i$qaX$qar$qa~P-aOx'lO%R'hO~P-aOx'nO%R'hO~P-aOu%ZOx'pO~Ot'qO~O#W'rOu#Tax#Ta#U#Ta#V#Tan#Ta#j#Ta#o#Ta#s#Ta#u#Ta#x#Ta#|#Ta$T#Ta$X#Ta$[#Ta$^#Ta$`#Ta$b#Ta$d#Ta$g#Ta$k#Ta$m#Ta#l#Ta#q#Ta#z#Ta$Q#Ta$V#Ta$i#Ta~P-aOu%TOn#{ix#{i#V#{i#j#{i#o#{i#s#{i#u#{i#x#{i#|#{i$T#{i$X#{i$[#{i$^#{i$`#{i$b#{i$d#{i$g#{i$k#{i$m#{i#l#{i#q#{i#z#{i$Q#{i$V#{i$i#{i~Ou%ZOn$Zix$Zi#V$Zi#j$Zi#o$Zi#s$Zi#u$Zi#x$Zi#|$Zi$T$Zi$X$Zi$[$Zi$^$Zi$`$Zi$b$Zi$d$Zi$g$Zi$k$Zi$m$Zi#l$Zi#q$Zi#z$Zi$Q$Zi$V$Zi$i$Zi~Oo'vO~Or!qOn$]ix$]i#V$]i#j$]i#o$]i#s$]i#u$]i#x$]i#|$]i$T$]i$X$]i$[$]i$^$]i$`$]i$b$]i$d$]i$g$]i$k$]i$m$]i#l$]i#q$]i#z$]i$Q$]i$V$]i$i$]i~Ou%bO#U%aO#V#aOn$_ix$_i#j$_i#o$_i#s$_i#u$_i#x$_i#|$_i$T$_i$X$_i$[$_i$^$_i$`$_i$b$_i$d$_i$g$_i$k$_i$m$_i#l$_i#q$_i#z$_i$Q$_i$V$_i$i$_i~Or!qOn$cix$ci#V$ci#j$ci#o$ci#s$ci#u$ci#x$ci#|$ci$T$ci$X$ci$[$ci$^$ci$`$ci$b$ci$d$ci$g$ci$k$ci$m$ci#l$ci#q$ci#z$ci$Q$ci$V$ci$i$ci~Ou%TOXqqrqqxqqnqq#Vqq#jqq#oqq#sqq#uqq#xqq#|qq$Tqq$Xqq$[qq$^qq$`qq$bqq$dqq$gqq$kqq$mqq#lqq#qqq#zqq$Qqq$Vqq$iqq~P-aOt'yOx!dX%R!dXn!dX#V!dX#j!dX#o!dX#s!dX#u!dX#x!dX#|!dX$Q!dX$T!dX$X!dX$[!dX$^!dX$`!dX$b!dX$d!dX$g!dX$k!dX$m!dX$V!dX~Ox'{O%R'hO~Ox'|O%R'hO~Ou%ZOx'}O~O%R'hOn$Oq#V$Oq#j$Oq#o$Oq#s$Oq#u$Oq#x$Oq#|$Oq$Q$Oq$T$Oq$X$Oq$[$Oq$^$Oq$`$Oq$b$Oq$d$Oq$g$Oq$k$Oq$m$Oq~P-aO%R'hOn$Sq#V$Sq#j$Sq#o$Sq#s$Sq#u$Sq#x$Sq#|$Sq$T$Sq$V$Sq$X$Sq$[$Sq$^$Sq$`$Sq$b$Sq$d$Sq$g$Sq$k$Sq$m$Sq~P-aOu%ZOn$Zqx$Zq#V$Zq#j$Zq#o$Zq#s$Zq#u$Zq#x$Zq#|$Zq$T$Zq$X$Zq$[$Zq$^$Zq$`$Zq$b$Zq$d$Zq$g$Zq$k$Zq$m$Zq#l$Zq#q$Zq#z$Zq$Q$Zq$V$Zq$i$Zq~Ou%TOXqyrqyxqynqy#Vqy#jqy#oqy#sqy#uqy#xqy#|qy$Tqy$Xqy$[qy$^qy$`qy$bqy$dqy$gqy$kqy$mqy#lqy#qqy#zqy$Qqy$Vqy$iqy~Ou#Tqx#Tq#U#Tq#V#Tqn#Tq#j#Tq#o#Tq#s#Tq#u#Tq#x#Tq#|#Tq$T#Tq$X#Tq$[#Tq$^#Tq$`#Tq$b#Tq$d#Tq$g#Tq$k#Tq$m#Tq#l#Tq#q#Tq#z#Tq$Q#Tq$V#Tq$i#Tq~P-aO%R'hOn$Oy#V$Oy#j$Oy#o$Oy#s$Oy#u$Oy#x$Oy#|$Oy$Q$Oy$T$Oy$X$Oy$[$Oy$^$Oy$`$Oy$b$Oy$d$Oy$g$Oy$k$Oy$m$Oy~O%R'hOn$Sy#V$Sy#j$Sy#o$Sy#s$Sy#u$Sy#x$Sy#|$Sy$T$Sy$V$Sy$X$Sy$[$Sy$^$Sy$`$Sy$b$Sy$d$Sy$g$Sy$k$Sy$m$Sy~Ou%ZOn$Zyx$Zy#V$Zy#j$Zy#o$Zy#s$Zy#u$Zy#x$Zy#|$Zy$T$Zy$X$Zy$[$Zy$^$Zy$`$Zy$b$Zy$d$Zy$g$Zy$k$Zy$m$Zy#l$Zy#q$Zy#z$Zy$Q$Zy$V$Zy$i$Zy~Ox!di%R!din!di#V!di#j!di#o!di#s!di#u!di#x!di#|!di$Q!di$T!di$X!di$[!di$^!di$`!di$b!di$d!di$g!di$k!di$m!di$V!di~P-aO",goto:"@p%uPPPPPPPP%vP%v&W'hPP'h'hPPP'hPPP'hPPPPPPPP(fP(vPP(yPP(y)ZP)kP(yP(yP(y)qP*RP(y*XP*iP(yP(y*oPP+P+Z+eP(y+kP+{P(yP(yP(yP(y,RP,c,fP(y,iP,y,|P(yP(yP-PPPP(yP(yP(y-XP-iP(yP(yP(yP-o.PP.aP-o.gP.wP-oP-oP-o.}P/_P-oP-o/e/uP-o/{P0]P-oP-o-oP-oP-oP-oP-oP-o0cP0sP-oP-oP0y1i2P2o2}3a3s3y4P4V4uPPPPPP4{5]PPP'h'h8P%v9_9k9q:X:[:l:|;Q;b;f;v<W<h<l<|=Q=b=f=v>W>h>x?Y?j?z@O@`m^OTUVWX[`!T!W!Z!^!a!j!vdReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'yQ#RrQ#SsQ&O#qQ&T#tQ'O%bR(P's!wiReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym!rck!s!x!y#Y#]$}%_%h&Z&^'_'bR$w!qm]OTUVWX[`!T!W!Z!^!a!jmTOTUVWX[`!T!W!Z!^!a!jQ!STR$`!TmUOTUVWX[`!T!W!Z!^!a!jQ!VUR$b!WmVOTUVWX[`!T!W!Z!^!a!jQ!YVR$d!ZmWOTUVWX[`!T!W!Z!^!a!ja'j&w&x'k'm't'u(Q(Ra'i&w&x'k'm't'u(Q(RQ!]WR$f!^mXOTUVWX[`!T!W!Z!^!a!jQ!`XR$h!amYOTUVWX[`!T!W!Z!^!a!jR!eYR$k!emZOTUVWX[`!T!W!Z!^!a!jR!hZR$n!hS%d#Z%eT'`&['am[OTUVWX[`!T!W!Z!^!a!jQ!i[R$p!jm$[!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#d!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%p#dR'T%qm#g!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%u#gR'U%vm#n!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%{#nR'V%|m#r!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&R#rR'Y&Sm#u!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&W#uR'[&Xm$V!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&b$VR'c&cQ`OQ!TTQ!WUQ!ZVQ!^WQ!aXQ!j[_!l`!T!W!Z!^!a!jSQO`SaQ!Ri!RTUVWX[!T!W!Z!^!a!jQ!scQ!yk^$x!s!y$}%_%h'_'bQ$}!xQ%_#YQ%h#]Q'_&ZR'b&^Q%U#QU&u%U'W'xQ'W%}R'x'fQ'k&wQ'm&xW'z'k'm(Q(RQ(Q'tR(R'uQ%[#VW&z%[']'o(SQ']&YQ'o&|R(S'vQ!dYR$j!dQ!gZR$m!gQ%e#ZR'Q%eQ$^!QQ%q#dQ%v#gQ%|#nQ&S#rQ&X#uQ&c$V_&f$^%q%v%|&S&X&cQ'a&[R'w'am_OTUVWX[`!T!W!Z!^!a!jQcRQ!weQ!xkQ!{lQ!|mQ#OoQ#PpQ#QqQ#YyQ#ZzQ#[{Q#]|Q#^}Q#_!OQ#`!PQ$s!nQ$t!oQ$u!pQ$z!uQ${!vQ%m#cQ%r#fQ%w#iQ%x#mQ%}#pQ&Z#|Q&[$OQ&]$QQ&^$SQ&_$UQ&d$XQ&e$ZQ&r$|Q&t%TQ&w%XQ&x%YQ'P%cQ'f&qQ't'XQ'u'ZQ(O'qR(T'y!viReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym#x!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%X#RQ%Y#SQ'X&OR'Z&TX%c#Z%e&['al#q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cX%c#Z%e&['aR's'Pm$]!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#c!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%o#d%qm#f!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%t#g%vm#i!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#k!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#m!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%z#n%|m#p!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&Q#r&Sm#t!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&V#u&Xm#w!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#z!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#|!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$O!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$S!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$U!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&a$V&cm$X!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Z!Q#d#g#n#r#u$V$^%q%v%|&S&X&c",nodeNames:"⚠ {{ {% {% {% {% InlineComment Template Text }} Interpolation VariableName MemberExpression . PropertyName SubscriptExpression BinaryExpression contains CompareOp LogicOp AssignmentExpression AssignOp ) ( RangeExpression .. BooleanLiteral empty forloop tablerowloop continue StringLiteral NumberLiteral Filter | FilterName : , Tag TagName %} IfDirective Tag if EndTag endif Tag elsif Tag else UnlessDirective Tag unless EndTag endunless CaseDirective Tag case EndTag endcase Tag when ForDirective Tag for in Parameter ParameterName EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag continue Tag cycle Comment Tag comment CommentText EndTag endcomment RawDirective Tag raw RawText EndTag endraw Tag echo Tag render RenderParameter with for as Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement Tag liquid IfDirective Tag if EndTag endif UnlessDirective Tag unless EndTag endunless Tag elsif Tag else CaseDirective Tag case EndTag endcase Tag when ForDirective Tag EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag Tag cycle Tag echo Tag render Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement",maxTerm:220,nodeProps:[["closedBy",1,"}}",-4,2,3,4,5,"%}",23,")"],["openedBy",9,"{{",22,"(",40,"{%"],["group",-13,11,12,15,16,20,24,26,27,28,29,30,31,32,"Expression"]],skippedNodes:[0,6],repeatNodeCount:11,tokenData:")e~RmXY!|YZ!|]^!|pq!|qr#_rs#juv$[wx$gxy%Syz%X{|%^|}&x}!O&}!O!P'Z!Q![&g![!]'k!^!_'p!_!`'x!`!a'p!c!}(Q!}#O(y#P#Q)O#R#S(Q#T#o(Q#p#q)T#q#r)Y%W;'S(Q;'S;:j(s<%lO(Q~#RS%O~XY!|YZ!|]^!|pq!|~#bP!_!`#e~#jOb~~#mUOY#jZr#jrs$Ps;'S#j;'S;=`$U<%lO#j~$UOo~~$XP;=`<%l#j~$_P#q#r$b~$gOx~~$jUOY$gZw$gwx$Px;'S$g;'S;=`$|<%lO$g~%PP;=`<%l$g~%XOg~~%^Of~P%aQ!O!P%g!Q![&gP%jP!Q![%mP%rRpP!Q![%m!g!h%{#X#Y%{P&OR{|&X}!O&X!Q![&_P&[P!Q![&_P&dPpP!Q![&_P&lSpP!O!P%g!Q![&g!g!h%{#X#Y%{~&}Ou~~'QRuv$[!O!P%g!Q![&g~'`Q]S!O!P'f!Q![%m~'kOi~~'pOt~~'uPb~!_!`#e~'}Pe~!_!`#e_(ZW^WwQ%RT}!O(Q!Q![(Q!c!}(Q#R#S(Q#T#o(Q%W;'S(Q;'S;:j(s<%lO(Q_(vP;=`<%l(Q~)OO%T~~)TO%S~~)YOr~~)]P#q#r)`~)eOX~",tokenizers:[base,raw,comment,inlineComment,0,1,2,3],topRules:{Template:[0,7]},dynamicPrecedences:{190:1,191:1,192:1,194:1,195:1,196:1,197:1,199:1,200:1,201:1,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,210:1,211:1,212:1,213:1,214:1,215:1,216:1,217:1,218:1,219:1,220:1},specialized:[{term:187,get:value=>spec_identifier[value]||-1},{term:39,get:value=>spec_TagName[value]||-1}],tokenPrec:0});function completions(words,type){return words.split(" ").map(label=>({label:label,type:type}))}const Filters=completions("abs append at_least at_most capitalize ceil compact concat date default divided_by downcase escape escape_once first floor join last lstrip map minus modulo newline_to_br plus prepend remove remove_first replace replace_first reverse round rstrip size slice sort sort_natural split strip strip_html strip_newlines sum times truncate truncatewords uniq upcase url_decode url_encode where","function"),Tags=completions("cycle comment endcomment raw endraw echo increment decrement liquid if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue assign capture endcapture render include","keyword"),Expressions=completions("empty forloop tablerowloop in with as","keyword"),forloop=completions("first index index0 last length rindex","property"),tablerowloop=completions("col col0 col_first col_last first index index0 last length rindex rindex0 row","property");function liquidCompletionSource(config={}){let filters=config.filters?config.filters.concat(Filters):Filters,tags2=config.tags?config.tags.concat(Tags):Tags,exprs=config.variables?config.variables.concat(Expressions):Expressions,{properties:properties}=config;return context=>{var _a;let cx=function(context){var _a;let{state:state,pos:pos}=context,node=syntaxTree(state).resolveInner(pos,-1).enterUnfinishedNodesBefore(pos),before=(null===(_a=node.childBefore(pos))||void 0===_a?void 0:_a.name)||node.name;if("FilterName"==node.name)return{type:"filter",node:node};if(context.explicit&&"|"==before)return{type:"filter"};if("TagName"==node.name)return{type:"tag",node:node};if(context.explicit&&"{%"==before)return{type:"tag"};if("PropertyName"==node.name&&"MemberExpression"==node.parent.name)return{type:"property",node:node,target:node.parent};if("."==node.name&&"MemberExpression"==node.parent.name)return{type:"property",target:node.parent};if("MemberExpression"==node.name&&"."==before)return{type:"property",target:node};if("VariableName"==node.name)return{type:"expression",from:node.from};let word=context.matchBefore(/[\w\u00c0-\uffff]+$/);return word?{type:"expression",from:word.from}:context.explicit&&"CommentText"!=node.name&&"StringLiteral"!=node.name&&"NumberLiteral"!=node.name&&"InlineComment"!=node.name?{type:"expression"}:null}(context);if(!cx)return null;let options,from=null!==(_a=cx.from)&&void 0!==_a?_a:cx.node?cx.node.from:context.pos;return options="filter"==cx.type?filters:"tag"==cx.type?tags2:"expression"==cx.type?exprs:function(state,node,context,properties){let path=[];for(;;){let obj=node.getChild("Expression");if(!obj)return[];if("VariableName"==obj.name||"forloop"==obj.name||"tablerowloop"==obj.name){let text2=state.sliceDoc(obj.from,obj.to);if("forloop"==text2)return path.length?[]:forloop;if("tablerowloop"==text2)return path.length?[]:tablerowloop;path.unshift(text2);break}if("MemberExpression"==obj.name){let name=obj.getChild("PropertyName");name&&path.unshift(state.sliceDoc(name.from,name.to)),node=obj}else{if("SubscriptExpression"!=obj.name)return[];{let expr=obj.getChildren("Expression")[1];path.unshift("StringLiteral"==(null==expr?void 0:expr.name)?state.sliceDoc(expr.from+1,expr.to-1):"[]"),node=obj}}}return properties?properties(path,state,context):[]}(context.state,cx.target,context,properties),options.length?{options:options,from:from,validFor:/^[\w\u00c0-\uffff]*$/}:null}}const closePercentBrace=EditorView.inputHandler.of((view,from,to,text2)=>"%"==text2&&from==to&&"{}"==view.state.doc.sliceString(from-1,to+1)&&(view.dispatch(view.state.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:"%%"},range:EditorSelection.cursor(range.from+1)})),{scrollIntoView:!0,userEvent:"input.type"}),!0));function directiveIndent(except){return context=>{let back=except.test(context.textAfter);return context.lineIndent(context.node.from)+(back?0:context.unit)}}const tagLanguage=LRLanguage.define({name:"liquid",parser:parser.configure({props:[styleTags({"cycle comment endcomment raw endraw echo increment decrement liquid in with as":tags.keyword,"empty forloop tablerowloop":tags.atom,"if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue":tags.controlKeyword,"assign capture endcapture":tags.definitionKeyword,contains:tags.operatorKeyword,"render include":tags.moduleKeyword,VariableName:tags.variableName,TagName:tags.tagName,FilterName:tags.function(tags.variableName),PropertyName:tags.propertyName,CompareOp:tags.compareOperator,AssignOp:tags.definitionOperator,LogicOp:tags.logicOperator,NumberLiteral:tags.number,StringLiteral:tags.string,BooleanLiteral:tags.bool,InlineComment:tags.lineComment,CommentText:tags.blockComment,"{% %} {{ }}":tags.brace,"[ ]":tags.bracket,"( )":tags.paren,".":tags.derefOperator,", .. : |":tags.punctuation}),indentNodeProp.add({Tag:delimitedIndent({closing:"%}"}),"UnlessDirective ForDirective TablerowDirective CaptureDirective":directiveIndent(/^\s*(\{%-?\s*)?end\w/),IfDirective:directiveIndent(/^\s*(\{%-?\s*)?(endif|else|elsif)\b/),CaseDirective:directiveIndent(/^\s*(\{%-?\s*)?(endcase|when)\b/)}),foldNodeProp.add({"UnlessDirective ForDirective TablerowDirective CaptureDirective IfDirective CaseDirective RawDirective Comment"(tree){let first=tree.firstChild,last=tree.lastChild;return first&&"Tag"==first.name?{from:first.to,to:"EndTag"==last.name?last.from:tree.to}:null}})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*{%-?\s*(?:end|elsif|else|when|)$/}}),baseHTML=html();function makeLiquid(base2){return tagLanguage.configure({wrap:parseMixed(node=>node.type.isTop?{parser:base2.parser,overlay:n=>"Text"==n.name||"RawText"==n.name}:null)},"liquid")}const liquidLanguage=makeLiquid(baseHTML.language);function liquid(config={}){let base2=config.base||baseHTML,lang=base2.language==baseHTML.language?liquidLanguage:makeLiquid(base2.language);return new LanguageSupport(lang,[base2.support,lang.data.of({autocomplete:liquidCompletionSource(config)}),base2.language.data.of({closeBrackets:{brackets:["{"]}}),closePercentBrace])}export{closePercentBrace,liquid,liquidCompletionSource,liquidLanguage};
1
+ import{E as EditorView,X as EditorSelection,a as LanguageSupport,Y as html,Z as parseMixed,_ as syntaxTree,$ as LRLanguage,a0 as styleTags,t as tags,a1 as indentNodeProp,a2 as delimitedIndent,a3 as foldNodeProp,a4 as LRParser,a5 as ExternalTokenizer}from"./vendor-codemirror-Si44UqBp.js";import"./vendor-antd-Bur5ZxWE.js";function wordChar(code){return code>=65&&code<=90||code>=97&&code<=122}const base=new ExternalTokenizer(input=>{let start=input.pos;for(;;){let{next:next}=input;if(next<0)break;if(123==next){let after=input.peek(1);if(123==after){if(input.pos>start)break;return void input.acceptToken(1,2)}if(37==after){if(input.pos>start)break;let scan=2,size=2;for(;;){let next2=input.peek(scan);if(32==next2||10==next2)++scan;else if(35==next2)for(++scan;;){let comment2=input.peek(scan);if(comment2<0||10==comment2)break;scan++}else{if(45!=next2||2!=size){let end=101==next2&&110==input.peek(scan+1)&&100==input.peek(scan+2);return void input.acceptToken(end?3:2,size)}size=++scan}}}}if(input.advance(),10==next)break}input.pos>start&&input.acceptToken(180)});function rawTokenizer(endTag,text2,tagStart2){return new ExternalTokenizer(input=>{let start=input.pos;for(;;){let{next:next}=input;if(123==next&&37==input.peek(1)){let scan=2;for(;;scan++){let ch=input.peek(scan);if(32!=ch&&10!=ch)break}let word="";for(;;scan++){let next2=input.peek(scan);if(!wordChar(next2))break;word+=String.fromCharCode(next2)}if(word==endTag){if(input.pos>start)break;input.acceptToken(tagStart2,2);break}}else if(next<0)break;if(input.advance(),10==next)break}input.pos>start&&input.acceptToken(text2)})}const comment=rawTokenizer("endcomment",182,5),raw=rawTokenizer("endraw",181,4),inlineComment=new ExternalTokenizer(input=>{if(35==input.next){for(input.advance();!(10==input.next||input.next<0)&&(37!=input.next&&125!=input.next||125!=input.peek(1));)input.advance();input.acceptToken(6)}}),spec_identifier={__proto__:null,contains:34,or:38,and:38,true:52,false:52,empty:54,forloop:57,tablerowloop:59,continue:61,in:131,with:197,for:199,as:201,if:237,endif:241,unless:247,endunless:251,elsif:255,else:259,case:265,endcase:269,when:273,endfor:281,tablerow:287,endtablerow:291,break:295,cycle:301,echo:305,render:309,include:313,assign:317,capture:323,endcapture:327,increment:331,decrement:335},spec_TagName={__proto__:null,if:86,endif:90,elsif:94,else:98,unless:104,endunless:108,case:114,endcase:118,when:122,for:128,endfor:138,tablerow:144,endtablerow:148,break:152,continue:156,cycle:160,comment:166,endcomment:172,raw:178,endraw:184,echo:188,render:192,include:204,assign:208,capture:214,endcapture:218,increment:222,decrement:226,liquid:230},parser=LRParser.deserialize({version:14,states:"KtQYOPOOOOOP'#F{'#F{OeOaO'#CdOsQhO'#CfO!bQxO'#DSO#{OPO'#DVO$ZOPO'#D`O$iOPO'#DeO$wOPO'#DlO%VOPO'#DtO%eOSO'#EPO%jOQO'#EVO%oOPO'#EiOOOP'#Ge'#GeOOOP'#G]'#G]OOOP'#Fz'#FzQYOPOOOOOP-E9y-E9yOOQW'#Cg'#CgO&cQ!jO,59QO&jQ!jO'#G^OsQhO'#CtOOQW'#Gb'#GbOOQW'#Gc'#GcOOQW'#Gd'#GdOOQW'#G^'#G^OOOP,59n,59nO)YQhO,59nOsQhO,59rOsQhO,59vO)dQhO,59xOsQhO,59{OsQhO,5:QOsQhO,5:UO!]QhO,5:XO!]QhO,5:aO)iQhO,5:eO)nQhO,5:gO)sQhO,5:iO)xQhO,5:lO)}QhO,5:rOsQhO,5:wOsQhO,5:yOsQhO,5;POsQhO,5;ROsQhO,5;UOsQhO,5;YOsQhO,5;[O+^QhO,5;^O+eOPO'#CdOOOP,59q,59qO#{OPO,59qO+sQxO'#DYOOOP,59z,59zO$ZOPO,59zO+xQxO'#DcOOOP,5:P,5:PO$iOPO,5:PO+}QxO'#DhOOOP,5:W,5:WO$wOPO,5:WO,SQxO'#DrOOOP,5:`,5:`O%VOPO,5:`O,XQxO'#DwOOOS'#GQ'#GQO,^OSO'#ESO,fOSO,5:kOOOQ'#GR'#GRO,kOQO'#EYO,sOQO,5:qOOOP,5;T,5;TO%oOPO,5;TO,xQxO'#ElOOOP-E9x-E9xO,}Q#|O,59SOsQhO,59VOsQhO,59WOsQhO,59WO-SQhO'#C}OOQW'#F|'#F|O-XQhO1G.lOOOP1G.l1G.lOsQhO,59WOsQhO,59[O-rQ!jO,59`O-yQ!jO1G/YO.QQhO1G/YOOOP1G/Y1G/YO.YQ!jO1G/^O.aQ!jO1G/bOOOP1G/d1G/dO.hQ!jO1G/gO.oQ!jO1G/lO.vQ!jO1G/pO/QQhO1G/sO/QQhO1G/{OOOP1G0P1G0POOOP1G0R1G0RO/VQhO1G0TOOOS1G0W1G0WOOOQ1G0^1G0^O/bQ!jO1G0cO/iQ!jO1G0eO/yQ!jO1G0kO0QQ!jO1G0mO0XQ!jO1G0pO0`Q!jO1G0tO0gQ!jO1G0vOOQW'#Gh'#GhOOQW'#Gk'#GkOsQhO'#EuO0nQhO'#EtOOQW'#Gm'#GmOsQhO'#EzO0uQhO'#EyOOQW'#Go'#GoOsQhO'#FOOOQW'#Gp'#GpOOQW'#FQ'#FQOOQW'#Gq'#GqOsQhO'#FTO0|QhO'#FSOOQW'#Gs'#GsOsQhO'#FXO!]QhO'#F[O1TQhO'#FZOOQW'#Gu'#GuO!]QhO'#F`O1[QhO'#F_OOQW'#Gw'#GwOOQW'#Fd'#FdOOQW'#Ff'#FfOOQW'#Gx'#GxO1cQhO'#FgOOQW'#Gy'#GyOsQhO'#FiOOQW'#Gz'#GzOsQhO'#FkOOQW'#G{'#G{OsQhO'#FmOOQW'#G|'#G|OsQhO'#FoOOQW'#G}'#G}OsQhO'#FrO1hQhO'#FqOOQW'#HP'#HPOsQhO'#FvOOQW'#HQ'#HQOsQhO'#FxOOQW'#Gj'#GjOOQW'#GT'#GTO1oQhO1G0xOOOP1G0x1G0xOOOP1G/]1G/]O1vQhO,59tOOOP1G/f1G/fO1{QhO,59}OOOP1G/k1G/kO2QQhO,5:SOOOP1G/r1G/rO2VQhO,5:^OOOP1G/z1G/zO2[QhO,5:cOOOS-E:O-E:OOOOP1G0V1G0VO2aQxO'#ETOOOQ-E:P-E:POOOP1G0]1G0]O2fQxO'#EZOOOP1G0o1G0oO2kQhO,5;WOOQW1G.n1G.nO2pQ!jO1G.qO5aQ!jO1G.rO5hQ!jO1G.rOOQW'#DP'#DPO7vQhO,59iOOQW-E9z-E9zOOOP7+$W7+$WO9pQ!jO1G.rO9wQ!jO1G.vOsQhO1G.zO<VQhO7+$tOOOP7+$t7+$tOOOP7+$x7+$xOOOP7+$|7+$|OOOP7+%R7+%ROOOP7+%W7+%WOsQhO'#F}O<_QhO7+%[OOOP7+%[7+%[OOQW'#Gf'#GfOsQhO7+%_OsQhO7+%gO<gQhO'#GPO<lQhO7+%oOOOP7+%o7+%oO<tQhO7+%oO<yQhO7+%}OOOP7+%}7+%}OOQW'#Gg'#GgO!]QhO'#EaOsQhO'#EaOOQW'#GS'#GSO=RQhO7+&POOOP7+&P7+&POOOP7+&V7+&VO=aQhO7+&XOOOP7+&X7+&XOOOP7+&[7+&[OOOP7+&`7+&`OOOP7+&b7+&bO=iQ!jO,5;aOOQW'#Gl'#GlOOQW'#Ew'#EwOOQW,5;`,5;`O0nQhO,5;`O>xQ!jO,5;fOOQW'#Gn'#GnOOQW'#E|'#E|OOQW,5;e,5;eO0uQhO,5;eO@XQ!jO,5;jOAzQ!jO,5;oOOQW'#Gr'#GrOOQW'#FV'#FVOOQW,5;n,5;nO0|QhO,5;nOCZQ!jO,5;sO/QQhO,5;vOOQW'#Gt'#GtOOQW'#F]'#F]OOQW,5;u,5;uO1TQhO,5;uO/QQhO,5;zOOQW'#Gv'#GvOOQW'#Fb'#FbOOQW,5;y,5;yO1[QhO,5;yOEPQhO,5<ROFvQ!jO,5<TOHiQ!jO,5<VOJbQ!jO,5<XOLTQ!jO,5<ZOMvQ!jO,5<^OOQW'#HO'#HOOOQW'#Ft'#FtOOQW,5<],5<]O1hQhO,5<]O! VQ!jO,5<bO!!xQ!jO,5<dOOQW-E:R-E:ROOOP7+&d7+&dOOOP1G/`1G/`OOOP1G/i1G/iOOOP1G/n1G/nOOOP1G/x1G/xOOOP1G/}1G/}O!$kQhO,5:oO!$pQhO,5:uOOOP1G0r1G0rOOQW7+$]7+$]OsQhO1G/TO!$uQ!jO7+$fOOOP<<H`<<H`O!$|Q!jO,5<iOOQW-E9{-E9{OOOP<<Hv<<HvO!&xQ!jO<<HyO!'SQ!jO<<IROOQW,5<k,5<kOOQW-E9}-E9}OOOP<<IZ<<IZO!'^QhO<<IZOOOP<<Ii<<IiO!'fQhO,5:{O!'kQ!jO,5:{OOQW-E:Q-E:QOOOP<<Ik<<IkOOOP<<Is<<IsOOQW1G0z1G0zOOQW1G1P1G1POOQW1G1Y1G1YO!)gQhO1G1_OsQhO1G1bOOQW1G1a1G1aOsQhO1G1fOOQW1G1e1G1eO!+ZQhO1G1mO!,}QhO1G1mO!-SQhO1G1oOOQW'#GU'#GUO!.vQhO1G1qO!0mQhO1G1uOOQW1G1w1G1wOOOP1G0Z1G0ZOOOP1G0a1G0aO!2aQ!jO7+$oOOQW<<HQ<<HQOOQW'#Dq'#DqO!4]QhO'#DpOOQW'#GO'#GOO!5vQhOAN>eOOOPAN>eAN>eO!6OQhOAN>mOOOPAN>mAN>mO!6WQhOAN>uOOOPAN>uAN>uOsQhO1G0gOOQW'#Gi'#GiO!]QhO1G0gO!6`Q!jO7+&|O!7rQ!jO7+'QO!9UQhO7+'XOOQW-E:S-E:SO!:xQhO<<HZOsQhO,5:[OOQW-E9|-E9|OOOPG24PG24POOOPG24XG24XOOOPG24aG24aO!<rQ!jO7+&ROOQW7+&R7+&RO!>kQhO<<JhO!?{QhO<<JlO!A]QhO<<JsO!CPQ!jO1G/v",stateData:"!Di~O%OOSUOS~OPROQSO$zPO~O$zPOPWXQWX$yWX~OgeOjiOkiOlfOmgOnhOoiOpiO%RbO~OwkOxjO{lO!PmO!RnO!UoO!ZpO!_qO!brO!jsO!ntO!puO!rvO!uwO!{xO#QyO#SzO#Y{O#[|O#_}O#c!OO#e!PO#g!QO~OPROQSOR!UO$zPO~OPROQSOR!XO$zPO~OPROQSOR![O$zPO~OPROQSOR!_O$zPO~OPROQSOR!bO$zPO~O$|!cO~O${!fO~OPROQSOR!kO$zPO~O]!mOa!uOb!oOc!pOr!qO%T!nO~OX!tO~P%}Oe!vOX%QX]%QXa%QXb%QXc%QXr%QX%T%QXi%QXx%QXu%QX#U%QX#V%QX%S%QXn%QX#j%QX#l%QX#o%QX#s%QX#u%QX#x%QX#|%QX$T%QX$X%QX$[%QX$^%QX$`%QX$b%QX$d%QX$g%QX$k%QX$m%QX#q%QX#z%QX$i%QXf%QX%R%QX#W%QX$Q%QX$V%QX~Or!qOx!zO~PsOx!}O~Ox#TO~Ox#UO~Oo#VO~Ox#WO~Ox#XO~OnhO#V#aO#j#bO#o#eO#s#hO#u#jO#x#lO#|#oO$T#sO$X#vO$[#yO$^#{O$`#}O$b$PO$d$RO$g$TO$k$WO$m$YO~Ox$_O~P*SO$zPOPWXQWXRWX~O}$aO~O!W$cO~O!]$eO~O!g$gO~O!l$iO~O$|!cOT!vX~OT$lO~O${!fOS!|X~OS$oO~O#a$qO~O^$rO~O%R$vO~OX$yOr!qO~O]!mOa!uOb!oOc!pO%T!nO~Oi$|O~P-aOx%OO~P%}Or!qOx%OO~Ox%PO~P-aOx%QO~P-aOx%RO~P-aOx%SO~P-aOu%TOx%VO~P-aO!c%WO~Ot%^Ou%ZOx%]O~Ox%`O~P%}Ou%bOx%fO#U%aO#V#aO~P-aOx%gO~P-aOx%iO~P%}Ox%jO~P-aOx%kO~P-aOx%lO~P-aO#l%nO~P*SO#q%sO~P*SO#z%yO~P*SO$Q&PO~P*SO$V&UO~P*SOo&YO~O$i&`O~P*SOx&gO~P*SOx&hO~Ox&iO~Ox&jO~Ox&kO~Ox&lO~O!x&mO~O#O&nO~Ox&oO~O%S&pO~P-aO]!mO%T!nOX`ia`ic`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~Ob`i~P2wOX`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~P-aOt&qOXqarqaxqanqa#Vqa#jqa#oqa#sqa#uqa#xqa#|qa$Tqa$Xqa$[qa$^qa$`qa$bqa$dqa$gqa$kqa$mqa#lqa#qqa#zqa$Qqa$Vqa$iqa~Ob!oO~P2wOXdirdiidixdiudi#Udi#Vdi%Sdindi#jdi#ldi#odi#sdi#udi#xdi#|di$Tdi$Xdi$[di$^di$`di$bdi$ddi$gdi$kdi$mdi#qdi#zdi$idifdi%Rdi#Wdi$Qdi$Vdi~P-aOr!qOx&sO~Ou%TOx&vO~Oo&yO~Ou%ZOx&{O~Oo&|O~Or!qOx&}O~Ou%bOx'RO#U%aO#V#aO~Or!qOx'SO~On#ia#V#ia#j#ia#l#ia#o#ia#s#ia#u#ia#x#ia#|#ia$T#ia$X#ia$[#ia$^#ia$`#ia$b#ia$d#ia$g#ia$k#ia$m#ia~P-aOn#na#V#na#j#na#o#na#q#na#s#na#u#na#x#na#|#na$T#na$X#na$[#na$^#na$`#na$b#na$d#na$g#na$k#na$m#na~P-aOn#rax#ra#V#ra#j#ra#o#ra#s#ra#u#ra#x#ra#|#ra$T#ra$X#ra$[#ra$^#ra$`#ra$b#ra$d#ra$g#ra$k#ra$m#ra#l#ra#q#ra#z#ra$Q#ra$V#ra$i#ra~P-aOn#wa#V#wa#j#wa#o#wa#s#wa#u#wa#x#wa#z#wa#|#wa$T#wa$X#wa$[#wa$^#wa$`#wa$b#wa$d#wa$g#wa$k#wa$m#wa~P-aOu%TOn#{ax#{a#V#{a#j#{a#o#{a#s#{a#u#{a#x#{a#|#{a$T#{a$X#{a$[#{a$^#{a$`#{a$b#{a$d#{a$g#{a$k#{a$m#{a#l#{a#q#{a#z#{a$Q#{a$V#{a$i#{a~P-aOt'^Ou%ZOn$Zax$Za#V$Za#j$Za#o$Za#s$Za#u$Za#x$Za#|$Za$T$Za$X$Za$[$Za$^$Za$`$Za$b$Za$d$Za$g$Za$k$Za$m$Za#l$Za#q$Za#z$Za$Q$Za$V$Za$i$Za~On$]ax$]a#V$]a#j$]a#o$]a#s$]a#u$]a#x$]a#|$]a$T$]a$X$]a$[$]a$^$]a$`$]a$b$]a$d$]a$g$]a$k$]a$m$]a#l$]a#q$]a#z$]a$Q$]a$V$]a$i$]a~P%}Ou%bO#U%aO#V#aOn$_ax$_a#j$_a#o$_a#s$_a#u$_a#x$_a#|$_a$T$_a$X$_a$[$_a$^$_a$`$_a$b$_a$d$_a$g$_a$k$_a$m$_a#l$_a#q$_a#z$_a$Q$_a$V$_a$i$_a~P-aOn$aax$aa#V$aa#j$aa#o$aa#s$aa#u$aa#x$aa#|$aa$T$aa$X$aa$[$aa$^$aa$`$aa$b$aa$d$aa$g$aa$k$aa$m$aa#l$aa#q$aa#z$aa$Q$aa$V$aa$i$aa~P-aOn$cax$ca#V$ca#j$ca#o$ca#s$ca#u$ca#x$ca#|$ca$T$ca$X$ca$[$ca$^$ca$`$ca$b$ca$d$ca$g$ca$k$ca$m$ca#l$ca#q$ca#z$ca$Q$ca$V$ca$i$ca~P%}On$fa#V$fa#j$fa#o$fa#s$fa#u$fa#x$fa#|$fa$T$fa$X$fa$[$fa$^$fa$`$fa$b$fa$d$fa$g$fa$i$fa$k$fa$m$fa~P-aOn$jax$ja#V$ja#j$ja#o$ja#s$ja#u$ja#x$ja#|$ja$T$ja$X$ja$[$ja$^$ja$`$ja$b$ja$d$ja$g$ja$k$ja$m$ja#l$ja#q$ja#z$ja$Q$ja$V$ja$i$ja~P-aOn$lax$la#V$la#j$la#o$la#s$la#u$la#x$la#|$la$T$la$X$la$[$la$^$la$`$la$b$la$d$la$g$la$k$la$m$la#l$la#q$la#z$la$Q$la$V$la$i$la~P-aOx'dO~Ox'eO~Of'gO~P-aOu$qax$qan$qa#V$qa#j$qa#o$qa#s$qa#u$qa#x$qa#|$qa$T$qa$X$qa$[$qa$^$qa$`$qa$b$qa$d$qa$g$qa$k$qa$m$qa#l$qa#q$qa#z$qa$Q$qa$V$qa$i$qaX$qar$qa~P-aOx'lO%R'hO~P-aOx'nO%R'hO~P-aOu%ZOx'pO~Ot'qO~O#W'rOu#Tax#Ta#U#Ta#V#Tan#Ta#j#Ta#o#Ta#s#Ta#u#Ta#x#Ta#|#Ta$T#Ta$X#Ta$[#Ta$^#Ta$`#Ta$b#Ta$d#Ta$g#Ta$k#Ta$m#Ta#l#Ta#q#Ta#z#Ta$Q#Ta$V#Ta$i#Ta~P-aOu%TOn#{ix#{i#V#{i#j#{i#o#{i#s#{i#u#{i#x#{i#|#{i$T#{i$X#{i$[#{i$^#{i$`#{i$b#{i$d#{i$g#{i$k#{i$m#{i#l#{i#q#{i#z#{i$Q#{i$V#{i$i#{i~Ou%ZOn$Zix$Zi#V$Zi#j$Zi#o$Zi#s$Zi#u$Zi#x$Zi#|$Zi$T$Zi$X$Zi$[$Zi$^$Zi$`$Zi$b$Zi$d$Zi$g$Zi$k$Zi$m$Zi#l$Zi#q$Zi#z$Zi$Q$Zi$V$Zi$i$Zi~Oo'vO~Or!qOn$]ix$]i#V$]i#j$]i#o$]i#s$]i#u$]i#x$]i#|$]i$T$]i$X$]i$[$]i$^$]i$`$]i$b$]i$d$]i$g$]i$k$]i$m$]i#l$]i#q$]i#z$]i$Q$]i$V$]i$i$]i~Ou%bO#U%aO#V#aOn$_ix$_i#j$_i#o$_i#s$_i#u$_i#x$_i#|$_i$T$_i$X$_i$[$_i$^$_i$`$_i$b$_i$d$_i$g$_i$k$_i$m$_i#l$_i#q$_i#z$_i$Q$_i$V$_i$i$_i~Or!qOn$cix$ci#V$ci#j$ci#o$ci#s$ci#u$ci#x$ci#|$ci$T$ci$X$ci$[$ci$^$ci$`$ci$b$ci$d$ci$g$ci$k$ci$m$ci#l$ci#q$ci#z$ci$Q$ci$V$ci$i$ci~Ou%TOXqqrqqxqqnqq#Vqq#jqq#oqq#sqq#uqq#xqq#|qq$Tqq$Xqq$[qq$^qq$`qq$bqq$dqq$gqq$kqq$mqq#lqq#qqq#zqq$Qqq$Vqq$iqq~P-aOt'yOx!dX%R!dXn!dX#V!dX#j!dX#o!dX#s!dX#u!dX#x!dX#|!dX$Q!dX$T!dX$X!dX$[!dX$^!dX$`!dX$b!dX$d!dX$g!dX$k!dX$m!dX$V!dX~Ox'{O%R'hO~Ox'|O%R'hO~Ou%ZOx'}O~O%R'hOn$Oq#V$Oq#j$Oq#o$Oq#s$Oq#u$Oq#x$Oq#|$Oq$Q$Oq$T$Oq$X$Oq$[$Oq$^$Oq$`$Oq$b$Oq$d$Oq$g$Oq$k$Oq$m$Oq~P-aO%R'hOn$Sq#V$Sq#j$Sq#o$Sq#s$Sq#u$Sq#x$Sq#|$Sq$T$Sq$V$Sq$X$Sq$[$Sq$^$Sq$`$Sq$b$Sq$d$Sq$g$Sq$k$Sq$m$Sq~P-aOu%ZOn$Zqx$Zq#V$Zq#j$Zq#o$Zq#s$Zq#u$Zq#x$Zq#|$Zq$T$Zq$X$Zq$[$Zq$^$Zq$`$Zq$b$Zq$d$Zq$g$Zq$k$Zq$m$Zq#l$Zq#q$Zq#z$Zq$Q$Zq$V$Zq$i$Zq~Ou%TOXqyrqyxqynqy#Vqy#jqy#oqy#sqy#uqy#xqy#|qy$Tqy$Xqy$[qy$^qy$`qy$bqy$dqy$gqy$kqy$mqy#lqy#qqy#zqy$Qqy$Vqy$iqy~Ou#Tqx#Tq#U#Tq#V#Tqn#Tq#j#Tq#o#Tq#s#Tq#u#Tq#x#Tq#|#Tq$T#Tq$X#Tq$[#Tq$^#Tq$`#Tq$b#Tq$d#Tq$g#Tq$k#Tq$m#Tq#l#Tq#q#Tq#z#Tq$Q#Tq$V#Tq$i#Tq~P-aO%R'hOn$Oy#V$Oy#j$Oy#o$Oy#s$Oy#u$Oy#x$Oy#|$Oy$Q$Oy$T$Oy$X$Oy$[$Oy$^$Oy$`$Oy$b$Oy$d$Oy$g$Oy$k$Oy$m$Oy~O%R'hOn$Sy#V$Sy#j$Sy#o$Sy#s$Sy#u$Sy#x$Sy#|$Sy$T$Sy$V$Sy$X$Sy$[$Sy$^$Sy$`$Sy$b$Sy$d$Sy$g$Sy$k$Sy$m$Sy~Ou%ZOn$Zyx$Zy#V$Zy#j$Zy#o$Zy#s$Zy#u$Zy#x$Zy#|$Zy$T$Zy$X$Zy$[$Zy$^$Zy$`$Zy$b$Zy$d$Zy$g$Zy$k$Zy$m$Zy#l$Zy#q$Zy#z$Zy$Q$Zy$V$Zy$i$Zy~Ox!di%R!din!di#V!di#j!di#o!di#s!di#u!di#x!di#|!di$Q!di$T!di$X!di$[!di$^!di$`!di$b!di$d!di$g!di$k!di$m!di$V!di~P-aO",goto:"@p%uPPPPPPPP%vP%v&W'hPP'h'hPPP'hPPP'hPPPPPPPP(fP(vPP(yPP(y)ZP)kP(yP(yP(y)qP*RP(y*XP*iP(yP(y*oPP+P+Z+eP(y+kP+{P(yP(yP(yP(y,RP,c,fP(y,iP,y,|P(yP(yP-PPPP(yP(yP(y-XP-iP(yP(yP(yP-o.PP.aP-o.gP.wP-oP-oP-o.}P/_P-oP-o/e/uP-o/{P0]P-oP-o-oP-oP-oP-oP-oP-o0cP0sP-oP-oP0y1i2P2o2}3a3s3y4P4V4uPPPPPP4{5]PPP'h'h8P%v9_9k9q:X:[:l:|;Q;b;f;v<W<h<l<|=Q=b=f=v>W>h>x?Y?j?z@O@`m^OTUVWX[`!T!W!Z!^!a!j!vdReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'yQ#RrQ#SsQ&O#qQ&T#tQ'O%bR(P's!wiReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym!rck!s!x!y#Y#]$}%_%h&Z&^'_'bR$w!qm]OTUVWX[`!T!W!Z!^!a!jmTOTUVWX[`!T!W!Z!^!a!jQ!STR$`!TmUOTUVWX[`!T!W!Z!^!a!jQ!VUR$b!WmVOTUVWX[`!T!W!Z!^!a!jQ!YVR$d!ZmWOTUVWX[`!T!W!Z!^!a!ja'j&w&x'k'm't'u(Q(Ra'i&w&x'k'm't'u(Q(RQ!]WR$f!^mXOTUVWX[`!T!W!Z!^!a!jQ!`XR$h!amYOTUVWX[`!T!W!Z!^!a!jR!eYR$k!emZOTUVWX[`!T!W!Z!^!a!jR!hZR$n!hS%d#Z%eT'`&['am[OTUVWX[`!T!W!Z!^!a!jQ!i[R$p!jm$[!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#d!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%p#dR'T%qm#g!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%u#gR'U%vm#n!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%{#nR'V%|m#r!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&R#rR'Y&Sm#u!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&W#uR'[&Xm$V!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&b$VR'c&cQ`OQ!TTQ!WUQ!ZVQ!^WQ!aXQ!j[_!l`!T!W!Z!^!a!jSQO`SaQ!Ri!RTUVWX[!T!W!Z!^!a!jQ!scQ!yk^$x!s!y$}%_%h'_'bQ$}!xQ%_#YQ%h#]Q'_&ZR'b&^Q%U#QU&u%U'W'xQ'W%}R'x'fQ'k&wQ'm&xW'z'k'm(Q(RQ(Q'tR(R'uQ%[#VW&z%[']'o(SQ']&YQ'o&|R(S'vQ!dYR$j!dQ!gZR$m!gQ%e#ZR'Q%eQ$^!QQ%q#dQ%v#gQ%|#nQ&S#rQ&X#uQ&c$V_&f$^%q%v%|&S&X&cQ'a&[R'w'am_OTUVWX[`!T!W!Z!^!a!jQcRQ!weQ!xkQ!{lQ!|mQ#OoQ#PpQ#QqQ#YyQ#ZzQ#[{Q#]|Q#^}Q#_!OQ#`!PQ$s!nQ$t!oQ$u!pQ$z!uQ${!vQ%m#cQ%r#fQ%w#iQ%x#mQ%}#pQ&Z#|Q&[$OQ&]$QQ&^$SQ&_$UQ&d$XQ&e$ZQ&r$|Q&t%TQ&w%XQ&x%YQ'P%cQ'f&qQ't'XQ'u'ZQ(O'qR(T'y!viReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym#x!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%X#RQ%Y#SQ'X&OR'Z&TX%c#Z%e&['al#q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cX%c#Z%e&['aR's'Pm$]!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#c!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%o#d%qm#f!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%t#g%vm#i!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#k!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#m!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%z#n%|m#p!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&Q#r&Sm#t!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&V#u&Xm#w!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#z!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#|!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$O!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$S!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$U!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&a$V&cm$X!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Z!Q#d#g#n#r#u$V$^%q%v%|&S&X&c",nodeNames:"⚠ {{ {% {% {% {% InlineComment Template Text }} Interpolation VariableName MemberExpression . PropertyName SubscriptExpression BinaryExpression contains CompareOp LogicOp AssignmentExpression AssignOp ) ( RangeExpression .. BooleanLiteral empty forloop tablerowloop continue StringLiteral NumberLiteral Filter | FilterName : , Tag TagName %} IfDirective Tag if EndTag endif Tag elsif Tag else UnlessDirective Tag unless EndTag endunless CaseDirective Tag case EndTag endcase Tag when ForDirective Tag for in Parameter ParameterName EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag continue Tag cycle Comment Tag comment CommentText EndTag endcomment RawDirective Tag raw RawText EndTag endraw Tag echo Tag render RenderParameter with for as Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement Tag liquid IfDirective Tag if EndTag endif UnlessDirective Tag unless EndTag endunless Tag elsif Tag else CaseDirective Tag case EndTag endcase Tag when ForDirective Tag EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag Tag cycle Tag echo Tag render Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement",maxTerm:220,nodeProps:[["closedBy",1,"}}",-4,2,3,4,5,"%}",23,")"],["openedBy",9,"{{",22,"(",40,"{%"],["group",-13,11,12,15,16,20,24,26,27,28,29,30,31,32,"Expression"]],skippedNodes:[0,6],repeatNodeCount:11,tokenData:")e~RmXY!|YZ!|]^!|pq!|qr#_rs#juv$[wx$gxy%Syz%X{|%^|}&x}!O&}!O!P'Z!Q![&g![!]'k!^!_'p!_!`'x!`!a'p!c!}(Q!}#O(y#P#Q)O#R#S(Q#T#o(Q#p#q)T#q#r)Y%W;'S(Q;'S;:j(s<%lO(Q~#RS%O~XY!|YZ!|]^!|pq!|~#bP!_!`#e~#jOb~~#mUOY#jZr#jrs$Ps;'S#j;'S;=`$U<%lO#j~$UOo~~$XP;=`<%l#j~$_P#q#r$b~$gOx~~$jUOY$gZw$gwx$Px;'S$g;'S;=`$|<%lO$g~%PP;=`<%l$g~%XOg~~%^Of~P%aQ!O!P%g!Q![&gP%jP!Q![%mP%rRpP!Q![%m!g!h%{#X#Y%{P&OR{|&X}!O&X!Q![&_P&[P!Q![&_P&dPpP!Q![&_P&lSpP!O!P%g!Q![&g!g!h%{#X#Y%{~&}Ou~~'QRuv$[!O!P%g!Q![&g~'`Q]S!O!P'f!Q![%m~'kOi~~'pOt~~'uPb~!_!`#e~'}Pe~!_!`#e_(ZW^WwQ%RT}!O(Q!Q![(Q!c!}(Q#R#S(Q#T#o(Q%W;'S(Q;'S;:j(s<%lO(Q_(vP;=`<%l(Q~)OO%T~~)TO%S~~)YOr~~)]P#q#r)`~)eOX~",tokenizers:[base,raw,comment,inlineComment,0,1,2,3],topRules:{Template:[0,7]},dynamicPrecedences:{190:1,191:1,192:1,194:1,195:1,196:1,197:1,199:1,200:1,201:1,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,210:1,211:1,212:1,213:1,214:1,215:1,216:1,217:1,218:1,219:1,220:1},specialized:[{term:187,get:value=>spec_identifier[value]||-1},{term:39,get:value=>spec_TagName[value]||-1}],tokenPrec:0});function completions(words,type){return words.split(" ").map(label=>({label:label,type:type}))}const Filters=completions("abs append at_least at_most capitalize ceil compact concat date default divided_by downcase escape escape_once first floor join last lstrip map minus modulo newline_to_br plus prepend remove remove_first replace replace_first reverse round rstrip size slice sort sort_natural split strip strip_html strip_newlines sum times truncate truncatewords uniq upcase url_decode url_encode where","function"),Tags=completions("cycle comment endcomment raw endraw echo increment decrement liquid if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue assign capture endcapture render include","keyword"),Expressions=completions("empty forloop tablerowloop in with as","keyword"),forloop=completions("first index index0 last length rindex","property"),tablerowloop=completions("col col0 col_first col_last first index index0 last length rindex rindex0 row","property");function liquidCompletionSource(config={}){let filters=config.filters?config.filters.concat(Filters):Filters,tags2=config.tags?config.tags.concat(Tags):Tags,exprs=config.variables?config.variables.concat(Expressions):Expressions,{properties:properties}=config;return context=>{var _a;let cx=function(context){var _a;let{state:state,pos:pos}=context,node=syntaxTree(state).resolveInner(pos,-1).enterUnfinishedNodesBefore(pos),before=(null===(_a=node.childBefore(pos))||void 0===_a?void 0:_a.name)||node.name;if("FilterName"==node.name)return{type:"filter",node:node};if(context.explicit&&"|"==before)return{type:"filter"};if("TagName"==node.name)return{type:"tag",node:node};if(context.explicit&&"{%"==before)return{type:"tag"};if("PropertyName"==node.name&&"MemberExpression"==node.parent.name)return{type:"property",node:node,target:node.parent};if("."==node.name&&"MemberExpression"==node.parent.name)return{type:"property",target:node.parent};if("MemberExpression"==node.name&&"."==before)return{type:"property",target:node};if("VariableName"==node.name)return{type:"expression",from:node.from};let word=context.matchBefore(/[\w\u00c0-\uffff]+$/);return word?{type:"expression",from:word.from}:context.explicit&&"CommentText"!=node.name&&"StringLiteral"!=node.name&&"NumberLiteral"!=node.name&&"InlineComment"!=node.name?{type:"expression"}:null}(context);if(!cx)return null;let options,from=null!==(_a=cx.from)&&void 0!==_a?_a:cx.node?cx.node.from:context.pos;return options="filter"==cx.type?filters:"tag"==cx.type?tags2:"expression"==cx.type?exprs:function(state,node,context,properties){let path=[];for(;;){let obj=node.getChild("Expression");if(!obj)return[];if("VariableName"==obj.name||"forloop"==obj.name||"tablerowloop"==obj.name){let text2=state.sliceDoc(obj.from,obj.to);if("forloop"==text2)return path.length?[]:forloop;if("tablerowloop"==text2)return path.length?[]:tablerowloop;path.unshift(text2);break}if("MemberExpression"==obj.name){let name=obj.getChild("PropertyName");name&&path.unshift(state.sliceDoc(name.from,name.to)),node=obj}else{if("SubscriptExpression"!=obj.name)return[];{let expr=obj.getChildren("Expression")[1];path.unshift("StringLiteral"==(null==expr?void 0:expr.name)?state.sliceDoc(expr.from+1,expr.to-1):"[]"),node=obj}}}return properties?properties(path,state,context):[]}(context.state,cx.target,context,properties),options.length?{options:options,from:from,validFor:/^[\w\u00c0-\uffff]*$/}:null}}const closePercentBrace=EditorView.inputHandler.of((view,from,to,text2)=>"%"==text2&&from==to&&"{}"==view.state.doc.sliceString(from-1,to+1)&&(view.dispatch(view.state.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:"%%"},range:EditorSelection.cursor(range.from+1)})),{scrollIntoView:!0,userEvent:"input.type"}),!0));function directiveIndent(except){return context=>{let back=except.test(context.textAfter);return context.lineIndent(context.node.from)+(back?0:context.unit)}}const tagLanguage=LRLanguage.define({name:"liquid",parser:parser.configure({props:[styleTags({"cycle comment endcomment raw endraw echo increment decrement liquid in with as":tags.keyword,"empty forloop tablerowloop":tags.atom,"if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue":tags.controlKeyword,"assign capture endcapture":tags.definitionKeyword,contains:tags.operatorKeyword,"render include":tags.moduleKeyword,VariableName:tags.variableName,TagName:tags.tagName,FilterName:tags.function(tags.variableName),PropertyName:tags.propertyName,CompareOp:tags.compareOperator,AssignOp:tags.definitionOperator,LogicOp:tags.logicOperator,NumberLiteral:tags.number,StringLiteral:tags.string,BooleanLiteral:tags.bool,InlineComment:tags.lineComment,CommentText:tags.blockComment,"{% %} {{ }}":tags.brace,"[ ]":tags.bracket,"( )":tags.paren,".":tags.derefOperator,", .. : |":tags.punctuation}),indentNodeProp.add({Tag:delimitedIndent({closing:"%}"}),"UnlessDirective ForDirective TablerowDirective CaptureDirective":directiveIndent(/^\s*(\{%-?\s*)?end\w/),IfDirective:directiveIndent(/^\s*(\{%-?\s*)?(endif|else|elsif)\b/),CaseDirective:directiveIndent(/^\s*(\{%-?\s*)?(endcase|when)\b/)}),foldNodeProp.add({"UnlessDirective ForDirective TablerowDirective CaptureDirective IfDirective CaseDirective RawDirective Comment"(tree){let first=tree.firstChild,last=tree.lastChild;return first&&"Tag"==first.name?{from:first.to,to:"EndTag"==last.name?last.from:tree.to}:null}})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*{%-?\s*(?:end|elsif|else|when|)$/}}),baseHTML=html();function makeLiquid(base2){return tagLanguage.configure({wrap:parseMixed(node=>node.type.isTop?{parser:base2.parser,overlay:n=>"Text"==n.name||"RawText"==n.name}:null)},"liquid")}const liquidLanguage=makeLiquid(baseHTML.language);function liquid(config={}){let base2=config.base||baseHTML,lang=base2.language==baseHTML.language?liquidLanguage:makeLiquid(base2.language);return new LanguageSupport(lang,[base2.support,lang.data.of({autocomplete:liquidCompletionSource(config)}),base2.language.data.of({closeBrackets:{brackets:["{"]}}),closePercentBrace])}export{closePercentBrace,liquid,liquidCompletionSource,liquidLanguage};
@@ -1 +1 @@
1
- import{_ as __name,l as log,H as selectSvgElement,e as configureSvgSize}from"./mermaid.core-CDgdx9l7.js";import{p as parse}from"./wardley-RL74JXVD-CRmLlBwn.js";import"./vendor-mdxeditor-B_IrHcWH.js";import"./vendor-antd-DqFS7Zj9.js";import"./vendor-codemirror-B_pF4DrA.js";import"./vendor-markdown-DOJHsAxX.js";import"./min-B9yebCuj.js";import"./_baseUniq-CPUnJ5bQ.js";var DEFAULT_INFO_DB_version="11.14.0",diagram={parser:{parse:__name(async input=>{const ast=await parse("info",input);log.debug(ast)},"parse")},db:{getVersion:__name(()=>DEFAULT_INFO_DB_version,"getVersion")},renderer:{draw:__name((text,id,version)=>{log.debug("rendering info diagram\n"+text);const svg=selectSvgElement(id);configureSvgSize(svg,100,400,!0);svg.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${version}`)},"draw")}};export{diagram};
1
+ import{_ as __name,l as log,H as selectSvgElement,e as configureSvgSize}from"./mermaid.core-BV3ugHFm.js";import{p as parse}from"./wardley-RL74JXVD-ByDpAPp1.js";import"./vendor-mdxeditor-Cco3AQJS.js";import"./vendor-antd-Bur5ZxWE.js";import"./vendor-codemirror-Si44UqBp.js";import"./vendor-markdown-DOJHsAxX.js";import"./min-D-YA3MGY.js";import"./_baseUniq-r3p3rodd.js";var DEFAULT_INFO_DB_version="11.14.0",diagram={parser:{parse:__name(async input=>{const ast=await parse("info",input);log.debug(ast)},"parse")},db:{getVersion:__name(()=>DEFAULT_INFO_DB_version,"getVersion")},renderer:{draw:__name((text,id,version)=>{log.debug("rendering info diagram\n"+text);const svg=selectSvgElement(id);configureSvgSize(svg,100,400,!0);svg.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${version}`)},"draw")}};export{diagram};
@@ -1 +1 @@
1
- var _a;import{_ as __name,c as getConfig2,M as parseFontSize,H as selectSvgElement,ar as at,y as clear,k as common_default,p as setDiagramTitle,a as getAccTitle,b as setAccTitle,g as getAccDescription,s as setAccDescription,q as getDiagramTitle,e as configureSvgSize}from"./mermaid.core-CDgdx9l7.js";import"./vendor-mdxeditor-B_IrHcWH.js";import"./vendor-antd-DqFS7Zj9.js";import"./vendor-codemirror-B_pF4DrA.js";import"./vendor-markdown-DOJHsAxX.js";var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[1,4],$V1=[1,14],$V2=[1,12],$V3=[1,13],$V4=[6,7,8],$V5=[1,20],$V6=[1,18],$V7=[1,19],$V8=[6,7,11],$V9=[1,6,13,14],$Va=[1,23],$Vb=[1,24],$Vc=[1,6,7,11,13,14],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 6:case 7:return yy;case 15:yy.addNode($$[$0-1].length,$$[$0].trim());break;case 16:yy.addNode(0,$$[$0].trim())}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:$V0},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:$V0},{6:$V1,7:[1,10],9:9,12:11,13:$V2,14:$V3},o($V4,[2,3]),{1:[2,2]},o($V4,[2,4]),o($V4,[2,5]),{1:[2,6],6:$V1,12:15,13:$V2,14:$V3},{6:$V1,9:16,12:11,13:$V2,14:$V3},{6:$V5,7:$V6,10:17,11:$V7},o($V8,[2,18],{14:[1,21]}),o($V8,[2,16]),o($V8,[2,17]),{6:$V5,7:$V6,10:22,11:$V7},{1:[2,7],6:$V1,12:15,13:$V2,14:$V3},o($V9,[2,14],{7:$Va,11:$Vb}),o($Vc,[2,8]),o($Vc,[2,9]),o($Vc,[2,10]),o($V8,[2,15]),o($V9,[2,13],{7:$Va,11:$Vb}),o($Vc,[2,11]),o($Vc,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:case 3:return 6;case 1:case 2:return 8;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var ishikawa_default=parser,IshikawaDB=(__name(_a=class{constructor(){this.stack=[],this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,clear()}getRoot(){return this.root}addNode(rawLevel,text){const label=common_default.sanitizeText(text,getConfig2());if(!this.root)return this.root={text:label,children:[]},this.stack=[{level:0,node:this.root}],void setDiagramTitle(label);this.baseLevel??(this.baseLevel=rawLevel);let level=rawLevel-this.baseLevel+1;for(level<=0&&(level=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=level;)this.stack.pop();const node={text:label,children:[]};this.stack[this.stack.length-1].node.children.push(node),this.stack.push({level:level,node:node})}getAccTitle(){return getAccTitle()}setAccTitle(title){setAccTitle(title)}getAccDescription(){return getAccDescription()}setAccDescription(description){setAccDescription(description)}getDiagramTitle(){return getDiagramTitle()}setDiagramTitle(title){setDiagramTitle(title)}},"IshikawaDB"),_a),ANGLE=82*Math.PI/180,COS_A=Math.cos(ANGLE),SIN_A=Math.sin(ANGLE),applyPaddedViewBox=__name((svgEl,pad,maxW)=>{const bbox=svgEl.node().getBBox(),w=bbox.width+2*pad,h=bbox.height+2*pad;configureSvgSize(svgEl,h,w,maxW),svgEl.attr("viewBox",`${bbox.x-pad} ${bbox.y-pad} ${w} ${h}`)},"applyPaddedViewBox"),draw=__name((_text,id,_version,diagram2)=>{var _a2,_b;const root=diagram2.db.getRoot();if(!root)return;const drawConfig=getConfig2(),{look:look,handDrawnSeed:handDrawnSeed,themeVariables:themeVariables}=drawConfig,fontSize=parseFontSize(drawConfig.fontSize)[0]??14,isHandDrawn="handDrawn"===look,causes=root.children??[],padding=(null==(_a2=drawConfig.ishikawa)?void 0:_a2.diagramPadding)??20,useMaxWidth=(null==(_b=drawConfig.ishikawa)?void 0:_b.useMaxWidth)??!1,svg=selectSvgElement(id),g=svg.append("g").attr("class","ishikawa"),roughSvg=isHandDrawn?at.svg(svg.node()):void 0,roughContext=roughSvg?{roughSvg:roughSvg,seed:handDrawnSeed??0,lineColor:(null==themeVariables?void 0:themeVariables.lineColor)??"#333",fillColor:(null==themeVariables?void 0:themeVariables.mainBkg)??"#fff"}:void 0,markerId=`ishikawa-arrow-${id}`;isHandDrawn||g.append("defs").append("marker").attr("id",markerId).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 Z").attr("class","ishikawa-arrow");let spineX=0,spineY=250;const spineLine=isHandDrawn?void 0:drawLine(g,spineX,spineY,spineX,spineY,"ishikawa-spine");if(drawHead(g,spineX,spineY,root.text,fontSize,roughContext),!causes.length)return isHandDrawn&&drawLine(g,spineX,spineY,spineX,spineY,"ishikawa-spine",roughContext),void applyPaddedViewBox(svg,padding,useMaxWidth);spineX-=20;const upperCauses=causes.filter((_,i)=>i%2==0),lowerCauses=causes.filter((_,i)=>i%2==1),upperStats=sideStats(upperCauses),lowerStats=sideStats(lowerCauses),descendantTotal=upperStats.total+lowerStats.total;let upperLen=250,lowerLen=250;if(descendantTotal>0){const pool=500,minLen=75;upperLen=Math.max(minLen,pool*(upperStats.total/descendantTotal)),lowerLen=Math.max(minLen,pool*(lowerStats.total/descendantTotal))}const minSpacing=2*fontSize;upperLen=Math.max(upperLen,upperStats.max*minSpacing),lowerLen=Math.max(lowerLen,lowerStats.max*minSpacing),spineY=Math.max(upperLen,250),spineLine&&spineLine.attr("y1",spineY).attr("y2",spineY),g.select(".ishikawa-head-group").attr("transform",`translate(0,${spineY})`);const pairCount=Math.ceil(causes.length/2);for(let p=0;p<pairCount;p++){const pg=g.append("g").attr("class","ishikawa-pair");for(const[cause,dir,len]of[[causes[2*p],-1,upperLen],[causes[2*p+1],1,lowerLen]])cause&&drawBranch(pg,cause,spineX,spineY,dir,len,fontSize,roughContext);spineX=pg.selectAll("text").nodes().reduce((left,n)=>Math.min(left,n.getBBox().x),1/0)}if(isHandDrawn)drawLine(g,spineX,spineY,0,spineY,"ishikawa-spine",roughContext);else{spineLine.attr("x1",spineX);const markerUrl=`url(#${markerId})`;g.selectAll("line.ishikawa-branch, line.ishikawa-sub-branch").attr("marker-start",markerUrl)}applyPaddedViewBox(svg,padding,useMaxWidth)},"draw"),sideStats=__name(nodes=>{const countDescendants=__name(node=>node.children.reduce((sum,child)=>sum+1+countDescendants(child),0),"countDescendants");return nodes.reduce((stats,node)=>{const descendants=countDescendants(node);return stats.total+=descendants,stats.max=Math.max(stats.max,descendants),stats},{total:0,max:0})},"sideStats"),drawHead=__name((svg,x,y,label,fontSize,roughContext)=>{const maxChars=Math.max(6,Math.floor(110/(.6*fontSize))),headGroup=svg.append("g").attr("class","ishikawa-head-group").attr("transform",`translate(${x},${y})`),textEl=drawMultilineText(headGroup,wrapText(label,maxChars),0,0,"ishikawa-head-label","start",fontSize),tb=textEl.node().getBBox(),w=Math.max(60,tb.width+6),h=Math.max(40,2*tb.height+40),headPath=`M 0 ${-h/2} L 0 ${h/2} Q ${2.4*w} 0 0 ${-h/2} Z`;if(roughContext){const roughNode=roughContext.roughSvg.path(headPath,{roughness:1.5,seed:roughContext.seed,fill:roughContext.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:roughContext.lineColor,strokeWidth:2});headGroup.insert(()=>roughNode,":first-child").attr("class","ishikawa-head")}else headGroup.insert("path",":first-child").attr("class","ishikawa-head").attr("d",headPath);textEl.attr("transform",`translate(${(w-tb.width)/2-tb.x+3},${-tb.y-tb.height/2})`)},"drawHead"),flattenTree=__name((children,direction)=>{const entries=[],yOrder=[],walk=__name((nodes,pid,depth)=>{const ordered=-1===direction?[...nodes].reverse():nodes;for(const child of ordered){const idx=entries.length,gc=child.children??[];entries.push({depth:depth,text:wrapText(child.text,15),parentIndex:pid,childCount:gc.length}),depth%2==0?(yOrder.push(idx),gc.length&&walk(gc,idx,depth+1)):(gc.length&&walk(gc,idx,depth+1),yOrder.push(idx))}},"walk");return walk(children,-1,2),{entries:entries,yOrder:yOrder}},"flattenTree"),drawCauseLabel=__name((svg,text,x,y,direction,fontSize,roughContext)=>{const lg=svg.append("g").attr("class","ishikawa-label-group"),tb=drawMultilineText(lg,text,x,y+11*direction,"ishikawa-label cause","middle",fontSize).node().getBBox();if(roughContext){const roughNode=roughContext.roughSvg.rectangle(tb.x-20,tb.y-2,tb.width+40,tb.height+4,{roughness:1.5,seed:roughContext.seed,fill:roughContext.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:roughContext.lineColor,strokeWidth:2});lg.insert(()=>roughNode,":first-child").attr("class","ishikawa-label-box")}else lg.insert("rect",":first-child").attr("class","ishikawa-label-box").attr("x",tb.x-20).attr("y",tb.y-2).attr("width",tb.width+40).attr("height",tb.height+4)},"drawCauseLabel"),drawArrowMarker=__name((g,x,y,dx,dy,roughContext)=>{const len=Math.sqrt(dx*dx+dy*dy);if(0===len)return;const ux=dx/len,uy=dy/len,px=6*-uy,py=6*ux,d=`M ${x} ${y} L ${x-6*ux*2+px} ${y-6*uy*2+py} L ${x-6*ux*2-px} ${y-6*uy*2-py} Z`,roughNode=roughContext.roughSvg.path(d,{roughness:1,seed:roughContext.seed,fill:roughContext.lineColor,fillStyle:"solid",stroke:roughContext.lineColor,strokeWidth:1});g.append(()=>roughNode)},"drawArrowMarker"),drawBranch=__name((svg,node,startX,startY,direction,length,fontSize,roughContext)=>{const children=node.children??[],lineLen=length*(children.length?1:.2),dy=SIN_A*lineLen*direction,endX=startX+-COS_A*lineLen,endY=startY+dy;if(drawLine(svg,startX,startY,endX,endY,"ishikawa-branch",roughContext),roughContext&&drawArrowMarker(svg,startX,startY,startX-endX,startY-endY,roughContext),drawCauseLabel(svg,node.text,endX,endY,direction,fontSize,roughContext),!children.length)return;const{entries:entries,yOrder:yOrder}=flattenTree(children,direction),entryCount=entries.length,ys=new Array(entryCount);for(const[slot,entryIdx]of yOrder.entries())ys[entryIdx]=startY+dy*((slot+1)/(entryCount+1));const bones=new Map;bones.set(-1,{x0:startX,y0:startY,x1:endX,y1:endY,childCount:children.length,childrenDrawn:0});const diagonalX=-COS_A,diagonalY=SIN_A*direction,oddLabel=direction<0?"ishikawa-label up":"ishikawa-label down";for(const[i,e]of entries.entries()){const y=ys[i],par=bones.get(e.parentIndex),grp=svg.append("g").attr("class","ishikawa-sub-group");let bx0=0,by0=0,bx1=0;if(e.depth%2==0){const dyP=par.y1-par.y0;bx0=lerp(par.x0,par.x1,dyP?(y-par.y0)/dyP:.5),by0=y,bx1=bx0-(e.childCount>0?60+5*e.childCount:30),drawLine(grp,bx0,y,bx1,y,"ishikawa-sub-branch",roughContext),roughContext&&drawArrowMarker(grp,bx0,y,1,0,roughContext),drawMultilineText(grp,e.text,bx1,y,"ishikawa-label align","end",fontSize)}else{const k=par.childrenDrawn++;bx0=lerp(par.x0,par.x1,(par.childCount-k)/(par.childCount+1)),by0=par.y0,bx1=bx0+diagonalX*((y-by0)/diagonalY),drawLine(grp,bx0,by0,bx1,y,"ishikawa-sub-branch",roughContext),roughContext&&drawArrowMarker(grp,bx0,by0,bx0-bx1,by0-y,roughContext),drawMultilineText(grp,e.text,bx1,y,oddLabel,"end",fontSize)}e.childCount>0&&bones.set(i,{x0:bx0,y0:by0,x1:bx1,y1:y,childCount:e.childCount,childrenDrawn:0})}},"drawBranch"),splitLines=__name(text=>text.split(/<br\s*\/?>|\n/),"splitLines"),wrapText=__name((text,maxChars)=>{if(text.length<=maxChars)return text;const lines=[];for(const word of text.split(/\s+/)){const last=lines.length-1;last>=0&&lines[last].length+1+word.length<=maxChars?lines[last]+=" "+word:lines.push(word)}return lines.join("\n")},"wrapText"),drawMultilineText=__name((g,text,x,y,cls,anchor,fontSize)=>{const lines=splitLines(text),lh=1.05*fontSize,el=g.append("text").attr("class",cls).attr("text-anchor",anchor).attr("x",x).attr("y",y-(lines.length-1)*lh/2);for(const[i,line]of lines.entries())el.append("tspan").attr("x",x).attr("dy",0===i?0:lh).text(line);return el},"drawMultilineText"),lerp=__name((a,b,t)=>a+(b-a)*t,"lerp"),drawLine=__name((g,x1,y1,x2,y2,cls,roughContext)=>{if(roughContext){const roughNode=roughContext.roughSvg.line(x1,y1,x2,y2,{roughness:1.5,seed:roughContext.seed,stroke:roughContext.lineColor,strokeWidth:2});return void g.append(()=>roughNode).attr("class",cls)}return g.append("line").attr("class",cls).attr("x1",x1).attr("y1",y1).attr("x2",x2).attr("y2",y2)},"drawLine"),renderer={draw:draw},ishikawaStyles_default=__name(options=>`\n.ishikawa .ishikawa-spine,\n.ishikawa .ishikawa-branch,\n.ishikawa .ishikawa-sub-branch {\n stroke: ${options.lineColor};\n stroke-width: 2;\n fill: none;\n}\n\n.ishikawa .ishikawa-sub-branch {\n stroke-width: 1;\n}\n\n.ishikawa .ishikawa-arrow {\n fill: ${options.lineColor};\n}\n\n.ishikawa .ishikawa-head {\n fill: ${options.mainBkg};\n stroke: ${options.lineColor};\n stroke-width: 2;\n}\n\n.ishikawa .ishikawa-label-box {\n fill: ${options.mainBkg};\n stroke: ${options.lineColor};\n stroke-width: 2;\n}\n\n.ishikawa text {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor};\n}\n\n.ishikawa .ishikawa-head-label {\n font-weight: 600;\n text-anchor: middle;\n dominant-baseline: middle;\n font-size: 14px;\n}\n\n.ishikawa .ishikawa-label {\n text-anchor: end;\n}\n\n.ishikawa .ishikawa-label.cause {\n text-anchor: middle;\n dominant-baseline: middle;\n}\n\n.ishikawa .ishikawa-label.align {\n text-anchor: end;\n dominant-baseline: middle;\n}\n\n.ishikawa .ishikawa-label.up {\n dominant-baseline: baseline;\n}\n\n.ishikawa .ishikawa-label.down {\n dominant-baseline: hanging;\n}\n`,"getStyles"),diagram={parser:ishikawa_default,get db(){return new IshikawaDB},renderer:renderer,styles:ishikawaStyles_default};export{diagram};
1
+ var _a;import{_ as __name,c as getConfig2,M as parseFontSize,H as selectSvgElement,ar as at,y as clear,k as common_default,p as setDiagramTitle,a as getAccTitle,b as setAccTitle,g as getAccDescription,s as setAccDescription,q as getDiagramTitle,e as configureSvgSize}from"./mermaid.core-BV3ugHFm.js";import"./vendor-mdxeditor-Cco3AQJS.js";import"./vendor-antd-Bur5ZxWE.js";import"./vendor-codemirror-Si44UqBp.js";import"./vendor-markdown-DOJHsAxX.js";var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[1,4],$V1=[1,14],$V2=[1,12],$V3=[1,13],$V4=[6,7,8],$V5=[1,20],$V6=[1,18],$V7=[1,19],$V8=[6,7,11],$V9=[1,6,13,14],$Va=[1,23],$Vb=[1,24],$Vc=[1,6,7,11,13,14],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 6:case 7:return yy;case 15:yy.addNode($$[$0-1].length,$$[$0].trim());break;case 16:yy.addNode(0,$$[$0].trim())}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:$V0},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:$V0},{6:$V1,7:[1,10],9:9,12:11,13:$V2,14:$V3},o($V4,[2,3]),{1:[2,2]},o($V4,[2,4]),o($V4,[2,5]),{1:[2,6],6:$V1,12:15,13:$V2,14:$V3},{6:$V1,9:16,12:11,13:$V2,14:$V3},{6:$V5,7:$V6,10:17,11:$V7},o($V8,[2,18],{14:[1,21]}),o($V8,[2,16]),o($V8,[2,17]),{6:$V5,7:$V6,10:22,11:$V7},{1:[2,7],6:$V1,12:15,13:$V2,14:$V3},o($V9,[2,14],{7:$Va,11:$Vb}),o($Vc,[2,8]),o($Vc,[2,9]),o($Vc,[2,10]),o($V8,[2,15]),o($V9,[2,13],{7:$Va,11:$Vb}),o($Vc,[2,11]),o($Vc,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:case 3:return 6;case 1:case 2:return 8;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var ishikawa_default=parser,IshikawaDB=(__name(_a=class{constructor(){this.stack=[],this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,clear()}getRoot(){return this.root}addNode(rawLevel,text){const label=common_default.sanitizeText(text,getConfig2());if(!this.root)return this.root={text:label,children:[]},this.stack=[{level:0,node:this.root}],void setDiagramTitle(label);this.baseLevel??(this.baseLevel=rawLevel);let level=rawLevel-this.baseLevel+1;for(level<=0&&(level=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=level;)this.stack.pop();const node={text:label,children:[]};this.stack[this.stack.length-1].node.children.push(node),this.stack.push({level:level,node:node})}getAccTitle(){return getAccTitle()}setAccTitle(title){setAccTitle(title)}getAccDescription(){return getAccDescription()}setAccDescription(description){setAccDescription(description)}getDiagramTitle(){return getDiagramTitle()}setDiagramTitle(title){setDiagramTitle(title)}},"IshikawaDB"),_a),ANGLE=82*Math.PI/180,COS_A=Math.cos(ANGLE),SIN_A=Math.sin(ANGLE),applyPaddedViewBox=__name((svgEl,pad,maxW)=>{const bbox=svgEl.node().getBBox(),w=bbox.width+2*pad,h=bbox.height+2*pad;configureSvgSize(svgEl,h,w,maxW),svgEl.attr("viewBox",`${bbox.x-pad} ${bbox.y-pad} ${w} ${h}`)},"applyPaddedViewBox"),draw=__name((_text,id,_version,diagram2)=>{var _a2,_b;const root=diagram2.db.getRoot();if(!root)return;const drawConfig=getConfig2(),{look:look,handDrawnSeed:handDrawnSeed,themeVariables:themeVariables}=drawConfig,fontSize=parseFontSize(drawConfig.fontSize)[0]??14,isHandDrawn="handDrawn"===look,causes=root.children??[],padding=(null==(_a2=drawConfig.ishikawa)?void 0:_a2.diagramPadding)??20,useMaxWidth=(null==(_b=drawConfig.ishikawa)?void 0:_b.useMaxWidth)??!1,svg=selectSvgElement(id),g=svg.append("g").attr("class","ishikawa"),roughSvg=isHandDrawn?at.svg(svg.node()):void 0,roughContext=roughSvg?{roughSvg:roughSvg,seed:handDrawnSeed??0,lineColor:(null==themeVariables?void 0:themeVariables.lineColor)??"#333",fillColor:(null==themeVariables?void 0:themeVariables.mainBkg)??"#fff"}:void 0,markerId=`ishikawa-arrow-${id}`;isHandDrawn||g.append("defs").append("marker").attr("id",markerId).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 Z").attr("class","ishikawa-arrow");let spineX=0,spineY=250;const spineLine=isHandDrawn?void 0:drawLine(g,spineX,spineY,spineX,spineY,"ishikawa-spine");if(drawHead(g,spineX,spineY,root.text,fontSize,roughContext),!causes.length)return isHandDrawn&&drawLine(g,spineX,spineY,spineX,spineY,"ishikawa-spine",roughContext),void applyPaddedViewBox(svg,padding,useMaxWidth);spineX-=20;const upperCauses=causes.filter((_,i)=>i%2==0),lowerCauses=causes.filter((_,i)=>i%2==1),upperStats=sideStats(upperCauses),lowerStats=sideStats(lowerCauses),descendantTotal=upperStats.total+lowerStats.total;let upperLen=250,lowerLen=250;if(descendantTotal>0){const pool=500,minLen=75;upperLen=Math.max(minLen,pool*(upperStats.total/descendantTotal)),lowerLen=Math.max(minLen,pool*(lowerStats.total/descendantTotal))}const minSpacing=2*fontSize;upperLen=Math.max(upperLen,upperStats.max*minSpacing),lowerLen=Math.max(lowerLen,lowerStats.max*minSpacing),spineY=Math.max(upperLen,250),spineLine&&spineLine.attr("y1",spineY).attr("y2",spineY),g.select(".ishikawa-head-group").attr("transform",`translate(0,${spineY})`);const pairCount=Math.ceil(causes.length/2);for(let p=0;p<pairCount;p++){const pg=g.append("g").attr("class","ishikawa-pair");for(const[cause,dir,len]of[[causes[2*p],-1,upperLen],[causes[2*p+1],1,lowerLen]])cause&&drawBranch(pg,cause,spineX,spineY,dir,len,fontSize,roughContext);spineX=pg.selectAll("text").nodes().reduce((left,n)=>Math.min(left,n.getBBox().x),1/0)}if(isHandDrawn)drawLine(g,spineX,spineY,0,spineY,"ishikawa-spine",roughContext);else{spineLine.attr("x1",spineX);const markerUrl=`url(#${markerId})`;g.selectAll("line.ishikawa-branch, line.ishikawa-sub-branch").attr("marker-start",markerUrl)}applyPaddedViewBox(svg,padding,useMaxWidth)},"draw"),sideStats=__name(nodes=>{const countDescendants=__name(node=>node.children.reduce((sum,child)=>sum+1+countDescendants(child),0),"countDescendants");return nodes.reduce((stats,node)=>{const descendants=countDescendants(node);return stats.total+=descendants,stats.max=Math.max(stats.max,descendants),stats},{total:0,max:0})},"sideStats"),drawHead=__name((svg,x,y,label,fontSize,roughContext)=>{const maxChars=Math.max(6,Math.floor(110/(.6*fontSize))),headGroup=svg.append("g").attr("class","ishikawa-head-group").attr("transform",`translate(${x},${y})`),textEl=drawMultilineText(headGroup,wrapText(label,maxChars),0,0,"ishikawa-head-label","start",fontSize),tb=textEl.node().getBBox(),w=Math.max(60,tb.width+6),h=Math.max(40,2*tb.height+40),headPath=`M 0 ${-h/2} L 0 ${h/2} Q ${2.4*w} 0 0 ${-h/2} Z`;if(roughContext){const roughNode=roughContext.roughSvg.path(headPath,{roughness:1.5,seed:roughContext.seed,fill:roughContext.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:roughContext.lineColor,strokeWidth:2});headGroup.insert(()=>roughNode,":first-child").attr("class","ishikawa-head")}else headGroup.insert("path",":first-child").attr("class","ishikawa-head").attr("d",headPath);textEl.attr("transform",`translate(${(w-tb.width)/2-tb.x+3},${-tb.y-tb.height/2})`)},"drawHead"),flattenTree=__name((children,direction)=>{const entries=[],yOrder=[],walk=__name((nodes,pid,depth)=>{const ordered=-1===direction?[...nodes].reverse():nodes;for(const child of ordered){const idx=entries.length,gc=child.children??[];entries.push({depth:depth,text:wrapText(child.text,15),parentIndex:pid,childCount:gc.length}),depth%2==0?(yOrder.push(idx),gc.length&&walk(gc,idx,depth+1)):(gc.length&&walk(gc,idx,depth+1),yOrder.push(idx))}},"walk");return walk(children,-1,2),{entries:entries,yOrder:yOrder}},"flattenTree"),drawCauseLabel=__name((svg,text,x,y,direction,fontSize,roughContext)=>{const lg=svg.append("g").attr("class","ishikawa-label-group"),tb=drawMultilineText(lg,text,x,y+11*direction,"ishikawa-label cause","middle",fontSize).node().getBBox();if(roughContext){const roughNode=roughContext.roughSvg.rectangle(tb.x-20,tb.y-2,tb.width+40,tb.height+4,{roughness:1.5,seed:roughContext.seed,fill:roughContext.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:roughContext.lineColor,strokeWidth:2});lg.insert(()=>roughNode,":first-child").attr("class","ishikawa-label-box")}else lg.insert("rect",":first-child").attr("class","ishikawa-label-box").attr("x",tb.x-20).attr("y",tb.y-2).attr("width",tb.width+40).attr("height",tb.height+4)},"drawCauseLabel"),drawArrowMarker=__name((g,x,y,dx,dy,roughContext)=>{const len=Math.sqrt(dx*dx+dy*dy);if(0===len)return;const ux=dx/len,uy=dy/len,px=6*-uy,py=6*ux,d=`M ${x} ${y} L ${x-6*ux*2+px} ${y-6*uy*2+py} L ${x-6*ux*2-px} ${y-6*uy*2-py} Z`,roughNode=roughContext.roughSvg.path(d,{roughness:1,seed:roughContext.seed,fill:roughContext.lineColor,fillStyle:"solid",stroke:roughContext.lineColor,strokeWidth:1});g.append(()=>roughNode)},"drawArrowMarker"),drawBranch=__name((svg,node,startX,startY,direction,length,fontSize,roughContext)=>{const children=node.children??[],lineLen=length*(children.length?1:.2),dy=SIN_A*lineLen*direction,endX=startX+-COS_A*lineLen,endY=startY+dy;if(drawLine(svg,startX,startY,endX,endY,"ishikawa-branch",roughContext),roughContext&&drawArrowMarker(svg,startX,startY,startX-endX,startY-endY,roughContext),drawCauseLabel(svg,node.text,endX,endY,direction,fontSize,roughContext),!children.length)return;const{entries:entries,yOrder:yOrder}=flattenTree(children,direction),entryCount=entries.length,ys=new Array(entryCount);for(const[slot,entryIdx]of yOrder.entries())ys[entryIdx]=startY+dy*((slot+1)/(entryCount+1));const bones=new Map;bones.set(-1,{x0:startX,y0:startY,x1:endX,y1:endY,childCount:children.length,childrenDrawn:0});const diagonalX=-COS_A,diagonalY=SIN_A*direction,oddLabel=direction<0?"ishikawa-label up":"ishikawa-label down";for(const[i,e]of entries.entries()){const y=ys[i],par=bones.get(e.parentIndex),grp=svg.append("g").attr("class","ishikawa-sub-group");let bx0=0,by0=0,bx1=0;if(e.depth%2==0){const dyP=par.y1-par.y0;bx0=lerp(par.x0,par.x1,dyP?(y-par.y0)/dyP:.5),by0=y,bx1=bx0-(e.childCount>0?60+5*e.childCount:30),drawLine(grp,bx0,y,bx1,y,"ishikawa-sub-branch",roughContext),roughContext&&drawArrowMarker(grp,bx0,y,1,0,roughContext),drawMultilineText(grp,e.text,bx1,y,"ishikawa-label align","end",fontSize)}else{const k=par.childrenDrawn++;bx0=lerp(par.x0,par.x1,(par.childCount-k)/(par.childCount+1)),by0=par.y0,bx1=bx0+diagonalX*((y-by0)/diagonalY),drawLine(grp,bx0,by0,bx1,y,"ishikawa-sub-branch",roughContext),roughContext&&drawArrowMarker(grp,bx0,by0,bx0-bx1,by0-y,roughContext),drawMultilineText(grp,e.text,bx1,y,oddLabel,"end",fontSize)}e.childCount>0&&bones.set(i,{x0:bx0,y0:by0,x1:bx1,y1:y,childCount:e.childCount,childrenDrawn:0})}},"drawBranch"),splitLines=__name(text=>text.split(/<br\s*\/?>|\n/),"splitLines"),wrapText=__name((text,maxChars)=>{if(text.length<=maxChars)return text;const lines=[];for(const word of text.split(/\s+/)){const last=lines.length-1;last>=0&&lines[last].length+1+word.length<=maxChars?lines[last]+=" "+word:lines.push(word)}return lines.join("\n")},"wrapText"),drawMultilineText=__name((g,text,x,y,cls,anchor,fontSize)=>{const lines=splitLines(text),lh=1.05*fontSize,el=g.append("text").attr("class",cls).attr("text-anchor",anchor).attr("x",x).attr("y",y-(lines.length-1)*lh/2);for(const[i,line]of lines.entries())el.append("tspan").attr("x",x).attr("dy",0===i?0:lh).text(line);return el},"drawMultilineText"),lerp=__name((a,b,t)=>a+(b-a)*t,"lerp"),drawLine=__name((g,x1,y1,x2,y2,cls,roughContext)=>{if(roughContext){const roughNode=roughContext.roughSvg.line(x1,y1,x2,y2,{roughness:1.5,seed:roughContext.seed,stroke:roughContext.lineColor,strokeWidth:2});return void g.append(()=>roughNode).attr("class",cls)}return g.append("line").attr("class",cls).attr("x1",x1).attr("y1",y1).attr("x2",x2).attr("y2",y2)},"drawLine"),renderer={draw:draw},ishikawaStyles_default=__name(options=>`\n.ishikawa .ishikawa-spine,\n.ishikawa .ishikawa-branch,\n.ishikawa .ishikawa-sub-branch {\n stroke: ${options.lineColor};\n stroke-width: 2;\n fill: none;\n}\n\n.ishikawa .ishikawa-sub-branch {\n stroke-width: 1;\n}\n\n.ishikawa .ishikawa-arrow {\n fill: ${options.lineColor};\n}\n\n.ishikawa .ishikawa-head {\n fill: ${options.mainBkg};\n stroke: ${options.lineColor};\n stroke-width: 2;\n}\n\n.ishikawa .ishikawa-label-box {\n fill: ${options.mainBkg};\n stroke: ${options.lineColor};\n stroke-width: 2;\n}\n\n.ishikawa text {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor};\n}\n\n.ishikawa .ishikawa-head-label {\n font-weight: 600;\n text-anchor: middle;\n dominant-baseline: middle;\n font-size: 14px;\n}\n\n.ishikawa .ishikawa-label {\n text-anchor: end;\n}\n\n.ishikawa .ishikawa-label.cause {\n text-anchor: middle;\n dominant-baseline: middle;\n}\n\n.ishikawa .ishikawa-label.align {\n text-anchor: end;\n dominant-baseline: middle;\n}\n\n.ishikawa .ishikawa-label.up {\n dominant-baseline: baseline;\n}\n\n.ishikawa .ishikawa-label.down {\n dominant-baseline: hanging;\n}\n`,"getStyles"),diagram={parser:ishikawa_default,get db(){return new IshikawaDB},renderer:renderer,styles:ishikawaStyles_default};export{diagram};
@@ -1 +1 @@
1
- import{g as getIconStyles}from"./chunk-FMBD7UC4-BXa_7Pn3.js";import{a as drawBackgroundRect,g as getNoteRect,h as drawText,d as drawRect}from"./chunk-YZCP3GAM-D2M9T_R5.js";import{g as getAccDescription,s as setAccDescription,a as getAccTitle,b as setAccTitle,q as getDiagramTitle,p as setDiagramTitle,_ as __name,c as getConfig2,d as select,e as configureSvgSize,y as clear}from"./mermaid.core-CDgdx9l7.js";import{d as d3arc}from"./arc-WhuJ-oY5.js";import"./vendor-mdxeditor-B_IrHcWH.js";import"./vendor-antd-DqFS7Zj9.js";import"./vendor-codemirror-B_pF4DrA.js";import"./vendor-markdown-DOJHsAxX.js";var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[6,8,10,11,12,14,16,17,18],$V1=[1,9],$V2=[1,10],$V3=[1,11],$V4=[1,12],$V5=[1,13],$V6=[1,14],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return $$[$0-1];case 2:case 6:case 7:this.$=[];break;case 3:$$[$0-1].push($$[$0]),this.$=$$[$0-1];break;case 4:case 5:this.$=$$[$0];break;case 8:yy.setDiagramTitle($$[$0].substr(6)),this.$=$$[$0].substr(6);break;case 9:this.$=$$[$0].trim(),yy.setAccTitle(this.$);break;case 10:case 11:this.$=$$[$0].trim(),yy.setAccDescription(this.$);break;case 12:yy.addSection($$[$0].substr(8)),this.$=$$[$0].substr(8);break;case 13:yy.addTask($$[$0-1],$$[$0]),this.$="task"}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:$V1,12:$V2,14:$V3,16:$V4,17:$V5,18:$V6},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:15,11:$V1,12:$V2,14:$V3,16:$V4,17:$V5,18:$V6},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,8]),{13:[1,16]},{15:[1,17]},o($V0,[2,11]),o($V0,[2,12]),{19:[1,18]},o($V0,[2,4]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,13])],defaultActions:{},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var journey_default=parser,currentSection="",sections=[],tasks=[],rawTasks=[],clear2=__name(function(){sections.length=0,tasks.length=0,currentSection="",rawTasks.length=0,clear()},"clear"),addSection=__name(function(txt){currentSection=txt,sections.push(txt)},"addSection"),getSections=__name(function(){return sections},"getSections"),getTasks=__name(function(){let allItemsProcessed=compileTasks();let iterationCount=0;for(;!allItemsProcessed&&iterationCount<100;)allItemsProcessed=compileTasks(),iterationCount++;return tasks.push(...rawTasks),tasks},"getTasks"),updateActors=__name(function(){const tempActors=[];tasks.forEach(task=>{task.people&&tempActors.push(...task.people)});return[...new Set(tempActors)].sort()},"updateActors"),addTask=__name(function(descr,taskData){const pieces=taskData.substr(1).split(":");let score=0,peeps=[];1===pieces.length?(score=Number(pieces[0]),peeps=[]):(score=Number(pieces[0]),peeps=pieces[1].split(","));const peopleList=peeps.map(s=>s.trim()),rawTask={section:currentSection,type:currentSection,people:peopleList,task:descr,score:score};rawTasks.push(rawTask)},"addTask"),addTaskOrg=__name(function(descr){const newTask={section:currentSection,type:currentSection,description:descr,task:descr,classes:[]};tasks.push(newTask)},"addTaskOrg"),compileTasks=__name(function(){const compileTask=__name(function(pos){return rawTasks[pos].processed},"compileTask");let allProcessed=!0;for(const[i,rawTask]of rawTasks.entries())compileTask(i),allProcessed=allProcessed&&rawTask.processed;return allProcessed},"compileTasks"),getActors=__name(function(){return updateActors()},"getActors"),journeyDb_default={getConfig:__name(()=>getConfig2().journey,"getConfig"),clear:clear2,setDiagramTitle:setDiagramTitle,getDiagramTitle:getDiagramTitle,setAccTitle:setAccTitle,getAccTitle:getAccTitle,setAccDescription:setAccDescription,getAccDescription:getAccDescription,addSection:addSection,getSections:getSections,getTasks:getTasks,addTask:addTask,addTaskOrg:addTaskOrg,getActors:getActors},styles_default=__name(options=>`.label {\n font-family: ${options.fontFamily};\n color: ${options.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${options.textColor}\n }\n\n .legend {\n fill: ${options.textColor};\n font-family: ${options.fontFamily};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${options.textColor}\n }\n\n .face {\n ${options.faceColor?`fill: ${options.faceColor}`:"fill: #FFF8DC"};\n stroke: #999;\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\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: 1.5px;\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 }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${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 .task-type-0, .section-type-0 {\n ${options.fillType0?`fill: ${options.fillType0}`:""};\n }\n .task-type-1, .section-type-1 {\n ${options.fillType0?`fill: ${options.fillType1}`:""};\n }\n .task-type-2, .section-type-2 {\n ${options.fillType0?`fill: ${options.fillType2}`:""};\n }\n .task-type-3, .section-type-3 {\n ${options.fillType0?`fill: ${options.fillType3}`:""};\n }\n .task-type-4, .section-type-4 {\n ${options.fillType0?`fill: ${options.fillType4}`:""};\n }\n .task-type-5, .section-type-5 {\n ${options.fillType0?`fill: ${options.fillType5}`:""};\n }\n .task-type-6, .section-type-6 {\n ${options.fillType0?`fill: ${options.fillType6}`:""};\n }\n .task-type-7, .section-type-7 {\n ${options.fillType0?`fill: ${options.fillType7}`:""};\n }\n\n .actor-0 {\n ${options.actor0?`fill: ${options.actor0}`:""};\n }\n .actor-1 {\n ${options.actor1?`fill: ${options.actor1}`:""};\n }\n .actor-2 {\n ${options.actor2?`fill: ${options.actor2}`:""};\n }\n .actor-3 {\n ${options.actor3?`fill: ${options.actor3}`:""};\n }\n .actor-4 {\n ${options.actor4?`fill: ${options.actor4}`:""};\n }\n .actor-5 {\n ${options.actor5?`fill: ${options.actor5}`:""};\n }\n ${getIconStyles()}\n`,"getStyles"),drawRect2=__name(function(elem,rectData){return drawRect(elem,rectData)},"drawRect"),drawFace=__name(function(element,faceData){const circleElement=element.append("circle").attr("cx",faceData.cx).attr("cy",faceData.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),face=element.append("g");function smile(face2){const arc=d3arc().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);face2.append("path").attr("class","mouth").attr("d",arc).attr("transform","translate("+faceData.cx+","+(faceData.cy+2)+")")}function sad(face2){const arc=d3arc().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);face2.append("path").attr("class","mouth").attr("d",arc).attr("transform","translate("+faceData.cx+","+(faceData.cy+7)+")")}function ambivalent(face2){face2.append("line").attr("class","mouth").attr("stroke",2).attr("x1",faceData.cx-5).attr("y1",faceData.cy+7).attr("x2",faceData.cx+5).attr("y2",faceData.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return face.append("circle").attr("cx",faceData.cx-5).attr("cy",faceData.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),face.append("circle").attr("cx",faceData.cx+5).attr("cy",faceData.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),__name(smile,"smile"),__name(sad,"sad"),__name(ambivalent,"ambivalent"),faceData.score>3?smile(face):faceData.score<3?sad(face):ambivalent(face),circleElement},"drawFace"),drawCircle=__name(function(element,circleData){const circleElement=element.append("circle");return circleElement.attr("cx",circleData.cx),circleElement.attr("cy",circleData.cy),circleElement.attr("class","actor-"+circleData.pos),circleElement.attr("fill",circleData.fill),circleElement.attr("stroke",circleData.stroke),circleElement.attr("r",circleData.r),void 0!==circleElement.class&&circleElement.attr("class",circleElement.class),void 0!==circleData.title&&circleElement.append("title").text(circleData.title),circleElement},"drawCircle"),drawText2=__name(function(elem,textData){return drawText(elem,textData)},"drawText"),drawLabel=__name(function(elem,txtObject){function genPoints(x,y,width,height,cut){return x+","+y+" "+(x+width)+","+y+" "+(x+width)+","+(y+height-cut)+" "+(x+width-1.2*cut)+","+(y+height)+" "+x+","+(y+height)}__name(genPoints,"genPoints");const polygon=elem.append("polygon");polygon.attr("points",genPoints(txtObject.x,txtObject.y,50,20,7)),polygon.attr("class","labelBox"),txtObject.y=txtObject.y+txtObject.labelMargin,txtObject.x=txtObject.x+.5*txtObject.labelMargin,drawText2(elem,txtObject)},"drawLabel"),drawSection=__name(function(elem,section,conf2){const g=elem.append("g"),rect=getNoteRect();rect.x=section.x,rect.y=section.y,rect.fill=section.fill,rect.width=conf2.width*section.taskCount+conf2.diagramMarginX*(section.taskCount-1),rect.height=conf2.height,rect.class="journey-section section-type-"+section.num,rect.rx=3,rect.ry=3,drawRect2(g,rect),_drawTextCandidateFunc(conf2)(section.text,g,rect.x,rect.y,rect.width,rect.height,{class:"journey-section section-type-"+section.num},conf2,section.colour)},"drawSection"),taskCount=-1,drawTask=__name(function(elem,task,conf2,diagramId){const center=task.x+conf2.width/2,g=elem.append("g");taskCount++;g.append("line").attr("id",diagramId+"-task"+taskCount).attr("x1",center).attr("y1",task.y).attr("x2",center).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),drawFace(g,{cx:center,cy:300+30*(5-task.score),score:task.score});const rect=getNoteRect();rect.x=task.x,rect.y=task.y,rect.fill=task.fill,rect.width=conf2.width,rect.height=conf2.height,rect.class="task task-type-"+task.num,rect.rx=3,rect.ry=3,drawRect2(g,rect);let xPos=task.x+14;task.people.forEach(person=>{const colour=task.actors[person].color,circle={cx:xPos,cy:task.y,r:7,fill:colour,stroke:"#000",title:person,pos:task.actors[person].position};drawCircle(g,circle),xPos+=10}),_drawTextCandidateFunc(conf2)(task.task,g,rect.x,rect.y,rect.width,rect.height,{class:"task"},conf2,task.colour)},"drawTask"),drawBackgroundRect2=__name(function(elem,bounds2){drawBackgroundRect(elem,bounds2)},"drawBackgroundRect"),_drawTextCandidateFunc=function(){function byText(content,g,x,y,width,height,textAttrs,colour){_setTextAttrs(g.append("text").attr("x",x+width/2).attr("y",y+height/2+5).style("font-color",colour).style("text-anchor","middle").text(content),textAttrs)}function byTspan(content,g,x,y,width,height,textAttrs,conf2,colour){const{taskFontSize:taskFontSize,taskFontFamily:taskFontFamily}=conf2,lines=content.split(/<br\s*\/?>/gi);for(let i=0;i<lines.length;i++){const dy=i*taskFontSize-taskFontSize*(lines.length-1)/2,text=g.append("text").attr("x",x+width/2).attr("y",y).attr("fill",colour).style("text-anchor","middle").style("font-size",taskFontSize).style("font-family",taskFontFamily);text.append("tspan").attr("x",x+width/2).attr("dy",dy).text(lines[i]),text.attr("y",y+height/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),_setTextAttrs(text,textAttrs)}}function byFo(content,g,x,y,width,height,textAttrs,conf2){const body=g.append("switch"),text=body.append("foreignObject").attr("x",x).attr("y",y).attr("width",width).attr("height",height).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");text.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(content),byTspan(content,body,x,y,width,height,textAttrs,conf2),_setTextAttrs(text,textAttrs)}function _setTextAttrs(toText,fromTextAttrsDict){for(const key in fromTextAttrsDict)key in fromTextAttrsDict&&toText.attr(key,fromTextAttrsDict[key])}return __name(byText,"byText"),__name(byTspan,"byTspan"),__name(byFo,"byFo"),__name(_setTextAttrs,"_setTextAttrs"),function(conf2){return"fo"===conf2.textPlacement?byFo:"old"===conf2.textPlacement?byText:byTspan}}(),svgDraw_default={drawRect:drawRect2,drawCircle:drawCircle,drawSection:drawSection,drawText:drawText2,drawLabel:drawLabel,drawTask:drawTask,drawBackgroundRect:drawBackgroundRect2,initGraphics:__name(function(graphics,id){taskCount=-1,graphics.append("defs").append("marker").attr("id",id+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics")},setConf=__name(function(cnf){Object.keys(cnf).forEach(function(key){conf[key]=cnf[key]})},"setConf"),actors={},maxWidth=0;function drawActorLegend(diagram2){const conf2=getConfig2().journey,maxLabelWidth=conf2.maxLabelWidth;maxWidth=0;let yPos=60;Object.keys(actors).forEach(person=>{const colour=actors[person].color,circleData={cx:20,cy:yPos,r:7,fill:colour,stroke:"#000",pos:actors[person].position};svgDraw_default.drawCircle(diagram2,circleData);let measureText=diagram2.append("text").attr("visibility","hidden").text(person);const fullTextWidth=measureText.node().getBoundingClientRect().width;measureText.remove();let lines=[];if(fullTextWidth<=maxLabelWidth)lines=[person];else{const words=person.split(" ");let currentLine="";measureText=diagram2.append("text").attr("visibility","hidden"),words.forEach(word=>{const testLine=currentLine?`${currentLine} ${word}`:word;measureText.text(testLine);if(measureText.node().getBoundingClientRect().width>maxLabelWidth){if(currentLine&&lines.push(currentLine),currentLine=word,measureText.text(word),measureText.node().getBoundingClientRect().width>maxLabelWidth){let brokenWord="";for(const char of word)brokenWord+=char,measureText.text(brokenWord+"-"),measureText.node().getBoundingClientRect().width>maxLabelWidth&&(lines.push(brokenWord.slice(0,-1)+"-"),brokenWord=char);currentLine=brokenWord}}else currentLine=testLine}),currentLine&&lines.push(currentLine),measureText.remove()}lines.forEach((line,index)=>{const labelData={x:40,y:yPos+7+20*index,fill:"#666",text:line,textMargin:conf2.boxTextMargin??5},lineWidth=svgDraw_default.drawText(diagram2,labelData).node().getBoundingClientRect().width;lineWidth>maxWidth&&lineWidth>conf2.leftMargin-lineWidth&&(maxWidth=lineWidth)}),yPos+=Math.max(20,20*lines.length)})}__name(drawActorLegend,"drawActorLegend");var conf=getConfig2().journey,leftMargin=0,draw=__name(function(text,id,version,diagObj){const configObject=getConfig2(),titleColor=configObject.journey.titleColor,titleFontSize=configObject.journey.titleFontSize,titleFontFamily=configObject.journey.titleFontFamily,securityLevel=configObject.securityLevel;let sandboxElement;"sandbox"===securityLevel&&(sandboxElement=select("#i"+id));const root=select("sandbox"===securityLevel?sandboxElement.nodes()[0].contentDocument.body:"body");bounds.init();const diagram2=root.select("#"+id);svgDraw_default.initGraphics(diagram2,id);const tasks2=diagObj.db.getTasks(),title=diagObj.db.getDiagramTitle(),actorNames=diagObj.db.getActors();for(const member in actors)delete actors[member];let actorPos=0;actorNames.forEach(actorName=>{actors[actorName]={color:conf.actorColours[actorPos%conf.actorColours.length],position:actorPos},actorPos++}),drawActorLegend(diagram2),leftMargin=conf.leftMargin+maxWidth,bounds.insert(0,0,leftMargin,50*Object.keys(actors).length),drawTasks(diagram2,tasks2,0,id);const box=bounds.getBounds();title&&diagram2.append("text").text(title).attr("x",leftMargin).attr("font-size",titleFontSize).attr("font-weight","bold").attr("y",25).attr("fill",titleColor).attr("font-family",titleFontFamily);const height=box.stopy-box.starty+2*conf.diagramMarginY,width=leftMargin+box.stopx+2*conf.diagramMarginX;configureSvgSize(diagram2,height,width,conf.useMaxWidth),diagram2.append("line").attr("x1",leftMargin).attr("y1",4*conf.height).attr("x2",width-leftMargin-4).attr("y2",4*conf.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#"+id+"-arrowhead)");const extraVertForTitle=title?70:0;diagram2.attr("viewBox",`${box.startx} -25 ${width} ${height+extraVertForTitle}`),diagram2.attr("preserveAspectRatio","xMinYMin meet"),diagram2.attr("height",height+extraVertForTitle+25)},"draw"),bounds={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:__name(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:__name(function(obj,key,val,fun){void 0===obj[key]?obj[key]=val:obj[key]=fun(val,obj[key])},"updateVal"),updateBounds:__name(function(startx,starty,stopx,stopy){const conf2=getConfig2().journey,_self=this;let cnt=0;function updateFn(type){return __name(function(item){cnt++;const n=_self.sequenceItems.length-cnt+1;_self.updateVal(item,"starty",starty-n*conf2.boxMargin,Math.min),_self.updateVal(item,"stopy",stopy+n*conf2.boxMargin,Math.max),_self.updateVal(bounds.data,"startx",startx-n*conf2.boxMargin,Math.min),_self.updateVal(bounds.data,"stopx",stopx+n*conf2.boxMargin,Math.max),"activation"!==type&&(_self.updateVal(item,"startx",startx-n*conf2.boxMargin,Math.min),_self.updateVal(item,"stopx",stopx+n*conf2.boxMargin,Math.max),_self.updateVal(bounds.data,"starty",starty-n*conf2.boxMargin,Math.min),_self.updateVal(bounds.data,"stopy",stopy+n*conf2.boxMargin,Math.max))},"updateItemBounds")}__name(updateFn,"updateFn"),this.sequenceItems.forEach(updateFn())},"updateBounds"),insert:__name(function(startx,starty,stopx,stopy){const _startx=Math.min(startx,stopx),_stopx=Math.max(startx,stopx),_starty=Math.min(starty,stopy),_stopy=Math.max(starty,stopy);this.updateVal(bounds.data,"startx",_startx,Math.min),this.updateVal(bounds.data,"starty",_starty,Math.min),this.updateVal(bounds.data,"stopx",_stopx,Math.max),this.updateVal(bounds.data,"stopy",_stopy,Math.max),this.updateBounds(_startx,_starty,_stopx,_stopy)},"insert"),bumpVerticalPos:__name(function(bump){this.verticalPos=this.verticalPos+bump,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:__name(function(){return this.verticalPos},"getVerticalPos"),getBounds:__name(function(){return this.data},"getBounds")},fills=conf.sectionFills,textColours=conf.sectionColours,drawTasks=__name(function(diagram2,tasks2,verticalPos,diagramId){const conf2=getConfig2().journey;let lastSection="";const taskPos=verticalPos+(2*conf2.height+conf2.diagramMarginY);let sectionNumber=0,fill="#CCC",colour="black",num=0;for(const[i,task]of tasks2.entries()){if(lastSection!==task.section){fill=fills[sectionNumber%fills.length],num=sectionNumber%fills.length,colour=textColours[sectionNumber%textColours.length];let taskInSectionCount=0;const currentSection2=task.section;for(let taskIndex=i;taskIndex<tasks2.length&&tasks2[taskIndex].section==currentSection2;taskIndex++)taskInSectionCount+=1;const section={x:i*conf2.taskMargin+i*conf2.width+leftMargin,y:50,text:task.section,fill:fill,num:num,colour:colour,taskCount:taskInSectionCount};svgDraw_default.drawSection(diagram2,section,conf2),lastSection=task.section,sectionNumber++}const taskActors=task.people.reduce((acc,actorName)=>(actors[actorName]&&(acc[actorName]=actors[actorName]),acc),{});task.x=i*conf2.taskMargin+i*conf2.width+leftMargin,task.y=taskPos,task.width=conf2.diagramMarginX,task.height=conf2.diagramMarginY,task.colour=colour,task.fill=fill,task.num=num,task.actors=taskActors,svgDraw_default.drawTask(diagram2,task,conf2,diagramId),bounds.insert(task.x,task.y,task.x+task.width+conf2.taskMargin,450)}},"drawTasks"),journeyRenderer_default={setConf:setConf,draw:draw},diagram={parser:journey_default,db:journeyDb_default,renderer:journeyRenderer_default,styles:styles_default,init:__name(cnf=>{journeyRenderer_default.setConf(cnf.journey),journeyDb_default.clear()},"init")};export{diagram};
1
+ import{g as getIconStyles}from"./chunk-FMBD7UC4-CTHLGcHh.js";import{a as drawBackgroundRect,g as getNoteRect,h as drawText,d as drawRect}from"./chunk-YZCP3GAM-BY71mTXM.js";import{g as getAccDescription,s as setAccDescription,a as getAccTitle,b as setAccTitle,q as getDiagramTitle,p as setDiagramTitle,_ as __name,c as getConfig2,d as select,e as configureSvgSize,y as clear}from"./mermaid.core-BV3ugHFm.js";import{d as d3arc}from"./arc-CjTV5gxc.js";import"./vendor-mdxeditor-Cco3AQJS.js";import"./vendor-antd-Bur5ZxWE.js";import"./vendor-codemirror-Si44UqBp.js";import"./vendor-markdown-DOJHsAxX.js";var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[6,8,10,11,12,14,16,17,18],$V1=[1,9],$V2=[1,10],$V3=[1,11],$V4=[1,12],$V5=[1,13],$V6=[1,14],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return $$[$0-1];case 2:case 6:case 7:this.$=[];break;case 3:$$[$0-1].push($$[$0]),this.$=$$[$0-1];break;case 4:case 5:this.$=$$[$0];break;case 8:yy.setDiagramTitle($$[$0].substr(6)),this.$=$$[$0].substr(6);break;case 9:this.$=$$[$0].trim(),yy.setAccTitle(this.$);break;case 10:case 11:this.$=$$[$0].trim(),yy.setAccDescription(this.$);break;case 12:yy.addSection($$[$0].substr(8)),this.$=$$[$0].substr(8);break;case 13:yy.addTask($$[$0-1],$$[$0]),this.$="task"}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:$V1,12:$V2,14:$V3,16:$V4,17:$V5,18:$V6},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:15,11:$V1,12:$V2,14:$V3,16:$V4,17:$V5,18:$V6},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,8]),{13:[1,16]},{15:[1,17]},o($V0,[2,11]),o($V0,[2,12]),{19:[1,18]},o($V0,[2,4]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,13])],defaultActions:{},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var journey_default=parser,currentSection="",sections=[],tasks=[],rawTasks=[],clear2=__name(function(){sections.length=0,tasks.length=0,currentSection="",rawTasks.length=0,clear()},"clear"),addSection=__name(function(txt){currentSection=txt,sections.push(txt)},"addSection"),getSections=__name(function(){return sections},"getSections"),getTasks=__name(function(){let allItemsProcessed=compileTasks();let iterationCount=0;for(;!allItemsProcessed&&iterationCount<100;)allItemsProcessed=compileTasks(),iterationCount++;return tasks.push(...rawTasks),tasks},"getTasks"),updateActors=__name(function(){const tempActors=[];tasks.forEach(task=>{task.people&&tempActors.push(...task.people)});return[...new Set(tempActors)].sort()},"updateActors"),addTask=__name(function(descr,taskData){const pieces=taskData.substr(1).split(":");let score=0,peeps=[];1===pieces.length?(score=Number(pieces[0]),peeps=[]):(score=Number(pieces[0]),peeps=pieces[1].split(","));const peopleList=peeps.map(s=>s.trim()),rawTask={section:currentSection,type:currentSection,people:peopleList,task:descr,score:score};rawTasks.push(rawTask)},"addTask"),addTaskOrg=__name(function(descr){const newTask={section:currentSection,type:currentSection,description:descr,task:descr,classes:[]};tasks.push(newTask)},"addTaskOrg"),compileTasks=__name(function(){const compileTask=__name(function(pos){return rawTasks[pos].processed},"compileTask");let allProcessed=!0;for(const[i,rawTask]of rawTasks.entries())compileTask(i),allProcessed=allProcessed&&rawTask.processed;return allProcessed},"compileTasks"),getActors=__name(function(){return updateActors()},"getActors"),journeyDb_default={getConfig:__name(()=>getConfig2().journey,"getConfig"),clear:clear2,setDiagramTitle:setDiagramTitle,getDiagramTitle:getDiagramTitle,setAccTitle:setAccTitle,getAccTitle:getAccTitle,setAccDescription:setAccDescription,getAccDescription:getAccDescription,addSection:addSection,getSections:getSections,getTasks:getTasks,addTask:addTask,addTaskOrg:addTaskOrg,getActors:getActors},styles_default=__name(options=>`.label {\n font-family: ${options.fontFamily};\n color: ${options.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${options.textColor}\n }\n\n .legend {\n fill: ${options.textColor};\n font-family: ${options.fontFamily};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${options.textColor}\n }\n\n .face {\n ${options.faceColor?`fill: ${options.faceColor}`:"fill: #FFF8DC"};\n stroke: #999;\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\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: 1.5px;\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 }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${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 .task-type-0, .section-type-0 {\n ${options.fillType0?`fill: ${options.fillType0}`:""};\n }\n .task-type-1, .section-type-1 {\n ${options.fillType0?`fill: ${options.fillType1}`:""};\n }\n .task-type-2, .section-type-2 {\n ${options.fillType0?`fill: ${options.fillType2}`:""};\n }\n .task-type-3, .section-type-3 {\n ${options.fillType0?`fill: ${options.fillType3}`:""};\n }\n .task-type-4, .section-type-4 {\n ${options.fillType0?`fill: ${options.fillType4}`:""};\n }\n .task-type-5, .section-type-5 {\n ${options.fillType0?`fill: ${options.fillType5}`:""};\n }\n .task-type-6, .section-type-6 {\n ${options.fillType0?`fill: ${options.fillType6}`:""};\n }\n .task-type-7, .section-type-7 {\n ${options.fillType0?`fill: ${options.fillType7}`:""};\n }\n\n .actor-0 {\n ${options.actor0?`fill: ${options.actor0}`:""};\n }\n .actor-1 {\n ${options.actor1?`fill: ${options.actor1}`:""};\n }\n .actor-2 {\n ${options.actor2?`fill: ${options.actor2}`:""};\n }\n .actor-3 {\n ${options.actor3?`fill: ${options.actor3}`:""};\n }\n .actor-4 {\n ${options.actor4?`fill: ${options.actor4}`:""};\n }\n .actor-5 {\n ${options.actor5?`fill: ${options.actor5}`:""};\n }\n ${getIconStyles()}\n`,"getStyles"),drawRect2=__name(function(elem,rectData){return drawRect(elem,rectData)},"drawRect"),drawFace=__name(function(element,faceData){const circleElement=element.append("circle").attr("cx",faceData.cx).attr("cy",faceData.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),face=element.append("g");function smile(face2){const arc=d3arc().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);face2.append("path").attr("class","mouth").attr("d",arc).attr("transform","translate("+faceData.cx+","+(faceData.cy+2)+")")}function sad(face2){const arc=d3arc().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);face2.append("path").attr("class","mouth").attr("d",arc).attr("transform","translate("+faceData.cx+","+(faceData.cy+7)+")")}function ambivalent(face2){face2.append("line").attr("class","mouth").attr("stroke",2).attr("x1",faceData.cx-5).attr("y1",faceData.cy+7).attr("x2",faceData.cx+5).attr("y2",faceData.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return face.append("circle").attr("cx",faceData.cx-5).attr("cy",faceData.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),face.append("circle").attr("cx",faceData.cx+5).attr("cy",faceData.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),__name(smile,"smile"),__name(sad,"sad"),__name(ambivalent,"ambivalent"),faceData.score>3?smile(face):faceData.score<3?sad(face):ambivalent(face),circleElement},"drawFace"),drawCircle=__name(function(element,circleData){const circleElement=element.append("circle");return circleElement.attr("cx",circleData.cx),circleElement.attr("cy",circleData.cy),circleElement.attr("class","actor-"+circleData.pos),circleElement.attr("fill",circleData.fill),circleElement.attr("stroke",circleData.stroke),circleElement.attr("r",circleData.r),void 0!==circleElement.class&&circleElement.attr("class",circleElement.class),void 0!==circleData.title&&circleElement.append("title").text(circleData.title),circleElement},"drawCircle"),drawText2=__name(function(elem,textData){return drawText(elem,textData)},"drawText"),drawLabel=__name(function(elem,txtObject){function genPoints(x,y,width,height,cut){return x+","+y+" "+(x+width)+","+y+" "+(x+width)+","+(y+height-cut)+" "+(x+width-1.2*cut)+","+(y+height)+" "+x+","+(y+height)}__name(genPoints,"genPoints");const polygon=elem.append("polygon");polygon.attr("points",genPoints(txtObject.x,txtObject.y,50,20,7)),polygon.attr("class","labelBox"),txtObject.y=txtObject.y+txtObject.labelMargin,txtObject.x=txtObject.x+.5*txtObject.labelMargin,drawText2(elem,txtObject)},"drawLabel"),drawSection=__name(function(elem,section,conf2){const g=elem.append("g"),rect=getNoteRect();rect.x=section.x,rect.y=section.y,rect.fill=section.fill,rect.width=conf2.width*section.taskCount+conf2.diagramMarginX*(section.taskCount-1),rect.height=conf2.height,rect.class="journey-section section-type-"+section.num,rect.rx=3,rect.ry=3,drawRect2(g,rect),_drawTextCandidateFunc(conf2)(section.text,g,rect.x,rect.y,rect.width,rect.height,{class:"journey-section section-type-"+section.num},conf2,section.colour)},"drawSection"),taskCount=-1,drawTask=__name(function(elem,task,conf2,diagramId){const center=task.x+conf2.width/2,g=elem.append("g");taskCount++;g.append("line").attr("id",diagramId+"-task"+taskCount).attr("x1",center).attr("y1",task.y).attr("x2",center).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),drawFace(g,{cx:center,cy:300+30*(5-task.score),score:task.score});const rect=getNoteRect();rect.x=task.x,rect.y=task.y,rect.fill=task.fill,rect.width=conf2.width,rect.height=conf2.height,rect.class="task task-type-"+task.num,rect.rx=3,rect.ry=3,drawRect2(g,rect);let xPos=task.x+14;task.people.forEach(person=>{const colour=task.actors[person].color,circle={cx:xPos,cy:task.y,r:7,fill:colour,stroke:"#000",title:person,pos:task.actors[person].position};drawCircle(g,circle),xPos+=10}),_drawTextCandidateFunc(conf2)(task.task,g,rect.x,rect.y,rect.width,rect.height,{class:"task"},conf2,task.colour)},"drawTask"),drawBackgroundRect2=__name(function(elem,bounds2){drawBackgroundRect(elem,bounds2)},"drawBackgroundRect"),_drawTextCandidateFunc=function(){function byText(content,g,x,y,width,height,textAttrs,colour){_setTextAttrs(g.append("text").attr("x",x+width/2).attr("y",y+height/2+5).style("font-color",colour).style("text-anchor","middle").text(content),textAttrs)}function byTspan(content,g,x,y,width,height,textAttrs,conf2,colour){const{taskFontSize:taskFontSize,taskFontFamily:taskFontFamily}=conf2,lines=content.split(/<br\s*\/?>/gi);for(let i=0;i<lines.length;i++){const dy=i*taskFontSize-taskFontSize*(lines.length-1)/2,text=g.append("text").attr("x",x+width/2).attr("y",y).attr("fill",colour).style("text-anchor","middle").style("font-size",taskFontSize).style("font-family",taskFontFamily);text.append("tspan").attr("x",x+width/2).attr("dy",dy).text(lines[i]),text.attr("y",y+height/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),_setTextAttrs(text,textAttrs)}}function byFo(content,g,x,y,width,height,textAttrs,conf2){const body=g.append("switch"),text=body.append("foreignObject").attr("x",x).attr("y",y).attr("width",width).attr("height",height).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");text.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(content),byTspan(content,body,x,y,width,height,textAttrs,conf2),_setTextAttrs(text,textAttrs)}function _setTextAttrs(toText,fromTextAttrsDict){for(const key in fromTextAttrsDict)key in fromTextAttrsDict&&toText.attr(key,fromTextAttrsDict[key])}return __name(byText,"byText"),__name(byTspan,"byTspan"),__name(byFo,"byFo"),__name(_setTextAttrs,"_setTextAttrs"),function(conf2){return"fo"===conf2.textPlacement?byFo:"old"===conf2.textPlacement?byText:byTspan}}(),svgDraw_default={drawRect:drawRect2,drawCircle:drawCircle,drawSection:drawSection,drawText:drawText2,drawLabel:drawLabel,drawTask:drawTask,drawBackgroundRect:drawBackgroundRect2,initGraphics:__name(function(graphics,id){taskCount=-1,graphics.append("defs").append("marker").attr("id",id+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics")},setConf=__name(function(cnf){Object.keys(cnf).forEach(function(key){conf[key]=cnf[key]})},"setConf"),actors={},maxWidth=0;function drawActorLegend(diagram2){const conf2=getConfig2().journey,maxLabelWidth=conf2.maxLabelWidth;maxWidth=0;let yPos=60;Object.keys(actors).forEach(person=>{const colour=actors[person].color,circleData={cx:20,cy:yPos,r:7,fill:colour,stroke:"#000",pos:actors[person].position};svgDraw_default.drawCircle(diagram2,circleData);let measureText=diagram2.append("text").attr("visibility","hidden").text(person);const fullTextWidth=measureText.node().getBoundingClientRect().width;measureText.remove();let lines=[];if(fullTextWidth<=maxLabelWidth)lines=[person];else{const words=person.split(" ");let currentLine="";measureText=diagram2.append("text").attr("visibility","hidden"),words.forEach(word=>{const testLine=currentLine?`${currentLine} ${word}`:word;measureText.text(testLine);if(measureText.node().getBoundingClientRect().width>maxLabelWidth){if(currentLine&&lines.push(currentLine),currentLine=word,measureText.text(word),measureText.node().getBoundingClientRect().width>maxLabelWidth){let brokenWord="";for(const char of word)brokenWord+=char,measureText.text(brokenWord+"-"),measureText.node().getBoundingClientRect().width>maxLabelWidth&&(lines.push(brokenWord.slice(0,-1)+"-"),brokenWord=char);currentLine=brokenWord}}else currentLine=testLine}),currentLine&&lines.push(currentLine),measureText.remove()}lines.forEach((line,index)=>{const labelData={x:40,y:yPos+7+20*index,fill:"#666",text:line,textMargin:conf2.boxTextMargin??5},lineWidth=svgDraw_default.drawText(diagram2,labelData).node().getBoundingClientRect().width;lineWidth>maxWidth&&lineWidth>conf2.leftMargin-lineWidth&&(maxWidth=lineWidth)}),yPos+=Math.max(20,20*lines.length)})}__name(drawActorLegend,"drawActorLegend");var conf=getConfig2().journey,leftMargin=0,draw=__name(function(text,id,version,diagObj){const configObject=getConfig2(),titleColor=configObject.journey.titleColor,titleFontSize=configObject.journey.titleFontSize,titleFontFamily=configObject.journey.titleFontFamily,securityLevel=configObject.securityLevel;let sandboxElement;"sandbox"===securityLevel&&(sandboxElement=select("#i"+id));const root=select("sandbox"===securityLevel?sandboxElement.nodes()[0].contentDocument.body:"body");bounds.init();const diagram2=root.select("#"+id);svgDraw_default.initGraphics(diagram2,id);const tasks2=diagObj.db.getTasks(),title=diagObj.db.getDiagramTitle(),actorNames=diagObj.db.getActors();for(const member in actors)delete actors[member];let actorPos=0;actorNames.forEach(actorName=>{actors[actorName]={color:conf.actorColours[actorPos%conf.actorColours.length],position:actorPos},actorPos++}),drawActorLegend(diagram2),leftMargin=conf.leftMargin+maxWidth,bounds.insert(0,0,leftMargin,50*Object.keys(actors).length),drawTasks(diagram2,tasks2,0,id);const box=bounds.getBounds();title&&diagram2.append("text").text(title).attr("x",leftMargin).attr("font-size",titleFontSize).attr("font-weight","bold").attr("y",25).attr("fill",titleColor).attr("font-family",titleFontFamily);const height=box.stopy-box.starty+2*conf.diagramMarginY,width=leftMargin+box.stopx+2*conf.diagramMarginX;configureSvgSize(diagram2,height,width,conf.useMaxWidth),diagram2.append("line").attr("x1",leftMargin).attr("y1",4*conf.height).attr("x2",width-leftMargin-4).attr("y2",4*conf.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#"+id+"-arrowhead)");const extraVertForTitle=title?70:0;diagram2.attr("viewBox",`${box.startx} -25 ${width} ${height+extraVertForTitle}`),diagram2.attr("preserveAspectRatio","xMinYMin meet"),diagram2.attr("height",height+extraVertForTitle+25)},"draw"),bounds={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:__name(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:__name(function(obj,key,val,fun){void 0===obj[key]?obj[key]=val:obj[key]=fun(val,obj[key])},"updateVal"),updateBounds:__name(function(startx,starty,stopx,stopy){const conf2=getConfig2().journey,_self=this;let cnt=0;function updateFn(type){return __name(function(item){cnt++;const n=_self.sequenceItems.length-cnt+1;_self.updateVal(item,"starty",starty-n*conf2.boxMargin,Math.min),_self.updateVal(item,"stopy",stopy+n*conf2.boxMargin,Math.max),_self.updateVal(bounds.data,"startx",startx-n*conf2.boxMargin,Math.min),_self.updateVal(bounds.data,"stopx",stopx+n*conf2.boxMargin,Math.max),"activation"!==type&&(_self.updateVal(item,"startx",startx-n*conf2.boxMargin,Math.min),_self.updateVal(item,"stopx",stopx+n*conf2.boxMargin,Math.max),_self.updateVal(bounds.data,"starty",starty-n*conf2.boxMargin,Math.min),_self.updateVal(bounds.data,"stopy",stopy+n*conf2.boxMargin,Math.max))},"updateItemBounds")}__name(updateFn,"updateFn"),this.sequenceItems.forEach(updateFn())},"updateBounds"),insert:__name(function(startx,starty,stopx,stopy){const _startx=Math.min(startx,stopx),_stopx=Math.max(startx,stopx),_starty=Math.min(starty,stopy),_stopy=Math.max(starty,stopy);this.updateVal(bounds.data,"startx",_startx,Math.min),this.updateVal(bounds.data,"starty",_starty,Math.min),this.updateVal(bounds.data,"stopx",_stopx,Math.max),this.updateVal(bounds.data,"stopy",_stopy,Math.max),this.updateBounds(_startx,_starty,_stopx,_stopy)},"insert"),bumpVerticalPos:__name(function(bump){this.verticalPos=this.verticalPos+bump,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:__name(function(){return this.verticalPos},"getVerticalPos"),getBounds:__name(function(){return this.data},"getBounds")},fills=conf.sectionFills,textColours=conf.sectionColours,drawTasks=__name(function(diagram2,tasks2,verticalPos,diagramId){const conf2=getConfig2().journey;let lastSection="";const taskPos=verticalPos+(2*conf2.height+conf2.diagramMarginY);let sectionNumber=0,fill="#CCC",colour="black",num=0;for(const[i,task]of tasks2.entries()){if(lastSection!==task.section){fill=fills[sectionNumber%fills.length],num=sectionNumber%fills.length,colour=textColours[sectionNumber%textColours.length];let taskInSectionCount=0;const currentSection2=task.section;for(let taskIndex=i;taskIndex<tasks2.length&&tasks2[taskIndex].section==currentSection2;taskIndex++)taskInSectionCount+=1;const section={x:i*conf2.taskMargin+i*conf2.width+leftMargin,y:50,text:task.section,fill:fill,num:num,colour:colour,taskCount:taskInSectionCount};svgDraw_default.drawSection(diagram2,section,conf2),lastSection=task.section,sectionNumber++}const taskActors=task.people.reduce((acc,actorName)=>(actors[actorName]&&(acc[actorName]=actors[actorName]),acc),{});task.x=i*conf2.taskMargin+i*conf2.width+leftMargin,task.y=taskPos,task.width=conf2.diagramMarginX,task.height=conf2.diagramMarginY,task.colour=colour,task.fill=fill,task.num=num,task.actors=taskActors,svgDraw_default.drawTask(diagram2,task,conf2,diagramId),bounds.insert(task.x,task.y,task.x+task.width+conf2.taskMargin,450)}},"drawTasks"),journeyRenderer_default={setConf:setConf,draw:draw},diagram={parser:journey_default,db:journeyDb_default,renderer:journeyRenderer_default,styles:styles_default,init:__name(cnf=>{journeyRenderer_default.setConf(cnf.journey),journeyDb_default.clear()},"init")};export{diagram};
@@ -1,4 +1,4 @@
1
- import{h as commonjsGlobal,g as getDefaultExportFromCjs}from"./vendor-antd-DqFS7Zj9.js";function _mergeNamespaces(n,m){for(var i=0;i<m.length;i++){const e=m[i];if("string"!=typeof e&&!Array.isArray(e))for(const k in e)if("default"!==k&&!(k in n)){const d=Object.getOwnPropertyDescriptor(e,k);d&&Object.defineProperty(n,k,d.get?d:{enumerable:!0,get:()=>e[k]})}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}function commonjsRequire(path){throw new Error('Could not dynamically require "'+path+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var hasRequiredJszip_min,jszip_min$2={exports:{}};
1
+ import{h as commonjsGlobal,g as getDefaultExportFromCjs}from"./vendor-antd-Bur5ZxWE.js";function _mergeNamespaces(n,m){for(var i=0;i<m.length;i++){const e=m[i];if("string"!=typeof e&&!Array.isArray(e))for(const k in e)if("default"!==k&&!(k in n)){const d=Object.getOwnPropertyDescriptor(e,k);d&&Object.defineProperty(n,k,d.get?d:{enumerable:!0,get:()=>e[k]})}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}function commonjsRequire(path){throw new Error('Could not dynamically require "'+path+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var hasRequiredJszip_min,jszip_min$2={exports:{}};
2
2
  /*!
3
3
 
4
4
  JSZip v3.10.1 - A JavaScript class for generating and reading zip files
@@ -1 +1 @@
1
- import{_ as __name,l as log,c as getConfig2,H as selectSvgElement,ae as insertCluster,af as insertNode,ag as positionNode,X as setupGraphViewbox,F as defaultConfig_default,i as sanitizeText,t as load,J as JSON_SCHEMA,U as isDark,V as lighten,W as darken}from"./mermaid.core-CDgdx9l7.js";import{g as getIconStyles}from"./chunk-FMBD7UC4-BXa_7Pn3.js";import"./vendor-mdxeditor-B_IrHcWH.js";import"./vendor-antd-DqFS7Zj9.js";import"./vendor-codemirror-B_pF4DrA.js";import"./vendor-markdown-DOJHsAxX.js";var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[1,4],$V1=[1,13],$V2=[1,12],$V3=[1,15],$V4=[1,16],$V5=[1,20],$V6=[1,19],$V7=[6,7,8],$V8=[1,26],$V9=[1,24],$Va=[1,25],$Vb=[6,7,11],$Vc=[1,31],$Vd=[6,7,11,24],$Ve=[1,6,13,16,17,20,23],$Vf=[1,35],$Vg=[1,36],$Vh=[1,6,7,11,13,16,17,20,23],$Vi=[1,38],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 6:case 7:return yy;case 8:yy.getLogger().trace("Stop NL ");break;case 9:yy.getLogger().trace("Stop EOF ");break;case 11:yy.getLogger().trace("Stop NL2 ");break;case 12:yy.getLogger().trace("Stop EOF2 ");break;case 15:yy.getLogger().info("Node: ",$$[$0-1].id),yy.addNode($$[$0-2].length,$$[$0-1].id,$$[$0-1].descr,$$[$0-1].type,$$[$0]);break;case 16:yy.getLogger().info("Node: ",$$[$0].id),yy.addNode($$[$0-1].length,$$[$0].id,$$[$0].descr,$$[$0].type);break;case 17:yy.getLogger().trace("Icon: ",$$[$0]),yy.decorateNode({icon:$$[$0]});break;case 18:case 23:yy.decorateNode({class:$$[$0]});break;case 19:yy.getLogger().trace("SPACELIST");break;case 20:yy.getLogger().trace("Node: ",$$[$0-1].id),yy.addNode(0,$$[$0-1].id,$$[$0-1].descr,$$[$0-1].type,$$[$0]);break;case 21:yy.getLogger().trace("Node: ",$$[$0].id),yy.addNode(0,$$[$0].id,$$[$0].descr,$$[$0].type);break;case 22:yy.decorateNode({icon:$$[$0]});break;case 27:yy.getLogger().trace("node found ..",$$[$0-2]),this.$={id:$$[$0-1],descr:$$[$0-1],type:yy.getType($$[$0-2],$$[$0])};break;case 28:this.$={id:$$[$0],descr:$$[$0],type:0};break;case 29:yy.getLogger().trace("node found ..",$$[$0-3]),this.$={id:$$[$0-3],descr:$$[$0-1],type:yy.getType($$[$0-2],$$[$0])};break;case 30:this.$=$$[$0-1]+$$[$0];break;case 31:this.$=$$[$0]}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:$V0},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:$V0},{6:$V1,7:[1,10],9:9,12:11,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},o($V7,[2,3]),{1:[2,2]},o($V7,[2,4]),o($V7,[2,5]),{1:[2,6],6:$V1,12:21,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},{6:$V1,9:22,12:11,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},{6:$V8,7:$V9,10:23,11:$Va},o($Vb,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:$V5,23:$V6}),o($Vb,[2,19]),o($Vb,[2,21],{15:30,24:$Vc}),o($Vb,[2,22]),o($Vb,[2,23]),o($Vd,[2,25]),o($Vd,[2,26]),o($Vd,[2,28],{20:[1,32]}),{21:[1,33]},{6:$V8,7:$V9,10:34,11:$Va},{1:[2,7],6:$V1,12:21,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},o($Ve,[2,14],{7:$Vf,11:$Vg}),o($Vh,[2,8]),o($Vh,[2,9]),o($Vh,[2,10]),o($Vb,[2,16],{15:37,24:$Vc}),o($Vb,[2,17]),o($Vb,[2,18]),o($Vb,[2,20],{24:$Vi}),o($Vd,[2,31]),{21:[1,39]},{22:[1,40]},o($Ve,[2,13],{7:$Vf,11:$Vg}),o($Vh,[2,11]),o($Vh,[2,12]),o($Vb,[2,15],{24:$Vi}),o($Vd,[2,30]),{22:[1,41]},o($Vd,[2,27]),o($Vd,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return this.pushState("shapeData"),yy_.yytext="",24;case 1:return this.pushState("shapeDataStr"),24;case 2:return this.popState(),24;case 3:const re=/\n\s*/g;return yy_.yytext=yy_.yytext.replace(re,"<br/>"),24;case 4:return 24;case 5:case 10:case 29:case 32:this.popState();break;case 6:return yy.getLogger().trace("Found comment",yy_.yytext),6;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;case 11:yy.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return yy.getLogger().trace("SPACELINE"),6;case 13:return 7;case 14:return 16;case 15:yy.getLogger().trace("end icon"),this.popState();break;case 16:return yy.getLogger().trace("Exploding node"),this.begin("NODE"),20;case 17:return yy.getLogger().trace("Cloud"),this.begin("NODE"),20;case 18:return yy.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;case 19:return yy.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;case 20:case 21:case 22:case 23:return this.begin("NODE"),20;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 30:yy.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return yy.getLogger().trace("description:",yy_.yytext),"NODE_DESCR";case 33:return this.popState(),yy.getLogger().trace("node end ))"),"NODE_DEND";case 34:return this.popState(),yy.getLogger().trace("node end )"),"NODE_DEND";case 35:return this.popState(),yy.getLogger().trace("node end ...",yy_.yytext),"NODE_DEND";case 36:case 39:case 40:return this.popState(),yy.getLogger().trace("node end (("),"NODE_DEND";case 37:case 38:return this.popState(),yy.getLogger().trace("node end (-"),"NODE_DEND";case 41:case 42:return yy.getLogger().trace("Long description:",yy_.yytext),21}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var kanban_default=parser,nodes=[],sections=[],cnt=0,elements={},clear=__name(()=>{nodes=[],sections=[],cnt=0,elements={}},"clear"),getSection=__name(level=>{if(0===nodes.length)return null;const sectionLevel=nodes[0].level;let lastSection=null;for(let i=nodes.length-1;i>=0;i--)if(nodes[i].level!==sectionLevel||lastSection||(lastSection=nodes[i]),nodes[i].level<sectionLevel)throw new Error('Items without section detected, found section ("'+nodes[i].label+'")');return level===(null==lastSection?void 0:lastSection.level)?null:lastSection},"getSection"),getSections=__name(function(){return sections},"getSections"),getData=__name(function(){const _nodes=[],sections2=getSections(),conf=getConfig2();for(const section of sections2){const node={id:section.id,label:sanitizeText(section.label??"",conf),labelType:"markdown",isGroup:!0,ticket:section.ticket,shape:"kanbanSection",level:section.level,look:conf.look};_nodes.push(node);const children=nodes.filter(n=>n.parentId===section.id);for(const item of children){const childNode={id:item.id,parentId:section.id,label:sanitizeText(item.label??"",conf),labelType:"markdown",isGroup:!1,ticket:null==item?void 0:item.ticket,priority:null==item?void 0:item.priority,assigned:null==item?void 0:item.assigned,icon:null==item?void 0:item.icon,shape:"kanbanItem",level:item.level,rx:5,ry:5,cssStyles:["text-align: left"]};_nodes.push(childNode)}}return{nodes:_nodes,edges:[],other:{},config:getConfig2()}},"getData"),addNode=__name((level,id,descr,type,shapeData)=>{var _a,_b;const conf=getConfig2();let padding=(null==(_a=conf.mindmap)?void 0:_a.padding)??defaultConfig_default.mindmap.padding;switch(type){case nodeType.ROUNDED_RECT:case nodeType.RECT:case nodeType.HEXAGON:padding*=2}const node={id:sanitizeText(id,conf)||"kbn"+cnt++,level:level,label:sanitizeText(descr,conf),width:(null==(_b=conf.mindmap)?void 0:_b.maxNodeWidth)??defaultConfig_default.mindmap.maxNodeWidth,padding:padding,isGroup:!1};if(void 0!==shapeData){let yamlData;yamlData=shapeData.includes("\n")?shapeData+"\n":"{\n"+shapeData+"\n}";const doc=load(yamlData,{schema:JSON_SCHEMA});if(doc.shape&&(doc.shape!==doc.shape.toLowerCase()||doc.shape.includes("_")))throw new Error(`No such shape: ${doc.shape}. Shape names should be lowercase.`);(null==doc?void 0:doc.shape)&&"kanbanItem"===doc.shape&&(node.shape=null==doc?void 0:doc.shape),(null==doc?void 0:doc.label)&&(node.label=null==doc?void 0:doc.label),(null==doc?void 0:doc.icon)&&(node.icon=null==doc?void 0:doc.icon.toString()),(null==doc?void 0:doc.assigned)&&(node.assigned=null==doc?void 0:doc.assigned.toString()),(null==doc?void 0:doc.ticket)&&(node.ticket=null==doc?void 0:doc.ticket.toString()),(null==doc?void 0:doc.priority)&&(node.priority=null==doc?void 0:doc.priority)}const section=getSection(level);section?node.parentId=section.id||"kbn"+cnt++:sections.push(node),nodes.push(node)},"addNode"),nodeType={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},kanbanDb_default={clear:clear,addNode:addNode,getSections:getSections,getData:getData,nodeType:nodeType,getType:__name((startStr,endStr)=>{switch(log.debug("In get type",startStr,endStr),startStr){case"[":return nodeType.RECT;case"(":return")"===endStr?nodeType.ROUNDED_RECT:nodeType.CLOUD;case"((":return nodeType.CIRCLE;case")":return nodeType.CLOUD;case"))":return nodeType.BANG;case"{{":return nodeType.HEXAGON;default:return nodeType.DEFAULT}},"getType"),setElementForId:__name((id,element)=>{elements[id]=element},"setElementForId"),decorateNode:__name(decoration=>{if(!decoration)return;const config=getConfig2(),node=nodes[nodes.length-1];decoration.icon&&(node.icon=sanitizeText(decoration.icon,config)),decoration.class&&(node.cssClasses=sanitizeText(decoration.class,config))},"decorateNode"),type2Str:__name(type=>{switch(type){case nodeType.DEFAULT:return"no-border";case nodeType.RECT:return"rect";case nodeType.ROUNDED_RECT:return"rounded-rect";case nodeType.CIRCLE:return"circle";case nodeType.CLOUD:return"cloud";case nodeType.BANG:return"bang";case nodeType.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),getLogger:__name(()=>log,"getLogger"),getElementById:__name(id=>elements[id],"getElementById")},kanbanRenderer_default={draw:__name(async(text,id,_version,diagObj)=>{var _a,_b,_c,_d,_e;log.debug("Rendering kanban diagram\n"+text);const data4Layout=diagObj.db.getData(),conf=getConfig2();conf.htmlLabels=!1;const svg=selectSvgElement(id);for(const node of data4Layout.nodes)node.domId=`${id}-${node.id}`;const sectionsElem=svg.append("g");sectionsElem.attr("class","sections");const nodesElem=svg.append("g");nodesElem.attr("class","items");const sections2=data4Layout.nodes.filter(node=>node.isGroup);let cnt2=0;const sectionObjects=[];let maxLabelHeight=25;for(const section of sections2){const WIDTH=(null==(_a=null==conf?void 0:conf.kanban)?void 0:_a.sectionWidth)||200;cnt2+=1,section.x=WIDTH*cnt2+10*(cnt2-1)/2,section.width=WIDTH,section.y=0,section.height=3*WIDTH,section.rx=5,section.ry=5,section.cssClasses=section.cssClasses+" section-"+cnt2;const sectionObj=await insertCluster(sectionsElem,section);maxLabelHeight=Math.max(maxLabelHeight,null==(_b=null==sectionObj?void 0:sectionObj.labelBBox)?void 0:_b.height),sectionObjects.push(sectionObj)}let i=0;for(const section of sections2){const sectionObj=sectionObjects[i];i+=1;const WIDTH=(null==(_c=null==conf?void 0:conf.kanban)?void 0:_c.sectionWidth)||200,top=3*-WIDTH/2+maxLabelHeight;let y=top;const sectionItems=data4Layout.nodes.filter(node=>node.parentId===section.id);for(const item of sectionItems){if(item.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");item.x=section.x,item.width=WIDTH-15;const bbox=(await insertNode(nodesElem,item,{config:conf})).node().getBBox();item.y=y+bbox.height/2,await positionNode(item),y=item.y+bbox.height/2+5}const rect=sectionObj.cluster.select("rect"),height=Math.max(y-top+30,50)+(maxLabelHeight-25);rect.attr("height",height)}setupGraphViewbox(void 0,svg,(null==(_d=conf.mindmap)?void 0:_d.padding)??defaultConfig_default.kanban.padding,(null==(_e=conf.mindmap)?void 0:_e.useMaxWidth)??defaultConfig_default.kanban.useMaxWidth)},"draw")},genSections=__name(options=>{let sections2="";for(let i=0;i<options.THEME_COLOR_LIMIT;i++)options["lineColor"+i]=options["lineColor"+i]||options["cScaleInv"+i],isDark(options["lineColor"+i])?options["lineColor"+i]=lighten(options["lineColor"+i],20):options["lineColor"+i]=darken(options["lineColor"+i],20);const adjuster=__name((color,level)=>options.darkMode?darken(color,level):lighten(color,level),"adjuster");for(let i=0;i<options.THEME_COLOR_LIMIT;i++){const sw=""+(17-3*i);sections2+=`\n .section-${i-1} rect, .section-${i-1} path, .section-${i-1} circle, .section-${i-1} polygon, .section-${i-1} path {\n fill: ${adjuster(options["cScale"+i],10)};\n stroke: ${adjuster(options["cScale"+i],10)};\n\n }\n .section-${i-1} text {\n fill: ${options["cScaleLabel"+i]};\n }\n .node-icon-${i-1} {\n font-size: 40px;\n color: ${options["cScaleLabel"+i]};\n }\n .section-edge-${i-1}{\n stroke: ${options["cScale"+i]};\n }\n .edge-depth-${i-1}{\n stroke-width: ${sw};\n }\n .section-${i-1} line {\n stroke: ${options["cScaleInv"+i]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.background};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .kanban-ticket-link {\n fill: ${options.background};\n stroke: ${options.nodeBorder};\n text-decoration: underline;\n }\n `}return sections2},"genSections"),diagram={db:kanbanDb_default,renderer:kanbanRenderer_default,parser:kanban_default,styles:__name(options=>`\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .cluster-label, .label {\n color: ${options.textColor};\n fill: ${options.textColor};\n }\n .kanban-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n ${getIconStyles()}\n`,"getStyles")};export{diagram};
1
+ import{_ as __name,l as log,c as getConfig2,H as selectSvgElement,ae as insertCluster,af as insertNode,ag as positionNode,X as setupGraphViewbox,F as defaultConfig_default,i as sanitizeText,t as load,J as JSON_SCHEMA,U as isDark,V as lighten,W as darken}from"./mermaid.core-BV3ugHFm.js";import{g as getIconStyles}from"./chunk-FMBD7UC4-CTHLGcHh.js";import"./vendor-mdxeditor-Cco3AQJS.js";import"./vendor-antd-Bur5ZxWE.js";import"./vendor-codemirror-Si44UqBp.js";import"./vendor-markdown-DOJHsAxX.js";var parser=function(){var o=__name(function(k,v,o2,l){for(o2=o2||{},l=k.length;l--;o2[k[l]]=v);return o2},"o"),$V0=[1,4],$V1=[1,13],$V2=[1,12],$V3=[1,15],$V4=[1,16],$V5=[1,20],$V6=[1,19],$V7=[6,7,8],$V8=[1,26],$V9=[1,24],$Va=[1,25],$Vb=[6,7,11],$Vc=[1,31],$Vd=[6,7,11,24],$Ve=[1,6,13,16,17,20,23],$Vf=[1,35],$Vg=[1,36],$Vh=[1,6,7,11,13,16,17,20,23],$Vi=[1,38],parser2={trace:__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:__name(function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 6:case 7:return yy;case 8:yy.getLogger().trace("Stop NL ");break;case 9:yy.getLogger().trace("Stop EOF ");break;case 11:yy.getLogger().trace("Stop NL2 ");break;case 12:yy.getLogger().trace("Stop EOF2 ");break;case 15:yy.getLogger().info("Node: ",$$[$0-1].id),yy.addNode($$[$0-2].length,$$[$0-1].id,$$[$0-1].descr,$$[$0-1].type,$$[$0]);break;case 16:yy.getLogger().info("Node: ",$$[$0].id),yy.addNode($$[$0-1].length,$$[$0].id,$$[$0].descr,$$[$0].type);break;case 17:yy.getLogger().trace("Icon: ",$$[$0]),yy.decorateNode({icon:$$[$0]});break;case 18:case 23:yy.decorateNode({class:$$[$0]});break;case 19:yy.getLogger().trace("SPACELIST");break;case 20:yy.getLogger().trace("Node: ",$$[$0-1].id),yy.addNode(0,$$[$0-1].id,$$[$0-1].descr,$$[$0-1].type,$$[$0]);break;case 21:yy.getLogger().trace("Node: ",$$[$0].id),yy.addNode(0,$$[$0].id,$$[$0].descr,$$[$0].type);break;case 22:yy.decorateNode({icon:$$[$0]});break;case 27:yy.getLogger().trace("node found ..",$$[$0-2]),this.$={id:$$[$0-1],descr:$$[$0-1],type:yy.getType($$[$0-2],$$[$0])};break;case 28:this.$={id:$$[$0],descr:$$[$0],type:0};break;case 29:yy.getLogger().trace("node found ..",$$[$0-3]),this.$={id:$$[$0-3],descr:$$[$0-1],type:yy.getType($$[$0-2],$$[$0])};break;case 30:this.$=$$[$0-1]+$$[$0];break;case 31:this.$=$$[$0]}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:$V0},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:$V0},{6:$V1,7:[1,10],9:9,12:11,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},o($V7,[2,3]),{1:[2,2]},o($V7,[2,4]),o($V7,[2,5]),{1:[2,6],6:$V1,12:21,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},{6:$V1,9:22,12:11,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},{6:$V8,7:$V9,10:23,11:$Va},o($Vb,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:$V5,23:$V6}),o($Vb,[2,19]),o($Vb,[2,21],{15:30,24:$Vc}),o($Vb,[2,22]),o($Vb,[2,23]),o($Vd,[2,25]),o($Vd,[2,26]),o($Vd,[2,28],{20:[1,32]}),{21:[1,33]},{6:$V8,7:$V9,10:34,11:$Va},{1:[2,7],6:$V1,12:21,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},o($Ve,[2,14],{7:$Vf,11:$Vg}),o($Vh,[2,8]),o($Vh,[2,9]),o($Vh,[2,10]),o($Vb,[2,16],{15:37,24:$Vc}),o($Vb,[2,17]),o($Vb,[2,18]),o($Vb,[2,20],{24:$Vi}),o($Vd,[2,31]),{21:[1,39]},{22:[1,40]},o($Ve,[2,13],{7:$Vf,11:$Vg}),o($Vh,[2,11]),o($Vh,[2,12]),o($Vb,[2,15],{24:$Vi}),o($Vd,[2,30]),{22:[1,41]},o($Vd,[2,27]),o($Vd,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:__name(function(str,hash){if(!hash.recoverable){var error=new Error(str);throw error.hash=hash,error}this.trace(str)},"parseError"),parse:__name(function(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,args=lstack.slice.call(arguments,1),lexer2=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer2.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer2,sharedState.yy.parser=this,void 0===lexer2.yylloc&&(lexer2.yylloc={});var yyloc=lexer2.yylloc;lstack.push(yyloc);var ranges=lexer2.options&&lexer2.options.ranges;function lex(){var token;return"number"!=typeof(token=tstack.pop()||lexer2.lex()||1)&&(token instanceof Array&&(token=(tstack=token).pop()),token=self.symbols_[token]||token),token}"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,__name(function(n){stack.length=stack.length-2*n,vstack.length=vstack.length-n,lstack.length=lstack.length-n},"popStack"),__name(lex,"lex");for(var symbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:(null==symbol&&(symbol=lex()),action=table[state]&&table[state][symbol]),void 0===action||!action.length||!action[0]){var errStr="";for(p in expected=[],table[state])this.terminals_[p]&&p>2&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer2.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer2.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(1==symbol?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer2.match,token:this.terminals_[symbol]||symbol,line:lexer2.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer2.yytext),lstack.push(lexer2.yylloc),stack.push(action[1]),symbol=null,yyleng=lexer2.yyleng,yytext=lexer2.yytext,yylineno=lexer2.yylineno,yyloc=lexer2.yylloc;break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),void 0!==(r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args))))return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0},"parse")},lexer=function(){return{EOF:1,parseError:__name(function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},"parseError"),setInput:__name(function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:__name(function(){var ch=this._input[0];return this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch,ch.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},"input"),unput:__name(function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},"unput"),more:__name(function(){return this._more=!0,this},"more"),reject:__name(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},"reject"),less:__name(function(n){this.unput(this.match.slice(n))},"less"),pastInput:__name(function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:__name(function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:__name(function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},"showPosition"),test_match:__name(function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),(lines=match[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},"test_match"),next:__name(function(){if(this.done)return this.EOF;var token,match,tempMatch,index;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;i<rules.length;i++)if((tempMatch=this._input.match(this.rules[rules[i]]))&&(!match||tempMatch[0].length>match[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(!1!==(token=this.test_match(tempMatch,rules[i])))return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?!1!==(token=this.test_match(match,rules[index]))&&token:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:__name(function(){var r=this.next();return r||this.lex()},"lex"),begin:__name(function(condition){this.conditionStack.push(condition)},"begin"),popState:__name(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:__name(function(n){return(n=this.conditionStack.length-1-Math.abs(n||0))>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:__name(function(condition){this.begin(condition)},"pushState"),stateStackSize:__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:__name(function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return this.pushState("shapeData"),yy_.yytext="",24;case 1:return this.pushState("shapeDataStr"),24;case 2:return this.popState(),24;case 3:const re=/\n\s*/g;return yy_.yytext=yy_.yytext.replace(re,"<br/>"),24;case 4:return 24;case 5:case 10:case 29:case 32:this.popState();break;case 6:return yy.getLogger().trace("Found comment",yy_.yytext),6;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;case 11:yy.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return yy.getLogger().trace("SPACELINE"),6;case 13:return 7;case 14:return 16;case 15:yy.getLogger().trace("end icon"),this.popState();break;case 16:return yy.getLogger().trace("Exploding node"),this.begin("NODE"),20;case 17:return yy.getLogger().trace("Cloud"),this.begin("NODE"),20;case 18:return yy.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;case 19:return yy.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;case 20:case 21:case 22:case 23:return this.begin("NODE"),20;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 30:yy.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return yy.getLogger().trace("description:",yy_.yytext),"NODE_DESCR";case 33:return this.popState(),yy.getLogger().trace("node end ))"),"NODE_DEND";case 34:return this.popState(),yy.getLogger().trace("node end )"),"NODE_DEND";case 35:return this.popState(),yy.getLogger().trace("node end ...",yy_.yytext),"NODE_DEND";case 36:case 39:case 40:return this.popState(),yy.getLogger().trace("node end (("),"NODE_DEND";case 37:case 38:return this.popState(),yy.getLogger().trace("node end (-"),"NODE_DEND";case 41:case 42:return yy.getLogger().trace("Long description:",yy_.yytext),21}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}}}();function Parser(){this.yy={}}return parser2.lexer=lexer,__name(Parser,"Parser"),Parser.prototype=parser2,parser2.Parser=Parser,new Parser}();parser.parser=parser;var kanban_default=parser,nodes=[],sections=[],cnt=0,elements={},clear=__name(()=>{nodes=[],sections=[],cnt=0,elements={}},"clear"),getSection=__name(level=>{if(0===nodes.length)return null;const sectionLevel=nodes[0].level;let lastSection=null;for(let i=nodes.length-1;i>=0;i--)if(nodes[i].level!==sectionLevel||lastSection||(lastSection=nodes[i]),nodes[i].level<sectionLevel)throw new Error('Items without section detected, found section ("'+nodes[i].label+'")');return level===(null==lastSection?void 0:lastSection.level)?null:lastSection},"getSection"),getSections=__name(function(){return sections},"getSections"),getData=__name(function(){const _nodes=[],sections2=getSections(),conf=getConfig2();for(const section of sections2){const node={id:section.id,label:sanitizeText(section.label??"",conf),labelType:"markdown",isGroup:!0,ticket:section.ticket,shape:"kanbanSection",level:section.level,look:conf.look};_nodes.push(node);const children=nodes.filter(n=>n.parentId===section.id);for(const item of children){const childNode={id:item.id,parentId:section.id,label:sanitizeText(item.label??"",conf),labelType:"markdown",isGroup:!1,ticket:null==item?void 0:item.ticket,priority:null==item?void 0:item.priority,assigned:null==item?void 0:item.assigned,icon:null==item?void 0:item.icon,shape:"kanbanItem",level:item.level,rx:5,ry:5,cssStyles:["text-align: left"]};_nodes.push(childNode)}}return{nodes:_nodes,edges:[],other:{},config:getConfig2()}},"getData"),addNode=__name((level,id,descr,type,shapeData)=>{var _a,_b;const conf=getConfig2();let padding=(null==(_a=conf.mindmap)?void 0:_a.padding)??defaultConfig_default.mindmap.padding;switch(type){case nodeType.ROUNDED_RECT:case nodeType.RECT:case nodeType.HEXAGON:padding*=2}const node={id:sanitizeText(id,conf)||"kbn"+cnt++,level:level,label:sanitizeText(descr,conf),width:(null==(_b=conf.mindmap)?void 0:_b.maxNodeWidth)??defaultConfig_default.mindmap.maxNodeWidth,padding:padding,isGroup:!1};if(void 0!==shapeData){let yamlData;yamlData=shapeData.includes("\n")?shapeData+"\n":"{\n"+shapeData+"\n}";const doc=load(yamlData,{schema:JSON_SCHEMA});if(doc.shape&&(doc.shape!==doc.shape.toLowerCase()||doc.shape.includes("_")))throw new Error(`No such shape: ${doc.shape}. Shape names should be lowercase.`);(null==doc?void 0:doc.shape)&&"kanbanItem"===doc.shape&&(node.shape=null==doc?void 0:doc.shape),(null==doc?void 0:doc.label)&&(node.label=null==doc?void 0:doc.label),(null==doc?void 0:doc.icon)&&(node.icon=null==doc?void 0:doc.icon.toString()),(null==doc?void 0:doc.assigned)&&(node.assigned=null==doc?void 0:doc.assigned.toString()),(null==doc?void 0:doc.ticket)&&(node.ticket=null==doc?void 0:doc.ticket.toString()),(null==doc?void 0:doc.priority)&&(node.priority=null==doc?void 0:doc.priority)}const section=getSection(level);section?node.parentId=section.id||"kbn"+cnt++:sections.push(node),nodes.push(node)},"addNode"),nodeType={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},kanbanDb_default={clear:clear,addNode:addNode,getSections:getSections,getData:getData,nodeType:nodeType,getType:__name((startStr,endStr)=>{switch(log.debug("In get type",startStr,endStr),startStr){case"[":return nodeType.RECT;case"(":return")"===endStr?nodeType.ROUNDED_RECT:nodeType.CLOUD;case"((":return nodeType.CIRCLE;case")":return nodeType.CLOUD;case"))":return nodeType.BANG;case"{{":return nodeType.HEXAGON;default:return nodeType.DEFAULT}},"getType"),setElementForId:__name((id,element)=>{elements[id]=element},"setElementForId"),decorateNode:__name(decoration=>{if(!decoration)return;const config=getConfig2(),node=nodes[nodes.length-1];decoration.icon&&(node.icon=sanitizeText(decoration.icon,config)),decoration.class&&(node.cssClasses=sanitizeText(decoration.class,config))},"decorateNode"),type2Str:__name(type=>{switch(type){case nodeType.DEFAULT:return"no-border";case nodeType.RECT:return"rect";case nodeType.ROUNDED_RECT:return"rounded-rect";case nodeType.CIRCLE:return"circle";case nodeType.CLOUD:return"cloud";case nodeType.BANG:return"bang";case nodeType.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),getLogger:__name(()=>log,"getLogger"),getElementById:__name(id=>elements[id],"getElementById")},kanbanRenderer_default={draw:__name(async(text,id,_version,diagObj)=>{var _a,_b,_c,_d,_e;log.debug("Rendering kanban diagram\n"+text);const data4Layout=diagObj.db.getData(),conf=getConfig2();conf.htmlLabels=!1;const svg=selectSvgElement(id);for(const node of data4Layout.nodes)node.domId=`${id}-${node.id}`;const sectionsElem=svg.append("g");sectionsElem.attr("class","sections");const nodesElem=svg.append("g");nodesElem.attr("class","items");const sections2=data4Layout.nodes.filter(node=>node.isGroup);let cnt2=0;const sectionObjects=[];let maxLabelHeight=25;for(const section of sections2){const WIDTH=(null==(_a=null==conf?void 0:conf.kanban)?void 0:_a.sectionWidth)||200;cnt2+=1,section.x=WIDTH*cnt2+10*(cnt2-1)/2,section.width=WIDTH,section.y=0,section.height=3*WIDTH,section.rx=5,section.ry=5,section.cssClasses=section.cssClasses+" section-"+cnt2;const sectionObj=await insertCluster(sectionsElem,section);maxLabelHeight=Math.max(maxLabelHeight,null==(_b=null==sectionObj?void 0:sectionObj.labelBBox)?void 0:_b.height),sectionObjects.push(sectionObj)}let i=0;for(const section of sections2){const sectionObj=sectionObjects[i];i+=1;const WIDTH=(null==(_c=null==conf?void 0:conf.kanban)?void 0:_c.sectionWidth)||200,top=3*-WIDTH/2+maxLabelHeight;let y=top;const sectionItems=data4Layout.nodes.filter(node=>node.parentId===section.id);for(const item of sectionItems){if(item.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");item.x=section.x,item.width=WIDTH-15;const bbox=(await insertNode(nodesElem,item,{config:conf})).node().getBBox();item.y=y+bbox.height/2,await positionNode(item),y=item.y+bbox.height/2+5}const rect=sectionObj.cluster.select("rect"),height=Math.max(y-top+30,50)+(maxLabelHeight-25);rect.attr("height",height)}setupGraphViewbox(void 0,svg,(null==(_d=conf.mindmap)?void 0:_d.padding)??defaultConfig_default.kanban.padding,(null==(_e=conf.mindmap)?void 0:_e.useMaxWidth)??defaultConfig_default.kanban.useMaxWidth)},"draw")},genSections=__name(options=>{let sections2="";for(let i=0;i<options.THEME_COLOR_LIMIT;i++)options["lineColor"+i]=options["lineColor"+i]||options["cScaleInv"+i],isDark(options["lineColor"+i])?options["lineColor"+i]=lighten(options["lineColor"+i],20):options["lineColor"+i]=darken(options["lineColor"+i],20);const adjuster=__name((color,level)=>options.darkMode?darken(color,level):lighten(color,level),"adjuster");for(let i=0;i<options.THEME_COLOR_LIMIT;i++){const sw=""+(17-3*i);sections2+=`\n .section-${i-1} rect, .section-${i-1} path, .section-${i-1} circle, .section-${i-1} polygon, .section-${i-1} path {\n fill: ${adjuster(options["cScale"+i],10)};\n stroke: ${adjuster(options["cScale"+i],10)};\n\n }\n .section-${i-1} text {\n fill: ${options["cScaleLabel"+i]};\n }\n .node-icon-${i-1} {\n font-size: 40px;\n color: ${options["cScaleLabel"+i]};\n }\n .section-edge-${i-1}{\n stroke: ${options["cScale"+i]};\n }\n .edge-depth-${i-1}{\n stroke-width: ${sw};\n }\n .section-${i-1} line {\n stroke: ${options["cScaleInv"+i]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.background};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .kanban-ticket-link {\n fill: ${options.background};\n stroke: ${options.nodeBorder};\n text-decoration: underline;\n }\n `}return sections2},"genSections"),diagram={db:kanbanDb_default,renderer:kanbanRenderer_default,parser:kanban_default,styles:__name(options=>`\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .cluster-label, .label {\n color: ${options.textColor};\n fill: ${options.textColor};\n }\n .kanban-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n ${getIconStyles()}\n`,"getStyles")};export{diagram};