{"version":3,"file":"js/873-75b49a0bbf15d64b06f0.js","mappings":"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","sources":["webpack://avala/./app/javascript/controllers/ sync _controller\\.js$","webpack://avala/./app/javascript/components/EditableReferenceLabel/style.js","webpack://avala/./app/javascript/components/EditableReferenceLabel/index.js","webpack://avala/./app/javascript/components/UploadMediaSection/components/UploadButtons/index.js","webpack://avala/./app/javascript/components/UploadMediaSection/components/UploadProgress/index.js","webpack://avala/./app/javascript/components/UploadMediaSection/components/UploadingState/index.js","webpack://avala/./app/javascript/components/UploadMediaSection/uploadMediaValidator.js","webpack://avala/./app/javascript/components/VideoRecord/components/Countdown/index.js","webpack://avala/./app/javascript/components/VideoRecord/utils.js","webpack://avala/./app/javascript/components/VideoRecord/components/ButtonsSection/index.js","webpack://avala/./app/javascript/components/VideoRecord/index.js","webpack://avala/./app/javascript/components/hooks/useUpdateReferencesTags.js","webpack://avala/./app/javascript/components/ask/MetricsBottomBar/components/ProgressBar.js","webpack://avala/./app/javascript/components/ask/MetricsBottomBar/index.js","webpack://avala/./app/javascript/components/responder/BottomBar/index.js","webpack://avala/./app/javascript/components/responder/CustomBranding/components/BrandingLink/style.js","webpack://avala/./app/javascript/components/responder/CustomBranding/components/BrandingLink/index.js","webpack://avala/./app/javascript/components/inputs/TextField/style.js","webpack://avala/./app/javascript/components/inputs/TextField/index.js","webpack://avala/./app/javascript/components/inputs/DateSelector/index.js","webpack://avala/./app/javascript/components/inputs/Select/style.js","webpack://avala/./app/javascript/components/inputs/Select/index.js","webpack://avala/./app/javascript/components/inputs/Checkbox/index.js","webpack://avala/./app/javascript/components/responder/DataFieldsSelector/components/MultipleChoiceSelect/index.js","webpack://avala/./app/javascript/components/inputs/MoneyTextField/index.js","webpack://avala/./app/javascript/components/hooks/useReferenceName.js","webpack://avala/./app/javascript/components/BlockForm/components/TitleSection/components/ResponderLinksButton/index.js","webpack://avala/./app/javascript/components/SlateElements/components/ResponderHoveringToolbar/index.js","webpack://avala/./app/javascript/components/inputs/RichTextField/index.js","webpack://avala/./app/javascript/components/inputs/UploadField/ProgressBar.js","webpack://avala/./app/javascript/components/inputs/UploadField/index.js","webpack://avala/./app/javascript/components/inputs/SignatureField/SignaturePad.js","webpack://avala/./app/javascript/components/inputs/SignatureField/index.js","webpack://avala/./app/javascript/components/responder/DataFieldsSelector/components/DataFieldWrapper/index.js","webpack://avala/./app/javascript/components/responder/DataFieldsSelector/style.js","webpack://avala/./app/javascript/components/responder/DataFieldsSelector/utils.js","webpack://avala/./app/javascript/components/responder/DataFieldsSelector/index.js","webpack://avala/./app/javascript/components/responder/DonationAmountsSelector/components/AmountButtons/style.js","webpack://avala/./app/javascript/components/responder/DonationAmountsSelector/components/AmountButtons/index.js","webpack://avala/./app/javascript/components/inputs/Input/InlineEditInput/style.js","webpack://avala/./app/javascript/components/inputs/Input/InlineEditInput/index.js","webpack://avala/./app/javascript/components/responder/DonationAmountsSelector/style.js","webpack://avala/./app/javascript/components/responder/DonationAmountsSelector/components/DonationTypeSelector/style.js","webpack://avala/./app/javascript/components/responder/DonationAmountsSelector/components/DonationTypeSelector/index.js","webpack://avala/./app/javascript/components/responder/DonationAmountsSelector/index.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/ButtonsSelector/components/style.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/SelectBoxSelector/components/Select.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/SelectBoxSelector/style.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/SelectBoxSelector/index.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/ButtonsSelector/components/Checkbox.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/ButtonsSelector/components/Button.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/ButtonsSelector/components/OtherButton.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/ButtonsSelector/components/MultiSelectOtherButton.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/components/ButtonsSelector/index.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/style.js","webpack://avala/./app/javascript/components/responder/MultipleChoiceSelector/index.js","webpack://avala/./app/javascript/components/responder/ProgressBar/index.js","webpack://avala/./app/javascript/components/responder/SkipButton/style.js","webpack://avala/./app/javascript/components/responder/SkipButton/index.js","webpack://avala/./app/javascript/components/responder/SocialShare/style.js","webpack://avala/./app/javascript/components/responder/SocialShare/components/Dropdown/style.js","webpack://avala/./app/javascript/components/responder/SocialShare/components/Dropdown/index.js","webpack://avala/./app/javascript/components/responder/SocialShare/index.js","webpack://avala/./app/javascript/components/responder/UgcUploadResponse/components/ResponsePreview/index.js","webpack://avala/./app/javascript/components/responder/UgcUploadResponse/components/UploadedFile/index.js","webpack://avala/./app/javascript/components/responder/UgcUploadResponse/components/UploadedImage/index.js","webpack://avala/./app/javascript/components/responder/UgcUploadResponse/components/MediaPreview/index.js","webpack://avala/./app/javascript/components/responder/UgcUploadResponse/index.js","webpack://avala/./app/javascript/components/responder/videoplayer/VideoPlayer/style.js","webpack://avala/./app/javascript/components/responder/videoplayer/VideoPlayer/components/LoadingSpinner/index.js","webpack://avala/./app/javascript/components/responder/videoplayer/VideoPlayer/index.js","webpack://avala/./app/javascript/components/responder/videoplayer/VideoBackground/style.js","webpack://avala/./app/javascript/components/responder/videoplayer/VideoBackground/index.js","webpack://avala/./app/javascript/components/shared/LazyImage/index.js","webpack://avala/./app/javascript/components/shared/BackgroundOverlay/components/BackgroundImage/index.js","webpack://avala/./app/javascript/components/shared/BackgroundOverlay/components/BackgroundVideo/index.js","webpack://avala/./app/javascript/components/shared/BackgroundOverlay/index.js","webpack://avala/./app/javascript/components/shared/BlockLabel/index.js","webpack://avala/./app/javascript/components/shared/BrandedLabel/style.js","webpack://avala/./app/javascript/components/shared/BrandedLabel/index.js","webpack://avala/./app/javascript/components/shared/CtaButton/index.js","webpack://avala/./app/javascript/components/shared/NavigationButtons/components/Button/index.js","webpack://avala/./app/javascript/components/shared/NavigationButtons/index.js","webpack://avala/./app/javascript/components/shared/ResponseButton/index.js","webpack://avala/./app/javascript/components/shared/ResponseTextField/style.js","webpack://avala/./app/javascript/components/shared/ResponseTextField/index.js","webpack://avala/./app/javascript/components/shared/hoc/withStyledButtonText.js","webpack://avala/./app/javascript/components/toast/index.js","webpack://avala/./app/javascript/controllers/clipboard_controller.js","webpack://avala/./app/javascript/flash_messages.js","webpack://avala/./app/javascript/controllers/donations_controller.js","webpack://avala/./app/javascript/controllers/index.js","webpack://avala/./app/javascript/controllers/no_content_controller.js","webpack://avala/./app/javascript/controllers/video_player_controller.js","webpack://avala/./app/javascript/controllers/widget_controller.js","webpack://avala/./app/javascript/controllers/widget_tabs_controller.js","webpack://avala/./app/javascript/controllers/with_popup_controller.js","webpack://avala/./app/javascript/uploader.js"],"sourcesContent":["var map = {\n\t\"./clipboard_controller.js\": 92070,\n\t\"./donations_controller.js\": 41371,\n\t\"./no_content_controller.js\": 39734,\n\t\"./video_player_controller.js\": 73020,\n\t\"./widget_controller.js\": 31579,\n\t\"./widget_tabs_controller.js\": 3473,\n\t\"./with_popup_controller.js\": 46309,\n\t\"controllers/clipboard_controller.js\": 92070,\n\t\"controllers/donations_controller.js\": 41371,\n\t\"controllers/no_content_controller.js\": 39734,\n\t\"controllers/video_player_controller.js\": 73020,\n\t\"controllers/widget_controller.js\": 31579,\n\t\"controllers/widget_tabs_controller.js\": 3473,\n\t\"controllers/with_popup_controller.js\": 46309\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 67074;","import styled from 'styled-components';\n\nexport const Label = styled.span`\n background-color: rgba(114, 114, 120, 0.2);\n border-radius: 4px;\n color: inherit;\n padding: 2px 4px;\n margin: 4px 2px;\n outline: none;\n`;\n","import React, { useState, useEffect } from 'react';\nimport { nanoid } from 'nanoid';\nimport useUpdateReferencesTags from '../hooks/useUpdateReferencesTags';\nimport { Label } from './style';\n\nconst EditableReferenceLabel = ({ html, style }) => {\n const [content, setContent] = useState([]);\n const parsedTextWithReferences = useUpdateReferencesTags(html);\n\n useEffect(() => {\n setContent(\n parsedTextWithReferences.map((text) => {\n if (typeof text === 'string') {\n return text;\n }\n\n return (\n \n );\n }),\n );\n }, [parsedTextWithReferences]);\n\n return <>{content};\n};\n\nexport default EditableReferenceLabel;\n","import React from 'react';\nimport CtaButton from '../../../shared/CtaButton';\n\nexport default function UploadButtons({\n onCancel,\n cancelButtonRef,\n submitButtonRef,\n ctaButtonContent,\n ctaButtonStyle,\n}) {\n return (\n <>\n \n \n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction UploadProgress({\n percentageRef,\n progressBarRef,\n cancelUpload,\n}) {\n return (\n
\n
\n

Uploading...

\n \n 0%\n \n
\n
\n \n
\n
\n \n
\n
Cancel
\n
\n );\n}\n\nUploadProgress.propTypes = {\n percentageRef: PropTypes.object,\n progressBarRef: PropTypes.object,\n cancelUpload: PropTypes.func,\n};\n\nexport default UploadProgress;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Uploader } from '../../../../uploader';\nimport UploadProgress from '../UploadProgress';\n\nfunction UploadingState({\n file,\n hidden,\n uploadUrl,\n refreshState,\n uploadCreateCallback,\n}) {\n if (hidden) {\n return null;\n }\n\n const progressBarRef = React.useRef(null);\n const progressPercentageRef = React.useRef(null);\n const activeUpload = React.useRef(null);\n\n React.useEffect(() => {\n handleUploadMedia();\n }, []);\n\n const setActiveUploadRequest = (request) => {\n activeUpload.current = request;\n };\n\n const cancelUpload = () => {\n // Interval is needed in case of slow internet\n // eslint-disable-next-line prefer-const\n let intervalId;\n const stopUploading = () => {\n if (activeUpload.current) {\n activeUpload.current.abort();\n clearInterval(intervalId);\n }\n };\n intervalId = setInterval(stopUploading, 500);\n\n refreshState();\n };\n\n const handleUploadMedia = () => {\n const upload = new Uploader(\n file,\n uploadUrl,\n progressPercentageRef.current,\n progressBarRef.current,\n setActiveUploadRequest,\n );\n\n upload.create(uploadCreateCallback);\n };\n\n return (\n \n );\n}\n\nUploadingState.propTypes = {\n file: PropTypes.object,\n hidden: PropTypes.bool,\n uploadCreateCallback: PropTypes.func.isRequired,\n uploadUrl: PropTypes.string,\n refreshState: PropTypes.func,\n};\n\nexport default UploadingState;\n","import {\n IMAGE_TYPE_ERROR_MESSAGE,\n VIDEO_SIZE_LIMIT,\n VIDEO_TYPE_ERROR_MESSAGE,\n IMAGE_SIZE_LIMIT,\n BACKGROUND_VIDEO_SIZE_ERROR_MESSAGE,\n BACKGROUND_IMAGE_SIZE_ERROR_MESSAGE,\n FILE_SIZE_LIMIT,\n FILE_SIZE_ERROR_MESSAGE,\n UNSUPPORTED_TYPE_ERROR_MESSAGE,\n IMAGE_SIZE_ERROR_MESSAGE,\n ALLOWED_IMAGE_TYPES,\n PREVIEWABLE_VIDEO_TYPES,\n ALL_ALLOWED_FILE_TYPES,\n VIDEO_SIZE_ERROR_MESSAGE,\n} from '../../constants';\n\nexport const uploadMediaValidator = (file, responder) => {\n if (file.type === '') {\n return {\n code: 'file-invalid-type',\n message: UNSUPPORTED_TYPE_ERROR_MESSAGE,\n };\n }\n\n if (file.type.includes('video')) {\n if (responder) {\n if (!ALL_ALLOWED_FILE_TYPES.includes(file.type)) {\n return {\n code: 'file-invalid-type',\n message: VIDEO_TYPE_ERROR_MESSAGE,\n };\n }\n\n if (file.size > VIDEO_SIZE_LIMIT) {\n return {\n code: 'file-too-large',\n message: VIDEO_SIZE_ERROR_MESSAGE,\n };\n }\n\n if (file.size < 20000) {\n return {\n code: 'file-too-small',\n message: VIDEO_SIZE_ERROR_MESSAGE,\n };\n }\n } else {\n if (file.size > VIDEO_SIZE_LIMIT) {\n return {\n code: 'file-too-large',\n message: BACKGROUND_VIDEO_SIZE_ERROR_MESSAGE,\n };\n }\n\n if (file.size < 10000) {\n return {\n code: 'file-too-small',\n message: BACKGROUND_VIDEO_SIZE_ERROR_MESSAGE,\n };\n }\n\n if (!PREVIEWABLE_VIDEO_TYPES.includes(file.type)) {\n return {\n code: 'file-invalid-type',\n message: VIDEO_TYPE_ERROR_MESSAGE,\n };\n }\n }\n } else if (file.type.includes('image')) {\n if (file.size > IMAGE_SIZE_LIMIT) {\n return {\n code: 'file-too-large',\n message: responder\n ? IMAGE_SIZE_ERROR_MESSAGE\n : BACKGROUND_IMAGE_SIZE_ERROR_MESSAGE,\n };\n }\n\n if (file.size < 100) {\n return {\n code: 'file-too-small',\n message: BACKGROUND_IMAGE_SIZE_ERROR_MESSAGE,\n };\n }\n\n if (!ALLOWED_IMAGE_TYPES.includes(file.type)) {\n return {\n code: 'file-invalid-type',\n message: IMAGE_TYPE_ERROR_MESSAGE,\n };\n }\n } else if (ALL_ALLOWED_FILE_TYPES.includes(file.type)) {\n if (file.size > FILE_SIZE_LIMIT) {\n return {\n code: 'file-too-large',\n message: FILE_SIZE_ERROR_MESSAGE,\n };\n }\n } else {\n return {\n code: 'file-invalid-type',\n message: UNSUPPORTED_TYPE_ERROR_MESSAGE,\n };\n }\n\n return null;\n};\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst formatToMinutes = (seconds) =>\n new Date(1000 * seconds).toTimeString().substring(3, 8);\n\nfunction Countdown({ initialValue, onTimerEnd, formatTimer, className }) {\n const [secondsLeft, setSecondsLeft] = React.useState(initialValue);\n\n useEffect(() => {\n if (secondsLeft > 0) {\n const timer = setTimeout(() => {\n setSecondsLeft(secondsLeft - 1);\n }, 1000);\n\n return () => clearTimeout(timer);\n } else {\n onTimerEnd();\n }\n }, [initialValue, secondsLeft]);\n\n return (\n

\n {formatTimer ? formatToMinutes(secondsLeft) : secondsLeft}\n

\n );\n}\n\nCountdown.propTypes = {\n initialValue: PropTypes.number.isRequired,\n onTimerEnd: PropTypes.func.isRequired,\n formatTimer: PropTypes.bool,\n className: PropTypes.string.isRequired,\n};\n\nexport default Countdown;\n","import { setClassName } from '../../utils';\n\nexport const buildParams = (askerSide, signedId) => {\n return askerSide\n ? { ask: { background_video_signed_id: signedId } }\n : { ugc_media_response: { video_signed_id: signedId } };\n};\n\nexport const setButtonsWrapperClassName = (askerSide) => {\n return askerSide\n ? 'media-background__buttons-container'\n : 'ha-form__record-button-wrapper';\n};\n\nexport const setHelpTextClassName = (askerSide) => {\n return askerSide ? 'media-background__controls-title' : 'ha-form__help-text';\n};\n\nexport const setCountdownClassName = (askerSide) => {\n return askerSide\n ? 'media-background__controls-title'\n : 'ha-form__record_countdown--centered';\n};\n\nexport const setMediaWrapperClassNames = (askerSide, backgroundIsColor) => {\n return askerSide\n ? 'media-background__media-wrapper'\n : `upload-record-wrapper ${setClassName('upload-record-wrapper--color-background', backgroundIsColor)}`;\n};\n\n\nexport const setVideoTagClassNames = (askerSide, backgroundLayout) => {\n let baseClassName;\n\n if (askerSide) {\n baseClassName = 'media-background__video';\n } else {\n baseClassName = 'ha-form__background-video';\n }\n\n return `${baseClassName} ${setClassName(\n 'fit-to-size',\n backgroundLayout === 'fit_to_size',\n )}`;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n INITIAL,\n RECORDING,\n UPLOADING,\n COUNTDOWN,\n RESPONSE_PREVIEW,\n} from '../../index';\nimport Countdown from '../Countdown';\nimport { PrimaryButton } from '../../../Button';\nimport { updateMedia } from '../../../api';\nimport {\n setButtonsWrapperClassName,\n setHelpTextClassName,\n setCountdownClassName,\n buildParams,\n} from '../../utils';\nimport UploadButtons from '../../../UploadMediaSection/components/UploadButtons';\nimport UploadingState from '../../../UploadMediaSection/components/UploadingState';\n\nfunction ButtonsSection({\n blob,\n uuid,\n uploadUrl,\n askerSide,\n recordingState,\n setRecordingState,\n setSignedIdObj,\n startRecording,\n stopRecording,\n resetToInitial,\n closeRecordPage,\n ctaButtonContent,\n ctaButtonStyle,\n}) {\n const uploadCreateCallback = (error, { signed_id }) => {\n if (error) {\n resetToInitial();\n } else {\n const params = buildParams(askerSide, signed_id);\n\n if (askerSide) {\n updateMedia(uuid, params).then((response) => {\n if (response.ok) {\n closeRecordPage();\n }\n });\n } else {\n setSignedIdObj({ name: 'video_signed_id', value: signed_id });\n setRecordingState(RESPONSE_PREVIEW);\n }\n }\n };\n\n const renderContent = () => {\n switch (recordingState) {\n case INITIAL:\n return (\n <>\n

\n When you're ready, press Start Recording\n

\n
\n \n \n Start Recording\n \n
\n \n );\n case COUNTDOWN:\n return (\n setRecordingState(RECORDING)}\n className={setCountdownClassName(askerSide)}\n />\n );\n case RECORDING:\n return (\n <>\n \n
\n \n Stop Recording\n \n
\n \n );\n case UPLOADING:\n return (\n \n );\n case RESPONSE_PREVIEW:\n return (\n
\n \n
\n );\n }\n };\n\n return <>{renderContent()};\n}\n\nButtonsSection.propTypes = {\n blob: PropTypes.object,\n askerSide: PropTypes.bool,\n uuid: PropTypes.string.isRequired,\n uploadUrl: PropTypes.string.isRequired,\n recordingState: PropTypes.string.isRequired,\n setRecordingState: PropTypes.func.isRequired,\n startRecording: PropTypes.func.isRequired,\n stopRecording: PropTypes.func.isRequired,\n resetToInitial: PropTypes.func.isRequired,\n closeRecordPage: PropTypes.func.isRequired,\n ctaButtonContent: PropTypes.string,\n};\n\nexport default ButtonsSection;\n","import React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport RecordRTC from 'recordrtc';\nimport _isEmpty from 'lodash/isEmpty';\nimport VideoBackground from '../responder/videoplayer/VideoBackground';\nimport ButtonsSection from './components/ButtonsSection';\nimport { isMobile } from '../../utils';\nimport { setMediaWrapperClassNames, setVideoTagClassNames } from './utils';\nimport ResponsePreview from '../responder/UgcUploadResponse/components/ResponsePreview';\nimport { setDefaultSignedIdObj } from '../responder/UgcUploadResponse';\n\nexport const INITIAL = 'initial';\nexport const COUNTDOWN = 'countdown';\nexport const RECORDING = 'recording';\nexport const UPLOADING = 'uploading';\nexport const RESPONSE_PREVIEW = 'response_preview';\n\nconst setDefaultRecordingState = (mediaResponse) => {\n if (mediaResponse.latest_attachment) {\n return RESPONSE_PREVIEW;\n } else {\n return INITIAL;\n }\n};\n\nfunction VideoRecord({\n uuid,\n askerSide,\n cancelPath,\n directUploadUrl,\n backgroundIsColor,\n backgroundLayout,\n ctaButtonContent,\n ctaButtonStyle,\n mediaResponse = {},\n}) {\n const [recordingState, setRecordingState] = React.useState(\n setDefaultRecordingState(mediaResponse),\n );\n const [blob, setBlob] = React.useState(null);\n const [responses, setResponses] = React.useState(mediaResponse);\n const [signedIdObj, setSignedIdObj] = React.useState(\n setDefaultSignedIdObj(mediaResponse),\n );\n\n const signedIdIsEmpty = React.useMemo(() => {\n return _isEmpty(signedIdObj);\n }, [signedIdObj]);\n\n const fileInputRef = React.useRef(null);\n const videoRef = useRef(null);\n const videoStream = useRef(null);\n const recorder = useRef(null);\n\n useEffect(() => {\n if (isMobile()) {\n if (fileInputRef && fileInputRef.current) {\n fileInputRef.current.addEventListener('change', fileUploadListener);\n\n return () => {\n fileInputRef.current.removeEventListener(\n 'change',\n fileUploadListener,\n );\n };\n }\n }\n }, []);\n\n useEffect(() => {\n if (!isMobile() && signedIdIsEmpty) {\n captureCamera();\n }\n }, [signedIdIsEmpty]);\n\n useEffect(() => {\n if (recordingState === RECORDING) {\n recorder.current = RecordRTC(videoStream.current, {\n type: 'video',\n bitsPerSecond: 25600000,\n canvas: { width: 500, height: 800 },\n });\n\n recorder.current.startRecording();\n }\n }, [recordingState]);\n\n const fileUploadListener = (e) => {\n setRecordingState(UPLOADING);\n setBlob(e.target.files[0]);\n };\n\n const captureCamera = () => {\n navigator.mediaDevices\n .getUserMedia({\n audio: true,\n video: true,\n })\n .then((stream) => {\n videoStream.current = stream;\n if (videoRef.current) {\n videoRef.current.muted = true;\n videoRef.current.volume = 0;\n videoRef.current.srcObject = stream;\n }\n });\n };\n\n const startRecording = () => {\n if (isMobile()) {\n if (fileInputRef && fileInputRef.current) {\n fileInputRef.current.click();\n }\n } else if (videoStream.current) {\n setRecordingState(COUNTDOWN);\n }\n };\n\n const stopRecordingCallback = () => {\n const videoBlob = recorder.current.getBlob();\n videoBlob.name = 'video-record-response';\n setBlob(videoBlob);\n setRecordingState(UPLOADING);\n\n recorder.current.destroy();\n recorder.current = null;\n };\n\n const stopRecording = () => {\n recorder.current.stopRecording(stopRecordingCallback);\n };\n\n const resetToInitial = () => {\n setRecordingState(INITIAL);\n setBlob(null);\n setResponses({});\n setSignedIdObj({});\n };\n\n const closeRecordPage = () => {\n if (window.Turbo) {\n Turbo.visit(cancelPath);\n } else {\n window.location.href = cancelPath;\n }\n };\n\n return (\n <>\n {askerSide &&

Upload media

}\n \n
\n \n {blob && (\n
\n \n
\n )}\n {!blob && !signedIdIsEmpty && (\n \n )}\n
\n
\n \n
\n {!askerSide && !signedIdIsEmpty && (\n \n )}\n \n );\n}\n\nVideoRecord.propTypes = {\n uuid: PropTypes.string.isRequired,\n cancelPath: PropTypes.string.isRequired,\n directUploadUrl: PropTypes.string.isRequired,\n backgroundIsColor: PropTypes.bool,\n backgroundLayout: PropTypes.string,\n ctaButtonContent: PropTypes.string,\n askerSide: PropTypes.bool,\n};\n\nexport default VideoRecord;\n","import { useState, useEffect, useContext } from 'react';\nimport ReferencesContext, {\n ADD_REFERENCE,\n} from '../../contexts/ReferencesContext';\n\nfunction useUpdateReferencesTags(html) {\n const [{ references }, dispatch] = useContext(ReferencesContext);\n const [content, setContent] = useState([]);\n\n useEffect(() => {\n const parsedText = html?.split(/({{.*?}})/g).map((text) => {\n if (!text.match(/{{(?!#|\\/).*}}/)) {\n return text;\n }\n\n const ref = references[text];\n\n if (!ref) {\n dispatch({\n type: ADD_REFERENCE,\n payload: {\n reference: text,\n },\n });\n }\n\n return ref\n ? { name: ref.name, reference: ref.reference }\n : { name: 'Loading...' };\n });\n\n setContent(parsedText);\n }, [html, references]);\n\n return content;\n}\n\nexport default useUpdateReferencesTags;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst borderRadius = '4px';\nconst ProgressContainer = styled.div`\n height: 4px;\n background-color: #E0E0E0;\n border-radius: ${borderRadius};\n margin-top: 9px;\n max-width: 758px;\n margin-right: auto;\n margin-left: auto;\n`;\n\nconst Progress = styled.div`\n height: inherit;\n width: ${({ amount }) => amount};\n background-color: #39B34A;\n border-top-left-radius: ${borderRadius};\n border-bottom-left-radius: ${borderRadius};\n border-top-right-radius: ${({ isFull }) => isFull && borderRadius};\n border-bottom-right-radius: ${({ isFull }) => isFull && borderRadius};\n`;\n\nfunction ProgressBar({ full, current }) {\n let progress;\n\n if (current >= full) {\n progress = 100;\n } else {\n progress = current / full * 100;\n }\n\n return (\n \n \n \n );\n}\n\nProgressBar.propTypes = {\n full: PropTypes.number,\n current: PropTypes.number,\n};\n\nexport default ProgressBar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _isNumber from 'lodash/isNumber';\nimport _isString from 'lodash/isString';\nimport _parseInt from 'lodash/parseInt';\nimport _isNaN from 'lodash/isNaN';\nimport _isNull from 'lodash/isNull';\nimport _uniqueId from 'lodash/uniqueId';\nimport styled from 'styled-components';\nimport { commaFormatter, kFormatter } from '../../../utils';\nimport EditableReferenceLabel from '../../EditableReferenceLabel';\n\nimport { ProgressBar } from './components';\n\nconst Container = styled.div`\n height: fit-content;\n background-color: white;\n padding: 0.875rem 1rem;\n padding-top: 0.625rem;\n`;\n\n// Put AskMetric inside this component when you need round corners for container\nconst AskMetricWrapper = styled.div`\n overflow: hidden;\n border-radius: 8px;\n`;\n\nconst CurrentAmount = styled.div`\n display: inline;\n font-size: 1.5rem;\n line-height: 1.5rem;\n font-weight: 500;\n color: black;\n`;\n\nconst Caption = styled.div`\n display: flex;\n align-items: flex-end;\n flex-wrap: wrap;\n font-size: 0.8rem;\n line-height: 1.5rem;\n font-weight: 500;\n color: grey;\n max-width: 758px;\n margin: 0 auto;\n margin-top: 0.32rem;\n`;\n\nconst Description = styled.div`\n line-height: 1.2;\n margin-left: 0.25rem;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nconst MetricWrapper = styled.div`\n display: flex;\n align-items: center;\n max-width: 100%;\n`;\n\nconst SocialMetricName = styled.div`\n line-height: 1.5rem;\n color: #727278;\n margin-right: 0.25rem;\n margin-left: 6px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nconst SocialMetricValue = styled.span`\n line-height: 1.5rem;\n margin-left: 0.25rem;\n color: black;\n`;\n\nconst toInteger = (v) => (_parseInt(v) || 0);\nconst toString = (v) =>\n !_isNaN(v) && (_isString(v) || _isNumber(v)) ? v.toString() : '';\n\nconst prepareOtherProgressValues = ({\n otherGoalAmount,\n otherGoal,\n otherGoalName,\n}) => {\n const otherAmountMatch = toString(otherGoalAmount).match(/\\d+/);\n const otherGoalMatch = toString(otherGoal).match(/\\d+/);\n let current, currentAmount, full, restGoal, splitted;\n\n if (otherAmountMatch) {\n splitted = otherGoalAmount.split(otherAmountMatch);\n current = toInteger(Number(otherAmountMatch[0]));\n currentAmount = splitted.join(\n toString(commaFormatter(Number(otherAmountMatch[0]))),\n );\n }\n\n if (otherGoalMatch) {\n splitted = otherGoal.split(otherGoalMatch[0]);\n full = toInteger(Number(otherGoalMatch[0]));\n restGoal = splitted.join(toString(commaFormatter(otherGoalMatch[0])));\n }\n\n current = current || toInteger(otherGoalAmount);\n currentAmount = currentAmount || toString(otherGoalAmount);\n full = full || toInteger(otherGoal);\n restGoal = restGoal || toString(otherGoal);\n\n return {\n restLabel: ['of', restGoal, toString(otherGoalName)].join(' '),\n current,\n currentAmount,\n full,\n };\n};\n\nconst prepareProgressValues = ({\n goal,\n raiseAmountByBlock,\n raiseAmountByExperience,\n raiseAmountByAsker,\n raiseAmountByVariant,\n raiseGoalType,\n raiseGoal,\n raiseGoalName,\n raiseCurrency,\n ...rest\n}) => {\n const key = goal.split('_')[0];\n const getRaiseAmount = () => {\n if (raiseGoalType === 'by_block') {\n return raiseAmountByBlock;\n } else if (raiseGoalType === 'by_experience') {\n return raiseAmountByExperience;\n } else if (raiseGoalType === 'by_variant') {\n return raiseAmountByVariant;\n } else {\n return raiseAmountByAsker;\n }\n };\n const raiseAmount = getRaiseAmount();\n\n if (goal === 'raise_amount') {\n return {\n current: toInteger(raiseAmount),\n full: toInteger(raiseGoal),\n currentAmount: `${raiseCurrency}${toString(\n commaFormatter(toInteger(raiseAmount)),\n )}`,\n restLabel: [\n 'of',\n `${raiseCurrency}${toString(commaFormatter(raiseGoal))}`,\n toString(raiseGoalName),\n ].join(' '),\n };\n } else if (goal === 'other_amount') {\n return prepareOtherProgressValues({\n otherGoalAmount: rest.otherGoalAmount,\n otherGoal: rest.otherGoal,\n otherGoalName: rest.otherGoalName,\n });\n } else {\n return {\n current: toInteger(rest[`${key}Amount`]),\n currentAmount: toString(commaFormatter(rest[`${key}Amount`])),\n full: toInteger(rest[`${key}Goal`]),\n restLabel: [\n 'of',\n toString(commaFormatter(rest[`${key}Goal`])),\n toString(rest[`${key}GoalName`]),\n ].join(' '),\n };\n }\n};\n\nfunction renderGoalProgress(props) {\n const { currentAmount, restLabel, full, current } = prepareProgressValues(\n props,\n );\n const { isPreview } = props;\n\n return (\n <>\n \n {currentAmount}{' '}\n \n {isPreview ? (\n \n ) : (\n
\n )}\n \n \n \n \n );\n}\n\nfunction renderSocialMetrics({\n amountRaisedMetric,\n amountRaisedMetricName,\n amountRaisedByExperienceMetric,\n amountRaisedByExperienceMetricName,\n amountRaisedByAskerMetric,\n amountRaisedByAskerMetricName,\n amountRaisedByVariantMetric,\n amountRaisedByVariantMetricName,\n submissionsMetric,\n submissionsMetricName,\n raiseCurrency,\n raiseAmountByBlock,\n raiseAmountByExperience,\n raiseAmountByAsker,\n raiseAmountByVariant,\n submissionAmount,\n otherMetric,\n otherMetricName,\n otherMetricAmount,\n isPreview,\n}) {\n const metricStrings = [];\n const prepareCurrentAmount = (v) =>\n _isNaN(v) || _isNull(v) ? '' : kFormatter(v);\n const prepareCurrentOtherAmount = (value) => {\n if (_isNaN(value) || _isNull(value)) {\n return '';\n }\n const match = value.match(/\\d+/);\n\n if (match) {\n return value.split(match[0]).join(kFormatter(Number(match[0])));\n } else {\n return value;\n }\n };\n\n if (amountRaisedMetric) {\n const currentAmount = [\n raiseCurrency,\n prepareCurrentAmount(raiseAmountByBlock),\n ].join('');\n\n metricStrings.push({\n metricValue: currentAmount,\n metricName: ' ' + amountRaisedMetricName,\n });\n }\n\n if (amountRaisedByExperienceMetric) {\n const currentAmount = [\n raiseCurrency,\n prepareCurrentAmount(raiseAmountByExperience),\n ].join('');\n\n metricStrings.push({\n metricValue: currentAmount,\n metricName: ' ' + amountRaisedByExperienceMetricName,\n });\n }\n\n if (amountRaisedByAskerMetric) {\n const currentAmount = [\n raiseCurrency,\n prepareCurrentAmount(raiseAmountByAsker),\n ].join('');\n\n metricStrings.push({\n metricValue: currentAmount,\n metricName: ' ' + amountRaisedByAskerMetricName,\n });\n }\n\n if (amountRaisedByVariantMetric) {\n const currentAmount = [\n raiseCurrency,\n prepareCurrentAmount(raiseAmountByVariant),\n ].join('');\n\n metricStrings.push({\n metricValue: currentAmount,\n metricName: ' ' + amountRaisedByVariantMetricName,\n });\n }\n\n if (submissionsMetric) {\n metricStrings.push({\n metricValue: prepareCurrentAmount(submissionAmount),\n metricName: ' ' + submissionsMetricName,\n });\n }\n\n if (otherMetric) {\n metricStrings.push({\n metricValue: prepareCurrentOtherAmount(otherMetricAmount),\n metricName: ' ' + otherMetricName,\n });\n }\n\n return (\n \n {metricStrings.map(({ metricValue, metricName }) => (\n \n {metricValue}\n \n {isPreview ? (\n \n ) : (\n
\n )}\n \n \n ))}\n \n );\n}\n\nfunction AskMetric(props) {\n const {\n goal,\n submissionsMetric,\n amountRaisedMetric,\n amountRaisedByExperienceMetric,\n amountRaisedByAskerMetric,\n amountRaisedByVariantMetric,\n otherMetric,\n } = props;\n const socialMetrics =\n submissionsMetric ||\n amountRaisedMetric ||\n amountRaisedByExperienceMetric ||\n amountRaisedByAskerMetric ||\n amountRaisedByVariantMetric ||\n otherMetric;\n const withGoalProgress = goal && goal !== 'none';\n\n return (\n \n {withGoalProgress && renderGoalProgress(props)}\n\n {socialMetrics && renderSocialMetrics(props)}\n \n );\n}\n\nconst propTypes = {\n goal: PropTypes.string.isRequired,\n submissionAmount: PropTypes.number,\n submissionGoal: PropTypes.number,\n submissionGoalName: PropTypes.string,\n otherGoalAmount: PropTypes.string,\n otherGoal: PropTypes.string,\n otherGoalName: PropTypes.string,\n raiseAmountByBlock: PropTypes.number,\n raiseAmountByExperience: PropTypes.number,\n raiseAmountByAsker: PropTypes.number,\n raiseAmountByVariant: PropTypes.number,\n raiseGoalType: PropTypes.string,\n raiseGoal: PropTypes.number,\n raiseGoalName: PropTypes.string,\n raiseCurrency: PropTypes.string,\n submissionsMetric: PropTypes.bool,\n submissionsMetricName: PropTypes.string,\n amountRaisedMetric: PropTypes.bool,\n amountRaisedMetricName: PropTypes.string,\n amountRaisedByExperienceMetric: PropTypes.bool,\n amountRaisedByExperienceMetricName: PropTypes.string,\n amountRaisedByAskerMetric: PropTypes.bool,\n amountRaisedByAskerMetricName: PropTypes.string,\n amountRaisedByVariantMetric: PropTypes.bool,\n amountRaisedByVariantMetricName: PropTypes.string,\n otherMetric: PropTypes.bool,\n otherMetricAmount: PropTypes.string,\n otherMetricName: PropTypes.string,\n};\n\nAskMetric.propTypes = propTypes;\n\nconst defaultProps = {\n goal: 'none',\n submissionAmount: NaN,\n submissionGoal: NaN,\n otherGoalAmount: '',\n otherGoal: '',\n raiseAmountByBlock: 0,\n raiseAmountByExperience: 0,\n raiseAmountByAsker: 0,\n raiseAmountByVariant: 0,\n raiseGoal: NaN,\n raiseCurrency: '$',\n submissionsMetric: false,\n submissionsMetricName: 'submissions',\n amountRaisedMetric: false,\n amountRaisedMetricName: 'donations',\n amountRaisedByExperienceMetric: false,\n amountRaisedByExperienceMetricName: 'experience raised',\n amountRaisedByAskerMetric: false,\n amountRaisedByAskerMetricName: 'asker raised',\n amountRaisedByVariantMetric: false,\n amountRaisedByVariantMetricName: 'asker raised',\n otherMetric: false,\n otherMetricAmount: '0',\n};\n\nAskMetric.defaultProps = defaultProps;\n\nexport default AskMetric;\nexport { propTypes, defaultProps, AskMetricWrapper };\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport MetricsBottomBar, {\n propTypes as MetricsPropTypes,\n defaultProps as DefaultMetricsPropTypes,\n} from '../../ask/MetricsBottomBar';\n\nconst Container = styled.div`\n width: 100%;\n height: fit-content;\n z-index: 3;\n`;\n\nfunction BottomBar({ askMetric, isPreview }) {\n return (\n \n \n \n );\n}\n\nBottomBar.propTypes = MetricsPropTypes;\nBottomBar.defaultProps = DefaultMetricsPropTypes;\n\nexport default BottomBar;\n","import styled from 'styled-components';\n\nexport const Logo = styled.div`\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n margin-right: 9px;\n background-image: url(${(props) => props.logoUrl});\n background-size: contain;\n background-position: center;\n border-radius: 50%;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.15);\n\n @media (min-width: 375px) {\n width: 32px;\n height: 32px;\n }\n\n @media (min-width: 768px) {\n width: 48px;\n height: 48px;\n margin-right: 12px;\n }\n\n @media (min-width: 1024px) {\n width: 54px;\n height: 54px;\n }\n`;\n\nexport const BrandingName = styled.div`\n flex: 1;\n white-space: nowrap;\n font-size: 11px;\n font-weight: 500;\n text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.12);\n overflow: hidden;\n text-overflow: ellipsis;\n\n @media (min-width: 375px) {\n font-size: 12px;\n }\n\n @media (min-width: 768px) {\n font-size: 16px;\n }\n\n @media (min-width: 1024px) {\n font-size: 18px;\n }\n`;\n\nexport const Anchor = styled.a`\n display: inline-grid;\n grid-template-columns: auto auto;\n align-items: center;\n color: #fff;\n text-decoration: none;\n margin-right: 100px;\n transform-origin: left;\n transition: transform 0.2s;\n\n &:hover {\n color: #fff;\n transform: scale(1.04);\n }\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Anchor, BrandingName, Logo } from './style';\n\nfunction BrandingLink({ name, schemalessUrl, logoUrl }) {\n return (\n \n {logoUrl && (\n \n )}\n \n {name}\n \n \n );\n}\n\nBrandingLink.propTypes = {\n name: PropTypes.string.isRequired,\n schemalessUrl: PropTypes.string,\n logoUrl: PropTypes.string,\n};\n\nexport default BrandingLink;\n","export const styles = {\n textField: {\n width: '100%',\n '& .MuiInput-formControl': {\n marginTop: 0,\n backgroundColor: 'transparent',\n },\n '& .MuiFilledInput-root': {\n position: 'relative',\n backgroundColor: 'transparent',\n },\n '& .MuiFormLabel-root.MuiFormLabel-filled': {\n transform: 'translate(16px, -15px)',\n fontSize: '12px',\n },\n '& .MuiFormLabel-root.Mui-focused': {\n transform: 'translate(16px, -15px)',\n fontSize: '12px',\n },\n '& .MuiFormLabel-root.Mui-error': {\n color: '#ff432e',\n },\n '& .MuiInputBase-root.Mui-error .MuiInputBase-input': {\n border: '1.5px solid #ff432e',\n },\n '& .MuiInputBase-root.MuiFilledInput-root': {\n '&:hover, &.Mui-focused, &.Mui-disabled': {\n backgroundColor: 'transparent',\n },\n },\n '& .MuiInputLabel-filled.MuiInputLabel-shrink': {\n transform: 'translate(16px, -15px)',\n fontSize: '12px',\n backgroundColor: 'transparent',\n marginTop: '17px',\n },\n '& .MuiInputLabel-filled.Mui-error': {\n transform: 'translate(16px, -15px)',\n fontSize: '12px',\n backgroundColor: 'transparent',\n marginTop: '17px',\n },\n '& .MuiFormHelperText-root.Mui-error': {\n color: '#fff',\n },\n '& .MuiInputAdornment-root': {\n position: 'absolute',\n right: '12px',\n zIndex: 1,\n '& .MuiButtonBase-root': {\n padding: '6px',\n mr: 0,\n },\n '&.Mui-error .MuiFilledInput-input': {\n border: '1.5px solid #ff432e',\n },\n },\n '& .MuiInputBase-input.MuiInputBase-inputAdornedEnd': {\n pr: 7,\n },\n },\n input: {\n p: 0,\n '& .MuiInputBase-input': {\n height: '1.1876em',\n lineHeight: '1.1876em',\n padding: '20px 16px 6px',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.08)',\n MozAppearance: 'textfield',\n },\n '& .MuiInputBase-input::-webkit-outer-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n '& .MuiInputBase-input::-webkit-inner-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n },\n inputLabel: {\n lineHeight: 1.3,\n fontWeight: 500,\n margin: '17px 0 8px',\n letterSpacing: 'normal',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n width: 'calc(100% - 32px)',\n transition: 'transform 0.2s, font-size 0.2s',\n },\n formHelperText: {\n position: 'absolute',\n top: '-10px',\n right: '-8px',\n padding: '2px 8px',\n backgroundColor: '#ff432e',\n borderRadius: '6px',\n zIndex: 1,\n },\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport MUITextField from '@mui/material/TextField';\nimport { styles } from './style';\nimport { getLabelMarginTop } from '../utils';\n\nexport const TextField = ({\n name,\n defaultValue,\n label,\n error,\n helperText,\n onFocus,\n disabled,\n multiline,\n isPreview,\n cssStyle,\n onChange,\n type = 'text',\n ...props\n}) => {\n const valueAttribute = isPreview ? { value: defaultValue } : { defaultValue };\n const color = cssStyle.color;\n const ref = React.useRef(null);\n\n React.useEffect(() => {\n if (ref && ref.current && error) {\n ref.current.scrollIntoView();\n }\n }, []);\n\n return (\n \n );\n};\n\nTextField.propTypes = {\n name: PropTypes.string,\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n onFocus: PropTypes.func,\n helperText: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n label: PropTypes.object,\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker';\nimport { TextField } from '../TextField';\nimport { styles } from './style';\n\nexport const DateSelector = ({\n name,\n label,\n defaultValue,\n onFocus,\n helperText,\n error,\n disabled,\n cssStyle,\n}) => {\n const [selectedDate, setSelectedDate] = useState(defaultValue && !error ? defaultValue : null);\n\n return (\n \n {\n return (\n \n );\n }}\n InputProps={{ onFocus }}\n PaperProps={{ sx: styles.paper }}\n />\n \n );\n};\n\nDateSelector.propTypes = {\n name: PropTypes.string,\n defaultValue: PropTypes.string,\n onFocus: PropTypes.func,\n helperText: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n label: PropTypes.object,\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n","import { inputLabelClasses } from '@mui/material/InputLabel';\n\nexport const styles = {\n formControl: {\n width: '100%',\n '& .MuiInput-formControl': {\n marginTop: 0,\n backgroundColor: 'transparent',\n },\n '& .MuiFilledInput-root': {\n position: 'relative',\n backgroundColor: 'transparent',\n },\n '& .MuiFormLabel-root.Mui-focused': {\n fontSize: '12px',\n transform: 'translate(16px, -12px)',\n },\n '& .MuiFormLabel-root.Mui-error': {\n color: '#ff432e',\n },\n '& .MuiInputBase-root.Mui-error .MuiInputBase-input, & .MuiInputBase-root.Mui-error .MuiNativeSelect-select.MuiNativeSelect-select:hover': {\n border: '1.5px solid #ff432e',\n },\n '& .MuiFormHelperText-root.Mui-error': {\n color: '#fff',\n },\n '& .MuiNativeSelect-select.MuiNativeSelect-select': {\n paddingRight: '44px',\n },\n },\n inputLabel: {\n width: 'calc(100% - 60px)',\n lineHeight: 1.3,\n letterSpacing: 'normal',\n fontWeight: 500,\n margin: '14px 0 8px',\n zIndex: 1,\n pointerEvents: 'none',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n transition: 'transform 0.2s, font-size 0.2s',\n [`&.${inputLabelClasses.shrink}`]: {\n fontSize: '12px',\n transform: 'translate(16px, -12px)',\n marginTop: '14px',\n },\n [`&.${inputLabelClasses.error}`]: {\n fontSize: '12px',\n transform: 'translate(16px, -12px)',\n marginTop: '14px',\n },\n },\n select: {\n '& .MuiInputBase-input': {\n height: '1.1876em',\n lineHeight: '1.1876em',\n background: '#fff',\n padding: '20px 16px 6px',\n borderRadius: '8px',\n border: '1.5px solid',\n borderColor: '#f2f2f2',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.08)',\n '&:hover': {\n borderColor: '#f2f2f2',\n },\n '&:disabled': {\n '&:hover': {\n border: '1.5px solid',\n borderColor: '#f2f2f2',\n },\n },\n '&:focus': {\n background: '#fff',\n boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.08)',\n borderRadius: '8px',\n },\n },\n '& .Mui-disabled': {\n cursor: 'not-allowed',\n backgroundColor: '#e6e6e6',\n },\n },\n formHelperText: {\n position: 'absolute',\n top: '-10px',\n right: 0,\n marginRight: '6px',\n padding: '2px 8px',\n backgroundColor: '#ff432e',\n borderRadius: '6px',\n zIndex: 1,\n },\n};\n\nexport const getCustomizedFormControlsStyles = ({ color, ...cssStyle }) => ({\n '& .MuiNativeSelect-select': {\n color: color || 'rgba(0, 0, 0, 0.87)',\n ...cssStyle,\n m: 0,\n },\n '& .MuiNativeSelect-select.MuiNativeSelect-select, & .MuiNativeSelect-select.MuiNativeSelect-select:hover, & .MuiNativeSelect-select.MuiNativeSelect-select:disabled, & .MuiNativeSelect-select.MuiNativeSelect-select:focus': {\n ...cssStyle,\n m: 0,\n },\n});\n\nexport const getCustomizedNativeSelectStyles = ({ color, ...cssStyle }) => {\n const disabledTextColor = color || 'rgba(0, 0, 0, 0.38)';\n\n return {\n '& .MuiNativeSelect-select': {\n color: color || 'rgba(0, 0, 0, 0.87)',\n ...cssStyle,\n m: 0,\n },\n '& .MuiNativeSelect-select:disabled': {\n ...cssStyle,\n m: 0,\n },\n '&.MuiInputBase-root .Mui-disabled': {\n ...(cssStyle && { backgroundColor: 'transparent' }),\n },\n '& .MuiNativeSelect-select:disabled:hover, & .MuiNativeSelect-select:hover, & .MuiNativeSelect-select:active, & .MuiNativeSelect-select:focus': {\n ...cssStyle,\n m: 0,\n },\n '& .MuiNativeSelect-icon': {\n top: 'unset',\n right: 0,\n marginRight: '16px',\n color: color || 'rgba(0, 0, 0, 0.54)',\n opacity: color ? 0.75 : 1,\n },\n '& .MuiNativeSelect-icon.Mui-disabled': {\n color: color || 'rgba(0, 0, 0, 0.26)',\n opacity: color ? 0.4 : 1,\n },\n '& .MuiNativeSelect-select.MuiInputBase-input.Mui-disabled': {\n color: disabledTextColor,\n WebkitTextFillColor: disabledTextColor,\n },\n };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _isNil from 'lodash/isNil';\nimport _uniqueId from 'lodash/uniqueId';\nimport { ChevronDown } from 'react-feather';\nimport InputLabel from '@mui/material/InputLabel';\nimport NativeSelect from '@mui/material/NativeSelect';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport InputBase from '@mui/material/InputBase';\nimport {\n styles,\n getCustomizedFormControlsStyles,\n getCustomizedNativeSelectStyles,\n} from './style';\n\nexport const Select = ({\n options,\n name,\n label,\n defaultValue,\n onFocus,\n helperText,\n isCurrentlyEmployed,\n cssStyle,\n error,\n onSelect,\n disabled,\n isPreview,\n}) => {\n const [value, setValue] = React.useState(\n _isNil(defaultValue) ? '' : defaultValue,\n );\n const ref = React.useRef(null);\n const color = cssStyle.color;\n\n React.useEffect(() => {\n if (ref && ref.current && error) {\n ref.current.scrollIntoView();\n }\n }, []);\n\n const handleChange = (event) => {\n if (onSelect) {\n onSelect(event);\n }\n\n setValue(event.target.value);\n };\n\n return (\n \n \n {label}\n \n \n }\n >\n {options.map(({ value, name, id }) => (\n \n ))}\n \n {error && (\n {helperText}\n )}\n \n );\n};\n\nSelect.propTypes = {\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n }),\n ).isRequired,\n cssStyle: PropTypes.object.isRequired,\n name: PropTypes.string,\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n onFocus: PropTypes.func,\n helperText: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n label: PropTypes.object,\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n","import React from 'react';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport MUICheckbox from '@mui/material/Checkbox';\nimport { getBooleanFromString } from '../utils';\n\nexport default function Checkbox({\n name,\n label,\n cssStyle,\n required,\n disabled,\n defaultValue,\n checkboxHidden,\n}) {\n const booleanDefaultValue = getBooleanFromString(defaultValue);\n const [value, setValue] = React.useState(booleanDefaultValue);\n const color = cssStyle.color;\n\n React.useEffect(() => {\n setValue(booleanDefaultValue);\n }, [defaultValue]);\n\n return (\n <>\n setValue(e.target.checked)}\n />\n }\n label={label}\n />\n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { Select } from '../../../../inputs/Select';\nimport PropTypes from 'prop-types';\n\nfunction MultipleChoiceSelect(props) {\n const [optionId, setOptionId] = useState();\n const handleSelectChange = (e) => {\n const selectedOption = e.target.selectedOptions[0];\n\n setOptionId(selectedOption.dataset.id);\n };\n\n useEffect(() => {\n const defaultOption = props.options.find(\n (option) => option.value === props.defaultValue,\n );\n\n setOptionId(defaultOption?.id);\n }, []);\n\n return (\n <>\n \n \n );\n}\n\nMultipleChoiceSelect.propTypes = {\n optionName: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n value: PropTypes.string,\n id: PropTypes.number,\n }),\n ),\n cssStyle: PropTypes.object.isRequired,\n};\n\nexport default MultipleChoiceSelect;\n","import React, { useState } from 'react';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport { TextField } from '../TextField';\nimport { CURRENCY_SIGN_MAP } from '../../../constants';\n\nexport default function MoneyTextField({ name, ...props }) {\n const { defaultValue, isPreview, fieldCurrency } = props;\n const number = defaultValue && defaultValue.replace(/[^0-9.-]+/g, '');\n\n const [value, setValue] = useState(isPreview ? defaultValue : number);\n\n const handleChange = (e) => {\n setValue(e.target.value);\n };\n\n return (\n <>\n \n {CURRENCY_SIGN_MAP[fieldCurrency]} {fieldCurrency}\n \n ),\n }}\n />\n {value && (\n \n )}\n \n );\n}\n","import { useState, useEffect, useContext } from 'react';\nimport ReferencesContext, { ADD_REFERENCE } from '../../contexts/ReferencesContext';\n\nfunction useReferenceName(reference) {\n const [{ references }, dispatch] = useContext(ReferencesContext);\n const [content, setContent] = useState([]);\n\n useEffect(() => {\n const parsedText = reference?.split(/({{.*?}})/g).map((text) => {\n if (!text.match(/{{(?!#|\\/).*}}/)) {\n return text;\n }\n\n const ref = references[text];\n\n if (!ref) {\n dispatch({\n type: ADD_REFERENCE,\n payload: {\n reference: text,\n },\n });\n }\n\n return ref?.name;\n });\n\n setContent(parsedText);\n }, [reference, references]);\n\n return content?.join('');\n}\n\nexport default useReferenceName;\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport Popover from '@mui/material/Popover';\nimport { useSlate } from 'slate-react';\n\nimport LinkIcon from '@mui/icons-material/Link';\nimport Button from '../ChangeButton';\nimport {\n Label,\n Container,\n ButtonGroup,\n PrimaryActionButton,\n ActionButton,\n InputWrapper,\n} from '../LinksButton/style';\nimport { Input } from '../../../../../inputs/Input';\nimport { isUrl, insertLink, activeLink, unwrapLink } from '../LinksButton/utils';\n\nfunction ResponderLinksButton({ onPopover }) {\n const editor = useSlate();\n const [selection, setSelection] = useState(null);\n const [anchoreEl, setAnchoreEl] = useState(null);\n const [inputValue, setInputValue] = useState('');\n const [error, setError] = useState(null);\n\n const handleOpen = useCallback(\n (e) => {\n if (onPopover) {\n onPopover(true);\n }\n const link = activeLink(editor);\n\n if (link) {\n setInputValue(link[0].url);\n }\n\n setAnchoreEl(e.currentTarget);\n setSelection(editor.selection);\n },\n [editor],\n );\n const handleClose = () => {\n if (onPopover) {\n onPopover(false);\n }\n setAnchoreEl(null);\n setInputValue('');\n setSelection(null);\n };\n const handleInputChange = (e) => {\n setInputValue(e.target.value);\n };\n const handleUnlink = useCallback(\n (e) => {\n e.preventDefault();\n editor.selection = selection;\n if (activeLink(editor)) {\n unwrapLink(editor);\n }\n handleClose();\n },\n [selection],\n );\n const handleLink = useCallback(\n (e) => {\n e.preventDefault();\n editor.selection = selection;\n\n if (!error) {\n insertLink(editor, inputValue);\n handleClose();\n }\n },\n [inputValue, error, selection],\n );\n\n useEffect(() => {\n if (inputValue !== '' && !isUrl(inputValue)) {\n setError('is not valid');\n } else {\n setError(null);\n }\n }, [inputValue]);\n\n const open = Boolean(anchoreEl);\n const id = open ? 'simple-popover' : undefined;\n const isActive = activeLink(editor);\n const iconColor = isActive ? '#FFF' : '#333';\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n Unlink\n \n \n Link\n \n \n \n \n \n );\n}\n\nexport default ResponderLinksButton;\n","import React from 'react';\nimport { useSlate, ReactEditor } from 'slate-react';\nimport { Editor, Range, Transforms } from 'slate';\nimport Stack from '@mui/material/Stack';\nimport Box from '@mui/material/Box';\nimport Popper from '@mui/material/Popper';\nimport ClickAwayListener from '@mui/material/ClickAwayListener';\nimport MarkButton from '../../../BlockForm/components/TitleSection/components/MarkButton';\nimport { Divider } from '../../../BlockForm/components/TitleSection/components/ButtonsContainer/style';\nimport HighlightPicker from '../../../BlockForm/components/TitleSection/components/HighlightPicker';\nimport ColorPicker from '../../../BlockForm/components/TitleSection/components/ColorPicker';\nimport BlockButton from '../../../BlockForm/components/TitleSection/components/BlockButton';\nimport Select from '../../../BlockForm/components/TitleSection/components/Select';\nimport LetterSettings from '../../../BlockForm/components/TitleSection/components/LetterSettings';\nimport ParagraphButton from '../../../BlockForm/components/TitleSection/components/ParagraphButton';\nimport useHorizontalScroll from '../../../hooks/useHorizontalScroll';\nimport ResponderLinksButton from '../../../BlockForm/components/TitleSection/components/ResponderLinksButton';\nimport { getMobileOS } from '../../../../utils';\nimport { FONT_WEIGHT_MENU_ITEMS } from '../../../../contexts/BlockContext';\n\nconst paletteColors = [\n '#35343e',\n '#000000',\n '#dd5571',\n '#eba845',\n '#4bb56f',\n '#3d89ae',\n '#114761',\n '#9040ac',\n].map((color) => ({ color, name: color }));\n\nfunction ResponderHoveringToolbar() {\n const [open, setOpen] = React.useState(false);\n const [popoverIsOpen, setPopoverIsOpen] = React.useState(false);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [placement, setPlacement] = React.useState('top-start');\n\n const editor = useSlate();\n const { selection } = editor;\n\n const {\n scrollContainerRef,\n handleScroll,\n isAtStart,\n isAtEnd,\n } = useHorizontalScroll();\n\n const closeToolbar = () => {\n setOpen(false);\n };\n\n const openToolbar = () => {\n setOpen(true);\n };\n\n const handleClickAway = () => {\n if (popoverIsOpen) {\n return;\n }\n closeToolbar();\n setAnchorEl(null);\n };\n\n React.useEffect(() => {\n if (getMobileOS() === 'Android') {\n setPlacement('bottom-start');\n }\n }, []);\n\n React.useEffect(() => {\n if (popoverIsOpen) {\n openToolbar();\n return;\n }\n if (\n !selection ||\n Range.isCollapsed(selection) ||\n Editor.string(editor, selection) === ''\n ) {\n closeToolbar();\n setAnchorEl(null);\n } else {\n if (!anchorEl) {\n const [node] = Editor.node(editor, selection);\n const selectedEl = ReactEditor.toDOMNode(editor, node);\n const getBoundingClientRect = () => {\n return selectedEl.getBoundingClientRect();\n };\n\n openToolbar();\n setAnchorEl({ getBoundingClientRect, nodeType: 1 });\n }\n }\n }, [selection, popoverIsOpen]);\n\n const handleParagraphButtonPopover = (isOpen) => {\n if (!isOpen) {\n closeToolbar();\n Transforms.collapse(editor, { edge: 'end' });\n }\n setPopoverIsOpen(isOpen);\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default ResponderHoveringToolbar;\n","import React from 'react';\nimport _isEmpty from 'lodash/isEmpty';\nimport _isObject from 'lodash/isObject';\nimport { createEditor, Transforms } from 'slate';\nimport { Slate, withReact } from 'slate-react';\nimport { withHistory } from 'slate-history';\nimport { withMention } from '../../SlateElements/components/Mention';\nimport { withLinks } from '../../BlockForm/components/TitleSection/components/LinksButton/utils';\nimport ResponderHoveringToolbar from '../../SlateElements/components/ResponderHoveringToolbar';\nimport {\n buildSlateElements,\n elementsToText,\n} from '../../SlateElements/components/utils';\nimport Element from '../../SlateElements/components/Element';\nimport Leaf from '../../SlateElements/components/Leaf';\nimport { Input } from '../../SlateElements/components/EditableMentionsInput/style';\nimport { TextField } from '../TextField';\nimport { slateToHtml } from '../../BlockForm/components/TitleSection/utils';\n\nconst SlateInput = React.forwardRef(\n ({ renderElement, renderLeaf, ...rest }, ref) => {\n return (\n \n );\n },\n);\n\nexport default function RichTextField(props) {\n const [elements, setElements] = React.useState(\n _isObject(props.defaultValue)\n ? JSON.parse(props.defaultValue.titleElements)\n : buildSlateElements(props.defaultValue),\n );\n const firstRender = React.useRef(true);\n\n const editor = React.useMemo(\n () => withMention(withLinks(withHistory(withReact(createEditor())))),\n [],\n );\n\n React.useEffect(() => {\n if (firstRender.current) {\n firstRender.current = false;\n } else {\n Transforms.delete(editor, { at: [0] });\n Transforms.insertNodes(editor, buildSlateElements(props.defaultValue));\n }\n }, [props.defaultValue]);\n\n const renderElement = React.useCallback((elementProps) => {\n return ;\n }, []);\n const renderLeaf = React.useCallback((props) => , []);\n\n const textValue = React.useMemo(() => {\n return elementsToText(elements);\n }, [elements]);\n\n const handleValueChange = (elements) => {\n setElements(elements);\n };\n\n return (\n \n \n \n {textValue ? (\n <>\n \n \n \n \n ) : (\n \n )}\n \n );\n}\n","import React from 'react';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport ClearOutlinedIcon from '@mui/icons-material/ClearOutlined';\n\nexport default function ProgressBar({\n visible,\n percentageRef,\n progressBarRef,\n color,\n onCancel,\n}) {\n return (\n \n \n Uploading...\n \n \n \n \n \n 0%\n \n \n \n \n \n );\n}\n","import React from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { ALL_ALLOWED_FILE_TYPES } from '../../../constants';\nimport { uploadMediaValidator } from '../../UploadMediaSection/uploadMediaValidator';\nimport CloudUploadOutlinedIcon from '@mui/icons-material/CloudUploadOutlined';\nimport DeleteOutlineOutlinedIcon from '@mui/icons-material/DeleteOutlineOutlined';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport { ErrorMessage } from '../../responder/MultipleChoiceSelector/components/ButtonsSelector/components/style';\nimport { Uploader } from '../../../uploader';\nimport ProgressBar from './ProgressBar';\n\nexport default function UploadField({\n helperText,\n name,\n defaultValue,\n cssStyle,\n isPreview,\n label,\n}) {\n const [fileName, setFileName] = React.useState(defaultValue ? defaultValue[0].name : null);\n const [uploading, setUploading] = React.useState(false);\n const [signedId, setSignedId] = React.useState(\n defaultValue ? defaultValue[0].signed_id : '',\n );\n const [errorMessage, setErrorMessage] = React.useState(helperText);\n const progressPercentageRef = React.useRef(null);\n const progressBarRef = React.useRef(null);\n const activeUpload = React.useRef(false);\n\n const setActiveUploadRequest = (request) => {\n activeUpload.current = request;\n };\n\n const uploadCreateCallback = (error, { signed_id }) => {\n if (!error) {\n setSignedId(signed_id);\n }\n };\n\n const handleCompleteUpload = (file) => {\n setUploading(false);\n setFileName(file.name);\n };\n\n const handleCancelUpload = () => {\n if (activeUpload.current) {\n activeUpload.current.abort();\n }\n\n handleClear();\n setUploading(false);\n };\n\n const handleClear = () => {\n setSignedId('');\n setFileName(null);\n };\n\n const onDropAccepted = (acceptedFiles) => {\n setUploading(true);\n const uploader = new Uploader(\n acceptedFiles[0],\n '/rails/active_storage/direct_uploads',\n progressPercentageRef.current,\n progressBarRef.current,\n setActiveUploadRequest,\n () => handleCompleteUpload(acceptedFiles[0]),\n );\n\n uploader.create(uploadCreateCallback);\n setErrorMessage('');\n };\n\n const onDropRejected = (rejectedFiles) => {\n rejectedFiles.map(({ errors }) => {\n const errorMessage = errors[1] ? errors[1].message : errors[0].message;\n\n setErrorMessage(errorMessage);\n handleClear();\n });\n };\n\n const {\n getRootProps,\n getInputProps,\n isDragAccept,\n isDragReject,\n open,\n } = useDropzone({\n accept: ALL_ALLOWED_FILE_TYPES,\n noClick: true,\n multiple: false,\n validator: (file) => uploadMediaValidator(file, true),\n onDropAccepted,\n onDropRejected,\n });\n const style = React.useMemo(\n () => ({\n ...(isDragAccept ? { outline: '2px dashed var(--success)' } : {}),\n ...(isDragReject ? { outline: '2px dashed var(--error)' } : {}),\n }),\n [isDragAccept, isDragReject],\n );\n\n return (\n <>\n {label}\n \n {errorMessage && (\n \n {errorMessage}\n \n )}\n {!fileName && !uploading && (\n \n \n \n Choose a file or drag it here.\n \n \n )}\n {fileName && !uploading && (\n \n {fileName}\n \n \n )}\n {!isPreview && (\n \n )}\n \n \n \n \n );\n}\n","import React from 'react';\nimport Modal from '@mui/material/Modal';\nimport SignatureCanvas from 'react-signature-pad-wrapper';\nimport Box from '@mui/material/Box';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport Button from '@mui/material/Button';\n\nexport default function SignaturePad({\n open,\n handleClose,\n onSave,\n onClear,\n canvasRef,\n isUploading,\n}) {\n return (\n \n \n \n \n \n \n \n Clear\n \n \n Save\n \n \n \n \n );\n}\n","import React from 'react';\nimport Box from '@mui/material/Box';\nimport DrawOutlinedIcon from '@mui/icons-material/DrawOutlined';\nimport Typography from '@mui/material/Typography';\nimport SignaturePad from './SignaturePad';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport { DirectUpload } from '@rails/activestorage';\nimport { ErrorMessage } from '../../responder/MultipleChoiceSelector/components/ButtonsSelector/components/style';\n\nexport default function SignatureField({\n helperText,\n name,\n defaultValue,\n cssStyle,\n isPreview,\n label,\n}) {\n const [errorMessage, setErrorMessage] = React.useState(helperText);\n const [signedId, setSignedId] = React.useState(defaultValue?.signed_id || '');\n const [open, setOpen] = React.useState(false);\n const [isUploading, setIsUploading] = React.useState(false);\n const [isEmpty, setIsEmpty] = React.useState(true);\n const [svg, setSvg] = React.useState();\n const canvasRef = React.useRef(null);\n\n const handleOpen = () => setOpen(true);\n const handleClose = () => setOpen(false);\n const handleClearPad = () => {\n canvasRef.current.clear();\n };\n const handleSaveSignature = () => {\n if (canvasRef.current.isEmpty()) {\n setSignedId('');\n setIsEmpty(true);\n handleClose();\n } else {\n const canvas = canvasRef.current;\n const svg = canvas.toSVG();\n setSvg(svg);\n\n const timestamp = new Date().getTime();\n const file = new File([svg], `signature_${timestamp}.svg`, {\n type: 'image/svg+xml',\n });\n\n setIsUploading(true);\n const upload = new DirectUpload(\n file,\n '/rails/active_storage/direct_uploads',\n );\n upload.create((error, blob) => {\n if (error) {\n setErrorMessage(error);\n } else {\n setSignedId(blob.signed_id);\n }\n\n handleClose();\n setIsEmpty(false);\n setIsUploading(false);\n });\n }\n };\n\n return (\n <>\n {label}\n \n {errorMessage && (\n \n {errorMessage}\n \n )}\n \n {isEmpty\n ? (\n <>\n \n \n Click here to sign.\n \n \n )\n : (\n \n \n {\n setSignedId('');\n setIsEmpty(true);\n }}\n />\n \n )}\n \n \n {!isPreview && (\n \n )}\n \n \n );\n}\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { DateSelector } from '../../../../inputs/DateSelector';\nimport { Select } from '../../../../inputs/Select';\nimport { TextField } from '../../../../inputs/TextField';\nimport Checkbox from '../../../../inputs/Checkbox';\nimport { COUNTRIES_FOR_SELECT } from '../../../../../constants';\nimport { subscribeTo } from '../../../../../sharedStore';\nimport MultipleChoiceSelect from '../MultipleChoiceSelect';\nimport MoneyTextField from '../../../../inputs/MoneyTextField';\nimport useReferenceName from '../../../../hooks/useReferenceName';\nimport useUpdateReferencesTags from '../../../../hooks/useUpdateReferencesTags';\nimport { toHtmlWithStyledReferences } from '../../../../../utils';\nimport Box from '@mui/material/Box';\nimport RichTextField from '../../../../inputs/RichTextField';\nimport UploadField from '../../../../inputs/UploadField';\nimport SignatureField from '../../../../inputs/SignatureField';\n\nexport const currentlyEmployedOptions = [\n { value: '', name: 'Are you currently employed?' },\n { value: 'true', name: 'Yes, I am currently employed.' },\n { value: 'false', name: 'No, I am not currently employed.' },\n];\n\nexport const DataFieldWrapper = ({ type, ...props }) => {\n const [errorMessage, setErrorMessage] = React.useState(props.error || null);\n const parsedHtml =\n props.isPreview && useUpdateReferencesTags(props.richText.titleHtml);\n const previewHtmlLabel =\n props.isPreview && toHtmlWithStyledReferences(parsedHtml);\n\n useEffect(() => {\n subscribeTo(`dataFieldError_${props.errorKey}`, handleStimulusError);\n }, []);\n\n const handleStimulusError = (value) => {\n setErrorMessage(value);\n };\n\n const removeError = () => {\n setErrorMessage(null);\n };\n\n const baseProps = {\n onFocus: removeError,\n helperText: errorMessage,\n error: !!errorMessage,\n label: (\n \n ),\n };\n\n const previewDefaultValue = {\n ...(props.isPreview && {\n defaultValue: useReferenceName(props.defaultValue),\n }),\n };\n\n const buildMultipleChoiceOptions = () => {\n const initialOption = [{ value: '', title: '' }];\n\n const preparedMultipleChoiceOptions = props.multipleChoiceOptions.map(\n (option) => ({\n value: option.richText.title,\n name: option.richText.title,\n id: option.id,\n }),\n );\n\n return [...initialOption, ...preparedMultipleChoiceOptions];\n };\n\n switch (type) {\n case 'date_of_birth':\n return ;\n case 'country':\n return (\n \n );\n case 'currently_employed':\n return (\n \n );\n case 'multiple_choice':\n return (\n \n );\n case 'integer':\n return (\n \n );\n case 'money':\n return (\n \n );\n case 'checkbox':\n return (\n \n );\n case 'rich_text':\n return (\n \n );\n case 'upload':\n return (\n \n );\n case 'signature':\n return (\n \n );\n default:\n return (\n \n );\n }\n};\n\nDataFieldWrapper.propTypes = {\n type: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n cssStyle: PropTypes.object.isRequired,\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.object]),\n onSelectedValue: PropTypes.func,\n currency: PropTypes.string.isRequired,\n errorKey: PropTypes.string.isRequired,\n error: PropTypes.string,\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n`;\n\nexport const DataFieldContainer = styled.div`\n display: ${(props) => props.hidden ? 'none' : 'flex'};\n flex-direction: column;\n flex: ${(props) => (props.halfWidth ? '1 1 50%' : ' 1 0 100%')};\n max-width: ${(props) => (props.halfWidth ? 'calc(50% - 4px)' : '100%')};\n margin-bottom: 8px;\n\n &:last-child {\n margin-bottom: 0;\n }\n`;\n","import _isEmpty from 'lodash/isEmpty';\nimport _omitBy from 'lodash/omitBy';\n\nconst halfWidthTypes = ['first_name', 'last_name'];\nconst typesMapper = {\n first_name: 'last_name',\n last_name: 'first_name',\n};\nconst setType = (field) => {\n if (field) {\n return field.attributes?.type || field.type;\n }\n};\n\nexport const isHalfWidth = (current, prev, next) => {\n const currentType = setType(current);\n\n if (!halfWidthTypes.includes(currentType)) {\n return false;\n }\n\n const nextType = setType(next);\n const prevType = setType(prev);\n\n return (\n typesMapper[currentType] === nextType ||\n typesMapper[currentType] === prevType\n );\n};\n\nconst initialCssStyle = {\n backgroundColor: 'rgba(255,255,255,1)',\n borderColor: 'rgba(255,255,255,1)',\n borderWidth: '0px',\n borderStyle: 'solid',\n boxShadow: 'rgb(0 0 0 / 8%) 0px 2px 4px',\n borderRadius: '8px',\n};\n\nconst checkboxInitialCssStyle = {\n backgroundColor: 'rgba(255,255,255,0)',\n borderColor: 'rgba(255,255,255,0)',\n borderWidth: '0px',\n borderStyle: 'solid',\n borderRadius: '8px',\n};\n\nexport const buildCssStyle = (type, cssStyle) => ({\n ...(type === 'checkbox' ? checkboxInitialCssStyle : initialCssStyle),\n ...(!_isEmpty(cssStyle) && _omitBy(cssStyle, _isEmpty)),\n});\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _isEmpty from 'lodash/isEmpty';\nimport _omitBy from 'lodash/omitBy';\nimport { DataFieldWrapper } from './components/DataFieldWrapper';\nimport { Container, DataFieldContainer } from './style';\nimport { createTheme, ThemeProvider } from '@mui/material/styles';\nimport { isHalfWidth, buildCssStyle } from './utils';\nimport BlockLabel from '../../shared/BlockLabel';\n\nfunction DataFieldsSelector({\n fields,\n responses,\n currency,\n errors,\n disabledFields,\n isPreview,\n askLabel,\n}) {\n const theme = createTheme({\n typography: {\n fontFamily: 'inherit',\n },\n overrides: {\n MuiInputLabel: {\n root: {\n letterSpacing: 'normal',\n },\n },\n },\n });\n const inputName = (index, attrName) => {\n return `data_response[data_field_responses_attributes][${index}][${attrName}]`;\n };\n\n const errorKey = (index) => `data_field_responses[${index}].value`;\n\n const parseErrors = (index) => {\n if (_isEmpty(errors)) {\n return null;\n } else {\n const errorMessages = errors[errorKey(index)];\n\n return errorMessages ? errorMessages[0] : null;\n }\n };\n\n const getResponse = (id) => {\n if (responses.length > 0) {\n return responses.find((response) => response.attributes.dataFieldId == id);\n }\n };\n\n return (\n \n \n \n {fields.map((item, index) => {\n const field = item.attributes || item;\n const response = getResponse(field.id);\n\n return (\n \n \n );\n}\n\nDataFieldsSelector.propTypes = {\n fields: PropTypes.arrayOf(PropTypes.object).isRequired,\n responses: PropTypes.arrayOf(PropTypes.object).isRequired,\n currency: PropTypes.string.isRequired,\n errors: PropTypes.object,\n disabledFields: PropTypes.bool,\n};\n\nexport default DataFieldsSelector;\n","export const initialStyles = {\n width: '100%',\n maxWidth: '100%',\n fontSize: 18,\n lineHeight: '22px',\n textAlign: 'center',\n fontWeight: 500,\n cursor: 'pointer',\n letterSpacing: '-0.5px',\n transition: 'transform 0.1s',\n color: 'rgba(255, 255, 255, 0.8)',\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\n borderColor: 'rgba(255, 255, 255, 0.4)',\n borderStyle: 'solid',\n borderWidth: '1px',\n borderRadius: '8px',\n boxShadow: 'none',\n marginTop: '0px',\n marginRight: '0px',\n marginBottom: '0px',\n marginLeft: '0px',\n paddingTop: '12px',\n paddingRight: '0px',\n paddingBottom: '12px',\n paddingLeft: '0px',\n};\n\nexport const checkedStyles = {\n borderStyle: 'solid',\n borderColor: 'rgba(255, 255, 255, 0.4)',\n backgroundColor: '#fff',\n color: '#000',\n};\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _omitBy from 'lodash/omitBy';\nimport _chunk from 'lodash/chunk';\nimport _uniqueId from 'lodash/uniqueId';\nimport _isEmpty from 'lodash/isEmpty';\nimport Box from '@mui/material/Box';\nimport EditableReferenceLabel from '../../../../EditableReferenceLabel';\nimport { initialStyles, checkedStyles } from './style';\n\nconst MAX_AMOUNT = 4;\nconst MAX_CHUNK = 4;\nconst MIN_CHUNK = 2;\n\nfunction AmountButton({\n amount,\n cssStyle,\n currentAmount,\n onClick,\n currency,\n disabled,\n isPreview,\n}) {\n const isChecked =\n amount?.toString().replace(',', '') ===\n currentAmount?.toString().replace(',', '');\n const styles = _omitBy(cssStyle, _isEmpty);\n\n return (\n \n \n {currency}\n {isPreview ? : amount}\n \n \n );\n}\n\nfunction WithAmountContainer(children) {\n return function({\n paymentOptions,\n currentAmount,\n onClick,\n currency,\n withCustom,\n disabled,\n isPreview,\n }) {\n const baseParams = {\n onClick,\n currency,\n currentAmount,\n disabled,\n };\n const chunkSize =\n paymentOptions.length === MAX_AMOUNT && !withCustom\n ? MIN_CHUNK\n : MAX_CHUNK;\n const chunks = _chunk(paymentOptions, chunkSize);\n\n return chunks.map((chunk) => (\n \n {chunk.map((option) => {\n const {\n attributes: { amountNumber, cssStyle },\n } = option;\n return children({\n cssStyle,\n isPreview,\n amount: amountNumber,\n ...baseParams,\n });\n })}\n \n ));\n };\n}\n\nAmountButton.propTypes = {\n amount: PropTypes.number.isRequired,\n currentAmount: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n currency: PropTypes.string.isRequired,\n};\n\nexport default WithAmountContainer(AmountButton);\n","import styled from 'styled-components';\n\nimport { InputPrefix, InputWrapper, StyledInputNoLeftRadius } from '../style';\n\nexport const InlineEditInputPrompt = styled.div`\n background-color: unset;\n color: rgba(255, 255, 255, 0.6);\n padding: 6px 15px 6px 0;\n font-size: 18px;\n font-weight: 500;\n border-width: 0;\n width: 100%;\n margin: 0;\n line-height: 2;\n border-radius: 0 8px 8px 0;\n letter-spacing: -0.5px;\n`;\n\nexport const Prefix = styled(InputPrefix)`\n color: #000;\n background-color: unset;\n border: none;\n font-size: 18px;\n font-weight: 500;\n width: 2rem;\n margin-left: 8px;\n padding-top: 2px;\n`;\n\nexport const DisabledPrefix = styled(Prefix)`\n color: rgba(255, 255, 255, 0.8);\n`;\n\nexport const InputField = styled(StyledInputNoLeftRadius)`\n color: #000;\n border: none;\n background-color: unset;\n padding-left: 0;\n -moz-appearance: textfield;\n\n &::-webkit-inner-spin-button {\n /* display: none; <- Crashes Chrome on hover */\n -webkit-appearance: none;\n margin: 0; /* <-- Apparently some margin are still there even though it's hidden */\n }\n\n &::placeholder {\n font-size: 18px;\n font-weight: 500;\n letter-spacing: -0.5px;\n }\n`;\n\nexport const InlineEditInputWrapper = styled(InputWrapper)`\n margin-bottom: 8px;\n border: 1px solid rgba(255, 255, 255, 0.4);\n box-sizing: border-box;\n border-radius: 8px;\n transition: transform 0.1s;\n background-color: ${(props) =>\n props.isChecked ? '#fff' : 'rgba(0,0,0,0.2)'};\n\n &:hover {\n color: rgba(255, 255, 255, 0.8);\n border: 1px solid #fff;\n }\n`;\n\nexport const Postfix = styled(Prefix)`\n margin-left: 0;\n margin-right: 12px;\n font-size: 12px;\n text-transform: uppercase;\n`;\n\nexport const DisabledPostfix = styled(Postfix)`\n color: rgba(255, 255, 255, 0.8);\n`;\n","import React from 'react';\n\nimport { StyledErrorMessage } from '../style';\nimport {\n InlineEditInputPrompt,\n Prefix,\n DisabledPrefix,\n InlineEditInputWrapper,\n InputField,\n Postfix,\n DisabledPostfix,\n} from './style';\n\nconst activeInputField = (props) => {\n return (\n <>\n {props.icon}\n \n {props.error ? (\n {props.error}\n ) : null}\n {props.postfixIcon}\n \n );\n};\n\nconst disabledInputField = (props) => {\n return (\n <>\n {props.icon}\n {props.placeholder}\n {props.postfixIcon}\n \n );\n};\n\nexport const InlineEditInput = (props) => {\n const { isChecked, noMargin } = props;\n const amountInputProps = {\n isChecked,\n noMargin,\n };\n\n return (\n \n {isChecked ?\n activeInputField(props, amountInputProps) :\n disabledInputField(props, amountInputProps)}\n \n );\n};\n","import styled from 'styled-components';\n\nexport const ButtonsContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n flex-direction: row;\n margin: 0;\n`;\n\nexport const ButtonWrapper = styled.div`\n margin-bottom: 8px;\n margin-left: 8px;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n font-size: 1rem;\n flex-grow: 1;\n flex-basis: 0;\n\n &:first-child {\n margin-left: 0;\n }\n`;\n\nexport const Button = styled.div`\n width: 100%;\n height: 100%;\n max-width: 100%;\n border-radius: 8px;\n border: 1px solid rgba(255, 255, 255, 0.4);\n background: ${(props) => (props.isChecked ? '#fff' : 'rgba(0, 0, 0, 0.2)')};\n font-size: 18px;\n line-height: 22px;\n text-align: center;\n font-weight: 500;\n margin: 0;\n padding: 12px 0;\n color: ${(props) => (props.isChecked ? '#000' : 'rgba(255, 255, 255, 0.8)')};\n cursor: pointer;\n letter-spacing: -0.5px;\n\n &:hover {\n border: 1px solid #fff;\n }\n`;\n\nexport const DonationTypeWrapper = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n flex-direction: row;\n margin: 0 auto 10px auto;\n padding: 0;\n max-width: 200px;\n font-size: 13px;\n line-height: 1;\n`;\n\nexport const DonationTypeTitle = styled.div`\n width: 100%;\n margin: 0.25rem;\n border-radius: 8px 8px 8px 8px;\n background-color: grey;\n text-align: center;\n padding: 0.35em 0;\n`;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n flex-direction: row;\n margin: 0 auto 0.5rem auto;\n padding: 0;\n max-width: 17.5rem;\n font-size: 0.8125rem;\n line-height: 18px;\n font-weight: 500;\n`;\n\nexport const ButtonWrapper = styled.span`\n width: 100%;\n\n &:first-of-type label {\n border-radius: 8px 0px 0px 8px;\n border-right-width: 0px;\n }\n\n &:nth-of-type(2) label {\n border-radius: 0px 8px 8px 0px;\n border-left-width: 0px;\n }\n`;\n\nexport const RadioButton = styled.input`\n display: none;\n\n &:checked ~ label {\n background-color: #fff;\n color: #000;\n }\n`;\n\nexport const RadioLabel = styled.label`\n margin: 0;\n width: 100%;\n background-color: rgba(0, 0, 0, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.4);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n letter-spacing: -0.08px;\n color: rgba(255, 255, 255, 0.8);\n pointer-events: ${(props) => props.disabled ? 'none' : 'auto'};\n\n &:hover {\n cursor: pointer;\n border: 1px solid #fff;\n color: #fff;\n }\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Container, ButtonWrapper, RadioButton, RadioLabel } from './style';\n\nconst radioButtons = [\n { label: 'Monthly', defaultValue: 'true' },\n { label: 'One Time', defaultValue: 'false' },\n];\n\nfunction DonationTypeSelector({ setDonationType, value, disabled }) {\n const handleChange = (e) => {\n setDonationType(e.currentTarget.value);\n };\n\n return (\n \n {radioButtons.map(({ label, defaultValue }) => (\n \n \n \n {label}\n \n \n ))}\n \n );\n}\n\nDonationTypeSelector.propTypes = {\n setDonationType: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n};\n\nexport default DonationTypeSelector;\n","import React, { useState, useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport AmountButtons from './components/AmountButtons';\nimport { InlineEditInput } from '../../inputs/Input/InlineEditInput';\nimport { DonationTypeTitle, DonationTypeWrapper } from './style';\nimport { CURRENCY_SIGN_MAP } from '../../../constants';\nimport DonationTypeSelector from './components/DonationTypeSelector';\nimport { StyledErrorMessage } from '../../inputs/Input/style';\nimport Box from '@mui/material/Box';\nimport CtaButton from '../../shared/CtaButton';\nimport BlockLabel from '../../shared/BlockLabel';\n\nconst isOtherAmount = (amounts, amount) => {\n return !amounts.includes(amount);\n};\n\nconst parseDefaultAmount = (error, currentAmount, amounts) => {\n if (error) {\n return currentAmount;\n }\n\n const amount = parseInt(currentAmount);\n\n return amount ? amount : amounts[0];\n};\n\nconst DONATION_TYPE_VALUES = {\n both: 'false',\n one_time: 'false',\n recurring: 'true',\n};\n\nconst getDonationType = (defaultDonationType, paymentType) => {\n return paymentType\n ? (paymentType == 'monthly_recurring').toString()\n : DONATION_TYPE_VALUES[defaultDonationType];\n};\n\nfunction DonationAmountsSelector({\n paymentOptions,\n donationType,\n defaultDonationType,\n currentAmount,\n isCustomDonation,\n currency,\n error,\n ctaButtonContent,\n ctaButtonStyle,\n ctaButtonDisabled,\n paymentType,\n isPreview,\n disabledFields,\n askLabel,\n}) {\n const amounts = paymentOptions.map(\n (option) => option.attributes.amountNumber,\n );\n\n const defaultCheckedAmount = parseDefaultAmount(\n error,\n currentAmount,\n amounts,\n );\n\n const [checkedAmount, setCheckedAmount] = useState(defaultCheckedAmount);\n const isOther = isOtherAmount(amounts, checkedAmount);\n const [otherChecked, setOtherChecked] = useState(error || isOther);\n const [otherAmount, setOtherAmount] = useState(isOther ? currentAmount : '');\n const [errorMessage, setErrorMessage] = useState(error);\n const currencySymbol = CURRENCY_SIGN_MAP[currency];\n const [donationTypeValue, setDonationTypeValue] = useState(\n getDonationType(defaultDonationType, paymentType),\n );\n\n useEffect(() => {\n setDonationTypeValue(getDonationType(defaultDonationType, paymentType));\n }, [defaultDonationType]);\n\n const buttonTitle = useMemo(() => {\n let title = ctaButtonContent;\n title = title.replace(\n '{payment_amount}',\n `${currencySymbol}${checkedAmount}`,\n );\n title = title.replace(\n '{payment_frequency}',\n `${donationTypeValue === 'true' ? 'Monthly' : ''}`,\n );\n\n return title;\n }, [ctaButtonContent, checkedAmount, currencySymbol, donationTypeValue]);\n\n const isOtherChecked = () => {\n return otherChecked || isOtherAmount(amounts, checkedAmount);\n };\n\n const checkOtherButton = () => {\n setOtherChecked(true);\n\n setCheckedAmount(otherAmount);\n };\n\n const checkButton = (amount) => () => {\n setOtherChecked(false);\n setErrorMessage(null);\n\n setCheckedAmount(amount);\n };\n\n const handleInput = (e) => {\n e.preventDefault();\n const value = e.target.value;\n\n setErrorMessage(null);\n setOtherAmount(value);\n setCheckedAmount(value);\n };\n\n const otherButtonPlaceholder = () => {\n if (otherAmount) {\n return otherAmount;\n }\n\n return isOtherChecked() ? 'Enter amount' : 'Other amount';\n };\n\n const haveNotOneAmountOption = amounts.length !== 1 || isCustomDonation;\n const donationTypeIsBoth = donationType === 'both';\n const donationTypeIsRecurring = donationType === 'recurring';\n\n return (\n \n \n {errorMessage && (\n \n {errorMessage}\n \n )}\n \n {donationTypeIsBoth && (\n \n )}\n {donationTypeIsRecurring && haveNotOneAmountOption && (\n \n Monthly\n \n )}\n {(haveNotOneAmountOption || donationTypeIsBoth) && (\n \n )}\n {isCustomDonation && (\n \n )}\n \n {\n e.preventDefault();\n\n const form = document.querySelector('form');\n form.requestSubmit(e.currentTarget);\n }}\n value={checkedAmount}\n disabled={ctaButtonDisabled}\n ctaButtonStyle={ctaButtonStyle}\n ctaButtonContent={buttonTitle}\n noMargin\n />\n \n );\n}\n\nDonationAmountsSelector.propTypes = {\n paymentOptions: PropTypes.array.isRequired,\n donationType: PropTypes.string.isRequired,\n currency: PropTypes.string.isRequired,\n currentAmount: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n isCustomDonation: PropTypes.bool,\n error: PropTypes.string,\n ctaButtonContent: PropTypes.string,\n ctaButtonDisabled: PropTypes.bool,\n paymentType: PropTypes.string,\n disabledFields: PropTypes.bool,\n};\n\nDonationAmountsSelector.defaultProps = {\n ctaButtonContent: '',\n ctaButtonDisabled: false,\n};\n\nexport default DonationAmountsSelector;\n","import styled from 'styled-components';\nimport { darken } from 'polished';\n\n//\n// Single and Multi OptionButtons\n//\nconst OptionButtonTemplate = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n min-height: 3.125rem;\n position: relative;\n font-size: 14px;\n font-weight: 600;\n text-align: left;\n margin: 0.5rem 0 0;\n padding: 0.5rem 3rem;\n border-radius: 8px;\n border: 0px solid transparent;\n font-size: 0.875rem;\n background-color: ${(props) =>\n props.checked ? 'rgba(255, 255, 255, 1)' : 'rgba(255, 255, 255, 0.8)'};\n color: ${(props) => props.color || '#35353f'};\n white-space: pre-wrap;\n line-height: 1.2;\n cursor: pointer;\n overflow: hidden;\n pointer-events: ${props => props.disabled ? 'none' : 'auto'};\n\n & p {\n width: 100%;\n margin: 0;\n }\n\n & .preview_reference {\n background-color: rgba(114, 114, 120, 0.2);\n border-radius: 4px;\n color: inherit;\n padding: 2px 4px;\n margin: 4px 2px;\n outline: none;\n }\n\n &:hover {\n background-color: ${(props) =>\n props.checked ? 'rgba(255, 255, 255, 1)' : 'rgba(255, 255, 255, 0.8)'};\n color: ${(props) => props.color || '#35353f'};\n }\n\n &:active {\n background-color: #fff;\n color: ${(props) => props.color || '#35353f'};\n }\n\n &:focus {\n outline: none;\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: #fff;\n color: ${(props) => props.color || '#35353f'};\n }\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 1;\n\n &:hover {\n background-color: #fff;\n }\n }\n`;\n\nexport const MultiSelectOptionButton = styled(OptionButtonTemplate)`\n display: flex;\n align-items: center;\n padding-right: 1.5rem;\n\n & > div {\n width: 100%;\n }\n`;\n\nexport const SingleSelectOptionButton = styled(OptionButtonTemplate)`\n border-radius: 2rem;\n background-color: ${(props) =>\n props.selected ? 'rgba(255, 255, 255, 1)' : 'rgba(255, 255, 255, 0.8)'};\n`;\n\n//\n// Single and Multi Select OtherButtons\n//\nexport const OtherButtonContainer = styled.div`\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n`;\n\nexport const ActionButton = styled.button`\n position: absolute;\n width: auto;\n font-size: 0.875rem;\n border-radius: 8px;\n right: 1rem;\n border: 0px solid transparent;\n height: 3.125rem;\n padding-left: 1rem;\n padding-right: 1rem;\n background-color: #fff;\n color: #0078f5;\n\n &:hover {\n background-color: #fff;\n color: ${darken(0.1, '#0078F5')};\n }\n\n &:focus {\n outline: none;\n }\n`;\n\nexport const ActionButtonRounded = styled(ActionButton)`\n border-radius: 2rem;\n`;\n\nexport const InnerContentContainerForButton = styled.span`\n max-width: 80%;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CancelButton = styled(ActionButton)`\n color: #727278;\n\n &:hover {\n background-color: #fff;\n color: ${darken(0.1, '#727278')};\n }\n`;\n\nexport const EditButton = styled.a`\n display: flex;\n align-items: center;\n position: absolute;\n font-size: 0.875rem;\n right: 0;\n padding-left: 1rem;\n padding-right: 1rem;\n color: #727278;\n height: 3.125rem;\n\n &:hover {\n color: ${darken(0.1, '#727278')};\n }\n`;\n\n// &&& - here for overriding global input styles\n// It will add dynamic class name to the component three times\n// .ifhhMW.ifhhMW.ifhhMW {...} instead of .ifhhMW {...}\nexport const OtherButtonInput = styled.input`\n &&& {\n border: 0px solid blue;\n background-color: #fff;\n text-align: left;\n border-radius: 8px;\n color: #000;\n padding-left: 3rem;\n padding-right: 4rem;\n height: 3.125rem;\n box-shadow: none;\n margin: 0.5rem 0 0 0;\n }\n`;\n\nexport const OtherButtonInputRounded = styled(OtherButtonInput)`\n &&& {\n border-radius: 2rem;\n }\n`;\n\nexport const ErrorMessage = styled.span`\n border-radius: 5px;\n text-align: center;\n background-color: #e74c0a;\n font-size: 12px;\n padding: 5px 12px;\n position: absolute;\n right: 0;\n z-index: 5;\n margin-top: -10px;\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactSelect, { components } from 'react-select';\nimport _trim from 'lodash/trim';\nimport _lowerCase from 'lodash/lowerCase';\nimport CreatableReactSelect from 'react-select/creatable';\n\nimport lensIcon from '../../../../../icons/icon--lens.svg';\nimport EditableReferenceLabel from '../../../../../EditableReferenceLabel';\n\nconst IndicatorsContainer = (props) => {\n return (\n \n \n \n );\n};\n\nconst styles = {\n container: (styles) => ({\n ...styles,\n borderRadius: '8px',\n }),\n control: (styles) => ({\n ...styles,\n borderRadius: '8px',\n borderWidth: '0',\n boxShadow: 'none',\n cursor: 'pointer',\n marginBottom: '5px',\n padding: '2px 2px 2px 5px',\n ':hover': {\n borderWidth: '0',\n },\n ':active': {\n borderWidth: '0',\n },\n ':focus': {\n borderWidth: '0',\n },\n input: {\n margin: '0',\n },\n }),\n placeholder: (styles) => ({\n ...styles,\n color: '#BDBDBD',\n fontSize: '1rem',\n }),\n valueContainer: (styles) => ({\n ...styles,\n }),\n menuList: (styles, state) => ({\n ...styles,\n maxHeight: state.selectProps.responsive ? '112px' : '217px',\n }),\n menu: (styles) => ({\n ...styles,\n color: 'black',\n borderRadius: '8px',\n backgroundColor: 'rgb(255, 255, 255)',\n overflow: 'hidden',\n }),\n option: (styles, { isFocused }) => ({\n ...styles,\n borderBottom: 'solid 1px #ddd',\n backgroundColor: isFocused ? '#DADADA' : 'rgba(255, 255, 255, 0)',\n color: '#000',\n ':last-child': {\n borderBottom: 'unset',\n },\n ':active': {\n backgroundColor: 'rgba(255, 255, 255, 0)',\n },\n ':hover': {\n backgroundColor: '#DADADA',\n },\n }),\n multiValue: (styles) => ({\n ...styles,\n backgroundColor: '#E0E0E0',\n borderRadius: '200px',\n }),\n multiValueLabel: (styles) => ({\n ...styles,\n fontSize: '13px',\n lineHeight: '24px',\n fontWeight: '500',\n color: '#727278',\n padding: '4px',\n paddingLeft: '16px',\n }),\n multiValueRemove: (styles) => ({\n ...styles,\n color: '#727278',\n padding: '0 8px',\n '&:hover': {\n backgroundColor: 'unset',\n },\n '& svg': {\n height: '16px',\n width: '16px',\n },\n }),\n input: (styles) => ({\n ...styles,\n '& input': {\n margin: '0',\n padding: '5px',\n },\n '& input:focus': {\n margin: 'unset',\n boxShadow: 'unset',\n backgroundColor: '#FFF !important',\n },\n }),\n indicatorsContainer: (styles) => ({\n ...styles,\n marginRight: '12px',\n }),\n clearIndicator: () => ({\n display: 'none',\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n};\n\nconst filterOption = (candidate, val) => {\n if (val) {\n const label = _trim(_lowerCase(candidate.label));\n const value = _trim(_lowerCase(val));\n\n // Show always option with name `+ Add Option`\n // At the moment it can be only in case\n // when isMulti equals false\n if (label === 'add option') {\n return true;\n }\n\n return !!label.match(value) || candidate.data.__isNew__;\n }\n\n return true;\n};\n\nconst ReferenceOption = (props) => {\n const { innerProps, innerRef } = props;\n\n return (\n
\n \n
\n );\n};\n\nfunction Select({ creatable, ...props }) {\n const selectProps = {\n ...props,\n classNamePrefix: 'react-select',\n isClearable: true,\n isSearchable: true,\n maxMenuHeight: 200,\n placeholder: creatable ? 'Select or type other' : 'Select from the list',\n menuPlacement: 'top',\n closeMenuOnSelect: !props.isMulti,\n formatCreateLabel: (inputValue) => <>{`Select Other: \"${inputValue}\"`},\n components: {\n IndicatorsContainer,\n ...(props.isPreview && { Option: ReferenceOption }),\n ...(props.isPreview && { SingleValue: ReferenceOption }),\n },\n blurInputOnSelect: !props.isMulti,\n filterOption,\n styles,\n };\n\n if (creatable) {\n return ;\n } else {\n return ;\n }\n}\n\nSelect.propTypes = {\n creatable: PropTypes.bool.isRequired,\n value: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n isMulti: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n onCreateOption: PropTypes.func.isRequired,\n defaultValue: PropTypes.array,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.string,\n }),\n ).isRequired,\n};\n\nexport default Select;\n","import styled from 'styled-components';\nimport { darken } from 'polished';\n\nexport const OtherInputContainer = styled.div`\n position: relative;\n display: flex;\n align-items: stretch;\n width: 100%;\n`;\n\nexport const ActionButton = styled.button`\n position: absolute;\n width: auto;\n font-size: 0.875rem;\n border-radius: 8px;\n right: 0;\n border: 0px solid transparent;\n height: 3rem;\n padding-left: 1rem;\n padding-right: 1rem;\n background-color: #fff;\n color: #727278;\n margin-top: 0;\n\n &:hover {\n background-color: #fff;\n color: ${darken(0.1, '#727278')};\n }\n\n &:focus {\n outline: none;\n }\n`;\n","import React, { useState, useEffect } from 'react';\n\nimport PropTypes from 'prop-types';\nimport _uniqBy from 'lodash/uniqBy';\nimport _compact from 'lodash/compact';\nimport _isArray from 'lodash/isArray';\nimport wretch from 'wretch';\n\nimport Select from './components/Select';\nimport { Input } from '../../../../inputs/Input';\nimport { OtherInputContainer, ActionButton } from './style';\nimport CtaButton from '../../../../shared/CtaButton';\n\nconst prepareDefaultOptions = (options, defaultValues) =>\n _compact(_uniqBy([...options, ...defaultValues], 'value'));\n\nconst prepareDefaultValues = (currentValues) =>\n currentValues.map(([id, name]) => ({ value: id, label: name }));\n\nconst prepareErrorMessage = (message) => {\n const errors = JSON.parse(message).errors;\n const responsesErrors = errors.multiple_choice_option_responses;\n\n if (_isArray(responsesErrors)) {\n return responsesErrors[0];\n } else {\n return responsesErrors.multiple_choice_option_name[0];\n }\n};\n\nfunction OtherOptionInput({ onClick, onChange, onKeyPress }) {\n return (\n \n \n \n Cancel\n \n \n );\n}\n\nfunction SelectBoxSelector({\n options: basicOptions,\n currentValues,\n otherOptionId,\n withOtherOption,\n disabled,\n responsive,\n responseId,\n isMulti,\n setErrorMessage,\n ctaButtonContent,\n ctaButtonStyle,\n isPreview,\n}) {\n // basicOptions equals to: [[1, \"option 1\"], [2, \"option 2\"]]\n // defaultOptions should be: [ { value: \"1\", label: \"option 1\" }, { value: \"2\", label: \"option 2\" }]\n const defaultOptions = basicOptions.map(([id, name]) => ({\n value: id,\n label: name,\n }));\n\n if (!isMulti && withOtherOption) {\n defaultOptions.push({ value: otherOptionId, label: '+ Add Option' });\n }\n\n const defaultValues = prepareDefaultValues(currentValues);\n const [options, setOptions] = useState(\n prepareDefaultOptions(defaultOptions, defaultValues),\n );\n const [selectedOptions, setSelectedOptions] = useState(defaultValues);\n const [otherInputIsActive, setOtherInputIsActive] = useState(false);\n const [otherInputValue, setOtherInputValue] = useState('');\n const [defaultMenuIsOpen, setDefaultMenuIsOpen] = useState(false);\n\n useEffect(() => {\n setOptions(prepareDefaultOptions(defaultOptions, defaultValues));\n }, [basicOptions, currentValues]);\n\n const handleCreateOption = (option) => {\n const formedOption = { value: otherOptionId, label: option };\n const nextOptions = options.filter(({ value }) => value !== otherOptionId);\n const nextSelectedOptions = selectedOptions.filter(\n ({ value }) => value !== otherOptionId,\n );\n\n setErrorMessage(null);\n setOptions([...nextOptions, formedOption]);\n setSelectedOptions([...nextSelectedOptions, formedOption]);\n };\n\n const handleChange = (selectedOption) => {\n if (selectedOption && selectedOption.value === otherOptionId) {\n setOtherInputIsActive(true);\n setSelectedOptions([]);\n } else {\n setOtherInputIsActive(false);\n setSelectedOptions(selectedOption || []);\n }\n\n setErrorMessage(null);\n };\n\n const onCancelClick = (e) => {\n e.preventDefault();\n\n setDefaultMenuIsOpen(true);\n setOtherInputIsActive(false);\n setSelectedOptions([]);\n setErrorMessage(null);\n };\n\n const onOtherInputChange = (e) => {\n setOtherInputValue(e.target.value);\n setErrorMessage(null);\n };\n\n const onOtherInputKeyPress = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n let options;\n\n if (otherInputIsActive) {\n options = [{ label: otherInputValue, value: otherOptionId }];\n } else {\n options = _isArray(selectedOptions) ? selectedOptions : [selectedOptions];\n }\n\n const params = {\n response: {\n multiple_choice_option_responses: options.map(({ value, label }) => {\n return {\n multiple_choice_option_name: label,\n multiple_choice_option_id: value,\n };\n }),\n },\n };\n\n wretch(`/api/v1/responses/${responseId}/multiple_choices`)\n .content('application/json')\n .put(params)\n .json((json) => {\n window.location = json.redirect_url;\n })\n .catch((error) => {\n const message = prepareErrorMessage(error.message);\n\n setErrorMessage(message);\n });\n };\n\n const customProps = {\n value: selectedOptions,\n onChange: handleChange,\n onCreateOption: handleCreateOption,\n defaultValue: defaultValues,\n options,\n creatable: withOtherOption && isMulti,\n responsive,\n isMulti,\n defaultMenuIsOpen,\n autoFocus: defaultMenuIsOpen,\n isPreview,\n };\n\n return (\n <>\n {!otherInputIsActive && \n\n \n {text}\n \n \n \n );\n}\n\nSkipButton.propTypes = {\n text: PropTypes.string,\n expResponseId: PropTypes.string,\n responseId: PropTypes.string,\n isVisible: PropTypes.bool,\n};\n\nexport default SkipButton;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: absolute;\n top: 12px;\n right: 12px;\n z-index: 3;\n\n @media (min-width: 768px) {\n top: 16px;\n }\n\n @media (min-width: 961px) {\n top: ${(props) => (props.withProgressBar ? '64px' : '18px')};\n right: 24px;\n }\n`;\n\nexport const ShareIconWrapper = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n background-color: ${(props) => (props.isOpen ? '#333' : 'transparent')};\n border-radius: 50%;\n z-index: 1;\n cursor: pointer;\n\n &:hover {\n background-color: #333;\n }\n\n svg {\n width: 24px;\n height: 24px;\n }\n\n @media (min-width: 961px) {\n svg {\n width: 32px;\n height: 32px;\n }\n }\n`;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n width: 48px;\n`;\n\nexport const DropdownListContainer = styled.div`\n position: absolute;\n top: 0;\n display: grid;\n grid-template-rows: repeat(5, 48px);\n width: 48px;\n background-color: #d1d1d1;\n border-radius: 100px;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n\n button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: 50%;\n outline: 0;\n margin: 0;\n color: #333;\n background-color: transparent;\n cursor: pointer;\n\n &:hover {\n background-color: #fff;\n color: #333;\n }\n\n &:focus {\n outline: 0;\n }\n }\n`;\n\nexport const Tooltip = styled.div`\n display: none;\n position: absolute;\n top: 50%;\n right: 51px;\n transform: translateY(-50%);\n font-size: 11px;\n line-height: 1.45;\n padding: 5px 8px;\n background-color: #333;\n border-radius: 4px;\n white-space: nowrap;\n\n &::after {\n content: '';\n position: absolute;\n right: -6px;\n top: 50%;\n width: 12px;\n height: 12px;\n transform: translateY(-50%) rotate(45deg);\n background-color: #333;\n border-radius: 2px;\n }\n`;\n\nexport const ButtonWrapper = styled.div`\n position: relative;\n\n &:hover ${Tooltip} {\n display: block;\n }\n`;\n\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n TwitterShareButton,\n FacebookShareButton,\n EmailShareButton,\n} from 'react-share';\nimport { Share2, Link, Facebook, Twitter, Mail } from 'react-feather';\nimport { ShareIconWrapper } from '../../style';\nimport {\n Container,\n DropdownListContainer,\n ButtonWrapper,\n Tooltip,\n} from './style';\n\nconst tooltips = {\n copy: 'Copy share link',\n facebook: 'Share on Facebook',\n twitter: 'Share on Twitter',\n email: 'Share via email',\n};\n\nconst Dropdown = ({ shareUrl }) => {\n const [isOpenOnHover, setIsOpenOnHover] = React.useState(false);\n const [isOpenPermanently, setIsOpenPermanently] = useState(false);\n const [copyTooltipText, setCopyTooltipText] = useState(tooltips.copy);\n const dropdownRef = useRef(null);\n\n const closeDropdown = () => {\n setIsOpenOnHover(false);\n setIsOpenPermanently(false);\n };\n const openOnHover = () => setIsOpenOnHover(true);\n const closeOnHover = () => setIsOpenOnHover(false);\n const openPermanently = () => setIsOpenPermanently(true);\n\n useEffect(() => {\n const handleClickOutside = (e) => {\n if (dropdownRef.current && !dropdownRef.current.contains(e.target)) {\n closeDropdown();\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [dropdownRef]);\n\n const copyToClipBoard = () => {\n navigator.clipboard.writeText(shareUrl);\n const standardMessage = tooltips.copy;\n setCopyTooltipText('Link copied to clipboard!');\n\n setTimeout(() => {\n setCopyTooltipText(standardMessage);\n }, 2000);\n };\n\n return (\n \n \n \n \n {(isOpenPermanently || isOpenOnHover) && (\n \n \n \n \n \n \n \n {copyTooltipText}\n \n \n \n \n \n \n {tooltips.facebook}\n \n \n \n \n \n {tooltips.twitter}\n \n \n \n \n \n {tooltips.email}\n \n \n )}\n \n );\n};\n\nDropdown.propTypes = {\n shareUrl: PropTypes.string.isRequired,\n};\n\nexport default Dropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { RWebShare } from 'react-web-share';\nimport Dropdown from './components/Dropdown';\nimport { Share2 } from 'react-feather';\nimport { Container, ShareIconWrapper } from './style';\n\nconst SocialShare = ({ shareUrl, supportWebshare, withProgressBar }) => {\n return (\n \n {supportWebshare ? (\n \n \n \n \n \n ) : (\n \n )}\n \n );\n};\n\nSocialShare.propTypes = {\n shareUrl: PropTypes.string.isRequired,\n supportWebshare: PropTypes.bool,\n withProgressBar: PropTypes.bool,\n};\n\nexport default SocialShare;\n","import React from 'react';\nimport VideoBackground from '../../../videoplayer/VideoBackground';\nimport { UploadedImage } from '../UploadedImage';\nimport { UploadedFile } from '../UploadedFile';\n\nfunction ResponsePreview({\n attachment,\n backgroundLayout,\n backgroundIsColor,\n}) {\n if (!attachment) {\n return null;\n }\n\n const { type, name, file_url } = attachment;\n\n if (type === 'image') {\n return (\n \n );\n } else if (type === 'video') {\n return (\n
\n \n
\n );\n } else {\n return ;\n }\n}\n\nexport default ResponsePreview;\n","import React from 'react';\nimport { File } from 'react-feather';\n\nexport function UploadedFile({ name }) {\n return (\n \n
\n \n
\n {name}\n
\n );\n}\n","import React from 'react';\nimport { setClassName } from '../../../../../utils';\n\nexport function UploadedImage({ src, backgroundLayout }) {\n return (\n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport VideoBackground from '../../../videoplayer/VideoBackground';\nimport { UploadedImage } from '../UploadedImage';\nimport { UploadedFile } from '../UploadedFile';\nimport {\n PREVIEWABLE_VIDEO_TYPES,\n ALLOWED_IMAGE_TYPES,\n} from '../../../../../constants';\n\nfunction MediaPreview({ files, backgroundLayout, backgroundIsColor }) {\n return files.map((file) => {\n if (ALLOWED_IMAGE_TYPES.includes(file.type)) {\n return (\n \n );\n } else if (PREVIEWABLE_VIDEO_TYPES.includes(file.type)) {\n return (\n
\n \n
\n );\n } else {\n return ;\n }\n });\n}\n\nMediaPreview.propTypes = {\n files: PropTypes.array,\n backgroundLayout: PropTypes.string,\n};\n\nexport default MediaPreview;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDropzone } from 'react-dropzone';\nimport UploadingState from '../../UploadMediaSection/components/UploadingState';\nimport { setClassName } from '../../../utils';\nimport makeToast from '../../toast';\nimport { uploadMediaValidator } from '../../UploadMediaSection/uploadMediaValidator';\nimport _isEmpty from 'lodash/isEmpty';\nimport MediaPreview from './components/MediaPreview';\nimport ResponsePreview from './components/ResponsePreview';\nimport UploadButtons from '../../UploadMediaSection/components/UploadButtons';\nimport {\n ALL_ALLOWED_FILE_TYPES,\n ALLOWED_IMAGE_TYPES,\n ALLOWED_VIDEO_TYPES,\n} from '../../../constants';\n\nexport const setDefaultSignedIdObj = (mediaResponse) => {\n if (mediaResponse.latest_attachment) {\n const { latest_attachment } = mediaResponse;\n return {\n name: `${latest_attachment.type}_signed_id`,\n value: latest_attachment.signed_id,\n };\n } else {\n return {};\n }\n};\n\nfunction UgcUploadResponse({\n directUploadUrl,\n backgroundLayout,\n backgroundIsColor,\n ctaButtonContent,\n ctaButtonStyle,\n mediaResponse = {},\n}) {\n const [files, setFiles] = React.useState([]);\n const [isUploading, setIsUploading] = React.useState(false);\n const [signedIdObj, setSignedIdObj] = React.useState(\n setDefaultSignedIdObj(mediaResponse),\n );\n const [responses, setResponses] = React.useState(mediaResponse);\n\n const signedIdIsEmpty = React.useMemo(() => {\n return _isEmpty(signedIdObj);\n }, [signedIdObj]);\n\n const refreshState = () => {\n setFiles([]);\n setIsUploading(false);\n setResponses({});\n setSignedIdObj({});\n };\n\n const onDropAccepted = (acceptedFiles) => {\n setFiles(\n acceptedFiles.map((file) =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n }),\n ),\n );\n setIsUploading(true);\n };\n\n const onDropRejected = (rejectedFiles) => {\n rejectedFiles.map(({ errors }) => {\n const errorMessage = errors[1] ? errors[1].message : errors[0].message;\n\n makeToast(errorMessage, 'error', 3000, 0);\n });\n };\n\n const { getRootProps, getInputProps, open } = useDropzone({\n accept: ALL_ALLOWED_FILE_TYPES,\n noClick: true,\n multiple: false,\n validator: (file) => uploadMediaValidator(file, true),\n onDropAccepted,\n onDropRejected,\n });\n\n useEffect(\n () => () => {\n // Make sure to revoke the data uris to avoid memory leaks\n files.forEach((file) => URL.revokeObjectURL(file.preview));\n },\n [files],\n );\n\n useEffect(() => {\n /* We're using oldschool logic for setting onclick function and hiding stuff\n from another component because of current app architecture.\n Will change it after SPA */\n\n const responderVideoPlayer = document.querySelector(\n '.responder-background-video-wrapper',\n );\n const backgroundVideoTag = document.querySelector(\n '.responder-background-video-wrapper .video-react-video',\n );\n const uploadButton = document.querySelector(\n \"[data-testid='UgcSelector/UploadResponseButton']\",\n );\n const ugcSelectorsWrapper = document.querySelector(\n '.ugc-selector__wrapper',\n );\n\n const uploadedFilePreview = isUploading || !signedIdIsEmpty;\n\n if (responderVideoPlayer) {\n if (uploadedFilePreview) {\n responderVideoPlayer.classList.add('hide-on-mobile');\n backgroundVideoTag.pause();\n } else {\n responderVideoPlayer.classList.remove('hide-on-mobile');\n }\n }\n\n if (uploadButton) {\n uploadButton.onclick = open;\n }\n\n if (ugcSelectorsWrapper) {\n if (uploadedFilePreview) {\n ugcSelectorsWrapper.classList.add('hidden');\n } else {\n ugcSelectorsWrapper.classList.remove('hidden');\n }\n }\n }, [isUploading, signedIdIsEmpty]);\n\n const uploadCreateCallback = (error, { content_type, signed_id }) => {\n if (error) {\n setIsUploading(false);\n } else {\n let signedIdPropertyName;\n\n if (ALLOWED_IMAGE_TYPES.includes(content_type)) {\n signedIdPropertyName = 'image_signed_id';\n } else if (ALLOWED_VIDEO_TYPES.includes(content_type)) {\n signedIdPropertyName = 'video_signed_id';\n } else {\n signedIdPropertyName = 'file_object_signed_id';\n }\n setIsUploading(false);\n setSignedIdObj({ name: signedIdPropertyName, value: signed_id });\n }\n };\n\n return (\n <>\n
\n \n {!signedIdIsEmpty && _isEmpty(files) && (\n \n \n
\n )}\n {!_isEmpty(files) && (\n \n \n
\n )}\n \n
\n
\n {!signedIdIsEmpty && (\n \n )}\n \n );\n}\n\nUgcUploadResponse.propTypes = {\n directUploadUrl: PropTypes.string.isRequired,\n backgroundLayout: PropTypes.string,\n backgroundIsColor: PropTypes.bool,\n ctaButtonContent: PropTypes.string,\n};\n\nexport default UgcUploadResponse;\n","import styled from 'styled-components';\nimport { Button } from '../../../Button';\nimport Player from 'video-react/lib/components/Player';\n\nexport const PlayButton = styled(Button)`\n && {\n position: absolute;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n opacity: 0.5;\n display: -webkit-box;\n display: flex;\n flex-wrap: nowrap;\n -webkit-box-pack: center;\n justify-content: center;\n margin: 0 auto;\n max-width: 23.4375rem;\n padding: 1rem 1rem;\n width: 6rem;\n height: 6rem;\n display: -webkit-inline-box;\n display: inline-flex;\n border-radius: 50%;\n -webkit-box-align: center;\n align-items: center;\n -webkit-box-pack: center;\n justify-content: center;\n max-width: 6.8rem;\n min-width: 5rem;\n z-index: 3;\n }\n`;\n\nexport const ControlButtonsContainer = styled.div`\n position: absolute;\n display: flex;\n bottom: inherit;\n left: auto;\n right: ${props => props.withShareIcon ? '48px' : '8px'};\n top: 12px;\n z-index: 3;\n\n @media (min-width: 375px) {\n top: 14px;\n }\n\n @media (min-width: 768px) {\n top: 18px;\n }\n\n @media (min-width: 961px) {\n top: ${props => props.withProgressBar ? '66px' : '16px'};\n right: 8px;\n }\n\n @media (min-width: 1024px) {\n top: ${props => props.withProgressBar ? '70px' : '22px'};\n }\n`;\n\nexport const ControlButton = styled(Button)`\n && {\n height: 24px;\n width: 24px;\n padding: 0;\n border-width: 0;\n margin-right: 24px;\n background: transparent;\n\n &:hover {\n background-color: transparent;\n }\n }\n`;\n\nexport const StyledPlayer = styled(Player)`\n position: relative;\n width: 100%;\n height: 100%;\n\n video {\n left: 0;\n object-fit: ${(props) =>\n props.layout === 'fit_to_size' ? 'contain' : 'cover'};\n object-position: center;\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n\n &:focus {\n outline: none;\n }\n\n &::-webkit-media-controls-panel {\n display: none;\n }\n }\n`;\n\nexport const ClickableBackground = styled.div`\n display: ${(props) => (props.isHidden ? 'none' : 'block')};\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n\n &:focus {\n outline: 0;\n }\n`;\n","import React from 'react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Box from '@mui/material/Box';\n\nexport default function LoadingSpinner({ playButtonIsHidden, readyState }) {\n if (playButtonIsHidden && readyState > 3) {\n // Videos with autoplay and no play button start playing only after the file is downloaded\n return null;\n }\n\n if (!playButtonIsHidden && readyState > 2) {\n // For videos with play button hiding the spinner when downloading starts\n return null;\n }\n\n return (\n \n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ControlBar, BigPlayButton } from 'video-react';\nimport { setValueToStore } from '../../../../sharedStore';\nimport {\n ClickableBackground,\n StyledPlayer,\n PlayButton,\n ControlButton,\n ControlButtonsContainer,\n} from './style';\n\nimport muteIcon from '../../../icons/icon--mute.svg';\nimport volumeIcon from '../../../icons/icon--volume.svg';\nimport playButtonIcon from '../../../icons/icon--play-button.svg';\nimport replayIcon from '../../../icons/icon--replay.svg';\nimport Shortcut from 'video-react/lib/components/Shortcut';\nimport LoadingSpinner from './components/LoadingSpinner';\nimport LazyLoad from 'vanilla-lazyload';\n\nfunction VideoPlayer({\n sources,\n hidePlayButton,\n backgroundLayout,\n withShareIcon,\n onVideoPlaying,\n onPlayButtonClick,\n placeholderImageUrl,\n}) {\n const [muted, setMuted] = useState(false);\n const [loop, setLoop] = useState(true);\n const [controlsAreHidden, setControlsAreHidden] = useState(false);\n const [isPlaying, setIsPlaying] = useState(hidePlayButton);\n const [withProgressBar, setWithProgressBar] = useState(false);\n // readyState possible values: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState\n const [readyState, setReadyState] = React.useState(0);\n\n const player = React.useRef(null);\n\n // handle postMessage from the widget\n // and pause video if widget is closed\n const handlePostMessage = ({ data }) => {\n const isClosed = data.type === 'ha-widget' && !data.isOpen;\n\n if (isClosed) {\n if (hidePlayButton) {\n setMuted(true);\n } else {\n player.current.pause();\n }\n }\n };\n\n const handlePlayerStateChange = (state) => {\n // This condition prevents bug when video loops\n if (state.readyState !== 1) {\n setReadyState(state.readyState);\n }\n };\n\n useEffect(() => {\n if (hidePlayButton) {\n setIsPlaying(true);\n }\n }, [hidePlayButton]);\n\n useEffect(() => {\n setMuted(true);\n const progressBar = document.querySelector(\n '[data-react-class=\"ProgressBar\"]',\n );\n if (progressBar && progressBar.children.length) {\n setWithProgressBar(true);\n }\n\n if (player.current) {\n // we can't use autoplay with turbo-rails https://github.com/hotwired/turbo-rails/issues/147\n player.current.video.video.addEventListener('canplay', () => {\n player.current.play();\n });\n // prevent full screen video\n player.current.actions.toggleFullscreen = () => {};\n player.current.video.video.classList.add('lazy');\n player.current.video.video.dataset.poster = placeholderImageUrl;\n player.current.subscribeToStateChange(handlePlayerStateChange);\n }\n\n if (sources.length < 1) {\n setControlsAreHidden(true);\n }\n\n if (!document.lazyLoadInstance) {\n document.lazyLoadInstance = new LazyLoad();\n }\n\n document.lazyLoadInstance.update();\n // Listeners\n window.addEventListener('message', handlePostMessage);\n\n return () => {\n window.removeEventListener('message', handlePostMessage);\n };\n }, []);\n\n useEffect(() => {\n if (onVideoPlaying) {\n onVideoPlaying(isPlaying);\n }\n }, [isPlaying, onVideoPlaying]);\n\n const toggleMute = () => {\n setMuted(!muted);\n };\n\n const restart = () => {\n if (player.current) {\n player.current.seek(0);\n player.current.play();\n }\n };\n\n const play = () => {\n if (loop) {\n player.current.seek(0);\n }\n\n if (onPlayButtonClick) {\n onPlayButtonClick();\n }\n\n setMuted(false);\n setLoop(false);\n setIsPlaying(true);\n\n player.current.play();\n\n setValueToStore('videoStartedPlaying', true);\n setValueToStore('videoIsPlaying', true);\n };\n\n const handleOnPause = () => {\n setIsPlaying(false);\n setValueToStore('videoIsPlaying', false);\n };\n\n const videoEnded = () => {\n setIsPlaying(false);\n\n setValueToStore('videoEndedPlaying', true);\n setValueToStore('videoIsPlaying', false);\n };\n\n const handleBackgroundClick = () => {\n if (hidePlayButton) {\n setMuted(!muted);\n return;\n }\n if (isPlaying) {\n player.current.actions.pause();\n } else {\n play();\n }\n };\n\n return (\n <>\n \n \n {sources.map((source) => (\n \n ))}\n \n {!controlsAreHidden && readyState > 1 && (\n <>\n {isPlaying || hidePlayButton ? (\n \n \n {muted ? : }\n \n \n \n \n \n ) : (\n !hidePlayButton && readyState > 2 && (\n \n \n \n )\n )}\n \n )}\n\n {/*\n Disable default BigPlayButton.\n We use our own PlayButton instead\n */}\n \n {/*\n We don't need ControlBar\n */}\n \n \n \n \n );\n}\n\nVideoPlayer.propTypes = {\n sources: PropTypes.arrayOf(PropTypes.string).isRequired,\n hidePlayButton: PropTypes.bool,\n backgroundLayout: PropTypes.string,\n onVideoPlaying: PropTypes.func,\n};\n\nexport default VideoPlayer;\n","import styled from 'styled-components';\n\nexport const VideoContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #000;\n\n ${(props) =>\n props.backgroundIsColor &&\n `\n @media (min-width: 961px) {\n max-width: 600px;\n left: 50%;\n transform: translateX(-50%);\n }\n `}\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport VideoPlayer from '../VideoPlayer';\nimport { VideoContainer } from './style';\n\nfunction VideoBackground({\n sources,\n backgroundIsColor,\n hidePlayButton,\n backgroundLayout,\n withShareIcon,\n onVideoPlaying,\n onPlayButtonClick,\n hiddenOnMobile,\n placeholderImageUrl,\n}) {\n return (\n \n \n \n );\n}\n\nVideoBackground.propTypes = {\n sources: PropTypes.arrayOf(PropTypes.string).isRequired,\n backgroundIsColor: PropTypes.bool,\n hidePlayButton: PropTypes.bool,\n backgroundLayout: PropTypes.string,\n withShareIcon: PropTypes.bool,\n onVideoPlaying: PropTypes.func,\n};\n\nexport default VideoBackground;\n","import React from 'react';\nimport LazyLoad from 'vanilla-lazyload';\n\nexport default function LazyImage(props) {\n React.useEffect(() => {\n if (!document.lazyLoadInstance) {\n document.lazyLoadInstance = new LazyLoad();\n }\n\n document.lazyLoadInstance.update();\n }, []);\n\n return ;\n}\n","import React from 'react';\nimport LazyImage from '../../../LazyImage';\n\nexport default function BackgroundImage({\n imageUrl,\n placeholderImageUrl,\n backgroundMediaOpacity,\n}) {\n if (placeholderImageUrl) {\n return (\n \n );\n }\n return (\n \n );\n}\n","import React from 'react';\nimport LazyLoad from 'vanilla-lazyload';\n\nexport default function BackgroundVideo({\n placeholderImageUrl,\n backgroundMediaOpacity,\n videoSources,\n}) {\n React.useEffect(() => {\n if (!document.lazyLoadInstance) {\n document.lazyLoadInstance = new LazyLoad();\n }\n\n document.lazyLoadInstance.update();\n }, []);\n\n return (\n \n {videoSources.map((url) => (\n \n ))}\n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Box from '@mui/material/Box';\nimport BackgroundImage from './components/BackgroundImage';\nimport BackgroundVideo from './components/BackgroundVideo';\n\nconst mediaStyles = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n};\n\nfunction BackgroundOverlay({\n settings,\n videoSources,\n imageUrl,\n placeholderImageUrl,\n}) {\n const {\n backgroundMediaOpacity,\n backgroundColorOverlay,\n backgroundMediaIsImage,\n backgroundMediaIsVideo,\n } = settings;\n\n return (\n \n {backgroundMediaIsImage && (\n \n )}\n {backgroundMediaIsVideo && (\n \n )}\n \n \n );\n}\n\nBackgroundOverlay.propTypes = {\n settings: PropTypes.shape({\n backgroundMediaOpacity: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n backgroundColorOverlay: PropTypes.string,\n backgroundMediaIsImage: PropTypes.bool,\n backgroundMediaIsVideo: PropTypes.bool,\n }).isRequired,\n videoSources: PropTypes.arrayOf(PropTypes.string),\n imageUrl: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n};\n\nexport default BackgroundOverlay;\n","import React from 'react';\nimport Box from '@mui/material/Box';\nimport _omitBy from 'lodash/omitBy';\nimport _isEmpty from 'lodash/isEmpty';\nimport useUpdateReferencesTags from '../../hooks/useUpdateReferencesTags';\nimport { toHtmlWithStyledReferences } from '../../../utils';\n\nexport default function BlockLabel({ askLabel, isPreview }) {\n const label = askLabel?.richText.titleHtml;\n\n if (!label) {\n return null;\n }\n\n const styles = _omitBy(askLabel.cssStyle, _isEmpty);\n const parsedHtml = isPreview && useUpdateReferencesTags(label);\n const styledLabel = isPreview && toHtmlWithStyledReferences(parsedHtml);\n\n return (\n \n );\n}\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Avenir Next\", \"Avenir\", \"Segoe UI\", \"Lucida Grande\", \"Helvetica Neue\", \"Helvetica\", \"Fira Sans\", \"Roboto\", \"Noto\", \"Droid Sans\", \"Cantarell\", \"Oxygen\", \"Ubuntu\", \"Franklin Gothic Medium\", \"Century Gothic\", \"Liberation Sans\", sans-serif;\n font-size: 0.64rem;\n letter-spacing: 0.125em;\n margin: 1.5rem auto;\n text-transform: uppercase;\n text-align: center;\n`;\n\nexport const Link = styled.a`\n position: relative;\n color: ${(props) => props.color};\n text-decoration: none;\n z-index: 1;\n &:hover {\n color: ${(props) => props.color};\n }\n ${(props) =>\n props.withMediaBackground &&\n `\n @media (min-width: 961px) {\n position: absolute;\n left: -50%;\n bottom: 2rem;\n transform: translateX(-50%);\n }\n `}\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { readableColor, parseToRgb } from 'polished';\nimport { Container, Link } from './style';\n\nfunction BrandedLabel({\n isHidden,\n title,\n link,\n withMediaBackground,\n contentLayout,\n backgroundColorOverlay,\n}) {\n const color = React.useMemo(() => {\n if (\n !backgroundColorOverlay ||\n backgroundColorOverlay.includes('var(--') ||\n parseToRgb(backgroundColorOverlay)?.alpha <= 0.5\n ) {\n return '#fff';\n } else {\n return readableColor(backgroundColorOverlay);\n }\n }, [backgroundColorOverlay]);\n\n return (\n \n {!isHidden && (\n \n )}\n \n );\n}\n\nBrandedLabel.propTypes = {\n isHidden: PropTypes.bool,\n title: PropTypes.string,\n link: PropTypes.string,\n withMediaBackground: PropTypes.bool,\n};\n\nexport default BrandedLabel;\n","import React from 'react';\nimport _isEmpty from 'lodash/isEmpty';\nimport _omitBy from 'lodash/omitBy';\nimport useUpdateReferencesTags from '../../hooks/useUpdateReferencesTags';\nimport { toHtmlWithStyledReferences } from '../../../utils';\nimport { SubmissionButton } from '../../Button';\nimport withStyledButtonText from '../hoc/withStyledButtonText';\n\nfunction CtaButton({ ctaButtonContent, ctaButtonStyle, isPreview, ...rest }) {\n const parsedHtml = isPreview && useUpdateReferencesTags(ctaButtonContent);\n const styledContent = isPreview && toHtmlWithStyledReferences(parsedHtml);\n const styles = _omitBy(ctaButtonStyle, _isEmpty) || {};\n\n return (\n \n \n \n );\n}\n\nexport default withStyledButtonText(CtaButton);\n","import React from 'react';\nimport _isEmpty from 'lodash/isEmpty';\nimport _omitBy from 'lodash/omitBy';\nimport IconButton from '@mui/material/IconButton';\n\nexport default function Button({ attributes, children, ...rest }) {\n if (!attributes.enabled) {\n return
;\n }\n\n const cssStyle = _omitBy(attributes.cssStyle, _isEmpty);\n\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport Box from '@mui/material/Box';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport Button from './components/Button';\n\nconst findButton = (buttons, direction) =>\n buttons.find((b) => b.direction === direction);\n\nexport default function NavigationButtons({\n buttons,\n isVisible,\n isPreview,\n skippable,\n controllerName,\n staticPosition,\n isMultiSelect,\n withMediaBackground,\n contentLayout,\n responseIsPublished,\n backPath,\n}) {\n if (!isVisible) {\n return null;\n }\n\n const [backIsDisabled, setBackIsDisabled] = React.useState(isPreview);\n const [forwardIsDisabled, setForwardIsDisabled] = React.useState(isPreview);\n const backButton = findButton(buttons, 'back');\n const forwardButton = findButton(buttons, 'forward');\n\n React.useEffect(() => {\n if (!backPath) {\n setBackIsDisabled(true);\n }\n\n const blockDoesNotHaveCompletedState = [\n 'ugc_media_responses',\n 'ugc_responses',\n 'survey_responses',\n ].includes(controllerName);\n const mcOptionWasNotSelected =\n controllerName === 'multiple_choice_responses' &&\n !isMultiSelect &&\n !responseIsPublished;\n\n if (blockDoesNotHaveCompletedState || mcOptionWasNotSelected) {\n setForwardIsDisabled(true);\n }\n }, []);\n\n const handleForwardClick = () => {\n switch (controllerName) {\n case 'data_responses':\n case 'donation_amount_responses':\n case 'no_content_responses':\n case 'ugc_text_responses':\n const form = document.forms[0];\n\n form.requestSubmit();\n break;\n case 'credit_card_responses':\n document.querySelector('[aria-label=\"credit card submit\"]').click();\n\n break;\n case 'multiple_choice_responses':\n const selectedOption = document.querySelector('[data-selected=\"true\"]');\n const ctaButton = document.querySelector(\n '[data-testid=\"SelectBoxSelector/submit\"]',\n );\n\n if (selectedOption) {\n selectedOption.click();\n } else if (ctaButton) {\n ctaButton.click();\n }\n break;\n }\n };\n\n const handleBackClick = () => {\n if (!backIsDisabled) {\n Turbo.visit(backPath);\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ResponseButton(props) {\n const { href, Icon, text, backgroundColor, fontColor, ...restProps } = props;\n\n return (\n \n \n \n {text}\n \n \n );\n}\n\nResponseButton.propTypes = {\n href: PropTypes.string,\n className: PropTypes.string,\n Icon: PropTypes.func.isRequired,\n text: PropTypes.string.isRequired,\n};\n\nexport default ResponseButton;\n","import styled from 'styled-components';\n\nexport const Textarea = styled.textarea`\n font-weight: 300;\n font-size: 1.563rem;\n line-height: 2rem;\n padding-left: unset;\n padding-right: unset;\n resize: none;\n min-height: 200px;\n overflow: hidden;\n background-color: #0000;\n color: ${(props) => props.color};\n border: 0;\n box-shadow: none;\n\n &::placeholder {\n color: ${(props) => props.color};\n opacity: 0.7;\n }\n\n &:focus {\n background-color: #0000;\n color: ${(props) => props.color};\n border: 0;\n box-shadow: none;\n }\n\n &:disabled {\n background-color: #0000;\n opacity: 1;\n\n &:hover {\n border: 0;\n }\n }\n`;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport _isEmpty from 'lodash/isEmpty';\nimport ErrorMessage from '../ErrorMessage';\nimport { Textarea } from './style';\nimport { readableColor, parseToRgb } from 'polished';\n\nfunction ResponseTextField({\n placeholder,\n errors,\n disabled,\n defaultValue,\n backgroundColorOverlay,\n}) {\n const [value, setValue] = useState(defaultValue || '');\n const textRef = useRef(null);\n\n const setTextareaHeight = (target) => {\n target.style.height = '200px';\n target.style.height = target.scrollHeight + 'px';\n };\n\n useEffect(() => {\n const { current } = textRef;\n\n if (current) {\n current.focus();\n setTextareaHeight(current);\n }\n }, []);\n\n const handleValueChange = (e) => {\n setValue(e.target.value);\n setTextareaHeight(e.target);\n };\n\n const color = React.useMemo(() => {\n if (\n !backgroundColorOverlay ||\n backgroundColorOverlay.includes('var(--') ||\n parseToRgb(backgroundColorOverlay)?.alpha < 0.6\n ) {\n return '#fff';\n } else {\n return readableColor(backgroundColorOverlay, '#35353f', '#fff');\n }\n }, [backgroundColorOverlay]);\n\n return (\n <>\n \n {!_isEmpty(errors) && (\n \n )}\n \n );\n}\n\nResponseTextField.propTypes = {\n placeholder: PropTypes.string,\n errors: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n defaultValue: PropTypes.string,\n backgroundColorOverlay: PropTypes.string.isRequired,\n};\n\nResponseTextField.defaultProps = {\n backgroundColorOverlay: 'rgba(0, 0, 0, 0.2)',\n};\n\nexport default ResponseTextField;\n","import React from 'react';\nimport Box from '@mui/material/Box';\n\nexport default function withStyledButtonText(Component) {\n return (props) => (\n <>\n \n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { render } from 'react-dom';\nimport styled from 'styled-components';\n\nconst ToastWrapper = styled.div`\n position: absolute;\n width: 100%;\n top: 0;\n left: 0;\n font-size: 1rem;\n color: var(--white);\n text-align: center;\n padding: 1rem 0.5rem;\n background-color: ${(props) => props.color};\n z-index: 3;\n transform: translateY(${(props) => props.top}px);\n\n a {\n color: var(--white);\n\n &:hover {\n color: var(--white);\n }\n }\n`;\n\nconst DEFAULT_TIMEOUT = 3000;\nconst DEFAULT_TOP_OFFSET = 60;\nconst DEFAULT_TOAST_ID = 'toast';\n\nfunction getToastOffset(topOffset) {\n const currentPosition = window.pageYOffset;\n\n if (currentPosition >= topOffset) {\n return currentPosition;\n } else {\n return topOffset;\n }\n}\n\nfunction Toast({ text, color, topOffset }) {\n const [top, setTop] = useState(getToastOffset(topOffset));\n\n useEffect(() => {\n window.addEventListener('scroll', () => setTop(getToastOffset(topOffset)));\n\n return () => {\n window.removeEventListener('scroll');\n };\n }, []);\n\n return (\n \n {text}\n \n );\n}\n\nfunction findOrCreateElement(id) {\n let element = document.getElementById(id);\n\n if (element) {\n return element;\n }\n\n element = document.createElement('div');\n element.setAttribute('id', id);\n\n document.body.insertBefore(\n element,\n document.body.lastElementChild.nextElementSibling,\n );\n\n return element;\n}\n\nfunction backgroundColorByType(type) {\n if (type === 'success') {\n return 'var(--success)';\n } else if (type === 'info') {\n return '#66AEF9';\n } else if (type === 'error') {\n return 'var(--error)';\n }\n}\n\nfunction makeToast(\n text,\n type = 'success',\n timeout = DEFAULT_TIMEOUT,\n topOffset = DEFAULT_TOP_OFFSET,\n) {\n const element = findOrCreateElement(DEFAULT_TOAST_ID);\n\n if (timeout) {\n setTimeout(() => element.remove(), timeout);\n }\n\n const color = backgroundColorByType(type);\n\n render(, element);\n\n return element;\n}\n\nexport default makeToast;\n","import { Controller } from 'stimulus';\nimport * as clipboard from 'clipboard-polyfill';\n\nexport default class extends Controller {\n static targets = ['source'];\n\n copy() {\n clipboard.writeText(this.sourceTarget.value);\n }\n}\n","import {hideElement, showElement} from 'utils';\n\nexport const hideFlashMessage = (message) => {\n const flashContainer = document.getElementById('error-flash-container');\n\n hideElement(flashContainer);\n};\n\nexport const renderFlashError = (message, type) => {\n\n const messageClass = type ? `flash-${type}` : 'flash-error';\n const flashContainer = document.getElementById('error-flash-container');\n const wrappedMessage = `
${message}
`;\n\n flashContainer.innerHTML = wrappedMessage;\n\n showElement(flashContainer);\n};\n","import { Controller } from 'stimulus';\nimport wretch from 'wretch';\nimport { hideFlashMessage, renderFlashError } from '../flash_messages';\nimport { setValueToStore, subscribeTo } from '../sharedStore';\n\nexport const PAYMENT_TYPE_CARD = 'card';\nexport const PAYMENT_TYPE_BANK = 'us_bank_account';\n\nexport default class extends Controller {\n static targets = [\n 'submit',\n 'connectAccount',\n 'connectAccountCard',\n 'disclaimerChecked',\n ];\n\n sharedStoreErrorKeys = [];\n getCardToken = null;\n connectBankAccount = null;\n confirmBankAccountPayment = null;\n billingDetails = null;\n paymentType = null;\n amount = null;\n paymentMethods = [];\n selectedPaymentMethod = null;\n\n connect() {\n this._enableSubmit = this._enableSubmit.bind(this);\n this._setOriginalButtonContent = this._setOriginalButtonContent.bind(this);\n this._setButtonLoader = this._setButtonLoader.bind(this);\n this._handleSubmitSuccess = this._handleSubmitSuccess.bind(this);\n this._handleSubmitError = this._handleSubmitError.bind(this);\n this._handleConfirmError = this._handleConfirmError.bind(this);\n this._handleConnectAccountError = this._handleConnectAccountError.bind(\n this,\n );\n\n this.paymentType = this.data.get('ask-with-card') === 'true' ? PAYMENT_TYPE_CARD : PAYMENT_TYPE_BANK;\n\n this._whenStripeAvailable([\n this._enableSubmit,\n this._setOriginalButtonContent,\n ]);\n }\n\n async submit(event) {\n event.preventDefault();\n this.submitTarget.disabled = true;\n this._setButtonLoader();\n this._hideDataFieldsErrors();\n\n const responseUuid = this.data.get('response-uuid');\n\n const dataParams = {\n response: this._findDataParams(),\n };\n\n if (this.paymentType === PAYMENT_TYPE_CARD) {\n wretch(`/api/v1/responses/${responseUuid}/payment_intent`)\n .json(dataParams)\n .post()\n .json((data) => {\n this.getCardToken(\n data.payment_intent.client_secret,\n this.billingDetails || this._findBillingDetailsParams(),\n )\n .then((result) => {\n if (result.error) {\n this.submitTarget.disabled = false;\n this._setOriginalButtonContent();\n this._handleCreditCardErrors([\n { error_message: result.error.message },\n ]);\n } else {\n hideFlashMessage();\n wretch(`/api/v1/responses/${responseUuid}/credit_card`)\n .put()\n .json(this._handleSubmitSuccess)\n .catch(this._handleSubmitError);\n }\n })\n .catch(this._handleConfirmError);\n })\n .catch(this._handleSubmitError);\n }\n\n if (this.paymentType === PAYMENT_TYPE_BANK) {\n wretch(`/api/v1/responses/${responseUuid}/payment_intent`)\n .json(dataParams)\n .post()\n .json((data) => {\n this.confirmBankAccountPayment(data.payment_intent.client_secret)\n .then((result) => {\n if (result.error) {\n this.submitTarget.disabled = false;\n this._setOriginalButtonContent();\n this._handleCreditCardErrors([\n { error_message: result.error.message },\n ]);\n } else {\n hideFlashMessage();\n wretch(`/api/v1/responses/${responseUuid}/credit_card`)\n .put()\n .json(this._handleSubmitSuccess)\n .catch(this._handleSubmitError);\n }\n })\n .catch(() => {\n this.submitTarget.disabled = false;\n this._setOriginalButtonContent();\n\n this._addErrorToTarget(\n this.connectAccountCardTarget,\n 'Please connect your bank account',\n );\n });\n })\n .catch(this._handleSubmitError);\n }\n }\n\n async connectAccount(event) {\n if (!event) {\n return;\n }\n\n event.preventDefault();\n this._hideDataFieldsErrors();\n this.connectAccountTarget.disabled = true;\n\n const responseUuid = this.data.get('response-uuid');\n\n const dataParams = {\n response: this._findDataParams(),\n };\n\n wretch(`/api/v1/responses/${responseUuid}/payment_intent`)\n .json(dataParams)\n .post()\n .json((data) => {\n this._enableSubmit();\n this.connectAccountTarget.disabled = false;\n this.connectBankAccount(\n data.payment_intent.client_secret,\n this.billingDetails || this._findBillingDetailsParams(),\n );\n })\n .catch((err) => {\n this.connectAccountTarget.disabled = false;\n this._handleConnectAccountError(err);\n });\n }\n\n selectCardType() {\n if (this.paymentType === PAYMENT_TYPE_BANK) {\n this.paymentType = PAYMENT_TYPE_CARD;\n this.selectedPaymentMethod = this.paymentMethods.find(\n (m) => m.kind === PAYMENT_TYPE_CARD,\n );\n this._setOriginalButtonContent();\n }\n }\n\n selectBankType() {\n if (this.paymentType === PAYMENT_TYPE_CARD) {\n this.paymentType = PAYMENT_TYPE_BANK;\n this.selectedPaymentMethod = this.paymentMethods.find(\n (m) => m.kind === PAYMENT_TYPE_BANK,\n );\n this._setOriginalButtonContent();\n }\n }\n\n _whenStripeAvailable = (callbacks) => {\n const self = this;\n\n subscribeTo('getCardToken', (func) => {\n self.getCardToken = func;\n callbacks.map((fn) => fn());\n });\n\n subscribeTo('connectBankAccount', (func) => {\n self.connectBankAccount = func;\n });\n\n subscribeTo('confirmBankAccountPayment', (func) => {\n self.confirmBankAccountPayment = func;\n });\n\n subscribeTo('amount', (value) => {\n self.amount = value;\n });\n\n subscribeTo('paymentMethods', (methods) => {\n self.paymentMethods = methods;\n });\n\n subscribeTo('selectedPaymentMethod', (obj) => {\n self.selectedPaymentMethod = obj;\n });\n\n subscribeTo('billingDetails', (value) => {\n self.billingDetails = value;\n });\n };\n\n // subscribe to the selected payment method\n // by default this subscribed variable should return card with funding `credit`\n // update the button based on the amount of the selected payment method\n // update the disclaimer based on the amount of the selected payment method\n // confirming the payment should either happen in controller or component but should be consistent\n\n _enableSubmit() {\n this.submitTarget.disabled = false;\n }\n\n _setButtonLoader() {\n this.submitTarget.innerHTML = `\n
\n `;\n }\n\n _setOriginalButtonContent() {\n const originalContent = this.submitTarget.dataset.originalContent;\n this.submitTarget.innerHTML = this._replaceAmountWithTotal(originalContent);\n }\n\n _replaceAmountWithTotal(text) {\n const totalAmount = this.selectedPaymentMethod?.total;\n return totalAmount ? text.replace(this.amount, totalAmount) : text;\n }\n\n _findDataParams() {\n const params = {\n payment_method: this.paymentType,\n payment_method_card_funding: this.selectedPaymentMethod?.card_funding,\n };\n\n // Build data fields responses here\n const dataFieldsWrappers = Array.from(\n document.querySelectorAll('[data-testid*=\"DataFieldsSelector/Field_\"]'),\n );\n const preparedAttributes = dataFieldsWrappers.reduce((acc, field) => {\n const fieldValue = field.querySelector('[name*=\"[value]\"').value;\n const idHiddenInput = field.querySelector(\n 'input[type=\"hidden\"][name*=\"[id]\"]',\n );\n const dataFieldIdHiddenInput = field.querySelector(\n 'input[type=\"hidden\"][name*=\"[data_field_id]\"]',\n );\n const mcOptionIdHiddenInput = field.querySelector(\n 'input[type=\"hidden\"][name*=\"[mc_option_id]\"]',\n );\n const richTextTitleInput = field.querySelector(\n 'input[type=\"hidden\"][name*=\"[value][title]\"]',\n );\n\n const attributes = {\n data_field_id: dataFieldIdHiddenInput.value,\n value: fieldValue,\n };\n\n if (idHiddenInput) {\n attributes.id = idHiddenInput.value;\n }\n\n if (mcOptionIdHiddenInput) {\n attributes.mc_option_id = mcOptionIdHiddenInput.value;\n }\n\n if (richTextTitleInput) {\n const richTextTitleHtmlInput = field.querySelector(\n 'input[type=\"hidden\"][name*=\"[value][title_html]\"]',\n );\n const richTextTitleElementsInput = field.querySelector(\n 'input[type=\"hidden\"][name*=\"[value][title_elements]\"]',\n );\n\n attributes.value = {\n title: richTextTitleInput.value,\n title_html: richTextTitleHtmlInput.value,\n title_elements: richTextTitleElementsInput.value,\n };\n }\n\n acc.push(attributes);\n return acc;\n }, []);\n\n params.data_field_responses_attributes = preparedAttributes;\n if (this.hasDisclaimerCheckedTarget) {\n const disclaimerValue = this.disclaimerCheckedTarget.querySelector(\n 'input',\n ).checked;\n\n params.disclaimer_checked = disclaimerValue ? 'on' : 'off';\n }\n\n return params;\n }\n\n _findBillingDetailsParams() {\n const fieldTypes = [\n 'email',\n 'full_name',\n 'first_name',\n 'last_name',\n 'zip_code',\n ];\n const params = fieldTypes.reduce((acc, fieldType) => {\n const field = document.querySelector(`[data-testtype=\"${fieldType}\"]`);\n\n if (field) {\n const value = field.querySelector('[name*=\"[value]\"').value;\n\n switch (fieldType) {\n case 'email':\n acc.email = value;\n break;\n case 'full_name':\n acc.name = value;\n break;\n case 'first_name':\n acc.name = acc.name ? `${value} ${acc.name}` : value;\n break;\n case 'last_name':\n acc.name = acc.name ? `${acc.name} ${value}` : value;\n break;\n case 'zip_code':\n acc.address = { postal_code: value };\n break;\n }\n }\n\n return acc;\n }, {});\n\n return params;\n }\n\n _handleSubmitSuccess({ data: { attributes } }) {\n this._setOriginalButtonContent();\n const redirect = () => {\n Turbo.visit(attributes.redirectUrl);\n };\n\n if (typeof fbq !== 'undefined') {\n fbq('trackCustom', 'ExperiencePayment', {\n experience_id: attributes.experienceUuid,\n experience_name: attributes.experienceTitle,\n value: attributes.donationAmount,\n currency: attributes.currency,\n payment_type: attributes.recurring,\n });\n\n // We need timeout here to fire Facebook Pixel event before redirect\n setTimeout(redirect, 300);\n } else {\n redirect();\n }\n }\n\n _handleConfirmError(text) {\n this.submitTarget.disabled = false;\n this._setOriginalButtonContent();\n const errors = JSON.parse(text);\n\n this._handleDataErrors(errors);\n }\n\n _handleSubmitError({ text }) {\n this.submitTarget.disabled = false;\n this._setOriginalButtonContent();\n\n try {\n this._handleDataErrors(JSON.parse(text));\n } catch (e) {\n this._showFlashErrorMessage();\n }\n }\n\n _handleCreditCardErrors(errors) {\n if (!errors) {\n return;\n }\n const messages = errors[0];\n\n if (messages.already_charged) {\n renderFlashError(messages.already_charged, 'success');\n } else if (messages.error_message) {\n renderFlashError(messages.error_message);\n }\n setTimeout(hideFlashMessage, 3000);\n }\n\n _handleDataErrors(json) {\n if (!json) {\n return;\n }\n const messages = json.errors;\n\n for (const [key, value] of Object.entries(messages)) {\n this.sharedStoreErrorKeys.push(key);\n\n setValueToStore(`dataFieldError_${key}`, value[0]);\n }\n if (messages.disclaimer_checked) {\n this._addErrorToTarget(\n this.disclaimerCheckedTarget,\n messages.disclaimer_checked[0],\n );\n }\n }\n\n _handleConnectAccountError({ text }) {\n try {\n this._handleDataErrors(JSON.parse(text));\n } catch (e) {\n this._showFlashErrorMessage();\n }\n }\n\n _addErrorToTarget(target, message) {\n const errorEl = document.createElement('span');\n errorEl.classList.add('error');\n errorEl.innerText = message;\n\n target.classList.add('field_with_errors');\n target.appendChild(errorEl);\n }\n\n _removeErrorClass(target) {\n if (target.classList.contains('field_with_errors')) {\n target.classList.remove('field_with_errors');\n\n target.childNodes.forEach((el) => {\n if (el.tagName === 'SPAN' && el.classList.contains('error')) {\n el.remove();\n }\n });\n }\n }\n\n _hideDataFieldsErrors() {\n for (const key of this.sharedStoreErrorKeys) {\n setValueToStore(`dataFieldError_${key}`, null);\n }\n\n if (this.hasDisclaimerCheckedTarget) {\n this._removeErrorClass(this.disclaimerCheckedTarget);\n }\n\n if (this.hasConnectAccountCardTarget) {\n this._removeErrorClass(this.connectAccountCardTarget);\n }\n }\n\n _showFlashErrorMessage() {\n renderFlashError('Something went wrong. Try again later');\n setTimeout(hideFlashMessage, 3000);\n }\n}\n","// Load all the controllers within this directory and all subdirectories.\n// Controller files must be named *_controller.js.\n\nimport { Application } from 'stimulus';\nimport { definitionsFromContext } from 'stimulus/webpack-helpers';\n\nconst application = Application.start();\nconst context = require.context('controllers', true, /_controller\\.js$/);\napplication.load(definitionsFromContext(context));\n\nif (process.env.RAILS_ENV === 'production') {\n application.handleError = (error, message, detail) => {\n // eslint-disable-next-line no-console\n console.warn(message, detail);\n window.exceptionHandler.notify(error, {\n component: detail.identifier,\n message,\n });\n };\n}\n","import swipeDetect from 'swipe-detect';\nimport VideoPlayer from './video_player_controller';\n\nimport { subscribeTo } from '../sharedStore';\n\nexport default class extends VideoPlayer {\n static targets = [\n 'container',\n 'form',\n 'buttonContainer',\n 'redirectBack',\n ];\n\n timer = null;\n container = null;\n\n connect() {\n if (this.containerTarget.scrollHeight < this.responseAskTitleTarget.scrollHeight) {\n this.container = this.responseAskTitleTarget;\n } else {\n this.container = this.containerTarget;\n }\n\n if (!this.hasButtonContainerTarget && !this.isDisabled()) {\n this._bindRedirectActionListener();\n this._bindSwipeListener();\n }\n\n subscribeTo('videoEndedPlaying', this.redirectForward.bind(this));\n }\n\n disconnect() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n\n redirectBack() {\n if (!this.hasButtonContainerTarget && !this.isDisabled()) {\n window.history.back();\n }\n }\n\n redirectForward() {\n if (!this.hasButtonContainerTarget && !this.isDisabled()) {\n this.formTarget.submit();\n }\n }\n\n _bindRedirectActionListener() {\n const timeout = parseInt(this.formTarget.dataset.timeout) * 1000;\n // We don't need create timeout for auto redirect when\n // conten timeout is null\n if (timeout) {\n this.timer = setTimeout(this.redirectForward.bind(this), timeout);\n }\n }\n\n _bindSwipeListener() {\n swipeDetect(this.container, function(direction) {\n switch (direction) {\n case 'right':\n this.redirectBack();\n break;\n case 'left':\n this.redirectForward();\n break;\n }\n }.bind(this));\n }\n\n isDisabled() {\n return this.data.get('disabled') === 'true';\n }\n}\n","import { Controller } from 'stimulus';\n\nimport { hideElement, showElement, isHiddenElement } from '../utils';\n\nimport { subscribeTo } from '../sharedStore';\n\nconst TITLE_HIDE_CLASS = 'hide-title-on-mobile';\nexport default class extends Controller {\n static targets = [\n 'playButton',\n 'playButtonContainer',\n 'responseFormContainer',\n 'responseAskTitle',\n 'cta',\n 'recordVideoControls',\n ];\n\n connect() {\n if (\n this.hasPlayButtonContainerTarget &&\n !isHiddenElement(this.playButtonContainerTarget)\n ) {\n this._hideRecordControls();\n }\n\n this._setInitialState();\n subscribeTo('videoStartedPlaying', this._showButtons.bind(this));\n subscribeTo('videoIsPlaying', this._toggleAskTitle.bind(this));\n }\n\n _showButtons() {\n if (this.hasResponseFormContainerTarget) {\n this.responseFormContainerTarget.classList.remove('hide-on-mobile');\n }\n\n if (this.hasCtaTarget) {\n this.ctaTarget.classList.remove('hide-on-mobile');\n }\n\n this._showRecordControls();\n }\n\n _toggleAskTitle(value) {\n if (this.hasResponseAskTitleTarget) {\n if (value) {\n this.responseAskTitleTarget.classList.add(TITLE_HIDE_CLASS);\n } else {\n this.responseAskTitleTarget.classList.remove(TITLE_HIDE_CLASS);\n }\n }\n }\n\n _setInitialState() {\n if (this._showActionButtons()) {\n if (this.hasResponseFormContainerTarget) {\n this.responseFormContainerTarget.classList.remove('hide-on-mobile');\n }\n\n if (this.hasCtaTarget) {\n this.ctaTarget.classList.remove('hide-on-mobile');\n }\n\n this._showRecordControls();\n }\n }\n\n _showActionButtons() {\n const startingScreen = this.data.get('starting-screen');\n\n if (startingScreen === 'play_button_first') {\n return false;\n }\n\n return true;\n }\n\n _hideRecordControls = () => {\n if (this.hasRecordVideoControlsTarget) {\n hideElement(this.recordVideoControlsTarget);\n }\n };\n\n _showRecordControls = () => {\n if (this.hasRecordVideoControlsTarget) {\n showElement(this.recordVideoControlsTarget);\n }\n };\n}\n","import {Controller} from 'stimulus';\nimport {showElement, hideElement} from '../utils';\n\nexport default class extends Controller {\n static targets = [\n 'source',\n 'form',\n 'colorBox',\n 'codeBlock',\n ];\n\n connect() {\n this.currentCodeBlock = 'basic';\n this._showCodeBlock();\n this._bindFormDataToTemplate();\n this.setColorBox();\n }\n\n _showCodeBlock = () => {\n this.codeBlockTargets.forEach((codeBlock) => {\n if (codeBlock.dataset.blockName === this.currentCodeBlock) {\n showElement(codeBlock);\n } else {\n hideElement(codeBlock);\n }\n });\n }\n\n _createTemplate = ({\n askUrl,\n dataUrl,\n widgetUrl,\n color,\n title,\n shape,\n position = 'right',\n }) => {\n const header = `\n \n`;\n const body = `\n`;\n\n return { header, body };\n };\n\n _bindFormDataToTemplate = () => {\n const { askUrl, dataUrl, widgetUrl } = this.sourceTarget.dataset;\n const form = this.formTarget;\n const title = form.title.value;\n const color = form.color.value;\n const position = form.position.value;\n const shape = form.shape.value;\n\n const { header, body } = this._createTemplate({\n askUrl,\n dataUrl,\n widgetUrl,\n color,\n title,\n position,\n shape,\n });\n\n this.sourceTargets.forEach((target) => {\n switch (target.dataset.widgetTabsTarget) {\n case 'widget-head':\n target.innerHTML = header;\n break;\n case 'widget-body':\n target.innerHTML = body;\n break;\n case 'widget':\n target.innerHTML = [header, body].join('\\n\\n');\n break;\n };\n });\n };\n\n setColorBox = (e) => {\n let color;\n\n if (e) {\n color = e.currentTarget.value;\n } else {\n color = this.formTarget.color.value;\n }\n\n if (this.color === color) {\n return;\n }\n\n this.color = color;\n this.colorBoxTarget.style.backgroundColor = color;\n }\n\n changeWidgetType = (e) => {\n const nextWidgetType = e.currentTarget.value;\n this.currentCodeBlock = nextWidgetType;\n\n this._showCodeBlock();\n }\n\n onFormUpdate = this._bindFormDataToTemplate;\n}\n","import { Controller } from 'stimulus';\nimport * as clipboard from 'clipboard-polyfill';\nimport _find from 'lodash/find';\n\nimport { hideElement, showElement } from '../utils';\n\nconst ACTIVE_SWITCHER_CLASS = 'popup__button--active';\nconst HEADER_SIZE = '60px';\nconst NOTICE_SHOW_TIME = 3000;\n\nexport default class extends Controller {\n static targets = [\n 'switcher',\n 'window',\n 'area',\n 'copyNotice',\n ]\n\n connect() {\n this._hideAll();\n this._showFirst();\n }\n\n _hideAll() {\n this.windowTargets.forEach(hideElement);\n this.switcherTargets.forEach((element) => element.classList.remove(ACTIVE_SWITCHER_CLASS));\n }\n\n _showFirst() {\n const panel = this.windowTargets[0];\n const button = this._findByReference(this.switcherTargets, panel.dataset.reference);\n\n button.classList.add(ACTIVE_SWITCHER_CLASS);\n showElement(panel);\n }\n\n _findByReference(elements, reference) {\n return elements.find((e) => e.dataset.reference === reference);\n }\n\n _activateByReference(reference) {\n const panel = this._findByReference(this.windowTargets, reference);\n const button = this._findByReference(this.switcherTargets, reference);\n\n button.classList.add(ACTIVE_SWITCHER_CLASS);\n showElement(panel);\n }\n\n _setNoticeTop({ target, scrollable }) {\n return () => {\n if (scrollable.scrollTop > 60) {\n target.style.top = `${scrollable.scrollTop}px`;\n } else {\n target.style.top = HEADER_SIZE;\n }\n };\n };\n\n /**\n * Exposed controller functions\n */\n changeTab(e) {\n this._hideAll();\n this._activateByReference(e.currentTarget.dataset.reference);\n }\n\n copy(e) {\n const targetName = e.currentTarget.dataset.widgetTabsTarget;\n const element = this.areaTargets.find((e) => e.dataset.widgetTabsTarget === targetName);\n\n clipboard.writeText(element.value);\n this.showCopyNotice();\n }\n\n showCopyNotice() {\n const target = this.copyNoticeTarget;\n const scrollable = _find(\n document.getElementsByClassName('popup'),\n (e) => !e.classList.contains('hidden')\n );\n const setNoticePosition = this._setNoticeTop({ target, scrollable });\n\n setNoticePosition();\n showElement(target);\n scrollable.addEventListener(\n 'scroll',\n setNoticePosition\n );\n\n if (this.timeout) {\n clearTimeout(this.timeout);\n };\n\n this.timeout = setTimeout(\n () => {\n hideElement(this.copyNoticeTarget);\n scrollable.removeEventListener('scroll', setNoticePosition);\n },\n NOTICE_SHOW_TIME,\n );\n }\n}\n","import { Controller } from 'stimulus';\nimport { hideElement, showElement, isHiddenElement } from '../utils';\n\nexport default class extends Controller {\n static targets = [\n 'trigger',\n 'window',\n ];\n\n\n toggle(e) {\n const popup = this._findPopup(e.currentTarget.dataset.reference);\n\n this._toggleWindow(popup);\n }\n\n _toggleWindow(popup) {\n if (isHiddenElement(popup)) {\n showElement(popup);\n this._setBodyOverflow('hidden');\n } else {\n hideElement(popup);\n this._setBodyOverflow('auto');\n }\n }\n\n _findPopup(reference) {\n const finder = (element) => element.dataset.reference === reference;\n return this.windowTargets.find(finder);\n }\n\n _setBodyOverflow(value) {\n document.body.style.overflow = value;\n }\n}\n","import { DirectUpload } from '@rails/activestorage';\n\nexport class Uploader {\n constructor(blob, url, uploadPercentage, uploadProgress, cancelCallback, onComplete) {\n this.uploadPercentage = uploadPercentage;\n this.uploadProgress = uploadProgress;\n this.blob = blob;\n this.url = url;\n this.cancelCallback = cancelCallback;\n this.onComplete = onComplete;\n }\n\n create(callback) {\n const uploader = new DirectUpload(this.blob, this.url, this);\n uploader.create(callback);\n }\n\n directUploadWillStoreFileWithXHR(request) {\n this.cancelCallback(request);\n\n request.upload.addEventListener('progress',\n event => this._directUploadDidProgress(event));\n if (this.onComplete) {\n request.addEventListener('load', this.onComplete, false);\n }\n }\n\n _directUploadDidProgress(event) {\n const percent = Math.round(event.loaded / event.total * 100);\n\n this._updateProgressBar(percent);\n }\n\n _updateProgressBar(percent) {\n this.uploadPercentage.innerHTML = `${percent}%`;\n this.uploadProgress.style.width = `${percent}%`;\n }\n}\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","Label","styled","html","style","useState","content","setContent","parsedTextWithReferences","useUpdateReferencesTags","useEffect","text","key","nanoid","name","UploadButtons","onCancel","cancelButtonRef","submitButtonRef","ctaButtonContent","ctaButtonStyle","className","type","onClick","ref","buttonRef","percentageRef","progressBarRef","cancelUpload","file","hidden","uploadUrl","refreshState","uploadCreateCallback","React","progressPercentageRef","activeUpload","handleUploadMedia","setActiveUploadRequest","request","current","Uploader","create","intervalId","setInterval","abort","clearInterval","uploadMediaValidator","responder","message","UNSUPPORTED_TYPE_ERROR_MESSAGE","includes","ALL_ALLOWED_FILE_TYPES","VIDEO_TYPE_ERROR_MESSAGE","size","VIDEO_SIZE_LIMIT","VIDEO_SIZE_ERROR_MESSAGE","BACKGROUND_VIDEO_SIZE_ERROR_MESSAGE","PREVIEWABLE_VIDEO_TYPES","IMAGE_SIZE_LIMIT","IMAGE_SIZE_ERROR_MESSAGE","BACKGROUND_IMAGE_SIZE_ERROR_MESSAGE","ALLOWED_IMAGE_TYPES","IMAGE_TYPE_ERROR_MESSAGE","FILE_SIZE_LIMIT","FILE_SIZE_ERROR_MESSAGE","initialValue","onTimerEnd","formatTimer","secondsLeft","setSecondsLeft","timer","setTimeout","clearTimeout","Date","toTimeString","substring","setButtonsWrapperClassName","askerSide","setHelpTextClassName","setCountdownClassName","setMediaWrapperClassNames","backgroundIsColor","setClassName","setVideoTagClassNames","backgroundLayout","blob","uuid","recordingState","setRecordingState","setSignedIdObj","startRecording","stopRecording","resetToInitial","closeRecordPage","error","signed_id","params","signedId","ask","background_video_signed_id","ugc_media_response","video_signed_id","buildParams","updateMedia","then","response","ok","value","RESPONSE_PREVIEW","INITIAL","display","COUNTDOWN","RECORDING","UPLOADING","UploadingState","renderContent","cancelPath","directUploadUrl","mediaResponse","latest_attachment","setDefaultRecordingState","setBlob","responses","setResponses","setDefaultSignedIdObj","signedIdObj","signedIdIsEmpty","_isEmpty","fileInputRef","videoRef","useRef","videoStream","recorder","isMobile","addEventListener","fileUploadListener","removeEventListener","captureCamera","RecordRTC","bitsPerSecond","canvas","width","height","target","files","navigator","mediaDevices","getUserMedia","audio","video","stream","muted","volume","srcObject","stopRecordingCallback","videoBlob","getBlob","destroy","accept","capture","autoPlay","playsInline","VideoBackground","sources","URL","createObjectURL","ResponsePreview","attachment","click","window","Turbo","visit","location","href","useContext","ReferencesContext","references","dispatch","parsedText","split","match","ADD_REFERENCE","payload","reference","borderRadius","ProgressContainer","Progress","amount","isFull","progress","full","Container","CurrentAmount","Caption","Description","MetricWrapper","SocialMetricName","SocialMetricValue","toInteger","v","_parseInt","toString","_isNaN","_isString","_isNumber","prepareProgressValues","currentAmount","restGoal","splitted","otherGoalAmount","otherGoal","otherGoalName","otherAmountMatch","otherGoalMatch","goal","raiseAmountByBlock","raiseAmountByExperience","raiseAmountByAsker","raiseAmountByVariant","raiseGoalType","raiseGoal","raiseGoalName","raiseCurrency","rest","raiseAmount","commaFormatter","restLabel","join","Number","AskMetric","props","submissionsMetric","amountRaisedMetric","amountRaisedByExperienceMetric","amountRaisedByAskerMetric","amountRaisedByVariantMetric","otherMetric","socialMetrics","withGoalProgress","isPreview","flexWrap","EditableReferenceLabel","borderWidth","padding","dangerouslySetInnerHTML","__html","renderGoalProgress","amountRaisedMetricName","amountRaisedByExperienceMetricName","amountRaisedByAskerMetricName","amountRaisedByVariantMetricName","submissionsMetricName","submissionAmount","otherMetricName","otherMetricAmount","metricStrings","prepareCurrentAmount","_isNull","kFormatter","push","metricValue","metricName","prepareCurrentOtherAmount","_uniqueId","renderSocialMetrics","PropTypes","defaultProps","NaN","submissionGoal","BottomBar","askMetric","MetricsBottomBar","DefaultMetricsPropTypes","Logo","logoUrl","BrandingName","Anchor","schemalessUrl","styles","marginTop","backgroundColor","position","transform","fontSize","color","border","right","zIndex","mr","pr","p","lineHeight","boxShadow","MozAppearance","WebkitAppearance","margin","fontWeight","letterSpacing","overflow","whiteSpace","transition","top","TextField","defaultValue","label","helperText","onFocus","disabled","multiline","cssStyle","onChange","valueAttribute","scrollIntoView","sx","mt","marginRight","mb","marginBottom","ml","marginLeft","opacity","variant","rows","inputRef","inputProps","InputProps","disableUnderline","m","WebkitTextFillColor","InputLabelProps","disableAnimation","getLabelMarginTop","paddingTop","background","FormHelperTextProps","DateSelector","selectedDate","setSelectedDate","LocalizationProvider","dateAdapter","AdapterDateFns","DesktopDatePicker","onAccept","renderInput","PaperProps","formControl","paddingRight","inputLabel","pointerEvents","inputLabelClasses","select","borderColor","cursor","formHelperText","getCustomizedFormControlsStyles","getCustomizedNativeSelectStyles","disabledTextColor","Select","options","isCurrentlyEmployed","onSelect","_isNil","setValue","FormControl","InputLabel","htmlFor","NativeSelect","event","IconComponent","ChevronDown","input","InputBase","FormHelperText","Checkbox","required","checkboxHidden","booleanDefaultValue","getBooleanFromString","FormControlLabel","minHeight","boxSizing","pl","bgcolor","control","checked","disableRipple","optionId","setOptionId","defaultOption","find","option","selectedOption","selectedOptions","dataset","optionName","MoneyTextField","fieldCurrency","number","replace","endAdornment","InputAdornment","textTransform","CURRENCY_SIGN_MAP","toUpperCase","onPopover","editor","useSlate","selection","setSelection","anchoreEl","setAnchoreEl","inputValue","setInputValue","setError","handleOpen","useCallback","link","activeLink","url","currentTarget","handleClose","handleUnlink","preventDefault","unwrapLink","handleLink","insertLink","isUrl","open","Boolean","undefined","isActive","iconColor","handleClick","popover","buttonProps","Link","Popover","onClose","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","Input","placeholder","autoFocus","paletteColors","setOpen","popoverIsOpen","setPopoverIsOpen","setAnchorEl","placement","setPlacement","useHorizontalScroll","scrollContainerRef","handleScroll","isAtStart","isAtEnd","closeToolbar","openToolbar","getMobileOS","Range","Editor","node","selectedEl","ReactEditor","getBoundingClientRect","nodeType","Popper","disablePortal","Box","maxWidth","overflowX","overflowY","left","bottom","onScroll","ClickAwayListener","onClickAway","mouseEvent","touchEvent","Stack","direction","alignItems","menuItems","FONT_WEIGHT_MENU_ITEMS","ariaLabel","ColorPicker","HighlightPicker","ParagraphButton","isOpen","Transforms","edge","MarkButton","format","BlockButton","LetterSettings","SlateInput","renderElement","renderLeaf","I","slateInput","RichTextField","_isObject","JSON","parse","titleElements","buildSlateElements","elements","setElements","firstRender","withMention","withLinks","withHistory","withReact","createEditor","at","elementProps","Element","Leaf","textValue","elementsToText","shrink","inputComponent","readOnly","slateToHtml","stringify","ProgressBar","visible","px","clip","clipPath","flexDirection","justifyContent","Typography","component","justifySelf","ClearOutlined","UploadField","fileName","setFileName","uploading","setUploading","setSignedId","errorMessage","setErrorMessage","handleClear","useDropzone","noClick","multiple","validator","onDropAccepted","acceptedFiles","onDropRejected","rejectedFiles","errors","getRootProps","getInputProps","isDragAccept","isDragReject","outline","py","CloudUploadOutlined","noWrap","DeleteOutlineOutlined","SignaturePad","onSave","onClear","canvasRef","isUploading","Modal","disableEnforceFocus","maxHeight","tabIndex","flex","Button","disableFocusRipple","disableElevation","disableTouchRipple","fontFamily","LoadingButton","loading","SignatureField","setIsUploading","isEmpty","setIsEmpty","svg","setSvg","DrawOutlined","Clear","clear","toSVG","timestamp","getTime","File","DirectUpload","currentlyEmployedOptions","DataFieldWrapper","parsedHtml","richText","titleHtml","previewHtmlLabel","toHtmlWithStyledReferences","subscribeTo","errorKey","handleStimulusError","preparedMultipleChoiceOptions","baseProps","previewDefaultValue","useReferenceName","COUNTRIES_FOR_SELECT","multipleChoiceOptions","title","DataFieldContainer","halfWidth","halfWidthTypes","typesMapper","first_name","last_name","setType","field","attributes","isHalfWidth","prev","next","currentType","nextType","prevType","initialCssStyle","borderStyle","checkboxInitialCssStyle","fields","currency","disabledFields","askLabel","theme","createTheme","typography","overrides","MuiInputLabel","root","inputName","index","attrName","parseErrors","errorMessages","ThemeProvider","BlockLabel","item","length","dataFieldId","getResponse","isHidden","_omitBy","initialStyles","textAlign","paddingBottom","paddingLeft","checkedStyles","children","isChecked","flexGrow","flexBasis","paymentOptions","withCustom","baseParams","chunkSize","_chunk","chunk","amountNumber","InlineEditInputPrompt","Prefix","InputPrefix","DisabledPrefix","InputField","StyledInputNoLeftRadius","InlineEditInputWrapper","InputWrapper","Postfix","DisabledPostfix","InlineEditInput","amountInputProps","noMargin","icon","postfixIcon","activeInputField","disabledInputField","DonationTypeWrapper","DonationTypeTitle","ButtonWrapper","RadioButton","RadioLabel","radioButtons","setDonationType","handleChange","isOtherAmount","amounts","DONATION_TYPE_VALUES","both","one_time","recurring","getDonationType","defaultDonationType","paymentType","DonationAmountsSelector","donationType","isCustomDonation","ctaButtonDisabled","defaultCheckedAmount","parseInt","parseDefaultAmount","checkedAmount","setCheckedAmount","isOther","otherChecked","setOtherChecked","otherAmount","setOtherAmount","currencySymbol","donationTypeValue","setDonationTypeValue","buttonTitle","useMemo","isOtherChecked","haveNotOneAmountOption","donationTypeIsBoth","donationTypeIsRecurring","AmountButtons","CtaButton","document","querySelector","requestSubmit","OptionButtonTemplate","MultiSelectOptionButton","SingleSelectOptionButton","selected","OtherButtonContainer","ActionButton","darken","ActionButtonRounded","InnerContentContainerForButton","CancelButton","EditButton","OtherButtonInput","OtherButtonInputRounded","ErrorMessage","IndicatorsContainer","c","src","container","valueContainer","menuList","state","selectProps","responsive","menu","isFocused","borderBottom","multiValue","multiValueLabel","multiValueRemove","indicatorsContainer","clearIndicator","indicatorSeparator","filterOption","candidate","val","_trim","_lowerCase","data","__isNew__","ReferenceOption","innerProps","innerRef","creatable","classNamePrefix","isClearable","isSearchable","maxMenuHeight","menuPlacement","closeMenuOnSelect","isMulti","formatCreateLabel","components","Option","SingleValue","blurInputOnSelect","OtherInputContainer","prepareDefaultOptions","defaultValues","_compact","_uniqBy","OtherOptionInput","onKeyPress","basicOptions","currentValues","otherOptionId","withOtherOption","responseId","defaultOptions","prepareDefaultValues","setOptions","setSelectedOptions","otherInputIsActive","setOtherInputIsActive","otherInputValue","setOtherInputValue","defaultMenuIsOpen","setDefaultMenuIsOpen","customProps","onCreateOption","formedOption","nextOptions","filter","nextSelectedOptions","multiple_choice_option_responses","_isArray","multiple_choice_option_name","multiple_choice_option_id","wretch","put","json","redirect_url","catch","responsesErrors","prepareErrorMessage","previewHtmlTitle","multipleChoiceId","textTitle","htmlTitle","role","CheckCircle","exceptionHandler","notify","disabledOtherButton","currentValue","otherName","setOtherName","isEditing","setIsEditing","handleSubmit","onOtherNameChange","shouldBeOpened","setChecked","isValid","String","trim","handleKeyPress","handleChecked","startEditing","stopPropagation","cancelEditing","saveValue","setParentErrorMessage","setCurrentValues","otherValue","otherOption","setOtherOption","handleButtonClick","handleCurrentValuesChange","nextValue","nextState","cId","isSelected","allOptions","newArray","el","localError","globalError","localMessage","globalMessage","MarginTop","shouldRenderButtons","titleSize","optionsLength","selector","isButtons","setIsButtons","selectorProps","addTransparency","Step","transparent","StepsContainer","count","stepsCount","currentStep","blockWithMedia","steps","step","renderSteps","SubmitButton","expResponseId","isVisible","formRef","action","method","withProgressBar","ShareIconWrapper","DropdownListContainer","Tooltip","tooltips","shareUrl","isOpenOnHover","setIsOpenOnHover","isOpenPermanently","setIsOpenPermanently","copyTooltipText","setCopyTooltipText","dropdownRef","closeDropdown","handleClickOutside","contains","onMouseEnter","onMouseLeave","clipboard","writeText","standardMessage","FacebookShareButton","resetButtonStyle","TwitterShareButton","EmailShareButton","openShareDialogOnClick","supportWebshare","file_url","UploadedFile","UploadedImage","preview","setFiles","assign","makeToast","forEach","revokeObjectURL","responderVideoPlayer","backgroundVideoTag","uploadButton","ugcSelectorsWrapper","uploadedFilePreview","classList","add","pause","remove","onclick","signedIdPropertyName","content_type","ALLOWED_VIDEO_TYPES","PlayButton","ControlButtonsContainer","withShareIcon","ControlButton","StyledPlayer","Player","layout","ClickableBackground","LoadingSpinner","playButtonIsHidden","readyState","CircularProgress","hidePlayButton","onVideoPlaying","onPlayButtonClick","placeholderImageUrl","setMuted","loop","setLoop","controlsAreHidden","setControlsAreHidden","isPlaying","setIsPlaying","setWithProgressBar","setReadyState","player","handlePostMessage","handlePlayerStateChange","progressBar","play","actions","toggleFullscreen","poster","subscribeToStateChange","lazyLoadInstance","LazyLoad","update","seek","setValueToStore","fluid","onEnded","onPause","source","disableCompletely","Shortcut","clickable","VideoContainer","hiddenOnMobile","LazyImage","BackgroundImage","imageUrl","backgroundMediaOpacity","BackgroundVideo","videoSources","controls","mediaStyles","objectFit","settings","backgroundColorOverlay","backgroundMediaIsImage","backgroundMediaIsVideo","styledLabel","pt","withMediaBackground","contentLayout","parseToRgb","alpha","readableColor","withStyledButtonText","styledContent","enabled","IconButton","findButton","buttons","b","NavigationButtons","skippable","controllerName","staticPosition","isMultiSelect","responseIsPublished","backPath","backIsDisabled","setBackIsDisabled","forwardIsDisabled","setForwardIsDisabled","backButton","forwardButton","ChevronLeft","forms","ctaButton","ChevronRight","Icon","fontColor","restProps","Textarea","ResponseTextField","textRef","setTextareaHeight","scrollHeight","focus","ugc_text","Component","textOverflow","ToastWrapper","DEFAULT_TOAST_ID","getToastOffset","topOffset","currentPosition","pageYOffset","Toast","setTop","findOrCreateElement","element","getElementById","createElement","setAttribute","body","insertBefore","lastElementChild","nextElementSibling","backgroundColorByType","timeout","render","this","sourceTarget","Controller","hideFlashMessage","flashContainer","hideElement","renderFlashError","messageClass","wrappedMessage","innerHTML","showElement","i","PAYMENT_TYPE_CARD","PAYMENT_TYPE_BANK","callbacks","self","func","getCardToken","fn","connectBankAccount","confirmBankAccountPayment","methods","paymentMethods","obj","selectedPaymentMethod","billingDetails","_enableSubmit","bind","_setOriginalButtonContent","_setButtonLoader","_handleSubmitSuccess","_handleSubmitError","_handleConfirmError","_handleConnectAccountError","get","_whenStripeAvailable","submitTarget","_hideDataFieldsErrors","responseUuid","dataParams","_findDataParams","post","payment_intent","client_secret","_findBillingDetailsParams","result","_handleCreditCardErrors","error_message","_addErrorToTarget","connectAccountCardTarget","connectAccountTarget","err","kind","originalContent","_replaceAmountWithTotal","totalAmount","total","payment_method","payment_method_card_funding","card_funding","preparedAttributes","Array","from","querySelectorAll","reduce","acc","fieldValue","idHiddenInput","dataFieldIdHiddenInput","mcOptionIdHiddenInput","richTextTitleInput","data_field_id","mc_option_id","richTextTitleHtmlInput","richTextTitleElementsInput","title_html","title_elements","data_field_responses_attributes","hasDisclaimerCheckedTarget","disclaimerValue","disclaimerCheckedTarget","disclaimer_checked","fieldType","email","address","postal_code","redirect","redirectUrl","fbq","experience_id","experienceUuid","experience_name","experienceTitle","donationAmount","payment_type","_handleDataErrors","_showFlashErrorMessage","messages","already_charged","entries","sharedStoreErrorKeys","errorEl","innerText","appendChild","childNodes","tagName","_removeErrorClass","hasConnectAccountCardTarget","application","Application","context","require","load","definitionsFromContext","handleError","detail","console","warn","identifier","containerTarget","responseAskTitleTarget","hasButtonContainerTarget","isDisabled","_bindRedirectActionListener","_bindSwipeListener","redirectForward","history","back","formTarget","submit","swipeDetect","redirectBack","VideoPlayer","TITLE_HIDE_CLASS","hasRecordVideoControlsTarget","recordVideoControlsTarget","hasPlayButtonContainerTarget","isHiddenElement","playButtonContainerTarget","_hideRecordControls","_setInitialState","_showButtons","_toggleAskTitle","hasResponseFormContainerTarget","responseFormContainerTarget","hasCtaTarget","ctaTarget","_showRecordControls","hasResponseAskTitleTarget","_showActionButtons","_bindFormDataToTemplate","codeBlockTargets","codeBlock","blockName","currentCodeBlock","askUrl","dataUrl","widgetUrl","shape","header","form","_createTemplate","sourceTargets","widgetTabsTarget","colorBoxTarget","nextWidgetType","_showCodeBlock","setColorBox","ACTIVE_SWITCHER_CLASS","_hideAll","_showFirst","windowTargets","switcherTargets","panel","_findByReference","scrollable","scrollTop","_activateByReference","targetName","areaTargets","showCopyNotice","copyNoticeTarget","_find","getElementsByClassName","setNoticePosition","_setNoticeTop","popup","_findPopup","_toggleWindow","_setBodyOverflow","uploadPercentage","uploadProgress","cancelCallback","onComplete","callback","upload","_directUploadDidProgress","percent","Math","round","loaded","_updateProgressBar"],"sourceRoot":""}