rusefi_documentation/ibom-backup/micro_rusEFI_0.5.0.html

3582 lines
289 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive BOM for KiCAD</title>
<style type="text/css">
:root {
--pcb-edge-color: black;
--pad-color: #878787;
--pad-color-highlight: #D04040;
--pin1-outline-color: #ffb629;
--pin1-outline-color-highlight: #b4ff03;
--silkscreen-edge-color: #aa4;
--silkscreen-polygon-color: #4aa;
--silkscreen-text-color: #4aa;
--fabrication-edge-color: #907651;
--fabrication-polygon-color: #907651;
--fabrication-text-color: #a27c24;
--track-color: #def5f1;
--track-color-highlight: #D04040;
--zone-color: #def5f1;
--zone-color-highlight: #d0404080;
}
html, body {
margin: 0px;
height: 100%;
font-family: Verdana, sans-serif;
}
.dark.topmostdiv {
--pcb-edge-color: #eee;
--pad-color: #808080;
--pin1-outline-color: #ffa800;
--pin1-outline-color-highlight: #ccff00;
--track-color: #42524f;
--zone-color: #42524f;
background-color: #252c30;
color: #eee;
}
button {
background-color: #eee;
border: 1px solid #888;
color: black;
height: 44px;
width: 44px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
font-weight: bolder;
}
.dark button {
/* This will be inverted */
background-color: #c3b7b5;
}
button.depressed {
background-color: #0a0;
color: white;
}
.dark button.depressed {
/* This will be inverted */
background-color: #b3b;
}
button:focus {
outline: 0;
}
button#tb-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}
button#lr-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}
button#bom-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-grouped-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-ungrouped-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-netlist-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}
button#copy {
background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
background-position: 6px 6px;
background-repeat: no-repeat;
background-size: 26px 26px;
border-radius: 6px;
height: 40px;
width: 40px;
margin: 10px 5px;
}
button#copy:active {
box-shadow: inset 0px 0px 5px #6c6c6c;
}
textarea.clipboard-temp {
position: fixed;
top: 0;
left: 0;
width: 2em;
height: 2em;
padding: 0;
border: None;
outline: None;
box-shadow: None;
background: transparent;
}
.left-most-button {
border-right: 0;
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.middle-button {
border-right: 0;
}
.right-most-button {
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
.button-container {
font-size: 0;
margin: 10px 10px 10px 0px;
}
.dark .button-container {
filter: invert(1);
}
.button-container button {
background-size: 32px 32px;
background-position: 5px 5px;
background-repeat: no-repeat;
}
@media print {
.hideonprint {
display: none;
}
}
canvas {
cursor: crosshair;
}
canvas:active {
cursor: grabbing;
}
.fileinfo {
width: 100%;
max-width: 1000px;
border: none;
padding: 5px;
}
.fileinfo .title {
font-size: 20pt;
font-weight: bold;
}
.fileinfo td {
overflow: hidden;
white-space: nowrap;
max-width: 1px;
width: 50%;
text-overflow: ellipsis;
}
.bom {
border-collapse: collapse;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 10pt;
table-layout: fixed;
width: 100%;
margin-top: 1px;
}
.bom th, .bom td {
border: 1px solid black;
padding: 5px;
word-wrap: break-word;
text-align: center;
position: relative;
}
.dark .bom th, .dark .bom td {
border: 1px solid #777;
}
.bom th {
background-color: #CCCCCC;
background-clip: padding-box;
}
.dark .bom th {
background-color: #3b4749;
}
.bom tr.highlighted:nth-child(n) {
background-color: #cfc;
}
.dark .bom tr.highlighted:nth-child(n) {
background-color: #226022;
}
.bom tr:nth-child(even) {
background-color: #f2f2f2;
}
.dark .bom tr:nth-child(even) {
background-color: #313b40;
}
.bom tr.checked {
color: #aaa;
}
.dark .bom tr.checked {
color: #666;
}
.bom tr {
transition: background-color 0.2s;
}
.bom .numCol {
width: 25px;
}
.bom .Description {
width: 10%;
}
.bom .Part {
width: 10%;
}
.bom .Value {
width: 15%;
}
.bom .Quantity {
width: 65px;
}
.bom th .sortmark {
position: absolute;
right: 1px;
top: 1px;
margin-top: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent transparent #221 transparent;
transform-origin: 50% 85%;
transition: opacity 0.2s, transform 0.4s;
}
.dark .bom th .sortmark {
filter: invert(1);
}
.bom th .sortmark.none {
opacity: 0;
}
.bom th .sortmark.desc {
transform: rotate(180deg);
}
.bom th:hover .sortmark.none {
opacity: 0.5;
}
.bom .bom-checkbox {
width: 30px;
position: relative;
user-select: none;
-moz-user-select: none;
}
.bom .bom-checkbox:before {
content: "";
position: absolute;
border-width: 15px;
border-style: solid;
border-color: #51829f transparent transparent transparent;
visibility: hidden;
top: -15px;
}
.bom .bom-checkbox:after {
content: "Double click to set/unset all";
position: absolute;
color: white;
top: -35px;
left: -26px;
background: #51829f;
padding: 5px 15px;
border-radius: 8px;
white-space: nowrap;
visibility: hidden;
}
.bom .bom-checkbox:hover:before, .bom .bom-checkbox:hover:after {
visibility: visible;
transition: visibility 0.2s linear 1s;
}
.split {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
overflow-y: auto;
overflow-x: hidden;
background-color: inherit;
}
.split.split-horizontal, .gutter.gutter-horizontal {
height: 100%;
float: left;
}
.gutter {
background-color: #ddd;
background-repeat: no-repeat;
background-position: 50%;
transition: background-color 0.3s;
}
.dark .gutter {
background-color: #777;
}
.gutter.gutter-horizontal {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
cursor: ew-resize;
width: 5px;
}
.gutter.gutter-vertical {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=');
cursor: ns-resize;
height: 5px;
}
.searchbox {
float: left;
height: 40px;
margin: 10px 5px;
padding: 12px 32px;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 18px;
box-sizing: border-box;
border: 1px solid #888;
border-radius: 6px;
outline: none;
background-color: #eee;
transition: background-color 0.2s, border 0.2s;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABNklEQVQ4T8XSMUvDQBQH8P/LElFa/AIZHcTBQSz0I/gFstTBRR2KUC4ldDxw7h0Bl3RRUATxi4iiODgoiLNrbQYp5J6cpJJqomkX33Z37/14d/dIa33MzDuYI4johOI4XhyNRteO46zNYjDzAxE1yBZprVeZ+QbAUhXEGJMA2Ox2u4+fQIa0mPmsCgCgJYQ4t7lfgF0opQYAdv9ABkKI/UnOFCClXKjX61cA1osQY8x9kiRNKeV7IWA3oyhaSdP0FkAtjxhj3hzH2RBCPOf3pzqYHCilfAAX+URm9oMguPzeWSGQvUcMYC8rOBJCHBRdqxTo9/vbRHRqi8bj8XKv1xvODbiuW2u32/bvf0SlDv4XYOY7z/Mavu+nM1+BmQ+NMc0wDF/LprP0DbTWW0T00ul0nn4b7Q87+X4Qmfiq2wAAAABJRU5ErkJggg==');
background-position: 10px 10px;
background-repeat: no-repeat;
}
.dark .searchbox {
background-color: #111;
color: #eee;
}
.searchbox::placeholder {
color: #ccc;
}
.dark .searchbox::placeholder {
color: #666;
}
.filter {
width: calc(60% - 64px);
}
.reflookup {
width: calc(40% - 10px);
}
input[type=text]:focus {
background-color: white;
border: 1px solid #333;
}
.dark input[type=text]:focus {
background-color: #333;
border: 1px solid #ccc;
}
mark.highlight {
background-color: #5050ff;
color: #fff;
padding: 2px;
border-radius: 6px;
}
.dark mark.highlight {
background-color: #76a6da;
color: #111;
}
.menubtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
background-position: center;
background-repeat: no-repeat;
}
.statsbtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
}
.iobtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
}
.dark .statsbtn, .dark .savebtn, .dark .menubtn, .dark .iobtn {
filter: invert(1);
}
.flexbox {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.savebtn {
background-color: #d6d6d6;
width: auto;
height: 30px;
flex-grow: 1;
margin: 5px;
border-radius: 4px;
}
.savebtn:active {
background-color: #0a0;
color: white;
}
.dark .savebtn:active {
/* This will be inverted */
background-color: #b3b;
}
.stats {
border-collapse: collapse;
font-size: 12pt;
table-layout: fixed;
width: 100%;
min-width: 450px;
}
.dark .stats td {
border: 1px solid #bbb;
}
.stats td {
border: 1px solid black;
padding: 5px;
word-wrap: break-word;
text-align: center;
position: relative;
}
#checkbox-stats div {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
#checkbox-stats .bar {
background-color: rgba(28, 251, 0, 0.6);
}
.menu {
position: relative;
display: inline-block;
margin: 10px 10px 10px 0px;
}
.menu-content {
display: none;
position: absolute;
background-color: white;
right: 0;
min-width: 300px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 100;
padding: 8px;
}
.dark .menu-content {
background-color: #111;
}
.menu:hover .menu-content {
display: block;
}
.menu:hover .menubtn, .menu:hover .iobtn, .menu:hover .statsbtn {
background-color: #eee;
}
.menu-label {
display: inline-block;
padding: 8px;
border: 1px solid #ccc;
border-top: 0;
width: calc(100% - 18px);
}
.menu-label-top {
border-top: 1px solid #ccc;
}
.menu-textbox {
float: left;
height: 24px;
margin: 10px 5px;
padding: 5px 5px;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 14px;
box-sizing: border-box;
border: 1px solid #888;
border-radius: 4px;
outline: none;
background-color: #eee;
transition: background-color 0.2s, border 0.2s;
width: calc(100% - 10px);
}
.menu-textbox.invalid, .dark .menu-textbox.invalid {
color: red;
}
.dark .menu-textbox {
background-color: #222;
color: #eee;
}
.radio-container {
margin: 4px;
}
.topmostdiv {
width: 100%;
height: 100%;
background-color: white;
transition: background-color 0.3s;
}
#top {
height: 78px;
border-bottom: 2px solid black;
}
.dark #top {
border-bottom: 2px solid #ccc;
}
#dbg {
display: block;
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #aaa;
}
::-webkit-scrollbar-thumb {
background: #666;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
.slider {
-webkit-appearance: none;
width: 100%;
margin: 3px 0;
padding: 0;
outline: none;
opacity: 0.7;
-webkit-transition: .2s;
transition: opacity .2s;
border-radius: 3px;
}
.slider:hover {
opacity: 1;
}
.slider:focus {
outline: none;
}
.slider::-webkit-slider-runnable-track {
-webkit-appearance: none;
width: 100%;
height: 8px;
background: #d3d3d3;
border-radius: 3px;
border: none;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
margin-top: -4px;
}
.dark .slider::-webkit-slider-thumb {
background: #3d3;
}
.slider::-moz-range-thumb {
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
}
.slider::-moz-range-track {
height: 8px;
background: #d3d3d3;
border-radius: 3px;
}
.dark .slider::-moz-range-thumb {
background: #3d3;
}
.slider::-ms-track {
width: 100%;
height: 8px;
border-width: 3px 0;
background: transparent;
border-color: transparent;
color: transparent;
transition: opacity .2s;
}
.slider::-ms-fill-lower {
background: #d3d3d3;
border: none;
border-radius: 3px;
}
.slider::-ms-fill-upper {
background: #d3d3d3;
border: none;
border-radius: 3px;
}
.slider::-ms-thumb {
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
margin: 0;
}
.shameless-plug {
font-size: 0.8em;
text-align: center;
display: block;
}
a {
color: #0278a4;
}
.dark a {
color: #00b9fd;
}
#frontcanvas, #backcanvas {
touch-action: none;
}
</style>
<script type="text/javascript" >
///////////////////////////////////////////////
/*
Split.js - v1.3.5
MIT License
https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});
///////////////////////////////////////////////
///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////
///////////////////////////////////////////////
/*!
* PEP v0.4.3 | https://github.com/jquery/PEP
* Copyright jQuery Foundation and other contributors | http://jquery.org/license
*/
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});
///////////////////////////////////////////////
///////////////////////////////////////////////
var config = {"show_fabrication": false, "redraw_on_drag": true, "highlight_pin1": false, "extra_fields": [], "dark_mode": false, "bom_view": "left-right", "board_rotation": 0.0, "checkboxes": "Sourced,Placed", "show_silkscreen": true, "show_pads": true, "layer_view": "FB"}
///////////////////////////////////////////////
///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("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UJTQ0dDmlEmQqpC20KrAHNDxUNhQmlDg0IRQj8UDbitQj5EbUMHQrZDh0MMAHVCa0IOQidDFUL5Q1NCm0PTQltCl4PlCKFD4kLFQhpDA0PhQ8BCX1UtQ8mII0MiNIFJ60NZQodDY0JHQx1CE0NrQi6DXUNPQ6dCrEP1Q71Dr0KNQ3OwO0IfQqVC10KS+AI5GUMWCAdClUO/QytC40OrQp1Cj0MAw5NC8EIww89C9UK9QzND50Oe+aDC4UNgwp9CLnRfQ2mRKggVQ8tDdELucKtCxuUTQ7DDP0KnQv9CqBAvQqZDiMNXgu9CqEM7Qs1Du0NDHKjDjah+TWjCd0LtQ75Df0N2Q/9CsMINg1jDcMPGQscBZ0OFQ7jC3vFIwldCUkIowtgli0OxSN9C0UPkwzFCf0P3Qs9Cx0IBQljDJ0IUwgVClMKFQg1CIMN9Qszd/UPuQmDCC0MEw/MMN0JLQpDDt0JQw3dCjMMsw3FDZMP4Q4FDpMI4wgjCM0NbQuzD20N4wgNCyMJcwuDCGFFvcFrFqMP7QrzCv0J8wtDCpMM5QzDDx0PMwk9C2MOCwmdCbMPAw9ElIMIAQqLCnMJiwrtC4sLm+dzDqMPxzFLCEEOVQ9LDjMJAw/ZDssLkwizCD0LTQ0LDL0JvQq5CSsNkQsrC80OcwyrCtMLhQWVDX0KeefTCLMMMwprC/MMPQtrDAsMJQ9jCCsLAwojCIsIXQ9TCg0M0wuhCOoWEw3bJS0Pqw3xDJMOaw5bCPYIAw9rDcsLmwrrDrMNWw8LDisPswxyD6kL4w4bCBMKqw8bCksKeeQ7CZsL0Q9DCmMPOwxbCG0NOwxtZlMNsw+7DIsL9Qp7DosI0wwtDdsImyTdCxMO8wiTC90KuwmTCFsNMQpbD8sNAwwjC7sL/g8HCHMMhw8rDocNcw5sMo7QuBVFCfxTow+1DGMMKQtHCjkMBwzHDgcMKwtbCwcI2wwbCJUJew/KCYcNpDUnD8Qi3QnDDvsIYw37CacLMwi7CgsMyw/DCbsOxwq9CWcJIwtnDl0K2wrnD2Qx5wmjDkMNSwpHDfMM6w1HCRcIBw4DCgcObQrjD1sNlwiHDc0PZwirDXsNGwknCRbghNa1D+cMawn7CMsPjQ0zCx4PRw+nDxcJCwyXCwsOlw3HDWcONwpdDqUIVw4nDOfhQLFFDI0Jp+SnDjsJRwp3CTELpw3XCGcP1wudDDcJ4w33D70LNwznDA8ICOXUI+cIMwu3DBcIdwvDCo8OGQoDC8sLdwlbCpcN6wmaV+sMXQlPCicKqwjPCQOUrKL7Cc8PyQlrDmMNFwjHCS8Kxwz3Dy8PBZbvCoMLlw/3DH0J2w3PkSAio8OrDbcNQw+3CTsIZw1vCdcOLwx3DS8K7w/rCakLxwx7CTcPlwwfCGHASw8Y1ycKjQ8TCY0NmwzXCC8J5Q+TDD8IXwnrCl8JmQlfCa4MJwgPC4sID+K3CDsPHwtLDJ8Mjw/5DncJjwufD88LPwg3CZcKTw/HC18IHw8jCh8Ko9B/DksKfw9XCD8JMwt/Do8K1Q2PCO8MZw27CvcOkQq/DHMKGw1PDyYMVwnzN/OlEw1XCGsInw3PCp8PgImfCXcLgI+fDO8PPwrNCfcP/wv3DTULTwu/Dg123w0PCO/nDw5HDT8LOwgLCSCM/wxTCDABBworDvcKNw6gjq8Nvwi3Dsc2wIzzDwCP3wl/C2CNaw7XDOCNfw8gif8P4Iv/DV8JoI/jC6CJEIhgj68IRwtXDJCIII+QiZCPfw2AiuCKswngimcJxw5AiqCJUIoQiN8JlbFAscCMbw/Ajm8KBw4giP8P0I+PCVMMTwtTD+8NoIjAjicPvdfzoQ8PfQzIAJCIrQqQioCPYI2nCjCLcIzjCE8N/wrwjk8Oew9Aid4L8I52JM8O0IvAjn8L0I6QiXCKiI6Qj3CNBwpQj4iMEIxIia8JEI1IitCNwIo7DWCPCIgwiYCKLw6IjusMUIiwiBCKsIkojhCOAIgv4H8LHw7PDHCIdQ6fD/sLkIvIiYiI8IuIiKEO8ItQjfCLiwjcBg8L0winC98NCIrIiaiJyI+oihiMaI2IjCiLGIhIiocPaIrmIR8LaFSoiBcKcI/oiOCNcI1YiPcIoI1TDNiOKI7YibCNbsGUFsCLAInojMiKOIogiBiNOImoj8iL4I5ojlCOvwtAjSiI6I0307CO6I6bCm8L6I14iTiNyIj4jhiIKI74iiiNaIm4igCP1saltAwUmwuYjEcN0Il4iyCNqIwvCcMOkI2KD4oKSlc4imiLsQh7DfiNNw/4ikSPKtfYiHCOeIsEisSOWI3EioSLWIkYiNiJuQrYib8NuIjexkSJVwmkiICLCIlvC3iMhIlrDPiOZw1kjoUPGIjnDJiItw+mVsCOBIy7DDiLpIr/CIiNkI94jhSOhIr4iSSJQIgnC/iJ2IzHkP+VvFbLReSNS0cglV1H0IhkiT8KZIokjEEM7kH6xCYIlIpIilELiw2J1aZQnSFkRDSJCIm0jZIGpw/zDIiJWIy0jTCMQIz0j2YPZInUjOSLB8IwI5tn38dIi+4OljI0FJkirAevwzSMFIv0i1SOZIirRYyIyRDMjPIk2wsMi5dj3WKjxApSNIrDIEyPjI+IFvSPmwlUihSL1w9Uj+QAIVfC4syNISHMjESMmZV+FAESJOJbMEe3lI0Eiq0LRg5UjDCJTI6si0yI1I9NtK8KbI2LCLcLDcI/5Q6jn1Is0WCI1wpYjkyMZI1MirSJZI2EiriPhIjkjmyJ6lKciu0gzbG/EQiPowzEilSOxI4/COsP9IhYBeCNFItci2SOuIzcjxyIBIzCRLSlDlB8sqnTnIyAi6YKPwl1ClyMHIlciYSM1IywiySPXwrcjgZXJAeG5Dy1fI+YjDyMVI3siTyK/Ii0jlyIDIsvCL8N7w0rCQyPJI3Uj53BlBI5trpxkbLpDIKKpw9DCYKPNIs8iEKIvIswikCP/IlojAKMAI+8iXpSwotsie8JUZWcj8KIjw7IjFyPgon8jEKMXwygiqKNQI9CjcyIvcOGoGKPZqbRl2gTwo9EiFiKPIv7CISIHIuPCayPMIyiifiL4ooCjaKL/ceij7ZgJdevw3yP5I7WD6YMrI2Sj4CJFIhSiRyNJI5SiaKJGwgEjIwEByDSj2ugPIgii88Oko30jvyLkoociryMUouEjqKJ8I5Ii4sKso7CjjanaAOJ5tKMWIgUiZKOcowyj5KIookyitSIAIryjHSItwhJk4nzRALoY7KNYorhCiKPYokijOKLIoxAiUKOXcUcj7SIpIv9x2An7yJKjRCyCoqSjhcP7IsKisSKMoyKjYkNMo7Uj+KOAos0lZAhUxRijd9SeIvkjgqOcIjKjLsLOIriiLiM8I9cjPKImI7yj4qKtJOJ9LpUl7TqiMSOgov5C+yLqI6qjjyNqo3Kjl8IAosyjYqNpQnyjiqOCNdVxFAnKoxUjHKP0opajuCOyopCieKKUoxqiVKIsol6VWqI0ovaiUqOqIkKinKI4olyjfyOHI+qjoqNUIyUixqMsoqdk3Clg3YsQDqJ7I+ajYKOPQsXCaqIio1ajL8PWoq6jz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E7AdxlLVY9WhbcP4k5XFPcO+E8sTkn17EDST3xqMk5Oj4/xHE/j1q+2XE+BBa2O8tcYUTxPRk6ajhR3fE9GD32Sqk8pd1ZO6k5Gav2P2g4xU5pPtMKiTwYPeaU3Dv0tlk54TsRO1FeSTw8OowxQjzV3DuMyTsZPB45yT5+OW+WITjV3nIiKTyeO5E6UjuLsQo9GD9vTuk63jknDAE6UT5hPqk9hjH1S4E8b8puON4/rFwBWTE6yjpoOEE4BThaO6w76TwqOdC2OazBOqnsza8SPIY6vDp+Ph46EDV5PyfWwhshOFk8oTrcMVI78Tl5rgycXjzeOkZcpT2lPqU5i9HeOwHd1UyFOcok4TtlP2E6HbbhOAw8STjJFO46Oa48P1GoUU8hP+44eT7JOqo6FThYBiU4iDW5PVw/FTnBOKU9hjdpPGE9LbYFPBg7VJ9VOgHVATxpOmI4iThaFQU8pd9pOOU7VTxBOl44sFxaOkk/6Tn/0qWqxTwgIMWqVT/YPeE6NBCRPlo4eCOVO4HNr+xVPyU5/j7MM+U8AdDFS6U9hTiKW5viZTlZPWE/4d1lOTk65TnZOeU6DTqlPkU6Al3pObU/RT33NZWodTjpQxWtOU51PKvbdTqGOdo+8jrKkOgD5j9xPlnQ+TvNPhY6ozX5OQFboTsFPh8M1TsaFPVYGj/GPqYRbTw1OsYQRThtPRlvrjthVa0/5TnWPBU8vj8WRiIzDD6RGcU5NjraPC04JTqZPf3S9T0qMx2s/jv1P5E7Q9OC6aE4cjYBPHfeJU9VObfmNT96OEGz1T/jV109bTpBOIXY/xaFOVq3XTkNPqrczN85PJE5ST/TXmY5KiydP7Y/OT91OZU5lIMtOCk8UmwWOV0++Ti9Pyk83T5RPt09UTlpdiVNJjy1OGU5I9CDOIk8bjUJOD0/FQddO9k/d+IDObI6HTjuOR05UhXnthI4za2RPAo4qjx5PpU6wzwgQZk7odzDN8M+/j1dOhnBVVqpPbCwCTtWOU5M2ThkJtk8Yz8JOVqxVVjpP1A5iT3wO4k7OT1RWH08PD59Nx08Umvdq30+nT/FPk48JTq2P8k7eThTq/0/jjh2P5oSxhOjPEWzAzsB3YFc2ToBXjk8GDz1WUM4uW16OYU9vTiR2u0/0zl+W1k7yj61Ph08uTqOORA+fT89rKM4oTuHxxk6zN5xPi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"))
///////////////////////////////////////////////
///////////////////////////////////////////////
/* Utility functions */
var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
pcbdata.metadata.revision + '__#';
var storage;
function initStorage(key) {
try {
window.localStorage.getItem("blank");
storage = window.localStorage;
} catch (e) {
// localStorage not available
}
if (!storage) {
try {
window.sessionStorage.getItem("blank");
storage = window.sessionStorage;
} catch (e) {
// sessionStorage also not available
}
}
}
function readStorage(key) {
if (storage) {
return storage.getItem(storagePrefix + key);
} else {
return null;
}
}
function writeStorage(key, value) {
if (storage) {
storage.setItem(storagePrefix + key, value);
}
}
function fancyDblClickHandler(el, onsingle, ondouble) {
return function() {
if (el.getAttribute("data-dblclick") == null) {
el.setAttribute("data-dblclick", 1);
setTimeout(function() {
if (el.getAttribute("data-dblclick") == 1) {
onsingle();
}
el.removeAttribute("data-dblclick");
}, 200);
} else {
el.removeAttribute("data-dblclick");
ondouble();
}
}
}
function smoothScrollToRow(rowid) {
document.getElementById(rowid).scrollIntoView({
behavior: "smooth",
block: "center",
inline: "nearest"
});
}
function focusInputField(input) {
input.scrollIntoView(false);
input.focus();
input.select();
}
function copyToClipboard() {
var text = '';
for (var node of bomhead.childNodes[0].childNodes) {
if (node.firstChild) {
text = text + node.firstChild.nodeValue;
}
if (node != bomhead.childNodes[0].lastChild) {
text += '\t';
}
}
text += '\n';
for (var row of bombody.childNodes) {
for (var cell of row.childNodes) {
for (var node of cell.childNodes) {
if (node.nodeName == "INPUT") {
if (node.checked) {
text = text + '✓';
}
} else if (node.nodeName == "MARK") {
text = text + node.firstChild.nodeValue;
} else {
text = text + node.nodeValue;
}
}
if (cell != row.lastChild) {
text += '\t';
}
}
text += '\n';
}
var textArea = document.createElement("textarea");
textArea.classList.add('clipboard-temp');
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
if (document.execCommand('copy')) {
console.log('Bom copied to clipboard.');
}
} catch (err) {
console.log('Can not copy to clipboard.');
}
document.body.removeChild(textArea);
}
function removeGutterNode(node) {
for (var i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].classList &&
node.childNodes[i].classList.contains("gutter")) {
node.removeChild(node.childNodes[i]);
break;
}
}
}
function cleanGutters() {
removeGutterNode(document.getElementById("bot"));
removeGutterNode(document.getElementById("canvasdiv"));
}
var units = {
prefixes: {
giga: ["G", "g", "giga", "Giga", "GIGA"],
mega: ["M", "mega", "Mega", "MEGA"],
kilo: ["K", "k", "kilo", "Kilo", "KILO"],
milli: ["m", "milli", "Milli", "MILLI"],
micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
nano: ["N", "n", "nano", "Nano", "NANO"],
pico: ["P", "p", "pico", "Pico", "PICO"],
},
unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
unitsLong: [
"OHM", "Ohm", "ohm", "ohms",
"FARAD", "Farad", "farad",
"HENRY", "Henry", "henry"
],
getMultiplier: function(s) {
if (this.prefixes.giga.includes(s)) return 1e9;
if (this.prefixes.mega.includes(s)) return 1e6;
if (this.prefixes.kilo.includes(s)) return 1e3;
if (this.prefixes.milli.includes(s)) return 1e-3;
if (this.prefixes.micro.includes(s)) return 1e-6;
if (this.prefixes.nano.includes(s)) return 1e-9;
if (this.prefixes.pico.includes(s)) return 1e-12;
return 1;
},
valueRegex: null,
}
function initUtils() {
var allPrefixes = units.prefixes.giga
.concat(units.prefixes.mega)
.concat(units.prefixes.kilo)
.concat(units.prefixes.milli)
.concat(units.prefixes.micro)
.concat(units.prefixes.nano)
.concat(units.prefixes.pico);
var allUnits = units.unitsShort.concat(units.unitsLong);
units.valueRegex = new RegExp("^([0-9\.]+)" +
"\\s*(" + allPrefixes.join("|") + ")?" +
"(" + allUnits.join("|") + ")?" +
"(\\b.*)?$", "");
units.valueAltRegex = new RegExp("^([0-9]*)" +
"(" + units.unitsShort.join("|") + ")?" +
"([GgMmKkUuNnPp])?" +
"([0-9]*)" +
"(\\b.*)?$", "");
for (var bom_type of ["both", "F", "B"]) {
for (var row of pcbdata.bom[bom_type]) {
row.push(parseValue(row[1], row[3][0][0]));
}
}
}
function parseValue(val, ref) {
var inferUnit = (unit, ref) => {
if (unit) {
unit = unit.toLowerCase();
if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
unit = 'r';
}
unit = unit[0];
} else {
ref = /^([a-z]+)\d+$/i.exec(ref);
if (ref) {
ref = ref[1].toLowerCase();
if (ref == "c") unit = 'f';
else if (ref == "l") unit = 'h';
else if (ref == "r" || ref == "rv") unit = 'r';
else unit = null;
}
}
return unit;
};
val = val.replace(/,/g, "");
var match = units.valueRegex.exec(val);
var unit;
if (match) {
val = parseFloat(match[1]);
if (match[2]) {
val = val * units.getMultiplier(match[2]);
}
unit = inferUnit(match[3], ref);
if (!unit) return null;
else return {
val: val,
unit: unit,
extra: match[4],
}
}
match = units.valueAltRegex.exec(val);
if (match && (match[1] || match[4])) {
val = parseFloat(match[1] + "." + match[4]);
if (match[3]) {
val = val * units.getMultiplier(match[3]);
}
unit = inferUnit(match[2], ref);
if (!unit) return null;
else return {
val: val,
unit: unit,
extra: match[5],
}
}
return null;
}
function valueCompare(a, b, stra, strb) {
if (a === null && b === null) {
// Failed to parse both values, compare them as strings.
if (stra != strb) return stra > strb ? 1 : -1;
else return 0;
} else if (a === null) {
return 1;
} else if (b === null) {
return -1;
} else {
if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
else if (a.val != b.val) return a.val > b.val ? 1 : -1;
else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
else return 0;
}
}
function validateSaveImgDimension(element) {
var valid = false;
var intValue = 0;
if (/^[1-9]\d*$/.test(element.value)) {
intValue = parseInt(element.value);
if (intValue <= 16000) {
valid = true;
}
}
if (valid) {
element.classList.remove("invalid");
} else {
element.classList.add("invalid");
}
return intValue;
}
function saveImage(layer) {
var width = validateSaveImgDimension(document.getElementById("render-save-width"));
var height = validateSaveImgDimension(document.getElementById("render-save-height"));
var bgcolor = null;
if (!document.getElementById("render-save-transparent").checked) {
var style = getComputedStyle(topmostdiv);
bgcolor = style.getPropertyValue("background-color");
}
if (!width || !height) return;
// Prepare image
var canvas = document.createElement("canvas");
var layerdict = {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
bg: canvas,
fab: canvas,
silk: canvas,
highlight: canvas,
layer: layer,
}
// Do the rendering
recalcLayerScale(layerdict, width, height);
prepareLayer(layerdict);
clearCanvas(canvas, bgcolor);
drawBackground(layerdict, false);
drawHighlightsOnLayer(layerdict, false);
// Save image
var imgdata = canvas.toDataURL("image/png");
var filename = pcbdata.metadata.title;
if (pcbdata.metadata.revision) {
filename += `.${pcbdata.metadata.revision}`;
}
filename += `.${layer}.png`;
saveFile(filename, dataURLtoBlob(imgdata));
}
function saveSettings() {
var data = {
type: "InteractiveHtmlBom settings",
version: 1,
pcbmetadata: pcbdata.metadata,
settings: settings,
}
var blob = new Blob([JSON.stringify(data, null, 4)], {type: "application/json"});
saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
}
function loadSettings() {
var input = document.createElement("input");
input.type = "file";
input.accept = ".settings.json";
input.onchange = function(e) {
var file = e.target.files[0];
var reader = new FileReader();
reader.onload = readerEvent => {
var content = readerEvent.target.result;
var newSettings;
try {
newSettings = JSON.parse(content);
} catch(e) {
alert("Selected file is not InteractiveHtmlBom settings file.");
return;
}
if (newSettings.type != "InteractiveHtmlBom settings") {
alert("Selected file is not InteractiveHtmlBom settings file.");
return;
}
var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
if (metadataMatches) {
for (var k in pcbdata.metadata) {
if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
metadataMatches = false;
}
}
}
if (!metadataMatches) {
var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
if (!confirm(
`Settins file metadata does not match current metadata.\n\n` +
`Page metadata:\n${currentMetadata}\n\n` +
`Settings file metadata:\n${fileMetadata}\n\n` +
`Press OK if you would like to import settings anyway.`)) {
return;
}
}
overwriteSettings(newSettings.settings);
}
reader.readAsText(file, 'UTF-8');
}
input.click();
}
function overwriteSettings(newSettings) {
initDone = false;
Object.assign(settings, newSettings);
writeStorage("bomlayout", settings.bomlayout);
writeStorage("bommode", settings.bommode);
writeStorage("canvaslayout", settings.canvaslayout);
writeStorage("bomCheckboxes", settings.checkboxes.join(","));
document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
for (var checkbox of settings.checkboxes) {
writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
}
writeStorage("darkenWhenChecked", settings.darkenWhenChecked);
padsVisible(settings.renderPads);
document.getElementById("padsCheckbox").checked = settings.renderPads;
fabricationVisible(settings.renderFabrication);
document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
silkscreenVisible(settings.renderSilkscreen);
document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
referencesVisible(settings.renderReferences);
document.getElementById("referencesCheckbox").checked = settings.renderReferences;
valuesVisible(settings.renderValues);
document.getElementById("valuesCheckbox").checked = settings.renderValues;
tracksVisible(settings.renderTracks);
document.getElementById("tracksCheckbox").checked = settings.renderTracks;
zonesVisible(settings.renderZones);
document.getElementById("zonesCheckbox").checked = settings.renderZones;
dnpOutline(settings.renderDnpOutline);
document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
setRedrawOnDrag(settings.redrawOnDrag);
document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
setDarkMode(settings.darkMode);
document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
setHighlightPin1(settings.highlightpin1);
document.getElementById("highlightpin1Checkbox").checked = settings.highlightpin1;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
initDone = true;
prepCheckboxes();
changeBomLayout(settings.bomlayout);
}
function saveFile(filename, blob) {
var link = document.createElement("a");
var objurl = URL.createObjectURL(blob);
link.download = filename;
link.href = objurl;
link.click();
}
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {type:mime});
}
var settings = {
canvaslayout: "default",
bomlayout: "default",
bommode: "grouped",
checkboxes: [],
checkboxStoredRefs: {},
darkMode: false,
highlightpin1: false,
redrawOnDrag: true,
boardRotation: 0,
renderPads: true,
renderReferences: true,
renderValues: true,
renderSilkscreen: true,
renderFabrication: true,
renderDnpOutline: false,
renderTracks: true,
renderZones: true,
}
function initDefaults() {
settings.bomlayout = readStorage("bomlayout");
if (settings.bomlayout === null) {
settings.bomlayout = config.bom_view;
}
if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
settings.bomlayout = config.bom_view;
}
settings.bommode = readStorage("bommode");
if (settings.bommode === null) {
settings.bommode = "grouped";
}
if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
settings.bommode = "grouped";
}
settings.canvaslayout = readStorage("canvaslayout");
if (settings.canvaslayout === null) {
settings.canvaslayout = config.layer_view;
}
var bomCheckboxes = readStorage("bomCheckboxes");
if (bomCheckboxes === null) {
bomCheckboxes = config.checkboxes;
}
settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
document.getElementById("bomCheckboxes").value = bomCheckboxes;
settings.darkenWhenChecked = readStorage("darkenWhenChecked") || "";
populateDarkenWhenCheckedOptions();
function initBooleanSetting(storageString, def, elementId, func) {
var b = readStorage(storageString);
if (b === null) {
b = def;
} else {
b = (b == "true");
}
document.getElementById(elementId).checked = b;
func(b);
}
initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible);
if ("tracks" in pcbdata) {
initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
} else {
document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
tracksVisible(false);
zonesVisible(false);
}
initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);
initBooleanSetting("highlightpin1", config.highlight_pin1, "highlightpin1Checkbox", setHighlightPin1);
settings.boardRotation = readStorage("boardRotation");
if (settings.boardRotation === null) {
settings.boardRotation = config.board_rotation * 5;
} else {
settings.boardRotation = parseInt(settings.boardRotation);
}
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
}
// Helper classes for user js callbacks.
const IBOM_EVENT_TYPES = {
ALL: "all",
HIGHLIGHT_EVENT: "highlightEvent",
CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
}
const EventHandler = {
callbacks: {},
init: function() {
for (eventType of Object.values(IBOM_EVENT_TYPES))
this.callbacks[eventType] = [];
},
registerCallback: function(eventType, callback) {
this.callbacks[eventType].push(callback);
},
emitEvent: function(eventType, eventArgs) {
event = {
eventType: eventType,
args: eventArgs,
}
var callback;
for(callback of this.callbacks[eventType])
callback(event);
for(callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
callback(event);
}
}
EventHandler.init();
///////////////////////////////////////////////
///////////////////////////////////////////////
/* PCB rendering code */
var emptyContext2d = document.createElement("canvas").getContext("2d");
function deg2rad(deg) {
return deg * Math.PI / 180;
}
function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
var point = [
linepoint[0] * text.width + offsetx,
linepoint[1] * text.height + offsety
];
// Adding half a line height here is technically a bug
// but pcbnew currently does the same, text is slightly shifted.
point[0] -= (point[1] + text.height * 0.5) * tilt;
return point;
}
function drawtext(ctx, text, color, flip) {
if ("ref" in text && !settings.renderReferences) return;
if ("val" in text && !settings.renderValues) return;
ctx.save();
ctx.fillStyle = color;
ctx.strokeStyle = color;
ctx.lineCap = "round";
ctx.lineJoin = "round";
ctx.lineWidth = text.thickness;
if (text.svgpath) {
ctx.stroke(new Path2D(text.svgpath));
ctx.restore();
return;
}
ctx.translate(...text.pos);
var angle = -text.angle;
if (text.attr.includes("mirrored")) {
ctx.scale(-1, 1);
angle = -angle;
}
var tilt = 0;
if (text.attr.includes("italic")) {
tilt = 0.125;
}
var interline = (text.height * 1.5 + text.thickness) / 2;
var txt = text.text.split("\n");
// KiCad ignores last empty line.
if (txt[txt.length - 1] == '') txt.pop();
ctx.rotate(deg2rad(angle));
for (var i in txt) {
var offsety = (-(txt.length - 1) + i * 2) * interline + text.height / 2;
var lineWidth = 0;
for (var c of txt[i]) {
if (c == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
lineWidth += fourSpaces - lineWidth % fourSpaces;
} else {
lineWidth += pcbdata.font_data[c].w * text.width;
}
}
var offsetx = 0;
switch (text.horiz_justify) {
case -1:
// Justify left, do nothing
break;
case 0:
// Justify center
offsetx -= lineWidth / 2;
break;
case 1:
// Justify right
offsetx -= lineWidth;
break;
}
for (var c of txt[i]) {
if (c == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
offsetx += fourSpaces - offsetx % fourSpaces;
continue;
}
for (var line of pcbdata.font_data[c].l) {
ctx.beginPath();
ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
for (var i = 1; i < line.length; i++) {
ctx.lineTo(...calcFontPoint(line[i], text, offsetx, offsety, tilt));
}
ctx.stroke();
}
offsetx += pcbdata.font_data[c].w * text.width;
}
}
ctx.restore();
}
function drawedge(ctx, scalefactor, edge, color) {
ctx.strokeStyle = color;
ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
ctx.lineCap = "round";
if (edge.svgpath) {
ctx.stroke(new Path2D(edge.svgpath));
} else {
ctx.beginPath();
if (edge.type == "segment") {
ctx.moveTo(...edge.start);
ctx.lineTo(...edge.end);
}
if (edge.type == "arc") {
ctx.arc(
...edge.start,
edge.radius,
deg2rad(edge.startangle),
deg2rad(edge.endangle));
}
if (edge.type == "circle") {
ctx.arc(
...edge.start,
edge.radius,
0, 2 * Math.PI);
ctx.closePath();
}
if (edge.type == "curve") {
ctx.moveTo(...edge.start);
ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
}
ctx.stroke();
}
}
function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
// chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
var path = new Path2D();
var width = size[0];
var height = size[1];
var x = width * -0.5;
var y = height * -0.5;
var chamfOffset = Math.min(width, height) * chamfratio;
path.moveTo(x, 0);
if (chamfpos & 4) {
path.lineTo(x, y + height - chamfOffset);
path.lineTo(x + chamfOffset, y + height);
path.lineTo(0, y + height);
} else {
path.arcTo(x, y + height, x + width, y + height, radius);
}
if (chamfpos & 8) {
path.lineTo(x + width - chamfOffset, y + height);
path.lineTo(x + width, y + height - chamfOffset);
path.lineTo(x + width, 0);
} else {
path.arcTo(x + width, y + height, x + width, y, radius);
}
if (chamfpos & 2) {
path.lineTo(x + width, y + chamfOffset);
path.lineTo(x + width - chamfOffset, y);
path.lineTo(0, y);
} else {
path.arcTo(x + width, y, x, y, radius);
}
if (chamfpos & 1) {
path.lineTo(x + chamfOffset, y);
path.lineTo(x, y + chamfOffset);
path.lineTo(x, 0);
} else {
path.arcTo(x, y, x, y + height, radius);
}
path.closePath();
return path;
}
function getOblongPath(size) {
return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
}
function getPolygonsPath(shape) {
if (shape.path2d) {
return shape.path2d;
}
if (shape.svgpath) {
shape.path2d = new Path2D(shape.svgpath);
} else {
var path = new Path2D();
for (var polygon of shape.polygons) {
path.moveTo(...polygon[0]);
for (var i = 1; i < polygon.length; i++) {
path.lineTo(...polygon[i]);
}
path.closePath();
}
shape.path2d = path;
}
return shape.path2d;
}
function drawPolygonShape(ctx, shape, color) {
ctx.save();
ctx.fillStyle = color;
if (!shape.svgpath) {
ctx.translate(...shape.pos);
ctx.rotate(deg2rad(-shape.angle));
}
ctx.fill(getPolygonsPath(shape));
ctx.restore();
}
function drawDrawing(ctx, layer, scalefactor, drawing, color) {
if (["segment", "arc", "circle", "curve"].includes(drawing.type)) {
drawedge(ctx, scalefactor, drawing, color);
} else if (drawing.type == "polygon") {
drawPolygonShape(ctx, drawing, color);
} else {
drawtext(ctx, drawing, color, layer == "B");
}
}
function getCirclePath(radius) {
var path = new Path2D();
path.arc(0, 0, radius, 0, 2 * Math.PI);
path.closePath();
return path;
}
function getCachedPadPath(pad) {
if (!pad.path2d) {
// if path2d is not set, build one and cache it on pad object
if (pad.shape == "rect") {
pad.path2d = new Path2D();
pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
} else if (pad.shape == "oval") {
pad.path2d = getOblongPath(pad.size);
} else if (pad.shape == "circle") {
pad.path2d = getCirclePath(pad.size[0] / 2);
} else if (pad.shape == "roundrect") {
pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
} else if (pad.shape == "chamfrect") {
pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
} else if (pad.shape == "custom") {
pad.path2d = getPolygonsPath(pad);
}
}
return pad.path2d;
}
function drawPad(ctx, pad, color, outline, hole) {
ctx.save();
ctx.translate(...pad.pos);
ctx.rotate(deg2rad(pad.angle));
if (pad.offset) {
ctx.translate(...pad.offset);
}
ctx.fillStyle = color;
ctx.strokeStyle = color;
var path = getCachedPadPath(pad);
if (outline) {
ctx.stroke(path);
} else {
ctx.fill(path);
}
if (pad.type == "th" && hole) {
if (pad.offset) {
ctx.translate(-pad.offset[0], -pad.offset[1]);
}
ctx.fillStyle = "#CCCCCC";
if (pad.drillshape == "oblong") {
ctx.fill(getOblongPath(pad.drillsize));
} else {
ctx.fill(getCirclePath(pad.drillsize[0] / 2));
}
}
ctx.restore();
}
function drawModule(ctx, layer, scalefactor, module, padcolor, outlinecolor, highlight, outline) {
if (highlight) {
// draw bounding box
if (module.layer == layer) {
ctx.save();
ctx.globalAlpha = 0.2;
ctx.translate(...module.bbox.pos);
ctx.rotate(deg2rad(-module.bbox.angle));
ctx.translate(...module.bbox.relpos);
ctx.fillStyle = padcolor;
ctx.fillRect(0, 0, ...module.bbox.size);
ctx.globalAlpha = 1;
ctx.strokeStyle = padcolor;
ctx.strokeRect(0, 0, ...module.bbox.size);
ctx.restore();
}
}
// draw drawings
for (var drawing of module.drawings) {
if (drawing.layer == layer) {
drawDrawing(ctx, layer, scalefactor, drawing.drawing, padcolor);
}
}
// draw pads
if (settings.renderPads) {
for (var pad of module.pads) {
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padcolor, outline, true);
if (pad.pin1 && settings.highlightpin1) {
drawPad(ctx, pad, outlinecolor, true, false);
}
}
}
}
}
function drawEdgeCuts(canvas, scalefactor) {
var ctx = canvas.getContext("2d");
var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
for (var edge of pcbdata.edges) {
drawedge(ctx, scalefactor, edge, edgecolor);
}
}
function drawModules(canvas, layer, scalefactor, highlight) {
var ctx = canvas.getContext("2d");
ctx.lineWidth = 3 / scalefactor;
var style = getComputedStyle(topmostdiv);
var padcolor = style.getPropertyValue('--pad-color');
var outlinecolor = style.getPropertyValue('--pin1-outline-color');
if (highlight) {
padcolor = style.getPropertyValue('--pad-color-highlight');
outlinecolor = style.getPropertyValue('--pin1-outline-color-highlight');
}
for (var i = 0; i < pcbdata.modules.length; i++) {
var mod = pcbdata.modules[i];
var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
if (!highlight || highlightedModules.includes(i)) {
drawModule(ctx, layer, scalefactor, mod, padcolor, outlinecolor, highlight, outline);
}
}
}
function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
var ctx = canvas.getContext("2d");
for (var d of pcbdata[layername][layer]) {
if (["segment", "arc", "circle", "curve"].includes(d.type)) {
drawedge(ctx, scalefactor, d, edgeColor);
} else if (d.type == "polygon") {
drawPolygonShape(ctx, d, polygonColor);
} else {
drawtext(ctx, d, textColor, layer == "B");
}
}
}
function drawTracks(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.lineCap = "round";
for(var track of pcbdata.tracks[layer]) {
if (highlight && highlightedNet != track.net) continue;
ctx.lineWidth = track.width;
ctx.beginPath();
ctx.moveTo(...track.start);
ctx.lineTo(...track.end);
ctx.stroke();
}
}
function drawZones(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.fillStyle = color;
ctx.lineJoin = "round";
for(var zone of pcbdata.zones[layer]) {
if (!zone.path2d) {
zone.path2d = getPolygonsPath(zone);
}
if (highlight && highlightedNet != zone.net) continue;
ctx.lineWidth = zone.width ? zone.width : 0;
ctx.fill(zone.path2d);
ctx.stroke(zone.path2d);
}
}
function clearCanvas(canvas, color = null) {
var ctx = canvas.getContext("2d");
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
if (color) {
ctx.fillStyle = color;
ctx.fillRect(0, 0, canvas.width, canvas.height);
} else {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
ctx.restore();
}
function drawNets(canvas, layer, highlight) {
var style = getComputedStyle(topmostdiv);
if (settings.renderTracks) {
var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
drawTracks(canvas, layer, trackColor, highlight);
}
if (settings.renderZones) {
var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
drawZones(canvas, layer, zoneColor, highlight);
}
if (highlight && settings.renderPads) {
var padColor = style.getPropertyValue('--pad-color-highlight');
var ctx = canvas.getContext("2d");
for (var mod of pcbdata.modules) {
// draw pads
for (var pad of mod.pads) {
if (highlightedNet != pad.net) continue;
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padColor, false, true);
}
}
}
}
}
function drawHighlightsOnLayer(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.highlight);
}
if (highlightedModules.length > 0) {
drawModules(canvasdict.highlight, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom, true);
}
if (highlightedNet !== null) {
drawNets(canvasdict.highlight, canvasdict.layer, true);
}
}
function drawHighlights() {
drawHighlightsOnLayer(allcanvas.front);
drawHighlightsOnLayer(allcanvas.back);
}
function drawBackground(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.bg);
clearCanvas(canvasdict.fab);
clearCanvas(canvasdict.silk);
}
drawNets(canvasdict.bg, canvasdict.layer, false);
drawModules(canvasdict.bg, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom, false);
drawEdgeCuts(canvasdict.bg, canvasdict.transform.s);
var style = getComputedStyle(topmostdiv);
var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
var textColor = style.getPropertyValue('--silkscreen-text-color');
if (settings.renderSilkscreen) {
drawBgLayer(
"silkscreen", canvasdict.silk, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
edgeColor = style.getPropertyValue('--fabrication-edge-color');
polygonColor = style.getPropertyValue('--fabrication-polygon-color');
textColor = style.getPropertyValue('--fabrication-text-color');
if (settings.renderFabrication) {
drawBgLayer(
"fabrication", canvasdict.fab, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
}
function prepareCanvas(canvas, flip, transform) {
var ctx = canvas.getContext("2d");
ctx.setTransform(1, 0, 0, 1, 0, 0);
var fontsize = 1.55;
ctx.scale(transform.zoom, transform.zoom);
ctx.translate(transform.panx, transform.pany);
if (flip) {
ctx.scale(-1, 1);
}
ctx.translate(transform.x, transform.y);
ctx.rotate(deg2rad(settings.boardRotation));
ctx.scale(transform.s, transform.s);
}
function prepareLayer(canvasdict) {
var flip = (canvasdict.layer == "B");
for (var c of ["bg", "fab", "silk", "highlight"]) {
prepareCanvas(canvasdict[c], flip, canvasdict.transform);
}
}
function rotateVector(v, angle) {
angle = deg2rad(angle);
return [
v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
];
}
function applyRotation(bbox) {
var corners = [
[bbox.minx, bbox.miny],
[bbox.minx, bbox.maxy],
[bbox.maxx, bbox.miny],
[bbox.maxx, bbox.maxy],
];
corners = corners.map((v) => rotateVector(v, settings.boardRotation));
return {
minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
}
}
function recalcLayerScale(layerdict, width, height) {
var bbox = applyRotation(pcbdata.edges_bbox);
var scalefactor = 0.98 * Math.min(
width / (bbox.maxx - bbox.minx),
height / (bbox.maxy - bbox.miny)
);
if (scalefactor < 0.1) {
scalefactor = 1;
}
layerdict.transform.s = scalefactor;
var flip = (layerdict.layer == "B");
if (flip) {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
} else {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
}
layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
for (var c of ["bg", "fab", "silk", "highlight"]) {
canvas = layerdict[c];
canvas.width = width;
canvas.height = height;
canvas.style.width = (width / devicePixelRatio) + "px";
canvas.style.height = (height / devicePixelRatio) + "px";
}
}
function redrawCanvas(layerdict) {
prepareLayer(layerdict);
drawBackground(layerdict);
drawHighlightsOnLayer(layerdict);
}
function resizeCanvas(layerdict) {
var canvasdivid = {
"F": "frontcanvas",
"B": "backcanvas"
} [layerdict.layer];
var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
recalcLayerScale(layerdict, width, height);
redrawCanvas(layerdict);
}
function resizeAll() {
resizeCanvas(allcanvas.front);
resizeCanvas(allcanvas.back);
}
function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
var A = x - x1;
var B = y - y1;
var C = x2 - x1;
var D = y2 - y1;
var dot = A * C + B * D;
var len_sq = C * C + D * D;
var dx, dy;
if (len_sq == 0) {
// start and end of the segment coincide
dx = x - x1;
dy = y - y1;
} else {
var param = dot / len_sq;
var xx, yy;
if (param < 0) {
xx = x1;
yy = y1;
} else if (param > 1) {
xx = x2;
yy = y2;
} else {
xx = x1 + param * C;
yy = y1 + param * D;
}
dx = x - xx;
dy = y - yy;
}
return dx * dx + dy * dy <= d * d;
}
function pointWithinPad(x, y, pad) {
var v = [x - pad.pos[0], y - pad.pos[1]];
v = rotateVector(v, -pad.angle);
if (pad.offset) {
v[0] -= pad.offset[0];
v[1] -= pad.offset[1];
}
return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}
function netHitScan(layer, x, y) {
// Check track segments
if (settings.renderTracks && pcbdata.tracks) {
for(var track of pcbdata.tracks[layer]) {
if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
return track.net;
}
}
}
// Check pads
if (settings.renderPads) {
for (var mod of pcbdata.modules) {
for(var pad of mod.pads) {
if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
return pad.net;
}
}
}
}
return null;
}
function pointWithinModuleBbox(x, y, bbox) {
var v = [x - bbox.pos[0], y - bbox.pos[1]];
v = rotateVector(v, bbox.angle);
return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}
function bboxHitScan(layer, x, y) {
var result = [];
for (var i = 0; i < pcbdata.modules.length; i++) {
var module = pcbdata.modules[i];
if (module.layer == layer) {
if (pointWithinModuleBbox(x, y, module.bbox)) {
result.push(i);
}
}
}
return result;
}
function handlePointerDown(e, layerdict) {
if (e.button != 0) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
layerdict.pointerStates[e.pointerId] = {
distanceTravelled: 0,
lastX: e.offsetX,
lastY: e.offsetY,
downTime: Date.now(),
};
}
function handleMouseClick(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var x = e.offsetX;
var y = e.offsetY;
var t = layerdict.transform;
if (layerdict.layer == "B") {
x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
} else {
x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
}
y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
var v = rotateVector([x, y], -settings.boardRotation);
if ("nets" in pcbdata) {
var net = netHitScan(layerdict.layer, ...v);
if (net !== highlightedNet) {
netClicked(net);
}
}
if (highlightedNet === null) {
var modules = bboxHitScan(layerdict.layer, ...v);
if (modules.length > 0) {
modulesClicked(modules);
}
}
}
function handlePointerLeave(e, layerdict) {
e.preventDefault();
e.stopPropagation();
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
delete layerdict.pointerStates[e.pointerId];
}
function resetTransform(layerdict) {
layerdict.transform.panx = 0;
layerdict.transform.pany = 0;
layerdict.transform.zoom = 1;
redrawCanvas(layerdict);
}
function handlePointerUp(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
e.preventDefault();
e.stopPropagation();
if (e.button == 2) {
// Reset pan and zoom on right click.
resetTransform(layerdict);
layerdict.anotherPointerTapped = false;
return;
}
// We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
var ptr = layerdict.pointerStates[e.pointerId];
ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);
if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
if (Object.keys(layerdict.pointerStates).length == 1) {
if (layerdict.anotherPointerTapped) {
// This is the second pointer coming off of a two-finger tap
resetTransform(layerdict);
} else {
// This is just a regular tap
handleMouseClick(e, layerdict);
}
layerdict.anotherPointerTapped = false;
} else {
// This is the first finger coming off of what could become a two-finger tap
layerdict.anotherPointerTapped = true;
}
} else {
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
layerdict.anotherPointerTapped = false;
}
delete layerdict.pointerStates[e.pointerId];
}
function handlePointerMove(e, layerdict) {
if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var thisPtr = layerdict.pointerStates[e.pointerId];
var dx = e.offsetX - thisPtr.lastX;
var dy = e.offsetY - thisPtr.lastY;
// If this number is low on pointer up, we count the action as a click
thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);
if (Object.keys(layerdict.pointerStates).length == 1) {
// This is a simple drag
layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
} else if (Object.keys(layerdict.pointerStates).length == 2) {
var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];
var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));
var scaleFactor = newDist/oldDist;
if (scaleFactor != NaN) {
layerdict.transform.zoom *= scaleFactor;
var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
}
}
thisPtr.lastX = e.offsetX;
thisPtr.lastY = e.offsetY;
if (settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
}
function handleMouseWheel(e, layerdict) {
e.preventDefault();
e.stopPropagation();
var t = layerdict.transform;
var wheeldelta = e.deltaY;
if (e.deltaMode == 1) {
// FF only, scroll by lines
wheeldelta *= 30;
} else if (e.deltaMode == 2) {
wheeldelta *= 300;
}
var m = Math.pow(1.1, -wheeldelta / 40);
// Limit amount of zoom per tick.
if (m > 2) {
m = 2;
} else if (m < 0.5) {
m = 0.5;
}
t.zoom *= m;
var zoomd = (1 - m) / t.zoom;
t.panx += devicePixelRatio * e.offsetX * zoomd;
t.pany += devicePixelRatio * e.offsetY * zoomd;
redrawCanvas(layerdict);
}
function addMouseHandlers(div, layerdict) {
div.addEventListener("pointerdown", function(e) {
handlePointerDown(e, layerdict);
});
div.addEventListener("pointermove", function(e) {
handlePointerMove(e, layerdict);
});
div.addEventListener("pointerup", function(e) {
handlePointerUp(e, layerdict);
});
var pointerleave = function(e) {
handlePointerLeave(e, layerdict);
}
div.addEventListener("pointercancel", pointerleave);
div.addEventListener("pointerleave", pointerleave);
div.addEventListener("pointerout", pointerleave);
div.onwheel = function(e) {
handleMouseWheel(e, layerdict);
}
for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
element.addEventListener("contextmenu", function(e) {
e.preventDefault();
}, false);
}
}
function setRedrawOnDrag(value) {
settings.redrawOnDrag = value;
writeStorage("redrawOnDrag", value);
}
function setBoardRotation(value) {
settings.boardRotation = value * 5;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("rotationDegree").textContent = settings.boardRotation;
resizeAll();
}
function initRender() {
allcanvas = {
front: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("F_bg"),
fab: document.getElementById("F_fab"),
silk: document.getElementById("F_slk"),
highlight: document.getElementById("F_hl"),
layer: "F",
},
back: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("B_bg"),
fab: document.getElementById("B_fab"),
silk: document.getElementById("B_slk"),
highlight: document.getElementById("B_hl"),
layer: "B",
}
};
addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}
///////////////////////////////////////////////
///////////////////////////////////////////////
/* DOM manipulation and misc code */
var bomsplit;
var canvassplit;
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var moduleIndexToHandler = {};
var netsToHandler = {};
var highlightedModules = [];
var highlightedNet = null;
var lastClicked;
function dbg(html) {
dbgdiv.innerHTML = html;
}
function redrawIfInitDone() {
if (initDone) {
redrawCanvas(allcanvas.front);
redrawCanvas(allcanvas.back);
}
}
function padsVisible(value) {
writeStorage("padsVisible", value);
settings.renderPads = value;
redrawIfInitDone();
}
function referencesVisible(value) {
writeStorage("referencesVisible", value);
settings.renderReferences = value;
redrawIfInitDone();
}
function valuesVisible(value) {
writeStorage("valuesVisible", value);
settings.renderValues = value;
redrawIfInitDone();
}
function tracksVisible(value) {
writeStorage("tracksVisible", value);
settings.renderTracks = value;
redrawIfInitDone();
}
function zonesVisible(value) {
writeStorage("zonesVisible", value);
settings.renderZones = value;
redrawIfInitDone();
}
function dnpOutline(value) {
writeStorage("dnpOutline", value);
settings.renderDnpOutline = value;
redrawIfInitDone();
}
function setDarkMode(value) {
if (value) {
topmostdiv.classList.add("dark");
} else {
topmostdiv.classList.remove("dark");
}
writeStorage("darkmode", value);
settings.darkMode = value;
redrawIfInitDone();
}
function setFullscreen(value) {
if (value) {
document.documentElement.requestFullscreen();
} else {
document.exitFullscreen();
}
}
function fabricationVisible(value) {
writeStorage("fabricationVisible", value);
settings.renderFabrication = value;
redrawIfInitDone();
}
function silkscreenVisible(value) {
writeStorage("silkscreenVisible", value);
settings.renderSilkscreen = value;
redrawIfInitDone();
}
function setHighlightPin1(value) {
writeStorage("highlightpin1", value);
settings.highlightpin1 = value;
redrawIfInitDone();
}
function getStoredCheckboxRefs(checkbox) {
function convert(ref) {
var intref = parseInt(ref);
if (isNaN(intref)) {
for (var i = 0; i < pcbdata.modules.length; i++) {
if (pcbdata.modules[i].ref == ref) {
return i;
}
}
return -1;
} else {
return intref;
}
}
if (!(checkbox in settings.checkboxStoredRefs)) {
var val = readStorage("checkbox_" + checkbox);
settings.checkboxStoredRefs[checkbox] = val ? val : "";
}
if (!settings.checkboxStoredRefs[checkbox]) {
return new Set();
} else {
return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
}
}
function getCheckboxState(checkbox, references) {
var storedRefsSet = getStoredCheckboxRefs(checkbox);
var currentRefsSet = new Set(references.map(r => r[1]));
// Get difference of current - stored
var difference = new Set(currentRefsSet);
for (ref of storedRefsSet) {
difference.delete(ref);
}
if (difference.size == 0) {
// All the current refs are stored
return "checked";
} else if (difference.size == currentRefsSet.size) {
// None of the current refs are stored
return "unchecked";
} else {
// Some of the refs are stored
return "indeterminate";
}
}
function setBomCheckboxState(checkbox, element, references) {
var state = getCheckboxState(checkbox, references);
element.checked = (state == "checked");
element.indeterminate = (state == "indeterminate");
}
function createCheckboxChangeHandler(checkbox, references) {
return function(evt) {
refsSet = getStoredCheckboxRefs(checkbox);
var darkenWhenChecked = settings.darkenWhenChecked == checkbox;
eventArgs = {
checkbox: checkbox,
refs: references,
}
if (this.checked) {
// checkbox ticked
for (var ref of references) {
refsSet.add(ref[1]);
}
if (darkenWhenChecked) {
evt.target.parentElement.parentElement.classList.add("checked");
}
eventArgs.state = 'checked';
} else {
// checkbox unticked
for (var ref of references) {
refsSet.delete(ref[1]);
}
if (darkenWhenChecked) {
evt.target.parentElement.parentElement.classList.remove("checked");
}
eventArgs.state = 'unchecked';
}
settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
updateCheckboxStats(checkbox);
EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
}
}
function clearHighlightedModules() {
if (currentHighlightedRowId) {
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
currentHighlightedRowId = null;
highlightedModules = [];
highlightedNet = null;
}
}
function createRowHighlightHandler(rowid, refs, net) {
return function() {
if (currentHighlightedRowId) {
if (currentHighlightedRowId == rowid) {
return;
}
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
}
document.getElementById(rowid).classList.add("highlighted");
currentHighlightedRowId = rowid;
highlightedModules = refs ? refs.map(r => r[1]) : [];
highlightedNet = net;
drawHighlights();
EventHandler.emitEvent(
IBOM_EVENT_TYPES.HIGHLIGHT_EVENT,
{
rowid: rowid,
refs: refs,
net: net
});
}
}
function entryMatches(entry) {
if (settings.bommode == "netlist") {
// entry is just a net name
return entry.toLowerCase().indexOf(filter) >= 0;
}
// check refs
for (var ref of entry[3]) {
if (ref[0].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
// check extra fields
for (var i in config.extra_fields) {
if (entry[4][i].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
// check value
if (entry[1].toLowerCase().indexOf(filter) >= 0) {
return true;
}
// check footprint
if (entry[2].toLowerCase().indexOf(filter) >= 0) {
return true;
}
return false;
}
function findRefInEntry(entry) {
return entry[3].filter(r => r[0].toLowerCase() == reflookup);
}
function highlightFilter(s) {
if (!filter) {
return s;
}
var parts = s.toLowerCase().split(filter);
if (parts.length == 1) {
return s;
}
var r = "";
var pos = 0;
for (var i in parts) {
if (i > 0) {
r += '<mark class="highlight">' +
s.substring(pos, pos + filter.length) +
'</mark>';
pos += filter.length;
}
r += s.substring(pos, pos + parts[i].length);
pos += parts[i].length;
}
return r;
}
function checkboxSetUnsetAllHandler(checkboxname) {
return function() {
var checkboxnum = 0;
while (checkboxnum < settings.checkboxes.length &&
settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
checkboxnum++;
}
if (checkboxnum >= settings.checkboxes.length) {
return;
}
var allset = true;
var checkbox;
var row;
for (row of bombody.childNodes) {
checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
if (!checkbox.checked || checkbox.indeterminate) {
allset = false;
break;
}
}
for (row of bombody.childNodes) {
checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
checkbox.checked = !allset;
checkbox.indeterminate = false;
checkbox.onchange();
}
}
}
function createColumnHeader(name, cls, comparator) {
var th = document.createElement("TH");
th.innerHTML = name;
th.classList.add(cls);
th.style.cursor = "pointer";
var span = document.createElement("SPAN");
span.classList.add("sortmark");
span.classList.add("none");
th.appendChild(span);
th.onclick = function() {
if (currentSortColumn && this !== currentSortColumn) {
// Currently sorted by another column
currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
currentSortColumn.childNodes[1].classList.add("none");
currentSortColumn = null;
currentSortOrder = null;
}
if (currentSortColumn && this === currentSortColumn) {
// Already sorted by this column
if (currentSortOrder == "asc") {
// Sort by this column, descending order
bomSortFunction = function(a, b) {
return -comparator(a, b);
}
currentSortColumn.childNodes[1].classList.remove("asc");
currentSortColumn.childNodes[1].classList.add("desc");
currentSortOrder = "desc";
} else {
// Unsort
bomSortFunction = null;
currentSortColumn.childNodes[1].classList.remove("desc");
currentSortColumn.childNodes[1].classList.add("none");
currentSortColumn = null;
currentSortOrder = null;
}
} else {
// Sort by this column, ascending order
bomSortFunction = comparator;
currentSortColumn = this;
currentSortColumn.childNodes[1].classList.remove("none");
currentSortColumn.childNodes[1].classList.add("asc");
currentSortOrder = "asc";
}
populateBomBody();
}
return th;
}
function populateBomHeader() {
while (bomhead.firstChild) {
bomhead.removeChild(bomhead.firstChild);
}
var tr = document.createElement("TR");
var th = document.createElement("TH");
th.classList.add("numCol");
tr.appendChild(th);
var checkboxCompareClosure = function(checkbox) {
return (a, b) => {
var stateA = getCheckboxState(checkbox, a[3]);
var stateB = getCheckboxState(checkbox, b[3]);
if (stateA > stateB) return -1;
if (stateA < stateB) return 1;
return 0;
}
}
if (settings.bommode == "netlist") {
th = createColumnHeader("Net name", "bom-netname", (a, b) => {
if (a > b) return -1;
if (a < b) return 1;
return 0;
});
tr.appendChild(th);
} else {
for (var checkbox of settings.checkboxes) {
th = createColumnHeader(
checkbox, "bom-checkbox", checkboxCompareClosure(checkbox));
th.onclick = fancyDblClickHandler(
th, th.onclick.bind(th), checkboxSetUnsetAllHandler(checkbox));
tr.appendChild(th);
}
tr.appendChild(createColumnHeader("References", "References", (a, b) => {
var i = 0;
while (i < a[3].length && i < b[3].length) {
if (a[3][i] != b[3][i]) return a[3][i] > b[3][i] ? 1 : -1;
i++;
}
return a[3].length - b[3].length;
}));
// Extra fields
if (config.extra_fields.length > 0) {
var extraFieldCompareClosure = function(fieldIndex) {
return (a, b) => {
var fa = a[4][fieldIndex];
var fb = b[4][fieldIndex];
if (fa != fb) return fa > fb ? 1 : -1;
else return 0;
}
}
for (var i in config.extra_fields) {
tr.appendChild(createColumnHeader(
config.extra_fields[i], "extra", extraFieldCompareClosure(i)));
}
}
tr.appendChild(createColumnHeader("Value", "Value", (a, b) => {
return valueCompare(a[5], b[5], a[1], b[1]);
}));
tr.appendChild(createColumnHeader("Footprint", "Footprint", (a, b) => {
if (a[2] != b[2]) return a[2] > b[2] ? 1 : -1;
else return 0;
}));
if (settings.bommode == "grouped") {
tr.appendChild(createColumnHeader("Quantity", "Quantity", (a, b) => {
return a[3].length - b[3].length;
}));
}
}
bomhead.appendChild(tr);
}
function populateBomBody() {
while (bom.firstChild) {
bom.removeChild(bom.firstChild);
}
highlightHandlers = [];
moduleIndexToHandler = {};
netsToHandler = {};
currentHighlightedRowId = null;
var first = true;
if (settings.bommode == "netlist") {
bomtable = pcbdata.nets.slice();
} else {
switch (settings.canvaslayout) {
case 'F':
bomtable = pcbdata.bom.F.slice();
break;
case 'FB':
bomtable = pcbdata.bom.both.slice();
break;
case 'B':
bomtable = pcbdata.bom.B.slice();
break;
}
if (settings.bommode == "ungrouped") {
// expand bom table
expandedTable = []
for (var bomentry of bomtable) {
for (var ref of bomentry[3]) {
expandedTable.push([1, bomentry[1], bomentry[2], [ref], bomentry[4], bomentry[5]]);
}
}
bomtable = expandedTable;
}
}
if (bomSortFunction) {
bomtable = bomtable.sort(bomSortFunction);
}
for (var i in bomtable) {
var bomentry = bomtable[i];
if (filter && !entryMatches(bomentry)) {
continue;
}
var references = null;
var netname = null;
var tr = document.createElement("TR");
var td = document.createElement("TD");
var rownum = +i + 1;
tr.id = "bomrow" + rownum;
td.textContent = rownum;
tr.appendChild(td);
if (settings.bommode == "netlist") {
netname = bomentry;
td = document.createElement("TD");
td.innerHTML = highlightFilter(netname ? netname : "&lt;no net&gt;");
tr.appendChild(td);
} else {
if (reflookup) {
references = findRefInEntry(bomentry);
if (references.length == 0) {
continue;
}
} else {
references = bomentry[3];
}
// Checkboxes
for (var checkbox of settings.checkboxes) {
if (checkbox) {
td = document.createElement("TD");
var input = document.createElement("input");
input.type = "checkbox";
input.onchange = createCheckboxChangeHandler(checkbox, references);
setBomCheckboxState(checkbox, input, references);
if (input.checked && settings.darkenWhenChecked == checkbox) {
tr.classList.add("checked");
}
td.appendChild(input);
tr.appendChild(td);
}
}
// References
td = document.createElement("TD");
td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
tr.appendChild(td);
// Extra fields
for (var i in config.extra_fields) {
td = document.createElement("TD");
td.innerHTML = highlightFilter(bomentry[4][i]);
tr.appendChild(td);
}
// Value
td = document.createElement("TD");
td.innerHTML = highlightFilter(bomentry[1]);
tr.appendChild(td);
// Footprint
td = document.createElement("TD");
td.innerHTML = highlightFilter(bomentry[2]);
tr.appendChild(td);
if (settings.bommode == "grouped") {
// Quantity
td = document.createElement("TD");
td.textContent = bomentry[3].length;
tr.appendChild(td);
}
}
bom.appendChild(tr);
var handler = createRowHighlightHandler(tr.id, references, netname);
tr.onmousemove = handler;
highlightHandlers.push({
id: tr.id,
handler: handler,
});
if (references !== null) {
for (var refIndex of references.map(r => r[1])) {
moduleIndexToHandler[refIndex] = handler;
}
}
if (netname !== null) {
netsToHandler[netname] = handler;
}
if ((filter || reflookup) && first) {
handler();
first = false;
}
}
}
function highlightPreviousRow() {
if (!currentHighlightedRowId) {
highlightHandlers[highlightHandlers.length - 1].handler();
} else {
if (highlightHandlers.length > 1 &&
highlightHandlers[0].id == currentHighlightedRowId) {
highlightHandlers[highlightHandlers.length - 1].handler();
} else {
for (var i = 0; i < highlightHandlers.length - 1; i++) {
if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
highlightHandlers[i].handler();
break;
}
}
}
}
smoothScrollToRow(currentHighlightedRowId);
}
function highlightNextRow() {
if (!currentHighlightedRowId) {
highlightHandlers[0].handler();
} else {
if (highlightHandlers.length > 1 &&
highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
highlightHandlers[0].handler();
} else {
for (var i = 1; i < highlightHandlers.length; i++) {
if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
highlightHandlers[i].handler();
break;
}
}
}
}
smoothScrollToRow(currentHighlightedRowId);
}
function populateBomTable() {
populateBomHeader();
populateBomBody();
}
function modulesClicked(moduleIndexes) {
var lastClickedIndex = moduleIndexes.indexOf(lastClicked);
for (var i = 1; i <= moduleIndexes.length; i++) {
var refIndex = moduleIndexes[(lastClickedIndex + i) % moduleIndexes.length];
if (refIndex in moduleIndexToHandler) {
lastClicked = refIndex;
moduleIndexToHandler[refIndex]();
smoothScrollToRow(currentHighlightedRowId);
break;
}
}
}
function netClicked(net) {
if (net in netsToHandler) {
netsToHandler[net]();
smoothScrollToRow(currentHighlightedRowId);
} else {
clearHighlightedModules();
highlightedNet = net;
drawHighlights();
}
}
function updateFilter(input) {
filter = input.toLowerCase();
populateBomTable();
}
function updateRefLookup(input) {
reflookup = input.toLowerCase();
populateBomTable();
}
function changeCanvasLayout(layout) {
document.getElementById("fl-btn").classList.remove("depressed");
document.getElementById("fb-btn").classList.remove("depressed");
document.getElementById("bl-btn").classList.remove("depressed");
switch (layout) {
case 'F':
document.getElementById("fl-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.collapse(1);
}
break;
case 'B':
document.getElementById("bl-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.collapse(0);
}
break;
default:
document.getElementById("fb-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.setSizes([50, 50]);
}
}
settings.canvaslayout = layout;
writeStorage("canvaslayout", layout);
resizeAll();
changeBomMode(settings.bommode);
}
function populateMetadata() {
document.getElementById("title").innerHTML = pcbdata.metadata.title;
document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
document.getElementById("company").innerHTML = pcbdata.metadata.company;
document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
if (pcbdata.metadata.title != "") {
document.title = pcbdata.metadata.title + " BOM";
}
// Calculate board stats
var fp_f = 0, fp_b = 0, pads_f = 0, pads_b = 0, pads_th = 0;
for (var i = 0; i < pcbdata.modules.length; i++) {
if (pcbdata.bom.skipped.includes(i)) continue;
var mod = pcbdata.modules[i];
if (mod.layer == "F") {
fp_f++;
} else {
fp_b++;
}
for (var pad of mod.pads) {
if (pad.type == "th") {
pads_th++;
} else {
if (pad.layers.includes("F")) {
pads_f++;
}
if (pad.layers.includes("B")) {
pads_b++;
}
}
}
}
document.getElementById("stats-components-front").innerHTML = fp_f;
document.getElementById("stats-components-back").innerHTML = fp_b;
document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
document.getElementById("stats-th-pads").innerHTML = pads_th;
// Update version string
document.getElementById("github-link").innerHTML = "InteractiveHtmlBom&nbsp;" +
/^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}
function changeBomLayout(layout) {
document.getElementById("bom-btn").classList.remove("depressed");
document.getElementById("lr-btn").classList.remove("depressed");
document.getElementById("tb-btn").classList.remove("depressed");
switch (layout) {
case 'bom-only':
document.getElementById("bom-btn").classList.add("depressed");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
document.getElementById("frontcanvas").style.display = "none";
document.getElementById("backcanvas").style.display = "none";
document.getElementById("bot").style.height = "";
break;
case 'top-bottom':
document.getElementById("tb-btn").classList.add("depressed");
document.getElementById("frontcanvas").style.display = "";
document.getElementById("backcanvas").style.display = "";
document.getElementById("bot").style.height = "calc(100% - 80px)";
document.getElementById("bomdiv").classList.remove("split-horizontal");
document.getElementById("canvasdiv").classList.remove("split-horizontal");
document.getElementById("frontcanvas").classList.add("split-horizontal");
document.getElementById("backcanvas").classList.add("split-horizontal");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
sizes: [50, 50],
onDragEnd: resizeAll,
direction: "vertical",
gutterSize: 5
});
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
sizes: [50, 50],
gutterSize: 5,
onDragEnd: resizeAll
});
break;
case 'left-right':
document.getElementById("lr-btn").classList.add("depressed");
document.getElementById("frontcanvas").style.display = "";
document.getElementById("backcanvas").style.display = "";
document.getElementById("bot").style.height = "calc(100% - 80px)";
document.getElementById("bomdiv").classList.add("split-horizontal");
document.getElementById("canvasdiv").classList.add("split-horizontal");
document.getElementById("frontcanvas").classList.remove("split-horizontal");
document.getElementById("backcanvas").classList.remove("split-horizontal");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
sizes: [50, 50],
onDragEnd: resizeAll,
gutterSize: 5
});
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
sizes: [50, 50],
gutterSize: 5,
direction: "vertical",
onDragEnd: resizeAll
});
}
settings.bomlayout = layout;
writeStorage("bomlayout", layout);
changeCanvasLayout(settings.canvaslayout);
}
function changeBomMode(mode) {
document.getElementById("bom-grouped-btn").classList.remove("depressed");
document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
document.getElementById("bom-netlist-btn").classList.remove("depressed");
switch (mode) {
case 'grouped':
document.getElementById("bom-grouped-btn").classList.add("depressed");
break;
case 'ungrouped':
document.getElementById("bom-ungrouped-btn").classList.add("depressed");
break;
case 'netlist':
document.getElementById("bom-netlist-btn").classList.add("depressed");
}
writeStorage("bommode", mode);
if (mode != settings.bommode) {
settings.bommode = mode;
bomSortFunction = null;
currentSortColumn = null;
currentSortOrder = null;
clearHighlightedModules();
}
populateBomTable();
}
function focusFilterField() {
focusInputField(document.getElementById("filter"));
}
function focusRefLookupField() {
focusInputField(document.getElementById("reflookup"));
}
function toggleBomCheckbox(bomrowid, checkboxnum) {
if (!bomrowid || checkboxnum > settings.checkboxes.length) {
return;
}
var bomrow = document.getElementById(bomrowid);
var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
checkbox.checked = !checkbox.checked;
checkbox.indeterminate = false;
checkbox.onchange();
}
function checkBomCheckbox(bomrowid, checkboxname) {
var checkboxnum = 0;
while (checkboxnum < settings.checkboxes.length &&
settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
checkboxnum++;
}
if (!bomrowid || checkboxnum >= settings.checkboxes.length) {
return;
}
var bomrow = document.getElementById(bomrowid);
var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
checkbox.checked = true;
checkbox.indeterminate = false;
checkbox.onchange();
}
function setBomCheckboxes(value) {
writeStorage("bomCheckboxes", value);
settings.checkboxes = value.split(",").filter((e) => e);
prepCheckboxes();
populateBomTable();
populateDarkenWhenCheckedOptions();
}
function setDarkenWhenChecked(value) {
writeStorage("darkenWhenChecked", value);
settings.darkenWhenChecked = value;
populateBomTable();
}
function prepCheckboxes() {
var table = document.getElementById("checkbox-stats");
while (table.childElementCount > 1) {
table.removeChild(table.lastChild);
}
if (settings.checkboxes.length) {
table.style.display = "";
} else {
table.style.display = "none";
}
for (var checkbox of settings.checkboxes) {
var tr = document.createElement("TR");
var td = document.createElement("TD");
td.innerHTML = checkbox;
tr.appendChild(td);
td = document.createElement("TD");
td.id = "checkbox-stats-" + checkbox;
var progressbar = document.createElement("div");
progressbar.classList.add("bar");
td.appendChild(progressbar);
var text = document.createElement("div");
text.classList.add("text");
td.appendChild(text);
tr.appendChild(td);
table.appendChild(tr);
updateCheckboxStats(checkbox);
}
}
function populateDarkenWhenCheckedOptions() {
var container = document.getElementById("darkenWhenCheckedContainer");
if (settings.checkboxes.length == 0) {
container.parentElement.style.display = "none";
return;
}
container.innerHTML = '';
container.parentElement.style.display = "inline-block";
function createOption(name, displayName) {
var id = "darkenWhenChecked-" + name;
var div = document.createElement("div");
div.classList.add("radio-container");
var input = document.createElement("input");
input.type = "radio";
input.name = "darkenWhenChecked";
input.value = name;
input.id = id;
input.onchange = () => setDarkenWhenChecked(name);
div.appendChild(input);
// Preserve the selected element when the checkboxes change
if (name == settings.darkenWhenChecked) {
input.checked = true;
}
var label = document.createElement("label");
label.innerHTML = displayName;
label.htmlFor = id;
div.appendChild(label);
container.appendChild(div);
}
createOption("", "None");
for (var checkbox of settings.checkboxes) {
createOption(checkbox, checkbox);
}
}
function updateCheckboxStats(checkbox) {
var checked = getStoredCheckboxRefs(checkbox).size;
var total = pcbdata.modules.length - pcbdata.bom.skipped.length;
var percent = checked * 100.0 / total;
var td = document.getElementById("checkbox-stats-" + checkbox);
td.firstChild.style.width = percent + "%";
td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
}
document.onkeydown = function(e) {
switch (e.key) {
case "n":
if (document.activeElement.type == "text") {
return;
}
if (currentHighlightedRowId !== null) {
checkBomCheckbox(currentHighlightedRowId, "placed");
highlightNextRow();
e.preventDefault();
}
break;
case "ArrowUp":
highlightPreviousRow();
e.preventDefault();
break;
case "ArrowDown":
highlightNextRow();
e.preventDefault();
break;
default:
break;
}
if (e.altKey) {
switch (e.key) {
case "f":
focusFilterField();
e.preventDefault();
break;
case "r":
focusRefLookupField();
e.preventDefault();
break;
case "z":
changeBomLayout("bom-only");
e.preventDefault();
break;
case "x":
changeBomLayout("left-right");
e.preventDefault();
break;
case "c":
changeBomLayout("top-bottom");
e.preventDefault();
break;
case "v":
changeCanvasLayout("F");
e.preventDefault();
break;
case "b":
changeCanvasLayout("FB");
e.preventDefault();
break;
case "n":
changeCanvasLayout("B");
e.preventDefault();
break;
default:
break;
}
if (e.key >= '1' && e.key <= '9') {
toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
}
}
}
function hideNetlistButton() {
document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
document.getElementById("bom-netlist-btn").style.display = "none";
}
window.onload = function(e) {
initUtils();
initRender();
initStorage();
initDefaults();
cleanGutters();
populateMetadata();
dbgdiv = document.getElementById("dbg");
bom = document.getElementById("bombody");
bomhead = document.getElementById("bomhead");
filter = "";
reflookup = "";
if (!("nets" in pcbdata)) {
hideNetlistButton();
}
initDone = true;
prepCheckboxes();
// Triggers render
changeBomLayout(settings.bomlayout);
// Users may leave fullscreen without touching the checkbox. Uncheck.
document.addEventListener('fullscreenchange', () => {
if (!document.fullscreenElement)
document.getElementById('fullscreenCheckbox').checked = false;
});
}
window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
</script>
</head>
<body>
<div id="topmostdiv" class="topmostdiv">
<div id="top">
<div style="float: right; height: 100%;">
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="menubtn"></button>
<div class="menu-content">
<label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
<input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
Dark mode
</label><!-- This comment eats space! All of it!
--><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
<input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
Full Screen
</label>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
Fab layer
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
Silkscreen
</label>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
References
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
Values
</label>
<div id="tracksAndZonesCheckboxes">
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
Tracks
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
Zones
</label>
</div>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
Pads
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
DNP outlined
</label>
<label class="menu-label">
<input id="highlightpin1Checkbox" type="checkbox" onchange="setHighlightPin1(this.checked)">
Highlight first pin
</label>
<label class="menu-label">
<input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
Continuous redraw on drag
</label>
<label class="menu-label">
<span>Board rotation</span>
<span style="float: right"><span id="rotationDegree">0</span>&#176;</span>
<input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
</label>
<label class="menu-label">
<div style="margin-left: 5px">Bom checkboxes</div>
<input id="bomCheckboxes" class="menu-textbox" type=text
oninput="setBomCheckboxes(this.value)">
</label>
<label class="menu-label">
<div style="margin-left: 5px">Darken when checked</div>
<div id="darkenWhenCheckedContainer"></div>
</label>
<label class="menu-label">
<span class="shameless-plug">
<span>Created using</span>
<a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
</span>
</label>
</div>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
title="Front only">F
</button>
<button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
title="Front and Back">FB
</button>
<button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
title="Back only">B
</button>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
title="BOM only"></button>
<button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
title="BOM left, drawings right"></button>
<button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
title="BOM top, drawings bot"></button>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
title="Grouped BOM"></button>
<button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
title="Ungrouped BOM"></button>
<button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
title="Netlist"></button>
</div>
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="statsbtn"></button>
<div class="menu-content">
<table class="stats">
<tbody>
<tr>
<td width="40%">Board stats</td>
<td>Front</td>
<td>Back</td>
<td>Total</td>
</tr>
<tr>
<td>Components</td>
<td id="stats-components-front">~</td>
<td id="stats-components-back">~</td>
<td id="stats-components-total">~</td>
</tr>
<tr>
<td>Groups</td>
<td id="stats-groups-front">~</td>
<td id="stats-groups-back">~</td>
<td id="stats-groups-total">~</td>
</tr>
<tr>
<td>SMD pads</td>
<td id="stats-smd-pads-front">~</td>
<td id="stats-smd-pads-back">~</td>
<td id="stats-smd-pads-total">~</td>
</tr>
<tr>
<td>TH pads</td>
<td colspan=3 id="stats-th-pads">~</td>
</tr>
</tbody>
</table>
<table class="stats">
<col width="40%"/><col />
<tbody id="checkbox-stats">
<tr>
<td colspan=2 style="border-top: 0">Checkboxes</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="iobtn"></button>
<div class="menu-content">
<div class="menu-label menu-label-top">
<div style="margin-left: 5px;">Save board image</div>
<div class="flexbox">
<input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
<span>X</span>
<input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
</div>
<label>
<input id="render-save-transparent" type="checkbox">
Transparent background
</label>
<div class="flexbox">
<button class="savebtn" onclick="saveImage('F')">Front</button>
<button class="savebtn" onclick="saveImage('B')">Back</button>
</div>
</div>
<div class="menu-label">
<span style="margin-left: 5px;">Config and checkbox state</span>
<div class="flexbox">
<button class="savebtn" onclick="saveSettings()">Export</button>
<button class="savebtn" onclick="loadSettings()">Import</button>
</div>
</div>
</div>
</div>
</div>
<div id="fileinfodiv" style="overflow: auto;">
<table class="fileinfo">
<tbody>
<tr>
<td id="title" class="title" style="width: 70%">
Title
</td>
<td id="revision" class="title" style="width: 30%">
Revision
</td>
</tr>
<tr>
<td id="company">
Company
</td>
<td id="filedate">
Date
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="bot" class="split" style="height: calc(100% - 80px)">
<div id="bomdiv" class="split split-horizontal">
<div style="width: 100%">
<input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
oninput="updateRefLookup(this.value)">
<input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
oninput="updateFilter(this.value)">
<div class="button-container hideonprint" style="float: left; margin: 0;">
<button id="copy" title="Copy bom table to clipboard"
onclick="copyToClipboard()"></button>
</div>
</div>
<div id="dbg"></div>
<table class="bom">
<thead id="bomhead">
</thead>
<tbody id="bombody">
</tbody>
</table>
</div>
<div id="canvasdiv" class="split split-horizontal">
<div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
<div style="position: relative; width: 100%; height: 100%;">
<canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
<canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
<canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
<canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
</div>
</div>
<div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
<div style="position: relative; width: 100%; height: 100%;">
<canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
<canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
<canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
<canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
</div>
</div>
</div>
</div>
</div>
</body>
</html>