vuestic-ui
Version:
Vue 3 UI Framework
1 lines • 3.29 kB
Source Map (JSON)
{"version":3,"file":"useForm.mjs","sources":["../../../../../src/composables/useForm/useForm.ts"],"sourcesContent":["import { type Ref, computed, ref } from 'vue'\nimport { type VaForm } from '../../components'\nimport { useTemplateRef } from '../useTemplateRef'\nimport { Form } from './types'\n\n// EXPOSED API: TS support for Form instance\n/**\n * Provides access to the form instance.\n *\n * @param ref - Form instance or template ref\n *\n * @example\n *\n * ```vue\n * <template>\n * <va-form ref=\"myForm\">...</va-form>\n * </template>\n *\n * <script setup>\n * const { isValid, errorMessages, validate, reset, resetValidation, focus } = useForm('myForm')\n * </script>\n * ```\n */\nexport const useForm = <Names extends string = string>(elRef?: string | Ref<typeof VaForm>): Form<Names> & { formRef: Ref<unknown>, } => {\n const form = typeof elRef === 'string'\n ? useTemplateRef(elRef) as any as Ref<typeof VaForm>\n : typeof elRef === 'undefined'\n ? ref()\n : elRef\n\n return {\n formRef: form,\n isValid: computed(() => form.value?.isValid || false),\n immediate: computed(() => form.value?.immediate || false),\n isLoading: computed(() => form.value?.isLoading || false),\n isDirty: computed(() => form.value?.isDirty || false),\n isTouched: computed(() => {\n return form.value?.isTouched || false\n }),\n fields: computed(() => form.value?.fields ?? []),\n fieldsNamed: computed(() => form.value?.fieldsNamed ?? []),\n fieldNames: computed(() => form.value?.fieldNames ?? []),\n formData: computed(() => form.value?.formData ?? {}),\n errorMessages: computed(() => form.value?.errorMessages || []),\n errorMessagesNamed: computed(() => form.value?.errorMessagesNamed || {}),\n validate: () => form.value?.validate(),\n validateAsync: () => form.value?.validateAsync(),\n reset: () => form.value?.reset(),\n resetValidation: () => form.value?.resetValidation(),\n focus: () => form.value?.focus(),\n focusInvalidField: () => form.value?.focusInvalidField(),\n }\n}\n"],"names":[],"mappings":";;AAuBa,MAAA,UAAU,CAAgC,UAAkF;AACjI,QAAA,OAAO,OAAO,UAAU,WAC1B,eAAe,KAAK,IACpB,OAAO,UAAU,cACf,IAAA,IACA;AAEC,SAAA;AAAA,IACL,SAAS;AAAA,IACT,SAAS,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,YAAW;AAAA,KAAK;AAAA,IACpD,WAAW,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,cAAa;AAAA,KAAK;AAAA,IACxD,WAAW,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,cAAa;AAAA,KAAK;AAAA,IACxD,SAAS,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,YAAW;AAAA,KAAK;AAAA,IACpD,WAAW,SAAS,MAAM;;AACjB,eAAA,UAAK,UAAL,mBAAY,cAAa;AAAA,IAAA,CACjC;AAAA,IACD,QAAQ,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,WAAU,CAAA;AAAA,KAAE;AAAA,IAC/C,aAAa,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,gBAAe,CAAA;AAAA,KAAE;AAAA,IACzD,YAAY,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,eAAc,CAAA;AAAA,KAAE;AAAA,IACvD,UAAU,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,aAAY,CAAA;AAAA,KAAE;AAAA,IACnD,eAAe,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,kBAAiB,CAAA;AAAA,KAAE;AAAA,IAC7D,oBAAoB,SAAS,MAAM;;AAAA,yBAAK,UAAL,mBAAY,uBAAsB,CAAA;AAAA,KAAE;AAAA,IACvE,UAAU,MAAM;;AAAA,wBAAK,UAAL,mBAAY;AAAA;AAAA,IAC5B,eAAe,MAAM;;AAAA,wBAAK,UAAL,mBAAY;AAAA;AAAA,IACjC,OAAO,MAAM;;AAAA,wBAAK,UAAL,mBAAY;AAAA;AAAA,IACzB,iBAAiB,MAAM;;AAAA,wBAAK,UAAL,mBAAY;AAAA;AAAA,IACnC,OAAO,MAAM;;AAAA,wBAAK,UAAL,mBAAY;AAAA;AAAA,IACzB,mBAAmB,MAAM;;AAAA,wBAAK,UAAL,mBAAY;AAAA;AAAA,EAAkB;AAE3D;"}