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 13.9 kB
import { Component, ContentChildren, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core'; import { DsfrShareLinkComponent } from './share-link/share-link.component'; import { DsfrShareNameConst } from './share.model'; import * as i0 from "@angular/core"; import * as i1 from "../../shared"; import * as i2 from "@angular/common"; import * as i3 from "../link/link.component"; export class DsfrShareComponent { /** @internal */ constructor(i18n) { this.i18n = i18n; /** 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 = i18n.t('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: "16.2.12", ngImport: i0, type: DsfrShareComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DsfrShareComponent, 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\">{{ i18n.t('share.heading') }}</p>\n <p *ngIf=\"!hasCookiePermissions\" class=\"fr-share__text\">\n {{ cookiesText[0] }}\n <dsfr-link\n customClass=\"fr-share__text\"\n [link]=\"consentManagerLink\"\n [linkTarget]=\"consentManagerLinkTarget\"\n [route]=\"consentManagerRoute\"\n [label]=\"cookiesText[1]\"\n (linkSelect)=\"onConsentLinkSelect()\"></dsfr-link>\n {{ cookiesText[2] }}\n </p>\n <p *ngIf=\"message\" class=\"fr-share__text\">{{ message }}</p>\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]=\"i18n.t('share.copy.title')\"\n (click)=\"onCopy($event)\">\n {{ i18n.t('share.copy.label') }}\n </button>\n </li>\n </ul>\n</div>\n", styles: ["a[routerLink]{background-image:var(--underline-img),var(--underline-img);background-position:var(--underline-x) 100%,var(--underline-x) calc(100% - .0625em);background-repeat:no-repeat,no-repeat;transition:background-size 0s;background-size:var(--underline-hover-width) .125em,var(--underline-idle-width) .0625em;color:inherit;cursor:pointer}a[routerLink]:hover,a[routerLink]:active{--underline-hover-width: var(--underline-max-width)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DsfrLinkComponent, selector: "dsfr-link", inputs: ["ariaCurrent", "ariaLabel", "ariaControls", "customClass", "disabled", "icon", "iconPosition", "linkId", "label", "link", "linkTarget", "route", "routePath", "routerLinkActive", "routerLinkActiveOptions", "routerLinkExtras", "size", "tooltipMessage", "mode", "targetLink", "routerLink"], outputs: ["linkSelect"] }], encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DsfrShareComponent, decorators: [{ type: Component, args: [{ selector: 'dsfr-share', encapsulation: ViewEncapsulation.None, template: "<div class=\"fr-share\">\n <p class=\"fr-share__title\">{{ i18n.t('share.heading') }}</p>\n <p *ngIf=\"!hasCookiePermissions\" class=\"fr-share__text\">\n {{ cookiesText[0] }}\n <dsfr-link\n customClass=\"fr-share__text\"\n [link]=\"consentManagerLink\"\n [linkTarget]=\"consentManagerLinkTarget\"\n [route]=\"consentManagerRoute\"\n [label]=\"cookiesText[1]\"\n (linkSelect)=\"onConsentLinkSelect()\"></dsfr-link>\n {{ cookiesText[2] }}\n </p>\n <p *ngIf=\"message\" class=\"fr-share__text\">{{ message }}</p>\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]=\"i18n.t('share.copy.title')\"\n (click)=\"onCopy($event)\">\n {{ i18n.t('share.copy.label') }}\n </button>\n </li>\n </ul>\n</div>\n", styles: ["a[routerLink]{background-image:var(--underline-img),var(--underline-img);background-position:var(--underline-x) 100%,var(--underline-x) calc(100% - .0625em);background-repeat:no-repeat,no-repeat;transition:background-size 0s;background-size:var(--underline-hover-width) .125em,var(--underline-idle-width) .0625em;color:inherit;cursor:pointer}a[routerLink]:hover,a[routerLink]:active{--underline-hover-width: var(--underline-max-width)}\n"] }] }], ctorParameters: function () { return [{ type: i1.I18nService }]; }, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRzZnItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRzZnItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRbkQsTUFBTSxPQUFPLGtCQUFrQjtJQXlCN0IsZ0JBQWdCO0lBQ2hCLFlBQW1CLElBQWlCO1FBQWpCLFNBQUksR0FBSixJQUFJLENBQWE7UUFicEMsdUZBQXVGO1FBQzlFLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUVyQyxzREFBc0Q7UUFDbkMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVVuRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsc0JBQXNCLENBQUM7WUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsTUFBTSxDQUFDLEtBQVk7UUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM1RCxJQUFJLENBQUMsT0FBTyxHQUFHLDRDQUE0QyxDQUFDO1lBQzVELFVBQVUsQ0FBQyxHQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQWlCO1FBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDckMsSUFBSSxTQUFTLENBQUMsSUFBSSxJQUFJLGtCQUFrQixDQUFDLElBQUk7Z0JBQUUsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTVEVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw4VUFFWixzQkFBc0Isa0RDeEJ6QyxpNEJBMkJBOzs0RkRMYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsWUFBWSxpQkFHUCxpQkFBaUIsQ0FBQyxJQUFJO2tHQUlJLFVBQVU7c0JBQWxELGVBQWU7dUJBQUMsc0JBQXNCO2dCQUc5QixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR2Esb0JBQW9CO3NCQUF0QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERzZnJMaW5rVGFyZ2V0LCBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBEc2ZyU2hhcmVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZS1saW5rL3NoYXJlLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IERzZnJTaGFyZU5hbWVDb25zdCB9IGZyb20gJy4vc2hhcmUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkc2ZyLXNoYXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm91dGVyLWxpbmsuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEc2ZyU2hhcmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAvKiogQGludGVybmFsICovXG4gIEBDb250ZW50Q2hpbGRyZW4oRHNmclNoYXJlTGlua0NvbXBvbmVudCkgc2hhcmVMaW5rcyE6IFF1ZXJ5TGlzdDxEc2ZyU2hhcmVMaW5rQ29tcG9uZW50PjtcblxuICAvKiogUGVybWV0IGRlIGZvdXJuaXIgbGUgbGllbiBhZmZpY2hhbnQgbGUgZ2VzdGlvbm5haXJlIGRlIGNvbnNlbnRlbWVudCAoZXhjbHVzaWYgYXZlYyBsYSByb3V0ZSkuICovXG4gIEBJbnB1dCgpIGNvbnNlbnRNYW5hZ2VyTGluazogc3RyaW5nO1xuXG4gIC8qKiBUYXJnZXQgZHUgbGllbi4gVGFyZ2V0IHBhciBkw6lmYXV0IGRlIGwnYXBwbGljYXRpb24gc2kgbGEgcHJvcHJpw6l0w6kgZXN0IG5vbiByZW5zZWlnbsOpZS4gKi9cbiAgQElucHV0KCkgY29uc2VudE1hbmFnZXJMaW5rVGFyZ2V0PzogRHNmckxpbmtUYXJnZXQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFBlcm1ldCBkZSBmb3VybmlyIGxhIHJvdXRlIGFmZmljaGFudCBsZSBnZXN0aW9ubmFpcmUgZGUgY29uc2VudGVtZW50IChwcmlvcml0YWlyZSBzdXIgbGUgbGllbikuICovXG4gIEBJbnB1dCgpIGNvbnNlbnRNYW5hZ2VyUm91dGU6IHN0cmluZztcblxuICAvKiogUGVybWV0IGQnaW5kaXF1ZXIgc2kgbCd1c2FnZSBkZXMgY29va2llcyBhIMOpdMOpIGF1dG9yaXPDqSBwYXIgbCd1dGlsaXNhdGV1ciBmaW5hbC4gKi9cbiAgQElucHV0KCkgaGFzQ29va2llUGVybWlzc2lvbnMgPSB0cnVlO1xuXG4gIC8qKiBTaSByb3V0ZSwgw6l2w6luZW1lbnQgYXZlYyBsYSByb3V0ZSBlbiBwYXJhbcOodHJlLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgY29uc2VudE1hbmFnZXJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKiogQGludGVybmFsIE1lc3NhZ2UgZGUgY29waWUgZGFucyBsZSBwcmVzc2UtcGFwaWVyLiAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqIEBpbnRlcm5hbCBUZXh0ZSBkdSBtZXNzYWdlIGRlIHBlcm1pc3Npb24gZGVzIGNvb2tpZXMuICovXG4gIGNvb2tpZXNUZXh0OiBhbnk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaTE4bjogSTE4blNlcnZpY2UpIHtcbiAgICB0aGlzLmNvb2tpZXNUZXh0ID0gaTE4bi50KCdzaGFyZS5jb29raWVzVGV4dCcpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXREaXNhYmxlZCghdGhpcy5oYXNDb29raWVQZXJtaXNzaW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snaGFzQ29va2llUGVybWlzc2lvbnMnXSkgdGhpcy5zZXREaXNhYmxlZCghdGhpcy5oYXNDb29raWVQZXJtaXNzaW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uQ29uc2VudExpbmtTZWxlY3QoKSB7XG4gICAgaWYgKHRoaXMuY29uc2VudE1hbmFnZXJSb3V0ZSkge1xuICAgICAgdGhpcy5jb25zZW50TWFuYWdlclNlbGVjdC5lbWl0KHRoaXMuY29uc2VudE1hbmFnZXJSb3V0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkNvcHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh3aW5kb3cubG9jYXRpb24uaHJlZikudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnTGUgbGllbiBhIMOpdMOpIGNvcGnDqSBkYW5zIGxlIHByZXNzZS1wYXBpZXIuJztcbiAgICAgIHNldFRpbWVvdXQoKCk6IHN0cmluZyA9PiAodGhpcy5tZXNzYWdlID0gJycpLCAzMDAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNoYXJlTGlua3M/LmZvckVhY2goKHNoYXJlTGluaykgPT4ge1xuICAgICAgaWYgKHNoYXJlTGluay5uYW1lICE9IERzZnJTaGFyZU5hbWVDb25zdC5NQUlMKSBzaGFyZUxpbmsuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZyLXNoYXJlXCI+XG4gIDxwIGNsYXNzPVwiZnItc2hhcmVfX3RpdGxlXCI+e3sgaTE4bi50KCdzaGFyZS5oZWFkaW5nJykgfX08L3A+XG4gIDxwICpuZ0lmPVwiIWhhc0Nvb2tpZVBlcm1pc3Npb25zXCIgY2xhc3M9XCJmci1zaGFyZV9fdGV4dFwiPlxuICAgIHt7IGNvb2tpZXNUZXh0WzBdIH19XG4gICAgPGRzZnItbGlua1xuICAgICAgY3VzdG9tQ2xhc3M9XCJmci1zaGFyZV9fdGV4dFwiXG4gICAgICBbbGlua109XCJjb25zZW50TWFuYWdlckxpbmtcIlxuICAgICAgW2xpbmtUYXJnZXRdPVwiY29uc2VudE1hbmFnZXJMaW5rVGFyZ2V0XCJcbiAgICAgIFtyb3V0ZV09XCJjb25zZW50TWFuYWdlclJvdXRlXCJcbiAgICAgIFtsYWJlbF09XCJjb29raWVzVGV4dFsxXVwiXG4gICAgICAobGlua1NlbGVjdCk9XCJvbkNvbnNlbnRMaW5rU2VsZWN0KClcIj48L2RzZnItbGluaz5cbiAgICB7eyBjb29raWVzVGV4dFsyXSB9fVxuICA8L3A+XG4gIDxwICpuZ0lmPVwibWVzc2FnZVwiIGNsYXNzPVwiZnItc2hhcmVfX3RleHRcIj57eyBtZXNzYWdlIH19PC9wPlxuICA8dWwgY2xhc3M9XCJmci1idG5zLWdyb3VwXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxsaT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiZnItc2hhcmVfX2xpbmsgZnItc2hhcmVfX2xpbmstLWNvcHlcIlxuICAgICAgICBbdGl0bGVdPVwiaTE4bi50KCdzaGFyZS5jb3B5LnRpdGxlJylcIlxuICAgICAgICAoY2xpY2spPVwib25Db3B5KCRldmVudClcIj5cbiAgICAgICAge3sgaTE4bi50KCdzaGFyZS5jb3B5LmxhYmVsJykgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==