@formkit/core

Introduction

La bibliothèque officielle du cœur de FormKit. Ce package est responsable de la plupart des fonctionnalités internes de FormKit. Vous pouvez lire la documentation spécifique sur son fonctionnement sur formkit.com.

Vous pouvez ajouter ce package en utilisant npm install @formkit/core ou yarn add @formkit/core.

FormKitNode

L'objet Node de FormKit produit par createNode(). Chaque entrée <FormKit /> a 1 FormKitNode ("noeud central") associé à elle. Toutes les entrées, les formulaires et les groupes sont des instances de noeuds. Lisez-en plus sur les noeuds centraux dans la documentation d'architecture.

add()

Ajoute un enfant à un noeud. Le noeud doit être un groupe ou une liste.

Signature

add: (node: FormKitNode, index?: number) => FormKitNode

Paramètres

  • node — Un FormKitNode.
  • index optionnel — Un index où il sera ajouté.

Retourne

Le FormKitNode ajouté.

address

L'adresse du noeud actuel à partir de la racine de l'arbre.

Signature

address: FormKitAddress

Retourne

Une FormKitAddress.

addProps()

Ajoute des props au noeud donné en les supprimant de node.props.attrs et en les déplaçant vers l'objet node.props de niveau supérieur.

Signature

addProps: (props: string[]) => FormKitNode

Paramètres

  • props — Un tableau de chaînes à ajouter comme clés pour les props.

Retourne

Le FormKitNode.

at()

Obtient un noeud à une autre adresse. Les adresses sont des chemins de syntaxe pointée (ou des tableaux) de noms de noeuds. Par exemple : form.users.0.first_name. Il existe également quelques jetons de traversée "spéciaux" :

  • $root — Sélectionne le noeud racine.
  • $parent — Sélectionne le noeud parent.
  • $self — Sélectionne le noeud actuel.

Signature

at: (address: FormKitAddress | string) => FormKitNode | undefined

Paramètres

Retourne

Le FormKitNode trouvé ou undefined.

children

Un tableau de noeuds enfants (groupes et listes).

Signature

children: Array<FormKitNode>

Retourne

Un tableau de FormKitNode.

clearErrors()

Efface les erreurs du noeud, et éventuellement tous les enfants.

Signature

clearErrors: (clearChildren?: boolean, sourceKey?: string) => FormKitNode

Paramètres

  • clearChildren optionnel — Si les enfants doivent être effacés.
  • sourceKey optionnel — Une clé source à utiliser pour la réinitialisation.

Retourne

Le FormKitNode.

config

Un objet de FormKitConfig qui est partagé dans l'arbre -avec diverses options de configuration qui doivent être appliquées à l'ensemble de l'arbre.

Signature

config: FormKitConfig

Retourne

Un FormKitConfig.

define()

Définit le type de bibliothèque d'entrée actuel, y compris le type de nœud, le schéma et les propriétés.

Signature

define: (definition: FormKitTypeDefinition) => void

Paramètres

destroy()

Supprime le nœud du registre global, de son parent, et émet l'événement 'destroying'.

Signature

destroy: () => void

each()

Effectue le rappel donné sur chacun des enfants du nœud donné.

Signature

each: (callback: FormKitChildCallback) => void

Paramètres

emit()

Émet un événement à partir du nœud afin qu'il puisse être écouté par on.

Signature

emit: (event: string, payload?: any, bubble?: boolean, meta: Record<string, unknown>) => FormKitNode

Paramètres

  • event — Le nom de l'événement à émettre.
  • payload optionnel — Une valeur à passer avec l'événement.
  • bubble optionnel — Si l'événement doit remonter au parent.

Retourne

Le FormKitNode.

extend()

Étend un FormKitNode en ajoutant des propriétés arbitraires accessibles via node.{property}().

Signature

extend: (property: string, trap: FormKitTrap) => FormKitNode

Paramètres

  • property — La propriété à ajouter au nœud de base (node.{property}).
  • trap — Un objet avec une propriété get et set.

Retourne

Le FormKitNode.

find()

Dans un arbre donné, trouve un nœud correspondant à un sélecteur donné. Les sélecteurs peuvent être de simples chaînes de caractères ou une fonction.

Signature

find: (
 selector: string,
 searcher?: keyof FormKitNode | FormKitSearchFunction
) => FormKitNode | undefined

Paramètres

Retourne

Le FormKitNode trouvé ou undefined.

hook

Ensemble de hooks.

Signature

hook: FormKitHooks

Retourne

Les FormKitHooks.

index

L'index d'un nœud par rapport à ses frères et sœurs. Ceci n'est applicable que dans les cas où un nœud est un enfant d'une liste.

Signature

index: number

Retourne

Un number.

input()

La fonction utilisée pour définir la valeur d'un nœud. Toutes les modifications de la valeur d'un nœud doivent utiliser cette fonction car elle garantit que l'état de l'arbre est toujours entièrement suivi.

Signature

input: (value: unknown, async?: boolean) => Promise<unknown>

Paramètres

  • value — N'importe quelle valeur à utiliser pour le nœud.
  • async optionnel — Si l'entrée doit se produire de manière asynchrone.

