<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Interactive BOM for KiCAD</title>
  <style type="text/css">
:root {
  --pcb-edge-color: black;
  --pad-color: #878787;
  --pad-hole-color: #CCCCCC;
  --pad-color-highlight: #D04040;
  --pad-color-highlight-both: #D0D040;
  --pad-color-highlight-marked: #44a344;
  --pin1-outline-color: #ffb629;
  --pin1-outline-color-highlight: #ffb629;
  --pin1-outline-color-highlight-both: #fcbb39;
  --pin1-outline-color-highlight-marked: #fdbe41;
  --silkscreen-edge-color: #aa4;
  --silkscreen-polygon-color: #4aa;
  --silkscreen-text-color: #4aa;
  --fabrication-edge-color: #907651;
  --fabrication-polygon-color: #907651;
  --fabrication-text-color: #a27c24;
  --track-color: #def5f1;
  --track-color-highlight: #D04040;
  --zone-color: #def5f1;
  --zone-color-highlight: #d0404080;
}

html,
body {
  margin: 0px;
  height: 100%;
  font-family: Verdana, sans-serif;
}

.dark.topmostdiv {
  --pcb-edge-color: #eee;
  --pad-color: #808080;
  --pin1-outline-color: #ffa800;
  --pin1-outline-color-highlight: #ccff00;
  --track-color: #42524f;
  --zone-color: #42524f;
  background-color: #252c30;
  color: #eee;
}

button {
  background-color: #eee;
  border: 1px solid #888;
  color: black;
  height: 44px;
  width: 44px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 14px;
  font-weight: bolder;
}

.dark button {
  /* This will be inverted */
  background-color: #c3b7b5;
}

button.depressed {
  background-color: #0a0;
  color: white;
}

.dark button.depressed {
  /* This will be inverted */
  background-color: #b3b;
}

button:focus {
  outline: 0;
}

button#tb-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#lr-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#bom-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-grouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-ungrouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-netlist-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}

button#copy {
  background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
  background-position: 6px 6px;
  background-repeat: no-repeat;
  background-size: 26px 26px;
  border-radius: 6px;
  height: 40px;
  width: 40px;
  margin: 10px 5px;
}

button#copy:active {
  box-shadow: inset 0px 0px 5px #6c6c6c;
}

textarea.clipboard-temp {
  position: fixed;
  top: 0;
  left: 0;
  width: 2em;
  height: 2em;
  padding: 0;
  border: None;
  outline: None;
  box-shadow: None;
  background: transparent;
}

