Update Outputs

This commit is contained in:
aidanbrzezinski
2026-02-17 23:33:19 +00:00
committed by github-actions[bot]
parent a489a6622b
commit 74bdf390d2
13 changed files with 8900 additions and 690 deletions

View File

@@ -0,0 +1 @@
Row,Quantity Per PCB,References,Value,Datasheet,Footprint,Description,Manufacturer,Manufacturer Part Number,Supplier Part Number
1 Row Quantity Per PCB References Value Datasheet Footprint Description Manufacturer Manufacturer Part Number Supplier Part Number

View File

@@ -0,0 +1,241 @@
<html>
<head>
<meta charset="UTF-8">
<title>Bill of Materials</title>
<style>
.cell-title { vertical-align: bottom; }
.cell-info { vertical-align: top; padding: 1em;}
.cell-extra-info { vertical-align: top; padding: 1em;}
.cell-stats { vertical-align: top; padding: 1em;}
.title { font-size:2.5em; font-weight: bold; }
.subtitle { font-size:1.5em; font-weight: bold; }
.h2 { font-size:1.5em; font-weight: bold; }
.td-empty0 { text-align: center; background-color: #F57676;}
.td-gen0 { text-align: center; background-color: #DCF5E4;}
.td-kicad0 { text-align: center; background-color: #F5DCA9;}
.td-user0 { text-align: center; background-color: #DCEFF5;}
.td-empty1 { text-align: center; background-color: #FF8080;}
.td-gen1 { text-align: center; background-color: #E6FFEE;}
.td-kicad1 { text-align: center; background-color: #FFE6B3;}
.td-user1 { text-align: center; background-color: #E6F9FF;}
.td-nocolor { text-align: center; }
.color-ref { margin: 25px 0; }
.color-ref th { text-align: left }
.color-ref td { padding: 5px 20px; }
.head-table { margin-bottom: 2em; }
.centered-checkmark { font-size: 30vw; text-align: center; color: green; }
.tg-sort-header::-moz-selection{background:0 0}
.tg-sort-header::selection{background:0 0}.tg-sort-header{cursor:pointer}
.tg-sort-header:after{content:'';float:right;border-width:0 5px 5px;border-style:solid;
border-color:#ffffff transparent;visibility:hidden;opacity:.6}
.tg-sort-header:hover:after{visibility:visible}
.tg-sort-asc:after,.tg-sort-asc:hover:after,.tg-sort-desc:after{visibility:visible;opacity:1}
.tg-sort-desc:after{border-bottom:none;border-width:5px 5px 0}
.content-table {
border-collapse:
collapse;
margin-top: 5px;
margin-bottom: 4em;
font-size: 0.9em;
font-family: sans-serif;
min-width: 400px;
border-radius: 5px 5px 0 0;
overflow: hidden;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
}
.content-table thead tr { background-color: #0e4e8e; color: #ffffff; text-align: left; }
.content-table th, .content-table td { padding: 12px 15px; }
.content-table tbody tr { border-bottom: 1px solid #dddddd; }
.content-table tbody tr:nth-of-type(even) { background-color: #f3f3f3; }
.content-table tbody tr:last-of-type { border-bottom: 2px solid #0e4e8e; }
.content-table * tr:hover > td { background-color: @bgl@ !important }
.content-table {
border-collapse:
collapse;
margin-top: 5px;
margin-bottom: 4em;
font-size: 0.9em;
font-family: sans-serif;
min-width: 400px;
border-radius: 5px 5px 0 0;
overflow: hidden;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
}
.content-table thead tr { background-color: @bg@; color: #ffffff; text-align: left; }
.content-table th, .content-table td { padding: 12px 15px; }
.content-table tbody tr { border-bottom: 1px solid #dddddd; }
.content-table tbody tr:nth-of-type(even) { background-color: #f3f3f3; }
.content-table tbody tr:last-of-type { border-bottom: 2px solid @bg@; }
.content-table * tr:hover > td { background-color: #3e7ebe !important }
</style>
</head>
<body>
<table class="head-table">
<tr>
<td rowspan="2">
</td>
<td colspan="2" class="cell-title">
<div class="title">Bill of Materials</div>
</td>
</tr>
<tr>
<td class="cell-info">
<b>Schematic</b>: Nixie_Tube_Clock<br>
<b>Variant</b>: DRAFT<br>
<b>Revision</b>: + (Unreleased)<br>
<b>Date</b>: 2025-01-12<br>
<b>KiCad Version</b>: 9.0.7+1<br>
</td>
<td class="cell-stats">
<b>Component Groups</b>: 0<br>
<b>Component Count</b>: 0 (per PCB)<br>
<b>Fitted Components</b>: 0 (per PCB)<br>
<b>Number of PCBs</b>: 1<br>
<b>Total Components</b>: 0 (for 1 PCBs)<br>
</td>
</tr>
</table>
<h2>Component Groups</h2>
<table class="content-table">
<thead>
<tr>
<th class="th-gen">Row</th>
<th class="th-gen">Quantity Per PCB</th>
<th class="th-kicad">References</th>
<th class="th-kicad">Value</th>
<th class="th-kicad">Datasheet</th>
<th class="th-kicad">Footprint</th>
<th class="th-user">Description</th>
<th class="th-user">Manufacturer</th>
<th class="th-user">Manufacturer Part Number</th>
<th class="th-user">Supplier Part Number</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<table class="color-ref">
<tr><th>Color reference for columns:</th></tr>
<tr><td class="td-kicad0">KiCad Fields (default)</td></tr>
<tr><td class="td-gen0">Generated Fields</td></tr>
<tr><td class="td-user0">User Fields</td></tr>
<tr><td class="td-empty0">Empty Fields</td></tr>
</table>
<script charset="utf-8">
var TGSort = window.TGSort || function(n) {
"use strict";
function r(n) { return n ? n.length : 0 }
function t(n, t, e, o = 0) { for (e = r(n); o < e; ++o) t(n[o], o) }
function e(n) { return n.split("").reverse().join("") }
function o(n) {
var e = n[0];
return t(n, function(n) {
for (; !n.startsWith(e);) e = e.substring(0, r(e) - 1)
}), r(e)
}
function u(n, r, e = []) {
return t(n, function(n) {
r(n) && e.push(n)
}), e
}
var a = parseFloat;
function i(n, r) {
return function(t) {
var e = "";
return t.replace(n, function(n, t, o) {
return e = t.replace(r, "") + "." + (o || "").substring(1)
}), a(e)
}
}
var s = i(/^(?:\s*)([+-]?(?:\d+)(?:,\d{3})*)(\.\d*)?$/g, /,/g),
c = i(/^(?:\s*)([+-]?(?:\d+)(?:\.\d{3})*)(,\d*)?$/g, /\./g);
function f(n) {
var t = a(n);
return !isNaN(t) && r("" + t) + 1 >= r(n) ? t : NaN
}
function d(n) {
var e = [],
o = n;
return t([f, s, c], function(u) {
var a = [],
i = [];
t(n, function(n, r) {
r = u(n), a.push(r), r || i.push(n)
}), r(i) < r(o) && (o = i, e = a)
}), r(u(o, function(n) {
return n == o[0]
})) == r(o) ? e : []
}
function v(n) {
if ("TABLE" == n.nodeName) {
for (var a = function(r) {
var e, o, u = [],
a = [];
return function n(r, e) {
e(r), t(r.childNodes, function(r) {
n(r, e)
})
}(n, function(n) {
"TR" == (o = n.nodeName) ? (e = [], u.push(e), a.push(n)) : "TD" != o && "TH" != o || e.push(n)
}), [u, a]
}(), i = a[0], s = a[1], c = r(i), f = c > 1 && r(i[0]) < r(i[1]) ? 1 : 0, v = f + 1, p = i[f], h = r(p), l = [], g = [], N = [], m = v; m < c; ++m) {
for (var T = 0; T < h; ++T) {
r(g) < h && g.push([]);
var C = i[m][T],
L = C.textContent || C.innerText || "";
g[T].push(L.trim())
}
N.push(m - v)
}
t(p, function(n, t) {
l[t] = 0;
var a = n.classList;
a.add("tg-sort-header"), n.addEventListener("click", function() {
var n = l[t];
! function() {
for (var n = 0; n < h; ++n) {
var r = p[n].classList;
r.remove("tg-sort-asc"), r.remove("tg-sort-desc"), l[n] = 0
}
}(), (n = 1 == n ? -1 : +!n) && a.add(n > 0 ? "tg-sort-asc" : "tg-sort-desc"), l[t] = n;
var i, f = g[t],
m = function(r, t) {
return n * f[r].localeCompare(f[t]) || n * (r - t)
},
T = function(n) {
var t = d(n);
if (!r(t)) {
var u = o(n),
a = o(n.map(e));
t = d(n.map(function(n) {
return n.substring(u, r(n) - a)
}))
}
return t
}(f);
(r(T) || r(T = r(u(i = f.map(Date.parse), isNaN)) ? [] : i)) && (m = function(r, t) {
var e = T[r],
o = T[t],
u = isNaN(e),
a = isNaN(o);
return u && a ? 0 : u ? -n : a ? n : e > o ? n : e < o ? -n : n * (r - t)
});
var C, L = N.slice();
L.sort(m);
for (var E = v; E < c; ++E)(C = s[E].parentNode).removeChild(s[E]);
for (E = v; E < c; ++E) C.appendChild(s[v + L[E - v]])
})
})
}
}
n.addEventListener("DOMContentLoaded", function() {
for (var t = n.getElementsByClassName("content-table"), e = 0; e < r(t); ++e) try {
v(t[e])
} catch (n) {}
})
}(document)
</script>
</body></html>