mirror of
https://github.com/Alex-2-Graf/Leningrad-2-128k-SRAM.git
synced 2026-04-16 12:04:19 +03:00
4720 lines
431 KiB
HTML
4720 lines
431 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;
|
|
min-height: 100%;
|
|
}
|
|
|
|
#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) {
|
|
var name = node.firstChild.nodeValue ?? "";
|
|
text += (output == 'csv' ? `"${name}"` : name);
|
|
}
|
|
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,
|
|
valueAltRegex: 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"] = {};
|
|
var allList = getBomListByLayer('FB').flat();
|
|
for (var id in pcbdata.bom.fields) {
|
|
var ref_key = allList.find(item => item[1] == Number(id)) || [];
|
|
pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index], ref_key[0] || '');
|
|
}
|
|
}
|
|
}
|
|
|
|
function parseValue(val, ref) {
|
|
var inferUnit = (unit, ref) => {
|
|
if (unit) {
|
|
unit = unit.toLowerCase();
|
|
if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
|
|
unit = 'r';
|
|
}
|
|
return unit[0];
|
|
}
|
|
|
|
var resarr = /^([a-z]+)\d+$/i.exec(ref);
|
|
switch (Array.isArray(resarr) && resarr[1].toLowerCase()) {
|
|
case "c": return 'f';
|
|
case "l": return 'h';
|
|
case "r":
|
|
case "rv": return 'r';
|
|
}
|
|
return null;
|
|
};
|
|
val = val.replace(/,/g, "");
|
|
var match = units.valueRegex.exec(val);
|
|
if (Array.isArray(match)) {
|
|
var unit = inferUnit(match[3], ref);
|
|
var val_i = parseFloat(match[1]);
|
|
if (!unit) return null;
|
|
if (match[2]) {
|
|
val_i = val_i * units.getMultiplier(match[2]);
|
|
}
|
|
return {
|
|
val: val_i,
|
|
unit: unit,
|
|
extra: match[4],
|
|
}
|
|
}
|
|
|
|
match = units.valueAltRegex.exec(val);
|
|
if (Array.isArray(match) && (match[1] || match[4])) {
|
|
var unit = inferUnit(match[2], ref);
|
|
var val_i = parseFloat(match[1] + "." + match[4]);
|
|
if (!unit) return null;
|
|
if (match[3]) {
|
|
val_i = val_i * units.getMultiplier(match[3]);
|
|
}
|
|
return {
|
|
val: val_i,
|
|
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;
|
|
setHighlightRowOnClick(settings.highlightRowOnClick);
|
|
document.getElementById("highlightRowOnClickCheckbox").checked = settings.highlightRowOnClick;
|
|
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("highlightRowOnClick", false, "highlightRowOnClickCheckbox", setHighlightRowOnClick);
|
|
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 if (pad.drillshape == "rect") {
|
|
ctx.fill(getChamferedRectPath(pad.drillsize, 0, 0, 0));
|
|
} 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 setHighlightRowOnClick(value) {
|
|
settings.highlightRowOnClick = value;
|
|
writeStorage("highlightRowOnClick", value);
|
|
if (initDone) {
|
|
populateBomTable();
|
|
}
|
|
}
|
|
|
|
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 createCheckboxHandlers(input, checkbox, references, row) {
|
|
var clickHandler = () => {
|
|
refsSet = getStoredCheckboxRefs(checkbox);
|
|
var markWhenChecked = settings.markWhenChecked == checkbox;
|
|
eventArgs = {
|
|
checkbox: checkbox,
|
|
refs: references,
|
|
}
|
|
if (input.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);
|
|
}
|
|
|
|
return [
|
|
(e) => {
|
|
clickHandler();
|
|
},
|
|
(e) => {
|
|
e.preventDefault();
|
|
if (row.onmousemove) row.onmousemove();
|
|
},
|
|
(e) => {
|
|
e.preventDefault();
|
|
input.checked = !input.checked;
|
|
input.indeterminate = false;
|
|
clickHandler();
|
|
}
|
|
];
|
|
}
|
|
|
|
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 getBomListByLayer(layer) {
|
|
switch (layer) {
|
|
case 'F': return pcbdata.bom.F.slice();
|
|
case 'B': return pcbdata.bom.B.slice();
|
|
case 'FB': return pcbdata.bom.both.slice();
|
|
}
|
|
return [];
|
|
}
|
|
|
|
function getSelectedBomList() {
|
|
if (settings.bommode == "netlist") {
|
|
return pcbdata.nets.slice();
|
|
}
|
|
var out = getBomListByLayer(settings.canvaslayout);
|
|
|
|
if (settings.bommode == "ungrouped") {
|
|
// expand bom table
|
|
var expandedTable = [];
|
|
for (var bomentry of out) {
|
|
for (var ref of bomentry) {
|
|
expandedTable.push([ref]);
|
|
}
|
|
}
|
|
return expandedTable;
|
|
}
|
|
|
|
return out;
|
|
}
|
|
|
|
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][0] != b[i][0]) 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();
|
|
|
|
bomtable = getSelectedBomList();
|
|
|
|
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, td.ontouchstart, td.ontouchend] = createCheckboxHandlers(input, 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);
|
|
if (settings.highlightRowOnClick) {
|
|
tr.onmousedown = handler;
|
|
} else {
|
|
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 childNum = checkboxnum + settings.columnOrder.indexOf("checkboxes");
|
|
var checkbox = bomrow.childNodes[childNum].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 childNum = checkboxnum + 1 + settings.columnOrder.indexOf("checkboxes");
|
|
var checkbox = bomrow.childNodes[childNum].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) {
|
|
initRender();
|
|
initStorage();
|
|
initDefaults();
|
|
initUtils();
|
|
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="highlightRowOnClickCheckbox" type="checkbox" checked onchange="setHighlightRowOnClick(this.checked)">
|
|
Highlight row on click
|
|
</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>
|