UNPKG

@edugouvfr/ngx-dsfr-ext

Version:

NgxDsfrExt est une extension au package @edugouvfr/ngx-dsfr (portage Angular des éléments DSFR)

47 lines 5.32 kB
import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, ViewEncapsulation, } from '@angular/core'; import * as i0 from "@angular/core"; /** * Composant affichage d'un groupe de menu dropdown */ export class DsfrDropdownMenuGroupComponent { constructor() { this.element = inject(ElementRef); } /** * Ajout d'un wrapper <li> avec role presentation * si showSeparator, ajout d'un separateur apres ce li */ ngAfterViewInit() { const elem = this.element.nativeElement; const li = document.createElement('li'); li.setAttribute('role', 'presentation'); elem.replaceWith(li); // Ne remplace pas l'élément en lui même mais modifie la Node parent de l'élément li.appendChild(elem); if (this.showSeparator) { li.insertAdjacentHTML('afterend', '<li role="separator"></li>'); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DsfrDropdownMenuGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DsfrDropdownMenuGroupComponent, isStandalone: true, selector: "dsfrx-dropdownmenu-group, dsfr-ext-dropdownmenu-group", inputs: { showSeparator: "showSeparator" }, ngImport: i0, template: ` <ul role="group"> <ng-content></ng-content> </ul> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DsfrDropdownMenuGroupComponent, decorators: [{ type: Component, args: [{ selector: 'dsfrx-dropdownmenu-group, dsfr-ext-dropdownmenu-group', template: ` <ul role="group"> <ng-content></ng-content> </ul> `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, }] }], propDecorators: { showSeparator: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd25tZW51LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1kc2ZyLWV4dC9zcmMvbGliL2Ryb3Bkb3dubWVudS9jb21wb25lbnQvZHJvcGRvd25tZW51LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7O0FBRXZCOztHQUVHO0FBWUgsTUFBTSxPQUFPLDhCQUE4QjtJQVgzQztRQWNZLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FpQnhDO0lBZkM7OztPQUdHO0lBQ0ksZUFBZTtRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUN4QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRkFBaUY7UUFDdkcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixFQUFFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7K0dBbkJVLDhCQUE4QjttR0FBOUIsOEJBQThCLDZKQVQvQjs7OztHQUlUOzs0RkFLVSw4QkFBOEI7a0JBWDFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVEQUF1RDtvQkFDakUsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OEJBRVUsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBDb21wb3NhbnQgYWZmaWNoYWdlIGQndW4gZ3JvdXBlIGRlIG1lbnUgZHJvcGRvd25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHNmcngtZHJvcGRvd25tZW51LWdyb3VwLCBkc2ZyLWV4dC1kcm9wZG93bm1lbnUtZ3JvdXAnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx1bCByb2xlPVwiZ3JvdXBcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3VsPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRHNmckRyb3Bkb3duTWVudUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHNob3dTZXBhcmF0b3I6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgLyoqXG4gICAqIEFqb3V0IGQndW4gd3JhcHBlciA8bGk+IGF2ZWMgcm9sZSBwcmVzZW50YXRpb25cbiAgICogc2kgc2hvd1NlcGFyYXRvciwgYWpvdXQgZCd1biBzZXBhcmF0ZXVyIGFwcmVzIGNlIGxpXG4gICAqL1xuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW0gPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7XG4gICAgbGkuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3ByZXNlbnRhdGlvbicpO1xuICAgIGVsZW0ucmVwbGFjZVdpdGgobGkpOyAvLyBOZSByZW1wbGFjZSBwYXMgbCfDqWzDqW1lbnQgZW4gbHVpIG3Dqm1lIG1haXMgbW9kaWZpZSBsYSBOb2RlIHBhcmVudCBkZSBsJ8OpbMOpbWVudFxuICAgIGxpLmFwcGVuZENoaWxkKGVsZW0pO1xuXG4gICAgaWYgKHRoaXMuc2hvd1NlcGFyYXRvcikge1xuICAgICAgbGkuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsICc8bGkgcm9sZT1cInNlcGFyYXRvclwiPjwvbGk+Jyk7XG4gICAgfVxuICB9XG59XG4iXX0=