{"version":3,"names":["isObject","item","Array","isArray","mergeDeep","target","sources","length","source","shift","key","Object","assign","transformNumericKeysToArray","keys","forEach","find","targetKey","isNaN","values","value","entryFromParts","parts","reverse","reduce","acc","serializeFormData","data","entries","json","split","map","part","regex","match","exec","PrivacyConfirmationField","html","hideCheckbox","cssClassNames","h","class","innerHTML","required"],"sources":["./src/components/utility/forms/form.utils.tsx"],"sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\n\nexport const isObject = (item) => {\n return (item && typeof item === 'object' && !Array.isArray(item));\n}\n\nexport const mergeDeep = (target, ...sources) => {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} });\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return mergeDeep(target, ...sources);\n}\n\nexport const transformNumericKeysToArray = (target) => {\n\n Object.keys(target).forEach((key) => {\n\n if (isObject(target[key])) {\n if (Object.keys(target[key]).find((targetKey) => isNaN(+targetKey))) {\n target[key] = transformNumericKeysToArray(target[key]);\n } else {\n target[key] = Object.values(target[key]);\n target[key].forEach((value) => transformNumericKeysToArray(value));\n }\n }\n\n })\n\n return target;\n\n}\n\n\nconst entryFromParts = (parts: any[], value: any) => {\n return parts.reverse().reduce((acc, key) => {\n return Object.keys(acc).length === 0 ? {[key]: value} : {[key]: acc};\n }, {})\n}\n\n\nexport const serializeFormData = (data?: FormData) => {\n\n const entries = {} as {[key: string]: any};\n\n data?.forEach((value, key) => {\n entries[key] = value;\n });\n\n const json = Object.entries(entries).reduce((acc, [key, value]) => {\n\n const parts = key.split(/(?=\\[)/g).map((part) => {\n\n const regex = /\\[(.*)\\]/g;\n\n if (part.match(regex)) {\n part = regex.exec(part)[1];\n }\n return part;\n });\n\n return mergeDeep(acc, entryFromParts(parts, value));\n }, {});\n\n return transformNumericKeysToArray(json);\n\n}\n\ninterface PrivacyConfirmation {\n html: string;\n hideCheckbox?: boolean;\n}\n\nexport const PrivacyConfirmationField: FunctionalComponent = ({html, hideCheckbox}) => {\n\n const cssClassNames = {\n 'c7-privacy-confirmation-text': true,\n };\n\n if(hideCheckbox) {\n return
;\n } else {\n return (\n
\n \n
\n )\n }\n\n\n\n}\n"],"mappings":"oCAEO,MAAMA,EAAYC,GACfA,UAAeA,IAAS,WAAaC,MAAMC,QAAQF,G,MAGhDG,EAAY,CAACC,KAAWC,KACnC,IAAKA,EAAQC,OAAQ,OAAOF,EAC5B,MAAMG,EAASF,EAAQG,QAEvB,GAAIT,EAASK,IAAWL,EAASQ,GAAS,CACxC,IAAK,MAAME,KAAOF,EAAQ,CACxB,GAAIR,EAASQ,EAAOE,IAAO,CACzB,IAAKL,EAAOK,GAAMC,OAAOC,OAAOP,EAAQ,CAAEK,CAACA,GAAM,KACjDN,EAAUC,EAAOK,GAAMF,EAAOE,G,KACzB,CACLC,OAAOC,OAAOP,EAAQ,CAAEK,CAACA,GAAMF,EAAOE,I,GAK5C,OAAON,EAAUC,KAAWC,EAAQ,EAG/B,MAAMO,EAA+BR,IAE1CM,OAAOG,KAAKT,GAAQU,SAASL,IAE3B,GAAIV,EAASK,EAAOK,IAAO,CACzB,GAAIC,OAAOG,KAAKT,EAAOK,IAAMM,MAAMC,GAAcC,OAAOD,KAAa,CACnEZ,EAAOK,GAAOG,EAA4BR,EAAOK,G,KAC5C,CACLL,EAAOK,GAAOC,OAAOQ,OAAOd,EAAOK,IACnCL,EAAOK,GAAKK,SAASK,GAAUP,EAA4BO,I,MAMjE,OAAOf,CAAM,EAKf,MAAMgB,EAAiB,CAACC,EAAcF,IAC7BE,EAAMC,UAAUC,QAAO,CAACC,EAAKf,IAC3BC,OAAOG,KAAKW,GAAKlB,SAAW,EAAI,CAACG,CAACA,GAAMU,GAAS,CAACV,CAACA,GAAMe,IAC/D,I,MAIQC,EAAqBC,IAEhC,MAAOC,EAAU,GAEjBD,IAAI,MAAJA,SAAI,SAAJA,EAAMZ,SAAQ,CAACK,EAAOV,KACpBkB,EAAQlB,GAAOU,CAAK,IAGtB,MAAMS,EAAOlB,OAAOiB,QAAQA,GAASJ,QAAO,CAACC,GAAMf,EAAKU,MAEtD,MAAME,EAAQZ,EAAIoB,MAAM,WAAWC,KAAKC,IAEtC,MAAMC,EAAQ,YAEd,GAAID,EAAKE,MAAMD,GAAQ,CACrBD,EAAOC,EAAME,KAAKH,GAAM,E,CAE1B,OAAOA,CAAI,IAGb,OAAO5B,EAAUqB,EAAKJ,EAAeC,EAAOF,GAAO,GAClD,IAEH,OAAOP,EAA4BgB,EAAK,E,MAS7BO,EAAqE,EAAEC,OAAMC,mBAExF,MAAMC,EAAgB,CACpB,+BAAgC,MAGlC,GAAGD,EAAc,CACf,OAAOE,EAAA,OAAKC,MAAOF,EAAeG,UAAWL,G,KACxC,CACL,OACEG,EAAA,OAAKC,MAAOF,GACVC,EAAA,eAAaG,SAAQ,KAACD,UAAWL,I"}