{"version":3,"file":"createDecorator.mjs","names":["getAllInputs","findInput","noop","createDecorator","form","scrollToFirstError","errors","allInputs","firstInput","inputToScrollTo","parentElement","scrollIntoView","behavior","originalSubmit","submit","state","unsubscribe","subscribe","nextState","submitErrors","afterSubmit","Object","keys","length","result","call","then"],"sources":["../../../../src/utilities/form/final-form-scroll/createDecorator.js"],"sourcesContent":["import getAllInputs from './getAllInputs.js';\nimport findInput from './findInput.js';\n\nconst noop = () => {};\n\n/**\n * The decorator is created based on final-form-focus https://github.com/final-form/final-form-focus\n */\nconst createDecorator = () => (form) => {\n  const scrollToFirstError = (errors) => {\n    const allInputs = getAllInputs();\n    const firstInput = findInput(allInputs, errors);\n    const inputToScrollTo = firstInput?.parentElement;\n    if (inputToScrollTo) {\n      inputToScrollTo.scrollIntoView({ behavior: 'smooth' });\n    }\n  };\n  // Save original submit function\n  const originalSubmit = form.submit;\n  let state = {};\n  const unsubscribe = form.subscribe(\n    (nextState) => {\n      state = nextState;\n    },\n    { errors: true, submitErrors: true }\n  );\n  // What to do after submit\n  const afterSubmit = () => {\n    const { errors, submitErrors } = state;\n    if (errors && Object.keys(errors).length) {\n      scrollToFirstError(errors);\n    } else if (submitErrors && Object.keys(submitErrors).length) {\n      scrollToFirstError(submitErrors);\n    }\n  };\n\n  // Rewrite submit function\n  form.submit = () => {\n    const result = originalSubmit.call(form);\n    if (result && typeof result.then === 'function') {\n      // async\n      result.then(afterSubmit, noop);\n    } else {\n      // sync\n      afterSubmit();\n    }\n    return result;\n  };\n\n  return () => {\n    unsubscribe();\n    form.submit = originalSubmit;\n  };\n};\n\nexport default createDecorator;\n"],"mappings":";;;AAGA,MAAME,aAAa;;;;AAKnB,MAAMC,yBAAyBC,SAAS;CACtC,MAAMC,sBAAsBC,WAAW;EAGrC,MAAMG,kBADaR,UADDD,cAAc,EACQM,OAAO,EACXI;AACpC,MAAID,gBACFA,iBAAgBE,eAAe,EAAEC,UAAU,UAAU,CAAC;;CAI1D,MAAMC,iBAAiBT,KAAKU;CAC5B,IAAIC,QAAQ,EAAE;CACd,MAAMC,cAAcZ,KAAKa,WACtBC,cAAc;AACbH,UAAQG;IAEV;EAAEZ,QAAQ;EAAMa,cAAc;EAChC,CAAC;CAED,MAAMC,oBAAoB;EACxB,MAAM,EAAEd,QAAQa,iBAAiBJ;AACjC,MAAIT,UAAUe,OAAOC,KAAKhB,OAAO,CAACiB,OAChClB,oBAAmBC,OAAO;WACjBa,gBAAgBE,OAAOC,KAAKH,aAAa,CAACI,OACnDlB,oBAAmBc,aAAa;;AAKpCf,MAAKU,eAAe;EAClB,MAAMU,SAASX,eAAeY,KAAKrB,KAAK;AACxC,MAAIoB,UAAU,OAAOA,OAAOE,SAAS,WAEnCF,QAAOE,KAAKN,aAAalB,KAAK;MAG9BkB,cAAa;AAEf,SAAOI;;AAGT,cAAa;AACXR,eAAa;AACbZ,OAAKU,SAASD"}