Retourne

Une Promise<unknown>.

isCreated

Commence à false, passe à true lorsque la création du nœud est terminée.

Signature

isCreated: boolean

Retourne

Un boolean.

isSettled

Booléen reflétant l'état de règlement du nœud et de son sous-arbre.

Signature

isSettled: boolean

Retourne

Un boolean.

ledger

Un registre de comptage pour les compteurs de messages arbitraires.

Signature

ledger: FormKitLedger

Retourne

Un FormKitLedger.

name

Le nom de l'entrée dans l'arbre des nœuds. Lorsqu'un nœud est un enfant d'une liste, cela devient automatiquement son index.

Signature

name: string

Retourne

Une string.

off()

Supprime un écouteur d'événement par son jeton. Les reçus peuvent être partagés entre de nombreux écouteurs d'événements en déclarant explicitement la propriété "reçu" de la fonction d'écoute.

Signature

off: (receipt: string) => FormKitNode

Paramètres

  • receipt — Un reçu généré par la fonction on.

Retourne

Un reçu string.

on()

Ajoute un écouteur d'événement pour un événement donné, et retourne un "reçu" qui est un jeton de chaîne aléatoire. Ce jeton doit être utilisé pour supprimer l'écouteur à l'avenir. Alternativement, vous pouvez attribuer une propriété "reçu" à la fonction d'écoute et ce reçu sera utilisé à la place. Cela permet à plusieurs écouteurs d'être tous désenregistrés avec un seul appel off() s'ils partagent le même reçu.

Signature

on: (eventName: string, listener: FormKitEventListener) => string

Paramètres

  • eventName — Le nom de l'événement à écouter.
  • listener — Un FormKitEventListener à exécuter lorsque l'événement se produit.

Retourne

Une string de reçu.

parent

Le parent d'un nœud.

Signature

parent: FormKitNode | null

Retourne

Si trouvé un FormKitNode ou null.

props

Un objet de props proxied. Ceux-ci sont généralement fournis par l'adaptateur de choix.

Signature

props: Partial<FormKitProps>

Retourne

Une liste optionnelle de FormKitProps.

remove()

Supprime un enfant du nœud.

Signature

remove: (node: FormKitNode) => FormKitNode

Paramètres

Retourne

Le FormKitNode.

reset()

Réinitialise la valeur du nœud à sa valeur d'origine.

Signature

reset: () => FormKitNode

Retourne

Le FormKitNode.

root

Récupère le nœud racine d'un arbre. Ceci est accompli via une traversée d'arbre à la demande, et ne devrait donc pas être utilisé dans des fonctions fréquemment appelées.

Signature

root: FormKitNode

Retourne

Le FormKitNode.

setErrors()

Définit des erreurs sur l'entrée, et éventuellement sur les entrées enfants.

Signature

setErrors: (localErrors: ErrorMessages, childErrors?: ErrorMessages) => void

Paramètres

settled

Une promesse qui se résout lorsqu'un nœud et toute sa sous-arborescence sont réglés. En d'autres termes — toutes les entrées ont terminé la validation de leurs valeurs.

Signature

settled: Promise<unknown>

Retourne

Une Promise<unknown>.

store

Le magasin de nœuds interne.

Signature

store: FormKitStore

Retourne

Un FormKitStore.

submit()

Déclenche un événement de soumission sur le formulaire le plus proche.

Signature

submit: () => void

t()

Une fonction de texte ou de traduction qui expose une chaîne donnée au crochet "texte". Tout texte montré aux utilisateurs devrait être passé par cette fonction avant d'être affiché — surtout pour les auteurs de core et de plugins.

Signature

t: (key: string | FormKitTextFragment) => string

Paramètres

Retourne

La string traduite.

type

Le type de nœud, ne devrait être que 'input', 'list', ou 'group'.

Signature

type: FormKitNodeType

Retourne

Un FormKitNodeType.

use()

Enregistre un nouveau plugin sur le nœud et son sous-arbre.

Signature

use: (
 plugin: FormKitPlugin | FormKitPlugin[] | Set<FormKitPlugin>,
 run?: boolean,
 library?: boolean
) => FormKitNode

Paramètres

  • plugin — Un FormKitPlugin ou un tableau ou un ensemble de FormKitPlugin.
  • run optionnel — Le plugin doit-il être exécuté à la création.
  • library optionnel — La fonction de bibliothèque du plugin doit-elle être exécutée à la création.

Retourne

Le FormKitNode.

value

La valeur de l'entrée. Celle-ci ne devrait jamais être modifiée directement. Toutes les mutations souhaitées devraient être effectuées par input.

Signature

readonly value: unknown

walk()

Effectue une fonction sur chaque nœud de son sous-arbre (mais pas le nœud lui-même). C'est une opération coûteuse, elle devrait donc être effectuée très rarement et seulement lors d'événements de cycle de vie relativement rares comme le démarrage et l'arrêt.

Signature

walk: (callback: FormKitChildCallback, stopOnFalse?: boolean, recurseOnFalse?: boolean) => void

