\n );\n}\n","import StateFormSelect from './StateFormSelect';\n\nexport default function DeliveryAddressForm(props) {\n return (\n
\n {/*
*/}\n
\n
\n
\n
\n Valid first name is required.\n
\n
\n
\n
\n
\n
\n Valid last name is required.\n
\n
\n
\n
\n
\n
\n Please enter your shipping address.\n
\n
\n
\n \n \n
\n\n
\n
\n
\n
\n Please select a valid country.\n
\n
\n\n
\n \n
\n
\n
\n City required.
\n
\n \n
\n
\n
\n Zip code required.\n
\n
\n \n )\n}","import { Link } from 'react-router-dom';\nexport default function OrderedTable(props) {\n const order = props.order;\n\n if (!order) {\n // Show a loading message or spinner\n return
Loading...
;\n }\n const paymentType = props.paymentType;\n const roundToHundredth = (value) => {\n let placeMaker = value * 100;\n return (placeMaker / 100).toFixed(2);\n };\n \n // Sum up the shipping costs provided by the server for each item\n let totalShippingCost = 0;\n if (order && order.fundraiserOrderItems) {\n order.fundraiserOrderItems.forEach(item => {\n totalShippingCost += item.shippingCost;\n });\n }\n // Calculate the total with shipping and the convenience fee\n const totalWithShipping = order ? order.orderTotal + totalShippingCost : 0;\n console.log(order.fundraiserOrderItems);\n const convenienceFee = (!paymentType || (paymentType === 2)) ? roundToHundredth(totalWithShipping * 0.05) : 0;\n const finalTotal = totalWithShipping + parseFloat(convenienceFee);\n\n\n return (
\n \n \n Name | \n Quantity | \n Price | \n Total | \n | \n
\n {order && order.fundraiserOrderItems.map((item) => {\n return (\n item.fundraiserOrderItemOptions.map((itemOption, index) => {\n if (itemOption.qty > 0)\n return (\n \n {itemOption.name} | \n {itemOption.qty} | \n ${itemOption.price} | \n ${itemOption.price * itemOption.qty} | \n Edit | \n
\n )\n })\n )\n })}\n {\n order && order.isDonate &&\n \n \n Donation | \n | \n | \n ${order && roundToHundredth(order.orderTotal)} | \n Edit | \n
\n \n \n }\n {/* Total Shipping Cost Row */}\n \n Shipping | \n ${roundToHundredth(totalShippingCost)} | \n | \n
\n {convenienceFee > 0 &&\n \n Convenience Fee - 5% | \n ${convenienceFee} | \n | \n
\n }\n \n Total | \n | \n | \n ${roundToHundredth(finalTotal)} | \n | \n
\n \n
)\n}","import React, { useEffect, useState, useRef } from 'react';\nimport axios from 'axios';\nimport { useParams } from 'react-router-dom';\nimport OrdersService from '../services/OrdersService';\nimport { Input, Label, FormGroup } from 'reactstrap';\nimport BillingAddressForm from '../components/BillingAddressForm';\nimport DeliveryAddressForm from '../components/DeliveryAddressForm';\nimport OrderedTable from '../components/OrderedTable';\n\nconst stateLookup = {\n 'Alabama': 'AL',\n 'Alaska': 'AK',\n 'Arizona': 'AZ',\n 'Arkansas': 'AR',\n 'California': 'CA',\n 'Colorado': 'CO',\n 'Connecticut': 'CT',\n 'Delaware': 'DE',\n 'District of Columbia': 'DC',\n 'Florida': 'FL',\n 'Georgia': 'GA',\n 'Guam': 'GU',\n 'Hawaii': 'HI',\n 'Idaho': 'ID',\n 'Illinois': 'IL',\n 'Indiana': 'IN',\n 'Iowa': 'IA',\n 'Kansas': 'KS',\n 'Kentucky': 'KY',\n 'Louisiana': 'LA',\n 'Maine': 'ME',\n 'Maryland': 'MD',\n 'Massachusetts': 'MA',\n 'Michigan': 'MI',\n 'Minnesota': 'MN',\n 'Mississippi': 'MS',\n 'Missouri': 'MO',\n 'Montana': 'MT',\n 'Nebraska': 'NE',\n 'Nevada': 'NV',\n 'New Hampshire': 'NH',\n 'New Jersey': 'NJ',\n 'New Mexico': 'NM',\n 'New York': 'NY',\n 'North Carolina': 'NC',\n 'North Dakota': 'ND',\n 'Ohio': 'OH',\n 'Oklahoma': 'OK',\n 'Oregon': 'OR',\n 'Pennsylvania': 'PA',\n 'Puerto Rico': 'PR',\n 'Rhode Island': 'RI',\n 'South Carolina': 'SC',\n 'South Dakota': 'SD',\n 'Tennessee': 'TN',\n 'Texas': 'TX',\n 'Utah': 'UT',\n 'Vermont': 'VT',\n 'Virginia': 'VA',\n 'Washington': 'WA',\n 'West Virginia': 'WV',\n 'Wisconsin': 'WI',\n 'Wyoming': 'WY'\n};\n\nexport default function Order(props) {\n const [purchaseId, setPurchaseId] = useState(11);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const { orderId } = useParams()\n const [order, setOrder] = useState();\n const [sameAddress, setSameAddress] = useState(true);\n const orderRef = useRef();\n\n const handleSubmit = (event) => {\n enforceValidation();\n event.preventDefault();\n setIsSubmitting(true);\n //console.log(window.CollectJS.startPaymentRequest());\n getCreditCardToken(event);\n saveOrderDetails(event);\n saveBillingDetails(event);\n orderRef.current = order;\n };\n\n const enforceValidation = () => {\n const forms = document.querySelectorAll('.needs-validation') // Loop over them and prevent submission\n Array.from(forms).forEach(form => {\n form.addEventListener('submit', event => {\n if (!form.checkValidity()) {\n event.preventDefault()\n event.stopPropagation()\n //$(\".is-invalid:first\").focus();\n window.scrollTo(0, 0);\n }\n form.classList.add('was-validated')\n }, false)\n });\n };\n\n const saveOrderDetails = (event) => {\n if (sameAddress) {\n order.supporterFirstName = event.target.firstName.value;\n order.supporterLastName = event.target.lastName.value;\n order.shippingAddress = event.target.address.value;\n order.shippingAddress2 = event.target.address2.value;\n order.shippingCity = event.target.city.value;\n order.shippingState = event.target.state.value;\n order.shippingZip = event.target.zip.value;\n } else {\n order.supporterFirstName = event.target.deliveryfirstName.value;\n order.supporterLastName = event.target.deliverylastName.value;\n order.shippingAddress = event.target.deliveryaddress.value;\n order.shippingAddress2 = event.target.deliveryaddress2.value;\n order.shippingCity = event.target.deliverycity.value;\n order.shippingState = event.target.deliverystate.value;\n order.shippingZip = event.target.deliveryzip.value;\n }\n order.supporterPhoneNumber = event.target.phone.value;\n order.donorEmail = event.target.email.value;\n\n }\n\n const saveBillingDetails = (event) => {\n order.payment.amount = order.orderTotal;\n order.payment.firstName = event.target.firstName.value;\n order.payment.lastName = event.target.lastName.value;\n order.payment.address1 = event.target.address.value;\n order.payment.address2 = event.target.address2.value;\n order.payment.city = event.target.city.value;\n order.payment.state = event.target.state.value;\n order.payment.zip = event.target.zip.value;\n }\n\n\n const getCreditCardToken = (event) => {\n var obj = {\n \"holderName\": event.target.holderName.value,\n \"cardNumber\": event.target.cardNumber.value,\n \"cvv\": event.target.cvv.value,\n \"expiryMonth\": event.target.expiryMonth.value,\n \"expiryYear\": event.target.expiryYear.value,\n \"billingAddress\": {\n \"addressLine1\": event.target.address.value,\n \"addressLine2\": event.target.address2.value,\n \"city\": event.target.city.value,\n \"state\": stateLookup[event.target.state.value],\n \"zip\": event.target.zip.value\n }\n }\n\n var raw = JSON.stringify(obj);\n\n var requestOptions = {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json'\n }),\n body: raw,\n redirect: 'follow'\n };\n\n fetch(order.gatewayUrl + \"/v1/card/tokenize\", requestOptions)\n .then(function (response) {\n // clear the CC errors out\n document.getElementById('ccErrors').innerHTML = ''\n\n return response.json();\n })\n .then(function (result) {\n if (result.hasOwnProperty('token')) {\n console.log(result);\n finishSubmit(result);\n }\n else {\n setIsSubmitting(false);\n console.log(result);\n if (result.hasOwnProperty('errors')) {\n result.errors.forEach(function (item) {\n var liElement = document.createElement('li');\n liElement.textContent = item.field + \": \" + item.message;\n document.getElementById('ccErrors').appendChild(liElement);\n });\n } else if (result.hasOwnProperty('errorMessage')) {\n var liElement = document.createElement('li');\n liElement.textContent = result.errorMessage;\n document.getElementById('ccErrors').appendChild(liElement);\n } else {\n var liElement = document.createElement('li');\n liElement.textContent = \"An unknown payment error occurred\";\n document.getElementById('ccErrors').appendChild(liElement);\n }\n }\n })\n .catch(function (error) {\n setIsSubmitting(false);\n var message = \"Card Tokenization Error: /r/n\" + error\n logMessage(message, 4)\n alert(\"An unknown payment error occurred\")\n return console.log('error', error);\n });\n };\n\n const finishSubmit = (response) => {\n orderRef.current.payment.token = response.token;\n console.log(orderRef.current);\n\n OrdersService.ProcessOrder(orderRef.current).then(res => {\n console.log(res.data);\n if (res.data == 'success') {\n alert(\"Order Successful!\");\n\n axios.post(orderRef.current.appSiteUrl + '/api/donor/digitalReceipt/' + orderRef.current.orderId).then(retUrl => {\n console.log(retUrl);\n window.location.href = retUrl.data;\n }).catch(e => {\n window.location.href = \"/\";\n\n })\n }\n else {\n alert(res.data);\n setIsSubmitting(false);\n }\n }).catch(e => {\n var message = \"Error Processing Order: /r/n\" + e\n logMessage(message, 4)\n alert(\"Order was unsuccessful\");\n });\n\n //setIsSubmitting(false);\n //this.setState({ isSubmitting: false, alertMessage: 'The form was submitted. Check the console to see the output data.' });\n };\n\n const logMessage = (message, level) => {\n var data = {\n message: message,\n level: level,\n };\n\n axios.post('/api/Logger/Log/', data)\n .then(response => {\n // console.log(\"LOGGER: \" + response.data);\n })\n .catch(error => {\n // console.error(\"LOGGER: \" + error);\n });\n };\n\n useEffect(x => {\n\n OrdersService.getFundraiserOrder(orderId).then((x) => {\n setOrder(x);\n });\n enforceValidation();\n\n\n // setTimeout(() => {\n // \n // }, 100);\n\n\n return () => { };\n\n\n }, []);\n return (\n <>\n
Checkout{(order && order.testMode ? \" *TEST_MODE*\" : \"\")}
\n\n
\n >\n );\n\n}\n","import React, { Component, useEffect, useState, useRef } from 'react';\nimport axios from 'axios';\n\nimport { useParams } from 'react-router-dom';\nimport OrdersService from '../services/OrdersService';\nimport { Input, Label, FormGroup } from 'reactstrap';\nimport BillingAddressForm from '../components/BillingAddressForm';\nimport DeliveryAddressForm from '../components/DeliveryAddressForm';\nimport OrderedTable from '../components/OrderedTable';\n\nexport default function Order(props) {\n const [purchaseId, setPurchaseId] = useState(11);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [ccnumberError, setnumberError] = useState();\n const [ccexpError, setexpError] = useState();\n const [cccvcError, setccvcError] = useState();\n const { orderId } = useParams()\n const [order, setOrder] = useState();\n const [sameAddress, setSameAddress] = useState(true);\n const orderRef = useRef();\n\n const [paymentMethod, setPaymentMethod] = useState('1'); //1=cash\n const [checkNumber, setCheckNumber] = useState();\n\n const handlePaymentMethodChange = (event) => {\n setPaymentMethod(event.target.value);\n };\n\n const handleCheckNumberChange = (event) => {\n setCheckNumber(event.target.value);\n };\n\n const handleSubmit = (event) => {\n enforceValidation();\n event.preventDefault();\n setIsSubmitting(true);\n //console.log(window.CollectJS.startPaymentRequest());\n\n saveOrderDetails(event);\n saveBillingDetails(event);\n orderRef.current = order;\n\n finishSubmit();\n };\n\n const enforceValidation = () => {\n const forms = document.querySelectorAll('.needs-validation') // Loop over them and prevent submission\n Array.from(forms).forEach(form => {\n form.addEventListener('submit', event => {\n if (!form.checkValidity()) {\n event.preventDefault()\n event.stopPropagation()\n //$(\".is-invalid:first\").focus();\n window.scrollTo(0, 0);\n }\n form.classList.add('was-validated')\n }, false)\n });\n };\n\n const saveOrderDetails = (event) => {\n if (sameAddress) {\n order.supporterFirstName = event.target.firstName.value;\n order.supporterLastName = event.target.lastName.value;\n order.shippingAddress = event.target.address.value;\n order.shippingAddress2 = event.target.address2.value;\n order.shippingCity = event.target.city.value;\n order.shippingState = event.target.state.value;\n order.shippingZip = event.target.zip.value;\n } else {\n order.supporterFirstName = event.target.deliveryfirstName.value;\n order.supporterLastName = event.target.deliverylastName.value;\n order.shippingAddress = event.target.deliveryaddress.value;\n order.shippingAddress2 = event.target.deliveryaddress2.value;\n order.shippingCity = event.target.deliverycity.value;\n order.shippingState = event.target.deliverystate.value;\n order.shippingZip = event.target.deliveryzip.value;\n }\n order.supporterPhoneNumber = event.target.phone.value;\n order.donorEmail = event.target.email.value;\n }\n\n const saveBillingDetails = (event) => {\n order.payment.amount = order.orderTotal;\n order.payment.firstName = event.target.firstName.value;\n order.payment.lastName = event.target.lastName.value;\n order.payment.address1 = event.target.address.value;\n order.payment.address2 = event.target.address2.value;\n order.payment.city = event.target.city.value;\n order.payment.state = event.target.state.value;\n order.payment.zip = event.target.zip.value;\n }\n\n const finishSubmit = (response) => {\n\n //orderRef.current.payment.token = response.token;\n orderRef.current.paymentTypeId = paymentMethod;\n orderRef.current.checkNumber = checkNumber;\n OrdersService.ProcessOrderCashCheck(orderRef.current).then(res => {\n console.log(res.data);\n //console.log(res.data);\n if (res.data === 'success') {\n axios.post(orderRef.current.appSiteUrl + '/api/donor/digitalReceipt/' + orderRef.current.orderId).then(retUrl => {\n console.log(retUrl);\n window.location.href = retUrl.data;\n })\n }\n else {\n alert(res.data);\n setIsSubmitting(false);\n }\n\n });\n //setIsSubmitting(false);\n //this.setState({ isSubmitting: false, alertMessage: 'The form was submitted. Check the console to see the output data.' });\n };\n\n useEffect(x => {\n\n\n\n OrdersService.getFundraiserOrder(orderId).then((x) => {\n setOrder(x);\n console.log(x);\n\n\n\n\n });\n enforceValidation();\n\n\n // setTimeout(() => {\n // \n // }, 100);\n\n\n return () => {\n\n };\n\n\n }, []);\n return (\n <>\n
Checkout{(order && order.testMode ? \" *TEST_MODE*\" : \"\")}
\n\n
\n >\n );\n\n}\n","import axios from \"axios\";\n\nconst TicketsService = {\n async getTeam(teamId) {\n const response = await fetch(\"api/Tickets/GetTeam?teamId=\" + teamId);\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getTicketFundraiser(itemsOptionId) {\n const response = await fetch(\n \"api/Tickets/GetTicketFundraiser?itemsOptionId=\" + itemsOptionId\n );\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getTicket(ticketPurchaseSessionGuid) {\n const response = await fetch(\n \"api/Tickets/GetTicket?ticketPurchaseSessionGuid=\" + ticketPurchaseSessionGuid\n );\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getTicketPurchases(ticketPurchaseGuid) {\n const response = await fetch(\"api/Tickets/GetTicketPurchases?ticketPurchaseGuid=\" + ticketPurchaseGuid);\n const data = await response.json();\n return data;\n },\n async shareTicketPurchase(ticketPurchaseGuid, phoneNumber) {\n const response = await fetch(\n \"api/Tickets/ShareTicketPurchase?ticketPurchaseGuid=\" + ticketPurchaseGuid + \"&phoneNumber=\" + phoneNumber\n );\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n const data = await response.json();\n return data;\n },\n async getFundraisersTicket(fundraiserId) {\n const response = await fetch(\n \"api/Tickets/GetFundraisersTicket?fundraiserId=\" + fundraiserId\n );\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async addPhone(phoneNumber, ticketPurchaseSessionGuid) {\n try {\n const response = await fetch(`api/Tickets/CreateAccessLink?phoneNumber=${phoneNumber}&ticketPurchaseSessionGuid=${ticketPurchaseSessionGuid}`);\n if (!response.ok) {\n throw new Error(`${response.statusText}`);\n }\n const data = await response.json();\n if (data.redirect) {\n return { success: true, redirect: `/ActivateTicket/${ticketPurchaseSessionGuid}/Confirmation/${phoneNumber}` };\n } else {\n return { success: true };\n }\n } catch (error) {\n return { success: false };\n }\n },\n async redeemLink(ticketPurchaseSessionGuid) {\n const response = await fetch(`api/Tickets/RedeemActivationLink?ticketPurchaseSessionGuid=${ticketPurchaseSessionGuid}`);\n if (!response.ok) {\n throw new Error(`${response.statusText}`);\n }\n const data = await response.json();\n return data;\n },\n\n async checkSession(ticketPurchaseSessionGuid) {\n const response = await fetch(`api/Tickets/CheckSessionStatus?ticketPurchaseSessionGuid=${ticketPurchaseSessionGuid}`);\n const data = await response.json();\n return data;\n },\n\n async getSecurityStatus() {\n const response = await fetch(`api/Tickets/CheckSecurityStatus`);\n const data = await response.json();\n return data;\n },\n async getSession(ticketPurchaseSessionGuid) {\n const response = await fetch(`api/Tickets/GetSession?ticketPurchaseSessionGuid=${ticketPurchaseSessionGuid}`);\n if (!response.ok) {\n throw new Error(`${response.statusText}`);\n }\n const data = await response.json();\n return data;\n },\n\n async getOffers(ticketPurchaseSessionGuid) {\n const response = await fetch(\n \"api/Tickets/GetOffers?ticketPurchaseSessionGuid=\" + ticketPurchaseSessionGuid\n );\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getTicketOfferDetails(ticketPurchaseSessionGuid, ticketOfferId) {\n const response = await fetch(\n `api/Tickets/GetTicketOfferDetails?ticketPurchaseSessionGuid=${ticketPurchaseSessionGuid}&ticketOfferId=${ticketOfferId}`\n );\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async redeemTicketPurchaseOffer(ticketPurchaseSessionGuid, ticketOfferId) {\n return axios.post(\n `api/Tickets/RedeemTicketPurchaseOffer?ticketPurchaseSessionGuid=${ticketPurchaseSessionGuid}&ticketOfferId=${ticketOfferId}`\n );\n },\n};\n\nexport default TicketsService;\n","import React from 'react'\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport { Modal, ModalBody } from \"reactstrap\";\nimport './counter.module.css';\nimport { useState } from 'react';\nimport TicketsService from '../services/TicketsService';\nimport { useNavigate } from \"react-router-dom\";\n\nexport default function ConfirmationModal(props) {\n const itemOptionImage = {\n width: 'auto',\n maxWidth: '300px',\n height: 'auto',\n maxHeight: '300px',\n objectFit: 'contain'\n }\n // Modal open state\n const ticketOffer = props.ticketOffer;\n const modal = props.modalStatus;\n const purchaseGuid = props.purchaseGuid ;\n // Toggle for Modal\n const close = () => { props.deactivate() };\n const [isExhausted, setIsExhausted] = useState(false); \n const DesignRedeemButton = () => {\n if (!purchaseGuid)\n return (
)\n\n return (\n \n !isExhausted && props.ticketPurchaseSessionGuid ?\n
\n :
\n )\n };\n const redeemTicketPurchaseOffer = () =>\n {\n TicketsService.redeemTicketPurchaseOffer(props.ticketPurchaseSessionGuid, props.ticketOffer.id).then(x => setIsExhausted(true));\n }\n return (\n
\n
\n \n \n
Present this at Checkout:
\n
\n

{ e.target.style.display = 'none' }}\n >\n
\n
\n
{ticketOffer && ticketOffer.vendorOffer.name}
\n
{ticketOffer && ticketOffer.vendorOffer.description != \"Description\"&& ticketOffer.vendorOffer.description}
\n
\n {ticketOffer && !purchaseGuid ? (\n
SAMPLE - For Preview Only
\n ) :\n (\n
\n
Are you sure you want to redeem this offer?
\n
Once redeemed, you cannot use this offer again.
\n
\n )\n }\n\n \n
\n {DesignRedeemButton()}\n \n
\n
\n
\n
\n \n \n
\n );\n}","import React, { useEffect, useState } from \"react\";\nimport TicketsService from \"../services/TicketsService\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport ConfirmationModal from \"../components/ConfirmationModal\";\nimport SampleWatermark from \"../components/SampleWatermark\";\n\nexport default function TicketRedemption() {\n //useParams\n const { ticketOfferId } = useParams();\n const { ticketPurchaseSessionGuid } = useParams();\n const [modalsOpen, setModalsOpen] = useState(false);\n //useState\n const [ticketOffer, setTicketOffer] = useState();\n const [isExhausted, setIsExhausted] = useState();\n const [purchaseGuid, setPurchaseGuid] = useState();\n const navigate = useNavigate();\n const itemOptionImage = {\n width: \"auto\",\n maxWidth: \"300px\",\n height: \"auto\",\n maxHeight: \"300px\",\n objectFit: \"contain\",\n };\n const checkIfExhausted = (x) => {\n let isExpended = x.ticketQty && x.ticketPurchaseOfferRedemptions && x.ticketQty <= x.ticketPurchaseOfferRedemptions.length;\n setIsExhausted(isExpended);\n return (!isExpended)\n };\n const DesignRedeemButton = () => {\n return (\n !isExhausted ?\n
\n :
\n )\n };\n useEffect(\n (onLoad) => {\n TicketsService.getTicketOfferDetails(ticketPurchaseSessionGuid, ticketOfferId)\n .then((x) => {\n setTicketOffer(x);\n checkIfExhausted(x);\n if (x.PurchaseGuid !== null)\n setPurchaseGuid(x.purchaseGuid);\n });\n },\n [modalsOpen]\n );\n const tryOpen = () => {\n TicketsService.getTicketOfferDetails(ticketPurchaseSessionGuid, ticketOfferId).then(\n (x) => {\n setModalsOpen(checkIfExhausted(x));\n }\n );\n };\n\n return (\n
\n {/*
*/}\n
\n {ticketOffer?.vendorOffer.photoUrl && (\n\n

\n )}\n {ticketOffer?.vendorOffer?.vendor.photoUrl && !ticketOffer?.vendorOffer.photoUrl && (\n\n

\n )}\n {ticketOffer && !purchaseGuid && (\n
SAMPLE - For Preview Only
\n )\n\n }\n
\n
\n
{ticketOffer && ticketOffer.vendorOffer.name}
\n
{ticketOffer && ticketOffer.vendorOffer.description}
\n
\n
To redeem offer please follow the steps below:
\n
1. Click Redeem.\n
2. Show the redemption pop-up at register, so they can verify your discount.\n
\n
\n {DesignRedeemButton()}\n \n
\n
\n
\n
{\n setModalsOpen(false);\n }}\n />\n \n );\n}\n","import axios from \"axios\";\n\nconst StudentsService = {\n\n async getFundraiserDevice(guid) {\n const response = await fetch('api/Students/GetDeviceInfo?guid=' + guid);\n const data = await response.json();\n return data;\n },\n async UpdateOptInStatus(optInStatusDTO) {\n console.log(optInStatusDTO);\n return axios.post('api/Students/UpdateOptInStatus',optInStatusDTO);\n },\n}\n\nexport default StudentsService;","import React, { Component, useEffect, useState } from 'react';\nimport Db from \"../services/OrdersService\";\nimport { Link, useParams, useNavigate } from 'react-router-dom';\nimport { QRCode } from 'react-qrcode-logo';\nimport StudentsService from \"../services/StudentsService\";\nimport { Modal, ModalBody, Button, Spinner } from \"reactstrap\";\n\nexport default function SelectState(props) {\n //const [purchaseId, setPurchaseId] = useState(11);\n //const [fundraisers, setFundraisers] = useState();\n //const [fundraiserDevice, setFundraiserDevice] = useState();\n const [myFundraiser, setMyFundraiser] = useState();\n //const [qrCode, setQrCode] = useState();\n const { fundraiserDeviceGuid } = useParams();\n const [studentFirstName, setStudentFirstName] = useState(\"\");\n const [studentLastName, setStudentLastName] = useState(\"\");\n const [showButton, setShowButton] = useState(false);\n const [isOptedIn, setIsOptedIn] = useState(null);\n const [showOptInSection, setShowOptInSection] = useState(false);\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n const [isUpdatingOptIn, setIsUpdatingOptIn] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [shareStatuses, setShareStatuses] = useState([]);\n\n const navigate = useNavigate();\n\n // Fetch data on component mount\n useEffect(() => {\n setIsLoading(true);\n Db.getMyFundraiser(fundraiserDeviceGuid)\n .then(x => {\n setMyFundraiser(x);\n\n if (x.fundraiserDevice.studentFirstName) {\n setStudentFirstName(x.fundraiserDevice.studentFirstName);\n }\n if (x.fundraiserDevice.studentLastName) {\n setStudentLastName(x.fundraiserDevice.studentLastName);\n }\n\n // Set opt-in status\n setIsOptedIn(x.fundraiserDevice.isOptedIn);\n // Always show opt-in section initially unless a decision has already been made\n setShowOptInSection(x.fundraiserDevice.isOptedIn === null);\n\n // Compute showButton if none of the item options are digital and if the item's id doesnt match cookie dough or beef sticks\n const shouldShowButton = x.fundraiserDevice.fundraiser.fundraiserItems.some(item =>\n (item.itemId !== 43 && item.itemId !== 44) &&\n item.item.itemsOptions.some(option => option.itemOptionTypeId === 0)\n );\n setShowButton(shouldShowButton);\n })\n .finally(() => {\n // Delay for a smoother transition\n setTimeout(() => {\n setIsLoading(false);\n }, 300);\n });\n }, [fundraiserDeviceGuid]);\n\n const getMessage = () => {\n let itemText = \"\";\n if (myFundraiser.fundraiserDevice.fundraiser && myFundraiser.fundraiserDevice.fundraiser.fundraiserItems && myFundraiser.fundraiserDevice.fundraiser.fundraiserItems.length > 0) {\n const items = myFundraiser.fundraiserDevice.fundraiser.fundraiserItems.map(item => item.item.messageTextName || \"\").filter(Boolean);\n if (items.length > 1) {\n itemText = \"purchase \" + items.slice(0, -1).join(\", \") + \" or \" + items.slice(-1);\n } else {\n itemText = \"purchase \" + items[0];\n }\n } else {\n itemText = \"donate\";\n }\n\n // Convert C# DateTime to JavaScript Date object and format it\n const endDate = new Date(myFundraiser.fundraiserDevice.fundraiser.endDate);\n const formattedEndDate = endDate.toLocaleDateString(\"en-US\");\n\n let retValue = \"This is \" + studentFirstName + \" \" + studentLastName + \" and we are raising money for our \" + myFundraiser.fundraiserDevice.fundraiser.team.name + \" program at \" + myFundraiser.fundraiserDevice.fundraiser.school.name + \".\\n\";\n retValue += \"\\nTo support our program, please click on the link below to \" + itemText + \". Your generous donation will help me reach my goal of $500 raised. Our fundraiser ends on \" + formattedEndDate + \".\\n\";\n retValue += \"\\nThank you very much for your support!\\n\";\n retValue += \"- \" + studentFirstName + \" \" + studentLastName;\n\n return retValue;\n };\n\n const previewTicket = (ticketGuid) => { window.open('/MyOffers/' + ticketGuid, '_blank') };\n\n const addShareStatus = (message) => {\n const timestamp = new Date().toLocaleTimeString();\n setShareStatuses(prev => [...prev, { message, timestamp }]);\n };\n\n const share = (e) => {\n addShareStatus('Share button clicked');\n \n if (navigator.share) {\n addShareStatus('Opening share dialog...');\n console.log('Web Share API is supported');\n \n const shareData = {\n title: 'order',\n text: getMessage(),\n url: 'https://' + window.location.host + '/Order/' + fundraiserDeviceGuid\n };\n \n addShareStatus(`Content prepared - ${shareData.text.length} characters`);\n\n navigator.share(shareData)\n .then(() => {\n // More accurate description of what this Promise resolution means\n addShareStatus('Share sheet displayed successfully');\n \n // Increment share clicks\n Db.incrementShareClicks(fundraiserDeviceGuid)\n .then(() => {\n addShareStatus('Share click recorded');\n })\n .catch(error => {\n addShareStatus(`Error recording share: ${error.message}`);\n });\n })\n .catch((error) => {\n if (error.name === 'AbortError') {\n addShareStatus('Share cancelled by user');\n } else {\n addShareStatus(`Share error: ${error.message}`);\n }\n });\n } else {\n addShareStatus('Sharing not supported on this device/browser');\n }\n }\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n myFundraiser.fundraiserDevice.StudentFirstName = studentFirstName;\n myFundraiser.fundraiserDevice.StudentLastName = studentLastName;\n Db.NewOrderWithFDID(myFundraiser.fundraiserDevice).then(x => {\n if (x.data != null) {\n navigate(\"/order/\" + x.data)\n }\n });\n };\n\n const validateStudentInfo = (e) => {\n e.preventDefault();\n myFundraiser.fundraiserDevice.StudentFirstName = studentFirstName;\n myFundraiser.fundraiserDevice.StudentLastName = studentLastName;\n Db.NewOrderWithFDID(myFundraiser.fundraiserDevice);\n };\n\n const updateOptInStatus = (status) => {\n if (!myFundraiser || !myFundraiser.fundraiserDevice || !myFundraiser.fundraiserDevice.phone) {\n return;\n }\n \n setIsUpdatingOptIn(true);\n StudentsService.UpdateOptInStatus({\n phone: myFundraiser.fundraiserDevice.phone,\n status: status\n }).then(() => {\n setIsOptedIn(status);\n setShowOptInSection(false);\n setShowConfirmationModal(false);\n setIsUpdatingOptIn(false);\n });\n };\n\n const handleDeclineClick = () => {\n setShowConfirmationModal(true);\n };\n\n const renderOptInSection = () => {\n if (!showOptInSection) {\n return null;\n }\n\n return (\n
\n
\n
Use Fundraiser Reminders
\n
\n \n \n
\n
\n
\n );\n };\n\n const renderConfirmationModal = () => {\n return (\n
setShowConfirmationModal(false)}>\n \n \n
Benefits of Fundraiser Reminders
\n
\n Reminders have been shown to improve fundraiser performance by up to 20%!\n Your information will never be shared, and your phone number will only be used for these two messages:\n
\n
\n - One text two days after the fundraiser kickoff
\n - One text when there are two days left in the fundraiser
\n
\n
\n \n \n
\n
\n \n \n );\n };\n\n // Helper to determine if content should be shown\n const shouldShowContent = () => {\n // Show content if name is filled AND user has made a decision about reminders\n return studentFirstName && studentLastName && isOptedIn !== null;\n };\n\n const handleEnableReminders = () => {\n if (!myFundraiser || !myFundraiser.fundraiserDevice || !myFundraiser.fundraiserDevice.phone) {\n return;\n }\n \n setIsUpdatingOptIn(true);\n StudentsService.UpdateOptInStatus({\n phone: myFundraiser.fundraiserDevice.phone,\n status: true\n }).then(() => {\n setIsOptedIn(true);\n setIsUpdatingOptIn(false);\n });\n };\n\n // Loading spinner\n if (isLoading) {\n return (\n
\n \n Loading fundraiser...\n
\n );\n }\n\n return (\n
\n
{myFundraiser?.fundraiserDevice?.fundraiser?.name}
\n \n
\n \n {/* Confirmation modal for declining reminders */}\n {renderConfirmationModal()}\n
\n );\n}\n","import React, { Component, useEffect, useState } from 'react';\nimport Db from \"../services/OrdersService\";\nimport { Link, useParams } from 'react-router-dom';\n\nexport default function SelectState(props) {\n //const [purchaseId, setPurchaseId] = useState(11);\n //const [orders, setOrders] = useState();\n const [myFundraiser, setMyFundraiser] = useState();\n const { fdid } = useParams();\n\n useEffect(x => {\n Db.getMyFundraiser(fdid).then(x => {\n console.log(x);\n //setFundraiserDevice(x);\n setMyFundraiser(x);\n //FundraisersService.getFundraiserDetails(x.fundraiserId).then(y => setFundraiser(y));\n });\n }, []);\n\n\n\n return (\n
\n {/*{Db.location}*/}\n {/*{Db.school.name}*/}\n
{myFundraiser?.fundraiserDevice?.fundraiser?.name}
\n
Orders: {myFundraiser?.ordersQty} - Total: ${myFundraiser?.ordersTotal}
\n
\n\n {myFundraiser?.fundraiserDevice?.orders && myFundraiser?.fundraiserDevice?.orders.map((x, index) => {\n console.log(x);\n return (\n - \n {/*
*/}\n {/*
*/}\n {/* {x.donor.firstName} {x.donor.lastName} - Phone: {x.donor.phone}*/}\n {/*
*/}\n {/*
*/}\n {/* {x.donor.address}, {x.donor.address2}, {x.donor.city}, {x.donor.state}*/}\n {/*
*/}\n {/*
*/}\n {/**/}\n
\n \n \n {x.donor.firstName} {x.donor.lastName} - Phone: {x.donor.phone} | \n Quantity | \n Price | \n Total | \n
\n {x && x.ordersItems && x.ordersItems.map((item, index) => {\n return (\n \n {item.name} | \n {item.amount} | \n ${item.price} | \n ${item.price * item.amount} | \n
\n )\n })}\n \n Total | \n | \n | \n ${x && x.orderTotal} | \n
\n \n
\n {/*
*/}\n \n )\n })}\n\n {/*- Db.team = \"Lacross\"} to=\"/Order\">Lacross
*/}\n {/*- Baseball
*/}\n
\n
\n );\n\n}\n","import React, { useState } from 'react';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport { Modal, ModalBody, Button } from \"reactstrap\";\nimport './counter.module.css';\nimport StudentsService from \"../services/StudentsService\";\n\nexport default function OptInModal(props) {\n const [isLoading, setIsLoading] = useState(false);\n\n const fundraiserDevice = props.fundraiserDevice;\n if (!fundraiserDevice) {\n return
Loading...
;\n }\n\n const modal = props.modalStatus;\n const phone = fundraiserDevice.phone;\n const close = () => { props.deactivate() };\n\n const disableReminders = () => {\n setIsLoading(true);\n StudentsService.UpdateOptInStatus({\n phone: phone,\n status: false\n }).then(() => {\n setIsLoading(false);\n close();\n });\n };\n\n return (\n
\n \n \n
Benefits of Fundraiser Reminders
\n
\n Reminders have been shown to improve fundraiser performance by up to 20%!\n Your information will never be shared, and your phone number will only be used for these two messages:\n
\n
\n - One text two days after the fundraiser kickoff
\n - One text when there are two days left in the fundraiser
\n
\n
\n \n \n
\n
\n \n \n );\n}\n","import React, { Component, useEffect, useState } from 'react';\nimport OrdersService from \"../services/OrdersService\";\nimport { Link, useParams, useNavigate } from 'react-router-dom';\nimport StudentsService from \"../services/StudentsService\";\nimport OptInModal from '../components/OptInModal'; // Import OptInModal\n\nexport default function Fundraisers(props) {\n const [fundraiserDevices, setFundraiserDevices] = useState([]);\n const [currentFundraiserDevice, setCurrentFundraiserDevice] = useState(null);\n const [showOptInModal, setShowOptInModal] = useState(false);\n const { fdid } = useParams();\n const navigate = useNavigate();\n\n const getFundraiserDevice = (fdid) => {\n StudentsService.getFundraiserDevice(fdid).then(device => {\n setCurrentFundraiserDevice(device);\n console.log(device);\n });\n }\n\n useEffect(() => {\n OrdersService.getFundraisersForDevice(fdid).then(data => {\n setFundraiserDevices(data);\n // Assuming the 'fdid' is the ID of the current fundraiser device\n if (data && data.length > 0) {\n getFundraiserDevice(fdid);\n }\n });\n }, [fdid]);\n\n const newFundraiserDevice = (e) => {\n OrdersService.NewFundraiserDevice().then(x => navigate(\"/fundraisers/\" + fdid));\n };\n\n const closeModalUpdateDevice = (isOpen) => {\n setShowOptInModal(isOpen);\n getFundraiserDevice(fdid);\n }\n\n // Function to handle the Change button click\n const handleChangeClick = () => {\n // If reminders are currently OFF, directly turn them ON without showing modal\n if (currentFundraiserDevice && currentFundraiserDevice.isOptedIn === false) {\n StudentsService.UpdateOptInStatus({\n phone: currentFundraiserDevice.phone,\n status: true\n }).then(() => {\n getFundraiserDevice(fdid);\n });\n } else {\n // If reminders are ON, show modal to confirm disabling\n setShowOptInModal(true);\n }\n };\n\n return (\n
\n
My Fundraisers
\n
\n {currentFundraiserDevice && currentFundraiserDevice.isOptedIn !== null && (\n
\n \n Reminders: {currentFundraiserDevice.isOptedIn ? \"On\" : \"Off\"}\n \n \n
\n )}\n
closeModalUpdateDevice(false)}\n fundraiserDevice={currentFundraiserDevice}\n />\n \n );\n}\n","import { Link } from \"react-router-dom\";\nimport { useState } from 'react';\nexport default function OfferItem(props) {\n const testUrl = \"codecademy-content/projects/make-a-website/lesson-4/jumbotron.jpg\";\n const vendor = props.offer.vendorOffer.vendor;\n const vendorOffer = props.offer.vendorOffer;\n const IsInactive = props.forcedDisable || (props.offer.ticketPurchaseOfferRedemptions.length > props.offer.ticket_qty && vendorOffer.offerTypeId == 1);\n const symbol = IsInactive ? \"\" : \">\";\n const symbolDec = IsInactive ? \"text-danger\" : \"my-0 text-left\";\n const styling = \"d-flex justify-content-center list-group-item list-group-item-secondary m-0 p-0\"\n const throwAlert = () => {\n if (IsInactive)\n alert(\"This offer has already been redeemed\")\n }\n const linkedItem = (content) => {\n return (
{content});\n }\n const inactiveItem = (content) => {\n return (
throwAlert()}>{content}
);\n }\n const content =\n <>\n
\n
\n
{vendor && vendor.name}
\n \n
\n
\n
\n

