@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).
92 lines • 11.4 kB
JavaScript
import { Component, Input } from '@angular/core';
import { DsfrSeverityConst, newUniqueId } from '../../shared';
import * as i0 from "@angular/core";
export class BaseFieldsetComponent {
constructor() {
/**
* Permet de rétablir une graisse standard sur la légende.
*/
this.legendRegular = false;
/**
* Permet de masquer la légende en la préservant pour les lecteurs d'écran.
*/
this.legendSrOnly = false;
/**
* Permet de désactiver l'ensemble des champs du fieldset.
*/
this.disabled = false;
/**
* Message d'information lié au composant.
*/
this.message = undefined;
/**
* Représente la sévérité du message.
*/
this.messageSeverity = undefined;
this.DsfrSeverity = DsfrSeverityConst;
}
/**
* Retourne les erreurs sous forme de tableau même si on a juste un string
* @return type compatible avec la propriété error, c.-à-d. undefined si non renseigné
*
* @internal
*/
get errors() {
if (this.message?.length && this.messageSeverity === DsfrSeverityConst.ERROR) {
return Array.isArray(this.message) ? this.message : [this.message];
}
return undefined;
}
// Permet de mieux gérer la valorisation de `message` via les propriétés legacy
// On évite l'écrasement potentiels à l'initialisation et ensuite c'est le dernier qui parle qui prend la main
// Ce code pourra être simplement supprimé lors de la purge des propriétés dépréciées en V2
ngOnChanges({ error, valid }) {
if (error && !(error.firstChange && error.currentValue === undefined)) {
this.valid = undefined;
this.message = this.error;
this.messageSeverity = DsfrSeverityConst.ERROR;
}
if (valid && !(valid.firstChange && valid.currentValue === undefined)) {
this.error = undefined;
this.message = this.valid;
this.messageSeverity = DsfrSeverityConst.VALID;
}
}
ngOnInit() {
this.nativeElementId = this.fieldsetId ?? this.id ?? newUniqueId();
this.legendId = this.nativeElementId + '-legend';
this.messagesId = this.nativeElementId + '-messages';
}
isLegendRegular() {
return this.legendRegular;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFieldsetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BaseFieldsetComponent, selector: "ng-component", inputs: { id: "id", fieldsetId: "fieldsetId", legend: "legend", legendRegular: "legendRegular", legendSrOnly: "legendSrOnly", hint: "hint", disabled: "disabled", message: "message", messageSeverity: "messageSeverity", error: "error", valid: "valid" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFieldsetComponent, decorators: [{
type: Component,
args: [{ template: '' }]
}], propDecorators: { id: [{
type: Input
}], fieldsetId: [{
type: Input
}], legend: [{
type: Input
}], legendRegular: [{
type: Input
}], legendSrOnly: [{
type: Input
}], hint: [{
type: Input
}], disabled: [{
type: Input
}], message: [{
type: Input
}], messageSeverity: [{
type: Input
}], error: [{
type: Input
}], valid: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZHNldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHNmci1jb21wb25lbnRzL3NyYy9saWIvZm9ybXMvZmllbGRzZXQvYmFzZS1maWVsZHNldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUc1RSxNQUFNLE9BQWdCLHFCQUFxQjtJQUQzQztRQW1CRTs7V0FFRztRQUNNLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRS9COztXQUVHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFPOUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCOztXQUVHO1FBQ00sWUFBTyxHQUFrQyxTQUFTLENBQUM7UUFFNUQ7O1dBRUc7UUFDTSxvQkFBZSxHQUE2QixTQUFTLENBQUM7UUFnQjVDLGlCQUFZLEdBQUcsaUJBQWlCLENBQUM7S0E2Q3JEO0lBdkNDOzs7OztPQUtHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsK0VBQStFO0lBQy9FLDhHQUE4RztJQUM5RywyRkFBMkY7SUFDM0YsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBaUI7UUFDekMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVTLGVBQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBMUdtQixxQkFBcUI7bUdBQXJCLHFCQUFxQixxVUFEcEIsRUFBRTs7NEZBQ0gscUJBQXFCO2tCQUQxQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFPaEIsRUFBRTtzQkFBVixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFPRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERzZnJTZXZlcml0eSwgRHNmclNldmVyaXR5Q29uc3QsIG5ld1VuaXF1ZUlkIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGaWVsZHNldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIEwnaWRlbnRpZmlhbnQgZHUgZmllbGRzZXQgLSBPcHRpb25uZWwgKHNlcmEgZ8OpbsOpcsOpIHNpIG5vbiBmb3VybmkpLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCAoc2luY2UgMS4xNC4wKSB1dGlsaXNlciBmaWVsZHNldElkXG4gICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBMJ2lkZW50aWZpYW50IGR1IGZpZWxkc2V0IC0gT3B0aW9ubmVsIChzZXJhIGfDqW7DqXLDqSBzaSBub24gZm91cm5pKS5cbiAgICovXG4gIEBJbnB1dCgpIGZpZWxkc2V0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogTGEgbMOpZ2VuZGUgZHUgZmllbGRzZXQuIFBldXQgw6p0cmUgaW5kaXF1w6llIHZpYSBjZXQgaW5wdXQgb3UgdmlhIHVuIHNsb3QgW2xlZ2VuZF0uXG4gICAqL1xuICBASW5wdXQoKSBsZWdlbmQ6IHN0cmluZztcblxuICAvKipcbiAgICogUGVybWV0IGRlIHLDqXRhYmxpciB1bmUgZ3JhaXNzZSBzdGFuZGFyZCBzdXIgbGEgbMOpZ2VuZGUuXG4gICAqL1xuICBASW5wdXQoKSBsZWdlbmRSZWd1bGFyID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBlcm1ldCBkZSBtYXNxdWVyIGxhIGzDqWdlbmRlIGVuIGxhIHByw6lzZXJ2YW50IHBvdXIgbGVzIGxlY3RldXJzIGQnw6ljcmFuLlxuICAgKi9cbiAgQElucHV0KCkgbGVnZW5kU3JPbmx5ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRleHRlIGRlIGRlc2NyaXB0aW9uIGFkZGl0aW9ubmVsLlxuICAgKi9cbiAgQElucHV0KCkgaGludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQZXJtZXQgZGUgZMOpc2FjdGl2ZXIgbCdlbnNlbWJsZSBkZXMgY2hhbXBzIGR1IGZpZWxkc2V0LlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogTWVzc2FnZSBkJ2luZm9ybWF0aW9uIGxpw6kgYXUgY29tcG9zYW50LlxuICAgKi9cbiAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFJlcHLDqXNlbnRlIGxhIHPDqXbDqXJpdMOpIGR1IG1lc3NhZ2UuXG4gICAqL1xuICBASW5wdXQoKSBtZXNzYWdlU2V2ZXJpdHk6IERzZnJTZXZlcml0eSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUG9zaXRpb25uZSB1biBtZXNzYWdlIGQnZXJyZXVyLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCAoc2luY2UgMS4xNCkgdXRpbGlzZXIgbWVzc2FnZSBldCBtZXNzYWdlU2V2ZXJpdHkgw6AgbGEgcGxhY2VcbiAgICovXG4gIEBJbnB1dCgpIGVycm9yOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUG9zaXRpb25uZSB1biBtZXNzYWdlIGRlIHZhbGlkYXRpb24uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIChzaW5jZSAxLjE0KSB1dGlsaXNlciBtZXNzYWdlIGV0IG1lc3NhZ2VTZXZlcml0eSDDoCBsYSBwbGFjZVxuICAgKi9cbiAgQElucHV0KCkgdmFsaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRHNmclNldmVyaXR5ID0gRHNmclNldmVyaXR5Q29uc3Q7XG5cbiAgcHJvdGVjdGVkIGxlZ2VuZElkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBtZXNzYWdlc0lkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBuYXRpdmVFbGVtZW50SWQ6IHN0cmluZzsgLy8gVE9ETyA6IMOgIGVubGV2ZXIgZW4gdjJcblxuICAvKipcbiAgICogUmV0b3VybmUgbGVzIGVycmV1cnMgc291cyBmb3JtZSBkZSB0YWJsZWF1IG3Dqm1lIHNpIG9uIGEganVzdGUgdW4gc3RyaW5nXG4gICAqIEByZXR1cm4gdHlwZSBjb21wYXRpYmxlIGF2ZWMgbGEgcHJvcHJpw6l0w6kgZXJyb3IsIGMuLcOgLWQuIHVuZGVmaW5lZCBzaSBub24gcmVuc2VpZ27DqVxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBlcnJvcnMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLm1lc3NhZ2U/Lmxlbmd0aCAmJiB0aGlzLm1lc3NhZ2VTZXZlcml0eSA9PT0gRHNmclNldmVyaXR5Q29uc3QuRVJST1IpIHtcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMubWVzc2FnZSkgPyB0aGlzLm1lc3NhZ2UgOiBbdGhpcy5tZXNzYWdlXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gUGVybWV0IGRlIG1pZXV4IGfDqXJlciBsYSB2YWxvcmlzYXRpb24gZGUgYG1lc3NhZ2VgIHZpYSBsZXMgcHJvcHJpw6l0w6lzIGxlZ2FjeVxuICAvLyBPbiDDqXZpdGUgbCfDqWNyYXNlbWVudCBwb3RlbnRpZWxzIMOgIGwnaW5pdGlhbGlzYXRpb24gZXQgZW5zdWl0ZSBjJ2VzdCBsZSBkZXJuaWVyIHF1aSBwYXJsZSBxdWkgcHJlbmQgbGEgbWFpblxuICAvLyBDZSBjb2RlIHBvdXJyYSDDqnRyZSBzaW1wbGVtZW50IHN1cHByaW3DqSBsb3JzIGRlIGxhIHB1cmdlIGRlcyBwcm9wcmnDqXTDqXMgZMOpcHLDqWNpw6llcyBlbiBWMlxuICBuZ09uQ2hhbmdlcyh7IGVycm9yLCB2YWxpZCB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGVycm9yICYmICEoZXJyb3IuZmlyc3RDaGFuZ2UgJiYgZXJyb3IuY3VycmVudFZhbHVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICB0aGlzLnZhbGlkID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5lcnJvcjtcbiAgICAgIHRoaXMubWVzc2FnZVNldmVyaXR5ID0gRHNmclNldmVyaXR5Q29uc3QuRVJST1I7XG4gICAgfVxuICAgIGlmICh2YWxpZCAmJiAhKHZhbGlkLmZpcnN0Q2hhbmdlICYmIHZhbGlkLmN1cnJlbnRWYWx1ZSA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgdGhpcy5lcnJvciA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMubWVzc2FnZSA9IHRoaXMudmFsaWQ7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXZlcml0eSA9IERzZnJTZXZlcml0eUNvbnN0LlZBTElEO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubmF0aXZlRWxlbWVudElkID0gdGhpcy5maWVsZHNldElkID8/IHRoaXMuaWQgPz8gbmV3VW5pcXVlSWQoKTtcbiAgICB0aGlzLmxlZ2VuZElkID0gdGhpcy5uYXRpdmVFbGVtZW50SWQgKyAnLWxlZ2VuZCc7XG4gICAgdGhpcy5tZXNzYWdlc0lkID0gdGhpcy5uYXRpdmVFbGVtZW50SWQgKyAnLW1lc3NhZ2VzJztcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0xlZ2VuZFJlZ3VsYXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGVnZW5kUmVndWxhcjtcbiAgfVxufVxuIl19