Paramètres

  • callback — Un FormKitChildCallback à exécuter pour chaque enfant.
  • stopOnFalse optionnel — S'il faut s'arrêter lorsque le retour est faux.

Fonctions

bfs()

Effectue une recherche en largeur d'abord sur un sous-arbre de nœud et localise la première instance d'une correspondance.

Signature

bfs(tree: FormKitNode, searchValue: string | number, searchGoal?: keyof FormKitNode | FormKitSearchFunction): FormKitNode | undefined;

Paramètres

  • tree — Un FormKitNode à partir duquel commencer.
  • searchValue — Une valeur à rechercher.
  • searchGoal optionnel — Une valeur d'objectif.

Retours

Un FormKitNode ou undefined.

clearErrors()

Efface les erreurs sur le nœud et éventuellement ses enfants.

Signature

clearErrors(id: string, clearChildren?: boolean): void;

Paramètres

  • id — L'identifiant du nœud pour lequel vous souhaitez effacer les erreurs.
  • clearChildren optionnel — Détermine si les enfants de ce nœud doivent avoir leurs erreurs effacées.

compile()

Compile une chaîne logique comme "a != z || b == c" en une seule fonction. La valeur de retour est un objet avec une méthode "provide" qui itère sur tous les jetons de requête à utiliser comme remplacements.

Signature

compile(expr: string): FormKitCompilerOutput;

Paramètres

  • expr — Une chaîne à compiler.

Retours

Un FormKitCompilerOutput.

Exemples

let name = {
  value: 'jon'
}
const condition = compile("$name == 'bob'").provide((token) => {
 return () => name.value // doit retourner une fonction !
})

condition() // false

createClasses()

Fonction qui produit une représentation d'objet standardisée des classes CSS.

Signature

createClasses(propertyKey: string, node: FormKitNode, sectionClassList?: FormKitClasses | string | Record<string, boolean>): Record<string, boolean>;

Paramètres

  • propertyKey — la clé de la section.
  • node — Un FormKitNode.
  • sectionClassList optionnel — Une string | Record<string, boolean> ou un FormKitClasses.

Retours

Record<string, boolean>

createConfig()

Crée une nouvelle instance d'une option de configuration globale. Cet objet est essentiellement juste un objet FormKitOption, mais il peut être utilisé comme la racine pour le proxy de FormKitConfig et conserver l'émission d'événements.

Signature

createConfig(options?: Partial<FormKitConfig>): FormKitRootConfig;

Paramètres

  • options optionnel — Un objet de propriétés optionnelles de FormKitConfig.

Retours

Un FormKitRootConfig.

createMessage()

Crée un nouvel objet FormKitMessage.

Signature

createMessage(conf: Partial<FormKitMessage>, node?: FormKitNode): FormKitMessageProps;

Paramètres

Retours

Un FormKitMessageProps.

createNode()

Crée une nouvelle instance d'un nœud FormKit. Les nœuds sont l'unité atomique d'un graphe FormKit.

Signature

createNode<V = unknown>(options?: FormKitOptions): FormKitNode<V>;

Paramètres

  • options optionnel — Un objet d'options FormKitOptions pour remplacer les valeurs par défaut.

Retours

Un FormKitNode.

Exemples

import { createNode } from '@formkit/core'

const input = createNode({
  type: 'input', // par défaut à 'input' si non spécifié
  value: 'bonjour monde du nœud',
})

console.log(input.value)
// 'bonjour monde du nœud'

createValue()

Crée la valeur initiale pour un nœud en fonction des options passées et du type de l'entrée.

Signature

createValue(options: FormKitOptions): unknown;

Paramètres

Retours

unknown

deregister()

Désenregistre un nœud du registre.

Signature

deregister(node: FormKitNode): void;

Paramètres

error()

Émet une erreur. Cela devrait généralement entraîner une exception.

Signature

error(code: number, data?: any): never;

Paramètres

  • code — Le code d'erreur entier.
  • data optionnel — Généralement un objet d'informations à inclure.

generateClassList()

Combine plusieurs listes de classes en une seule liste.

Signature

generateClassList(node: FormKitNode, property: string, ...args: Record<string, boolean>[]): string | null;

Paramètres

  • node — Un FormKitNode.
  • property — La clé de propriété à laquelle la liste de classes sera appliquée.
  • args — Un tableau de Record<string, boolean> de liste(s) de classes CSS.

Retours

string | null

getNode()

Obtenez un nœud par un identifiant particulier.

Signature

getNode(id: string): FormKitNode | undefined;

Paramètres

  • id — Obtenez un nœud par un identifiant donné.

Retours

Un FormKitNode ou undefined.

isComponent()

Type étroit qu'un nœud est un nœud DOM.

Signature

isComponent(node: string | Record<PropertyKey, any>): node is FormKitSchemaComponent;

Paramètres

  • node — Un nœud de schéma à vérifier.

Retourne

boolean

isConditional()

Détermine si un nœud est rendu conditionnellement ou non.

Signature

isConditional(node: FormKitSchemaNode): node is FormKitSchemaCondition;
isConditional(node: FormKitSchemaAttributesCondition | FormKitSchemaAttributes): node is FormKitSchemaAttributesCondition;

