diff --git a/web/src/elements/table/Table.ts b/web/src/elements/table/Table.ts index f20563f47..07c633976 100644 --- a/web/src/elements/table/Table.ts +++ b/web/src/elements/table/Table.ts @@ -292,10 +292,17 @@ export abstract class Table extends AKElement { private renderRowGroup(items: T[]): TemplateResult[] { return items.map((item) => { - const itemSelectHandler = (ev?: InputEvent) => { + const itemSelectHandler = (ev?: InputEvent | PointerEvent) => { let checked = false; if (ev) { - checked = (ev.target as HTMLInputElement).checked; + // Only register click events on a table row + if (ev instanceof PointerEvent) { + if ((ev.target as HTMLInputElement).tagName.toLowerCase() != "tr") { + return; + } + } else if (ev instanceof InputEvent) { + checked = (ev.target as HTMLInputElement).checked; + } } else { // If we have no event, toggle the state checked = this.selectedElements.indexOf(item) === -1; @@ -332,9 +339,7 @@ export abstract class Table extends AKElement { { - itemSelectHandler(); - }} + @click=${itemSelectHandler} > ${this.checkbox ? html`