1280 lines
78 KiB
HTML
1280 lines
78 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>State Machine Explorer - click.kamil.examples.statemachine.complex.ComplexStateMachineConfig</title>
|
|
<!-- Popper and Tippy for tooltips -->
|
|
<script src="https://unpkg.com/@popperjs/core@2"></script>
|
|
<script src="https://unpkg.com/tippy.js@6"></script>
|
|
<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/animations/scale.css"/>
|
|
<!-- SVG Pan & Zoom -->
|
|
<script src="https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.1/dist/svg-pan-zoom.min.js"></script>
|
|
<!-- Google Fonts -->
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;900&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
|
|
<style>
|
|
:root {
|
|
--sidebar-bg: #ffffff;
|
|
--main-bg: #f8fafc;
|
|
--accent: #ef4444;
|
|
--primary: #3b82f6;
|
|
--text: #0f172a;
|
|
--text-muted: #64748b;
|
|
--border: #e2e8f0;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
display: flex;
|
|
height: 100vh;
|
|
font-family: 'Inter', -apple-system, sans-serif;
|
|
background: var(--main-bg);
|
|
color: var(--text);
|
|
overflow: hidden;
|
|
}
|
|
|
|
#sidebar {
|
|
width: 480px;
|
|
min-width: 350px;
|
|
max-width: 900px;
|
|
background: var(--sidebar-bg);
|
|
border-right: 2px solid var(--border);
|
|
display: flex;
|
|
flex-direction: column;
|
|
box-shadow: 10px 0 15px rgba(0,0,0,0.02);
|
|
z-index: 10;
|
|
overflow-x: hidden;
|
|
resize: horizontal;
|
|
position: relative;
|
|
transition: width 0.3s ease, min-width 0.3s ease, padding 0.3s ease;
|
|
}
|
|
|
|
#sidebar.collapsed {
|
|
width: 0 !important;
|
|
min-width: 0 !important;
|
|
border-right: none;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
resize: none;
|
|
}
|
|
|
|
#toggle-sidebar {
|
|
position: absolute;
|
|
top: 20px;
|
|
left: 20px;
|
|
z-index: 50;
|
|
background: #fff;
|
|
border: 1px solid var(--border);
|
|
border-radius: 8px;
|
|
padding: 8px;
|
|
cursor: pointer;
|
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all 0.2s ease;
|
|
}
|
|
#toggle-sidebar:hover {
|
|
background: #f8fafc;
|
|
border-color: var(--primary);
|
|
}
|
|
#toggle-sidebar svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
fill: none;
|
|
stroke: var(--text-muted);
|
|
stroke-width: 2;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
}
|
|
|
|
#sidebar::after {
|
|
content: '⋮';
|
|
position: absolute;
|
|
right: 2px; top: 50%;
|
|
transform: translateY(-50%);
|
|
color: var(--border);
|
|
font-size: 1.2rem;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.sidebar-header {
|
|
padding: 30px 30px 10px;
|
|
}
|
|
|
|
header h1 { font-weight: 900; font-size: 1.6rem; color: var(--text); margin: 0 0 5px 0; letter-spacing: -0.5px; }
|
|
header p { font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; color: var(--text-muted); margin: 0 0 15px 0; opacity: 0.7; }
|
|
|
|
.tabs {
|
|
display: flex;
|
|
padding: 0 30px;
|
|
border-bottom: 1px solid var(--border);
|
|
gap: 20px;
|
|
}
|
|
|
|
.tab {
|
|
padding: 10px 0;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
color: var(--text-muted);
|
|
cursor: pointer;
|
|
position: relative;
|
|
transition: color 0.2s;
|
|
}
|
|
|
|
.tab:hover { color: var(--text); }
|
|
.tab.active { color: var(--primary); }
|
|
.tab.active::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: -1px; left: 0; right: 0;
|
|
height: 2px;
|
|
background: var(--primary);
|
|
}
|
|
|
|
.tab-content {
|
|
flex-grow: 1;
|
|
padding: 25px 30px;
|
|
overflow-y: auto;
|
|
display: none;
|
|
}
|
|
|
|
.tab-content.active { display: block; }
|
|
|
|
.ep-card, .flow-card {
|
|
padding: 18px;
|
|
background: #fff;
|
|
border: 1px solid var(--border);
|
|
border-radius: 14px;
|
|
margin-bottom: 15px;
|
|
cursor: pointer;
|
|
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
box-shadow: 0 1px 3px rgba(0,0,0,0.04);
|
|
position: relative;
|
|
word-break: break-all;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.ep-card:hover, .flow-card:hover {
|
|
border-color: var(--primary);
|
|
transform: translateX(5px);
|
|
box-shadow: 0 15px 30px -10px rgba(59, 130, 246, 0.15);
|
|
}
|
|
|
|
.ep-type {
|
|
font-size: 0.6rem;
|
|
font-weight: 900;
|
|
padding: 3px 8px;
|
|
border-radius: 6px;
|
|
display: inline-block;
|
|
margin-bottom: 10px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.8px;
|
|
}
|
|
.type-rest { background: #eff6ff; color: #1d4ed8; }
|
|
.type-custom { background: #fef2f2; color: #b91c1c; }
|
|
.type-jms { background: #f5f3ff; color: #7c3aed; }
|
|
.type-sqs { background: #fff7ed; color: #ea580c; }
|
|
.type-sns { background: #fff1f2; color: #e11d48; }
|
|
.type-kafka { background: #fefce8; color: #854d0e; }
|
|
.type-rabbit { background: #f0fdf4; color: #166534; }
|
|
|
|
.ep-name, .flow-name { font-weight: 700; font-size: 0.95rem; margin-bottom: 6px; color: var(--text); }
|
|
.ep-fqn, .flow-desc { font-family: 'Inter', sans-serif; font-size: 0.75rem; color: var(--text-muted); opacity: 0.9; line-height: 1.4; }
|
|
|
|
#main { flex-grow: 1; position: relative; background: var(--main-bg); overflow: hidden; }
|
|
#svg-container {
|
|
position: absolute;
|
|
top: 0; left: 0; right: 0; bottom: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
display: block;
|
|
}
|
|
|
|
/* SVG Interactivity Styles */
|
|
svg a { text-decoration: none !important; }
|
|
|
|
.active-path {
|
|
stroke: var(--accent) !important;
|
|
stroke-width: 2.5px !important;
|
|
filter: drop-shadow(0 0 8px rgba(239, 68, 68, 0.3));
|
|
transition: all 0.3s;
|
|
}
|
|
|
|
.active-path text, a.active-path text {
|
|
fill: #000 !important;
|
|
font-weight: 900 !important;
|
|
paint-order: stroke;
|
|
stroke: #fff;
|
|
stroke-width: 3.5px;
|
|
}
|
|
|
|
.dimmed {
|
|
opacity: 0.2 !important;
|
|
filter: grayscale(1);
|
|
transition: opacity 0.4s ease;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Tippy Styling */
|
|
.tippy-box[data-theme~='modern'] {
|
|
background-color: #fff;
|
|
color: var(--text);
|
|
box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25);
|
|
border: 1px solid var(--border);
|
|
border-radius: 16px;
|
|
padding: 0;
|
|
max-width: 550px !important;
|
|
}
|
|
|
|
.tooltip-content {
|
|
padding: 20px;
|
|
max-width: 500px;
|
|
word-break: break-word;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.payload-box {
|
|
background: #0f172a;
|
|
color: #e2e8f0;
|
|
border-radius: 8px;
|
|
padding: 12px;
|
|
font-family: 'JetBrains Mono', monospace;
|
|
font-size: 0.75rem;
|
|
line-height: 1.5;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.payload-param {
|
|
margin-bottom: 4px;
|
|
}
|
|
.payload-param:last-child { margin-bottom: 0; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div id="sidebar">
|
|
<div class="sidebar-header">
|
|
<header>
|
|
<h1>Explorer</h1>
|
|
<p>click.kamil.examples.statemachine.complex.ComplexStateMachineConfig</p>
|
|
</header>
|
|
</div>
|
|
|
|
<div class="tabs">
|
|
<div class="tab active" data-tab="explorer">Explorer</div>
|
|
<div class="tab" data-tab="flows">Business Flows</div>
|
|
</div>
|
|
|
|
<div id="tab-explorer" class="tab-content active">
|
|
<div id="ep-list"></div>
|
|
</div>
|
|
|
|
<div id="tab-flows" class="tab-content">
|
|
<div id="flow-list"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="main">
|
|
<button id="toggle-sidebar" aria-label="Toggle Sidebar" title="Toggle Sidebar">
|
|
<svg viewBox="0 0 24 24"><path d="M4 6h16M4 12h16M4 18h16"></path></svg>
|
|
</button>
|
|
<div id="svg-container">
|
|
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="100%" preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 1070 1787" width="100%" zoomAndPan="magnify"><defs/><g><ellipse cx="851.3542" cy="25.2083" fill="#222222" rx="11.4583" ry="11.4583" style="stroke:#222222;stroke-width:1.1458333333333333;"/><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="85.9375" x="808.3854" y="83.6458"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="74.4792" x="814.1146" y="110.4599">States.STATE1</text><g id="elem_States.STATE16"><polygon fill="#F1F1F1" points="524.7917,1504.4792,538.5417,1518.2292,524.7917,1531.9792,511.0417,1518.2292,524.7917,1504.4792" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE17"><polygon fill="#F1F1F1" points="538.5417,1586.9792,552.2917,1600.7292,538.5417,1614.4792,524.7917,1600.7292,538.5417,1586.9792" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE18"><polygon fill="#F1F1F1" points="342.6042,1586.9792,356.3542,1600.7292,342.6042,1614.4792,328.8542,1600.7292,342.6042,1586.9792" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE19"><polygon fill="#F1F1F1" points="799.7917,1669.4792,813.5417,1683.2292,799.7917,1696.9792,786.0417,1683.2292,799.7917,1669.4792" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE20"><polygon fill="#F1F1F1" points="538.5417,1751.9792,552.2917,1765.7292,538.5417,1779.4792,524.7917,1765.7292,538.5417,1751.9792" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE11"><polygon fill="#F1F1F1" points="451.4583,1055.3125,465.2083,1069.0625,451.4583,1082.8125,437.7083,1069.0625,451.4583,1055.3125" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE12"><polygon fill="#F1F1F1" points="646.25,1137.8125,660,1151.5625,646.25,1165.3125,632.5,1151.5625,646.25,1137.8125" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE14"><polygon fill="#F1F1F1" points="522.5,1321.1458,536.25,1334.8958,522.5,1348.6458,508.75,1334.8958,522.5,1321.1458" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE9"><polygon fill="#F1F1F1" points="467.5,871.9792,481.25,885.7292,467.5,899.4792,453.75,885.7292,467.5,871.9792" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><g id="elem_States.STATE8"><polygon fill="#F1F1F1" points="291.0417,789.4792,304.7917,803.2292,291.0417,816.9792,277.2917,803.2292,291.0417,789.4792" style="stroke:#181818;stroke-width:0.5729166666666666;"/></g><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="85.9375" x="623.9063" y="184.4792"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="74.4792" x="629.6354" y="211.2932">States.STATE2</text><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="85.9375" x="549.4271" y="285.3125"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="74.4792" x="555.1563" y="312.1266">States.STATE3</text><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="85.9375" x="531.0938" y="386.1458"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="74.4792" x="536.8229" y="412.9599">States.STATE4</text><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="85.9375" x="526.5104" y="486.9792"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="74.4792" x="532.2396" y="513.7932">States.STATE5</text><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="85.9375" x="526.5104" y="587.8125"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="74.4792" x="532.2396" y="614.6266">States.STATE6</text><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="85.9375" x="525.3646" y="688.6458"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="74.4792" x="531.0938" y="715.4599">States.STATE7</text><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="92.8125" x="410.7813" y="954.4792"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="81.3542" x="416.5104" y="981.2932">States.STATE10</text><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="92.8125" x="476.0937" y="1220.3125"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="81.3542" x="481.8229" y="1247.1266">States.STATE13</text><rect fill="#FFFFFF" height="45.8333" rx="14.3229" ry="14.3229" style="stroke:#94A3B8;stroke-width:1.1458333333333333;" width="92.8125" x="389.0104" y="1403.6458"/><text fill="#000000" font-family="Inter" font-size="10.3125" font-weight="bold" lengthAdjust="spacing" textLength="81.3542" x="394.7396" y="1430.4599">States.STATE15</text><polygon fill="#CBD5E1" points="851.3542,83.3979,855.9375,73.0854,851.3542,77.6688,846.7708,73.0854,851.3542,83.3979" style="stroke:#CBD5E1;stroke-width:1.1458333333333333;"/><path d="M851.3542,41.323 C851.3542,52.7366 851.3542,62.8874 851.3542,76.5229 " fill="none" style="stroke:#CBD5E1;stroke-width:1.1458333333333333;"/><polygon fill="#1E90FF" points="705.9582,184.3912,717.1995,183.3972,710.9682,181.6122,712.7532,175.381,705.9582,184.3912" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M808.414,129.4811 C795.6439,136.0353 781.6488,143.2963 768.8542,150.1042 C747.9788,161.2116 730.8958,170.5591 711.9703,181.0565 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT1" target="_self" title="#link_Events_EVENT1" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT1" xlink:show="new" xlink:title="#link_Events_EVENT1" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="770" y="160.1123">Events.EVENT1</text></a><polygon fill="#1E90FF" points="608.879,285.2749,618.7535,279.8115,612.3335,280.7043,611.4406,274.2843,608.879,285.2749" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M650.3457,230.4113 C638.0032,246.7413 625.3557,263.4749 613.0243,279.7902 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT2" target="_self" title="#link_Events_EVENT2" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT2" xlink:show="new" xlink:title="#link_Events_EVENT2" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="635.9375" y="260.9456">Events.EVENT2</text></a><polygon fill="#1E90FF" points="578.1199,386.1082,584.5121,376.808,579.1678,380.4757,575.5001,375.1314,578.1199,386.1082" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M588.3271,331.2446 C585.2889,347.5746 582.4128,363.0339 579.3774,379.3492 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT3" target="_self" title="#link_Events_EVENT3" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT3" xlink:show="new" xlink:title="#link_Events_EVENT3" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="585.5208" y="361.779">Events.EVENT3</text></a><polygon fill="#1E90FF" points="570.4935,486.9415,575.551,476.8531,570.7597,481.2186,566.3943,476.4272,570.4935,486.9415" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M573.0453,432.0779 C572.2858,448.408 571.5718,463.7587 570.8129,480.074 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT4" target="_self" title="#link_Events_EVENT4" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT4" xlink:show="new" xlink:title="#link_Events_EVENT4" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="574.0625" y="462.6123">Events.EVENT4</text></a><polygon fill="#1E90FF" points="569.4792,587.7749,574.0625,577.4624,569.4792,582.0457,564.8958,577.4624,569.4792,587.7749" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M569.4792,532.9113 C569.4792,549.2413 569.4792,564.5846 569.4792,580.8999 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT5" target="_self" title="#link_Events_EVENT5" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT5" xlink:show="new" xlink:title="#link_Events_EVENT5" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="570.625" y="563.4456">Events.EVENT5</text></a><polygon fill="#1E90FF" points="568.5869,688.6082,573.2898,678.3497,568.6535,682.8794,564.1238,678.2431,568.5869,688.6082" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M569.2249,633.7446 C569.035,650.0746 568.8566,665.4184 568.6669,681.7337 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT6" target="_self" title="#link_Events_EVENT6" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT6" xlink:show="new" xlink:title="#link_Events_EVENT6" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="570.625" y="664.279">Events.EVENT6</text></a><polygon fill="#1E90FF" points="304.8267,797.6402,316.048,798.839,310.2796,795.8827,313.2359,790.1143,304.8267,797.6402" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M525.3108,726.5751 C461.4198,747.1681 351.2508,782.6771 311.3702,795.5312 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT7" target="_self" title="#link_Events_EVENT7" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT7" xlink:show="new" xlink:title="#link_Events_EVENT7" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="430.8333" y="765.1123">Events.EVENT7</text></a><polygon fill="#1E90FF" points="468.9689,871.6615,473.9751,861.5475,469.206,865.9372,464.8163,861.1681,468.9689,871.6615" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M304.8256,805.133 C341.108,807.421 437.9472,815.5121 459.4792,837.6042 C468.1418,846.4921 469.6912,854.2244 469.2534,864.7924 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT8" target="_self" title="#link_Events_EVENT8" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT8" xlink:show="new" xlink:title="#link_Events_EVENT8" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="468.6458" y="847.6123">Events.EVENT8</text></a><polygon fill="#1E90FF" points="459.7381,954.1447,465.4733,944.4256,460.3948,948.4533,456.367,943.3749,459.7381,954.1447" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M466.0225,899.6803 C464.3851,913.8709 462.503,930.1819 460.5261,947.3151 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT9" target="_self" title="#link_Events_EVENT9" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT9" xlink:show="new" xlink:title="#link_Events_EVENT9" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="64.1667" x="465.2083" y="930.1123">Events.EVENT9</text></a><polygon fill="#1E90FF" points="452.2748,1055.1797,457.5085,1045.1815,452.6413,1049.4622,448.3606,1044.5951,452.2748,1055.1797" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M455.7713,1000.6344 C454.6712,1017.7962 453.6241,1034.1307 452.7146,1048.3187 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT10" target="_self" title="#link_Events_EVENT10" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT10" xlink:show="new" xlink:title="#link_Events_EVENT10" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="69.8958" x="456.0417" y="1030.9456">Events.EVENT10</text></a><polygon fill="#1E90FF" points="632.3708,1144.359,624.6836,1136.0969,627.101,1142.111,621.0869,1144.5285,632.3708,1144.359" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M465.4462,1075.4649 C481.7908,1081.7117 509.561,1092.6518 532.8125,1103.4375 C544.7972,1108.9968 547.0673,1111.8823 559.1667,1117.1875 C583.9516,1128.0548 591.2555,1127.9531 616.4583,1137.8125 C621.6884,1139.8585 621.0546,1139.5318 626.0471,1141.6614 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT11" target="_self" title="#link_Events_EVENT11" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT11" xlink:show="new" xlink:title="#link_Events_EVENT11" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="69.8958" x="560.3125" y="1113.4456">Events.EVENT11</text></a><polygon fill="#1E90FF" points="532.6595,1219.8354,541.6013,1212.9508,535.3882,1214.7978,533.5412,1208.5847,532.6595,1219.8354" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M632.3708,1158.766 C627.3783,1160.8957 621.6884,1163.2665 616.4583,1165.3125 C591.2555,1175.1719 580.3972,1169.155 559.1667,1185.9375 C547.8416,1194.8898 542.1595,1202.2974 535.934,1213.7903 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT12" target="_self" title="#link_Events_EVENT12" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT12" xlink:show="new" xlink:title="#link_Events_EVENT12" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="69.8958" x="560.3125" y="1195.9456">Events.EVENT12</text></a><polygon fill="#1E90FF" points="522.5,1321.013,527.0833,1310.7005,522.5,1315.2838,517.9167,1310.7005,522.5,1321.013" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M522.5,1266.4677 C522.5,1283.6296 522.5,1299.9499 522.5,1314.138 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT13" target="_self" title="#link_Events_EVENT13" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT13" xlink:show="new" xlink:title="#link_Events_EVENT13" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="69.8958" x="523.6458" y="1296.779">Events.EVENT13</text></a><polygon fill="#1E90FF" points="430.4201,1403.3786,433.8148,1392.6161,429.7759,1397.6857,424.7063,1393.6468,430.4201,1403.3786" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M508.6431,1336.8536 C488.8581,1338.8412 453.0836,1345.6891 436.5625,1369.2708 C429.7376,1379.0125 428.3845,1385.3891 429.647,1396.5472 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT14" target="_self" title="#link_Events_EVENT14" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT14" xlink:show="new" xlink:title="#link_Events_EVENT14" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="69.8958" x="437.7083" y="1379.279">Events.EVENT14</text></a><polygon fill="#1E90FF" points="510.915,1516.4267,501.0462,1510.9529,505.2081,1515.9221,500.2389,1520.084,510.915,1516.4267" style="stroke:#1E90FF;stroke-width:1.1458333333333333;"/><path d="M430.385,1449.7711 C429.1128,1460.9359 429.695,1474.1425 436.5625,1483.8542 C453.6676,1508.0432 483.8419,1514.033 504.0667,1515.8212 " fill="none" style="stroke:#1E90FF;stroke-width:2.2916666666666665;"/><a href="#link_Events_EVENT15" target="_self" title="#link_Events_EVENT15" xlink:actuate="onRequest" xlink:href="#link_Events_EVENT15" xlink:show="new" xlink:title="#link_Events_EVENT15" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="69.8958" x="437.7083" y="1480.1123">Events.EVENT15</text></a><polygon fill="#FF6347" points="532.5906,1586.9409,532.814,1575.658,530.3678,1581.6605,524.3653,1579.2144,532.5906,1586.9409" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M523.9459,1532.2627 C523.6012,1541.7742 523.7101,1554.9852 525.9375,1566.3542 C527.3135,1573.3779 527.3632,1574.5225 529.9233,1580.6044 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE16_States_STATE17" target="_self" title="#link_anon_States_STATE16_States_STATE17" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE16_States_STATE17" xlink:show="new" xlink:title="#link_anon_States_STATE16_States_STATE17" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="153.5417" x="527.0833" y="1562.6123">guardVarEquals("value1") (order=0)</text></a><polygon fill="#FF6347" points="345.1636,1586.8268,352.2252,1578.0241,346.6246,1581.287,343.3617,1575.6864,345.1636,1586.8268" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M510.9479,1520.649 C476.3427,1524.078 387.2153,1534.4884 364.375,1552.6042 C353.6697,1561.095 349.7551,1569.4173 346.9168,1580.1791 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE16_States_STATE18" target="_self" title="#link_anon_States_STATE16_States_STATE18" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE16_States_STATE18" xlink:show="new" xlink:title="#link_anon_States_STATE16_States_STATE18" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="153.5417" x="365.5208" y="1562.6123">guardVarEquals("value2") (order=1)</text></a><polygon fill="#FF6347" points="797.7207,1669.2907,800.3069,1658.3059,796.6556,1663.6615,791.3001,1660.0101,797.7207,1669.2907" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M538.6932,1519.882 C580.8115,1521.6689 706.0738,1528.9038 737.9167,1552.6042 C777.2886,1581.9083 791.4275,1636.0311 796.4426,1662.5356 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE16_States_STATE19" target="_self" title="#link_anon_States_STATE16_States_STATE19" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE16_States_STATE19" xlink:show="new" xlink:title="#link_anon_States_STATE16_States_STATE19" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="782.6042" y="1603.8623">(order=2)</text></a><polygon fill="#FF6347" points="538.5417,1751.8752,543.125,1741.5627,538.5417,1746.146,533.9583,1741.5627,538.5417,1751.8752" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M538.5417,1614.6425 C538.5417,1645.0583 538.5417,1714.6443 538.5417,1745.0002 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE17_States_STATE20" target="_self" title="#link_anon_States_STATE17_States_STATE20" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE17_States_STATE20" xlink:show="new" xlink:title="#link_anon_States_STATE17_States_STATE20" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="224.5833" x="539.6875" y="1686.3623">guardEventHeaderEquals("header1","foo") (order=0)</text></a><polygon fill="#FF6347" points="538.8593,1520.1648,548.851,1525.4108,544.5763,1520.5384,549.4487,1516.2636,538.8593,1520.1648" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M552.5758,1599.7172 C594.9813,1599.6564 716.7858,1595.8069 681.7708,1552.6042 C663.7921,1530.4214 580.8048,1522.9058 545.7197,1520.6131 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE17_States_STATE16" target="_self" title="#link_anon_States_STATE17_States_STATE16" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE17_States_STATE16" xlink:show="new" xlink:title="#link_anon_States_STATE17_States_STATE16" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="689.7917" y="1562.6123">(order=1)</text></a><polygon fill="#FF6347" points="785.8332,1675.2221,778.2309,1666.8819,780.5867,1672.9204,774.5482,1675.2763,785.8332,1675.2221" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M356.4021,1604.7257 C394.6579,1612.5613 505.3693,1634.776 598.125,1648.8542 C674.1908,1660.3992 695.6457,1649.7125 770,1669.4792 C775.3189,1670.8932 774.6356,1670.3097 779.5374,1672.4601 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE18_States_STATE19" target="_self" title="#link_anon_States_STATE18_States_STATE19" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE18_States_STATE19" xlink:show="new" xlink:title="#link_anon_States_STATE18_States_STATE19" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="153.5417" x="599.2708" y="1645.1123">guardVarEquals("value3") (order=0)</text></a><polygon fill="#FF6347" points="524.5167,1752.9369,519.5111,1742.8226,520.1091,1749.2767,513.6549,1749.8747,524.5167,1752.9369" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M356.3821,1613.3163 C392.2708,1643.1186 483.0643,1718.5144 519.2276,1748.5447 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE18_States_STATE20" target="_self" title="#link_anon_States_STATE18_States_STATE20" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE18_States_STATE20" xlink:show="new" xlink:title="#link_anon_States_STATE18_States_STATE20" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="458.3333" y="1686.3623">(order=1)</text></a><polygon fill="#FF6347" points="851.3542,129.6259,846.7708,139.9384,851.3542,135.355,855.9375,139.9384,851.3542,129.6259" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M813.8813,1670.0249 C829.1481,1655.538 851.3542,1629.6861 851.3542,1601.875 C851.3542,206.25 851.3542,206.25 851.3542,206.25 C851.3542,179.9038 851.3542,156.4704 851.3542,136.5009 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE19_States_STATE1" target="_self" title="#link_anon_States_STATE19_States_STATE1" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE19_States_STATE1" xlink:show="new" xlink:title="#link_anon_States_STATE19_States_STATE1" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="146.6667" x="852.5" y="930.1123">guardVarEquals("reset") (order=0)</text></a><polygon fill="#FF6347" points="552.8145,1761.0319,563.9352,1762.9517,558.3694,1759.6296,561.6915,1754.0639,552.8145,1761.0319" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M785.9797,1690.6126 C780.9935,1692.7591 775.2904,1695.0946 770,1696.9792 C689.1575,1725.7771 596.0324,1750.1218 559.4804,1759.3492 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE19_States_STATE20" target="_self" title="#link_anon_States_STATE19_States_STATE20" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE19_States_STATE20" xlink:show="new" xlink:title="#link_anon_States_STATE19_States_STATE20" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="709.2708" y="1727.6123">(order=1)</text></a><polygon fill="#FF6347" points="526.2667,514.0473,515.6445,510.2364,520.5532,514.4695,516.32,519.3782,526.2667,514.0473" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M524.3209,1763.9803 C439.7709,1760.2115 6.875,1738.2833 6.875,1684.375 C6.875,609.5833 6.875,609.5833 6.875,609.5833 C6.875,556.9039 387.6697,524.2891 519.4104,514.554 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE20_States_STATE5" target="_self" title="#link_anon_States_STATE20_States_STATE5" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE20_States_STATE5" xlink:show="new" xlink:title="#link_anon_States_STATE20_States_STATE5" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="223.4375" x="8.0208" y="1154.6956">guardEventHeaderEquals("header2","bar") (order=0)</text></a><polygon fill="#FF6347" points="894.5733,114.2073,903.7494,120.7764,900.1847,115.3628,905.5983,111.7981,894.5733,114.2073" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M552.3594,1763.7695 C630.8897,1758.9656 1017.5,1732.8535 1017.5,1684.375 C1017.5,206.25 1017.5,206.25 1017.5,206.25 C1017.5,149.0701 950.5353,125.7315 901.307,115.5939 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE20_States_STATE1" target="_self" title="#link_anon_States_STATE20_States_STATE1" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE20_States_STATE1" xlink:show="new" xlink:title="#link_anon_States_STATE20_States_STATE1" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="1018.6458" y="980.529">(order=1)</text></a><polygon fill="#FF6347" points="519.6442,1220.2724,521.9409,1209.2234,518.4316,1214.6731,512.9819,1211.1637,519.6442,1220.2724" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M448.7978,1082.9403 C445.4558,1102.5522 442.0769,1140.4806 459.4792,1165.3125 C472.033,1183.226 489.6282,1169.5936 504.1667,1185.9375 C512.6175,1195.4378 515.7277,1202.1883 518.189,1213.5532 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE11_States_STATE13" target="_self" title="#link_anon_States_STATE11_States_STATE13" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE11_States_STATE13" xlink:show="new" xlink:title="#link_anon_States_STATE11_States_STATE13" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="160.4167" x="460.625" y="1154.6956">guardVarEquals("goTo13") (order=0)</text></a><polygon fill="#FF6347" points="508.2894,1328.7496,500.2478,1320.832,502.9263,1326.7345,497.0237,1329.4129,508.2894,1328.7496" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M437.3626,1076.5428 C400.9635,1093.8525 308.5876,1144.3642 336.875,1199.6875 C374.1557,1272.5995 465.1983,1312.5591 501.8537,1326.3315 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE11_States_STATE14" target="_self" title="#link_anon_States_STATE11_States_STATE14" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE11_States_STATE14" xlink:show="new" xlink:title="#link_anon_States_STATE11_States_STATE14" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="160.4167" x="338.0208" y="1195.9456">guardVarEquals("goTo14") (order=1)</text></a><polygon fill="#FF6347" points="388.7642,1420.9193,379.2648,1414.827,383.1011,1420.0516,377.8765,1423.8879,388.7642,1420.9193" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M437.4202,1069.8749 C393.9845,1069.6394 264.6875,1075.2509 264.6875,1150.4167 C264.6875,1150.4167 264.6875,1150.4167 264.6875,1336.0417 C264.6875,1392.2481 331.4187,1412.133 381.9685,1419.8781 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE11_States_STATE15" target="_self" title="#link_anon_States_STATE11_States_STATE15" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE11_States_STATE15" xlink:show="new" xlink:title="#link_anon_States_STATE11_States_STATE15" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="265.8333" y="1246.3623">(order=2)</text></a><polygon fill="#FF6347" points="503.6262,1000.0041,510.6458,1008.8404,508.7046,1002.6561,514.889,1000.7149,503.6262,1000.0041" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M644.2311,1137.5863 C642.2009,1127.6188 638.338,1113.7951 631.3542,1103.4375 C599.5276,1056.2364 549.6267,1024.0258 509.7203,1003.1865 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE12_States_STATE10" target="_self" title="#link_anon_States_STATE12_States_STATE10" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE12_States_STATE10" xlink:show="new" xlink:title="#link_anon_States_STATE12_States_STATE10" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="169.5833" x="615.3125" y="1072.1956">guardVarEquals("goBack10") (order=0)</text></a><polygon fill="#FF6347" points="456.7546,1083.2031,457.0187,1094.4852,459.2033,1088.3826,465.3059,1090.5672,456.7546,1083.2031" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M632.2627,1143.6601 C627.3586,1141.518 621.7521,1139.3181 616.4583,1137.8125 C558.9576,1121.4588 534.1029,1149.0832 483.5417,1117.1875 C470.8445,1109.1777 464.8531,1100.333 459.693,1089.4185 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE12_States_STATE11" target="_self" title="#link_anon_States_STATE12_States_STATE11" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE12_States_STATE11" xlink:show="new" xlink:title="#link_anon_States_STATE12_States_STATE11" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="484.6875" y="1113.4456">(order=1)</text></a><polygon fill="#FF6347" points="645.6453,1165.5179,640.3449,1175.4808,645.2406,1171.2327,649.4887,1176.1284,645.6453,1165.5179" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M536.4608,1331.3493 C553.6201,1327.6799 582.5163,1319.0487 599.2708,1300.5208 C635.211,1260.7767 643.1775,1200.3624 645.1597,1172.3757 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE14_States_STATE12" target="_self" title="#link_anon_States_STATE14_States_STATE12" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE14_States_STATE12" xlink:show="new" xlink:title="#link_anon_States_STATE14_States_STATE12" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="156.9792" x="638.2292" y="1246.3623">guardVarEquals("loop12") (order=0)</text></a><polygon fill="#FF6347" points="524.6276,1504.1246,529.0801,1493.7549,524.5551,1498.3959,519.9141,1493.8709,524.6276,1504.1246" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M522.6611,1348.7722 C523.0809,1381.9325 524.1177,1463.8361 524.5406,1497.2501 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE14_States_STATE16" target="_self" title="#link_anon_States_STATE14_States_STATE16" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE14_States_STATE16" xlink:show="new" xlink:title="#link_anon_States_STATE14_States_STATE16" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="525.9375" y="1429.6956">(order=1)</text></a><polygon fill="#FF6347" points="285.7257,817.0186,278.1357,825.37,283.9265,822.4579,286.8386,828.2488,285.7257,817.0186" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M453.6823,884.2141 C415.3037,882.8694 308.8345,876.8652 287.6042,851.3542 C279.7574,841.9253 280.1272,833.944 283.5667,823.5458 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE9_States_STATE8" target="_self" title="#link_anon_States_STATE9_States_STATE8" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE9_States_STATE8" xlink:show="new" xlink:title="#link_anon_States_STATE9_States_STATE8" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="165" x="288.75" y="847.6123">guardVarEquals("stepBack") (order=0)</text></a><polygon fill="#FF6347" points="569.3314,734.9342,564.8042,745.2714,569.3625,740.6632,573.9707,745.2216,569.3314,734.9342" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M481.2836,881.9834 C497.526,878.1738 524.1226,869.462 538.5417,851.3542 C565.5335,817.457 569.5301,771.5115 569.3688,741.8091 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE9_States_STATE7" target="_self" title="#link_anon_States_STATE9_States_STATE7" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE9_States_STATE7" xlink:show="new" xlink:title="#link_anon_States_STATE9_States_STATE7" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="186.7708" x="566.0417" y="806.3623">guardVarEquals("stepBackMore") (order=1)</text></a><polygon fill="#FF6347" points="612.6792,631.6579,619.8881,640.3404,617.8137,634.1995,623.9547,632.1252,612.6792,631.6579" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M481.4027,883.571 C534.4784,879.3917 723.1313,861.5576 758.5417,816.9792 C815.6229,745.1192 690.7624,670.3094 618.8406,634.7078 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE9_States_STATE6" target="_self" title="#link_anon_States_STATE9_States_STATE6" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE9_States_STATE6" xlink:show="new" xlink:title="#link_anon_States_STATE9_States_STATE6" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="773.4375" y="765.1123">(order=2)</text></a><polygon fill="#FF6347" points="453.7084,884.3687,443.479,879.6027,447.9801,884.2668,443.316,888.7679,453.7084,884.3687" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M277.2239,804.7442 C238.8454,806.089 132.3762,812.0931 111.1458,837.6042 C107.2367,842.3015 107.0301,846.8368 111.1458,851.3542 C134.6325,877.1328 384.1049,883.1306 446.8345,884.2465 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE8_States_STATE9" target="_self" title="#link_anon_States_STATE8_States_STATE9" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE8_States_STATE9" xlink:show="new" xlink:title="#link_anon_States_STATE8_States_STATE9" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="165" x="112.2917" y="847.6123">guardVarEquals("forward9") (order=0)</text></a><polygon fill="#FF6347" points="410.6433,975.6147,400.5705,970.5262,404.9211,975.3309,400.1164,979.6816,410.6433,975.6147" style="stroke:#FF6347;stroke-width:1.1458333333333333;"/><path d="M277.2688,804.6405 C237.9323,805.7175 126.479,811.0962 104.2708,837.6042 C100.3463,842.2886 100.7433,846.3639 104.2708,851.3542 C174.8012,951.1315 325.2039,971.3775 403.7767,975.2741 " fill="none" style="stroke:#FF6347;stroke-width:2.2916666666666665;"/><a href="#link_anon_States_STATE8_States_STATE10" target="_self" title="#link_anon_States_STATE8_States_STATE10" xlink:actuate="onRequest" xlink:href="#link_anon_States_STATE8_States_STATE10" xlink:show="new" xlink:title="#link_anon_States_STATE8_States_STATE10" xlink:type="simple"><text fill="#0000FF" font-family="JetBrains Mono" font-size="9.1667" lengthAdjust="spacing" text-decoration="underline" textLength="42.3958" x="152.3958" y="888.8623">(order=1)</text></a><!--SRC=[hPXTJzim58Rlyoiyk64Je9nyPsALO6grJGDDe-86eSeqfer8uyv9OMpQVv_Jyb6xjG-XlUESq_XvUso_EUNTLD3HX9A2Fl1PJQe9gsb9dOh9lzcK2bfpGKfUCcUSPuomoRH-81chXYAVrZal5-cgPeBn-c7AdEesBvld9Z99QqR-EeISqE7jIF1PcNtcXLplVfpNhCbpaJ6noEsc0VMla-TiVvmFRqjMLGHahiVB-enE6FbQIjHZuZp_mqZw5DGF1IFNlCXaukU29KecYEVAn0-QPNavaclzMrOufXc_R_8tjAYMjHyBmU-VeTzOVI9eNbRab9TytSVcKXAzylZDXjTPo40lBd_1br8spGc0kopoRlGzBs_xL8pafWmgLjmupkM7At9mq27dJO-hm_F-SRyBZhDekPACoD7HSCpp8UjqrjLZf9uWzTHUzrpaUK3g7b8Fx7L4dlBj76LXSd2v2ztKxVNscrDrfNMxqSL-oyDOqgBJQO91zuwLTJNeNdJF-Y1p7ydbvMuXzqwja4Lqk8YkhXnrMJlMjsCz8zPJi9w6zH5iOCVwHgolO7qD6o3Oq8uDZDX0mGOQDaImaHqR6h6XWWqrR8HWOpisCc8Z1Hjfs1Z19dPiRCJ62ZRMi0c2JUtOn8XD56oYOLC42wwTcngvgS9DDQvS5m43uXYksJ9SrJDSdOsP5M1kPR4hpQzqmmBCiG2nB31x5gYc1Rfh0MPRWFWMc8qBLES2tRe0yov0p0lCxWMgVO7kNu0P620E1cOB0zN3G3SncBjOhnVvGRoU_J9H39g9K25HEKeE5fyUF2wdXZ4PpQZ8BgZe_fh9eMnlvuuMCmOxxydUV2xyvBvlhIZPH56oNf7teWZQAqetKPG-WRqLS8o0byQnru1Z9PGFprinFnzV69KIdbeodaUmixzpmxbjhp21I_DgUu7oOUEM9DlTaaJVahM7nBUr8jdkNYNwNXbRaMAjQCLDrN2b4OB97vEsFgJRxKFwsZvuBW8Est0zLmb3vAfuygfSKs7f2oeFDf07vjC16DPljHsWXlxA-HZnFWVhHK4L1Pie2jOh2cp-ZYeADr4KcltTmy3jxegdXkwQLZJ_km7NjZse9jX4a-Ma1XZOQmKED1qhpIWudu9dQqMmtRTRyDgt6sQXhGOWrK1Nnv-gPjFcL5WQWUc9twudDkevvO9PBYscANgxfiXuOR5tVAkXGtt3huuSDrpSoqngsPXag_wHwFQntFl_]--></g></svg>
|
|
</div>
|
|
</div>
|
|
|
|
<script id="metadata-json" type="application/json">
|
|
{
|
|
"name" : "click.kamil.examples.statemachine.complex.ComplexStateMachineConfig",
|
|
"states" : [ {
|
|
"rawName" : "States.STATE11",
|
|
"fullIdentifier" : "States.STATE11"
|
|
}, {
|
|
"rawName" : "States.STATE13",
|
|
"fullIdentifier" : "States.STATE13"
|
|
}, {
|
|
"rawName" : "States.STATE15",
|
|
"fullIdentifier" : "States.STATE15"
|
|
}, {
|
|
"rawName" : "States.STATE17",
|
|
"fullIdentifier" : "States.STATE17"
|
|
}, {
|
|
"rawName" : "States.STATE19",
|
|
"fullIdentifier" : "States.STATE19"
|
|
}, {
|
|
"rawName" : "States.STATE20",
|
|
"fullIdentifier" : "States.STATE20"
|
|
}, {
|
|
"rawName" : "States.STATE2",
|
|
"fullIdentifier" : "States.STATE2"
|
|
}, {
|
|
"rawName" : "States.STATE4",
|
|
"fullIdentifier" : "States.STATE4"
|
|
}, {
|
|
"rawName" : "States.STATE6",
|
|
"fullIdentifier" : "States.STATE6"
|
|
}, {
|
|
"rawName" : "States.STATE8",
|
|
"fullIdentifier" : "States.STATE8"
|
|
}, {
|
|
"rawName" : "States.STATE10",
|
|
"fullIdentifier" : "States.STATE10"
|
|
}, {
|
|
"rawName" : "States.STATE12",
|
|
"fullIdentifier" : "States.STATE12"
|
|
}, {
|
|
"rawName" : "States.STATE14",
|
|
"fullIdentifier" : "States.STATE14"
|
|
}, {
|
|
"rawName" : "States.STATE16",
|
|
"fullIdentifier" : "States.STATE16"
|
|
}, {
|
|
"rawName" : "States.STATE18",
|
|
"fullIdentifier" : "States.STATE18"
|
|
}, {
|
|
"rawName" : "States.STATE1",
|
|
"fullIdentifier" : "States.STATE1"
|
|
}, {
|
|
"rawName" : "States.STATE3",
|
|
"fullIdentifier" : "States.STATE3"
|
|
}, {
|
|
"rawName" : "States.STATE5",
|
|
"fullIdentifier" : "States.STATE5"
|
|
}, {
|
|
"rawName" : "States.STATE7",
|
|
"fullIdentifier" : "States.STATE7"
|
|
}, {
|
|
"rawName" : "States.STATE9",
|
|
"fullIdentifier" : "States.STATE9"
|
|
} ],
|
|
"transitions" : [ {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE1",
|
|
"fullIdentifier" : "States.STATE1"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE2",
|
|
"fullIdentifier" : "States.STATE2"
|
|
} ],
|
|
"event" : "Events.EVENT1",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE2",
|
|
"fullIdentifier" : "States.STATE2"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE3",
|
|
"fullIdentifier" : "States.STATE3"
|
|
} ],
|
|
"event" : "Events.EVENT2",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE3",
|
|
"fullIdentifier" : "States.STATE3"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE4",
|
|
"fullIdentifier" : "States.STATE4"
|
|
} ],
|
|
"event" : "Events.EVENT3",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE4",
|
|
"fullIdentifier" : "States.STATE4"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE5",
|
|
"fullIdentifier" : "States.STATE5"
|
|
} ],
|
|
"event" : "Events.EVENT4",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE5",
|
|
"fullIdentifier" : "States.STATE5"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE6",
|
|
"fullIdentifier" : "States.STATE6"
|
|
} ],
|
|
"event" : "Events.EVENT5",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE6",
|
|
"fullIdentifier" : "States.STATE6"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE7",
|
|
"fullIdentifier" : "States.STATE7"
|
|
} ],
|
|
"event" : "Events.EVENT6",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE7",
|
|
"fullIdentifier" : "States.STATE7"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE8",
|
|
"fullIdentifier" : "States.STATE8"
|
|
} ],
|
|
"event" : "Events.EVENT7",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE8",
|
|
"fullIdentifier" : "States.STATE8"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE9",
|
|
"fullIdentifier" : "States.STATE9"
|
|
} ],
|
|
"event" : "Events.EVENT8",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE9",
|
|
"fullIdentifier" : "States.STATE9"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE10",
|
|
"fullIdentifier" : "States.STATE10"
|
|
} ],
|
|
"event" : "Events.EVENT9",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE10",
|
|
"fullIdentifier" : "States.STATE10"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE11",
|
|
"fullIdentifier" : "States.STATE11"
|
|
} ],
|
|
"event" : "Events.EVENT10",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE11",
|
|
"fullIdentifier" : "States.STATE11"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE12",
|
|
"fullIdentifier" : "States.STATE12"
|
|
} ],
|
|
"event" : "Events.EVENT11",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE12",
|
|
"fullIdentifier" : "States.STATE12"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE13",
|
|
"fullIdentifier" : "States.STATE13"
|
|
} ],
|
|
"event" : "Events.EVENT12",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE13",
|
|
"fullIdentifier" : "States.STATE13"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE14",
|
|
"fullIdentifier" : "States.STATE14"
|
|
} ],
|
|
"event" : "Events.EVENT13",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE14",
|
|
"fullIdentifier" : "States.STATE14"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE15",
|
|
"fullIdentifier" : "States.STATE15"
|
|
} ],
|
|
"event" : "Events.EVENT14",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "EXTERNAL",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE15",
|
|
"fullIdentifier" : "States.STATE15"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE16",
|
|
"fullIdentifier" : "States.STATE16"
|
|
} ],
|
|
"event" : "Events.EVENT15",
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : null
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE16",
|
|
"fullIdentifier" : "States.STATE16"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE17",
|
|
"fullIdentifier" : "States.STATE17"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"value1\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 86
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE16",
|
|
"fullIdentifier" : "States.STATE16"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE18",
|
|
"fullIdentifier" : "States.STATE18"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"value2\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 87
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE16",
|
|
"fullIdentifier" : "States.STATE16"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE19",
|
|
"fullIdentifier" : "States.STATE19"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 2
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE17",
|
|
"fullIdentifier" : "States.STATE17"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE20",
|
|
"fullIdentifier" : "States.STATE20"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 92
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE17",
|
|
"fullIdentifier" : "States.STATE17"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE16",
|
|
"fullIdentifier" : "States.STATE16"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE18",
|
|
"fullIdentifier" : "States.STATE18"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE19",
|
|
"fullIdentifier" : "States.STATE19"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"value3\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 97
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE18",
|
|
"fullIdentifier" : "States.STATE18"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE20",
|
|
"fullIdentifier" : "States.STATE20"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE19",
|
|
"fullIdentifier" : "States.STATE19"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE1",
|
|
"fullIdentifier" : "States.STATE1"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"reset\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 102
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE19",
|
|
"fullIdentifier" : "States.STATE19"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE20",
|
|
"fullIdentifier" : "States.STATE20"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE20",
|
|
"fullIdentifier" : "States.STATE20"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE5",
|
|
"fullIdentifier" : "States.STATE5"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 107
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE20",
|
|
"fullIdentifier" : "States.STATE20"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE1",
|
|
"fullIdentifier" : "States.STATE1"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE11",
|
|
"fullIdentifier" : "States.STATE11"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE13",
|
|
"fullIdentifier" : "States.STATE13"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"goTo13\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 112
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE11",
|
|
"fullIdentifier" : "States.STATE11"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE14",
|
|
"fullIdentifier" : "States.STATE14"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"goTo14\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 113
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE11",
|
|
"fullIdentifier" : "States.STATE11"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE15",
|
|
"fullIdentifier" : "States.STATE15"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 2
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE12",
|
|
"fullIdentifier" : "States.STATE12"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE10",
|
|
"fullIdentifier" : "States.STATE10"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"goBack10\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 118
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE12",
|
|
"fullIdentifier" : "States.STATE12"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE11",
|
|
"fullIdentifier" : "States.STATE11"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE14",
|
|
"fullIdentifier" : "States.STATE14"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE12",
|
|
"fullIdentifier" : "States.STATE12"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"loop12\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 123
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE14",
|
|
"fullIdentifier" : "States.STATE14"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE16",
|
|
"fullIdentifier" : "States.STATE16"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE9",
|
|
"fullIdentifier" : "States.STATE9"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE8",
|
|
"fullIdentifier" : "States.STATE8"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"stepBack\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 128
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE9",
|
|
"fullIdentifier" : "States.STATE9"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE7",
|
|
"fullIdentifier" : "States.STATE7"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"stepBackMore\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 129
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE9",
|
|
"fullIdentifier" : "States.STATE9"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE6",
|
|
"fullIdentifier" : "States.STATE6"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 2
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE8",
|
|
"fullIdentifier" : "States.STATE8"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE9",
|
|
"fullIdentifier" : "States.STATE9"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : {
|
|
"expression" : "guardVarEquals(\"forward9\")",
|
|
"isLambda" : false,
|
|
"internalLogic" : null,
|
|
"lineNumber" : 134
|
|
},
|
|
"actions" : [ ],
|
|
"order" : 0
|
|
}, {
|
|
"type" : "CHOICE",
|
|
"sourceStates" : [ {
|
|
"rawName" : "States.STATE8",
|
|
"fullIdentifier" : "States.STATE8"
|
|
} ],
|
|
"targetStates" : [ {
|
|
"rawName" : "States.STATE10",
|
|
"fullIdentifier" : "States.STATE10"
|
|
} ],
|
|
"event" : null,
|
|
"guard" : null,
|
|
"actions" : [ ],
|
|
"order" : 1
|
|
} ],
|
|
"startStates" : [ "States.STATE1" ],
|
|
"endStates" : [ ],
|
|
"renderChoicesAsDiamonds" : true,
|
|
"flows" : [ ],
|
|
"metadata" : {
|
|
"triggers" : [ ],
|
|
"entryPoints" : [ ],
|
|
"callChains" : [ ],
|
|
"properties" : {
|
|
"default" : {
|
|
"spring.application.name" : "statemachinedemo"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<script>
|
|
const metadata = JSON.parse(document.getElementById('metadata-json').textContent);
|
|
let panZoomInstance;
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const svg = document.querySelector('#svg-container svg');
|
|
panZoomInstance = svgPanZoom(svg, { zoomEnabled: true, controlIconsEnabled: true, fit: true, center: true });
|
|
|
|
document.getElementById('toggle-sidebar').addEventListener('click', () => {
|
|
const sidebar = document.getElementById('sidebar');
|
|
sidebar.classList.toggle('collapsed');
|
|
|
|
// Re-center SVG pan-zoom after transition
|
|
setTimeout(() => {
|
|
if (panZoomInstance) {
|
|
panZoomInstance.resize();
|
|
panZoomInstance.center();
|
|
}
|
|
}, 300);
|
|
});
|
|
|
|
setupTabs();
|
|
populateSidebar();
|
|
populateFlows();
|
|
attachInteractivity();
|
|
});
|
|
|
|
function setupTabs() {
|
|
const flows = metadata.flows || [];
|
|
if (flows.length === 0) {
|
|
document.querySelector('.tabs').style.display = 'none';
|
|
document.querySelector('.tab-content[data-tab="flows"]')?.remove();
|
|
return;
|
|
}
|
|
|
|
document.querySelectorAll('.tab').forEach(tab => {
|
|
tab.addEventListener('click', () => {
|
|
document.querySelectorAll('.tab, .tab-content').forEach(el => el.classList.remove('active'));
|
|
tab.classList.add('active');
|
|
document.getElementById('tab-' + tab.dataset.tab).classList.add('active');
|
|
});
|
|
});
|
|
}
|
|
|
|
function populateSidebar() {
|
|
const list = document.getElementById('ep-list');
|
|
const entryPoints = metadata.metadata.entryPoints || [];
|
|
const machineEvents = new Set(metadata.transitions.map(t => t.event).filter(Boolean));
|
|
|
|
entryPoints.forEach(ep => {
|
|
// Quality Filter: Hide if it doesn't trigger a machine event
|
|
const chains = (metadata.metadata.callChains || []).filter(c =>
|
|
c.entryPoint.className === ep.className &&
|
|
c.entryPoint.methodName === ep.methodName &&
|
|
machineEvents.has(c.triggerPoint.event)
|
|
);
|
|
|
|
if (chains.length === 0) return;
|
|
|
|
const card = document.createElement('div');
|
|
card.className = 'ep-card';
|
|
card.innerHTML = `
|
|
<div class="ep-type type-${ep.type.toLowerCase()}">${ep.type}</div>
|
|
<div class="ep-name">${ep.name}</div>
|
|
<div class="ep-fqn">${ep.className}.${ep.methodName}</div>
|
|
`;
|
|
card.onmouseenter = () => highlightEntryPoint(ep);
|
|
card.onmouseleave = clearHighlights;
|
|
list.appendChild(card);
|
|
});
|
|
}
|
|
|
|
function populateFlows() {
|
|
const list = document.getElementById('flow-list');
|
|
const flows = metadata.flows || [];
|
|
|
|
if (flows.length === 0) {
|
|
list.innerHTML = '<p style="color:var(--text-muted); font-size:0.8rem; font-style:italic;">No business flows defined.</p>';
|
|
return;
|
|
}
|
|
|
|
flows.forEach(flow => {
|
|
const card = document.createElement('div');
|
|
card.className = 'flow-card';
|
|
card.innerHTML = `
|
|
<div class="flow-name">${flow.name}</div>
|
|
<div class="flow-desc">${flow.description}</div>
|
|
`;
|
|
card.onmouseenter = () => highlightFlow(flow);
|
|
card.onmouseleave = clearHighlights;
|
|
list.appendChild(card);
|
|
});
|
|
}
|
|
|
|
function highlightEntryPoint(ep) {
|
|
clearHighlights();
|
|
const machineEvents = new Set(metadata.transitions.map(t => t.event).filter(Boolean));
|
|
const chains = metadata.metadata.callChains || [];
|
|
const relevantEvents = chains
|
|
.filter(c => c.entryPoint.className === ep.className && c.entryPoint.methodName === ep.methodName && machineEvents.has(c.triggerPoint.event))
|
|
.map(c => c.triggerPoint.event);
|
|
|
|
if (relevantEvents.length === 0) return;
|
|
highlightEvents(relevantEvents);
|
|
}
|
|
|
|
function highlightFlow(flow) {
|
|
clearHighlights();
|
|
if (!flow.steps || flow.steps.length === 0) return;
|
|
highlightEvents(flow.steps);
|
|
}
|
|
|
|
function highlightEvents(steps) {
|
|
const svg = document.querySelector('#svg-container svg');
|
|
|
|
// Dim everything first
|
|
svg.querySelectorAll('path, rect, circle, ellipse, text, polygon').forEach(el => {
|
|
el.classList.add('dimmed');
|
|
});
|
|
|
|
steps.forEach(step => {
|
|
let linkId = "";
|
|
if (step.includes("->")) {
|
|
// Named Choice Branch: "SRC->TGT"
|
|
const parts = step.split("->");
|
|
linkId = "#link_anon_" + normalize(parts[0]) + "_" + normalize(parts[1]);
|
|
} else {
|
|
// Standard Event
|
|
linkId = "#link_" + normalize(step);
|
|
}
|
|
|
|
svg.querySelectorAll('a').forEach(link => {
|
|
const href = link.getAttribute('xlink:href') || link.getAttribute('href');
|
|
if (href === linkId) {
|
|
highlightLinkGroup(link);
|
|
}
|
|
});
|
|
});
|
|
|
|
// Un-dim all state nodes for context
|
|
svg.querySelectorAll('rect, circle, ellipse, polygon').forEach(el => {
|
|
const isChoice = el.tagName === 'polygon' && el.points?.numberOfItems === 4;
|
|
if (isChoice || ['rect', 'circle', 'ellipse'].includes(el.tagName)) {
|
|
el.classList.remove('dimmed');
|
|
let next = el.nextElementSibling;
|
|
while(next && next.tagName === 'text') {
|
|
next.classList.remove('dimmed');
|
|
next = next.nextElementSibling;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function highlightLinkGroup(link) {
|
|
link.classList.add('active-path');
|
|
link.querySelectorAll('*').forEach(child => child.classList.remove('dimmed'));
|
|
|
|
// Find path and polygon immediately before the <a> tag (interleaved)
|
|
let prev = link.previousElementSibling;
|
|
let foundPath = false;
|
|
let foundPolygon = false;
|
|
while (prev) {
|
|
if (prev.tagName === 'path' && !foundPath) {
|
|
prev.classList.remove('dimmed');
|
|
prev.classList.add('active-path');
|
|
foundPath = true;
|
|
} else if (prev.tagName === 'polygon' && !foundPolygon && prev.points?.numberOfItems !== 4) {
|
|
prev.classList.remove('dimmed');
|
|
prev.classList.add('active-path');
|
|
foundPolygon = true;
|
|
} else if (['rect', 'circle', 'ellipse'].includes(prev.tagName) ||
|
|
(prev.tagName === 'polygon' && prev.points?.numberOfItems === 4)) {
|
|
// Hit a state node, stop traversal
|
|
break;
|
|
}
|
|
if (foundPath && foundPolygon) break;
|
|
prev = prev.previousElementSibling;
|
|
}
|
|
}
|
|
|
|
function clearHighlights() {
|
|
document.querySelectorAll('.dimmed, .active-path').forEach(el => {
|
|
el.classList.remove('dimmed', 'active-path');
|
|
});
|
|
}
|
|
|
|
function attachInteractivity() {
|
|
const svg = document.querySelector('#svg-container svg');
|
|
const transitions = metadata.transitions || [];
|
|
|
|
svg.querySelectorAll('a').forEach(link => {
|
|
const href = link.getAttribute('xlink:href') || link.getAttribute('href');
|
|
if (!href || !href.startsWith('#link_')) return;
|
|
|
|
const linkId = href.replace('#link_', '');
|
|
const isAnon = linkId.startsWith('anon_');
|
|
|
|
let metaTrans = null;
|
|
if (isAnon) {
|
|
const parts = linkId.split('_'); // link_anon_SRC_TGT
|
|
const src = parts[2];
|
|
const tgt = parts[3];
|
|
metaTrans = transitions.find(t =>
|
|
!t.event &&
|
|
normalize(t.sourceStates[0].fullIdentifier) === src &&
|
|
normalize(t.targetStates[0].fullIdentifier) === tgt
|
|
);
|
|
} else {
|
|
metaTrans = transitions.find(t => normalize(t.event) === linkId);
|
|
}
|
|
|
|
if (metaTrans || isAnon) {
|
|
link.style.cursor = 'pointer';
|
|
const setupTippy = (el) => {
|
|
tippy(el, {
|
|
content: createTooltip(isAnon ? "Internal logic" : linkId, metaTrans),
|
|
allowHTML: true,
|
|
theme: 'modern',
|
|
interactive: true,
|
|
appendTo: document.body,
|
|
placement: 'right',
|
|
offset: [0, 20]
|
|
});
|
|
};
|
|
setupTippy(link);
|
|
let path = link.previousElementSibling;
|
|
while(path && path.tagName !== 'path') path = path.previousElementSibling;
|
|
if (path) {
|
|
path.style.cursor = 'pointer';
|
|
setupTippy(path);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function normalize(s) {
|
|
if (!s) return "";
|
|
return s.replace(/[^a-zA-Z0-9]/g, '_');
|
|
}
|
|
|
|
function createTooltip(name, trans) {
|
|
const chains = (metadata.metadata.callChains || []).filter(c => normalize(c.triggerPoint.event) === name);
|
|
|
|
let html = `<div class="tooltip-content">
|
|
<div style="font-weight:900; font-size:1.1rem; margin-bottom:12px; border-bottom:1px solid #eee; padding-bottom:8px; line-height:1.3;">
|
|
${name === 'Internal logic' ? name : 'Event: <span style="color:var(--accent)">' + name + '</span>'}
|
|
</div>`;
|
|
|
|
if (trans && trans.guard) {
|
|
const lineInfo = trans.guard.lineNumber ? ` <span style="color:#94a3b8; font-weight:400; font-size:0.6rem;">(Line: ${trans.guard.lineNumber})</span>` : '';
|
|
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Guard${lineInfo}</div>
|
|
<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${trans.guard.expression}</div>`;
|
|
if (trans.guard.internalLogic) {
|
|
html += `<div style="font-size:0.65rem; font-weight:800; color:#cbd5e1; text-transform:uppercase; margin-bottom:4px">Internal Logic</div>
|
|
<pre style="background:#1e293b; color:#f8fafc; padding:8px; border-radius:4px; font-family:'JetBrains Mono', monospace; font-size:0.7rem; overflow-x:auto; margin-bottom:12px;"><code>${trans.guard.internalLogic.replace(/</g, '<').replace(/>/g, '>')}</code></pre>`;
|
|
}
|
|
}
|
|
|
|
if (trans && trans.actions && trans.actions.length > 0) {
|
|
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Actions</div>`;
|
|
trans.actions.forEach(action => {
|
|
const lineInfo = action.lineNumber ? ` <span style="color:#94a3b8; font-weight:400; font-size:0.6rem;">(Line: ${action.lineNumber})</span>` : '';
|
|
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Action${lineInfo}</div>
|
|
<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${action.expression}</div>`;
|
|
if (action.internalLogic) {
|
|
html += `<div style="font-size:0.65rem; font-weight:800; color:#cbd5e1; text-transform:uppercase; margin-bottom:4px">Internal Logic</div>
|
|
<pre style="background:#1e293b; color:#f8fafc; padding:8px; border-radius:4px; font-family:'JetBrains Mono', monospace; font-size:0.7rem; overflow-x:auto; margin-bottom:12px;"><code>${action.internalLogic.replace(/</g, '<').replace(/>/g, '>')}</code></pre>`;
|
|
}
|
|
});
|
|
}
|
|
|
|
if (chains && chains.length > 0) {
|
|
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:10px; border-top:1px solid #eee; padding-top:10px">Triggered by</div>`;
|
|
chains.forEach(c => {
|
|
html += `<div style="margin-bottom:20px">
|
|
<div style="font-weight:700; font-size:0.85rem; color:var(--text);">${c.entryPoint.name}</div>
|
|
${renderParameters(c.entryPoint.parameters)}
|
|
<div style="margin-left:10px; border-left:2px solid #e2e8f0; padding-left:12px; margin-top:10px">
|
|
${c.methodChain.map((m, i) => `<div style="font-size:0.7rem; color:#475569; margin-top:4px; font-family:'JetBrains Mono', monospace;"><b>${i+1}</b> ${m}</div>`).join('')}
|
|
</div>
|
|
</div>`;
|
|
});
|
|
}
|
|
html += `</div>`;
|
|
return html;
|
|
}
|
|
|
|
function renderParameters(params) {
|
|
if (!params || params.length === 0) return "";
|
|
let html = `<div style="font-size:0.65rem; font-weight:700; color:#94a3b8; margin-top:8px; margin-bottom:4px; text-transform:uppercase;">Input Data</div>`;
|
|
html += `<div class="payload-box">`;
|
|
params.forEach(p => {
|
|
const annotation = (p.annotations || []).find(a => a.endsWith("RequestBody") || a.endsWith("PathVariable") || a.endsWith("RequestParam"));
|
|
const cleanAnn = annotation ? "@" + annotation.substring(annotation.lastIndexOf('.') + 1) : "";
|
|
html += `<div class="payload-param">
|
|
<span style="color:#f43f5e; font-size:0.65rem; font-weight:bold;">${cleanAnn}</span>
|
|
<span style="color:#38bdf8;">${p.type}</span>
|
|
<span style="color:#a3e635;">${p.name}</span>
|
|
</div>`;
|
|
});
|
|
html += `</div>`;
|
|
return html;
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|