UNPKG

@edugouvfr/ngx-dsfr

Version:

NgxDsfr est un portage Angular des éléments d'interface du Système de Design de l'État Français (DSFR).

52 lines 6.66 kB
import { CommonModule } from '@angular/common'; import { Component, Directive, Input } from '@angular/core'; import { newUniqueId } from '../../shared'; import * as i0 from "@angular/core"; class TooltipComponent { constructor() { this.tooltipId = newUniqueId(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TooltipComponent, isStandalone: true, selector: "edu-tooltip", ngImport: i0, template: `<span class="fr-tooltip fr-placement" [id]="tooltipId" role="tooltip" [innerHTML]="message"></span>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TooltipComponent, decorators: [{ type: Component, args: [{ selector: 'edu-tooltip', template: `<span class="fr-tooltip fr-placement" [id]="tooltipId" role="tooltip" [innerHTML]="message"></span>`, standalone: true, imports: [CommonModule], }] }] }); export class DsfrTooltipDirective { constructor(elementRef, viewContainer) { this.elementRef = elementRef; this.viewContainer = viewContainer; // Composant const tooltipRef = this.viewContainer.createComponent(TooltipComponent); // @ts-ignore this.tooltipComponent = tooltipRef.instance; // Tooltip id const nativeElt = this.elementRef.nativeElement; nativeElt.setAttribute('aria-describedby', this.tooltipComponent.tooltipId); // Message textuel const message = nativeElt.getAttribute('tooltip'); if (message) this.tooltip = message; } set tooltip(value) { this.tooltipComponent.message = value; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DsfrTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DsfrTooltipDirective, isStandalone: true, selector: "[tooltip]", inputs: { tooltip: "tooltip" }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DsfrTooltipDirective, decorators: [{ type: Directive, args: [{ selector: '[tooltip]', standalone: true, }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { tooltip: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHNmci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTNDLE1BTU0sZ0JBQWdCO0lBTnRCO1FBUUUsY0FBUyxHQUFHLFdBQVcsRUFBRSxDQUFDO0tBQzNCOytHQUhLLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHVFQUpWLHFHQUFxRywyREFFckcsWUFBWTs7NEZBRWxCLGdCQUFnQjtrQkFOckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLHFHQUFxRztvQkFDL0csVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEI7O0FBVUQsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNVLFVBQXNCLEVBQ3RCLGFBQStCO1FBRC9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBRXZDLFlBQVk7UUFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBbUIsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRixhQUFhO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixHQUFvQyxVQUFXLENBQUMsUUFBUSxDQUFDO1FBRTlFLGFBQWE7UUFDYixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxTQUFTLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU1RSxrQkFBa0I7UUFDbEIsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxJQUFJLE9BQU87WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN4QyxDQUFDOytHQXZCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2dJQXNCYyxPQUFPO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbmV3VW5pcXVlSWQgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlZHUtdG9vbHRpcCcsXG4gIHRlbXBsYXRlOiBgPHNwYW4gY2xhc3M9XCJmci10b29sdGlwIGZyLXBsYWNlbWVudFwiIFtpZF09XCJ0b29sdGlwSWRcIiByb2xlPVwidG9vbHRpcFwiIFtpbm5lckhUTUxdPVwibWVzc2FnZVwiPjwvc3Bhbj5gLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5jbGFzcyBUb29sdGlwQ29tcG9uZW50IHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0b29sdGlwSWQgPSBuZXdVbmlxdWVJZCgpO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdG9vbHRpcF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEc2ZyVG9vbHRpcERpcmVjdGl2ZSB7XG4gIHByaXZhdGUgdG9vbHRpcENvbXBvbmVudDogVG9vbHRpcENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHtcbiAgICAvLyBDb21wb3NhbnRcbiAgICBjb25zdCB0b29sdGlwUmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudDxUb29sdGlwQ29tcG9uZW50PihUb29sdGlwQ29tcG9uZW50KTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy50b29sdGlwQ29tcG9uZW50ID0gKDxDb21wb25lbnRSZWY8VG9vbHRpcENvbXBvbmVudD4+dG9vbHRpcFJlZikuaW5zdGFuY2U7XG5cbiAgICAvLyBUb29sdGlwIGlkXG4gICAgY29uc3QgbmF0aXZlRWx0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgbmF0aXZlRWx0LnNldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScsIHRoaXMudG9vbHRpcENvbXBvbmVudC50b29sdGlwSWQpO1xuXG4gICAgLy8gTWVzc2FnZSB0ZXh0dWVsXG4gICAgY29uc3QgbWVzc2FnZSA9IG5hdGl2ZUVsdC5nZXRBdHRyaWJ1dGUoJ3Rvb2x0aXAnKTtcbiAgICBpZiAobWVzc2FnZSkgdGhpcy50b29sdGlwID0gbWVzc2FnZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB0b29sdGlwKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRvb2x0aXBDb21wb25lbnQubWVzc2FnZSA9IHZhbHVlO1xuICB9XG59XG4iXX0=