led-driver-starfish/starfish/bom/ibom.html
2023-06-15 21:57:57 +02:00

4442 lines
339 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive BOM for KiCAD</title>
<style type="text/css">
:root {
--pcb-edge-color: black;
--pad-color: #878787;
--pad-hole-color: #CCCCCC;
--pad-color-highlight: #D04040;
--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;
}
.help-link {
border: 1px solid #0278a4;
padding-inline: 0.3rem;
border-radius: 3px;
cursor: pointer;
}
.dark .help-link {
border: 1px solid #00b9fd;
}
</style>
<script type="text/javascript" >
///////////////////////////////////////////////
/*
Split.js - v1.3.5
MIT License
https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});
///////////////////////////////////////////////
///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////
///////////////////////////////////////////////
/*!
* PEP v0.4.3 | https://github.com/jquery/PEP
* Copyright jQuery Foundation and other contributors | http://jquery.org/license
*/
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});
///////////////////////////////////////////////
///////////////////////////////////////////////
var config = {"dark_mode": false, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": false, "redraw_on_drag": true, "board_rotation": 0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint"]}
///////////////////////////////////////////////
///////////////////////////////////////////////
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 saveBomTable(output) {
var text = '';
for (var node of bomhead.childNodes[0].childNodes) {
if (node.firstChild) {
text += (output == 'csv' ? `"${node.firstChild.nodeValue}"` : node.firstChild.nodeValue);
}
if (node != bomhead.childNodes[0].lastChild) {
text += (output == 'csv' ? ',' : '\t');
}
}
text += '\n';
for (var row of bombody.childNodes) {
for (var cell of row.childNodes) {
let val = '';
for (var node of cell.childNodes) {
if (node.nodeName == "INPUT") {
if (node.checked) {
val += '✓';
}
} else if ((node.nodeName == "MARK") || (node.nodeName == "A")) {
val += node.firstChild.nodeValue;
} else {
val += node.nodeValue;
}
}
if (output == 'csv') {
val = val.replace(/\"/g, '\"\"'); // pair of double-quote characters
if (isNumeric(val)) {
val = +val; // use number
} else {
val = `"${val}"`; // enclosed within double-quote
}
}
text += val;
if (cell != row.lastChild) {
text += (output == 'csv' ? ',' : '\t');
}
}
text += '\n';
}
if (output != 'clipboard') {
// To file: csv or txt
var blob = new Blob([text], {
type: `text/${output}`
});
saveFile(`${pcbdata.metadata.title}.${output}`, blob);
} else {
// To clipboard
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 isNumeric(str) {
/* https://stackoverflow.com/a/175787 */
return (typeof str != "string" ? false : !isNaN(str) && !isNaN(parseFloat(str)));
}
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;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
setOffsetBackRotation(settings.offsetBackRotation);
document.getElementById("offsetBackRotationCheckbox").checked = settings.offsetBackRotation;
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,
offsetBackRotation: false,
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;
initBooleanSetting("offsetBackRotation", config.offset_back_rotation, "offsetBackRotationCheckbox", setOffsetBackRotation);
}
// 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;
}
if ("polygons" in text) {
ctx.fill(getPolygonsPath(text));
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 (config.kicad_text_formatting) {
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.lineWidth = 3 / scalefactor;
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);
}
}
ctx.lineWidth = 3 / scalefactor;
// 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, zone.fillrule || "nonzero");
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);
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 + (flip && settings.offsetBackRotation ? - 180 : 0)));
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, flip) {
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 + (flip && settings.offsetBackRotation ? - 180 : 0)));
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 flip = (layerdict.layer === "B");
var bbox = applyRotation(pcbdata.edges_bbox, flip);
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;
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;
var flip = layerdict.layer === "B";
if (flip) {
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 + (flip && settings.offsetBackRotation ? - 180 : 0));
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 setOffsetBackRotation(value) {
settings.offsetBackRotation = value;
writeStorage("offsetBackRotation", value);
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) {
const urlRegex = /^(https?:\/\/[^\s\/$.?#][^\s]*|file:\/\/([a-zA-Z]:|\/)[^\x00]+)$/;
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");
var output = new Array();
for (let item of valueSet) {
const visible = highlightFilter(item);
if (typeof item === 'string' && item.match(urlRegex)) {
output.push(`<a href="${item}" target="_blank">${visible}</a>`);
} else {
output.push(visible);
}
}
td.innerHTML = output.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) + "%)";
}
function constrain(number, min, max){
return Math.min(Math.max(parseInt(number), min), max);
}
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;
case "ArrowLeft":
case "ArrowRight":
if (document.activeElement.type != "text"){
e.preventDefault();
let boardRotationElement = document.getElementById("boardRotation")
settings.boardRotation = parseInt(boardRotationElement.value); // degrees / 5
if (e.key == "ArrowLeft"){
settings.boardRotation += 3; // 15 degrees
}
else{
settings.boardRotation -= 3;
}
settings.boardRotation = constrain(settings.boardRotation, boardRotationElement.min, boardRotationElement.max);
boardRotationElement.value = settings.boardRotation
setBoardRotation(settings.boardRotation);
}
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">
<input id="offsetBackRotationCheckbox" type="checkbox" onchange="setOffsetBackRotation(this.checked)">
Offset back rotation
</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>
<a target="blank" title="Mouse and keyboard help" href="https://github.com/openscopeproject/InteractiveHtmlBom/wiki/Usage#bom-page-mouse-actions" style="text-decoration: none;"><label class="help-link">?</label></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 class="menu-label">
<span style="margin-left: 5px;">Save bom table as</span>
<div class="flexbox">
<button class="savebtn" onclick="saveBomTable('csv')">csv</button>
<button class="savebtn" onclick="saveBomTable('txt')">txt</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="saveBomTable('clipboard')"></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>