1
0
mirror of https://github.com/UzixLS/zx-sizif-xxs.git synced 2025-07-18 23:01:40 +03:00
Files
zx-sizif-xxs/out/bom_interactive.rev.B.html
2022-02-19 20:11:07 +03:00

4346 lines
359 KiB
HTML
Vendored

<!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;
--pad-color-highlight-both: #D0D040;
--pad-color-highlight-marked: #44a344;
--pin1-outline-color: #ffb629;
--pin1-outline-color-highlight: #ffb629;
--pin1-outline-color-highlight-both: #fcbb39;
--pin1-outline-color-highlight-marked: #fdbe41;
--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;
position: relative;
}
.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: #1cb53d;
}
.dark .bom tr.checked {
color: #2cce54;
}
.bom tr {
transition: background-color 0.2s;
}
.bom .numCol {
width: 30px;
}
.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;
}
.visbtn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' stroke='%23333' d='M2.5 4.5h5v15h-5zM9.5 4.5h5v15h-5zM16.5 4.5h5v15h-5z'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
padding: 15px;
}
#vismenu-content {
left: 0px;
font-family: Verdana, sans-serif;
}
.dark .statsbtn,
.dark .savebtn,
.dark .menubtn,
.dark .iobtn,
.dark .visbtn {
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 {
font-size: 12pt !important;
text-align: left !important;
font-weight: normal !important;
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;
}
.placeholder {
border: 1px dashed #9f9fda !important;
background-color: #edf2f7 !important;
}
.dragging {
z-index: 999;
}
.dark .dragging>table>tbody>tr {
background-color: #252c30;
}
.dark .placeholder {
filter: invert(1);
}
.column-spacer {
top: 0;
left: 0;
width: calc(100% - 4px);
position: absolute;
cursor: pointer;
user-select: none;
height: 100%;
}
.column-width-handle {
top: 0;
right: 0;
width: 4px;
position: absolute;
cursor: col-resize;
user-select: none;
height: 100%;
}
.column-width-handle:hover {
background-color: #4f99bd;
}
</style>
<script type="text/javascript" >
///////////////////////////////////////////////
/*
Split.js - v1.3.5
MIT License
https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});
///////////////////////////////////////////////
///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////
///////////////////////////////////////////////
/*!
* PEP v0.4.3 | https://github.com/jquery/PEP
* Copyright jQuery Foundation and other contributors | http://jquery.org/license
*/
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});
///////////////////////////////////////////////
///////////////////////////////////////////////
var config = {"show_fabrication": false, "redraw_on_drag": true, "highlight_pin1": false, "fields": ["Value", "Footprint"], "dark_mode": false, "bom_view": "left-right", "board_rotation": 0, "checkboxes": "Sourced,Placed", "show_silkscreen": true, "show_pads": true, "layer_view": "FB"}
///////////////////////////////////////////////
///////////////////////////////////////////////
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.*)?$", "");
if (config.fields.includes("Value")) {
var index = config.fields.indexOf("Value");
pcbdata.bom["parsedValues"] = {};
for (var id in pcbdata.bom.fields) {
pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index])
}
}
}
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("markWhenChecked", settings.markWhenChecked);
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;
showFootprints(settings.show_footprints);
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,
columnOrder: [],
hiddenColumns: [],
}
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.markWhenChecked = readStorage("markWhenChecked") || "";
populateMarkWhenCheckedOptions();
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);
var fields = ["checkboxes", "References"].concat(config.fields).concat(["Quantity"]);
var hcols = JSON.parse(readStorage("hiddenColumns"));
if (hcols === null) {
hcols = [];
}
settings.hiddenColumns = hcols.filter(e => fields.includes(e));
var cord = JSON.parse(readStorage("columnOrder"));
if (cord === null) {
cord = fields;
} else {
cord = cord.filter(e => fields.includes(e));
if (cord.length != fields.length)
cord = fields;
}
settings.columnOrder = cord;
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.fillStyle = color;
ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
ctx.lineCap = "round";
ctx.lineJoin = "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);
}
if("filled" in edge && edge.filled)
ctx.fill();
else
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, scalefactor, shape, color) {
ctx.save();
if (!("svgpath" in shape)) {
ctx.translate(...shape.pos);
ctx.rotate(deg2rad(-shape.angle));
}
if("filled" in shape && !shape.filled) {
ctx.strokeStyle = color;
ctx.lineWidth = Math.max(1 / scalefactor, shape.width);
ctx.lineCap = "round";
ctx.lineJoin = "round";
ctx.stroke(getPolygonsPath(shape));
} else {
ctx.fillStyle = color;
ctx.fill(getPolygonsPath(shape));
}
ctx.restore();
}
function drawDrawing(ctx, scalefactor, drawing, color) {
if (["segment", "arc", "circle", "curve", "rect"].includes(drawing.type)) {
drawedge(ctx, scalefactor, drawing, color);
} else if (drawing.type == "polygon") {
drawPolygonShape(ctx, scalefactor, 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, colors, 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 = colors.pad;
ctx.fillRect(0, 0, ...footprint.bbox.size);
ctx.globalAlpha = 1;
ctx.strokeStyle = colors.pad;
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, colors.pad);
}
}
// draw pads
if (settings.renderPads) {
for (var pad of footprint.pads) {
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, colors.pad, outline);
if (pad.pin1 && settings.highlightpin1) {
drawPad(ctx, pad, colors.outline, true);
}
}
}
for (var pad of footprint.pads) {
drawPadHole(ctx, pad, colors.padHole);
}
}
}
function drawEdgeCuts(canvas, scalefactor) {
var ctx = canvas.getContext("2d");
var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
for (var edge of pcbdata.edges) {
drawDrawing(ctx, scalefactor, edge, edgecolor);
}
}
function drawFootprints(canvas, layer, scalefactor, highlight) {
var ctx = canvas.getContext("2d");
ctx.lineWidth = 3 / scalefactor;
var style = getComputedStyle(topmostdiv);
var colors = {
pad: style.getPropertyValue('--pad-color'),
padHole: style.getPropertyValue('--pad-hole-color'),
outline: style.getPropertyValue('--pin1-outline-color'),
}
for (var i = 0; i < pcbdata.footprints.length; i++) {
var mod = pcbdata.footprints[i];
var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
var h = highlightedFootprints.includes(i);
var d = markedFootprints.has(i);
if (highlight) {
if(h && d) {
colors.pad = style.getPropertyValue('--pad-color-highlight-both');
colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-both');
} else if (h) {
colors.pad = style.getPropertyValue('--pad-color-highlight');
colors.outline = style.getPropertyValue('--pin1-outline-color-highlight');
} else if (d) {
colors.pad = style.getPropertyValue('--pad-color-highlight-marked');
colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-marked');
}
}
if( h || d || !highlight) {
drawFootprint(ctx, layer, scalefactor, mod, colors, 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, scalefactor, d, polygonColor);
} else {
drawText(ctx, d, textColor);
}
}
}
function drawTracks(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.lineCap = "round";
for (var track of pcbdata.tracks[layer]) {
if (highlight && highlightedNet != track.net) continue;
ctx.lineWidth = track.width;
ctx.beginPath();
if ('radius' in track) {
ctx.arc(
...track.center,
track.radius,
deg2rad(track.startangle),
deg2rad(track.endangle));
} else {
ctx.moveTo(...track.start);
ctx.lineTo(...track.end);
}
ctx.stroke();
}
}
function drawZones(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.fillStyle = color;
ctx.lineJoin = "round";
for (var zone of pcbdata.zones[layer]) {
if (!zone.path2d) {
zone.path2d = getPolygonsPath(zone);
}
if (highlight && highlightedNet != zone.net) continue;
ctx.fill(zone.path2d);
if (zone.width > 0) {
ctx.lineWidth = zone.width;
ctx.stroke(zone.path2d);
}
}
}
function clearCanvas(canvas, color = null) {
var ctx = canvas.getContext("2d");
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
if (color) {
ctx.fillStyle = color;
ctx.fillRect(0, 0, canvas.width, canvas.height);
} else {
if (!window.matchMedia("print").matches)
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 (markedFootprints.size > 0 || 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 * canvasdict.transform.zoom);
var style = getComputedStyle(topmostdiv);
var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
var textColor = style.getPropertyValue('--silkscreen-text-color');
if (settings.renderSilkscreen) {
drawBgLayer(
"silkscreen", canvasdict.silk, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
edgeColor = style.getPropertyValue('--fabrication-edge-color');
polygonColor = style.getPropertyValue('--fabrication-polygon-color');
textColor = style.getPropertyValue('--fabrication-text-color');
if (settings.renderFabrication) {
drawBgLayer(
"fabrication", canvasdict.fab, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
}
function prepareCanvas(canvas, flip, transform) {
var ctx = canvas.getContext("2d");
ctx.setTransform(1, 0, 0, 1, 0, 0);
var fontsize = 1.55;
ctx.scale(transform.zoom, transform.zoom);
ctx.translate(transform.panx, transform.pany);
if (flip) {
ctx.scale(-1, 1);
}
ctx.translate(transform.x, transform.y);
ctx.rotate(deg2rad(settings.boardRotation));
ctx.scale(transform.s, transform.s);
}
function prepareLayer(canvasdict) {
var flip = (canvasdict.layer == "B");
for (var c of ["bg", "fab", "silk", "highlight"]) {
prepareCanvas(canvasdict[c], flip, canvasdict.transform);
}
}
function rotateVector(v, angle) {
angle = deg2rad(angle);
return [
v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
];
}
function applyRotation(bbox) {
var corners = [
[bbox.minx, bbox.miny],
[bbox.minx, bbox.maxy],
[bbox.maxx, bbox.miny],
[bbox.maxx, bbox.maxy],
];
corners = corners.map((v) => rotateVector(v, settings.boardRotation));
return {
minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
}
}
function recalcLayerScale(layerdict, width, height) {
var bbox = applyRotation(pcbdata.edges_bbox);
var scalefactor = 0.98 * Math.min(
width / (bbox.maxx - bbox.minx),
height / (bbox.maxy - bbox.miny)
);
if (scalefactor < 0.1) {
scalefactor = 1;
}
layerdict.transform.s = scalefactor;
var flip = (layerdict.layer == "B");
if (flip) {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
} else {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
}
layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
for (var c of ["bg", "fab", "silk", "highlight"]) {
canvas = layerdict[c];
canvas.width = width;
canvas.height = height;
canvas.style.width = (width / devicePixelRatio) + "px";
canvas.style.height = (height / devicePixelRatio) + "px";
}
}
function redrawCanvas(layerdict) {
prepareLayer(layerdict);
drawBackground(layerdict);
drawHighlightsOnLayer(layerdict);
}
function resizeCanvas(layerdict) {
var canvasdivid = {
"F": "frontcanvas",
"B": "backcanvas"
} [layerdict.layer];
var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
recalcLayerScale(layerdict, width, height);
redrawCanvas(layerdict);
}
function resizeAll() {
resizeCanvas(allcanvas.front);
resizeCanvas(allcanvas.back);
}
function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
var A = x - x1;
var B = y - y1;
var C = x2 - x1;
var D = y2 - y1;
var dot = A * C + B * D;
var len_sq = C * C + D * D;
var dx, dy;
if (len_sq == 0) {
// start and end of the segment coincide
dx = x - x1;
dy = y - y1;
} else {
var param = dot / len_sq;
var xx, yy;
if (param < 0) {
xx = x1;
yy = y1;
} else if (param > 1) {
xx = x2;
yy = y2;
} else {
xx = x1 + param * C;
yy = y1 + param * D;
}
dx = x - xx;
dy = y - yy;
}
return dx * dx + dy * dy <= d * d;
}
function modulo(n, mod) {
return ((n % mod) + mod) % mod;
}
function pointWithinDistanceToArc(x, y, xc, yc, radius, startangle, endangle, d) {
var dx = x - xc;
var dy = y - yc;
var r_sq = dx * dx + dy * dy;
var rmin = Math.max(0, radius - d);
var rmax = radius + d;
if (r_sq < rmin * rmin || r_sq > rmax * rmax)
return false;
var angle1 = modulo(deg2rad(startangle), 2 * Math.PI);
var dx1 = xc + radius * Math.cos(angle1) - x;
var dy1 = yc + radius * Math.sin(angle1) - y;
if (dx1 * dx1 + dy1 * dy1 <= d * d)
return true;
var angle2 = modulo(deg2rad(endangle), 2 * Math.PI);
var dx2 = xc + radius * Math.cos(angle2) - x;
var dy2 = yc + radius * Math.sin(angle2) - y;
if (dx2 * dx2 + dy2 * dy2 <= d * d)
return true;
var angle = modulo(Math.atan2(dy, dx), 2 * Math.PI);
if (angle1 > angle2)
return (angle >= angle2 || angle <= angle1);
else
return (angle >= angle1 && angle <= angle2);
}
function pointWithinPad(x, y, pad) {
var v = [x - pad.pos[0], y - pad.pos[1]];
v = rotateVector(v, -pad.angle);
if (pad.offset) {
v[0] -= pad.offset[0];
v[1] -= pad.offset[1];
}
return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}
function netHitScan(layer, x, y) {
// Check track segments
if (settings.renderTracks && pcbdata.tracks) {
for (var track of pcbdata.tracks[layer]) {
if ('radius' in track) {
if (pointWithinDistanceToArc(x, y, ...track.center, track.radius, track.startangle, track.endangle, track.width / 2)) {
return track.net;
}
} else {
if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
return track.net;
}
}
}
}
// Check pads
if (settings.renderPads) {
for (var footprint of pcbdata.footprints) {
for (var pad of footprint.pads) {
if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
return pad.net;
}
}
}
}
return null;
}
function pointWithinFootprintBbox(x, y, bbox) {
var v = [x - bbox.pos[0], y - bbox.pos[1]];
v = rotateVector(v, bbox.angle);
return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}
function bboxHitScan(layer, x, y) {
var result = [];
for (var i = 0; i < pcbdata.footprints.length; i++) {
var footprint = pcbdata.footprints[i];
if (footprint.layer == layer) {
if (pointWithinFootprintBbox(x, y, footprint.bbox)) {
result.push(i);
}
}
}
return result;
}
function handlePointerDown(e, layerdict) {
if (e.button != 0 && e.button != 1) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
layerdict.pointerStates[e.pointerId] = {
distanceTravelled: 0,
lastX: e.offsetX,
lastY: e.offsetY,
downTime: Date.now(),
};
}
function handleMouseClick(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var x = e.offsetX;
var y = e.offsetY;
var t = layerdict.transform;
if (layerdict.layer == "B") {
x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
} else {
x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
}
y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
var v = rotateVector([x, y], -settings.boardRotation);
if ("nets" in pcbdata) {
var net = netHitScan(layerdict.layer, ...v);
if (net !== highlightedNet) {
netClicked(net);
}
}
if (highlightedNet === null) {
var footprints = bboxHitScan(layerdict.layer, ...v);
if (footprints.length > 0) {
footprintsClicked(footprints);
}
}
}
function handlePointerLeave(e, layerdict) {
e.preventDefault();
e.stopPropagation();
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
delete layerdict.pointerStates[e.pointerId];
}
function resetTransform(layerdict) {
layerdict.transform.panx = 0;
layerdict.transform.pany = 0;
layerdict.transform.zoom = 1;
redrawCanvas(layerdict);
}
function handlePointerUp(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
e.preventDefault();
e.stopPropagation();
if (e.button == 2) {
// Reset pan and zoom on right click.
resetTransform(layerdict);
layerdict.anotherPointerTapped = false;
return;
}
// We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
var ptr = layerdict.pointerStates[e.pointerId];
ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);
if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
if (Object.keys(layerdict.pointerStates).length == 1) {
if (layerdict.anotherPointerTapped) {
// This is the second pointer coming off of a two-finger tap
resetTransform(layerdict);
} else {
// This is just a regular tap
handleMouseClick(e, layerdict);
}
layerdict.anotherPointerTapped = false;
} else {
// This is the first finger coming off of what could become a two-finger tap
layerdict.anotherPointerTapped = true;
}
} else {
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
layerdict.anotherPointerTapped = false;
}
delete layerdict.pointerStates[e.pointerId];
}
function handlePointerMove(e, layerdict) {
if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var thisPtr = layerdict.pointerStates[e.pointerId];
var dx = e.offsetX - thisPtr.lastX;
var dy = e.offsetY - thisPtr.lastY;
// If this number is low on pointer up, we count the action as a click
thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);
if (Object.keys(layerdict.pointerStates).length == 1) {
// This is a simple drag
layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
} else if (Object.keys(layerdict.pointerStates).length == 2) {
var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];
var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));
var scaleFactor = newDist / oldDist;
if (scaleFactor != NaN) {
layerdict.transform.zoom *= scaleFactor;
var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
}
}
thisPtr.lastX = e.offsetX;
thisPtr.lastY = e.offsetY;
if (settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
}
function handleMouseWheel(e, layerdict) {
e.preventDefault();
e.stopPropagation();
var t = layerdict.transform;
var wheeldelta = e.deltaY;
if (e.deltaMode == 1) {
// FF only, scroll by lines
wheeldelta *= 30;
} else if (e.deltaMode == 2) {
wheeldelta *= 300;
}
var m = Math.pow(1.1, -wheeldelta / 40);
// Limit amount of zoom per tick.
if (m > 2) {
m = 2;
} else if (m < 0.5) {
m = 0.5;
}
t.zoom *= m;
var zoomd = (1 - m) / t.zoom;
t.panx += devicePixelRatio * e.offsetX * zoomd;
t.pany += devicePixelRatio * e.offsetY * zoomd;
redrawCanvas(layerdict);
}
function addMouseHandlers(div, layerdict) {
div.addEventListener("pointerdown", function(e) {
handlePointerDown(e, layerdict);
});
div.addEventListener("pointermove", function(e) {
handlePointerMove(e, layerdict);
});
div.addEventListener("pointerup", function(e) {
handlePointerUp(e, layerdict);
});
var pointerleave = function(e) {
handlePointerLeave(e, layerdict);
}
div.addEventListener("pointercancel", pointerleave);
div.addEventListener("pointerleave", pointerleave);
div.addEventListener("pointerout", pointerleave);
div.onwheel = function(e) {
handleMouseWheel(e, layerdict);
}
for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
element.addEventListener("contextmenu", function(e) {
e.preventDefault();
}, false);
}
}
function setRedrawOnDrag(value) {
settings.redrawOnDrag = value;
writeStorage("redrawOnDrag", value);
}
function setBoardRotation(value) {
settings.boardRotation = value * 5;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("rotationDegree").textContent = settings.boardRotation;
resizeAll();
}
function initRender() {
allcanvas = {
front: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("F_bg"),
fab: document.getElementById("F_fab"),
silk: document.getElementById("F_slk"),
highlight: document.getElementById("F_hl"),
layer: "F",
},
back: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("B_bg"),
fab: document.getElementById("B_fab"),
silk: document.getElementById("B_slk"),
highlight: document.getElementById("B_hl"),
layer: "B",
}
};
addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}
///////////////////////////////////////////////
///////////////////////////////////////////////
/*
* Table reordering via Drag'n'Drop
* Inspired by: https://htmldom.dev/drag-and-drop-table-column
*/
function setBomHandlers() {
const bom = document.getElementById('bomtable');
let dragName;
let placeHolderElements;
let draggingElement;
let forcePopulation;
let xOffset;
let yOffset;
let wasDragged;
const mouseUpHandler = function(e) {
// Delete dragging element
draggingElement.remove();
// Make BOM selectable again
bom.style.removeProperty("userSelect");
// Remove listeners
document.removeEventListener('mousemove', mouseMoveHandler);
document.removeEventListener('mouseup', mouseUpHandler);
if (wasDragged) {
// Redraw whole BOM
populateBomTable();
}
}
const mouseMoveHandler = function(e) {
// Notice the dragging
wasDragged = true;
// Make the dragged element visible
draggingElement.style.removeProperty("display");
// Set elements position to mouse position
draggingElement.style.left = `${e.screenX - xOffset}px`;
draggingElement.style.top = `${e.screenY - yOffset}px`;
// Forced redrawing of BOM table
if (forcePopulation) {
forcePopulation = false;
// Copy array
phe = Array.from(placeHolderElements);
// populate BOM table again
populateBomHeader(dragName, phe);
populateBomBody(dragName, phe);
}
// Set up array of hidden columns
var hiddenColumns = Array.from(settings.hiddenColumns);
// In the ungrouped mode, quantity don't exist
if (settings.bommode === "ungrouped")
hiddenColumns.push("Quantity");
// If no checkbox fields can be found, we consider them hidden
if (settings.checkboxes.length == 0)
hiddenColumns.push("checkboxes");
// Get table headers and group them into checkboxes, extrafields and normal headers
const bh = document.getElementById("bomhead");
headers = Array.from(bh.querySelectorAll("th"))
headers.shift() // numCol is not part of the columnOrder
headerGroups = []
lastCompoundClass = null;
for (i = 0; i < settings.columnOrder.length; i++) {
cElem = settings.columnOrder[i];
if (hiddenColumns.includes(cElem)) {
// Hidden columns appear as a dummy element
headerGroups.push([]);
continue;
}
elem = headers.filter(e => getColumnOrderName(e) === cElem)[0];
if (elem.classList.contains("bom-checkbox")) {
if (lastCompoundClass === "bom-checkbox") {
cbGroup = headerGroups.pop();
cbGroup.push(elem);
headerGroups.push(cbGroup);
} else {
lastCompoundClass = "bom-checkbox";
headerGroups.push([elem])
}
} else {
headerGroups.push([elem])
}
}
// Copy settings.columnOrder
var columns = Array.from(settings.columnOrder)
// Set up array with indices of hidden columns
var hiddenIndices = hiddenColumns.map(e => settings.columnOrder.indexOf(e));
var dragIndex = columns.indexOf(dragName);
var swapIndex = dragIndex;
var swapDone = false;
// Check if the current dragged element is swapable with the left or right element
if (dragIndex > 0) {
// Get left headers boundingbox
swapIndex = dragIndex - 1;
while (hiddenIndices.includes(swapIndex) && swapIndex > 0)
swapIndex--;
if (!hiddenIndices.includes(swapIndex)) {
box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
if (e.clientX < box.left + window.scrollX + (box.width / 2)) {
swapElement = columns[dragIndex];
columns.splice(dragIndex, 1);
columns.splice(swapIndex, 0, swapElement);
forcePopulation = true;
swapDone = true;
}
}
}
if ((!swapDone) && dragIndex < headerGroups.length - 1) {
// Get right headers boundingbox
swapIndex = dragIndex + 1;
while (hiddenIndices.includes(swapIndex))
swapIndex++;
if (swapIndex < headerGroups.length) {
box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
if (e.clientX > box.left + window.scrollX + (box.width / 2)) {
swapElement = columns[dragIndex];
columns.splice(dragIndex, 1);
columns.splice(swapIndex, 0, swapElement);
forcePopulation = true;
swapDone = true;
}
}
}
// Write back change to storage
if (swapDone) {
settings.columnOrder = columns
writeStorage("columnOrder", JSON.stringify(columns));
}
}
const mouseDownHandler = function(e) {
var target = e.target;
if (target.tagName.toLowerCase() != "td")
target = target.parentElement;
// Used to check if a dragging has ever happened
wasDragged = false;
// Create new element which will be displayed as the dragged column
draggingElement = document.createElement("div")
draggingElement.classList.add("dragging");
draggingElement.style.display = "none";
draggingElement.style.position = "absolute";
draggingElement.style.overflow = "hidden";
// Get bomhead and bombody elements
const bh = document.getElementById("bomhead");
const bb = document.getElementById("bombody");
// Get all compound headers for the current column
var compoundHeaders;
if (target.classList.contains("bom-checkbox")) {
compoundHeaders = Array.from(bh.querySelectorAll("th.bom-checkbox"));
} else {
compoundHeaders = [target];
}
// Create new table which will display the column
var newTable = document.createElement("table");
newTable.classList.add("bom");
newTable.style.background = "white";
draggingElement.append(newTable);
// Create new header element
var newHeader = document.createElement("thead");
newTable.append(newHeader);
// Set up array for storing all placeholder elements
placeHolderElements = [];
// Add all compound headers to the new thead element and placeholders
compoundHeaders.forEach(function(h) {
clone = cloneElementWithDimensions(h);
newHeader.append(clone);
placeHolderElements.push(clone);
});
// Create new body element
var newBody = document.createElement("tbody");
newTable.append(newBody);
// Get indices for compound headers
var idxs = compoundHeaders.map(e => getBomTableHeaderIndex(e));
// For each row in the BOM body...
var rows = bb.querySelectorAll("tr");
rows.forEach(function(row) {
// ..get the cells for the compound column
const tds = row.querySelectorAll("td");
var copytds = idxs.map(i => tds[i]);
// Add them to the new element and the placeholders
var newRow = document.createElement("tr");
copytds.forEach(function(td) {
clone = cloneElementWithDimensions(td);
newRow.append(clone);
placeHolderElements.push(clone);
});
newBody.append(newRow);
});
// Compute width for compound header
var width = compoundHeaders.reduce((acc, x) => acc + x.clientWidth, 0);
draggingElement.style.width = `${width}px`;
// Insert the new dragging element and disable selection on BOM
bom.insertBefore(draggingElement, null);
bom.style.userSelect = "none";
// Determine the mouse position offset
xOffset = e.screenX - compoundHeaders.reduce((acc, x) => Math.min(acc, x.offsetLeft), compoundHeaders[0].offsetLeft);
yOffset = e.screenY - compoundHeaders[0].offsetTop;
// Get name for the column in settings.columnOrder
dragName = getColumnOrderName(target);
// Change text and class for placeholder elements
placeHolderElements = placeHolderElements.map(function(e) {
newElem = cloneElementWithDimensions(e);
newElem.textContent = "";
newElem.classList.add("placeholder");
return newElem;
});
// On next mouse move, the whole BOM needs to be redrawn to show the placeholders
forcePopulation = true;
// Add listeners for move and up on mouse
document.addEventListener('mousemove', mouseMoveHandler);
document.addEventListener('mouseup', mouseUpHandler);
}
// In netlist mode, there is nothing to reorder
if (settings.bommode === "netlist")
return;
// Add mouseDownHandler to every column except the numCol
bom.querySelectorAll("th")
.forEach(function(head) {
if (!head.classList.contains("numCol")) {
head.onmousedown = mouseDownHandler;
}
});
}
function getBoundingClientRectFromMultiple(elements) {
var elems = Array.from(elements);
if (elems.length == 0)
return null;
var box = elems.shift()
.getBoundingClientRect();
elems.forEach(function(elem) {
var elembox = elem.getBoundingClientRect();
box.left = Math.min(elembox.left, box.left);
box.top = Math.min(elembox.top, box.top);
box.width += elembox.width;
box.height = Math.max(elembox.height, box.height);
});
return box;
}
function cloneElementWithDimensions(elem) {
var newElem = elem.cloneNode(true);
newElem.style.height = window.getComputedStyle(elem).height;
newElem.style.width = window.getComputedStyle(elem).width;
return newElem;
}
function getBomTableHeaderIndex(elem) {
const bh = document.getElementById('bomhead');
const ths = Array.from(bh.querySelectorAll("th"));
return ths.indexOf(elem);
}
function getColumnOrderName(elem) {
var cname = elem.getAttribute("col_name");
if (cname === "bom-checkbox")
return "checkboxes";
else
return cname;
}
function resizableGrid(tablehead) {
var cols = tablehead.firstElementChild.children;
var rowWidth = tablehead.offsetWidth;
for (var i = 1; i < cols.length; i++) {
if (cols[i].classList.contains("bom-checkbox"))
continue;
cols[i].style.width = ((cols[i].clientWidth - paddingDiff(cols[i])) * 100 / rowWidth) + '%';
}
for (var i = 1; i < cols.length - 1; i++) {
var div = document.createElement('div');
div.className = "column-width-handle";
cols[i].appendChild(div);
setListeners(div);
}
function setListeners(div) {
var startX, curCol, nxtCol, curColWidth, nxtColWidth, rowWidth;
div.addEventListener('mousedown', function(e) {
e.preventDefault();
e.stopPropagation();
curCol = e.target.parentElement;
nxtCol = curCol.nextElementSibling;
startX = e.pageX;
var padding = paddingDiff(curCol);
rowWidth = curCol.parentElement.offsetWidth;
curColWidth = curCol.clientWidth - padding;
nxtColWidth = nxtCol.clientWidth - padding;
});
document.addEventListener('mousemove', function(e) {
if (startX) {
var diffX = e.pageX - startX;
diffX = -Math.min(-diffX, curColWidth - 20);
diffX = Math.min(diffX, nxtColWidth - 20);
curCol.style.width = ((curColWidth + diffX) * 100 / rowWidth) + '%';
nxtCol.style.width = ((nxtColWidth - diffX) * 100 / rowWidth) + '%';
console.log(`${curColWidth + nxtColWidth} ${(curColWidth + diffX) * 100 / rowWidth + (nxtColWidth - diffX) * 100 / rowWidth}`);
}
});
document.addEventListener('mouseup', function(e) {
curCol = undefined;
nxtCol = undefined;
startX = undefined;
nxtColWidth = undefined;
curColWidth = undefined
});
}
function paddingDiff(col) {
if (getStyleVal(col, 'box-sizing') == 'border-box') {
return 0;
}
var padLeft = getStyleVal(col, 'padding-left');
var padRight = getStyleVal(col, 'padding-right');
return (parseInt(padLeft) + parseInt(padRight));
}
function getStyleVal(elm, css) {
return (window.getComputedStyle(elm, null).getPropertyValue(css))
}
}
///////////////////////////////////////////////
///////////////////////////////////////////////
/* 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 markedFootprints = new Set();
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 setShowBOMColumn(field, value) {
if (field === "references") {
var rl = document.getElementById("reflookup");
rl.disabled = !value;
if (!value) {
rl.value = "";
updateRefLookup("");
}
}
var n = settings.hiddenColumns.indexOf(field);
if (value) {
if (n != -1) {
settings.hiddenColumns.splice(n, 1);
}
} else {
if (n == -1) {
settings.hiddenColumns.push(field);
}
}
writeStorage("hiddenColumns", JSON.stringify(settings.hiddenColumns));
if (initDone) {
populateBomTable();
}
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 markWhenChecked = settings.markWhenChecked == checkbox;
eventArgs = {
checkbox: checkbox,
refs: references,
}
if (this.checked) {
// checkbox ticked
for (var ref of references) {
refsSet.add(ref[1]);
}
if (markWhenChecked) {
row.classList.add("checked");
for (var ref of references) {
markedFootprints.add(ref[1]);
}
drawHighlights();
}
eventArgs.state = 'checked';
} else {
// checkbox unticked
for (var ref of references) {
refsSet.delete(ref[1]);
}
if (markWhenChecked) {
row.classList.remove("checked");
for (var ref of references) {
markedFootprints.delete(ref[1]);
}
drawHighlights();
}
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
if (!settings.hiddenColumns.includes("references")) {
for (var ref of entry) {
if (ref[0].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
}
// check fields
for (var i in config.fields) {
var f = config.fields[i];
if (!settings.hiddenColumns.includes(f)) {
for (var ref of entry) {
if (pcbdata.bom.fields[ref[1]][i].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
}
}
return false;
}
function findRefInEntry(entry) {
return entry.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, is_checkbox = false) {
var th = document.createElement("TH");
th.innerHTML = name;
th.classList.add(cls);
if (is_checkbox)
th.setAttribute("col_name", "bom-checkbox");
else
th.setAttribute("col_name", name);
var span = document.createElement("SPAN");
span.classList.add("sortmark");
span.classList.add("none");
th.appendChild(span);
var spacer = document.createElement("div");
spacer.className = "column-spacer";
th.appendChild(spacer);
spacer.onclick = function () {
if (currentSortColumn && th !== currentSortColumn) {
// Currently sorted by another column
currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
currentSortColumn.childNodes[1].classList.add("none");
currentSortColumn = null;
currentSortOrder = null;
}
if (currentSortColumn && th === 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 = th;
currentSortColumn.childNodes[1].classList.remove("none");
currentSortColumn.childNodes[1].classList.add("asc");
currentSortOrder = "asc";
}
populateBomBody();
}
if (is_checkbox) {
spacer.onclick = fancyDblClickHandler(
spacer, spacer.onclick, checkboxSetUnsetAllHandler(name));
}
return th;
}
function populateBomHeader(placeHolderColumn = null, placeHolderElements = null) {
while (bomhead.firstChild) {
bomhead.removeChild(bomhead.firstChild);
}
var tr = document.createElement("TR");
var th = document.createElement("TH");
th.classList.add("numCol");
var vismenu = document.createElement("div");
vismenu.id = "vismenu";
vismenu.classList.add("menu");
var visbutton = document.createElement("div");
visbutton.classList.add("visbtn");
visbutton.classList.add("hideonprint");
var viscontent = document.createElement("div");
viscontent.classList.add("menu-content");
viscontent.id = "vismenu-content";
settings.columnOrder.forEach(column => {
if (typeof column !== "string")
return;
// Skip empty columns
if (column === "checkboxes" && settings.checkboxes.length == 0)
return;
else if (column === "Quantity" && settings.bommode == "ungrouped")
return;
var label = document.createElement("label");
label.classList.add("menu-label");
var input = document.createElement("input");
input.classList.add("visibility_checkbox");
input.type = "checkbox";
input.onchange = function (e) {
setShowBOMColumn(column, e.target.checked)
};
input.checked = !(settings.hiddenColumns.includes(column));
label.appendChild(input);
if (column.length > 0)
label.append(column[0].toUpperCase() + column.slice(1));
viscontent.appendChild(label);
});
viscontent.childNodes[0].classList.add("menu-label-top");
vismenu.appendChild(visbutton);
if (settings.bommode != "netlist") {
vismenu.appendChild(viscontent);
th.appendChild(vismenu);
}
tr.appendChild(th);
var checkboxCompareClosure = function (checkbox) {
return (a, b) => {
var stateA = getCheckboxState(checkbox, a);
var stateB = getCheckboxState(checkbox, b);
if (stateA > stateB) return -1;
if (stateA < stateB) return 1;
return 0;
}
}
var stringFieldCompareClosure = function (fieldIndex) {
return (a, b) => {
var fa = pcbdata.bom.fields[a[0][1]][fieldIndex];
var fb = pcbdata.bom.fields[b[0][1]][fieldIndex];
if (fa != fb) return fa > fb ? 1 : -1;
else return 0;
}
}
var referenceRegex = /(?<prefix>[^0-9]+)(?<number>[0-9]+)/;
var compareRefs = (a, b) => {
var ra = referenceRegex.exec(a);
var rb = referenceRegex.exec(b);
if (ra === null || rb === null) {
if (a != b) return a > b ? 1 : -1;
return 0;
} else {
if (ra.groups.prefix != rb.groups.prefix) {
return ra.groups.prefix > rb.groups.prefix ? 1 : -1;
}
if (ra.groups.number != rb.groups.number) {
return parseInt(ra.groups.number) > parseInt(rb.groups.number) ? 1 : -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 {
// Filter hidden columns
var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
var valueIndex = config.fields.indexOf("Value");
var footprintIndex = config.fields.indexOf("Footprint");
columns.forEach((column) => {
if (column === placeHolderColumn) {
var n = 1;
if (column === "checkboxes")
n = settings.checkboxes.length;
for (i = 0; i < n; i++) {
td = placeHolderElements.shift();
tr.appendChild(td);
}
return;
} else if (column === "checkboxes") {
for (var checkbox of settings.checkboxes) {
th = createColumnHeader(
checkbox, "bom-checkbox", checkboxCompareClosure(checkbox), true);
tr.appendChild(th);
}
} else if (column === "References") {
tr.appendChild(createColumnHeader("References", "references", (a, b) => {
var i = 0;
while (i < a.length && i < b.length) {
if (a[i] != b[i]) return compareRefs(a[i][0], b[i][0]);
i++;
}
return a.length - b.length;
}));
} else if (column === "Value") {
tr.appendChild(createColumnHeader("Value", "value", (a, b) => {
var ra = a[0][1], rb = b[0][1];
return valueCompare(
pcbdata.bom.parsedValues[ra], pcbdata.bom.parsedValues[rb],
pcbdata.bom.fields[ra][valueIndex], pcbdata.bom.fields[rb][valueIndex]);
}));
return;
} else if (column === "Footprint") {
tr.appendChild(createColumnHeader(
"Footprint", "footprint", stringFieldCompareClosure(footprintIndex)));
} else if (column === "Quantity" && settings.bommode == "grouped") {
tr.appendChild(createColumnHeader("Quantity", "quantity", (a, b) => {
return a.length - b.length;
}));
} else {
// Other fields
var i = config.fields.indexOf(column);
if (i < 0)
return;
tr.appendChild(createColumnHeader(
column, `field${i + 1}`, stringFieldCompareClosure(i)));
}
});
}
bomhead.appendChild(tr);
}
function populateBomBody(placeholderColumn = null, placeHolderElements = null) {
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) {
expandedTable.push([ref]);
}
}
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;
}
// Filter hidden columns
var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
columns.forEach((column) => {
if (column === placeholderColumn) {
var n = 1;
if (column === "checkboxes")
n = settings.checkboxes.length;
for (i = 0; i < n; i++) {
td = placeHolderElements.shift();
tr.appendChild(td);
}
return;
} else if (column === "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.markWhenChecked == checkbox) {
tr.classList.add("checked");
}
td.appendChild(input);
tr.appendChild(td);
}
}
} else if (column === "References") {
td = document.createElement("TD");
td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
tr.appendChild(td);
} else if (column === "Quantity" && settings.bommode == "grouped") {
// Quantity
td = document.createElement("TD");
td.textContent = references.length;
tr.appendChild(td);
} else {
// All the other fields
var field_index = config.fields.indexOf(column)
if (field_index < 0)
return;
var valueSet = new Set();
references.map(r => r[1]).forEach((id) => valueSet.add(pcbdata.bom.fields[id][field_index]));
td = document.createElement("TD");
td.innerHTML = highlightFilter(Array.from(valueSet).join(", "));
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();
setBomHandlers();
resizableGrid(bomhead);
}
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");
var chkbxs = document.getElementsByClassName("visibility_checkbox");
switch (mode) {
case 'grouped':
document.getElementById("bom-grouped-btn").classList.add("depressed");
for (var i = 0; i < chkbxs.length; i++) {
chkbxs[i].disabled = false;
}
break;
case 'ungrouped':
document.getElementById("bom-ungrouped-btn").classList.add("depressed");
for (var i = 0; i < chkbxs.length; i++) {
chkbxs[i].disabled = false;
}
break;
case 'netlist':
document.getElementById("bom-netlist-btn").classList.add("depressed");
for (var i = 0; i < chkbxs.length; i++) {
chkbxs[i].disabled = true;
}
}
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(",").map((e) => e.trim()).filter((e) => e);
prepCheckboxes();
populateMarkWhenCheckedOptions();
setMarkWhenChecked(settings.markWhenChecked);
}
function setMarkWhenChecked(value) {
writeStorage("markWhenChecked", value);
settings.markWhenChecked = value;
markedFootprints.clear();
for (var ref of (value ? getStoredCheckboxRefs(value) : [])) {
markedFootprints.add(ref);
}
populateBomTable();
drawHighlights();
}
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 populateMarkWhenCheckedOptions() {
var container = document.getElementById("markWhenCheckedContainer");
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 = "markWhenChecked-" + name;
var div = document.createElement("div");
div.classList.add("radio-container");
var input = document.createElement("input");
input.type = "radio";
input.name = "markWhenChecked";
input.value = name;
input.id = id;
input.onchange = () => setMarkWhenChecked(name);
div.appendChild(input);
// Preserve the selected element when the checkboxes change
if (name == settings.markWhenChecked) {
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));
e.preventDefault();
}
}
}
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;
setBomCheckboxes(document.getElementById("bomCheckboxes").value);
// 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">Mark when checked</div>
<div id="markWhenCheckedContainer"></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" id="bomtable">
<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>