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

67 lines 14 kB
import { CommonModule } from '@angular/common'; import { Component, ContentChildren, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core'; import { RouterModule } from '@angular/router'; import { DsfrI18nPipe } from '../../shared'; import { DsfrLinkComponent } from '../link'; import { DsfrShareLinkComponent } from './share-link/share-link.component'; import { DsfrShareNameConst } from './share.model'; import * as i0 from "@angular/core"; export class DsfrShareComponent { /** @internal */ constructor() { /** Permet d'indiquer si l'usage des cookies a été autorisé par l'utilisateur final. */ this.hasCookiePermissions = true; /** Si route, événement avec la route en paramètre. */ this.consentManagerSelect = new EventEmitter(); this.cookiesText = 'share.cookiesText'; } /** @internal */ ngAfterViewInit() { this.setDisabled(!this.hasCookiePermissions); } /** @internal */ ngOnChanges(changes) { if (changes['hasCookiePermissions']) this.setDisabled(!this.hasCookiePermissions); } /** @internal */ onConsentLinkSelect() { if (this.consentManagerRoute) { this.consentManagerSelect.emit(this.consentManagerRoute); } } /** @internal */ onCopy(event) { event.preventDefault(); navigator.clipboard.writeText(window.location.href).then(() => { this.message = 'Le lien a été copié dans le presse-papier.'; setTimeout(() => (this.message = ''), 3000); }); } setDisabled(disabled) { this.shareLinks?.forEach((shareLink) => { if (shareLink.name != DsfrShareNameConst.MAIL) shareLink.disabled = disabled; }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DsfrShareComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DsfrShareComponent, isStandalone: true, selector: "dsfr-share", inputs: { consentManagerLink: "consentManagerLink", consentManagerLinkTarget: "consentManagerLinkTarget", consentManagerRoute: "consentManagerRoute", hasCookiePermissions: "hasCookiePermissions" }, outputs: { consentManagerSelect: "consentManagerSelect" }, queries: [{ propertyName: "shareLinks", predicate: DsfrShareLinkComponent }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fr-share\">\n <p class=\"fr-share__title\">{{ 'share.heading' | dsfrI18n }}</p>\n @if (!hasCookiePermissions) {\n <p class=\"fr-share__text\">\n {{ 'share.cookiesText[0]' | dsfrI18n }}\n <dsfr-link\n customClass=\"fr-share__text\"\n [link]=\"consentManagerLink\"\n [linkTarget]=\"consentManagerLinkTarget\"\n [route]=\"consentManagerRoute\"\n (linkSelect)=\"onConsentLinkSelect()\"\n >{{ 'share.cookiesText[1]' | dsfrI18n }}</dsfr-link\n >\n {{ 'share.cookiesText[2]' | dsfrI18n }}\n </p>\n }\n @if (message) {\n <p class=\"fr-share__text\">{{ message }}</p>\n }\n <ul class=\"fr-btns-group\">\n <ng-content></ng-content>\n <li>\n <button\n type=\"button\"\n class=\"fr-share__link fr-share__link--copy\"\n [title]=\"'share.copy.title' | dsfrI18n\"\n (click)=\"onCopy($event)\">\n {{ 'share.copy.label' | dsfrI18n }}\n </button>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "component", type: DsfrLinkComponent, selector: "dsfr-link", inputs: ["ariaCurrent", "ariaLabel", "ariaControls", "customClass", "disabled", "icon", "iconPosition", "linkId", "label", "link", "linkTarget", "route", "routePath", "routerLinkActive", "routerLinkActiveOptions", "routerLinkExtras", "linkSize", "tooltipMessage", "mode", "ariaCurrentWhenActive", "size", "targetLink", "routerLink"], outputs: ["linkSelect"] }, { kind: "pipe", type: DsfrI18nPipe, name: "dsfrI18n" }], encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DsfrShareComponent, decorators: [{ type: Component, args: [{ selector: 'dsfr-share', encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, RouterModule, DsfrLinkComponent, DsfrI18nPipe], template: "<div class=\"fr-share\">\n <p class=\"fr-share__title\">{{ 'share.heading' | dsfrI18n }}</p>\n @if (!hasCookiePermissions) {\n <p class=\"fr-share__text\">\n {{ 'share.cookiesText[0]' | dsfrI18n }}\n <dsfr-link\n customClass=\"fr-share__text\"\n [link]=\"consentManagerLink\"\n [linkTarget]=\"consentManagerLinkTarget\"\n [route]=\"consentManagerRoute\"\n (linkSelect)=\"onConsentLinkSelect()\"\n >{{ 'share.cookiesText[1]' | dsfrI18n }}</dsfr-link\n >\n {{ 'share.cookiesText[2]' | dsfrI18n }}\n </p>\n }\n @if (message) {\n <p class=\"fr-share__text\">{{ message }}</p>\n }\n <ul class=\"fr-btns-group\">\n <ng-content></ng-content>\n <li>\n <button\n type=\"button\"\n class=\"fr-share__link fr-share__link--copy\"\n [title]=\"'share.copy.title' | dsfrI18n\"\n (click)=\"onCopy($event)\">\n {{ 'share.copy.label' | dsfrI18n }}\n </button>\n </li>\n </ul>\n</div>\n" }] }], ctorParameters: () => [], propDecorators: { shareLinks: [{ type: ContentChildren, args: [DsfrShareLinkComponent] }], consentManagerLink: [{ type: Input }], consentManagerLinkTarget: [{ type: Input }], consentManagerRoute: [{ type: Input }], hasCookiePermissions: [{ type: Input }], consentManagerSelect: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRzZnItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRzZnItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTbkQsTUFBTSxPQUFPLGtCQUFrQjtJQXlCN0IsZ0JBQWdCO0lBQ2hCO1FBYkEsdUZBQXVGO1FBQzlFLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUVyQyxzREFBc0Q7UUFDbkMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVVuRSxJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztZQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsTUFBTSxDQUFDLEtBQVk7UUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM1RCxJQUFJLENBQUMsT0FBTyxHQUFHLDRDQUE0QyxDQUFDO1lBQzVELFVBQVUsQ0FBQyxHQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQWlCO1FBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDckMsSUFBSSxTQUFTLENBQUMsSUFBSSxJQUFJLGtCQUFrQixDQUFDLElBQUk7Z0JBQUUsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTVEVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrV0FFWixzQkFBc0Isa0RDNUJ6Qyx5K0JBZ0NBLDJDRFJZLFlBQVksOEJBQUUsWUFBWSwrQkFBRSxpQkFBaUIsd1pBQUUsWUFBWTs7NEZBRTFELGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxZQUFZLGlCQUVQLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUM7d0RBSTdCLFVBQVU7c0JBQWxELGVBQWU7dUJBQUMsc0JBQXNCO2dCQUc5QixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR2Esb0JBQW9CO3NCQUF0QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRHNmckkxOG5QaXBlLCBEc2ZyTGlua1RhcmdldCB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBEc2ZyTGlua0NvbXBvbmVudCB9IGZyb20gJy4uL2xpbmsnO1xuaW1wb3J0IHsgRHNmclNoYXJlTGlua0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmUtbGluay9zaGFyZS1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEc2ZyU2hhcmVOYW1lQ29uc3QgfSBmcm9tICcuL3NoYXJlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHNmci1zaGFyZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZSwgRHNmckxpbmtDb21wb25lbnQsIERzZnJJMThuUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIERzZnJTaGFyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihEc2ZyU2hhcmVMaW5rQ29tcG9uZW50KSBzaGFyZUxpbmtzITogUXVlcnlMaXN0PERzZnJTaGFyZUxpbmtDb21wb25lbnQ+O1xuXG4gIC8qKiBQZXJtZXQgZGUgZm91cm5pciBsZSBsaWVuIGFmZmljaGFudCBsZSBnZXN0aW9ubmFpcmUgZGUgY29uc2VudGVtZW50IChleGNsdXNpZiBhdmVjIGxhIHJvdXRlKS4gKi9cbiAgQElucHV0KCkgY29uc2VudE1hbmFnZXJMaW5rOiBzdHJpbmc7XG5cbiAgLyoqIFRhcmdldCBkdSBsaWVuLiBUYXJnZXQgcGFyIGTDqWZhdXQgZGUgbCdhcHBsaWNhdGlvbiBzaSBsYSBwcm9wcmnDqXTDqSBlc3Qgbm9uIHJlbnNlaWduw6llLiAqL1xuICBASW5wdXQoKSBjb25zZW50TWFuYWdlckxpbmtUYXJnZXQ/OiBEc2ZyTGlua1RhcmdldCB8IHVuZGVmaW5lZDtcblxuICAvKiogUGVybWV0IGRlIGZvdXJuaXIgbGEgcm91dGUgYWZmaWNoYW50IGxlIGdlc3Rpb25uYWlyZSBkZSBjb25zZW50ZW1lbnQgKHByaW9yaXRhaXJlIHN1ciBsZSBsaWVuKS4gKi9cbiAgQElucHV0KCkgY29uc2VudE1hbmFnZXJSb3V0ZTogc3RyaW5nO1xuXG4gIC8qKiBQZXJtZXQgZCdpbmRpcXVlciBzaSBsJ3VzYWdlIGRlcyBjb29raWVzIGEgw6l0w6kgYXV0b3Jpc8OpIHBhciBsJ3V0aWxpc2F0ZXVyIGZpbmFsLiAqL1xuICBASW5wdXQoKSBoYXNDb29raWVQZXJtaXNzaW9ucyA9IHRydWU7XG5cbiAgLyoqIFNpIHJvdXRlLCDDqXbDqW5lbWVudCBhdmVjIGxhIHJvdXRlIGVuIHBhcmFtw6h0cmUuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBjb25zZW50TWFuYWdlclNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgTWVzc2FnZSBkZSBjb3BpZSBkYW5zIGxlIHByZXNzZS1wYXBpZXIuICovXG4gIG1lc3NhZ2U6IHN0cmluZztcblxuICAvKiogQGludGVybmFsIFRleHRlIGR1IG1lc3NhZ2UgZGUgcGVybWlzc2lvbiBkZXMgY29va2llcy4gKi9cbiAgY29va2llc1RleHQ6IGFueTtcblxuICAvKiogQGludGVybmFsICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY29va2llc1RleHQgPSAnc2hhcmUuY29va2llc1RleHQnO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXREaXNhYmxlZCghdGhpcy5oYXNDb29raWVQZXJtaXNzaW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snaGFzQ29va2llUGVybWlzc2lvbnMnXSkgdGhpcy5zZXREaXNhYmxlZCghdGhpcy5oYXNDb29raWVQZXJtaXNzaW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uQ29uc2VudExpbmtTZWxlY3QoKSB7XG4gICAgaWYgKHRoaXMuY29uc2VudE1hbmFnZXJSb3V0ZSkge1xuICAgICAgdGhpcy5jb25zZW50TWFuYWdlclNlbGVjdC5lbWl0KHRoaXMuY29uc2VudE1hbmFnZXJSb3V0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkNvcHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh3aW5kb3cubG9jYXRpb24uaHJlZikudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnTGUgbGllbiBhIMOpdMOpIGNvcGnDqSBkYW5zIGxlIHByZXNzZS1wYXBpZXIuJztcbiAgICAgIHNldFRpbWVvdXQoKCk6IHN0cmluZyA9PiAodGhpcy5tZXNzYWdlID0gJycpLCAzMDAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNoYXJlTGlua3M/LmZvckVhY2goKHNoYXJlTGluaykgPT4ge1xuICAgICAgaWYgKHNoYXJlTGluay5uYW1lICE9IERzZnJTaGFyZU5hbWVDb25zdC5NQUlMKSBzaGFyZUxpbmsuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZyLXNoYXJlXCI+XG4gIDxwIGNsYXNzPVwiZnItc2hhcmVfX3RpdGxlXCI+e3sgJ3NoYXJlLmhlYWRpbmcnIHwgZHNmckkxOG4gfX08L3A+XG4gIEBpZiAoIWhhc0Nvb2tpZVBlcm1pc3Npb25zKSB7XG4gICAgPHAgY2xhc3M9XCJmci1zaGFyZV9fdGV4dFwiPlxuICAgICAge3sgJ3NoYXJlLmNvb2tpZXNUZXh0WzBdJyB8IGRzZnJJMThuIH19XG4gICAgICA8ZHNmci1saW5rXG4gICAgICAgIGN1c3RvbUNsYXNzPVwiZnItc2hhcmVfX3RleHRcIlxuICAgICAgICBbbGlua109XCJjb25zZW50TWFuYWdlckxpbmtcIlxuICAgICAgICBbbGlua1RhcmdldF09XCJjb25zZW50TWFuYWdlckxpbmtUYXJnZXRcIlxuICAgICAgICBbcm91dGVdPVwiY29uc2VudE1hbmFnZXJSb3V0ZVwiXG4gICAgICAgIChsaW5rU2VsZWN0KT1cIm9uQ29uc2VudExpbmtTZWxlY3QoKVwiXG4gICAgICAgID57eyAnc2hhcmUuY29va2llc1RleHRbMV0nIHwgZHNmckkxOG4gfX08L2RzZnItbGlua1xuICAgICAgPlxuICAgICAge3sgJ3NoYXJlLmNvb2tpZXNUZXh0WzJdJyB8IGRzZnJJMThuIH19XG4gICAgPC9wPlxuICB9XG4gIEBpZiAobWVzc2FnZSkge1xuICAgIDxwIGNsYXNzPVwiZnItc2hhcmVfX3RleHRcIj57eyBtZXNzYWdlIH19PC9wPlxuICB9XG4gIDx1bCBjbGFzcz1cImZyLWJ0bnMtZ3JvdXBcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPGxpPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJmci1zaGFyZV9fbGluayBmci1zaGFyZV9fbGluay0tY29weVwiXG4gICAgICAgIFt0aXRsZV09XCInc2hhcmUuY29weS50aXRsZScgfCBkc2ZySTE4blwiXG4gICAgICAgIChjbGljayk9XCJvbkNvcHkoJGV2ZW50KVwiPlxuICAgICAgICB7eyAnc2hhcmUuY29weS5sYWJlbCcgfCBkc2ZySTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19