You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4670 lines
375 KiB

<!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: 0.4rem 0.4rem 0.4rem 0;
}
.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: 3px;
}
.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: 0.4rem 0.4rem 0.4rem 0;
}
.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 {
display: flex;
flex-direction: column;
width: 100%;
background-color: white;
transition: background-color 0.3s;
}
#top {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
}
#topdivider {
border-bottom: 2px solid black;
display: flex;
justify-content: center;
align-items: center;
}
.dark #topdivider {
border-bottom: 2px solid #ccc;
}
#topdivider>div {
position: relative;
}
#toptoggle {
cursor: pointer;
user-select: none;
position: absolute;
padding: 0.1rem 0.3rem;
top: -0.4rem;
left: -1rem;
font-size: 1.4rem;
line-height: 60%;
border: 1px solid black;
border-radius: 1rem;
background-color: #fff;
z-index: 100;
}
.flipped {
transform: rotate(0.5turn);
}
.dark #toptoggle {
border: 1px solid #fff;
background-color: #222;
}
#fileinfodiv {
flex: 20rem 1 0;
overflow: auto;
}
#bomcontrols {
display: flex;
flex-direction: row-reverse;
}
#bomcontrols>* {
flex-shrink: 0;
}
#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;
}
.bom-color {
width: 20%;
}
.color-column input {
width: 1.6rem;
height: 1rem;
border: 1px solid black;
cursor: pointer;
padding: 0;
}
/* removes default styling from input color element */
::-webkit-color-swatch {
border: none;
}
::-webkit-color-swatch-wrapper {
padding: 0;
}
::-moz-color-swatch,
::-moz-focus-inner {
border: none;
}
::-moz-focus-inner {
padding: 0;
}
/* #bomhead {
position: sticky;
top: 0px;
z-index: 1;
} */
</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": true, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": "none", "redraw_on_drag": true, "board_rotation": 0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "F", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint", "Disti_No", "Man", "Man_No"]}
///////////////////////////////////////////////
///////////////////////////////////////////////
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 resetSettings() {
if (!confirm(
`This will reset all checkbox states and other settings.\n\n` +
`Press OK if you want to continue.`)) {
return;
}
if (storage) {
var keys = [];
for (var i = 0; i < storage.length; i++) {
var key = storage.key(i);
if (key.startsWith(storagePrefix)) keys.push(key);
}
for (var key of keys) storage.removeItem(key);
}
location.reload();
}
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.forms.highlightpin1.highlightpin1.value = 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: "FB",
bomlayout: "left-right",
bommode: "grouped",
checkboxes: [],
checkboxStoredRefs: {},
darkMode: false,
highlightpin1: "none",
redrawOnDrag: true,
boardRotation: 0,
offsetBackRotation: false,
renderPads: true,
renderReferences: true,
renderValues: true,
renderSilkscreen: true,
renderFabrication: true,
renderDnpOutline: false,
renderTracks: true,
renderZones: true,
columnOrder: [],
hiddenColumns: [],
netColors: {},
}
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 (settings.bommode == "netlist" && !pcbdata.nets) {
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;
var highlightpin1 = readStorage("highlightpin1") || config.highlight_pin1;
if (highlightpin1 === "false") highlightpin1 = "none";
if (highlightpin1 === "true") highlightpin1 = "all";
setHighlightPin1(highlightpin1);
document.forms.highlightpin1.highlightpin1.value = highlightpin1;
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);
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);
settings.netColors = JSON.parse(readStorage("netColors")) || {};
}
// 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 == "all" ||
settings.highlightpin1 == "selected" && highlight)) {
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, defaultColor, highlight) {
ctx = canvas.getContext("2d");
ctx.lineCap = "round";
var hasHole = (track) => (
'drillsize' in track &&
track.start[0] == track.end[0] &&
track.start[1] == track.end[1]);
// First draw tracks and tented vias
for (var track of pcbdata.tracks[layer]) {
if (highlight && highlightedNet != track.net) continue;
if (!hasHole(track)) {
ctx.strokeStyle = highlight ? defaultColor : settings.netColors[track.net] || defaultColor;
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();
}
}
// Second pass to draw untented vias
var style = getComputedStyle(topmostdiv);
var holeColor = style.getPropertyValue('--pad-hole-color')
for (var track of pcbdata.tracks[layer]) {
if (highlight && highlightedNet != track.net) continue;
if (hasHole(track)) {
ctx.strokeStyle = highlight ? defaultColor : settings.netColors[track.net] || defaultColor;
ctx.lineWidth = track.width;
ctx.beginPath();
ctx.moveTo(...track.start);
ctx.lineTo(...track.end);
ctx.stroke();
ctx.strokeStyle = holeColor;
ctx.lineWidth = track.drillsize;
ctx.lineTo(...track.end);
ctx.stroke();
}
}
}
function drawZones(canvas, layer, defaultColor, highlight) {
ctx = canvas.getContext("2d");
ctx.lineJoin = "round";
for (var zone of pcbdata.zones[layer]) {
if (highlight && highlightedNet != zone.net) continue;
ctx.strokeStyle = highlight ? defaultColor : settings.netColors[zone.net] || defaultColor;
ctx.fillStyle = highlight ? defaultColor : settings.netColors[zone.net] || defaultColor;
if (!zone.path2d) {
zone.path2d = getPolygonsPath(zone);
}
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.renderZones) {
var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
drawZones(canvas, layer, zoneColor, highlight);
}
if (settings.renderTracks) {
var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
drawTracks(canvas, layer, trackColor, 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();
if (initDone) {
populateBomTable();
}
}
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 updateNetColors() {
writeStorage("netColors", JSON.stringify(settings.netColors));
redrawIfInitDone();
}
function netColorChangeHandler(net) {
return (event) => {
settings.netColors[net] = event.target.value;
updateNetColors();
}
}
function netColorRightClick(net) {
return (event) => {
if(event.button == 2) {
event.preventDefault();
event.stopPropagation();
var style = getComputedStyle(topmostdiv);
var defaultNetColor = style.getPropertyValue('--track-color').trim();
event.target.value = defaultNetColor;
delete settings.netColors[net];
updateNetColors();
}
}
}
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 (String(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") {
tr.appendChild(createColumnHeader("Net name", "bom-netname", (a, b) => {
if (a > b) return -1;
if (a < b) return 1;
return 0;
}));
tr.appendChild(createColumnHeader("Color", "bom-color", (a, b) => {
return 0;
}));
} 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;
var style = getComputedStyle(topmostdiv);
var defaultNetColor = style.getPropertyValue('--track-color').trim();
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);
var color = settings.netColors[netname] || defaultNetColor;
td = document.createElement("TD");
var colorBox = document.createElement("INPUT");
colorBox.type = "color";
colorBox.value = color;
colorBox.onchange = netColorChangeHandler(netname);
colorBox.onmouseup = netColorRightClick(netname);
colorBox.oncontextmenu = (e) => e.preventDefault();
td.appendChild(colorBox);
td.classList.add("color-column");
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(String(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("topmostdiv").style.height = "";
document.getElementById("topmostdiv").style.display = "block";
break;
case 'top-bottom':
document.getElementById("tb-btn").classList.add("depressed");
document.getElementById("frontcanvas").style.display = "";
document.getElementById("backcanvas").style.display = "";
document.getElementById("topmostdiv").style.height = "100%";
document.getElementById("topmostdiv").style.display = "flex";
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("topmostdiv").style.height = "100%";
document.getElementById("topmostdiv").style.display = "flex";
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";
}
function topToggle() {
var top = document.getElementById("top");
var toptoggle = document.getElementById("toptoggle");
if (top.style.display === "none") {
top.style.display = "flex";
toptoggle.classList.remove("flipped");
} else {
top.style.display = "none";
toptoggle.classList.add("flipped");
}
}
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);
///////////////////////////////////////////////
///////////////////////////////////////////////
// EventHandler.registerCallback(IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, () => {
// for(var tr of bom.childNodes) {
// tr.onclick = tr.onmousemove;
// tr.onmousemove = null;
// };
// });
///////////////////////////////////////////////
</script>
</head>
<body>
<div id="topmostdiv" class="topmostdiv">
<div id="top">
<div id="fileinfodiv">
<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 id="bomcontrols">
<div class="hideonprint menu">
<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="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
Continuous redraw on drag
</label>
<label class="menu-label">
Highlight first pin
<form id="highlightpin1">
<div class="flexbox">
<label>
<input type="radio" name="highlightpin1" value="none" onchange="setHighlightPin1('none')">
None
</label>
<label>
<input type="radio" name="highlightpin1" value="all" onchange="setHighlightPin1('all')">
All
</label>
<label>
<input type="radio" name="highlightpin1" value="selected" onchange="setHighlightPin1('selected')">
Selected
</label>
</div>
</form>
</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">
<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">
<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">
<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">
<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">
<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>
<button class="savebtn" onclick="resetSettings()">Reset</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>
<div id="topdivider">
<div class="hideonprint">
<div id="toptoggle" onclick="topToggle()"></div>
</div>
</div>
<div id="bot" class="split" style="flex: 1 1">
<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>