@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).
36 lines • 6.88 kB
JavaScript
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/router";
export class DsfrSkipLinksComponent {
constructor() {
/**
* Permet la gestion programmatique d'une navigation initiée au click sur le lien si l'input 'route' est valorisé.
* La valeur de la propriété 'route' sera transmise.
*/
this.linkSelect = new EventEmitter();
}
/**
* Dans le cas d'une route, un événement `(routeSelect)` est émis avec la valeur de la route et
* l'événement initial n'est pas propagé.
*
* @internal
*/
onSkiplinkSelect(event, route) {
if (route) {
event.preventDefault();
this.linkSelect.emit(route);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DsfrSkipLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DsfrSkipLinksComponent, selector: "dsfr-skiplinks", inputs: { links: "links" }, outputs: { linkSelect: "linkSelect" }, ngImport: i0, template: "<div class=\"fr-skiplinks\">\n <nav class=\"fr-container\" role=\"navigation\" aria-label=\"Acc\u00E8s rapide\">\n <ul class=\"fr-skiplinks__list\">\n <ng-container *ngFor=\"let item of links\">\n <li>\n <a\n *ngIf=\"!item.fragment\"\n class=\"fr-link\"\n [href]=\"item.route || item.link\"\n (click)=\"onSkiplinkSelect($event, item.route)\"\n >{{ item.label }}</a\n >\n <a *ngIf=\"item.fragment\" class=\"fr-link\" [routerLink]=\"'.'\" [fragment]=\"item.fragment\"> {{ item.label }}</a>\n </li>\n </ng-container>\n </ul>\n </nav>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DsfrSkipLinksComponent, decorators: [{
type: Component,
args: [{ selector: 'dsfr-skiplinks', encapsulation: ViewEncapsulation.None, template: "<div class=\"fr-skiplinks\">\n <nav class=\"fr-container\" role=\"navigation\" aria-label=\"Acc\u00E8s rapide\">\n <ul class=\"fr-skiplinks__list\">\n <ng-container *ngFor=\"let item of links\">\n <li>\n <a\n *ngIf=\"!item.fragment\"\n class=\"fr-link\"\n [href]=\"item.route || item.link\"\n (click)=\"onSkiplinkSelect($event, item.route)\"\n >{{ item.label }}</a\n >\n <a *ngIf=\"item.fragment\" class=\"fr-link\" [routerLink]=\"'.'\" [fragment]=\"item.fragment\"> {{ item.label }}</a>\n </li>\n </ng-container>\n </ul>\n </nav>\n</div>\n" }]
}], propDecorators: { links: [{
type: Input
}], linkSelect: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcGxpbmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1kc2ZyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NraXBsaW5rcy9za2lwbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRzZnItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2tpcGxpbmtzL3NraXBsaW5rcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTFGLE1BQU0sT0FBTyxzQkFBc0I7SUFMbkM7UUFXRTs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQWNuRDtJQVpDOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsS0FBWSxFQUFFLEtBQXlCO1FBQ3RELElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzsrR0F2QlUsc0JBQXNCO21HQUF0QixzQkFBc0IseUhDUm5DLGdwQkFrQkE7OzRGRFZhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBRVgsaUJBQWlCLENBQUMsSUFBSTs4QkFNNUIsS0FBSztzQkFBYixLQUFLO2dCQU1JLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERzZnJBbmNob3JMaW5rIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHNmci1za2lwbGlua3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2tpcGxpbmtzLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRHNmclNraXBMaW5rc0NvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUYWJsZWF1IGRlcyBsaWVucy5cbiAgICovXG4gIEBJbnB1dCgpIGxpbmtzOiBEc2ZyQW5jaG9yTGlua1tdO1xuXG4gIC8qKlxuICAgKiBQZXJtZXQgbGEgZ2VzdGlvbiBwcm9ncmFtbWF0aXF1ZSBkJ3VuZSBuYXZpZ2F0aW9uIGluaXRpw6llIGF1IGNsaWNrIHN1ciBsZSBsaWVuIHNpIGwnaW5wdXQgJ3JvdXRlJyBlc3QgdmFsb3Jpc8OpLlxuICAgKiBMYSB2YWxldXIgZGUgbGEgcHJvcHJpw6l0w6kgJ3JvdXRlJyBzZXJhIHRyYW5zbWlzZS5cbiAgICovXG4gIEBPdXRwdXQoKSBsaW5rU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIERhbnMgbGUgY2FzIGQndW5lIHJvdXRlLCB1biDDqXbDqW5lbWVudCBgKHJvdXRlU2VsZWN0KWAgZXN0IMOpbWlzIGF2ZWMgbGEgdmFsZXVyIGRlIGxhIHJvdXRlIGV0XG4gICAqIGwnw6l2w6luZW1lbnQgaW5pdGlhbCBuJ2VzdCBwYXMgcHJvcGFnw6kuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25Ta2lwbGlua1NlbGVjdChldmVudDogRXZlbnQsIHJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAocm91dGUpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmxpbmtTZWxlY3QuZW1pdChyb3V0ZSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnItc2tpcGxpbmtzXCI+XG4gIDxuYXYgY2xhc3M9XCJmci1jb250YWluZXJcIiByb2xlPVwibmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJBY2PDqHMgcmFwaWRlXCI+XG4gICAgPHVsIGNsYXNzPVwiZnItc2tpcGxpbmtzX19saXN0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpbmtzXCI+XG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5mcmFnbWVudFwiXG4gICAgICAgICAgICBjbGFzcz1cImZyLWxpbmtcIlxuICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS5yb3V0ZSB8fCBpdGVtLmxpbmtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2tpcGxpbmtTZWxlY3QoJGV2ZW50LCBpdGVtLnJvdXRlKVwiXG4gICAgICAgICAgICA+e3sgaXRlbS5sYWJlbCB9fTwvYVxuICAgICAgICAgID5cbiAgICAgICAgICA8YSAqbmdJZj1cIml0ZW0uZnJhZ21lbnRcIiBjbGFzcz1cImZyLWxpbmtcIiBbcm91dGVyTGlua109XCInLidcIiBbZnJhZ21lbnRdPVwiaXRlbS5mcmFnbWVudFwiPiB7eyBpdGVtLmxhYmVsIH19PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC91bD5cbiAgPC9uYXY+XG48L2Rpdj5cbiJdfQ==