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).

43 lines 10.4 kB
import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, viewChild, ViewEncapsulation, } from '@angular/core'; import { DsfrI18nPipe } from '../../../shared'; import { EduWrapWithLiDirective } from '../../../shared/directives/wrap-li.directive'; import { DsfrTranslateComponent } from '../../translate'; import { DsfrToolLinkComponent } from './tool-link.component'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; /** * Composant interne représentant le container des liens d'accès rapides du header */ export class EduToolsLinksComponent { constructor() { /** Nombre maximum de liens d'accès rapides (3) */ this.maxToolsLinks = 3; /** Evènement émis au clic sur un lien */ this.linkSelect = new EventEmitter(); /* Référence du container depuis le composant header (pour duplication en mobile) */ this.toolsLinksListRef = viewChild('toolsLinksList'); } onLinkSelect(link) { this.linkSelect.emit(link); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EduToolsLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EduToolsLinksComponent, isStandalone: true, selector: "edu-tools-links", inputs: { toolsLinks: "toolsLinks", showDisplay: "showDisplay", displayId: "displayId", toolsLinksTemplate: "toolsLinksTemplate", maxToolsLinks: "maxToolsLinks" }, outputs: { linkSelect: "linkSelect" }, viewQueries: [{ propertyName: "toolsLinksListRef", first: true, predicate: ["toolsLinksList"], descendants: true, isSignal: true }], ngImport: i0, template: "@if ((toolsLinks && toolsLinks.length > 0) || showDisplay || toolsLinksTemplate) {\n <ul class=\"fr-btns-group\" eduWrapWithLi #toolsLinksList>\n @if (toolsLinks && toolsLinks.length > 0) {\n @for (item of toolsLinks; track item; let i = $index) {\n @if (i < maxToolsLinks) {\n <li><dsfr-tool-link (linkSelect)=\"onLinkSelect(item)\" [link]=\"item\"></dsfr-tool-link></li>\n }\n }\n }\n @if (toolsLinksTemplate) {\n <ng-container *ngTemplateOutlet=\"toolsLinksTemplate\"></ng-container>\n }\n @if (showDisplay) {\n <li>\n <button type=\"button\" class=\"fr-btn fr-icon-theme-fill\" [attr.aria-controls]=\"displayId\" data-fr-opened=\"false\">\n {{ 'display.heading' | dsfrI18n }}\n </button>\n </li>\n }\n </ul>\n}\n", styles: [".edu-tools-links.fr-header__tools-links{display:block}\n"], dependencies: [{ kind: "component", type: DsfrToolLinkComponent, selector: "dsfr-tool-link", inputs: ["link"], outputs: ["linkSelect"] }, { kind: "directive", type: EduWrapWithLiDirective, selector: "[eduWrapWithLi]" }, { kind: "pipe", type: DsfrI18nPipe, name: "dsfrI18n" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EduToolsLinksComponent, decorators: [{ type: Component, args: [{ selector: 'edu-tools-links', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [DsfrToolLinkComponent, EduWrapWithLiDirective, DsfrI18nPipe, DsfrTranslateComponent, CommonModule], template: "@if ((toolsLinks && toolsLinks.length > 0) || showDisplay || toolsLinksTemplate) {\n <ul class=\"fr-btns-group\" eduWrapWithLi #toolsLinksList>\n @if (toolsLinks && toolsLinks.length > 0) {\n @for (item of toolsLinks; track item; let i = $index) {\n @if (i < maxToolsLinks) {\n <li><dsfr-tool-link (linkSelect)=\"onLinkSelect(item)\" [link]=\"item\"></dsfr-tool-link></li>\n }\n }\n }\n @if (toolsLinksTemplate) {\n <ng-container *ngTemplateOutlet=\"toolsLinksTemplate\"></ng-container>\n }\n @if (showDisplay) {\n <li>\n <button type=\"button\" class=\"fr-btn fr-icon-theme-fill\" [attr.aria-controls]=\"displayId\" data-fr-opened=\"false\">\n {{ 'display.heading' | dsfrI18n }}\n </button>\n </li>\n }\n </ul>\n}\n", styles: [".edu-tools-links.fr-header__tools-links{display:block}\n"] }] }], propDecorators: { toolsLinks: [{ type: Input }], showDisplay: [{ type: Input }], displayId: [{ type: Input }], toolsLinksTemplate: [{ type: Input }], maxToolsLinks: [{ type: Input }], linkSelect: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMtbGlua3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRzZnItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaGVhZGVyL2NvbXBvbmVudC90b29scy1saW5rcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHNmci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvY29tcG9uZW50L3Rvb2xzLWxpbmtzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRTlEOztHQUVHO0FBVUgsTUFBTSxPQUFPLHNCQUFzQjtJQVRuQztRQXNCRSxtREFBbUQ7UUFDMUMsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFM0IseUNBQXlDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRTdELG9GQUFvRjtRQUMzRSxzQkFBaUIsR0FBRyxTQUFTLENBQTBCLGdCQUFnQixDQUFDLENBQUM7S0FLbkY7SUFIVyxZQUFZLENBQUMsSUFBYztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDOytHQXhCVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwyWkM3Qm5DLHl5QkFxQkEsa0hETVkscUJBQXFCLHNHQUFFLHNCQUFzQix1REFBRSxZQUFZLGdEQUEwQixZQUFZOzs0RkFFaEcsc0JBQXNCO2tCQVRsQyxTQUFTOytCQUNFLGlCQUFpQixjQUVmLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUU1QixDQUFDLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxZQUFZLENBQUM7OEJBSW5HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdhLFVBQVU7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEc2ZySTE4blBpcGUsIERzZnJMaW5rIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IEVkdVdyYXBXaXRoTGlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGlyZWN0aXZlcy93cmFwLWxpLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEc2ZyVHJhbnNsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlJztcbmltcG9ydCB7IERzZnJUb29sTGlua0NvbXBvbmVudCB9IGZyb20gJy4vdG9vbC1saW5rLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQ29tcG9zYW50IGludGVybmUgcmVwcsOpc2VudGFudCBsZSBjb250YWluZXIgZGVzIGxpZW5zIGQnYWNjw6hzIHJhcGlkZXMgZHUgaGVhZGVyXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VkdS10b29scy1saW5rcycsXG4gIHRlbXBsYXRlVXJsOiAnLi90b29scy1saW5rcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdHlsZXM6IFsnIC5lZHUtdG9vbHMtbGlua3MuZnItaGVhZGVyX190b29scy1saW5rcyAgeyBkaXNwbGF5OiBibG9ja30nXSxcbiAgaW1wb3J0czogW0RzZnJUb29sTGlua0NvbXBvbmVudCwgRWR1V3JhcFdpdGhMaURpcmVjdGl2ZSwgRHNmckkxOG5QaXBlLCBEc2ZyVHJhbnNsYXRlQ29tcG9uZW50LCBDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFZHVUb29sc0xpbmtzQ29tcG9uZW50IHtcbiAgLyoqIExpc3RlIGRlcyBsaWVucyByYXBpZGVzICovXG4gIEBJbnB1dCgpIHRvb2xzTGlua3M6IERzZnJMaW5rW107XG5cbiAgLyoqIENvbXBvc2FudCBkaXNwbGF5IMOgIGFmZmljaGVyICovXG4gIEBJbnB1dCgpIHNob3dEaXNwbGF5OiBib29sZWFuO1xuXG4gIC8qKiBpZGVudGlmaWFudCBkdSBkaXNwbGF5ICovXG4gIEBJbnB1dCgpIGRpc3BsYXlJZDogc3RyaW5nO1xuXG4gIC8qKiBUZW1wbGF0ZSBvcHRpb25uZWwgZGVzIGFjY8OocyByYXBpZGVzICovXG4gIEBJbnB1dCgpIHRvb2xzTGlua3NUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKiogTm9tYnJlIG1heGltdW0gZGUgbGllbnMgZCdhY2PDqHMgcmFwaWRlcyAoMykgICovXG4gIEBJbnB1dCgpIG1heFRvb2xzTGlua3MgPSAzO1xuXG4gIC8qKiBFdsOobmVtZW50IMOpbWlzIGF1IGNsaWMgc3VyIHVuIGxpZW4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGxpbmtTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERzZnJMaW5rPigpO1xuXG4gIC8qIFLDqWbDqXJlbmNlIGR1IGNvbnRhaW5lciBkZXB1aXMgbGUgY29tcG9zYW50IGhlYWRlciAocG91ciBkdXBsaWNhdGlvbiBlbiBtb2JpbGUpICovXG4gIHJlYWRvbmx5IHRvb2xzTGlua3NMaXN0UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigndG9vbHNMaW5rc0xpc3QnKTtcblxuICBwcm90ZWN0ZWQgb25MaW5rU2VsZWN0KGxpbms6IERzZnJMaW5rKSB7XG4gICAgdGhpcy5saW5rU2VsZWN0LmVtaXQobGluayk7XG4gIH1cbn1cbiIsIkBpZiAoKHRvb2xzTGlua3MgJiYgdG9vbHNMaW5rcy5sZW5ndGggPiAwKSB8fCBzaG93RGlzcGxheSB8fCB0b29sc0xpbmtzVGVtcGxhdGUpIHtcbiAgPHVsIGNsYXNzPVwiZnItYnRucy1ncm91cFwiIGVkdVdyYXBXaXRoTGkgI3Rvb2xzTGlua3NMaXN0PlxuICAgIEBpZiAodG9vbHNMaW5rcyAmJiB0b29sc0xpbmtzLmxlbmd0aCA+IDApIHtcbiAgICAgIEBmb3IgKGl0ZW0gb2YgdG9vbHNMaW5rczsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgQGlmIChpIDwgbWF4VG9vbHNMaW5rcykge1xuICAgICAgICAgIDxsaT48ZHNmci10b29sLWxpbmsgKGxpbmtTZWxlY3QpPVwib25MaW5rU2VsZWN0KGl0ZW0pXCIgW2xpbmtdPVwiaXRlbVwiPjwvZHNmci10b29sLWxpbms+PC9saT5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAaWYgKHRvb2xzTGlua3NUZW1wbGF0ZSkge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvb2xzTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAaWYgKHNob3dEaXNwbGF5KSB7XG4gICAgICA8bGk+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZnItYnRuIGZyLWljb24tdGhlbWUtZmlsbFwiIFthdHRyLmFyaWEtY29udHJvbHNdPVwiZGlzcGxheUlkXCIgZGF0YS1mci1vcGVuZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgIHt7ICdkaXNwbGF5LmhlYWRpbmcnIHwgZHNmckkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgIH1cbiAgPC91bD5cbn1cbiJdfQ==