mirror of
https://github.com/skot/bitaxe.git
synced 2025-03-28 18:52:04 +01:00
4670 lines
435 KiB
HTML
4670 lines
435 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Interactive BOM for KiCAD</title>
|
|
<style type="text/css">
|
|
:root {
|
|
--pcb-edge-color: black;
|
|
--pad-color: #878787;
|
|
--pad-hole-color: #CCCCCC;
|
|
--pad-color-highlight: #D04040;
|
|
--pad-color-highlight-both: #D0D040;
|
|
--pad-color-highlight-marked: #44a344;
|
|
--pin1-outline-color: #ffb629;
|
|
--pin1-outline-color-highlight: #ffb629;
|
|
--pin1-outline-color-highlight-both: #fcbb39;
|
|
--pin1-outline-color-highlight-marked: #fdbe41;
|
|
--silkscreen-edge-color: #aa4;
|
|
--silkscreen-polygon-color: #4aa;
|
|
--silkscreen-text-color: #4aa;
|
|
--fabrication-edge-color: #907651;
|
|
--fabrication-polygon-color: #907651;
|
|
--fabrication-text-color: #a27c24;
|
|
--track-color: #def5f1;
|
|
--track-color-highlight: #D04040;
|
|
--zone-color: #def5f1;
|
|
--zone-color-highlight: #d0404080;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
margin: 0px;
|
|
height: 100%;
|
|
font-family: Verdana, sans-serif;
|
|
}
|
|
|
|
.dark.topmostdiv {
|
|
--pcb-edge-color: #eee;
|
|
--pad-color: #808080;
|
|
--pin1-outline-color: #ffa800;
|
|
--pin1-outline-color-highlight: #ccff00;
|
|
--track-color: #42524f;
|
|
--zone-color: #42524f;
|
|
background-color: #252c30;
|
|
color: #eee;
|
|
}
|
|
|
|
button {
|
|
background-color: #eee;
|
|
border: 1px solid #888;
|
|
color: black;
|
|
height: 44px;
|
|
width: 44px;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
display: inline-block;
|
|
font-size: 14px;
|
|
font-weight: bolder;
|
|
}
|
|
|
|
.dark button {
|
|
/* This will be inverted */
|
|
background-color: #c3b7b5;
|
|
}
|
|
|
|
button.depressed {
|
|
background-color: #0a0;
|
|
color: white;
|
|
}
|
|
|
|
.dark button.depressed {
|
|
/* This will be inverted */
|
|
background-color: #b3b;
|
|
}
|
|
|
|
button:focus {
|
|
outline: 0;
|
|
}
|
|
|
|
button#tb-btn {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
|
|
}
|
|
|
|
button#lr-btn {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
|
|
}
|
|
|
|
button#bom-btn {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
|
|
}
|
|
|
|
button#bom-grouped-btn {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
|
|
}
|
|
|
|
button#bom-ungrouped-btn {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
|
|
}
|
|
|
|
button#bom-netlist-btn {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
|
|
}
|
|
|
|
button#copy {
|
|
background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
|
|
background-position: 6px 6px;
|
|
background-repeat: no-repeat;
|
|
background-size: 26px 26px;
|
|
border-radius: 6px;
|
|
height: 40px;
|
|
width: 40px;
|
|
margin: 10px 5px;
|
|
}
|
|
|
|
button#copy:active {
|
|
box-shadow: inset 0px 0px 5px #6c6c6c;
|
|
}
|
|
|
|
textarea.clipboard-temp {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 2em;
|
|
height: 2em;
|
|
padding: 0;
|
|
border: None;
|
|
outline: None;
|
|
box-shadow: None;
|
|
background: transparent;
|
|
}
|
|
|
|
.left-most-button {
|
|
border-right: 0;
|
|
border-top-left-radius: 6px;
|
|
border-bottom-left-radius: 6px;
|
|
}
|
|
|
|
.middle-button {
|
|
border-right: 0;
|
|
}
|
|
|
|
.right-most-button {
|
|
border-top-right-radius: 6px;
|
|
border-bottom-right-radius: 6px;
|
|
}
|
|
|
|
.button-container {
|
|
font-size: 0;
|
|
margin: 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": false, "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": "FB", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint"]}
|
|
///////////////////////////////////////////////
|
|
|
|
///////////////////////////////////////////////
|
|
var pcbdata = JSON.parse(LZString.decompressFromBase64("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"))
|
|
///////////////////////////////////////////////
|
|
|
|
///////////////////////////////////////////////
|
|
/* Utility functions */
|
|
|
|
var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
|
|
pcbdata.metadata.revision + '__#';
|
|
var storage;
|
|
|
|
function initStorage(key) {
|
|
try {
|
|
window.localStorage.getItem("blank");
|
|
storage = window.localStorage;
|
|
} catch (e) {
|
|
// localStorage not available
|
|
}
|
|
if (!storage) {
|
|
try {
|
|
window.sessionStorage.getItem("blank");
|
|
storage = window.sessionStorage;
|
|
} catch (e) {
|
|
// sessionStorage also not available
|
|
}
|
|
}
|
|
}
|
|
|
|
function readStorage(key) {
|
|
if (storage) {
|
|
return storage.getItem(storagePrefix + key);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
function writeStorage(key, value) {
|
|
if (storage) {
|
|
storage.setItem(storagePrefix + key, value);
|
|
}
|
|
}
|
|
|
|
function fancyDblClickHandler(el, onsingle, ondouble) {
|
|
return function () {
|
|
if (el.getAttribute("data-dblclick") == null) {
|
|
el.setAttribute("data-dblclick", 1);
|
|
setTimeout(function () {
|
|
if (el.getAttribute("data-dblclick") == 1) {
|
|
onsingle();
|
|
}
|
|
el.removeAttribute("data-dblclick");
|
|
}, 200);
|
|
} else {
|
|
el.removeAttribute("data-dblclick");
|
|
ondouble();
|
|
}
|
|
}
|
|
}
|
|
|
|
function smoothScrollToRow(rowid) {
|
|
document.getElementById(rowid).scrollIntoView({
|
|
behavior: "smooth",
|
|
block: "center",
|
|
inline: "nearest"
|
|
});
|
|
}
|
|
|
|
function focusInputField(input) {
|
|
input.scrollIntoView(false);
|
|
input.focus();
|
|
input.select();
|
|
}
|
|
|
|
function saveBomTable(output) {
|
|
var text = '';
|
|
for (var node of bomhead.childNodes[0].childNodes) {
|
|
if (node.firstChild) {
|
|
text += (output == 'csv' ? `"${node.firstChild.nodeValue}"` : node.firstChild.nodeValue);
|
|
}
|
|
if (node != bomhead.childNodes[0].lastChild) {
|
|
text += (output == 'csv' ? ',' : '\t');
|
|
}
|
|
}
|
|
text += '\n';
|
|
for (var row of bombody.childNodes) {
|
|
for (var cell of row.childNodes) {
|
|
let val = '';
|
|
for (var node of cell.childNodes) {
|
|
if (node.nodeName == "INPUT") {
|
|
if (node.checked) {
|
|
val += '✓';
|
|
}
|
|
} else if ((node.nodeName == "MARK") || (node.nodeName == "A")) {
|
|
val += node.firstChild.nodeValue;
|
|
} else {
|
|
val += node.nodeValue;
|
|
}
|
|
}
|
|
if (output == 'csv') {
|
|
val = val.replace(/\"/g, '\"\"'); // pair of double-quote characters
|
|
if (isNumeric(val)) {
|
|
val = +val; // use number
|
|
} else {
|
|
val = `"${val}"`; // enclosed within double-quote
|
|
}
|
|
}
|
|
text += val;
|
|
if (cell != row.lastChild) {
|
|
text += (output == 'csv' ? ',' : '\t');
|
|
}
|
|
}
|
|
text += '\n';
|
|
}
|
|
|
|
if (output != 'clipboard') {
|
|
// To file: csv or txt
|
|
var blob = new Blob([text], {
|
|
type: `text/${output}`
|
|
});
|
|
saveFile(`${pcbdata.metadata.title}.${output}`, blob);
|
|
} else {
|
|
// To clipboard
|
|
var textArea = document.createElement("textarea");
|
|
textArea.classList.add('clipboard-temp');
|
|
textArea.value = text;
|
|
|
|
document.body.appendChild(textArea);
|
|
textArea.focus();
|
|
textArea.select();
|
|
|
|
try {
|
|
if (document.execCommand('copy')) {
|
|
console.log('Bom copied to clipboard.');
|
|
}
|
|
} catch (err) {
|
|
console.log('Can not copy to clipboard.');
|
|
}
|
|
|
|
document.body.removeChild(textArea);
|
|
}
|
|
}
|
|
|
|
function isNumeric(str) {
|
|
/* https://stackoverflow.com/a/175787 */
|
|
return (typeof str != "string" ? false : !isNaN(str) && !isNaN(parseFloat(str)));
|
|
}
|
|
|
|
function removeGutterNode(node) {
|
|
for (var i = 0; i < node.childNodes.length; i++) {
|
|
if (node.childNodes[i].classList &&
|
|
node.childNodes[i].classList.contains("gutter")) {
|
|
node.removeChild(node.childNodes[i]);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
function cleanGutters() {
|
|
removeGutterNode(document.getElementById("bot"));
|
|
removeGutterNode(document.getElementById("canvasdiv"));
|
|
}
|
|
|
|
var units = {
|
|
prefixes: {
|
|
giga: ["G", "g", "giga", "Giga", "GIGA"],
|
|
mega: ["M", "mega", "Mega", "MEGA"],
|
|
kilo: ["K", "k", "kilo", "Kilo", "KILO"],
|
|
milli: ["m", "milli", "Milli", "MILLI"],
|
|
micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
|
|
nano: ["N", "n", "nano", "Nano", "NANO"],
|
|
pico: ["P", "p", "pico", "Pico", "PICO"],
|
|
},
|
|
unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
|
|
unitsLong: [
|
|
"OHM", "Ohm", "ohm", "ohms",
|
|
"FARAD", "Farad", "farad",
|
|
"HENRY", "Henry", "henry"
|
|
],
|
|
getMultiplier: function (s) {
|
|
if (this.prefixes.giga.includes(s)) return 1e9;
|
|
if (this.prefixes.mega.includes(s)) return 1e6;
|
|
if (this.prefixes.kilo.includes(s)) return 1e3;
|
|
if (this.prefixes.milli.includes(s)) return 1e-3;
|
|
if (this.prefixes.micro.includes(s)) return 1e-6;
|
|
if (this.prefixes.nano.includes(s)) return 1e-9;
|
|
if (this.prefixes.pico.includes(s)) return 1e-12;
|
|
return 1;
|
|
},
|
|
valueRegex: null,
|
|
}
|
|
|
|
function initUtils() {
|
|
var allPrefixes = units.prefixes.giga
|
|
.concat(units.prefixes.mega)
|
|
.concat(units.prefixes.kilo)
|
|
.concat(units.prefixes.milli)
|
|
.concat(units.prefixes.micro)
|
|
.concat(units.prefixes.nano)
|
|
.concat(units.prefixes.pico);
|
|
var allUnits = units.unitsShort.concat(units.unitsLong);
|
|
units.valueRegex = new RegExp("^([0-9\.]+)" +
|
|
"\\s*(" + allPrefixes.join("|") + ")?" +
|
|
"(" + allUnits.join("|") + ")?" +
|
|
"(\\b.*)?$", "");
|
|
units.valueAltRegex = new RegExp("^([0-9]*)" +
|
|
"(" + units.unitsShort.join("|") + ")?" +
|
|
"([GgMmKkUuNnPp])?" +
|
|
"([0-9]*)" +
|
|
"(\\b.*)?$", "");
|
|
if (config.fields.includes("Value")) {
|
|
var index = config.fields.indexOf("Value");
|
|
pcbdata.bom["parsedValues"] = {};
|
|
for (var id in pcbdata.bom.fields) {
|
|
pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index])
|
|
}
|
|
}
|
|
}
|
|
|
|
function parseValue(val, ref) {
|
|
var inferUnit = (unit, ref) => {
|
|
if (unit) {
|
|
unit = unit.toLowerCase();
|
|
if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
|
|
unit = 'r';
|
|
}
|
|
unit = unit[0];
|
|
} else {
|
|
ref = /^([a-z]+)\d+$/i.exec(ref);
|
|
if (ref) {
|
|
ref = ref[1].toLowerCase();
|
|
if (ref == "c") unit = 'f';
|
|
else if (ref == "l") unit = 'h';
|
|
else if (ref == "r" || ref == "rv") unit = 'r';
|
|
else unit = null;
|
|
}
|
|
}
|
|
return unit;
|
|
};
|
|
val = val.replace(/,/g, "");
|
|
var match = units.valueRegex.exec(val);
|
|
var unit;
|
|
if (match) {
|
|
val = parseFloat(match[1]);
|
|
if (match[2]) {
|
|
val = val * units.getMultiplier(match[2]);
|
|
}
|
|
unit = inferUnit(match[3], ref);
|
|
if (!unit) return null;
|
|
else return {
|
|
val: val,
|
|
unit: unit,
|
|
extra: match[4],
|
|
}
|
|
}
|
|
match = units.valueAltRegex.exec(val);
|
|
if (match && (match[1] || match[4])) {
|
|
val = parseFloat(match[1] + "." + match[4]);
|
|
if (match[3]) {
|
|
val = val * units.getMultiplier(match[3]);
|
|
}
|
|
unit = inferUnit(match[2], ref);
|
|
if (!unit) return null;
|
|
else return {
|
|
val: val,
|
|
unit: unit,
|
|
extra: match[5],
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function valueCompare(a, b, stra, strb) {
|
|
if (a === null && b === null) {
|
|
// Failed to parse both values, compare them as strings.
|
|
if (stra != strb) return stra > strb ? 1 : -1;
|
|
else return 0;
|
|
} else if (a === null) {
|
|
return 1;
|
|
} else if (b === null) {
|
|
return -1;
|
|
} else {
|
|
if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
|
|
else if (a.val != b.val) return a.val > b.val ? 1 : -1;
|
|
else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
|
|
else return 0;
|
|
}
|
|
}
|
|
|
|
function validateSaveImgDimension(element) {
|
|
var valid = false;
|
|
var intValue = 0;
|
|
if (/^[1-9]\d*$/.test(element.value)) {
|
|
intValue = parseInt(element.value);
|
|
if (intValue <= 16000) {
|
|
valid = true;
|
|
}
|
|
}
|
|
if (valid) {
|
|
element.classList.remove("invalid");
|
|
} else {
|
|
element.classList.add("invalid");
|
|
}
|
|
return intValue;
|
|
}
|
|
|
|
function saveImage(layer) {
|
|
var width = validateSaveImgDimension(document.getElementById("render-save-width"));
|
|
var height = validateSaveImgDimension(document.getElementById("render-save-height"));
|
|
var bgcolor = null;
|
|
if (!document.getElementById("render-save-transparent").checked) {
|
|
var style = getComputedStyle(topmostdiv);
|
|
bgcolor = style.getPropertyValue("background-color");
|
|
}
|
|
if (!width || !height) return;
|
|
|
|
// Prepare image
|
|
var canvas = document.createElement("canvas");
|
|
var layerdict = {
|
|
transform: {
|
|
x: 0,
|
|
y: 0,
|
|
s: 1,
|
|
panx: 0,
|
|
pany: 0,
|
|
zoom: 1,
|
|
},
|
|
bg: canvas,
|
|
fab: canvas,
|
|
silk: canvas,
|
|
highlight: canvas,
|
|
layer: layer,
|
|
}
|
|
// Do the rendering
|
|
recalcLayerScale(layerdict, width, height);
|
|
prepareLayer(layerdict);
|
|
clearCanvas(canvas, bgcolor);
|
|
drawBackground(layerdict, false);
|
|
drawHighlightsOnLayer(layerdict, false);
|
|
|
|
// Save image
|
|
var imgdata = canvas.toDataURL("image/png");
|
|
|
|
var filename = pcbdata.metadata.title;
|
|
if (pcbdata.metadata.revision) {
|
|
filename += `.${pcbdata.metadata.revision}`;
|
|
}
|
|
filename += `.${layer}.png`;
|
|
saveFile(filename, dataURLtoBlob(imgdata));
|
|
}
|
|
|
|
function saveSettings() {
|
|
var data = {
|
|
type: "InteractiveHtmlBom settings",
|
|
version: 1,
|
|
pcbmetadata: pcbdata.metadata,
|
|
settings: settings,
|
|
}
|
|
var blob = new Blob([JSON.stringify(data, null, 4)], {
|
|
type: "application/json"
|
|
});
|
|
saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
|
|
}
|
|
|
|
function loadSettings() {
|
|
var input = document.createElement("input");
|
|
input.type = "file";
|
|
input.accept = ".settings.json";
|
|
input.onchange = function (e) {
|
|
var file = e.target.files[0];
|
|
var reader = new FileReader();
|
|
reader.onload = readerEvent => {
|
|
var content = readerEvent.target.result;
|
|
var newSettings;
|
|
try {
|
|
newSettings = JSON.parse(content);
|
|
} catch (e) {
|
|
alert("Selected file is not InteractiveHtmlBom settings file.");
|
|
return;
|
|
}
|
|
if (newSettings.type != "InteractiveHtmlBom settings") {
|
|
alert("Selected file is not InteractiveHtmlBom settings file.");
|
|
return;
|
|
}
|
|
var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
|
|
if (metadataMatches) {
|
|
for (var k in pcbdata.metadata) {
|
|
if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
|
|
metadataMatches = false;
|
|
}
|
|
}
|
|
}
|
|
if (!metadataMatches) {
|
|
var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
|
|
var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
|
|
if (!confirm(
|
|
`Settins file metadata does not match current metadata.\n\n` +
|
|
`Page metadata:\n${currentMetadata}\n\n` +
|
|
`Settings file metadata:\n${fileMetadata}\n\n` +
|
|
`Press OK if you would like to import settings anyway.`)) {
|
|
return;
|
|
}
|
|
}
|
|
overwriteSettings(newSettings.settings);
|
|
}
|
|
reader.readAsText(file, 'UTF-8');
|
|
}
|
|
input.click();
|
|
}
|
|
|
|
function 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 : "<no net>");
|
|
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 " +
|
|
/^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>°</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>
|