@formkit/addons

Introduction

Des fonctionnalités supplémentaires communes, optionnelles et de première partie pour FormKit.

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

Fonctions

createAutoAnimatePlugin()

Ajoute auto-animate à chaque entrée automatiquement :

Signature

createAutoAnimatePlugin(options?: AutoAnimateOptions, animationTargets?: Record<string, string[]>): FormKitPlugin;

Paramètres

  • options optionnelAutoAnimateOptions
  • animationTargets optionnel — Une carte des types d'entrée et un tableau de leurs sections qui doivent être animées.

Retourne

FormKitPlugin

Exemples

import { createApp } from 'vue'
import App from 'App.vue'
import { createAutoAnimatePlugin } from '@formkit/addons'
import { plugin, defaultConfig } from '@formkit/vue'

createApp(app).use(plugin, defaultPlugin({
  plugins: [
    createAutoAnimatePlugin({
      // config optionnelle
      duration: 250,
      easing: 'ease-in-out',
      delay: 0,
    },
    {
      // objet cibles d'animation optionnel
      global: ['outer', 'inner'],
      form: ['form'],
      repeater: ['items'],
    })
  ]
}))

createAutoHeightTextareaPlugin()

Crée un nouveau plugin de textarea à hauteur automatique.

Signature

createAutoHeightTextareaPlugin(): FormKitPlugin;

Retourne

Un FormKitPlugin

createFloatingLabelsPlugin()

Crée un nouveau plugin d'étiquettes flottantes.

Signature

createFloatingLabelsPlugin(FloatingLabelsOptions?: FloatingLabelsOptions): FormKitPlugin;

Paramètres

Retourne

Un FormKitPlugin

createLocalStoragePlugin()

Crée un nouveau plugin de sauvegarde en local.

Signature

createLocalStoragePlugin(localStorageOptions?: LocalStorageOptions): FormKitPlugin;

Paramètres

  • localStorageOptions optionnel

Retourne

Un FormKitPlugin

createMultiStepPlugin()

Crée un nouveau plugin multi-étapes.

Signature

createMultiStepPlugin(options?: MultiStepOptions): FormKitPlugin;

Paramètres

Retourne

Un FormKitPlugin

TypeScript

BeforeStepChange

La typographie pour la fonction beforeStepChange.

interface BeforeStepChange {
    (data: BeforeStepChangeData): any;
}

BeforeStepChangeData

interface BeforeStepChangeData<T = unknown> {
    currentStep: FormKitFrameworkContext<T>;
    delta: number;
    nextStep: FormKitFrameworkContext<T>;
}

FloatingLabelsOptions

Les options à passer à createFloatingLabelsPlugin

interface FloatingLabelsOptions {
    useAsDefault?: boolean;
}

FormKitMultiStepSlots

interface FormKitMultiStepSlots<Props extends FormKitInputs<Props>> {
    badge: FormKitSlotData<Props, MultiStepSlotData&{
        step: FormKitFrameworkContext;
        index: number;
    }>;
    default: FormKitSlotData<Props, MultiStepSlotData>;
    multiStepOuter: FormKitSlotData<Props, MultiStepSlotData>;
    steps: FormKitSlotData<Props, MultiStepSlotData>;
    tab: FormKitSlotData<Props, MultiStepSlotData>;
    tabLabel: FormKitSlotData<Props, MultiStepSlotData&{
        step: FormKitFrameworkContext;
        index: number;
    }>;
    tabs: FormKitSlotData<Props, MultiStepSlotData>;
    validStepIcon: FormKitSlotData<Props, MultiStepSlotData&{
        step: FormKitFrameworkContext;
        index: number;
    }>;
    wrapper: FormKitSlotData<Props, MultiStepSlotData>;
}

FormKitStepSlots

interface FormKitStepSlots<Props extends FormKitInputs<Props>> {
    default: FormKitSlotData<Props, StepSlotData>;
    stepActions: FormKitSlotData<Props, StepSlotData>;
    stepInner: FormKitSlotData<Props, StepSlotData>;
    stepNext: FormKitSlotData<Props, StepSlotData>;
    stepPrevious: FormKitSlotData<Props, StepSlotData>;
}

LocalStorageOptions

Les options à passer à createLocalStoragePlugin

interface LocalStorageOptions {
    beforeLoad?: (payload: any) => any;
    beforeSave?: (payload: any) => any;
    control?: string;
    debounce?: number;
    key?: string | number;
    maxAge?: number;
    prefix?: string;
}

MultiStepHandlers

interface MultiStepHandlers {
    incrementStep: (delta: number, currentStep: FormKitFrameworkContext | undefined) => () => void;
    setActiveStep: (step: FormKitFrameworkContext) => (e?: Event) => void;
    showStepErrors: (step: FormKitFrameworkContext) => boolean | undefined;
    triggerStepValidations: (step: FormKitFrameworkContext) => void;
}

MultiStepNodeAdditions

Arguments supplémentaires qui sont ajoutés au FormKitNode d'une entrée à plusieurs étapes.

interface MultiStepNodeAdditions {
    goTo: (target: number | string) => void;
    next: () => void;
    previous: () => void;
}

MultiStepOptions

Les options à passer à createMultiStepPlugin

interface MultiStepOptions {
    allowIncomplete?: boolean;
    hideProgressLabels?: boolean;
    tabStyle?:'tab' | 'progress';
}

MultiStepSlotData

interface MultiStepSlotData {
    activeStep: string;
    allowIncomplete?: boolean;
    beforeStepChange?: BeforeStepChange;
    handlers: FormKitFrameworkContext['handlers']&MultiStepHandlers;
    hideProgressLabels: boolean;
    node: FormKitMultiStepNode;
    steps: Array<FormKitMultiStepSlotData>;
    tabStyle:'tab' | 'progress';
    validStepIcon: string | undefined;
}

StepHandlers

interface StepHandlers {
    incrementStep: (delta: number) => () => void;
    next: () => void;
    previous: () => void;
}

StepSlotData

Données de slot uniques à l'entrée de l'étape.

interface StepSlotData {
    beforeStepChange?: BeforeStepChange;
    blockingCount: number;
    errorCount: number;
    handlers: FormKitFrameworkContext['handlers']&StepHandlers;
    hasBeenVisited: true | undefined;
    isActiveStep: boolean;
    isFirstStep: boolean;
    isLastStep: boolean;
    isValid: boolean;
    makeActive: () => void;
    nextAttrs?: Record<string, any>;
    nextLabel?: string;
    ordered: boolean;
    previousAttrs?: Record<string, any>;
    previousLabel?: string;
    showStepErrors: boolean;
    stepIndex: number;
    stepName: string;
    steps: Array<FormKitMultiStepSlotData>;
    totalErrorCount: number;
    validStepIcon?: string;
}

FormKitMultiStepNode

Le type de nœud qui est augmenté avec les fonctions suivantes et précédentes et goTo.

export type FormKitMultiStepNode = FormKitNode & MultiStepNodeAdditions;

FormKitMultiStepSlotData

La typographie pour les données de slot pour une entrée multi-étapes FormKit.

export type FormKitMultiStepSlotData = FormKitFrameworkContext<Record<string, any>> & StepSlotData;