\n \n
\n
\n
{vendorOffer.name}
\n {/*
{vendorOffer.description}
*/}\n
\n
\n
{symbol}
\n \n
\n \n >\n return (\n
\n {IsInactive ? inactiveItem(content) : linkedItem(content)}\n \n );\n}","import { useLocation } from 'react-router-dom';\nimport React, { useEffect } from \"react\";\n\nexport default function TicketUserBottomNav({ ticketPurchaseSessionGuid, ticketPurchaseGuid, primaryColor, secondaryColor, logoUrl }) {\n const location = useLocation();\n const otherPurchases = (\n
\n )\n const clipboard = (\n
\n
\n {logoUrl ? (\n

\n ) : (\n
\n )}\n
\n
Team
\n
\n );\n const home =\n
\n const offers =\n
;\n const links = [\n { Name: clipboard, URL: `/MyTeam/${ticketPurchaseSessionGuid}/` },\n { Name: home, URL: `/MyTicket/${ticketPurchaseSessionGuid}/` },\n { Name: offers, URL: `/MyOffers/${ticketPurchaseSessionGuid}/` }\n ];\n\n if (ticketPurchaseGuid) {\n links.unshift({ Name: otherPurchases, URL: `/ManageDiscounts/${ticketPurchaseGuid}/` });\n }\n\n const setNavRef = (node) => {\n if (node) {\n const parentContainer = findParentContainer(node);\n if (parentContainer) {\n const childElement = parentContainer.firstElementChild;\n if (childElement) {\n }\n parentContainer.style.paddingLeft = \"0\";\n parentContainer.style.paddingRight = \"0\";\n\n // Assuming the direct child element is the first child of the parent container\n \n }\n }\n };\n\n\n const findParentContainer = (element) => {\n if (!element) return null;\n if (element.classList.contains('container')) return element;\n return findParentContainer(element.parentNode);\n };\n\n return (\n
\n\n );\n}","import TicketsService from '../services/TicketsService';\n\nconst checkSession = async (sessionGuid, callbackFetch) => {\n const currentSession = await getCurrentSession(sessionGuid);\n const applySecurity = await checkForSecurity();\n if (applySecurity) {\n const isValidSession = await redirectInactive(currentSession);\n if (isValidSession) {\n callbackFetch(currentSession);\n }\n }\n else {\n callbackFetch(currentSession);\n }\n};\n\n\nconst getCurrentSession = async (paramsGuid) => {\n var response = await TicketsService.getSession(paramsGuid);\n if (response.guid) {\n if (response.guid != paramsGuid) {\n const path = window.location.pathname;\n const newPath = path.substring(0, path.lastIndexOf('/') + 1) + response.guid;\n window.location.href = newPath;\n } else if (response.isTicket) {\n return response.guid;\n } else if (response.isSession) {\n return response.guid;\n }\n }\n};\nconst checkForSecurity = async () => {\n var response = await TicketsService.getSecurityStatus();\n if (response) {\n if (response.allowAll) {\n return false;\n }\n return true;\n }\n return false;\n};\n\nconst redirectInactive = async (ticketPurchaseSessionGuid) => {\n const res = await TicketsService.checkSession(ticketPurchaseSessionGuid);\n if (res.success) {\n if (res.sample) {\n return true;\n }\n if (res.redirect && res.inactive) {\n window.location.href = res.redirect;\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n};\n\n\nexport { checkSession, getCurrentSession, redirectInactive };\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\nexport const useWebAppManifest = () => {\n const location = useLocation();\n useEffect(() => {\n const staticManifestLinks = document.querySelectorAll('link[rel=\"manifest\"]');\n staticManifestLinks.forEach((link) => {\n document.head.removeChild(link);\n });\n\n const manifestLink = document.createElement('link');\n manifestLink.rel = 'manifest';\n manifestLink.href = `/api/Tickets/GetManifest?start_url=${encodeURIComponent(location.pathname)}&rand=${Math.random()}`;\n document.head.appendChild(manifestLink);\n\n // Cleanup function to remove the link when the component is unmounted or the URL changes\n return () => {\n document.head.removeChild(manifestLink);\n staticManifestLinks.forEach((link) => {\n document.head.appendChild(link);\n });\n };\n }, [location.pathname]); // This hook will run every time the URL changes\n};\n","import React, { useEffect, useState } from 'react';\nimport TicketsService from \"../services/TicketsService\";\nimport { useParams } from \"react-router-dom\";\nimport OfferItem from '../components/OfferItem';\nimport TicketUserBottomNav from '../components/TicketUserBottomNav';\nimport { checkSession } from '../components/UserTicketSecurity';\nimport { useWebAppManifest } from '../hooks/WebAppManifest';\n\n\nexport default function UserOffers() {\n //useParams\n const { ticketPurchaseSessionGuid } = useParams();\n //useState\n const [ticketGuid, setTicketGuid] = useState();\n const { fundraiserId } = useParams();\n const [offers, setOffers] = useState();\n const [show, setShow] = useState(false);\n useWebAppManifest();\n const salesDisplayTicket = (fId) => {\n\n TicketsService.getFundraisersTicket(fId).then(x => {\n console.log(x);\n checkSession(x.guid, fetchOffers);\n setTicketGuid(x.guid);\n });\n }\n const fetchOffers = async (sessionGuid) => {\n TicketsService.getOffers(sessionGuid).then(x => {\n setOffers(x);\n setShow(true);\n });\n }\n useEffect(() => {\n if (fundraiserId != null)\n {\n salesDisplayTicket(fundraiserId);\n }\n else\n {\n checkSession(ticketPurchaseSessionGuid, fetchOffers);\n }\n }, []);\n\n if (!show)\n return null;\n\n return (\n
\n
\n
\n
{offers && offers.id}
\n
Your Offers
\n
\n {offers &&\n offers.map((offer, index) => {\n let validOffers = offer.ticketQty - offer.ticketPurchaseOfferRedemptions.length;\n let invalidOffers = offer.ticketQty - validOffers;\n let validOfferItems = Array.from({ length: validOffers }, (_, i) => {\n return (\n \n );\n });\n let invalidOfferItems = Array.from({ length: invalidOffers }, (_, i) => {\n return (\n \n );\n });\n return [...validOfferItems, ...invalidOfferItems];\n })}\n
\n
\n
\n
\n );\n\n}\n","import React, { useState, useRef } from 'react';\nimport TicketsService from \"../services/TicketsService\";\n\nexport default function TicketPurchase({ tp }) {\n const [shareMessage, setShareMessage] = useState('');\n const rootUrl = window.location.origin;\n const ticketLink = `${rootUrl}/activateticket/${tp.ticketPurchaseSessions[0].guid}`;\n const phoneRef = useRef();\n\n const handleShareTicketPurchase = (guid) => {\n let phoneNumber = phoneRef.current.value.replace(/[^\\d]/g, ''); // remove all non-digit characters\n if (phoneNumber.length !== 10 && phoneNumber.length !== 11) { // validate that the input contains exactly 10 or 11 digits\n setShareMessage(\"Please enter a valid 10-digit phone number.\");\n return;\n }\n\n TicketsService.shareTicketPurchase(guid, phoneNumber)\n .then(response => setShareMessage(response.message))\n .catch(err => {\n console.error(err);\n setShareMessage(\"Could not send the link. Please check the phone number and try again.\");\n });\n }\n const handleCopyLink = () => {\n navigator.clipboard.writeText(ticketLink);\n setShareMessage(\"Ticket link copied to clipboard!\");\n }\n\n return (\n
\n
Your Ticket
\n
\n \n
\n
\n \n
\n
\n \n
\n {tp.ticketPurchaseSessions.some(tps => tps.keyActivatedAt) && (\n
\n Ticket Redeemed by: {tp.phone}\n
\n )}\n {shareMessage && (\n
\n {shareMessage}\n
\n )}\n
\n );\n}\n","// UserTicketManager.js\nimport React, { useEffect, useState } from 'react';\nimport TicketsService from \"../services/TicketsService\";\nimport { useParams } from \"react-router-dom\";\nimport TicketPurchase from '../components/TicketPurchase';\n\nexport default function UserTicketManager() {\n const { ticketPurchaseGuid } = useParams();\n const [ticketPurchases, setTicketPurchases] = useState([]);\n const [error, setError] = useState(false);\n const [loading, setLoading] = useState(true);\n const [orderId, setOrderId] = useState('');\n\n useEffect(() => {\n TicketsService.getTicketPurchases(ticketPurchaseGuid).then(x => {\n setTicketPurchases(x);\n setOrderId(x[0].orderId);\n setLoading(false);\n }).catch(err => {\n setError(true);\n setLoading(false);\n });\n }, []);\n\n if (error) {\n return (\n
\n Sorry, there are no digital items associated located here :/\n
\n )\n }\n\n if (loading) {\n return (\n
Loading…
\n )\n }\n\n return (\n
\n
\n
Your Ticket Purchases
\n
Order ID: {orderId === 0 ? \"Complimentary\" : orderId}
\n
Below are the tickets you've purchased. You can copy the ticket link or send it to a phone number.
\n
\n {ticketPurchases.map((tp, index) => (\n
\n
\n
Ticket {index + 1} of {ticketPurchases.length}
\n \n \n
\n ))}\n
\n\n );\n}\n","export const extractTeamStyling = (team) => {\n const primaryColor = team.primaryColorHex ? \"#\" + team.primaryColorHex : null;\n const secondaryColor = team.secondaryColorHex ? \"#\" + team.secondaryColorHex : null;\n const logoUrl = team.photoUrl ? \"https://fundraising-u-production.s3.amazonaws.com/\" + team.photoUrl : null;\n const useBackgroundImage = team.useBackgroundPhoto;\n const backgroundImage = useBackgroundImage && team.backgroundPhotoUrl ? \"https://fundraising-u-production.s3.amazonaws.com/\" + team.backgroundPhotoUrl : null;\n\n return { primaryColor, secondaryColor, logoUrl, useBackgroundImage, backgroundImage };\n};\n\nexport const getTicketUserBottomNavProps = (team) => {\n const primaryColor = team.primaryColorHex ? \"#\" + team.primaryColorHex : null;\n const secondaryColor = team.secondaryColorHex ? \"#\" + team.secondaryColorHex : null;\n const logoUrl = team.photoUrl ? \"https://fundraising-u-production.s3.amazonaws.com/\" + team.photoUrl : null;\n\n return { primaryColor,secondaryColor, logoUrl };\n};\n\nexport const getBackgroundStyle = (team) => {\n console.log(extractTeamStyling(team));\n const { useBackgroundImage, backgroundImage, secondaryColor } = extractTeamStyling(team);\n return useBackgroundImage\n ? {\n backgroundImage: `url(${backgroundImage})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n }\n : {\n backgroundColor: secondaryColor,\n };\n};","import { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport TicketUserBottomNav from '../components/TicketUserBottomNav';\nimport TicketsService from '../services/TicketsService';\nimport { checkSession } from '../components/UserTicketSecurity';\nimport { getTicketUserBottomNavProps, getBackgroundStyle } from '../components/TeamStyling'; \nimport { useWebAppManifest } from '../hooks/WebAppManifest';\n\nexport default function UserTeam() {\n const { ticketPurchaseSessionGuid } = useParams();\n const [ticket, setTicket] = useState();\n const [show, setShow] = useState(false);\n const [ticketPurchase, setTicketPurchase] = useState();\n useWebAppManifest();\n const fetchTicket = async (sessionGuid) => {\n const ticket = await TicketsService.getTicket(sessionGuid);\n setTicket(ticket);\n if (ticket?.ticketPurchases && ticket.ticketPurchases.length > 0) {\n setTicketPurchase(ticket.ticketPurchases[0]);\n }\n setShow(true);\n };\n\n useEffect(() => {\n checkSession(ticketPurchaseSessionGuid, fetchTicket);\n }, []);\n\n if (!show) return null;\n\n const navigate = (url) => {\n window.location.href = url;\n };\n\n const team = ticket?.fundraiser?.team;\n const teamName = team && ticket.fundraiser.school && ticket.fundraiser.school.name ? ticket.fundraiser.school.name + \" \" + team.name + \" Resources\" : \"\";\n const backgroundStyle = getBackgroundStyle(team);\n return (\n
\n
\n
{teamName}
\n
\n {ticket && ticket.teamLink2Url && ticket.teamLink2Name ? : <>>}\n {ticket && ticket.teamLink3Url && ticket.teamLink3Name ? : <>>}\n {ticket && ticket.teamLink1Url && ticket.teamLink1Name ? : <>>}\n
\n
\n
\n
\n\n );\n}","import React, { useEffect, useRef } from 'react';\n\nexport default function Collage(props) {\n const containerRef = useRef(null);\n\n useEffect(() => {\n props.images.forEach(image => {\n const imgElement = new Image();\n imgElement.src = image;\n imgElement.onload = function () {\n const { naturalWidth, naturalHeight } = this;\n const maxWidth = window.innerWidth * 0.9; // limit image width to 80% of window width\n const scaleFactor = maxWidth / naturalWidth;\n const width = naturalWidth * scaleFactor;\n const height = naturalHeight * scaleFactor;\n imgElement.style.width = width + \"px\";\n imgElement.style.height = height + \"px\";\n imgElement.style.alignContent = \"center\";\n imgElement.style.margin = \"auto\";\n containerRef.current.appendChild(imgElement);\n };\n });\n }, [props.images]);\n\n return (\n
\n
\n );\n};\n","// UserTicket.js\nimport { useState, useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport Collage from '../components/Collage';\nimport TicketUserBottomNav from '../components/TicketUserBottomNav';\nimport TicketsService from '../services/TicketsService';\nimport { checkSession } from '../components/UserTicketSecurity';\nimport { getTicketUserBottomNavProps, getBackgroundStyle } from '../components/TeamStyling'; \nimport { useWebAppManifest } from '../hooks/WebAppManifest';\n\nexport default function UserTicket(props) {\n const { ticketPurchaseSessionGuid } = useParams();\n const [ticket, setTicket] = useState();\n const [ticketPurchase, setTicketPurchase] = useState();\n const [show, setShow] = useState(false);\n\n useWebAppManifest();\n\n\n const fetchTicket = async (sessionGuid) => {\n const ticket = await TicketsService.getTicket(sessionGuid);\n setTicket(ticket);\n if (ticket?.ticketPurchases && ticket.ticketPurchases.length > 0) {\n setTicketPurchase(ticket.ticketPurchases[0]);\n }\n setShow(true);\n };\n\n useEffect(() => {\n checkSession(ticketPurchaseSessionGuid, fetchTicket);\n }, []);\n\n if (!show) return null;\n\n const team = ticket?.fundraiser?.team;\n console.log(team);\n const backgroundStyle = getBackgroundStyle(team);\n const getImages = () => {\n let urlArray = [];\n if (ticket?.photoUrl && ticket?.photoUrl !== \"\")\n urlArray.push(ticket.photoUrl);\n if (ticket?.photoUrl2 && ticket?.photoUrl2 !== \"\")\n urlArray.push(ticket.photoUrl2);\n if (ticket?.photoUrl3 && ticket?.photoUrl3 !== \"\")\n urlArray.push(ticket.photoUrl3);\n if (ticket?.photoUrl4 && ticket?.photoUrl4 !== \"\")\n urlArray.push(ticket.photoUrl4);\n if (ticket?.photoUrl5 && ticket?.photoUrl5 !== \"\")\n urlArray.push(ticket.photoUrl5);\n return urlArray;\n };\n\n const schoolName = ticket?.fundraiser?.school?.name;\n const teamName = team?.name;\n const headerText = schoolName && teamName ? schoolName + \" \" + teamName : \"\";\n\n return (\n
\n
\n
\n
{headerText}
\n \n
\n \n
\n
\n
\n
\n );\n}\n","import axios from \"axios\";\n\nconst AdminService = {\n API_ENDPOINT: '',\n async createBucket(bucketName) {\n return axios.post('api/AWSS3Controller/CreateBucketAsync',bucketName);\n },\n async uploadFile(file) {\n return axios.post('api/AWSS3Controller/UploadFileAsync', file);\n },\n async getAvailableVendorOffers(fundraiserId, filterState, currentTicket) {\n const response = await fetch('api/Admin/GetAvailableVendorOffers?fundraiserId=' + fundraiserId + '¤tTicket=' + currentTicket + '&&filterState=' + filterState);\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getThisVendorsOffers(vendorId) {\n const response = await fetch('api/Admin/GetThisVendorsOffers?vendorId=' + vendorId);\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getTeam(ticketId) {\n const response = await fetch('api/Admin/GetTeam?ticketId=' + ticketId);\n const data = await response.json();\n return data;\n },\n async getBaseUrl() {\n const response = await fetch('api/Admin/GetBaseUrl/');\n const data = await response.json();\n return data;\n },\n\n async getTicket(ticketId) {\n const response = await fetch('api/Admin/GetTicket?ticketId=' + ticketId);\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n\n async getTicketByFundraiser(fundraiserId) {\n const response = await fetch('api/Admin/GetTicketByFundraiser?fundraiserId=' + fundraiserId);\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getTickets() {\n const response = await fetch('api/Admin/GetTickets');\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getVendor(vendorId) {\n const response = await fetch('api/Admin/GetVendor?vendorId=' + vendorId);\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getVendorOffer(vendorOfferId, vendorId) {\n const response = await fetch('api/Admin/GetVendorOffer?vendorOfferId=' + vendorOfferId + '&vendorId=' + vendorId);\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getVendorOffers() {\n const response = await fetch('api/Admin/GetVendorOffers');\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async getVendors() {\n const response = await fetch('api/Admin/GetVendors');\n const data = await response.json();\n return data;\n //this.setState({ forecasts: data, loading: false });\n },\n async saveVendor(vendor) {\n return axios.post('api/Admin/SaveVendor', vendor);\n },\n async saveVendorOffer(vendorOffer) {\n return axios.post('api/Admin/SaveVendorOffer', vendorOffer);\n },\n async saveTicket(ticket, fundraiserId) {\n //ticket.fileNames = fileNames;\n ticket.fundraiserId = fundraiserId;\n return axios.post('api/Admin/SaveTicket', ticket);\n },\n async createComplimentaryTicket(ticketId, qty) {\n const response = await fetch('api/Admin/CreateComplimentaryTicket?ticketId=' + ticketId + '&qty=' + qty);\n const data = await response.json();\n return data;\n },\n async getCurrentComplimentaryTickets(ticketId) {\n const response = await fetch(`api/Admin/GetCurrentComplimentaryTickets?ticketId=${ticketId}`);\n const data = await response.json();\n return data;\n },\n async revokeComplimentaryTicket(ticketPurchaseId) {\n const response = await fetch(`api/Admin/RevokeComplimentaryTicket?ticketPurchaseId=${ticketPurchaseId}`);\n const data = await response.json();\n return data;\n },\n async revokeAllComplimentaryTickets(ticketId) {\n const response = await fetch(`api/Admin/RevokeAllComplimentaryTickets?ticketId=${ticketId}`);\n const data = await response.json();\n return data;\n },\n async saveTeam(team) {\n return axios.post('api/Admin/SaveTeam', team);\n },\n async deleteTicket(ticket) {\n return axios.post('api/Admin/DeleteTicket', ticket);\n },\n //async uploadImage(image) {\n // console.log('Upload clicked')\n // // Get the presigned URL\n // const uploadEndpointGET = await axios({\n // method: 'GET',\n // url: this.API_ENDPOINT\n // })\n // console.log('Response: ', uploadEndpointGET)\n // console.log('Uploading: ', image)\n // let binary = atob(image.split(',')[1])\n // let array = []\n // for (var i = 0; i < binary.length; i++) {\n // array.push(binary.charCodeAt(i))\n // }\n // let blobData = new Blob([new Uint8Array(array)], { type: 'image/jpeg' })\n // console.log('Uploading to: ', uploadEndpointGET.uploadURL)\n // const imagePUT = await fetch(uploadEndpointGET.uploadURL, {\n // method: 'PUT',\n // body: blobData\n // })\n // console.log('Result: ', imagePUT)\n // // Final URL for the user doesn't need the query string params\n // uploadURL = uploadEndpointGET.uploadURL.split('?')[0]\n //},\n}\n\nexport default AdminService;","import AdminService from \"../services/AdminService\";\nimport { Link, useParams } from 'react-router-dom';\n\nimport React, { useEffect, useState, } from 'react';\nexport default function Team() {\n //useParams\n const { ticketId } = useParams();\n //useState\n const [team, setTeam] = useState();\n\n useEffect(x => {\n /*GetTeam*/\n AdminService.getTicket(ticketId).then(() => {\n let a = {\n name: \"Dogs\",\n ticketId: 1,\n imgUrl: \"asdf.com\",\n imgFile: \"\",\n link1: \"asdf.com\",\n link2: \"asdf.com\",\n link3: \"asdf.com\"\n\n }\n setTeam(a)\n console.log(a);\n });\n\n }, []);\n const handleSubmit = (e) => {\n e.preventDefault();\n console.log(team);\n\n AdminService.saveTeam(team).then(x => console.log(x));\n }\n\n return (\n
\n );\n}\n","import { useState, useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport TicketsService from \"../services/TicketsService\";\n\nexport default function UserRequestLink()\n{\n const { ticketPurchaseSessionGuid } = useParams();\n const [phoneNumber, setPhoneNumber] = useState('');\n const [validNumber, setValidNumber] = useState(false); // added state for input validation\n const [validRequest, setValidRequest] = useState(false); // added state for input validation\n\n const redirectIfActive = async (ticketPurchaseSessionGuid) => {\n const res = await TicketsService.checkSession(ticketPurchaseSessionGuid);\n if (res.success)\n {\n console.log(res);\n if (res.redirect && res.active || res.sample) {\n window.location.href = res.redirect;\n }\n else\n {\n setValidRequest(true);\n }\n }\n else\n {\n setValidRequest(false);\n }\n };\n const handlePhoneNumberChange = (e) => {\n const inputValue = e.target.value.replace(/[^\\d\\s()-]/g, ''); // remove all non-digit, non-space, non-parentheses, and non-dash characters\n setPhoneNumber(inputValue);\n setValidNumber(inputValue.replace(/[^\\d]/g, '').length === 10); // validate that the input contains exactly 10 digits\n }\n\n const handleSubmit = (event) => {\n event.preventDefault();\n const phoneNumberDigits = phoneNumber.replace(/[^0-9]/g, ''); // remove all non-digit characters from the phone number input\n TicketsService.addPhone(phoneNumberDigits, ticketPurchaseSessionGuid).then(res => {\n if (res.success) {\n if (res.redirect) {\n window.location.href = res.redirect;\n }\n }\n }).catch(error => {\n });\n }\n\n useEffect(() => {\n redirectIfActive(ticketPurchaseSessionGuid);\n }, []);\n if (!validRequest)\n return null;\n return (\n
\n\n );\n}\n","import { useParams } from 'react-router-dom';\n\nexport default function UserRequestLinkConfirmation() {\n const { phoneNumber } = useParams();\n const formattedPhoneNumber = `(${phoneNumber.substring(0, 3)}) ${phoneNumber.substring(3, 6)}-${phoneNumber.substring(6)}`;\n return (\n
\n
Confirmation
\n
\n The phone number registered to this ticket it will receive a link to access the ticket.\n
\n
\n );\n}\n","import { useState, useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport TicketsService from \"../services/TicketsService\";\n\nexport default function UserLinkRedemption() {\n const { ticketPurchaseSessionGuid } = useParams();\n const [validRequest, setValidRequest] = useState(false); // added state for input validation\n const redirectIfActive = async (ticketPurchaseSessionGuid) => {\n const res = await TicketsService.checkSession(ticketPurchaseSessionGuid);\n if (res.success)\n {\n if (res.redirect && res.active || res.sample)\n {\n window.location.href = res.redirect;\n return false;\n }\n else if (res.deactivated)\n {\n setValidRequest(false);\n window.location.href = res.redirect;\n\n }\n else\n {\n setValidRequest(true);\n }\n }\n else\n {\n setValidRequest(true);\n }\n\n };\n\n const handleSubmit = (event) => {\n event.preventDefault();\n TicketsService.redeemLink(ticketPurchaseSessionGuid).then(res => {\n console.log(res);\n if (res.success) {\n if (res.redirect) {\n window.location.href = res.redirect;\n }\n }\n }).catch(error => {\n console.error(error);\n });\n }\n useEffect(() => {\n redirectIfActive(ticketPurchaseSessionGuid);\n }, []);\n if (validRequest == false)\n return null;\n return (\n
\n );\n}\n\n\n","import { useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport AdminService from \"../services/AdminService\";\n\nconst RedirectRoute = ({ to }) => {\n const params = useParams();\n\n\n const joinUrls = (base, path) => {\n const normalizedBase = base.endsWith(\"/\") ? base.slice(0, -1) : base;\n const normalizedPath = path.startsWith(\"/\") ? path : \"/\" + path;\n return normalizedBase + normalizedPath;\n };\n\n useEffect(() => {\n const fetchBaseURL = async () => {\n const res = await AdminService.getBaseUrl();\n const baseURL = res.url;// Assuming this is your method to fetch the base URL from the controller\n const url = typeof to === 'function' ? to(params) : to;\n window.location.href = joinUrls(baseURL, url);\n };\n\n fetchBaseURL();\n }, [to, params]);\n\n return null;\n};\n\nexport default RedirectRoute;\n","import SelectLocation from \"./pages/SelectLocation\";\nimport SelectSchool from \"./pages/SelectSchool\";\nimport SelectTeam from \"./pages/SelectTeam\";\nimport Order from \"./pages/Order\";\nimport Checkout from \"./pages/Checkout\";\nimport CheckoutCashCheck from \"./pages/CheckoutCashCheck\";\nimport TicketRedemption from \"./pages/TicketRedemption\";\nimport Fundraiser from \"./pages/Fundraiser\";\nimport FundraiserOrders from \"./pages/FundraiserOrders\";\nimport Fundraisers from \"./pages/Fundraisers\";\nimport UserOffers from \"./pages/UserOffers\";\nimport UserDiscountManager from \"./pages/UserDiscountManager\";\nimport UserTeam from \"./pages/UserTeam\";\nimport UserTicket from \"./pages/UserTicket\";\nimport Team from \"./pages/Team\";\nimport UserRequestLink from \"./pages/UserRequestLink\";\nimport UserRequestLinkConfirmation from \"./pages/UserRequestLinkConfirmation\";\nimport UserLinkRedemption from \"./pages/UserLinkRedemption\";\nimport RedirectRoute from './services/RedirectRoute';\n\nconst AppRoutes = [\n {\n index: true,\n element:
\n },\n {\n path: '/SelectLocation',\n element:
\n },\n {\n path: '/Give',\n element:
\n },\n {\n path: '/Donate',\n element:
\n },\n {\n path: '/Purchase/:pItemId/:pPhone',\n element:
\n },\n {\n path: '/SelectSchool/:location/:itemId/:phone',\n element:
\n },\n {\n path: '/SelectTeam/:schoolId/:itemId/:phone',\n element:
\n },\n {\n path: '/Order/:fundraiserId/:itemId/:phone',\n element:
\n }\n ,\n {\n path: '/Order/:fdid',\n element:
\n },\n {\n path: '/Order/:fdid/:cashcheck',\n element:
\n },\n {\n path: '/Order/Edit/:orderId',\n element:
\n },\n\n {\n path: '/Fundraisers/:fdid',\n element:
\n },\n {\n path: '/FundraiserOrders/:fdid',\n element:
\n },\n {\n path: '/Fundraiser/:fundraiserDeviceGuid',\n element:
\n },\n {\n path: '/Checkout/:orderId',\n element:
\n },\n {\n path: '/CheckoutCashCheck/:orderId/:cashcheck',\n element:
\n },\n {\n path: '/MyOffers/:ticketPurchaseSessionGuid',\n element:
\n },\n {\n path: '/ReactivateTicket/:ticketPurchaseSessionGuid',\n element:
\n },\n {\n path: '/ActivateTicket/:ticketPurchaseSessionGuid',\n element:
\n },\n {\n path: '/ActivateTicket/:ticketPurchaseSessionGuid/Confirmation/:phoneNumber',\n element:
\n },\n {\n path: '/ActivateTicket/:ticketPurchaseSessionGuid/Confirmation/',\n element:
\n },\n {\n path: '/ActivateTicket/:ticketPurchaseSessionGuid/RegisterDevice/:phoneNumber',\n element:
\n },\n {\n path: '/ActivateTicket/:ticketPurchaseSessionGuid/RegisterDevice/',\n element:
\n },\n {\n path: '/MyTicket/:ticketPurchaseSessionGuid',\n element:
\n },\n {\n path: '/MyTeam/:ticketPurchaseSessionGuid',\n element:
\n },\n {\n path: '/ManageDiscounts/:ticketPurchaseGuid',\n element:
\n },\n\n {\n path: '/MyOffers/:ticketPurchaseSessionGuid/Redeem/:ticketOfferId',\n element:
\n },\n {\n path: '/TicketPreview/:fundraiserId/',\n element:
\n },\n {\n path: '/Team/:ticketId',\n element:
\n },\n {\n path: '/Admin',\n element:
`/`} />\n },\n {\n path: '/Admin/Vendors',\n element: `/Vendors/`} />\n },\n {\n path: '/Admin/Vendor/:vendorId',\n element: `/Vendors/Details/${params.vendorId}`} />\n },\n {\n path: '/Admin/VendorOffers',\n element: `/VendorOffers/`} />\n },\n {\n path: '/Admin/VendorOffer/:vendorOfferId/:vendorId',\n element: `/VendorOffers/Details/${params.vendorOfferId}`} />\n },\n {\n path: '/Admin/Ticket/:fundraiserId',\n element: `/Fundraisers/Details/${params.fundraiserId}`} />\n },\n {\n path: '/Admin/Tickets',\n element: `/Fundraisers/`} />\n }\n];\n\nexport default AppRoutes;\n","import React, { Component } from \"react\";\nimport {\n Collapse,\n Navbar,\n NavbarBrand,\n NavbarToggler,\n NavItem,\n NavLink,\n} from \"reactstrap\";\nimport { Link } from \"react-router-dom\";\nimport \"./NavMenu.css\";\n\nexport class NavMenu extends Component {\n static displayName = NavMenu.name;\n\n constructor(props) {\n super(props);\n\n this.toggleNavbar = this.toggleNavbar.bind(this);\n this.state = {\n collapsed: true,\n };\n }\n\n toggleNavbar() {\n this.setState({\n collapsed: !this.state.collapsed,\n });\n }\n\n render() {\n return (\n \n \n \n
\n \n \n \n \n );\n }\n}\n","import React, { Component } from 'react';\nimport { Container } from 'reactstrap';\nimport { NavMenu } from './NavMenu';\n\nexport class Layout extends Component {\n static displayName = Layout.name;\n\n render() {\n return (\n \n \n \n \n {this.props.children}\n \n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport { Route, Routes } from 'react-router-dom';\nimport AppRoutes from './AppRoutes';\nimport { Layout } from './components/Layout';\nimport './custom.css';\nimport './css/themes/corporate.css';\nimport './css/codebase.css';\n\nexport default class App extends Component {\n static displayName = App.name;\n\n render() {\n return (\n \n \n {AppRoutes.map((route, index) => {\n const { element, ...rest } = route;\n return ;\n })}\n \n \n );\n }\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import 'bootstrap/dist/css/bootstrap.css';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { BrowserRouter } from 'react-router-dom';\nimport App from './App';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport reportWebVitals from './reportWebVitals';\n\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nconst rootElement = document.getElementById('root');\nconst root = createRoot(rootElement);\n\nroot.render(\n \n \n );\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.unregister();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["module","exports","self","FormData","window","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","default","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","global","freeSelf","root","Function","freeExports","nodeType","freeModule","moduleExports","freeProcess","process","nodeUtil","binding","e","nodeIsTypedArray","isTypedArray","arraySome","array","predicate","index","mapToArray","map","result","size","forEach","value","setToArray","set","func","transform","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","uid","exec","keys","IE_PROTO","nativeObjectToString","reIsNative","RegExp","replace","Buffer","undefined","Symbol","Uint8Array","propertyIsEnumerable","splice","symToStringTag","toStringTag","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","Promise","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","this","clear","entry","ListCache","MapCache","SetCache","values","__data__","add","Stack","data","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","n","iteratee","baseTimes","String","isIndex","assocIndexOf","eq","baseGetTag","isOwn","tag","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsEqual","other","bitmask","customizer","stack","object","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","byteLength","byteOffset","buffer","name","message","convert","isPartial","stacked","get","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","constructor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isObject","isMasked","isFunction","test","baseKeys","Ctor","proto","isPrototype","arrLength","seen","arrValue","othIndex","has","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getSymbols","getMapData","type","isKeyable","getValue","pop","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","symbol","ArrayBuffer","resolve","ctorString","isLength","baseUnary","ReactPropTypesSecret","require","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","Error","getShim","isRequired","ReactPropTypes","bigint","bool","number","string","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","qrcode","typeNumber","errorCorrectionLevel","_typeNumber","_errorCorrectionLevel","QRErrorCorrectionLevel","_modules","_moduleCount","_dataCache","_dataList","_this","makeImpl","maskPattern","moduleCount","modules","row","col","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","r","c","pos","QRUtil","getPatternPosition","j","bits","getBCHTypeNumber","mod","Math","floor","getBCHTypeInfo","inc","bitIndex","byteIndex","maskFunc","getMaskFunction","dark","dataList","rsBlocks","QRRSBlock","getRSBlocks","qrBitBuffer","put","getMode","getLength","getLengthInBits","write","totalDataCount","dataCount","putBit","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","max","getBuffer","rsPoly","getErrorCorrectPolynomial","modPoly","qrPolynomial","modIndex","getAt","totalCodeCount","createBytes","addData","mode","newData","qrNumber","qrAlphaNum","qr8BitByte","qrKanji","isDark","getModuleCount","make","minLostPoint","pattern","lostPoint","getLostPoint","getBestMaskPattern","createTableTag","cellSize","margin","qrHtml","createSvgTag","alt","title","opts","text","id","mr","rect","qrSvg","scalable","escapeXml","trim","createDataURL","min","x","y","createImgTag","img","s","escaped","charAt","createASCII","r1","r2","p","blocks","blocksLastLineNoMargin","ascii","substring","_createHalfASCII","white","black","line","renderTo2dContext","context","fillStyle","fillRect","stringToBytes","stringToBytesFuncs","bytes","charCodeAt","createStringToBytes","unicodeData","numChars","unicodeMap","bin","base64DecodeInputStream","read","b","count","b0","b1","v","fromCharCode","unknownChar","QRMode","L","M","Q","H","QRMaskPattern","PATTERN_POSITION_TABLE","G15","G18","getBCHDigit","digit","d","errorCorrectLength","a","multiply","QRMath","gexp","sameCount","darkCount","abs","EXP_TABLE","LOG_TABLE","num","shift","_num","glog","ratio","RS_BLOCK_TABLE","qrRSBlock","rsBlock","getRsBlockTable","list","_buffer","_length","bufIndex","bit","_mode","_data","strToNum","chatToNum","getCode","_bytes","code","byteArrayOutputStream","writeByte","off","len","str","_str","_pos","_buflen","match","decode","width","height","getPixel","gif","_width","_height","pixel","out","writeString","writeShort","raster","getLZWRaster","writeBytes","lzwMinCodeSize","clearCode","endCode","bitLength","table","lzwTable","byteOut","bitOut","_out","_bitLength","_bitBuffer","bitOutputStream","dataIndex","contains","indexOf","flush","toByteArray","_map","_size","gifImage","setPixel","base64","_base64","writeEncoded","encode","padlen","base64EncodeOutputStream","utf8","charcode","toUTF8Array","define","aa","ca","encodeURIComponent","da","ea","fa","ha","ia","document","createElement","ja","ka","la","ma","f","g","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","z","split","toLowerCase","ra","sa","toUpperCase","ta","slice","pa","isNaN","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","assign","Ma","Na","Oa","prepareStackTrace","defineProperty","Reflect","construct","l","h","k","displayName","includes","Pa","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","configurable","enumerable","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","tb","menuitem","area","base","br","embed","hr","input","keygen","link","meta","param","source","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","m","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","concat","nf","Ub","instance","listener","D","of","pf","qf","rf","random","sf","bind","capture","passive","t","J","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Jf","queueMicrotask","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","create","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","console","error","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","JSON","stringify","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","version","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","isView","equal","it","warn","__extends","extendStatics","setPrototypeOf","__proto__","__","QRCode","isEqual","qrGenerator","React","ReactDOM","_super","canvas","createRef","utf16to8","drawRoundedSquare","lineWidth","radii","fill","ctx","strokeStyle","rTopLeft","rTopRight","rBottomRight","rBottomLeft","beginPath","moveTo","lineTo","quadraticCurveTo","closePath","stroke","drawPositioningPattern","radiiOuter","radiiInner","colorOuter","colorInner","outer","isInPositioninZone","zones","some","zone","transformPixelLengthIntoNumberOfCells","pixelLength","isCoordinateInImage","dWidthLogo","dHeightLogo","dxLogo","dyLogo","logoImage","firstRowOfLogo","firstColumnOfLogo","logoWidthInCells","logoHeightInCells","nextProps","update","_a","ecLevel","enableCORS","quietZone","bgColor","fgColor","logoWidth","logoHeight","logoOpacity","removeQrCodeBehindLogo","qrStyle","eyeRadius","eyeColor","qrCode","getContext","canvasSize","scale","devicePixelRatio","positioningZones","radius","arc","round","PI","_b","image_1","Image","crossOrigin","onload","save","globalAlpha","drawImage","restore","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","toArray","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","warning","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","__esModule","definition","o","chunkId","all","reduce","promises","miniCssF","globalThis","obj","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","doneFns","fn","head","nmd","paths","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","_arrayLikeToArray","arr","arr2","_unsupportedIterableToArray","minLen","from","_i","_s","_e","_arr","_n","_d","TypeError","NavigationContext","LocationContext","RouteContext","outlet","matches","invariant","cond","matchRoutes","routes","locationArg","basename","pathname","stripBasename","parsePath","branches","flattenRoutes","sort","score","siblings","every","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","route","relativePath","path","caseSensitive","startsWith","joinPaths","computeScore","paramRe","isSplat","segments","initialScore","filter","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","params","pathnameBase","normalizePathname","paramNames","regexpSource","_","paramName","endsWith","compilePath","matcher","captureGroups","splatValue","decodeURIComponent","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","to","toPathname","routePathnameIndex","toSegments","fromPathname","hash","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","useHref","useInRouterContext","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","useNavigate","routePathnamesJson","activeRef","parse","go","useParams","routeMatch","_renderMatches","parentMatches","reduceRight","React.createElement","Route","_props","Router","_ref3","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","navigationContext","trailingPathname","Routes","_ref4","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","_parsedLocationArg$pa","useRoutes","createRoutesFromChildren","BrowserRouter","historyRef","createBrowserHistory","history","listen","Link","reloadDocument","rest","internalOnClick","replaceProp","navigate","isModifiedEvent","createPath","useLinkClickHandler","_defineProperty","writable","ownKeys","enumerableOnly","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","defineProperties","excluded","sourceKeys","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_setPrototypeOf","_inherits","subClass","superClass","_getPrototypeOf","getPrototypeOf","_typeof","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","Boolean","Super","NewTarget","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","reverse","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","school","team","getStates","itemId","fetch","response","json","getSchools","getSchool","schoolId","getFundraiserDevice","phone","getFundraisers","getFundraiserDetails","fundraiserId","getFundraiserDetailsForDevice","fdid","getFundraisersByPhone","getOrders","SelectLocation","pItemId","pPhone","setItemId","setPhone","states","setStates","temp_ItemId","temp_Phone","product","FundraisersService","className","Breadcrumb","SelectSchool","schools","setSchools","SelectState","fundraisers","setFundraisers","setSchool","teamName","quantity","disablePlus","disableMinus","countBox","flexDirection","justifyContent","alignItems","padding","gap","rel","background","borderRadius","fontSize","decreaseCount","increaseCount","OrderItemOption","increase","decrease","option","activate","isPreviewAvailable","itemOptionTypeId","windowWidthAdjustment","innerWidth","previewButtonStyle","marginTop","objectFit","imgUrl","open","price","qty","_toConsumableArray","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","Manager","_ref","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","unwrapArray","safeInvoke","_len","_key","setRef","fromEntries","acc","useIsomorphicLayoutEffect","getWindow","isElement","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getBoundingClientRect","includeScale","scaleX","scaleY","offsetHeight","offsetWidth","right","bottom","getWindowScroll","win","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","getNodeScroll","clientLeft","clientTop","getLayoutRect","clientRect","offsetLeft","offsetTop","getParentNode","assignedSlot","host","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","userAgent","currentNode","css","perspective","contain","willChange","getContainingBlock","auto","basePlacements","viewport","popper","variationPlacements","placement","placements","modifierPhases","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","debounce","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","mergeByName","enabled","_ref3$options","effect","cleanupFn","noopFn","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_ref2","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","dpr","roundOffsetsByDPR","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","popperOffsets","getOppositePlacement","matched","getOppositeVariationPlacement","parent","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientWidth","clientHeight","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","axis","within","mathMax","mathMin","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","referenceRect","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","initialStyles","property","attribute","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","_loop","fittingPlacement","find","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","NOOP","NOOP_PROMISE","Popper","_ref$placement","_ref$strategy","_ref$modifiers","referenceElement","innerRef","popperElement","setPopperElement","_React$useState2","setArrowElement","_usePopper","prevOptions","optionsWithDefaults","updateStateModifier","popperOptions","newOptions","popperInstanceRef","popperInstance","defaultCreatePopper","usePopper","childrenProps","hide","arrowProps","Reference","refHandler","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","prevState","_proto","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","_this2","appearing","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","config","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","nextState","setNextCallback","_this4","active","handler","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","_this$props","childProps","_objectWithoutPropertiesLoose","TransitionGroupContext","noop","propTypes","globalCssModule","getScrollbarWidth","scrollDiv","scrollbarWidth","setScrollbarWidth","paddingRight","isBodyOverflowing","getOriginalBodyPadding","parseInt","getPropertyValue","conditionallyUpdateScrollbar","fixedContent","bodyPadding","mapToCssModules","cssModule","omit","omitKeys","pick","pickKeys","warned","warnOnce","deprecated","propType","explanation","DOMElement","targetPropType","tagPropType","TransitionTimeouts","Fade","Collapse","Modal","Carousel","Offcanvas","TransitionPropTypeKeys","TransitionStatuses","keyCodes","esc","space","tab","up","down","home","PopperPlacements","canUseDOM","isReactRefObj","toNumber","isBinary","findDOMElements","selection","isArrayOrNodeList","els","getTarget","allElements","defaultToggleEvents","addMultipleEventListeners","_els","_events","useCapture","events","focusableElements","fluid","Container","Tag","containerClass","rowColsPropType","noGutters","xs","sm","xl","xxl","widths","Row","colClasses","colWidth","colSize","isXs","colWidths","stringOrNumberProp","columnProps","getColumnSizeClass","getColumnClasses","columnProp","colSizeInterfix","colClass","Col","modifiedAttributes","light","full","fixed","sticky","role","container","expand","Navbar","getExpandClass","NavbarBrand","NavbarText","NavbarToggler","tabs","pills","vertical","horizontal","justified","navbar","card","Nav","getVerticalClass","NavItem","NavLink","listTag","listClassName","ListTag","label","listClasses","BreadcrumbItem","variant","CloseButton","block","outline","close","Button","ariaLabel","btnOutlineColor","onBlur","onFocus","ButtonToggle","toggled","DropdownContext","a11y","group","isOpen","nav","toggle","inNavbar","setActiveFromChild","menuRole","preventDefaultKeys","Dropdown","addEvents","handleDocumentClick","handleKeyDown","removeEvents","handleMenuRef","containerRef","menuRef","getContextValue","dropup","onMenuRef","handleProps","getContainer","getMenu","getMenuCtrl","_$menuCtrl","getItemType","getMenuItems","menuContainer","menu","clickIsInContainer","clickIsInInput","classList","clickIsInMenu","isTargetMenuItem","isTargetMenuCtrl","isTab","click","$menuitems","charPressed","attrs","subItemIsActive","dropdownItem","ButtonDropdown","ButtonGroup","ButtonToolbar","divider","header","DropdownItem","getTabIndex","getRole","tabIndex","flip","updateOnSelect","directionPositionMap","DropdownMenu","show","position1","position2","poperPlacement","poperModifiers","combinedStyle","tagRef","caret","DropdownToggle","baseClass","baseClassActive","otherProps","transitionProps","AccordionContext","Accordion","accordionContext","defaultOpen","stayOpen","UncontrolledAccordion","setOpen","accordionId","targetId","AccordionHeader","buttonClasses","collapsed","AccordionItem","transitionStatusToClassHash","dimension","getDimension","isAppearing","collapseClass","getTransitionClass","AccordionBody","pill","Badge","inverse","Card","CardGroup","CardDeck","CardColumns","CardBody","CardLink","CardFooter","CardHeader","CardImg","cardImgClassName","CardImgOverlay","CarouselItem","startAnimation","CustomEvent","isIn","slide","isActive","directionClassName","itemClasses","CarouselContext","handleKeyPress","renderItems","hoverStart","hoverEnd","handleTouchStart","handleTouchEnd","touchStartX","touchStartY","activeIndex","indicatorClicked","ride","setInterval","clearInterval","interval","cycleInterval","pause","mouseEnter","mouseLeave","evt","keyboard","previous","enableTouch","currentX","currentY","diffX","carouselItems","item","fade","outerClasses","innerClasses","onMouseEnter","onMouseLeave","controlLeft","controlRight","indicators","wrappedIndicators","onClickHandler","onTouchStart","onTouchEnd","newState","CarouselControl","directionText","anchorClasses","iconClasses","screenReaderClasses","cursor","CarouselIndicators","items","idx","indicatorClasses","caption","CarouselCaption","captionHeader","captionText","controls","autoPlay","defaultActiveIndex","goToIndex","UncontrolledCarousel","animating","nextIndex","newIndex","slides","altText","CardSubtitle","CardText","CardTitle","popperClassName","placementPrefix","arrowClassName","hideArrow","boundariesElement","onClosed","PopperContent","setTargetNode","getTargetNode","getRef","_element","childNodes","targetNode","getContainerNode","renderChildren","_arrowClassName","_popperClassName","modifierNames","baseModifiers","extendedModifiers","popperTransition","ReactPopper","popperPlacement","PopperTargetHelper","popperManager","innerClassName","autohide","trigger","DEFAULT_DELAYS","isInDOMSubtree","subtreeRoot","isInDOMSubtrees","subtreeRoots","subTreeRoot","TooltipPopoverWrapper","_targets","currentTargetElement","addTargetEvents","removeTargetEvents","showWithDelay","hideWithDelay","onMouseOverTooltipContent","onMouseLeaveTooltipContent","onEscKeyDown","_isMounted","updateTarget","clearShowTimeout","clearHideTimeout","_hideTimeout","_showTimeout","getDelay","_popover","getCurrentTarget","parentElement","composedPath","triggers","addEventOnTargets","isBubble","removeEventOnTargets","newTarget","popperClasses","onMouseOver","onKeyDown","Popover","UncontrolledPopover","PopoverHeader","PopoverBody","bar","multi","animated","striped","barClassName","barStyle","barAriaValueText","barAriaLabelledBy","Progress","percent","progressClasses","progressBarProps","Portal","defaultNode","FadePropTypes","centered","fullscreen","scrollable","labelledBy","backdrop","onOpened","wrapClassName","modalClassName","backdropClassName","contentClassName","external","backdropTransition","modalTransition","unmountOnClose","returnFocusAfterClose","trapFocus","propsToOmit","_originalBodyPadding","_originalBodyOverflow","getFocusableChildren","handleBackdropClick","handleBackdropMouseDown","handleEscape","handleStaticBackdropAnimation","handleTab","manageFocusAfterClose","clearBackdropAnimationTimeout","showStaticBackdropAnimation","init","setFocus","ev","_dialog","modalIndex","openCount","getFocusedChild","currentFocus","focusableChildren","_mouseDownElement","totalFocusable","focusedIndex","_backdropAnimationTimeout","_triggeringElement","_mountContainer","modalOpenClassName","modalOpenClassNameRegex","renderModalDialog","dialogBaseClass","isModalHidden","modalAttributes","onMouseDown","onKeyUp","hasTransition","Backdrop","wrapTag","closeAriaLabel","ModalHeader","closeButton","WrapTag","ModalBody","ModalFooter","Tooltip","bordered","borderless","hover","responsive","responsiveTag","Table","ResponsiveTag","responsiveClassName","numbered","ListGroup","getHorizontalClass","inline","Form","submit","valid","tooltip","FormFeedback","validMode","switch","floating","FormGroup","switchProp","formCheck","FormText","bsSize","invalid","plaintext","addon","Input","checkInput","isNotaNumber","selectInput","rangeInput","formControlClass","InputGroup","InputGroupText","hidden","Label","htmlFor","colFormLabel","formLabel","heading","middle","Media","defaultTag","media","offcanvasTransition","offcanvasIndex","_backdrop","isOffcanvasHidden","offcanvasAttributes","visibility","OffcanvasBody","OffcanvasHeader","Pagination","PaginationItem","first","PaginationLink","defaultAriaLabel","defaultCaret","TabContext","activeTab","TabContent","activeTabId","tabId","TabPane","getClasses","closeClassName","Alert","closeClasses","alertTransition","Toast","toastTransition","ToastBody","icon","ToastHeader","tagClassName","iconProp","xmlns","preserveAspectRatio","focusable","handleDisabledOnClick","ListGroupItem","ListGroupItemHeading","ListGroupItemText","List","ListInlineItem","UncontrolledButtonDropdown","toggler","toggleEvents","UncontrolledCollapse","togglers","removeEventListeners","UncontrolledDropdown","onToggle","UncontrolledTooltip","Spinner","Placeholder","PlaceholderButton","createEvent","initCustomEvent","OrderItemModal","contents","modalStatus","deactivate","OrderItem","incCount","decCount","itemImage","modalUrl","setModalUrl","setModalStatus","activateModal","changeImage","pictureFit","messageTextName","fundraiserOrderItemOptions","thisArg","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isNumber","isPlainObject","val","isDate","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","getOwnPropertyNames","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","reducedDescriptors","isFormData","isArrayBufferView","isBoolean","isStream","pipe","merge","assignValue","stripBOM","content","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","searchString","lastIndex","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","p1","p2","toFiniteNumber","Number","isFinite","AxiosError","captureStackTrace","utils","toJSON","description","fileName","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","token","predicates","formData","envFormData","metaTokens","indexes","visitor","defaultVisitor","useBlob","Blob","append","convertValue","toISOString","isFlatArray","exposedHelpers","build","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","hashmarkIndex","serializerParams","InterceptorManager","handlers","fulfilled","rejected","synchronous","runWhen","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isStandardBrowserEnv","isBrowser","protocols","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","platform","expires","domain","secure","cookie","toGMTString","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","originURL","msie","urlParsingNode","resolveURL","protocol","hostname","port","requestURL","parsed","CanceledError","__CANCEL__","ignoreDuplicateOf","$internals","$defaults","normalizeHeader","normalizeValue","matchHeaderValue","findKey","AxiosHeaders","headers","defaults","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","parser","tokens","tokensRE","parseTokens","deleted","deleteHeader","normalize","format","normalized","formatHeader","rawHeaders","parseHeaders","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","samplesCount","firstSampleTS","timestamps","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","total","lengthComputable","progressBytes","rate","progress","estimated","xhrAdapter","onCanceled","requestData","requestHeaders","responseType","cancelToken","unsubscribe","signal","setContentType","XMLHttpRequest","auth","username","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","validateStatus","settle","responseText","statusText","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ontimeout","timeoutErrorMessage","transitional","transitionalDefaults","xsrfValue","withCredentials","isURLSameOrigin","xsrfCookieName","cookies","xsrfHeaderName","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","subscribe","aborted","parseProtocol","send","adapters","http","httpAdapter","xhr","nameOrAdapter","adapter","DEFAULT_CONTENT_TYPE","getDefaultAdapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","helpers","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","maxContentLength","maxBodyLength","common","transformData","fns","isCancel","throwIfCancellationRequested","throwIfRequested","dispatchRequest","reason","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","boolean","defaultHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","axios","createInstance","defaultConfig","Cancel","spread","isAxiosError","formToJSON","OrdersService","fundraiser","fundraiserDevice","CreateOrder","TestProcess","ProcessOrder","ProcessOrderCashCheck","NewOrderWithFDID","newOrder","NewFundraiserDevice","getFundraiserOrder","orderId","getOrder","getFundraisersForDevice","getMyFundraiser","fundraiserDeviceGuid","getQrCode","getItems","incrementShareClicks","incrementPageVisits","GiftFormSelect","onChange","calculateDonation","choices","isCustom","customDonation","setIsCustom","setCustomDonation","getDonationValue","updateTotal","donation","isDonate","placeholder","Order","cashcheck","setOrder","studentFirstName","setStudentFirstName","studentLastName","setStudentLastName","fundraiserDeviceId","setFundraiserDeviceId","isGive","setIsDonate","hasShipping","setHasShipping","setIsActive","hasRecordedVisit","setHasRecordedVisit","updateOrderTotal","_total","grandTotal","fundraiserOrderItems","parseFloat","orderTotal","visitedGuids","sessionStorage","getItem","setItem","FundraiserDeviceId","roundToHundredth","placeMaker","toFixed","onSubmit","alert","noValidate","setcustomvalidity","required","BillingAddressForm","DeliveryAddressForm","OrderedTable","paymentType","totalShippingCost","shippingCost","totalWithShipping","convenienceFee","finalTotal","itemOption","colSpan","stateLookup","isSubmitting","setIsSubmitting","sameAddress","setSameAddress","orderRef","enforceValidation","forms","checkValidity","scrollTo","saveOrderDetails","supporterFirstName","firstName","supporterLastName","lastName","shippingAddress","address","shippingAddress2","address2","shippingCity","city","shippingState","shippingZip","zip","deliveryfirstName","deliverylastName","deliveryaddress","deliveryaddress2","deliverycity","deliverystate","deliveryzip","supporterPhoneNumber","donorEmail","saveBillingDetails","payment","amount","address1","getCreditCardToken","holderName","cardNumber","cvv","expiryMonth","expiryYear","raw","requestOptions","Headers","redirect","gatewayUrl","getElementById","finishSubmit","errors","liElement","field","errorMessage","logMessage","res","appSiteUrl","retUrl","level","testMode","paymentMethod","setPaymentMethod","checkNumber","setCheckNumber","handlePaymentMethodChange","paymentTypeId","getTeam","teamId","getTicketFundraiser","itemsOptionId","getTicket","ticketPurchaseSessionGuid","getTicketPurchases","ticketPurchaseGuid","shareTicketPurchase","phoneNumber","getFundraisersTicket","addPhone","success","redeemLink","checkSession","getSecurityStatus","getSession","getOffers","getTicketOfferDetails","ticketOfferId","redeemTicketPurchaseOffer","ConfirmationModal","ticketOffer","modal","purchaseGuid","isExhausted","setIsExhausted","TicketsService","vendorOffer","photoUrl2","TicketRedemption","modalsOpen","setModalsOpen","setTicketOffer","setPurchaseGuid","checkIfExhausted","isExpended","ticketQty","ticketPurchaseOfferRedemptions","onLoad","PurchaseGuid","tryOpen","photoUrl","vendor","guid","UpdateOptInStatus","optInStatusDTO","myFundraiser","setMyFundraiser","showButton","setShowButton","isOptedIn","setIsOptedIn","showOptInSection","setShowOptInSection","showConfirmationModal","setShowConfirmationModal","isUpdatingOptIn","setIsUpdatingOptIn","isLoading","setIsLoading","setShareStatuses","shouldShowButton","fundraiserItems","itemsOptions","finally","getMessage","itemText","formattedEndDate","endDate","toLocaleDateString","retValue","addShareStatus","timestamp","toLocaleTimeString","validateStudentInfo","StudentFirstName","StudentLastName","updateOptInStatus","StudentsService","handleDeclineClick","minHeight","border","borderColor","marginBottom","paddingTop","ordersQty","ordersTotal","ticket","ticketGuid","share","shareData","orders","donor","ordersItems","OptInModal","Fundraisers","fundraiserDevices","setFundraiserDevices","currentFundraiserDevice","setCurrentFundraiserDevice","showOptInModal","setShowOptInModal","device","OfferItem","offer","IsInactive","forcedDisable","ticket_qty","offerTypeId","symbolDec","maxHeight","maxWidth","inactiveItem","backgroundColor","linkedItem","TicketUserBottomNav","primaryColor","secondaryColor","logoUrl","otherPurchases","viewBox","clipboard","offers","fillRule","links","Name","URL","findParentContainer","parentContainer","firstElementChild","paddingLeft","paddingBottom","sessionGuid","callbackFetch","getCurrentSession","currentSession","checkForSecurity","redirectInactive","paramsGuid","newPath","lastIndexOf","isTicket","isSession","allowAll","sample","inactive","useWebAppManifest","staticManifestLinks","manifestLink","UserOffers","setTicketGuid","setOffers","setShow","fetchOffers","fId","textAlign","validOffers","invalidOffers","validOfferItems","invalidOfferItems","TicketPurchase","tp","shareMessage","setShareMessage","rootUrl","origin","ticketLink","ticketPurchaseSessions","phoneRef","writeText","tps","keyActivatedAt","handleShareTicketPurchase","UserTicketManager","ticketPurchases","setTicketPurchases","setError","loading","setLoading","setOrderId","extractTeamStyling","primaryColorHex","secondaryColorHex","useBackgroundImage","useBackgroundPhoto","backgroundImage","backgroundPhotoUrl","getTicketUserBottomNavProps","getBackgroundStyle","backgroundRepeat","backgroundSize","backgroundPosition","UserTeam","setTicket","ticketPurchase","setTicketPurchase","fetchTicket","backgroundStyle","teamLink2Url","teamLink2Name","teamLink3Url","teamLink3Name","teamLink1Url","teamLink1Name","Collage","images","image","imgElement","naturalWidth","naturalHeight","scaleFactor","alignContent","flexWrap","UserTicket","schoolName","headerText","urlArray","photoUrl3","photoUrl4","photoUrl5","getImages","API_ENDPOINT","createBucket","bucketName","uploadFile","file","getAvailableVendorOffers","filterState","currentTicket","getThisVendorsOffers","vendorId","ticketId","getBaseUrl","getTicketByFundraiser","getTickets","getVendor","getVendorOffer","vendorOfferId","getVendorOffers","getVendors","saveVendor","saveVendorOffer","saveTicket","createComplimentaryTicket","getCurrentComplimentaryTickets","revokeComplimentaryTicket","ticketPurchaseId","revokeAllComplimentaryTickets","saveTeam","deleteTicket","Team","setTeam","AdminService","imgFile","link1","link2","link3","accept","UserRequestLink","setPhoneNumber","validNumber","setValidNumber","validRequest","setValidRequest","redirectIfActive","phoneNumberDigits","inputValue","UserRequestLinkConfirmation","UserLinkRedemption","deactivated","handleSubmit","fetchBaseURL","NavMenu","toggleNavbar","Layout","App","AppRoutes","sourceSymbolKeys","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","baseUrl","rootElement","serviceWorker","ready","registration","unregister","reportWebVitals"],"sourceRoot":""}