4670 lines
424 KiB
HTML
4670 lines
424 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>
|