{"version":3,"file":"static/js/3982.d357f98c.chunk.js","mappings":"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","sources":["hooks/useFormField.jsx","shared/epi-forms/form-elements/labels/form-field-label.jsx","shared/epi-forms/form-elements/labels/form-field-error.jsx","shared/epi-forms/form-elements/buttons/toggle-info-button.jsx","shared/epi-forms/form-elements/inputs/checkbox-group-input.jsx","shared/epi-forms/form-elements/inputs/file-upload-input.jsx","shared/epi-forms/form-elements/labels/form-status.jsx","shared/epi-forms/form-elements/hidden-fields/hidden-field.jsx","shared/epi-forms/form-elements/hidden-fields/hidden-fields.jsx","shared/epi-forms/form-elements/inputs/number-input.jsx","shared/epi-forms/form-elements/inputs/range-input.jsx","shared/epi-forms/form-elements/inputs/selection-input.jsx","shared/epi-forms/form-elements/inputs/text-area.jsx","shared/epi-forms/form-elements/inputs/text-input.jsx","shared/epi-forms/form-elements/inputs/selection-multi-input.jsx","shared/epi-forms/form-elements/buttons/submit-button.jsx","shared/epi-forms/form-elements/buttons/reset-button.jsx","shared/epi-forms/form-elements/inputs/image-choice-input.jsx","shared/epi-forms/form-elements/inputs/rich-text-input.jsx","shared/epi-forms/form-elements/inputs/radio-group-input.jsx","shared/epi-forms/form-elements/form-step/form-step.jsx","shared/epi-forms/form-elements/form-step/form-step-progress.jsx","shared/epi-forms/dependencies.js","shared/epi-forms/epi-forms-component.jsx"],"sourcesContent":["import { useEffect, useState } from \"react\"\n\nexport default function useFormField(predefinedValue, validateField, globalValue, setGlobalValue, setError) {\n const [isFocused, setIsFocused] = useState(false)\n\n useEffect(() => {\n if (predefinedValue && globalValue === undefined) {\n setGlobalValue(predefinedValue)\n }\n }, [])\n\n useEffect(() => {\n if (predefinedValue) {\n const initialError = validateField(predefinedValue)\n setError(initialError)\n }\n }, [])\n\n const handleFocus = () => {\n setIsFocused(true)\n setError(\"\")\n }\n\n const handleBlur = (e) => {\n setIsFocused(false)\n const value = e.target.value\n validate(value)\n }\n\n const handleBlurFiles = (files) => {\n setIsFocused(false)\n validate(files)\n }\n\n const handleCheckboxBlur = (values) => {\n setIsFocused(false)\n validate(values)\n }\n\n const handleChange = (e) => {\n const newValue = e.target.value\n setGlobalValue(newValue)\n }\n\n const handleFileChange = (files) => {\n setGlobalValue(files)\n setIsFocused(false)\n validate(files)\n }\n\n const validate = (value) => {\n const errorMsg = validateField(value)\n setError(errorMsg)\n return errorMsg\n }\n\n const handleDateChange = (e) => {\n const newValue = e.target.value\n setGlobalValue(newValue)\n setIsFocused(false)\n validate(newValue)\n }\n\n const handleSelectionChange = (value) => {\n setGlobalValue(value)\n setIsFocused(false)\n validate(value)\n }\n\n return {\n value: globalValue,\n isFocused,\n handleFocus,\n handleBlur,\n handleChange,\n handleDateChange,\n handleSelectionChange,\n handleCheckboxBlur,\n handleBlurFiles,\n handleFileChange,\n }\n}\n","import React from \"react\"\n\nexport default function FormInputLabel({ id, label, required = false }) {\n return (\n <label htmlFor={id} className=\"form-label\">\n <span className=\"form-label__text\">\n {label}\n {required && <span aria-hidden=\"true\">*</span>}\n </span>\n </label>\n )\n}\n","import React from \"react\"\n\nexport default function FormFieldError({ name = \"\", error, placeholder }) {\n return (\n <span\n aria-hidden=\"true\"\n className={`form-message ${error || placeholder ? \"form-message__show\" : \"\"}`}\n data-f-linked-name={name}\n data-f-validationerror=\"\"\n id={`${name}_desc`}\n >\n {error || placeholder}\n </span>\n )\n}\n","import { useState, useEffect } from \"react\"\nimport OutsideClickTrigger from \"../../../../booking/components/common/OutsideClickTrigger\"\nimport Svg from \"../../../_svgs/svg\"\n\nconst ToggleInfo = ({ description, id, closeModalLabel, moreInfoLabel }) => {\n const [toggleInfoActive, setToggleInfoActive] = useState(false)\n\n const handleToggleInfo = (e) => {\n if (e) e.preventDefault()\n\n setToggleInfoActive(!toggleInfoActive)\n }\n\n const handleBlur = (e) => {\n if (e) e.preventDefault()\n setToggleInfoActive(false)\n }\n\n const handleCloseAndRefocusInput = (e) => {\n e.preventDefault()\n setToggleInfoActive(false)\n document.getElementById(id).focus()\n }\n\n useEffect(() => {\n if (!toggleInfoActive) return\n\n const handleScroll = () => {\n setToggleInfoActive(false)\n }\n\n window.addEventListener(\"scroll\", handleScroll, { passive: true })\n\n return () => {\n window.removeEventListener(\"scroll\", handleScroll)\n }\n }, [toggleInfoActive])\n\n if (!description) return null\n\n return (\n <OutsideClickTrigger onOutsideClick={(e) => setToggleInfoActive(e)}>\n <div className=\"form-info-toggle-wrapper\">\n <button aria-label={moreInfoLabel} className=\"form-info-toggle\" onClick={(e) => handleToggleInfo(e)} aria-expanded={toggleInfoActive}>\n <Svg iconName=\"Info-Icon\" isDecorative={true} />\n </button>\n {toggleInfoActive && (\n <div className={`form-info-toggle-content ${toggleInfoActive ? \"active\" : \"\"}`}>\n <p>{description}</p>\n <button\n aria-label={closeModalLabel}\n className=\"form-info-close-button\"\n onBlur={(e) => handleBlur(e)}\n onClick={(e) => handleCloseAndRefocusInput(e)}\n >\n <Svg iconName=\"close\" />\n </button>\n </div>\n )}\n </div>\n </OutsideClickTrigger>\n )\n}\n\nexport default ToggleInfo\n","import React, { useRef } from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function CheckboxGroupInput({\n name,\n id,\n options = [],\n label,\n description,\n required,\n validateField,\n globalValue,\n displayOption,\n setGlobalValue,\n error,\n setError,\n isPermissionInput = false,\n permissionText = \"\",\n closeModalLabel,\n moreInfoLabel,\n}) {\n const checkedOptions = options.filter((option) => option.checked)\n const preValue = checkedOptions.length > 0 ? checkedOptions.map((option) => option.value) : undefined\n const { value, handleFocus, isFocused, handleCheckboxBlur } = useFormField(preValue, validateField, globalValue, setGlobalValue, setError)\n\n const wrapperRef = useRef(null)\n\n const handleMouseDown = (e) => {\n // Prevent blur when clicking inside the component\n if (wrapperRef.current && wrapperRef.current.contains(e.target)) {\n e.preventDefault()\n }\n }\n\n const handleCheckboxChange = (e) => {\n let newValue\n if (value == undefined) {\n newValue = [e.target.value]\n } else {\n newValue = e.target.checked ? [...value, e.target.value] : value.filter((val) => val !== e.target.value)\n }\n setGlobalValue(newValue)\n }\n\n return (\n <div\n className={`form-element form-element--choice__multi is-filled Form__Element ${isPermissionInput ? \"permission\" : \"\"} ${displayOption} ${required ? \"is-required\" : \"\"} ${isFocused ? \"has-focus\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n data-f-element-name={name}\n data-f-type=\"choice\"\n title={description}\n aria-label={description}\n >\n {label && (\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} required={required} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n )}\n <div className=\"choice-wrapper\" ref={wrapperRef} onMouseDown={handleMouseDown} id={id}>\n {options.map((option, index) => (\n <div key={index} className=\"form-input choice-item\">\n <label className=\"form-label\">\n <input\n type=\"checkbox\"\n name={name}\n value={option.value}\n defaultChecked={option.checked}\n onChange={handleCheckboxChange}\n onFocus={handleFocus}\n onBlur={() => handleCheckboxBlur(value)}\n className=\"form-input--checkbox\"\n data-f-datainput=\"\"\n aria-required={required}\n required={required}\n />\n {isPermissionInput ? (\n <div className=\"permission-choice\">\n <span className=\"form-label__text\">{option.label}</span>\n {permissionText ? \"\" : <span className=\"form-label__text form-label__text--value\">{option.value}</span>}\n </div>\n ) : (\n <span className=\"form-label__text\">{option.label}</span>\n )}\n </label>\n {permissionText ? (\n <div className=\"permission-text\">\n <span className=\"form-label__text form-label__text--value rich-text\" dangerouslySetInnerHTML={{ __html: permissionText }}></span>\n </div>\n ) : (\n \"\"\n )}\n </div>\n ))}\n </div>\n <FormFieldError name={name} error={error} />\n </div>\n )\n}\n","import React, { useState } from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function FileUploadInput({\n name,\n id,\n label,\n description,\n required,\n fileTypes,\n allowMultiple,\n validateField,\n globalValue,\n displayOption,\n setGlobalValue,\n error,\n setError,\n fileUploadPlaceholder,\n fileUploadHelperText,\n fileUploadTooManyFilesError,\n closeModalLabel,\n moreInfoLabel,\n}) {\n const { handleFocus, isFocused, handleBlurFiles, handleFileChange } = useFormField(\n globalValue,\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n )\n\n const [dragActive, setDragActive] = useState(false)\n\n const handleDragEnter = (e) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(true)\n }\n\n const handleDragOver = (e) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(true)\n }\n\n const handleDragLeave = (e) => {\n e.preventDefault()\n e.stopPropagation()\n if (e.target === e.currentTarget) {\n setDragActive(false)\n }\n }\n\n const handleDrop = (e) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(false)\n\n const files = e.dataTransfer.files\n\n if (files && files.length) {\n if (!allowMultiple && files.length > 1) {\n setError(fileUploadTooManyFilesError || \"Du må kun uploade én fil i dette felt.\")\n return\n }\n\n setError(null)\n handleFileChange(files)\n }\n }\n\n const handleFileRemove = () => {\n setGlobalValue(null)\n handleBlurFiles(null)\n }\n\n return (\n <div\n className={`form-element form-element--file Form__Element ${displayOption} ${isFocused ? \"has-focus\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n data-f-element-name={name}\n data-f-type=\"fileupload\"\n onDragEnter={handleDragEnter}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} required={required} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n\n {!globalValue ? (\n <div className={`file-upload__placeholder ${dragActive ? \"drag-active\" : \"\"}`}>\n <label htmlFor={id} className=\"file-upload__label\">\n <span className=\"file-upload__text\">{fileUploadPlaceholder}</span>\n <span className=\"file-upload__icon\">\n <svg className=\"svg-icon svg-icon--PlusIcon\">\n <use xlinkHref=\"/dist/svg/symbols.svg#svg-PlusIcon\"></use>\n </svg>\n </span>\n </label>\n <input\n className=\"form-input visually-hidden\"\n type=\"file\"\n name={name}\n id={id}\n onChange={(e) => handleFileChange(e.target.files)}\n accept={fileTypes}\n multiple={allowMultiple}\n data-f-datainput=\"\"\n aria-describedby={`${name}_desc`}\n required={required}\n aria-required={required}\n title={description}\n aria-label={description + (fileUploadPlaceholder != null ? \" \" + fileUploadPlaceholder : \"\")}\n onFocus={handleFocus}\n onBlur={(e) => handleBlurFiles(e.target.files)}\n />\n </div>\n ) : (\n <div className=\"file-upload__selected\">\n <span className=\"file-upload__file-icon\">\n <svg className=\"svg-icon svg-icon--paperclip\">\n <use xlinkHref=\"/dist/svg/symbols.svg#svg-paperclip\"></use>\n </svg>\n </span>\n <span className=\"file-upload__file-name\">\n {globalValue &&\n Array.from(globalValue)\n .map((file) => file.name)\n .join(\", \")}\n </span>\n <button\n tabIndex={0}\n type=\"button\"\n className=\"file-upload__delete\"\n onClick={handleFileRemove}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleFileRemove()\n }\n }}\n aria-label=\"Remove uploaded file\"\n onFocus={handleFocus}\n onBlur={() => handleBlurFiles(globalValue)}\n >\n <svg className=\"svg-icon svg-icon--trashcan\">\n <use xlinkHref=\"/dist/svg/symbols.svg#svg-trashcan\"></use>\n </svg>\n </button>\n </div>\n )}\n\n <FormFieldError name={name} error={error} />\n <div className=\"file-upload__help-text\">{fileUploadHelperText}</div>\n </div>\n )\n}\n","import React from \"react\"\n\nexport default function FormStatus({ statusDisplay, message }) {\n return (\n <div className=\"form__section\">\n <div className=\"Form__Status\">\n <p className={`Form__Status__Message ${statusDisplay}`} data-f-form-statusmessage>\n {message}\n </p>\n </div>\n </div>\n )\n}\n","export default function HiddenField({ name, id, predefinedValue, isProfiling = false }) {\n return (\n <input\n name={name}\n id={id}\n type=\"hidden\"\n value={predefinedValue}\n className={`Form__Element FormHidden ${isProfiling ? \"FormHideInSummarized\" : \"\"}`}\n data-f-type=\"hidden\"\n data-f-linked-name={name}\n />\n )\n}\n","import React from \"react\"\nimport HiddenField from \"./hidden-field\"\n\nexport default function HiddenFields({ formGuid, currentPageLink, langauge, formSubmissionId }) {\n return (\n <>\n <HiddenField name=\"__FormGuid\" predefinedValue={formGuid} />\n <HiddenField name=\"__FormHostedPage\" predefinedValue={currentPageLink} />\n <HiddenField name=\"__FormLanguage\" predefinedValue={langauge} />\n <HiddenField name=\"__FormSubmissionId\" predefinedValue={formSubmissionId} />\n </>\n )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function NumberInput({\n name,\n id,\n label,\n placeholder,\n required,\n description,\n predefinedValue = \"\",\n validators = [],\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n error,\n displayOption,\n closeModalLabel,\n moreInfoLabel,\n}) {\n const { value, isFocused, handleFocus, handleBlur, handleChange } = useFormField(\n predefinedValue,\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n )\n\n return (\n <div\n className={`form-element form-element--text form-element--number is-bound Form__Element ${displayOption} ${required ? \"is-required \" : \"\"} \n ${isFocused ? \"has-focus\" : \"\"} ${isFocused || value ? \"is-filled\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n data-f-element-name={name}\n data-f-type=\"textbox\"\n >\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} required={required} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n <input\n name={name}\n id={id}\n type=\"number\"\n className=\"form-input\"\n required={required}\n aria-required={required}\n data-f-datainput=\"\"\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n aria-describedby={`${name}_desc`}\n min={validators.some((v) => v.type === \"EPiServer.Forms.Implementation.Validation.PositiveIntegerValidator\") ? \"0\" : undefined}\n title={description}\n aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n aria-invalid={!!error}\n />\n <FormFieldError name={name} error={error} placeholder={placeholder} />\n </div>\n )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function RangeInput({\n name,\n id,\n min,\n max,\n step,\n label,\n description,\n predefinedValue,\n displayOption,\n globalValue,\n setGlobalValue,\n closeModalLabel,\n moreInfoLabel,\n}) {\n const { value, handleChange } = useFormField(\n predefinedValue,\n () => {},\n globalValue,\n setGlobalValue,\n () => {},\n )\n\n return (\n <div className={`Form__Element FormRange ${displayOption}`} data-f-element-name={name} data-f-type=\"range\">\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n <span>\n <span className=\"FormRange__Min\">{min}</span>\n <input\n type=\"range\"\n name={name}\n id={id}\n min={min}\n max={max}\n step={step}\n value={value || min}\n onChange={(e) => handleChange(e)}\n className=\"FormRange__Input\"\n data-f-datainput=\"\"\n aria-describedby={`${name}_desc`}\n />\n <span className=\"FormRange__Max\">{max}</span>\n </span>\n </div>\n )\n}\n","import React, { useState, useEffect, useRef } from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function SelectionInput({\n name,\n id,\n label,\n options = [],\n placeholder,\n required,\n description,\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n error,\n displayOption,\n closeModalLabel,\n moreInfoLabel,\n}) {\n const [selectionOpen, setSelectionOpen] = useState(false)\n const [focusedIndex, setFocusedIndex] = useState(-1)\n const initialCheckedValues = options.find((option) => option.checked)?.value || \"\"\n const { value, isFocused, handleFocus, handleBlur, handleSelectionChange } = useFormField(\n initialCheckedValues,\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n )\n\n const optionsRef = useRef([])\n\n const handleToggleDropdown = () => {\n setSelectionOpen((prev) => !prev)\n setFocusedIndex(-1)\n }\n\n const handleOptionClick = (optionValue) => {\n handleSelectionChange(optionValue)\n setSelectionOpen(false)\n handleBlur({ target: { value: optionValue } })\n }\n\n const handleKeyDown = (e) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault()\n setFocusedIndex((prevIndex) => (prevIndex + 1) % options.length)\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault()\n setFocusedIndex((prevIndex) => (prevIndex > 0 ? prevIndex - 1 : options.length - 1))\n } else if (e.key === \"Enter\" && focusedIndex >= 0) {\n e.preventDefault()\n handleOptionClick(options[focusedIndex].value)\n } else if (e.key === \"Escape\") {\n e.preventDefault()\n setSelectionOpen(false)\n }\n }\n\n useEffect(() => {\n if (selectionOpen && focusedIndex >= 0 && optionsRef.current[focusedIndex]) {\n optionsRef.current[focusedIndex].focus()\n }\n }, [focusedIndex, selectionOpen])\n\n return (\n <div\n className={`form-element form-element--select__single is-bound Form__Element ${displayOption} ${placeholder || value ? \"is-filled\" : \"\"}\n ${required ? \"is-required\" : \"\"} ${error ? \"is-invalid\" : \"\"} ${isFocused ? \"has-focus\" : \"\"}`}\n data-f-element-name={name}\n data-f-type=\"selection\"\n >\n <div className=\"form-container\">\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} required={required} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n <button\n type=\"button\"\n id={id}\n className=\"form-input\"\n onClick={handleToggleDropdown}\n onFocus={handleFocus}\n onBlur={() => !selectionOpen && handleBlur({ target: { value: value } })}\n onKeyDown={handleKeyDown}\n aria-expanded={selectionOpen}\n aria-required={required}\n aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n aria-invalid={!!error}\n >\n {value || placeholder}\n <svg className={`svg-icon svg-icon--arrowdownrounded ${selectionOpen ? \"open\" : \"\"}`}>\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-arrowdownrounded\">\n \n </use>\n </svg>\n </button>\n {selectionOpen && (\n <div className=\"options open\" role=\"listbox\">\n {options.map((option, index) => (\n <div\n key={index}\n ref={(el) => (optionsRef.current[index] = el)}\n className={`option ${index === focusedIndex ? \"focused\" : \"\"}`}\n tabIndex=\"0\"\n role=\"option\"\n aria-selected={value === option.value}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => handleOptionClick(option.value)}\n onKeyDown={handleKeyDown}\n >\n {option.label}\n </div>\n ))}\n </div>\n )}\n </div>\n <FormFieldError name={name} error={error} placeholder={placeholder} />\n </div>\n )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function TextArea({\n name,\n id,\n label,\n placeholder,\n required,\n description,\n predefinedValue = \"\",\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n error,\n displayOption,\n closeModalLabel,\n moreInfoLabel,\n}) {\n const { value, isFocused, handleFocus, handleBlur, handleChange } = useFormField(\n predefinedValue,\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n )\n return (\n <div\n className={`form-element form-element--textarea is-bound Form__Element ${displayOption} ${required ? \"is-required \" : \"\"} ${isFocused ? \"has-focus\" : \"\"} \n ${isFocused || value ? \"is-filled\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n data-f-element-name={name}\n data-f-type=\"textbox\"\n >\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} required={required} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n <textarea\n name={name}\n id={id}\n className=\"form-input\"\n required={required}\n aria-required={required}\n data-f-datainput=\"\"\n value={value || \"\"}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n title={description}\n aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n aria-invalid={!!error}\n ></textarea>\n <FormFieldError name={name} error={error} placeholder={placeholder} />\n </div>\n )\n}\n","import React, { useEffect, useRef } from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport DatePickerPikaday from \"../../../../styleguide/js/components/datepicker-pikaday\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function TextInput({\n name,\n id,\n label,\n placeholder,\n required,\n description,\n predefinedValue = \"\",\n validators = [],\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n error,\n dateFormat,\n displayOption,\n closeModalLabel,\n moreInfoLabel,\n}) {\n const { value, isFocused, handleFocus, handleBlur, handleChange, handleDateChange } = useFormField(\n predefinedValue,\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n )\n\n const inputRef = useRef(null)\n const datePickerRef = useRef(null)\n\n const inputType = validators.some((v) => v.type === \"EPiServer.Forms.Implementation.Validation.EmailValidator\")\n ? \"email\"\n : validators.some((v) => v.Type === \"EPiServer.Forms.Implementation.Validation.NumericValidator\")\n ? \"number\"\n : validators.some((v) => v.Type === \"EPiServer.Forms.Implementation.Validation.UrlValidator\")\n ? \"url\"\n : \"text\"\n\n const isDateInput = validators.some((v) =>\n [\n \"EPiServer.Forms.Implementation.Validation.DateDDMMYYYYValidator\",\n \"EPiServer.Forms.Implementation.Validation.DateMMDDYYYYValidator\",\n \"EPiServer.Forms.Implementation.Validation.DateYYYYMMDDValidator\",\n ].includes(v.type),\n )\n\n const pattern = validators.find((v) => v.regexPattern)?.regexPattern || null\n\n useEffect(() => {\n if (isDateInput && inputRef.current) {\n datePickerRef.current = new DatePickerPikaday({ el: inputRef.current, format: dateFormat })\n }\n\n return () => {\n if (datePickerRef.current) {\n datePickerRef.current.getPicker().destroy()\n }\n }\n }, [isDateInput])\n\n return (\n <div\n ref={inputRef}\n className={`form-element Form__Element ${displayOption} ${isDateInput ? \"form-element--date form-element--date--pikaday rm-this-class-hide-default\" : \"form-element--text\"} \n ${required ? \"is-required \" : \"\"} ${isFocused ? \"has-focus\" : \"\"} ${isFocused || value ? \"is-filled\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n data-f-element-name={name}\n data-f-type={inputType === \"url\" ? \"url\" : \"textbox\"}\n >\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} required={required} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n <input\n name={name}\n id={id}\n type={inputType}\n className=\"form-input\"\n required={required}\n aria-required={required}\n data-f-datainput=\"\"\n value={value || \"\"}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={isDateInput ? (e) => handleDateChange(e) : handleBlur}\n aria-describedby={`${name}_desc`}\n pattern={pattern || undefined}\n title={description}\n aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n aria-invalid={!!error}\n autoComplete={isDateInput ? \"off\" : \"on\"}\n />\n <FormFieldError name={name} error={error} placeholder={placeholder} />\n </div>\n )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function SelectionMultiInput({\n name,\n id,\n label,\n options = [],\n placeholder,\n required,\n description,\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n error,\n displayOption,\n closeModalLabel,\n moreInfoLabel,\n}) {\n const initialCheckedValues = options.filter((option) => option.checked).map((option) => option.value)\n const { value, isFocused, handleFocus, handleBlur, handleChange } = useFormField(\n initialCheckedValues,\n validateField,\n globalValue,\n setGlobalValue,\n setError,\n )\n\n const handleSelectChange = (e) => {\n const newValue = Array.from(e.target.selectedOptions, (option) => option.value)\n handleChange({ target: { value: newValue } })\n }\n\n return (\n <div\n className={`form-element form-element--select__multi is-bound Form__Element ${displayOption} ${placeholder || value || isFocused ? \"is-filled\" : \"\"} ${\n isFocused ? \"has-focus\" : \"\"\n } ${required ? \"is-required\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n data-f-element-name={name}\n data-f-type=\"selection\"\n >\n <div className=\"form-container\">\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} required={required} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n <select\n name={name}\n id={id}\n className=\"form-input\"\n required={required}\n aria-required={required}\n multiple\n data-f-datainput=\"\"\n aria-describedby={`${name}_desc`}\n value={value}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleSelectChange}\n title={description}\n aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n aria-invalid={!!error}\n >\n {options.map((option, index) => (\n <option key={index} value={option.value} data-f-default-value={option.checked}>\n {option.label}\n </option>\n ))}\n </select>\n </div>\n <FormFieldError name={name} error={error} placeholder={placeholder} />\n </div>\n )\n}\n","import React from \"react\"\n\nexport default function SubmitButton({ id, label = \"Submit\", description, displayOption, formStepsCount, previousStepLabel, goBack }) {\n const submitButton = () => {\n return (\n <button\n tabIndex={0}\n id={id}\n name=\"submit\"\n type=\"submit\"\n value={id}\n className={`button button--submit button--medium button--general no-shadow casc-blue Form__Element ${formStepsCount > 0 ? \"displaymode-half\" : displayOption}`}\n data-f-is-finalized={true}\n data-f-is-progressive-submit={true}\n data-f-type=\"submitbutton\"\n title={description}\n aria-label={description}\n >\n <span className=\"text\">{label}</span>\n </button>\n )\n }\n\n if (formStepsCount > 0) {\n return (\n <>\n <button type=\"button\" className={`button button--medium button--general button--reset Form__Element displaymode-half`} onClick={goBack}>\n {previousStepLabel || \"Tilbage\"}\n </button>\n {submitButton()}\n </>\n )\n }\n\n return submitButton()\n}\n","import React from \"react\"\n\nexport default function ResetButton({ id, name, label = \"Reset\", description, formGuid, displayOption }) {\n return (\n <input\n tabIndex={0}\n id={id}\n name={name}\n type=\"reset\"\n value={label}\n className={`button button--reset button--medium Form__Element ${displayOption}`}\n data-f-element-nondata=\"\"\n data-f-type=\"resetbutton\"\n title={description}\n aria-label={description}\n form={formGuid}\n />\n )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\n\nexport default function ImageChoiceInput({\n name,\n id,\n options = [],\n label,\n description,\n required,\n showSelectionInputControl,\n allowMultiSelect,\n displayOption,\n globalValue,\n setGlobalValue,\n}) {\n const preValue = allowMultiSelect ? [] : \"\"\n const { value, handleChange } = useFormField(\n preValue,\n () => {},\n globalValue,\n setGlobalValue,\n () => {},\n )\n\n const handleImageSelect = (e) => {\n const selectedValue = e.target.value\n if (allowMultiSelect) {\n const newValue = value.includes(selectedValue) ? value.filter((val) => val !== selectedValue) : [...value, selectedValue]\n handleChange({ target: { value: newValue } })\n } else {\n handleChange({ target: { value: selectedValue } })\n }\n }\n\n return (\n <div\n className={`Form__Element FormChoice FormChoice--Image ${displayOption} ${required ? \"ValidationRequired\" : \"\"}`}\n data-f-element-name={name}\n data-f-type=\"choice\"\n title={description}\n aria-label={description}\n >\n <fieldset>\n <legend className=\"Form__Element__Caption\">{label}</legend>\n {options.map((option, index) => (\n <label key={index} htmlFor={`${id}_${index}`} className=\"FormChoice--Image__Item\">\n <input\n type={allowMultiSelect ? \"checkbox\" : \"radio\"}\n id={`${id}_${index}`}\n name={name}\n value={option.text}\n className=\"FormChoice__Input\"\n data-f-datainput=\"\"\n checked={allowMultiSelect ? value.includes(option.text) : value === option.text}\n onChange={handleImageSelect}\n title={description}\n aria-label={description}\n required={required}\n aria-required={required}\n />\n {showSelectionInputControl && <span className=\"FormChoice--Image__Item__Caption\">{option.text}</span>}\n <img src={option.href} title={option.text} alt={option.text} />\n </label>\n ))}\n </fieldset>\n </div>\n )\n}\n","export default function RichTextInput({ label, id, paragraphText, description, displayOption, disablePlaceholdersReplacement = false }) {\n return (\n <div\n className={`form-element form-element--richtext Form__Element ${displayOption}`}\n id={id}\n data-f-element-nondata=\"\"\n title={description}\n aria-label={description}\n >\n <div className=\"rich-text\" dangerouslySetInnerHTML={{ __html: paragraphText }} />\n </div>\n )\n}\n","import React from \"react\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function RadioGroupInput({\n name,\n id,\n options = [],\n label,\n description,\n required,\n validateField,\n displayOption,\n globalValue,\n setGlobalValue,\n error,\n setError,\n closeModalLabel,\n moreInfoLabel,\n}) {\n const preValue = options.find((option) => option.checked)?.value\n const { value, handleSelectionChange } = useFormField(preValue, validateField, globalValue, setGlobalValue, setError)\n\n return (\n <div\n className={`form-element form-element--choice__single is-filled Form__Element ${displayOption} ${required ? \"is-required\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n data-f-element-name={name}\n data-f-type=\"choice\"\n aria-label={description}\n >\n <div className=\"form-labels\">\n <FormInputLabel id={id} label={label} required={required} />\n <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n </div>\n <div className=\"choice-wrapper\" id={id}>\n {options &&\n options.map((option, index) => (\n <div key={index} className=\"form-input choice-item\">\n <label className=\"form-label\">\n <input\n type=\"radio\"\n name={name}\n value={option.value}\n checked={value === option.value}\n onChange={(e) => handleSelectionChange(e.target.value)}\n className=\"form-input--radio\"\n data-f-datainput=\"\"\n aria-required={required}\n title={description}\n required={required}\n />\n <span className=\"form-label__text\">{option.label}</span>\n </label>\n </div>\n ))}\n </div>\n <FormFieldError name={name} error={error} />\n </div>\n )\n}\n","import React from \"react\"\n\nexport default function FormStep({\n formElements,\n formStepsCount,\n activeStep,\n previousStepLabel,\n nextStepLabel,\n renderFormElement,\n validateStep,\n goBack,\n}) {\n return (\n <>\n {formElements && formElements.map((formElement, index) => renderFormElement(formElement, formElement.name))}\n {activeStep != 0 && activeStep + 1 != formStepsCount ? (\n <button type=\"button\" className={`button button--medium button--general button--reset Form__Element displaymode-half`} onClick={goBack}>\n {previousStepLabel || \"Tilbage\"}\n </button>\n ) : null}\n {activeStep + 1 != formStepsCount ? (\n <button\n type=\"button\"\n className={`button button--medium button--general Form__Element ${activeStep == 0 ? \"displaymode-full\" : \"displaymode-half\"}`}\n onClick={validateStep}\n >\n {nextStepLabel || \"Næste\"}\n </button>\n ) : null}\n </>\n )\n}\n","import React, { forwardRef } from \"react\"\n\nfunction StepProgress({ activeStep, formStepsCount }, ref) {\n return (\n <div ref={ref} className=\"step-progress Form__Element displaymode-full\">\n {Array.from({ length: formStepsCount }, (_, i) => i + 1).map((step) => {\n const actualActiveStep = activeStep + 1\n const isActive = step === actualActiveStep\n const isCompleted = step < actualActiveStep\n\n const nextStep = step + 1\n const isLineSolid = step <= actualActiveStep && nextStep <= actualActiveStep\n\n return (\n <div className=\"step\" key={step}>\n <div className={[\"circle\", isActive ? \"active\" : \"\", isCompleted ? \"completed\" : \"\"].join(\" \")}>{step}</div>\n {step !== formStepsCount && <div className={isLineSolid ? \"step-line line-completed\" : \"step-line line-incomplete\"} />}\n </div>\n )\n })}\n </div>\n )\n}\n\nexport default forwardRef(StepProgress)\n","// conditions\nexport const NOT_APPLICABLE = 0\nexport const MATCH_REGULAR_EXPRESSION = 1\nexport const EQUALS = 2\nexport const NOT_EQUALS = 3\nexport const CONTAINS = 4\nexport const NOT_CONTAINS = 5\n\n// action\nexport const SHOW = \"EPiServer.Forms.Core.Internal.Dependency.ShowAction\"\nexport const HIDE = \"EPiServer.Forms.Core.Internal.Dependency.HideAction\"\n\n// condition combination\nexport const ALL = 0\nexport const ANY = 1\n\nexport const DependConditionDescriptions = {\n [NOT_APPLICABLE]: \"Not applicable\",\n [MATCH_REGULAR_EXPRESSION]: \"Match regular expression\",\n [EQUALS]: \"Equals\",\n [NOT_EQUALS]: \"Not equals\",\n [CONTAINS]: \"Contains\",\n [NOT_CONTAINS]: \"Not contains\",\n}\n\nexport const SatisfiedActionDescriptions = {\n [SHOW]: \"Show if conditions are met\",\n [HIDE]: \"Hide if conditions are met\",\n}\n\nexport const ConditionCombinationDescriptions = {\n [ALL]: \"All conditions are met\",\n [ANY]: \"Any condition is met\",\n}\n\nexport const getConditionDescription = (condition) => {\n return DependConditionDescriptions[condition] || \"Unknown condition\"\n}\n\nexport const getSatisfiedActionDescription = (action) => {\n return SatisfiedActionDescriptions[action] || \"Unknown action\"\n}\n\nexport const getConditionCombinationDescription = (combination) => {\n return ConditionCombinationDescriptions[combination] || \"Unknown combination\"\n}\n\nexport const evaluateCondition = (condition, inputValue, targetValue) => {\n switch (condition) {\n case EQUALS:\n return inputValue && inputValue === targetValue\n case NOT_EQUALS:\n return inputValue && inputValue !== targetValue\n case CONTAINS:\n return inputValue && inputValue.includes(targetValue)\n case NOT_CONTAINS:\n return inputValue && !inputValue.includes(targetValue)\n case MATCH_REGULAR_EXPRESSION:\n return inputValue && new RegExp(targetValue).test(inputValue)\n default:\n return true // Default for non-applicable or unknown cases\n }\n}\n\nconst formatFieldKey = (fieldId) => `__field_${fieldId}`\n\nexport const evaluateDependencies = (dependencies, formValues, conditionCombination) => {\n const results = dependencies?.map((dependency) => {\n const fieldKey = formatFieldKey(dependency.field)\n const inputValue = formValues[fieldKey]\n return evaluateCondition(dependency.operator, inputValue, dependency.value)\n })\n\n return conditionCombination === ALL ? results.every(Boolean) : results.some(Boolean)\n}\n\nexport const shouldDisplayField = (formField, formValues) => {\n const { dependencies, satisfiedAction, conditionCombination } = formField\n if (!dependencies) return true\n const dependenciesMet = evaluateDependencies(dependencies, formValues, conditionCombination)\n\n if (satisfiedAction === SHOW) {\n return dependenciesMet\n } else if (satisfiedAction === HIDE) {\n return !dependenciesMet\n }\n return true\n}\n","import React, { useEffect, useState, useRef } from \"react\"\nimport {\n CheckboxGroupInput,\n FileUploadInput,\n FormStatus,\n HiddenFields,\n HiddenField,\n NumberInput,\n RangeInput,\n SelectionInput,\n TextArea,\n TextInput,\n SubmitButton,\n ResetButton,\n SelectionMultiInput,\n ImageChoiceInput,\n RichTextInput,\n RadioGroupInput,\n FormStep,\n StepProgress,\n} from \"./form-elements\"\nimport { shouldDisplayField, evaluateCondition } from \"./dependencies\"\nimport Spinner from \"../../booking/components/spinner\"\n\nexport default function EpiForms({\n allowAnonymousSubmission,\n allowExposingDataFeeds,\n allowMultipleSubmission,\n allowToStoreSubmissionData,\n confirmationMessage,\n createdDate,\n description,\n formElements,\n finalizedSubmissionRetentionPeriod,\n formGuid,\n lastSubmissionDate,\n metadataAttribute,\n modifiedDate,\n name,\n partialSubmissionRetentionPeriod,\n redirectToPage,\n redirectUrl,\n showNavigationBar,\n showSummarizedData,\n submitSuccessMessage,\n title,\n authSrc,\n currentPageLink,\n langauge,\n formSubmissionId,\n validationCssClass,\n statusDisplay,\n message,\n formToken,\n backButtonLabel,\n urlValidatorErrorMessage,\n fileUploadPlaceholder,\n fileUploadHelperText,\n fileUploadTooManyFilesError,\n groupingTopPadding,\n groupingBottomPadding,\n recaptchaField,\n reCaptchaSiteKey,\n previousStepLabel,\n nextStepLabel,\n moreInfoLabel,\n closeModalLabel,\n}) {\n const [formValues, setFormValues] = useState({})\n const [errors, setErrors] = useState({})\n const [fieldVisibility, setFieldVisibility] = useState({})\n const [formSubmitted, setFormSubmitted] = useState(false)\n const [ajaxSpinnerActive, setAjaxSpinnerActive] = useState(false)\n const [ajaxSpinnerTransparent, setAjaxSpinnerTransparent] = useState(false)\n const [formSteps, setFormSteps] = useState([])\n const [formStepsCount, setFormStepsCount] = useState(0)\n const [activeStep, setActiveStep] = useState(0)\n const stepProgressRef = useRef(null)\n\n const handleFieldChange = (name, value) => {\n setFormValues((prevValues) => ({\n ...prevValues,\n [name]: value,\n }))\n }\n\n const setFieldError = (name, error) => {\n setErrors((prevErrors) => ({\n ...prevErrors,\n [name]: error,\n }))\n }\n\n const handleReset = () => {\n setFormValues({})\n setErrors({})\n }\n\n const isFieldRequired = (validators) => {\n return validators?.some((v) => v.type === \"EPiServer.Forms.Implementation.Validation.RequiredValidator\") ?? false\n }\n\n useEffect(() => {\n setFormSteps(getFormSteps(formElements))\n }, [fieldVisibility])\n\n useEffect(() => {\n const newVisibility = {}\n let visibleStepsCount = 0\n\n formElements.forEach((element) => {\n if (element.__type__ === \"FormGrouping\" && element?.groupedFormElements && element.groupedFormElements.length > 0) {\n element.groupedFormElements.forEach((subElement) => {\n newVisibility[subElement.name] = shouldDisplayField(subElement, formValues)\n })\n } else if (element.__type__ === \"FormStepBlock\") {\n let isVisible = true\n if (element.dependField && element.dependCondition !== 0 && element.dependValue !== null) {\n const fieldValue = formValues[element.dependField]\n const conditionMet = evaluateCondition(element.dependCondition, fieldValue, element.dependValue)\n\n isVisible = conditionMet ?? false\n }\n newVisibility[element.name] = isVisible\n if (isVisible) {\n visibleStepsCount++\n }\n } else {\n // All other element types\n newVisibility[element.name] = shouldDisplayField(element, formValues)\n }\n })\n\n setFieldVisibility(newVisibility)\n setFormStepsCount(visibleStepsCount)\n }, [formValues, formElements])\n\n const validateForm = (formElems) => {\n let firstInvalidField = null\n const newErrors = {}\n\n formElems.forEach((element) => {\n if (element.__type__ === \"FormGrouping\" && element?.groupedFormElements?.length > 0) {\n element?.groupedFormElements.forEach((subElement) => {\n if (fieldVisibility[subElement.name]) {\n if (subElement.validators) {\n const required = isFieldRequired(subElement.validators)\n const error = validateField(formValues[subElement.name], subElement.validators, required)\n if (error) {\n newErrors[subElement.name] = error\n setFieldError(subElement.name, error)\n if (!firstInvalidField) {\n firstInvalidField = document.querySelector(`[name=\"${subElement.name}\"]`)\n }\n }\n } else {\n setFieldError(subElement.name, null)\n }\n }\n })\n } else {\n if (fieldVisibility[element.name]) {\n if (element.validators) {\n const required = isFieldRequired(element.validators)\n const error = validateField(formValues[element.name], element.validators, required)\n if (error) {\n newErrors[element.name] = error\n setFieldError(element.name, error)\n if (!firstInvalidField) {\n firstInvalidField = document.querySelector(`[name=\"${element.name}\"]`)\n }\n }\n } else {\n setFieldError(element.name, null)\n }\n }\n }\n })\n\n setErrors(newErrors)\n\n return firstInvalidField\n }\n\n const handleSubmit = (e) => {\n e.preventDefault()\n let firstInvalidField = validateForm(formElements)\n\n if (firstInvalidField) {\n scrollToElement(firstInvalidField)\n } else {\n submitFormHandler(e) // No errors, submit the form\n }\n }\n\n const submitFormHandler = async (e) => {\n e.preventDefault()\n\n setAjaxSpinnerActive(true)\n setAjaxSpinnerTransparent(false)\n\n // Create the FormData and append metadata\n const formData = new FormData()\n formData.append(\"__RequestVerificationToken\", formToken)\n formData.append(\"__FormGuid\", formGuid)\n formData.append(\"__FormHostedPage\", currentPageLink)\n formData.append(\"__FormLanguage\", langauge)\n formData.append(\"__FormSubmissionId\", formSubmissionId)\n\n // Append all form values (only if visible per your logic)\n Object.keys(formValues).forEach((key) => {\n if (!fieldVisibility[key] || !isElementInAnyStep(formSteps, key)) return // only send value if the field is visible or part of a step\n let value = formValues[key]\n if (value instanceof FileList) {\n for (let i = 0; i < value.length; i++) {\n formData.append(key, value[i])\n }\n } else {\n let element = formElements.find((el) => el.name === key)\n if (!element) {\n for (let i = 0; i < formElements.length; i++) {\n element = formElements[i].groupedFormElements?.find((el) => el.name === key)\n if (element) break\n }\n }\n const hasDateValidator = element?.validators?.some((v) =>\n [\n \"EPiServer.Forms.Implementation.Validation.DateDDMMYYYYValidator\",\n \"EPiServer.Forms.Implementation.Validation.DateMMDDYYYYValidator\",\n \"EPiServer.Forms.Implementation.Validation.DateYYYYMMDDValidator\",\n ].includes(v.type),\n )\n if (hasDateValidator && typeof value === \"string\") {\n value = value.replace(/\\s+/g, \"\")\n }\n formData.append(key, value)\n }\n })\n\n const submitButton = e.nativeEvent.submitter\n const submitButtonId = submitButton ? submitButton.id : null\n\n // This inner function will handle the actual POST for a single step.\n const postForm = async () => {\n if (recaptchaField && reCaptchaSiteKey) {\n return new Promise((resolve, reject) => {\n window.grecaptcha.ready(() => {\n window.grecaptcha\n .execute(reCaptchaSiteKey, { action: \"submit\" })\n .then(async (token) => {\n formData.append(recaptchaField, token)\n try {\n const response = await fetch(window.location.href, {\n method: \"POST\",\n body: formData,\n headers: {\n RequestVerificationToken: formToken,\n },\n })\n if (response.ok) {\n resolve()\n } else {\n console.error(\"Form submission failed\", response.status)\n reject(new Error(\"Form submission failed\"))\n }\n } catch (error) {\n reject(error)\n }\n })\n .catch(reject)\n })\n })\n } else {\n const response = await fetch(window.location.href, {\n method: \"POST\",\n body: formData,\n headers: {\n RequestVerificationToken: formToken,\n },\n })\n if (!response.ok) {\n console.error(\"Form submission failed\", response.status)\n throw new Error(\"Form submission failed\")\n }\n }\n }\n\n try {\n if (formSteps != null && formSteps.length > 0) {\n // Submit once for each step (sequentially)\n for (const step of formSteps) {\n // Set the current step index for this submission\n formData.set(\"__FormCurrentStepIndex\", step.stepIndex)\n if (step.stepIndex === formSteps.length - 1 && submitButtonId) {\n // Append the submit button information on last step submit if available\n formData.append(submitButton.name, submitButtonId)\n }\n await postForm()\n }\n } else {\n // If no steps, set to 0 and submit once.\n formData.set(\"__FormCurrentStepIndex\", 0)\n // Append the submit button information if available\n if (submitButtonId) {\n formData.append(submitButton.name, submitButtonId)\n }\n await postForm()\n }\n } catch (error) {\n console.error(\"Error submitting form\", error)\n } finally {\n setAjaxSpinnerActive(false)\n setAjaxSpinnerTransparent(false)\n setFormSubmitted(true)\n const acceptPage = document.querySelector(\".accept-page\")\n scrollToElement(acceptPage)\n }\n }\n\n const scrollToElement = (element) => {\n const headerElement = document.querySelector(\".site-header.js--site-header\")\n const offset = headerElement ? headerElement.offsetHeight + 40 : 0\n\n const elementPosition = element.getBoundingClientRect().top + window.scrollY - offset\n\n window.scrollTo({\n top: elementPosition,\n behavior: \"smooth\",\n })\n }\n\n const handleBack = () => {\n setFormValues({})\n setErrors({})\n setFormSubmitted(false)\n setActiveStep(0)\n }\n\n const renderFormElement = (element, key) => {\n if (element.__type__ !== \"FormGrouping\" && !fieldVisibility[element.name]) {\n return null // Hide element if visibility condition is not met\n }\n\n const required = isFieldRequired(element.validators)\n const props = {\n ...element,\n closeModalLabel: closeModalLabel,\n moreInfoLabel: moreInfoLabel,\n required: required,\n validateField: (value) => validateField(value, element.validators, required),\n globalValue: formValues[element.name],\n setGlobalValue: (value) => handleFieldChange(element.name, value),\n setError: (error) => setFieldError(element.name, error),\n error: errors[element.name],\n }\n\n switch (element.__type__) {\n case \"TextboxElementBlock\":\n case \"UrlElementBlock\":\n case \"TextWithIdBlock\":\n return <TextInput key={key} {...props} />\n case \"TextareaElementBlock\":\n return <TextArea key={key} {...props} />\n case \"NumberElementBlock\":\n return <NumberInput key={key} {...props} />\n case \"RangeElementBlock\":\n return <RangeInput key={key} {...props} />\n case \"SelectionElementBlock\":\n return element.allowMultiSelect ? <SelectionMultiInput key={key} {...props} /> : <SelectionInput key={key} {...props} />\n case \"ChoiceElementBlock\":\n return element.allowMultiSelect ? <CheckboxGroupInput key={key} {...props} /> : <RadioGroupInput key={key} {...props} />\n case \"SignupChoiceBlock\":\n return <CheckboxGroupInput key={key} {...props} isPermissionInput={true} />\n case \"ImageChoiceElementBlock\":\n return <ImageChoiceInput key={key} {...props} />\n case \"FileUploadElementBlock\":\n return (\n <FileUploadInput\n key={key}\n {...props}\n fileUploadPlaceholder={fileUploadPlaceholder}\n fileUploadHelperText={fileUploadHelperText}\n fileUploadTooManyFilesError={fileUploadTooManyFilesError}\n />\n )\n case \"HiddenPredefinedValue\":\n return <HiddenField key={key} {...props} />\n case \"HiddenVisitorProfiling\":\n return <HiddenField key={key} {...props} dataProfiling={true} />\n case \"SubmitButtonElementBlock\":\n return (\n <SubmitButton\n key={key}\n {...props}\n formStepsCount={formStepsCount}\n setActiveStep={setActiveStep}\n activeStep={activeStep}\n previousStepLabel={previousStepLabel}\n goBack={goBack}\n />\n )\n case \"ResetButtonElementBlock\":\n return <ResetButton key={key} {...props} formGuid={formGuid} />\n case \"ParagraphTextElementBlock\":\n return <RichTextInput key={key} {...props} />\n case \"RecaptchaElement\":\n return <input name={props.name} id={props.name} type=\"hidden\" className=\"form-input\" data-f-datainput=\"\" value=\"\" />\n case \"FormGrouping\":\n return element?.groupedFormElements?.length > 0 ? (\n <div className={`form-group ${groupingTopPadding} ${groupingBottomPadding}`}>\n {element.groupedFormElements.map((el2, i2) => renderFormElement(el2, el2.name))}\n </div>\n ) : null\n default:\n return null\n }\n }\n\n const renderFormSteps = (steps) => {\n const currentStep = steps[activeStep]\n const stepElements = currentStep.formStepElements\n return (\n <FormStep\n formElements={stepElements}\n formStepsCount={formStepsCount}\n activeStep={activeStep}\n previousStepLabel={previousStepLabel}\n nextStepLabel={nextStepLabel}\n renderFormElement={renderFormElement}\n goBack={goBack}\n validateStep={() => validateStep(stepElements)}\n />\n )\n }\n\n const validateField = (value, validators, required) => {\n const checkRegex = (pattern, errorMessage, defaultMsg) => {\n const regex = new RegExp(pattern)\n if (!regex.test(value)) return errorMessage || defaultMsg\n }\n\n if (!required && !value) return \"\"\n\n for (const validator of validators) {\n const { type, errorMessage, regexPattern } = validator\n\n switch (type) {\n case \"EPiServer.Forms.Implementation.Validation.RequiredValidator\":\n if (\n (Array.isArray(value) && !value.some((item) => item && item.trim())) ||\n (value instanceof FileList && value.length === 0) ||\n (!Array.isArray(value) && !(value instanceof FileList) && (!value || !value.trim()))\n ) {\n return errorMessage || \"Dette felt er obligatorisk.\"\n }\n break\n\n case \"EPiServer.Forms.Implementation.Validation.EmailValidator\":\n if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Angiv en gyldig e-mailadresse.\")\n break\n\n case \"EPiServer.Forms.Implementation.Validation.RegularExpressionValidator\":\n if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Dette felt skal have formatet '{pattern}'\")\n break\n\n case \"EPiServer.Forms.Implementation.Validation.DateDDMMYYYYValidator\":\n if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Angiv en dato i formatet DD/MM/YYYY.\")\n break\n\n case \"EPiServer.Forms.Implementation.Validation.DateMMDDYYYYValidator\":\n if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Angiv en dato i formatet MM/DD/YYYY.\")\n break\n\n case \"EPiServer.Forms.Implementation.Validation.DateYYYYMMDDValidator\":\n if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Angiv en dato i formatet YYYY-MM-DD.\")\n break\n\n case \"EPiServer.Forms.Implementation.Validation.IntegerValidator\":\n if (!Number.isInteger(Number(value))) return errorMessage || \"Angiv et gyldigt heltal.\"\n break\n\n case \"EPiServer.Forms.Implementation.Validation.PositiveIntegerValidator\":\n if (!Number.isInteger(Number(value)) || Number(value) <= 0) return errorMessage || \"Angiv et positivt heltal.\"\n break\n\n case \"EPiServer.Forms.Implementation.Validation.UrlValidator\":\n if (regexPattern) return checkRegex(regexPattern, errorMessage ?? urlValidatorErrorMessage, \"Angiv en URL\") // URL validator doesnt have a built in error message from Episerver\n break\n\n default:\n break\n }\n }\n return \"\" // No error\n }\n\n const getFormSteps = (formElements) => {\n if (!fieldVisibility || Object.keys(fieldVisibility).length === 0) {\n return null\n }\n\n const hasStepBlock = formElements.some((element) => element.__type__ === \"FormStepBlock\")\n if (!hasStepBlock) {\n return null\n }\n\n const steps = []\n let currentStep = null\n let stepIndexCounter = 0\n\n for (const element of formElements) {\n if (element.__type__ === \"FormStepBlock\") {\n if (currentStep && fieldVisibility[currentStep.name]) {\n steps.push(currentStep)\n }\n const currentIndex = stepIndexCounter\n stepIndexCounter++\n\n if (fieldVisibility[element.name]) {\n currentStep = { ...element, formStepElements: [], stepIndex: currentIndex }\n } else {\n currentStep = null\n }\n } else if (currentStep) {\n currentStep.formStepElements.push(element)\n }\n }\n\n if (currentStep && fieldVisibility[currentStep.name]) {\n steps.push(currentStep)\n }\n\n return steps\n }\n\n const isElementInAnyStep = (formSteps, elementName) => {\n if (!formSteps || formSteps.length === 0) {\n return true\n }\n\n return formSteps.some((step) => {\n if (!Array.isArray(step.formStepElements)) {\n return false\n }\n\n return step.formStepElements.some((element) => {\n if (element.name === elementName) {\n return true\n }\n\n if (Array.isArray(element.groupedFormElements)) {\n return element.groupedFormElements.some((groupedEl) => groupedEl.name === elementName)\n }\n\n return false\n })\n })\n }\n\n const validateStep = (formElements) => {\n let firstInvalidField = validateForm(formElements)\n\n if (firstInvalidField) {\n scrollToElement(firstInvalidField)\n } else {\n setActiveStep(activeStep + 1) // No errors, go to next step\n if (stepProgressRef.current) scrollToElement(stepProgressRef.current)\n }\n }\n\n const goBack = () => {\n setActiveStep(activeStep - 1)\n if (stepProgressRef.current) scrollToElement(stepProgressRef.current)\n }\n\n if (formSubmitted) {\n return (\n <section className=\"deck deck--white deck--extra-padding-top deck--extra-padding-bottom\">\n <div className=\"epi-forms\">\n <div className=\"w--narrow accept-page\">\n <div className=\"checkmark\">\n <svg className={`svg-icon svg-icon--checkmark3`}>\n <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-checkmark3\">\n \n </use>\n </svg>\n </div>\n <div className=\"form-info\">\n <h2 className=\"form-title\">{confirmationMessage}</h2>\n <h4 className=\"form-description\" dangerouslySetInnerHTML={{ __html: submitSuccessMessage }}></h4>\n </div>\n <button className=\"button button--medium button--general\" onClick={handleBack}>\n {backButtonLabel || \"Tilbage\"}\n </button>\n {/* {redirectUrl && (\n <a href={redirectUrl}>\n <button className=\"button button--medium button--general\">Link til side</button>\n </a>\n )} */}\n </div>\n </div>\n </section>\n )\n }\n\n return (\n <>\n <Spinner isActive={ajaxSpinnerActive} isTransparent={ajaxSpinnerTransparent} />\n <section className=\"deck deck--white deck--extra-padding-top deck--extra-padding-bottom\">\n <form\n className={`epi-forms`}\n method=\"post\"\n noValidate=\"novalidate\"\n data-f-metadata={metadataAttribute}\n encType=\"multipart/form-data\"\n data-f-type=\"form\"\n id={formGuid}\n onSubmit={handleSubmit}\n onReset={handleReset}\n >\n {/* anti forgery token */}\n <input name=\"__RequestVerificationToken\" type=\"hidden\" value={formToken}></input>\n <HiddenFields formGuid={formGuid} currentPageLink={currentPageLink} langauge={langauge} formSubmissionId={formSubmissionId} />\n <FormStatus statusDisplay={statusDisplay} message={message} />\n <section className=\"deck deck--white\">\n <div className=\"w--narrow\">\n <div className=\"form\">\n {formElements?.length > 0 &&\n (formSteps?.length > 0 ? (\n <>\n <StepProgress ref={stepProgressRef} activeStep={activeStep} formStepsCount={formStepsCount} />\n {renderFormSteps(formSteps)}\n </>\n ) : (\n formElements.map((element, index) => renderFormElement(element, index))\n ))}\n </div>\n </div>\n </section>\n </form>\n </section>\n </>\n )\n}\n"],"names":["useFormField","predefinedValue","validateField","globalValue","setGlobalValue","setError","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","useEffect","undefined","initialError","validate","value","errorMsg","handleFocus","handleBlur","e","target","handleChange","newValue","handleDateChange","handleSelectionChange","handleCheckboxBlur","values","handleBlurFiles","files","handleFileChange","FormInputLabel","_ref","id","label","_ref$required","required","_jsx","htmlFor","className","children","_jsxs","FormFieldError","_ref$name","name","error","placeholder","concat","description","closeModalLabel","moreInfoLabel","toggleInfoActive","setToggleInfoActive","handleScroll","window","addEventListener","passive","removeEventListener","OutsideClickTrigger","onOutsideClick","onClick","preventDefault","handleToggleInfo","Svg","iconName","isDecorative","onBlur","document","getElementById","focus","handleCloseAndRefocusInput","CheckboxGroupInput","_ref$options","options","displayOption","_ref$isPermissionInpu","isPermissionInput","_ref$permissionText","permissionText","checkedOptions","filter","option","checked","_useFormField","length","map","wrapperRef","useRef","handleCheckboxChange","_toConsumableArray","val","title","ToggleInfo","ref","onMouseDown","current","contains","index","type","defaultChecked","onChange","onFocus","dangerouslySetInnerHTML","__html","FileUploadInput","fileTypes","allowMultiple","fileUploadPlaceholder","fileUploadHelperText","fileUploadTooManyFilesError","dragActive","setDragActive","handleFileRemove","onDragEnter","stopPropagation","onDragOver","onDragLeave","currentTarget","onDrop","dataTransfer","xlinkHref","Array","from","file","join","tabIndex","onKeyDown","key","accept","multiple","FormStatus","statusDisplay","message","HiddenField","_ref$isProfiling","isProfiling","HiddenFields","formGuid","currentPageLink","langauge","formSubmissionId","_Fragment","NumberInput","_ref$predefinedValue","_ref$validators","validators","min","some","v","RangeInput","max","step","SelectionInput","_options$find","selectionOpen","setSelectionOpen","_useState3","_useState4","focusedIndex","setFocusedIndex","find","optionsRef","handleOptionClick","optionValue","handleKeyDown","prevIndex","prev","xmlnsXlink","role","el","TextArea","TextInput","_validators$find","dateFormat","inputRef","datePickerRef","inputType","Type","isDateInput","includes","pattern","regexPattern","DatePickerPikaday","format","getPicker","destroy","autoComplete","SelectionMultiInput","selectedOptions","SubmitButton","_ref$label","formStepsCount","previousStepLabel","goBack","submitButton","ResetButton","form","ImageChoiceInput","showSelectionInputControl","allowMultiSelect","handleImageSelect","selectedValue","text","src","href","alt","RichTextInput","paragraphText","disablePlaceholdersReplacement","RadioGroupInput","FormStep","formElements","activeStep","nextStepLabel","renderFormElement","validateStep","formElement","StepProgress","_","i","actualActiveStep","isActive","isCompleted","isLineSolid","forwardRef","SHOW","HIDE","evaluateCondition","_defineProperty","condition","inputValue","targetValue","RegExp","test","shouldDisplayField","formField","formValues","dependencies","satisfiedAction","conditionCombination","dependenciesMet","results","dependency","fieldId","fieldKey","field","operator","every","Boolean","evaluateDependencies","EpiForms","allowAnonymousSubmission","allowExposingDataFeeds","allowMultipleSubmission","allowToStoreSubmissionData","confirmationMessage","createdDate","finalizedSubmissionRetentionPeriod","metadataAttribute","lastSubmissionDate","submitSuccessMessage","modifiedDate","partialSubmissionRetentionPeriod","redirectToPage","redirectUrl","showNavigationBar","showSummarizedData","authSrc","validationCssClass","formToken","backButtonLabel","urlValidatorErrorMessage","groupingTopPadding","groupingBottomPadding","recaptchaField","reCaptchaSiteKey","setFormValues","errors","setErrors","_useState5","_useState6","fieldVisibility","setFieldVisibility","_useState7","_useState8","formSubmitted","setFormSubmitted","_useState9","_useState10","ajaxSpinnerActive","setAjaxSpinnerActive","_useState11","_useState12","ajaxSpinnerTransparent","setAjaxSpinnerTransparent","_useState13","_useState14","formSteps","setFormSteps","_useState15","_useState16","setFormStepsCount","_useState17","_useState18","setActiveStep","stepProgressRef","setFieldError","prevErrors","_objectSpread","isFieldRequired","_validators$some","getFormSteps","newVisibility","visibleStepsCount","forEach","element","__type__","groupedFormElements","subElement","isVisible","dependField","dependCondition","dependValue","fieldValue","conditionMet","validateForm","formElems","firstInvalidField","newErrors","_element$groupedFormE","querySelector","submitFormHandler","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee3","formData","submitButtonId","postForm","_iterator","_step","acceptPage","wrap","_context3","next","FormData","append","Object","keys","isElementInAnyStep","FileList","_element","_element$validators","_formElements$_i2$gro","replace","nativeEvent","submitter","_ref3","_callee2","response","_context2","abrupt","Promise","resolve","reject","grecaptcha","ready","execute","action","then","_ref4","_callee","token","_context","fetch","location","method","body","headers","RequestVerificationToken","sent","ok","console","status","Error","t0","stop","_x2","apply","arguments","catch","_createForOfIteratorHelper","s","n","done","set","stepIndex","f","finish","t1","scrollToElement","_x","headerElement","offset","offsetHeight","elementPosition","getBoundingClientRect","top","scrollY","scrollTo","behavior","_element$groupedFormE2","props","prevValues","handleFieldChange","dataProfiling","el2","i2","checkRegex","errorMessage","defaultMsg","_step2","_iterator2","validator","isArray","item","trim","Number","isInteger","err","hasStepBlock","_step3","steps","currentStep","stepIndexCounter","_iterator3","push","currentIndex","formStepElements","elementName","groupedEl","Spinner","isTransparent","noValidate","encType","onSubmit","onReset","stepElements","renderFormSteps"],"sourceRoot":""}