UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 3.35 kB
{"version":3,"file":"VForm.mjs","names":["createForm","makeFormProps","forwardRefs","ref","genericComponent","useRender","VForm","name","props","emits","val","submit","e","setup","slots","emit","form","formRef","onReset","preventDefault","reset","onSubmit","_e","ready","validate","then","bind","catch","finally","defaultPrevented","valid","value","default"],"sources":["../../../src/components/VForm/VForm.tsx"],"sourcesContent":["// Composables\nimport { createForm, makeFormProps } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { ref } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { SubmitEventPromise } from '@/composables/form'\n\nexport const VForm = genericComponent()({\n name: 'VForm',\n\n props: {\n ...makeFormProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean | null) => true,\n submit: (e: SubmitEventPromise) => true,\n },\n\n setup (props, { slots, emit }) {\n const form = createForm(props)\n const formRef = ref<HTMLFormElement>()\n\n function onReset (e: Event) {\n e.preventDefault()\n form.reset()\n }\n\n function onSubmit (_e: Event) {\n const e = _e as SubmitEventPromise\n\n const ready = form.validate()\n e.then = ready.then.bind(ready)\n e.catch = ready.catch.bind(ready)\n e.finally = ready.finally.bind(ready)\n\n emit('submit', e)\n\n if (!e.defaultPrevented) {\n ready.then(({ valid }) => {\n if (valid) {\n formRef.value?.submit()\n }\n })\n }\n\n e.preventDefault()\n }\n\n useRender(() => ((\n <form\n ref={ formRef }\n class=\"v-form\"\n novalidate\n onReset={ onReset }\n onSubmit={ onSubmit }\n >\n { slots.default?.(form) }\n </form>\n )))\n\n return forwardRefs(form, formRef)\n },\n})\n\nexport type VForm = InstanceType<typeof VForm>\n"],"mappings":";AAAA;AAAA,SACSA,UAAU,EAAEC,aAAa;AAAA,SACzBC,WAAW,6CAEpB;AACA,SAASC,GAAG,QAAQ,KAAK;AAAA,SAChBC,gBAAgB,EAAEC,SAAS,gCAEpC;AAGA,OAAO,MAAMC,KAAK,GAAGF,gBAAgB,EAAE,CAAC;EACtCG,IAAI,EAAE,OAAO;EAEbC,KAAK,EAAE;IACL,GAAGP,aAAa;EAClB,CAAC;EAEDQ,KAAK,EAAE;IACL,mBAAmB,EAAGC,GAAmB,IAAK,IAAI;IAClDC,MAAM,EAAGC,CAAqB,IAAK;EACrC,CAAC;EAEDC,KAAK,CAAEL,KAAK,QAAmB;IAAA,IAAjB;MAAEM,KAAK;MAAEC;IAAK,CAAC;IAC3B,MAAMC,IAAI,GAAGhB,UAAU,CAACQ,KAAK,CAAC;IAC9B,MAAMS,OAAO,GAAGd,GAAG,EAAmB;IAEtC,SAASe,OAAO,CAAEN,CAAQ,EAAE;MAC1BA,CAAC,CAACO,cAAc,EAAE;MAClBH,IAAI,CAACI,KAAK,EAAE;IACd;IAEA,SAASC,QAAQ,CAAEC,EAAS,EAAE;MAC5B,MAAMV,CAAC,GAAGU,EAAwB;MAElC,MAAMC,KAAK,GAAGP,IAAI,CAACQ,QAAQ,EAAE;MAC7BZ,CAAC,CAACa,IAAI,GAAGF,KAAK,CAACE,IAAI,CAACC,IAAI,CAACH,KAAK,CAAC;MAC/BX,CAAC,CAACe,KAAK,GAAGJ,KAAK,CAACI,KAAK,CAACD,IAAI,CAACH,KAAK,CAAC;MACjCX,CAAC,CAACgB,OAAO,GAAGL,KAAK,CAACK,OAAO,CAACF,IAAI,CAACH,KAAK,CAAC;MAErCR,IAAI,CAAC,QAAQ,EAAEH,CAAC,CAAC;MAEjB,IAAI,CAACA,CAAC,CAACiB,gBAAgB,EAAE;QACvBN,KAAK,CAACE,IAAI,CAAC,SAAe;UAAA,IAAd;YAAEK;UAAM,CAAC;UACnB,IAAIA,KAAK,EAAE;YACTb,OAAO,CAACc,KAAK,EAAEpB,MAAM,EAAE;UACzB;QACF,CAAC,CAAC;MACJ;MAEAC,CAAC,CAACO,cAAc,EAAE;IACpB;IAEAd,SAAS,CAAC;MAAA,OAEAY,OAAO;MAAA,SACP,QAAQ;MAAA;MAAA,WAEJC,OAAO;MAAA,YACNG;IAAQ,IAEjBP,KAAK,CAACkB,OAAO,GAAGhB,IAAI,CAAC,EAEzB,CAAC;IAEH,OAAOd,WAAW,CAACc,IAAI,EAAEC,OAAO,CAAC;EACnC;AACF,CAAC,CAAC"}