{"version":3,"file":"static/js/blocks37.4f699bbc.chunk.js","mappings":"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","sources":["blocks/components/TextForm/hooks/useBackgroundCoverImage.ts","webpack://@danishagro/cms/./src/blocks/components/TextForm/TextForm.module.scss?4bc0","blocks/components/TextForm/TextForm.component.tsx","blocks/components/TextForm/hooks/usePosition.hook.ts","blocks/components/TextForm/components/Form/hooks/useFileUpload.hook.ts","webpack://@danishagro/cms/./src/blocks/components/TextForm/components/Form/Form.module.scss?64bb","blocks/components/TextForm/components/Form/Form.component.tsx","blocks/components/TextForm/components/Form/hooks/useValidation.hook.ts","webpack://@danishagro/cms/./src/blocks/components/TextForm/components/Receipt/Receipt.module.scss?fe05","blocks/components/TextForm/components/Receipt/Receipt.component.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport CoverImage1 from \"@danishagro/cms/src/assets/image/cover1.jpg\";\nimport CoverImage2 from \"@danishagro/cms/src/assets/image/cover2.jpg\";\nimport CoverImage3 from \"@danishagro/cms/src/assets/image/cover3.jpg\";\nimport CoverImage4 from \"@danishagro/cms/src/assets/image/cover4.jpg\";\n\nexport const useBackgroundCoverImage = (image: string, shouldShowImage: boolean) => {\n const backgroundCoverImage = useMemo(() => {\n if (shouldShowImage === true) {\n switch (image) {\n case \"BACKGROUND_COVER_1\":\n return CoverImage1;\n case \"BACKGROUND_COVER_2\":\n return CoverImage2;\n case \"BACKGROUND_COVER_3\":\n return CoverImage3;\n case \"BACKGROUND_COVER_4\":\n return CoverImage4;\n }\n }\n }, [image, shouldShowImage]);\n\n return {\n backgroundCoverImage,\n };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"TextForm_wrapper__RZRt0\",\"innerWrapper\":\"TextForm_innerWrapper__-agm4\",\"textWrapper\":\"TextForm_textWrapper__NYWoE\",\"halfWidth\":\"TextForm_halfWidth__9BX0T\",\"positionFormLeft\":\"TextForm_positionFormLeft__3Yj84\",\"image\":\"TextForm_image__BObKd\",\"coverImage\":\"TextForm_coverImage__+ncWN\",\"formWrapper\":\"TextForm_formWrapper__Fap4w\",\"positionFormRight\":\"TextForm_positionFormRight__0xOSy\",\"tagline\":\"TextForm_tagline__e3csw\",\"text\":\"TextForm_text__DYg9V\"};","import React from \"react\";\nimport { Buttons } from \"src/components/Buttons/Buttons.component\";\nimport { cn } from \"@danishagro/shared/src/helpers/classNames.helper\";\nimport { DA_Container } from \"@danishagro/shared/src/components/atoms/Container/Container.component\";\nimport { DA_Text } from \"@danishagro/shared/src/components/atoms/Text/Text.component\";\nimport {\n DA_Title,\n DA_TitleTag,\n} from \"@danishagro/shared/src/components/atoms/Title/Title.component\";\nimport { ImageViewer } from \"@danishagro/cms/src/components/ImageViewer/ImageViewer.component\";\nimport { useBackgroundColor } from \"@danishagro/cms/src/blocks/hooks/useBackgroundColor/useBackgroundColor.hook\";\nimport { usePadding } from \"@danishagro/cms/src/blocks/hooks/usePadding/usePadding.hook\";\nimport Form from \"./components/Form/Form.component\";\nimport { TextFormProps } from \"./TextForm.interface\";\nimport { usePosition } from \"./hooks/usePosition.hook\";\nimport { useBackgroundCoverImage } from \"./hooks/useBackgroundCoverImage\";\nimport S from \"./TextForm.module.scss\";\n\nexport const TextForm = (props: TextFormProps) => {\n const hasAnyTextContent =\n props.image || props.tagline || props.headline || props.text || props.buttons?.[0]\n ? true\n : false;\n\n const { backgroundColorClass, alternativeButtonTheme, hasBackgroundColor } = useBackgroundColor(\n props.backgroundColor\n );\n const { backgroundCoverImage } = useBackgroundCoverImage(\n props.backgroundCover,\n hasAnyTextContent\n );\n const { positionClass } = usePosition(props.position, S);\n const { paddingClass } = usePadding(props.isCompact, hasBackgroundColor);\n\n return (\n
\n \n {/** Content */}\n\n
\n {/** Background cover image */}\n {backgroundCoverImage ? (\n \n ) : null}\n\n {hasAnyTextContent ? (\n
\n {/** Image */}\n {props.image ? (\n \n ) : null}\n\n {/** Tagline */}\n {props.tagline ? (\n {props.tagline}\n ) : null}\n\n {/** Title */}\n {props.headline ? (\n \n {props.headline}\n \n ) : null}\n\n {/** Text */}\n {props.text ? (\n
\n \n
\n ) : null}\n\n {/** Buttons */}\n {props.buttons ? (\n \n ) : null}\n
\n ) : null}\n\n {/** Form */}\n {props.form?.formData?.allFieldSets ? (\n \n {props.form?.formData?.allFieldSets &&
}\n
\n ) : null}\n
\n \n \n );\n};\n\nexport default TextForm;\n","import { useMemo } from \"react\";\n\nexport const usePosition = (position: string, S: { [key: string]: string }) => {\n const positionClass = useMemo(() => {\n switch (position) {\n case \"POSITION_FORM_LEFT\":\n return S.positionFormLeft;\n default:\n return S.positionFormRight;\n }\n }, [position, S]);\n\n return {\n positionClass,\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { CMS_SITE_ORIGIN } from \"@danishagro/shared/src/constants/urlRoot.constants\";\n\nexport const useFileUpload = () => {\n const checkForFileFields = (body: any) => {\n const fileFields = [] as string[];\n\n for (const key in body) {\n if (body?.[key] instanceof File && body?.[key]?.size > 0) {\n fileFields.push(key);\n }\n }\n\n const hasFile = typeof fileFields?.[0] !== \"undefined\";\n\n return { hasFile, fileFields };\n };\n\n const uploadFile = async (file: File) => {\n try {\n const formData = new FormData();\n formData.append(\"file\", file);\n\n // Make a fetch POST request to send the file to the server\n const request = await fetch(`${CMS_SITE_ORIGIN}/SaveFormFile`, {\n method: \"POST\",\n body: formData,\n });\n\n if (request.ok) {\n const response = await request.text();\n if (response.startsWith(\"http\")) {\n return [true, response];\n }\n\n throw new Error(`Unexpected response ${response}`);\n }\n\n throw new Error(`HTTP error! status: ${request.status}`);\n } catch (error: any) {\n console.log(error);\n }\n };\n\n return {\n checkForFileFields,\n uploadFile,\n };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"Form_form__eB7MA\",\"textWrapper\":\"Form_textWrapper__zZD8p\",\"fieldset\":\"Form_fieldset__ljvQZ\",\"group\":\"Form_group__IIkAv\",\"container\":\"Form_container__6kurZ\",\"size_12\":\"Form_size_12__j2pWh\",\"size_6\":\"Form_size_6__GWewv\",\"size_4\":\"Form_size_4__HVZ2W\",\"size_3\":\"Form_size_3__YX4fW\",\"summaryList\":\"Form_summaryList__OgpBd\",\"summaryItem\":\"Form_summaryItem__VYhG3\",\"spinner\":\"Form_spinner__E9cMZ\",\"invalid\":\"Form_invalid__5HIgY\",\"helperText\":\"Form_helperText__wwMPl\"};","import React, { FormEvent, useEffect, useState, useRef } from \"react\";\nimport { cn } from \"@danishagro/shared/src/helpers/classNames.helper\";\nimport { DA_Button } from \"@danishagro/shared/src/components/atoms/Button/Button.component\";\nimport {\n DA_Title,\n DA_TitleTag,\n} from \"@danishagro/shared/src/components/atoms/Title/Title.component\";\nimport { Receipt } from \"@danishagro/cms/src/blocks/components/TextForm/components/Receipt/Receipt.component\";\nimport { useScreen } from \"@danishagro/shared/src/contexts/screen.context\";\nimport { getAbsoluteUrl } from \"@helpers/getAbsoluteUrl.helper\";\nimport { GET_CMS_SITE_ORIGIN } from \"@danishagro/shared/src/helpers/urlRoot.helper\";\nimport { pushToDataLayer } from \"@danishagro/shared/src/gtm/useTagManger\";\nimport { DA_Spinner } from \"@danishagro/shared/src/components/atoms/Spinner/Spinner.component\";\nimport { DynamicField } from \"./components/DynamicField.component\";\nimport { FormProps } from \"./Form.interface\";\nimport { useValidation } from \"./hooks/useValidation.hook\";\nimport { useFileUpload } from \"./hooks/useFileUpload.hook\";\nimport S from \"./Form.module.scss\";\n\nexport const Form = (props: FormProps) => {\n const { errorMessages, validate, addErrors, getError, onInputChange } = useValidation(\n props.formData\n );\n const { checkForFileFields, uploadFile } = useFileUpload();\n const [showValidationSummary, setValidationSummary] = useState(false);\n const [showReceiptModule, setShowReceiptModule] = useState(false);\n const containerRef = useRef(null);\n const [validationErrorTitle, setValidationErrorTitle] = useState(\"\");\n\n const [viewState, setViewState] = useState(\"INIT\");\n\n const { scrollTo } = useScreen();\n\n const [submitted, setSubmitted] = useState(false);\n\n // Helper function to determine if a field is a checkbox\n function isCheckboxField(key: string): boolean {\n // Implement logic to determine if a key belongs to a checkbox field\n // For example, based on the fieldTypeId or structure of your form fields\n return props.formData.allFieldSets.some((fieldset) =>\n fieldset.containers.some((container) =>\n container.fields.some(\n (field) =>\n field.fieldTypeId === \"fab43f20-a6bf-11de-a28f-9b5755d89593\" &&\n field.alias === key\n )\n )\n );\n }\n\n const onSubmit = async (event: FormEvent) => {\n event?.preventDefault();\n\n const form = new FormData(event?.target as HTMLFormElement);\n\n const body = {} as FormProps;\n const datePattern = /^\\d{2}\\.\\d{2}\\.\\d{4}$/;\n // Temporary storage for checkbox values\n const checkboxValues: { [key: string]: string[] } = {};\n\n form.forEach((value, key) => {\n // Date picker\n if (typeof value === \"string\" && datePattern.test(value)) {\n const [dd, mm, yyyy] = (value as string).split(\".\");\n body[key] = `${yyyy}/${mm}/${dd}`;\n }\n // File picker\n else if (value instanceof File) {\n if (value !== null && (value as File).name !== \"\") {\n body[key] = value;\n } else {\n body[key] = \"\";\n }\n } // Special handling for checkboxes\n else if (isCheckboxField(key)) {\n // Initialize array for checkbox values if not already done\n if (!checkboxValues[key]) {\n checkboxValues[key] = [];\n }\n // Aggregate values for checkbox fields\n checkboxValues[key].push(value);\n }\n // Handling for other inputs\n else {\n body[key] = value;\n }\n });\n\n // Add aggregated checkbox values to the body\n for (const key in checkboxValues) {\n body[key] = checkboxValues[key];\n }\n\n // 1. Validation\n const [isValid] = validate(body);\n\n if (!isValid) {\n return;\n }\n\n setViewState(\"SUBMITTING\");\n\n // 2. Check for file fields\n const { hasFile, fileFields } = checkForFileFields(body);\n\n if (hasFile) {\n // TODO: Show a uploading loading indicator\n // TODO: Show an error and stop the form from submitting\n\n await Promise.all(\n fileFields.map(async (field) => {\n const [didUpload, fileUrl] = await uploadFile(body?.[field]);\n\n if (didUpload && field) {\n body[field] = fileUrl;\n\n // TODO: Show a uploading success indicator\n } else {\n console.log(\"Error uploading file\");\n }\n })\n );\n }\n\n // 3. Submit form\n const url = `${GET_CMS_SITE_ORIGIN(\n \"ABSOLUTE\"\n )}/submitform?url=/umbraco/forms/api/v1/entries/${props.formData.id}`;\n\n const request = await fetch(getAbsoluteUrl(url, \"SPA\"), {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Api-Key\": \"88291c19-c109-p!c0-4227-97d2-3e95b7084b92\",\n },\n body: JSON.stringify({ values: body }),\n });\n\n if (request.ok) {\n const response = await request.json();\n\n if (response?.statusCode === 422) {\n console.log(\"Der skete en fejl\");\n } else {\n setSubmitted(true);\n // GTM Tracking\n // TODO: add form id - pushToDataLayer\n pushToDataLayer({\n event: props?.formData.name || \"form\",\n });\n setShowReceiptModule(true);\n }\n } else if (request.status === 422) {\n const response = await request.json();\n addErrors(response.errors);\n setValidationErrorTitle(response.title);\n }\n\n setViewState(\"INIT\");\n setValidationSummary(true);\n };\n\n useEffect(() => {\n if (submitted) {\n scrollTo(containerRef.current.offsetParent);\n setShowReceiptModule(true);\n\n const timer = setTimeout(() => {\n setSubmitted(false);\n setShowReceiptModule(false);\n }, 15000);\n\n return () => clearTimeout(timer);\n }\n }, [submitted, scrollTo]);\n\n return (\n
\n {/** Form Header */}\n {!showReceiptModule && (props.formTagline || props.formHeadline) ? (\n
\n {/** Form Tagline */}\n {props.formTagline ? {props.formTagline} : null}\n\n {/** Form Headline */}\n {props.formHeadline ? (\n \n {props.formHeadline}\n \n ) : null}\n
\n ) : null}\n\n {/** Form */}\n\n {!showReceiptModule ? (\n \n
\n {/** Validation summary */}\n {showValidationSummary && (\n <>\n {props.formData.showValidationSummary === true ? (\n
    \n {errorMessages && (\n
  • \n

    {validationErrorTitle}

    \n
  • \n )}\n\n {errorMessages?.map((error, key) => {\n return (\n
  • \n {error.alias}\n
  • \n );\n })}\n
\n ) : null}\n \n )}\n\n {/** Groups */}\n\n {props?.formData?.allFieldSets?.map((fieldset, index) => (\n
\n {/** Containers */}\n {fieldset.containers?.map((container, index) => {\n const containerSizeClass = S?.[`size_${container.width}`];\n\n return (\n \n {/** Fields */}\n\n {container?.fields?.map((field, index) => (\n \n ))}\n
\n );\n })}\n
\n ))}\n\n {/** Submit */}\n
\n {viewState === \"SUBMITTING\" && }\n\n \n
\n \n \n ) : null}\n\n {/** Receipt */}\n {showReceiptModule ? : null}\n \n );\n};\n\nexport default Form;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useState } from \"react\";\n\nexport const useValidation = (formData: any) => {\n const [errorMessages, setErrorMessages] = useState();\n\n {\n /** Validation */\n }\n\n const onInputChange = (alias: string) => {\n const result = errorMessages?.filter((x) => x.alias !== alias);\n setErrorMessages(result);\n };\n\n function validate(body: any) {\n const tmpErrorMessages = [];\n\n // Email validation regex\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n formData.allFields.forEach((field) => {\n let hasValue = undefined;\n\n // File upload\n if (\n body?.[field.alias] &&\n field.fieldTypeId === \"08b8057f-06c9-6ca7-3a42-fd1fc2a46eff\"\n ) {\n hasValue = body?.[field.alias]?.size > 0;\n }\n // Checkbox, Input, Radio etc.\n else {\n // Check if the value is a string before calling trim\n hasValue =\n typeof body?.[field.alias] === \"string\"\n ? body[field.alias].trim().length > 0\n : Boolean(body?.[field.alias]);\n }\n\n // Required rule\n if (hasValue === false && field.mandatory) {\n tmpErrorMessages.push({\n alias: field.alias,\n message:\n field.requiredErrorMessage ||\n formData.requiredErrorMessage.replace(\"{0}\", field.alias),\n });\n }\n\n // TODO: check if this is correct\n // Email validation\n if (field.alias === \"eMail\" || field.alias === \"email\") {\n const emailValue = body[field.alias];\n const isEmailInvalid = emailValue && !emailRegex.test(emailValue);\n const shouldValidateEmail =\n field.mandatory || (emailValue && emailValue.trim().length > 0);\n\n if (shouldValidateEmail && isEmailInvalid) {\n tmpErrorMessages.push({\n alias: field.alias,\n message:\n field.requiredErrorMessage ||\n formData.requiredErrorMessage.replace(\"{0}\", field.alias),\n });\n }\n }\n });\n\n setErrorMessages(tmpErrorMessages);\n\n return [tmpErrorMessages.length === 0, tmpErrorMessages];\n }\n\n //add Errors (Backend errors)\n function addErrors(errors?: any) {\n const tmpErrorMessages = [];\n\n if (!errors || typeof errors !== \"object\") {\n // If 'errors' is not an object or is null/undefined, return early.\n return;\n }\n\n for (const alias in errors) {\n if (Object.prototype.hasOwnProperty.call(errors, alias)) {\n const messages = errors[alias];\n\n // Check if 'messages' is an array\n if (Array.isArray(messages)) {\n messages.forEach((message) => {\n if (typeof message === \"string\") {\n tmpErrorMessages.push({\n alias: alias,\n message: message,\n });\n }\n });\n } else if (typeof messages === \"string\") {\n // Handle the case where 'messages' is a single string\n tmpErrorMessages.push({\n alias: alias,\n message: messages,\n });\n }\n // Add more conditions here if there are other possible structures for 'messages'\n }\n }\n\n setErrorMessages(tmpErrorMessages);\n }\n\n function resetError(alias: string) {\n const tmpErrorMessages = errorMessages?.filter((x) => x.alias !== alias);\n setErrorMessages(tmpErrorMessages);\n }\n\n function getError(alias: string) {\n return errorMessages?.find((x) => x.alias === alias);\n }\n\n return {\n errorMessages,\n validate,\n getError,\n addErrors,\n onInputChange,\n resetError,\n };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"receiptWrapper\":\"Receipt_receiptWrapper__thypd\",\"inner\":\"Receipt_inner__J2v+N\",\"icon\":\"Receipt_icon__TJ+5-\"};","import React from \"react\";\nimport { DA_Icon, DA_IconNames } from \"@danishagro/shared/src/components/atoms/Icon/Icon.component\";\nimport { DA_Title } from \"@danishagro/shared/src/components/atoms/Title/Title.component\";\nimport { DA_Text } from \"@danishagro/shared/src/components/atoms/Text/Text.component\";\nimport { ReceiptProps } from \"./Receipt.interface\";\nimport S from \"./Receipt.module.scss\";\n\nexport const Receipt = (props: ReceiptProps) => {\n return (\n
\n
\n \n \n {props.receiptHeadline}\n \n \n
\n
\n );\n};\n"],"names":["TextForm","props","_props$buttons","_props$form","_props$form$formData","_props$form2","_props$form2$formData","hasAnyTextContent","image","tagline","headline","text","buttons","backgroundColorClass","alternativeButtonTheme","hasBackgroundColor","useBackgroundColor","backgroundColor","backgroundCoverImage","backgroundCover","shouldShowImage","useMemo","CoverImage1","CoverImage2","CoverImage3","CoverImage4","useBackgroundCoverImage","positionClass","position","S","positionFormLeft","positionFormRight","usePosition","paddingClass","usePadding","isCompact","_jsx","className","cn","wrapper","children","DA_Container","noVerticalPadding","_jsxs","innerWrapper","ImageViewer","coverImage","src","aspectRatioX","aspectRatioY","textWrapper","halfWidth","url","width","height","DA_Title","h2","tag","DA_TitleTag","H2","noMargin","fullWidth","DA_Text","html","noPadding","Buttons","theme","form","formData","allFieldSets","formWrapper","Form","_props$formData","_props$formData$allFi","errorMessages","validate","addErrors","getError","onInputChange","setErrorMessages","useState","body","tmpErrorMessages","emailRegex","allFields","forEach","field","hasValue","_body$field$alias","alias","fieldTypeId","size","trim","length","Boolean","mandatory","push","message","requiredErrorMessage","replace","emailValue","isEmailInvalid","test","find","x","errors","Object","prototype","hasOwnProperty","call","messages","Array","isArray","result","filter","resetError","useValidation","checkForFileFields","uploadFile","fileFields","key","_body$key","File","hasFile","async","FormData","append","file","request","fetch","CMS_SITE_ORIGIN","method","ok","response","startsWith","Error","status","error","console","log","showValidationSummary","setValidationSummary","showReceiptModule","setShowReceiptModule","containerRef","useRef","validationErrorTitle","setValidationErrorTitle","viewState","setViewState","scrollTo","useScreen","submitted","setSubmitted","useEffect","current","offsetParent","timer","setTimeout","clearTimeout","ref","formTagline","formHeadline","h3","H3","onSubmit","event","preventDefault","target","datePattern","checkboxValues","value","dd","mm","yyyy","split","name","some","fieldset","containers","container","fields","isCheckboxField","isValid","Promise","all","map","didUpload","fileUrl","GET_CMS_SITE_ORIGIN","id","getAbsoluteUrl","headers","JSON","stringify","values","json","statusCode","pushToDataLayer","title","noValidate","disabled","_Fragment","summaryList","summaryItem","index","_fieldset$containers","group","_container$fields","containerSizeClass","DynamicField","DA_Spinner","spinner","DA_Button","submitLabel","submit","Receipt","receipt","DA_Icon","DA_IconNames","Checkmark","h4","receiptHeadline","receiptText"],"sourceRoot":""}