Recursos adicionais comuns, opcionais e de primeira parte para o FormKit.
Você pode adicionar este pacote usando npm install @formkit/addons
ou yarn add @formkit/addons
.
Adiciona auto-animação a cada entrada automaticamente:
createAutoAnimatePlugin(options?: AutoAnimateOptions, animationTargets?: Record<string, string[]>): FormKitPlugin;
options
opcional — AutoAnimateOptionsanimationTargets
opcional — Um mapa de tipos de entrada e um array de suas seções que devem ser animadas.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({
// configuração opcional
duration: 250,
easing: 'ease-in-out',
delay: 0,
},
{
// objeto opcional de alvos de animação
global: ['outer', 'inner'],
form: ['form'],
repeater: ['items'],
})
]
}))
Cria um novo plugin de textarea de altura automática.
createAutoHeightTextareaPlugin(): FormKitPlugin;
Cria um novo plugin de rótulos flutuantes.
createFloatingLabelsPlugin(FloatingLabelsOptions?: FloatingLabelsOptions): FormKitPlugin;
FloatingLabelsOptions
opcional — As opções de FloatingLabelsOptions para passar para o pluginCria um novo plugin de salvar no armazenamento local.
createLocalStoragePlugin(localStorageOptions?: LocalStorageOptions): FormKitPlugin;
localStorageOptions
opcionalCria um novo plugin de múltiplos passos.
createMultiStepPlugin(options?: MultiStepOptions): FormKitPlugin;
options
opcional — As opções de MultiStepOptions para passar para o pluginA tipagem para a função beforeStepChange.
interface BeforeStepChange {
(data: BeforeStepChangeData): any;
}
interface BeforeStepChangeData<T = unknown> {
currentStep: FormKitFrameworkContext<T>;
delta: number;
nextStep: FormKitFrameworkContext<T>;
}
As opções a serem passadas para createFloatingLabelsPlugin
interface FloatingLabelsOptions {
useAsDefault?: boolean;
}
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>;
}
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>;
}
As opções a serem passadas para createLocalStoragePlugin
interface LocalStorageOptions {
beforeLoad?: (payload: any) => any;
beforeSave?: (payload: any) => any;
control?: string;
debounce?: number;
key?: string | number;
maxAge?: number;
prefix?: string;
}
interface MultiStepHandlers {
incrementStep: (delta: number, currentStep: FormKitFrameworkContext | undefined) => () => void;
setActiveStep: (step: FormKitFrameworkContext) => (e?: Event) => void;
showStepErrors: (step: FormKitFrameworkContext) => boolean | undefined;
triggerStepValidations: (step: FormKitFrameworkContext) => void;
}
Argumentos adicionais que são adicionados ao FormKitNode de uma entrada de vários passos.
interface MultiStepNodeAdditions {
goTo: (target: number | string) => void;
next: () => void;
previous: () => void;
}
As opções a serem passadas para createMultiStepPlugin
interface MultiStepOptions {
allowIncomplete?: boolean;
hideProgressLabels?: boolean;
tabStyle?:'tab' | 'progress';
}
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;
}
interface StepHandlers {
incrementStep: (delta: number) => () => void;
next: () => void;
previous: () => void;
}
Dados de slot exclusivos para a entrada de passo.
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;
}
O tipo de nó que é aumentado com as funções next, previous e goTo.
export type FormKitMultiStepNode = FormKitNode & MultiStepNodeAdditions;
A tipagem para os dados de slot para uma entrada multi-etapas do FormKit.
export type FormKitMultiStepSlotData = FormKitFrameworkContext<Record<string, any>> & StepSlotData;