UNPKG

@edugouvfr/ngx-dsfr-ext

Version:

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

284 lines (283 loc) 7.99 kB
/** * Constantes des identifiants d'actions de formatage supportés. */ export declare enum FormatConst { ALIGN = "align", BACKGROUND = "background", BLOCKQUOTE = "blockquote", BOLD = "bold", CLEAN = "clean", CODE_BLOCK = "code-block", COLOR = "color", DIRECTION = "direction", HEADER = "header", IMAGE = "image", INDENT = "indent", ITALIC = "italic", LINK = "link", LIST = "list", SCRIPT = "script", SIZE = "size", STRIKE = "strike", UNDERLINE = "underline" } /** * Type correspondant aux identifiants d'actions de formatage supportés. */ export type Format = `${FormatConst}`; /** * Mapping des clés d'internationalisation des libellés des actions de formatage. * * Selon le contexte, le libellé sera utilisé comme tooltip, libellé de champ ou transcription accessible. */ export declare const FORMAT_I18N_KEYS: Record<Format, string | Record<string, string>>; /** * Mapping des icônes par défaut correspondant aux actions de formatage supportées. * * Note de conception (RPA+KGE) pour l'instant on décide de maintenir les icônes dans une structure à part afin de * verrouiller le modèle. Si demain on souhaite donner à l'utilisateur la possibilité de surcharger les icônes des * actions de formatage alors on pourra réintégrer les icônes au modèle en augmentant l'interface `BaseFormatControl` * d'une propriété `icon` (rétrocompatible car la propriété aura une valeur par défaut dans le modèle par défaut) */ export declare const FORMAT_ICON: Record<Format, string | Record<string, string> | undefined>; /** * Les différents mode supportés par les contrôles de formatage à valeur unique. */ export declare enum ControlMode { /** * Active/désactive le format. */ TOGGLE = "toggle", /** * Le format dépend de la capture d'un paramètre utilisateur. */ PROMPT = "prompt", /** * Action issue d'une des options d'une action multivaluée érigée en action unique autonome. * Ex. je veux un bouton permettant de formater en Titre de niveau 1 (H1) */ CUSTOM = "custom", /** * Permet de représenter l'une des options d'une action multivaluée. */ VALUE = "valued", /** * Dénote une action de formatage multivaluée à afficher sous forme de selecteur. */ SELECT = "select", /** * Dénote une action de formatage multivaluée à afficher sous de groupe de bouton exclusif. */ RADIO = "radio", /** * Mode spécial dénotant le contrôle de réinitialisation. */ CLEAN = "clean" } /** * Les valeurs possibles pour le format 'size'. */ export declare enum SizeValue { SMALL = "small", NORMAL = "normal", LARGE = "large", HUGE = "huge" } /** * Les valeurs possibles pour le format 'header'. */ export declare enum HeaderValue { NORMAL = 0, H1 = 1, H2 = 2, H3 = 3, H4 = 4, H5 = 5, H6 = 6 } /** * Les valeurs possibles pour le format 'align'. */ export declare enum AlignValue { LEFT = "normal", CENTER = "center", RIGHT = "right", JUSTIFY = "justify" } /** * Les valeurs possibles pour le format 'list'. */ export declare enum ListValue { ORDERED = "ordered", BULLET = "bullet", CHECKBOX = "unchecked" } /** * Les valeurs possibles pour le format 'script'. */ export declare enum ScriptValue { /** * Subscript. */ SUBSCRIPT = "sub", /** * Superscript. */ SUPERSCRIPT = "super" } /** * Les valeurs possibles pour le format 'indent'. */ export declare enum IndentValue { /** * Decrease indent. */ DECREASE = "-1", /** * Increase indent. */ INCREASE = "+1" } /** * Les valeurs possibles pour le format 'direction'. */ export declare enum DirectionValue { /** * De gauche à droite. */ NORMAL = "normal", /** * De droite à gauche. */ RTL = "rtl" } /** * Représente une tâche de formatage de base. */ export interface DsfrBaseFormatControl { /** * L'identifiant Quill du format. */ name: Format; /** * Le mode du contrôle de format. */ mode: ControlMode; } /** * Représente une action simple (bouton). */ export interface DsfrSingleFormatControl extends DsfrBaseFormatControl { /** * Optionnel : permet de surcharger l'icône illustrative. * Doit être une classe CSS Remix wrappée DSFR. Ex. 'fr-icon-bold'. */ icon?: string; } /** * Permet de sortir une des options de formatage d'une action multivaluée et d el'ériger en action unique autonome. */ export declare class DsfrCustomFormatControl implements DsfrSingleFormatControl { name: Format; value: string | number | false; /** * Le mode d'une action avec valeur prédéfinie est forcément 'valued'. */ mode: ControlMode; /** * Construit une action de formatage valuée. * * @param name le format de cette action * @param value la valeur spécifique de cette action de formatage */ constructor(name: Format, value: string | number | false); } /** * */ export declare class DsfrToggleFormatControl implements DsfrSingleFormatControl { name: Format; /** * Le mode d'une action avec valeur prédéfinie est forcément 'toggle'. */ mode: ControlMode; constructor(name: Format); } /** * */ export declare class DsfrPromptFormatControl implements DsfrSingleFormatControl { name: Format; /** * Le mode d'une action avec valeur prédéfinie est forcément 'prompt'. */ mode: ControlMode; constructor(name: Format); } /** * Représente une des actions possibles d'une méta-action multi-valuée. */ export declare class DsfrValueFormatControl implements Omit<DsfrSingleFormatControl, 'name'> { value: string | number | false; /** * Le mode d'une action avec valeur prédéfinie est forcément 'valued'. */ mode: ControlMode; /** * Construit une action de formatage valuée. * * @param value la valeur spécifique de cette action de formatage */ constructor(value: string | number | false); } /** * Représente une méta-tâche qui s'applique à travers la sélection d'une valeur concrète au sein d'une liste de valeurs. */ export interface DsfrMultivaluedFormatControl extends DsfrBaseFormatControl { /** * Permet d'indiquer si le contrôle multivalué doit s'afficher au sein d'un groupe dans la toolbar. */ group: boolean; /** * Valeurs possibles pour cette action de formatage. */ values: DsfrValueFormatControl[]; } /** * Représente une action multi-valuée en mode radio. */ export declare class RadioFormatControl implements DsfrMultivaluedFormatControl { name: Format; values: DsfrValueFormatControl[]; group: boolean; mode: ControlMode; /** * Construit un control de type radio. * * @param values les différentes valeurs possibles pour le control de type radio */ constructor(name: Format, values: DsfrValueFormatControl[], group: boolean); } /** * Représente une action multi-valuée en mode select. */ export declare class SelectFormatControl implements DsfrMultivaluedFormatControl { name: Format; values: DsfrValueFormatControl[]; mode: ControlMode; group: boolean; /** * Construit un control de type select. * * @param values les différentes valeurs possibles pour le control de type select. */ constructor(name: Format, values: DsfrValueFormatControl[]); } /** * Type générique encapsulant toutes les types de tâches de formatage. */ export type FormatControl = DsfrSingleFormatControl | DsfrMultivaluedFormatControl; /** * Type décrivant un élément de la barre d'outil qui peut être soit une tâche unitaire soit un regroupement de tâches. */ export type ToolbarControl = FormatControl | FormatControl[];