Paramètres

  • node — Un nœud de schéma à vérifier.

Retourne

boolean

isDOM()

Type étroit qu'un nœud est un nœud DOM.

Signature

isDOM(node: string | Record<PropertyKey, any>): node is FormKitSchemaDOMNode;

Paramètres

  • node — Un nœud de schéma à vérifier

Retourne

boolean

isList()

Un simple garde de type pour déterminer si le contexte évalué est de type liste.

Signature

isList(arg: FormKitContextShape): arg is FormKitListContext;

Paramètres

Retourne

Retourne un boolean.

isNode()

Détermine si un objet donné est un nœud.

Signature

isNode(node: any): node is FormKitNode;

Paramètres

  • node — N'importe quelle valeur.

Retourne

Retourne un boolean.

Exemples

import { isNode, createNode } from '@formkit/core'

const input = createNode({
  type: 'input', // par défaut à 'input' si non spécifié
  value: 'hello node world',
})

const obj = {};

isNode(obj)
// false

isNode(input)
// true

isPlaceholder()

Détermine si un nœud est un nœud de substitution.

Signature

isPlaceholder(node: FormKitNode | FormKitPlaceholderNode): node is FormKitPlaceholderNode;

Paramètres

Retourne

isSugar()

Détermine si le nœud est du sucre syntaxique ou non.

Signature

isSugar(node: FormKitSchemaNode): node is FormKitSchemaFormKit;

Paramètres

  • node — Un nœud de schéma à vérifier.

Retourne

boolean

names()

Crée un dictionnaire basé sur le nom de tous les enfants dans un tableau.

Signature

names(children: FormKitNode[]): {
    [index: string]: FormKitNode;
};

Paramètres

Retourne

Un dictionnaire de FormKitNode nommés.

register()

Enregistre un nœud dans le registre si le nœud est un nœud racine, ou si le nœud a un alias node.props.alias explicite. Si ces deux conditions ne sont pas remplies, alors aucun nœud n'est enregistré (idempotent).

Signature

register(node: FormKitNode): void;

Paramètres

reset()

Réinitialise une entrée à sa valeur "initiale". Si l'entrée est un groupe ou une liste, elle réinitialise également tous les enfants.

Signature

reset(id: string | FormKitNode, resetTo?: unknown): FormKitNode | undefined;

Paramètres

  • id — L'identifiant d'une entrée à réinitialiser.
  • resetTo optionnel — Une valeur pour réinitialiser le nœud.

Retourne

Un FormKitNode ou undefined.

resetCount()

Réinitialise le nombre global d'enregistrements de nœuds, utile pour un nommage de nœud déterministe.

Signature

resetCount(): void;

resetRegistry()

Réinitialise l'ensemble du registre. Désenregistre tous les nœuds et supprime tous les écouteurs.

Signature

resetRegistry(): void;

setErrors()

Définit des erreurs sur un formulaire, un groupe ou une entrée.

Signature

setErrors(id: string, localErrors: ErrorMessages, childErrors?: ErrorMessages): void;

Paramètres

  • id — L'identifiant d'un formulaire.
  • localErrors — Les erreurs à définir sur le formulaire ou les entrées du formulaire au format ErrorMessages.
  • childErrors optionnel — (optionnel) Les erreurs à définir sur le formulaire ou les entrées du formulaire au format ErrorMessages.

submitForm()

Soumet un formulaire FormKit de manière programmatique.

Signature

submitForm(id: string): void;

Paramètres

  • id — L'identifiant du formulaire.

sugar()

Convertit les nœuds de sucre syntaxique en nœuds standard.

Signature

sugar<T extends FormKitSchemaNode>(node: T): Exclude<FormKitSchemaNode, string | FormKitSchemaFormKit>;

Paramètres

  • node — Un nœud à convertir.

Retourne

Un FormKitSchemaNode sans les propriétés de FormKitSchemaFormKit.

warn()

Émet globalement un avertissement.

Signature

warn(code: number, data?: any): void;

Paramètres

  • code — Le code d'avertissement entier.
  • data optionnel — Généralement un objet d'informations à inclure.

watchRegistry()

Une façon de surveiller les changements dans le registre global.

Signature

watchRegistry(id: string, callback: FormKitEventListener): void;

Paramètres

  • id — Un id en syntaxe pointée où le nœud est situé.
  • callback — Un callback au format de FormKitEventListener pour notifier quand le nœud est défini ou supprimé.

TypeScript

FormKitChildCallback

Le type de callback pour node.each().

interface FormKitChildCallback {
    (child: FormKitNode): any;
}

FormKitChildValue

Une description d'une valeur enfant, généralement passée dans un arbre de nœuds.

interface FormKitChildValue {
    from?: number | symbol;
    name: string | number | symbol;
    value: any;
}

FormKitClasses

Définition pour une fonction qui produit des classes CSS.

interface FormKitClasses {
    (node: FormKitNode, sectionKey: string): string | Record<string, boolean>;
}

FormKitCompilerOutput

La sortie du compilateur, une fonction qui ajoute les tokens requis.

