PeerTube/client/src/app/shared/shared-main/angular/auto-colspan.directive.ts

23 lines
564 B
TypeScript

import { AfterViewInit, Directive, ElementRef, Renderer2 } from '@angular/core'
@Directive({
selector: '[myAutoColspan]'
})
export class AutoColspanDirective implements AfterViewInit {
constructor (
private host: ElementRef,
private renderer: Renderer2
) { }
ngAfterViewInit () {
const el = this.host.nativeElement as HTMLElement
const table = el.closest('table')
if (!table) throw new Error('table element not found')
const th = table.querySelectorAll('th')
this.renderer.setAttribute(el, 'colspan', th.length + '')
}
}