.left-most-button {
  border-right: 0;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.middle-button {
  border-right: 0;
}

.right-most-button {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.button-container {
  font-size: 0;
  margin: 0.4rem 0.4rem 0.4rem 0;
}

.dark .button-container {
  filter: invert(1);
}

.button-container button {
  background-size: 32px 32px;
  background-position: 5px 5px;
  background-repeat: no-repeat;
}

@media print {
  .hideonprint {
    display: none;
  }
}

canvas {
  cursor: crosshair;
}

canvas:active {
  cursor: grabbing;
}

.fileinfo {
  width: 100%;
  max-width: 1000px;
  border: none;
  padding: 3px;
}

.fileinfo .title {
  font-size: 20pt;
  font-weight: bold;
}

.fileinfo td {
  overflow: hidden;
  white-space: nowrap;
  max-width: 1px;
  width: 50%;
  text-overflow: ellipsis;
}

.bom {
  border-collapse: collapse;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 10pt;
  table-layout: fixed;
  width: 100%;
  margin-top: 1px;
  position: relative;
}

.bom th,
.bom td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

.dark .bom th,
.dark .bom td {
  border: 1px solid #777;
}

.bom th {
  background-color: #CCCCCC;
  background-clip: padding-box;
}

.dark .bom th {
  background-color: #3b4749;
}

.bom tr.highlighted:nth-child(n) {
  background-color: #cfc;
}

.dark .bom tr.highlighted:nth-child(n) {
  background-color: #226022;
}

.bom tr:nth-child(even) {
  background-color: #f2f2f2;
}

.dark .bom tr:nth-child(even) {
  background-color: #313b40;
}

.bom tr.checked {
  color: #1cb53d;
}

.dark .bom tr.checked {
  color: #2cce54;
}

.bom tr {
  transition: background-color 0.2s;
}

.bom .numCol {
  width: 30px;
}

.bom .value {
  width: 15%;
}

.bom .quantity {
  width: 65px;
}

.bom th .sortmark {
  position: absolute;
  right: 1px;
  top: 1px;
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #221 transparent;
  transform-origin: 50% 85%;
  transition: opacity 0.2s, transform 0.4s;
}

.dark .bom th .sortmark {
  filter: invert(1);
}

.bom th .sortmark.none {
  opacity: 0;
}

.bom th .sortmark.desc {
  transform: rotate(180deg);
}

.bom th:hover .sortmark.none {
  opacity: 0.5;
}

.bom .bom-checkbox {
  width: 30px;
  position: relative;
  user-select: none;
  -moz-user-select: none;
}

.bom .bom-checkbox:before {
  content: "";
  position: absolute;
  border-width: 15px;
  border-style: solid;
  border-color: #51829f transparent transparent transparent;
  visibility: hidden;
  top: -15px;
}

.bom .bom-checkbox:after {
  content: "Double click to set/unset all";
  position: absolute;
  color: white;
  top: -35px;
  left: -26px;
  background: #51829f;
  padding: 5px 15px;
  border-radius: 8px;
  white-space: nowrap;
  visibility: hidden;
}

.bom .bom-checkbox:hover:before,
.bom .bom-checkbox:hover:after {
  visibility: visible;
  transition: visibility 0.2s linear 1s;
}

.split {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow-y: auto;
  overflow-x: hidden;
  background-color: inherit;
}

.split.split-horizontal,
.gutter.gutter-horizontal {
  height: 100%;
  float: left;
}

.gutter {
  background-color: #ddd;
  background-repeat: no-repeat;
  background-position: 50%;
  transition: background-color 0.3s;
}

.dark .gutter {
  background-color: #777;
}

.gutter.gutter-horizontal {
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
  cursor: ew-resize;
  width: 5px;
}

.gutter.gutter-vertical {
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=');
  cursor: ns-resize;
  height: 5px;
}

.searchbox {
  float: left;
  height: 40px;
  margin: 10px 5px;
  padding: 12px 32px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 18px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 6px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABNklEQVQ4T8XSMUvDQBQH8P/LElFa/AIZHcTBQSz0I/gFstTBRR2KUC4ldDxw7h0Bl3RRUATxi4iiODgoiLNrbQYp5J6cpJJqomkX33Z37/14d/dIa33MzDuYI4johOI4XhyNRteO46zNYjDzAxE1yBZprVeZ+QbAUhXEGJMA2Ox2u4+fQIa0mPmsCgCgJYQ4t7lfgF0opQYAdv9ABkKI/UnOFCClXKjX61cA1osQY8x9kiRNKeV7IWA3oyhaSdP0FkAtjxhj3hzH2RBCPOf3pzqYHCilfAAX+URm9oMguPzeWSGQvUcMYC8rOBJCHBRdqxTo9/vbRHRqi8bj8XKv1xvODbiuW2u32/bvf0SlDv4XYOY7z/Mavu+nM1+BmQ+NMc0wDF/LprP0DbTWW0T00ul0nn4b7Q87+X4Qmfiq2wAAAABJRU5ErkJggg==');
  background-position: 10px 10px;
  background-repeat: no-repeat;
}

.dark .searchbox {
  background-color: #111;
  color: #eee;
}

.searchbox::placeholder {
  color: #ccc;
}

.dark .searchbox::placeholder {
  color: #666;
}

.filter {
  width: calc(60% - 64px);
}

.reflookup {
  width: calc(40% - 10px);
}

input[type=text]:focus {
  background-color: white;
  border: 1px solid #333;
}

.dark input[type=text]:focus {
  background-color: #333;
  border: 1px solid #ccc;
}

mark.highlight {
  background-color: #5050ff;
  color: #fff;
  padding: 2px;
  border-radius: 6px;
}

.dark mark.highlight {
  background-color: #76a6da;
  color: #111;
}

.menubtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
}

.statsbtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.iobtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.visbtn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' stroke='%23333' d='M2.5 4.5h5v15h-5zM9.5 4.5h5v15h-5zM16.5 4.5h5v15h-5z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  padding: 15px;
}

