projet crepp_git/crepp-projects/station-meteo/hardware/transmetteur/base/v1.1 · branche main
ibom.html Voir sur GitLab
<!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;
}

  </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": "Lien plac\u00e9", "bom_view": "left-right", "layer_view": "FB", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint", "Description", "Reference"]}
///////////////////////////////////////////////

///////////////////////////////////////////////
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 : "&lt;no net&gt;");
      tr.appendChild(td);
      var color = settings.netColors[netname] || defaultNetColor;
      td = document.createElement("TD");
      var colorBox = document.createElement("INPUT");
      colorBox.type = "color";
      colorBox.value = color;
      colorBox.onchange = netColorChangeHandler(netname);
      colorBox.onmouseup = netColorRightClick(netname);
      colorBox.oncontextmenu = (e) => e.preventDefault();
      td.appendChild(colorBox);
      td.classList.add("color-column");
      tr.appendChild(td);
    } else {
      if (reflookup) {
        references = findRefInEntry(bomentry);
        if (references.length == 0) {
          continue;
        }
      } else {
        references = bomentry;
      }
      // Filter hidden columns
      var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
      columns.forEach((column) => {
        if (column === placeholderColumn) {
          var n = 1;
          if (column === "checkboxes")
            n = settings.checkboxes.length;
          for (i = 0; i < n; i++) {
            td = placeHolderElements.shift();
            tr.appendChild(td);
          }
          return;
        } else if (column === "checkboxes") {
          for (var checkbox of settings.checkboxes) {
            if (checkbox) {
              td = document.createElement("TD");
              var input = document.createElement("input");
              input.type = "checkbox";
              [input.onchange, 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&nbsp;" +
    /^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}

function changeBomLayout(layout) {
  document.getElementById("bom-btn").classList.remove("depressed");
  document.getElementById("lr-btn").classList.remove("depressed");
  document.getElementById("tb-btn").classList.remove("depressed");
  switch (layout) {
    case 'bom-only':
      document.getElementById("bom-btn").classList.add("depressed");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      document.getElementById("frontcanvas").style.display = "none";
      document.getElementById("backcanvas").style.display = "none";
      document.getElementById("topmostdiv").style.height = "";
      document.getElementById("topmostdiv").style.display = "block";
      break;
    case 'top-bottom':
      document.getElementById("tb-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("topmostdiv").style.height = "100%";
      document.getElementById("topmostdiv").style.display = "flex";
      document.getElementById("bomdiv").classList.remove("split-horizontal");
      document.getElementById("canvasdiv").classList.remove("split-horizontal");
      document.getElementById("frontcanvas").classList.add("split-horizontal");
      document.getElementById("backcanvas").classList.add("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        direction: "vertical",
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        onDragEnd: resizeAll
      });
      break;
    case 'left-right':
      document.getElementById("lr-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("topmostdiv").style.height = "100%";
      document.getElementById("topmostdiv").style.display = "flex";
      document.getElementById("bomdiv").classList.add("split-horizontal");
      document.getElementById("canvasdiv").classList.add("split-horizontal");
      document.getElementById("frontcanvas").classList.remove("split-horizontal");
      document.getElementById("backcanvas").classList.remove("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        direction: "vertical",
        onDragEnd: resizeAll
      });
  }
  settings.bomlayout = layout;
  writeStorage("bomlayout", layout);
  changeCanvasLayout(settings.canvaslayout);
}

function changeBomMode(mode) {
  document.getElementById("bom-grouped-btn").classList.remove("depressed");
  document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
  document.getElementById("bom-netlist-btn").classList.remove("depressed");
  var chkbxs = document.getElementsByClassName("visibility_checkbox");

  switch (mode) {
    case 'grouped':
      document.getElementById("bom-grouped-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = false;
      }
      break;
    case 'ungrouped':
      document.getElementById("bom-ungrouped-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = false;
      }
      break;
    case 'netlist':
      document.getElementById("bom-netlist-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = true;
      }
  }

  writeStorage("bommode", mode);
  if (mode != settings.bommode) {
    settings.bommode = mode;
    bomSortFunction = null;
    currentSortColumn = null;
    currentSortOrder = null;
    clearHighlightedFootprints();
  }
  populateBomTable();
}

function focusFilterField() {
  focusInputField(document.getElementById("filter"));
}

function focusRefLookupField() {
  focusInputField(document.getElementById("reflookup"));
}

function toggleBomCheckbox(bomrowid, checkboxnum) {
  if (!bomrowid || checkboxnum > settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var 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);

///////////////////////////////////////////////

///////////////////////////////////////////////

///////////////////////////////////////////////
  </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>&#176;</span>
            <input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
          </label>
          <label class="menu-label">
            <input id="offsetBackRotationCheckbox" type="checkbox" onchange="setOffsetBackRotation(this.checked)">
            Offset back rotation
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Bom checkboxes</div>
            <input id="bomCheckboxes" class="menu-textbox" type=text
                   oninput="setBomCheckboxes(this.value)">
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Mark when checked</div>
            <div id="markWhenCheckedContainer"></div>
          </label>
          <label class="menu-label">
            <span class="shameless-plug">
              <span>Created using</span>
              <a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
              <a target="blank" title="Mouse and keyboard help" href="https://github.com/openscopeproject/InteractiveHtmlBom/wiki/Usage#bom-page-mouse-actions" style="text-decoration: none;"><label class="help-link">?</label></a>
            </span>
          </label>
        </div>
      </div>
      <div class="button-container hideonprint">
        <button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
                title="Front only">F
        </button>
        <button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
                title="Front and Back">FB
        </button>
        <button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
                title="Back only">B
        </button>
      </div>
      <div class="button-container hideonprint">
        <button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
                title="BOM only"></button>
        <button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
                title="BOM left, drawings right"></button>
        <button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
                title="BOM top, drawings bot"></button>
      </div>
      <div class="button-container hideonprint">
        <button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
                title="Grouped BOM"></button>
        <button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
                title="Ungrouped BOM"></button>
        <button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
                title="Netlist"></button>
      </div>
      <div class="hideonprint menu">
        <button class="statsbtn"></button>
        <div class="menu-content">
          <table class="stats">
            <tbody>
              <tr>
                <td width="40%">Board stats</td>
                <td>Front</td>
                <td>Back</td>
                <td>Total</td>
              </tr>
              <tr>
                <td>Components</td>
                <td id="stats-components-front">~</td>
                <td id="stats-components-back">~</td>
                <td id="stats-components-total">~</td>
              </tr>
              <tr>
                <td>Groups</td>
                <td id="stats-groups-front">~</td>
                <td id="stats-groups-back">~</td>
                <td id="stats-groups-total">~</td>
              </tr>
              <tr>
                <td>SMD pads</td>
                <td id="stats-smd-pads-front">~</td>
                <td id="stats-smd-pads-back">~</td>
                <td id="stats-smd-pads-total">~</td>
              </tr>
              <tr>
                <td>TH pads</td>
                <td colspan=3 id="stats-th-pads">~</td>
              </tr>
            </tbody>
          </table>
          <table class="stats">
            <col width="40%"/><col />
            <tbody id="checkbox-stats">
              <tr>
                <td colspan=2 style="border-top: 0">Checkboxes</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="hideonprint menu">
        <button class="iobtn"></button>
        <div class="menu-content">
          <div class="menu-label menu-label-top">
            <div style="margin-left: 5px;">Save board image</div>
            <div class="flexbox">
              <input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
              <span>X</span>
              <input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
            </div>
            <label>
              <input id="render-save-transparent" type="checkbox">
              Transparent background
            </label>
            <div class="flexbox">
              <button class="savebtn" onclick="saveImage('F')">Front</button>
              <button class="savebtn" onclick="saveImage('B')">Back</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Config and checkbox state</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveSettings()">Export</button>
              <button class="savebtn" onclick="loadSettings()">Import</button>
              <button class="savebtn" onclick="resetSettings()">Reset</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Save bom table as</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveBomTable('csv')">csv</button>
              <button class="savebtn" onclick="saveBomTable('txt')">txt</button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div id="topdivider">
    <div class="hideonprint">
      <div id="toptoggle" onclick="topToggle()">︽</div>
    </div>
  </div>
  <div id="bot" class="split" style="flex: 1 1">
    <div id="bomdiv" class="split split-horizontal">
      <div style="width: 100%">
        <input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
               oninput="updateRefLookup(this.value)">
        <input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
               oninput="updateFilter(this.value)">
        <div class="button-container hideonprint" style="float: left; margin: 0;">
          <button id="copy" title="Copy bom table to clipboard"
               onclick="saveBomTable('clipboard')"></button>
        </div>
      </div>
      <div id="dbg"></div>
      <table class="bom" id="bomtable">
        <thead id="bomhead">
        </thead>
        <tbody id="bombody">
        </tbody>
      </table>
    </div>
    <div id="canvasdiv" class="split split-horizontal">
      <div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
      <div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
    </div>
  </div>
</div>

</body>

</html>