UNPKG

@modular-forms/qwik

Version:

The modular and type-safe form library for Qwik

35 lines (34 loc) 1.3 kB
import { noSerialize } from '@builder.io/qwik'; /** * Returns the current input of the element. * * @param element The field element. * @param field The store of the field. * @param type The data type to capture. * * @returns The element input. */ export function getElementInput(element, field, type) { const { checked, files, options, value, valueAsDate, valueAsNumber } = element; return (!type || type === 'string' ? value : type === 'string[]' ? options ? [...options] .filter((e) => e.selected && !e.disabled) .map((e) => e.value) : checked ? [...(field.value || []), value] : (field.value || []).filter((v) => v !== value) : type === 'number' ? valueAsNumber : type === 'boolean' ? checked : type === 'File' && files ? noSerialize(files[0]) : type === 'File[]' && files ? [...files].map((file) => noSerialize(file)) : type === 'Date' && valueAsDate ? valueAsDate : field.value); }