#vismenu-content {
  left: 0px;
  font-family: Verdana, sans-serif;
}

.dark .statsbtn,
.dark .savebtn,
.dark .menubtn,
.dark .iobtn,
.dark .visbtn {
  filter: invert(1);
}

.flexbox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.savebtn {
  background-color: #d6d6d6;
  width: auto;
  height: 30px;
  flex-grow: 1;
  margin: 5px;
  border-radius: 4px;
}

.savebtn:active {
  background-color: #0a0;
  color: white;
}

.dark .savebtn:active {
  /* This will be inverted */
  background-color: #b3b;
}

.stats {
  border-collapse: collapse;
  font-size: 12pt;
  table-layout: fixed;
  width: 100%;
  min-width: 450px;
}

.dark .stats td {
  border: 1px solid #bbb;
}

.stats td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

#checkbox-stats div {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

#checkbox-stats .bar {
  background-color: rgba(28, 251, 0, 0.6);
}

.menu {
  position: relative;
  display: inline-block;
  margin: 0.4rem 0.4rem 0.4rem 0;
}

.menu-content {
  font-size: 12pt !important;
  text-align: left !important;
  font-weight: normal !important;
  display: none;
  position: absolute;
  background-color: white;
  right: 0;
  min-width: 300px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 100;
  padding: 8px;
}

.dark .menu-content {
  background-color: #111;
}

.menu:hover .menu-content {
  display: block;
}

.menu:hover .menubtn,
.menu:hover .iobtn,
.menu:hover .statsbtn {
  background-color: #eee;
}

.menu-label {
  display: inline-block;
  padding: 8px;
  border: 1px solid #ccc;
  border-top: 0;
  width: calc(100% - 18px);
}

.menu-label-top {
  border-top: 1px solid #ccc;
}

.menu-textbox {
  float: left;
  height: 24px;
  margin: 10px 5px;
  padding: 5px 5px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 14px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 4px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  width: calc(100% - 10px);
}

.menu-textbox.invalid,
.dark .menu-textbox.invalid {
  color: red;
}

.dark .menu-textbox {
  background-color: #222;
  color: #eee;
}

.radio-container {
  margin: 4px;
}

.topmostdiv {
  display: flex;
  flex-direction: column;
  width: 100%;
  background-color: white;
  transition: background-color 0.3s;
  min-height: 100%;
}

#top {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
}

#topdivider {
  border-bottom: 2px solid black;
  display: flex;
  justify-content: center;
  align-items: center;
}

.dark #topdivider {
  border-bottom: 2px solid #ccc;
}

#topdivider>div {
  position: relative;
}

#toptoggle {
  cursor: pointer;
  user-select: none;
  position: absolute;
  padding: 0.1rem 0.3rem;
  top: -0.4rem;
  left: -1rem;
  font-size: 1.4rem;
  line-height: 60%;
  border: 1px solid black;
  border-radius: 1rem;
  background-color: #fff;
  z-index: 100;
}

.flipped {
  transform: rotate(0.5turn);
}

.dark #toptoggle {
  border: 1px solid #fff;
  background-color: #222;
}

#fileinfodiv {
  flex: 20rem 1 0;
  overflow: auto;
}

#bomcontrols {
  display: flex;
  flex-direction: row-reverse;
}

#bomcontrols>* {
  flex-shrink: 0;
}

#dbg {
  display: block;
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #aaa;
}

::-webkit-scrollbar-thumb {
  background: #666;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  margin: 3px 0;
  padding: 0;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
  border-radius: 3px;
}

.slider:hover {
  opacity: 1;
}

.slider:focus {
  outline: none;
}

.slider::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  width: 100%;
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
  border: none;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin-top: -4px;
}

.dark .slider::-webkit-slider-thumb {
  background: #3d3;
}

