| <!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: 10px 10px 10px 0px; |
| } |
| |
| .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: 5px; |
| } |
| |
| .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: 10px 10px 10px 0px; |
| } |
| |
| .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 { |
| width: 100%; |
| height: 100%; |
| background-color: white; |
| transition: background-color 0.3s; |
| } |
| |
| #top { |
| height: 78px; |
| border-bottom: 2px solid black; |
| } |
| |
| .dark #top { |
| border-bottom: 2px solid #ccc; |
| } |
| |
| #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; |
| } |
| |
| |
| </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": true, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": false, "redraw_on_drag": true, "board_rotation": 0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "fields": ["Value", "Footprint"]} |
| /////////////////////////////////////////////// |
| |
| /////////////////////////////////////////////// |
| var pcbdata = JSON.parse(LZString.decompressFromBase64("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")) |
| /////////////////////////////////////////////// |
| |
| /////////////////////////////////////////////// |
| /* Utility functions */ |
| |
| var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' + |
| pcbdata.metadata.revision + '__#'; |
| var storage; |
| |
| function initStorage(key) { |
| try { |
| window.localStorage.getItem("blank"); |
| storage = window.localStorage; |
| } catch (e) { |
| // localStorage not available |
| } |
| if (!storage) { |
| try { |
| window.sessionStorage.getItem("blank"); |
| storage = window.sessionStorage; |
| } catch (e) { |
| // sessionStorage also not available |
| } |
| } |
| } |
| |
| function readStorage(key) { |
| if (storage) { |
| return storage.getItem(storagePrefix + key); |
| } else { |
| return null; |
| } |
| } |
| |
| function writeStorage(key, value) { |
| if (storage) { |
| storage.setItem(storagePrefix + key, value); |
| } |
| } |
| |
| function fancyDblClickHandler(el, onsingle, ondouble) { |
| return function() { |
| if (el.getAttribute("data-dblclick") == null) { |
| el.setAttribute("data-dblclick", 1); |
| setTimeout(function() { |
| if (el.getAttribute("data-dblclick") == 1) { |
| onsingle(); |
| } |
| el.removeAttribute("data-dblclick"); |
| }, 200); |
| } else { |
| el.removeAttribute("data-dblclick"); |
| ondouble(); |
| } |
| } |
| } |
| |
| function smoothScrollToRow(rowid) { |
| document.getElementById(rowid).scrollIntoView({ |
| behavior: "smooth", |
| block: "center", |
| inline: "nearest" |
| }); |
| } |
| |
| function focusInputField(input) { |
| input.scrollIntoView(false); |
| input.focus(); |
| input.select(); |
| } |
| |
| function copyToClipboard() { |
| var text = ''; |
| for (var node of bomhead.childNodes[0].childNodes) { |
| if (node.firstChild) { |
| text = text + node.firstChild.nodeValue; |
| } |
| if (node != bomhead.childNodes[0].lastChild) { |
| text += '\t'; |
| } |
| } |
| text += '\n'; |
| for (var row of bombody.childNodes) { |
| for (var cell of row.childNodes) { |
| for (var node of cell.childNodes) { |
| if (node.nodeName == "INPUT") { |
| if (node.checked) { |
| text = text + '✓'; |
| } |
| } else if (node.nodeName == "MARK") { |
| text = text + node.firstChild.nodeValue; |
| } else { |
| text = text + node.nodeValue; |
| } |
| } |
| if (cell != row.lastChild) { |
| text += '\t'; |
| } |
| } |
| text += '\n'; |
| } |
| 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 removeGutterNode(node) { |
| for (var i = 0; i < node.childNodes.length; i++) { |
| if (node.childNodes[i].classList && |
| node.childNodes[i].classList.contains("gutter")) { |
| node.removeChild(node.childNodes[i]); |
| break; |
| } |
| } |
| } |
| |
| function cleanGutters() { |
| removeGutterNode(document.getElementById("bot")); |
| removeGutterNode(document.getElementById("canvasdiv")); |
| } |
| |
| var units = { |
| prefixes: { |
| giga: ["G", "g", "giga", "Giga", "GIGA"], |
| mega: ["M", "mega", "Mega", "MEGA"], |
| kilo: ["K", "k", "kilo", "Kilo", "KILO"], |
| milli: ["m", "milli", "Milli", "MILLI"], |
| micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ |
| nano: ["N", "n", "nano", "Nano", "NANO"], |
| pico: ["P", "p", "pico", "Pico", "PICO"], |
| }, |
| unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"], |
| unitsLong: [ |
| "OHM", "Ohm", "ohm", "ohms", |
| "FARAD", "Farad", "farad", |
| "HENRY", "Henry", "henry" |
| ], |
| getMultiplier: function(s) { |
| if (this.prefixes.giga.includes(s)) return 1e9; |
| if (this.prefixes.mega.includes(s)) return 1e6; |
| if (this.prefixes.kilo.includes(s)) return 1e3; |
| if (this.prefixes.milli.includes(s)) return 1e-3; |
| if (this.prefixes.micro.includes(s)) return 1e-6; |
| if (this.prefixes.nano.includes(s)) return 1e-9; |
| if (this.prefixes.pico.includes(s)) return 1e-12; |
| return 1; |
| }, |
| valueRegex: null, |
| } |
| |
| function initUtils() { |
| var allPrefixes = units.prefixes.giga |
| .concat(units.prefixes.mega) |
| .concat(units.prefixes.kilo) |
| .concat(units.prefixes.milli) |
| .concat(units.prefixes.micro) |
| .concat(units.prefixes.nano) |
| .concat(units.prefixes.pico); |
| var allUnits = units.unitsShort.concat(units.unitsLong); |
| units.valueRegex = new RegExp("^([0-9\.]+)" + |
| "\\s*(" + allPrefixes.join("|") + ")?" + |
| "(" + allUnits.join("|") + ")?" + |
| "(\\b.*)?$", ""); |
| units.valueAltRegex = new RegExp("^([0-9]*)" + |
| "(" + units.unitsShort.join("|") + ")?" + |
| "([GgMmKkUuNnPp])?" + |
| "([0-9]*)" + |
| "(\\b.*)?$", ""); |
| if (config.fields.includes("Value")) { |
| var index = config.fields.indexOf("Value"); |
| pcbdata.bom["parsedValues"] = {}; |
| for (var id in pcbdata.bom.fields) { |
| pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index]) |
| } |
| } |
| } |
| |
| function parseValue(val, ref) { |
| var inferUnit = (unit, ref) => { |
| if (unit) { |
| unit = unit.toLowerCase(); |
| if (unit == 'Ω' || unit == "ohm" || unit == "ohms") { |
| unit = 'r'; |
| } |
| unit = unit[0]; |
| } else { |
| ref = /^([a-z]+)\d+$/i.exec(ref); |
| if (ref) { |
| ref = ref[1].toLowerCase(); |
| if (ref == "c") unit = 'f'; |
| else if (ref == "l") unit = 'h'; |
| else if (ref == "r" || ref == "rv") unit = 'r'; |
| else unit = null; |
| } |
| } |
| return unit; |
| }; |
| val = val.replace(/,/g, ""); |
| var match = units.valueRegex.exec(val); |
| var unit; |
| if (match) { |
| val = parseFloat(match[1]); |
| if (match[2]) { |
| val = val * units.getMultiplier(match[2]); |
| } |
| unit = inferUnit(match[3], ref); |
| if (!unit) return null; |
| else return { |
| val: val, |
| unit: unit, |
| extra: match[4], |
| } |
| } |
| match = units.valueAltRegex.exec(val); |
| if (match && (match[1] || match[4])) { |
| val = parseFloat(match[1] + "." + match[4]); |
| if (match[3]) { |
| val = val * units.getMultiplier(match[3]); |
| } |
| unit = inferUnit(match[2], ref); |
| if (!unit) return null; |
| else return { |
| val: val, |
| unit: unit, |
| extra: match[5], |
| } |
| } |
| return null; |
| } |
| |
| function valueCompare(a, b, stra, strb) { |
| if (a === null && b === null) { |
| // Failed to parse both values, compare them as strings. |
| if (stra != strb) return stra > strb ? 1 : -1; |
| else return 0; |
| } else if (a === null) { |
| return 1; |
| } else if (b === null) { |
| return -1; |
| } else { |
| if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1; |
| else if (a.val != b.val) return a.val > b.val ? 1 : -1; |
| else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1; |
| else return 0; |
| } |
| } |
| |
| function validateSaveImgDimension(element) { |
| var valid = false; |
| var intValue = 0; |
| if (/^[1-9]\d*$/.test(element.value)) { |
| intValue = parseInt(element.value); |
| if (intValue <= 16000) { |
| valid = true; |
| } |
| } |
| if (valid) { |
| element.classList.remove("invalid"); |
| } else { |
| element.classList.add("invalid"); |
| } |
| return intValue; |
| } |
| |
| function saveImage(layer) { |
| var width = validateSaveImgDimension(document.getElementById("render-save-width")); |
| var height = validateSaveImgDimension(document.getElementById("render-save-height")); |
| var bgcolor = null; |
| if (!document.getElementById("render-save-transparent").checked) { |
| var style = getComputedStyle(topmostdiv); |
| bgcolor = style.getPropertyValue("background-color"); |
| } |
| if (!width || !height) return; |
| |
| // Prepare image |
| var canvas = document.createElement("canvas"); |
| var layerdict = { |
| transform: { |
| x: 0, |
| y: 0, |
| s: 1, |
| panx: 0, |
| pany: 0, |
| zoom: 1, |
| }, |
| bg: canvas, |
| fab: canvas, |
| silk: canvas, |
| highlight: canvas, |
| layer: layer, |
| } |
| // Do the rendering |
| recalcLayerScale(layerdict, width, height); |
| prepareLayer(layerdict); |
| clearCanvas(canvas, bgcolor); |
| drawBackground(layerdict, false); |
| drawHighlightsOnLayer(layerdict, false); |
| |
| // Save image |
| var imgdata = canvas.toDataURL("image/png"); |
| |
| var filename = pcbdata.metadata.title; |
| if (pcbdata.metadata.revision) { |
| filename += `.${pcbdata.metadata.revision}`; |
| } |
| filename += `.${layer}.png`; |
| saveFile(filename, dataURLtoBlob(imgdata)); |
| } |
| |
| function saveSettings() { |
| var data = { |
| type: "InteractiveHtmlBom settings", |
| version: 1, |
| pcbmetadata: pcbdata.metadata, |
| settings: settings, |
| } |
| var blob = new Blob([JSON.stringify(data, null, 4)], { |
| type: "application/json" |
| }); |
| saveFile(`${pcbdata.metadata.title}.settings.json`, blob); |
| } |
| |
| function loadSettings() { |
| var input = document.createElement("input"); |
| input.type = "file"; |
| input.accept = ".settings.json"; |
| input.onchange = function(e) { |
| var file = e.target.files[0]; |
| var reader = new FileReader(); |
| reader.onload = readerEvent => { |
| var content = readerEvent.target.result; |
| var newSettings; |
| try { |
| newSettings = JSON.parse(content); |
| } catch (e) { |
| alert("Selected file is not InteractiveHtmlBom settings file."); |
| return; |
| } |
| if (newSettings.type != "InteractiveHtmlBom settings") { |
| alert("Selected file is not InteractiveHtmlBom settings file."); |
| return; |
| } |
| var metadataMatches = newSettings.hasOwnProperty("pcbmetadata"); |
| if (metadataMatches) { |
| for (var k in pcbdata.metadata) { |
| if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) { |
| metadataMatches = false; |
| } |
| } |
| } |
| if (!metadataMatches) { |
| var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4); |
| var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4); |
| if (!confirm( |
| `Settins file metadata does not match current metadata.\n\n` + |
| `Page metadata:\n${currentMetadata}\n\n` + |
| `Settings file metadata:\n${fileMetadata}\n\n` + |
| `Press OK if you would like to import settings anyway.`)) { |
| return; |
| } |
| } |
| overwriteSettings(newSettings.settings); |
| } |
| reader.readAsText(file, 'UTF-8'); |
| } |
| input.click(); |
| } |
| |
| function overwriteSettings(newSettings) { |
| initDone = false; |
| Object.assign(settings, newSettings); |
| writeStorage("bomlayout", settings.bomlayout); |
| writeStorage("bommode", settings.bommode); |
| writeStorage("canvaslayout", settings.canvaslayout); |
| writeStorage("bomCheckboxes", settings.checkboxes.join(",")); |
| document.getElementById("bomCheckboxes").value = settings.checkboxes.join(","); |
| for (var checkbox of settings.checkboxes) { |
| writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]); |
| } |
| writeStorage("markWhenChecked", settings.markWhenChecked); |
| padsVisible(settings.renderPads); |
| document.getElementById("padsCheckbox").checked = settings.renderPads; |
| fabricationVisible(settings.renderFabrication); |
| document.getElementById("fabricationCheckbox").checked = settings.renderFabrication; |
| silkscreenVisible(settings.renderSilkscreen); |
| document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen; |
| referencesVisible(settings.renderReferences); |
| document.getElementById("referencesCheckbox").checked = settings.renderReferences; |
| valuesVisible(settings.renderValues); |
| document.getElementById("valuesCheckbox").checked = settings.renderValues; |
| tracksVisible(settings.renderTracks); |
| document.getElementById("tracksCheckbox").checked = settings.renderTracks; |
| zonesVisible(settings.renderZones); |
| document.getElementById("zonesCheckbox").checked = settings.renderZones; |
| dnpOutline(settings.renderDnpOutline); |
| document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline; |
| setRedrawOnDrag(settings.redrawOnDrag); |
| document.getElementById("dragCheckbox").checked = settings.redrawOnDrag; |
| setDarkMode(settings.darkMode); |
| document.getElementById("darkmodeCheckbox").checked = settings.darkMode; |
| setHighlightPin1(settings.highlightpin1); |
| document.getElementById("highlightpin1Checkbox").checked = settings.highlightpin1; |
| showFootprints(settings.show_footprints); |
| writeStorage("boardRotation", settings.boardRotation); |
| document.getElementById("boardRotation").value = settings.boardRotation / 5; |
| document.getElementById("rotationDegree").textContent = settings.boardRotation; |
| 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: "default", |
| bomlayout: "default", |
| bommode: "grouped", |
| checkboxes: [], |
| checkboxStoredRefs: {}, |
| darkMode: false, |
| highlightpin1: false, |
| redrawOnDrag: true, |
| boardRotation: 0, |
| renderPads: true, |
| renderReferences: true, |
| renderValues: true, |
| renderSilkscreen: true, |
| renderFabrication: true, |
| renderDnpOutline: false, |
| renderTracks: true, |
| renderZones: true, |
| columnOrder: [], |
| hiddenColumns: [], |
| } |
| |
| 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 (!["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; |
| |
| settings.markWhenChecked = readStorage("markWhenChecked") || ""; |
| populateMarkWhenCheckedOptions(); |
| |
| function initBooleanSetting(storageString, def, elementId, func) { |
| var b = readStorage(storageString); |
| if (b === null) { |
| b = def; |
| } else { |
| b = (b == "true"); |
| } |
| document.getElementById(elementId).checked = b; |
| func(b); |
| } |
| |
| initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible); |
| initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible); |
| initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible); |
| initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible); |
| initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible); |
| if ("tracks" in pcbdata) { |
| initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible); |
| initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible); |
| } else { |
| document.getElementById("tracksAndZonesCheckboxes").style.display = "none"; |
| tracksVisible(false); |
| zonesVisible(false); |
| } |
| initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline); |
| initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag); |
| initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode); |
| initBooleanSetting("highlightpin1", config.highlight_pin1, "highlightpin1Checkbox", setHighlightPin1); |
| |
| 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; |
| } |
| |
| // 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; |
| } |
| 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 (txt[i][j] == '\t') { |
| var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width; |
| offsetx += fourSpaces - offsetx % fourSpaces; |
| continue; |
| } else if (txt[i][j] == '~') { |
| j++; |
| if (j == txt[i].length) |
| break; |
| if (txt[i][j] != '~') { |
| inOverbar = !inOverbar; |
| } |
| } |
| var glyph = pcbdata.font_data[txt[i][j]]; |
| if (inOverbar) { |
| var overbarStart = [offsetx, -text.height * 1.4 + offsety]; |
| var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]]; |
| |
| if (!lastHadOverbar) { |
| overbarStart[0] += text.height * 1.4 * tilt; |
| lastHadOverbar = true; |
| } |
| ctx.beginPath(); |
| ctx.moveTo(...overbarStart); |
| ctx.lineTo(...overbarEnd); |
| ctx.stroke(); |
| } else { |
| lastHadOverbar = false; |
| } |
| for (var line of glyph.l) { |
| ctx.beginPath(); |
| ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt)); |
| for (var k = 1; k < line.length; k++) { |
| ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt)); |
| } |
| ctx.stroke(); |
| } |
| offsetx += glyph.w * text.width; |
| } |
| offsety += interline; |
| } |
| ctx.restore(); |
| } |
| |
| function drawedge(ctx, scalefactor, edge, color) { |
| ctx.strokeStyle = color; |
| ctx.fillStyle = color; |
| ctx.lineWidth = Math.max(1 / scalefactor, edge.width); |
| ctx.lineCap = "round"; |
| ctx.lineJoin = "round"; |
| if ("svgpath" in edge) { |
| ctx.stroke(new Path2D(edge.svgpath)); |
| } else { |
| ctx.beginPath(); |
| if (edge.type == "segment") { |
| ctx.moveTo(...edge.start); |
| ctx.lineTo(...edge.end); |
| } |
| if (edge.type == "rect") { |
| ctx.moveTo(...edge.start); |
| ctx.lineTo(edge.start[0], edge.end[1]); |
| ctx.lineTo(...edge.end); |
| ctx.lineTo(edge.end[0], edge.start[1]); |
| ctx.lineTo(...edge.start); |
| } |
| if (edge.type == "arc") { |
| ctx.arc( |
| ...edge.start, |
| edge.radius, |
| deg2rad(edge.startangle), |
| deg2rad(edge.endangle)); |
| } |
| if (edge.type == "circle") { |
| ctx.arc( |
| ...edge.start, |
| edge.radius, |
| 0, 2 * Math.PI); |
| ctx.closePath(); |
| } |
| if (edge.type == "curve") { |
| ctx.moveTo(...edge.start); |
| ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end); |
| } |
| if("filled" in edge && edge.filled) |
| ctx.fill(); |
| else |
| ctx.stroke(); |
| } |
| } |
| |
| function getChamferedRectPath(size, radius, chamfpos, chamfratio) { |
| // chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8 |
| var path = new Path2D(); |
| var width = size[0]; |
| var height = size[1]; |
| var x = width * -0.5; |
| var y = height * -0.5; |
| var chamfOffset = Math.min(width, height) * chamfratio; |
| path.moveTo(x, 0); |
| if (chamfpos & 4) { |
| path.lineTo(x, y + height - chamfOffset); |
| path.lineTo(x + chamfOffset, y + height); |
| path.lineTo(0, y + height); |
| } else { |
| path.arcTo(x, y + height, x + width, y + height, radius); |
| } |
| if (chamfpos & 8) { |
| path.lineTo(x + width - chamfOffset, y + height); |
| path.lineTo(x + width, y + height - chamfOffset); |
| path.lineTo(x + width, 0); |
| } else { |
| path.arcTo(x + width, y + height, x + width, y, radius); |
| } |
| if (chamfpos & 2) { |
| path.lineTo(x + width, y + chamfOffset); |
| path.lineTo(x + width - chamfOffset, y); |
| path.lineTo(0, y); |
| } else { |
| path.arcTo(x + width, y, x, y, radius); |
| } |
| if (chamfpos & 1) { |
| path.lineTo(x + chamfOffset, y); |
| path.lineTo(x, y + chamfOffset); |
| path.lineTo(x, 0); |
| } else { |
| path.arcTo(x, y, x, y + height, radius); |
| } |
| path.closePath(); |
| return path; |
| } |
| |
| function getOblongPath(size) { |
| return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0); |
| } |
| |
| function getPolygonsPath(shape) { |
| if (shape.path2d) { |
| return shape.path2d; |
| } |
| if ("svgpath" in shape) { |
| shape.path2d = new Path2D(shape.svgpath); |
| } else { |
| var path = new Path2D(); |
| for (var polygon of shape.polygons) { |
| path.moveTo(...polygon[0]); |
| for (var i = 1; i < polygon.length; i++) { |
| path.lineTo(...polygon[i]); |
| } |
| path.closePath(); |
| } |
| shape.path2d = path; |
| } |
| return shape.path2d; |
| } |
| |
| function drawPolygonShape(ctx, scalefactor, shape, color) { |
| ctx.save(); |
| if (!("svgpath" in shape)) { |
| ctx.translate(...shape.pos); |
| ctx.rotate(deg2rad(-shape.angle)); |
| } |
| if("filled" in shape && !shape.filled) { |
| ctx.strokeStyle = color; |
| ctx.lineWidth = Math.max(1 / scalefactor, shape.width); |
| ctx.lineCap = "round"; |
| ctx.lineJoin = "round"; |
| ctx.stroke(getPolygonsPath(shape)); |
| } else { |
| ctx.fillStyle = color; |
| ctx.fill(getPolygonsPath(shape)); |
| } |
| ctx.restore(); |
| } |
| |
| function drawDrawing(ctx, scalefactor, drawing, color) { |
| if (["segment", "arc", "circle", "curve", "rect"].includes(drawing.type)) { |
| drawedge(ctx, scalefactor, drawing, color); |
| } else if (drawing.type == "polygon") { |
| drawPolygonShape(ctx, scalefactor, drawing, color); |
| } else { |
| drawText(ctx, drawing, color); |
| } |
| } |
| |
| function getCirclePath(radius) { |
| var path = new Path2D(); |
| path.arc(0, 0, radius, 0, 2 * Math.PI); |
| path.closePath(); |
| return path; |
| } |
| |
| function getCachedPadPath(pad) { |
| if (!pad.path2d) { |
| // if path2d is not set, build one and cache it on pad object |
| if (pad.shape == "rect") { |
| pad.path2d = new Path2D(); |
| pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size); |
| } else if (pad.shape == "oval") { |
| pad.path2d = getOblongPath(pad.size); |
| } else if (pad.shape == "circle") { |
| pad.path2d = getCirclePath(pad.size[0] / 2); |
| } else if (pad.shape == "roundrect") { |
| pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0); |
| } else if (pad.shape == "chamfrect") { |
| pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio) |
| } else if (pad.shape == "custom") { |
| pad.path2d = getPolygonsPath(pad); |
| } |
| } |
| return pad.path2d; |
| } |
| |
| function drawPad(ctx, pad, color, outline) { |
| ctx.save(); |
| ctx.translate(...pad.pos); |
| ctx.rotate(deg2rad(pad.angle)); |
| if (pad.offset) { |
| ctx.translate(...pad.offset); |
| } |
| ctx.fillStyle = color; |
| ctx.strokeStyle = color; |
| var path = getCachedPadPath(pad); |
| if (outline) { |
| ctx.stroke(path); |
| } else { |
| ctx.fill(path); |
| } |
| ctx.restore(); |
| } |
| |
| function drawPadHole(ctx, pad, padHoleColor) { |
| if (pad.type != "th") return; |
| ctx.save(); |
| ctx.translate(...pad.pos); |
| ctx.rotate(deg2rad(pad.angle)); |
| ctx.fillStyle = padHoleColor; |
| if (pad.drillshape == "oblong") { |
| ctx.fill(getOblongPath(pad.drillsize)); |
| } else { |
| ctx.fill(getCirclePath(pad.drillsize[0] / 2)); |
| } |
| ctx.restore(); |
| } |
| |
| function drawFootprint(ctx, layer, scalefactor, footprint, colors, highlight, outline) { |
| if (highlight) { |
| // draw bounding box |
| if (footprint.layer == layer) { |
| ctx.save(); |
| ctx.globalAlpha = 0.2; |
| ctx.translate(...footprint.bbox.pos); |
| ctx.rotate(deg2rad(-footprint.bbox.angle)); |
| ctx.translate(...footprint.bbox.relpos); |
| ctx.fillStyle = colors.pad; |
| ctx.fillRect(0, 0, ...footprint.bbox.size); |
| ctx.globalAlpha = 1; |
| ctx.strokeStyle = colors.pad; |
| ctx.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); |
| } |
| } |
| // 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) { |
| 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, color, highlight) { |
| ctx = canvas.getContext("2d"); |
| ctx.strokeStyle = color; |
| ctx.lineCap = "round"; |
| for (var track of pcbdata.tracks[layer]) { |
| if (highlight && highlightedNet != track.net) continue; |
| 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(); |
| } |
| } |
| |
| function drawZones(canvas, layer, color, highlight) { |
| ctx = canvas.getContext("2d"); |
| ctx.strokeStyle = color; |
| ctx.fillStyle = color; |
| ctx.lineJoin = "round"; |
| for (var zone of pcbdata.zones[layer]) { |
| if (!zone.path2d) { |
| zone.path2d = getPolygonsPath(zone); |
| } |
| if (highlight && highlightedNet != zone.net) continue; |
| ctx.fill(zone.path2d); |
| 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.renderTracks) { |
| var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color'); |
| drawTracks(canvas, layer, trackColor, highlight); |
| } |
| if (settings.renderZones) { |
| var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color'); |
| drawZones(canvas, layer, zoneColor, 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); |
| var fontsize = 1.55; |
| 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)); |
| 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) { |
| 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)); |
| 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 bbox = applyRotation(pcbdata.edges_bbox); |
| 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; |
| var flip = (layerdict.layer == "B"); |
| 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; |
| if (layerdict.layer == "B") { |
| 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); |
| 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 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(); |
| } |
| |
| function setShowBOMColumn(field, value) { |
| if (field === "references") { |
| var rl = document.getElementById("reflookup"); |
| rl.disabled = !value; |
| if (!value) { |
| rl.value = ""; |
| updateRefLookup(""); |
| } |
| } |
| |
| var n = settings.hiddenColumns.indexOf(field); |
| if (value) { |
| if (n != -1) { |
| settings.hiddenColumns.splice(n, 1); |
| } |
| } else { |
| if (n == -1) { |
| settings.hiddenColumns.push(field); |
| } |
| } |
| |
| writeStorage("hiddenColumns", JSON.stringify(settings.hiddenColumns)); |
| |
| if (initDone) { |
| populateBomTable(); |
| } |
| |
| redrawIfInitDone(); |
| } |
| |
| |
| function setFullscreen(value) { |
| if (value) { |
| document.documentElement.requestFullscreen(); |
| } else { |
| document.exitFullscreen(); |
| } |
| } |
| |
| function fabricationVisible(value) { |
| writeStorage("fabricationVisible", value); |
| settings.renderFabrication = value; |
| redrawIfInitDone(); |
| } |
| |
| function silkscreenVisible(value) { |
| writeStorage("silkscreenVisible", value); |
| settings.renderSilkscreen = value; |
| redrawIfInitDone(); |
| } |
| |
| function setHighlightPin1(value) { |
| writeStorage("highlightpin1", value); |
| settings.highlightpin1 = value; |
| redrawIfInitDone(); |
| } |
| |
| function getStoredCheckboxRefs(checkbox) { |
| function convert(ref) { |
| var intref = parseInt(ref); |
| if (isNaN(intref)) { |
| for (var i = 0; i < pcbdata.footprints.length; i++) { |
| if (pcbdata.footprints[i].ref == ref) { |
| return i; |
| } |
| } |
| return -1; |
| } else { |
| return intref; |
| } |
| } |
| if (!(checkbox in settings.checkboxStoredRefs)) { |
| var val = readStorage("checkbox_" + checkbox); |
| settings.checkboxStoredRefs[checkbox] = val ? val : ""; |
| } |
| if (!settings.checkboxStoredRefs[checkbox]) { |
| return new Set(); |
| } else { |
| return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0)); |
| } |
| } |
| |
| function getCheckboxState(checkbox, references) { |
| var storedRefsSet = getStoredCheckboxRefs(checkbox); |
| var currentRefsSet = new Set(references.map(r => r[1])); |
| // Get difference of current - stored |
| var difference = new Set(currentRefsSet); |
| for (ref of storedRefsSet) { |
| difference.delete(ref); |
| } |
| if (difference.size == 0) { |
| // All the current refs are stored |
| return "checked"; |
| } else if (difference.size == currentRefsSet.size) { |
| // None of the current refs are stored |
| return "unchecked"; |
| } else { |
| // Some of the refs are stored |
| return "indeterminate"; |
| } |
| } |
| |
| function setBomCheckboxState(checkbox, element, references) { |
| var state = getCheckboxState(checkbox, references); |
| element.checked = (state == "checked"); |
| element.indeterminate = (state == "indeterminate"); |
| } |
| |
| function createCheckboxChangeHandler(checkbox, references, row) { |
| return function () { |
| refsSet = getStoredCheckboxRefs(checkbox); |
| var markWhenChecked = settings.markWhenChecked == checkbox; |
| eventArgs = { |
| checkbox: checkbox, |
| refs: references, |
| } |
| if (this.checked) { |
| // checkbox ticked |
| for (var ref of references) { |
| refsSet.add(ref[1]); |
| } |
| if (markWhenChecked) { |
| row.classList.add("checked"); |
| for (var ref of references) { |
| markedFootprints.add(ref[1]); |
| } |
| drawHighlights(); |
| } |
| eventArgs.state = 'checked'; |
| } else { |
| // checkbox unticked |
| for (var ref of references) { |
| refsSet.delete(ref[1]); |
| } |
| if (markWhenChecked) { |
| row.classList.remove("checked"); |
| for (var ref of references) { |
| markedFootprints.delete(ref[1]); |
| } |
| drawHighlights(); |
| } |
| eventArgs.state = 'unchecked'; |
| } |
| settings.checkboxStoredRefs[checkbox] = [...refsSet].join(","); |
| writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]); |
| updateCheckboxStats(checkbox); |
| EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs); |
| } |
| } |
| |
| function clearHighlightedFootprints() { |
| if (currentHighlightedRowId) { |
| document.getElementById(currentHighlightedRowId).classList.remove("highlighted"); |
| currentHighlightedRowId = null; |
| highlightedFootprints = []; |
| highlightedNet = null; |
| } |
| } |
| |
| function createRowHighlightHandler(rowid, refs, net) { |
| return function () { |
| if (currentHighlightedRowId) { |
| if (currentHighlightedRowId == rowid) { |
| return; |
| } |
| document.getElementById(currentHighlightedRowId).classList.remove("highlighted"); |
| } |
| document.getElementById(rowid).classList.add("highlighted"); |
| currentHighlightedRowId = rowid; |
| highlightedFootprints = refs ? refs.map(r => r[1]) : []; |
| highlightedNet = net; |
| drawHighlights(); |
| EventHandler.emitEvent( |
| IBOM_EVENT_TYPES.HIGHLIGHT_EVENT, { |
| rowid: rowid, |
| refs: refs, |
| net: net |
| }); |
| } |
| } |
| |
| function 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 (pcbdata.bom.fields[ref[1]][i].toLowerCase().indexOf(filter) >= 0) { |
| return true; |
| } |
| } |
| } |
| } |
| return false; |
| } |
| |
| function findRefInEntry(entry) { |
| return entry.filter(r => r[0].toLowerCase() == reflookup); |
| } |
| |
| function highlightFilter(s) { |
| if (!filter) { |
| return s; |
| } |
| var parts = s.toLowerCase().split(filter); |
| if (parts.length == 1) { |
| return s; |
| } |
| var r = ""; |
| var pos = 0; |
| for (var i in parts) { |
| if (i > 0) { |
| r += '<mark class="highlight">' + |
| s.substring(pos, pos + filter.length) + |
| '</mark>'; |
| pos += filter.length; |
| } |
| r += s.substring(pos, pos + parts[i].length); |
| pos += parts[i].length; |
| } |
| return r; |
| } |
| |
| function checkboxSetUnsetAllHandler(checkboxname) { |
| return function () { |
| var checkboxnum = 0; |
| while (checkboxnum < settings.checkboxes.length && |
| settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) { |
| checkboxnum++; |
| } |
| if (checkboxnum >= settings.checkboxes.length) { |
| return; |
| } |
| var allset = true; |
| var checkbox; |
| var row; |
| for (row of bombody.childNodes) { |
| checkbox = row.childNodes[checkboxnum + 1].childNodes[0]; |
| if (!checkbox.checked || checkbox.indeterminate) { |
| allset = false; |
| break; |
| } |
| } |
| for (row of bombody.childNodes) { |
| checkbox = row.childNodes[checkboxnum + 1].childNodes[0]; |
| checkbox.checked = !allset; |
| checkbox.indeterminate = false; |
| checkbox.onchange(); |
| } |
| } |
| } |
| |
| function createColumnHeader(name, cls, comparator, is_checkbox = false) { |
| var th = document.createElement("TH"); |
| th.innerHTML = name; |
| th.classList.add(cls); |
| if (is_checkbox) |
| th.setAttribute("col_name", "bom-checkbox"); |
| else |
| th.setAttribute("col_name", name); |
| var span = document.createElement("SPAN"); |
| span.classList.add("sortmark"); |
| span.classList.add("none"); |
| th.appendChild(span); |
| var spacer = document.createElement("div"); |
| spacer.className = "column-spacer"; |
| th.appendChild(spacer); |
| spacer.onclick = function () { |
| if (currentSortColumn && th !== currentSortColumn) { |
| // Currently sorted by another column |
| currentSortColumn.childNodes[1].classList.remove(currentSortOrder); |
| currentSortColumn.childNodes[1].classList.add("none"); |
| currentSortColumn = null; |
| currentSortOrder = null; |
| } |
| if (currentSortColumn && th === currentSortColumn) { |
| // Already sorted by this column |
| if (currentSortOrder == "asc") { |
| // Sort by this column, descending order |
| bomSortFunction = function (a, b) { |
| return -comparator(a, b); |
| } |
| currentSortColumn.childNodes[1].classList.remove("asc"); |
| currentSortColumn.childNodes[1].classList.add("desc"); |
| currentSortOrder = "desc"; |
| } else { |
| // Unsort |
| bomSortFunction = null; |
| currentSortColumn.childNodes[1].classList.remove("desc"); |
| currentSortColumn.childNodes[1].classList.add("none"); |
| currentSortColumn = null; |
| currentSortOrder = null; |
| } |
| } else { |
| // Sort by this column, ascending order |
| bomSortFunction = comparator; |
| currentSortColumn = th; |
| currentSortColumn.childNodes[1].classList.remove("none"); |
| currentSortColumn.childNodes[1].classList.add("asc"); |
| currentSortOrder = "asc"; |
| } |
| populateBomBody(); |
| } |
| if (is_checkbox) { |
| spacer.onclick = fancyDblClickHandler( |
| spacer, spacer.onclick, checkboxSetUnsetAllHandler(name)); |
| } |
| return th; |
| } |
| |
| function populateBomHeader(placeHolderColumn = null, placeHolderElements = null) { |
| while (bomhead.firstChild) { |
| bomhead.removeChild(bomhead.firstChild); |
| } |
| var tr = document.createElement("TR"); |
| var th = document.createElement("TH"); |
| th.classList.add("numCol"); |
| |
| var vismenu = document.createElement("div"); |
| vismenu.id = "vismenu"; |
| vismenu.classList.add("menu"); |
| |
| var visbutton = document.createElement("div"); |
| visbutton.classList.add("visbtn"); |
| visbutton.classList.add("hideonprint"); |
| |
| var viscontent = document.createElement("div"); |
| viscontent.classList.add("menu-content"); |
| viscontent.id = "vismenu-content"; |
| |
| settings.columnOrder.forEach(column => { |
| if (typeof column !== "string") |
| return; |
| |
| // Skip empty columns |
| if (column === "checkboxes" && settings.checkboxes.length == 0) |
| return; |
| else if (column === "Quantity" && settings.bommode == "ungrouped") |
| return; |
| |
| var label = document.createElement("label"); |
| label.classList.add("menu-label"); |
| |
| var input = document.createElement("input"); |
| input.classList.add("visibility_checkbox"); |
| input.type = "checkbox"; |
| input.onchange = function (e) { |
| setShowBOMColumn(column, e.target.checked) |
| }; |
| input.checked = !(settings.hiddenColumns.includes(column)); |
| |
| label.appendChild(input); |
| if (column.length > 0) |
| label.append(column[0].toUpperCase() + column.slice(1)); |
| |
| viscontent.appendChild(label); |
| }); |
| |
| viscontent.childNodes[0].classList.add("menu-label-top"); |
| |
| vismenu.appendChild(visbutton); |
| if (settings.bommode != "netlist") { |
| vismenu.appendChild(viscontent); |
| th.appendChild(vismenu); |
| } |
| tr.appendChild(th); |
| |
| var checkboxCompareClosure = function (checkbox) { |
| return (a, b) => { |
| var stateA = getCheckboxState(checkbox, a); |
| var stateB = getCheckboxState(checkbox, b); |
| if (stateA > stateB) return -1; |
| if (stateA < stateB) return 1; |
| return 0; |
| } |
| } |
| var stringFieldCompareClosure = function (fieldIndex) { |
| return (a, b) => { |
| var fa = pcbdata.bom.fields[a[0][1]][fieldIndex]; |
| var fb = pcbdata.bom.fields[b[0][1]][fieldIndex]; |
| if (fa != fb) return fa > fb ? 1 : -1; |
| else return 0; |
| } |
| } |
| var referenceRegex = /(?<prefix>[^0-9]+)(?<number>[0-9]+)/; |
| var compareRefs = (a, b) => { |
| var ra = referenceRegex.exec(a); |
| var rb = referenceRegex.exec(b); |
| if (ra === null || rb === null) { |
| if (a != b) return a > b ? 1 : -1; |
| return 0; |
| } else { |
| if (ra.groups.prefix != rb.groups.prefix) { |
| return ra.groups.prefix > rb.groups.prefix ? 1 : -1; |
| } |
| if (ra.groups.number != rb.groups.number) { |
| return parseInt(ra.groups.number) > parseInt(rb.groups.number) ? 1 : -1; |
| } |
| return 0; |
| } |
| } |
| if (settings.bommode == "netlist") { |
| th = createColumnHeader("Net name", "bom-netname", (a, b) => { |
| if (a > b) return -1; |
| if (a < b) return 1; |
| return 0; |
| }); |
| tr.appendChild(th); |
| } else { |
| // Filter hidden columns |
| var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e)); |
| var valueIndex = config.fields.indexOf("Value"); |
| var footprintIndex = config.fields.indexOf("Footprint"); |
| columns.forEach((column) => { |
| if (column === placeHolderColumn) { |
| var n = 1; |
| if (column === "checkboxes") |
| n = settings.checkboxes.length; |
| for (i = 0; i < n; i++) { |
| td = placeHolderElements.shift(); |
| tr.appendChild(td); |
| } |
| return; |
| } else if (column === "checkboxes") { |
| for (var checkbox of settings.checkboxes) { |
| th = createColumnHeader( |
| checkbox, "bom-checkbox", checkboxCompareClosure(checkbox), true); |
| tr.appendChild(th); |
| } |
| } else if (column === "References") { |
| tr.appendChild(createColumnHeader("References", "references", (a, b) => { |
| var i = 0; |
| while (i < a.length && i < b.length) { |
| if (a[i] != b[i]) return compareRefs(a[i][0], b[i][0]); |
| i++; |
| } |
| return a.length - b.length; |
| })); |
| } else if (column === "Value") { |
| tr.appendChild(createColumnHeader("Value", "value", (a, b) => { |
| var ra = a[0][1], rb = b[0][1]; |
| return valueCompare( |
| pcbdata.bom.parsedValues[ra], pcbdata.bom.parsedValues[rb], |
| pcbdata.bom.fields[ra][valueIndex], pcbdata.bom.fields[rb][valueIndex]); |
| })); |
| return; |
| } else if (column === "Footprint") { |
| tr.appendChild(createColumnHeader( |
| "Footprint", "footprint", stringFieldCompareClosure(footprintIndex))); |
| } else if (column === "Quantity" && settings.bommode == "grouped") { |
| tr.appendChild(createColumnHeader("Quantity", "quantity", (a, b) => { |
| return a.length - b.length; |
| })); |
| } else { |
| // Other fields |
| var i = config.fields.indexOf(column); |
| if (i < 0) |
| return; |
| tr.appendChild(createColumnHeader( |
| column, `field${i + 1}`, stringFieldCompareClosure(i))); |
| } |
| }); |
| } |
| bomhead.appendChild(tr); |
| } |
| |
| function populateBomBody(placeholderColumn = null, placeHolderElements = null) { |
| while (bom.firstChild) { |
| bom.removeChild(bom.firstChild); |
| } |
| highlightHandlers = []; |
| footprintIndexToHandler = {}; |
| netsToHandler = {}; |
| currentHighlightedRowId = null; |
| var first = true; |
| if (settings.bommode == "netlist") { |
| bomtable = pcbdata.nets.slice(); |
| } else { |
| switch (settings.canvaslayout) { |
| case 'F': |
| bomtable = pcbdata.bom.F.slice(); |
| break; |
| case 'FB': |
| bomtable = pcbdata.bom.both.slice(); |
| break; |
| case 'B': |
| bomtable = pcbdata.bom.B.slice(); |
| break; |
| } |
| if (settings.bommode == "ungrouped") { |
| // expand bom table |
| expandedTable = [] |
| for (var bomentry of bomtable) { |
| for (var ref of bomentry) { |
| expandedTable.push([ref]); |
| } |
| } |
| bomtable = expandedTable; |
| } |
| } |
| if (bomSortFunction) { |
| bomtable = bomtable.sort(bomSortFunction); |
| } |
| for (var i in bomtable) { |
| var bomentry = bomtable[i]; |
| if (filter && !entryMatches(bomentry)) { |
| continue; |
| } |
| var references = null; |
| var netname = null; |
| var tr = document.createElement("TR"); |
| var td = document.createElement("TD"); |
| var rownum = +i + 1; |
| tr.id = "bomrow" + rownum; |
| td.textContent = rownum; |
| tr.appendChild(td); |
| if (settings.bommode == "netlist") { |
| netname = bomentry; |
| td = document.createElement("TD"); |
| td.innerHTML = highlightFilter(netname ? netname : "<no net>"); |
| tr.appendChild(td); |
| } else { |
| if (reflookup) { |
| references = findRefInEntry(bomentry); |
| if (references.length == 0) { |
| continue; |
| } |
| } else { |
| references = bomentry; |
| } |
| // Filter hidden columns |
| var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e)); |
| columns.forEach((column) => { |
| if (column === placeholderColumn) { |
| var n = 1; |
| if (column === "checkboxes") |
| n = settings.checkboxes.length; |
| for (i = 0; i < n; i++) { |
| td = placeHolderElements.shift(); |
| tr.appendChild(td); |
| } |
| return; |
| } else if (column === "checkboxes") { |
| for (var checkbox of settings.checkboxes) { |
| if (checkbox) { |
| td = document.createElement("TD"); |
| var input = document.createElement("input"); |
| input.type = "checkbox"; |
| input.onchange = createCheckboxChangeHandler(checkbox, references, tr); |
| setBomCheckboxState(checkbox, input, references); |
| if (input.checked && settings.markWhenChecked == checkbox) { |
| tr.classList.add("checked"); |
| } |
| td.appendChild(input); |
| tr.appendChild(td); |
| } |
| } |
| } else if (column === "References") { |
| td = document.createElement("TD"); |
| td.innerHTML = highlightFilter(references.map(r => r[0]).join(", ")); |
| tr.appendChild(td); |
| } else if (column === "Quantity" && settings.bommode == "grouped") { |
| // Quantity |
| td = document.createElement("TD"); |
| td.textContent = references.length; |
| tr.appendChild(td); |
| } else { |
| // All the other fields |
| var field_index = config.fields.indexOf(column) |
| if (field_index < 0) |
| return; |
| var valueSet = new Set(); |
| references.map(r => r[1]).forEach((id) => valueSet.add(pcbdata.bom.fields[id][field_index])); |
| td = document.createElement("TD"); |
| td.innerHTML = highlightFilter(Array.from(valueSet).join(", ")); |
| tr.appendChild(td); |
| } |
| }); |
| } |
| bom.appendChild(tr); |
| var handler = createRowHighlightHandler(tr.id, references, netname); |
| tr.onmousemove = handler; |
| highlightHandlers.push({ |
| id: tr.id, |
| handler: handler, |
| }); |
| if (references !== null) { |
| for (var refIndex of references.map(r => r[1])) { |
| footprintIndexToHandler[refIndex] = handler; |
| } |
| } |
| if (netname !== null) { |
| netsToHandler[netname] = handler; |
| } |
| if ((filter || reflookup) && first) { |
| handler(); |
| first = false; |
| } |
| } |
| EventHandler.emitEvent( |
| IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, { |
| filter: filter, |
| reflookup: reflookup, |
| checkboxes: settings.checkboxes, |
| bommode: settings.bommode, |
| }); |
| } |
| |
| function highlightPreviousRow() { |
| if (!currentHighlightedRowId) { |
| highlightHandlers[highlightHandlers.length - 1].handler(); |
| } else { |
| if (highlightHandlers.length > 1 && |
| highlightHandlers[0].id == currentHighlightedRowId) { |
| highlightHandlers[highlightHandlers.length - 1].handler(); |
| } else { |
| for (var i = 0; i < highlightHandlers.length - 1; i++) { |
| if (highlightHandlers[i + 1].id == currentHighlightedRowId) { |
| highlightHandlers[i].handler(); |
| break; |
| } |
| } |
| } |
| } |
| smoothScrollToRow(currentHighlightedRowId); |
| } |
| |
| function highlightNextRow() { |
| if (!currentHighlightedRowId) { |
| highlightHandlers[0].handler(); |
| } else { |
| if (highlightHandlers.length > 1 && |
| highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) { |
| highlightHandlers[0].handler(); |
| } else { |
| for (var i = 1; i < highlightHandlers.length; i++) { |
| if (highlightHandlers[i - 1].id == currentHighlightedRowId) { |
| highlightHandlers[i].handler(); |
| break; |
| } |
| } |
| } |
| } |
| smoothScrollToRow(currentHighlightedRowId); |
| } |
| |
| function populateBomTable() { |
| populateBomHeader(); |
| populateBomBody(); |
| setBomHandlers(); |
| resizableGrid(bomhead); |
| } |
| |
| function footprintsClicked(footprintIndexes) { |
| var lastClickedIndex = footprintIndexes.indexOf(lastClicked); |
| for (var i = 1; i <= footprintIndexes.length; i++) { |
| var refIndex = footprintIndexes[(lastClickedIndex + i) % footprintIndexes.length]; |
| if (refIndex in footprintIndexToHandler) { |
| lastClicked = refIndex; |
| footprintIndexToHandler[refIndex](); |
| smoothScrollToRow(currentHighlightedRowId); |
| break; |
| } |
| } |
| } |
| |
| function netClicked(net) { |
| if (net in netsToHandler) { |
| netsToHandler[net](); |
| smoothScrollToRow(currentHighlightedRowId); |
| } else { |
| clearHighlightedFootprints(); |
| highlightedNet = net; |
| drawHighlights(); |
| } |
| } |
| |
| function updateFilter(input) { |
| filter = input.toLowerCase(); |
| populateBomTable(); |
| } |
| |
| function updateRefLookup(input) { |
| reflookup = input.toLowerCase(); |
| populateBomTable(); |
| } |
| |
| function changeCanvasLayout(layout) { |
| document.getElementById("fl-btn").classList.remove("depressed"); |
| document.getElementById("fb-btn").classList.remove("depressed"); |
| document.getElementById("bl-btn").classList.remove("depressed"); |
| switch (layout) { |
| case 'F': |
| document.getElementById("fl-btn").classList.add("depressed"); |
| if (settings.bomlayout != "bom-only") { |
| canvassplit.collapse(1); |
| } |
| break; |
| case 'B': |
| document.getElementById("bl-btn").classList.add("depressed"); |
| if (settings.bomlayout != "bom-only") { |
| canvassplit.collapse(0); |
| } |
| break; |
| default: |
| document.getElementById("fb-btn").classList.add("depressed"); |
| if (settings.bomlayout != "bom-only") { |
| canvassplit.setSizes([50, 50]); |
| } |
| } |
| settings.canvaslayout = layout; |
| writeStorage("canvaslayout", layout); |
| resizeAll(); |
| changeBomMode(settings.bommode); |
| } |
| |
| function populateMetadata() { |
| document.getElementById("title").innerHTML = pcbdata.metadata.title; |
| document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision; |
| document.getElementById("company").innerHTML = pcbdata.metadata.company; |
| document.getElementById("filedate").innerHTML = pcbdata.metadata.date; |
| if (pcbdata.metadata.title != "") { |
| document.title = pcbdata.metadata.title + " BOM"; |
| } |
| // Calculate board stats |
| var fp_f = 0, |
| fp_b = 0, |
| pads_f = 0, |
| pads_b = 0, |
| pads_th = 0; |
| for (var i = 0; i < pcbdata.footprints.length; i++) { |
| if (pcbdata.bom.skipped.includes(i)) continue; |
| var mod = pcbdata.footprints[i]; |
| if (mod.layer == "F") { |
| fp_f++; |
| } else { |
| fp_b++; |
| } |
| for (var pad of mod.pads) { |
| if (pad.type == "th") { |
| pads_th++; |
| } else { |
| if (pad.layers.includes("F")) { |
| pads_f++; |
| } |
| if (pad.layers.includes("B")) { |
| pads_b++; |
| } |
| } |
| } |
| } |
| document.getElementById("stats-components-front").innerHTML = fp_f; |
| document.getElementById("stats-components-back").innerHTML = fp_b; |
| document.getElementById("stats-components-total").innerHTML = fp_f + fp_b; |
| document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length; |
| document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length; |
| document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length; |
| document.getElementById("stats-smd-pads-front").innerHTML = pads_f; |
| document.getElementById("stats-smd-pads-back").innerHTML = pads_b; |
| document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b; |
| document.getElementById("stats-th-pads").innerHTML = pads_th; |
| // Update version string |
| document.getElementById("github-link").innerHTML = "InteractiveHtmlBom " + |
| /^v\d+\.\d+/.exec(pcbdata.ibom_version)[0]; |
| } |
| |
| function changeBomLayout(layout) { |
| document.getElementById("bom-btn").classList.remove("depressed"); |
| document.getElementById("lr-btn").classList.remove("depressed"); |
| document.getElementById("tb-btn").classList.remove("depressed"); |
| switch (layout) { |
| case 'bom-only': |
| document.getElementById("bom-btn").classList.add("depressed"); |
| if (bomsplit) { |
| bomsplit.destroy(); |
| bomsplit = null; |
| canvassplit.destroy(); |
| canvassplit = null; |
| } |
| document.getElementById("frontcanvas").style.display = "none"; |
| document.getElementById("backcanvas").style.display = "none"; |
| document.getElementById("bot").style.height = ""; |
| break; |
| case 'top-bottom': |
| document.getElementById("tb-btn").classList.add("depressed"); |
| document.getElementById("frontcanvas").style.display = ""; |
| document.getElementById("backcanvas").style.display = ""; |
| document.getElementById("bot").style.height = "calc(100% - 80px)"; |
| 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("bot").style.height = "calc(100% - 80px)"; |
| document.getElementById("bomdiv").classList.add("split-horizontal"); |
| document.getElementById("canvasdiv").classList.add("split-horizontal"); |
| document.getElementById("frontcanvas").classList.remove("split-horizontal"); |
| document.getElementById("backcanvas").classList.remove("split-horizontal"); |
| if (bomsplit) { |
| bomsplit.destroy(); |
| bomsplit = null; |
| canvassplit.destroy(); |
| canvassplit = null; |
| } |
| bomsplit = Split(['#bomdiv', '#canvasdiv'], { |
| sizes: [50, 50], |
| onDragEnd: resizeAll, |
| gutterSize: 5 |
| }); |
| canvassplit = Split(['#frontcanvas', '#backcanvas'], { |
| sizes: [50, 50], |
| gutterSize: 5, |
| direction: "vertical", |
| onDragEnd: resizeAll |
| }); |
| } |
| settings.bomlayout = layout; |
| writeStorage("bomlayout", layout); |
| changeCanvasLayout(settings.canvaslayout); |
| } |
| |
| function changeBomMode(mode) { |
| document.getElementById("bom-grouped-btn").classList.remove("depressed"); |
| document.getElementById("bom-ungrouped-btn").classList.remove("depressed"); |
| document.getElementById("bom-netlist-btn").classList.remove("depressed"); |
| var chkbxs = document.getElementsByClassName("visibility_checkbox"); |
| |
| switch (mode) { |
| case 'grouped': |
| document.getElementById("bom-grouped-btn").classList.add("depressed"); |
| for (var i = 0; i < chkbxs.length; i++) { |
| chkbxs[i].disabled = false; |
| } |
| break; |
| case 'ungrouped': |
| document.getElementById("bom-ungrouped-btn").classList.add("depressed"); |
| for (var i = 0; i < chkbxs.length; i++) { |
| chkbxs[i].disabled = false; |
| } |
| break; |
| case 'netlist': |
| document.getElementById("bom-netlist-btn").classList.add("depressed"); |
| for (var i = 0; i < chkbxs.length; i++) { |
| chkbxs[i].disabled = true; |
| } |
| } |
| |
| writeStorage("bommode", mode); |
| if (mode != settings.bommode) { |
| settings.bommode = mode; |
| bomSortFunction = null; |
| currentSortColumn = null; |
| currentSortOrder = null; |
| clearHighlightedFootprints(); |
| } |
| populateBomTable(); |
| } |
| |
| function focusFilterField() { |
| focusInputField(document.getElementById("filter")); |
| } |
| |
| function focusRefLookupField() { |
| focusInputField(document.getElementById("reflookup")); |
| } |
| |
| function toggleBomCheckbox(bomrowid, checkboxnum) { |
| if (!bomrowid || checkboxnum > settings.checkboxes.length) { |
| return; |
| } |
| var bomrow = document.getElementById(bomrowid); |
| var checkbox = bomrow.childNodes[checkboxnum].childNodes[0]; |
| checkbox.checked = !checkbox.checked; |
| checkbox.indeterminate = false; |
| checkbox.onchange(); |
| } |
| |
| function checkBomCheckbox(bomrowid, checkboxname) { |
| var checkboxnum = 0; |
| while (checkboxnum < settings.checkboxes.length && |
| settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) { |
| checkboxnum++; |
| } |
| if (!bomrowid || checkboxnum >= settings.checkboxes.length) { |
| return; |
| } |
| var bomrow = document.getElementById(bomrowid); |
| var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0]; |
| checkbox.checked = true; |
| checkbox.indeterminate = false; |
| checkbox.onchange(); |
| } |
| |
| function setBomCheckboxes(value) { |
| writeStorage("bomCheckboxes", value); |
| settings.checkboxes = value.split(",").map((e) => e.trim()).filter((e) => e); |
| prepCheckboxes(); |
| populateMarkWhenCheckedOptions(); |
| setMarkWhenChecked(settings.markWhenChecked); |
| } |
| |
| function setMarkWhenChecked(value) { |
| writeStorage("markWhenChecked", value); |
| settings.markWhenChecked = value; |
| markedFootprints.clear(); |
| for (var ref of (value ? getStoredCheckboxRefs(value) : [])) { |
| markedFootprints.add(ref); |
| } |
| populateBomTable(); |
| drawHighlights(); |
| } |
| |
| function prepCheckboxes() { |
| var table = document.getElementById("checkbox-stats"); |
| while (table.childElementCount > 1) { |
| table.removeChild(table.lastChild); |
| } |
| if (settings.checkboxes.length) { |
| table.style.display = ""; |
| } else { |
| table.style.display = "none"; |
| } |
| for (var checkbox of settings.checkboxes) { |
| var tr = document.createElement("TR"); |
| var td = document.createElement("TD"); |
| td.innerHTML = checkbox; |
| tr.appendChild(td); |
| td = document.createElement("TD"); |
| td.id = "checkbox-stats-" + checkbox; |
| var progressbar = document.createElement("div"); |
| progressbar.classList.add("bar"); |
| td.appendChild(progressbar); |
| var text = document.createElement("div"); |
| text.classList.add("text"); |
| td.appendChild(text); |
| tr.appendChild(td); |
| table.appendChild(tr); |
| updateCheckboxStats(checkbox); |
| } |
| } |
| |
| function populateMarkWhenCheckedOptions() { |
| var container = document.getElementById("markWhenCheckedContainer"); |
| |
| if (settings.checkboxes.length == 0) { |
| container.parentElement.style.display = "none"; |
| return; |
| } |
| |
| container.innerHTML = ''; |
| container.parentElement.style.display = "inline-block"; |
| |
| function createOption(name, displayName) { |
| var id = "markWhenChecked-" + name; |
| |
| var div = document.createElement("div"); |
| div.classList.add("radio-container"); |
| |
| var input = document.createElement("input"); |
| input.type = "radio"; |
| input.name = "markWhenChecked"; |
| input.value = name; |
| input.id = id; |
| input.onchange = () => setMarkWhenChecked(name); |
| div.appendChild(input); |
| |
| // Preserve the selected element when the checkboxes change |
| if (name == settings.markWhenChecked) { |
| input.checked = true; |
| } |
| |
| var label = document.createElement("label"); |
| label.innerHTML = displayName; |
| label.htmlFor = id; |
| div.appendChild(label); |
| |
| container.appendChild(div); |
| } |
| createOption("", "None"); |
| for (var checkbox of settings.checkboxes) { |
| createOption(checkbox, checkbox); |
| } |
| } |
| |
| function updateCheckboxStats(checkbox) { |
| var checked = getStoredCheckboxRefs(checkbox).size; |
| var total = pcbdata.footprints.length - pcbdata.bom.skipped.length; |
| var percent = checked * 100.0 / total; |
| var td = document.getElementById("checkbox-stats-" + checkbox); |
| td.firstChild.style.width = percent + "%"; |
| td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)"; |
| } |
| |
| 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; |
| 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"; |
| } |
| |
| window.onload = function (e) { |
| initUtils(); |
| initRender(); |
| initStorage(); |
| initDefaults(); |
| cleanGutters(); |
| populateMetadata(); |
| dbgdiv = document.getElementById("dbg"); |
| bom = document.getElementById("bombody"); |
| bomhead = document.getElementById("bomhead"); |
| filter = ""; |
| reflookup = ""; |
| if (!("nets" in pcbdata)) { |
| hideNetlistButton(); |
| } |
| initDone = true; |
| setBomCheckboxes(document.getElementById("bomCheckboxes").value); |
| // Triggers render |
| changeBomLayout(settings.bomlayout); |
| |
| // Users may leave fullscreen without touching the checkbox. Uncheck. |
| document.addEventListener('fullscreenchange', () => { |
| if (!document.fullscreenElement) |
| document.getElementById('fullscreenCheckbox').checked = false; |
| }); |
| } |
| |
| window.onresize = resizeAll; |
| window.matchMedia("print").addListener(resizeAll); |
| |
| /////////////////////////////////////////////// |
| |
| /////////////////////////////////////////////// |
| |
| /////////////////////////////////////////////// |
| </script> |
| </head> |
| |
| <body> |
| |
| <div id="topmostdiv" class="topmostdiv"> |
| <div id="top"> |
| <div style="float: right; height: 100%;"> |
| <div class="hideonprint menu" style="float: right; top: 8px;"> |
| <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="highlightpin1Checkbox" type="checkbox" onchange="setHighlightPin1(this.checked)"> |
| Highlight first pin |
| </label> |
| <label class="menu-label"> |
| <input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)"> |
| Continuous redraw on drag |
| </label> |
| <label class="menu-label"> |
| <span>Board rotation</span> |
| <span style="float: right"><span id="rotationDegree">0</span>°</span> |
| <input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)"> |
| </label> |
| <label class="menu-label"> |
| <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> |
| </span> |
| </label> |
| </div> |
| </div> |
| <div class="button-container hideonprint" |
| style="float: right; position: relative; top: 8px"> |
| <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" |
| style="float: right; position: relative; top: 8px"> |
| <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" |
| style="float: right; position: relative; top: 8px"> |
| <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" style="float: right; top: 8px;"> |
| <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" style="float: right; top: 8px;"> |
| <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> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div id="fileinfodiv" style="overflow: auto;"> |
| <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> |
| <div id="bot" class="split" style="height: calc(100% - 80px)"> |
| <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="copyToClipboard()"></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> |