{"version":3,"file":"index-BaWHwxQ2.js","sources":["../../Assets/Scripts/components/autoFieldPopulation/index.ts"],"sourcesContent":["import { getWithExpiry, setWithExpiry } from \"../../utils/localStorage\";\nimport { getFormData } from \"../../helpers/formData\";\n\nconst localStorageKey = \"EngUk.PrepopulatedFields\";\nconst specialFields = [\"FormId\", \"FormName\", \"Theme\", \"RecordId\", \"PreviousClicked\", \"__RequestVerificationToken\", \"ufprt\", \"RedirectToPageId\", \"FormStep\", \"RecordState\", \"download\", \"g-recaptcha-response\"];\nconst localStorageExpiration = 24 * 365;\n\nfunction saveFormDataToLocalStorage(formData: [string, File | string | boolean][]) {\n const formDataObj: { [key: string]: string | File | null | boolean } = {};\n formData.forEach((value) => {\n formDataObj[value[0]] = value[1];\n });\n setWithExpiry(localStorageKey, JSON.stringify(formDataObj), localStorageExpiration);\n}\n\nfunction restoreFormDataFromLocalStorage(form: HTMLFormElement) {\n const savedData = getWithExpiry(localStorageKey);\n if (!savedData) {\n return;\n }\n\n const formDataObj = JSON.parse(savedData);\n Object.keys(formDataObj).forEach((key) => {\n const input = form.querySelector(`[data-alias=\"${key}\"]`);\n const value = formDataObj[key];\n if (input && !Array.isArray(value)) {\n input.value = value;\n input.dispatchEvent(new Event(\"change\"));\n }\n if (Array.isArray(value)) {\n value.forEach((valueKey) => {\n const input = form.querySelector(`[value=\"${valueKey}\"]`);\n if (input && input.dataset.fieldId == key) {\n input.value = valueKey;\n input.dispatchEvent(new Event(\"change\"));\n }\n });\n }\n });\n}\n\nfunction isNotSpecialField(key: string, value: string) {\n return value != \"true\"\n && value != \"false\"\n && !specialFields.includes(key);\n}\n\nfunction prepareForm(form: HTMLFormElement) {\n restoreFormDataFromLocalStorage(form);\n form.addEventListener(\"submit\", async () => {\n const dataToStore = [] as [string, string][];\n getFormData(form).filter((value) => {\n return isNotSpecialField(value[0], value[1].toString());\n }).forEach((value) => {\n const alias = document.querySelector(`[id='${value[0]}']`)?.getAttribute(\"data-alias\") ?? value[0];\n dataToStore.push([alias, value[1].toString()]);\n });\n saveFormDataToLocalStorage(dataToStore);\n });\n}\n\nfunction init() {\n const $schoolLookup = document.querySelectorAll(\".js-auto-populate-fields form\");\n $schoolLookup.forEach(($element) => {\n prepareForm($element);\n });\n}\n\nexport default () => {\n init();\n};\n"],"names":["localStorageKey","specialFields","localStorageExpiration","saveFormDataToLocalStorage","formData","formDataObj","value","setWithExpiry","restoreFormDataFromLocalStorage","form","savedData","getWithExpiry","key","input","valueKey","isNotSpecialField","prepareForm","dataToStore","getFormData","alias","_a","init","$element","index"],"mappings":"iGAGA,MAAMA,EAAkB,2BAClBC,EAAgB,CAAC,SAAU,WAAY,QAAS,WAAY,kBAAmB,6BAA8B,QAAS,mBAAoB,WAAY,cAAe,WAAY,sBAAsB,EACvMC,EAAyB,GAAK,IAEpC,SAASC,EAA2BC,EAA+C,CACjF,MAAMC,EAAiE,CAAA,EAC9DD,EAAA,QAASE,GAAU,CAC1BD,EAAYC,EAAM,CAAC,CAAC,EAAIA,EAAM,CAAC,CAAA,CAChC,EACDC,EAAcP,EAAiB,KAAK,UAAUK,CAAW,EAAGH,CAAsB,CACpF,CAEA,SAASM,EAAgCC,EAAuB,CACxD,MAAAC,EAAYC,EAAcX,CAAe,EAC/C,GAAI,CAACU,EACH,OAGI,MAAAL,EAAc,KAAK,MAAMK,CAAS,EACxC,OAAO,KAAKL,CAAW,EAAE,QAASO,GAAQ,CACxC,MAAMC,EAAQJ,EAAK,cAAgC,gBAAgBG,CAAG,IAAI,EACpEN,EAAQD,EAAYO,CAAG,EACzBC,GAAS,CAAC,MAAM,QAAQP,CAAK,IAC/BO,EAAM,MAAQP,EACdO,EAAM,cAAc,IAAI,MAAM,QAAQ,CAAC,GAErC,MAAM,QAAQP,CAAK,GACfA,EAAA,QAASQ,GAAa,CAC1B,MAAMD,EAAQJ,EAAK,cAAgC,WAAWK,CAAQ,IAAI,EACtED,GAASA,EAAM,QAAQ,SAAWD,IACpCC,EAAM,MAAQC,EACdD,EAAM,cAAc,IAAI,MAAM,QAAQ,CAAC,EACzC,CACD,CACH,CACD,CACH,CAEA,SAASE,EAAkBH,EAAaN,EAAe,CACrD,OAAOA,GAAS,QACXA,GAAS,SACT,CAACL,EAAc,SAASW,CAAG,CAClC,CAEA,SAASI,EAAYP,EAAuB,CAC1CD,EAAgCC,CAAI,EAC/BA,EAAA,iBAAiB,SAAU,SAAY,CAC1C,MAAMQ,EAAc,CAAA,EACpBC,EAAYT,CAAI,EAAE,OAAQH,GACjBS,EAAkBT,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAE,UAAU,CACvD,EAAE,QAASA,GAAU,OACpB,MAAMa,IAAQC,EAAA,SAAS,cAA2B,QAAQd,EAAM,CAAC,CAAC,IAAI,IAAxD,YAAAc,EAA2D,aAAa,gBAAiBd,EAAM,CAAC,EAClGW,EAAA,KAAK,CAACE,EAAOb,EAAM,CAAC,EAAE,SAAU,CAAA,CAAC,CAAA,CAC9C,EACDH,EAA2Bc,CAAW,CAAA,CACvC,CACH,CAEA,SAASI,GAAO,CACQ,SAAS,iBAAkC,+BAA+B,EAClF,QAASC,GAAa,CAClCN,EAAYM,CAAQ,CAAA,CACrB,CACH,CAEA,MAAAC,EAAe,IAAM,CACdF,GACP"}