.slider::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
}

.slider::-moz-range-track {
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
}

.dark .slider::-moz-range-thumb {
  background: #3d3;
}

.slider::-ms-track {
  width: 100%;
  height: 8px;
  border-width: 3px 0;
  background: transparent;
  border-color: transparent;
  color: transparent;
  transition: opacity .2s;
}

.slider::-ms-fill-lower {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-fill-upper {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin: 0;
}

.shameless-plug {
  font-size: 0.8em;
  text-align: center;
  display: block;
}

a {
  color: #0278a4;
}

.dark a {
  color: #00b9fd;
}

#frontcanvas,
#backcanvas {
  touch-action: none;
}

.placeholder {
  border: 1px dashed #9f9fda !important;
  background-color: #edf2f7 !important;
}

.dragging {
  z-index: 999;
}

.dark .dragging>table>tbody>tr {
  background-color: #252c30;
}

.dark .placeholder {
  filter: invert(1);
}

.column-spacer {
  top: 0;
  left: 0;
  width: calc(100% - 4px);
  position: absolute;
  cursor: pointer;
  user-select: none;
  height: 100%;
}

.column-width-handle {
  top: 0;
  right: 0;
  width: 4px;
  position: absolute;
  cursor: col-resize;
  user-select: none;
  height: 100%;
}

.column-width-handle:hover {
  background-color: #4f99bd;
}

.help-link {
  border: 1px solid #0278a4;
  padding-inline: 0.3rem;
  border-radius: 3px;
  cursor: pointer;
}

.dark .help-link {
  border: 1px solid #00b9fd;
}

.bom-color {
  width: 20%;
}

.color-column input {
  width: 1.6rem;
  height: 1rem;
  border: 1px solid black;
  cursor: pointer;
  padding: 0;
}

/* removes default styling from input color element */
::-webkit-color-swatch {
  border: none;
}

::-webkit-color-swatch-wrapper {
  padding: 0;
}

::-moz-color-swatch,
::-moz-focus-inner {
  border: none;
}

::-moz-focus-inner {
  padding: 0;
}
/* #bomhead {
    position: sticky;
    top: 0px;
    z-index: 1;
} */
  </style>
  <script type="text/javascript" >
///////////////////////////////////////////////
/*
  Split.js - v1.3.5
  MIT License
  https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});

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

///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////

///////////////////////////////////////////////
/*!
 * PEP v0.4.3 | https://github.com/jquery/PEP
 * Copyright jQuery Foundation and other contributors | http://jquery.org/license
 */
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});

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

///////////////////////////////////////////////
var config = {"dark_mode": false, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": "none", "redraw_on_drag": true, "board_rotation": 0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint"]}
///////////////////////////////////////////////