interface FormKitCompilerOutput {
    (tokens?: Record<string, any>): boolean | number | string;
    provide: FormKitCompilerProvider;
}

FormKitConfig

Options de configuration générales de type "app", celles-ci sont automatiquement héritées par tous les enfants - elles ne sont pas réactives.

interface FormKitConfig {
    [index: string]: any;
    classes?: Record<string, FormKitClasses | string | Record<string, boolean>>;
    delimiter: string;
    rootClasses: ((sectionKey: string, node: FormKitNode) => Record<string, boolean>) | false;
    rootConfig?: FormKitRootConfig;
}

FormKitContext

L'interface d'un objet de contexte de nœud FormKit. Un nœud FormKit est un proxy de cet objet.

interface FormKitContext {
    _d: number;
    _e: FormKitEventEmitter;
    _resolve: ((value: unknown) => void) | false;
    _tmo: number | false;
    _value: unknown;
    children: Array<FormKitNode | FormKitPlaceholderNode>;
    config: FormKitConfig;
    context?: FormKitFrameworkContext;
    hook: FormKitHooks;
    isCreated: boolean;
    isSettled: boolean;
    ledger: FormKitLedger;
    name: string | symbol;
    parent: FormKitNode | null;
    plugins: Set<FormKitPlugin>;
    props: Partial<FormKitProps>;
    settled: Promise<unknown>;
    store: FormKitStore;
    sync: boolean;
    traps: FormKitTraps;
    type: FormKitNodeType;
    uid: symbol;
    value: unknown;
}

FormKitContextShape

Définit la forme la plus basique d'un objet de contexte pour les gardes de type essayant de raisonner sur la valeur d'un contexte.

interface FormKitContextShape {
    _value: unknown;
    type: FormKitNodeType;
    value: unknown;
}

FormKitCounter

L'objet compteur utilisé pour effectuer le comptage des instances dans un arbre.

interface FormKitCounter {
    condition: FormKitCounterCondition;
    count: number;
    name: string;
    node: FormKitNode;
    promise: Promise<void>;
    resolve: () => void;
}

FormKitCounterCondition

Les compteurs de grand livre nécessitent une fonction de condition qui détermine si un message donné s'applique à lui ou non.

interface FormKitCounterCondition {
    (message: FormKitMessage): boolean;
}

FormKitDispatcher

L'interface FormKitDispatcher est responsable de la création/exécution des "hooks".

interface FormKitDispatcher<T> {
    (dispatchable: FormKitMiddleware<T>): number;
    dispatch: (payload: T) => T;
    remove: (dispatchable: FormKitMiddleware<T>) => void;
    unshift: (dispatchable: FormKitMiddleware<T>) => number;
}

FormKitEvent

La structure interne d'un FormKitEvent.

interface FormKitEvent {
    bubble: boolean;
    meta?: Record<string, unknown>;
    name: string;
    origin: FormKitNode;
    payload: any;
}

FormKitEventEmitter

La définition de FormKitEventEmitter.

interface FormKitEventEmitter {
    (node: FormKitNode, event: FormKitEvent): void;
    flush: () => void;
    off: (receipt: string) => void;
    on: (eventName: string, listener: FormKitEventListener) => string;
    pause: (node?: FormKitNode) => void;
    play: (node?: FormKitNode) => void;
}

FormKitEventListener

Définition des fonctions d'écoute d'événements.

interface FormKitEventListener {
    (event: FormKitEvent): void;
    receipt?: string;
}

FormKitExtendableSchemaRoot

Définit une fonction qui permet de remplacer sélectivement un schéma donné.

interface FormKitExtendableSchemaRoot {
    (extensions: Record<string, Partial<FormKitSchemaNode> | FormKitSchemaCondition>): FormKitSchemaDefinition;
    memoKey?: string;
}

FormKitFrameworkContext

Objet de contexte à être créé par et utilisé par chaque framework UI respectif. Aucune valeur n'est créée ou produite par FormKitCore, mais cette interface doit être suivie par chaque plugin respectif.

interface FormKitFrameworkContext<T = any> {
    __root?: Document | ShadowRoot;
    _value: T;
    [index: string]: unknown;
    attrs: Record<string, any>;
    classes: Record<string, string>;
    defaultMessagePlacement: boolean;
    fns: Record<string, (...args: any[]) => any>;
    handlers:{
        blur: (e?: FocusEvent) => void;
        touch: () => void;
        DOMInput: (e: Event) => void;
    }&Record<string, (...args: any[]) => void>;
    help?: string;
    id: string;
    items: symbol[];
    label?: string;
    messages: Record<string, FormKitMessage>;
    node: FormKitNode;
    options?: Array<Record<string, any>&{
        label: string;
        value: any;
    }>;
    slots: Record<string, CallableFunction>;
    state: FormKitFrameworkContextState;
    type: string;
    ui: Record<string, FormKitMessage>;
    value: T;
}

FormKitFrameworkContextState

L'état à l'intérieur du contexte de framework d'un nœud. Généralement utilisé pour suivre des choses comme les états flous et valides.

