{"version":3,"file":"static/js/907.ae13569c.chunk.js","mappings":"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","sources":["Components/Util/CrowdfundingOptions.js","Components/Util/CustomCrowdfundingAmount.js","Components/CrowdfundingForm.js"],"sourcesContent":["import { type } from \"@testing-library/user-event/dist/type\";\nimport React, { useEffect } from \"react\";\nimport { setContrast } from \"./ColorSwap.js\";\n\nfunction CrowdfundingOptions({\n primaryColor,\n selectedCrowdfundingOption,\n setSelectedCrowdfundingOption,\n crowdfundingOptions,\n resizeIframe,\n}) {\n const defaultAmountsLenToWidth = {\n 1: \"w-full\",\n 2: \"w-1/2\",\n 3: \"w-1/3\",\n 4: \"w-1/4\",\n 5: \"w-1/5\",\n 6: \"w-1/6\",\n 7: \"w-1/7\",\n 8: \"w-1/8\",\n };\n\n useEffect(() => {\n resizeIframe();\n }, [crowdfundingOptions]);\n\n return (\n
\n
\n {crowdfundingOptions.map((crowdfundingOption, i) => {\n return (\n setSelectedCrowdfundingOption(crowdfundingOption)}\n style={\n selectedCrowdfundingOption !== undefined &&\n selectedCrowdfundingOption.title !== \"\" &&\n selectedCrowdfundingOption.amount === crowdfundingOption.amount\n ? {\n backgroundColor: primaryColor,\n color: setContrast(primaryColor),\n }\n : { backgroundColor: \"white\", color: \"gray\" }\n }\n value={crowdfundingOption.amount}\n >\n
\n
\n $\n {crowdfundingOption.amount >= 1000\n ? (+crowdfundingOption.amount / 1000).toFixed(1) + \"K\"\n : crowdfundingOption.amount}\n
\n
-
\n
\n
\n {crowdfundingOption.title}\n
\n
\n {crowdfundingOption.description}\n
\n
\n
\n \n );\n })}\n
\n
\n );\n}\n\nexport default CrowdfundingOptions;\n","/*\n This example requires some changes to your config:\n \n ```\n // tailwind.config.js\n module.exports = {\n // ...\n plugins: [\n // ...\n require('@tailwindcss/forms'),\n ],\n }\n ```\n*/\nexport default function CustomCrowdfundingAmount({\n selectedCrowdfundingOption,\n setSelectedCrowdfundingOption,\n crowdfundingOptions,\n maxTransactionAmount,\n}) {\n const handleOnChange = (event) => {\n let value = event.target.value;\n\n //only allow numbers and periods\n value = value.replace(/[^0-9.].*/g, \"\");\n\n //allows only 1 period\n let decimalCount = (value.match(/\\./g) || []).length;\n if (decimalCount == 2) {\n let index = value.lastIndexOf(\".\");\n value = value.substr(0, index);\n }\n\n // limit to two decimal places\n value = value.replace(/(\\.\\d{2})\\d{1,}/g, \"$1\");\n\n if (value === \".\") {\n value = \"0.\";\n }\n\n // Checking if current total will surpass max transaction amount\n if (+value > maxTransactionAmount) {\n value = value.replace(/.$/g, \"\");\n }\n\n // check if value matches any amount in crowdfundingOptions, and grab that value if so\n let match = crowdfundingOptions.find((option) => option.amount == +value);\n\n if (match !== undefined) {\n setSelectedCrowdfundingOption(match);\n } else {\n setSelectedCrowdfundingOption({\n amount: value,\n title: \"\",\n description: \"\",\n });\n }\n };\n\n return (\n
\n
\n \n USD\n \n
\n handleOnChange(e)}\n />\n \n Enter Amount\n \n
\n
\n
\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport DonationFrequencies from \"./Util/DonationFrequencies\";\nimport CustomAmount from \"./Util/CustomAmount\";\nimport FundsDropdown from \"./Util/FundsDropdown\";\nimport AmountButtons from \"./Util/AmountButtons\";\nimport CustomInputsPage from \"./Util/CustomInputs\";\nimport CustomShimmer from \"./Util/Shimmer\";\nimport CrowdfundingOptions from \"./Util/CrowdfundingOptions\";\nimport CustomCrowdfundingAmount from \"./Util/CustomCrowdfundingAmount\";\nimport { fieldMapper } from \"./Util/FieldMapper\";\nconst freqMap = {\n \"\": \"\",\n ONE_TIME: \"One-Time\",\n DAILY: \"Daily\",\n WEEKLY: \"Weekly\",\n MONTHLY: \"Monthly\",\n ANNUALLY: \"Yearly\",\n};\n\nfunction CrowdfundingForm(props) {\n const [hostedPage, setHostedPage] = useState(null);\n const [elementID, setElementID] = useState(\"\");\n const [configData, setConfigData] = useState({});\n\n const [maxTransactionAmount, setMaxTransactionAmount] = useState(1000);\n const [customInputsValues, setCustomInputsValues] = useState([]);\n const [primaryColor, setPrimaryColor] = useState(\"#69995E\");\n const [secondaryColor, setSecondaryColor] = useState(\"#496b42\");\n const [funds, setFunds] = useState([\n \"General Fund\",\n \"Zakat Fund\",\n \"Sadaqah Fund\",\n ]);\n const [frequencies, setFrequencies] = useState([\n \"ONE_TIME\",\n \"DAILY\",\n \"WEEKLY\",\n \"MONTHLY\",\n \"ANNUALLY\",\n ]);\n const [oneTimeAmounts, setOneTimeAmounts] = useState([\n \"10\",\n \"25\",\n \"50\",\n \"100\",\n ]);\n const [dailyAmounts, setDailyAmounts] = useState([\"10\", \"25\", \"50\", \"100\"]);\n const [weeklyAmounts, setWeeklyAmounts] = useState([\"10\", \"25\", \"50\", \"100\"]);\n const [monthlyAmounts, setMonthlyAmounts] = useState([\n \"10\",\n \"25\",\n \"50\",\n \"100\",\n ]);\n const [annuallyAmounts, setAnnuallyAmounts] = useState([\n \"10\",\n \"25\",\n \"50\",\n \"100\",\n ]);\n const [defaultOneTimeAmount, setDefaultOneTimeAmount] = useState(\"10\");\n const [defaultDailyAmount, setDefaultDailyAmount] = useState(\"25\");\n const [defaultWeeklyAmount, setDefaultWeeklyAmount] = useState(\"50\");\n const [defaultMonthlyAmount, setDefaultMonthlyAmount] = useState(\"100\");\n const [defaultAnnuallyAmount, setDefaultAnnuallyAmount] = useState(\"10\");\n const [crowdfundingOptions, setCrowdfundingOptions] = useState([]);\n\n const [page, setPage] = useState(\"START_PAGE\");\n const [defaultAmounts, setDefaultAmounts] = useState(oneTimeAmounts);\n\n const [frequency, setFrequency] = useState(\"\");\n const [selectedFund, setSelectedFund] = useState(\"\");\n const [selectedCrowdfundingOption, setSelectedCrowdfundingOption] =\n useState(undefined);\n\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [errorDisplayTime, setErrorDisplayTime] = useState(0);\n const [errorMessageInterval, setErrorMessageInterval] = useState(null);\n const [loading, setLoading] = useState(true);\n const [addToCart, setAddToCart] = useState(false);\n\n const [domID, setDomID] = useState(\"\");\n\n const listener = (event) => {\n if (\n !(\n event.data.entity == \"CHARITYSTACK\" &&\n event.data.action == \"RESET_ELEMENT\"\n )\n )\n return;\n\n setPage(\"START_PAGE\");\n setFrequency(\"\");\n setSelectedCrowdfundingOption(undefined);\n setSelectedFund(\"\");\n\n props.fetchElementsConfig().catch((err) => console.log(\"ERROR\", err));\n };\n\n const goBackListener = (event) => {\n if (\n !(event.data.entity == \"CHARITYSTACK\" && event.data.action == \"GO_BACK\")\n )\n return;\n\n // this looks complicated b/c we can't read the states inside this function the normal way\n // tbh right now we can always set the state as START_PAGE b/c both if and else do that\n // but i am keeping this in case we need to actually change it to two or more values later\n setPage((currentPage) => {\n if (currentPage === \"START_PAGE\") {\n return \"START_PAGE\";\n }\n return \"START_PAGE\";\n });\n };\n\n useEffect(() => {\n // Send the content height to the parent window\n window.parent.postMessage(\n {\n action: \"CHANGE_PAGE\",\n entity: \"CHARITYSTACK\",\n sender: \"CROWDFUNDING_FORM\",\n receiver: \"HOSTED_PAGE\",\n data: JSON.stringify({\n currentPage: page,\n }),\n },\n \"*\",\n );\n resizeIframe();\n }, [page]);\n\n useEffect(() => {\n if (loading === false && hostedPage !== null) {\n // send message that element has finished loading\n window.parent.postMessage(\n {\n action: \"FINISHED_LOADING\",\n entity: \"CHARITYSTACK\",\n sender: \"CROWDFUNDING_FORM\",\n receiver: \"HOSTED_PAGE\",\n },\n \"*\",\n );\n }\n }, [loading]);\n\n useEffect(() => {\n resizeIframe();\n }, [loading, page]);\n\n useEffect(() => {\n window.addEventListener(\"message\", listener);\n window.addEventListener(\"message\", goBackListener);\n // grab hostedPage boolean\n const urlParams = new URLSearchParams(window.location.search);\n const hostedPage = urlParams.get(\"page\");\n // page can be either null, HOSTED_PAGE_FULLSCREEN, or HOSTED_PAGE_POPUP\n setHostedPage(hostedPage);\n setDomID(urlParams.get(\"domID\"));\n return () => {\n window.removeEventListener(\"message\", listener);\n window.removeEventListener(\"message\", goBackListener);\n };\n }, []);\n\n useEffect(() => {\n const { data } = props;\n // preprocess data\n data.customInputs.forEach((input) => {\n input.answers = [\"\"];\n });\n // convert amounts to strings\n data.oneTimeAmounts = data.oneTimeAmounts.map((amount) =>\n amount.toString(),\n );\n data.dailyAmounts = data.dailyAmounts.map((amount) => amount.toString());\n data.weeklyAmounts = data.weeklyAmounts.map((amount) => amount.toString());\n data.monthlyAmounts = data.monthlyAmounts.map((amount) =>\n amount.toString(),\n );\n data.annuallyAmounts = data.annuallyAmounts.map((amount) =>\n amount.toString(),\n );\n data.defaultOneTimeAmount = data.defaultOneTimeAmount.toString();\n data.defaultDailyAmount = data.defaultDailyAmount.toString();\n data.defaultWeeklyAmount = data.defaultWeeklyAmount.toString();\n data.defaultMonthlyAmount = data.defaultMonthlyAmount.toString();\n data.defaultAnnuallyAmount = data.defaultAnnuallyAmount.toString();\n\n data.crowdfundingOptions.forEach((option) => {\n option.amount = option.amount.toString();\n });\n setElementID(data.elementID);\n setCrowdfundingOptions(data.crowdfundingOptions);\n setMaxTransactionAmount(data.maxTransactionAmount);\n setCustomInputsValues(data.customInputs);\n setFunds(data.funds);\n if (data.funds.length == 1) {\n setSelectedFund(data.funds[0]);\n }\n setFrequencies(data.frequencies);\n setFrequency(data.defaultFrequency);\n setOneTimeAmounts(data.oneTimeAmounts);\n setDailyAmounts(data.dailyAmounts);\n setWeeklyAmounts(data.weeklyAmounts);\n setMonthlyAmounts(data.monthlyAmounts);\n setAnnuallyAmounts(data.annuallyAmounts);\n setDefaultOneTimeAmount(data.defaultOneTimeAmount);\n setDefaultDailyAmount(data.defaultDailyAmount);\n setDefaultWeeklyAmount(data.defaultWeeklyAmount);\n setDefaultMonthlyAmount(data.defaultMonthlyAmount);\n setDefaultAnnuallyAmount(data.defaultAnnuallyAmount);\n setPrimaryColor(data.lightColor);\n setSecondaryColor(data.darkColor);\n setLoading(false);\n setConfigData(data);\n setAddToCart(data.showAddToCart === undefined ? null : data.showAddToCart);\n }, [props]);\n\n useEffect(() => {\n let timer;\n if (errorMessage != \"\") {\n timer = setTimeout(() => {\n setErrorMessage(\"\");\n }, 3000);\n }\n return () => {\n clearTimeout(timer);\n };\n }, [errorMessage]);\n\n useEffect(() => {\n if (frequency == \"ONE_TIME\") {\n // grab the crowdfunding option that matches the amount\n setSelectedCrowdfundingOption(\n defaultOneTimeAmount == \"0\"\n ? undefined\n : crowdfundingOptions.find(\n (option) => option.amount == defaultOneTimeAmount,\n ) ?? {\n amount: defaultOneTimeAmount,\n title: \"\",\n description: \"\",\n },\n );\n }\n if (frequency == \"DAILY\") {\n setSelectedCrowdfundingOption(\n defaultDailyAmount == \"0\"\n ? undefined\n : crowdfundingOptions.find(\n (option) => option.amount == defaultDailyAmount,\n ) ?? {\n amount: defaultDailyAmount,\n title: \"\",\n description: \"\",\n },\n );\n }\n if (frequency == \"WEEKLY\") {\n setSelectedCrowdfundingOption(\n defaultWeeklyAmount == \"0\"\n ? undefined\n : crowdfundingOptions.find(\n (option) => option.amount == defaultWeeklyAmount,\n ) ?? {\n amount: defaultWeeklyAmount,\n title: \"\",\n description: \"\",\n },\n );\n }\n if (frequency == \"MONTHLY\") {\n setSelectedCrowdfundingOption(\n defaultMonthlyAmount == \"0\"\n ? undefined\n : crowdfundingOptions.find(\n (option) => option.amount == defaultMonthlyAmount,\n ) ?? {\n amount: defaultMonthlyAmount,\n title: \"\",\n description: \"\",\n },\n );\n }\n if (frequency == \"ANNUALLY\") {\n setSelectedCrowdfundingOption(\n defaultAnnuallyAmount == \"0\"\n ? undefined\n : crowdfundingOptions.find(\n (option) => option.amount == defaultAnnuallyAmount,\n ) ?? {\n amount: defaultAnnuallyAmount,\n title: \"\",\n description: \"\",\n },\n );\n }\n }, [frequency]);\n\n useEffect(() => {\n if (errorDisplayTime >= 3) {\n clearInterval(errorMessageInterval);\n setErrorDisplayTime(0);\n setErrorMessage(\"\");\n }\n }, [errorDisplayTime]);\n\n const resizeIframe = () => {\n const height = document.body.scrollHeight;\n const width = document.body.scrollWidth;\n console.log(\"resizing\", elementID, height, width);\n\n // Send the content height to the parent window\n window.parent.postMessage(\n {\n action: \"RESIZE\",\n entity: \"CHARITYSTACK\",\n sender: \"EMBED_FORM\",\n receiver: \"HOSTED_SCRIPT\",\n data: JSON.stringify({\n height: height,\n width: width,\n elementID: elementID,\n domID: domID,\n }),\n },\n \"*\",\n );\n };\n\n const hasErrors = () => {\n if (frequency == \"\") {\n setErrorMessage(\"Please select a frequency\");\n return true;\n }\n if (selectedCrowdfundingOption == undefined) {\n setErrorMessage(\"Please select an amount\");\n return true;\n }\n if (+selectedCrowdfundingOption.amount < 1) {\n setErrorMessage(\"Please select an amount that is at least $1\");\n return true;\n }\n if (selectedFund == \"\") {\n setErrorMessage(\"Please select a fund\");\n return true;\n }\n return false;\n };\n\n const handleButtonClick = () => {\n if (hasErrors()) {\n return;\n }\n if (page === \"START_PAGE\" && customInputsValues.length > 0) {\n setPage(\"CUSTOM_INPUTS_PAGE\");\n } else {\n handleDonate();\n }\n };\n\n const handleDonate = () => {\n const data = configData;\n\n // updated configData to include user inputs\n data.frequency = frequency;\n data.crowdfundingOption = selectedCrowdfundingOption;\n data.fund = selectedFund;\n data.customInputsValues = customInputsValues;\n data.amount = selectedCrowdfundingOption.amount;\n\n // convert amounts to float. Can remove later since not needed on donation form side\n data.oneTimeAmounts = data.oneTimeAmounts.map((amount) =>\n parseFloat(amount),\n );\n data.dailyAmounts = data.dailyAmounts.map((amount) => parseFloat(amount));\n data.weeklyAmounts = data.weeklyAmounts.map((amount) => parseFloat(amount));\n data.monthlyAmounts = data.monthlyAmounts.map((amount) =>\n parseFloat(amount),\n );\n data.annuallyAmounts = data.annuallyAmounts.map((amount) =>\n parseFloat(amount),\n );\n data.defaultOneTimeAmount = parseFloat(data.defaultOneTimeAmount);\n data.defaultDailyAmount = parseFloat(data.defaultDailyAmount);\n data.defaultWeeklyAmount = parseFloat(data.defaultWeeklyAmount);\n data.defaultMonthlyAmount = parseFloat(data.defaultMonthlyAmount);\n data.defaultAnnuallyAmount = parseFloat(data.defaultAnnuallyAmount);\n\n data.hostedPage = hostedPage;\n\n data.mappedData = fieldMapper(\n data.fieldMappings,\n data.fund,\n data.customInputsValues,\n [],\n );\n\n if (addToCart === true) {\n window.top.postMessage(\n {\n action: \"UPDATE_CART\",\n entity: \"CHARITYSTACK\",\n sender: \"CROWDFUNDING_FORM\",\n receiver: \"HOSTED_SCRIPT\",\n data: JSON.stringify(data),\n id: data.cartElementID,\n },\n \"*\",\n );\n } else {\n window.top.postMessage(\n {\n action: \"DONATE\",\n entity: \"CHARITYSTACK\",\n sender: \"CROWDFUNDING_FORM\",\n receiver: \"HOSTED_SCRIPT\",\n hostedPage: hostedPage,\n donationData: JSON.stringify(data),\n },\n \"*\",\n );\n }\n\n // }, window.location.ancestorOrigins[0]);\n };\n if (loading) {\n return (\n <>\n
\n
\n Loading\n
\n
\n \n
\n
\n \n );\n } else {\n if (configData.active === false) {\n return (\n <>\n
\n
\n Deactivated Form: {configData.formName}\n
\n
\n
\n \n );\n } else {\n return (\n
\n {page === \"START_PAGE\" && (\n \n {hostedPage === null && (\n \n {frequencies.length > 1\n ? \"Donation Information\"\n : `${freqMap[frequency]} Donation`}\n
\n )}\n \n
\n \n
\n
\n \n
\n
\n \n
\n {funds.length > 1 && (\n
\n \n
\n )}\n \n {errorMessage !== \"\"\n ? errorMessage\n : customInputsValues.length == 0\n ? addToCart === true\n ? \"Add to Cart\"\n : \"Donate\"\n : \"Next\"}\n \n \n \n )}\n {page === \"CUSTOM_INPUTS_PAGE\" && (\n \n )}\n \n );\n }\n }\n}\n\nexport default CrowdfundingForm;\n"],"names":["_ref","primaryColor","selectedCrowdfundingOption","setSelectedCrowdfundingOption","crowdfundingOptions","resizeIframe","useEffect","_jsx","children","className","map","crowdfundingOption","i","type","onClick","e","style","undefined","title","amount","backgroundColor","color","setContrast","value","_jsxs","toFixed","description","CustomCrowdfundingAmount","maxTransactionAmount","name","id","placeholder","onChange","event","target","replace","match","length","index","lastIndexOf","substr","find","option","handleOnChange","for","freqMap","ONE_TIME","DAILY","WEEKLY","MONTHLY","ANNUALLY","props","hostedPage","setHostedPage","useState","elementID","setElementID","configData","setConfigData","setMaxTransactionAmount","customInputsValues","setCustomInputsValues","setPrimaryColor","secondaryColor","setSecondaryColor","funds","setFunds","frequencies","setFrequencies","oneTimeAmounts","setOneTimeAmounts","dailyAmounts","setDailyAmounts","weeklyAmounts","setWeeklyAmounts","monthlyAmounts","setMonthlyAmounts","annuallyAmounts","setAnnuallyAmounts","defaultOneTimeAmount","setDefaultOneTimeAmount","defaultDailyAmount","setDefaultDailyAmount","defaultWeeklyAmount","setDefaultWeeklyAmount","defaultMonthlyAmount","setDefaultMonthlyAmount","defaultAnnuallyAmount","setDefaultAnnuallyAmount","setCrowdfundingOptions","page","setPage","defaultAmounts","setDefaultAmounts","frequency","setFrequency","selectedFund","setSelectedFund","errorMessage","setErrorMessage","errorDisplayTime","setErrorDisplayTime","errorMessageInterval","setErrorMessageInterval","loading","setLoading","addToCart","setAddToCart","domID","setDomID","listener","data","entity","action","fetchElementsConfig","catch","err","console","log","goBackListener","currentPage","window","parent","postMessage","sender","receiver","JSON","stringify","addEventListener","urlParams","URLSearchParams","location","search","get","removeEventListener","customInputs","forEach","input","answers","toString","defaultFrequency","lightColor","darkColor","showAddToCart","timer","setTimeout","clearTimeout","_crowdfundingOptions$","_crowdfundingOptions$2","_crowdfundingOptions$3","_crowdfundingOptions$4","_crowdfundingOptions$5","clearInterval","height","document","body","scrollHeight","width","scrollWidth","handleButtonClick","handleDonate","fund","parseFloat","mappedData","fieldMapper","fieldMappings","top","cartElementID","donationData","_Fragment","CustomShimmer","active","formName","elementName","concat","DonationFrequencies","CrowdfundingOptions","FundsDropdown","CustomInputsPage"],"sourceRoot":""}