///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("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ZQBGlZ2VhpXOleGltZXdleQ8OZXwlYWVllhzlYmV6CxBlaTCGZWEj2GV8xXRlcvibpXIxQOVi5Xnk3GVtNYiTGWV/S1WQkOVwdVAlZaV/VJtlZBVvZWnXW5owOWQFeDl0hWJ5dPlgOWEVajlh+WrZdoV+OXl5Yclh2WUFYUV5hWrwFYVrNm9wTUV1WXvZZ4Vuwc+FaLlgRWS5fHlv2WR5Zvl0RXOFeoV9FX4FaqVu2WV5YYVuRX15ZAAVOWKZc7liAxh3CVlklX7pY0ViKWCFcAV8hXR5ZpVi+XEVaIV2lWD5eZVyRWn5cxVomWcVcYV1BWt5eklgVW+qM6XcGXOFdFV7aWJVaRV4uW4VdLlshXjVcgVxlWqFbRVpVWMVYQV9lXsVdXlrlWmFc1V8sBCVdBl3uW/5f7lsVXeFaNVuVXYVceAUBWhFclVhlXbpYVVm1WQACkVlVWX5bVV51WNVb5VrVX3VdMR5WWxFa4VvOXXGe0VkNXkVcEVg2XhFdDV02XU1cVVyNXlVftVxuWOVdkV0wB5FZ5VzeWE1bdV7+WFcfX5YVXcFe9Vw1WNJazVk1XA1fhV4NWLVbNV/mXC1YjVqNXS1axVkABX5fVVvFXXVfQVokxBhEzgPuWyVc0V8VW21fhl3RX9FcMVin9PfzWVq5WLFZISa5Wd3FmVn5WqlemVoCWTL35EDxW7ldOV5t17+wQV/pXvFZ3V0IITlc3Vv5XSlbBVr5XqlaA5hBW6lZ0sCFXDfXvVlGB8BC7db5XTglvV1JWz1eJ/Q9XgNcPV4n83ldPVnpWd3AA18SIN1ZTAFZXT1ccXFXw8Un2V25WUNeaVj9WllYQ1k5XblesV+ZXnRFuV8TGSlduVs2r4FXIgnRNTAB8VrxWcld8V3ZXpwWPLBOWeXXEiDiXEYFqqOwde0CFjNjWtLhvV/PyHDTY17jS+NdFuep8aNYCVsTXRNayVjaRQVdyVpfxXlZstRxX1ldVUza8ZNfMTcxXH1c3VpDWMNaaVzTXNleA1zDXdNfQ1mFXIbCDV3NX21ctVsNX+1dgVmhXWVfslkdXY1crV7lXeVY7lxNX61edgWZAm1fpludWfVYpVv1X+FeIV6VWUVbzV5FXKFfWlotXB1bZVstXHVc5VxzWXVdrVydWMalYjPVX1FZbV/OW/NcMx5dWDFepo6r9zQG78BDWAVeXIaDXPlc3V69XwNceVo9Wz1eA1qDXN1bA12AI4Nc3VmDW71a3V89XH1eA17DXN1cw1trXNleY1o5X31cBV4n9Wtbq1v8hIXRTARrWqte/eaCxnleFdKbXqwGPVsZWqlca1nJXBOPg1oLdylea1/TWdNcQ1vTXjldfV1DXn1duVjTXENcBV/DWWewKVpTXyKzO1sjW3DAo1/7aqNYk1wjWF8lE1xjX0laOKYJWGlawaMJXONb8GBjWGP0CXUFWOnIE157WKDEaVt7Xxlce1vjXwdeI1iJcYQFsVijg5NfyV1TXztYI1krW1Nfy1vDWdtYM10FXsNY21mpWsdb014zWc1fAV/zX5Vas1iRXi1btVyLXh1dHVuNXx1fi1lhX61YjMP+BPNbTVmaX9McXVgMBMtdXVy7911Yu10FWtv05lObX7lZm14DXr1Ya1z5W2tf610FXBtffV7rX/taaVrrX9lZ61t9WqlaQ1gbW/1afV0XXRtfF1obXqtamV8rWytep0EZWJtaK1xZWltbmV4DXDtfR1+1XNtbQ11pXqNa/VrDXttd+V9XXaleO1nbXFtb6V5bXblYg1o3WT1eI143XQNf11nbXNdaA1nbXVdd/V0xXblfa1uwd5dbD12XXgVcN9ArX833U19XWyNeW1sXXFlf91k9WataD18ZWHFfXOMfhWNYR1jiW/cH018JXqPCq1hTWubBJgAnXAte7V/1WUVfDV6zWWVbjlodXVVadV2LX41Zc112WrUK3yZnWDVbS19nXidYDV+wBTNaJ1qlXe1dRV5vXbVds1xBXy1eTl6tXFFf5V91WCgf711LWqrzZ1ulWsQE517LXSAmL1ivWddYU1gvXlgx11gPW+ddz1qpXNdY+VzPWhtfD1lPXI9dv1+PWHdYV1ujnn9dv1yXWzlaG1kPXbjhuV0/Xs9b11t7QDdeGVwXWTdd6VuDWLdZd1o7XCtZx1kFXbdf1SBPXHdfQ1nbXLdfW193Xitc9183WdtZ91kA2s9cmV4XXg9fT1rXWb9fGV8PXP9ZIN2XW39fINxXW5dd61+3XmtYfV1PWCDcuV0FWxtZ213XWHlcANtg2j9d7OE/W89ar1+6Ay9e2AavW8qJH1zEAx9fNVhvXQtfvl6fXyddn1h1X7NY71qtXnNc/lrsAd5eicAyQ19e811tWt9Z0lvSXsIASloyWNxccq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ACFNyWTWfTTIDSwB7Z5t0k3ybZytym2x7abttq3J7dbtjS2djY7t3q27rY9tnu3kLRVyeSWrbZktrC3H7btt5+2vrcFtuy2P7bNNr+3LTbItzu3I7YXt0G2Y7fBtuO2FbYTt8iXQiFVtre3SzfCJxDjVzH3tiU2dbZK1vW3q5YNt2kAjbeLtnG2RLdfNza2r7YIdsc6vwCrNkm3MbZwAJ+2dDZDtqe2AbZ/t0M2/7f7Nz22CHZ9tl037FZtt3m367dXsbh3P7dFttvWQzfXN+e3MJcjNmW2dzYwdyG2E7YCtje3cHYetvQQ4HCTJD1HiHaituKBc7fClz2X4raq4RK3S7YYd1U3QDBwMSml6rZGVxq3B9Z0Nqm3fTfatiC36be/t+k3XbZZt923BHaQtyrgQmDklu+2QHZrtc7xsrZcd1+23HeKtnh327e8dly3kHaUdjy20Hdlt76WRrZalvk2U7bhtya2PamP9LO32JbnocvWgRE81vzJAgAFISx26Hbxt0s2utEazFh2QHcyt2E3h7Y+tliX8rdidhm2+HYUdgR22bceNmp2ZIjngaS2GncnN+23pHbgd2R30TfFthJ2DLazuGQwJoAGd2pWhncgdkZ2Azbbt9p34nbnt6q2u7RL/OZ3ENYidik2lnc6tlZ2vHfkdiW2pnb+OLZ387bKvQZ23DZHt3C39nZPATx2EHZ6t0M3qrcUWWSwQnb9tueB5neud5p2pHdadmR2nbbkdiZ31namd+JS3ne2d/cRdnYRNu52uQAed1c2Xbcmdz22P6DBdi52nfyud0k3JHYdt/53p7cBd+F3gXc9t1PHvLHedkKW0XZ81jF3oXaXNw53HnfDt552pnedqb8RwXZJN0l2bneDtv53RnYBd8Z3cXedV3I3SakysYZAGXcad7o3hndZd5Z34Hbhd2e2uXeqt3p2J0gClKs2SXZodqc3yXcgtyl2xXfKthF2trbjwM4mQrFEdhbWvnfRd5l2WnaRNrF3eHbWdiV2DLevMTV2iXcud3V2mXZ+dzF22Xexdjl3xXdi17l31HGfx+l2UXYQVuV3nHb2d4V2DndFd662gbZddxtmLXf5dyF3tJcVd2F2A3aQds12Q2WRd7V2TzGtdpq2oXd9d+53lXajdiO2zXZpTd/86nY+dr1267f1d353DXftd413jnbVd8S2s3Zdifp2PXZ1dnZ3sLYLdu12RXbGdq02FHYdNit29ClDdut3bXYjdtN2Z7dVdvF2Anbbd6IoO3dJNzfWfXaLdxt32Xebdk52dHcHdl39ZXcTdpp2FXZTdmF2e3Zxdp124LcldhGoznWHd42363e7d/13e3Zut/t3y3ZBqYajq3YTd2t2R3bJd5d2KXYPdtd2+3dNdmd3T3b0iHd35XaFd8d2/XabdxB2M3afdh4s+3Vfdxd333apNid2HXandst2bHefd2p0APfzdrt2b3aVdu93HXYfd513W3cg9/bBoPbd/Ud3k3Y/d1N2EPbA9492IPb/diFh0Pc2ATD3w3bg9yN3D3cDdzd29fQ3JaS2HzfYd5wxYPew9ld3cPe/dml3PbbQSN52+LZCl+j2Fna4d8j3V3cQ9o93H3a2tzZ3AR2I9hdX+PeY9292v3aedlt3TndyduS0JPbiNqT3gPc/dyd22Pfk9z23XnahSZT3fNcWdgT3WPbk96d2trdBd3T3z3c+dy92bXaXd6T34Pdk96l2tPa2t9uozXSjkaS3YIAhd752ljecAHfXyf2513LXL9ZuCRwxBAh8V5pWgVDI1m4JzFYwIug3ljxk1vGMgvbIdmvWwQDado52gXZE9q+3nPbPd7V2ahENtt63APYM92z2KPfvd4T3kPamdjL2VFerArL3DUBy9vj2x3bU9nD37PY6dkz30vZWJpT2LPbzdxY2gPY6t+r2NPeM98D3wTYJd1r343cs9jz29XaY9ur2WPYa9k12Svc9t52pBvfQtz12F3cFd/L3xvZk9nr2HPaa9x43ZvYqcZnXu3BqEGr2sPZW9uz21vca9vr2cncrbWAgdvbLcQ1B9vbI9gr3BPbw9tL3NvcU9k0xuPcFl3b3rvc7dmz3DvcK9oT2qPdpdmKxxPba9xb2OveW9rr2JveO9qb2N3amdjV3orSD8ed2rPaTd273vvfu9zT2Nvf5V1oAXPfId1NX3veodvL3VPbB91b3QPdR9073k2fwDBhBLveq9z73OvY8dlH3evfw99H3UwEMCCr35vZxlnH3cvZg9r72CfaO9on26fce9hn2vLDm9+H2Rves96n3Q7dWd0t36fa1VsixAfaG99r2tFc59mn2jPfW9kn2nXEU93Zg9Pevdu72lfZO9yX3ywFjd8z3ZfeB9+X3RfeS9ql2dfb59rVW7lOCSV72n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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);

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