interface FormKitFrameworkContextState {
    [index: string]: boolean;
    blurred: boolean;
    complete: boolean;
    dirty: boolean;
    errors: boolean;
    rules: boolean;
    settled: boolean;
    submitted: boolean;
    valid: boolean;
    validationVisible: boolean;
}

FormKitGroupValue

Les entrées FormKit de type 'group' doivent avoir des valeurs clés par défaut.

interface FormKitGroupValue {
    __init?: boolean;
    [index: string]: unknown;
}

FormKitHandlerPayload

Décrit les données passant par les gestionnaires d'erreurs et d'avertissements.

interface FormKitHandlerPayload {
    code: number;
    data: any;
    message?: string;
}

FormKitHooks

Les hooks disponibles pour les middlewares.

interface FormKitHooks {
    classes: FormKitDispatcher<{
        property: string;
        classes: Record<string, boolean>;
    }>;
    commit: FormKitDispatcher<any>;
    error: FormKitDispatcher<string>;
    init: FormKitDispatcher<FormKitNode>;
    input: FormKitDispatcher<any>;
    message: FormKitDispatcher<FormKitMessage>;
    prop: FormKitDispatcher<{
        prop: string | symbol;
        value: any;
    }>;
    schema: FormKitDispatcher<FormKitSchemaNode[] | FormKitSchemaCondition>;
    setErrors: FormKitDispatcher<{
        localErrors: ErrorMessages;
        childErrors?: ErrorMessages;
    }>;
    submit: FormKitDispatcher<Record<string, any>>;
    text: FormKitDispatcher<FormKitTextFragment>;
}

FormKitInputMessages

Un registre de messages d'entrée qui doivent être appliqués aux enfants du nœud auquel ils sont passés - où la clé de chaîne de l'objet est l'adresse du nœud pour appliquer les messages et la valeur est le message lui-même.

interface FormKitInputMessages {
    [address: string]: FormKitMessage[];
}

FormKitLedger

Le grand livre FormKit, un service de comptage de messages à usage général fourni par le noyau FormKit pour compter les messages dans un arbre.

interface FormKitLedger {
    count: (name: string, condition?: FormKitCounterCondition, increment?: number) => Promise<void>;
    init: (node: FormKitNode) => void;
    merge: (child: FormKitNode) => void;
    settled: (name: string) => Promise<void>;
    unmerge: (child: FormKitNode) => void;
    value: (name: string) => number;
}

FormKitLibrary

Une bibliothèque d'entrées, indexée par le nom du type.

interface FormKitLibrary {
    [index: string]: FormKitTypeDefinition;
}

FormKitListContext

La définition la plus simple pour un contexte de type "liste".

interface FormKitListContext {
    _value: FormKitListContextValue;
    type:'list';
    value: FormKitListContextValue;
}

FormKitMessageMeta

Les messages peuvent avoir n'importe quelle métadonnée arbitraire attachée à eux.

interface FormKitMessageMeta {
    [index: string]: any;
    i18nArgs?: any[];
    messageKey?: string;
}

FormKitMessageProps

La structure d'un message FormKitMessage de base. Ces messages sont utilisés pour stocker des informations sur l'état d'un nœud.

interface FormKitMessageProps {
    blocking: boolean;
    key: string;
    meta: FormKitMessageMeta;
    type: string;
    value?: string | number | boolean;
    visible: boolean;
}

FormKitMessageStore

Définit le magasin réel des messages.

interface FormKitMessageStore {
    [index: string]: FormKitMessage;
}

FormKitNodeExtensions

Une interface vide pour ajouter des extensions de nœud FormKit.

interface FormKitNodeExtensions {
}

FormKitPlaceholderNode

Un faux nœud qui est utilisé comme espace réservé dans le tableau de nœuds enfants lors de diverses manipulations de nœuds.

interface FormKitPlaceholderNode<V = unknown> {
    __FKP: true;
    _value: V;
    input: (value: unknown, async?: boolean) => Promise<unknown>;
    isSettled: boolean;
    name: string;
    type: FormKitNodeType;
    uid: symbol;
    use: (...args: any[]) => void;
    value: V;
}

FormKitPlugin

La définition de l'interface de base pour un FormKitPlugin. C'est juste une fonction qui accepte un argument de nœud.

interface FormKitPlugin {
    (node: FormKitNode): false | any | void;
    library?: (node: FormKitNode) => void;
}

FormKitSchemaAttributesCondition

Conditions imbriquées à l'intérieur des déclarations d'attributs.

interface FormKitSchemaAttributesCondition {
    else?: FormKitAttributeValue;
    if: string;
    then: FormKitAttributeValue;
}

FormKitSchemaComposable

Définition pour une fonction qui peut étendre un nœud de schéma donné.

interface FormKitSchemaComposable {
    (extendWith?: Partial<FormKitSchemaNode>, children?: string | FormKitSchemaNode[] | FormKitSchemaCondition, ...args: any[]): FormKitSchemaNode;
}

FormKitSchemaContext

Le contexte qui est passé d'un rendu de schéma à l'autre.

interface FormKitSchemaContext {
    __FK_SCP: Map<symbol, Record<string, any>>;
    [index: string]: any;
}

