planktoscope/hardware/HAT/PlanktoscopeHat-v0.2-fab-interactive.html
2021-03-10 20:00:49 +01:00

3682 lines
298 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PlanktoScope Hat v0.2 Interactive BOM</title>
<style type="text/css">
:root {
--pcb-edge-color: black;
--pad-color: #878787;
--pad-hole-color: #CCCCCC;
--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 = {"dark_mode": false, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": false, "redraw_on_drag": true, "board_rotation": 0.0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "extra_fields": []}
///////////////////////////////////////////////
///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("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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",
BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
}
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
];
// This approximates pcbnew behavior with how text tilts depending on horizontal justification
point[0] -= (linepoint[1] + 0.5 * (1 + text.justify[0])) * text.height * tilt;
return point;
}
function drawText(ctx, text, color) {
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 ("svgpath" in text) {
ctx.stroke(new Path2D(text.svgpath));
ctx.restore();
return;
}
ctx.translate(...text.pos);
ctx.translate(text.thickness * 0.5, 0);
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;
var txt = text.text.split("\n");
// KiCad ignores last empty line.
if (txt[txt.length - 1] == '') txt.pop();
ctx.rotate(deg2rad(angle));
var offsety = (1 - text.justify[1]) / 2 * text.height; // One line offset
offsety -= (txt.length - 1) * (text.justify[1] + 1) / 2 * interline; // Multiline offset
for (var i in txt) {
var lineWidth = text.thickness + interline / 2 * tilt;
for (var j = 0; j < txt[i].length; j++) {
if (txt[i][j] == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
lineWidth += fourSpaces - lineWidth % fourSpaces;
} else {
if (txt[i][j] == '~') {
j++;
if (j == txt[i].length)
break;
}
lineWidth += pcbdata.font_data[txt[i][j]].w * text.width;
}
}
var offsetx = -lineWidth * (text.justify[0] + 1) / 2;
var inOverbar = false;
for (var j = 0; j < txt[i].length; j++) {
if (txt[i][j] == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
offsetx += fourSpaces - offsetx % fourSpaces;
continue;
} else if (txt[i][j] == '~') {
j++;
if (j == txt[i].length)
break;
if (txt[i][j] != '~') {
inOverbar = !inOverbar;
}
}
var glyph = pcbdata.font_data[txt[i][j]];
if (inOverbar) {
var overbarStart = [offsetx, -text.height * 1.4 + offsety];
var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];
if (!lastHadOverbar) {
overbarStart[0] += text.height * 1.4 * tilt;
lastHadOverbar = true;
}
ctx.beginPath();
ctx.moveTo(...overbarStart);
ctx.lineTo(...overbarEnd);
ctx.stroke();
} else {
lastHadOverbar = false;
}
for (var line of glyph.l) {
ctx.beginPath();
ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
for (var k = 1; k < line.length; k++) {
ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
}
ctx.stroke();
}
offsetx += glyph.w * text.width;
}
offsety += interline;
}
ctx.restore();
}
function drawedge(ctx, scalefactor, edge, color) {
ctx.strokeStyle = color;
ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
ctx.lineCap = "round";
if ("svgpath" in edge) {
ctx.stroke(new Path2D(edge.svgpath));
} else {
ctx.beginPath();
if (edge.type == "segment") {
ctx.moveTo(...edge.start);
ctx.lineTo(...edge.end);
}
if (edge.type == "rect") {
ctx.moveTo(...edge.start);
ctx.lineTo(edge.start[0], edge.end[1]);
ctx.lineTo(...edge.end);
ctx.lineTo(edge.end[0], edge.start[1]);
ctx.lineTo(...edge.start);
}
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 ("svgpath" in shape) {
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 (!("svgpath" in shape)) {
ctx.translate(...shape.pos);
ctx.rotate(deg2rad(-shape.angle));
}
ctx.fill(getPolygonsPath(shape));
ctx.restore();
}
function drawDrawing(ctx, 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);
}
}
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) {
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);
}
ctx.restore();
}
function drawPadHole(ctx, pad, padHoleColor) {
if (pad.type != "th") return;
ctx.save();
ctx.translate(...pad.pos);
ctx.rotate(deg2rad(pad.angle));
ctx.fillStyle = padHoleColor;
if (pad.drillshape == "oblong") {
ctx.fill(getOblongPath(pad.drillsize));
} else {
ctx.fill(getCirclePath(pad.drillsize[0] / 2));
}
ctx.restore();
}
function drawFootprint(ctx, layer, scalefactor, footprint, padColor, padHoleColor, outlineColor, highlight, outline) {
if (highlight) {
// draw bounding box
if (footprint.layer == layer) {
ctx.save();
ctx.globalAlpha = 0.2;
ctx.translate(...footprint.bbox.pos);
ctx.rotate(deg2rad(-footprint.bbox.angle));
ctx.translate(...footprint.bbox.relpos);
ctx.fillStyle = padColor;
ctx.fillRect(0, 0, ...footprint.bbox.size);
ctx.globalAlpha = 1;
ctx.strokeStyle = padColor;
ctx.strokeRect(0, 0, ...footprint.bbox.size);
ctx.restore();
}
}
// draw drawings
for (var drawing of footprint.drawings) {
if (drawing.layer == layer) {
drawDrawing(ctx, scalefactor, drawing.drawing, padColor);
}
}
// draw pads
if (settings.renderPads) {
for (var pad of footprint.pads) {
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padColor, outline);
if (pad.pin1 && settings.highlightpin1) {
drawPad(ctx, pad, outlineColor, true);
}
}
}
for (var pad of footprint.pads) {
drawPadHole(ctx, pad, padHoleColor);
}
}
}
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 drawFootprints(canvas, layer, scalefactor, highlight) {
var ctx = canvas.getContext("2d");
ctx.lineWidth = 3 / scalefactor;
var style = getComputedStyle(topmostdiv);
var padColor = style.getPropertyValue('--pad-color');
var padHoleColor = style.getPropertyValue('--pad-hole-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.footprints.length; i++) {
var mod = pcbdata.footprints[i];
var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
if (!highlight || highlightedFootprints.includes(i)) {
drawFootprint(ctx, layer, scalefactor, mod, padColor, padHoleColor, outlineColor, highlight, outline);
}
}
}
function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
var ctx = canvas.getContext("2d");
for (var d of pcbdata.drawings[layername][layer]) {
if (["segment", "arc", "circle", "curve", "rect"].includes(d.type)) {
drawedge(ctx, scalefactor, d, edgeColor);
} else if (d.type == "polygon") {
drawPolygonShape(ctx, d, polygonColor);
} else {
drawText(ctx, d, textColor);
}
}
}
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();
if ('radius' in track) {
ctx.arc(
...track.center,
track.radius,
deg2rad(track.startangle),
deg2rad(track.endangle));
} else {
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.fill(zone.path2d);
if (zone.width > 0) {
ctx.lineWidth = zone.width;
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 padHoleColor = style.getPropertyValue('--pad-hole-color');
var ctx = canvas.getContext("2d");
for (var footprint of pcbdata.footprints) {
// draw pads
var padDrawn = false;
for (var pad of footprint.pads) {
if (highlightedNet != pad.net) continue;
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padColor, false);
padDrawn = true;
}
}
if (padDrawn) {
// redraw all pad holes because some pads may overlap
for (var pad of footprint.pads) {
drawPadHole(ctx, pad, padHoleColor);
}
}
}
}
}
function drawHighlightsOnLayer(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.highlight);
}
if (highlightedFootprints.length > 0) {
drawFootprints(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);
drawFootprints(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 modulo(n, mod) {
return ((n % mod) + mod ) % mod;
}
function pointWithinDistanceToArc(x, y, xc, yc, radius, startangle, endangle, d) {
var dx = x - xc;
var dy = y - yc;
var r_sq = dx * dx + dy * dy;
var rmin = Math.max(0, radius-d);
var rmax = radius + d;
if (r_sq < rmin * rmin || r_sq > rmax * rmax)
return false;
var angle1 = modulo(deg2rad(startangle), 2 * Math.PI);
var dx1 = xc + radius * Math.cos(angle1) - x;
var dy1 = yc + radius * Math.sin(angle1) - y;
if (dx1 * dx1 + dy1 * dy1 <= d * d)
return true;
var angle2 = modulo(deg2rad(endangle), 2 * Math.PI);
var dx2 = xc + radius * Math.cos(angle2) - x;
var dy2 = yc + radius * Math.sin(angle2) - y;
if (dx2 * dx2 + dy2 * dy2 <= d * d)
return true;
var angle = modulo(Math.atan2(dy, dx), 2 * Math.PI);
if (angle1 > angle2)
return (angle >= angle2 || angle <= angle1);
else
return (angle >= angle1 && angle <= angle2);
}
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 ('radius' in track) {
if (pointWithinDistanceToArc(x, y, ...track.center, track.radius, track.startangle, track.endangle, track.width / 2)) {
return track.net;
}
} else {
if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
return track.net;
}
}
}
}
// Check pads
if (settings.renderPads) {
for (var footprint of pcbdata.footprints) {
for(var pad of footprint.pads) {
if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
return pad.net;
}
}
}
}
return null;
}
function pointWithinFootprintBbox(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.footprints.length; i++) {
var footprint = pcbdata.footprints[i];
if (footprint.layer == layer) {
if (pointWithinFootprintBbox(x, y, footprint.bbox)) {
result.push(i);
}
}
}
return result;
}
function handlePointerDown(e, layerdict) {
if (e.button != 0 && e.button != 1) {
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 footprints = bboxHitScan(layerdict.layer, ...v);
if (footprints.length > 0) {
footprintsClicked(footprints);
}
}
}
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 footprintIndexToHandler = {};
var netsToHandler = {};
var highlightedFootprints = [];
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.footprints.length; i++) {
if (pcbdata.footprints[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, row) {
return function() {
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) {
row.classList.add("checked");
}
eventArgs.state = 'checked';
} else {
// checkbox unticked
for (var ref of references) {
refsSet.delete(ref[1]);
}
if (darkenWhenChecked) {
row.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 clearHighlightedFootprints() {
if (currentHighlightedRowId) {
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
currentHighlightedRowId = null;
highlightedFootprints = [];
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;
highlightedFootprints = 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 = [];
footprintIndexToHandler = {};
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, tr);
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])) {
footprintIndexToHandler[refIndex] = handler;
}
}
if (netname !== null) {
netsToHandler[netname] = handler;
}
if ((filter || reflookup) && first) {
handler();
first = false;
}
}
EventHandler.emitEvent(
IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT,
{
filter: filter,
reflookup: reflookup,
checkboxes: settings.checkboxes,
bommode: settings.bommode,
});
}
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 footprintsClicked(footprintIndexes) {
var lastClickedIndex = footprintIndexes.indexOf(lastClicked);
for (var i = 1; i <= footprintIndexes.length; i++) {
var refIndex = footprintIndexes[(lastClickedIndex + i) % footprintIndexes.length];
if (refIndex in footprintIndexToHandler) {
lastClicked = refIndex;
footprintIndexToHandler[refIndex]();
smoothScrollToRow(currentHighlightedRowId);
break;
}
}
}
function netClicked(net) {
if (net in netsToHandler) {
netsToHandler[net]();
smoothScrollToRow(currentHighlightedRowId);
} else {
clearHighlightedFootprints();
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.footprints.length; i++) {
if (pcbdata.bom.skipped.includes(i)) continue;
var mod = pcbdata.footprints[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;
clearHighlightedFootprints();
}
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.footprints.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>