{"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import type { ParsedField } from \"@autoform/core\";\nimport type { FormEvent } from \"react\";\n\nexport function focusFirstInvalidInput(): void {\n  setTimeout(\n    () =>\n      document\n        .querySelector<HTMLElement>(\n          '[aria-invalid=\"true\"]:is(input:not([type=\"hidden\"]),select,textarea,button,[tabindex]):not(:disabled),[aria-invalid=\"true\"] :is(input:not([type=\"hidden\"]),select,textarea,button,[tabindex]):not(:disabled)',\n        )\n        ?.focus(),\n    50,\n  );\n}\n\nexport const preventPropagation =\n  (callback: (event: FormEvent<HTMLFormElement>) => void | Promise<void>) =>\n  (event: FormEvent<HTMLFormElement>) => {\n    event.preventDefault();\n    event.stopPropagation();\n    return callback(event);\n  };\n\nexport function getArrayItemDefaultValue(parsedField: ParsedField): any {\n  const itemField = parsedField.schema?.[0];\n  if (!itemField) return null;\n  if (itemField.default !== undefined) return itemField.default;\n  if (itemField.type === \"object\") return getObjectDefaultValue(itemField);\n  if (itemField.type === \"array\") return [];\n  return null;\n}\n\nfunction getObjectDefaultValue(parsedField: ParsedField): Record<string, any> {\n  const value: Record<string, any> = {};\n\n  for (const child of parsedField.schema ?? []) {\n    if (child.default !== undefined) {\n      value[child.key] = child.default;\n    } else if (child.required && child.type === \"object\") {\n      value[child.key] = getObjectDefaultValue(child);\n    } else if (child.required && child.type === \"array\") {\n      value[child.key] = [];\n    }\n  }\n\n  return value;\n}\n"],"mappings":";AAGA,SAAgB,yBAA+B;CAC7C,iBAEI,SACG,cACC,sNACF,CAAC,EACC,MAAM,GACZ,EACF;AACF;AAEA,MAAa,sBACV,cACA,UAAsC;CACrC,MAAM,eAAe;CACrB,MAAM,gBAAgB;CACtB,OAAO,SAAS,KAAK;AACvB;AAEF,SAAgB,yBAAyB,aAA+B;CACtE,MAAM,YAAY,YAAY,SAAS;CACvC,IAAI,CAAC,WAAW,OAAO;CACvB,IAAI,UAAU,YAAY,KAAA,GAAW,OAAO,UAAU;CACtD,IAAI,UAAU,SAAS,UAAU,OAAO,sBAAsB,SAAS;CACvE,IAAI,UAAU,SAAS,SAAS,OAAO,CAAC;CACxC,OAAO;AACT;AAEA,SAAS,sBAAsB,aAA+C;CAC5E,MAAM,QAA6B,CAAC;CAEpC,KAAK,MAAM,SAAS,YAAY,UAAU,CAAC,GACzC,IAAI,MAAM,YAAY,KAAA,GACpB,MAAM,MAAM,OAAO,MAAM;MACpB,IAAI,MAAM,YAAY,MAAM,SAAS,UAC1C,MAAM,MAAM,OAAO,sBAAsB,KAAK;MACzC,IAAI,MAAM,YAAY,MAAM,SAAS,SAC1C,MAAM,MAAM,OAAO,CAAC;CAIxB,OAAO;AACT"}