FormKitSchemaProps

Propriétés disponibles dans tous les nœuds de schéma.

interface FormKitSchemaProps {
    bind?: string;
    children?: string | FormKitSchemaNode[] | FormKitSchemaCondition;
    for?: FormKitListStatement;
    if?: string;
    key?: string;
    meta?: FormKitSchemaMeta;
}

FormKitStoreTraps

Les pièges disponibles sur le magasin FormKit.

interface FormKitStoreTraps {
    apply: (messages: Array<FormKitMessage> | FormKitInputMessages, clear?: MessageClearer) => void;
    filter: (callback: (message: FormKitMessage) => boolean, type?: string) => FormKitStore;
    reduce:<T>(reducer: (accumulator: T, message: FormKitMessage) => T, accumulator: T) => T;
    release: () => void;
    remove: (key: string) => FormKitStore;
    set: (message: FormKitMessageProps) => FormKitStore;
    touch: () => void;
}

FormKitTrap

La définition d'un FormKitTrap. Ceux-ci sont un peu comme des méthodes sur chaque FormKitNode. Ils sont toujours symétriques (get/set) — bien qu'il soit acceptable que l'un ou l'autre lance une exception.

interface FormKitTrap {
    get: TrapGetter;
    set: TrapSetter;
}

KeyedValue

Des données arbitraires qui ont des propriétés. Pourrait être un POJO, pourrait être un tableau.

interface KeyedValue {
    [index: number]: any;
    [index: string]: any;
}

ChildMessageBuffer

Messages enfant qui n'ont pas été immédiatement appliqués en raison de l'absence de l'enfant.

export type ChildMessageBuffer = Map<string, Array<[FormKitMessage[], MessageClearer | undefined]>>;

ErrorMessages

Messages d'erreur.

export type ErrorMessages = string | string[] | Record<string, string | string[]>;

FormKitAddress

Décrit le chemin vers un nœud particulier depuis le haut de l'arbre.

export type FormKitAddress = Array<string | number>;

FormKitAttributeValue

Les types de valeurs possibles des attributs (dans le schéma).

export type FormKitAttributeValue = string | number | boolean | undefined | FormKitSchemaAttributes | FormKitSchemaAttributesCondition;

FormKitCompilerProvider

Une fonction qui accepte un rappel avec un jeton comme seul argument, et doit retourner une fonction qui fournit la vraie valeur du jeton.

export type FormKitCompilerProvider = (callback: (requirements: string[]) => Record<string, () => any>) => FormKitCompilerOutput;

FormKitListContextValue

Les entrées FormKit de type 'list' doivent avoir des valeurs de tableau par défaut.

export type FormKitListContextValue<T = any> = Array<T>;

FormKitListStatement

Une instruction de boucle complète en syntaxe de tuple. Peut être lu comme "pour chaque valeur, clé? dans la liste".

export type FormKitListStatement = [value: any, key: number | string, list: FormKitListValue] | [value: any, list: FormKitListValue];

FormKitListValue

La valeur étant listée. Peut être un tableau, un objet ou un nombre.

export type FormKitListValue = string | Record<string, any> | Array<string | number | Record<string, any>> | number;

FormKitMessage

Un message FormKit est immuable, donc toutes les propriétés doivent être en lecture seule.

export type FormKitMessage = Readonly<FormKitMessageProps>;

FormKitMiddleware

Tous les FormKitMiddleware se conforment au modèle d'acceptation d'une charge utile et d'une fonction next(). Ils peuvent soit passer la charge utile au prochain middleware explicitement (comme argument de next), soit implicitement (pas d'argument pour next).

export type FormKitMiddleware<T = unknown> = (payload: T, next: (payload: T) => T) => T;

FormKitNodeType

Ce sont les types de nœuds qui peuvent être créés. Ceux-ci sont différents du type d'entrées disponibles et décrivent plutôt leur but dans l'arbre.

export type FormKitNodeType = 'input' | 'list' | 'group';

FormKitOptions

Options qui peuvent être utilisées pour instancier un nouveau nœud via createNode().

export type FormKitOptions = Partial<Omit<FormKitContext, 'children' | 'plugins' | 'config' | 'hook'> & {
    config: Partial<FormKitConfig>;
    props: Partial<FormKitProps>;
    children: FormKitNode[] | Set<FormKitNode>;
    index?: number;
    sync: boolean;
    plugins: FormKitPlugin[];
    alias: string;
    schemaAlias: string;
}>;

FormKitProps

Les "props" par instance côté utilisateur, qui sont généralement similaires aux props passées dans les composants sur le front end.

export type FormKitProps = {
    __root?: Document | ShadowRoot;
    delay: number;
    id: string;
    validationLabelStrategy?: (node?: FormKitNode) => string;
    validationRules?: Record<string, (node: FormKitNode) => boolean | Promise<boolean>>;
    validationMessages?: Record<string, ((ctx: {
        name: string;
        args: any[];
        node: FormKitNode;
    }) => string) | string>;
    definition?: FormKitTypeDefinition;
    context?: FormKitFrameworkContext;
    [index: string]: any;
} & FormKitConfig;

