planktoscope/hardware/HAT/PlanktoscopeHat-v0.1-fab-interactive.html
Romain Bazile 7d67e9103b hardware: hat fab files
(cherry picked from commit 8a2ba7d7322f03550dc010669ea8b1d036b7b47b)
2021-06-18 11:23:14 +02:00

3635 lines
302 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive BOM for KiCAD</title>
<style type="text/css">
:root {
--pcb-edge-color: black;
--pad-color: #878787;
--pad-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();
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 pointWithinPad(x, y, pad) {
var v = [x - pad.pos[0], y - pad.pos[1]];
v = rotateVector(v, -pad.angle);
if (pad.offset) {
v[0] -= pad.offset[0];
v[1] -= pad.offset[1];
}
return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}
function netHitScan(layer, x, y) {
// Check track segments
if (settings.renderTracks && pcbdata.tracks) {
for(var track of pcbdata.tracks[layer]) {
if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
return track.net;
}
}
}
// Check pads
if (settings.renderPads) {
for (var 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>