From c1d38f4d0cb28e0f67667f5f60021ec71a67e78e Mon Sep 17 00:00:00 2001 From: Nick Playfair <842413+nplayfair@users.noreply.github.com> Date: Wed, 11 Jun 2025 22:54:27 +0100 Subject: [PATCH] Begin PartsTable class --- src/table.ts | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/table.ts diff --git a/src/table.ts b/src/table.ts new file mode 100644 index 0000000..d8646a7 --- /dev/null +++ b/src/table.ts @@ -0,0 +1,41 @@ +export class PartsTable { + constructor( + public htmlTable: HTMLTableElement, + public headers: string[], + public jsonBOM: part[], + ) {} + + //Reset table + public clearTable(): void { + this.htmlTable.innerHTML = ''; + } + + //Header + private createTableHeader(): void { + const tHead = this.htmlTable.createTHead(); + const hRow = tHead.insertRow(); + //Populate headers with text + for (const header of this.headers) { + const th = document.createElement('th'); + const headerText = document.createTextNode(header); + th.appendChild(headerText); + hRow.appendChild(th); + } + } + + //Body + private createTableBody(): void { + this.jsonBOM.map((component) => { + //Create a row + const tRow = this.htmlTable.insertRow(); + //Insert part name + const partName = tRow.insertCell(); + const partNameText = document.createTextNode(component.Part); + partName.appendChild(partNameText); + //Insert part value + const partValue = tRow.insertCell(); + const partValText = document.createTextNode(component.Value); + partValue.appendChild(partValText); + }); + } +}