FormKitRootConfig

Options de configuration globale.

export type FormKitRootConfig = Partial<FormKitConfig> & {
    _add: (node: FormKitNode) => void;
    _rm: (node: FormKitNode) => void;
};

FormKitSchemaAttributes

Les attributs DOM sont de simples dictionnaires de chaînes.

export type FormKitSchemaAttributes = {
    [index: string]: FormKitAttributeValue;
} | null | FormKitSchemaAttributesCondition;

FormKitSchemaComponent

Propriétés disponibles lors de la définition d'un composant non-FormKit générique.

export type FormKitSchemaComponent = {
    $cmp: string;
    props?: Record<string, any>;
} & FormKitSchemaProps;

FormKitSchemaCondition

Un nœud de schéma qui détermine quel contenu afficher.

export type FormKitSchemaCondition = {
    if: string;
    then: FormKitSchemaNode | FormKitSchemaNode[];
    else?: FormKitSchemaNode | FormKitSchemaNode[];
};

FormKitSchemaDefinition

Un objet de schéma entier ou un sous-arbre à partir de n'importe quel point d'entrée. Peut être un seul nœud, un tableau de nœuds, ou une condition. C'est le type qui est passé au constructeur FormKitSchema.

export type FormKitSchemaDefinition = FormKitSchemaNode | FormKitSchemaNode[] | FormKitSchemaCondition;

FormKitSchemaDOMNode

Propriétés disponibles lors de l'utilisation d'un nœud DOM.

export type FormKitSchemaDOMNode = {
    $el: string | null;
    attrs?: FormKitSchemaAttributes;
} & FormKitSchemaProps;

FormKitSchemaFormKit

Sucre syntaxique pour un nœud FormKitSchemaComponent qui utilise FormKit.

export type FormKitSchemaFormKit = {
    $formkit: string;
} & Record<string, any> & FormKitSchemaProps;

FormKitSchemaMeta

Les attributs Meta ne sont pas utilisés lors de l'analyse du schéma, mais peuvent être utilisés pour créer des outils.

export type FormKitSchemaMeta = {
    [key: string]: string | number | boolean | undefined | null | CallableFunction | FormKitSchemaMeta;
};

FormKitSchemaNode

Propriétés disponibles lors de la définition d'un nœud de schéma.

export type FormKitSchemaNode = FormKitSchemaDOMNode | FormKitSchemaComponent | FormKitSchemaTextNode | FormKitSchemaCondition | FormKitSchemaFormKit;

FormKitSchemaTextNode

Un simple nœud de texte.

export type FormKitSchemaTextNode = string;

FormKitSearchFunction

Les recherches en largeur et en profondeur peuvent utiliser un rappel de cette notation.

export type FormKitSearchFunction = (node: FormKitNode, searchTerm?: string | number) => boolean;

FormKitStore

Le magasin de messages contient tous les messages qui se rapportent à un nœud donné.

export type FormKitStore = FormKitMessageStore & {
    _n: FormKitNode;
    _b: Array<[messages: FormKitMessage[], clear?: MessageClearer]>;
    _m: ChildMessageBuffer;
    _r?: string;
    buffer: boolean;
} & FormKitStoreTraps;

FormKitTextFragment

Les fragments de texte sont de petits morceaux de texte utilisés pour des choses comme les messages de validation d'interface, ou les erreurs qui peuvent être exposées pour modification ou même traduction.

export type FormKitTextFragment = Partial<FormKitMessageProps> & {
    key: string;
    value: string;
    type: string;
};

FormKitTraps

La signature de carte pour les pièges d'un nœud Map.

export type FormKitTraps = Map<string | symbol, FormKitTrap>;

FormKitTypeDefinition

Définition d'un élément de bibliothèque - lors de l'enregistrement d'un nouvel élément de bibliothèque, ce sont les propriétés requises et disponibles.

export type FormKitTypeDefinition = {
    type: FormKitNodeType;
    family?: string;
    forceTypeProp?: string;
    props?: string[];
    schema?: FormKitExtendableSchemaRoot | FormKitSchemaNode[] | FormKitSchemaCondition;
    component?: unknown;
    library?: Record<string, unknown>;
    features?: Array<(node: FormKitNode) => void>;
    schemaMemoKey?: string;
};

MessageClearer

Une chaîne ou une fonction qui permet d'effacer les messages.

export type MessageClearer = string | ((message: FormKitMessage) => boolean);

TrapGetter

Signature pour l'un des pièges getter du nœud. Gardez à l'esprit que comme ce sont des pièges et non des méthodes de classe, leurs types de réponse sont déclarés explicitement dans l'interface FormKitNode.

export type TrapGetter = ((node: FormKitNode, context: FormKitContext, ...args: any[]) => unknown) | false;

TrapSetter

La signature pour un piège setter d'un nœud - ces derniers sont plus rares que les pièges getter, mais peuvent être utiles pour bloquer l'accès à certaines propriétés de contexte ou modifier le comportement d'une affectation (ex. voir setParent).

export type TrapSetter = ((node: FormKitNode, context: FormKitContext, property: string | number | symbol, value: any) => boolean | never) | false;