@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
TypeScript
/**
* 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[];