Chocobozzz/PeerTube

View on GitHub
client/src/app/shared/shared-main/common/auto-colspan.directive.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { AfterViewInit, Directive, ElementRef, Renderer2 } from '@angular/core'

@Directive({
  selector: '[myAutoColspan]',
  standalone: true
})
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 + '')
  }
}