{"version":3,"file":"js-respond/2025.04.02.6/TicketsAndAttendeeForm.2638bd3dcf410e14ad61.js","mappings":"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","sources":["webpack://pc-frontend-respond/./src/components/atoms/Attachment/styles.tsx","webpack://pc-frontend-respond/./src/components/atoms/Attachment/Attachment.tsx","webpack://pc-frontend-respond/./src/components/atoms/FieldError/style.tsx","webpack://pc-frontend-respond/./src/components/atoms/FieldError/FieldError.tsx","webpack://pc-frontend-respond/./src/components/atoms/FileViewer/style.tsx","webpack://pc-frontend-respond/./src/components/atoms/FileViewer/FileViewer.tsx","webpack://pc-frontend-respond/./src/components/atoms/Froala/styles.tsx","webpack://pc-frontend-respond/./src/components/atoms/Froala/Froala.tsx","webpack://pc-frontend-respond/./src/components/atoms/Label/Label.tsx","webpack://pc-frontend-respond/./src/components/atoms/NumericInput/getNumericInputLogic.ts","webpack://pc-frontend-respond/./src/components/atoms/NumericInput/styles.ts","webpack://pc-frontend-respond/./src/components/atoms/NumericInput/components/Vertical.tsx","webpack://pc-frontend-respond/./src/components/atoms/NumericInput/components/Horizontal.tsx","webpack://pc-frontend-respond/./src/components/atoms/NumericInput/components/Simple.tsx","webpack://pc-frontend-respond/./src/components/atoms/NumericInput/NumericInput.tsx","webpack://pc-frontend-respond/./src/components/atoms/NumericInput/types.ts","webpack://pc-frontend-respond/./src/components/atoms/PdfViewer/styles.tsx","webpack://pc-frontend-respond/./src/components/atoms/PdfViewer/PdfViewer.tsx","webpack://pc-frontend-respond/./src/components/atoms/Table/Table.tsx","webpack://pc-frontend-respond/./src/components/fields/EquationsField/components/EquationSection.tsx","webpack://pc-frontend-respond/./src/components/fields/EquationsField/components/EquationsDisplayField.tsx","webpack://pc-frontend-respond/./src/components/fields/EquationsField/styles.tsx","webpack://pc-frontend-respond/./src/components/fields/RatingField/style.ts","webpack://pc-frontend-respond/./src/components/fields/RatingField/RatingField.tsx","webpack://pc-frontend-respond/./src/components/fields/RatingField/RatingDisplayField.tsx","webpack://pc-frontend-respond/./src/components/fields/RepeatableQuestionField/components/styles.tsx","webpack://pc-frontend-respond/./src/components/fields/UploadField/TrashButton.tsx","webpack://pc-frontend-respond/./src/components/fields/TextField/TextField.tsx","webpack://pc-frontend-respond/./src/components/fields/AddressField/AddressInnerField.tsx","webpack://pc-frontend-respond/./src/customHooks/useGoogleAddress.ts","webpack://pc-frontend-respond/./src/components/fields/AddressField/AddressField.tsx","webpack://pc-frontend-respond/./src/components/fields/CheckboxField/CheckboxField.tsx","webpack://pc-frontend-respond/./src/components/atoms/DateOption/DateOption.tsx","webpack://pc-frontend-respond/./src/components/fields/DateField/DateField.tsx","webpack://pc-frontend-respond/./src/components/atoms/ErrorBoundary/ErrorBoundary.tsx","webpack://pc-frontend-respond/./src/components/fields/IntegratedDataField/IntegratedDataField.tsx","webpack://pc-frontend-respond/./src/components/fields/FieldSelector/FieldSelector.tsx","webpack://pc-frontend-respond/./src/components/fields/DropdownConditionalField/DropdownConditionalField.tsx","webpack://pc-frontend-respond/./src/components/fields/HeaderField/HeaderField.tsx","webpack://pc-frontend-respond/./src/components/fields/ParagraphField/ParagraphField.tsx","webpack://pc-frontend-respond/./src/components/fields/PhoneField/PhoneField.tsx","webpack://pc-frontend-respond/./src/components/fields/DropdownField/DropdownField.tsx","webpack://pc-frontend-respond/./src/components/fields/TextAreaField/TextAreaField.tsx","webpack://pc-frontend-respond/./src/components/fields/TimeField/TimeField.tsx","webpack://pc-frontend-respond/./src/components/fields/UploadField/UploadField.tsx","webpack://pc-frontend-respond/./src/components/fields/YesNoConditionalField/YesNoConditionalField.tsx","webpack://pc-frontend-respond/./src/components/fields/YesNoField/YesNoField.tsx","webpack://pc-frontend-respond/./src/components/fields/RepeatableQuestionField/components/RepeatableAnswers.tsx","webpack://pc-frontend-respond/./src/components/fields/RepeatableQuestionField/components/RepeatableForm.tsx","webpack://pc-frontend-respond/./src/components/fields/RepeatableQuestionField/hooks/useRepeatableQuestionLogic.ts","webpack://pc-frontend-respond/./src/components/fields/RepeatableQuestionField/RepeatableQuestionField.tsx","webpack://pc-frontend-respond/./src/components/fields/EquationsField/hooks/useEquationsLogic.ts","webpack://pc-frontend-respond/./src/components/fields/EquationsField/components/EquationsForm.tsx","webpack://pc-frontend-respond/./src/components/fields/EquationsField/EditRow.tsx","webpack://pc-frontend-respond/./src/components/fields/EquationsField/EquationsField.tsx","webpack://pc-frontend-respond/./src/components/fields/types.ts","webpack://pc-frontend-respond/./src/components/molecules/ProgressTracker/styles.tsx","webpack://pc-frontend-respond/./src/utils/progressTracker.ts","webpack://pc-frontend-respond/./src/components/molecules/ProgressTracker/ProgressTracker.tsx","webpack://pc-frontend-respond/./src/components/molecules/displayAnswers/DisplayAnswers.tsx","webpack://pc-frontend-respond/./src/components/molecules/errorNavigator/styles.ts","webpack://pc-frontend-respond/./src/components/molecules/errorNavigator/ErrorNavigator.tsx","webpack://pc-frontend-respond/./src/components/molecules/infoModal/styles.tsx","webpack://pc-frontend-respond/./src/components/molecules/infoModal/InfoModal.tsx","webpack://pc-frontend-respond/./src/components/molecules/navigationButtons/navigationButtons.tsx","webpack://pc-frontend-respond/./src/components/molecules/pageHeader/NavigationListItem.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/Cart/CartButton.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/Cart/styles.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/Cart/Cart.tsx","webpack://pc-frontend-respond/./src/components/molecules/previewBar/PreviewBar.tsx","webpack://pc-frontend-respond/./src/components/molecules/errorBar/ErrorBar.tsx","webpack://pc-frontend-respond/./src/components/molecules/myPowerHubHeader/styles.tsx","webpack://pc-frontend-respond/./src/components/molecules/myPowerHubHeader/MyPowerHubHeader.tsx","webpack://pc-frontend-respond/./src/components/molecules/pageHeader/PageHeader.tsx","webpack://pc-frontend-respond/./src/customHooks/useOrganizationByHash.ts","webpack://pc-frontend-respond/./src/components/molecules/pageHeader/SelectLanguage.tsx","webpack://pc-frontend-respond/./src/components/molecules/preview/styles.tsx","webpack://pc-frontend-respond/./src/components/molecules/preview/AttendeePreview.tsx","webpack://pc-frontend-respond/./src/components/molecules/totals/Totals.tsx","webpack://pc-frontend-respond/./src/constants/editingPermission.ts","webpack://pc-frontend-respond/./src/constants/mimeTypes.ts","webpack://pc-frontend-respond/./src/constants/validation.ts","webpack://pc-frontend-respond/./src/customHooks/useMarkAsVisited.ts","webpack://pc-frontend-respond/./src/customHooks/useSafeMutations.ts","webpack://pc-frontend-respond/./src/customHooks/useTranslateFormErrors.tsx","webpack://pc-frontend-respond/./src/mutations/updaterFunctions/updateAttendeeAnswers.ts","webpack://pc-frontend-respond/./src/queries/ticketInventories.ts","webpack://pc-frontend-respond/./src/mutations/updaterFunctions/updateTickets.ts","webpack://pc-frontend-respond/./src/pages/Error/index.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/Preview/styles.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/Preview/PurchasedTicketPreview.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/Preview/TicketPreview.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/Preview/TicketsPreview.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/TicketSection/TicketPrice.tsx","webpack://pc-frontend-respond/./src/components/atoms/Thumbnail/Thumbnail.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/TicketSection/DateNotice.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/TicketSection/QuantitySection.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/TicketSection/TicketSection.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/TicketSection/TrashButton.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/PreviousOrders/styles.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/PreviousOrders/PreviousTicket.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/PreviousOrders/PreviousOrders.tsx","webpack://pc-frontend-respond/./src/pages/Tickets/TicketsSection/TicketsSection.tsx","webpack://pc-frontend-respond/./src/queries/form.ts","webpack://pc-frontend-respond/./src/queries/organization.ts","webpack://pc-frontend-respond/./src/queries/taxesAndFees.ts","webpack://pc-frontend-respond/./src/customHooks/useTicketInventory.ts","webpack://pc-frontend-respond/./src/pages/Tickets/Tickets.tsx","webpack://pc-frontend-respond/./src/pages/TicketsAndAttendeeForm/TicketsAndAttendeeForm.tsx","webpack://pc-frontend-respond/./src/pages/TicketsAndAttendeeForm/index.ts","webpack://pc-frontend-respond/./src/queries/responseVersions.ts","webpack://pc-frontend-respond/./src/utils/address.ts","webpack://pc-frontend-respond/./src/utils/answers.ts","webpack://pc-frontend-respond/./src/utils/dateTime.ts","webpack://pc-frontend-respond/./src/utils/equations.ts","webpack://pc-frontend-respond/./src/utils/field.ts","webpack://pc-frontend-respond/./src/utils/formGetters.ts","webpack://pc-frontend-respond/./src/utils/formValues.ts","webpack://pc-frontend-respond/./src/utils/getters.ts","webpack://pc-frontend-respond/./src/utils/purchasedTickets.ts","webpack://pc-frontend-respond/./src/utils/repeatables.ts","webpack://pc-frontend-respond/./src/utils/responseVersionGetters.ts","webpack://pc-frontend-respond/./src/utils/scrollToTop.ts","webpack://pc-frontend-respond/./src/utils/tickets.ts","webpack://pc-frontend-respond/./src/constants/responseSteps.ts","webpack://pc-frontend-respond/./src/utils/validation.ts","webpack://pc-frontend-respond/./src/utils/phoneUtilities.ts"],"sourcesContent":["import styled from \"styled-components\";\nimport { defaultTheme } from \"@src/themes\";\n\nconst AttachmentContainer = styled.div`\n display: flex;\n align-items: center;\n margin: 0 0 15px;\n`;\n\nconst AttachmentInformationContainer = styled.div`\n display: flex;\n margin-left: 15px;\n cursor: pointer;\n`;\n\nconst AttachmentActionsContainer = styled.div`\n display: flex;\n margin-left: 15px;\n margin-top: 2px;\n justify-content: space-between;\n width: 50px;\n align-items: center;\n`;\n\nconst AttachmentName = styled.p`\n font-family: ${defaultTheme.font.default};\n`;\n\nconst AttachmentImage = styled.img`\n height: 45px;\n cursor: pointer;\n box-shadow: 0px 0px 5px 0 #777;\n`;\n\nexport {\n AttachmentContainer,\n AttachmentInformationContainer,\n AttachmentActionsContainer,\n AttachmentName,\n AttachmentImage,\n};\n","import React, { FunctionComponent, useState } from \"react\";\nimport { Attachment } from \"@src/types\";\n\nimport {\n AttachmentInformationContainer,\n AttachmentContainer,\n AttachmentImage,\n AttachmentName,\n AttachmentActionsContainer,\n} from \"./styles\";\nimport AnyIcon from \"@src/assets/any.png\";\nimport ImageIcon from \"@src/assets/image.png\";\nimport PDFIcon from \"@src/assets/pdf.png\";\nimport { Icon } from \"../Icon\";\nimport { FileViewer } from \"../FileViewer\";\n\ntype AttachmentProps = {\n attachment: Attachment;\n};\n\nconst AttachmentComponent: FunctionComponent = ({ attachment }) => {\n\n const [showFile, setShowFile] = useState(false);\n\n const GetLogoImage = (fileType: string) => {\n if (fileType.includes(\"image/\")) {\n return ImageIcon;\n } else if (fileType.includes(\"application/pdf\")) {\n return PDFIcon;\n } else {\n return AnyIcon;\n }\n };\n\n return (\n {\n showFile\n ? setShowFile(false)}\n />\n : null\n }\n setShowFile(true)} src={GetLogoImage(attachment.fileType)} />\n \n setShowFile(true)}>{attachment.friendlyName}\n \n {attachment.printUri ? (\n \n \n \n ) : null}\n\n {attachment.downloadUri ? (\n \n \n \n ) : null}\n \n \n );\n};\n\nexport { AttachmentComponent };\n","import { Flex } from \"@src/components/layout/Page\";\nimport styled from \"styled-components\";\n\nconst StyledErrorContainer = styled(Flex)`\n margin-top: 7px;\n margin-left: 3px;\n`;\n\nconst StyledFieldError = styled.p`\n color: #c00109;\n margin: 0px 0px 24px 5px;\n`;\n\nexport { StyledErrorContainer, StyledFieldError };\n","import { getIn, useFormikContext } from \"formik\";\nimport React, { FC } from \"react\";\nimport { Icon } from \"../Icon\";\nimport { StyledErrorContainer, StyledFieldError } from \"./style\";\n\nexport type FieldErrorProps = {\n name: string;\n id: string;\n children?: (message: string) => JSX.Element;\n};\n\nconst FieldError: FC = ({ name, id, children }) => {\n const { errors, touched } = useFormikContext();\n const error = getIn(errors, name);\n const touch = getIn(touched, name);\n const isString = typeof error === \"string\";\n\n if (touch && error && isString) {\n if (children) {\n return children(error);\n } else {\n return (\n \n \n {error}\n \n );\n }\n }\n\n return null;\n};\n\nexport { FieldError };\n","import { defaultTheme } from \"@src/themes\";\nimport styled from \"styled-components\";\n\nconst FileViewerModalBackground = styled.div`\n position: fixed;\n margin: auto;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${defaultTheme.colors.values.darkgrey};\n opacity: 0.8;\n z-index: 999;\n`;\n\nconst FileViewerModalContent = styled.div`\n position: fixed;\n z-index: 1000;\n margin: auto;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 95%;\n height: 95%;\n`;\n\nconst ImageView = styled.img`\n position: absolute;\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: 8px;\n`;\n\nconst PdfContainer = styled.div`\n position: absolute;\n max-width: 630px;\n max-height: 100%;\n min-height: 75%;\n margin: auto;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`;\n\nconst FileViewerModalClose = styled.i`\n position: absolute;\n right: 0;\n top: 0;\n font-size: 22px;\n cursor: pointer;\n color: ${defaultTheme.colors.values.white};\n z-index: 5;\n`;\n\nexport { FileViewerModalBackground, FileViewerModalContent, FileViewerModalClose, PdfContainer, ImageView };","import React, { FC, useEffect } from \"react\";\nimport {\n FileViewerModalBackground,\n FileViewerModalClose,\n FileViewerModalContent,\n ImageView,\n PdfContainer,\n} from \"./style\";\nimport { MimeType } from \"@src/constants/mimeTypes\";\nimport { PdfViewer } from \"../PdfViewer/PdfViewer\";\n\nexport type FileViewerProps = {\n viewUrl: string;\n mimeType: string;\n dismiss: () => void;\n};\n\nconst FileViewer: FC = ({ viewUrl, mimeType, dismiss }) => {\n\n useEffect(() => {\n const handleEsc = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n dismiss();\n }\n };\n window.addEventListener(\"keydown\", handleEsc);\n\n return () => {\n window.removeEventListener(\"keydown\", handleEsc);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n \n \n {mimeType === MimeType.PDF ? (\n \n \n \n ) : (\n \n )}\n \n \n \n );\n};\n\nexport { FileViewer };\n","import styled from \"styled-components\";\n\nconst FroalaContainer = styled.div`\n margin: 0 0 30px;\n`;\n\nexport {\n FroalaContainer,\n}","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n///\n\nimport React from \"react\";\nimport FroalaEditorView from \"react-froala-wysiwyg/FroalaEditorView\";\nimport \"froala-editor/css/froala_style.min.css\";\nimport \"froala-editor/css/froala_editor.pkgd.min.css\";\nimport { FroalaContainer } from \"./styles\";\n\nexport type FroalaProps = {\n isFieldLabel?: boolean;\n text?: string | null;\n};\n\nconst Froala: React.FC = ({ text, isFieldLabel }) => {\n return text ? (\n isFieldLabel ? (\n \n ) : (\n \n \n \n )\n ) : (\n <>\n );\n};\n\nexport { Froala };\n","import { StyledLabel } from \"@src/components/styles\";\nimport { isHTMLlabel } from \"@src/utils/htmlCharcodes\";\nimport React, { FC } from \"react\";\nimport { Froala } from \"../Froala\";\n\ntype LabelProps = {\n children: string;\n};\n\nconst Label: FC = ({ children }) => {\n const isHTML = isHTMLlabel(children);\n\n return isHTML ? : {children};\n};\n\nexport { Label };\n","import { isNumber } from \"mathjs\";\r\nimport { NumberFormatValues } from \"react-number-format\";\r\nimport { NumericType } from \"./types\";\r\n\r\ntype NumericInputLogicArgs = {\r\n value?: string | null;\r\n disabled: boolean;\r\n min: number;\r\n max?: number;\r\n step: number;\r\n fixedDecimalPlaces?: number;\r\n type?: NumericType;\r\n onChange?: (value?: string | null) => void;\r\n};\r\n\r\nexport type NumericInputLogic = {\r\n isDecrementDisabled: boolean;\r\n isIncrementDisabled: boolean;\r\n useDecimalScale: boolean;\r\n decimalScale: number | undefined;\r\n prefix?: string;\r\n isValid: (value: number) => boolean;\r\n onIncrease: () => void;\r\n onDecrease: () => void;\r\n handleChange: (numberFormatValue: NumberFormatValues) => void;\r\n};\r\n\r\nconst getNumericInputLogic = ({\r\n value,\r\n disabled,\r\n min,\r\n max,\r\n step,\r\n type,\r\n fixedDecimalPlaces,\r\n onChange,\r\n}: NumericInputLogicArgs): NumericInputLogic => {\r\n const isDecrementDisabled =\r\n disabled || (isNumber(min) && min >= 0 && Number(value) - Number(step) < min);\r\n\r\n const isIncrementDisabled =\r\n disabled || (isNumber(max) && max > 0 && Number(value) + Number(step) > max);\r\n\r\n const useDecimalScale = type === \"currency\" || type === \"decimal\";\r\n\r\n const decimalScale = fixedDecimalPlaces ?? (useDecimalScale ? 2 : 0);\r\n\r\n const prefix = type === \"currency\" ? \"$ \" : undefined;\r\n\r\n const isValid = (value: number) => {\r\n return (\r\n (!isNumber(max) || max < 0 || Number(value) <= max) &&\r\n (!isNumber(min) || min < 0 || Number(value) >= min)\r\n );\r\n };\r\n\r\n const onIncrease = () => {\r\n let newValue = Number(value) + Number(step);\r\n\r\n if (newValue < min) {\r\n newValue = min;\r\n }\r\n\r\n if (onChange) {\r\n onChange(`${newValue}`);\r\n }\r\n };\r\n\r\n const onDecrease = () => {\r\n const newValue = Number(value) - Number(step);\r\n if (onChange) {\r\n if (isValid(newValue)) {\r\n onChange(`${newValue}`);\r\n } else {\r\n onChange(`${value}`);\r\n }\r\n }\r\n };\r\n\r\n const handleChange = (numberFormatValue: NumberFormatValues) => {\r\n const { value } = numberFormatValue;\r\n\r\n if (onChange) onChange(`${value}` || \"0\");\r\n };\r\n\r\n return {\r\n isDecrementDisabled,\r\n isIncrementDisabled,\r\n useDecimalScale,\r\n decimalScale,\r\n prefix,\r\n isValid,\r\n onIncrease,\r\n onDecrease,\r\n handleChange,\r\n };\r\n};\r\n\r\nexport { getNumericInputLogic };\r\n","import styled from \"styled-components\";\r\n\r\nimport { Flex } from \"@src/components/layout/Page\";\r\n\r\nconst StyledInput = styled.input`\r\n ${({ theme }) => `\r\n &:focus {\r\n outline: none !important;\r\n border: 2px solid ${theme.colors.fields.selected};\r\n }\r\n\r\n width: 100%;\r\n height: 100%;\r\n padding: 0 30px;\r\n box-sizing: border-box;\r\n font-size: 12px;\r\n font-weight: 300;\r\n\r\n position: absolute;\r\n border: 1px solid ${theme.colors.values.lightgrey};\r\n `}\r\n`;\r\n\r\nconst StyledVerticalInput = styled.input`\r\n ${({ theme }) => `\r\n &:focus {\r\n outline: none !important;\r\n border: 2px solid ${theme.colors.fields.selected};\r\n }\r\n\r\n width: 100px;\r\n height: 100%;\r\n text-align: center;\r\n box-sizing: border-box;\r\n font-size: 12px;\r\n font-weight: 300;\r\n border: 1px solid ${theme.colors.values.lightgrey};\r\n `}\r\n`;\r\n\r\nconst StyledHorizontalInput = styled.input<{ error?: string }>`\r\n ${({ theme, error }) => `\r\n &:focus {\r\n outline: none !important;\r\n border: 2px solid ${error ? theme.colors.values.red : theme.colors.fields.selected};\r\n }\r\n\r\n text-align: center;\r\n width: 100%;\r\n height: 100%;\r\n padding: 0 30px;\r\n box-sizing: border-box;\r\n font-size: 12px;\r\n font-weight: 300;\r\n\r\n position: absolute;\r\n border: 1px solid ${theme.colors.values.lightgrey};\r\n `}\r\n`;\r\n\r\nconst HorizontalButton = styled.button.attrs({ type: \"button\" })`\r\n ${({ theme, disabled }) => `\r\n z-index: 1;\r\n top: 4px;\r\n width: 26px;\r\n height: 20px;\r\n text-align: center;\r\n position: absolute;\r\n border: 1px solid ${theme.colors.values.lightgrey};\r\n background-color: ${theme.colors.values.lightgrey};\r\n cursor: pointer;\r\n opacity: ${disabled ? \"0.4\" : \"1\"};\r\n\r\n ${NumericInputWrapper} &:first-child {\r\n left: 4px;\r\n }\r\n\r\n ${NumericInputWrapper} &:last-child {\r\n right: 4px;\r\n }\r\n `}\r\n`;\r\n\r\ntype NumericInputWrapperProps = { width?: string; minWidth?: string; error?: boolean };\r\n\r\nconst NumericInputWrapper = styled(Flex)`\r\n ${({ theme, width, minWidth, error }) => `\r\n position: relative;\r\n display: block;\r\n max-width: 400px;\r\n width: ${width || \"100px\"};\r\n min-width: ${minWidth || \"100px\"};\r\n height: 28px;\r\n border: 1px solid ${error ? theme.colors.values.red : \"transparent\"};\r\n\r\n b {\r\n font-size: 13px;\r\n }\r\n\r\n b:nth-child(2) {\r\n position: absolute;\r\n top: 2px;\r\n right: 2px;\r\n bottom: 50%;\r\n\r\n width: 2.26ex;\r\n border-color: ${theme.colors.values.lightgrey};\r\n border-style: solid;\r\n text-align: center;\r\n cursor: default;\r\n transition: all 0.1s;\r\n background: ${theme.colors.values.lightgrey};\r\n box-shadow: ${\r\n theme.colors.values.lightgrey\r\n } -1px -1px 3px inset, rgba(255, 255, 255, 0.701961) 1px 1px 3px inset;\r\n\r\n border-radius: 2px 2px 0px 0px;\r\n border-width: 1px 1px 0px;\r\n }\r\n\r\n b:nth-child(2) > i {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 0px;\r\n height: 0px;\r\n border-width: 0px 0.6ex 0.6ex;\r\n border-color: transparent transparent rgba(0, 0, 0, 0.701961);\r\n border-style: solid;\r\n margin: -0.3ex 0px 0px -0.56ex;\r\n }\r\n\r\n b:nth-child(3) {\r\n position: absolute;\r\n right: 2px;\r\n bottom: 2px;\r\n width: 2.26ex;\r\n border-color: ${theme.colors.values.lightgrey};\r\n border-style: solid;\r\n text-align: center;\r\n cursor: default;\r\n transition: all 0.1s;\r\n background: ${theme.colors.values.lightgrey};\r\n box-shadow: ${\r\n theme.colors.values.lightgrey\r\n } -1px -1px 3px inset, rgba(255, 255, 255, 0.701961) 1px 1px 3px inset;\r\n top: 50%;\r\n border-radius: 0px 0px 2px 2px;\r\n border-width: 0px 1px 1px;\r\n }\r\n\r\n b:nth-child(3) > i {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 0px;\r\n height: 0px;\r\n border-width: 0.6ex 0.6ex 0px;\r\n border-color: rgba(0, 0, 0, 0.701961) transparent transparent;\r\n border-style: solid;\r\n margin: -0.3ex 0px 0px -0.56ex;\r\n }\r\n `}\r\n`;\r\n\r\nconst VerticalButton = styled.button.attrs({ type: \"button\" })`\r\n opacity: ${(props) => (props.disabled ? \"0.4\" : \"1\")};\r\n`;\r\n\r\nexport {\r\n StyledInput,\r\n StyledVerticalInput,\r\n StyledHorizontalInput,\r\n HorizontalButton,\r\n NumericInputWrapper,\r\n VerticalButton,\r\n};\r\n","import React, { FC } from \"react\";\r\nimport NumberFormat from \"react-number-format\";\r\n\r\nimport { getNumericInputLogic } from \"../getNumericInputLogic\";\r\nimport { NumericInputWrapper, StyledVerticalInput, VerticalButton } from \"../styles\";\r\nimport { NumericInnerFieldProps } from \"../types\";\r\n\r\nconst Vertical: FC = ({\r\n ticketId,\r\n value,\r\n type,\r\n min,\r\n max,\r\n width,\r\n minWidth,\r\n disabled,\r\n step,\r\n fixedDecimalPlaces,\r\n error,\r\n onChange,\r\n}) => {\r\n const {\r\n isDecrementDisabled,\r\n isIncrementDisabled,\r\n useDecimalScale,\r\n decimalScale,\r\n onDecrease,\r\n onIncrease,\r\n handleChange,\r\n } = getNumericInputLogic({ value, type, disabled, min, max, step, fixedDecimalPlaces, onChange });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n if (event.which === 13) {\r\n event.preventDefault();\r\n }\r\n }\r\n : null\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport { Vertical };\r\n","import React, { FC } from \"react\";\r\nimport { isNumber } from \"mathjs\";\r\nimport NumberFormat from \"react-number-format\";\r\n\r\nimport { getNumericInputLogic } from \"../getNumericInputLogic\";\r\nimport { HorizontalButton, NumericInputWrapper, StyledHorizontalInput } from \"../styles\";\r\nimport { NumericInnerFieldProps } from \"../types\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst Horizontal: FC = ({\r\n ticketId,\r\n value,\r\n type,\r\n min,\r\n max,\r\n width,\r\n minWidth,\r\n disabled,\r\n step,\r\n fixedDecimalPlaces,\r\n error,\r\n onChange,\r\n}) => {\r\n const { t } = useTranslation();\r\n const {\r\n isDecrementDisabled,\r\n isIncrementDisabled,\r\n useDecimalScale,\r\n decimalScale,\r\n prefix,\r\n onDecrease,\r\n onIncrease,\r\n handleChange,\r\n } = getNumericInputLogic({\r\n disabled,\r\n min,\r\n max,\r\n value,\r\n step,\r\n type,\r\n fixedDecimalPlaces,\r\n onChange,\r\n });\r\n\r\n return (\r\n \r\n = 0 ? t(\"messages.minimumAmount\", { min }) : \"\"}\r\n data-testid={ticketId + \"-DECREMENT\"}\r\n >\r\n \r\n \r\n\r\n {\r\n if (event.which === 13) {\r\n event.preventDefault();\r\n }\r\n }\r\n : null\r\n }\r\n />\r\n\r\n = 0 ? t(\"messages.maximumAmount\", { max }) : \"\"}\r\n data-testid={ticketId + \"-INCREMENT\"}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\nexport { Horizontal };\r\n","import React, { FC } from \"react\";\r\nimport NumberFormat from \"react-number-format\";\r\n\r\nimport { getNumericInputLogic } from \"../getNumericInputLogic\";\r\nimport { NumericInputWrapper, StyledInput } from \"../styles\";\r\nimport { NumericInnerFieldProps } from \"../types\";\r\n\r\nconst Simple: FC = ({\r\n value,\r\n type,\r\n min,\r\n max,\r\n width,\r\n minWidth,\r\n disabled,\r\n step,\r\n fixedDecimalPlaces,\r\n error,\r\n onChange,\r\n}) => {\r\n const { useDecimalScale, decimalScale, prefix, handleChange } = getNumericInputLogic({\r\n value,\r\n type,\r\n disabled,\r\n min,\r\n max,\r\n step,\r\n fixedDecimalPlaces,\r\n onChange,\r\n });\r\n\r\n return (\r\n \r\n {\r\n if (event.which === 13) {\r\n event.preventDefault();\r\n }\r\n }\r\n : null\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport { Simple };\r\n","import React, { FC } from \"react\";\n\nimport { ControlType, NumericInputProps } from \"./types\";\nimport { Vertical } from \"./components/Vertical\";\nimport { Horizontal } from \"./components/Horizontal\";\nimport { Simple } from \"./components/Simple\";\n\nconst NumericInput: FC = ({ controlType, type = \"integer\", ...rest }) => {\n switch (controlType) {\n case ControlType.Horizontal:\n return ;\n\n case ControlType.Vertical:\n return ;\n\n default:\n return ;\n }\n};\n\nexport { NumericInput };\n","export type NumericType = \"currency\" | \"decimal\" | \"integer\";\r\n\r\nexport enum ControlType {\r\n None,\r\n Vertical,\r\n Horizontal,\r\n}\r\n\r\nexport type NumericInnerFieldProps = {\r\n ticketId?: string;\r\n value?: string | null;\r\n max?: number;\r\n min: number;\r\n step: number;\r\n disabled: boolean;\r\n type?: NumericType;\r\n fixedDecimalPlaces?: number;\r\n width?: string;\r\n minWidth?: string;\r\n error?: string;\r\n onChange?: (value?: string | null) => void;\r\n};\r\n\r\nexport type NumericInputProps = NumericInnerFieldProps & {\r\n controlType: ControlType;\r\n};\r\n","import { defaultTheme } from \"@src/themes\";\nimport styled from \"styled-components\";\n\nconst PdfViewerContainer = styled.div`\n box-shadow: 4px 0px 40px 0 rgb(16 36 94 / 20%);\n margin: 25px;\n overflow: auto;\n border-radius: 8px;\n padding: 3px 3px 40px;\n background: ${defaultTheme.colors.values.white};\n\n canvas {\n margin: auto;\n }\n`;\n\nconst PdfControls = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 30px 40px 0 rgb(16 36 94 / 20%);\n margin: 0 auto;\n width: fit-content;\n min-width: 150px;\n border-radius: ${defaultTheme.borderRadius};\n padding: 15px;\n text-align: center;\n`;\n\nconst PdfControlsButton = styled.span`\n display: inline-block;\n padding: 5px;\n margin: 0 15px;\n border-radius: ${defaultTheme.borderRadius};\n cursor: pointer;\n font-size: 10px;\n\n &:hover {\n color: ${defaultTheme.colors.values.white};\n background: ${defaultTheme.colors.alias.primary};\n }\n`;\n\nconst PageNumber = styled.span`\n font-size: 12px;\n`;\n\nexport { PdfViewerContainer, PdfControls, PdfControlsButton, PageNumber };\n","import React, { FunctionComponent, useState } from \"react\";\nimport { PageNumber, PdfControls, PdfControlsButton, PdfViewerContainer } from \"./styles\";\nimport { Document, Page } from \"react-pdf\";\nimport { pdfjs } from \"react-pdf\";\nimport 'react-pdf/dist/esm/Page/TextLayer.css';\nimport 'react-pdf/dist/esm/Page/AnnotationLayer.css';\nimport { Spinner } from \"../Spinner\";\nimport { Icon } from \"../Icon\";\npdfjs.GlobalWorkerOptions.workerSrc = `/pdf.worker.js`;\n\ntype PdfViewerProps = {\n contentUri: string;\n printUri?: string;\n downloadUri?: string;\n};\n\nconst PdfViewer: FunctionComponent = ({ contentUri, printUri, downloadUri }) => {\n const [numPages, setNumPages] = useState(0);\n const [pageNumber, setPageNumber] = useState(1);\n\n const onDocumentLoadSuccess = (e: { numPages: number }) => {\n setNumPages(e.numPages);\n };\n\n const onIncrementPage = () => {\n if (pageNumber < numPages) setPageNumber(pageNumber + 1);\n };\n\n const onDecrementPage = () => {\n if (pageNumber > 1) setPageNumber(pageNumber - 1);\n };\n\n return (\n \n console.log(e)}\n onSourceError={(e) => console.log(e)}\n onLoadSuccess={onDocumentLoadSuccess}\n loading={}\n >\n \n \n {numPages > 0 ? (\n \n \n \n \n \n {pageNumber} of {numPages}\n \n \n \n \n {printUri ? (\n \n \n \n ) : null}\n\n {downloadUri ? (\n \n \n \n ) : null}\n \n ) : null}\n \n );\n};\n\nexport { PdfViewer };\n","import React, { FC } from \"react\";\nimport styled from \"styled-components\";\nimport { defaultTheme } from \"@src/themes\";\n\nconst TableWrapper = styled.table`\n border-collapse: collapse;\n margin: 15px auto 0;\n font-size: 1em;\n width: 100%;\n`;\n\nconst HeaderRow = styled.tr`\n border-left: 2px solid ${defaultTheme.colors.fields.tablebordercolor};\n`;\n\nconst Row = styled.tr<{ clickable?: boolean }>`\n cursor: ${(props) => (props.clickable ? \"pointer\" : \"auto\")};\n border-left: 2px solid ${defaultTheme.colors.fields.tablebordercolor};\n`;\n\nconst Cell = styled.td<{ alignLeft?: boolean }>`\n border-right: dotted 2px ${defaultTheme.colors.fields.tablebordercolor};\n border-bottom: 2px solid ${defaultTheme.colors.fields.tablebordercolor};\n padding: 5px;\n font-size: 12px;\n text-align: ${(props) => (props.alignLeft ? \"left\" : \"right\")};\n font-weight: 300;\n vertical-align: top;\n\n &:last-of-type {\n border-right: solid 2px ${defaultTheme.colors.fields.tablebordercolor};\n }\n`;\n\nconst InvisibleCell = styled.td<{ alignLeft?: boolean }>`\n border: none;\n border-left: solid 2px ${defaultTheme.colors.fields.tablebordercolor};\n padding: 5px;\n font-size: 12px;\n text-align: ${(props) => (props.alignLeft ? \"left\" : \"right\")};\n font-weight: 300;\n vertical-align: top;\n width: 52px;\n`;\n\nconst AggregateCell = styled.td<{ alignLeft?: boolean }>`\n border-right: dotted 2px ${defaultTheme.colors.fields.tablebordercolor};\n border-bottom: 2px solid ${defaultTheme.colors.fields.tablebordercolor};\n padding: 15px 5px 5px;\n font-size: 12px;\n text-align: ${(props) => (props.alignLeft ? \"left\" : \"right\")};\n font-weight: 300;\n vertical-align: top;\n`;\n\nconst Header = styled.th`\n border-right: solid 2px ${defaultTheme.colors.fields.tablebordercolor};\n padding: 4px 8px;\n background-color: ${defaultTheme.colors.fields.tablebordercolor};\n color: ${defaultTheme.colors.values.darkgrey};\n text-align: center;\n font-weight: 500;\n font-size: 12px;\n min-width: 80px;\n`;\n\nconst InvisibleHeader = styled.th`\n border: none;\n border-left: solid 2px ${defaultTheme.colors.fields.tablebordercolor};\n padding: 4px 8px;\n background-color: ${defaultTheme.colors.values.white};\n color: ${defaultTheme.colors.values.darkgrey};\n text-align: center;\n font-weight: 500;\n font-size: 12px;\n`;\n\nconst StyledTableRowTextInput = styled.input.attrs({ type: \"text\" })<{ error?: boolean }>`\n &:focus {\n outline: none !important;\n border: 1px solid\n ${(props) =>\n props.error ? defaultTheme.colors.values.red : defaultTheme.colors.fields.selected};\n }\n\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid\n ${(props) =>\n props.error ? defaultTheme.colors.values.red : defaultTheme.colors.fields.bordercolor};\n border-radius: ${defaultTheme.borderRadius};\n padding: 5px;\n font-family: ${defaultTheme.font.default};\n font-size: 12px;\n font-weight: 300;\n width: 100%;\n min-width: 100px;\n box-sizing: border-box;\n`;\n\nconst StyledTableRowLabel = styled.label`\n display: block;\n font-size: 10px;\n font-weight: 500;\n margin: 3px;\n max-width: 65px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\ntype TableProps = { children: JSX.Element[] };\n\nconst Table: FC = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nexport {\n Table,\n Header,\n Row,\n Cell,\n TableWrapper,\n StyledTableRowTextInput,\n StyledTableRowLabel,\n AggregateCell,\n InvisibleCell,\n InvisibleHeader,\n HeaderRow,\n};\n","import React, { FC } from \"react\";\nimport { useField, FieldValidator } from \"formik\";\n\nimport { AnswerInput, Question } from \"@src/types\";\nimport { getEquationSectionId } from \"@src/utils/getters\";\nimport { NumericInput } from \"@src/components/atoms/NumericInput\";\nimport { StyledTableRowLabel, StyledTableRowTextInput } from \"@src/components/atoms/Table\";\nimport { currencyFormatter } from \"@src/utils/purchasedTickets\";\nimport { ControlType, NumericType } from \"@src/components/atoms/NumericInput/types\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { useTranslation } from \"react-i18next\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { EquationRow } from \"@src/utils/formValuesTypes\";\n\ntype EquationSectionProps = {\n sectionId?: string | null;\n question: Question;\n row?: EquationRow;\n editRowValue?: (newAnswer: AnswerInput) => Promise;\n validate: FieldValidator;\n};\n\nconst EquationSection: FC = ({\n sectionId,\n question,\n row,\n editRowValue,\n validate,\n}) => {\n const googleTranslate = useGoogleTranslate();\n const { t, i18n } = useTranslation();\n const equationSectionId = sectionId || getEquationSectionId(question);\n const [{ value: answer }, meta, helpers] = useField({\n name: equationSectionId,\n validate,\n });\n const { form } = useFormInfo();\n\n const currencyCode = form?.document?.organization?.currencyCode;\n const min = question.minEntries ? question.minEntries : 0;\n const max = question.maxEntries ? question.maxEntries : -1;\n\n const handleChange = (value?: string | null) => {\n const existingAnswer = answer || {\n fieldId: row?.answerId || \"\",\n fileType: null,\n order: null,\n questionId: sectionId || question.name || \"\",\n value,\n };\n\n const newAnswer = {\n ...existingAnswer,\n value,\n };\n\n helpers.setValue(newAnswer);\n\n editRowValue && editRowValue(newAnswer);\n };\n\n const minValue =\n min > 0\n ? question.valueType === \"currency\"\n ? currencyFormatter(i18n.resolvedLanguage, currencyCode).format(min)\n : question.valueType === \"decimal\"\n ? min.toFixed(2)\n : min.toString()\n : \"\";\n\n const maxValue =\n max > -1\n ? question.valueType === \"currency\"\n ? currencyFormatter(i18n.resolvedLanguage, currencyCode).format(max)\n : question.valueType === \"decimal\"\n ? max.toFixed(2)\n : max.toString()\n : \"\";\n\n return (\n <>\n {question.valueType === \"text\" ? (\n handleChange(event.target.value)}\n error={!!meta.error}\n />\n ) : (\n <>\n \n\n {min > 0 ? (\n \n {t(\"labels.min\")}: {minValue}\n \n ) : null}\n\n {max > -1 ? (\n \n {t(\"labels.max\")}: {maxValue}\n \n ) : null}\n \n )}\n \n );\n};\n\nexport { EquationSection };\n","import React, { FC } from \"react\";\nimport { EquationsWrapper, FieldWrapper, StyledDisplayLabel } from \"@src/components/styles\";\nimport { Table, Row, Header, Cell } from \"@src/components/atoms/Table\";\nimport { AggregatesTable, AggregatesWrapper } from \"../styles\";\nimport { Field, Question } from \"@src/types\";\nimport { EquationValue } from \"@src/utils/formValuesTypes\";\nimport { currencyFormatter } from \"@src/utils/purchasedTickets\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { useTranslation } from \"react-i18next\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\n\ntype Header = {\n name: string;\n type: string;\n};\n\ntype EquationsFieldProps = {\n label: string;\n value: EquationValue;\n field: Field;\n inputQuestions: Question[];\n calculatedQuestions: Question[];\n aggregateQuestions: Question[];\n};\n\nconst EquationsDisplayField: FC = ({\n label,\n value,\n inputQuestions,\n calculatedQuestions,\n aggregateQuestions,\n}) => {\n const googleTranslate = useGoogleTranslate();\n const { i18n } = useTranslation();\n const { form } = useFormInfo();\n\n const currencyCode = form?.document?.organization?.currencyCode;\n\n const { rows, aggregates } = value;\n const tableHeaders: Header[] = [...inputQuestions, ...calculatedQuestions].map((question) => {\n return { name: question.name || \"\", type: question.valueType || \"text\" };\n });\n const hasRows = rows.length > 0;\n\n const formatValue = (type: string, value: string) => {\n switch (type) {\n case \"currency\":\n return !isNaN(parseFloat(value))\n ? currencyFormatter(i18n.resolvedLanguage, currencyCode).format(parseFloat(value))\n : value;\n\n case \"decimal\":\n return !isNaN(parseFloat(value)) ? parseFloat(value).toFixed(2) : value;\n\n case \"integer\":\n return !isNaN(parseInt(value, 10)) ? parseInt(value, 10) : value;\n\n default:\n return value;\n }\n };\n\n return (\n \n {label}\n \n \n \n {tableHeaders.map((header) => (\n
{googleTranslate(header.name)}
\n ))}\n
\n\n {hasRows ? (\n <>\n {rows.map((row) => (\n \n {tableHeaders.map((header) => (\n \n {row.answers[header.name]\n ? formatValue(header.type, row.answers[header.name].value ?? \"\")\n : null}\n \n ))}\n \n ))}\n \n ) : (\n \n {tableHeaders.map((header) => (\n  \n ))}\n \n )}\n
\n
\n\n \n \n \n {aggregateQuestions.length > 0\n ? aggregateQuestions.map((question, index) => (\n \n {googleTranslate(question.name || \"\")}\n \n {question.valueType\n ? formatValue(question.valueType, aggregates[question.id].value ?? \"\")\n : aggregates[question.id].value ?? \"\"}\n \n \n ))\n : null}\n \n \n \n
\n );\n};\n\nexport { EquationsDisplayField };\n","import styled from \"styled-components\";\nimport { ButtonHTMLAttributes, DetailedHTMLProps } from \"react\";\n\nimport { defaultTheme } from \"@src/themes\";\nimport { TableWrapper } from \"@src/components/atoms/Table\";\n\ntype PropsType = DetailedHTMLProps, HTMLButtonElement>;\n\nconst colorOrDisabled =\n (color: string) =>\n (props: PropsType): string =>\n props.disabled ? defaultTheme.colors.alias.disabled : color;\n\nconst pointerOrDisabled = (props: PropsType) => (props.disabled ? \"auto\" : \"pointer\");\n\nconst AggregatesWrapper = styled.div`\n width: 100%;\n text-align: right;\n`;\n\nconst AggregatesTable = styled(TableWrapper)<{isEditing: boolean}>`\n min-width: unset;\n margin: 0 ${props => props.isEditing ? \"60px\" : \"0\"} 0 auto;\n width: auto;\n border-top: 2px solid ${defaultTheme.colors.fields.tablebordercolor};\n\n td {\n min-width: 105px;\n border-right: solid 2px #ececec;\n\n &:first-of-type {\n background-color: ${defaultTheme.colors.fields.tablebordercolor};\n font-weight: 500;\n }\n }\n`;\n\nconst NonSubmittingButton = styled.button.attrs({ type: \"button\" })``;\n\nconst EditRowButton = styled(NonSubmittingButton)`\n background: ${colorOrDisabled(defaultTheme.colors.alias.darkPrimary)};\n color: ${defaultTheme.colors.values.white};\n padding: 5px 7px;\n font-size: 12px;\n border: solid 1px ${colorOrDisabled(defaultTheme.colors.alias.darkPrimary)};\n border-radius: ${defaultTheme.borderRadius};\n margin-right: 5px;\n cursor: ${pointerOrDisabled};\n width: 50px;\n`;\n\nconst DeleteRowIcon = styled.i`\n color: ${defaultTheme.colors.values.grey};\n display: block;\n margin: 10px auto 0;\n cursor: pointer;\n width: 12px;\n font-size: 14px;\n`;\n\nconst DeleteRowButton = styled(NonSubmittingButton)`\n background: ${colorOrDisabled(defaultTheme.colors.values.red)};\n color: ${defaultTheme.colors.values.white};\n padding: 5px 7px;\n font-size: 12px;\n border: solid 1px ${colorOrDisabled(defaultTheme.colors.values.red)};\n border-radius: ${defaultTheme.borderRadius};\n cursor: ${pointerOrDisabled};\n width: 50px;\n`;\n\nconst AddRowButton = styled(NonSubmittingButton)`\n background: ${colorOrDisabled(defaultTheme.colors.alias.primary)};\n color: ${defaultTheme.colors.values.white};\n padding: 5px 7px;\n font-size: 12px;\n border: solid 1px ${colorOrDisabled(defaultTheme.colors.alias.primary)};\n border-radius: ${defaultTheme.borderRadius};\n cursor: ${pointerOrDisabled};\n width: 50px;\n margin-bottom: 5px;\n`;\n\nconst ClearRowButton = styled(NonSubmittingButton)`\n background: ${colorOrDisabled(defaultTheme.colors.values.red)};\n color: ${defaultTheme.colors.values.white};\n padding: 5px 7px;\n font-size: 12px;\n border: solid 1px ${colorOrDisabled(defaultTheme.colors.values.red)};\n border-radius: ${defaultTheme.borderRadius};\n cursor: ${pointerOrDisabled};\n width: 50px;\n`;\n\nexport {\n AggregatesWrapper,\n AggregatesTable,\n EditRowButton,\n DeleteRowButton,\n AddRowButton,\n ClearRowButton,\n DeleteRowIcon,\n};\n","import styled from \"styled-components\";\r\n\r\nconst ClearIconWrapper = styled.div`\r\n margin: 0 5px;\r\n`;\r\n\r\nexport { ClearIconWrapper };\r\n","import React, { FC } from \"react\";\nimport { FaStar, FaRegStar } from \"react-icons/fa\";\nimport omit from \"lodash/omit\";\n\nimport {\n FieldWrapper,\n StyledRequiredLabel,\n StyledSelectedStar,\n StyledUnselectedStar,\n} from \"@src/components/styles\";\nimport { CommonFieldProps } from \"../types\";\nimport { AnswerInput } from \"@src/types\";\nimport { Icon } from \"@src/components/atoms/Icon\";\nimport { ClearIconWrapper } from \"./style\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { Label } from \"@src/components/atoms/Label\";\n\ntype RatingFieldProps = CommonFieldProps;\n\nconst RatingField: FC = ({\n id,\n label,\n value,\n isRequired,\n setValue,\n saveAnswer,\n}) => {\n const rating = value?.value ? parseInt(value.value, 10) : 0;\n\n const handleChange = (rating: number) => async () => {\n const newAnswer: AnswerInput = {\n ...value,\n value: rating.toString(),\n };\n\n setValue(newAnswer);\n\n const answerId = saveAnswer ? await saveAnswer(omit(newAnswer, \"__typename\")) : \"\";\n\n setValue({\n ...newAnswer,\n answerId,\n });\n };\n\n const handleClear = () => {\n const newAnswer: AnswerInput = {\n ...value,\n value: \"\",\n };\n\n setValue(newAnswer);\n saveAnswer && saveAnswer(omit(newAnswer, \"__typename\"));\n };\n\n const selectedStar = (\n \n \n \n );\n\n const unSelectedStar = (\n \n \n \n );\n\n return (\n \n {isRequired ? : null}\n \n\n
\n
\n {rating > 0 ? selectedStar : unSelectedStar}\n
\n
\n {rating > 1 ? selectedStar : unSelectedStar}\n
\n
\n {rating > 2 ? selectedStar : unSelectedStar}\n
\n
\n {rating > 3 ? selectedStar : unSelectedStar}\n
\n
\n {rating > 4 ? selectedStar : unSelectedStar}\n
\n {rating > 0 ? (\n \n \n \n ) : null}\n
\n \n
\n );\n};\n\nexport { RatingField };\n","import React, { FC } from \"react\";\nimport { FaStar, FaRegStar } from \"react-icons/fa\";\n\nimport {\n StyledAnswerRow,\n StyledDisplayLabel,\n StyledSelectedStar,\n StyledUnselectedStar,\n} from \"@src/components/styles\";\nimport { Field } from \"@src/types\";\n\ntype RatingFieldProps = {\n field: Field;\n label: string;\n value: string;\n};\n\nconst RatingDisplayField: FC = ({ field, label, value }) => {\n const rating = value ? parseInt(value, 10) : 0;\n\n const selectedStar = (\n \n \n \n );\n\n const unSelectedStar = (\n \n \n \n );\n\n return (\n \n {label} \n {rating > 0 ? selectedStar : unSelectedStar}\n {rating > 1 ? selectedStar : unSelectedStar}\n {rating > 2 ? selectedStar : unSelectedStar}\n {rating > 3 ? selectedStar : unSelectedStar}\n {rating > 4 ? selectedStar : unSelectedStar}\n \n );\n};\n\nexport { RatingDisplayField };\n","import styled from \"styled-components\";\n\nconst AnswerBackground = styled.div`\n background-color: #e1ecf5;\n padding: 15px;\n border-radius: 5px;\n margin: 10px 0;\n`;\n\nconst ButtonRow = styled.div`\n display: flex;\n padding: 5px;\n justify-content: center;\n margin-top: 15px;\n\n > button {\n\n margin: 0 10px;\n }\n`;\n\nexport { AnswerBackground, ButtonRow };\n","import { StyledIcon } from \"@src/components/atoms/Icon\";\nimport { DefaultTheme } from \"@src/themes/default\";\nimport React, { FC } from \"react\";\nimport styled, { useTheme } from \"styled-components\";\n\nconst TrashIcon = styled(StyledIcon)`\n padding: 15px;\n`;\n\nexport type TrashButtonProps = {\n title: string;\n testId?: string;\n style?: React.CSSProperties;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst TrashButton: FC = ({ title, testId, style, onClick }) => {\n const theme = useTheme() as DefaultTheme;\n return (\n onClick(e)}\n title={title}\n data-testid={testId}\n style={style}\n />\n );\n};\n\nexport { TrashButton };\n","import React, { ChangeEventHandler, FocusEventHandler } from \"react\";\nimport omit from \"lodash/omit\";\n\nimport {\n FieldWrapper,\n MaxLengthMessage,\n StyledRequiredLabel,\n StyledTextInput,\n} from \"@src/components/styles\";\nimport { TextFieldProps } from \"../types\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { Label } from \"@src/components/atoms/Label\";\nimport { useTranslation } from \"react-i18next\";\n\nconst TextField = React.forwardRef(\n (\n {\n label,\n id,\n value,\n isRequired,\n maxLength,\n placeHolderText,\n error,\n touched,\n setValue,\n saveAnswer,\n onBlur,\n },\n ref\n ) => {\n const { t } = useTranslation();\n const handleChange: ChangeEventHandler = (event) =>\n setValue({ ...value, value: event.target.value });\n\n const handleBlur: FocusEventHandler = async (event) => {\n const newAnswer = { ...value, value: event.target.value };\n\n onBlur && onBlur(event);\n\n const answerId = saveAnswer ? await saveAnswer(omit(newAnswer, \"__typename\")) : \"\";\n\n setValue({\n ...newAnswer,\n answerId,\n });\n };\n\n return (\n \n {isRequired ? : null}\n \n\n {maxLength && maxLength > 0 ? (\n {t(\"labels.characterLimit\", { length: maxLength })}\n ) : null}\n 0 ? maxLength : undefined}\n placeholder={placeHolderText ? placeHolderText : undefined}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n \n \n );\n }\n);\n\n// This has to be set here because the component is being created on an anonymous\n// function inside the call to React.forwardRef()\nTextField.displayName = \"TextField\";\n\nexport { TextField };\n","import React, { useEffect, useRef } from \"react\";\r\nimport { useField } from \"formik\";\r\nimport { useDebounce } from \"use-debounce\";\r\n\r\nimport { AnswerInput, Field } from \"@src/types\";\r\nimport { getFieldKey, getLabel } from \"@src/utils/getters\";\r\nimport { useFieldValidation } from \"@src/utils/validation\";\r\nimport { TextField } from \"../TextField\";\r\nimport { useGoogleTranslate } from \"@src/utils/translation\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\ntype AddressInnerFieldProps = {\r\n field: Field;\r\n parentFieldId: string;\r\n saveAnswer?: (answer: AnswerInput) => Promise;\r\n};\r\n\r\nconst AddressInnerField = React.forwardRef(\r\n ({ field, parentFieldId, saveAnswer }, ref) => {\r\n const { t } = useTranslation();\r\n const googleTranslate = useGoogleTranslate();\r\n\r\n const fieldKey = getFieldKey(field, parentFieldId);\r\n const label = googleTranslate(getLabel(field));\r\n const isRequired = field.question?.isRequired ?? false;\r\n\r\n const placeHolder = field.question?.placeHolderText\r\n ? googleTranslate(field.question?.placeHolderText)\r\n : ref\r\n ? t(\"placeholders.enterALocation\")\r\n : \"\";\r\n\r\n const validate = useFieldValidation(field);\r\n\r\n const [input, meta, helpers] = useField({ name: fieldKey, validate });\r\n\r\n const inputValueRef = useRef(input.value);\r\n inputValueRef.current = input.value;\r\n \r\n const [debouncedValue, debounceControls] = useDebounce(input.value, 2000, {\r\n leading: false,\r\n trailing: true,\r\n });\r\n\r\n // Saves the answer whenever the debounced value changes.\r\n // The value of the field can change due to the user typing on it or selecting an address.\r\n // This centralizes the saving of the answer in a single place no matter how it changed.\r\n useEffect(() => {\r\n save(debouncedValue);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedValue]);\r\n\r\n // Flushes the debounced callback when the component unmounts\r\n // so values entered right before clicking \"Next\" are saved.\r\n useEffect(() => {\r\n return () => {\r\n if (debounceControls.isPending()) {\r\n // Save the absolute latest answer when this component unmounts.\r\n save(inputValueRef.current);\r\n }\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const save = async (newAnswer: AnswerInput) => {\r\n const answerId = saveAnswer ? await saveAnswer(newAnswer) : \"\";\r\n\r\n const newValue = answerId ? { ...newAnswer, answerId } : newAnswer;\r\n\r\n helpers.setValue(newValue);\r\n };\r\n\r\n const setValue = async (value: AnswerInput) => {\r\n value && helpers.setValue(value);\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n);\r\n\r\n// This has to be set here because the component is being created on an anonyous\r\n// function inside the call to React.forwardRef()\r\nAddressInnerField.displayName = \"AddressInnerField\";\r\n\r\nexport { AddressInnerField };\r\n","import { useEffect, useRef } from \"react\";\r\n\r\ntype useGoogleAddressProps = {\r\n onPlaceSelected: (place: google.maps.places.PlaceResult) => void;\r\n};\r\n\r\nconst useGoogleAddress = ({ onPlaceSelected }: useGoogleAddressProps) => {\r\n const autoCompleteRef = useRef(null);\r\n const inputRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (inputRef.current) {\r\n autoCompleteRef.current = new window.google.maps.places.Autocomplete(inputRef.current, {\r\n types: [\"address\"],\r\n });\r\n\r\n autoCompleteRef.current.addListener(\"place_changed\", async () => {\r\n if (autoCompleteRef.current) {\r\n const place = await autoCompleteRef.current.getPlace();\r\n onPlaceSelected(place);\r\n }\r\n });\r\n\r\n inputRef.current.addEventListener(\"blur\", async () => {\r\n\r\n window.setTimeout(() => {\r\n // this is a complete hack. when the browser auto complete is used\r\n // the google autocomplete list can get detached from any event (it seems)\r\n // and is stuck visible on the screen. this at least hides it\r\n const containers = document.getElementsByClassName(\"pac-container\");\r\n for (let index = 0; index < containers.length; index++)\r\n containers[index].setAttribute(\"style\", \"display: none\");\r\n }, 500);\r\n });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return inputRef;\r\n};\r\n\r\nexport { useGoogleAddress };\r\n","import React, { FC, useMemo } from \"react\";\nimport keyBy from \"lodash/keyBy\";\n\nimport { Answer, AnswerInput, Field } from \"@src/types\";\nimport { PossibleFieldValue } from \"@src/utils/formValuesTypes\";\nimport { getFieldKey } from \"@src/utils/getters\";\nimport { getAddressInnerFieldValues } from \"@src/utils/address\";\nimport { AddressInnerField } from \"./AddressInnerField\";\nimport { useGoogleAddress } from \"@src/customHooks/useGoogleAddress\";\nimport { Label } from \"@src/components/atoms/Label\";\n\nexport type PlaceSelectedResult = {\n province: string | null;\n city: string | null;\n postalCode: string | null;\n streetAddress: string | null;\n};\n\ntype AddressFieldProps = {\n id: string;\n label: string;\n fields: Field[];\n value: Record;\n error?: Record;\n setValue: (value: PossibleFieldValue) => void;\n saveAnswer?: (answer: AnswerInput) => Promise;\n};\n\nconst AddressField: FC = ({\n id,\n label,\n fields,\n value,\n setValue,\n saveAnswer,\n}) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const fieldsDictionary = useMemo(() => keyBy(fields, (field) => getFieldKey(field)), []);\n\n const onPlaceSelected = (place: google.maps.places.PlaceResult) => {\n const newValue = getAddressInnerFieldValues({ fieldsDictionary, value, place });\n\n setValue(newValue);\n };\n\n const inputRef = useGoogleAddress({ onPlaceSelected });\n\n return (\n
\n \n\n {Object.keys(fieldsDictionary).map((fieldKey) => {\n const addressField = fieldsDictionary[fieldKey];\n const questionName = addressField.question?.name || \"\";\n const isMainAddressField = questionName === \"streetAddress\";\n\n return (\n \n );\n })}\n
\n );\n};\n\nexport { AddressField };\n","import React, { FC, useEffect, useState } from \"react\";\nimport omit from \"lodash/omit\";\n\nimport { AnswerInput } from \"@src/types\";\nimport { parseStringIntoArray } from \"@src/utils/typeConverters\";\nimport { FieldWrapper, StyledCheckbox, StyledLabel, StyledRequiredLabel } from \"../../styles\";\nimport { MutlipleChoiceProps } from \"../types\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { Label } from \"@src/components/atoms/Label\";\n\nconst CheckboxField: FC = ({\n id,\n label,\n value,\n isRequired,\n options,\n pinnedValueOptions,\n sort,\n setValue,\n saveAnswer,\n}) => {\n const [answerId, setAnswerId] = useState(value.answerId ?? \"\");\n\n const googleTranslate = useGoogleTranslate();\n let selectedOptions = value?.value ? parseStringIntoArray(value.value) : [];\n\n // for fields like integrated fields it's possible the stored answer is no longer\n // an option to select from\n selectedOptions = selectedOptions.filter((x) => options.indexOf(x) > -1);\n\n if (sort) {\n options.sort();\n }\n\n if (pinnedValueOptions) {\n options = options.filter((x) => !pinnedValueOptions.includes(x));\n options.unshift(...pinnedValueOptions);\n }\n\n // Once we get an answerId, add it to the answer.\n // This id will be reused whenever a new answer is created, so this should run only once\n // after render.\n useEffect(() => {\n if (answerId) {\n setValue({ ...value, answerId });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [answerId]);\n\n const handleChange = (option: string) => async () => {\n const updatedOptions = selectedOptions.includes(option)\n ? selectedOptions.filter((selectedOption) => selectedOption !== option)\n : [...selectedOptions, option];\n\n const newAnswer: AnswerInput = omit(\n {\n ...value,\n value: JSON.stringify(updatedOptions),\n },\n \"__typename\"\n );\n\n setValue(newAnswer);\n\n const newAnswerId = saveAnswer ? await saveAnswer(newAnswer) : \"\";\n\n // Triggers the useEffect that adds the answerId to the answer.\n newAnswerId !== answerId && setAnswerId(newAnswerId);\n };\n\n return value ? (\n \n {isRequired ? : null}\n \n\n {options.map((option) => (\n \n \n {googleTranslate(option)}\n \n ))}\n\n \n \n ) : null;\n};\n\nexport { CheckboxField };\n","import React from \"react\";\r\n\r\ninterface Props {\r\n id: string;\r\n label: string;\r\n placeholder: string;\r\n selectedOption?: string | null;\r\n options: string[];\r\n class?: string;\r\n disabled?: boolean;\r\n\r\n onChange?(value: string): void;\r\n}\r\n\r\nexport class DateOption extends React.Component {\r\n public render(): JSX.Element {\r\n const classNames = [\"date-option\"];\r\n\r\n if (this.props.class) {\r\n classNames.push(this.props.class);\r\n }\r\n\r\n return (\r\n
\r\n \r\n {this.props.label}\r\n {this.renderList()}\r\n \r\n
\r\n );\r\n }\r\n\r\n private renderList() {\r\n return (\r\n this.onClick(e)}\r\n onChange={(event) => this.onSelected(event.target.value)}\r\n disabled={!this.props.options || this.props.options.length === 0 || this.props.disabled}\r\n >\r\n \r\n {this.props.options.map((x, index) => (\r\n \r\n ))}\r\n \r\n );\r\n }\r\n\r\n private onSelected(value: string) {\r\n this.props.onChange && value !== \"-1\" && this.props.onChange(value);\r\n this.setState({ openList: false });\r\n }\r\n\r\n private onClick(event: React.MouseEvent) {\r\n event.stopPropagation();\r\n }\r\n}\r\n","import React from \"react\";\r\nimport dayjs from \"dayjs\";\r\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\r\nimport { i18next } from \"@src/translations\";\r\nimport common_en from \"@src/translations/en/common.json\";\r\n\r\nimport { getYears } from \"@src/utils/dateTime\";\r\nimport { Icon } from \"@src/components/atoms/Icon\";\r\nimport { DateFormats, ErrorObject } from \"../types\";\r\nimport { DateOption } from \"../../atoms/DateOption\";\r\nimport { AnswerInput } from \"@src/types\";\r\nimport { DateFillWrapper, FieldWrapper, StyledRequiredLabel } from \"@src/components/styles\";\r\nimport { FieldError } from \"@src/components/atoms/FieldError\";\r\nimport { Normalize } from \"react-i18next\";\r\nimport { Label } from \"@src/components/atoms/Label\";\r\nimport { useGoogleTranslate } from \"@src/utils/translation\";\r\n\r\ndayjs.extend(customParseFormat);\r\n\r\ninterface _Props {\r\n id: string;\r\n minDate?: dayjs.Dayjs;\r\n isRequired?: boolean;\r\n format?: string;\r\n answer: AnswerInput;\r\n readonly?: boolean;\r\n disabled?: boolean;\r\n years?: string[];\r\n hideState?: boolean;\r\n allowChangeOnInvalid?: boolean;\r\n label: string;\r\n error?: ErrorObject | string;\r\n showClearIcon?: boolean;\r\n\r\n setValue?(value: AnswerInput): void;\r\n saveAnswer?(value: AnswerInput): Promise;\r\n googleTranslate: (text: string) => string;\r\n}\r\n\r\ninterface State {\r\n year: number | null;\r\n month: number | null;\r\n day: number | null;\r\n relativeMode: boolean;\r\n}\r\n\r\nexport class _DateField extends React.Component<_Props, State> {\r\n private years: string[];\r\n private months: string[];\r\n\r\n public constructor(props: _Props) {\r\n super(props);\r\n\r\n this.years = props.years ? props.years : getYears();\r\n this.months = [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\r\n\r\n const value = this.getValue();\r\n\r\n this.state = {\r\n year: value && value.isValid() ? value.year() : null,\r\n month: value && value.isValid() ? value.month() + 1 : null,\r\n day: value && value.isValid() ? value.date() : null,\r\n relativeMode: false,\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: { answer: AnswerInput }) {\r\n if (prevProps.answer !== this.props.answer) {\r\n const value = this.getValue();\r\n\r\n this.setState({\r\n year: value && value.isValid() ? value.year() : null,\r\n month: value && value.isValid() ? value.month() + 1 : null,\r\n day: value && value.isValid() ? value.date() : null,\r\n relativeMode: false,\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const stateValue = this.getValueState();\r\n const value = this.getValue();\r\n const days = this.getDays();\r\n\r\n return (\r\n \r\n {this.props.isRequired ? : null}\r\n \r\n\r\n \r\n
\r\n {this.props.showClearIcon && (this.state.year || this.state.month || this.state.day) ? (\r\n this.removeAnswer()} />\r\n ) : null}\r\n\r\n this.onYearChanged(x)}\r\n label={this.t(\"labels.year\")}\r\n placeholder=\"yyyy\"\r\n />\r\n\r\n /\r\n\r\n this.onMonthChanged(x)}\r\n label={this.t(\"labels.month\")}\r\n placeholder=\"mm\"\r\n />\r\n\r\n /\r\n\r\n this.onDayChanged(x)}\r\n label={this.t(\"labels.day\")}\r\n placeholder=\"dd\"\r\n />\r\n
\r\n\r\n {!this.props.hideState ? (\r\n value && value.isValid() ? (\r\n

\r\n {this.t(\"messages.youHaveSelected\", {\r\n dateTime: this.props.googleTranslate(value.format(this.getFormat())),\r\n })}\r\n

\r\n ) : stateValue.isValid() && !this.meetsMinimum(stateValue) ? (\r\n \r\n {this.t(\"messages.selectionDoesNotExceed\", {\r\n date: stateValue.format(this.getFormat()),\r\n minDate: this.props.minDate ? this.props.minDate.format(this.getFormat()) : \"\",\r\n })}\r\n

\r\n ) : (\r\n \r\n {this.t(\"messages.noDateSelected\")}\r\n

\r\n )\r\n ) : null}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private removeAnswer() {\r\n this.setState(\r\n {\r\n year: null,\r\n month: null,\r\n day: null,\r\n },\r\n () => {\r\n const emptyAnswer = {\r\n ...this.props.answer,\r\n value: \"\",\r\n };\r\n\r\n this.props.setValue && this.props.setValue(emptyAnswer);\r\n this.props.saveAnswer && this.props.saveAnswer(emptyAnswer);\r\n }\r\n );\r\n }\r\n\r\n private onYearChanged(year: string) {\r\n this.setState({ year: parseInt(year, 10) }, () => this.modified());\r\n }\r\n\r\n private onMonthChanged(month: string) {\r\n this.setState({ month: parseInt(month, 10) }, () => this.modified());\r\n }\r\n\r\n private onDayChanged(day: string) {\r\n this.setState({ day: parseInt(day, 10) }, () => this.modified());\r\n }\r\n\r\n private isValid(): boolean {\r\n const invalidStates = [null, undefined, NaN];\r\n\r\n return (\r\n !invalidStates.includes(this.state.year) &&\r\n !invalidStates.includes(this.state.month) &&\r\n !invalidStates.includes(this.state.day)\r\n );\r\n }\r\n\r\n private getValue(): dayjs.Dayjs {\r\n const currentValue = this.props.answer ? this.props.answer.value : \"\";\r\n let parsedValue = dayjs(currentValue, this.getFormat());\r\n\r\n if (!parsedValue.isValid()) {\r\n parsedValue = dayjs(currentValue);\r\n }\r\n\r\n return parsedValue;\r\n }\r\n\r\n private getValueState(): dayjs.Dayjs {\r\n const formattedMonth =\r\n this.state.month && this.state.month < 10 ? `0${this.state.month}` : this.state.month;\r\n const formattedDay =\r\n this.state.day && this.state.day < 10 ? `0${this.state.day}` : this.state.day;\r\n\r\n return dayjs(`${this.state.year}${formattedMonth}${formattedDay}`);\r\n }\r\n\r\n private getDays() {\r\n const days: string[] = [];\r\n\r\n if (this.state.year && this.state.month) {\r\n const daysInMonth = new Date(this.state.year, this.state.month, 0).getDate();\r\n\r\n for (let index = 1; index <= daysInMonth; index++) {\r\n if (index < 10) {\r\n days.push(`0${index}`);\r\n } else {\r\n days.push(index.toString());\r\n }\r\n }\r\n }\r\n\r\n return days;\r\n }\r\n\r\n private getFormat() {\r\n return Object.values(DateFormats).includes(this.props.format ?? \"\")\r\n ? this.props.format\r\n : DateFormats.MonthDayYear;\r\n }\r\n\r\n private meetsMinimum(currentValue: dayjs.Dayjs): boolean {\r\n if (this.props.minDate === undefined) {\r\n return true;\r\n }\r\n\r\n return this.props.minDate < currentValue;\r\n }\r\n\r\n private async modified() {\r\n const isValid = this.isValid();\r\n\r\n if (!this.props.readonly && (isValid || this.props.allowChangeOnInvalid)) {\r\n const value = this.getValueState();\r\n\r\n if (this.meetsMinimum(value)) {\r\n const format = this.getFormat();\r\n\r\n const newAnswer = {\r\n ...this.props.answer,\r\n value: value.format(format),\r\n };\r\n\r\n this.props.setValue && this.props.setValue(newAnswer);\r\n\r\n const answerId = this.props.saveAnswer ? await this.props.saveAnswer(newAnswer) : \"\";\r\n this.props.setValue && this.props.setValue({ ...newAnswer, answerId });\r\n }\r\n }\r\n }\r\n\r\n private getError() {\r\n if (typeof this.props.error === \"string\" || this.props.error instanceof String) {\r\n return this.props.error as string;\r\n } else {\r\n return this.props.error?.value || \"\";\r\n }\r\n }\r\n\r\n private t(translationKey: Normalize, variables?: Record) {\r\n return i18next.t(translationKey, variables);\r\n }\r\n}\r\n\r\ninterface Props {\r\n id: string;\r\n minDate?: dayjs.Dayjs;\r\n isRequired?: boolean;\r\n format?: string;\r\n answer: AnswerInput;\r\n readonly?: boolean;\r\n disabled?: boolean;\r\n years?: string[];\r\n hideState?: boolean;\r\n allowChangeOnInvalid?: boolean;\r\n label: string;\r\n error?: ErrorObject | string;\r\n showClearIcon?: boolean;\r\n\r\n setValue?(value: AnswerInput): void;\r\n saveAnswer?(value: AnswerInput): Promise;\r\n}\r\n\r\n// Passes a hook down to the class component\r\nexport const DateField = (props: Props) => {\r\n const googleTranslate = useGoogleTranslate();\r\n return <_DateField {...props} googleTranslate={googleTranslate} />;\r\n};\r\n","import React, { Component, ErrorInfo } from \"react\";\nimport { Normalize } from \"react-i18next\";\n\nimport common_en from \"@src/translations/en/common.json\";\nimport { i18next } from \"@src/translations\";\n\ninterface Props {\n children: JSX.Element;\n name?: string;\n}\n\ninterface State {\n hasError: boolean;\n}\n\nclass ErrorBoundary extends Component {\n public state: State = {\n hasError: false,\n };\n\n public static getDerivedStateFromError(): State {\n return { hasError: true };\n }\n\n public componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n console.error(`Uncaught error in ${this.props.name}:`, error, errorInfo);\n }\n\n private t(translationKey: Normalize, variables?: Record) {\n return i18next.t(translationKey, variables);\n }\n\n public render(): JSX.Element {\n if (this.state.hasError) {\n // TODO: Redirect to full page error message with generic message\n return

{this.t(\"errors.500\")}

;\n }\n\n return this.props.children;\n }\n}\n\nexport { ErrorBoundary };\n","import React, { FC } from \"react\";\n\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { FieldWrapper, StyledRequiredLabel } from \"@src/components/styles\";\nimport { AnswerInput, Field } from \"@src/types\";\nimport { FieldSelector } from \"../FieldSelector\";\nimport { Label } from \"@src/components/atoms/Label\";\nimport { useTranslation } from \"react-i18next\";\n\ntype IntegratedDataFieldProps = {\n id: string;\n label: string;\n field: Field;\n isRequired: boolean;\n readOnly: boolean;\n originalValue: AnswerInput;\n error?: string;\n saveAnswer?: (answer: AnswerInput) => Promise;\n};\n\nconst IntegratedDataField: FC = ({\n id,\n label,\n field,\n isRequired,\n readOnly,\n originalValue,\n saveAnswer,\n}) => {\n const { t } = useTranslation();\n\n return (\n \n {isRequired ? : null}\n {label ? : null}\n {\" \"}\n \n {originalValue?.value ? originalValue?.value : t(\"messages.noValueOnRecord\")}\n \n {!readOnly ? (\n \n ) : null}\n \n \n );\n};\n\nexport { IntegratedDataField };\n","import { useField } from \"formik\";\nimport React, { FC } from \"react\";\n\nimport { ErrorBoundary } from \"@src/components/atoms/ErrorBoundary\";\nimport { StyledDivider } from \"@src/components/styles\";\nimport { AnswerInput, Field, FieldType } from \"@src/types\";\nimport {\n getEquationAggregateQuestions,\n getEquationCalculatedQuestions,\n getEquationInputQuestions,\n} from \"@src/utils/equations\";\nimport { PossibleFieldValue } from \"@src/utils/formValuesTypes\";\nimport {\n getDateFormat,\n getFieldKey,\n getHeaderText,\n getLabel,\n getPhoneFormat,\n getPinnedValueOptions,\n getSubheaderText,\n getValueOptions,\n} from \"@src/utils/getters\";\nimport { useFieldValidation } from \"@src/utils/validation\";\nimport {\n AddressField,\n CheckboxField,\n DateField,\n DropdownConditionalField,\n DropdownField,\n EquationsField,\n HeaderField,\n ParagraphField,\n PhoneField,\n RatingField,\n RepeatableQuestionField,\n TextAreaField,\n TextField,\n TimeField,\n UploadField,\n YesNoConditionalField,\n YesNoField,\n} from \"..\";\nimport { IntegratedDataField } from \"../IntegratedDataField\";\nimport { getAddressInnerFields } from \"@src/utils/address\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\n\nexport type FieldSelectorProps = {\n field: Field;\n containerQuestionId?: string;\n isCollapsed?: boolean;\n uploadUrl?: string;\n viewFileUrl?: string;\n hideLabel?: boolean;\n isTicketQuestion?: boolean;\n saveAnswer?: (answer: AnswerInput) => Promise;\n deleteAnswer?: (answer: AnswerInput) => Promise;\n handleToggleCollapse?: (id: string) => void;\n fileSelected?: (fieldId: string, questionId: string, file: File) => void;\n fileRemoved?: (fieldId: string, questionId: string) => void;\n};\n\nconst FieldSelector: FC = ({\n field,\n containerQuestionId,\n isCollapsed,\n uploadUrl,\n viewFileUrl,\n hideLabel,\n isTicketQuestion,\n saveAnswer,\n deleteAnswer,\n handleToggleCollapse,\n fileSelected,\n fileRemoved,\n}) => {\n const googleTranslate = useGoogleTranslate();\n const id = getFieldKey(field, containerQuestionId);\n const label = hideLabel ? \"\" : googleTranslate(getLabel(field));\n const isRequired = field.question?.isRequired ?? false;\n const placeHolder = field.question?.placeHolderText\n ? googleTranslate(field.question?.placeHolderText)\n : \"\";\n\n const validate = useFieldValidation(field);\n const [input, meta, helpers] = useField({ name: id, validate });\n const error = meta.error;\n\n const setValue = async (value: PossibleFieldValue) => {\n value && helpers.setValue(value);\n };\n\n if (field.type !== FieldType.Header && field.type !== FieldType.Section && isCollapsed) {\n return null;\n }\n\n switch (field.type) {\n case FieldType.MultiFieldConditional:\n case FieldType.Conditional:\n return (\n \n \n \n );\n\n case FieldType.SelectConditional:\n return (\n \n \n \n );\n\n case FieldType.RepeatableQuestion:\n return (\n \n \n \n );\n\n case FieldType.Select:\n case FieldType.Dropdown:\n return (\n \n \n \n );\n\n case FieldType.Multiline:\n return (\n \n \n \n );\n\n case FieldType.Multiselect:\n case FieldType.Selectmultiple:\n return (\n \n \n \n );\n\n case FieldType.Singleline:\n case FieldType.PostalZip:\n return (\n \n \n \n );\n\n case FieldType.Yesno:\n return (\n \n \n \n );\n\n case FieldType.Header:\n case FieldType.Section:\n return (\n \n \n \n );\n\n case FieldType.Divider:\n return ;\n\n case FieldType.Descriptivetext:\n return (\n \n \n \n );\n\n case FieldType.Address:\n return (\n \n }\n setValue={setValue}\n saveAnswer={saveAnswer}\n />\n \n );\n\n case FieldType.Date:\n return (\n \n \n \n );\n\n case FieldType.Phonenumber:\n return (\n \n \n \n );\n\n case FieldType.Rating:\n return (\n \n \n \n );\n\n case FieldType.Time:\n return (\n \n \n \n );\n\n case FieldType.Upload:\n return (\n \n \n \n );\n\n case FieldType.Equations:\n return saveAnswer && deleteAnswer ? (\n \n \n \n ) : null;\n\n case FieldType.IntegratedData:\n return saveAnswer && field.fields && field.fields.length === 1 ? (\n \n \n \n ) : null;\n\n default:\n return null;\n }\n};\n\nexport { FieldSelector };\n","import React, { ChangeEventHandler, FC } from \"react\";\nimport omit from \"lodash/omit\";\n\nimport { getPinnedValueOptions, getValueOptions } from \"@src/utils/getters\";\nimport {\n FieldWrapper,\n StyledSelect,\n StyledOption,\n StyledRequiredLabel,\n} from \"@src/components/styles\";\nimport { AnswerInput, Field } from \"@src/types\";\nimport { FieldSelector } from \"../FieldSelector\";\nimport { ConditionalValue } from \"@src/utils/formValuesTypes\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { getFormInitialValues } from \"@src/utils/formValues\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { useTranslation } from \"react-i18next\";\nimport { Label } from \"@src/components/atoms/Label\";\nimport { deleteNestedAnswers } from \"@src/utils/answers\";\n\ntype DropdownConditionalProps = {\n id: string;\n label: string;\n value: ConditionalValue;\n isRequired: boolean;\n field: Field;\n uploadUrl?: string;\n viewFileUrl?: string;\n error?: Record | string;\n setValue: (value: ConditionalValue) => void;\n saveAnswer?: (answer: AnswerInput) => Promise;\n deleteAnswer?: (answer: AnswerInput) => Promise;\n};\n\nconst DropdownConditionalField: FC = ({\n id,\n label,\n value,\n isRequired,\n field,\n uploadUrl,\n viewFileUrl,\n setValue,\n saveAnswer,\n deleteAnswer,\n}) => {\n const { t } = useTranslation();\n const googleTranslate = useGoogleTranslate();\n\n let options = getValueOptions(field);\n const pinnedValueOptions = getPinnedValueOptions(field);\n\n if (field.question?.sortValueOptions) {\n options.sort();\n }\n\n if (pinnedValueOptions) {\n options = options.filter((x) => !pinnedValueOptions.includes(x));\n options.unshift(...pinnedValueOptions);\n }\n\n const selectedIndex = getValueOptions(field).findIndex((option) => option === value.answer.value);\n const selectedOptionFields =\n selectedIndex >= 0 && field.fields && field.fields[selectedIndex]\n ? field.fields[selectedIndex].fields || []\n : [];\n\n const handleChange: ChangeEventHandler = async ({\n target: { value: eventValue },\n }) => {\n const newAnswer: AnswerInput = omit({ ...value.answer, value: eventValue }, \"__typename\");\n\n if (eventValue !== value.answer.value) {\n if (!eventValue) {\n const allFields = field.fields\n ? field.fields.flatMap((fieldGroup) => (fieldGroup.fields ? fieldGroup.fields : []))\n : [];\n\n const clearedFields = getFormInitialValues({ fields: allFields });\n\n deleteNestedAnswers({ clearedFields, value, deleteAnswer });\n\n const newValue = {\n ...clearedFields,\n answer: newAnswer,\n };\n\n setValue(newValue);\n\n const answerId = saveAnswer ? await saveAnswer(newValue.answer) : \"\";\n\n setValue({\n ...newValue,\n answer: {\n ...newValue.answer,\n answerId,\n },\n });\n } else {\n const newValue = {\n ...value,\n answer: newAnswer,\n };\n\n setValue(newValue);\n\n const answerId = saveAnswer ? await saveAnswer(newValue.answer) : \"\";\n\n setValue({\n ...newValue,\n answer: {\n ...newValue.answer,\n answerId,\n },\n });\n }\n }\n };\n\n return (\n \n {isRequired ? : null}\n \n\n \n {t(\"labels.selectAnOption\")}\n\n {options.map((option) => (\n \n {googleTranslate(option)}\n \n ))}\n \n\n {selectedOptionFields.map((field) => (\n \n ))}\n \n \n );\n};\n\nexport { DropdownConditionalField };\n","import React, { FC } from \"react\";\n\nimport { HeaderContainer, StyledHeader, StyledSubheader } from \"../../styles\";\n\ntype HeaderFieldProps = {\n fieldId: string;\n headerText: string;\n subheaderText?: string;\n collapsible: boolean;\n isCollapsed: boolean;\n handleToggleCollapse?: (fieldId: string) => void;\n};\n\nconst HeaderField: FC = ({\n fieldId,\n headerText,\n subheaderText,\n collapsible,\n isCollapsed,\n handleToggleCollapse,\n}) => {\n return (\n \n \n {headerText}\n {collapsible && handleToggleCollapse ? (\n isCollapsed ? (\n handleToggleCollapse(fieldId)} className=\"fa fa-caret-right\">\n ) : (\n handleToggleCollapse(fieldId)} className=\"fa fa-caret-down\">\n )\n ) : null}\n \n {isCollapsed ? null : {subheaderText}}\n \n );\n};\n\nexport { HeaderField };\n","import React, { FC } from \"react\";\nimport { Froala } from \"@src/components/atoms/Froala\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\n\ntype ParagraphFieldProps = {\n text: string;\n};\n\nconst ParagraphField: FC = ({ text }) => {\n const googleTranslate = useGoogleTranslate();\n\n return ;\n};\n\nexport { ParagraphField };\n","import React, { ChangeEventHandler, FC, FocusEventHandler } from \"react\";\nimport NumberFormat from \"react-number-format\";\nimport omit from \"lodash/omit\";\n\nimport { FieldWrapper, StyledRequiredLabel, StyledTextInput } from \"@src/components/styles\";\nimport { TextFieldProps } from \"../types\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport styled from \"styled-components\";\nimport { defaultTheme } from \"@src/themes\";\nimport { Label } from \"@src/components/atoms/Label\";\n\ntype PhoneFieldProps = TextFieldProps & {\n phoneFormat: string;\n};\n\nconst PhoneErrorContainer = styled.div<{ hasError?: boolean }>`\n > input {\n width: 100%;\n background-color: ${(props) => (props.hasError ? \"#ffdfdf\" : \"inherit\")};\n border: 1.25px solid\n ${(props) => (props.hasError ? \"red\" : defaultTheme.colors.fields.bordercolor)};\n }\n`;\n\nconst PhoneField: FC = ({\n id,\n label,\n error,\n touched,\n phoneFormat,\n value,\n isRequired,\n setValue,\n saveAnswer,\n}) => {\n const handleChange: ChangeEventHandler = (e) =>\n setValue({ ...value, value: e.target.value });\n\n const handleBlur: FocusEventHandler = async (e) => {\n const newAnswer = { ...value, value: e.target.value };\n\n const answerId = saveAnswer ? await saveAnswer(omit(newAnswer, \"__typename\")) : \"\";\n\n setValue({\n ...newAnswer,\n answerId,\n });\n };\n\n return (\n \n {isRequired ? : null}\n \n\n \n \n \n\n \n \n );\n};\n\nexport { PhoneField };\n","import React, { FC } from \"react\";\nimport omit from \"lodash/omit\";\n\nimport {\n FieldWrapper,\n StyledOption,\n StyledRequiredLabel,\n StyledSelect,\n} from \"@src/components/styles\";\nimport { MutlipleChoiceProps } from \"../types\";\nimport { AnswerInput } from \"@src/types\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { useTranslation } from \"react-i18next\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { Label } from \"@src/components/atoms/Label\";\n\nconst DropdownField: FC = ({\n id,\n label,\n value,\n options,\n pinnedValueOptions,\n sort,\n isRequired,\n error,\n touched,\n setValue,\n saveAnswer,\n}) => {\n const { t } = useTranslation();\n const googleTranslate = useGoogleTranslate();\n\n if (sort) {\n options.sort();\n }\n\n if (pinnedValueOptions) {\n options = options.filter((x) => !pinnedValueOptions.includes(x));\n options.unshift(...pinnedValueOptions);\n }\n\n const handleChange = async (e: React.ChangeEvent) => {\n const newAnswer: AnswerInput = omit(\n {\n ...value,\n value: e.target.value,\n },\n \"__typename\"\n );\n\n setValue(newAnswer);\n\n const answerId = saveAnswer ? await saveAnswer(newAnswer) : \"\";\n\n setValue({\n ...newAnswer,\n answerId,\n });\n };\n\n return (\n \n {isRequired ? : null}\n \n\n \n {t(\"labels.selectAnOption\")}\n\n {options.map((option) => (\n \n {googleTranslate(option)}\n \n ))}\n \n \n \n );\n};\n\nexport { DropdownField };\n","import React, { ChangeEventHandler, FC, FocusEventHandler } from \"react\";\nimport omit from \"lodash/omit\";\n\nimport {\n FieldWrapper,\n MaxLengthMessage,\n StyledRequiredLabel,\n StyledTextArea,\n} from \"@src/components/styles\";\nimport { TextFieldProps } from \"../types\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { Label } from \"@src/components/atoms/Label\";\nimport { useTranslation } from \"react-i18next\";\n\ntype TextAreaFieldProps = TextFieldProps;\n\nconst TextAreaField: FC = ({\n label,\n id,\n value,\n isRequired,\n error,\n touched,\n maxLength,\n placeHolderText,\n setValue,\n saveAnswer,\n}) => {\n const { t } = useTranslation();\n const handleChange: ChangeEventHandler = (event) =>\n setValue({ ...value, value: event.target.value });\n\n const handleBlur: FocusEventHandler = async (event) => {\n const newValue = { ...value, value: event.target.value };\n\n const answerId = saveAnswer ? await saveAnswer(omit(newValue, \"__typename\")) : \"\";\n\n setValue({\n ...newValue,\n answerId,\n });\n };\n\n return (\n \n {isRequired ? : null}\n \n\n {maxLength && maxLength > 0 ? (\n {t(\"labels.characterLimit\", { length: maxLength })}\n ) : null}\n 0 ? maxLength : undefined}\n placeholder={placeHolderText ? placeHolderText : undefined}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n \n \n );\n};\n\nexport { TextAreaField };\n","import React from \"react\";\r\nimport { i18next } from \"@src/translations\";\r\nimport common_en from \"@src/translations/en/common.json\";\r\n\r\nimport { DateOption } from \"@src/components/atoms/DateOption\";\r\nimport { Icon } from \"@src/components/atoms/Icon\";\r\nimport { AnswerInput } from \"@src/types\";\r\nimport { DateFillWrapper, FieldWrapper, StyledRequiredLabel } from \"@src/components/styles\";\r\nimport { ErrorObject } from \"../types\";\r\nimport { FieldError } from \"@src/components/atoms/FieldError\";\r\nimport { Normalize } from \"react-i18next\";\r\nimport { Label } from \"@src/components/atoms/Label\";\r\n\r\ninterface Props {\r\n id: string;\r\n isRequired?: boolean;\r\n value: AnswerInput;\r\n readonly?: boolean;\r\n hideState?: boolean;\r\n allowChangeOnInvalid?: boolean;\r\n disabled?: boolean;\r\n label: string;\r\n error?: ErrorObject | string;\r\n showClearIcon?: boolean;\r\n\r\n setValue?(value: AnswerInput): void;\r\n saveAnswer?(answer: AnswerInput): Promise;\r\n}\r\n\r\ninterface State {\r\n hour?: string | null;\r\n minute?: string | null;\r\n amPm?: string | null;\r\n relativeMode: boolean;\r\n}\r\n\r\nexport class TimeField extends React.Component {\r\n private hours = [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\r\n private minutes: string[];\r\n private amPmOptions: string[] = [\"AM\", \"PM\"];\r\n\r\n public constructor(props: Props) {\r\n super(props);\r\n\r\n const { hour, minute, amPm } = this.getValue();\r\n this.minutes = [];\r\n\r\n for (let index = 0; index < 60; index++) {\r\n this.minutes.push(index < 10 ? `0${index}` : `${index}`);\r\n }\r\n\r\n this.state = {\r\n hour,\r\n minute,\r\n amPm,\r\n relativeMode: false,\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: { value: AnswerInput }) {\r\n if (prevProps.value !== this.props.value) {\r\n const { hour, minute, amPm } = this.getValue();\r\n\r\n this.setState({\r\n hour,\r\n minute,\r\n amPm,\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n \r\n {this.props.isRequired ? : null}\r\n \r\n\r\n \r\n
\r\n {this.props.showClearIcon &&\r\n (this.state.hour || this.state.minute || this.state.amPm) ? (\r\n this.removeAnswer()} />\r\n ) : null}\r\n\r\n this.onHourChanged(x)}\r\n label={this.t(\"labels.hour\")}\r\n placeholder=\"hh\"\r\n />\r\n\r\n :\r\n\r\n this.onMinuteChanged(x)}\r\n label={this.t(\"labels.minute\")}\r\n placeholder=\"mm\"\r\n />\r\n\r\n this.onAmPmChanged(x)}\r\n label={this.t(\"labels.amPm\")}\r\n placeholder=\"--\"\r\n />\r\n
\r\n\r\n {!this.props.hideState ? (\r\n this.isValid() ? (\r\n

\r\n {this.t(\"messages.youHaveSelected\", { dateTime: this.format() })}\r\n

\r\n ) : (\r\n

\r\n {this.t(\"messages.noTimeSelected\")}\r\n

\r\n )\r\n ) : null}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private removeAnswer() {\r\n this.setState(\r\n {\r\n hour: null,\r\n minute: null,\r\n amPm: null,\r\n },\r\n () => {\r\n const emptyAnswer = {\r\n ...this.props.value,\r\n value: \"\",\r\n };\r\n\r\n this.props.setValue && this.props.setValue(emptyAnswer);\r\n this.props.saveAnswer && this.props.saveAnswer(emptyAnswer);\r\n }\r\n );\r\n }\r\n\r\n private getValue() {\r\n const selectedTime = this.props.value;\r\n const hour = selectedTime.value ? selectedTime.value.substring(0, 2) : null;\r\n const minute = selectedTime.value ? selectedTime.value.substring(3, 5) : null;\r\n const amPm = selectedTime.value ? selectedTime.value.substring(6, 8) : null;\r\n\r\n return { hour, minute, amPm };\r\n }\r\n\r\n private format() {\r\n return `${this.state.hour}:${this.state.minute} ${this.state.amPm}`;\r\n }\r\n\r\n private onHourChanged(hour: string) {\r\n this.setState({ hour }, () => this.modified());\r\n }\r\n\r\n private onMinuteChanged(minute: string) {\r\n this.setState({ minute }, () => this.modified());\r\n }\r\n\r\n private onAmPmChanged(amPm: string) {\r\n this.setState({ amPm }, () => this.modified());\r\n }\r\n\r\n private isValid(): boolean {\r\n return !!this.state.hour && !!this.state.minute && !!this.state.amPm;\r\n }\r\n\r\n private async modified() {\r\n const isValid = this.isValid();\r\n\r\n if (!this.props.readonly && (isValid || this.props.allowChangeOnInvalid)) {\r\n const newAnswer = {\r\n ...this.props.value,\r\n value: this.format(),\r\n };\r\n\r\n this.props.setValue && this.props.setValue(newAnswer);\r\n\r\n const answerId = this.props.saveAnswer ? await this.props.saveAnswer(newAnswer) : \"\";\r\n\r\n this.props.setValue &&\r\n this.props.setValue({\r\n ...newAnswer,\r\n answerId,\r\n });\r\n }\r\n }\r\n\r\n private getError() {\r\n if (typeof this.props.error === \"string\" || this.props.error instanceof String) {\r\n return this.props.error as string;\r\n } else {\r\n return this.props.error?.value || \"\";\r\n }\r\n }\r\n\r\n private t(text: Normalize, options?: Record) {\r\n return i18next.t(text, options);\r\n }\r\n}\r\n","import React, {\n ChangeEventHandler,\n DragEventHandler,\n FC,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport PdfIcon from \"@src/assets/pdf.png\";\nimport FileIcon from \"@src/assets/any.png\";\nimport UploadIcon from \"@src/assets/upload.png\";\nimport { MimeType } from \"@src/constants/mimeTypes\";\nimport omit from \"lodash/omit\";\nimport { FieldHelperProps } from \"formik\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport {\n FieldWrapper,\n FileThumbnail,\n PdfThumbnail,\n PreviewImage,\n ProgressMessage,\n StyledRequiredLabel,\n StyledUploadContainer,\n StyledUploadField,\n FieldInformationLabel,\n UploadButton,\n UploadImage,\n UploadPreview,\n} from \"@src/components/styles\";\nimport { TrashButton } from \"./TrashButton\";\nimport { AnswerInput } from \"@src/types\";\nimport axios, { AxiosProgressEvent } from \"axios\";\nimport { FileViewer } from \"@src/components/atoms/FileViewer\";\nimport {\n FieldError,\n StyledErrorContainer,\n StyledFieldError,\n} from \"@src/components/atoms/FieldError\";\nimport { useTranslation } from \"react-i18next\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { Icon } from \"@src/components/atoms/Icon\";\nimport { Label } from \"@src/components/atoms/Label\";\nimport { TranslationKey } from \"@src/utils/validation\";\n\ntype UploadFieldProps = {\n label: string;\n id: string;\n questionId: string;\n fieldId: string;\n answer: AnswerInput;\n error?: string;\n isRequired: boolean;\n uploadUrl?: string;\n viewFileUrl?: string;\n isManualAttachment?: boolean;\n saveAnswer?: (answer: AnswerInput) => Promise;\n deleteAnswer?: (answer: AnswerInput) => Promise;\n setValue: FieldHelperProps[\"setValue\"];\n\n // used when the upload field is nested and the upload needs to be delayed\n // for example in repeatable fields\n fileSelected?: (fieldId: string, questionId: string, file: File) => void;\n fileRemoved?: (fieldId: string, questionId: string) => void;\n};\n\nexport type SelectedFile = {\n data: string;\n name: string;\n mimeType: string;\n};\n\nconst isImage = (type: string) => {\n return (\n type === MimeType.BMP || type === MimeType.PNG || type === MimeType.JPG || type === MimeType.GIF\n );\n};\n\ntype UploadFieldError = {\n errorKey: TranslationKey | null;\n fileName: string;\n};\n\nconst UploadField: FC = ({\n id,\n fieldId,\n questionId,\n label,\n answer,\n isRequired,\n uploadUrl,\n viewFileUrl,\n isManualAttachment,\n saveAnswer,\n deleteAnswer,\n setValue,\n fileSelected,\n fileRemoved,\n}) => {\n const { t } = useTranslation();\n const inputRef = useRef(null);\n const [selectedFile, setFile] = useState(null);\n const [progress, setProgress] = useState(100);\n const [showFile, setShowFile] = useState(false);\n const [error, setError] = useState({ errorKey: null, fileName: \"\" });\n const [userUploadedAFile, setUserUploadedAFile] = useState(false);\n\n const allowedFileTypes: string[] = [\n MimeType.BMP,\n MimeType.GIF,\n MimeType.JPG,\n MimeType.PNG,\n MimeType.PDF,\n ];\n\n useEffect(() => {\n const isInsideRepeatable = !!(fileSelected && fileRemoved);\n\n if (!answer?.answerId || isInsideRepeatable) {\n setUserUploadedAFile(false);\n setShowFile(false);\n setFile(null);\n if (inputRef?.current) inputRef.current.value = \"\";\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [answer.answerId]);\n\n const imageUrl =\n !userUploadedAFile && viewFileUrl && answer?.value && answer?.value !== \"repeatable-upload\"\n ? `${viewFileUrl}/${answer.value}`\n : selectedFile?.data;\n\n const canUpload = (file: File) => {\n let fileIsValid = false;\n\n if (file) {\n if (file.size > 10000000) {\n setError({ errorKey: \"validation.fileOverMaxSize\", fileName: file.name });\n } else if (!allowedFileTypes.includes(file.type)) {\n setError({ errorKey: \"validation.fileIsOfWrongType\", fileName: \"\" });\n } else {\n setError({ errorKey: null, fileName: \"\" });\n fileIsValid = true;\n }\n }\n\n return fileIsValid;\n };\n\n const handleChange: ChangeEventHandler = async (e) => {\n if (e.target.files && e.target.files[0]) {\n const file = e.target.files[0];\n // TODO: show a validation error if the file can't be uploaded\n if (canUpload(file)) {\n const reader = new FileReader();\n\n reader.readAsDataURL(file);\n reader.onloadend = () => {\n if (reader.result) {\n setFile({\n data: reader.result.toString(),\n name: file.name,\n mimeType: file.type,\n });\n }\n };\n\n await upload(file);\n }\n }\n };\n\n const onDropped: DragEventHandler = async (event) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (event.dataTransfer.files && event.dataTransfer.files.length === 1) {\n const file = event.dataTransfer.files[0];\n\n // TODO: show a validation error if the file can't be uploaded\n if (canUpload(file)) {\n const reader = new FileReader();\n\n reader.readAsDataURL(file);\n reader.onloadend = () => {\n if (reader.result) {\n setFile({\n data: reader.result.toString(),\n name: file.name,\n mimeType: file.type,\n });\n }\n };\n\n await upload(file);\n }\n }\n };\n\n const onDragOver: DragEventHandler = (event) => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n const upload = async (file: File) => {\n // User has uplaoded a file. From that point on\n // use only the local copy of that file to display the thumbnail.\n setUserUploadedAFile(true);\n\n if (canUpload(file) && uploadUrl) {\n const form = new FormData();\n form.append(\"file\", file, file.name);\n form.append(\"fieldId\", fieldId);\n form.append(\"questionId\", questionId);\n\n const result = await axios.post(uploadUrl, form, {\n onUploadProgress: (p: AxiosProgressEvent) => setProgress(Math.ceil((p.loaded / (p.total ?? 1)) * 100)),\n });\n\n // only assign use the properties of an Answer that will pass validation\n const newAnswer = {\n answerId: result.data.answerId,\n fieldId: result.data.fieldId,\n questionId: result.data.questionId,\n value: result.data.value,\n fileType: result.data.fileType,\n order: result.data.order,\n };\n\n setValue(!isManualAttachment ? newAnswer : result.data);\n if (saveAnswer) {\n saveAnswer(newAnswer);\n }\n } else if (fileSelected) {\n // We're in a repeatable.\n // So do a fake upload until the answer is added.\n // At which point the real upload will be performed.\n const uploadAnswer = {\n answerId: uuidv4(),\n fieldId: fieldId,\n questionId: questionId,\n value: \"repeatable-upload\",\n fileType: file.type,\n order: 0,\n };\n\n setValue(uploadAnswer);\n\n fileSelected(fieldId, questionId, file);\n } else {\n // We're in preview mode.\n const uploadAnswer = {\n answerId: uuidv4(),\n fieldId: fieldId,\n questionId: questionId,\n value: \"preview\",\n fileType: file.type,\n order: 0,\n };\n\n setValue(uploadAnswer);\n\n if (saveAnswer) {\n saveAnswer(uploadAnswer);\n }\n }\n };\n\n const handleUploadClick = () => {\n if (inputRef.current && progress === 100) inputRef.current.click();\n };\n\n const handleTrashClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n setFile(null);\n\n if (inputRef.current) inputRef.current.value = \"\";\n const newAnswer: AnswerInput = omit(\n {\n ...answer,\n value: \"\",\n },\n \"__typename\"\n );\n\n setValue(newAnswer);\n\n if (deleteAnswer) {\n deleteAnswer(newAnswer);\n }\n\n if (fileRemoved) {\n fileRemoved(fieldId, questionId);\n }\n };\n\n const handleFileClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (selectedFile || answer) setShowFile(true);\n };\n\n return (\n \n {showFile && imageUrl ? (\n setShowFile(false)}\n />\n ) : null}\n {isRequired ? : null}\n \n\n \n \n {selectedFile || imageUrl ? (\n \n \n {selectedFile ? (\n isImage(selectedFile.mimeType) ? (\n \n ) : selectedFile.mimeType === MimeType.PDF ? (\n \n ) : (\n \n )\n ) : answer.fileType ? (\n isImage(answer.fileType) ? (\n \n ) : answer.fileType === MimeType.PDF ? (\n \n ) : (\n \n )\n ) : null}\n \n ) : (\n \n )}\n \n {progress < 100 ? (\n {progress}%\n ) : selectedFile || imageUrl ? (\n t(\"labels.replaceFile\")\n ) : (\n t(\"labels.addFile\")\n )}\n \n\n \n \n {t(\"validation.maxFileSize\")}\n \n\n {error.errorKey && error.fileName ? (\n \n \n \n {t(error.errorKey, { fileName: error.fileName }) as string}\n \n \n ) : null}\n \n \n );\n};\n\nexport { UploadField };\n","import omit from \"lodash/omit\";\nimport React, { ChangeEventHandler, FunctionComponent, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { Icon } from \"@src/components/atoms/Icon\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport {\n ClearIconSpacer,\n FieldWrapper,\n StyledLabel,\n StyledRadioButton,\n StyledRadioButtonLabel,\n StyledRequiredLabel,\n} from \"@src/components/styles\";\nimport { FALSY_STRING, TRUTHY_STRING } from \"@src/constants/validation\";\nimport { AnswerInput, Field } from \"@src/types\";\nimport { ConditionalValue } from \"@src/utils/formValuesTypes\";\nimport { getYesOrNoFields } from \"@src/utils/getters\";\nimport { FieldSelector } from \"../FieldSelector\";\nimport { getFormInitialValues } from \"@src/utils/formValues\";\nimport { Label } from \"@src/components/atoms/Label\";\nimport { deleteNestedAnswers } from \"@src/utils/answers\";\n\ntype YesNoConditionalProps = {\n id: string;\n label: string;\n value: ConditionalValue;\n isRequired: boolean;\n fields: Field[];\n uploadUrl?: string;\n viewFileUrl?: string;\n error?: Record | string;\n setValue: (value: ConditionalValue) => void;\n saveAnswer?: (answer: AnswerInput) => Promise;\n deleteAnswer?: (answer: AnswerInput) => Promise;\n};\n\nconst YesNoConditionalField: FunctionComponent = ({\n id,\n label,\n value,\n isRequired,\n fields,\n uploadUrl,\n viewFileUrl,\n setValue,\n saveAnswer,\n deleteAnswer,\n}: YesNoConditionalProps) => {\n const { t } = useTranslation();\n const [answerId, setAnswerId] = useState(value.answer.answerId ?? \"\");\n\n const [yesFields, noFields] = getYesOrNoFields(fields);\n\n const yesChecked = value && !!value.answer && value.answer.value === TRUTHY_STRING;\n const noChecked = value && !!value.answer && value.answer.value === FALSY_STRING;\n\n // Once we get an answerId, add it to the answer.\n // This id will be reused whenever a new answer is created, so this should run only once\n // after render.\n useEffect(() => {\n if (answerId) {\n setValue({ ...value, answer: { ...value.answer, answerId } });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [answerId]);\n\n const handleChange: ChangeEventHandler = async (e) => {\n const newAnswer: AnswerInput = omit(\n {\n ...value.answer,\n value: e.target.value,\n },\n \"__typename\"\n );\n\n setValue({ ...value, answer: newAnswer });\n\n const newAnswerId = saveAnswer ? await saveAnswer(newAnswer) : \"\";\n\n newAnswerId !== answerId && setAnswerId(newAnswerId);\n };\n\n const handleClear = () => {\n const allFields = [...(yesFields ?? []), ...(noFields ?? [])];\n const clearedFields = getFormInitialValues({ fields: allFields });\n\n deleteNestedAnswers({ clearedFields, value, deleteAnswer });\n\n const newAnswer = {\n ...value.answer,\n value: \"\",\n };\n\n setValue({\n ...clearedFields,\n answer: newAnswer,\n });\n\n saveAnswer && saveAnswer(newAnswer);\n };\n\n return (\n \n {isRequired ? : null}\n \n {value && value.answer && value.answer.value ? (\n \n \n \n ) : null}\n\n \n \n \n {t(\"labels.yes\")}\n \n\n \n \n {t(\"labels.no\")}\n \n \n\n {yesChecked && yesFields ? (\n
\n {yesFields.map((field) => (\n \n ))}\n
\n ) : null}\n\n {noChecked && noFields ? (\n
\n {noFields.map((field) => (\n \n ))}\n
\n ) : null}\n \n
\n );\n};\n\nexport { YesNoConditionalField };\n","import React, { ChangeEventHandler, FC, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport omit from \"lodash/omit\";\n\nimport {\n ClearIconSpacer,\n FieldWrapper,\n StyledLabel,\n StyledRadioButton,\n StyledRadioButtonLabel,\n StyledRequiredLabel,\n} from \"@src/components/styles\";\nimport { CommonFieldProps } from \"../types\";\nimport { AnswerInput } from \"@src/types\";\nimport { Icon } from \"@src/components/atoms/Icon\";\nimport { FALSY_STRING, TRUTHY_STRING } from \"@src/constants/validation\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { Label } from \"@src/components/atoms/Label\";\n\ntype YesNoFieldProps = CommonFieldProps;\n\nconst YesNoField: FC = ({\n label,\n id,\n value,\n isRequired,\n setValue,\n saveAnswer,\n}) => {\n const { t } = useTranslation();\n const [answerId, setAnswerId] = useState(value.answerId ?? \"\");\n\n const yesChecked = !!value?.value && value.value === TRUTHY_STRING;\n const noChecked = !!value?.value && value.value === FALSY_STRING;\n\n // Once we get an answerId, add it to the answer.\n // This id will be reused whenever a new answer is created, so this should run only once\n // after render.\n useEffect(() => {\n if (answerId) {\n setValue({ ...value, answerId });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [answerId]);\n\n const handleChange: ChangeEventHandler = async (e) => {\n const newAnswer: AnswerInput = omit(\n {\n ...value,\n value: e.target.value,\n },\n \"__typename\"\n );\n\n setValue(newAnswer);\n\n const newAnswerId = saveAnswer ? await saveAnswer(newAnswer) : \"\";\n\n // Triggers the useEffect that adds the answerId to the answer.\n newAnswerId !== answerId && setAnswerId(newAnswerId);\n };\n\n const handleClear = () => {\n const emptyAnswer: AnswerInput = omit(\n {\n ...value,\n value: \"\",\n },\n \"__typename\"\n );\n\n setValue(emptyAnswer);\n saveAnswer && saveAnswer(emptyAnswer);\n };\n\n return (\n \n {isRequired ? : null}\n \n {value.value ? (\n \n \n \n ) : null}\n\n \n \n \n {t(\"labels.yes\")}\n \n \n \n {t(\"labels.no\")}\n \n \n\n \n \n );\n};\n\nexport { YesNoField };\n","import React, { FC, Fragment, useState } from \"react\";\nimport groupBy from \"lodash/groupBy\";\n\nimport { AnswerInput, Field, FieldType } from \"@src/types\";\nimport { AnswerBackground, ButtonRow } from \"./styles\";\nimport { Button } from \"@src/components/atoms/Button\";\nimport { RepeatableAddButton } from \"@src/components/styles\";\nimport { FileViewer } from \"@src/components/atoms/FileViewer\";\nimport { DisplayAnswers } from \"@src/components/molecules/displayAnswers\";\nimport { useTranslation } from \"react-i18next\";\n\ntype RepeatableAnswersProps = {\n innerFields: Field[];\n answers: AnswerInput[];\n uploadedFileViewBaseUrl: string;\n handleSelectRow?: (order: string) => void;\n handleDeleteRow?: (order: string) => void;\n};\n\nconst RepeatableAnswers: FC = ({\n innerFields,\n answers,\n uploadedFileViewBaseUrl,\n handleSelectRow,\n handleDeleteRow,\n}) => {\n const { t } = useTranslation();\n const [showFile, setShowFile] = useState(null);\n const answersByOrder = groupBy(answers, \"order\");\n const rows = Object.keys(answersByOrder).map((rowOrder) => ({\n order: rowOrder,\n values: innerFields.flatMap((innerField) => {\n if (innerField.type === FieldType.Address) {\n const addressFields = innerField.fields || [];\n return addressFields.filter((x) => !x.question?.hidden);\n } else {\n return innerField;\n }\n }),\n answers: answersByOrder[rowOrder],\n }));\n\n return (\n \n {showFile ? (\n setShowFile(null)}\n />\n ) : null}\n {rows.map((row, index) =>\n row.answers.length > 0 ? (\n \n \n {handleSelectRow && handleDeleteRow ? (\n \n handleSelectRow(row.order)}\n >\n {t(\"labels.edit\")}\n \n handleDeleteRow(row.order)}\n >\n {t(\"labels.remove\")}\n \n \n ) : null}\n \n ) : null\n )}\n \n );\n};\n\nexport { RepeatableAnswers };\n","import React, { FC, useEffect } from \"react\";\r\n\r\nimport { RepeatableAddButton, RepeatableFieldsWrapper } from \"@src/components/styles\";\r\nimport { Field } from \"@src/types\";\r\nimport { FieldSelector } from \"../../FieldSelector\";\r\nimport { Flex } from \"@src/components/layout/Page\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\ntype RepeatableFormProps = {\r\n id: string;\r\n innerFields: Field[];\r\n isValid: boolean;\r\n isEditing: boolean;\r\n isDirty: boolean;\r\n uploadUrl?: string;\r\n viewFileUrl?: string;\r\n setIsDirty: (isDirty: boolean) => void;\r\n resetForm: () => void;\r\n submitForm: () => Promise;\r\n fileSelected?: (fieldId: string, questionId: string, file: File) => void;\r\n fileRemoved?: (fieldId: string, questionId: string) => void;\r\n};\r\n\r\nconst RepeatableForm: FC = ({\r\n id,\r\n innerFields,\r\n isValid,\r\n isEditing,\r\n isDirty,\r\n viewFileUrl,\r\n setIsDirty,\r\n resetForm,\r\n submitForm,\r\n fileSelected,\r\n fileRemoved,\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n setIsDirty(isDirty);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isDirty]);\r\n\r\n return (\r\n \r\n {innerFields.map((repeatableField) => (\r\n \r\n ))}\r\n \r\n \r\n {isEditing ? t(\"labels.editAnswers\") : t(\"labels.addAnswers\")}\r\n \r\n \r\n {t(\"labels.clearForm\")}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport { RepeatableForm };\r\n","import { useState } from \"react\";\nimport omit from \"lodash/omit\";\n\nimport { Answer, AnswerInput, Field } from \"@src/types\";\nimport { getFormInitialValues } from \"@src/utils/formValues\";\nimport { InnerFields, RepeatableValue, SelectedFile } from \"@src/utils/formValuesTypes\";\nimport { getNextRowOrder } from \"@src/utils/getters\";\nimport { getInnerFieldAnswersFromRepeatableValue } from \"@src/utils/repeatables\";\nimport axios from \"axios\";\nimport { cloneDeep } from \"@apollo/client/utilities\";\n\ntype useRepeatableLogicArgs = {\n value: RepeatableValue;\n fields: Field[];\n setValue: (value: RepeatableValue) => void;\n saveAnswer?: (answer: AnswerInput) => Promise;\n deleteAnswer?: (answer: Answer) => Promise;\n};\n\ntype RepeatableLogic = {\n isEditing: boolean;\n initialValues: InnerFields;\n selectRow: (rowOrder: string) => void;\n addRow: (\n innerFields: InnerFields,\n selectedFiles: SelectedFile[],\n uploadUrl?: string\n ) => Promise;\n editRow: (\n innerFields: InnerFields,\n selectedFiles: SelectedFile[],\n uploadUrl?: string,\n deletedFiles?: SelectedFile[]\n ) => Promise;\n deleteRow: (rowOrder: string) => Promise;\n setIsDirty: (isDirty: boolean) => void;\n};\n\nconst useRepeatableLogic = ({\n value,\n fields,\n setValue,\n saveAnswer,\n deleteAnswer,\n}: useRepeatableLogicArgs): RepeatableLogic => {\n const [editingRow, setEditingRow] = useState(null);\n const [originalAnswers, setOriginalAnswers] = useState([]);\n const [innerFieldValues, setInnerFieldValues] = useState(\n omit(value, [\"answers\", \"isDirty\"])\n );\n const isEditing = editingRow !== null;\n\n const upload = async (selectedFile: SelectedFile, order: number, uploadUrl: string) => {\n if (selectedFile.file) {\n const form = new FormData();\n form.append(\"file\", selectedFile.file, selectedFile.file.name);\n form.append(\"fieldId\", selectedFile.fieldId);\n form.append(\"questionId\", selectedFile.questionId);\n form.append(\"order\", order.toString());\n\n const result = await axios.post(uploadUrl, form);\n\n // explicitly assign only the properties needed for saving an answer\n const newAnswer: Answer = {\n answerId: result.data.answerId,\n fieldId: result.data.fieldId,\n questionId: result.data.questionId,\n value: result.data.value,\n fileType: result.data.fileType,\n order: result.data.order,\n };\n\n return newAnswer;\n }\n };\n\n const addRow = async (\n innerFields: InnerFields,\n selectedFiles: SelectedFile[],\n uploadUrl?: string\n ) => {\n let newAnswers = getInnerFieldAnswersFromRepeatableValue(innerFields);\n\n if (selectedFiles && selectedFiles.length > 0) {\n selectedFiles.map(\n (selectedFile) =>\n (newAnswers = newAnswers.filter(\n (x) => x.fieldId !== selectedFile.fieldId && x.questionId !== selectedFile.questionId\n ))\n );\n }\n\n newAnswers = newAnswers.filter(\n (x) => typeof x.value !== \"undefined\" && x.value !== null && x.value !== \"\"\n );\n\n const allAnswers = [...value.answers, ...newAnswers];\n\n const rowOrder = getNextRowOrder(allAnswers);\n\n if (uploadUrl && selectedFiles && selectedFiles.length > 0) {\n await Promise.allSettled(\n selectedFiles.map(async (x) => {\n const answer = await upload(x, rowOrder, uploadUrl);\n\n if (answer && saveAnswer) {\n answer.order = rowOrder;\n newAnswers.push(answer);\n allAnswers.push(answer);\n saveAnswer(omit(answer, \"__typename\"));\n }\n })\n );\n }\n\n const newInnerFields = getFormInitialValues({\n fields,\n order: rowOrder,\n });\n\n newAnswers.forEach((answer) => {\n answer.order = rowOrder;\n });\n\n setInnerFieldValues(newInnerFields);\n setValue({\n ...value,\n answers: allAnswers,\n });\n\n await Promise.allSettled(\n newAnswers.map(async (answer) => {\n if (\n saveAnswer &&\n typeof answer.value !== \"undefined\" &&\n answer.value !== null &&\n answer.value !== \"\"\n ) {\n answer.answerId = await saveAnswer(omit(answer, \"__typename\"));\n }\n })\n );\n };\n\n const selectRow = (rowOrder: string) => {\n try {\n const order = parseInt(rowOrder);\n\n const innerFields = getFormInitialValues({\n fields,\n order,\n answers: value.answers,\n });\n\n setOriginalAnswers(getInnerFieldAnswersFromRepeatableValue(innerFields));\n\n setInnerFieldValues(innerFields);\n\n setEditingRow(order);\n } catch (error) {\n console.error(\"Error while trying to select a repeatable row to edit.\", error);\n }\n };\n\n const editRow = async (\n innerFields: InnerFields,\n selectedFiles: SelectedFile[],\n uploadUrl?: string,\n deletedFiles?: SelectedFile[]\n ) => {\n let editedAnswers = getInnerFieldAnswersFromRepeatableValue(innerFields);\n const changedAnswers: AnswerInput[] = [];\n\n originalAnswers.forEach((answer) => {\n const index = editedAnswers.findIndex((x) => x.questionId === answer.questionId);\n const editedAnswer = cloneDeep(editedAnswers[index]);\n\n if (index > -1 && editedAnswer.value !== answer.value) {\n editedAnswer.order = editingRow;\n changedAnswers.push(editedAnswer);\n }\n });\n\n if (deletedFiles && deletedFiles.length > 0) {\n deletedFiles.map((selectedFile) => {\n const file = editedAnswers.find(\n (x) => x.fieldId === selectedFile.fieldId && x.questionId === selectedFile.questionId\n );\n if (file) {\n editedAnswers = editedAnswers.filter(\n (x) => x.fieldId !== selectedFile.fieldId && x.questionId !== selectedFile.questionId\n );\n file.value = null;\n file.fileType = null;\n editedAnswers.push(file);\n }\n });\n }\n\n if (selectedFiles && selectedFiles.length > 0) {\n selectedFiles.map((selectedFile) => {\n editedAnswers = editedAnswers.filter(\n (x) => x.fieldId !== selectedFile.fieldId && x.questionId !== selectedFile.questionId\n );\n });\n }\n\n const otherAnswers = value.answers.filter((answer) => answer.order !== editingRow);\n const allAnswers = [...otherAnswers, ...editedAnswers];\n\n if (uploadUrl && selectedFiles && selectedFiles.length > 0) {\n await Promise.allSettled(\n selectedFiles.map(async (x) => {\n const answer = await upload(x, editingRow ?? 0, uploadUrl);\n\n if (answer && saveAnswer) {\n answer.order = editingRow;\n editedAnswers.push(answer);\n allAnswers.push(answer);\n await saveAnswer(omit(answer, \"__typename\"));\n }\n })\n );\n }\n\n const emptyInnerFields = getFormInitialValues({\n fields,\n order: getNextRowOrder(allAnswers),\n });\n\n setInnerFieldValues(emptyInnerFields);\n\n setValue({\n ...value,\n answers: allAnswers,\n });\n\n setEditingRow(null);\n\n setOriginalAnswers([]);\n\n await Promise.allSettled(\n editedAnswers.map(async (answer) => {\n if (saveAnswer && changedAnswers.find((x) => x.answerId === answer.answerId)) {\n answer.answerId = await saveAnswer(omit(answer, \"__typename\"));\n }\n })\n );\n };\n\n const deleteRow = async (rowOrder: string) => {\n try {\n const order = parseInt(rowOrder);\n\n if (order === editingRow) {\n setEditingRow(null);\n }\n\n const { remainingAnswers, answersToDelete } = value.answers.reduce(\n (acc, answer) => {\n if (answer.order === order) {\n acc.answersToDelete.push(answer as Answer);\n } else {\n acc.remainingAnswers.push(answer);\n }\n return acc;\n },\n { remainingAnswers: [], answersToDelete: [] } as {\n remainingAnswers: AnswerInput[];\n answersToDelete: Answer[];\n }\n );\n\n setValue({\n ...value,\n answers: remainingAnswers,\n });\n\n answersToDelete.forEach((answer) => deleteAnswer && deleteAnswer(omit(answer, \"__typename\")));\n } catch (error) {\n console.error(\"Error while trying to delete a row.\", error);\n }\n };\n\n const setIsDirty = (isDirty: boolean) =>\n setValue({\n ...value,\n isDirty,\n });\n\n return {\n isEditing,\n initialValues: innerFieldValues,\n selectRow,\n addRow,\n editRow,\n deleteRow,\n setIsDirty,\n };\n};\n\nexport { useRepeatableLogic };\n","import React, { FC, useState } from \"react\";\nimport { Formik, FormikHelpers, FormikState } from \"formik\";\n\nimport { FieldWrapper, FieldInformationLabel } from \"@src/components/styles\";\nimport { Answer, AnswerInput, Field } from \"@src/types\";\nimport { RepeatableAnswers } from \"./components\";\nimport { InnerFields, RepeatableValue, SelectedFile } from \"@src/utils/formValuesTypes\";\nimport { useRepeatableLogic } from \"./hooks\";\nimport { RepeatableForm } from \"./components\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { Label } from \"@src/components/atoms/Label\";\nimport { useTranslation } from \"react-i18next\";\nimport { TranslateFormErrors } from \"@src/customHooks/useTranslateFormErrors\";\n\ntype RepeatableQuestionProps = {\n id: string;\n label: string;\n value: RepeatableValue;\n field: Field;\n error?: string;\n uploadUrl?: string;\n viewFileUrl: string;\n isTicketQuestion?: boolean;\n setValue: (value: RepeatableValue) => void;\n saveAnswer?: (answer: AnswerInput) => Promise;\n deleteAnswer?: (answer: Answer) => Promise;\n};\n\nconst RepeatableQuestionField: FC = ({\n id,\n label,\n value,\n field,\n uploadUrl,\n viewFileUrl,\n isTicketQuestion,\n setValue,\n saveAnswer,\n deleteAnswer,\n}) => {\n const { t } = useTranslation();\n const innerFields = field.fields || [];\n const [selectedFiles, setSelectedFiles] = useState([]);\n const [deletedFiles, setDeletedFiles] = useState([]);\n\n const repeatableLogicArgs = {\n value,\n fields: innerFields,\n isTicketQuestion,\n setValue,\n saveAnswer,\n deleteAnswer,\n };\n\n const { isEditing, initialValues, selectRow, addRow, editRow, deleteRow, setIsDirty } =\n useRepeatableLogic(repeatableLogicArgs);\n\n const handleSubmit = (values: InnerFields, { resetForm }: FormikHelpers) => {\n isEditing\n ? editRow(values, selectedFiles, uploadUrl, deletedFiles)\n : addRow(values, selectedFiles, uploadUrl);\n\n setSelectedFiles([]);\n resetForm();\n };\n\n const onSelectFile = (fieldId: string, questionId: string, file: File) => {\n if (isEditing && deletedFiles.length > 0) {\n const deletedFiles = selectedFiles.filter(\n (x) => x.fieldId !== fieldId && x.questionId !== questionId\n );\n setDeletedFiles(deletedFiles);\n }\n\n const files = selectedFiles.filter((x) => x.fieldId !== fieldId && x.questionId !== questionId);\n files.push({ fieldId, questionId, file });\n\n setSelectedFiles(files);\n };\n\n const onRemoveFile = (fieldId: string, questionId: string) => {\n if (!isEditing) {\n const files = selectedFiles.filter(\n (x) => x.fieldId !== fieldId && x.questionId !== questionId\n );\n setSelectedFiles(files);\n } else {\n const files = deletedFiles.filter(\n (x) => x.fieldId !== fieldId && x.questionId !== questionId\n );\n files.push({ fieldId, questionId, file: null });\n setDeletedFiles(files);\n }\n };\n\n const resetState = (\n resetForm: (nextState?: Partial> | undefined) => void\n ) => {\n setSelectedFiles([]);\n setDeletedFiles([]);\n resetForm();\n };\n\n return (\n \n \n\n \n {field.question?.minEntries !== -1 ? (\n \n {`${t(\"labels.minEntries\")} `} {field.question?.minEntries}\n \n ) : null}\n {field.question?.maxEntries !== -1 ? (\n \n {`${t(\"labels.maxEntries\")} `} {field.question?.maxEntries}\n \n ) : null}\n \n\n \n {({ isValid, dirty, resetForm, submitForm }) => (\n \n x.order)\n .sort()\n .reverse()[0] ?? -1\n }\n id={id}\n innerFields={innerFields}\n isEditing={isEditing}\n isValid={isValid}\n isDirty={dirty}\n viewFileUrl={viewFileUrl}\n setIsDirty={setIsDirty}\n resetForm={() => resetState(resetForm)}\n submitForm={submitForm}\n fileSelected={onSelectFile}\n fileRemoved={onRemoveFile}\n />\n \n )}\n \n\n \n \n \n );\n};\n\nexport { RepeatableQuestionField };\n","import { useEffect, useMemo, useState } from \"react\";\r\nimport omit from \"lodash/omit\";\r\nimport { useDebouncedCallback } from \"use-debounce\";\r\n\r\nimport { AnswerInput, Field, Question } from \"@src/types\";\r\nimport { EquationRow, EquationValue, InnerFields } from \"@src/utils/formValuesTypes\";\r\nimport { getNextRowOrder } from \"@src/utils/getters\";\r\nimport { getEquationInnerFields, getEquationValue } from \"@src/utils/formValues\";\r\nimport {\r\n getAggregateAnswers,\r\n getCalculatedAnswers,\r\n getEquationQuestionNameForExpression,\r\n getInputAnswersAndExpressionValues,\r\n} from \"@src/utils/equations\";\r\n\r\nexport type EditRowArgs = {\r\n rowId: string;\r\n columnName: string;\r\n newAnswer: AnswerInput;\r\n};\r\n\r\ntype UseEquationsLogicArgs = {\r\n inputQuestions: Question[];\r\n calculatedQuestions: Question[];\r\n aggregateQuestions: Question[];\r\n value: EquationValue;\r\n field: Field;\r\n setValue: (value: EquationValue) => void;\r\n saveAnswer: (answer: AnswerInput) => Promise;\r\n deleteAnswer: (answer: AnswerInput) => Promise;\r\n};\r\n\r\ntype EquationsLogic = {\r\n initialValues: InnerFields;\r\n loading: boolean;\r\n addRow: (innerFields: InnerFields) => Promise;\r\n editRowValue: (args: EditRowArgs) => Promise;\r\n deleteRow: (row: EquationRow) => Promise;\r\n setIsDirty: (isDirty: boolean) => void;\r\n};\r\n\r\nconst useEquationsLogic = ({\r\n inputQuestions,\r\n calculatedQuestions,\r\n aggregateQuestions,\r\n value,\r\n field,\r\n setValue,\r\n saveAnswer,\r\n deleteAnswer,\r\n}: UseEquationsLogicArgs): EquationsLogic => {\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const initialValues = useMemo(() => getEquationInnerFields(field), [field.id]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const { rows } = value;\r\n\r\n type DebouncedSaveAnswer = {\r\n oldAnswers: AnswerInput[];\r\n newAnswers: AnswerInput[];\r\n newRow?: AnswerInput;\r\n };\r\n\r\n const debouncedSaveAnswer = useDebouncedCallback(\r\n async ({ oldAnswers, newAnswers, newRow }: DebouncedSaveAnswer) => {\r\n const savedAnswers = await Promise.all(\r\n newAnswers.map(async (answer) => {\r\n const answerId = await saveAnswer(omit(answer, \"__typename\"));\r\n return {\r\n ...answer,\r\n answerId,\r\n };\r\n })\r\n );\r\n\r\n const allAnswers = newRow\r\n ? [...oldAnswers, newRow, ...savedAnswers]\r\n : [...oldAnswers, ...savedAnswers];\r\n\r\n // Calculating the new value with the saved answers\r\n const newValue = getEquationValue({\r\n field,\r\n answers: allAnswers,\r\n });\r\n\r\n setValue(newValue);\r\n },\r\n 500\r\n );\r\n\r\n // Flushes the debounced saveAnswer function on unmount\r\n useEffect(() => () => debouncedSaveAnswer.flush(), [debouncedSaveAnswer]);\r\n\r\n const addRow = async (innerFields: InnerFields) => {\r\n setLoading(true);\r\n\r\n const rowInput: AnswerInput = {\r\n fieldId: field.id || \"\",\r\n questionId: \"row\",\r\n value: null,\r\n fileType: null,\r\n order: getNextRowOrder(rows),\r\n };\r\n\r\n try {\r\n const newRowId = await saveAnswer(rowInput);\r\n\r\n const { inputAnswers, expressionValues } = getInputAnswersAndExpressionValues({\r\n innerFields,\r\n inputQuestions,\r\n rowId: newRowId || \"\",\r\n });\r\n\r\n const calculatedAnswers = getCalculatedAnswers({\r\n calculatedQuestions,\r\n expressionValues,\r\n rowId: newRowId || \"\",\r\n });\r\n\r\n const allAnswers = [rowInput, ...value.allAnswers, ...inputAnswers, ...calculatedAnswers];\r\n\r\n const aggregateAnswers = getAggregateAnswers({\r\n fieldId: field.id || \"\",\r\n aggregateQuestions,\r\n allAnswers,\r\n });\r\n\r\n const newAnswerInputs = [...inputAnswers, ...calculatedAnswers, ...aggregateAnswers];\r\n\r\n const oldAnswers = value.allAnswers.filter(\r\n (answer) =>\r\n aggregateAnswers.findIndex((aggregate) => aggregate.questionId === answer.questionId) ===\r\n -1\r\n );\r\n\r\n const newRow = { ...rowInput, answerId: newRowId };\r\n\r\n const newValue = getEquationValue({\r\n field,\r\n answers: [...oldAnswers, newRow, ...newAnswerInputs],\r\n });\r\n\r\n await debouncedSaveAnswer({ oldAnswers, newAnswers: newAnswerInputs, newRow });\r\n\r\n setValue(newValue);\r\n } catch (e) {\r\n console.error(\"Something went wrong:\", e);\r\n }\r\n\r\n setLoading(false);\r\n };\r\n\r\n const editRowValue = async ({ rowId, columnName, newAnswer }: EditRowArgs) => {\r\n const row = rows.find((row) => row.answerId === rowId);\r\n\r\n if (row) {\r\n // Removes all answer belonging to the row being edited AND all aggregate Answers\r\n // from the allAnswers array.\r\n const oldAnswers = value.allAnswers.filter(\r\n (answer) =>\r\n answer.questionId === \"row\" || !(answer.fieldId === rowId || answer.fieldId === field.id)\r\n );\r\n\r\n const { inputAnswers, expressionValues } = inputQuestions.reduce(\r\n (acc, question) => {\r\n const expressionName = getEquationQuestionNameForExpression(question);\r\n const inputAnswer =\r\n question.name === columnName ? newAnswer : row.answers[question.name || \"\"];\r\n\r\n acc.inputAnswers.push(inputAnswer);\r\n acc.expressionValues[expressionName] = inputAnswer?.value || \"\";\r\n\r\n return acc;\r\n },\r\n { inputAnswers: [], expressionValues: {} } as {\r\n inputAnswers: AnswerInput[];\r\n expressionValues: Record;\r\n }\r\n );\r\n\r\n const calculatedAnswers = getCalculatedAnswers({\r\n calculatedQuestions,\r\n expressionValues,\r\n rowId,\r\n });\r\n\r\n const aggregateAnswers = getAggregateAnswers({\r\n aggregateQuestions,\r\n fieldId: field.id || \"\",\r\n allAnswers: [...oldAnswers, ...inputAnswers, ...calculatedAnswers],\r\n });\r\n\r\n const newAnswerInputs = [...inputAnswers, ...calculatedAnswers, ...aggregateAnswers];\r\n\r\n // Calculating and setting the value temporarily to avoid the user seeing the\r\n // old value while the new value is being saved.\r\n const tempValue = getEquationValue({\r\n field,\r\n answers: [...oldAnswers, ...newAnswerInputs],\r\n });\r\n\r\n setValue(tempValue);\r\n\r\n // Saving the answers to get the answerIds\r\n // debouncedSaveAnswer.cancel();\r\n debouncedSaveAnswer({ oldAnswers, newAnswers: newAnswerInputs });\r\n }\r\n };\r\n\r\n const deleteRow = async (row: EquationRow) => {\r\n setLoading(true);\r\n\r\n const selectedAnswers = Object.values(row.answers);\r\n const selectedRow = omit(row, \"answers\");\r\n\r\n const answersToDelete: AnswerInput[] = [selectedRow, ...selectedAnswers];\r\n\r\n const currentRows: AnswerInput[] = value.rows.map((row) => omit(row, \"answers\"));\r\n const currentInputs: AnswerInput[] = value.rows.flatMap((row: EquationRow) =>\r\n Object.values(row.answers)\r\n );\r\n\r\n const currentAnswers = [...currentRows, ...currentInputs];\r\n\r\n const newAnswers = currentAnswers.filter((currentAnswer) => {\r\n const index = answersToDelete.findIndex(\r\n (answerToDelete) =>\r\n answerToDelete.fieldId === currentAnswer.fieldId &&\r\n answerToDelete.questionId === currentAnswer.questionId &&\r\n answerToDelete.order === currentAnswer.order\r\n );\r\n\r\n return index === -1;\r\n });\r\n\r\n const aggregateAnswers = getAggregateAnswers({\r\n aggregateQuestions,\r\n fieldId: field.id || \"\",\r\n allAnswers: newAnswers,\r\n });\r\n\r\n const newValue = getEquationValue({\r\n field,\r\n answers: [...newAnswers, ...aggregateAnswers],\r\n });\r\n\r\n await Promise.all([\r\n ...answersToDelete.map((answer) => deleteAnswer(omit(answer, \"__typename\"))),\r\n ...aggregateAnswers.map((answer) => saveAnswer(omit(answer, \"__typename\"))),\r\n ]);\r\n\r\n setLoading(false);\r\n setValue(newValue);\r\n };\r\n\r\n const setIsDirty = (isDirty: boolean) =>\r\n setValue({\r\n ...value,\r\n isDirty,\r\n });\r\n\r\n return {\r\n initialValues,\r\n loading,\r\n addRow,\r\n editRowValue,\r\n deleteRow,\r\n setIsDirty,\r\n };\r\n};\r\n\r\nexport { useEquationsLogic };\r\n","import React, { FC, useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ValidationError } from \"yup\";\r\n\r\nimport { Row, Cell, InvisibleCell } from \"@src/components/atoms/Table\";\r\nimport { Question } from \"@src/types\";\r\nimport { EquationSection } from \"./EquationSection\";\r\nimport { AddRowButton, ClearRowButton } from \"../styles\";\r\nimport { getSchemaForEquationQuestion } from \"@src/utils/validation\";\r\nimport { InnerFields } from \"@src/utils/formValuesTypes\";\r\nimport { useFormikContext } from \"formik\";\r\n\r\ntype EquationsFormProps = {\r\n inputQuestions: Question[];\r\n calculatedQuestions: Question[];\r\n isEditing: boolean;\r\n loading: boolean;\r\n editRow?: (innerFields: InnerFields) => Promise;\r\n addRow?: (innerFields: InnerFields) => Promise;\r\n setIsDirty: (isDirty: boolean) => void;\r\n};\r\n\r\nconst EquationsForm: FC = ({\r\n inputQuestions,\r\n calculatedQuestions,\r\n isEditing,\r\n loading,\r\n editRow,\r\n addRow,\r\n setIsDirty,\r\n}) => {\r\n const { t } = useTranslation();\r\n const { isValid, values, dirty, validateForm, resetForm } = useFormikContext();\r\n\r\n useEffect(() => {\r\n setIsDirty(dirty);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dirty]);\r\n\r\n const validate = (question: Question) => (value: string) => {\r\n try {\r\n const schema = getSchemaForEquationQuestion({ question, t });\r\n schema.validateSync(value);\r\n } catch (err) {\r\n const error = err as ValidationError;\r\n return error.message;\r\n }\r\n };\r\n\r\n const handleClick = async (values: InnerFields) => {\r\n if (isValid) {\r\n const errors = await validateForm();\r\n const errorKeys = Object.keys(errors);\r\n\r\n if (!(errorKeys && errorKeys.length)) {\r\n isEditing && editRow ? editRow(values) : addRow ? addRow(values) : console.log(\"failure\");\r\n resetForm();\r\n }\r\n }\r\n };\r\n\r\n const clearForm = () => resetForm();\r\n\r\n return (\r\n \r\n {inputQuestions.map((question, index) => (\r\n \r\n \r\n \r\n ))}\r\n {calculatedQuestions\r\n ? calculatedQuestions.map((question, index) => (\r\n \r\n ))\r\n : null}\r\n {\r\n \r\n handleClick(values)}>\r\n {isEditing ? \"Edit Row\" : t(\"labels.addRow\")}\r\n \r\n \r\n {t(\"labels.clear\")}\r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport { EquationsForm };\r\n","import React, { FC } from \"react\";\nimport { Formik } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\nimport { ValidationError } from \"yup\";\n\nimport { AggregateCell, Cell, Row, InvisibleCell } from \"@src/components/atoms/Table\";\nimport { AnswerInput, Question } from \"@src/types\";\nimport { EquationRow } from \"@src/utils/formValuesTypes\";\nimport { currencyFormatter } from \"@src/utils/purchasedTickets\";\nimport { getSchemaForEquationQuestion } from \"@src/utils/validation\";\nimport { EquationSection } from \"./components\";\nimport { DeleteRowIcon } from \"./styles\";\nimport { EditRowArgs } from \"./hooks\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { TranslateFormErrors } from \"@src/customHooks/useTranslateFormErrors\";\n\ntype EditRowProps = {\n inputQuestions: Question[];\n calculatedQuestions: Question[];\n row: EquationRow;\n editRowValue: (args: EditRowArgs) => Promise;\n deleteRow: (row: EquationRow) => Promise;\n};\n\nconst EditRow: FC = ({\n inputQuestions,\n calculatedQuestions,\n row,\n editRowValue,\n deleteRow,\n}) => {\n const { t, i18n } = useTranslation();\n const { form } = useFormInfo();\n\n const currencyCode = form?.document?.organization?.currencyCode;\n\n const validate = (question: Question) => (value: string) => {\n try {\n const schema = getSchemaForEquationQuestion({ question, t });\n schema.validateSync(value);\n } catch (err) {\n const error = err as ValidationError;\n return error.message;\n }\n };\n\n const renderCalculatedValue = (question: Question) => {\n if (question.name && row.answers[question.name]) {\n return question.valueType === \"currency\" &&\n !isNaN(parseFloat(row.answers[question.name].value ?? \"\"))\n ? currencyFormatter(i18n.resolvedLanguage, currencyCode).format(\n parseFloat(row.answers[question.name].value ?? \"\")\n )\n : question.valueType === \"decimal\" &&\n !isNaN(parseFloat(row.answers[question.name].value ?? \"\"))\n ? parseFloat(row.answers[question.name].value ?? \"0.00\").toFixed(2)\n : question.valueType === \"integer\" &&\n !isNaN(parseInt(row.answers[question.name].value ?? \"\", 10))\n ? parseInt(row.answers[question.name].value ?? \"\", 10)\n : row.answers[question.name].value;\n }\n\n return \"\";\n };\n\n const onEditRowValue = (columnName?: string | null) => (newAnswer: AnswerInput) =>\n editRowValue({ rowId: row.answerId || \"\", columnName: columnName || \"\", newAnswer });\n\n // Remap the answer object keys to use the question id ranther than question name\n // This is necessary because the question name can contain special characters that seems to trips up Formik\n const transformAnswersToInitialValues = (answers: Record): Record => {\n const allQuestions = [...inputQuestions, ...calculatedQuestions];\n const initialValues: Record = {};\n\n Object.entries(answers).forEach(([key, answer]) => {\n const question = allQuestions.find(question => question.name === key);\n \n initialValues[question?.id ?? key] = answer;\n });\n\n return initialValues;\n }\n\n return (\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n {}}>\n \n \n {inputQuestions.map((question, index) => (\n \n \n \n ))}\n {calculatedQuestions\n ? calculatedQuestions.map((question, index) => (\n \n {renderCalculatedValue(question)}\n \n ))\n : null}\n \n deleteRow(row)}\n >\n \n \n \n \n );\n};\n\nexport { EditRow };\n","import React, { FC } from \"react\";\nimport { Formik } from \"formik\";\nimport {\n Table,\n Row,\n Header,\n Cell,\n InvisibleCell,\n InvisibleHeader,\n HeaderRow,\n} from \"@src/components/atoms/Table\";\nimport { AggregatesTable, AggregatesWrapper } from \"./styles\";\nimport { AnswerInput, Field, Question } from \"@src/types\";\nimport { EquationValue } from \"@src/utils/formValuesTypes\";\nimport { useEquationsLogic } from \"./hooks\";\nimport { EquationsWrapper, FieldWrapper, StyledRequiredLabel } from \"@src/components/styles\";\nimport { EquationsForm } from \"./components/EquationsForm\";\nimport { isEquationRequired } from \"@src/utils/equations\";\nimport { FieldError } from \"@src/components/atoms/FieldError\";\nimport { EditRow } from \"./EditRow\";\nimport { currencyFormatter } from \"@src/utils/purchasedTickets\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { Label } from \"@src/components/atoms/Label\";\nimport { useTranslation } from \"react-i18next\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { TranslateFormErrors } from \"@src/customHooks/useTranslateFormErrors\";\n\ntype EquationsFieldProps = {\n id: string;\n label: string;\n value: EquationValue;\n field: Field;\n inputQuestions: Question[];\n calculatedQuestions: Question[];\n aggregateQuestions: Question[];\n error?: string;\n setValue: (value: EquationValue) => void;\n saveAnswer: (answer: AnswerInput) => Promise;\n deleteAnswer: (answer: AnswerInput) => Promise;\n};\n\nconst EquationsField: FC = ({\n id,\n label,\n value,\n inputQuestions,\n calculatedQuestions,\n aggregateQuestions,\n field,\n setValue,\n saveAnswer,\n deleteAnswer,\n}) => {\n const googleTranslate = useGoogleTranslate();\n const { i18n } = useTranslation();\n const { rows, aggregates } = value;\n const required = isEquationRequired(field);\n const { form } = useFormInfo();\n\n const currencyCode = form?.document?.organization?.currencyCode;\n\n type HeaderInfo = {\n name: string;\n type: string;\n };\n\n const tableHeaders: HeaderInfo[] = [...inputQuestions, ...calculatedQuestions].map((question) => {\n return { name: question.name || \"\", type: question.valueType || \"text\" };\n });\n\n const hasRows = rows.length > 0;\n\n const { initialValues, loading, addRow, editRowValue, deleteRow, setIsDirty } = useEquationsLogic(\n {\n inputQuestions,\n calculatedQuestions,\n aggregateQuestions,\n value,\n field,\n setValue,\n saveAnswer,\n deleteAnswer,\n }\n );\n\n return (\n \n {required ? : null}\n \n\n \n \n \n {tableHeaders.map((header) => (\n
{googleTranslate(header.name)}
\n ))}\n \n
\n {hasRows ? (\n <>\n {rows.map((row) => (\n \n ))}\n \n ) : (\n \n {tableHeaders.map((header, index) => {\n if (index < tableHeaders.length) return  ;\n })}\n  \n \n )}\n {/*eslint-disable-next-line @typescript-eslint/no-empty-function*/}\n {}}>\n \n \n \n \n
\n
\n\n \n \n \n {aggregateQuestions.length > 0\n ? aggregateQuestions.map((question, index) => (\n \n {question.name ? googleTranslate(question.name) : \"\"}\n \n {!isNaN(parseFloat(aggregates[question.id]?.value || \"\"))\n ? question.valueType === \"currency\"\n ? currencyFormatter(i18n.resolvedLanguage, currencyCode).format(\n parseFloat(aggregates[question.id]?.value || \"\")\n )\n : parseFloat(aggregates[question.id]?.value || \"\").toFixed(2)\n : aggregates[question.id]?.value || \" \"}\n \n \n ))\n : null}\n \n \n \n \n
\n );\n};\n\nexport { EquationsField };\n","import { AnswerInput, Field } from \"@src/types\";\nimport { FieldHelperProps } from \"formik\";\n\nexport type FieldProps = {\n field: Field;\n parentQuestionId?: string;\n};\n\nexport type FieldAnswer = {\n value: string | null;\n fileType?: string;\n order?: string;\n};\n\nexport type ErrorObject = {\n value: string;\n};\n\nexport type CommonFieldProps = {\n label: string;\n id: string;\n value: AnswerInput;\n error?: string;\n touched: boolean;\n isRequired: boolean;\n setValue: FieldHelperProps[\"setValue\"];\n saveAnswer?: (answer: AnswerInput) => Promise;\n};\n\nexport type TextFieldProps = CommonFieldProps & {\n placeHolderText: string;\n maxLength?: number;\n onBlur?: (e: React.FocusEvent) => void;\n};\n\nexport type MutlipleChoiceProps = CommonFieldProps & {\n options: string[];\n pinnedValueOptions: string[];\n sort: boolean;\n};\n\nexport const DateFormats = {\n Long: \"dddd MMMM DD, YYYY\",\n Standard: \"MMMM DD, YYYY\",\n YearMonthDay: \"YYYY-MM-DD\",\n MonthDayYear: \"MM/DD/YYYY\",\n};\n","import styled from \"styled-components\";\n\nconst ProgressTrackerContainer = styled.div`\n ${({ theme }) => `\n background: ${theme.colors.values.white};\n box-shadow: 2px 3px 8px 0 #ccc;\n border-radius: 8px 8px 0 0;\n position: relative;\n top: 30px;\n margin: 0 auto;\n z-index: 10;\n padding: 10px 15px;\n font-size: 12px;\n font-weight: 400;\n border-bottom: solid 5px #daedff;\n `}\n`;\n\nconst CompleteText = styled.span`\n color: ${(props) => props.theme.colors.values.lightblack};\n`;\n\nconst Percentage = styled.span`\n display: inline-block;\n color: #3260d3;\n font-weight: 500;\n`;\n\nconst TimeEstimate = styled.span`\n display: inline-block;\n margin-left: 15px;\n font-weight: 500;\n color: ${(props) => props.theme.colors.alias.darkPrimary};\n`;\n\nconst CompletionProgressBar = styled.div`\n position: absolute;\n left: 0;\n bottom: -5px;\n height: 5px;\n background: ${(props) => props.theme.colors.alias.primary};\n`;\n\nexport { ProgressTrackerContainer, CompleteText, Percentage, TimeEstimate, CompletionProgressBar };\n","import { DEFAULT_PHONE_MASK, FALSY_STRING, TRUTHY_STRING } from \"@src/constants/validation\";\r\nimport { Field, AnswerInput, FieldType } from \"@src/types\";\r\nimport { getAddressInnerFields } from \"./address\";\r\nimport { isSimpleField } from \"./field\";\r\nimport { getYesOrNoFields, getValueOptions } from \"./getters\";\r\n\r\nconst getMultiFieldConditionalInnerFields = (field: Field, answers: AnswerInput[]): Field[] => {\r\n const mainAnswer = answers.find(\r\n (answer) => answer.fieldId === field.id && answer.questionId === field.question?.id\r\n );\r\n\r\n if (mainAnswer) {\r\n const [yesFields, noFields] = getYesOrNoFields(field.fields || []);\r\n\r\n const selectedFields =\r\n mainAnswer.value === TRUTHY_STRING\r\n ? yesFields\r\n : mainAnswer.value === FALSY_STRING\r\n ? noFields\r\n : [];\r\n\r\n return selectedFields ? [...selectedFields] : [];\r\n }\r\n\r\n return [];\r\n};\r\n\r\nconst getSelectConditionalInnerFields = (field: Field, answers: AnswerInput[]): Field[] => {\r\n const mainAnswer = answers.find(\r\n (answer) => answer.fieldId === field.id && answer.questionId === field.question?.id\r\n );\r\n\r\n if (mainAnswer) {\r\n const options = getValueOptions(field);\r\n const selectedIndex = options.findIndex((option) => option === mainAnswer.value);\r\n const selectedOptionFields =\r\n selectedIndex >= 0 && field.fields && field.fields[selectedIndex] ? field.fields[selectedIndex].fields || [] : [];\r\n\r\n return [...selectedOptionFields];\r\n }\r\n\r\n return [];\r\n};\r\n\r\nconst isSimpleFieldAnswered = (field: Field, answers: AnswerInput[]) =>\r\n answers.some(\r\n (x) =>\r\n x.fieldId === field.id &&\r\n x.questionId === field.question?.id &&\r\n x.value !== \"\" &&\r\n x.value !== \"[]\" && // SelectMultiple\r\n x.value !== DEFAULT_PHONE_MASK.replace(\"#\", \"_\") // Phone\r\n );\r\n\r\nconst isFieldAnswered = (field: Field, answers: AnswerInput[]): boolean => {\r\n if (field && answers && answers.length > 0) {\r\n if (isSimpleField(field)) {\r\n return isSimpleFieldAnswered(field, answers);\r\n } else if (field.type === FieldType.Equations) {\r\n return answers.some((x) => x.fieldId === field.id && x.questionId === \"row\");\r\n } else if (\r\n field.type === FieldType.Conditional ||\r\n field.type === FieldType.SelectConditional ||\r\n field.type === FieldType.MultiFieldConditional\r\n ) {\r\n return isSimpleFieldAnswered(field, answers);\r\n } else if (field.type === FieldType.RepeatableQuestion) {\r\n return !!field.fields?.some((x) => isFieldAnswered(x, answers));\r\n } else if (field.type === FieldType.Upload) {\r\n return isSimpleFieldAnswered(field, answers);\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getFlattenedFieldList = (fields: Field[], answers: AnswerInput[]): Field[] => {\r\n const flattenedFields = fields.flatMap((field) => {\r\n if (\r\n isSimpleField(field) ||\r\n field.type === FieldType.Equations ||\r\n field.type === FieldType.Upload ||\r\n field.type === FieldType.RepeatableQuestion\r\n ) {\r\n return field;\r\n }\r\n\r\n if (field.type === FieldType.Address) {\r\n // Address inner fields have the same field Id as the parent address field\r\n return getAddressInnerFields(field).map((innerField) => ({\r\n ...innerField,\r\n id: field.id,\r\n }));\r\n }\r\n\r\n if (field.type === FieldType.MultiFieldConditional || field.type === FieldType.Conditional) {\r\n const selectedFields = getMultiFieldConditionalInnerFields(field, answers);\r\n\r\n return [field, ...selectedFields];\r\n }\r\n\r\n if (field.type === FieldType.SelectConditional) {\r\n const selectedFields = getSelectConditionalInnerFields(field, answers);\r\n\r\n return [field, ...selectedFields];\r\n }\r\n });\r\n\r\n return flattenedFields.filter(Boolean) as Field[];\r\n};\r\n\r\nexport { isFieldAnswered, getFlattenedFieldList };\r\n","import React, { FC } from \"react\";\n\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { Field } from \"@src/types\";\nimport { isComplexField, isSimpleField } from \"@src/utils/field\";\nimport {\n getAttendeeFields,\n getAttendeesList,\n getOrderInfo,\n getSigneeAnswers,\n getSigneeFields,\n getTickets,\n} from \"@src/utils/getters\";\nimport {\n CompleteText,\n CompletionProgressBar,\n Percentage,\n ProgressTrackerContainer,\n TimeEstimate,\n} from \"./styles\";\nimport { getFlattenedFieldList, isFieldAnswered } from \"@src/utils/progressTracker\";\nimport { useCachedResponseVersion } from \"@src/customHooks/useResponseVersion\";\nimport { useReactiveVar } from \"@apollo/client\";\nimport { ResponseVersionHash } from \"@src/localVariables\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ProgressTracker: FC = () => {\n //milliseconds\n const simpleFieldEntryTimeEstimation = 30000;\n const complexFieldEntryTimeEstimation = 60000;\n const ticketEntryTimeEstimation = 45000;\n const responseVersionHash = useReactiveVar(ResponseVersionHash);\n const { t } = useTranslation();\n\n const { form } = useFormInfo();\n const responseVersionQuery = useCachedResponseVersion(responseVersionHash);\n\n const attendees = getAttendeesList(responseVersionQuery.responseVersion).filter(\n (attendee) => !form.requiresPermission || attendee.permitted\n );\n\n const calculateTimeEstimation = (fields: Field[], numberOfAttendees = 1) => {\n return Math.ceil(\n fields.filter((x) => isComplexField(x)).length *\n numberOfAttendees *\n complexFieldEntryTimeEstimation +\n fields.filter((x) => isSimpleField(x)).length *\n numberOfAttendees *\n simpleFieldEntryTimeEstimation\n );\n };\n\n const millisecondsTommss = (millis: number) => {\n const sign = millis < 0 ? \"-\" : \"\";\n const minutes = Math.floor(millis / 60000);\n const seconds = (millis % 60000) / 1000;\n return (\n sign +\n (minutes < 10 ? \"0\" : \"\") +\n minutes +\n \":\" +\n (seconds < 10 ? \"0\" : \"\") +\n seconds.toFixed(0)\n );\n };\n\n const signeeFields = getSigneeFields(form);\n const attendeeFields = getAttendeeFields(form);\n const tickets = getTickets(form);\n const isGeneralSignup = form.isGeneralSignup;\n const signeeAnswers = getSigneeAnswers(responseVersionQuery.responseVersion);\n const orderInfo = getOrderInfo(\n responseVersionQuery.responseVersion,\n false);\n const numberOfAttendees = isGeneralSignup ? 1 : attendees.length;\n\n const flattenedSigneeFields = getFlattenedFieldList(signeeFields, signeeAnswers);\n\n let numberOfFields = 0;\n let numberOfFieldsCompleted = 0;\n let signeeFormTimeEstimation = 0;\n let attendeeFormTimeEstimation = 0;\n let ticketTimeEstimation = 0;\n\n if (flattenedSigneeFields && flattenedSigneeFields.length > 0) {\n signeeFormTimeEstimation = calculateTimeEstimation(flattenedSigneeFields);\n numberOfFields += flattenedSigneeFields.filter(\n (x) => isComplexField(x) || isSimpleField(x)\n ).length;\n numberOfFieldsCompleted += flattenedSigneeFields.filter((x) =>\n isFieldAnswered(x, signeeAnswers)\n ).length;\n }\n\n if (!isGeneralSignup && attendeeFields && attendeeFields.length > 0) {\n attendees.map((attendee) => {\n const flattenedAttendeeFields = getFlattenedFieldList(\n attendeeFields,\n attendee.attendeeAnswers\n );\n\n attendeeFormTimeEstimation = calculateTimeEstimation(\n flattenedAttendeeFields,\n attendees.length\n );\n\n numberOfFields += flattenedAttendeeFields.filter(\n (x) => isComplexField(x) || isSimpleField(x)\n ).length;\n\n numberOfFieldsCompleted += flattenedAttendeeFields.filter((x) =>\n isFieldAnswered(x, attendee.attendeeAnswers)\n ).length;\n });\n }\n\n // if there are no signee or attendee questions, we skip checking the tickets.\n // this is because we're dead set on having business rules designed to complicate things\n // and to cause our user to believe things are broken. mind numbing stuff\n if (numberOfFields > 0 && tickets && tickets.length > 0) {\n ticketTimeEstimation = tickets.length * ticketEntryTimeEstimation * numberOfAttendees;\n numberOfFields += tickets.length * numberOfAttendees;\n numberOfFieldsCompleted +=\n orderInfo?.cart?.reduce((ticketIdsInCartCount, attendee) => {\n const uniqueTicketIds = new Set(attendee.tickets?.map((ticket) => ticket.ticketId) || []);\n return ticketIdsInCartCount + uniqueTicketIds.size || 0;\n }, 0) ?? 0;\n\n tickets\n .filter((x) => x.formQuestions && x.formQuestions.length > 0)\n .map((ticket) => {\n const ticketAnswerValues =\n orderInfo?.latestOrder?.purchasedTickets?.find((x) => x.ticketId === ticket.ticketId)\n ?.answers ?? [];\n\n if (ticket.formQuestions) {\n ticketTimeEstimation += calculateTimeEstimation(ticket.formQuestions, numberOfAttendees);\n numberOfFields +=\n ticket.formQuestions?.filter((x) => isComplexField(x) || isSimpleField(x)).length ||\n 0 * numberOfAttendees;\n\n numberOfFieldsCompleted +=\n ticket.formQuestions?.filter((x) => isFieldAnswered(x, ticketAnswerValues)).length ||\n 0 * numberOfAttendees;\n }\n });\n }\n\n const completionPercentage = numberOfFieldsCompleted / numberOfFields;\n const totalEstimationTime =\n signeeFormTimeEstimation + attendeeFormTimeEstimation + ticketTimeEstimation;\n const timeComplete = totalEstimationTime * completionPercentage;\n const timeEstimate =\n completionPercentage > 0 ? totalEstimationTime - timeComplete : totalEstimationTime;\n\n return numberOfFields > 0 ? (\n \n {(completionPercentage * 100).toFixed(0)}%{\" \"}\n {t(\"labels.complete\")}\n {t(\"labels.timeRemaining\", { timeEstimate: millisecondsTommss(timeEstimate)})}\n \n \n ) : null;\n};\n\nexport { ProgressTracker };\n","import React, { FC, useState } from \"react\";\n\nimport { cloneDeep } from \"@apollo/client/utilities\";\nimport ImageIcon from \"@src/assets/image.png\";\nimport PdfIcon from \"@src/assets/pdf.png\";\nimport { FileViewer } from \"@src/components/atoms/FileViewer\";\nimport { HeaderField, ParagraphField } from \"@src/components/fields\";\nimport { EquationsDisplayField } from \"@src/components/fields/EquationsField/components\";\nimport { RatingDisplayField } from \"@src/components/fields/RatingField\";\nimport { AnswerBackground } from \"@src/components/fields/RepeatableQuestionField/components/styles\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport {\n FileThumbnail,\n PdfThumbnail,\n StyledAnswerLabel,\n StyledAnswerRow,\n StyledDisplayLabel,\n StyledDivider,\n} from \"@src/components/styles\";\nimport { MimeType } from \"@src/constants/mimeTypes\";\nimport { Answer, AnswerInput, Field, FieldType } from \"@src/types\";\nimport {\n getEquationAggregateQuestions,\n getEquationCalculatedQuestions,\n getEquationInputQuestions,\n} from \"@src/utils/equations\";\nimport { collectFieldAnswers, isCollapsed, isNoInputField, isSimpleField } from \"@src/utils/field\";\nimport { getEquationValue } from \"@src/utils/formValues\";\nimport { getHeaderText, getSubheaderText } from \"@src/utils/getters\";\nimport { getLabelValuePair, LabelValuePair } from \"@src/utils/repeatables\";\nimport groupBy from \"lodash/groupBy\";\nimport { Icon } from \"@src/components/atoms/Icon\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { useTranslation } from \"react-i18next\";\n\ntype DisplayAnswersProps = {\n fields: Field[];\n answers: AnswerInput[];\n integratedDataAnswers?: Answer[];\n countryCode?: string;\n documentId?: string;\n responseVersionId?: string;\n uploadedFileViewBaseUrl?: string;\n shouldTranslateAnswers?: boolean;\n};\n\nconst DisplayAnswers: FC = ({\n fields,\n answers,\n integratedDataAnswers,\n countryCode,\n documentId,\n responseVersionId,\n uploadedFileViewBaseUrl,\n shouldTranslateAnswers,\n}) => {\n const [showFile, setShowFile] = useState(null);\n const [collapsedHeaders, setCollapsedHeaders] = useState([]);\n const googleTranslate = useGoogleTranslate();\n const { t } = useTranslation();\n\n if (!uploadedFileViewBaseUrl && countryCode && documentId && responseVersionId) {\n uploadedFileViewBaseUrl = `${\n process.env.RESPONSES_URL\n }response/${countryCode.toLowerCase()}/${documentId}/media`;\n }\n\n const handleToggleCollapse = (fieldId: string) => {\n const existing = collapsedHeaders.find((x) => x === fieldId);\n\n if (existing) {\n setCollapsedHeaders(collapsedHeaders.filter((x) => x !== existing));\n } else {\n const headers = cloneDeep(collapsedHeaders);\n headers.push(fieldId);\n\n setCollapsedHeaders(headers);\n }\n };\n\n const displayAnswer = (\n testId: string,\n labelValue: LabelValuePair,\n direction: \"ltr\" | \"auto\" = \"auto\"\n ) => {\n const questionLabel = googleTranslate(labelValue.label);\n const questionValue = shouldTranslateAnswers\n ? googleTranslate(labelValue.value)\n : labelValue.value;\n return (\n \n {questionLabel}{\" \"}\n \n {questionValue}\n \n \n );\n };\n\n const displayPhoneAnswer = (testId: string, labelValue: LabelValuePair) => {\n const questionLabel = googleTranslate(labelValue.label);\n const questionValue = labelValue.value;\n return (\n \n {questionLabel}{\" \"}\n \n {questionValue}\n \n \n );\n };\n\n return (\n \n {showFile ? (\n setShowFile(null)}\n />\n ) : null}\n {fields.map((i, idx) => {\n const field: Field = i;\n\n const collapsed = isCollapsed(field, fields, collapsedHeaders);\n\n if (field.type !== FieldType.Header && field.type !== FieldType.Section && collapsed)\n return null;\n\n if (isNoInputField(field)) {\n if (field.type === FieldType.Descriptivetext) {\n return ;\n }\n\n if (field.type === FieldType.Header || field.type === FieldType.Section) {\n return (\n \n );\n }\n\n if (field.type === FieldType.Divider) {\n return ;\n }\n }\n\n if (isSimpleField(field)) {\n const labelValue = getLabelValuePair({ field, answers });\n\n if (field.type === FieldType.Rating) {\n if (isNaN(Number(labelValue.value))) {\n return displayAnswer(field.question?.id ?? \"\", labelValue);\n } else {\n return (\n \n );\n }\n }\n\n if (field.type === FieldType.Yesno) {\n if (labelValue.value.toLowerCase() === \"true\") {\n labelValue.value = t(\"labels.yes\");\n }\n\n if (labelValue.value.toLowerCase() === \"false\") {\n labelValue.value = t(\"labels.no\");\n }\n }\n\n if (\n field.type !== FieldType.Singleline &&\n field.type !== FieldType.Multiline &&\n field.type !== FieldType.Phonenumber\n ) {\n labelValue.value = googleTranslate(labelValue.value);\n }\n\n if (field.type === FieldType.Phonenumber) {\n return
{displayPhoneAnswer(field.question?.id ?? \"\", labelValue)}
;\n }\n\n return
{displayAnswer(field.question?.id ?? \"\", labelValue)}
;\n } else if (field.type === FieldType.Address) {\n return field.fields\n ?.filter((f) => !f.question?.hidden)\n .map((addressField, addressIndex) => {\n const labelValue = getLabelValuePair({\n field: addressField,\n answers,\n overrideFieldId: field.id,\n });\n\n return (\n
\n {displayAnswer(addressField.question?.id ?? \"\", labelValue)}\n
\n );\n });\n } else if (field.type === FieldType.Upload) {\n const answer = answers.find(\n (x) => x.fieldId === field.id && x.questionId === field.question?.id\n );\n const labelValue = getLabelValuePair({ field, answers });\n return (\n
\n \n {googleTranslate(labelValue.label)}{\" \"}\n {answer && answer.value ? (\n answer.fileType === MimeType.PDF ? (\n setShowFile(answer)}\n style={{\n cursor: \"pointer\",\n width: \"30px\",\n verticalAlign: \"middle\",\n marginLeft: \"15px\",\n }}\n src={PdfIcon}\n />\n ) : (\n setShowFile(answer)}\n style={{\n cursor: \"pointer\",\n width: \"30px\",\n verticalAlign: \"middle\",\n marginLeft: \"15px\",\n }}\n src={ImageIcon}\n />\n )\n ) : (\n {labelValue.value}\n )}\n \n
\n );\n } else if (field.type === FieldType.RepeatableQuestion) {\n const labelValue = getLabelValuePair({ field, answers });\n const repeatableAnswers = collectFieldAnswers(field, answers);\n const answersByOrder = groupBy(repeatableAnswers, \"order\");\n const rows = Object.keys(answersByOrder).map((rowOrder) => ({\n order: rowOrder,\n fields: field.fields?.flatMap((innerField) => {\n if (innerField.type === FieldType.Address) {\n const addressFieldId = innerField.id;\n const addressFields = innerField.fields || [];\n return addressFields\n .filter((x) => !x.question?.hidden)\n .map((x) => {\n return { ...x, id: addressFieldId };\n });\n } else {\n return innerField;\n }\n }),\n answers: answersByOrder[rowOrder],\n }));\n\n return (\n
\n \n {googleTranslate(labelValue.label)}{\" \"}\n {rows && rows.length > 0 ? (\n rows.map((row, index) => {\n return (\n \n \n \n );\n })\n ) : (\n {labelValue.value}\n )}\n \n
\n );\n } else if (field.type === FieldType.Equations) {\n const labelValue = getLabelValuePair({ field, answers });\n const value = getEquationValue({ field, answers: collectFieldAnswers(field, answers) });\n\n if (value && value.allAnswers && value.allAnswers.length > 0) {\n return (\n \n );\n } else {\n return displayAnswer(field.question?.id ?? \"\", labelValue);\n }\n } else if (\n field.type === FieldType.MultiFieldConditional ||\n field.type === FieldType.Conditional\n ) {\n const labelValue = getLabelValuePair({ field, answers });\n\n if (labelValue.value.toLowerCase() === \"true\") {\n labelValue.value = t(\"labels.yes\");\n }\n\n if (labelValue.value.toLowerCase() === \"false\") {\n labelValue.value = t(\"labels.no\");\n }\n\n return (\n
\n {displayAnswer(field.question?.id ?? \"\", labelValue)}\n {labelValue.value === t(\"labels.yes\") && field.fields && field.fields.length > 0 ? (\n \n ) : null}\n\n {labelValue.value === t(\"labels.no\") && field.fields && field.fields.length > 1 ? (\n \n ) : null}\n
\n );\n } else if (field.type === FieldType.SelectConditional) {\n const labelValue = getLabelValuePair({ field, answers });\n const selectedIndex = field.question?.valueOptions?.indexOf(labelValue.value) ?? -1;\n\n labelValue.value = googleTranslate(labelValue.value);\n\n return (\n
\n {displayAnswer(field.question?.id ?? \"\", labelValue)}\n\n {selectedIndex >= 0 && field.fields && selectedIndex < field.fields?.length ? (\n \n ) : null}\n
\n );\n } else if (field.type === FieldType.IntegratedData && field.fields?.length === 1) {\n const labelValue = getLabelValuePair({ field, answers });\n\n const key = field.question?.dataValue?.split(\":\")[1] || \"\";\n\n const existingValue = integratedDataAnswers?.find(\n (answer) => answer.questionId === key\n )?.value;\n\n const newValue = answers?.find(\n (answer) =>\n answer.fieldId === field.fields?.[0].id ||\n (\"\" && answer.questionId === field.fields?.[0].question?.id) ||\n \"\"\n )?.value;\n\n const valueChanged = newValue ? newValue !== existingValue : false;\n const valueRemoved =\n (!newValue && existingValue) || (newValue === \"\" && newValue !== existingValue);\n\n const existingValueLabel: LabelValuePair = {\n fileType: \"\",\n label: t(\"labels.SISValue\"),\n value: existingValue || t(\"labels.noAnswer\"),\n };\n\n const newValueLabel: LabelValuePair = {\n fileType: \"\",\n label: t(\"labels.responseValue\"),\n value: newValue || existingValue || t(\"labels.noAnswer\"),\n };\n\n const originalQuestion = field.fields?.[0];\n const direction = originalQuestion?.type === FieldType.Phonenumber ? \"ltr\" : \"auto\";\n\n return (\n \n

{googleTranslate(labelValue.label)}

\n
\n {displayAnswer(key + \"-SIS-VALUE\", existingValueLabel, direction)}\n {!field.readonly ? (\n \n {newValueLabel.label}{\" \"}\n {valueChanged ? (\n \n ) : valueRemoved ? (\n \n ) : null}\n \n {valueRemoved ? t(\"labels.valueRemoved\") : newValueLabel.value}\n \n \n ) : null}\n
\n
\n );\n }\n })}\n
\n );\n};\n\nexport { DisplayAnswers };\n","import { Icon } from \"@src/components/atoms/Icon\";\r\nimport styled from \"styled-components\";\r\n\r\nconst ErrorNavigatorWrapper = styled.div`\r\n position: fixed;\r\n bottom: 0;\r\n left: 0;\r\n background-color: #ff6c6c;\r\n width: 100vw;\r\n height: 50px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-weight: bold;\r\n z-index: 1000;\r\n`;\r\n\r\nconst ErrorNavigationMessage = styled.span`\r\n color: #43516f;\r\n font-size: 14px;\r\n line-height: 20px;\r\n text-transform: uppercase;\r\n margin: 0 10px;\r\n`;\r\n\r\nconst ShowNextErrorButton = styled.button.attrs({ type: \"button\" })`\r\n background-color: #d24041;\r\n padding: 5px 10px;\r\n font-size: 0.9em;\r\n font-family: Roboto,sans-serif;\r\n color: ${({ theme }) => theme.colors.values.white};\r\n border-radius: 7px;\r\n border: none;\r\n font-weight: 500;\r\n cursor: pointer;\r\n`;\r\n\r\nconst ErrorIcon = styled(Icon).attrs({\r\n icon: \"exclamation-triangle\",\r\n color: \"#43516f\",\r\n size: \"12px\",\r\n style: \"solid\",\r\n})`\r\n margin-right: 5px;\r\n`;\r\n\r\nexport { ErrorNavigatorWrapper, ShowNextErrorButton, ErrorIcon, ErrorNavigationMessage };\r\n","import React, { FC } from \"react\";\r\nimport { useFormikContext } from \"formik\";\r\n\r\nimport {\r\n ErrorNavigatorWrapper,\r\n ShowNextErrorButton,\r\n ErrorIcon,\r\n ErrorNavigationMessage,\r\n} from \"./styles\";\r\nimport { getErrorListFromErrorObjects } from \"@src/utils/validation\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst ErrorNavigator: FC = () => {\r\n const { t } = useTranslation();\r\n const { errors, submitCount } = useFormikContext();\r\n\r\n const errorList = getErrorListFromErrorObjects(errors);\r\n\r\n const selectedError = errorList.length ? errorList[0] : null;\r\n\r\n const shouldShowError = !!submitCount && selectedError;\r\n\r\n const message = t(\"messages.fieldsHaveErrors\", { number: errorList.length });\r\n\r\n const navigateToError = () => {\r\n if (selectedError) {\r\n const yOffset = -150;\r\n const element = document.getElementById(selectedError.key);\r\n\r\n if (element) {\r\n const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;\r\n window.scrollTo({ top: y, behavior: \"smooth\" });\r\n }\r\n }\r\n };\r\n\r\n return shouldShowError ? (\r\n \r\n \r\n {message}\r\n navigateToError()}>\r\n {t(\"labels.showNextError\")}\r\n \r\n \r\n ) : null;\r\n};\r\n\r\nexport { ErrorNavigator };\r\n","import styled from \"styled-components\";\nimport { Flex } from \"@src/components/layout/Page\";\n\nconst ModalTitle = styled.h1`\n font-weight: 300;\n`;\n\nconst InfoModalContent = styled.div`\n position: fixed;\n z-index: 1000;\n margin: auto;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n max-width: 490px;\n min-width: 340px;\n height: fit-content;\n background-color: white;\n border-radius: 7px;\n`;\n\nconst InfoModalBackground = styled.div`\n position: fixed;\n margin: auto;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #838383;\n opacity: 0.6;\n z-index: 999;\n`;\n\nconst InfoModalTitleContainer = styled(Flex)`\n flex-grow: 1;\n margin-left: 20px;\n`;\n\nconst InfoModalMessageContainer = styled(Flex)`\n margin-left: 25px;\n`;\n\nconst InfoModalCloseIconContainer = styled(Flex)`\n margin: 20px 25px 0px 0px;\n height: fit-content;\n align-items: center;\n`;\n\nconst InfoModalActionButtonsContainer = styled(Flex)`\n justify-content: flex-end;\n border-bottom-left-radius: 7px;\n border-bottom-right-radius: 7px;\n padding: 20px;\n`;\n\nexport {\n ModalTitle,\n InfoModalContent,\n InfoModalBackground,\n InfoModalTitleContainer,\n InfoModalMessageContainer,\n InfoModalCloseIconContainer,\n InfoModalActionButtonsContainer,\n};\n","import { Button } from \"@src/components/atoms/Button\";\nimport { Icon } from \"@src/components/atoms/Icon\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport React, { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n InfoModalBackground,\n InfoModalContent,\n ModalTitle,\n InfoModalTitleContainer,\n InfoModalCloseIconContainer,\n InfoModalMessageContainer,\n InfoModalActionButtonsContainer,\n} from \"./styles\";\n\nexport type InfoModalProps = {\n title?: string;\n message?: string;\n confirmButtonText?: string;\n onCancel?: () => void;\n onConfirm?: () => void;\n};\n\nconst InfoModal: FC = ({\n title,\n message,\n confirmButtonText,\n onCancel,\n onConfirm,\n}) => {\n const { t } = useTranslation();\n return (\n <>\n \n \n \n {title}\n \n \n \n \n \n \n

{message}

\n
\n \n {onCancel ? (\n \n {t(\"labels.cancel\")}\n \n ) : null}\n\n {onConfirm ? (\n \n ) : null}\n \n
\n \n \n );\n};\n\nexport { InfoModal };\n","import { Button } from \"@src/components/atoms/Button\";\nimport { StyledNavigationButtonsContainer } from \"@src/components/styles\";\nimport { useBreakPoints } from \"@src/customHooks\";\nimport React, { FunctionComponent } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport type NavigationButtonsProps = {\n nextButtonDisabled?: boolean;\n displayBackButton?: boolean;\n displayNextButton?: boolean;\n backOnClick?: () => void;\n nextOnClick?: () => void;\n};\n\nconst NavigationButtons: FunctionComponent = ({\n nextButtonDisabled,\n displayBackButton = true,\n displayNextButton = true,\n backOnClick,\n nextOnClick,\n}: NavigationButtonsProps) => {\n const { t } = useTranslation();\n const screenSize = useBreakPoints();\n\n return (\n \n {displayBackButton ? (\n \n {t(\"labels.back\")}\n \n ) : (\n
\n )}\n {displayNextButton ? (\n \n {t(\"labels.next\")}\n \n ) : (\n
\n )}\n
\n );\n};\n\nexport { NavigationButtons };\n","import { NavItem, SubMenu, SubMenuBackground } from \"@src/components/layout/Header\";\nimport { useBreakPoints } from \"@src/customHooks\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport { NavigationItem } from \"./NavigationItem\";\n\ntype NavigationListItemProps = {\n item: NavigationItem;\n id: string;\n number?: number;\n linkIsActive: (item: NavigationItem) => boolean;\n onClick: (slug: string) => void;\n};\n\nconst NavigationListItem: FunctionComponent = ({\n item,\n id,\n number,\n linkIsActive,\n onClick,\n}) => {\n const [openItem, setOpenMenu] = useState(\"\");\n const screenSize = useBreakPoints();\n\n let activeName = \"\";\n\n const isEnabled = linkIsActive(item) && !item.isDisabled;\n\n if (item.subMenuItems) {\n item.subMenuItems.forEach((subMenuItem) => {\n if (subMenuItem.isCurrent) {\n activeName = subMenuItem.displayText;\n }\n });\n }\n\n return (\n \n isEnabled &&\n !item.isCurrent &&\n onClick(item.slug && !item.subMenuItems ? item.slug : \"\")\n : () => setOpenMenu(!openItem ? item.slug ?? \"\" : \"\")\n }\n isCurrent={item.isCurrent || (activeName != \"\" && screenSize === \"smallScreen\")}\n isEnabled={isEnabled || !!item.subMenuItems}\n >\n {number ? number : null}\n \n \n {screenSize === \"smallScreen\" && activeName != \"\" ? activeName : item.displayText}\n \n {item.subMenuItems ? : null}\n\n {item.subMenuItems && openItem === item.slug ? (\n <>\n setOpenMenu(\"\")} />\n \n {item.subMenuItems.map((subMenuItem, subIndex) => (\n onClick(subMenuItem.slug ?? \"\")}\n />\n ))}\n \n \n ) : null}\n \n );\n};\n\nexport { NavigationListItem };\n","import { Button } from \"@src/components/atoms/Button\";\nimport React, { FC } from \"react\";\nimport styled from \"styled-components\";\n\ntype StyledButtonProps = {\n disabled: boolean;\n};\n\nconst StyledButton = styled(Button)`\n ${({ disabled, theme }) => `\n min-width: 35px;\n height: 30px;\n\n border-radius: 7px;\n border-style: none;\n border-color: ${theme.colors.values.lightblue};\n\n margin-left: auto;\n margin-top: 10px;\n margin-right: 15px;\n padding: 5px;\n position: relative;\n\n background: ${disabled ? \"#b7b7b7\" : theme.colors.values.lightblue};\n\n text-align: center;\n font-size: 12px;\n font-family: ${theme.font.default};\n color: ${theme.colors.values.white};\n cursor: ${disabled ? \"default\" : \"pointer\"};\n\n @media (min-width: 900px) {\n font-size: 14px;\n min-width: 45px;\n min-height: 40px;\n padding: 8px 16px;\n height: 40px;\n }\n `}\n`;\n\nexport type CartButtonProps = {\n quantity: number;\n disabled: boolean;\n onClick: () => void;\n};\n\nconst QuantityIcon = styled.div`\n ${({ theme }) => `\n border-radius: 50%;\n position: absolute;\n color: white;\n left: -8px;\n bottom: -6px;\n z-index: 3;\n background-color: ${theme.colors.alias.primary};\n height: 20px;\n width: 20px;\n display: flex;\n justify-content: center;\n font-size: 10px;\n line-height: 20px;\n font-family: ${theme.font.default}\n `}\n`;\n\nconst CartButton: FC = ({ quantity, disabled, onClick }) => {\n return (\n \n {!disabled ? {quantity ?? 0} : null}\n \n \n );\n};\n\nexport { CartButton };\n","import styled from \"styled-components\";\nimport { Breakpoints } from \"@src/customHooks\";\nimport { Flex } from \"@src/components/layout/Page\";\n\nexport const StyledModal = styled.div<{ screenSize: Breakpoints }>`\n ${({ theme, screenSize }) => `\n display: flex;\n flex-direction: column;\n background: ${theme.colors.values.white};\n position: absolute;\n right: 85px;\n top: 100px;\n z-index: 999;\n width: ${screenSize === \"desktop\" ? \"400px\" : \"250px\"};\n\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n border: 1px solid #e9e9e9;\n padding: 15px;\n border-radius: 10px;\n `}\n`;\n\nexport const StyledModalContent = styled.div`\n max-height: 400px;\n overflow-y: auto;\n`;\n\nexport const CartModalBoundaries = styled.div`\n position: fixed;\n margin: auto;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`;\n\nexport const StyledCartContainer = styled(Flex)<{ screenSize: Breakpoints }>`\n margin-right: ${(props) => (props.screenSize === \"desktop\" ? `50px` : `0px`)};\n`;\n","import { useApolloClient, useReactiveVar } from \"@apollo/client\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { LoadingModal } from \"@src/components/molecules/loadingModal/LoadingModal\";\nimport { Totals } from \"@src/components/molecules/totals\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport { useBreakPoints, useUrlParams } from \"@src/customHooks\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { useCachedResponseVersion } from \"@src/customHooks/useResponseVersion\";\nimport { OrderId, ResponseVersionHash } from \"@src/localVariables\";\nimport { CancelTicketAnswerResult } from \"@src/mutations/mutationTypes\";\nimport { cancelTicketMutationUpdater } from \"@src/mutations/updaterFunctions/updateTickets\";\nimport { RESPONSE_VERSIONS_QUERY } from \"@src/queries/responseVersions\";\nimport { PreviewProps } from \"@src/Routes\";\nimport { Attendee, FormInfoQuery, Order, Ticket, useCancelTicketMutation } from \"@src/types\";\nimport { getOrderInfo, getTickets, hasSafePay } from \"@src/utils/getters\";\nimport { CancelTicketArgs } from \"@src/utils/purchasedTickets\";\nimport { signeeInfo } from \"@src/utils/responseVersionGetters\";\nimport React, { FC, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { TicketsPreview } from \"../Preview\";\nimport { TicketMode } from \"../TicketSection\";\nimport { CartButton } from \"./CartButton\";\nimport {\n CartModalBoundaries,\n StyledCartContainer,\n StyledModal,\n StyledModalContent,\n} from \"./styles\";\n\nconst Cart: FC = ({ isPreview }) => {\n const { countryCode } = useUrlParams();\n const orderId = useReactiveVar(OrderId) || \"\";\n const responseVersionHash = useReactiveVar(ResponseVersionHash);\n const client = useApolloClient();\n\n const formInfo = useFormInfo();\n const responseVersionQuery = useCachedResponseVersion(responseVersionHash);\n\n const responseVersionQueryVariables = {\n documentId: formInfo.form?.documentId,\n countryCode,\n email: signeeInfo(responseVersionQuery.responseVersion).email,\n };\n\n const mutationOptions = {\n awaitRefetchQueries: true,\n refetchQueries: [\n {\n query: RESPONSE_VERSIONS_QUERY,\n variables: responseVersionQueryVariables,\n },\n ],\n };\n\n const [cancelTicket] = useCancelTicketMutation(mutationOptions);\n\n const onCancelTicket = ({\n ticketVersionId,\n responseAttendeeId,\n purchasedTicketIds,\n }: CancelTicketArgs): Promise =>\n cancelTicket({\n variables: {\n countryCode,\n documentId: formInfo.form?.documentId,\n responseVersionId: responseVersionQuery.responseVersion?.responseVersionId,\n responseAttendeeId: responseAttendeeId,\n ticketVersionId: ticketVersionId,\n purchasedTicketIds: purchasedTicketIds,\n orderId,\n },\n });\n\n const previewOnCancelTicket = ({\n ticketVersionId,\n responseAttendeeId,\n purchasedTicketIds,\n }: CancelTicketArgs): Promise => {\n const result = { CancelTicket: true };\n const updater = cancelTicketMutationUpdater(signeeInfo(responseVersionQuery.responseVersion));\n if (updater) {\n updater(\n client.cache,\n { data: result },\n {\n variables: {\n countryCode,\n documentId: formInfo.form?.documentId,\n responseVersionId: responseVersionQuery.responseVersion?.responseVersionId,\n responseAttendeeId: responseAttendeeId,\n ticketVersionId: ticketVersionId,\n purchasedTicketIds: purchasedTicketIds,\n orderId,\n },\n }\n );\n }\n return Promise.resolve({ data: result, errors: undefined });\n };\n\n const safePay = hasSafePay(formInfo.form);\n const tickets = getTickets(formInfo.form);\n const orderInfo = getOrderInfo(responseVersionQuery.responseVersion, false);\n\n return (\n \n );\n};\n\ntype CartModalProps = {\n children: React.ReactNode[];\n isLoading: boolean;\n};\n\nconst CartModal: FC = ({ children, isLoading }) => {\n const { t } = useTranslation();\n const screenSize = useBreakPoints();\n\n return (\n \n {isLoading ? : children}\n \n );\n};\n\ntype CartContainerProps = {\n tickets: Ticket[];\n cart: Attendee[];\n order?: Order;\n hasSafePay?: boolean;\n isLoading?: boolean;\n countryCode: string;\n form: NonNullable;\n responseVersionId: string;\n onCancelTicket?: (args: CancelTicketArgs) => Promise;\n};\n\nconst CartContainer: FC = ({\n tickets,\n cart,\n order,\n isLoading,\n countryCode,\n form,\n responseVersionId,\n onCancelTicket,\n}) => {\n const [expandCart, setExpandCart] = useState(false);\n const screenSize = useBreakPoints();\n const totalQuantity = order?.purchasedTickets.length ?? 0;\n const hasTickets = order ? order?.purchasedTickets?.length > 0 : false;\n\n const closeModal = (e: React.MouseEvent) => {\n const target = e.target as Element;\n\n if (target?.id == \"closeModal\") {\n setExpandCart(false);\n }\n };\n\n return (\n \n \n setExpandCart(!expandCart)}\n quantity={totalQuantity}\n />\n {expandCart ? (\n closeModal(e)}>\n \n \n \n {form ? (\n \n ) : null}\n \n \n \n \n \n \n ) : null}\n \n \n );\n};\n\nconst CartHeader: FC = () => {\n const { t } = useTranslation();\n\n return (\n \n {t(\"pages.tickets.orderSummary\")}\n \n );\n};\n\ntype CartFooterProps = {\n children: React.ReactNode;\n};\n\nconst CartFooter: FC = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nexport { Cart };\n","import { Flex } from \"@src/components/layout/Page\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport React, { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport styled from \"styled-components\";\n\nconst StyledPreviewBar = styled(Flex)`\n ${({ theme }) => `\n width: 100%;\n box-sizing: border-box;\n padding: 8px;\n background: ${theme.colors.values.yellow};\n color: ${theme.colors.values.darkgrey};\n align-items: baseline;\n justify-content: center;\n max-height: 50px;\n overflow-y: auto;\n z-index: 2;\n\n & > * {\n margin-left: 5px;\n margin-bottom: 0;\n }\n\n .bold {\n font-weight: 600;\n }\n `}\n`;\n\ntype PreviewBarProps = {\n guardianRoleLabel: string;\n};\n\nconst PreviewBar: FC = ({ guardianRoleLabel }) => {\n const { t } = useTranslation();\n const signee = guardianRoleLabel ?? \"Guardian\";\n return (\n \n \n {t(\"previewBar.mode\")}: \n {t(\"previewBar.message\", { signee })}\n \n );\n};\n\nexport { PreviewBar };\n","import { useReactiveVar } from \"@apollo/client\";\nimport { Icon } from \"@src/components/atoms/Icon\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport {\n ErrorHeader,\n ErrorMessage,\n ErrorMessageHeader,\n ReloadButton,\n StyledErrorBar,\n StyledErrorBarMessage,\n} from \"@src/components/styles\";\nimport { useUrlParams } from \"@src/customHooks\";\nimport { useCachedResponseVersion } from \"@src/customHooks/useResponseVersion\";\nimport { RequestError, ResponseVersionHash } from \"@src/localVariables\";\nimport { SigneeInfoRoute } from \"@src/Routes\";\nimport { getAppInsights } from \"@src/TelemetryProvider\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { GraphQLError } from \"graphql\";\nimport React, { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Navigate } from \"react-router-dom\";\n\nconst ErrorBar: FC = () => {\n const { t, i18n } = useTranslation();\n const { baseUrl } = useUrlParams();\n const googleTranslate = useGoogleTranslate();\n const responseVersionHash = useReactiveVar(ResponseVersionHash);\n const requestError = useReactiveVar(RequestError);\n const responseVersionQuery = useCachedResponseVersion(responseVersionHash);\n const responseVersionId = responseVersionQuery.responseVersion?.responseVersionId;\n const errorHeader = requestError?.message?.includes(\"500\") ? t(\"errors.500\") : t(\"errors.errorHasOccurred\");\n const appInsights = getAppInsights();\n const userId = appInsights.context?.user?.id;\n\n if (requestError?.message?.includes(\"Error 124\")) {\n return ;\n }\n\n return requestError ? (\n <>\n \n \n { RequestError(null) }} />\n \n {errorHeader}\n {requestError.message ? (\n \n {googleTranslate(\"Message:\")}\n {googleTranslate(requestError.message)}\n \n ) : null}\n {requestError.message && !i18n.language.includes(\"en\") ? (\n \n Message:\n {requestError.message}\n \n ) : null}\n {requestError.message && responseVersionId ? (\n \n Response Version Id:\n {responseVersionId}\n \n ) : null}\n {requestError.message && userId ? (\n \n Trace Id:\n {userId}\n \n ) : null}\n {\"graphQLErrors\" in requestError && requestError.graphQLErrors\n ? requestError.graphQLErrors.map((x, index) => {\n return (\n
\n {x.message}\n {x.extensions.response && (\n Url: {x.extensions.response.url}\n )}\n
\n );\n })\n : null}\n {\"networkError\" in requestError && requestError.networkError ? (\n {requestError.networkError.message}\n ) : null}\n {\"clientErrors\" in requestError && requestError.clientErrors\n ? requestError.clientErrors.map((x, index) => {\n return {x.message};\n })\n : null}\n {\"extensions\" in requestError && requestError.extensions && displayGraphQLError(requestError)}\n\n { window.location.reload() }}>{t(\"labels.reload\")}\n
\n \n ) : null;\n};\n\nconst displayGraphQLError = (error: GraphQLError) => {\n if (error.extensions.code && error.extensions.response) {\n return (\n <>\n {error.extensions.code}\n {error.extensions.response?.body?.message && (\n {error.extensions.response.body.message}\n )}\n Url: {error.extensions.response?.url}\n \n );\n }\n};\n\nexport { ErrorBar };\n","import styled from \"styled-components\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport arrowBackward from \"@src/assets/arrow-backward.svg\";\n\nexport const HeaderContainer = styled(Flex)`\n align-items: center;\n justify-content: space-between;\n padding: 12px;\n height: 44px;\n border-bottom: 1px solid #c4c9ca;\n background-color: #ffffff;\n z-index: 6000;\n padding-left: 40px;\n padding-right: 40px;\n`;\n\nexport const LeftGroup = styled(Flex)`\n gap: 20px;\n min-width: 0;\n`;\n\nexport const RightGroup = styled(Flex)`\n margin-left: auto;\n`;\n\nexport const Heading = styled.div`\n font-weight: bold;\n font-size: 20px;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: sans-serif;\n`;\n\nexport const StudentName = styled.div`\n font-size: 18px;\n font-weight: bold;\n margin-left: 11px;\n color: #333;\n font-family: sans-serif;\n`;\n\nexport const Icon = styled.a`\n width: 24px;\n height: 24px;\n background-size: contain;\n background-repeat: no-repeat;\n margin-right: 10px;\n cursor: pointer;\n`;\n\nexport const ArrowBackIcon = styled(Icon)`\n background-image: url(${arrowBackward});\n`;\n","import React, { useCallback, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { ArrowBackIcon, HeaderContainer, Heading, LeftGroup, RightGroup, StudentName } from \"./styles\";\nimport { useCachedResponseVersion } from \"@src/customHooks/useResponseVersion\";\nimport { ResponseVersionHash } from \"@src/localVariables\";\nimport { useReactiveVar } from \"@apollo/client\";\nimport { getFormAttendees } from \"@src/utils/getters\";\nimport { getAppInsights } from \"@src/TelemetryProvider\";\n\nconst MyPowerHubHeader: React.FC = () => {\n const appInsights = getAppInsights();\n const { t } = useTranslation();\n const responseVersionHash = useReactiveVar(ResponseVersionHash);\n const responseVersionQuery = useCachedResponseVersion(responseVersionHash);\n\n const responseVersion = responseVersionQuery.responseVersion;\n const attendees = getFormAttendees(responseVersion);\n\n const closeWindow = useCallback(() => {\n const win = window.open(undefined, '_self');\n if (win != null) win.close();\n }, []);\n\n const refreshParentTab = useCallback(() => {\n if (window && window.opener) {\n try {\n window.opener.postMessage(\"REFRESH\", \"*\");\n } catch (e) {\n appInsights.trackException({ exception: e as Error });\n }\n }\n }, [appInsights]);\n\n const handleExit = useCallback(() => {\n refreshParentTab();\n closeWindow();\n }, [refreshParentTab, closeWindow]);\n\n const handleBackClick = () => {\n handleExit();\n };\n\n useEffect(() => {\n const handleBeforeUnload = () => {\n handleExit();\n };\n\n const handleVisibilityChange = () => { \n handleExit(); // close when refreshing the browser\n }; \n \n window.addEventListener(\"beforeunload\", handleBeforeUnload);\n window.addEventListener(\"pagehide\", handleVisibilityChange);\n \n return () => {\n window.removeEventListener(\"beforeunload\", handleBeforeUnload);\n window.removeEventListener(\"pagehide\", handleVisibilityChange);\n };\n }, [handleExit]);\n\n return (\n \n \n \n {t(\"labels.forms\")}\n \n \n {attendees && attendees.length > 0 && (\n {`${attendees[0].lastName}, ${attendees[0].firstName}`}\n )}\n \n \n );\n};\n\nexport { MyPowerHubHeader };","import React, { FC, useLayoutEffect, useRef, useState } from \"react\";\nimport { useReactiveVar } from \"@apollo/client\";\nimport { ErrorComponent } from \"@src/pages/Error/Error\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport { useBreakPoints, useUrlParams } from \"@src/customHooks\";\nimport { HasAccess, NavSlug, ResponseVersionHash } from \"@src/localVariables\";\nimport {\n HeaderBar,\n HeaderBarContainer,\n InfoBar,\n InfoBarContainer,\n NavBar,\n NavList,\n Spacer,\n StyledLogo,\n StyledOrgName,\n StyledTitle,\n TitleContainer,\n} from \"../../layout/Header\";\nimport { NavigationItem } from \"./NavigationItem\";\nimport { NavigationListItem } from \"./NavigationListItem\";\nimport { LoadingModal } from \"../loadingModal/LoadingModal\";\nimport { Cart } from \"@src/pages/Tickets/Cart/Cart\";\nimport { PreviewBar } from \"../previewBar/PreviewBar\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport {\n getAttendeeFields,\n getAttendeesList,\n getSigneeFields,\n getTickets,\n} from \"@src/utils/getters\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { AttendeeFormRoute, PreviewProps } from \"@src/Routes\";\nimport { useCachedResponseVersion } from \"@src/customHooks/useResponseVersion\";\nimport { useOrganizationByHash } from \"@src/customHooks/useOrganizationByHash\";\nimport { Language, useGoogleTranslate } from \"@src/utils/translation\";\nimport { SelectLanguage } from \"./SelectLanguage\";\nimport { useTranslation } from \"react-i18next\";\nimport { ErrorBar } from \"../errorBar/ErrorBar\";\nimport { MyPowerHubHeader } from \"../myPowerHubHeader\";\nimport { ResponseSource } from \"@src/types\";\n\ntype PageHeaderProps = PreviewProps & {\n hideNavigation?: boolean;\n children?: React.ReactNode;\n};\n\nconst PageHeader: FC = ({ isPreview, hideNavigation, children }) => {\n const { baseUrl, visitedPages, hashedOrgId } = useUrlParams();\n const { pathname } = useLocation();\n const { form, loading, error: formInfoError } = useFormInfo();\n const navigate = useNavigate();\n const screenSize = useBreakPoints();\n const hasAccess = useReactiveVar(HasAccess) || false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const headerBarRef = useRef();\n const responseVersionHash = useReactiveVar(ResponseVersionHash);\n const responseVersionQuery = useCachedResponseVersion(responseVersionHash);\n const organizationInfoQuery = useOrganizationByHash(hashedOrgId ?? \"\");\n const { t, i18n } = useTranslation();\n const googleTranslate = useGoogleTranslate();\n\n const formName = googleTranslate(form?.name || \"\");\n\n if (loading || responseVersionQuery.loading || organizationInfoQuery.loading)\n return ;\n if (formInfoError) return ;\n if (responseVersionQuery.error)\n return ;\n if (organizationInfoQuery.error)\n return ;\n if (!form) return ;\n\n const responseVersion = responseVersionQuery.responseVersion;\n const brandingOrg =\n form.useOrganizationBranding && hashedOrgId\n ? organizationInfoQuery.organization\n : form.document.organization;\n const requiresAccess = form\n ? form.restrictResponses\n ? (form.document.organization.accessFields &&\n form.document.organization.accessFields.length > 0) ||\n (form.document.organization.parent &&\n form.document.organization.parent.accessFields &&\n form.document.organization.parent.accessFields.length > 0)\n : false\n : false;\n\n const orgName = brandingOrg.name || \"\";\n\n const hasSigneeQuestions = getSigneeFields(form).length > 0;\n const hasAttendeeQuestions = getAttendeeFields(form).length > 0;\n const hasTickets = getTickets(form).length > 0;\n const isGeneralSignup = form.isGeneralSignup;\n\n const hasPermittedAttendees = getAttendeesList(responseVersion).some(\n (attendee) => !form.requiresPermission || attendee.permitted\n );\n\n const navItems: NavigationItem[] = [\n {\n displayText: t(\"navigation.generalInformation\"),\n slug: \"\",\n isCurrent: false,\n showCart: false,\n },\n ];\n const questionSubMenuItems: NavigationItem[] = [];\n const signeeFormSlug = \"signee-form\";\n const attendeeFormSlug = `${AttendeeFormRoute}/0` as NavSlug;\n const reviewSlug = \"review\";\n\n if (hasSigneeQuestions)\n questionSubMenuItems.push({\n displayText: t(\"navigation.signeeQuestions\"),\n slug: signeeFormSlug,\n isCurrent: pathname.indexOf(signeeFormSlug) > -1,\n showCart: true,\n });\n\n if (!isGeneralSignup && hasAttendeeQuestions && !hasTickets)\n questionSubMenuItems.push({\n displayText: t(\"navigation.attendeeQuestions\"),\n slug: attendeeFormSlug,\n isCurrent: pathname.indexOf(AttendeeFormRoute) > -1,\n showCart: true,\n isDisabled: !hasPermittedAttendees,\n });\n\n if (hasTickets && !hasAttendeeQuestions)\n questionSubMenuItems.push({\n displayText: t(\"navigation.tickets\"),\n slug: attendeeFormSlug,\n isCurrent: pathname.indexOf(AttendeeFormRoute) > -1,\n showCart: true,\n isDisabled: !hasPermittedAttendees,\n });\n\n if (!isGeneralSignup && hasTickets && hasAttendeeQuestions)\n questionSubMenuItems.push({\n displayText: t(\"navigation.attendee&Tickets\"),\n slug: attendeeFormSlug,\n isCurrent: pathname.indexOf(AttendeeFormRoute) > -1,\n showCart: true,\n isDisabled: !hasPermittedAttendees,\n });\n\n if (hasSigneeQuestions && (!hasAttendeeQuestions || isGeneralSignup) && !hasTickets)\n navItems.push({\n displayText: t(\"navigation.questions\"),\n slug: signeeFormSlug,\n isCurrent: pathname.indexOf(signeeFormSlug) > -1,\n showCart: true,\n });\n\n if (!hasSigneeQuestions && hasAttendeeQuestions && !isGeneralSignup)\n navItems.push({\n displayText: t(\"navigation.questions\"),\n slug: attendeeFormSlug,\n isCurrent: pathname.indexOf(AttendeeFormRoute) > -1,\n showCart: true,\n isDisabled: !hasPermittedAttendees,\n });\n\n if (!hasSigneeQuestions && !hasAttendeeQuestions && hasTickets)\n navItems.push({\n displayText: \"Tickets\",\n slug: attendeeFormSlug,\n isCurrent: pathname.indexOf(AttendeeFormRoute) > -1,\n showCart: true,\n isDisabled: !hasPermittedAttendees,\n });\n\n if (questionSubMenuItems.length > 1)\n navItems.push({\n displayText: t(\"navigation.questions\"),\n slug: \"questions\",\n subMenuItems: questionSubMenuItems,\n isCurrent: questionSubMenuItems.some((x) => x.isCurrent),\n showCart: true,\n });\n\n navItems.push({\n displayText: t(\"navigation.summary&Review\"),\n slug: reviewSlug,\n isCurrent: pathname.indexOf(`/${reviewSlug}`) > -1,\n showCart: false,\n });\n\n // if nothing is current default the first page (the home page) to be current\n navItems[0].isCurrent = !navItems.some((x) => x.isCurrent);\n\n const onNavigate = (slug?: string) => {\n if (responseVersion) {\n if (slug && pathname.indexOf(`/${slug}`) < 0) navigate(`${baseUrl}/${slug}`);\n else navigate(baseUrl);\n }\n };\n\n const onLanguageChanged = (language: Language) => {\n i18n.changeLanguage(language.code);\n };\n\n const singleNavSubItems: NavigationItem[] = [];\n\n navItems.forEach((navItem) => {\n if (navItem.subMenuItems) {\n navItem.subMenuItems.forEach((subMenuItem) => {\n singleNavSubItems.push(subMenuItem);\n });\n } else {\n singleNavSubItems.push(navItem);\n }\n });\n\n const singleNav: NavigationItem = {\n displayText: t(\"navigation.generalInformation\"),\n slug: \"questions\",\n isCurrent: false,\n subMenuItems: singleNavSubItems,\n showCart: false,\n };\n\n if (screenSize === \"smallScreen\") {\n navItems.splice(0, navItems.length);\n navItems.push(singleNav);\n }\n\n const logoOrOrgName = brandingOrg?.logo ? (\n \n ) : (\n \n {orgName ?? \"\"}\n \n );\n\n const isCartVisible =\n hasTickets &&\n (navItems.find((navItem) => navItem.isCurrent)?.showCart ||\n (screenSize === \"smallScreen\" &&\n singleNavSubItems.find((subNavItem) => subNavItem.isCurrent)?.showCart));\n\n const linkIsActive = (item: NavigationItem) =>\n !!responseVersion && !item.subMenuItems && visitedPages.includes(item.slug);\n\n const isMyPowerHub = !!responseVersion && responseVersion.source == ResponseSource.MyPowerHub && window.opener;\n\n return (\n <>\n \n \n {isPreview && (\n \n )}\n {isMyPowerHub && (\n \n )}\n \n \n {screenSize === \"desktop\" ? logoOrOrgName : null}\n \n \n {screenSize === \"smallScreen\" ? logoOrOrgName : null}\n \n {orgName} - {formName}\n \n \n\n {(hasAccess || !requiresAccess) && !hideNavigation ? (\n \n \n {navItems.map((item, index) => (\n onNavigate(slug)}\n />\n ))}\n \n {screenSize === \"smallScreen\" ? (\n \n ) : null}\n \n ) : null}\n \n \n {screenSize === \"desktop\" ? (\n \n ) : null}\n {isCartVisible ? : null}\n \n \n \n {children}\n \n \n \n );\n};\n\ntype HeaderBarSpacerProps = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n headerRef: React.MutableRefObject;\n};\n\n// Fills the space underneath the variable-height header so we can better position the page content\nconst HeaderBarSpacer: FC = ({ headerRef }) => {\n const [height, setHeight] = useState(0);\n\n const headerHeight = headerRef.current ? headerRef.current.clientHeight : 135;\n\n useLayoutEffect(() => {\n setHeight(headerHeight);\n }, [headerHeight]);\n\n return ;\n};\n\nexport { PageHeader };\n","import { ApolloError } from \"@apollo/client\";\nimport { Organization, OrganizationByHashQuery, useOrganizationByHashQuery } from \"@src/types\";\nimport { useUrlParams } from \"./useUrlParams\";\n\nexport type OrganizationInfo = {\n organization: Organization;\n loading: boolean;\n error: ApolloError | undefined;\n};\n\nexport const useOrganizationByHash = (hashedId: string): OrganizationInfo => {\n const { countryCode } = useUrlParams();\n\n const orgByHash = useOrganizationByHashQuery({\n variables: { hashedId, countryCode },\n fetchPolicy: \"cache-first\",\n skip: !hashedId || hashedId === \"\",\n });\n\n const organization = orgByHash?.data?.OrganizationByHash;\n\n return {\n organization: organization as NonNullable as Organization,\n loading: orgByHash.loading,\n error: orgByHash.error,\n };\n};\n","import React, { FC } from \"react\";\nimport styled from \"styled-components\";\n\nimport { StyledOption } from \"@src/components/styles\";\nimport { defaultTheme } from \"@src/themes\";\nimport { DefaultLanguage, Language, Languages } from \"@src/utils/translation\";\nimport { useTranslation } from \"react-i18next\";\nimport { useReactiveVar } from \"@apollo/client\";\nimport { IsLoadingTranslation } from \"@src/localVariables\";\nimport { StyledIcon } from \"@src/components/atoms/Icon\";\n\nconst Wrapper = styled.div`\n &:focus {\n border: 2px solid ${defaultTheme.colors.fields.selected};\n }\n\n box-sizing: border-box;\n font-size: 12px;\n border: 1px solid ${(props) => props.theme.colors.fields.bordercolor};\n border-radius: 0;\n width: 170px;\n padding: 0 10px;\n margin: 10px 20px 10px 10px;\n height: fit-content;\n position: relative;\n`;\n\nconst LanguageStyledSelect = styled.select`\n &:focus {\n outline: none !important;\n }\n\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 12px;\n border: none;\n border-radius: 0;\n width: 150px;\n cursor: pointer;\n height: 37px;\n`;\n\nconst LoadingIcon = styled(StyledIcon)`\n position: absolute;\n right: 25px;\n top: 10px;\n color: ${(props) => props.theme.colors.fields.text};\n`;\n\ntype SelectLanguageProps = {\n onLanguageChanged(language: Language): void;\n};\n\nconst SelectLanguage: FC = ({ onLanguageChanged }) => {\n const { i18n } = useTranslation();\n const isLoadingTranslations = useReactiveVar(IsLoadingTranslation);\n\n return (\n \n \n onLanguageChanged(\n Languages.find((x) => x.code === event.currentTarget.value) ?? DefaultLanguage\n )\n }\n value={i18n.resolvedLanguage}\n >\n {Languages.sort((a, b) => (a.display || \"\").localeCompare(b.display || \"\")).map(\n (option) => (\n \n {option.display}\n \n )\n )}\n \n {isLoadingTranslations ? : null}\n \n );\n};\n\nexport { SelectLanguage };\n","import { Flex } from \"@src/components/layout/Page\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport styled from \"styled-components\";\n\nexport const AttendeePreviewWrapper = styled(Flex)`\n flex-direction: column;\n margin-bottom: 10px;\n`;\n\nexport const PermissionLabel = styled(StyledLabel)<{ isPermitted: boolean }>`\n ${({ theme, isPermitted }) => `\n color: ${isPermitted ? theme.colors.values.green : theme.colors.values.red};\n `}\n`;\n","import React, { FC } from \"react\";\n\nimport { Flex } from \"@src/components/layout/Page\";\nimport { DisplayAnswers } from \"@src/components/molecules/displayAnswers\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport { PreviewProps } from \"@src/Routes\";\nimport { Ticket, Attendee, Field, FormInfoQuery } from \"@src/types\";\nimport { CancelTicketArgs, TicketMode } from \"@src/utils/purchasedTickets\";\nimport { TicketPreview } from \"@src/pages/Tickets/Preview\";\nimport { useTranslation } from \"react-i18next\";\nimport { AttendeePreviewWrapper, PermissionLabel } from \"./styles\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\n\ntype AttendeePreviewProps = PreviewProps & {\n tickets: Ticket[];\n attendee: Attendee;\n attendees: Attendee[];\n fields?: Field[];\n mode: TicketMode;\n countryCode: string;\n form: NonNullable;\n responseVersionId: string;\n onCancelTicket?: (args: CancelTicketArgs) => void;\n};\n\nconst AttendeePreview: FC = ({\n tickets,\n attendee,\n attendees,\n fields,\n mode,\n countryCode,\n form,\n responseVersionId,\n onCancelTicket,\n isPreview,\n}) => {\n const { t } = useTranslation();\n const googleTranslate = useGoogleTranslate();\n const attendeeIndex = attendees\n .filter((attendee) => !form.requiresPermission || attendee.permitted)\n .map((attendee) => attendee.responseAttendeeId)\n .indexOf(attendee.responseAttendeeId);\n const affirmativePermission = form.affirmativePermission\n ? googleTranslate(form.affirmativePermission)\n : form.affirmativePermission;\n const negativePermission = form.negativePermission\n ? googleTranslate(form.negativePermission)\n : form.negativePermission;\n\n const displayAnswers =\n fields && fields.length > 0 && (!form.requiresPermission || attendee.permitted);\n\n return (\n \n {mode === TicketMode.CHECKOUT || mode === TicketMode.CART_PREVIEW ? (\n \n ) : null}\n {displayAnswers ? (\n \n \n \n ) : null}\n {tickets?.length > 0 && attendee.tickets?.length > 0 ? (\n \n {mode !== TicketMode.CART_PREVIEW ? (\n \n {t(\"pages.tickets.order\")} {attendee.firstName} {attendee.lastName}\n \n ) : null}\n {tickets.map((ticket) => {\n const purchasedTickets = attendee.tickets.filter(\n (purchasedTicket) => purchasedTicket.ticketId === ticket.ticketId\n );\n return purchasedTickets?.length > 0 ? (\n \n ) : null;\n })}\n \n ) : null}\n \n );\n};\n\ntype AttendeeHeaderprops = {\n firstName: string;\n lastName: string;\n isPermitted: boolean;\n isGeneralSignup: boolean;\n showPermission: boolean;\n requiresPermission: boolean;\n affirmativePermission?: string | null;\n negativePermission?: string | null;\n};\n\nconst AttendeeHeader: FC = ({\n firstName,\n lastName,\n isPermitted,\n isGeneralSignup,\n showPermission,\n requiresPermission,\n affirmativePermission,\n negativePermission,\n}) => {\n const { t } = useTranslation();\n const permissionLabel =\n showPermission && !isGeneralSignup && requiresPermission\n ? isPermitted\n ? affirmativePermission\n ? `${affirmativePermission} -`\n : t(\"pages.review.permissionGranted\")\n : negativePermission\n ? `${negativePermission} -`\n : t(\"pages.review.permissionNotGranted\")\n : null;\n return (\n \n \n {firstName} {lastName}\n \n {permissionLabel && (\n \n {permissionLabel} {firstName} {lastName}\n \n )}\n \n );\n};\n\nexport { AttendeePreview };\n","import React, { FC } from \"react\";\nimport { Tax } from \"@src/types\";\nimport { CurrencyLabel } from \"@src/components/styles\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { currencyFormatter } from \"@src/utils/purchasedTickets\";\nimport { useTranslation } from \"react-i18next\";\nimport ReactTooltip from \"react-tooltip\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\n\ntype TotalsProps = {\n subtotal: number;\n taxes?: Tax;\n baseFee?: number;\n serviceFee?: number;\n showFees?: boolean;\n isFeesAssigned?: boolean;\n total?: number;\n showTotal?: boolean;\n};\n\nconst Totals: FC = ({\n subtotal,\n taxes,\n serviceFee,\n baseFee,\n showFees,\n isFeesAssigned,\n total,\n showTotal,\n}) => {\n const { t, i18n } = useTranslation();\n const { form } = useFormInfo();\n\n const currencyCode = form?.document?.organization?.currencyCode;\n\n return (\n \n \n {t(\"totals.subtotal\")}:\n \n {currencyFormatter(i18n.resolvedLanguage, currencyCode).format(subtotal)}\n \n \n {showFees && (\n <>\n \n {t(\"totals.serviceFee\")}:\n \n {isFeesAssigned && serviceFee !== undefined\n ? currencyFormatter(i18n.resolvedLanguage, currencyCode).format(serviceFee)\n : t(\"totals.tbd\")}\n \n \n {baseFee && baseFee > 0 && (\n \n {t(\"totals.transactionFee\")}:\n \n {currencyFormatter(i18n.resolvedLanguage, currencyCode).format(baseFee)}\n \n \n )}\n {taxes && taxes.gst > 0 && (\n \n {t(\"totals.gst\")}:\n \n {currencyFormatter(i18n.resolvedLanguage, currencyCode).format(taxes.gst)}\n \n \n )}\n {taxes && taxes.pst > 0 && (\n \n {t(\"totals.pst\")}:\n \n {currencyFormatter(i18n.resolvedLanguage, currencyCode).format(taxes.pst)}\n \n \n )}\n \n )}\n {showTotal && (\n \n {t(\"totals.total\")}:\n \n {total !== undefined ? (\n currencyFormatter(i18n.resolvedLanguage, currencyCode).format(total)\n ) : showFees ? (\n \n {`${currencyFormatter(i18n.resolvedLanguage, currencyCode).format(subtotal)} + ${t(\n \"totals.fees\"\n )}`}\n \n ) : (\n t(\"totals.tbd\")\n )}\n \n \n {t(\"totals.feeCalculationExplanation\")}\n \n \n )}\n \n );\n};\n\nexport { Totals };\n","const ModifiableSection = 3;\n\nexport { ModifiableSection }","export enum MimeType {\n PDF = \"application/pdf\",\n PNG = \"image/png\",\n JPG = \"image/jpeg\",\n BMP = \"image/bmp\",\n GIF = \"image/gif\",\n}","const MIN_LENGTH = 2;\nconst MAX_LENGTH = 100;\n\nconst TRUTHY_STRING = \"true\";\nconst FALSY_STRING = \"false\";\n\nconst DEFAULT_PHONE_MASK = \"(###) ###-####\";\n\nexport { MIN_LENGTH, MAX_LENGTH, TRUTHY_STRING, FALSY_STRING, DEFAULT_PHONE_MASK };\n","import { useEffect } from \"react\";\nimport { useFormInfo } from \"./useFormInfo\";\nimport { useCachedResponseVersion } from \"./useResponseVersion\";\nimport { useReactiveVar } from \"@apollo/client\";\nimport { NavSlug, ResponseVersionHash } from \"@src/localVariables\";\nimport { useUrlParams } from \"./useUrlParams\";\n\n// This hook is used to mark a page as visited when the user navigates to it.\n// This information is used by the PageHeader component to enable different pages in the response\nexport const useMarkAsVisited = (pageKey: NavSlug) => {\n const { markAsVisited } = useUrlParams();\n const formInfo = useFormInfo();\n const responseVersionHash = useReactiveVar(ResponseVersionHash);\n const responseVersionQuery = useCachedResponseVersion(responseVersionHash);\n const responseVersion = responseVersionQuery.responseVersion;\n\n useEffect(() => {\n const form = formInfo.form;\n if (form && responseVersion) {\n markAsVisited(pageKey);\n }\n }, [formInfo.form, responseVersion, markAsVisited, pageKey]);\n};\n","import { useState } from \"react\";\n\nimport {\n Answer,\n AnswerInput,\n SaveAttendeeAnswerMutationOptions,\n SaveSigneeAnswerMutationOptions,\n useSaveAttendeeAnswerMutation,\n useSaveSigneeAnswerMutation,\n} from \"@src/types\";\nimport { getAnswerKey, getAnswersDictionary } from \"@src/utils/formValues\";\nimport { RequestError } from \"@src/localVariables\";\n\nconst shouldSaveAnswer = (answer: AnswerInput, previousValue: string) => {\n const newValue = answer?.value || \"\";\n\n /**\n * Equation fields need to save empty answers to act as rows. They are indicated\n * by a questionId of \"row\".\n */\n return answer.questionId === \"row\" || newValue !== previousValue;\n};\n\ntype SaveSigneeAnswerFunction = (args: SaveSigneeAnswerMutationOptions) => Promise;\n\ntype UseSafeSigneeAnswerMutation = (\n mutationOptions: SaveSigneeAnswerMutationOptions,\n answers: Answer[]\n) => SaveSigneeAnswerFunction;\n\n/**\n * This hook wraps the saveSigneeAnswer mutation to prevent sending the same value\n * to the backend multiple times. It receives the mutation options and an array of\n * answers. It returns a safe mutation function that will only send the mutation if\n * the value has changed since the last call.\n *\n * @param {SaveSigneeAnswerMutationOptions} mutationOptions\n * @param {Answer[]} answers\n * @returns\n */\nconst useSafeSaveSigneeAnswerMutation: UseSafeSigneeAnswerMutation = (mutationOptions, answers) => {\n const [saveSigneeAnswerFunction] = useSaveSigneeAnswerMutation(mutationOptions);\n const [answersDictionary, setAnswersDictionary] = useState(getAnswersDictionary(answers));\n\n const safeSaveAnswer: SaveSigneeAnswerFunction = async (args) => {\n const answer = args?.variables?.answer as AnswerInput;\n const answerKey = getAnswerKey(answer);\n const previousValue = answersDictionary[answerKey]?.value || \"\";\n const newValue = answer?.value || \"\";\n\n if (shouldSaveAnswer(answer, previousValue)) {\n setAnswersDictionary((prev) => ({\n ...prev,\n [answerKey]: { ...prev[answerKey], value: newValue },\n }));\n\n const result = await saveSigneeAnswerFunction(args);\n\n if (result.errors && result.errors.length > 0) {\n RequestError(result.errors[0]);\n }\n\n return result.data?.SaveSigneeAnswer.answerId || \"\";\n }\n\n return answer?.answerId || \"\";\n };\n\n return safeSaveAnswer;\n};\n\ntype SaveAttendeeAnswerFunction = (args: SaveAttendeeAnswerMutationOptions) => Promise;\n\ntype UseSafeAttendeeAnswerMutation = (args: {\n mutationOptions?: SaveAttendeeAnswerMutationOptions;\n answers: Answer[];\n}) => SaveAttendeeAnswerFunction;\n\n/**\n * This hook wraps the saveAttendeeAnswer mutation to prevent sending the same value\n * to the backend multiple times. It receives the mutation options and an array of\n * answers. It returns a safe mutation function that will only send the mutation if\n * the value has changed since the last call.\n *\n * @param {Object} args\n * @property {SaveAttendeeAnswerMutationOptions} mutationOptions\n * @property {Answer[]} answers\n *\n * @returns\n */\nconst useSafeSaveAttendeeAnswerMutation: UseSafeAttendeeAnswerMutation = ({\n mutationOptions,\n answers,\n}) => {\n const [saveAttendeeAnswerFunction] = useSaveAttendeeAnswerMutation(mutationOptions);\n\n const safeSaveAnswer: SaveAttendeeAnswerFunction = async (args) => {\n const answer = args?.variables?.answer as AnswerInput;\n const answerKey = getAnswerKey(answer);\n const answersDictionary = getAnswersDictionary(answers);\n const previousValue = answersDictionary[answerKey]?.value || \"\";\n\n if (shouldSaveAnswer(answer, previousValue)) {\n const result = await saveAttendeeAnswerFunction(args);\n\n if (result.errors && result.errors.length > 0) {\n RequestError(result.errors[0]);\n }\n\n return result.data?.SaveAttendeeAnswer.answerId || \"\";\n }\n\n return answer?.answerId || \"\";\n };\n\n return safeSaveAnswer;\n};\n\nexport { useSafeSaveSigneeAnswerMutation, useSafeSaveAttendeeAnswerMutation };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormikContext } from \"formik\";\nimport React, { FC, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport isPlainObject from \"lodash/isPlainObject\";\n\ntype TouchErrorFieldsArgs = {\n errors: Record;\n touched: Record;\n prefix?: string;\n setFieldTouched: (fieldName: string) => void;\n};\n\n/**\n * Touches fields with errors. Error fields can be a string, object or array of fields\n * @param {TouchErrorFieldsArgs} args\n */\nconst touchErrorFields = ({ errors, touched, prefix, setFieldTouched }: TouchErrorFieldsArgs) => {\n if (!isPlainObject(errors)) return;\n\n Object.keys(errors).forEach((fieldName) => {\n if (isPlainObject(errors[fieldName])) {\n if (touched && touched[fieldName]) {\n touchErrorFields({\n prefix: fieldName,\n errors: errors[fieldName],\n touched: touched[fieldName],\n setFieldTouched,\n });\n }\n } else if (Array.isArray(errors[fieldName])) {\n const errorsArray: Record[] = errors[fieldName];\n\n errorsArray.forEach((innerErrors, idx) => {\n const fieldTouched = touched && touched[fieldName] ? touched[fieldName][idx] : undefined;\n if (fieldTouched) {\n touchErrorFields({\n errors: innerErrors,\n touched: fieldTouched,\n prefix: `touched[${idx}]`,\n setFieldTouched,\n });\n }\n });\n } else {\n setFieldTouched(`${prefix}.${fieldName}`);\n }\n });\n};\n\nconst useTranslateFormErrors = () => {\n const { errors, touched, setFieldTouched, validateForm } = useFormikContext();\n const { i18n } = useTranslation();\n\n useEffect(() => {\n const runValidation = async () => {\n if (Object.keys(errors).length) {\n // Re-validates the form\n await validateForm();\n\n // Touches all fields with errors, so the validation messages are updated\n touchErrorFields({ errors, touched, setFieldTouched });\n }\n };\n\n i18n.on(\"languageChanged\", () => {\n runValidation();\n });\n\n return () => {\n i18n.off(\"languageChanged\", () => {\n (\"\");\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [errors, i18n.resolvedLanguage]);\n};\n\ntype TranslateFormErrorsProps = {\n children: JSX.Element[] | JSX.Element;\n};\n\n/**\n * This components runs a hook that listens to the `languageChanged` i18next event and re-runs the\n * form's validation whenever the user changes the language. This is done to get the correct error message\n * strings in the current language selected by the user.\n *\n * It should wrap all contents of a Formik tag:\n * @example\n * \n * \n * \n * \n * \n * \n *\n */\nconst TranslateFormErrors: FC = ({ children }) => {\n useTranslateFormErrors();\n return <>{children};\n};\n\nexport { TranslateFormErrors };\n","import { ApolloCache, DefaultContext, MutationUpdaterFunction } from \"@apollo/client\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\nimport {\n Answer,\n DeleteAttendeeAnswerMutation,\n DeleteAttendeeAnswerMutationVariables,\n ResponseQuery,\n SaveAttendeeAnswerMutation,\n SaveAttendeeAnswerMutationVariables,\n} from \"@src/types\";\nimport { RESPONSE_VERSION_QUERY } from \"@src/queries/responseVersion\";\n\ntype saveAttendeeAnswerForResponseArgs = {\n cache: ApolloCache;\n answer?: Answer;\n responseHashedId?: string;\n attendeeId: string;\n};\n\nconst saveAttendeeAnswerForResponse = ({\n cache,\n responseHashedId,\n answer,\n attendeeId,\n}: saveAttendeeAnswerForResponseArgs) => {\n cache.updateQuery(\n {\n query: RESPONSE_VERSION_QUERY,\n variables: {\n hash: responseHashedId,\n },\n overwrite: true,\n },\n (data: ResponseQuery | null) => {\n if (data) {\n const responseVersion = data.Response;\n\n if (responseVersion) {\n const attendees = cloneDeep(responseVersion.attendees);\n const attendee = attendees.find((x) => x.attendeeId === attendeeId);\n const newAttedeeAnswers = attendee?.attendeeAnswers?.filter(\n (x) => x.answerId !== answer?.answerId\n );\n\n if (answer && attendee) {\n newAttedeeAnswers?.push(answer);\n attendee.attendeeAnswers = newAttedeeAnswers || [];\n }\n\n return {\n ...data,\n Response: {\n ...responseVersion,\n attendees,\n },\n };\n }\n }\n }\n );\n};\n\ntype DeleteAnswerForResponseArgs = {\n cache: ApolloCache;\n responseHashedId: string;\n variables?: DeleteAttendeeAnswerMutationVariables;\n attendeeId: string;\n};\n\nconst deleteAnswerForResponse = ({\n cache,\n responseHashedId,\n attendeeId,\n variables\n}: DeleteAnswerForResponseArgs) => {\n\n cache.updateQuery(\n {\n query: RESPONSE_VERSION_QUERY,\n variables: {\n hash: responseHashedId,\n },\n overwrite: true,\n },\n (data: ResponseQuery | null) => {\n if (data) {\n const responseVersion = data.Response;\n\n if (responseVersion) {\n const attendees = cloneDeep(responseVersion.attendees);\n const attendee = attendees.find((x) => x.attendeeId === attendeeId);\n\n if (variables) {\n const newAttendeeAnswers = attendee?.attendeeAnswers?.filter((x) => {\n const answerOrder = x.order || null;\n const variableOrder = variables.answerInput.order || null;\n\n return !(\n x.fieldId === variables.answerInput.fieldId &&\n x.questionId === variables.answerInput.questionId &&\n answerOrder === variableOrder\n );\n });\n\n if (attendee)\n attendee.attendeeAnswers = newAttendeeAnswers || [];\n }\n\n return {\n ...data,\n Response: {\n ...responseVersion,\n attendees,\n },\n };\n }\n }\n }\n );\n};\n\ntype SaveAttendeeAnswerMutationUpdaterArgs = {\n attendeeId: string;\n responseHashedId: string;\n};\n\ntype SaveAttendeeAnswerMutationUpdater = (\n args: SaveAttendeeAnswerMutationUpdaterArgs\n) => MutationUpdaterFunction<\n SaveAttendeeAnswerMutation,\n SaveAttendeeAnswerMutationVariables,\n DefaultContext,\n ApolloCache\n>;\n\n// Saves answer to cache, used exclusively for preview\nconst saveAttendeeAnswerMutationUpdater: SaveAttendeeAnswerMutationUpdater =\n ({ attendeeId, responseHashedId }) =>\n (cache, { data }) => {\n const answer = data?.SaveAttendeeAnswer;\n saveAttendeeAnswerForResponse({\n cache,\n answer,\n responseHashedId,\n attendeeId,\n });\n };\n\ntype DeleteAttendeeAnswerMutationUpdaterArgs = {\n attendeeId: string;\n responseHashedId: string;\n};\n\ntype DeleteAttendeeAnswerMutationUpdater = (\n args: DeleteAttendeeAnswerMutationUpdaterArgs\n) => MutationUpdaterFunction<\n DeleteAttendeeAnswerMutation,\n DeleteAttendeeAnswerMutationVariables,\n DefaultContext,\n ApolloCache\n>;\n\n// Removes answer to cache, used exclusively for preview\nconst deleteAttendeeAnswerMutationUpdater: DeleteAttendeeAnswerMutationUpdater =\n ({ attendeeId, responseHashedId }) =>\n (cache, { }, { variables }) => {\n deleteAnswerForResponse({\n cache,\n responseHashedId,\n variables,\n attendeeId,\n });\n };\n\nexport {\n saveAttendeeAnswerMutationUpdater,\n deleteAttendeeAnswerMutationUpdater\n};\n","import gql from \"graphql-tag\";\nimport { TicketInventoryFragment } from \"./fragments\";\n\nconst TICKET_INVENTORY_QUERY = gql`\n query TicketInventory($countryCode: String!, $documentId: ID!, $ticketIds: [ID!]!) {\n TicketInventory(countryCode: $countryCode, documentId: $documentId, ticketIds: $ticketIds) {\n ...TicketInventoryFragment\n }\n }\n ${TicketInventoryFragment}\n`;\n\nexport { TICKET_INVENTORY_QUERY };\n","import { ApolloCache, DefaultContext, MutationUpdaterFunction } from \"@apollo/client\";\nimport { SigneeInfoValues } from \"@src/localVariables\";\nimport { TicketTypeCode } from \"@src/pages/Tickets/TicketSection/TicketPrice\";\nimport {\n CancelTicketMutation,\n CancelTicketMutationVariables,\n PurchasedTicket,\n ReserveTicketMutation,\n ReserveTicketMutationVariables,\n ResponseQuery,\n Ticket,\n TicketInventoryQuery,\n TicketInventoryQueryVariables,\n} from \"@src/types\";\nimport { PreviewHash, mapAnswerInputsToAnswers } from \"@src/utils/preview\";\nimport { getAnswerHash } from \"@src/utils/purchasedTickets\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { TICKET_INVENTORY_QUERY } from \"@src/queries/ticketInventories\";\nimport { RESPONSE_VERSION_QUERY } from \"@src/queries/responseVersion\";\n\ntype ReserveTicketMutationUpdater = (\n signee: SigneeInfoValues,\n ticket: Ticket,\n attendeeId: string\n) => MutationUpdaterFunction<\n ReserveTicketMutation,\n ReserveTicketMutationVariables,\n DefaultContext,\n ApolloCache\n>;\n\n// Adds ticket data to Apollo cache, used exclusively while in preview mode\nconst reserveTicketMutationUpdater: ReserveTicketMutationUpdater =\n (signee, ticket, attendeeId) =>\n (cache, _result, { variables }) => {\n const answers = mapAnswerInputsToAnswers(variables?.reserveTicketInput.answers || []);\n const answerHash = getAnswerHash(answers);\n\n cache.updateQuery(\n {\n query: RESPONSE_VERSION_QUERY,\n variables: {\n hash: PreviewHash\n },\n overwrite: true,\n },\n (data: ResponseQuery | null) => {\n\n if (data && data.Response) {\n const responseVersion = data.Response;\n \n let orders = cloneDeep(responseVersion.orders);\n const attendees = cloneDeep(responseVersion.attendees);\n const attendee = attendees.find((x) => x.attendeeId === attendeeId);\n const attendeeTickets = attendee?.tickets ?? [];\n const ticketPrice = ticket.typeCode\n ? (ticket.typeCode as TicketTypeCode) == TicketTypeCode.Donation\n ? variables?.reserveTicketInput.openValueAmount || 0\n : (ticket.typeCode as TicketTypeCode) == TicketTypeCode.Free\n ? 0\n : ticket.price || 0\n : ticket.price || 0;\n const existingTicket = attendeeTickets?.find(\n (x) =>\n x.ticketVersionId === variables?.ticketVersionId &&\n x.price === ticketPrice &&\n getAnswerHash(x.answers) === answerHash\n );\n\n if (!orders || orders.length == 0) {\n orders = [\n {\n __typename: \"Order\",\n date: new Date().toString(),\n canRefund: false,\n baseFee: 0,\n baseFeeString: \"0.00\",\n totalFees: 0,\n totalFeesString: \"0.00\",\n grandTotal: 0,\n grandTotalOriginal: 0,\n hasBeenPaid: false,\n isCheckedOut: false,\n isRefunded: false,\n orderId: uuidv4(),\n orderNumber: \"PREVIEW\",\n paymentTypes: [\"Cheque\", \"Cash\", \"Other\"],\n purchasedTickets: [],\n purchaserFirstName: signee.firstName,\n purchaserLastName: signee.lastName,\n refundedAmount: 0,\n subTotal: 0,\n wasManuallyPaid: false,\n amountOutstanding: 0,\n },\n ];\n }\n\n if (attendee) {\n if (existingTicket) {\n existingTicket.quantity += variables?.reserveTicketInput.quantity || 0;\n } else {\n // Create new purchased ticket\n const purchasedTicket: PurchasedTicket = {\n __typename: \"PurchasedTicket\" as const,\n answers: answers,\n attendeeId: attendeeId,\n createdDate: new Date().toString(),\n description: ticket.description,\n name: ticket.name,\n orderNumber: \"PREVIEW\",\n price: ((ticket.typeCode as TicketTypeCode) != TicketTypeCode.Donation ? ticket.price : variables?.reserveTicketInput.openValueAmount) ?? 0,\n purchasedTicketIds: Array(variables?.reserveTicketInput.quantity || 0).fill(\n uuidv4()\n ),\n quantity: variables?.reserveTicketInput.quantity || 0,\n sortOrder: ticket.sortOrder ?? 0,\n ticketId: ticket.ticketId,\n ticketVersionId: variables?.ticketVersionId || \"\",\n totalPrice: variables?.reserveTicketInput.quantity || 0 * ticketPrice,\n type: {\n __typename: \"TicketTypeInfo\" as const,\n code: \"\",\n defaultPrice: 0,\n id: 0,\n name: \"\",\n sortOrder: 0,\n },\n };\n\n attendeeTickets?.push(purchasedTicket);\n attendeeTickets?.sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0));\n attendee.tickets = attendeeTickets;\n orders[0].purchasedTickets = attendeeTickets;\n }\n }\n\n // Recalculate total\n const newTotal = attendees.reduce(\n (acc, a) =>\n (acc += a.tickets?.reduce((acc2, t) => (acc2 += t.price * t.quantity), 0) ?? 0),\n 0\n );\n orders[0].subTotal = newTotal;\n orders[0].grandTotal = newTotal;\n\n const newResponse = {...responseVersion,\n attendees: attendees,\n subTotal: newTotal,\n total: newTotal,\n orders: orders};\n\n return {\n ...data,\n Response: newResponse,\n };\n }\n }\n );\n };\n\ntype CancelTicketMutationUpdater = (\n signee: SigneeInfoValues\n) => MutationUpdaterFunction<\n CancelTicketMutation,\n CancelTicketMutationVariables,\n DefaultContext,\n ApolloCache\n>;\n\n// Removes ticket data from Apollo cache, used exclusively while in preview mode\nconst cancelTicketMutationUpdater: CancelTicketMutationUpdater =\n () =>\n (cache, _result, { variables }) => {\n\n cache.updateQuery(\n {\n query: RESPONSE_VERSION_QUERY,\n variables: {\n hash: PreviewHash\n },\n overwrite: true,\n },\n (data: ResponseQuery | null) => {\n if (data && data.Response) {\n\n const responseVersion = data.Response;\n \n const orders = cloneDeep(responseVersion.orders);\n const attendees = cloneDeep(responseVersion.attendees);\n const attendee = attendees.find(\n (x) => x.responseAttendeeId === variables?.responseAttendeeId\n );\n const attendeeTickets = attendee?.tickets ?? [];\n\n const purchasedTicketId = variables?.purchasedTicketIds[0] ?? \"\";\n\n // Find existing ticket\n const index = attendeeTickets?.findIndex(\n (x) => x.ticketVersionId === variables?.ticketVersionId\n && purchasedTicketId ? x.purchasedTicketIds.includes(purchasedTicketId) : true\n );\n\n if (attendee && index >= 0 && orders.length > 0) {\n // Check if we are reducing the quantity or removing the entire ticket\n if (\n variables?.purchasedTicketIds &&\n attendeeTickets[index].purchasedTicketIds.length >\n variables?.purchasedTicketIds.length\n ) {\n // Reduce quantity\n const remainingIds = attendeeTickets[index].purchasedTicketIds.filter(\n (id) => !variables?.purchasedTicketIds.includes(id)\n );\n attendeeTickets[index].purchasedTicketIds = remainingIds;\n attendeeTickets[index].quantity = remainingIds.length;\n } else {\n // Remove ticket\n attendeeTickets?.splice(index, 1);\n }\n orders[0].purchasedTickets = attendeeTickets;\n\n // Recalculate total\n const newTotal = attendees.reduce(\n (acc, a) =>\n (acc += a.tickets?.reduce((acc2, t) => (acc2 += t.price * t.quantity), 0) ?? 0),\n 0\n );\n orders[0].subTotal = newTotal;\n orders[0].grandTotal = newTotal;\n\n const newResponse = {\n ...responseVersion,\n attendees: attendees,\n subTotal: newTotal,\n total: newTotal,\n orders: orders,\n };\n \n return {\n ...data,\n Response: newResponse,\n };\n }\n }\n }\n );\n };\n\ntype TicketInventoryMutationUpdater = (\n tickets: Ticket[]\n) => MutationUpdaterFunction<\n TicketInventoryQuery,\n TicketInventoryQueryVariables,\n DefaultContext,\n ApolloCache\n>;\n\n// Adds ticket data to Apollo cache, used exclusively while in preview mode\nexport const ticketInventoryMutationUpdater: TicketInventoryMutationUpdater =\n (tickets) =>\n (cache, _result, { variables }) => {\n const ticketIds = tickets.map((x) => x.ticketId);\n\n cache.updateQuery(\n {\n query: TICKET_INVENTORY_QUERY,\n variables: {\n documentId: variables?.documentId,\n countryCode: variables?.countryCode,\n ticketIds,\n },\n },\n () => {\n return _result.data;\n }\n );\n };\n\nexport { reserveTicketMutationUpdater, cancelTicketMutationUpdater };\n","import { ErrorComponent } from \"./Error\";\nexport { ErrorComponent };\nexport default ErrorComponent;","import styled from \"styled-components\";\n\nimport { StyledLabel } from \"@src/components/styles\";\n\nexport const SubtotalLabel = styled(StyledLabel)`\n color: #3260d3;\n font-size: 20px;\n line-height: 35px;\n font-weight: 400;\n`;\n\nexport const StyledQuantity = styled.p`\n margin: 0;\n border-radius: 25px;\n background-color: #0283ff;\n width: fit-content;\n height: fit-content;\n min-width: 70px;\n padding: 2px 7px;\n color: white;\n text-align: center;\n font-weight: 500;\n font-size: 12px;\n margin: 5px 0px;\n margin-left: 10px;\n`;\n","import React, { FC } from \"react\";\nimport { PurchasedTicket, Ticket } from \"@src/types\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { CancelTicketArgs, currencyFormatter, TicketMode } from \"@src/utils/purchasedTickets\";\nimport { DisplayAnswers } from \"@src/components/molecules/displayAnswers/DisplayAnswers\";\nimport { TrashButton } from \"../TicketSection/TrashButton\";\nimport { StyledQuantity, SubtotalLabel } from \"./styles\";\nimport { useTranslation } from \"react-i18next\";\nimport { useBreakPoints } from \"@src/customHooks\";\nimport { TicketTypeCode } from \"../TicketSection/TicketPrice\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\n\ntype PurchasedTicketProps = {\n ticket: Ticket;\n purchasedTicket: PurchasedTicket;\n responseAttendeeId: string;\n countryCode: string;\n documentId: string;\n mode: TicketMode;\n responseVersionId: string;\n onCancelTicket?: (args: CancelTicketArgs) => void;\n};\n\nconst PurchasedTicketPreview: FC = ({\n ticket,\n purchasedTicket,\n responseAttendeeId,\n countryCode,\n documentId,\n mode,\n responseVersionId,\n onCancelTicket,\n}) => {\n const { t, i18n } = useTranslation();\n const screenSize = useBreakPoints();\n const { form } = useFormInfo();\n const googleTranslate = useGoogleTranslate();\n const quantity = purchasedTicket.quantity ?? 0;\n const currencyCode = form?.document?.organization?.currencyCode;\n\n return (\n \n \n \n {googleTranslate(ticket.name || \"\")}\n \n {quantity > 0 ? (\n {`${t(\"pages.tickets.quantity\")}: ${\n purchasedTicket.quantity ?? 0\n }`}\n ) : null}\n\n {onCancelTicket ? (\n \n onCancelTicket({\n ticketVersionId: purchasedTicket.ticketVersionId,\n responseAttendeeId,\n purchasedTicketIds: purchasedTicket.purchasedTicketIds,\n })\n }\n />\n ) : null}\n \n {Number(ticket.typeCode) !== TicketTypeCode.Free ? (\n \n {quantity > 1\n ? `${t(\"totals.subtotal\")}: ${quantity} × ${currencyFormatter(\n i18n.resolvedLanguage,\n currencyCode\n ).format(purchasedTicket.price)} = ${currencyFormatter(\n i18n.resolvedLanguage,\n currencyCode\n ).format(quantity * purchasedTicket.price)}`\n : `${t(\"totals.subtotal\")}: ${currencyFormatter(\n i18n.resolvedLanguage,\n currencyCode\n ).format(purchasedTicket.price)}`}\n \n ) : null}\n {mode != TicketMode.CART_PREVIEW ? (\n \n ) : null}\n \n );\n};\n\nexport { PurchasedTicketPreview };\n","import React, { FC, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Attendee, PurchasedTicket, Ticket } from \"@src/types\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport {\n CancelTicketArgs,\n currencyFormatter,\n getPurchasedTicketKey,\n} from \"@src/utils/purchasedTickets\";\nimport { PurchasedTicketPreview } from \"./PurchasedTicketPreview\";\nimport { TicketHeader, TicketMode } from \"../TicketSection/TicketSection\";\nimport { PreviewProps } from \"@src/Routes\";\nimport { StyledQuantity, SubtotalLabel } from \"./styles\";\nimport { TrashButton } from \"../TicketSection/TrashButton\";\nimport { TicketTypeCode } from \"../TicketSection/TicketPrice\";\nimport { Icon } from \"@src/components/atoms/Icon\";\nimport { useBreakPoints } from \"@src/customHooks\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\n\ntype TicketPreviewProps = PreviewProps & {\n ticket: Ticket;\n purchasedTickets: PurchasedTicket[];\n cart: Attendee[];\n attendee: Attendee;\n attendeeIndex: number;\n mode: TicketMode;\n countryCode: string;\n documentId: string;\n responseVersionId: string;\n onCancelTicket?: (args: CancelTicketArgs) => void;\n};\n\nconst TicketPreview: FC = ({\n ticket,\n purchasedTickets,\n cart,\n attendee,\n attendeeIndex,\n mode,\n countryCode,\n documentId,\n responseVersionId,\n onCancelTicket,\n isPreview,\n}) => {\n const { t, i18n } = useTranslation();\n const screenSize = useBreakPoints();\n const { form } = useFormInfo();\n const [showDetails, setShowDetails] = useState(false);\n\n const subTotal =\n purchasedTickets?.reduce((a, b) => {\n return a + b.quantity * b.price ?? 0;\n }, 0) ?? 0;\n\n const hasOptions = (ticket.formQuestions?.length ?? 0) > 0;\n\n const totalQuantity =\n purchasedTickets?.reduce((a, b) => {\n return a + b.quantity;\n }, 0) ?? 0;\n\n const purchasedTicketIds =\n !hasOptions && purchasedTickets && purchasedTickets.length > 0\n ? purchasedTickets.flatMap((x) => x.purchasedTicketIds)\n : [];\n\n const currencyCode = form?.document?.organization?.currencyCode;\n\n return (\n \n \n \n <>\n \n \n {t(\"pages.tickets.quantity\")}: {totalQuantity}\n \n \n {t(\"totals.subtotal\")}:{\" \"}\n {currencyFormatter(i18n.resolvedLanguage, currencyCode).format(subTotal)}\n \n {hasOptions ? (\n {\n setShowDetails(!showDetails);\n }}\n >\n {\n setShowDetails(!showDetails);\n }}\n style=\"solid\"\n icon={showDetails ? \"angle-down\" : \"angle-right\"}\n color=\"#0283ff\"\n testId={ticket.id + \"-EXPANDER\"}\n />\n \n ) : null}\n {!hasOptions && mode === TicketMode.CART_PREVIEW ? (\n \n {onCancelTicket ? (\n \n onCancelTicket({\n ticketVersionId: ticket.id,\n responseAttendeeId: attendee.responseAttendeeId,\n purchasedTicketIds: purchasedTicketIds,\n })\n }\n />\n ) : null}\n \n ) : null}\n \n \n \n {(hasOptions || Number(ticket.typeCode) === TicketTypeCode.Donation) && showDetails ? (\n
\n {purchasedTickets.map((purchasedTicket) => (\n \n ))}\n
\n ) : null}\n
\n
\n );\n};\n\nexport { TicketPreview };\n","import React, { FC } from \"react\";\r\n\r\nimport { CancelTicketAnswerResult } from \"@src/mutations/mutationTypes\";\r\nimport { Attendee, Field, FormInfoQuery, Ticket } from \"@src/types\";\r\nimport { CancelTicketArgs } from \"@src/utils/purchasedTickets\";\r\nimport { TicketMode } from \"../TicketSection\";\r\nimport { Flex } from \"@src/components/layout/Page\";\r\nimport { AttendeePreview } from \"@src/components/molecules/preview/AttendeePreview\";\r\n\r\ntype TicketsPreviewProps = {\r\n tickets: Ticket[];\r\n cart: Attendee[];\r\n fields?: Field[];\r\n mode: TicketMode;\r\n countryCode: string;\r\n form: NonNullable;\r\n responseVersionId: string;\r\n onCancelTicket?: (args: CancelTicketArgs) => Promise;\r\n};\r\n\r\nconst TicketsPreview: FC = ({\r\n tickets,\r\n cart,\r\n fields,\r\n mode,\r\n countryCode,\r\n form,\r\n responseVersionId,\r\n onCancelTicket,\r\n}) => {\r\n const hasTicketsInCart = cart.some((attendee) => attendee?.tickets?.length > 0);\r\n return hasTicketsInCart ? (\r\n \r\n {cart\r\n .filter((attendee) => attendee?.tickets?.length > 0)\r\n .map((attendee) => (\r\n \r\n ))}\r\n \r\n ) : null;\r\n};\r\n\r\nexport { TicketsPreview };\r\n","import { NumericInput } from \"@src/components/atoms/NumericInput\";\nimport { ControlType } from \"@src/components/atoms/NumericInput/types\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport React, { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport styled from \"styled-components\";\n\nexport class TicketTypeCode {\n public static readonly Donation = 0;\n public static readonly Free = 1;\n public static readonly Paid = 2;\n}\n\nexport const TicketPriceWrapper = styled(Flex)`\n & > * {\n :not(:first-child) {\n margin-left: 20px;\n }\n }\n\n ${StyledLabel} {\n color: #3260d3;\n margin-bottom: 0px;\n font-size: 20px;\n line-height: 35px;\n margin-right: 5px;\n font-weight: 400;\n }\n\n & > ${Flex} {\n align-items: center;\n }\n`;\n\nexport type TicketPriceProps = {\n ticketId: string;\n price: number;\n typeCode: TicketTypeCode;\n canBuyTicket: boolean;\n isPreview: boolean;\n onChange?: (value?: string | null) => void;\n children?: React.ReactNode;\n};\n\nconst MIN_OPEN_VALUE_PRICE = 1.0;\n\nconst TicketPrice: FC = ({\n ticketId,\n price,\n typeCode,\n canBuyTicket,\n isPreview,\n onChange,\n children,\n}) => {\n const { t } = useTranslation();\n const parentPays = price ?? 0;\n\n const priceLabel =\n typeCode == TicketTypeCode.Free\n ? t(\"pages.tickets.free\")\n : typeCode == TicketTypeCode.Donation\n ? t(\"pages.tickets.amount\")\n : t(\"pages.tickets.priceEach\", { price: parentPays?.toFixed(2) });\n\n return !isPreview ? (\n \n \n {priceLabel}\n\n {typeCode == TicketTypeCode.Donation ? (\n \n ) : null}\n \n {children}\n \n ) : null;\n};\n\nexport { TicketPrice };\n","import { Breakpoints } from \"@src/customHooks\";\nimport { Ticket } from \"@src/types\";\nimport { TicketMode } from \"@src/utils/purchasedTickets\";\nimport _ from \"lodash\";\nimport React, { FC } from \"react\";\nimport styled from \"styled-components\";\n\nimport DefaultImage from \"./default.jpg\";\n\nconst StyledImg = styled.img<{ screenSize: Breakpoints; mode: TicketMode }>`\n box-sizing: border-box;\n width: ${(props) =>\n props.screenSize === \"desktop\" && props.mode !== TicketMode.CART_PREVIEW ? `140px` : `85px`};\n height: ${(props) =>\n props.screenSize === \"desktop\" && props.mode !== TicketMode.CART_PREVIEW ? `140px` : `85px`};\n object-fit: cover;\n border: solid ${({ theme }) => theme.colors.values.white}};\n border-radius: 7px;\n`;\n\nexport type ThumbnailProps = {\n ticket: Ticket;\n src?: string;\n alt: string;\n screenSize: Breakpoints;\n mode: TicketMode;\n};\n\nconst Thumbnail: FC = ({ ticket, src, alt, mode, screenSize }) => (\n \n);\n\nexport { Thumbnail };\n","import { Breakpoints, useBreakPoints } from \"@src/customHooks/useBreakpoints\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport React, { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport styled from \"styled-components\";\n\nconst StyledSpan = styled.span<{ screenSize: Breakpoints }>`\n padding-top: 10px;\n padding-bottom: 10px;\n color: #868686;\n text-align: center;\n font-size: 11px;\n width: ${(props) => (props.screenSize === \"desktop\" ? `116px` : `85px`)};\n`;\n\nexport type DateNoticeProps = {\n start: string;\n end: string;\n};\n\nconst DateNotice: FC = ({ start, end }) => {\n const { t } = useTranslation();\n const googleTranslate = useGoogleTranslate();\n const screenSize = useBreakPoints();\n const startDate = new Date(start);\n const endDate = new Date(end);\n const now = new Date().getTime();\n\n const getNoticeMessage = () => {\n if (startDate.getTime() > now) {\n return {\n message: t(\"pages.tickets.dateNotice.start\"),\n date: googleTranslate(startDate.toDateString()),\n };\n } else if (endDate.getTime() < now) {\n return {\n message: t(\"pages.tickets.dateNotice.ended\"),\n date: googleTranslate(endDate.toDateString()),\n };\n } else if (startDate.getTime() < now && endDate.getTime() > now) {\n return {\n message: t(\"pages.tickets.dateNotice.inProgress\"),\n date: googleTranslate(endDate.toDateString()),\n };\n }\n\n return null;\n };\n\n const noticeMessage = getNoticeMessage();\n\n return noticeMessage ? (\n <>\n \n {noticeMessage.message}\n \n {noticeMessage.date}\n \n ) : null;\n};\n\nexport { DateNotice };\n","import { NumericInput } from \"@src/components/atoms/NumericInput\";\nimport { ControlType } from \"@src/components/atoms/NumericInput/types\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport { Attendee, Ticket, TicketInventory } from \"@src/types\";\nimport { getQuantityInCart } from \"@src/utils/purchasedTickets\";\nimport { useField } from \"formik\";\nimport inRange from \"lodash/inRange\";\nimport React, { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport styled from \"styled-components\";\n\nexport type QuantitySectionProps = {\n name: string;\n ticket: Ticket;\n inventory: TicketInventory;\n attendee: Attendee;\n canBuyTicket: boolean;\n cart?: Attendee[];\n};\n\n// &&'s help override any conflicting CSS of the parent Styled Component. Explained more below:\n// https://styled-components.com/docs/faqs#how-can-i-override-styles-with-higher-specificity\nconst SoldOutLabel = styled(StyledLabel)`\n ${({ theme }) => `\n && {\n color: ${theme.colors.values.red};\n }\n `}\n`;\n\nconst QuantitySection: FC = ({\n name,\n ticket,\n inventory,\n attendee,\n canBuyTicket,\n cart,\n}) => {\n const { t } = useTranslation();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [input, meta, helpers] = useField(name);\n\n const quantityInCart = getQuantityInCart({\n cart,\n attendeeId: null,\n ticketVersionId: ticket.id,\n });\n\n const quantityInCartForThisAttendee = getQuantityInCart({\n cart,\n attendeeId: attendee.attendeeId,\n ticketVersionId: ticket.id,\n });\n\n const remaining = inventory.isLimited\n ? (inventory.remaining || 0) - quantityInCart ?? 0\n : Infinity;\n\n const max = ticket.maximumQuantity ?? 500;\n\n const maximumQuantity = inventory.isLimited\n ? Math.min(max - quantityInCartForThisAttendee, remaining)\n : max - quantityInCartForThisAttendee;\n\n const minQuantity = ticket.minimumQuantity || 0;\n const minQuantityForThisAttendee = Math.max(0, minQuantity - quantityInCartForThisAttendee);\n\n const setQuantity = (value: string | null | undefined) => {\n if (value && maximumQuantity !== 0) {\n const quantity = Math.min(Number(value), remaining);\n if (\n quantity !== 0 &&\n quantity < minQuantityForThisAttendee &&\n minQuantityForThisAttendee <= remaining\n )\n helpers.setValue(minQuantityForThisAttendee);\n else helpers.setValue(quantity);\n }\n };\n\n const isSoldOut = inventory.isLimited && remaining <= 0;\n\n return (\n \n {!isSoldOut ? (\n <>\n setQuantity(value)}\n disabled={!canBuyTicket || maximumQuantity === 0}\n controlType={ControlType.Horizontal}\n type=\"integer\"\n />\n {minQuantity > 0 ? (\n \n {t(\"pages.tickets.minQuantityRequired\", { minQuantity })}\n \n ) : null}\n {maximumQuantity != 0 && inRange(ticket.maximumQuantity ?? 0, 100) ? (\n \n {t(\"pages.tickets.maxQuantityAllowed\", { maximumQuantity })}\n \n ) : null}\n {inventory.isLimited && remaining ? (\n \n {t(\"pages.tickets.quantityRemaining\", { remaining })}\n \n ) : null}\n {maximumQuantity === 0 ? (\n \n {t(\"pages.tickets.maximumQuantityInCart\")}\n \n ) : null}\n \n ) : (\n \n {t(\"pages.tickets.soldOut\")}\n \n )}\n \n );\n};\n\nexport { QuantitySection };\n","import { cloneDeep } from \"@apollo/client/utilities\";\nimport { Formik, useFormikContext } from \"formik\";\nimport React, { FC, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\nimport { Button } from \"@src/components/atoms/Button\";\nimport { Thumbnail } from \"@src/components/atoms/Thumbnail/Thumbnail\";\nimport { FieldSelector } from \"@src/components/fields\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { LoadingModal } from \"@src/components/molecules/loadingModal/LoadingModal\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport { Breakpoints, useBreakPoints, useUrlParams } from \"@src/customHooks\";\nimport { ReserveTicketAnswerResult } from \"@src/mutations/mutationTypes\";\nimport { AttendeeFormRoute, PreviewProps } from \"@src/Routes\";\nimport { Attendee, FieldType, PurchasedTicket, Ticket, TicketInventory } from \"@src/types\";\nimport { isCollapsed } from \"@src/utils/field\";\nimport { getFormInitialValues } from \"@src/utils/formValues\";\nimport { InitialValuesObject } from \"@src/utils/formValuesTypes\";\nimport { CancelTicketArgs, ReserveTicketArgs, TicketMode } from \"@src/utils/purchasedTickets\";\nimport { DateNotice } from \"./DateNotice\";\nimport { QuantitySection } from \"./QuantitySection\";\nimport { TicketPrice, TicketTypeCode } from \"./TicketPrice\";\nimport { TrashButton } from \"./TrashButton\";\nimport { RespondentMustSelectATicket } from \"@src/pages/TicketsAndAttendeeForm\";\nimport { checkTicketSellingDates, getTicketAnswers } from \"@src/utils/tickets\";\nimport { useReactiveVar } from \"@apollo/client\";\nimport { IsPayNow, OrderId } from \"@src/localVariables\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport { TranslateFormErrors } from \"@src/customHooks/useTranslateFormErrors\";\n\ntype TicketContainerProps = {\n unavailable?: boolean;\n};\n\nconst TicketContainer = styled.div`\n border: 1px solid #cdcdcd;\n box-shadow: 0 0px 3px rgb(0 0 0 / 5%), 0 0px 3px rgb(0 0 0 / 24%);\n border-radius: 10px;\n ${({ unavailable, theme }) =>\n unavailable &&\n `\n color: ${theme.colors.values.grey};\n opacity: .5;\n `}\n`;\n\nconst TicketQuestionsHeader = styled(Flex)`\n margin-bottom: 5px;\n & > * {\n :not(:first-child) {\n margin-left: 20px;\n }\n }\n`;\n\nconst AddToCartButton = styled.button.attrs({ type: \"button\" })<{ screenSize: Breakpoints }>`\n ${({ theme, screenSize }) => `\n height: 47px;\n width: ${screenSize === \"desktop\" ? \"188px\" : \"100%\"};\n\n border-radius: 7px;\n border-style: none;\n border-color: ${theme.colors.values.lightblue};\n\n margin: ${screenSize === \"desktop\" ? \"0px 15px 15px auto\" : \"20px\"};\n\n background: ${theme.colors.values.lightblue};\n\n text-align: center;\n font-size: 18px;\n font-family: ${theme.font.default};\n color: ${theme.colors.values.white};\n cursor: pointer;\n\n &:disabled {\n background: ${theme.colors.alias.disabled};\n cursor: default;\n }\n `}\n`;\n\nconst TicketQuestionsSection = styled(Flex)`\n padding: 10px 15px;\n box-sizing: border-box;\n`;\n\ntype TicketHeaderProps = PreviewProps & {\n ticket: Ticket;\n attendee: Attendee;\n attendeeIndex: number;\n purchasedTickets?: PurchasedTicket[];\n cart: Attendee[];\n mode: TicketMode;\n onCancelTicket?: (args: CancelTicketArgs) => void;\n children?: React.ReactNode;\n};\n\nconst TicketHeader: FC = ({\n ticket,\n attendee,\n attendeeIndex,\n purchasedTickets,\n mode,\n onCancelTicket,\n children,\n}) => {\n const { t } = useTranslation();\n const googleTranslate = useGoogleTranslate();\n const screenSize = useBreakPoints();\n const { baseUrl, countryCode } = useUrlParams();\n const navigate = useNavigate();\n const isPayNow = useReactiveVar(IsPayNow);\n const thumbnailUrl = ticket.imageId\n ? `${process.env.DOCUMENTS_URL}${countryCode.toLowerCase()}/attachments/${ticket.imageId}/image-thumbnail`\n : null;\n\n const onEditTicket = () => {\n navigate(`${baseUrl}/${AttendeeFormRoute}/${attendeeIndex >= 0 ? attendeeIndex : 0}`);\n };\n\n const displaySummaryForSimpleTicket =\n (mode === TicketMode.PREVIEW || mode === TicketMode.CHECKOUT) &&\n ticket.formQuestions?.length === 0;\n\n const purchasedTicketIds =\n displaySummaryForSimpleTicket && purchasedTickets && purchasedTickets.length > 0\n ? purchasedTickets.flatMap((x) => x.purchasedTicketIds)\n : [];\n\n return (\n \n \n \n {mode === TicketMode.CHECKOUT && !isPayNow ? (\n \n ) : null}\n {mode === TicketMode.SHOPPING && (ticket.startSellingDate || ticket.endSellingDate) ? (\n \n ) : null}\n \n \n \n \n {googleTranslate(ticket.name || \"\")}\n \n {mode !== TicketMode.CHECKOUT && displaySummaryForSimpleTicket && onCancelTicket ? (\n \n onCancelTicket({\n ticketVersionId: ticket.id,\n responseAttendeeId: attendee.responseAttendeeId,\n purchasedTicketIds: purchasedTicketIds,\n })\n }\n />\n ) : null}\n \n\n {ticket.description && mode !== TicketMode.CART_PREVIEW ? (\n \n {googleTranslate(ticket.description || \"\")}\n \n ) : null}\n {children}\n \n \n );\n};\n\nexport type TicketSectionProps = PreviewProps & {\n ticket: Ticket;\n inventory: TicketInventory;\n attendee: Attendee;\n attendeeIndex: number;\n cart?: Attendee[];\n mode: TicketMode;\n onReserveTicket?: (args: ReserveTicketArgs) => Promise;\n};\n\nconst TicketSection: FC = ({\n ticket,\n inventory,\n attendee,\n attendeeIndex,\n cart,\n mode,\n isPreview,\n onReserveTicket,\n}) => {\n const { t } = useTranslation();\n const googleTranslate = useGoogleTranslate();\n const screenSize = useBreakPoints();\n const { errors, setFieldError } = useFormikContext<{\n RespondentMustSelectATicket: string | undefined;\n }>();\n const fields = ticket.formQuestions || [];\n const hasOptions = fields?.length > 0;\n const [collapsedHeaders, setCollapsedHeaders] = useState([]);\n const requiresATicket = errors[RespondentMustSelectATicket] ?? null;\n const orderId = useReactiveVar(OrderId);\n\n const filteredFields = fields.filter(\n (x) =>\n !x.type ||\n (x.type !== FieldType.Header &&\n x.type !== FieldType.Section &&\n x.type !== FieldType.Descriptivetext)\n );\n\n const ticketAnswerValues = getFormInitialValues({\n fields: filteredFields,\n answers: [],\n });\n\n type TicketInitialValues = {\n quantity: number;\n openValueAmount?: number;\n answers: {\n [id: string]: InitialValuesObject;\n };\n };\n\n const canBuyTicket = checkTicketSellingDates(ticket);\n\n const initialValues: TicketInitialValues = {\n answers: { [ticket.ticketId]: ticketAnswerValues },\n quantity: 0,\n openValueAmount: undefined,\n };\n\n const handleToggleCollapse = (fieldId: string) => {\n const existing = collapsedHeaders.find((x) => x === fieldId);\n\n if (existing) {\n setCollapsedHeaders(collapsedHeaders.filter((x) => x !== existing));\n } else {\n const headers = cloneDeep(collapsedHeaders);\n headers.push(fieldId);\n\n setCollapsedHeaders(headers);\n }\n };\n\n return (\n {\n // id of ticket, generated field id, answer\n const innerFieldAnswers = Object.values(answers[ticket.ticketId]);\n\n const newAnswers = getTicketAnswers(innerFieldAnswers).filter((x) => x.value);\n\n if (Number(ticket.typeCode) === TicketTypeCode.Donation) {\n quantity = Math.max(1, quantity);\n }\n\n if (onReserveTicket) {\n const result = await onReserveTicket({\n orderId: orderId,\n responseAttendeeId: attendee.responseAttendeeId,\n ticketVersionId: ticket.id,\n answers: newAnswers,\n openValueAmount,\n quantity,\n });\n\n if (!result.errors) {\n if (requiresATicket) {\n setFieldError(RespondentMustSelectATicket, undefined);\n }\n OrderId(result.data?.ReserveTicket);\n resetForm({ values: initialValues });\n }\n }\n }}\n >\n {({ isSubmitting, dirty, setFieldValue, resetForm, values, submitForm }) => {\n const showOptions =\n Number(ticket.typeCode) !== TicketTypeCode.Donation\n ? values.quantity > 0\n : (values.openValueAmount ?? 0) >= 1;\n\n const addToCartLabel =\n t(\"pages.tickets.addToCart\") +\n `${values.quantity > 0 ? \" (\" + values.quantity + \")\" : \"\"}`;\n\n return (\n \n <>\n {isSubmitting && }\n \n <>\n \n {mode === TicketMode.SHOPPING ? (\n <>\n \n setFieldValue(\"openValueAmount\", Number(newAmount))\n }\n >\n {!hasOptions &&\n mode === TicketMode.SHOPPING &&\n Number(ticket.typeCode) !== TicketTypeCode.Donation ? (\n \n ) : null}\n \n \n ) : null}\n \n {!hasOptions ? (\n \n \n {addToCartLabel}\n \n \n ) : null}\n {hasOptions ? (\n \n \n \n \n {googleTranslate(ticket.name || \"\")}\n \n resetForm({ values: initialValues })}\n />\n \n \n {showOptions ? (\n \n {fields.map((field, index) => (\n \n ))}\n \n ) : null}\n \n \n \n {addToCartLabel}\n \n \n \n ) : null}\n \n \n \n \n );\n }}\n \n );\n};\n\nexport { TicketSection, TicketHeader, TicketMode };\n","import { StyledIcon } from \"@src/components/atoms/Icon\";\nimport { DefaultTheme } from \"@src/themes/default\";\nimport React, { FC } from \"react\";\nimport styled, { useTheme } from \"styled-components\";\n\nconst TrashIcon = styled(StyledIcon)`\n margin-top: 1px;\n margin-left: 15px;\n`;\n\nexport type TrashButtonProps = {\n testId?: string;\n disabled?: boolean;\n onClick?: () => void;\n style?: React.CSSProperties;\n};\n\nconst TrashButton: FC = ({ testId, disabled, onClick, style }) => {\n const theme = useTheme() as DefaultTheme;\n return (\n \n );\n};\n\nexport { TrashButton };\n","import { Flex } from \"@src/components/layout/Page\";\nimport styled from \"styled-components\";\n\nexport const StyledOrderContainer = styled(Flex)`\n border: 1px solid #e9e9e9;\n border-radius: 5px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n padding: 15px;\n margin-bottom: 15px;\n`","import { Flex } from \"@src/components/layout/Page\";\nimport { StyledLabel } from \"@src/components/styles\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { PurchasedTicket } from \"@src/types\";\nimport { currencyFormatter } from \"@src/utils/purchasedTickets\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\nimport React, { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\ntype PreviousTicketProps = {\n purchasedTickets: PurchasedTicket[];\n};\n\nconst PreviousTicket: FC = ({ purchasedTickets }) => {\n const { i18n } = useTranslation();\n const googleTranslate = useGoogleTranslate();\n const { form } = useFormInfo();\n\n const currencyCode = form?.document?.organization?.currencyCode;\n\n return (\n \n {purchasedTickets.map((purchasedTicket) => {\n return (\n \n {googleTranslate(purchasedTicket.name ?? \"\")}\n \n \n ({purchasedTicket.quantity}){\" \"}\n \n \n {currencyFormatter(i18n.resolvedLanguage, currencyCode).format(\n purchasedTicket.quantity * purchasedTicket.price\n )}\n \n \n \n );\n })}\n \n );\n};\n\nexport { PreviousTicket };\n","import React, { FC } from \"react\";\nimport { Order } from \"@src/types\";\nimport { StyledLabel, StyledLine } from \"@src/components/styles\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport groupBy from \"lodash/groupBy\";\nimport { currencyFormatter } from \"@src/utils/purchasedTickets\";\nimport dayjs from \"dayjs\";\nimport { StyledOrderContainer } from \"./styles\";\nimport { PreviousTicket } from \"./PreviousTicket\";\nimport { useTranslation } from \"react-i18next\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { useGoogleTranslate } from \"@src/utils/translation\";\n\nexport type PreviousOrderProps = {\n order: Order;\n};\n\nconst PreviousOrder: FC = ({ order }) => {\n const { i18n, t } = useTranslation();\n const attendeeTicketsDict = groupBy(order.purchasedTickets, \"attendeeId\");\n const { form } = useFormInfo();\n const googleTranslate = useGoogleTranslate();\n\n const orderDate = googleTranslate(dayjs(order.date).format(\"MMMM DD YYYY\"));\n\n const currencyCode = form?.document?.organization?.currencyCode;\n return (\n \n \n <>\n \n \n \n {t(\"labels.orderNumber\")} {order.orderNumber}{\" \"}\n \n \n {t(\"labels.purchasedBy\")} {order.purchaserFirstName}{\" \"}\n {order.purchaserLastName}\n \n \n \n \n {t(\"labels.date\")} {orderDate}\n \n \n {t(\"labels.total\")}{\" \"}\n {currencyFormatter(i18n.resolvedLanguage, currencyCode).format(\n order.grandTotal || 0\n )}\n \n \n \n \n {Object.keys(attendeeTicketsDict).map((attendeeId) => {\n return (\n \n );\n })}\n \n \n \n );\n};\n\nexport type PreviousOrdersProps = {\n orders: Order[];\n};\n\nconst PreviousOrders: FC = ({ orders }) => {\n const { t } = useTranslation();\n return (\n \n <>\n {t(\"labels.previousOrders\")}\n {orders.map((order) => (\n \n ))}\n \n \n \n );\n};\n\nexport { PreviousOrders };\n","import React, { FC } from \"react\";\nimport { Attendee, ReserveTicketInput, Ticket, TicketInventory } from \"@src/types\";\nimport { TicketMode, TicketSection } from \"../TicketSection/TicketSection\";\nimport { StyledLabel, StyledLine } from \"@src/components/styles\";\nimport { Flex } from \"@src/components/layout/Page\";\nimport { ReserveTicketAnswerResult } from \"@src/mutations/mutationTypes\";\nimport { ReserveTicketArgs } from \"@src/utils/purchasedTickets\";\nimport { PreviewProps } from \"@src/Routes\";\nimport { useFormikContext } from \"formik\";\nimport { RespondentMustSelectATicket } from \"@src/pages/TicketsAndAttendeeForm\";\nimport { useTranslation } from \"react-i18next\";\n\nexport type TicketInput = ReserveTicketInput & {\n responseAttendeeId: string;\n responseVersionId: string;\n ticketId: string;\n ticket: Ticket;\n};\n\nexport type TicketsSectionProps = PreviewProps & {\n tickets: Ticket[];\n inventories: TicketInventory[];\n attendee: Attendee;\n attendeeIndex: number;\n cart?: Attendee[];\n mode: TicketMode;\n onReserveTicket?: (args: ReserveTicketArgs) => Promise;\n};\n\nconst TicketsSection: FC = ({\n tickets,\n inventories,\n attendee,\n attendeeIndex,\n cart,\n mode,\n isPreview,\n onReserveTicket,\n}) => {\n const { t } = useTranslation();\n const { errors } = useFormikContext<{ RespondentMustSelectATicket: string | undefined }>();\n\n const requiresATicket = errors[RespondentMustSelectATicket] ?? null;\n\n return tickets.length > 0 ? (\n \n \n \n {t(\"pages.tickets.selectItems\")} {attendee.firstName} {attendee.lastName}\n \n
\n {tickets.map((ticket, index) => {\n const inventory = inventories.find((x) => x.ticketId == ticket.ticketId);\n\n return inventory ? (\n \n \n \n \n ) : null;\n })}\n {requiresATicket ? (\n

* {requiresATicket}

\n ) : null}\n
\n
\n ) : null;\n};\n\nexport { TicketsSection };\n","import gql from \"graphql-tag\";\nimport {\n AnswerFragment,\n DocumentFragment,\n FieldFragment,\n FormAttachmentFragment,\n LinkAttachmentFragment,\n TicketFragment,\n} from \"./fragments\";\n\nconst FORM_INFO_QUERY = gql`\n query FormInfo($hashedId: String!, $countryCode: String!, $hashedOrgId: String) {\n Form(hashedId: $hashedId, countryCode: $countryCode, hashedOrgId: $hashedOrgId) {\n id\n name\n status\n redirectUrl\n documentId\n redirectMessage\n allowMultipleChildrenOnOneOrder\n allowOnlinePaymentsOnly\n respondentMustSelectATicket\n manualPaymentText\n parentMessage\n information\n organizerName\n requiresPermission\n isGeneralSignup\n restrictResponses\n hasApprovers\n hasReachedResponseCutOffDate\n responseCutOffLocalDate\n startDate\n endDate\n affirmativePermission\n negativePermission\n useOrganizationBranding\n useLocalTranslations\n document {\n ...DocumentFragment\n }\n attachments {\n ...FormAttachmentFragment\n }\n linkAttachments {\n ...LinkAttachmentFragment\n }\n publicQuestions {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n }\n }\n }\n }\n publicOrganizerAnswers {\n ...AnswerFragment\n }\n signeeQuestions {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n }\n }\n }\n }\n attendeeQuestions {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n }\n }\n }\n }\n tickets {\n ...TicketFragment\n }\n template {\n attachmentsPermissions\n ticketPermissions\n signeeFormPermissions\n attendeeFormPermissions\n document {\n ...DocumentFragment\n }\n attachments {\n ...FormAttachmentFragment\n }\n linkAttachments {\n ...LinkAttachmentFragment\n }\n publicQuestions {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n }\n }\n }\n }\n signeeQuestions {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n }\n }\n }\n }\n attendeeQuestions {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n fields {\n ...FieldFragment\n equationSections {\n ...QuestionFragment\n }\n question {\n ...QuestionFragment\n }\n }\n }\n }\n }\n tickets {\n ...TicketFragment\n }\n }\n }\n }\n ${DocumentFragment}\n ${FieldFragment}\n ${TicketFragment}\n ${FormAttachmentFragment}\n ${LinkAttachmentFragment}\n ${AnswerFragment}\n`;\n\nexport { FORM_INFO_QUERY };\n","import gql from \"graphql-tag\";\nimport { OrganizationFragment } from \"./fragments\";\n\nconst ORGANIZATION_INFO_QUERY = gql`\n query OrganizationInfo($organizationId: ID!, $countryCode: String!) {\n Organization(organizationId: $organizationId, countryCode: $countryCode) {\n ...OrganizationFragment\n }\n }\n ${OrganizationFragment}\n`;\n\nconst ORGANIZATION_HASH_QUERY = gql`\n query OrganizationByHash($hashedId: String!, $countryCode: String!) {\n OrganizationByHash(hash: $hashedId, countryCode: $countryCode) {\n ...OrganizationFragment\n }\n }\n ${OrganizationFragment}\n`;\n\nexport { ORGANIZATION_INFO_QUERY, ORGANIZATION_HASH_QUERY };\n","import gql from \"graphql-tag\";\nimport { TaxesAndFeesFragment } from \"./fragments\";\n\nconst TAXES_AND_FEES_QUERY = gql`\n query TaxesAndFees($organizationId: ID!, $passFeesToBuyer: Boolean!, $amount: Float!, $currency: String!) {\n TaxesAndFees(organizationId: $organizationId, passFeesToBuyer: $passFeesToBuyer, amount: $amount, currency: $currency) {\n ...TaxesAndFeesFragment\n }\n }\n ${TaxesAndFeesFragment}\n`;\n\nexport { TAXES_AND_FEES_QUERY };\n","import { ApolloCache, ApolloError, useApolloClient, useReactiveVar } from \"@apollo/client\";\nimport { IsPreviewInventoryLoaded } from \"@src/localVariables\";\nimport { ticketInventoryMutationUpdater } from \"@src/mutations/updaterFunctions/updateTickets\";\nimport { FormInfoQuery, Ticket, TicketInventory, useTicketInventoryQuery } from \"@src/types\";\nimport { getPreviewInventories } from \"@src/utils/preview\";\nimport { useUrlParams } from \"./useUrlParams\";\nimport { FORM_INFO_QUERY } from \"@src/queries\";\n\nexport type TicketInventoryQuery = {\n inventories: TicketInventory[];\n loading: boolean;\n error: ApolloError | undefined;\n};\n\nexport const useTicketInventory = (\n tickets: Ticket[],\n documentId: string,\n isPreview?: boolean\n): TicketInventoryQuery => {\n const { countryCode, documentHashedId, hashedOrgId } = useUrlParams();\n const isPreviewInventoryLoaded = useReactiveVar(IsPreviewInventoryLoaded);\n const client = useApolloClient();\n\n const ticketIds = tickets.map((x) => x.ticketId);\n\n if (isPreview && !isPreviewInventoryLoaded) {\n injectPreviewDataIntoCache(client.cache, tickets, documentId || \"\", countryCode);\n IsPreviewInventoryLoaded(true);\n }\n\n const ticketInventoryQuery = useTicketInventoryQuery({\n variables: { documentId: documentId || \"\", countryCode, ticketIds },\n fetchPolicy: \"cache-first\",\n skip: !documentId || !countryCode,\n });\n\n const inventories = ticketInventoryQuery?.data?.TicketInventory;\n\n client.cache.updateQuery(\n {\n query: FORM_INFO_QUERY,\n variables: { \n hashedId: documentHashedId || \"\", \n countryCode, \n hashedOrgId \n },\n overwrite: true,\n },\n (cachedData) => {\n if (cachedData) {\n\n if (cachedData?.Form?.tickets) {\n\n const updatedTickets = cachedData.Form.tickets.map((ticket) => {\n const matchingInventory = inventories?.find((inv) => inv.ticketId === ticket.ticketId);\n if (matchingInventory) {\n return {\n ...ticket,\n inventory: {\n ...ticket.inventory,\n remaining: matchingInventory.remaining,\n },\n };\n }\n return ticket;\n });\n\n return {\n ...cachedData,\n Form: {\n ...cachedData.Form,\n tickets: updatedTickets,\n }\n };\n\n }\n\n return {...cachedData};\n }\n }\n );\n\n return {\n inventories: inventories as TicketInventory[],\n loading: ticketInventoryQuery.loading,\n error: ticketInventoryQuery.error,\n };\n};\n\nconst injectPreviewDataIntoCache = (\n cache: ApolloCache,\n tickets: Ticket[],\n documentId: string,\n countryCode: string\n) => {\n const inventoryUpdater = ticketInventoryMutationUpdater(tickets);\n if (inventoryUpdater) {\n inventoryUpdater(\n cache,\n { data: { TicketInventory: getPreviewInventories(tickets) } },\n {\n variables: {\n documentId: documentId || \"\",\n countryCode,\n ticketIds: tickets.map((x) => x.ticketId),\n },\n }\n );\n }\n};\n","import { useApolloClient, useReactiveVar } from \"@apollo/client\";\nimport React, { FC } from \"react\";\n\nimport { Flex } from \"@src/components/layout/Page\";\nimport { LoadingModal } from \"@src/components/molecules/loadingModal/LoadingModal\";\nimport { Totals } from \"@src/components/molecules/totals\";\nimport { StyledLine } from \"@src/components/styles\";\nimport { useUrlParams } from \"@src/customHooks\";\nimport { OrderId, RequestError } from \"@src/localVariables\";\nimport { CancelTicketAnswerResult, ReserveTicketAnswerResult } from \"@src/mutations/mutationTypes\";\nimport {\n cancelTicketMutationUpdater,\n reserveTicketMutationUpdater,\n} from \"@src/mutations/updaterFunctions/updateTickets\";\nimport { ErrorComponent } from \"@src/pages/Error\";\nimport { RESPONSE_VERSIONS_QUERY } from \"@src/queries/responseVersions\";\nimport { PreviewProps } from \"@src/Routes\";\nimport {\n Attendee,\n DocumentVersion,\n ResponseVersion,\n useCancelTicketMutation,\n useReserveTicketMutation,\n} from \"@src/types\";\nimport { getOrderInfo, getTickets } from \"@src/utils/getters\";\nimport { CancelTicketArgs, ReserveTicketArgs } from \"@src/utils/purchasedTickets\";\nimport { TicketsPreview } from \"./Preview\";\nimport { PreviousOrders } from \"./PreviousOrders/PreviousOrders\";\nimport { TicketMode } from \"./TicketSection\";\nimport { TicketsSection } from \"./TicketsSection/TicketsSection\";\nimport { useTicketInventory } from \"@src/customHooks/useTicketInventory\";\nimport { signeeInfo } from \"@src/utils/responseVersionGetters\";\nimport { useTranslation } from \"react-i18next\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { useMarkAsVisited } from \"@src/customHooks/useMarkAsVisited\";\n\ntype TicketsProps = PreviewProps & {\n attendee: Attendee;\n attendeeIndex: number;\n form: DocumentVersion;\n responseVersion: ResponseVersion;\n};\n\nconst Tickets: FC = ({\n attendee,\n attendeeIndex,\n isPreview,\n form,\n responseVersion,\n}) => {\n const { t } = useTranslation();\n const { countryCode } = useUrlParams();\n const orderId = useReactiveVar(OrderId) || \"\";\n const client = useApolloClient();\n\n const ticketInventoryQuery = useTicketInventory(form.tickets || [], form.documentId, isPreview);\n const tickets = getTickets(form);\n\n const responseVersionQueryVariables = {\n documentId: form.documentId,\n countryCode,\n email: signeeInfo(responseVersion).email,\n };\n\n const mutationOptions = {\n awaitRefetchQueries: true,\n refetchQueries: [\n {\n query: RESPONSE_VERSIONS_QUERY,\n variables: responseVersionQueryVariables,\n },\n ],\n };\n const [reserveTicket] = useReserveTicketMutation(mutationOptions);\n const [cancelTicket] = useCancelTicketMutation(mutationOptions);\n\n useMarkAsVisited(\"attendee-form/0\");\n\n if (ticketInventoryQuery.loading) return ;\n if (ticketInventoryQuery.error) return ;\n\n const orderInfo = getOrderInfo(responseVersion, false);\n\n const onReserveTicket = async ({\n orderId,\n ticketVersionId,\n responseAttendeeId,\n answers,\n openValueAmount,\n quantity,\n }: ReserveTicketArgs): Promise => {\n const result = await reserveTicket({\n variables: {\n countryCode,\n documentId: form.documentId,\n responseVersionId: responseVersion.responseVersionId,\n responseAttendeeId: responseAttendeeId,\n ticketVersionId: ticketVersionId,\n reserveTicketInput: {\n orderId,\n answers: answers,\n openValueAmount: openValueAmount,\n quantity: parseInt(quantity.toString()),\n },\n },\n });\n\n if (result.errors && result.errors.length > 0) {\n RequestError(result.errors[0]);\n }\n\n return result;\n };\n\n const onCancelTicket = async ({\n ticketVersionId,\n responseAttendeeId,\n purchasedTicketIds,\n }: CancelTicketArgs): Promise => {\n const result = await cancelTicket({\n variables: {\n countryCode,\n documentId: form.documentId,\n responseVersionId: responseVersion.responseVersionId,\n responseAttendeeId: responseAttendeeId,\n ticketVersionId: ticketVersionId,\n purchasedTicketIds: purchasedTicketIds,\n orderId,\n },\n });\n\n if (result.errors && result.errors.length > 0) {\n RequestError(result.errors[0]);\n }\n\n return result;\n };\n\n const previewOnReserveTicket = ({\n orderId,\n ticketVersionId,\n responseAttendeeId,\n answers,\n openValueAmount,\n quantity,\n }: ReserveTicketArgs): Promise => {\n const result = { ReserveTicket: \"\" };\n const ticket = tickets.find((ticket) => ticket.id === ticketVersionId);\n // Assign the answerId so apollo's merge operation can track the answers in the cache\n answers?.forEach((answer) => { if (!answer.answerId) answer.answerId = uuidv4(); });\n\n const updater = ticket\n ? reserveTicketMutationUpdater(signeeInfo(responseVersion), ticket, attendee.attendeeId)\n : null;\n if (updater) {\n updater(\n client.cache,\n { data: result },\n {\n variables: {\n countryCode,\n documentId: form.documentId,\n responseVersionId: responseVersion.responseVersionId,\n responseAttendeeId: responseAttendeeId,\n ticketVersionId: ticketVersionId,\n reserveTicketInput: {\n orderId,\n answers: answers,\n openValueAmount: openValueAmount,\n quantity: quantity,\n },\n },\n }\n );\n }\n return Promise.resolve({ data: result, errors: undefined });\n };\n\n const previewOnCancelTicket = ({\n ticketVersionId,\n responseAttendeeId,\n purchasedTicketIds,\n }: CancelTicketArgs): Promise => {\n const result = { CancelTicket: true };\n const updater = cancelTicketMutationUpdater(signeeInfo(responseVersion));\n if (updater) {\n updater(\n client.cache,\n { data: result },\n {\n variables: {\n countryCode,\n documentId: form.documentId,\n responseVersionId: responseVersion.responseVersionId,\n responseAttendeeId: responseAttendeeId,\n ticketVersionId: ticketVersionId,\n purchasedTicketIds: purchasedTicketIds,\n orderId,\n },\n }\n );\n }\n return Promise.resolve({ data: result, errors: undefined });\n };\n\n const hasTicketsInCart =\n orderInfo && orderInfo?.cart.some((attendee) => attendee?.tickets?.length > 0);\n\n return (\n \n \n {hasTicketsInCart ? (\n <>\n \n <>\n \n \n \n \n ) : null}\n {orderInfo && orderInfo.previousOrders.length > 0 ? (\n \n ) : null}\n \n );\n};\n\nexport { Tickets };\n","import { useApolloClient, useReactiveVar } from \"@apollo/client\";\nimport { cloneDeep } from \"@apollo/client/utilities\";\nimport {\n AttendeeFormRoute,\n AttendeeInformationRoute,\n PreviewProps,\n ReviewRoute,\n SigneeFormRoute,\n} from \"@src/Routes\";\nimport { FieldSelector } from \"@src/components/fields\";\nimport { ContentWrapper, PageWrapper } from \"@src/components/layout\";\nimport { Flex, Push } from \"@src/components/layout/Page\";\nimport { ProgressTracker } from \"@src/components/molecules/ProgressTracker\";\nimport { ErrorNavigator } from \"@src/components/molecules/errorNavigator\";\nimport { InfoModal } from \"@src/components/molecules/infoModal/InfoModal\";\nimport { LoadingModal } from \"@src/components/molecules/loadingModal/LoadingModal\";\nimport { NavigationButtons } from \"@src/components/molecules/navigationButtons\";\nimport { PageFooter } from \"@src/components/molecules/pageFooter\";\nimport { PageHeader } from \"@src/components/molecules/pageHeader\";\nimport { StyledAttendeeName, StyledDivider } from \"@src/components/styles\";\nimport { useBreakPoints, useUrlParams } from \"@src/customHooks\";\nimport { useFormInfo } from \"@src/customHooks/useFormInfo\";\nimport { useCachedResponseVersion } from \"@src/customHooks/useResponseVersion\";\nimport { useSafeSaveAttendeeAnswerMutation } from \"@src/customHooks/useSafeMutations\";\nimport { TranslateFormErrors } from \"@src/customHooks/useTranslateFormErrors\";\nimport { AccessDataAnswers, RequestError, ResponseVersionHash } from \"@src/localVariables\";\nimport {\n deleteAttendeeAnswerMutationUpdater,\n saveAttendeeAnswerMutationUpdater,\n} from \"@src/mutations/updaterFunctions/updateAttendeeAnswers\";\nimport { AnswerInput, useDeleteAttendeeAnswerMutation } from \"@src/types\";\nimport { checkUnsubmittedAnswers } from \"@src/utils/answers\";\nimport { isCollapsed } from \"@src/utils/field\";\nimport {\n getIntegratedDataFields,\n hasAttendeeQuestions,\n hasSigneeQuestions,\n hasTickets,\n} from \"@src/utils/formGetters\";\nimport { getFormInitialValues } from \"@src/utils/formValues\";\nimport { InitialValuesObject } from \"@src/utils/formValuesTypes\";\nimport { getAttendeeFields, getAttendeesList, getFieldKey } from \"@src/utils/getters\";\nimport { getAttendeeAnswer, getDeleteAttendeeAnswerResponseForPreview } from \"@src/utils/preview\";\nimport { ticketMaximumsAreNotExceeded, ticketMinimumsAreMet } from \"@src/utils/purchasedTickets\";\nimport { isStaff } from \"@src/utils/responseVersionGetters\";\nimport { scrollToTop } from \"@src/utils/scrollToTop\";\nimport { answerToAnswerInput } from \"@src/utils/typeConverters\";\nimport { Form, Formik } from \"formik\";\nimport React, { FC, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Navigate, useNavigate } from \"react-router-dom\";\nimport { ErrorComponent } from \"../Error/Error\";\nimport { Tickets } from \"../Tickets/Tickets\";\nimport { useMarkAsVisited } from \"@src/customHooks/useMarkAsVisited\";\n\nexport const RespondentMustSelectATicket = \"RespondentMustSelectATicket\";\nexport const TicketMinimumsNotMet = \"TicketMinimumsNotMet\";\nexport const TicketMaximumsExceeded = \"TicketMaximumsExceeded\";\n\nconst TicketsAndAttendeeForm: FC = ({ isPreview }) => {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const { baseUrl, countryCode, attendeeIndex } = useUrlParams();\n const screenSize = useBreakPoints();\n const responseVersionHash = useReactiveVar(ResponseVersionHash);\n const requestError = useReactiveVar(RequestError);\n const accessData = useReactiveVar(AccessDataAnswers) || [];\n const [collapsedHeaders, setCollapsedHeaders] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const client = useApolloClient();\n const [disableNextButton, setDisableNextButton] = useState(false);\n\n useEffect(() => {\n typeof attendeeIndex !== undefined && scrollToTop();\n }, [attendeeIndex]);\n\n const formInfo = useFormInfo();\n const responseVersionQuery = useCachedResponseVersion(responseVersionHash);\n const attendeesList = getAttendeesList(responseVersionQuery.responseVersion).filter(\n (attendee) => !formInfo.form.requiresPermission || attendee.permitted\n );\n\n const currentAnswers =\n attendeeIndex !== undefined ? attendeesList[attendeeIndex]?.attendeeAnswers || [] : [];\n const integratedDataOnFile =\n attendeeIndex !== undefined ? attendeesList[attendeeIndex]?.integratedDataOnFile || [] : [];\n\n const allInitialAnswers = [...currentAnswers, ...integratedDataOnFile];\n const saveAttendeeAnswer = useSafeSaveAttendeeAnswerMutation({ answers: allInitialAnswers });\n\n const [deleteAttendeeAnswer] = useDeleteAttendeeAnswerMutation();\n\n useMarkAsVisited(\"attendee-form/0\");\n\n if (formInfo.error) return ;\n if (formInfo.loading || responseVersionQuery.loading) return ;\n if (responseVersionQuery.error)\n return ;\n\n const form = formInfo.form;\n const responseVersion = responseVersionQuery.responseVersion;\n\n if (\n !baseUrl ||\n !responseVersion ||\n typeof attendeeIndex === \"undefined\" ||\n responseVersionQuery.responseVersion?.isSigned\n ) {\n const currentUrl = window.location.pathname;\n\n // Remove everything after AttendeeFormRoute\n return (\n \n );\n }\n\n if (attendeeIndex >= attendeesList.length && !formInfo.form.isGeneralSignup) {\n const index = window.location.pathname.indexOf(AttendeeFormRoute);\n\n return ;\n }\n\n const selectedAttendee = attendeesList[attendeeIndex];\n const attendeeFullName = `${selectedAttendee.firstName} ${selectedAttendee.lastName}`;\n\n const fields = getAttendeeFields(formInfo.form);\n\n const initialValues = getFormInitialValues({\n fields,\n answers: currentAnswers,\n integratedDataOnFile: integratedDataOnFile,\n });\n\n const saveAnswer = async (answerInput: AnswerInput): Promise => {\n const answer = answerToAnswerInput(answerInput);\n\n if (isPreview) {\n const previewAnswer = getAttendeeAnswer(answer);\n const updater = saveAttendeeAnswerMutationUpdater({\n attendeeId: selectedAttendee.attendeeId,\n responseHashedId: responseVersion.hash,\n });\n if (updater) {\n updater(\n client.cache,\n { data: { SaveAttendeeAnswer: previewAnswer } },\n {\n variables: {\n attendeeId: selectedAttendee.attendeeId,\n countryCode,\n documentId: form.documentId,\n responseVersionId: responseVersion.responseVersionId,\n answer,\n accessData,\n },\n }\n );\n }\n return previewAnswer.answerId;\n } else {\n const answerId = await saveAttendeeAnswer({\n update: saveAttendeeAnswerMutationUpdater({\n attendeeId: selectedAttendee.attendeeId,\n responseHashedId: responseVersion.hash,\n }),\n variables: {\n countryCode,\n documentId: form.documentId,\n responseVersionId: responseVersion.responseVersionId,\n attendeeId: selectedAttendee.responseAttendeeId,\n answer,\n accessData,\n },\n });\n\n return answerId;\n }\n };\n\n const deleteAnswer = async (answer: AnswerInput) => {\n if (isPreview) {\n const response = { DeleteAttendeeAnswer: getDeleteAttendeeAnswerResponseForPreview() };\n const updater = deleteAttendeeAnswerMutationUpdater({\n attendeeId: selectedAttendee.attendeeId,\n responseHashedId: responseVersion.hash,\n });\n if (updater) {\n updater(\n client.cache,\n { data: response },\n {\n variables: {\n countryCode,\n documentId: form.documentId,\n responseVersionId: responseVersion.responseVersionId,\n attendeeId: selectedAttendee.responseAttendeeId,\n accessData,\n answerInput: {\n fieldId: answer.fieldId,\n questionId: answer.questionId,\n order: answer.order,\n },\n },\n }\n );\n }\n return Promise.resolve({ data: response, errors: undefined });\n } else {\n return await deleteAttendeeAnswer({\n update: deleteAttendeeAnswerMutationUpdater({\n attendeeId: selectedAttendee.attendeeId,\n responseHashedId: responseVersion.hash,\n }),\n variables: {\n countryCode,\n documentId: form.documentId,\n responseVersionId: responseVersion.responseVersionId,\n attendeeId: selectedAttendee.responseAttendeeId,\n accessData,\n answerInput: {\n fieldId: answer.fieldId,\n questionId: answer.questionId,\n order: answer.order,\n },\n },\n });\n }\n };\n\n const nextPage = (\n setFieldError?: (field: string, message: string | undefined) => void,\n continueWithoutTickets?: boolean\n ) => {\n const integratedDataAnswers = Object.keys(initialValues)\n .filter((x) => x.includes(\"INTEGRATED_DATA\"))\n .map((key) => Object.values(initialValues[key])[1]);\n\n if (integratedDataAnswers) {\n integratedDataAnswers.forEach((answer) => {\n // Save untouched integrated data answers\n if (typeof (answer as AnswerInput).answerId === \"undefined\") {\n saveAnswer(answer as AnswerInput);\n }\n });\n }\n\n if (\n formInfo.form?.respondentMustSelectATicket &&\n hasTickets(formInfo.form) &&\n attendeesList[attendeeIndex].tickets.length === 0 &&\n setFieldError\n ) {\n setFieldError(RespondentMustSelectATicket, t(\"validation.noTicketsWhenRequired\"));\n return;\n }\n\n const ticketMinimumsAreValid = ticketMinimumsAreMet(form.tickets ?? [], responseVersion.orders);\n const ticketMaximumsAreValid = ticketMaximumsAreNotExceeded(\n form.tickets ?? [],\n responseVersion.orders\n );\n\n if (!ticketMinimumsAreValid && setFieldError) {\n setFieldError(RespondentMustSelectATicket, t(\"validation.ticketMinimumsAreNotMet\"));\n return;\n } else if (!ticketMaximumsAreValid && setFieldError) {\n setFieldError(RespondentMustSelectATicket, t(\"validation.ticketMaximumsAreExceeded\"));\n return;\n }\n\n if (hasTickets(form) && attendeesList[attendeeIndex].tickets.length === 0 && !showModal) {\n setShowModal(true);\n return;\n }\n\n if (!showModal || continueWithoutTickets) {\n const nextIndex = attendeeIndex + 1;\n if (!formInfo.form.isGeneralSignup && attendeesList[nextIndex]) {\n navigate(`${baseUrl}/${AttendeeFormRoute}/${nextIndex}`);\n } else {\n navigate(`${baseUrl}/${ReviewRoute}`);\n }\n }\n };\n\n const back = () => {\n let attendeesList = getAttendeesList(responseVersionQuery.responseVersion);\n\n attendeesList = attendeesList.filter(\n (attendee) => !formInfo.form.requiresPermission || attendee.permitted\n );\n\n const previousIndex = attendeeIndex - 1;\n\n if (attendeesList[previousIndex]) {\n navigate(`${baseUrl}/${AttendeeFormRoute}/${previousIndex}`);\n } else {\n if (hasSigneeQuestions(form)) navigate(`${baseUrl}/${SigneeFormRoute}`);\n else if (!formInfo.form.isGeneralSignup) navigate(`${baseUrl}/${AttendeeInformationRoute}`);\n else navigate(`${baseUrl}`);\n }\n };\n\n const handleToggleCollapse = (fieldId: string) => {\n const existing = collapsedHeaders.find((x) => x === fieldId);\n\n if (existing) {\n setCollapsedHeaders(collapsedHeaders.filter((x) => x !== existing));\n } else {\n const headers = cloneDeep(collapsedHeaders);\n headers.push(fieldId);\n\n setCollapsedHeaders(headers);\n }\n };\n\n const handleSubmit = async (\n values: InitialValuesObject,\n setFieldError?: (field: string, message: string | undefined) => void\n ) => {\n setDisableNextButton(true);\n\n //skip integrated data fields\n const integratedDataFields = getIntegratedDataFields(form);\n const omitFieldKeys: string[] = [];\n\n integratedDataFields.map((x) => omitFieldKeys.push(getFieldKey(x)));\n\n const needsSaving = checkUnsubmittedAnswers(values, omitFieldKeys);\n await Promise.all(needsSaving.map((x) => saveAnswer(x as AnswerInput)));\n\n setDisableNextButton(false);\n nextPage(setFieldError, false);\n };\n\n return (\n <>\n \n {requestError ? null : }\n \n \n {attendeeFullName}\n \n {hasAttendeeQuestions(form) && }\n handleSubmit(values, setFieldError)}\n >\n \n
\n \n {fields.map((field) => (\n \n ))}\n {hasTickets(form) ? (\n \n ) : null}\n \n \n
\n \n {showModal ? (\n {\n setShowModal(false);\n }}\n onConfirm={() => {\n setShowModal(false);\n nextPage(undefined, true);\n }}\n />\n ) : null}\n
\n \n
\n \n \n );\n};\n\nexport { TicketsAndAttendeeForm };\n","import { RespondentMustSelectATicket, TicketsAndAttendeeForm } from \"./TicketsAndAttendeeForm\";\n\nexport { RespondentMustSelectATicket };\nexport default TicketsAndAttendeeForm;","import gql from \"graphql-tag\";\n\nimport { ResponseVersionFragment } from \"./fragments\";\n\nconst RESPONSE_VERSIONS_QUERY = gql`\n query ResponseVersions($countryCode: String!, $documentId: ID!, $email: String!) {\n ResponseVersions(countryCode: $countryCode, documentId: $documentId, email: $email) {\n ...ResponseVersionFragment\n }\n }\n ${ResponseVersionFragment}\n`;\n\nexport { RESPONSE_VERSIONS_QUERY };\n","import { Answer, Field } from \"@src/types\";\r\n\r\nconst AddressFieldNames = [\r\n \"streetAddress\",\r\n \"streetAddressLine2\",\r\n \"city\",\r\n \"stateProv\",\r\n \"postalZip\",\r\n] as const;\r\n\r\nexport type AddressFieldName = typeof AddressFieldNames[number];\r\n\r\nconst getStreetNumber = (place: google.maps.places.PlaceResult): string | null =>\r\n place.address_components?.find((x: { types: string[] }) => x.types.indexOf(\"street_number\") > -1)\r\n ?.long_name ?? null;\r\n\r\nconst getStreet = (place: google.maps.places.PlaceResult): string | null =>\r\n place.address_components?.find((x: { types: string[] }) => x.types.indexOf(\"route\") > -1)\r\n ?.long_name ?? null;\r\n\r\nconst getProvince = (place: google.maps.places.PlaceResult): string | null =>\r\n place.address_components?.find(\r\n (x: { types: string[] }) => x.types.indexOf(\"administrative_area_level_1\") > -1\r\n )?.long_name ?? null;\r\n\r\nconst getCity = (place: google.maps.places.PlaceResult): string | null =>\r\n place.address_components?.find((x: { types: string[] }) => x.types.indexOf(\"locality\") > -1)\r\n ?.long_name ??\r\n place.address_components?.find(\r\n (x: { types: string[] }) => x.types.indexOf(\"administrative_area_level_2\") > -1\r\n )?.long_name ??\r\n null;\r\n\r\nconst getPostalCode = (place: google.maps.places.PlaceResult): string | null =>\r\n place.address_components?.find((x: { types: string[] }) => x.types.indexOf(\"postal_code\") > -1)\r\n ?.long_name ?? null;\r\n\r\nconst getStreetAddress = (place: google.maps.places.PlaceResult): string =>\r\n `${getStreetNumber(place) || \"\"} ${getStreet(place) || \"\"}`.trim();\r\n\r\ntype GetAddressInnerFieldValueArgs = {\r\n place: google.maps.places.PlaceResult;\r\n fieldName?: AddressFieldName | null;\r\n};\r\n\r\nconst getAddressInnerFieldValue = ({\r\n place,\r\n fieldName,\r\n}: GetAddressInnerFieldValueArgs): string | null => {\r\n switch (fieldName) {\r\n case \"streetAddress\":\r\n return getStreetAddress(place);\r\n\r\n case \"city\":\r\n return getCity(place);\r\n\r\n case \"stateProv\":\r\n return getProvince(place);\r\n\r\n case \"postalZip\":\r\n return getPostalCode(place);\r\n\r\n default:\r\n return \"\";\r\n }\r\n};\r\n\r\ntype GetAddressInnerFieldValuesArgs = {\r\n fieldsDictionary: Record;\r\n value: Record;\r\n place: google.maps.places.PlaceResult;\r\n};\r\n\r\nconst getAddressInnerFieldValues = ({\r\n fieldsDictionary,\r\n value,\r\n place,\r\n}: GetAddressInnerFieldValuesArgs): Record => {\r\n const newValue = Object.keys(fieldsDictionary).reduce((acc, fieldKey) => {\r\n const fieldName = fieldsDictionary[fieldKey].question?.name as\r\n | AddressFieldName\r\n | null\r\n | undefined;\r\n\r\n const fieldValue = getAddressInnerFieldValue({ place, fieldName });\r\n\r\n acc[fieldKey] = {\r\n ...value[fieldKey],\r\n value: fieldValue,\r\n };\r\n\r\n return acc;\r\n }, {} as Record);\r\n\r\n return newValue;\r\n};\r\n\r\nconst getAddressInnerFields = (addressField: Field): Field[] =>\r\n addressField.fields?.filter((x) => !x.question?.hidden) || [];\r\n\r\nexport {\r\n getAddressInnerFieldValues,\r\n AddressFieldNames,\r\n getAddressInnerFields,\r\n\r\n // Testing exports\r\n getStreetNumber as _getStreetNumber,\r\n getStreet as _getStreet,\r\n getProvince as _getProvince,\r\n getCity as _getCity,\r\n getPostalCode as _getPostalCode,\r\n getStreetAddress as _getStreetAddress,\r\n getAddressInnerFieldValue as _getAddressInnerFieldValue,\r\n};\r\n","import omit from \"lodash/omit\";\r\nimport { Answer, AnswerInput } from \"@src/types\";\r\nimport {\r\n ConditionalValue,\r\n EquationValue,\r\n InitialValuesObject,\r\n InnerFields,\r\n IntegratedDataFieldValue,\r\n RepeatableValue,\r\n} from \"./formValuesTypes\";\r\nimport { getInnerFieldAnswersFromRepeatableValue } from \"./repeatables\";\r\n\r\nconst getAnswersFromInnerFields = (value: InnerFields): AnswerInput[] =>\r\n Object.values(value) as AnswerInput[];\r\n\r\nconst getAnswersFromConditionalValue = (value: ConditionalValue): AnswerInput[] => {\r\n const innerFields = omit(value, [\"answer\"]);\r\n const answers = Object.values(innerFields).flatMap((possibleFieldValue) =>\r\n getAnswersFromPossibleFieldValue(possibleFieldValue)\r\n );\r\n\r\n return [value.answer, ...answers];\r\n};\r\n\r\nconst getAnswersFromRepeatableValue = (value: RepeatableValue): AnswerInput[] => {\r\n const innerFields = omit(value, [\"answers\", \"isDirty\"]);\r\n const innerFieldAnswers = getInnerFieldAnswersFromRepeatableValue(innerFields);\r\n\r\n return [...value.answers, ...innerFieldAnswers];\r\n};\r\n\r\nconst getAnswersFromEquationValue = (value: EquationValue): AnswerInput[] => value.allAnswers;\r\n\r\nconst getAnswersFromPossibleFieldValue = (possibleFieldValue: unknown): AnswerInput[] => {\r\n // Only Conditional and IntegratedData values have an \"answer\" property\r\n if ((possibleFieldValue as ConditionalValue | IntegratedDataFieldValue).answer) {\r\n return getAnswersFromConditionalValue(possibleFieldValue as ConditionalValue);\r\n }\r\n\r\n // Only Repeatable values have an \"answers\" property\r\n if ((possibleFieldValue as RepeatableValue).answers) {\r\n return getAnswersFromRepeatableValue(possibleFieldValue as RepeatableValue);\r\n }\r\n\r\n // Only Equation values have an \"allAnswers\" property\r\n if ((possibleFieldValue as EquationValue).allAnswers) {\r\n return getAnswersFromEquationValue(possibleFieldValue as EquationValue);\r\n }\r\n\r\n // If there's no \"questionId\" or \"fieldId\" property, it's an Address value\r\n if (\r\n typeof (possibleFieldValue as AnswerInput).questionId === \"undefined\" &&\r\n typeof (possibleFieldValue as AnswerInput).fieldId === \"undefined\"\r\n ) {\r\n return getAnswersFromInnerFields(possibleFieldValue as InnerFields);\r\n }\r\n\r\n // Otherwise, it's a simple AnswerInput\r\n return [possibleFieldValue] as AnswerInput[];\r\n};\r\n\r\n/**\r\n * Checks Formik state looking for answers that were not submitted.\r\n *\r\n * @param {InitialValuesObject} values\r\n * @param {string[]} omitFieldKeys\r\n * @returns {AnswerInput[]}\r\n */\r\nconst checkUnsubmittedAnswers = (values: InitialValuesObject, omitFieldKeys?: string[]) => {\r\n values = omit(values, omitFieldKeys || []);\r\n\r\n const answersArray = Object.values(values).flatMap((value) =>\r\n getAnswersFromPossibleFieldValue(value)\r\n );\r\n\r\n return answersArray\r\n .filter((answer) => !answer.answerId && !!answer.value)\r\n .map((x) => omit(x, \"answerId\"));\r\n};\r\n\r\ntype DeleteNestedAnswersArgs = {\r\n clearedFields: InitialValuesObject;\r\n value: ConditionalValue;\r\n deleteAnswer?: (answer: AnswerInput) => Promise;\r\n};\r\n\r\nconst deleteNestedAnswers = ({ clearedFields, value, deleteAnswer }: DeleteNestedAnswersArgs) => {\r\n // Delete any nested answers\r\n for (const key in clearedFields) {\r\n const nestedAnswer = value[key] as Answer | Record;\r\n const fieldId = nestedAnswer.fieldId;\r\n\r\n if (fieldId && nestedAnswer && nestedAnswer.value) {\r\n deleteAnswer && deleteAnswer(nestedAnswer as Answer);\r\n } else {\r\n for (const addressKey in nestedAnswer) {\r\n const addressAswer = nestedAnswer as Record;\r\n const innerAnswer = addressAswer[addressKey] as Answer;\r\n\r\n if (innerAnswer && innerAnswer.value) {\r\n deleteAnswer && deleteAnswer(innerAnswer);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport {\r\n getAnswersFromPossibleFieldValue,\r\n checkUnsubmittedAnswers,\r\n deleteNestedAnswers,\r\n\r\n // Testing exports\r\n getAnswersFromInnerFields as _getAnswersFromInnerFields,\r\n getAnswersFromRepeatableValue as _getAnswersFromRepeatableValue,\r\n getAnswersFromConditionalValue as _getAnswersFromConditionalValue,\r\n getAnswersFromEquationValue as _getAnswersFromEquationValue,\r\n};\r\n","import dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\n\ndayjs.extend(customParseFormat);\n\ntype GetReadableDateArgs = {\n dateString: string;\n options?: Intl.DateTimeFormatOptions;\n locale?: string | string[];\n};\n\nconst getReadableDate = ({ dateString, options, locale }: GetReadableDateArgs): string => {\n try {\n const timezonePattern = /\\+\\d{2}:\\d{2}$|-\\d{2}:\\d{2}$/;\n\n if (!timezonePattern.test(dateString) && !dateString.endsWith(\"Z\")) {\n dateString += \"Z\";\n }\n const dateObject = new Date(dateString);\n\n return dateObject.toLocaleDateString(locale, options);\n } catch (e) {\n console.error(\"Unable to parse date with these options: \", { dateString, options, locale }, e);\n\n return \"\";\n }\n};\n\ntype FormatDateArgs = {\n date: Date;\n format: string;\n};\n\nconst formatDate = ({ date, format }: FormatDateArgs): string => {\n const dateObject = dayjs(date);\n\n return dateObject.isValid() ? dateObject.format(format) : \"\";\n};\n\ntype GetDateObjectArgs = {\n dateString: string | number | Date;\n format: string;\n};\n\nconst getDateObject = (args?: GetDateObjectArgs): Date => {\n try {\n const { dateString, format } = args || {\n dateString: undefined,\n format: undefined,\n };\n\n const dateObject = dayjs(dateString, format);\n\n if (dateObject.isValid()) {\n return dateObject.toDate();\n } else {\n throw new Error(\"Provided dateString and format are not valid\");\n }\n } catch (error) {\n console.error(\"Unable to parse time in this format: \", { args }, error);\n\n return new Date();\n }\n};\n\nconst getYears = (startYear = 1900, yearsInTheFuture = 5): string[] => {\n const years: string[] = [];\n const today = dayjs();\n const thisYear = today.year();\n\n for (let index = thisYear + yearsInTheFuture; index >= startYear; index--) {\n years.push(index.toString());\n }\n\n return years;\n};\n\nexport { formatDate, getDateObject, getReadableDate, getYears };\n\n","import { parse } from \"mathjs\";\nimport keyBy from \"lodash/keyBy\";\nimport groupBy from \"lodash/groupBy\";\n\nimport { AnswerInput, Field, Question } from \"@src/types\";\nimport { getEquationSectionId, getQuestionDataValue, isQuestionRequired } from \"./getters\";\nimport { EquationValue, InnerFields } from \"./formValuesTypes\";\n\nconst getEquationQuestionNameForExpression = (question: Question): string =>\n question.name\n ? question.name\n .toLowerCase()\n .replace(/^([^a-z])+/, \"\") // Remove all leading non-alphabetic characters\n .replace(/\\s/g, \"_\") // Replace all spaces with underscores\n .replace(/[\\W]/g, \"\") // Remove all remaining non-alphanumeric characters\n : \"\";\n\nconst getEquationIdAsNameForExpression = (value: string): string =>\n value\n ? value\n .toLowerCase()\n .replace(/^([^a-z])+/, \"\") // Remove all leading non-alphabetic characters\n .replace(/\\s/g, \"_\") // Replace all spaces with underscores\n .replace(/[\\W]/g, \"\") // Remove all remaining non-alphanumeric characters\n : \"\";\n\nconst getEquationInputQuestions = (field: Field): Question[] =>\n field.fields && field.fields.length > 0 ? field.fields[0].equationSections || [] : [];\n\nconst getEquationCalculatedQuestions = (field: Field): Question[] =>\n field.fields && field.fields.length > 1 ? field.fields[1].equationSections || [] : [];\n\nconst getEquationAggregateQuestions = (field: Field): Question[] =>\n field.fields && field.fields.length > 2 ? field.fields[2].equationSections || [] : [];\n\nconst getExpressionValues = (answers: AnswerInput[]): Record =>\n answers.reduce((acc, answer) => {\n if (answer && answer.questionId !== \"row\") {\n const name = getEquationIdAsNameForExpression(answer.questionId);\n\n acc[name] = acc[name] ? [...acc[name], answer.value || \"\"] : [answer.value || \"\"];\n }\n\n return acc;\n }, {} as Record);\n\ntype GetCalculatedValue = {\n values: Record;\n question: Question;\n};\n\nconst getCalculatedValue = ({ question, values }: GetCalculatedValue): string => {\n const expression = getQuestionDataValue(question);\n\n try {\n return `${parse(expression).evaluate(values)}`;\n } catch (e) {\n return \"\";\n }\n};\n\ntype GetInputAnswers = {\n inputQuestions: Question[];\n innerFields: InnerFields;\n rowId: string;\n};\n\ntype GetInputAnswersReturn = {\n inputAnswers: AnswerInput[];\n expressionValues: Record;\n};\n\nconst getInputAnswersAndExpressionValues = ({\n inputQuestions,\n innerFields,\n rowId,\n}: GetInputAnswers): GetInputAnswersReturn => {\n return inputQuestions.reduce(\n (acc, question) => {\n const expressionName = getEquationQuestionNameForExpression(question);\n const sectionId = getEquationSectionId(question);\n const answer = innerFields[sectionId] as AnswerInput;\n\n // if there's a default value set, assign it\n if (!answer.value && question.characterLimit) {\n answer.value = question.characterLimit.toString();\n }\n\n const newAnswer: AnswerInput = {\n ...answer,\n fieldId: rowId,\n };\n\n acc.inputAnswers.push(newAnswer);\n\n acc.expressionValues = {\n ...acc.expressionValues,\n [expressionName]: newAnswer.value || \"\",\n };\n\n return acc;\n },\n {\n inputAnswers: [],\n expressionValues: {},\n } as GetInputAnswersReturn\n );\n};\n\ntype GetCalculatedAnswersArgs = {\n calculatedQuestions: Question[];\n rowId: string;\n expressionValues: Record;\n};\n\ntype GetCalculatedAnswersInitialValues = {\n calculatedAnswers: AnswerInput[];\n calculatedExpressionValues: Record;\n};\n\nconst getCalculatedAnswers = ({\n calculatedQuestions,\n rowId,\n expressionValues,\n}: GetCalculatedAnswersArgs): AnswerInput[] => {\n const { calculatedAnswers } = calculatedQuestions.reduce(\n (acc, question) => {\n const expressionName = getEquationQuestionNameForExpression(question);\n const result = getCalculatedValue({\n question,\n values: acc.calculatedExpressionValues,\n });\n\n const newAnswer: AnswerInput = {\n fieldId: rowId,\n questionId: question.name || \"\",\n value: result,\n };\n\n acc.calculatedAnswers.push(newAnswer);\n\n acc.calculatedExpressionValues = {\n ...acc.calculatedExpressionValues,\n [expressionName]: result,\n };\n\n return acc;\n },\n {\n calculatedAnswers: [],\n calculatedExpressionValues: expressionValues,\n } as GetCalculatedAnswersInitialValues\n );\n\n return calculatedAnswers;\n};\n\ntype GetAggregateAnswers = {\n aggregateQuestions: Question[];\n fieldId: string;\n allAnswers: AnswerInput[];\n};\n\nconst getAggregateAnswers = ({\n aggregateQuestions,\n fieldId,\n allAnswers,\n}: GetAggregateAnswers): AnswerInput[] => {\n const expressionValues = getExpressionValues(allAnswers);\n\n const { aggregateAnswers } = aggregateQuestions.reduce(\n (acc, question) => {\n const expressionName = getEquationQuestionNameForExpression(question);\n const result = getCalculatedValue({\n question,\n values: acc.expressionValues,\n });\n\n const newAnswer: AnswerInput = {\n fieldId,\n questionId: question.name || \"\",\n value: result,\n };\n\n acc.aggregateAnswers.push(newAnswer);\n\n acc.expressionValues = {\n ...acc.expressionValues,\n [expressionName]: result,\n };\n\n return acc;\n },\n {\n aggregateAnswers: [],\n expressionValues,\n } as {\n aggregateAnswers: AnswerInput[];\n expressionValues: Record;\n }\n );\n\n return aggregateAnswers;\n};\n\ntype AnswersArrayToEquationValueArgs = {\n answers: AnswerInput[];\n fieldId?: string | null;\n aggregateQuestions: Question[];\n};\n\nconst answersArrayToEquationValue = ({\n answers,\n fieldId,\n aggregateQuestions,\n}: AnswersArrayToEquationValueArgs): EquationValue => {\n const initialObject: EquationValue = {\n rows: [],\n aggregates: {},\n allAnswers: [],\n isDirty: false,\n };\n\n const answersDictionary = groupBy(answers, \"fieldId\");\n\n const rowsAndAggregates = answersDictionary[fieldId || \"\"] || [];\n\n const { rows, aggregates, allAnswers } = rowsAndAggregates.reduce((acc, answer) => {\n if (answer.questionId === \"row\") {\n const rowPlaceholder = answer;\n const rowAnswers = answersDictionary[rowPlaceholder.answerId || \"\"] || [];\n\n acc.rows.push({\n ...rowPlaceholder,\n order: rowPlaceholder.order || 0,\n answers: keyBy(rowAnswers, \"questionId\"),\n });\n\n acc.allAnswers = [...acc.allAnswers, ...rowAnswers, rowPlaceholder];\n } else {\n acc.aggregates[answer.questionId] = answer;\n\n acc.allAnswers.push(answer);\n }\n\n return acc;\n }, initialObject);\n\n const aggregateAnswers = aggregateQuestions.reduce((acc, question) => {\n const questionId = question.id;\n const newAnswer: AnswerInput = {\n fieldId: fieldId || \"\",\n questionId,\n fileType: null,\n order: null,\n value: \"\",\n };\n\n acc[questionId] = aggregates[question.name || \"\"] || newAnswer;\n return acc;\n }, {} as Record);\n\n return {\n rows: rows.sort((a, b) => (a.order || 0) - (b.order || 0)),\n aggregates: aggregateAnswers,\n isDirty: false,\n allAnswers,\n };\n};\n\nconst getValueForEquationInputQuestion = (question: Question): string => {\n const questionType = question.valueType;\n const defaultValue = question.characterLimit;\n const min = question.minEntries ? question.minEntries : 0;\n\n if (questionType === \"text\") {\n return \"\";\n }\n\n if (questionType === \"integer\") {\n return `${defaultValue || min}`;\n }\n\n return defaultValue ? `${defaultValue.toFixed(2)}` : `${min.toFixed(2)}`;\n};\n\ntype GetEquationInnerFieldValuesArgs = {\n inputQuestions: Question[];\n calculatedQuestions: Question[];\n};\n\nconst getEquationInnerFieldInitialValues = ({\n inputQuestions,\n calculatedQuestions,\n}: GetEquationInnerFieldValuesArgs): InnerFields => {\n const tableRows = [...inputQuestions, ...calculatedQuestions];\n\n const tableRowAnswers = tableRows.reduce((innerFields, question) => {\n const sectionAnswer: AnswerInput = {\n // Equation answers are created with an empty fieldId because it needs\n // to reference the id of the \"row\" that will be created when the answer\n // is submitted.\n fieldId: \"\",\n questionId: question.name || \"\",\n value: getValueForEquationInputQuestion(question),\n };\n\n innerFields[question.id] = sectionAnswer;\n\n return innerFields;\n }, {} as InnerFields);\n\n return tableRowAnswers;\n};\n\nconst isEquationRequired = (field: Field): boolean => {\n const mainEquationQuestion =\n field.equationSections && field.equationSections.length ? field.equationSections[0] : null;\n\n const required = mainEquationQuestion ? isQuestionRequired(mainEquationQuestion) : false;\n\n return required;\n};\n\nexport {\n getEquationInputQuestions,\n getEquationCalculatedQuestions,\n getEquationAggregateQuestions,\n answersArrayToEquationValue,\n getEquationInnerFieldInitialValues,\n getExpressionValues,\n getInputAnswersAndExpressionValues,\n getCalculatedAnswers,\n getCalculatedValue,\n getAggregateAnswers,\n isEquationRequired,\n getEquationQuestionNameForExpression,\n getEquationIdAsNameForExpression,\n\n //testing exports\n getValueForEquationInputQuestion as _getValueForEquationInputQuestion,\n};\n","import { cloneDeep } from \"@apollo/client/utilities\";\n\nimport { AnswerInput, Field, FieldType } from \"@src/types\";\nimport { getValueOptions } from \"./getters\";\n\nconst isCollapsed = (field: Field, fields: Field[], collapsedHeaders: string[]): boolean => {\n\n const fieldsThatDontCollapse = [FieldType.Header, FieldType.Divider, FieldType.Section];\n\n if (field && field.type && !fieldsThatDontCollapse.includes(field.type)) {\n\n let relatedFields = cloneDeep(fields);\n\n relatedFields = relatedFields.slice(\n 0,\n relatedFields.findIndex((x) => x.id === field.id)\n );\n\n const relatedHeaderIndex = relatedFields\n .reverse()\n .findIndex((x) => x.type && fieldsThatDontCollapse.includes(x.type));\n\n if (relatedHeaderIndex < 0) {\n return false;\n }\n\n const relatedHeaderField = relatedFields[relatedHeaderIndex];\n\n if (relatedHeaderField.type !== FieldType.Header && relatedHeaderField.type !== FieldType.Section) {\n return false;\n }\n\n const headerFieldIndex = fields.findIndex((x) => x.id === relatedHeaderField.id);\n\n return isCollapsed(fields[headerFieldIndex], fields, collapsedHeaders);\n } else if (field?.id) {\n return collapsedHeaders.indexOf(field.id) >= 0;\n }\n\n return false;\n};\n\nconst isComplexField = (field: Field): boolean => {\n return (\n field &&\n (field.type === FieldType.Equations ||\n field.type === FieldType.Conditional ||\n field.type === FieldType.SelectConditional ||\n field.type === FieldType.MultiFieldConditional ||\n field.type === FieldType.RepeatableQuestion ||\n field.type === FieldType.Address ||\n field.type === FieldType.IntegratedData ||\n field.type === FieldType.Upload)\n );\n};\n\nconst isNoInputField = (field: Field): boolean => {\n return (\n field &&\n (field.type === FieldType.Header ||\n field.type === FieldType.Section ||\n field.type === FieldType.Divider ||\n field.type === FieldType.Descriptivetext)\n );\n};\n\nconst isSimpleField = (field: Field): boolean => {\n return field && !isComplexField(field) && !isNoInputField(field);\n};\n\nconst collectFieldAnswers = (field: Field, allAnswers: AnswerInput[]): AnswerInput[] => {\n let answers = allAnswers ? allAnswers.filter((x) => x !== null && x.fieldId === field.id) : [];\n\n if (field.type === FieldType.Equations) {\n if (allAnswers) {\n // row answers reference the row id not the field id\n const rowIds = answers.filter((x) => x.questionId === \"row\").map((y) => y.answerId);\n\n answers = answers.concat(allAnswers.filter((x) => rowIds.includes(x.fieldId)));\n }\n }\n\n if (field.fields && field.fields.length > 0) {\n // if the field contains fields we need those answers as well\n field.fields.map(\n (subField) => (answers = answers.concat(collectFieldAnswers(subField, allAnswers)))\n );\n }\n\n return answers;\n};\n\n/**\n * Get the approriate nested fields of a conditonal. For example,\n * if we have a YesNo condtional with required fields in both yes/no sections,\n * we can't add them all to be checked because the user can't answer them all.\n */\nconst getConditionalNestedFields = (field: Field, answers: AnswerInput[]): Field[] => {\n let fieldsToCheck: Field[] = [];\n\n if ((field.type === FieldType.MultiFieldConditional || field.type === FieldType.Conditional) && field.fields?.length === 2) {\n const answer = answers.find((x) => x.fieldId === field.id && x.questionId === field.question?.id);\n if (answer) {\n fieldsToCheck = fieldsToCheck.concat(answer.value === \"true\" ? field.fields[0].fields ?? []: field.fields[1].fields ?? [])\n }\n }\n\n if (field.type === FieldType.SelectConditional) {\n const answer = answers.find((x) => x.fieldId === field.id && x.questionId === field.question?.id);\n if (answer) {\n const selectedIndex = getValueOptions(field).findIndex((option) => option === answer.value);\n fieldsToCheck = fieldsToCheck.concat(selectedIndex >= 0 && field.fields && field.fields[selectedIndex] ? field.fields[selectedIndex].fields || [] : []);\n }\n }\n\n return fieldsToCheck;\n}\n\nconst isConditional = (field: Field): boolean => {\n return (\n field &&\n (field.type === FieldType.Conditional ||\n field.type === FieldType.SelectConditional ||\n field.type === FieldType.MultiFieldConditional)\n );\n}\n\nconst canHaveChildFields = (field: Field): boolean => {\n return (\n field &&\n (field.type === FieldType.Equations ||\n field.type === FieldType.Conditional ||\n field.type === FieldType.SelectConditional ||\n field.type === FieldType.MultiFieldConditional ||\n field.type === FieldType.RepeatableQuestion ||\n field.type === FieldType.Address ||\n field.type === FieldType.IntegratedData ||\n field.type === FieldType.FieldContainer)\n );\n}\n\n\nexport { isCollapsed, isComplexField, isNoInputField, isSimpleField, isConditional, collectFieldAnswers, canHaveChildFields, getConditionalNestedFields };\n","import { ModifiableSection } from \"@src/constants/editingPermission\";\nimport { DocumentVersion, Field, FieldType, FormInfoQuery } from \"@src/types\";\n\nconst hasAttendeeQuestions = (documentVersion: DocumentVersion | FormInfoQuery[\"Form\"]): boolean =>\n ((documentVersion?.attendeeQuestions || false) && documentVersion.attendeeQuestions.length > 0) ||\n ((documentVersion.template?.attendeeQuestions || false) && documentVersion.template.attendeeQuestions.length > 0);\n\nconst hasAttendeeIntegratedDataQuestions = (documentVersion: DocumentVersion | FormInfoQuery[\"Form\"]): boolean =>\n ((documentVersion?.attendeeQuestions || false) && documentVersion.attendeeQuestions.filter((x) => x.type === FieldType.IntegratedData).length > 0) ||\n ((documentVersion.template?.attendeeQuestions || false) && documentVersion.template.attendeeQuestions.filter((x) => x.type === FieldType.IntegratedData).length > 0);\n\nconst hasSigneeQuestions = (documentVersion: DocumentVersion | FormInfoQuery[\"Form\"]): boolean =>\n ((documentVersion?.signeeQuestions || false) && documentVersion.signeeQuestions.length > 0) ||\n ((documentVersion.template?.signeeQuestions || false) && documentVersion.template.signeeQuestions.length > 0);\n\nconst hasTickets = (documentVersion: DocumentVersion | FormInfoQuery[\"Form\"]): boolean =>\n ((documentVersion?.tickets || false) && documentVersion.tickets?.length > 0) ||\n ((documentVersion.template?.tickets || false) && documentVersion.template.tickets.length > 0 && documentVersion.template.ticketPermissions !== ModifiableSection);\n\nconst isGeneralSignup = (documentVersion: DocumentVersion | FormInfoQuery[\"Form\"]): boolean =>\n (documentVersion || false) && (documentVersion.isGeneralSignup);\n\nconst getIntegratedDataFields = (documentVersion: DocumentVersion | FormInfoQuery[\"Form\"]): Field[] =>\n hasAttendeeQuestions(documentVersion) ? documentVersion?.attendeeQuestions.filter((x) => x.type === FieldType.IntegratedData) : []\n\nexport {\n hasAttendeeQuestions,\n hasSigneeQuestions,\n hasTickets,\n isGeneralSignup,\n hasAttendeeIntegratedDataQuestions,\n getIntegratedDataFields\n}","import { Answer, AnswerInput, Field, FieldType, Maybe } from \"@src/types\";\nimport {\n answersArrayToEquationValue,\n getEquationAggregateQuestions,\n getEquationCalculatedQuestions,\n getEquationInnerFieldInitialValues,\n getEquationInputQuestions,\n} from \"./equations\";\nimport {\n ConditionalValue,\n EquationValue,\n InitialValuesObject,\n InnerFields,\n IntegratedDataFieldValue,\n RepeatableValue,\n} from \"./formValuesTypes\";\nimport { getFieldKey, getInnerFieldsFromConditional, getNextRowOrder } from \"./getters\";\n\ntype AnswerGetterArgs = {\n field: Field;\n order?: number;\n answers?: AnswerInput[];\n answersDictionary?: Record;\n integratedDataOnFileDictionary?: Record;\n};\n\ntype AnswerGetter = (args: AnswerGetterArgs) => ReturnType;\n\nconst getSimpleValue: AnswerGetter = ({ field, order, answersDictionary }) => {\n const answerkey = getAnswerKey({\n fieldId: field.id || \"\",\n questionId: field.question?.id || \"\",\n order: order || null,\n });\n\n const existingAnswer = answersDictionary && answersDictionary[answerkey];\n\n return existingAnswer\n ? { ...existingAnswer, value: existingAnswer.value || \"\" }\n : ({\n value: \"\",\n fileType: null,\n fieldId: field.id || \"\",\n questionId: field.question?.id || \"\",\n order,\n } as AnswerInput);\n};\n\nconst getAddressValue: AnswerGetter = ({\n field: addressField,\n order,\n answersDictionary,\n}) => {\n const fields = addressField.fields || [];\n\n const innerFields = fields.reduce((acc, innerField) => {\n const isHidden = innerField.question?.hidden;\n\n if (!isHidden) {\n const innerFieldKey = getFieldKey(innerField);\n\n // Address answers have the fieldId of the container Address field and questionId\n // of the inner field (Street Address, Postal Code, etc.)\n const answerKey = getAnswerKey({\n fieldId: addressField.id,\n questionId: innerField.question?.id,\n order,\n });\n\n const selectedAnswer = answersDictionary && answersDictionary[answerKey];\n\n acc[innerFieldKey] =\n selectedAnswer ||\n ({\n value: \"\",\n fileType: null,\n fieldId: addressField.id || \"\",\n questionId: innerField.question?.id || \"\",\n order,\n } as AnswerInput);\n }\n\n return acc;\n }, {} as InnerFields);\n\n return innerFields;\n};\n\nconst getConditionalValue: AnswerGetter = ({\n field,\n order,\n answersDictionary,\n}) => {\n const fields = getInnerFieldsFromConditional(field);\n\n const answer = getSimpleValue({\n field,\n order,\n answersDictionary,\n });\n\n const innerFields = getFormInitialValues({\n fields,\n order,\n answersDictionary,\n });\n\n return {\n answer,\n ...innerFields,\n };\n};\n\nconst getRepeatableValue: AnswerGetter = ({ field, answers: allAnswers }) => {\n const fields = field.fields || [];\n\n const fieldIds = fields.map((field) => field.id || \"\");\n\n const answers = allAnswers\n ? allAnswers.filter((answer) => fieldIds.includes(answer.fieldId))\n : [];\n\n const innerFields = getFormInitialValues({\n fields,\n order: getNextRowOrder(answers),\n answersDictionary: {},\n });\n\n return {\n answers,\n isDirty: false,\n ...innerFields,\n };\n};\n\nconst getEquationValue: AnswerGetter = ({ field, answers }) => {\n const aggregateQuestions = getEquationAggregateQuestions(field);\n\n const { rows, aggregates, allAnswers } = answersArrayToEquationValue({\n answers: answers || [],\n fieldId: field.id,\n aggregateQuestions,\n });\n\n return {\n rows,\n aggregates,\n allAnswers: allAnswers,\n isDirty: false,\n };\n};\n\nconst getEquationInnerFields = (field: Field): InnerFields => {\n const inputQuestions = getEquationInputQuestions(field);\n const calculatedQuestions = getEquationCalculatedQuestions(field);\n\n return getEquationInnerFieldInitialValues({\n inputQuestions,\n calculatedQuestions,\n });\n};\n\nconst getPhoneValue: AnswerGetter = ({ field, order, answersDictionary }) => {\n const answerkey = getAnswerKey({\n fieldId: field.id || \"\",\n questionId: field.question?.id || \"\",\n order: order || null,\n });\n\n const existingAnswer = answersDictionary && answersDictionary[answerkey];\n\n return existingAnswer\n ? { ...existingAnswer, value: existingAnswer.value || \"\" }\n : ({\n value: \"\",\n fileType: null,\n fieldId: field.id || \"\",\n questionId: field.question?.id || \"\",\n order,\n } as AnswerInput);\n};\n\nconst getCheckboxValue: AnswerGetter = ({ field, order, answersDictionary }) => {\n const answerkey = getAnswerKey({\n fieldId: field.id || \"\",\n questionId: field.question?.id || \"\",\n order: order || null,\n });\n\n const existingAnswer = answersDictionary && answersDictionary[answerkey];\n\n return existingAnswer\n ? { ...existingAnswer, value: existingAnswer.value || \"\" }\n : ({\n value: \"\",\n fileType: null,\n fieldId: field.id || \"\",\n questionId: field.question?.id || \"\",\n order,\n } as AnswerInput);\n};\n\nconst getIntegratedValue: AnswerGetter = ({\n field,\n order,\n answersDictionary,\n integratedDataOnFileDictionary,\n}) => {\n const key = field.question?.dataValue?.split(\":\")[1].toLowerCase() || \"\";\n const responseAnswer =\n answersDictionary &&\n answersDictionary[\n getAnswerKey({\n fieldId: field.fields?.[0].id,\n questionId: field.fields?.[0].question?.id,\n order: null,\n })\n ];\n const existingAnswer = integratedDataOnFileDictionary && integratedDataOnFileDictionary[key];\n\n const answer = existingAnswer\n ? {\n value: existingAnswer.value || \"\",\n fileType: null,\n fieldId: field.fields?.[0].id || \"\",\n questionId: field.fields?.[0].question?.id || \"\",\n order,\n }\n : ({\n value: \"\",\n fileType: null,\n fieldId: field.fields?.[0].id || \"\",\n questionId: field.fields?.[0].question?.id || \"\",\n order,\n } as AnswerInput);\n\n const innerFields = field.fields\n ? getFormInitialValues({\n fields: field.fields,\n order,\n answersDictionary,\n integratedDataOnFileDictionary,\n })\n : [];\n\n const fieldKey = field.fields ? getFieldKey(field.fields[0]) : \"\";\n\n if (isInitialValuesObject(innerFields)) {\n innerFields[fieldKey] = responseAnswer || answer;\n }\n\n return {\n answer,\n ...innerFields,\n };\n};\n\nfunction isInitialValuesObject(obj: unknown): obj is InitialValuesObject {\n return typeof obj === \"object\" && obj !== null && !Array.isArray(obj);\n}\n\nconst fieldAnswersRecord = {\n [FieldType.Address]: getAddressValue,\n [FieldType.MultiFieldConditional]: getConditionalValue,\n [FieldType.Conditional]: getConditionalValue,\n [FieldType.SelectConditional]: getConditionalValue,\n [FieldType.RepeatableQuestion]: getRepeatableValue,\n [FieldType.Multiselect]: getCheckboxValue,\n [FieldType.Selectmultiple]: getCheckboxValue,\n [FieldType.Date]: getSimpleValue,\n [FieldType.Time]: getSimpleValue,\n [FieldType.Yesno]: getSimpleValue,\n [FieldType.Upload]: getSimpleValue,\n [FieldType.Multiline]: getSimpleValue,\n [FieldType.Rating]: getSimpleValue,\n [FieldType.Select]: getSimpleValue,\n [FieldType.Dropdown]: getSimpleValue,\n [FieldType.Singleline]: getSimpleValue,\n [FieldType.PostalZip]: getSimpleValue,\n [FieldType.Equations]: getEquationValue,\n [FieldType.Phonenumber]: getPhoneValue,\n [FieldType.IntegratedData]: getIntegratedValue,\n};\n\ntype AnswerGetterKey = keyof typeof fieldAnswersRecord;\n\ntype GetAnswerKeyArgs = {\n fieldId?: string | null;\n questionId?: string | null;\n order?: number | null;\n};\n\nconst getAnswerKey = ({ fieldId, questionId, order }: GetAnswerKeyArgs) =>\n `${fieldId || \"\"}_${questionId || \"\"}_${order || \"\"}`;\n\nconst getAnswersDictionary = (answers: T[]) =>\n answers.reduce((acc, answer) => {\n const answerKey = getAnswerKey(answer);\n\n acc[answerKey] = answer;\n return acc;\n }, {} as Record);\n\nconst getIntegratedDataDictionary = (answers: AnswerInput[]) =>\n answers.reduce((acc, answer) => {\n const answerKey = answer.questionId;\n\n acc[answerKey] = answer;\n return acc;\n }, {} as Record);\n\ntype GetFormInitialValues = {\n fields: Field[];\n answers?: AnswerInput[];\n integratedDataOnFile?: Maybe;\n answersDictionary?: Record;\n integratedDataOnFileDictionary?: Record;\n order?: number;\n};\n\nconst getFormInitialValues = ({\n fields,\n answers,\n integratedDataOnFile,\n answersDictionary,\n integratedDataOnFileDictionary,\n order,\n}: GetFormInitialValues): InitialValuesObject => {\n const newDictionary = answersDictionary || getAnswersDictionary(answers || []);\n const integratedDataOnFileDict =\n integratedDataOnFileDictionary || getIntegratedDataDictionary(integratedDataOnFile || []);\n\n const reducer = (acc: InitialValuesObject, field: Field) => {\n const questionId = getFieldKey(field);\n\n const answerGetterFunction = fieldAnswersRecord[field.type as AnswerGetterKey];\n\n if (answerGetterFunction) {\n acc[questionId] = answerGetterFunction({\n field,\n order,\n answers,\n integratedDataOnFileDictionary: integratedDataOnFileDict,\n answersDictionary: newDictionary,\n });\n }\n\n return acc;\n };\n\n const initialValues = fields.reduce(reducer, {} as InitialValuesObject);\n\n return initialValues;\n};\n\nexport {\n getFormInitialValues,\n getEquationValue,\n getEquationInnerFields,\n getAnswersDictionary,\n getAnswerKey,\n};\n","import omit from \"lodash/omit\";\r\nimport snakeCase from \"lodash/snakeCase\";\r\n\r\nimport { ModifiableSection } from \"@src/constants/editingPermission\";\r\nimport { DEFAULT_PHONE_MASK } from \"@src/constants/validation\";\r\nimport {\r\n Answer,\r\n AnswerInput,\r\n Attachment,\r\n Attendee,\r\n Field,\r\n FieldType,\r\n FormInfoQuery,\r\n LinkAttachment,\r\n Order,\r\n Question,\r\n ResponseVersion,\r\n Ticket,\r\n} from \"@src/types\";\r\nimport { decodeHtmlCharCodes } from \"./htmlCharcodes\";\r\nimport { answerToAnswerInput, FormAttendee } from \"./typeConverters\";\r\nimport { getUnpaidOrderInfo } from \"./purchasedTickets\";\r\n\r\ntype GetBoolean = (form: FormInfoQuery[\"Form\"] | null | undefined) => boolean;\r\n\r\ntype GetFields = (form: FormInfoQuery[\"Form\"]) => Field[];\r\n\r\ntype GetAnswers = (form: FormInfoQuery[\"Form\"]) => Answer[];\r\n\r\ntype GetTickets = (form: FormInfoQuery[\"Form\"]) => Ticket[];\r\n\r\ntype GetAttachments = (form: FormInfoQuery[\"Form\"]) => Attachment[];\r\n\r\ntype GetLinkAttachments = (form: FormInfoQuery[\"Form\"]) => LinkAttachment[];\r\n\r\nconst getSigneeFields: GetFields = (form) =>\r\n form\r\n ? form.template &&\r\n form.template.signeeQuestions &&\r\n form.template.signeeFormPermissions !== ModifiableSection\r\n ? [...form.template.signeeQuestions, ...(form.signeeQuestions || [])]\r\n : form.signeeQuestions || []\r\n : [];\r\n\r\nconst getAttendeeFields: GetFields = (form) =>\r\n form\r\n ? form.template &&\r\n form.template.attendeeQuestions &&\r\n form.template.attendeeFormPermissions !== ModifiableSection\r\n ? [...form.template.attendeeQuestions, ...(form.attendeeQuestions || [])]\r\n : form.attendeeQuestions || []\r\n : [];\r\n\r\nconst getTickets: GetTickets = (form) =>\r\n form\r\n ? form.template &&\r\n form.template.ticketPermissions !== ModifiableSection &&\r\n form.template.tickets\r\n ? form.template.tickets.concat(form.tickets ?? [])\r\n : form.tickets ?? []\r\n : [];\r\n\r\nconst getAttachments: GetAttachments = (form) =>\r\n form\r\n ? form.template &&\r\n form.template.attachments &&\r\n form.template.attachmentsPermissions !== ModifiableSection\r\n ? [...form.template.attachments, ...(form.attachments || [])]\r\n : form.attachments || []\r\n : [];\r\n\r\nconst getLinkAttachments: GetLinkAttachments = (form) =>\r\n form\r\n ? form.template &&\r\n form.template.linkAttachments &&\r\n form.template.attachmentsPermissions !== ModifiableSection\r\n ? [...form.template.linkAttachments, ...(form.linkAttachments || [])]\r\n : form.linkAttachments || []\r\n : [];\r\n\r\nconst getPublicOrganizerFields: GetFields = (form) =>\r\n form?.template?.publicQuestions ?? form?.publicQuestions ?? [];\r\n\r\nconst getPublicOrganizerAnswers: GetAnswers = (form) => form?.publicOrganizerAnswers ?? [];\r\n\r\nconst hasSafePay: GetBoolean = (form) => form?.document?.organization?.hasSafePay ?? false;\r\n\r\n/**\r\n * Returns the label with HTML tags and formatting\r\n * @param field\r\n * @returns\r\n */\r\nconst getLabel = (field: Field): string => {\r\n switch (field.type) {\r\n case FieldType.Equations:\r\n return getEquationFielLabel(field);\r\n case FieldType.IntegratedData:\r\n return getIntegratedDataFieldLabel(field);\r\n default:\r\n return getSimpleFieldLabel(field);\r\n }\r\n};\r\n\r\n/**\r\n * Returns the equation label with HTML tags and formatting\r\n * @param field\r\n * @returns\r\n */\r\nconst getEquationFielLabel = (field: Field): string =>\r\n field.equationSections && field.equationSections.length\r\n ? field.equationSections[0].labelText || \"\"\r\n : \"\";\r\n\r\n/**\r\n * Returns the Integrated Date label with HTML tags and formatting\r\n * @param field\r\n * @returns\r\n */\r\nconst getIntegratedDataFieldLabel = (field: Field): string =>\r\n getSimpleFieldPlainLabel(field.fields ? field.fields[0] : field);\r\n\r\n/**\r\n * Returns the field's label with HTML tags and formatting\r\n * @param field\r\n * @returns\r\n */\r\nconst getSimpleFieldLabel = (field: Field): string =>\r\n field.question && field.question.labelText\r\n ? field.question.labelText\r\n : field.question?.plainLabel || \"\";\r\n\r\n/**\r\n * Returns the label without HTML tags and formatting\r\n * @param field\r\n * @returns\r\n */\r\nconst getPlainLabel = (field: Field): string => {\r\n switch (field.type) {\r\n case FieldType.Equations:\r\n return getEquationFieldName(field);\r\n case FieldType.IntegratedData:\r\n return getIntegratedDataFieldName(field);\r\n default:\r\n return getSimpleFieldPlainLabel(field);\r\n }\r\n};\r\n\r\n/**\r\n * Returns the Integrated Date label without HTML tags and formatting\r\n * @param field\r\n * @returns\r\n */\r\nconst getIntegratedDataFieldName = (field: Field): string =>\r\n getSimpleFieldPlainLabel(field.fields ? field.fields[0] : field);\r\n\r\n/**\r\n * Returns the field's label without HTML tags and formatting\r\n * @param field\r\n * @returns\r\n */\r\nconst getSimpleFieldPlainLabel = (field: Field): string =>\r\n field.question && field.question.plainLabel\r\n ? decodeHtmlCharCodes(field.question.plainLabel)\r\n : field.question?.labelText\r\n ? decodeHtmlCharCodes(field.question.labelText)\r\n : \"\";\r\n\r\n/**\r\n * Returns the equation label without HTML tags and formatting\r\n * @param field\r\n * @returns\r\n */\r\nconst getEquationFieldName = (field: Field): string =>\r\n field.equationSections && field.equationSections.length\r\n ? decodeHtmlCharCodes(field.equationSections[0].plainLabel || \"\")\r\n : \"\";\r\n\r\nconst getValueOptions = (field: Field): string[] =>\r\n field.question && field.question.valueOptions\r\n ? field.question.valueOptions.map(decodeHtmlCharCodes)\r\n : [];\r\n\r\nconst getPinnedValueOptions = (field: Field): string[] =>\r\n field.question && field.question.pinnedValueOptions\r\n ? field.question.pinnedValueOptions.map(decodeHtmlCharCodes)\r\n : [];\r\n\r\nconst getDateFormat = (field: Field): string =>\r\n field.question && field.question.format ? field.question.format : \"\";\r\n\r\nconst getPhoneFormat = (field: Field): string =>\r\n field.question && field.question.format\r\n ? field.question.format.replaceAll(/([0-9,a-z,A-Z])/g, \"#\")\r\n : DEFAULT_PHONE_MASK;\r\n\r\nconst getYesOrNoFields = (fields: Field[]): (Field[] | undefined)[] => {\r\n const [yesFieldContainer, noFieldContainer] = fields && fields.length === 2 ? fields : [];\r\n\r\n const yesFields =\r\n yesFieldContainer && yesFieldContainer.fields && yesFieldContainer.fields.length\r\n ? yesFieldContainer.fields\r\n : undefined;\r\n\r\n const noFields =\r\n noFieldContainer && noFieldContainer.fields && noFieldContainer.fields.length\r\n ? noFieldContainer.fields\r\n : undefined;\r\n\r\n return [yesFields, noFields];\r\n};\r\n\r\nconst getFieldId = (field: Field, prefix?: string | null): string => {\r\n return prefix ? `${prefix}_${field.id}` : field.id;\r\n};\r\n\r\n/**\r\n * Generates a key to access the values in Formik's state.\r\n *\r\n * @param {Field} field Field object\r\n * @param {string} containerQuestionId ID of the container questions, e.g. an Address or Repeatable Field\r\n * @returns {string} A string with the ID of the container question and the prefixed ID of the provided field's question.\r\n */\r\n\r\nconst getFieldKey = (field: Field, containerQuestionId?: string): string => {\r\n const questionId = getFieldId(field, field.type);\r\n\r\n return containerQuestionId ? `${containerQuestionId}.${questionId}` : questionId;\r\n};\r\n\r\nconst getEquationSectionId = (question: Question): string => {\r\n const questionName = question.id || \"\";\r\n\r\n return questionName;\r\n};\r\n\r\nconst getCharacterLimit = (field: Field): number =>\r\n field.question && field.question.characterLimit ? field.question.characterLimit : -1;\r\n\r\nconst getPlaceholderText = (field: Field): string =>\r\n field.question && field.question.placeHolderText\r\n ? decodeHtmlCharCodes(field.question.placeHolderText || \"\")\r\n : \"\";\r\n\r\nconst getHeaderText = (field: Field): string => {\r\n const header = field.fields && field.fields.length ? field.fields[0] : undefined;\r\n\r\n return header ? getPlaceholderText(header) : \"\";\r\n};\r\n\r\nconst getSubheaderText = (field: Field): string => {\r\n const subHeader = field.fields && field.fields.length === 2 ? field.fields[1] : undefined;\r\n\r\n return subHeader ? getPlaceholderText(subHeader) : \"\";\r\n};\r\n\r\nconst getQuestionSnakeCaseName = (question: Question): string =>\r\n question.name ? snakeCase(question.name) : \"\";\r\n\r\nconst getQuestionDataValue = (question: Question): string => question.dataValue || \"\";\r\n\r\nconst getFormAttendees = (\r\n selectedResponseVersion: ResponseVersion | null | undefined\r\n): FormAttendee[] => {\r\n const YES = \"yes\" as const;\r\n const NO = \"no\" as const;\r\n\r\n if (selectedResponseVersion) {\r\n const formAttendees = selectedResponseVersion?.attendees\r\n ? selectedResponseVersion.attendees.map((attendee) =>\r\n omit(\r\n {\r\n ...attendee,\r\n firstName: attendee.firstName || \"\",\r\n lastName: attendee.lastName || \"\",\r\n permitted:\r\n attendee.permitted === true ? YES : attendee.permitted === false ? NO : null,\r\n manualPermissionDate: attendee.manualPermissionDate ?? null,\r\n attachmentId: attendee.attachmentId ?? null,\r\n attachmentFileType: attendee.attachmentFileType ?? null,\r\n notes: attendee.notes ?? null,\r\n },\r\n [\"__typename\", \"attendeeAnswers\", \"tickets\", \"integratedDataOnFile\"]\r\n )\r\n )\r\n : [];\r\n\r\n return formAttendees;\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nexport type OrderInfo = {\r\n total: number;\r\n subtotal: number;\r\n cart: Attendee[];\r\n latestOrder?: Order;\r\n previousOrders: Order[];\r\n attendees?: Attendee[];\r\n};\r\n\r\nconst getOrderInfo = (\r\n selectedResponseVersion: ResponseVersion | null | undefined,\r\n isPayNow: boolean\r\n): OrderInfo | null => {\r\n if (selectedResponseVersion) {\r\n const order = !selectedResponseVersion.isCheckedOut\r\n ? selectedResponseVersion.orders.find((order) => !order.isCheckedOut)\r\n : null;\r\n\r\n return !order && isPayNow\r\n ? getUnpaidOrderInfo(selectedResponseVersion, [])\r\n : {\r\n total: selectedResponseVersion.total,\r\n subtotal: selectedResponseVersion.subTotal,\r\n cart: selectedResponseVersion.attendees ?? [],\r\n latestOrder: order as Order,\r\n previousOrders: selectedResponseVersion.previousOrders ?? [],\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getAttendeesList = (\r\n selectedResponseVersion: ResponseVersion | undefined | null\r\n): Attendee[] => {\r\n if (selectedResponseVersion) {\r\n return selectedResponseVersion.attendees || [];\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst getSigneeAnswers = (\r\n selectedResponseVersion: ResponseVersion | undefined | null\r\n): AnswerInput[] => {\r\n if (selectedResponseVersion) {\r\n const signeeAnswers = selectedResponseVersion.signeeAnswers || [];\r\n\r\n return signeeAnswers.map(answerToAnswerInput);\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nexport type AttendeeAnswersDictionary = Record;\r\n\r\nconst getAttendeeAnswers = (\r\n selectedResponseVersion: ResponseVersion | undefined | null\r\n): AttendeeAnswersDictionary => {\r\n if (selectedResponseVersion) {\r\n const attendeeAnswers: Record =\r\n selectedResponseVersion.attendees.reduce((acc, attendee) => {\r\n acc[attendee.responseAttendeeId] = attendee.attendeeAnswers.map(answerToAnswerInput);\r\n return acc;\r\n }, {} as AttendeeAnswersDictionary) || {};\r\n\r\n return attendeeAnswers;\r\n } else {\r\n return {};\r\n }\r\n};\r\n\r\n/**\r\n * Given an array of objects that have the \"order\" property, this function iterates\r\n * through them and returns the greatest order among them plus one.\r\n *\r\n * @param rows An array of objects that contain an \"order\" property.\r\n * @returns {Number} A number that represents the index of the next row.\r\n */\r\n\r\nconst getNextRowOrder = (rows: { order?: number | null }[]): number =>\r\n rows.length ? Math.max(...rows.map((row) => row.order || 0)) + 1 : 0;\r\n\r\ntype FindAnswerForQuestionsArgs = {\r\n answers: Answer[];\r\n questionId: string;\r\n fieldId: string;\r\n order?: number | null;\r\n};\r\n\r\nconst findAnswerForQuestion = ({\r\n answers,\r\n questionId,\r\n fieldId,\r\n order = null,\r\n}: FindAnswerForQuestionsArgs): Answer | undefined => {\r\n answers = answers ? answers : [];\r\n\r\n // check both the field id and question id b/c of old bad data where question ids are duplicated,\r\n // we can't just rely on the field id either. I mostly just cry quietly to myself at night.\r\n return order\r\n ? answers.find((x) => x.questionId === questionId && x.fieldId === fieldId && x.order === order)\r\n : answers.find((x) => x.questionId === questionId && x.fieldId === fieldId);\r\n};\r\n\r\nconst isQuestionRequired = (question?: Question): boolean => question?.isRequired || false;\r\n\r\nconst getInnerFieldsFromConditional = (field: Field): Field[] => {\r\n if (\r\n field.type === FieldType.Conditional ||\r\n field.type === FieldType.SelectConditional ||\r\n field.type === FieldType.MultiFieldConditional\r\n ) {\r\n const fieldContainers = field.fields || [];\r\n return fieldContainers.flatMap((container) => container.fields || []);\r\n } else {\r\n console.error(\"This field is not a conditional field.\");\r\n return [];\r\n }\r\n};\r\n\r\nexport {\r\n getSigneeFields,\r\n getAttendeeFields,\r\n getPlainLabel,\r\n getLabel,\r\n getValueOptions,\r\n getPinnedValueOptions,\r\n getDateFormat,\r\n getPhoneFormat,\r\n getYesOrNoFields,\r\n getSimpleFieldPlainLabel,\r\n getEquationFieldName,\r\n getFieldKey,\r\n getCharacterLimit,\r\n getFieldId,\r\n getPlaceholderText,\r\n getHeaderText,\r\n getSubheaderText,\r\n getQuestionSnakeCaseName,\r\n getQuestionDataValue,\r\n getEquationSectionId,\r\n getFormAttendees,\r\n getAttendeesList,\r\n getSigneeAnswers,\r\n getAttendeeAnswers,\r\n getNextRowOrder,\r\n getOrderInfo,\r\n getTickets,\r\n hasSafePay,\r\n getAttachments,\r\n getLinkAttachments,\r\n findAnswerForQuestion,\r\n isQuestionRequired,\r\n getInnerFieldsFromConditional,\r\n getPublicOrganizerAnswers,\r\n getPublicOrganizerFields,\r\n\r\n //Testing exports\r\n getIntegratedDataFieldName as _getIntegratedDataFieldName,\r\n};\r\n","import { i18next } from \"@src/translations\";\nimport common_en from \"@src/translations/en/common.json\";\n\nimport {\n Answer,\n AnswerInput,\n Attendee,\n FeeMethod,\n Order,\n PurchasedTicket,\n ResponseVersion,\n Ticket,\n} from \"@src/types\";\nimport AmexIcon from \"../assets/payment/americanexp.png\";\nimport ApIcon from \"../assets/payment/ap.png\";\nimport CashCheckIcon from \"../assets/payment/cashcheck.png\";\nimport GpIcon from \"../assets/payment/gp.png\";\nimport McIcon from \"../assets/payment/mastercard.png\";\nimport MpIcon from \"../assets/payment/mp.png\";\nimport VisaIcon from \"../assets/payment/visa.png\";\nimport { Token } from \"@stripe/stripe-js\";\nimport { OrderInfo } from \"./getters\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { checkTicketSellingDates } from \"./tickets\";\nimport { Normalize } from \"react-i18next\";\n\nexport type Image = {\n src: string;\n alt: string;\n};\n\nexport enum TicketMode {\n SHOPPING,\n PREVIEW,\n CART_PREVIEW,\n CHECKOUT,\n}\n\nexport enum PaymentMethodType {\n CREDITCARD,\n WALLET,\n MANUAL,\n}\n\nexport enum FeeMethodType {\n Unknown = 0,\n DomesticCreditCard = 1,\n InternationalCreditCard = 2,\n DomesticDebitCard = 3,\n InternationalDebitCard = 4,\n BankTransfer = 5,\n DomesticPrepaidCard = 6,\n InternationalPrepaidCard = 7,\n}\n\nexport type PaymentMethod = {\n label: string;\n type: PaymentMethodType;\n icons: Image[];\n isOnline: boolean;\n isSafePay: boolean;\n};\n\nconst t = (translationkey: Normalize, options?: Record) =>\n i18next.t(translationkey, options);\n\nexport const getPurchasedTicketKey = (purchasedTicket: PurchasedTicket): string =>\n `${purchasedTicket.ticketId || \"\"}_${JSON.stringify(purchasedTicket.answers) || \"\"}_${\n purchasedTicket.price || \"\"\n }`;\n\nexport const currencyFormatter: (\n locale: string,\n currencyCode?: string | null\n) => Intl.NumberFormat = (locale, currencyCode) =>\n new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: currencyCode || \"CAD\",\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n\nexport const currencyParseLocaleNumber = (stringNumber: string): number => {\n const dollarSign = \"$\";\n const thousandSeparator = Intl.NumberFormat(\"en-US\")\n .format(11111)\n .replace(/\\p{Number}/gu, \"\");\n const decimalSeparator = Intl.NumberFormat(\"en-US\")\n .format(1.1)\n .replace(/\\p{Number}/gu, \"\");\n\n return parseFloat(\n stringNumber\n .replace(new RegExp(\"\\\\\" + dollarSign, \"g\"), \"\")\n .replace(new RegExp(\"\\\\\" + thousandSeparator, \"g\"), \"\")\n .replace(new RegExp(\"\\\\\" + decimalSeparator), \".\")\n );\n};\n\nexport const getPaymentMethods = (manualPaymentText: string): PaymentMethod[] => {\n return [\n {\n label: t(\"pages.tickets.creditCard\"),\n type: PaymentMethodType.CREDITCARD,\n isOnline: true,\n isSafePay: false,\n icons: [\n { src: McIcon, alt: t(\"pages.tickets.masterCardMasterCardDebit\") },\n { src: VisaIcon, alt: t(\"pages.tickets.visaVisaDebit\") },\n { src: AmexIcon, alt: \"American Express\" },\n ],\n },\n {\n label: t(\"pages.tickets.walletPay\"),\n type: PaymentMethodType.WALLET,\n isOnline: true,\n isSafePay: true,\n icons: [\n { src: ApIcon, alt: \"Apple Pay\" },\n { src: GpIcon, alt: \"Google Pay\" },\n { src: MpIcon, alt: \"Microsoft Pay\" },\n ],\n },\n {\n label: manualPaymentText ?? t(\"pages.tickets.cashCheque\"),\n type: PaymentMethodType.MANUAL,\n isOnline: false,\n isSafePay: false,\n icons: [{ src: CashCheckIcon, alt: t(\"pages.tickets.manualPayment\") }],\n },\n ];\n};\n\nexport const hasPassAlongFees = (tickets: Ticket[]): boolean =>\n tickets?.some((ticket) => ticket.passAlongFees) ?? false;\n\nexport const getStripeTokenFeeMethod = (token: Token, country: string): FeeMethod | null => {\n if (token == null || token.type !== \"card\" || !token.card) {\n return null;\n }\n\n const credit = token.card?.funding === \"credit\";\n const debit = token.card?.funding === \"debit\";\n\n if (country.toUpperCase() === token.card?.country?.toUpperCase()) {\n return credit ? FeeMethod.DomesticCreditCard : debit ? FeeMethod.DomesticDebitCard : null;\n }\n\n return credit\n ? FeeMethod.InternationalCreditCard\n : debit\n ? FeeMethod.InternationalDebitCard\n : null;\n};\n\nexport const getHashCode = (text: string): number => {\n return text.split(\"\").reduce(function (a, b) {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n};\n\nexport const getAnswerHash = (answers: Answer[]): number =>\n getHashCode(\n answers\n .map((x) => x.value)\n .sort((a, b) => (a || \"\").localeCompare(b || \"\"))\n .join(\"\")\n );\n\nexport type GetQuantityInCartArgs = {\n cart?: Attendee[];\n attendeeId: string | null;\n ticketVersionId: string;\n};\n\nexport const getQuantityInCart = ({\n cart,\n attendeeId,\n ticketVersionId,\n}: GetQuantityInCartArgs): number => {\n if (!cart) return 0;\n\n return cart\n .filter((cartAttendee) => !attendeeId || cartAttendee.attendeeId === attendeeId)\n .map((cartAttendee) => cartAttendee.tickets)\n .reduce((a, b) => a.concat(b), [])\n .filter((purchasedTicket) => purchasedTicket.ticketVersionId === ticketVersionId)\n .map((purchasedTicket) => purchasedTicket.quantity)\n .reduce((a, b) => a + b, 0);\n};\n\nexport type ReserveTicketArgs = {\n orderId: string | null;\n ticketVersionId: string;\n responseAttendeeId: string;\n answers: AnswerInput[];\n openValueAmount?: number;\n quantity: number;\n};\n\nexport type CancelTicketArgs = {\n ticketVersionId: string;\n responseAttendeeId: string;\n purchasedTicketIds: string[];\n};\n\nexport const getUnpaidOrderInfo = (\n selectedResponseVersion: ResponseVersion,\n attendees: Attendee[]\n): OrderInfo | null => {\n if (selectedResponseVersion) {\n const unpaidOrder = selectedResponseVersion.isCheckedOut\n ? selectedResponseVersion.orders.find(\n (order) => order.isCheckedOut && (order.amountOutstanding || 0) > 0\n )\n : null;\n\n if (unpaidOrder) {\n const responseAttendees = cloneDeep(selectedResponseVersion.attendees);\n\n responseAttendees.map((attendee) => {\n attendee.tickets = unpaidOrder.purchasedTickets.filter(\n (pt) => pt.attendeeId === attendee.attendeeId\n );\n });\n\n return {\n total: unpaidOrder.grandTotal || 0,\n subtotal: unpaidOrder.subTotal || 0,\n cart: responseAttendees,\n latestOrder: unpaidOrder as Order,\n previousOrders: [],\n attendees: attendees,\n };\n }\n }\n\n return null;\n};\n\n// ticket minimums include amounts ordered on any order for this signee on this form\nexport const ticketMinimumsAreMet = (tickets: Ticket[], orders: Order[]): boolean => {\n let result = true;\n\n if (tickets && tickets.length > 0) {\n for (const ticket of tickets.filter((x) => x.minimumQuantity && x.minimumQuantity > 0)) {\n // Are the tickets buyable?\n if (\n !checkTicketSellingDates(ticket) ||\n (ticket.inventory.isLimited && ticket.inventory.remaining == 0)\n ) {\n continue;\n }\n\n const purchasedTickets = orders\n .flatMap((x) => x.purchasedTickets)\n .filter((x) => x.ticketId === ticket.ticketId);\n\n const quantityOrdered = purchasedTickets.reduce((acc, curr) => (acc += curr.quantity), 0);\n\n if (quantityOrdered < ticket.minimumQuantity!) {\n result = false;\n break;\n }\n }\n }\n\n return result;\n};\n\n// ticket maximums include amounts ordered on any order for this signee on this form\nexport const ticketMaximumsAreNotExceeded = (tickets: Ticket[], orders: Order[]): boolean => {\n let result = true;\n\n if (tickets && tickets.length > 0) {\n for (const ticket of tickets.filter((x) => x.maximumQuantity && x.maximumQuantity > 0)) {\n // Are the tickets buyable?\n if (\n !checkTicketSellingDates(ticket) ||\n (ticket.inventory.isLimited && ticket.inventory.remaining == 0)\n ) {\n continue;\n }\n\n const purchasedTickets = orders\n .flatMap((x) => x.purchasedTickets)\n .filter((x) => x.ticketId === ticket.ticketId);\n\n const quantityOrdered = purchasedTickets.reduce((acc, curr) => (acc += curr.quantity), 0);\n\n if (quantityOrdered > ticket.maximumQuantity!) {\n result = false;\n break;\n }\n }\n }\n\n return result;\n};\n","import { i18next } from \"@src/translations\";\n\nimport { Answer, AnswerInput, Field, FieldType } from \"@src/types\";\nimport { InnerFields } from \"./formValuesTypes\";\nimport { getPlainLabel } from \"./getters\";\n\ntype RepeatableInnerFields = Record>;\n\n/**\n * Gets the answers from the InnerFields of a RepeatableValue.\n * @param value InnerFields\n * @returns An array of Answer.\n */\n\nconst getInnerFieldAnswersFromRepeatableValue = (values: InnerFields): AnswerInput[] => {\n const innerFieldValues = values as RepeatableInnerFields;\n\n const innerFieldAnswers = Object.values(innerFieldValues);\n\n return innerFieldAnswers.flatMap((value) =>\n value.questionId && value.fieldId ? (value as Answer) : (Object.values(value) as Answer[])\n );\n};\n\nexport type LabelValuePair = {\n label: string;\n value: string;\n fileType: string;\n};\n\ntype GetLabelValuePairArgs = {\n field: Field;\n answers: AnswerInput[];\n overrideFieldId?: string | null;\n};\n\nconst getLabelValuePair = ({\n field,\n answers,\n overrideFieldId,\n}: GetLabelValuePairArgs): LabelValuePair => {\n const fieldId = overrideFieldId || field.id;\n\n const answer = answers.find(\n (answer) => answer.fieldId === fieldId && answer.questionId === field.question?.id\n );\n\n let value = answer?.value || i18next.t(\"labels.noAnswer\") || \"\";\n\n if (\n (field.type === FieldType.Multiselect || field.type === FieldType.Selectmultiple) &&\n answer?.value\n ) {\n try {\n const selectedOptions = JSON.parse(answer.value);\n value =\n selectedOptions.length > 0\n ? selectedOptions.join(\", \")\n : i18next.t(\"labels.noAnswer\") || \"\";\n } catch {\n value = i18next.t(\"labels.noAnswer\") || \"\";\n }\n }\n\n if (field.type === FieldType.Date && field.question?.format && answer?.value) {\n }\n\n let label = getPlainLabel(field);\n\n if (!label || label === \"\") label = i18next.t(\"labels.noLabel\");\n\n return {\n label,\n value,\n fileType: answer?.fileType ?? \"\",\n };\n};\n\nexport { getInnerFieldAnswersFromRepeatableValue, getLabelValuePair };\n","import { SigneeInfoValues } from \"@src/localVariables\"\nimport { AttendeeInput, ResponseSource, ResponseStatus, ResponseVersion } from \"@src/types\"\nimport { checkResponseVersionSource } from \"./typeConverters\"\nimport { i18next } from \"@src/translations\"\n\nconst signeeInfo = (responseVersion: ResponseVersion) : SigneeInfoValues => {\n\n return {\n firstName: responseVersion?.signeeFirstName ?? \"\",\n lastName: responseVersion?.signeeLastName ?? \"\",\n email: responseVersion?.signeeEmail ?? \"\",\n notes: responseVersion?.signeeNotes ?? \"\",\n attachmentId: responseVersion?.signeeAttachmentId ?? \"\",\n responseSource: responseVersion?.source ?? ResponseSource.Organic,\n tagId: responseVersion?.tagId ?? \"\",\n }\n}\n\nconst isProcess = (responseVersion: ResponseVersion | null): boolean =>\n checkResponseVersionSource(responseVersion, ResponseSource.Process);\n\nconst isManual = (responseVersion: ResponseVersion | null): boolean =>\n checkResponseVersionSource(responseVersion, ResponseSource.Manual);\n\nconst isStaff = (responseVersion: ResponseVersion | null): boolean =>\n (responseVersion || false)\n && responseVersion.isInternal\n || checkResponseVersionSource(responseVersion, ResponseSource.Internal);\n\nconst isRostered = (responseVersion: ResponseVersion | null): boolean =>\n (responseVersion || false) && responseVersion.isRostered;\n\nconst isRosteredOrStaffResponse = (responseVersion: ResponseVersion | null): boolean =>\n isRostered(responseVersion) || isStaff(responseVersion);\n\nconst isAuthenticatedResponse = (responseVersion: ResponseVersion | null): boolean =>\n isProcess(responseVersion) || isStaff(responseVersion);\n\nconst isSigned = (responseVersion: ResponseVersion | null): boolean =>\n (responseVersion || false) && responseVersion.isSigned;\n\nconst signeeValuesAreUpdated = (responseVersion: ResponseVersion, signeeValues: SigneeInfoValues): boolean => {\n\n const currentSigneeValues = signeeInfo(responseVersion);\n\n return currentSigneeValues.email !== signeeValues.email\n || currentSigneeValues.firstName !== signeeValues.firstName\n || currentSigneeValues.lastName !== signeeValues.lastName\n || currentSigneeValues.attachmentId !== signeeValues.attachmentId\n || currentSigneeValues.notes !== signeeValues.notes;\n}\n\nconst tagValueIsUpdated = (responseVersion: ResponseVersion, signeeValues: SigneeInfoValues): boolean => {\n\n const currentSigneeValues = signeeInfo(responseVersion);\n\n return currentSigneeValues.tagId !== signeeValues.tagId;\n}\n\nconst attendeesAreUpdated = (responseVersion: ResponseVersion, attendees: AttendeeInput[]): boolean => {\n\n if (responseVersion.attendees?.length !== attendees?.length)\n return true;\n\n let isChanged = false;\n\n responseVersion.attendees.map((currentAttendee) => {\n\n const editedAttendee = attendees.find((x) => x.responseAttendeeId === currentAttendee.responseAttendeeId);\n\n if (!editedAttendee\n || editedAttendee.firstName !== currentAttendee.firstName\n || editedAttendee.lastName !== currentAttendee.lastName\n || editedAttendee.attachmentId !== currentAttendee.attachmentId\n || editedAttendee.manualPermissionDate !== currentAttendee.manualPermissionDate\n || editedAttendee.notes !== currentAttendee.notes\n || editedAttendee.permitted !== currentAttendee.permitted) {\n isChanged = true;\n return;\n }\n\n })\n\n return isChanged;\n}\n\nexport type StartNewResponse = {\n disabled: boolean;\n disabledMessage: string;\n };\n\n/**\n * Get the disabled status of the \"Start new response\" button, and a message for why it is disabled if so.\n * Currently there is only 3 reasons to disable the start new response button:\n * 1. The loaded response is rostered.\n * 2. The loaded response is from a process.\n * 3. The loaded response is a staff response, and there are other staff responses that are not complete.\n * @param responseVersion The currently loaded response. Only set if form is loaded via a direct response link.\n * @param responseVersions Any other response versions available besides the currently loaded response.\n */\nconst getStartNewResponseStatus = (responseVersion?: ResponseVersion, responseVersions?: ResponseVersion[]): StartNewResponse => {\n\n const result: StartNewResponse = {disabled: false, disabledMessage: \"\"};\n\n if (!responseVersions) {\n responseVersions = [];\n }\n\n if (responseVersion) {\n if (isRostered(responseVersion)) {\n result.disabled = true;\n result.disabledMessage = i18next.t(\"pages.selectResponse.startNewResponse.RosteredDisabled\");\n } else if (isProcess(responseVersion)) {\n result.disabled = true;\n result.disabledMessage = i18next.t(\"pages.selectResponse.startNewResponse.ProcessDisabled\");\n } else if (isStaff(responseVersion) && \n !responseVersions.every(\n (x) =>\n x.status === ResponseStatus.Rejected ||\n x.status === ResponseStatus.Responded ||\n x.status === ResponseStatus.PendingApproval ||\n x.status === ResponseStatus.Cancelled\n )\n ) {\n result.disabled = true;\n result.disabledMessage = i18next.t(\"pages.selectResponse.startNewResponse.StaffDisabled\");\n }\n }\n\n return result;\n };\n\nexport {\n signeeInfo,\n isProcess,\n isManual,\n isStaff,\n isRostered,\n isSigned,\n isRosteredOrStaffResponse,\n signeeValuesAreUpdated,\n tagValueIsUpdated,\n attendeesAreUpdated,\n isAuthenticatedResponse,\n getStartNewResponseStatus\n}","import { useEffect } from \"react\";\n\nconst scrollToTop = (): void => {\n window.scrollTo({ top: 0 });\n};\n\nconst useScrollToTop = (): void => {\n useEffect(() => {\n scrollToTop();\n }, []);\n};\n\nexport { useScrollToTop, scrollToTop };\n","import { AnswerInput, Ticket } from \"@src/types\";\r\nimport { PossibleFieldValue } from \"./formValuesTypes\";\r\nimport { getAnswersFromPossibleFieldValue } from \"./answers\";\r\n\r\nconst getTicketAnswers = (possibleFieldValues: PossibleFieldValue[]): AnswerInput[] =>\r\n possibleFieldValues\r\n .flatMap((value) => getAnswersFromPossibleFieldValue(value))\r\n .filter((x) => x !== undefined);\r\n\r\nconst checkTicketSellingDates = (ticket: Ticket) => {\r\n let canBuyTicket = true;\r\n\r\n if (ticket.startSellingDate) {\r\n canBuyTicket = new Date(ticket.startSellingDate) <= new Date();\r\n }\r\n\r\n if (ticket.endSellingDate && canBuyTicket) {\r\n canBuyTicket = new Date(ticket.endSellingDate) >= new Date();\r\n }\r\n\r\n return canBuyTicket;\r\n};\r\n\r\nexport { getTicketAnswers, checkTicketSellingDates };\r\n","export enum ResponseStep {\n SigneeForm = 0,\n AttendeeForm = 1,\n Tickets = 2,\n}","import isEmpty from \"lodash/isEmpty\";\r\nimport * as Yup from \"yup\";\r\nimport { ObjectShape } from \"yup/lib/object\";\r\nimport { useTranslation, TFunction, Normalize } from \"react-i18next\";\r\n\r\nimport {\r\n Answer,\r\n AnswerInput,\r\n Attendee,\r\n Field,\r\n FieldType,\r\n Order,\r\n Question,\r\n Ticket,\r\n} from \"@src/types\";\r\nimport { phoneDefaultFormat } from \"./phoneUtilities\";\r\nimport { OrderInfo, getFieldKey, isQuestionRequired } from \"./getters\";\r\nimport { isEquationRequired } from \"./equations\";\r\nimport { ResponseStep } from \"@src/constants/responseSteps\";\r\nimport { useUrlParams } from \"@src/customHooks\";\r\nimport { AttendeeFormRoute, SigneeFormRoute } from \"@src/Routes\";\r\nimport { ticketMaximumsAreNotExceeded, ticketMinimumsAreMet } from \"./purchasedTickets\";\r\nimport {\r\n canHaveChildFields,\r\n getConditionalNestedFields,\r\n isConditional,\r\n isNoInputField,\r\n} from \"./field\";\r\nimport common_en from \"@src/translations/en/common.json\";\r\n\r\ntype ValidationSchema = Yup.ObjectSchema;\r\nexport type TranslationKey = Normalize;\r\n\r\nconst parseMultiselectJSON = (value: string) => {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return null;\r\n }\r\n};\r\n\r\nconst validateValueFormat = (field: Field, value?: string | null) => {\r\n const question = field.question;\r\n\r\n if (question) {\r\n const phoneFormat = question.format ?? phoneDefaultFormat;\r\n const valueNumbers = value?.match(/[A-Za-z\\d]/g);\r\n const questionNumbers = phoneFormat.match(/[A-Za-z\\d]/g);\r\n\r\n return !!(\r\n (!question.isRequired && isEmpty(value)) ||\r\n (!isEmpty(value) &&\r\n valueNumbers &&\r\n questionNumbers &&\r\n valueNumbers.length === questionNumbers.length)\r\n );\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nconst validateValues = (field: Field, question: Question, values: string[]) =>\r\n !question.isRequired ||\r\n (question.isRequired &&\r\n values &&\r\n values.length > 0 &&\r\n field.type !== FieldType.Header &&\r\n field.type !== FieldType.Divider &&\r\n field.type !== FieldType.Section);\r\n\r\ntype ValidateSingleFieldArgs = {\r\n question?: Question | null;\r\n t: TFunction;\r\n};\r\n\r\nconst validateString = ({ question, t }: ValidateSingleFieldArgs): ValidationSchema => {\r\n const errorMessage = t(\"validation.required\");\r\n\r\n return Yup.object().shape({\r\n value:\r\n question && !question.hidden && isQuestionRequired(question)\r\n ? Yup.string().trim().required(errorMessage)\r\n : Yup.string().nullable(),\r\n });\r\n};\r\n\r\nconst getSchemaForEquationQuestion = ({\r\n question,\r\n t,\r\n}: ValidateSingleFieldArgs): ValidationSchema => {\r\n const shouldValidate = question && !question.hidden;\r\n const isRequired = shouldValidate ? isQuestionRequired(question) : false;\r\n\r\n const min = question && question.minEntries ? question.minEntries : 0;\r\n const max = question && question.maxEntries ? question.maxEntries : -1;\r\n\r\n const minErrorMessage = t(\"validation.minValue\", { min });\r\n const maxErrorMessage = t(\"validation.maxValue\", { max });\r\n const requiredErrorMessage = t(\"validation.required\");\r\n\r\n if (question?.valueType === \"text\") {\r\n return validateString({ question, t });\r\n }\r\n\r\n const minSchema = Yup.number().min(min, minErrorMessage);\r\n\r\n const maxSchema = max > -1 ? minSchema.max(max, maxErrorMessage) : minSchema;\r\n\r\n const finalSchema = isRequired ? maxSchema.required(requiredErrorMessage) : maxSchema;\r\n\r\n return Yup.object().shape({\r\n value: shouldValidate ? finalSchema : Yup.number(),\r\n });\r\n};\r\n\r\ntype ValidateRepeatableValues = {\r\n repeatableAnswers?: Answer[];\r\n question?: Question | null;\r\n};\r\n\r\nconst validateRepeatableMinEntries = ({\r\n repeatableAnswers,\r\n question,\r\n}: ValidateRepeatableValues): boolean => {\r\n if (question && !question.hidden) {\r\n const order = repeatableAnswers ? repeatableAnswers.flatMap((x) => x.order || 0) : [];\r\n const numberOfEntries = new Set(order).size;\r\n\r\n const isValid = !question.minEntries || numberOfEntries >= question.minEntries;\r\n\r\n return isValid;\r\n } else {\r\n return true;\r\n }\r\n};\r\n\r\nconst validateRepeatableMaxEntries = ({\r\n repeatableAnswers,\r\n question,\r\n}: ValidateRepeatableValues): boolean => {\r\n if (question && !question.hidden) {\r\n const order = repeatableAnswers ? repeatableAnswers.flatMap((x) => x.order || 0) : [];\r\n const numberOfEntries = new Set(order).size;\r\n\r\n const isValid =\r\n !question.maxEntries || question.maxEntries < 1 || numberOfEntries <= question.maxEntries;\r\n\r\n return isValid;\r\n } else {\r\n return true;\r\n }\r\n};\r\n\r\nconst validateCheckbox = (field: Field, checkboxValue?: string | null) => {\r\n let value: string[] = [];\r\n const question = field.question;\r\n\r\n if (question && value) {\r\n if (checkboxValue) {\r\n value = parseMultiselectJSON(checkboxValue || \"\") as string[];\r\n\r\n // if the answer came straight from SIS it will be a string and would not have parsed\r\n if (value === null) {\r\n value = [checkboxValue || \"\"];\r\n }\r\n }\r\n\r\n return validateValues(field, question, value.length > 0 ? value : []);\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nconst validateAddressField = (field: Field) => {\r\n const fieldKey = getFieldKey(field);\r\n\r\n return Yup.object().shape({\r\n [fieldKey]: Yup.object(),\r\n });\r\n};\r\n\r\nconst validateTextField = (field: Field, t: TFunction) => {\r\n const fieldKey = getFieldKey(field);\r\n\r\n return Yup.object().shape({\r\n [fieldKey]: validateString({ question: field.question, t }),\r\n });\r\n};\r\n\r\nconst validateRepeatableField = (field: Field, t: TFunction) => {\r\n const fieldKey = getFieldKey(field);\r\n\r\n const minEntriesMessage = t(\"validation.minEntries\", {\r\n length: field.question?.minEntries,\r\n });\r\n\r\n const maxEntriesMessage = t(\"validation.maxEntries\", {\r\n length: field.question?.maxEntries,\r\n });\r\n\r\n const shouldNotContainValuesMessage = t(\"validation.shouldNotContainValues\");\r\n\r\n const newSchema = Yup.object().shape({\r\n [fieldKey]: Yup.object().shape({\r\n answers: Yup.array()\r\n .test(\"TestMinEntries\", minEntriesMessage, (repeatableAnswers) =>\r\n validateRepeatableMinEntries({ repeatableAnswers, question: field.question })\r\n )\r\n .test(\"TestMaxEntries\", maxEntriesMessage, (repeatableAnswers) =>\r\n validateRepeatableMaxEntries({ repeatableAnswers, question: field.question })\r\n ),\r\n isDirty: Yup.boolean().test(\r\n \"ShouldNotContainValues\",\r\n shouldNotContainValuesMessage,\r\n (isDirty) => !isDirty\r\n ),\r\n }),\r\n });\r\n\r\n return newSchema;\r\n};\r\n\r\nconst validateEquationField = (field: Field, t: TFunction) => {\r\n const fieldKey = getFieldKey(field);\r\n const isRequired = isEquationRequired(field);\r\n\r\n const minEntriesErrorMessage = t(\"validation.minEntries\", { length: 1 });\r\n\r\n const shouldNotContainValuesMessage = t(\"validation.shouldNotContainValues\");\r\n\r\n const newSchema = Yup.object().shape({\r\n [fieldKey]: Yup.object().shape({\r\n rows: isRequired ? Yup.array().min(1, minEntriesErrorMessage) : Yup.array(),\r\n isDirty: Yup.boolean().test(\r\n \"ShouldNotContainValues\",\r\n shouldNotContainValuesMessage,\r\n (isDirty) => !isDirty\r\n ),\r\n }),\r\n });\r\n\r\n return newSchema;\r\n};\r\n\r\nconst validateYesNoConditionalField = (field: Field, t: TFunction) => {\r\n const fieldKey = getFieldKey(field);\r\n\r\n const conditionalSchema = Yup.object().shape({\r\n [fieldKey]: Yup.object().shape({\r\n answer: validateString({ question: field.question, t }),\r\n }),\r\n });\r\n\r\n return conditionalSchema;\r\n};\r\n\r\nconst validatePhoneField = (field: Field, t: TFunction) => {\r\n const fieldKey = getFieldKey(field);\r\n\r\n const errorMessage = t(\"validation.required\");\r\n\r\n const phoneSchema = Yup.object().shape({\r\n [fieldKey]: validateString({ question: field.question, t }).test(\r\n \"TestValueIsDifferentThanMask\",\r\n errorMessage,\r\n (value) => validateValueFormat(field, value.value)\r\n ),\r\n });\r\n\r\n return phoneSchema;\r\n};\r\n\r\nconst validateCheckboxField = (field: Field, t: TFunction) => {\r\n const fieldKey = getFieldKey(field);\r\n\r\n const errorMessage = t(\"validation.required\");\r\n\r\n const checkboxSchema = Yup.object().shape({\r\n [fieldKey]: validateString({ question: field.question, t }).test(\r\n \"TestCheckBox\",\r\n errorMessage,\r\n (value) => validateCheckbox(field, value.value)\r\n ),\r\n });\r\n\r\n return checkboxSchema;\r\n};\r\n\r\ntype GetValidationForSingleField = {\r\n field: Field;\r\n t: TFunction;\r\n};\r\n\r\nconst getSchemaforSingleField = ({ field, t }: GetValidationForSingleField): ValidationSchema => {\r\n switch (field.type) {\r\n case FieldType.Address:\r\n return validateAddressField(field);\r\n\r\n case FieldType.RepeatableQuestion:\r\n return validateRepeatableField(field, t);\r\n\r\n case FieldType.Phonenumber:\r\n return validatePhoneField(field, t);\r\n\r\n case FieldType.Multiselect:\r\n case FieldType.Selectmultiple:\r\n return validateCheckboxField(field, t);\r\n\r\n case FieldType.MultiFieldConditional:\r\n case FieldType.SelectConditional:\r\n case FieldType.Conditional:\r\n return validateYesNoConditionalField(field, t);\r\n\r\n case FieldType.Equations:\r\n return validateEquationField(field, t);\r\n\r\n default:\r\n return validateTextField(field, t);\r\n }\r\n};\r\n\r\nconst useFieldValidation = (\r\n field: Field\r\n): ((fieldValue: Record) => string | void) => {\r\n const { t } = useTranslation();\r\n\r\n return (fieldValue) => {\r\n const fieldKey = getFieldKey(field);\r\n const schema = getSchemaforSingleField({ field, t });\r\n\r\n const formattedValue = {\r\n [fieldKey]: fieldValue,\r\n };\r\n\r\n try {\r\n schema.validateSync(formattedValue);\r\n return;\r\n } catch (err) {\r\n const error = err as Yup.ValidationError;\r\n return error.message;\r\n }\r\n };\r\n};\r\n\r\nexport type FormError = {\r\n message: string;\r\n step: ResponseStep;\r\n route: string;\r\n};\r\n\r\nconst useValidateAnswers = (\r\n requiresPermission: boolean,\r\n mustSelectAtLeastOneTicket: boolean,\r\n isGeneralSignup: boolean,\r\n cartOrder?: OrderInfo | null,\r\n signeeFields?: Field[],\r\n signeeAnswers?: AnswerInput[],\r\n attendeeFields?: Field[],\r\n attendees?: Attendee[],\r\n tickets?: Ticket[],\r\n orders?: Order[]\r\n): FormError[] => {\r\n const { t } = useTranslation();\r\n const { baseUrl } = useUrlParams();\r\n\r\n const formErrors: FormError[] = [];\r\n\r\n if (signeeFields && signeeAnswers) {\r\n // Validating Signee\r\n const signeeErrorFields = checkAnswers(signeeFields, signeeAnswers, t);\r\n\r\n let message = \"\";\r\n\r\n if (signeeErrorFields.length > 1) {\r\n message = `${\r\n isGeneralSignup\r\n ? t(\"validation.questionsSectionErrorPlural\", { length: signeeErrorFields.length })\r\n : t(\"validation.signeeFormErrorPlural\", { length: signeeErrorFields.length })\r\n } `;\r\n } else if (signeeErrorFields.length > 0) {\r\n message = `${\r\n isGeneralSignup\r\n ? t(\"validation.questionsSectionErrorSingular\")\r\n : t(\"validation.signeeFormErrorSingular\")\r\n }`;\r\n }\r\n\r\n if (signeeErrorFields.length > 0) {\r\n formErrors.push({\r\n message,\r\n step: ResponseStep.SigneeForm,\r\n route: `${baseUrl}/${SigneeFormRoute}`,\r\n });\r\n }\r\n }\r\n\r\n if (attendeeFields && attendees) {\r\n // Validating Attendees\r\n attendees.forEach((attendee, index) => {\r\n if (attendee.permitted || !requiresPermission) {\r\n const attendeeErrorFields = checkAnswers(attendeeFields, attendee.attendeeAnswers, t);\r\n\r\n if (attendeeErrorFields.length > 0) {\r\n formErrors.push({\r\n message:\r\n attendeeErrorFields.length > 1\r\n ? t(\"messages.attendeeHasErrorsPlural\", {\r\n firstName: attendee.firstName,\r\n lastName: attendee.lastName,\r\n length: attendeeErrorFields.length,\r\n })\r\n : t(\"messages.attendeeHasErrorSingular\", {\r\n firstName: attendee.firstName,\r\n lastName: attendee.lastName,\r\n }),\r\n step: ResponseStep.AttendeeForm,\r\n route: `${baseUrl}/${AttendeeFormRoute}/${index}`,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (tickets) {\r\n if (\r\n mustSelectAtLeastOneTicket &&\r\n (!cartOrder || cartOrder.cart.some((attendee) => attendee?.tickets?.length === 0))\r\n ) {\r\n formErrors.push({\r\n message: t(\"validation.noTicketsWhenRequired\"),\r\n step: ResponseStep.Tickets,\r\n route: `${baseUrl}/${AttendeeFormRoute}/0`,\r\n });\r\n }\r\n\r\n const ticketMinimumsAreValid = ticketMinimumsAreMet(tickets ?? [], orders ?? []);\r\n const ticketMaximumsAreValid = ticketMaximumsAreNotExceeded(tickets ?? [], orders ?? []);\r\n\r\n if (!ticketMinimumsAreValid)\r\n formErrors.push({\r\n message: t(\"validation.ticketMinimumsAreNotMet\"),\r\n step: ResponseStep.Tickets,\r\n route: `${baseUrl}/${AttendeeFormRoute}/0`,\r\n });\r\n\r\n if (!ticketMaximumsAreValid)\r\n formErrors.push({\r\n message: t(\"validation.ticketMaximumsAreExceeded\"),\r\n step: ResponseStep.Tickets,\r\n route: `${baseUrl}/${AttendeeFormRoute}/0`,\r\n });\r\n }\r\n\r\n return formErrors;\r\n};\r\n\r\nconst checkAnswers = (fields: Field[], answers: AnswerInput[], t: TFunction): Field[] => {\r\n const failedFields: Field[] = [];\r\n let fieldsToCheck: Field[] = [];\r\n\r\n if (fields && answers) {\r\n fields\r\n .filter((x) => !isNoInputField(x))\r\n .forEach((field) => {\r\n fieldsToCheck.push(field);\r\n\r\n // Get the relevant nested fields of a conditional\r\n if (isConditional(field)) {\r\n fieldsToCheck = fieldsToCheck.concat(getConditionalNestedFields(field, answers));\r\n } else if (canHaveChildFields(field) && field.fields) {\r\n if (\r\n field.type !== FieldType.RepeatableQuestion ||\r\n (field.type === FieldType.RepeatableQuestion && (field.question?.minEntries ?? -1) > 0)\r\n ) {\r\n fieldsToCheck = fieldsToCheck.concat(field.fields);\r\n }\r\n }\r\n });\r\n\r\n fieldsToCheck.forEach(async (field) => {\r\n const answer = answers.find(\r\n (x) => x.fieldId === field.id || x.questionId === field.question?.id\r\n );\r\n const fieldSchema = getSchemaforSingleField({ field, t });\r\n const fieldKey = getFieldKey(field);\r\n\r\n let fieldAnswer = {};\r\n\r\n switch (field.type) {\r\n case FieldType.SelectConditional:\r\n case FieldType.MultiFieldConditional:\r\n case FieldType.Conditional:\r\n fieldAnswer = {\r\n [fieldKey]: { answer: answer },\r\n };\r\n break;\r\n\r\n case FieldType.RepeatableQuestion:\r\n const fieldIds = field.fields?.map((x) => x.id) ?? [];\r\n const repeatableAnswers = answers.filter((x) => fieldIds.indexOf(x.fieldId) > -1);\r\n\r\n fieldAnswer = {\r\n [fieldKey]: { answers: repeatableAnswers },\r\n };\r\n break;\r\n\r\n case FieldType.Equations:\r\n const equationAnswer = answers.find(\r\n (x) => x.fieldId === field.id && x.questionId === \"row\"\r\n );\r\n fieldAnswer = {\r\n [fieldKey]: { rows: equationAnswer ? [equationAnswer] : [] },\r\n };\r\n break;\r\n\r\n default:\r\n fieldAnswer = {\r\n [fieldKey]: answer,\r\n };\r\n break;\r\n }\r\n\r\n try {\r\n await fieldSchema.validateSync(fieldAnswer);\r\n } catch (error) {\r\n if (error instanceof Yup.ValidationError) {\r\n failedFields.push(field);\r\n }\r\n }\r\n });\r\n }\r\n\r\n return failedFields;\r\n};\r\n\r\ntype Errors = Record>>;\r\ntype ErrorList = { key: string; message: string };\r\n\r\nconst getErrorListFromErrorObjects = (errors: Errors, parentKey?: string): ErrorList[] =>\r\n Object.entries(errors)\r\n .map(([key, message]) => {\r\n if (typeof message === \"string\") {\r\n const newKey = parentKey ? `${parentKey}.${key}` : key;\r\n return { key: newKey, message };\r\n } else {\r\n return getErrorListFromErrorObjects(message, key);\r\n }\r\n })\r\n .flat();\r\n\r\nexport {\r\n useFieldValidation,\r\n validateString,\r\n useValidateAnswers,\r\n getSchemaForEquationQuestion,\r\n getErrorListFromErrorObjects,\r\n};\r\n","const phoneDefaultFormat = \"(111) 111-1111\";\r\n\r\nconst cleanFormat = (value: string): string => {\r\n if (value) {\r\n value = value.replace(/([\"{\",\"}\",\"_\"])/g, \"\");\r\n\r\n return value.replace(/([0-9,a-z,A-Z])/g, \"1\");\r\n }\r\n\r\n return value;\r\n};\r\n\r\nconst createMask = (format: string): (string | RegExp)[] => {\r\n const digitRegExp = /\\d/;\r\n\r\n return format.split(\"\").map((char) => (digitRegExp.test(char) ? digitRegExp : char));\r\n};\r\n\r\nexport { phoneDefaultFormat, cleanFormat, createMask };\r\n"],"names":["AttachmentContainer","styled","div","withConfig","displayName","componentId","AttachmentInformationContainer","AttachmentActionsContainer","AttachmentName","p","defaultTheme","font","AttachmentImage","img","AttachmentComponent","_ref","fileType","attachment","_useState","useState","_useState2","_slicedToArray","showFile","setShowFile","React","FileViewer","viewUrl","contentUri","mimeType","dismiss","onClick","src","includes","ImageIcon","PDFIcon","AnyIcon","friendlyName","printUri","href","target","title","rel","Icon","style","icon","color","downloadUri","StyledErrorContainer","Flex","StyledFieldError","FieldError","name","id","children","_useFormikContext","useFormikContext","errors","touched","error","getIn","FileViewerModalBackground","colors","values","darkgrey","FileViewerModalContent","ImageView","PdfContainer","FileViewerModalClose","i","white","useEffect","handleEsc","event","key","window","addEventListener","removeEventListener","className","MimeType","PDF","PdfViewer","FroalaContainer","Froala","text","isFieldLabel","FroalaEditorView","model","Label","isHTMLlabel","StyledLabel","getNumericInputLogic","value","disabled","min","max","step","type","fixedDecimalPlaces","onChange","isDecrementDisabled","isNumber","Number","isIncrementDisabled","useDecimalScale","isValid","decimalScale","prefix","undefined","onIncrease","newValue","concat","onDecrease","handleChange","numberFormatValue","StyledInput","input","theme","fields","selected","lightgrey","StyledVerticalInput","_ref2","StyledHorizontalInput","_ref3","red","HorizontalButton","button","attrs","_ref4","NumericInputWrapper","_ref5","width","minWidth","VerticalButton","props","Vertical","ticketId","_getNumericInputLogic","display","flexDirection","NumberFormat","fixedDecimalScale","customInput","allowEmptyFormatting","onValueChange","onKeyPress","which","preventDefault","Horizontal","t","useTranslation","Simple","NumericInput","controlType","_ref$type","rest","_objectWithoutProperties","_excluded","ControlType","_extends","PdfViewerContainer","PdfControls","borderRadius","PdfControlsButton","span","alias","primary","PageNumber","pdfjs","workerSrc","numPages","setNumPages","_useState3","_useState4","pageNumber","setPageNumber","Document","file","options","onLoadError","e","console","log","onSourceError","onLoadSuccess","loading","Spinner","Page","margin","TableWrapper","table","HeaderRow","tr","tablebordercolor","Row","clickable","Cell","td","alignLeft","InvisibleCell","AggregateCell","Header","th","InvisibleHeader","StyledTableRowTextInput","bordercolor","StyledTableRowLabel","label","Table","EquationSection","_form$document","_question$name","sectionId","question","row","editRowValue","validate","googleTranslate","useGoogleTranslate","_useTranslation","i18n","equationSectionId","getEquationSectionId","_useField","useField","_useField2","answer","meta","helpers","form","useFormInfo","currencyCode","document","organization","minEntries","maxEntries","newAnswer","_objectSpread","fieldId","answerId","order","questionId","setValue","minValue","valueType","currencyFormatter","resolvedLanguage","format","toFixed","toString","maxValue","placeholder","placeHolderText","float","EquationsDisplayField","inputQuestions","calculatedQuestions","aggregateQuestions","rows","aggregates","tableHeaders","_toConsumableArray","map","hasRows","length","formatValue","isNaN","parseFloat","parseInt","FieldWrapper","fullWidth","StyledDisplayLabel","EquationsWrapper","header","_row$answers$header$n","answers","AggregatesWrapper","AggregatesTable","isEditing","index","_aggregates$question$","_aggregates$question$2","colorOrDisabled","pointerOrDisabled","NonSubmittingButton","DeleteRowIcon","darkPrimary","grey","AddRowButton","ClearRowButton","ClearIconWrapper","RatingField","isRequired","saveAnswer","rating","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","omit","t0","sent","stop","selectedStar","StyledSelectedStar","FaStar","unSelectedStar","StyledUnselectedStar","FaRegStar","StyledRequiredLabel","testId","size","RatingDisplayField","_field$question","_field$question2","field","small","StyledAnswerRow","AnswerBackground","ButtonRow","TrashIcon","StyledIcon","TrashButton","useTheme","hoverEnabled","hoverColor","TextField","ref","maxLength","onBlur","handleBlur","_x","apply","arguments","MaxLengthMessage","StyledTextInput","hasError","AddressInnerField","_field$question$isReq","_field$question3","parentFieldId","fieldKey","getFieldKey","getLabel","placeHolder","useFieldValidation","inputValueRef","useRef","current","_useDebounce","useDebounce","leading","trailing","_useDebounce2","debouncedValue","debounceControls","save","isPending","_callee2","_context2","_x2","AddressField","fieldsDictionary","useMemo","keyBy","inputRef","onPlaceSelected","autoCompleteRef","google","maps","places","Autocomplete","types","addListener","_place","getPlace","place","setTimeout","containers","getElementsByClassName","setAttribute","useGoogleAddress","getAddressInnerFieldValues","Object","keys","_addressField$questio","addressField","isMainAddressField","CheckboxField","_value$answerId","_options","pinnedValueOptions","sort","setAnswerId","selectedOptions","parseStringIntoArray","filter","x","indexOf","unshift","option","updatedOptions","newAnswerId","selectedOption","JSON","stringify","StyledCheckbox","checked","DateOption","_React$Component","_classCallCheck","_callSuper","_inherits","_createClass","classNames","this","push","join","renderList","_this$props$selectedO","_this","onSelected","setState","openList","stopPropagation","dayjs","customParseFormat","_DateField","years","getYears","months","getValue","state","year","month","day","date","relativeMode","prevProps","_this$state$year","_this$state$month","_this$state$day","_this$props$id","_this$props$id2","_this2","stateValue","getValueState","days","getDays","DateFillWrapper","showClearIcon","removeAnswer","class","onYearChanged","onMonthChanged","onDayChanged","hideState","dateTime","getFormat","meetsMinimum","minDate","_this3","emptyAnswer","_this4","modified","_this5","_this6","invalidStates","NaN","currentValue","parsedValue","formattedMonth","formattedDay","daysInMonth","Date","getDate","_this$props$format","DateFormats","MonthDayYear","_modified","_value2","readonly","allowChangeOnInvalid","String","_this$props$error","translationKey","variables","i18next","DateField","ErrorBoundary","_Component","_len","args","Array","_key","_defineProperty","errorInfo","Component","IntegratedDataField","readOnly","originalValue","FieldSelector","containerQuestionId","hideLabel","_field$fields","_field$question$sortV","_field$question4","_field$question$chara","_field$question5","_field$question$sortV2","_field$question6","_field$question$chara2","_field$question7","_field$id","_field$question$place","_field$question8","_field$id2","_field$question$id","_field$question9","isCollapsed","uploadUrl","viewFileUrl","isTicketQuestion","deleteAnswer","handleToggleCollapse","fileSelected","fileRemoved","FieldType","Section","MultiFieldConditional","Conditional","YesNoConditionalField","SelectConditional","DropdownConditionalField","RepeatableQuestion","RepeatableQuestionField","Select","Dropdown","DropdownField","getPinnedValueOptions","getValueOptions","sortValueOptions","Multiline","TextAreaField","characterLimit","Multiselect","Selectmultiple","Singleline","PostalZip","Yesno","YesNoField","HeaderField","headerText","getHeaderText","subheaderText","getSubheaderText","collapsible","collapsable","Divider","StyledDivider","Descriptivetext","ParagraphField","Address","getAddressInnerFields","getDateFormat","Phonenumber","PhoneField","phoneFormat","getPhoneFormat","Rating","Time","TimeField","Upload","UploadField","Equations","EquationsField","getEquationInputQuestions","getEquationCalculatedQuestions","getEquationAggregateQuestions","IntegratedData","selectedIndex","findIndex","selectedOptionFields","eventValue","allFields","clearedFields","_newValue","_answerId","flatMap","fieldGroup","getFormInitialValues","deleteNestedAnswers","t1","StyledSelect","StyledOption","HeaderContainer","StyledHeader","StyledSubheader","PhoneErrorContainer","mask","replaceAll","StyledTextArea","_this$getValue","hour","minute","amPm","minutes","_this$getValue2","_this$state$hour","_this$state$minute","_this$state$amPm","hours","onHourChanged","onMinuteChanged","amPmOptions","onAmPmChanged","selectedTime","substring","isImage","BMP","PNG","JPG","GIF","_answer$fileType","isManualAttachment","selectedFile","setFile","progress","setProgress","_useState5","_useState6","_useState7","errorKey","fileName","_useState8","setError","_useState9","_useState10","userUploadedAFile","setUserUploadedAFile","allowedFileTypes","isInsideRepeatable","imageUrl","data","canUpload","fileIsValid","_file","reader","files","FileReader","readAsDataURL","onloadend","result","upload","onDropped","_file2","dataTransfer","_callee3","uploadAnswer","_uploadAnswer","_context3","FormData","append","axios","post","onUploadProgress","_p$total","Math","ceil","loaded","total","uuidv4","_x3","alignItems","StyledUploadContainer","click","onDrop","onDragOver","UploadPreview","PreviewImage","PdfThumbnail","PdfIcon","FileThumbnail","FileIcon","UploadImage","UploadIcon","UploadButton","completionPercentage","ProgressMessage","StyledUploadField","accept","FieldInformationLabel","_value$answer$answerI","_getYesOrNoFields","getYesOrNoFields","_getYesOrNoFields2","yesFields","noFields","yesChecked","TRUTHY_STRING","noChecked","FALSY_STRING","ClearIconSpacer","marginRight","StyledRadioButton","StyledRadioButtonLabel","RepeatableAnswers","_showFile$fileType","innerFields","uploadedFileViewBaseUrl","handleSelectRow","handleDeleteRow","answersByOrder","groupBy","rowOrder","innerField","_x$question","hidden","Fragment","DisplayAnswers","RepeatableAddButton","Button","backgroundColor","RepeatableForm","isDirty","setIsDirty","resetForm","submitForm","RepeatableFieldsWrapper","repeatableField","justifyContent","_value$answers2","selectedFiles","setSelectedFiles","deletedFiles","setDeletedFiles","_useRepeatableLogic","editingRow","setEditingRow","originalAnswers","setOriginalAnswers","innerFieldValues","setInnerFieldValues","abrupt","addRow","_callee4","newAnswers","allAnswers","newInnerFields","_context4","getInnerFieldAnswersFromRepeatableValue","getNextRowOrder","Promise","allSettled","_x7","forEach","_x8","_x4","_x5","_x6","editRow","_ref6","_callee7","editedAnswers","changedAnswers","otherAnswers","emptyInnerFields","_context7","editedAnswer","cloneDeep","find","_ref7","_callee5","_context5","_x13","_ref8","_callee6","_context6","_x14","_x9","_x10","_x11","_x12","deleteRow","_ref9","_callee8","_value$answers$reduce","remainingAnswers","answersToDelete","_context8","reduce","acc","_x15","initialValues","selectRow","useRepeatableLogic","onSelectFile","onRemoveFile","gap","Formik","enableReinitialize","onSubmit","_value$answers$map$so","_value$answers","dirty","TranslateFormErrors","reverse","EquationsForm","validateForm","getSchemaForEquationQuestion","validateSync","err","message","handleClick","errorKeys","paddingTop","background","padding","EditRow","allQuestions","entries","_question$id","transformAnswersToInitialValues","columnName","rowId","_row$answers$question","_row$answers$question2","_row$answers$question3","_row$answers$question4","_row$answers$question5","_row$answers$question6","renderCalculatedValue","required","isEquationRequired","_useEquationsLogic","getEquationInnerFields","setLoading","debouncedSaveAnswer","useDebouncedCallback","oldAnswers","newRow","savedAnswers","all","getEquationValue","flush","rowInput","newRowId","_getInputAnswersAndEx","inputAnswers","expressionValues","calculatedAnswers","aggregateAnswers","newAnswerInputs","getInputAnswersAndExpressionValues","getCalculatedAnswers","getAggregateAnswers","aggregate","_inputQuestions$reduc","tempValue","expressionName","getEquationQuestionNameForExpression","inputAnswer","selectedAnswers","selectedRow","currentRows","currentInputs","currentAnswers","currentAnswer","answerToDelete","useEquationsLogic","_aggregates$question$3","_aggregates$question$4","Long","Standard","YearMonthDay","ProgressTrackerContainer","CompleteText","lightblack","Percentage","TimeEstimate","CompletionProgressBar","isSimpleFieldAnswered","some","DEFAULT_PHONE_MASK","replace","isFieldAnswered","isSimpleField","getFlattenedFieldList","flattenedFields","selectedFields","mainAnswer","getMultiFieldConditionalInnerFields","getSelectConditionalInnerFields","Boolean","ProgressTracker","_orderInfo$cart$reduc","_orderInfo$cart","responseVersionHash","useReactiveVar","ResponseVersionHash","responseVersionQuery","useCachedResponseVersion","attendees","getAttendeesList","responseVersion","attendee","requiresPermission","permitted","calculateTimeEstimation","numberOfAttendees","isComplexField","signeeFields","getSigneeFields","attendeeFields","getAttendeeFields","tickets","getTickets","isGeneralSignup","signeeAnswers","getSigneeAnswers","orderInfo","getOrderInfo","flattenedSigneeFields","numberOfFields","numberOfFieldsCompleted","signeeFormTimeEstimation","attendeeFormTimeEstimation","ticketTimeEstimation","flattenedAttendeeFields","attendeeAnswers","cart","ticketIdsInCartCount","_attendee$tickets","Set","ticket","formQuestions","_orderInfo$latestOrde","_orderInfo$latestOrde2","_ticket$formQuestions","_ticket$formQuestions2","ticketAnswerValues","latestOrder","purchasedTickets","millis","sign","seconds","totalEstimationTime","timeEstimate","floor","integratedDataAnswers","countryCode","documentId","responseVersionId","shouldTranslateAnswers","collapsedHeaders","setCollapsedHeaders","process","toLowerCase","existing","headers","displayAnswer","labelValue","direction","questionLabel","questionValue","StyledAnswerLabel","dir","idx","_field$fields4","collapsed","isNoInputField","_field$question$id3","_field$question$id2","getLabelValuePair","displayPhoneAnswer","f","_f$question","addressIndex","_addressField$questio2","overrideFieldId","cursor","verticalAlign","marginLeft","repeatableAnswers","collectFieldAnswers","_field$fields2","addressFieldId","_row$fields","_field$question$id4","_field$question$id5","_field$fields$0$field","_field$fields$1$field","_field$question$value","_field$question10","_field$question$id6","_field$question11","_field$fields3","_field$fields$selecte","valueOptions","_field$question12","_integratedDataAnswer","_answers$find","_field$fields7","dataValue","split","existingValue","_field$fields5","valueChanged","valueRemoved","existingValueLabel","newValueLabel","originalQuestion","ErrorNavigatorWrapper","ErrorNavigationMessage","ShowNextErrorButton","ErrorIcon","ErrorNavigator","submitCount","errorList","getErrorListFromErrorObjects","selectedError","shouldShowError","number","element","getElementById","y","getBoundingClientRect","top","pageYOffset","scrollTo","behavior","navigateToError","ModalTitle","h1","InfoModalContent","InfoModalBackground","InfoModalTitleContainer","InfoModalMessageContainer","InfoModalCloseIconContainer","InfoModalActionButtonsContainer","InfoModal","confirmButtonText","onCancel","onConfirm","border","NavigationButtons","nextButtonDisabled","_ref$displayBackButto","displayBackButton","_ref$displayNextButto","displayNextButton","backOnClick","nextOnClick","screenSize","useBreakPoints","StyledNavigationButtonsContainer","NavigationListItem","item","linkIsActive","openItem","setOpenMenu","activeName","isEnabled","isDisabled","subMenuItems","subMenuItem","isCurrent","displayText","NavItem","_item$slug","slug","userSelect","SubMenuBackground","SubMenu","subIndex","_subMenuItem$slug","StyledButton","lightblue","QuantityIcon","CartButton","quantity","StyledModal","StyledModalContent","CartModalBoundaries","StyledCartContainer","Cart","_formInfo$form","_responseVersionQuery3","isPreview","useUrlParams","orderId","OrderId","client","useApolloClient","formInfo","responseVersionQueryVariables","email","signeeInfo","mutationOptions","awaitRefetchQueries","refetchQueries","query","RESPONSE_VERSIONS_QUERY","_useCancelTicketMutat","useCancelTicketMutation","cancelTicket","safePay","hasSafePay","CartContainer","onCancelTicket","_formInfo$form3","_responseVersionQuery2","ticketVersionId","responseAttendeeId","purchasedTicketIds","CancelTicket","updater","cancelTicketMutationUpdater","cache","resolve","_formInfo$form2","_responseVersionQuery","CartModal","isLoading","LoadingModal","_order$purchasedTicke","_order$purchasedTicke2","expandCart","setExpandCart","totalQuantity","hasTickets","closeModal","CartHeader","TicketsPreview","mode","TicketMode","CART_PREVIEW","CartFooter","Totals","subtotal","grandTotal","showFees","showTotal","marginBottom","fontSize","marginTop","StyledPreviewBar","yellow","PreviewBar","guardianRoleLabel","signee","ErrorBar","_requestError$message","_appInsights$context","_requestError$message2","baseUrl","requestError","RequestError","errorHeader","userId","getAppInsights","context","user","Navigate","to","SigneeInfoRoute","StyledErrorBar","ErrorHeader","ErrorMessageHeader","ErrorMessage","language","graphQLErrors","StyledErrorBarMessage","extensions","response","url","networkError","clientErrors","displayGraphQLError","ReloadButton","location","reload","_error$extensions$res","_error$extensions$res2","code","body","LeftGroup","RightGroup","Heading","StudentName","a","ArrowBackIcon","arrowBackward","MyPowerHubHeader","appInsights","getFormAttendees","closeWindow","useCallback","win","open","close","refreshParentTab","opener","postMessage","trackException","exception","handleExit","handleBeforeUnload","handleVisibilityChange","role","lastName","firstName","PageHeader","_organizationInfoQuer","_navItems$find","_singleNavSubItems$fi","_form$document$organi","_form$document$organi2","hashedId","_orgByHash$data","orgByHash","hideNavigation","_useUrlParams","visitedPages","hashedOrgId","pathname","useLocation","_useFormInfo","formInfoError","navigate","useNavigate","hasAccess","HasAccess","headerBarRef","organizationInfoQuery","useOrganizationByHashQuery","fetchPolicy","skip","OrganizationByHash","formName","ErrorComponent","brandingOrg","useOrganizationBranding","requiresAccess","restrictResponses","accessFields","parent","orgName","hasSigneeQuestions","hasAttendeeQuestions","hasPermittedAttendees","navItems","showCart","questionSubMenuItems","signeeFormSlug","attendeeFormSlug","AttendeeFormRoute","reviewSlug","onLanguageChanged","changeLanguage","singleNavSubItems","navItem","singleNav","splice","logoOrOrgName","logo","StyledLogo","StyledOrgName","isCartVisible","subNavItem","isMyPowerHub","source","ResponseSource","MyPowerHub","HeaderBar","HeaderBarContainer","roleLabels","guardian","InfoBar","InfoBarContainer","TitleContainer","StyledTitle","NavBar","NavList","onNavigate","SelectLanguage","HeaderBarSpacer","headerRef","height","setHeight","headerHeight","clientHeight","useLayoutEffect","Spacer","Wrapper","LanguageStyledSelect","select","LoadingIcon","isLoadingTranslations","IsLoadingTranslation","_Languages$find","Languages","currentTarget","DefaultLanguage","b","localeCompare","AttendeePreviewWrapper","PermissionLabel","isPermitted","green","AttendeePreview","_attendee$permitted","_attendee$integratedD","attendeeIndex","affirmativePermission","negativePermission","displayAnswers","CHECKOUT","AttendeeHeader","showPermission","integratedDataOnFile","purchasedTicket","TicketPreview","permissionLabel","taxes","serviceFee","baseFee","isFeesAssigned","CurrencyLabel","gst","pst","fontWeight","textDecorationStyle","textDecorationLine","ReactTooltip","effect","ModifiableSection","MIN_LENGTH","MAX_LENGTH","useMarkAsVisited","pageKey","markAsVisited","shouldSaveAnswer","previousValue","useSafeSaveSigneeAnswerMutation","_useSaveSigneeAnswerM","useSaveSigneeAnswerMutation","saveSigneeAnswerFunction","getAnswersDictionary","answersDictionary","setAnswersDictionary","safeSaveAnswer","_args$variables","_answersDictionary$an","answerKey","_result$data","getAnswerKey","SaveSigneeAnswer","useSafeSaveAttendeeAnswerMutation","_useSaveAttendeeAnswe","useSaveAttendeeAnswerMutation","saveAttendeeAnswerFunction","_args$variables2","_answersDictionary$an2","_result$data2","SaveAttendeeAnswer","touchErrorFields","setFieldTouched","isPlainObject","fieldName","isArray","innerErrors","fieldTouched","runValidation","on","off","saveAttendeeAnswerMutationUpdater","attendeeId","responseHashedId","updateQuery","RESPONSE_VERSION_QUERY","hash","overwrite","Response","_attendee$attendeeAns","newAttedeeAnswers","saveAttendeeAnswerForResponse","deleteAttendeeAnswerMutationUpdater","_objectDestructuringEmpty","_attendee$attendeeAns2","newAttendeeAnswers","answerOrder","variableOrder","answerInput","deleteAnswerForResponse","TICKET_INVENTORY_QUERY","gql","_templateObject","_taggedTemplateLiteral","TicketInventoryFragment","reserveTicketMutationUpdater","_result","mapAnswerInputsToAnswers","reserveTicketInput","answerHash","getAnswerHash","PreviewHash","orders","attendeeTickets","ticketPrice","typeCode","TicketTypeCode","Donation","openValueAmount","Free","price","existingTicket","__typename","canRefund","baseFeeString","totalFees","totalFeesString","grandTotalOriginal","hasBeenPaid","isCheckedOut","isRefunded","orderNumber","paymentTypes","purchaserFirstName","purchaserLastName","refundedAmount","subTotal","wasManuallyPaid","amountOutstanding","_ticket$sortOrder","createdDate","description","fill","sortOrder","totalPrice","defaultPrice","_a$sortOrder","_b$sortOrder","newTotal","_a$tickets$reduce","_a$tickets","acc2","newResponse","_attendee$tickets2","_variables$purchasedT","purchasedTicketId","remainingIds","_a$tickets$reduce2","_a$tickets2","ticketInventoryMutationUpdater","ticketIds","SubtotalLabel","StyledQuantity","PurchasedTicketPreview","_purchasedTicket$quan","_purchasedTicket$quan2","lineHeight","_purchasedTickets$red","_purchasedTickets$red2","showDetails","setShowDetails","hasOptions","TicketHeader","getPurchasedTicketKey","TicketPriceWrapper","TicketPrice","canBuyTicket","parentPays","priceLabel","StyledImg","Thumbnail","alt","_","DefaultImage","StyledSpan","DateNotice","start","end","startDate","endDate","now","getTime","noticeMessage","toDateString","SoldOutLabel","QuantitySection","_ticket$maximumQuanti","_input$value","_ticket$maximumQuanti2","inventory","quantityInCart","getQuantityInCart","quantityInCartForThisAttendee","remaining","isLimited","Infinity","maximumQuantity","minQuantity","minimumQuantity","minQuantityForThisAttendee","isSoldOut","setQuantity","inRange","TicketContainer","unavailable","TicketQuestionsHeader","AddToCartButton","TicketQuestionsSection","isPayNow","IsPayNow","thumbnailUrl","imageId","displaySummaryForSimpleTicket","PREVIEW","SHOPPING","startSellingDate","endSellingDate","TicketSection","_errors$RespondentMus","onReserveTicket","setFieldError","requiresATicket","RespondentMustSelectATicket","filteredFields","checkTicketSellingDates","innerFieldAnswers","getTicketAnswers","ReserveTicket","_values$openValueAmou","_values$openValueAmou2","_ticket$price","isSubmitting","setFieldValue","showOptions","addToCartLabel","newAmount","StyledOrderContainer","PreviousTicket","_purchasedTicket$name","PreviousOrder","attendeeTicketsDict","orderDate","StyledLine","PreviousOrders","TicketsSection","inventories","FORM_INFO_QUERY","DocumentFragment","FieldFragment","TicketFragment","FormAttachmentFragment","LinkAttachmentFragment","AnswerFragment","OrganizationFragment","_templateObject2","TaxesAndFeesFragment","Tickets","ticketInventoryQuery","_ticketInventoryQuery","documentHashedId","isPreviewInventoryLoaded","IsPreviewInventoryLoaded","inventoryUpdater","TicketInventory","getPreviewInventories","injectPreviewDataIntoCache","useTicketInventoryQuery","cachedData","_cachedData$Form","Form","updatedTickets","matchingInventory","inv","useTicketInventory","_useReserveTicketMuta","useReserveTicketMutation","reserveTicket","hasTicketsInCart","previousOrders","_attendeesList$attend","_attendeesList$attend2","accessData","AccessDataAnswers","showModal","setShowModal","disableNextButton","setDisableNextButton","_typeof","scrollToTop","attendeesList","allInitialAnswers","saveAttendeeAnswer","_useDeleteAttendeeAns","useDeleteAttendeeAnswerMutation","deleteAttendeeAnswer","isSigned","currentUrl","slice","selectedAttendee","attendeeFullName","previewAnswer","answerToAnswerInput","getAttendeeAnswer","update","DeleteAttendeeAnswer","getDeleteAttendeeAnswerResponseForPreview","nextPage","continueWithoutTickets","_form$tickets","_form$tickets2","respondentMustSelectATicket","ticketMinimumsAreValid","ticketMinimumsAreMet","ticketMaximumsAreValid","ticketMaximumsAreNotExceeded","nextIndex","ReviewRoute","handleSubmit","integratedDataFields","omitFieldKeys","needsSaving","getIntegratedDataFields","checkUnsubmittedAnswers","PageWrapper","ContentWrapper","StyledAttendeeName","isStaff","previousIndex","SigneeFormRoute","AttendeeInformationRoute","Push","PageFooter","ResponseVersionFragment","_fieldsDictionary$fie","fieldValue","_place$address_compon","_place$address_compon2","address_components","long_name","getStreetNumber","_place$address_compon3","_place$address_compon4","getStreet","trim","getStreetAddress","_place$address_compon7","_place$address_compon8","_place$address_compon9","getCity","_place$address_compon5","_place$address_compon6","getProvince","_place$address_compon10","_place$address_compon11","getPostalCode","getAddressInnerFieldValue","_addressField$fields","getAnswersFromPossibleFieldValue","possibleFieldValue","getAnswersFromConditionalValue","getAnswersFromEquationValue","getAnswersFromInnerFields","nestedAnswer","addressKey","innerAnswer","getReadableDate","dateString","locale","test","endsWith","toLocaleDateString","startYear","yearsInTheFuture","equationSections","getCalculatedValue","expression","getQuestionDataValue","parse","evaluate","calculatedExpressionValues","answersArrayToEquationValue","_rowsAndAggregates$re","rowPlaceholder","rowAnswers","getValueForEquationInputQuestion","questionType","defaultValue","getEquationInnerFieldInitialValues","sectionAnswer","mainEquationQuestion","isQuestionRequired","fieldsThatDontCollapse","relatedFields","relatedHeaderIndex","relatedHeaderField","headerFieldIndex","rowIds","subField","getConditionalNestedFields","fieldsToCheck","isConditional","canHaveChildFields","FieldContainer","documentVersion","_documentVersion$temp","attendeeQuestions","template","hasAttendeeIntegratedDataQuestions","_documentVersion$temp2","_documentVersion$temp3","signeeQuestions","_documentVersion$tick","_documentVersion$temp4","ticketPermissions","getSimpleValue","answerkey","existingAnswer","getConditionalValue","getInnerFieldsFromConditional","_answersArrayToEquati","getCheckboxValue","fieldAnswersRecord","_fieldAnswersRecord","_innerField$question","_innerField$question2","_innerField$question3","innerFieldKey","selectedAnswer","fieldIds","_field$fields6","obj","integratedDataOnFileDictionary","responseAnswer","_ref10","newDictionary","integratedDataOnFileDict","getIntegratedDataDictionary","answerGetterFunction","signeeFormPermissions","attendeeFormPermissions","getAttachments","attachments","attachmentsPermissions","getLinkAttachments","linkAttachments","getPublicOrganizerFields","_form$template$public","_form$template","publicQuestions","getPublicOrganizerAnswers","_form$publicOrganizer","publicOrganizerAnswers","getEquationFielLabel","getIntegratedDataFieldLabel","getSimpleFieldLabel","labelText","getSimpleFieldPlainLabel","plainLabel","getPlainLabel","getEquationFieldName","getIntegratedDataFieldName","decodeHtmlCharCodes","yesFieldContainer","noFieldContainer","getFieldId","getPlaceholderText","subHeader","selectedResponseVersion","_attendee$manualPermi","_attendee$attachmentI","_attendee$attachmentF","_attendee$notes","manualPermissionDate","attachmentId","attachmentFileType","notes","_selectedResponseVers","_selectedResponseVers2","getUnpaidOrderInfo","container","PaymentMethodType","translationkey","Intl","currency","minimumFractionDigits","maximumFractionDigits","getPaymentMethods","manualPaymentText","CREDITCARD","isOnline","isSafePay","icons","McIcon","VisaIcon","AmexIcon","WALLET","ApIcon","GpIcon","MpIcon","MANUAL","CashCheckIcon","getStripeTokenFeeMethod","token","country","_token$card","_token$card2","_token$card3","card","credit","funding","debit","toUpperCase","FeeMethod","DomesticCreditCard","DomesticDebitCard","InternationalCreditCard","InternationalDebitCard","charCodeAt","cartAttendee","unpaidOrder","responseAttendees","pt","_step","_iterator","_createForOfIteratorHelper","_ret","_loop","curr","s","n","done","_step2","_iterator2","_ret2","_loop2","_unused","_responseVersion$sign","_responseVersion$sign2","_responseVersion$sign3","_responseVersion$sign4","_responseVersion$sign5","_responseVersion$sour","_responseVersion$tagI","signeeFirstName","signeeLastName","signeeEmail","signeeNotes","signeeAttachmentId","responseSource","Organic","tagId","isProcess","checkResponseVersionSource","Process","isManual","Manual","isInternal","Internal","isRostered","isAuthenticatedResponse","signeeValuesAreUpdated","signeeValues","currentSigneeValues","tagValueIsUpdated","attendeesAreUpdated","_responseVersion$atte","isChanged","currentAttendee","editedAttendee","getStartNewResponseStatus","responseVersions","disabledMessage","every","status","ResponseStatus","Rejected","Responded","PendingApproval","Cancelled","useScrollToTop","possibleFieldValues","ResponseStep","validateString","errorMessage","Yup","shape","nullable","shouldValidate","minErrorMessage","maxErrorMessage","requiredErrorMessage","minSchema","maxSchema","finalSchema","getSchemaforSingleField","validateAddressField","minEntriesMessage","maxEntriesMessage","shouldNotContainValuesMessage","numberOfEntries","validateRepeatableMinEntries","validateRepeatableMaxEntries","validateRepeatableField","_question$format","valueNumbers","match","questionNumbers","isEmpty","validateValueFormat","validatePhoneField","checkboxValue","parseMultiselectJSON","validateValues","validateCheckbox","validateCheckboxField","validateYesNoConditionalField","minEntriesErrorMessage","validateEquationField","validateTextField","schema","formattedValue","useValidateAnswers","mustSelectAtLeastOneTicket","cartOrder","formErrors","signeeErrorFields","checkAnswers","SigneeForm","route","attendeeErrorFields","AttendeeForm","failedFields","_field$question$minEn","_field$fields$map","fieldSchema","fieldAnswer","equationAnswer","parentKey","flat"],"sourceRoot":""}