UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

32 lines 3.96 kB
import { Directive, ElementRef } from '@angular/core'; import * as i0 from "@angular/core"; /** * Adds necessary attributes to ngx-bootstrap's tabset markup to comply with a11y requirements. */ export class TabsetAriaDirective { constructor(elementRef) { this.elementRef = elementRef; } ngAfterViewInit() { let owned = ''; this.elementRef.nativeElement.querySelectorAll('[role="tab"]')?.forEach((tab, idx) => { tab.setAttribute('id', `tab${idx}`); owned = owned.concat(`tab${idx} `); }); this.elementRef.nativeElement .querySelectorAll('li') ?.forEach(li => li.setAttribute('role', 'presentation')); this.elementRef.nativeElement .querySelector('[role="tablist"]') ?.setAttribute('aria-owns', owned); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsetAriaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TabsetAriaDirective, selector: "tabset", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabsetAriaDirective, decorators: [{ type: Directive, args: [{ selector: 'tabset' }] }], ctorParameters: () => [{ type: i0.ElementRef }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LWFyaWEuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vdGFic2V0LWFyaWEuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFckU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0lBRTlDLGVBQWU7UUFDYixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDbkYsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYTthQUMxQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDdkIsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYTthQUMxQixhQUFhLENBQUMsa0JBQWtCLENBQUM7WUFDbEMsRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBZlUsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFFBQVE7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQWRkcyBuZWNlc3NhcnkgYXR0cmlidXRlcyB0byBuZ3gtYm9vdHN0cmFwJ3MgdGFic2V0IG1hcmt1cCB0byBjb21wbHkgd2l0aCBhMTF5IHJlcXVpcmVtZW50cy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGFic2V0J1xufSlcbmV4cG9ydCBjbGFzcyBUYWJzZXRBcmlhRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgbGV0IG93bmVkID0gJyc7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW3JvbGU9XCJ0YWJcIl0nKT8uZm9yRWFjaCgodGFiLCBpZHgpID0+IHtcbiAgICAgIHRhYi5zZXRBdHRyaWJ1dGUoJ2lkJywgYHRhYiR7aWR4fWApO1xuICAgICAgb3duZWQgPSBvd25lZC5jb25jYXQoYHRhYiR7aWR4fSBgKTtcbiAgICB9KTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpJylcbiAgICAgID8uZm9yRWFjaChsaSA9PiBsaS5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAncHJlc2VudGF0aW9uJykpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAucXVlcnlTZWxlY3RvcignW3JvbGU9XCJ0YWJsaXN0XCJdJylcbiAgICAgID8uc2V0QXR0cmlidXRlKCdhcmlhLW93bnMnLCBvd25lZCk7XG4gIH1cbn1cbiJdfQ==