graflow split tests + fixed height bug + fixed subflow reenter loses style
This commit is contained in:
+6
-178
@@ -4,186 +4,14 @@
|
|||||||
<title>graflow</title>
|
<title>graflow</title>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||||||
<link type="text/css" rel="stylesheet" href="/app/thirdparty/eicui/eicui-2.0.css">
|
|
||||||
<link type="text/css" rel="stylesheet" href="../../thirdparty/buildoz/buildoz.css">
|
|
||||||
<script src="../../thirdparty/buildoz/buildoz.js"></script>
|
|
||||||
<script src="../../thirdparty/buildoz/bzGraflow.js"></script>
|
|
||||||
<style>
|
|
||||||
@font-face { /*FF does not indirectly load if inside a shawdow-dom */
|
|
||||||
font-family: 'glyphs';
|
|
||||||
src: url('/app/assets/styles/fonts/glyphs.eot');
|
|
||||||
src: url('/app/assets/styles/fonts/glyphs.eot') format('embedded-opentype'),
|
|
||||||
url('/app/assets/styles/fonts/glyphs.ttf') format('truetype'),
|
|
||||||
url('/app/assets/styles/fonts/glyphs.woff') format('woff'),
|
|
||||||
url('/app/assets/styles/fonts/glyphs.svg') format('svg');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
font-display: block;
|
|
||||||
}
|
|
||||||
body{
|
|
||||||
display: grid;
|
|
||||||
grid-gap: 5px;
|
|
||||||
background:#888;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
.demooptions{
|
|
||||||
padding: 2px;
|
|
||||||
position: absolute;
|
|
||||||
top: 2px;
|
|
||||||
right: 2px;
|
|
||||||
width: 10em;
|
|
||||||
background: #FFFB;
|
|
||||||
border-radius: 5px;
|
|
||||||
text-align: center;
|
|
||||||
z-index:99;
|
|
||||||
font-size: .7em;
|
|
||||||
border: 1px solid #999;
|
|
||||||
}
|
|
||||||
.demooptions button{
|
|
||||||
text-transform: none;
|
|
||||||
margin: 2px;
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
bz-graflow{
|
|
||||||
overflow: scroll;
|
|
||||||
border: 2px solid black;
|
|
||||||
}
|
|
||||||
bz-graflow.compunet{ grid-column: 1 / -1; width: 80vw; height: 40vh; background:black; }
|
|
||||||
bz-graflow.eic{ grid-column: 1 / -1; width: 80vw; height: 50vh; background: var(--eicui-base-color-grey-10); }
|
|
||||||
bz-graflow.organi{ width: 40vw; height: 100vh; background:black; }
|
|
||||||
</style>
|
|
||||||
<script>
|
|
||||||
window.addEventListener('load',()=>{
|
|
||||||
let grflw1 = document.querySelector('bz-graflow.compunet')
|
|
||||||
grflw1.addEventListener('subflowLoaded',
|
|
||||||
(evt) => { grflw1 = evt.detail.subflow }
|
|
||||||
)
|
|
||||||
grflw1.addEventListener('subflowExited',
|
|
||||||
(evt) => { grflw1 = evt.target }
|
|
||||||
)
|
|
||||||
document.querySelector('[data-trigger="onAutoplace1H"]').addEventListener('click',
|
|
||||||
(evt) => { grflw1.autoPlace('horizontal', 80, 30, 1000, document.querySelector('[data-id="compunet"]').value) }
|
|
||||||
)
|
|
||||||
document.querySelector('[data-trigger="onAutoplace1V"]').addEventListener('click',
|
|
||||||
(evt) => { grflw1.autoPlace('vertical', 80, 30, 1000, document.querySelector('[data-id="compunet"]').value) }
|
|
||||||
)
|
|
||||||
|
|
||||||
let grflw2 = document.querySelector('bz-graflow.eic')
|
|
||||||
grflw2.addEventListener('subflowLoaded',
|
|
||||||
(evt) => { grflw2 = evt.detail.subflow }
|
|
||||||
)
|
|
||||||
grflw2.addEventListener('subflowExited',
|
|
||||||
(evt) => { grflw2 = evt.target }
|
|
||||||
)
|
|
||||||
document.querySelector('[data-trigger="onAutoplace2H"]').addEventListener('click',
|
|
||||||
(evt) => { grflw2.autoPlace('horizontal', 100, 30, 1000, document.querySelector('[data-id="eic"]').value) }
|
|
||||||
)
|
|
||||||
document.querySelector('[data-trigger="onAutoplace2V"]').addEventListener('click',
|
|
||||||
(evt) => { grflw2.autoPlace('vertical', 80, 80, 1000, document.querySelector('[data-id="eic"]').value) }
|
|
||||||
)
|
|
||||||
|
|
||||||
let grflw3 = document.querySelector('bz-graflow.organi')
|
|
||||||
grflw3.addEventListener('subflowLoaded',
|
|
||||||
(evt) => { grflw3 = evt.detail.subflow }
|
|
||||||
)
|
|
||||||
grflw3.addEventListener('subflowExited',
|
|
||||||
(evt) => { grflw3 = evt.target }
|
|
||||||
)
|
|
||||||
document.querySelector('[data-trigger="onAutoplace3H"]').addEventListener('click',
|
|
||||||
(evt) => { grflw3.autoPlace('horizontal', 80, 80, 1000, document.querySelector('[data-id="organi"]').value) }
|
|
||||||
)
|
|
||||||
document.querySelector('[data-trigger="onAutoplace3V"]').addEventListener('click',
|
|
||||||
(evt) => { grflw3.autoPlace('vertical', 80, 30, 1000, document.querySelector('[data-id="organi"]').value) }
|
|
||||||
)
|
|
||||||
|
|
||||||
let grflw4 = document.querySelector('bz-graflow.icmp')
|
|
||||||
grflw4.addEventListener('subflowLoaded',
|
|
||||||
(evt) => { grflw4 = evt.detail.subflow }
|
|
||||||
)
|
|
||||||
grflw4.addEventListener('subflowExited',
|
|
||||||
(evt) => { grflw4 = evt.target }
|
|
||||||
)
|
|
||||||
document.querySelector('[data-trigger="onAutoplace4H"]').addEventListener('click',
|
|
||||||
(evt) => { grflw4.autoPlace('horizontal', 100, 30, 1000, document.querySelector('[data-id="icmp"]').value) }
|
|
||||||
)
|
|
||||||
document.querySelector('[data-trigger="onAutoplace4V"]').addEventListener('click',
|
|
||||||
(evt) => { grflw4.autoPlace('vertical', 80, 80, 1000, document.querySelector('[data-id="icmp"]').value) }
|
|
||||||
)
|
|
||||||
|
|
||||||
document.querySelector('input[data-id="compunet"]').addEventListener('change',
|
|
||||||
(evt) => { grflw1.setAttribute('tension', evt.target.value); grflw1.refresh() }
|
|
||||||
)
|
|
||||||
document.querySelector('input[data-id="eic"]').addEventListener('change',
|
|
||||||
(evt) => { grflw2.setAttribute('tension', evt.target.value); grflw2.refresh() }
|
|
||||||
)
|
|
||||||
document.querySelector('input[data-id="organi"]').addEventListener('change',
|
|
||||||
(evt) => { grflw3.setAttribute('tension', evt.target.value); grflw3.refresh() }
|
|
||||||
)
|
|
||||||
|
|
||||||
document.querySelector('input[data-id="icmp"]').addEventListener('change',
|
|
||||||
(evt) => { grflw4.setAttribute('tension', evt.target.value); grflw4.refresh() }
|
|
||||||
)
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<bz-graflow class="compunet" flow="/app/assets/json/bzGraflow/testFlow1.json" tension="60" isolated>
|
<ul>
|
||||||
<div class="demooptions"> <!-- just for demo purposes -->
|
<li><a href="./test1.html">test1 (P42 graph + 2 depths subflows)</a></li>
|
||||||
<button data-trigger="onAutoplace1H">Auto-place Horizontal</button>
|
<li><a href="./test2.html">test2 (organigram)</a></li>
|
||||||
<button data-trigger="onAutoplace1V">Auto-place Vertical</button>
|
<li><a href="./test3.html">test3 (EIC simple + subflow)</a></li>
|
||||||
<select name="align" data-id="compunet">
|
<li><a href="./test4.html">test4 (EIC-ICMP)</a></li>
|
||||||
<option value="center">Center</option>
|
</ul>
|
||||||
<option value="first">First</option>
|
|
||||||
<option value="last">Last</option>
|
|
||||||
<option value="auto">Auto</option>
|
|
||||||
</select>
|
|
||||||
<div class-"cols-2"=""><label>tension</label><input data-id="compunet" type="number" size="2" value="60"></div>
|
|
||||||
</div>
|
|
||||||
</bz-graflow>
|
|
||||||
|
|
||||||
<bz-graflow class="eic" flow="/app/assets/json/bzGraflow/testFlowEic.json" tension="60">
|
|
||||||
<div class="demooptions"> <!-- just for demo purposes -->
|
|
||||||
<button data-trigger="onAutoplace2H">Auto-place Horizontal</button>
|
|
||||||
<button data-trigger="onAutoplace2V">Auto-place Vertical</button>
|
|
||||||
<select name="align" data-id="eic">
|
|
||||||
<option value="center">Center</option>
|
|
||||||
<option value="first">First</option>
|
|
||||||
<option value="last">Last</option>
|
|
||||||
<option value="auto">Auto</option>
|
|
||||||
</select>
|
|
||||||
<div class-"cols-2"=""><label>tension</label><input data-id="eic" type="number" size="2" value="60"></div>
|
|
||||||
</div>
|
|
||||||
</bz-graflow>
|
|
||||||
|
|
||||||
<bz-graflow class="organi" flow="/app/assets/json/bzGraflow/testFlow2.json" tension="60" isolated>
|
|
||||||
<div class="demooptions">
|
|
||||||
<button data-trigger="onAutoplace3H">Auto-place Horizontal</button>
|
|
||||||
<button data-trigger="onAutoplace3V">Auto-place Vertical</button>
|
|
||||||
<select name="align" data-id="organi">
|
|
||||||
<option value="center">Center</option>
|
|
||||||
<option value="first">First</option>
|
|
||||||
<option value="last">Last</option>
|
|
||||||
<option value="auto">Auto</option>
|
|
||||||
</select>
|
|
||||||
<div class-"cols-2"=""><label>tension</label><input data-id="organi" type="number" size="2" value="60"></div>
|
|
||||||
</div>
|
|
||||||
</bz-graflow>
|
|
||||||
|
|
||||||
|
|
||||||
<bz-graflow class="icmp" flow="/app/assets/json/bzGraflow/testFlowICMP.json" tension="60">
|
|
||||||
<div class="demooptions"> <!-- just for demo purposes -->
|
|
||||||
<button data-trigger="onAutoplace4H">Auto-place Horizontal</button>
|
|
||||||
<button data-trigger="onAutoplace4V">Auto-place Vertical</button>
|
|
||||||
<select name="align" data-id="icmp">
|
|
||||||
<option value="center">Center</option>
|
|
||||||
<option value="first">First</option>
|
|
||||||
<option value="last">Last</option>
|
|
||||||
<option value="auto">Auto</option>
|
|
||||||
</select>
|
|
||||||
<div class-"cols-2"=""><label>tension</label><input data-id="icmp" type="number" size="2" value="60"></div>
|
|
||||||
</div>
|
|
||||||
</bz-graflow>
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -0,0 +1,92 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>graflow</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||||||
|
<link type="text/css" rel="stylesheet" href="/app/thirdparty/eicui/eicui-2.0.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="../../thirdparty/buildoz/buildoz.css">
|
||||||
|
<script src="../../thirdparty/buildoz/buildoz.js"></script>
|
||||||
|
<script src="../../thirdparty/buildoz/bzGraflow.js"></script>
|
||||||
|
<style>
|
||||||
|
@font-face { /*FF does not indirectly load if inside a shawdow-dom */
|
||||||
|
font-family: 'glyphs';
|
||||||
|
src: url('/app/assets/styles/fonts/glyphs.eot');
|
||||||
|
src: url('/app/assets/styles/fonts/glyphs.eot') format('embedded-opentype'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.ttf') format('truetype'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.woff') format('woff'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.svg') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
||||||
|
body{
|
||||||
|
display: grid;
|
||||||
|
grid-gap: 5px;
|
||||||
|
background:#888;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.demooptions{
|
||||||
|
padding: 2px;
|
||||||
|
position: absolute;
|
||||||
|
top: 2px;
|
||||||
|
right: 2px;
|
||||||
|
width: 10em;
|
||||||
|
background: #FFFB;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: center;
|
||||||
|
z-index:99;
|
||||||
|
font-size: .7em;
|
||||||
|
border: 1px solid #999;
|
||||||
|
}
|
||||||
|
.demooptions button{
|
||||||
|
text-transform: none;
|
||||||
|
margin: 2px;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
bz-graflow{
|
||||||
|
overflow: scroll;
|
||||||
|
border: 2px solid black;
|
||||||
|
}
|
||||||
|
bz-graflow.compunet{ grid-column: 1 / -1; width: 100vw; height: 60vh; background:black; }
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
window.addEventListener('load',()=>{
|
||||||
|
let grflw1 = document.querySelector('bz-graflow.compunet')
|
||||||
|
grflw1.addEventListener('subflowLoaded',
|
||||||
|
(evt) => { grflw1 = evt.detail.subflow }
|
||||||
|
)
|
||||||
|
grflw1.addEventListener('subflowExited',
|
||||||
|
(evt) => { grflw1 = evt.target }
|
||||||
|
)
|
||||||
|
document.querySelector('[data-trigger="onAutoplace1H"]').addEventListener('click',
|
||||||
|
(evt) => { grflw1.autoPlace('horizontal', 80, 30, 1000, document.querySelector('[data-id="compunet"]').value) }
|
||||||
|
)
|
||||||
|
document.querySelector('[data-trigger="onAutoplace1V"]').addEventListener('click',
|
||||||
|
(evt) => { grflw1.autoPlace('vertical', 80, 30, 1000, document.querySelector('[data-id="compunet"]').value) }
|
||||||
|
)
|
||||||
|
|
||||||
|
document.querySelector('input[data-id="compunet"]').addEventListener('change',
|
||||||
|
(evt) => { grflw1.setAttribute('tension', evt.target.value); grflw1.refresh() }
|
||||||
|
)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<bz-graflow class="compunet" flow="/app/assets/json/bzGraflow/testFlow1.json" tension="60" isolated>
|
||||||
|
<div class="demooptions"> <!-- just for demo purposes -->
|
||||||
|
<button data-trigger="onAutoplace1H">Auto-place Horizontal</button>
|
||||||
|
<button data-trigger="onAutoplace1V">Auto-place Vertical</button>
|
||||||
|
<select name="align" data-id="compunet">
|
||||||
|
<option value="center">Center</option>
|
||||||
|
<option value="first">First</option>
|
||||||
|
<option value="last">Last</option>
|
||||||
|
<option value="auto">Auto</option>
|
||||||
|
</select>
|
||||||
|
<div class-"cols-2"=""><label>tension</label><input data-id="compunet" type="number" size="2" value="60"></div>
|
||||||
|
</div>
|
||||||
|
</bz-graflow>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>graflow</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||||||
|
<link type="text/css" rel="stylesheet" href="/app/thirdparty/eicui/eicui-2.0.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="../../thirdparty/buildoz/buildoz.css">
|
||||||
|
<script src="../../thirdparty/buildoz/buildoz.js"></script>
|
||||||
|
<script src="../../thirdparty/buildoz/bzGraflow.js"></script>
|
||||||
|
<style>
|
||||||
|
@font-face { /*FF does not indirectly load if inside a shawdow-dom */
|
||||||
|
font-family: 'glyphs';
|
||||||
|
src: url('/app/assets/styles/fonts/glyphs.eot');
|
||||||
|
src: url('/app/assets/styles/fonts/glyphs.eot') format('embedded-opentype'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.ttf') format('truetype'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.woff') format('woff'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.svg') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
||||||
|
body{
|
||||||
|
display: grid;
|
||||||
|
grid-gap: 5px;
|
||||||
|
background:#888;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.demooptions{
|
||||||
|
padding: 2px;
|
||||||
|
position: absolute;
|
||||||
|
top: 2px;
|
||||||
|
right: 2px;
|
||||||
|
width: 10em;
|
||||||
|
background: #FFFB;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: center;
|
||||||
|
z-index:99;
|
||||||
|
font-size: .7em;
|
||||||
|
border: 1px solid #999;
|
||||||
|
}
|
||||||
|
.demooptions button{
|
||||||
|
text-transform: none;
|
||||||
|
margin: 2px;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
bz-graflow{
|
||||||
|
overflow: scroll;
|
||||||
|
border: 2px solid black;
|
||||||
|
}
|
||||||
|
bz-graflow.organi{ width: 40vw; height: 100vh; background:black; }
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
window.addEventListener('load',()=>{
|
||||||
|
let grflw3 = document.querySelector('bz-graflow.organi')
|
||||||
|
grflw3.addEventListener('subflowLoaded',
|
||||||
|
(evt) => { grflw3 = evt.detail.subflow }
|
||||||
|
)
|
||||||
|
grflw3.addEventListener('subflowExited',
|
||||||
|
(evt) => { grflw3 = evt.target }
|
||||||
|
)
|
||||||
|
document.querySelector('[data-trigger="onAutoplace3H"]').addEventListener('click',
|
||||||
|
(evt) => { grflw3.autoPlace('horizontal', 80, 80, 1000, document.querySelector('[data-id="organi"]').value) }
|
||||||
|
)
|
||||||
|
document.querySelector('[data-trigger="onAutoplace3V"]').addEventListener('click',
|
||||||
|
(evt) => { grflw3.autoPlace('vertical', 80, 30, 1000, document.querySelector('[data-id="organi"]').value) }
|
||||||
|
)
|
||||||
|
|
||||||
|
document.querySelector('input[data-id="organi"]').addEventListener('change',
|
||||||
|
(evt) => { grflw3.setAttribute('tension', evt.target.value); grflw3.refresh() }
|
||||||
|
)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<bz-graflow class="organi" flow="/app/assets/json/bzGraflow/testFlow2.json" tension="60" isolated>
|
||||||
|
<div class="demooptions">
|
||||||
|
<button data-trigger="onAutoplace3H">Auto-place Horizontal</button>
|
||||||
|
<button data-trigger="onAutoplace3V">Auto-place Vertical</button>
|
||||||
|
<select name="align" data-id="organi">
|
||||||
|
<option value="center">Center</option>
|
||||||
|
<option value="first">First</option>
|
||||||
|
<option value="last">Last</option>
|
||||||
|
<option value="auto">Auto</option>
|
||||||
|
</select>
|
||||||
|
<div class-"cols-2"=""><label>tension</label><input data-id="organi" type="number" size="2" value="60"></div>
|
||||||
|
</div>
|
||||||
|
</bz-graflow>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>graflow</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||||||
|
<link type="text/css" rel="stylesheet" href="/app/thirdparty/eicui/eicui-2.0.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="../../thirdparty/buildoz/buildoz.css">
|
||||||
|
<script src="../../thirdparty/buildoz/buildoz.js"></script>
|
||||||
|
<script src="../../thirdparty/buildoz/bzGraflow.js"></script>
|
||||||
|
<style>
|
||||||
|
@font-face { /*FF does not indirectly load if inside a shawdow-dom */
|
||||||
|
font-family: 'glyphs';
|
||||||
|
src: url('/app/assets/styles/fonts/glyphs.eot');
|
||||||
|
src: url('/app/assets/styles/fonts/glyphs.eot') format('embedded-opentype'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.ttf') format('truetype'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.woff') format('woff'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.svg') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
||||||
|
body{
|
||||||
|
display: grid;
|
||||||
|
grid-gap: 5px;
|
||||||
|
background:#888;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.demooptions{
|
||||||
|
padding: 2px;
|
||||||
|
position: absolute;
|
||||||
|
top: 2px;
|
||||||
|
right: 2px;
|
||||||
|
width: 10em;
|
||||||
|
background: #FFFB;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: center;
|
||||||
|
z-index:99;
|
||||||
|
font-size: .7em;
|
||||||
|
border: 1px solid #999;
|
||||||
|
}
|
||||||
|
.demooptions button{
|
||||||
|
text-transform: none;
|
||||||
|
margin: 2px;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
bz-graflow{
|
||||||
|
overflow: scroll;
|
||||||
|
border: 2px solid black;
|
||||||
|
}
|
||||||
|
bz-graflow.eic{ grid-column: 1 / -1; width: 80vw; height: 60vh; background: var(--eicui-base-color-grey-10); }
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
window.addEventListener('load',()=>{
|
||||||
|
let grflw2 = document.querySelector('bz-graflow.eic')
|
||||||
|
grflw2.addEventListener('subflowLoaded',
|
||||||
|
(evt) => { grflw2 = evt.detail.subflow }
|
||||||
|
)
|
||||||
|
grflw2.addEventListener('subflowExited',
|
||||||
|
(evt) => { grflw2 = evt.target }
|
||||||
|
)
|
||||||
|
document.querySelector('[data-trigger="onAutoplace2H"]').addEventListener('click',
|
||||||
|
(evt) => { grflw2.autoPlace('horizontal', 100, 30, 1000, document.querySelector('[data-id="eic"]').value) }
|
||||||
|
)
|
||||||
|
document.querySelector('[data-trigger="onAutoplace2V"]').addEventListener('click',
|
||||||
|
(evt) => { grflw2.autoPlace('vertical', 80, 80, 1000, document.querySelector('[data-id="eic"]').value) }
|
||||||
|
)
|
||||||
|
document.querySelector('input[data-id="eic"]').addEventListener('change',
|
||||||
|
(evt) => { grflw2.setAttribute('tension', evt.target.value); grflw2.refresh() }
|
||||||
|
)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<bz-graflow class="eic" flow="/app/assets/json/bzGraflow/testFlowEic.json" tension="60">
|
||||||
|
<div class="demooptions"> <!-- just for demo purposes -->
|
||||||
|
<button data-trigger="onAutoplace2H">Auto-place Horizontal</button>
|
||||||
|
<button data-trigger="onAutoplace2V">Auto-place Vertical</button>
|
||||||
|
<select name="align" data-id="eic">
|
||||||
|
<option value="center">Center</option>
|
||||||
|
<option value="first">First</option>
|
||||||
|
<option value="last">Last</option>
|
||||||
|
<option value="auto">Auto</option>
|
||||||
|
</select>
|
||||||
|
<div class-"cols-2"=""><label>tension</label><input data-id="eic" type="number" size="2" value="60"></div>
|
||||||
|
</div>
|
||||||
|
</bz-graflow>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>graflow</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||||||
|
<link type="text/css" rel="stylesheet" href="/app/thirdparty/eicui/eicui-2.0.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="../../thirdparty/buildoz/buildoz.css">
|
||||||
|
<script src="../../thirdparty/buildoz/buildoz.js"></script>
|
||||||
|
<script src="../../thirdparty/buildoz/bzGraflow.js"></script>
|
||||||
|
<style>
|
||||||
|
@font-face { /*FF does not indirectly load if inside a shawdow-dom */
|
||||||
|
font-family: 'glyphs';
|
||||||
|
src: url('/app/assets/styles/fonts/glyphs.eot');
|
||||||
|
src: url('/app/assets/styles/fonts/glyphs.eot') format('embedded-opentype'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.ttf') format('truetype'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.woff') format('woff'),
|
||||||
|
url('/app/assets/styles/fonts/glyphs.svg') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
||||||
|
body{
|
||||||
|
display: grid;
|
||||||
|
grid-gap: 5px;
|
||||||
|
background:#888;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.demooptions{
|
||||||
|
padding: 2px;
|
||||||
|
position: absolute;
|
||||||
|
top: 2px;
|
||||||
|
right: 2px;
|
||||||
|
width: 10em;
|
||||||
|
background: #FFFB;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: center;
|
||||||
|
z-index:99;
|
||||||
|
font-size: .7em;
|
||||||
|
border: 1px solid #999;
|
||||||
|
}
|
||||||
|
.demooptions button{
|
||||||
|
text-transform: none;
|
||||||
|
margin: 2px;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
bz-graflow{
|
||||||
|
overflow: scroll;
|
||||||
|
border: 2px solid black;
|
||||||
|
}
|
||||||
|
bz-graflow.icmp{ grid-column: 1 / -1; width: 100vw; height: 80vh; background: var(--eicui-base-color-grey-10); }
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
window.addEventListener('load',()=>{
|
||||||
|
let grflw4 = document.querySelector('bz-graflow.icmp')
|
||||||
|
grflw4.addEventListener('subflowLoaded',
|
||||||
|
(evt) => { grflw4 = evt.detail.subflow }
|
||||||
|
)
|
||||||
|
grflw4.addEventListener('subflowExited',
|
||||||
|
(evt) => { grflw4 = evt.target }
|
||||||
|
)
|
||||||
|
document.querySelector('[data-trigger="onAutoplace4H"]').addEventListener('click',
|
||||||
|
(evt) => { grflw4.autoPlace('horizontal', 100, 30, 1000, document.querySelector('[data-id="icmp"]').value) }
|
||||||
|
)
|
||||||
|
document.querySelector('[data-trigger="onAutoplace4V"]').addEventListener('click',
|
||||||
|
(evt) => { grflw4.autoPlace('vertical', 80, 80, 1000, document.querySelector('[data-id="icmp"]').value) }
|
||||||
|
)
|
||||||
|
|
||||||
|
document.querySelector('input[data-id="icmp"]').addEventListener('change',
|
||||||
|
(evt) => { grflw4.setAttribute('tension', evt.target.value); grflw4.refresh() }
|
||||||
|
)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<bz-graflow class="icmp" flow="/app/assets/json/bzGraflow/testFlowICMP.json" tension="60">
|
||||||
|
<div class="demooptions"> <!-- just for demo purposes -->
|
||||||
|
<button data-trigger="onAutoplace4H">Auto-place Horizontal</button>
|
||||||
|
<button data-trigger="onAutoplace4V">Auto-place Vertical</button>
|
||||||
|
<select name="align" data-id="icmp">
|
||||||
|
<option value="center">Center</option>
|
||||||
|
<option value="first">First</option>
|
||||||
|
<option value="last">Last</option>
|
||||||
|
<option value="auto">Auto</option>
|
||||||
|
</select>
|
||||||
|
<div class-"cols-2"=""><label>tension</label><input data-id="icmp" type="number" size="2" value="60"></div>
|
||||||
|
</div>
|
||||||
|
</bz-graflow>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+18
-6
@@ -143,18 +143,27 @@ class BZgraflow extends Buildoz{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now load styles (once)
|
// Now load styles
|
||||||
const isIsolated = this.hasAttribute('isolated')
|
const isIsolated = this.hasAttribute('isolated')
|
||||||
if(isIsolated || !BZgraflow._loadedNodeStyles.has(url)) {
|
const styles = doc.querySelectorAll('style')
|
||||||
const styles = doc.querySelectorAll('style')
|
if(isIsolated) {
|
||||||
|
// Shadow DOM: styles are per-instance
|
||||||
styles.forEach(styleEl => {
|
styles.forEach(styleEl => {
|
||||||
const style = document.createElement('style')
|
const style = document.createElement('style')
|
||||||
style.textContent = styleEl.textContent
|
style.textContent = styleEl.textContent
|
||||||
this.mainContainer.appendChild(style)
|
this.mainContainer.appendChild(style)
|
||||||
})
|
})
|
||||||
// In non-isolated (light DOM) mode, styles apply globally so we can de-dupe across instances.
|
} else {
|
||||||
// In isolated (shadow DOM) mode, styles must be injected per instance.
|
// Light DOM: inject into document.head once per nodesFile url
|
||||||
if(!isIsolated) BZgraflow._loadedNodeStyles.add(url)
|
if(!BZgraflow._loadedNodeStyles.has(url)) {
|
||||||
|
styles.forEach(styleEl => {
|
||||||
|
const style = document.createElement('style')
|
||||||
|
style.textContent = styleEl.textContent
|
||||||
|
style.dataset.bzgfNodesStyle = url
|
||||||
|
document.head.appendChild(style)
|
||||||
|
})
|
||||||
|
BZgraflow._loadedNodeStyles.add(url)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.dispatchEvent(new CustomEvent('nodesLoaded', {
|
this.dispatchEvent(new CustomEvent('nodesLoaded', {
|
||||||
detail: { url },
|
detail: { url },
|
||||||
@@ -302,6 +311,9 @@ class BZgraflow extends Buildoz{
|
|||||||
if(pos === 'static') oldEl.style.position = 'relative'
|
if(pos === 'static') oldEl.style.position = 'relative'
|
||||||
newEl.style.position = 'absolute'
|
newEl.style.position = 'absolute'
|
||||||
newEl.style.inset = '0'
|
newEl.style.inset = '0'
|
||||||
|
// Override bz-graflow's default width/height (100vw/50vh) when used as an embedded overlay
|
||||||
|
newEl.style.width = '100%'
|
||||||
|
newEl.style.height = '100%'
|
||||||
newEl.style.display = 'block'
|
newEl.style.display = 'block'
|
||||||
oldEl.appendChild(newEl)
|
oldEl.appendChild(newEl)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user