diff --git a/web/src/elements/table/Table.ts b/web/src/elements/table/Table.ts index c40412425..9345966d9 100644 --- a/web/src/elements/table/Table.ts +++ b/web/src/elements/table/Table.ts @@ -95,6 +95,12 @@ export abstract class Table extends LitElement { @property({type: String}) search?: string; + @property({type: Boolean}) + checkbox = false; + + @property({attribute: false}) + selectedElements: T[] = []; + @property({type: Boolean}) expandable = false; @@ -169,6 +175,21 @@ export abstract class Table extends LitElement { } return html` + ${this.checkbox ? html` + = 0} + @input=${(ev: InputEvent) => { + if ((ev.target as HTMLInputElement).checked) { + // Add item to selected + this.selectedElements.push(item); + } else { + // Get index of item and remove if selected + const index = this.selectedElements.indexOf(item); + if (index <= -1) return; + this.selectedElements.splice(index, 1); + } + }} /> + ` : html``} ${this.expandable ? html`