///////////////////////////////////////////////
// EventHandler.registerCallback(IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, () => {
//     for(var tr of bom.childNodes) {
//         tr.onclick = tr.onmousemove;
//         tr.onmousemove = null;
//     };
// });

///////////////////////////////////////////////
  </script>
</head>

<body>

<div id="topmostdiv" class="topmostdiv">
  <div id="top">
    <div id="fileinfodiv">
      <table class="fileinfo">
        <tbody>
          <tr>
            <td id="title" class="title" style="width: 70%">
              Title
            </td>
            <td id="revision" class="title" style="width: 30%">
              Revision
            </td>
          </tr>
          <tr>
            <td id="company">
              Company
            </td>
            <td id="filedate">
              Date
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <div id="bomcontrols">
      <div class="hideonprint menu">
        <button class="menubtn"></button>
        <div class="menu-content">
          <label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
            <input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
            Dark mode
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
            <input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
            Full Screen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
            Fab layer
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
            Silkscreen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
            References
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
            Values
          </label>
          <div id="tracksAndZonesCheckboxes">
            <label class="menu-label" style="width: calc(50% - 18px)">
              <input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
              Tracks
            </label><!-- This comment eats space! All of it!
            --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
              <input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
              Zones
            </label>
          </div>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
            Pads
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
            DNP outlined
          </label>
          <label class="menu-label">
            <input id="highlightRowOnClickCheckbox" type="checkbox" checked onchange="setHighlightRowOnClick(this.checked)">
            Highlight row on click
          </label>
          <label class="menu-label">
            <input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
            Continuous redraw on drag
          </label>
          <label class="menu-label">
            Highlight first pin
            <form id="highlightpin1">
              <div class="flexbox">
                <label>
                  <input type="radio" name="highlightpin1" value="none" onchange="setHighlightPin1('none')">
                  None
                </label>
                <label>
                  <input type="radio" name="highlightpin1" value="all" onchange="setHighlightPin1('all')">
                  All
                </label>
                <label>
                  <input type="radio" name="highlightpin1" value="selected" onchange="setHighlightPin1('selected')">
                  Selected
                </label>
              </div>
            </form>
          </label>
          <label class="menu-label">
            <span>Board rotation</span>
            <span style="float: right"><span id="rotationDegree">0</span>&#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>
