{"version":3,"file":"js/pageChunk22-24080e43aefef6d1dddb.chunk.js","mappings":"ipCAMA,IAAMA,EAAW,WACXC,EAAQ,QACRC,EAAS,SAgCTC,EAAY,SAACC,EAAOC,GAExB,OADAD,EAAME,MAAQD,EACPD,CACT,EAEMG,EAAiB,SAAUH,EAAOC,GACtC,IAAMG,EAnCU,SAACJ,GACjB,IAAQK,EAAmBL,EAAnBK,SAAUD,EAASJ,EAATI,KAClB,OAAIC,IAAaR,GAASO,IAASR,EAC1BA,EAGLS,IAAaR,GAASQ,IAAaP,EAC9BO,EATS,aAapB,CAwBeC,CAAUN,GACvB,OAAQI,GACN,KAAKP,EACHE,EAAUC,EAAOC,GACjB,MACF,KAAKL,GA3BY,SAACI,EAAOC,GAC3BD,EAAMO,QAAUN,CAElB,CAyBMO,CAAaR,EAAOC,GACpB,MACF,KAAKH,GAzBoB,SAACE,EAAOC,GACnC,IAAQQ,EAAYT,EAAZS,QACRC,MAAMC,UAAUC,IAAIC,KAAKJ,GAAS,SAACK,EAAQC,GACrCD,EAAOZ,QAAUD,IACnBD,EAAMgB,cAAgBD,EAE1B,GAGF,CAiBME,CAAqBjB,EAAOC,GAC5B,MACF,QACEF,EAAUC,EAAOC,GAEvB,EAEMiB,EAAkB,SAAAC,GAAI,OAAIC,SAASC,cAAc,eAADC,OAAgBH,EAAI,MAAM,EA4BhF,UA1BoB,SAAHI,GAIV,IACeC,EADhBC,EAAAF,EAHJG,cAAAA,OAAa,IAAAD,EAAG,GAAEA,EAAAE,EAAAJ,EAClBK,KAAAA,OAAI,IAAAD,EAAG,CAAC,EAACA,EAAAE,EAAAN,EACTO,UAAAA,OAAS,IAAAD,EAAGX,EAAeW,EAEPL,EAkBTI,EALTG,OAAOC,QAAQR,GACZS,QAAO,SAAAC,GAAK,OAAIR,EAAcS,QAAQD,EAAM,KAAO,CAAC,IACpDtB,KAdiB,SAAUsB,GAC5B,IAAAE,EAAAC,EAAoBH,EAAK,GAAlBf,EAAIiB,EAAA,GAAEnC,EAAGmC,EAAA,GACVpC,EAAQ8B,EAAUX,GAEnBnB,IAILG,EAAeH,EAAOC,GACtBD,EAAMsC,UAAUC,IAAI,UACtB,GAQJ,C","sources":["webpack://Emeritus/./app/javascript/chunks/marketing/halfsiesForm/prefillForm.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/*\n https://johnresig.com/blog/nodename-case-sensitivity/\n this is the reason we can return the nodeName without worrying about case.\n authored by the creator of jQuery\n*/\nconst CHECKBOX = 'checkbox';\nconst INPUT = 'INPUT';\nconst SELECT = 'SELECT';\nconst UNSUPPORTED = 'UNSUPPORTED';\n\nconst inputType = (input) => {\n const { nodeName, type } = input;\n if (nodeName === INPUT && type === CHECKBOX) {\n return CHECKBOX;\n }\n\n if (nodeName === INPUT || nodeName === SELECT) {\n return nodeName;\n }\n\n return UNSUPPORTED;\n};\n\nconst fillCheckbox = (input, val) => {\n input.checked = val;\n return input;\n};\n\nconst selectOptionOfSelect = (input, val) => {\n const { options } = input;\n Array.prototype.map.call(options, (option, index) => {\n if (option.value === val) {\n input.selectedIndex = index;\n }\n });\n\n return input;\n};\n\nconst fillInput = (input, val) => {\n input.value = val;\n return input;\n};\n\nconst prefillElement = function (input, val) {\n const type = inputType(input);\n switch (type) {\n case INPUT:\n fillInput(input, val);\n break;\n case CHECKBOX:\n fillCheckbox(input, val);\n break;\n case SELECT:\n selectOptionOfSelect(input, val);\n break;\n default:\n fillInput(input, val);\n }\n};\n\nconst findInputFinder = name => document.querySelector(`input[name=\"${name}\"]`);\n\nconst prefillForm = ({\n allowedFields = [],\n data = {},\n findInput = findInputFinder,\n}) => {\n const fillFields = (formData) => {\n const updateInput = function (entry) {\n const [name, val] = entry;\n const input = findInput(name);\n\n if (!input) {\n return;\n }\n\n prefillElement(input, val);\n input.classList.add('filled');\n };\n\n Object.entries(formData)\n .filter(entry => allowedFields.indexOf(entry[0]) > -1)\n .map(updateInput);\n };\n\n fillFields(data);\n};\n\nexport default prefillForm;\n"],"names":["CHECKBOX","INPUT","SELECT","fillInput","input","val","value","prefillElement","type","nodeName","inputType","checked","fillCheckbox","options","Array","prototype","map","call","option","index","selectedIndex","selectOptionOfSelect","findInputFinder","name","document","querySelector","concat","_ref","formData","_ref$allowedFields","allowedFields","_ref$data","data","_ref$findInput","findInput","Object","entries","filter","entry","indexOf","_entry","_slicedToArray","classList","add"],"sourceRoot":""}