{"version":3,"sources":["pages/ParticipantsListingPage/ParticipantsListingPage.module.css","App/App.module.css","pages/AuctionStatusPage/AuctionStatusPage.module.css","pages/AuctionSummaryReportPage/AuctionSummaryReportPage.module.css","pages/AuctionCarouselSetup/AuctionItemsTable.module.css","pages/EventGroupMaintenancePage/EventGroupMaintenance.module.css","pages/EventPurchaserLinkPage/EventPurchaserLinkTable.module.css","pages/EventGuestLinkPage/EventGuestLinkTable.module.css","pages/EventGuestInformation/EventGuestInformation.module.css","pages/GenericForm/GenericForm.module.css","pages/EventItemsPage/EventItemsTable.module.css","pages/EventPage/EventPage.module.css","pages/EventSettingsForm/EventSettingsForm.module.css","slices/authSlice.ts","components/common/LoadingBackdrop.tsx","components/common/AuthGuard.tsx","slices/eventSlice.ts","slices/orgSlice.ts","icons/AuctionSnap.png","icons/Logo.tsx","components/common/Layout/Header/Header.tsx","util/classnames.ts","components/common/Layout/MainMenu/MainMenu.tsx","slices/evtSlice.ts","components/common/Layout/Layout.tsx","queries/useActionItemsFetch.ts","components/common/HookForm.tsx","pages/AuthPage/AuthPage.tsx","components/common/inputs/SelectInput/SelectInput.tsx","components/common/inputs/Switch/Switch.tsx","components/common/inputs/TextInput/TextInput.tsx","mutations/useCreateEventItem.ts","queries/events/useFetchLocationTags.ts","components/common/inputs/MaskedInput/MaskedInput.tsx","components/common/inputs/MaskedInput/CustomMaskedInput.tsx","pages/AuctionItemsPage/AuctionItemsTable/AuctionItemsForm.tsx","queries/events/useFetchEventSettings.ts","queries/useAutoEvent.ts","pages/AuctionItemsPage/AuctionItemsTable/AuctionItemsTable.tsx","pages/AuctionItemsPage/AuctionItemsPage.tsx","queries/useEventItemsFetch.ts","pages/EventItemsPage/EventItemsForm.tsx","util/formatHelpers.ts","pages/EventItemsPage/EventItemsTable.tsx","pages/FlexMonsterPage/FlexMonsterPage.tsx","queries/useResetPassword.ts","util/formValidation.ts","components/common/Alerts.tsx","pages/AuthPage/ForgotPasswordForm/ForgotPasswordForm.tsx","pages/AuthPage/LoginForm/useLoginMutation.ts","pages/AuthPage/LoginForm/LoginForm.tsx","pages/AuthPage/ResetPasswordForm/ResetPasswordForm.tsx","queries/events/useFetchEventMessages.ts","pages/CustomMessagesPage/CustomMessagesPage.tsx","mutations/useCustomMessagesMutation.ts","queries/useFetchAuctionInfo.ts","pages/AuctionPage/AuctionPage.tsx","queries/events/useFetchEvtSettings.ts","queries/useAutoEvt.ts","pages/EventPage/EventPage.tsx","components/common/inputs/CheckboxGroup/CheckboxGroup.tsx","components/common/inputs/DateTimeInput.tsx","pages/AuctionSettingsForm/useEditEventSettings.ts","pages/OrgSettingsPage/useFetchOrgSettings.ts","pages/AuctionSettingsForm/AuctionSettingsForm.tsx","pages/EventSettingsForm/EventSettingsForm.tsx","pages/EventSettingsForm/useEditEventSettings.ts","components/common/inputs/RTEInsertTool/RTEInsertTool.tsx","pages/CheckoutPage/CheckoutPage.tsx","pages/EventEmailCustomization/EventEmailCustomization.tsx","pages/EventMassEmail/EmailReviewForm/MassEmailReview.tsx","pages/EventMassEmail/EmailRecipients/EmailRecipients.tsx","pages/EventMassEmail/EmailBody/EmailBody.tsx","pages/EventMassEmail/EmailReview/EmailReview.tsx","pages/EventMassEmail/EventMassEmailMaintenanceTable.tsx","components/common/ConfirmModal.tsx","queries/events/useFetchSponsors.ts","pages/SponsorsForm/useSponsorsMutation.ts","pages/SponsorsForm/SponsorsForm.tsx","pages/EventSponsors/EventSponsors.tsx","components/common/ViewList/ViewList.tsx","queries/events/useFetchEvents.ts","AppConfig.ts","pages/HomePage/HomePage.tsx","pages/TermsPage/TermsPage.tsx","pages/TermsPage/useTermsMutation.ts","pages/LocationsTagsPage/TagsTable/TagsForm.tsx","pages/LocationsTagsPage/TagsTable/useCreateTag.ts","mutations/useLocationTags.ts","pages/LocationsTagsPage/TagsTable/TagsTable.tsx","pages/LocationsTagsPage/LocationsTable/LocationsForm.tsx","pages/LocationsTagsPage/LocationsTable/useCreateLocation.ts","pages/LocationsTagsPage/LocationsTable/LocationsTable.tsx","queries/useParticipantTitles.ts","pages/LocationsTagsPage/DonationTable/DonationForm.tsx","pages/LocationsTagsPage/DonationTable/useCreateDonation.ts","pages/LocationsTagsPage/DonationTable/DonationTable.tsx","pages/LocationsTagsPage/AccountingCode/AccountingCodeForm.tsx","pages/LocationsTagsPage/AccountingCode/useCreateAccountingCode.ts","pages/LocationsTagsPage/AccountingCode/AccountingCode.tsx","pages/LocationsTagsPage/ParticipantUDTitles/ParticipantUDTitle.tsx","pages/LocationsTagsPage/ParticipantUDTitles/useUpdateUDTitles.ts","pages/LocationsTagsPage/ParticipantUDTitles/ParticipantUDTitleTable.tsx","pages/LocationsTagsPage/LocationsTagsPage.tsx","components/common/inputs/AutoCompleteSelectInput/AutocompleteSelect.tsx","queries/useManualBid.ts","pages/ManualBidEntryPage/BidForm.tsx","pages/ManualBidEntryPage/ManualBidEntryPage.tsx","queries/useUsers.ts","mutations/useUser.ts","pages/OrgSettingsPage/UsersTable/UserForm.tsx","pages/OrgSettingsPage/UsersTable/UsersTable.tsx","pages/OrgSettingsPage/useFetchOrgSettingsTwilio.ts","pages/OrgSettingsPage/useFetchOrgSettingsGEM.ts","pages/OrgSettingsPage/StripeForm.tsx","pages/OrgSettingsPage/OrgSettingsPage.tsx","mutations/useOrgSettings.ts","pages/ParticipantsPage/ParticipantsForm/useCreateParticipant.ts","pages/ParticipantsPage/ParticipantsForm/ParticipantsForm.tsx","pages/ParticipantsPage/useFetchParticipants.ts","pages/ParticipantsPage/ParticipantsPage.tsx","queries/useParticipantLinking.ts","pages/ParticipantsListingPage/ParticipantsListingPage.tsx","pages/ParticipantMergePage/ParticipantMergePage.tsx","components/common/inputs/SearchBar.tsx","pages/ParticipantLinkingPage/ParticipantLinkingPage.tsx","pages/ParticipantsPage/ImportPage/useImportParticipants.ts","pages/ParticipantsPage/ImportPage/ImportPage.tsx","util/HttpInterceptor.tsx","App/store.ts","queries/useFetchBidMaintenance.ts","pages/BidMaintenancePage/BidMaintenancePage.tsx","queries/useFetchAuctionStatus.ts","pages/AuctionStatusPage/AuctionStatusPage.tsx","pages/LiveAuctionPage/LiveAuctionPage.tsx","util/logger.ts","queries/useFetchCheckoutDetail.ts","pages/CheckoutPage/CheckoutForm/AddItemForm.tsx","pages/CheckoutPage/CheckoutForm/CheckoutForm.tsx","queries/useFetchCheckout.ts","pages/CheckoutPage/CheckoutOrdersGrid/CheckoutOrdersGrid.tsx","pages/CheckoutPage/CheckoutAllPage.tsx","pages/CheckoutPage/CheckoutForm/CheckoutAllForm.tsx","pages/CheckoutPage/CheckoutMainPage.tsx","queries/useFetchReportCheckout.ts","pages/AuctionSummaryReportPage/AuctionSummaryReportPage.tsx","pages/AdminAuthPage/AdminAuthPage.tsx","queries/useFetchBroadcastTextMessages.ts","pages/BroadcastMessagePage/BroadcastMessagePage.tsx","pages/BroadcastMessagePage/useBroadcastMessage.ts","pages/ForceRefreshPage/ForceRefreshPage.tsx","pages/ForceRefreshPage/useForceRefresh.ts","pages/TransferPage/DonationPage.tsx","pages/TransferPage/TransferPage.tsx","pages/EventTransferPage/EventTransferPage.tsx","queries/useEventUserDefinedFetch.ts","pages/EventUserDefinedPage/EventValueForm.tsx","pages/EventUserDefinedPage/EventUserDefinedForm.tsx","pages/EventUserDefinedPage/EventUserDefinedTable.tsx","queries/events/useEventTransactionFetch.ts","pages/EventTransactionsPage/EventValueForm.tsx","pages/EventTransactionsPage/TransactionDetailForm.tsx","pages/EventTransactionsPage/EventAddCheckoutForm.tsx","pages/EventTransactionsPage/EventCheckoutForm.tsx","pages/GenericForm/GenericForm.tsx","pages/EventTransactionsPage/EventCheckoutReview.tsx","pages/EventTransactionsPage/EventTransactionsTable.tsx","queries/events/useEventTicketsFetch.ts","pages/EventTicketsPage/EventTicketsTable.tsx","queries/events/useEventDiscountCodesFetch.ts","pages/EventDiscountCodesPage/EventDiscountCodesForm.tsx","pages/EventDiscountCodesPage/EventDiscountCodesTable.tsx","pages/EventGuestMaintenancePage/GuestForm.tsx","pages/EventGuestMaintenancePage/EventGuestMaintenanceTable.tsx","pages/AuctionCarouselSetup/AuctionCarouselSetup.tsx","pages/EventGroupMaintenancePage/ListItem.tsx","pages/EventGroupMaintenancePage/List.tsx","pages/EventGroupMaintenancePage/DroppableList.tsx","App/App.tsx","pages/EventGroupMaintenancePage/DropableListItem.tsx","pages/EventGroupMaintenancePage/EventGroupMaintenance.tsx","pages/EventTransferPage/EventDonationPage.tsx","pages/EventPurchaserLinkPage/EventPurchaserLinkTable.tsx","pages/EventPurchaserLinkingPage/EventPurchaserLinkingPage.tsx","queries/events/useFetchPurchaserLink.ts","queries/events/useFetchGuestLink.ts","pages/EventGuestLinkPage/EventGuestLinkTable.tsx","pages/EventGuestLinkingPage/EventGuestLinkingPage.tsx","pages/EventNameTagsPage/EventNameTagsPage.tsx","pages/EventGroupListingPage/EventGroupListingPage.tsx","pages/EventCheckInPage/RegisterForm.tsx","pages/EventCheckInPage/EventCheckInPage.tsx","pages/EventGuestInformation/EventGuestInformation.tsx","queries/useAutoAuth.ts","index.tsx","pages/AuctionPage/AuctionPage.module.css","pages/BroadcastMessagePage/BroadcastMessagePage.module.css","pages/EventDiscountCodesPage/EventDiscountCodesTable.module.css","components/common/inputs/MaskedInput/MaskedInput.module.css","pages/OrgSettingsPage/OrgSettingsPage.module.css","pages/EventUserDefinedPage/EventUserDefinedTable.module.css","pages/CheckoutPage/CheckoutForm/CheckoutForm.module.css","pages/ParticipantsPage/ImportPage/ImportPage.module.css","pages/ManualBidEntryPage/ManualBidEntryPage.module.css","components/common/inputs/SelectInput/SelectInput.module.css","pages/HomePage/HomePage.module.css","pages/CheckoutPage/CheckoutPage.module.css","pages/SponsorsForm/SponsorsForm.module.css","components/common/ViewList/ViewList.module.css","pages/ForceRefreshPage/ForceRefreshPage.module.css","pages/CustomMessagesPage/CustomMessagesPage.module.css","pages/CheckoutPage/CheckoutForm/CheckoutAllForm.module.css","pages/OrgSettingsPage/UsersTable/UsersTable.module.css","components/common/inputs/TextInput/TextInput.module.css","components/common/Layout/Header/Header.module.css","components/common/Layout/MainMenu/MainMenu.module.css","pages/LocationsTagsPage/TagsTable/TagsTable.module.css","pages/LocationsTagsPage/LocationsTable/LocationsTable.module.css","pages/LocationsTagsPage/DonationTable/DonationTable.module.css","pages/LocationsTagsPage/AccountingCode/AccountingCode.module.css","pages/LocationsTagsPage/LocationsTagsPage.module.css","pages/ParticipantsPage/ParticipantsPage.module.css","pages/EventNameTagsPage/EventNameTagsPage.module.css","pages/EventTransactionsPage/EventTransactionsTable.module.css","pages/LocationsTagsPage/ParticipantUDTitles/ParticipantUDTitle.module.css","pages/EventSponsors/EventSponsors.module.css","pages/EventGroupListingPage/EventGroupListingPage.module.css","components/common/inputs/Switch/Switch.module.css","pages/AuthPage/AuthPage.module.css","pages/AuthPage/ForgotPasswordForm/ForgotPasswordForm.module.css","pages/AuthPage/LoginForm/LoginForm.module.css","pages/AuthPage/ResetPasswordForm/ResetPasswordForm.module.css","pages/EventGuestMaintenancePage/EventGuestMaintenance.module.css","pages/EventMassEmail/EventMassEmailMaintenanceTable.module.css","pages/TermsPage/TermsPage.module.css","pages/OrgSettingsPage/StripeForm.module.css","pages/ParticipantsPage/ParticipantsForm/ParticipantsForm.module.css","pages/BidMaintenancePage/BidMaintenancePage.module.css","pages/AdminAuthPage/AuthPage.module.css","pages/EventTicketsPage/EventTicketsTable.module.css","pages/EventCheckInPage/EventCheckInPage.module.css","pages/AuctionItemsPage/AuctionItemsTable/AuctionItemsTable.module.css","pages/AuctionSettingsForm/AuctionSettingsForm.module.css","pages/TransferPage/TransferPage.module.css","pages/EventTransferPage/EventTransferPage.module.css","pages/AuctionItemsPage/AuctionItemsPage.module.css","pages/FlexMonsterPage/FlexMonsterPage.module.css"],"names":["module","exports","initialState","currentUser","token","isLoggedIn","resetPasswordKey","alloweventrefresh","terms","authSlice","createSlice","name","reducers","updateUser","state","payload","setCurrentUser","Object","assign","loginUser","logout","localStorage","removeItem","setResetPasswordKey","setAllowEventRefresh","setTerms","setToken","actions","useAuthState","useSelector","auth","useAuthToken","LoadingBackdrop","open","Backdrop","style","zIndex","onClick","CircularProgress","color","size","AuthGuard","children","eventSlice","eventId","eventName","eventCode","eventStart","eventEnd","bidStart","bidEnd","allowpaymentoffees","ccfee","eventUrl","auctionUrl","setEvent","setAuctionURL","setEventURL","useEventState","event","orgSlice","message","isdonorsnapcustomer","twilio","setOrg","useOrgState","org","Logo","props","src","myLogo","alt","Header","showMenu","isOpen","popupState","setIsOpen","usePopupState","variant","popupId","history","useHistory","dispatch","useDispatch","AppBar","position","className","cn","styles","appBar","shift","Toolbar","toolbar","push","classes","root","menuButton","fontSize","logoWrapper","to","display","alignItems","bindTrigger","Avatar","avatar","IconButton","ChevronRight","arrow","Menu","bindMenu","top","MenuItem","marginRight","args","filter","arg","Boolean","join","MainMenu","pathname","useLocation","eventState","MENU_ITEMS","label","linkTo","Icon","SettingsIcon","BurstIcon","WebIcon","LocationIcon","GavelIcon","PeopleIcon","AddShoppingCartIcon","RemoveShoppingCartIcon","ShoppingCartIcon","SupervisedUserCircleIcon","GroupAddIcon","OpenInNewIcon","initialMenuState","reduce","currentItem","useState","isListOpen","setIsListOpen","Drawer","paper","drawerPaper","close","toolbarIcon","c","Divider","ClickAwayListener","onClickAway","List","list","getMenuItems","items","isSubMenu","map","i","ListItem","button","selected","nested","ListItemIcon","opacity","height","width","ListItemText","primary","link","truncate","ExpandLess","ExpandMore","Collapse","in","timeout","unmountOnExit","component","disablePadding","evtSlice","billme","setEvt","setEvtUrl","useEvtState","evt","Layout","orgState","evtState","title","showOrgTitle","showEventUrl","useEffect","Box","flexDirection","marginTop","gridColumn","justifyItems","left","backArrowLocation","backArrowLocationValue","edge","ArrowBack","showBackArrow","backArrowToAuction","backArrowToEvent","goBack","showArrow","PagePathTypes","home","justifyContent","alignSelf","justifySelf","fontWeight","showAuctionUrl","href","target","marginLeft","right","showSettings","settings","Settings","flexGrow","padding","auctionItemsDefaults","itemid","itemnumber","shortdesc","longdesc","locationid","taglistids","liveauctiononly","onsitesaleitem","allowautobid","donatedby","donatedbyemail","donationtypeid","fairmarketvalue","startingbid","minimumraise","buyitnowprice","buyitnowonly","quantityunlimited","quantity","imageloaded","logo","logourl","pickupinstructions","active","itemtype","itemorder","liveauctionDefault","LiveAuctionitemlist","lastbid","biddername","biddernumber","biddersource","historyid","livebidemailsent","livebidcheckedout","livebidconfirmed","bidderparticipantid","bidderlist","rownumber","globalAuctionItemsFetcher","body","a","axios","post","data","parsedData","JSON","parse","jsonString","eventitems","globalLiveAuctionItemsFetcher","HookForm","AuthPageSubPaths","methods","onSubmit","formProps","handleSubmit","SelectInput","options","defaultValue","rules","required","disabled","includeNone","includeAll","textFieldProps","onHandleChange","tooltipText","useFormContext","control","formState","useController","field","inputProps","ref","errors","TextField","select","onChange","console","log","error","FormHelperTextProps","InputProps","input","focused","focus","InputLabelProps","shrink","helperText","value","listItem","cat","Switch","switchProps","checked","switchBase","track","StyledMUIInput","startAdornment","InputAdornment","endAdornment","maxLength","TextInput","useCreateEventItem","queryClient","useQueryClient","useMutation","put","onSuccess","invalidateQueries","globalLocationTagsFetcher","eventIdvalue","json","stringify","eventid","Number","headers","useFetchLocationTags","useQuery","staleTime","placeholderData","locations","tags","donationtype","accountingcode","keepPreviousData","MaskedInput","format","mask","placeholder","prefix","onValueChange","thousandsGroupStyle","thousandSeparator","customInput","allowNegative","thousandGroupStyle","CustomMaskedInput","textContainer","AuctionItemsForm","gridParams","reloadForm","formMethods","useForm","setValue","watch","getValues","setError","clearErrors","reset","setFocus","setTags","locationAndTags","quantityValue","setQuantityValue","fairMarketValue","setFairMarketValue","startingBidValue","setStartingBidValue","buyItNowValue","setbuyItNowValue","buyItNowValueOnlineAuction","setbuyItNowValueOnlineAuction","buyItNowValueOnlineOnly","setbuyItNowValueOnlineOnly","minimumRaiseValue","setMinimumRaiseValue","React","tagSelection","setTagSelection","dialogMsg","setDialogMsg","watchLogo","allowautobidWatch","watchLogoData","toggleItemType","setToggleItemType","setAllowAutoBidValue","qtyUnlimited","MenuProps","PaperProps","maxHeight","ITEM_HEIGHT","handleQuantityChange","maxQty","handleFairmarketChange","floatValue","handleStartingBidChange","handleBuyItNowChangeOnlineAuction","type","handleMinimumRaiseChange","selectedTags","selectedTagsNames","forEach","tagId","tagToAdd","find","tag","id","location","accountingcodeid","buyItNowChangeOnlineOnly","maxpurchasequantity","logoremoved","useMemo","e","locationOptions","donationnTypes","accountingTypes","createMutation","tagsToSave","item","locs","finalData","localItemType","buyItNowVal","mutateAsync","length","toString","response","parsedResponse","status","onLogoDrop","files","maxSize","maxWidthOrHeight","useWebWorker","imageCompression","compressedFile","fileReader","FileReader","onload","result","split","readAsDataURL","Dialog","maxWidth","dialog","DialogTitle","isLoading","DialogContent","DialogContentText","DialogActions","Button","itemsForm","multiline","rows","rowsMax","dtRows","types","donationTypeOptions","accountingCodeOptions","FormControl","InputLabel","Select","labelId","multiple","values","v","OutlinedInput","renderValue","Checkbox","indexOf","ToggleButtonGroup","exclusive","newAlignment","loc","ToggleButton","singleContainer","FormControlLabel","labelPlacement","buyItNowContainer","validate","val","Typography","formContainer","Grid","container","spacing","xs","selectcontrol","Close","onDrop","getRootProps","getInputProps","isDragActive","isDragAccept","isDragReject","acceptedFiles","fileRejections","dropzoneselect","dropzoneinvalid","dropzone","submitButton","form","defaultEventSettings","code","start","end","bidstart","bidend","timezone","allowcustomlocations","allowbillme","allowbuyitnow","allowbidanonymously","allowautobidincrement","approvalofbidders","allowcreditcards","allowtexting","allowguestentry","startbiddernum","receipttemplateid","eventbiddingopen","eventbiddingclosed","textprefix","eventprivacy","eventshowbidderpaddlenumber","eventusepaddlenumber","eventspaymentprocessorisreadonly","timezonelist","receipttemplatelist","paymentprocessorlist","eventspaymentprocessorkey","globalEventSettingsFetcher","useFetchEventSettings","enabled","useAutoEvent","then","newState","AuctionItemsTable","useParams","eventiDvalue","eventItemCreate","setGridParams","rowOrdering","setRowOrdering","msg","dialogObj","setDialogObj","setReloadForm","updateItemOrder","useUpdateItemOrder","isFormShowing","setIsFormShowing","donationTypes","handleDeleteConfirm","finaldata","deleteDialog","closeDialog","canDelete","Date","columns","disableExport","renderHeader","Add","sortable","renderCell","params","ai","handleEdit","Edit","hide","headerName","minWidth","align","headerAlign","editable","valueFormatter","auctionTypeId","tagsArray","stringDisplay","x","cTag","findTag","getTagsDisplayString","row","getValue","handleDelete","Delete","ReOrderToggle","itemListingOrder","order","mutate","getUnfilteredRows","apiRef","gridSortedRowIdsSelector","DataGridPremium","autoHeight","rowReordering","onRowOrderChange","newRows","initialIndex","newIndex","rowsClone","splice","updateRowPosition","oldIndex","targetIndex","components","useGridApiContext","buttonBaseProps","startIcon","GridToolbarContainer","direction","getRowsToExport","allColumns","current","exportDataAsCsv","componentsProps","csvOptions","AuctionItemsPage","globalEventItemsFetcher","useCreateEvtItem","EventItemsForm","itemrows","priceValue","setPriceValue","maxQtyPerTransChange","setMaxQtyPerTransChange","loading","setLoading","itemtypeidWatch","activeTicketType","setActiveTicketTyp","itemGroupQuantity","setItemGroupQuantity","activeValue","setActiveValue","registationValue","setRegistrationValue","onlyGroupAvailableValue","setOnlyGroupAvailableValue","stopSalesValue","setStopSalesValue","nonDeductableAmount","setNonDeductableAmount","tickettype","dropdownData","setDropdownData","getEventDropdowns","tixType","ticketT","responseType","itemprice","itemquantity","itemgroupquantity","itemmaxquantitypertransaction","itemlinktoregistration","itemonlygroupavailable","itemstopselling","itemnondeductibleamount","itemitemid","itemname","itemdescription","itemtypeid","itemdonationtypeid","itemaccountcodeid","itemquantityunlimited","itemwaiverrequired","itemwaiverurl","itemstopsellingdate","delete","bodyData","handlePriceChange","handleNonDeductableAmountChange","handleMaxQtyPerTransChange","handleActiveChange","handleStopSalesChange","fullWidth","ticketTypeOptions","twoControlContainer","linkedTickets","linkedTicketTypeOptions","formatter","Intl","NumberFormat","currency","formatMoney","num","eventItemsDefaults","itemquantityavailable","itemquantitysold","EventItemsTable","itemcandelete","FlexMonsterPage","componentFolder","report","passwordResetEmail","emailAddress","customerid","email","passwordResetWithToken","password","emailRegex","phoneRegex","statesArray","Alerts","errorMsg","successMsg","isErrorOpen","setIsErrorOpen","isSuccessOpen","setIsSuccessOpen","Snackbar","anchorOrigin","vertical","horizontal","onClose","autoHideDuration","Alert","severity","ForgotPasswordForm","setSuccessMsg","mode","formData","siteCode","emailSent","pattern","login","parseJwt","base64","replace","jsonPayload","decodeURIComponent","atob","charCodeAt","slice","LoginForm","loginMutation","Error","setItem","parsedToken","useLoginMutation","forgotPassword","ResetPasswordForm","setTimeout","minLength","checkPasswordsMatch","AuthPage","path","useRouteMatch","backgroundContainer","header","objectFit","exact","resetPassword","defaultEventMessages","preeventtext","contactustext","emailreceipttextfooter","winningbidtextheader","winningbidtextfooter","emailreceipttextheader","mobilelogintext","mobilewelcometext","globalEventMessagesFetcher","CustomMessagesPage","richTextTools","EditorTools","Bold","Italic","Underline","Strikethrough","ForeColor","BackColor","CleanFormatting","AlignLeft","AlignCenter","AlignRight","AlignJustify","Indent","Outdent","OrderedList","UnorderedList","FontSize","FontName","FormatBlock","SelectAll","Undo","Redo","Link","Unlink","InsertImage","ViewHtml","InsertTable","InsertFile","AddRowBefore","AddRowAfter","AddColumnBefore","AddColumnAfter","DeleteRow","DeleteColumn","DeleteTable","MergeCells","SplitCell","preEventValue","setPreEventValue","loginSummaryValue","setLoginSummaryValue","welcomeValue","setWelcomeValue","receiptHeaderValue","setReceiptHeaderValue","receiptFooterValue","setReceiptFooterValue","winningBidHeaderValue","setWinningBidHeaderValue","winningBidFooterValue","setWinningBidFooterValue","contactUsText","setContactUsText","FloatingButton","styled","theme","margin","bottom","messagesMutation","useCustomMessagesMutation","Accordion","AccordionSummary","expandIcon","AccordionDetails","inputsContainer","Editor","tools","contentStyle","html","defaultAuctionInformation","biddingopens","biddingcloses","authorizedbidders","pendingregistrations","totalnumberofbids","openbidsamount","pendingcheckoutamount","collectedamount","totalnumberofbuyitnowpurchases","totaldollarsofbuyitnowpurchases","numberitemswithbids","numberitemswithoutbids","eventlink","auctionlink","resetmessage","showresetbutton","useAuctionInfo","globalAuctionInfoFetcher","useEventInfo","globalEventInfoFetcher","AuctionPage","allowRefresh","eventData","useStyles","makeStyles","createStyles","paddingLeft","textAlign","palette","text","secondary","info","generateWinningBidsClick","filename","disposition","contentType","matches","exec","download","clickReset","autoFocus","Paper","dayjs","background","sx","m","fontStyle","Web","Gavel","People","AddShoppingCart","RemoveShoppingCart","ShoppingCart","Message","Refresh","Assessment","SupervisedUserCircle","useAutoEvt","EventPage","Tune","ConfirmationNumber","Group","DoneAll","PermContactCalendar","CheckboxGroup","formControlProps","formLabelProps","formGroupProps","checkboxProps","formControlLabelProps","FormLabel","marginBottom","FormGroup","option","render","textoptions","DateTimeInput","dateTimeProps","utils","DayJSUtils","DateTimePicker","inputVariant","useEditEventSettings","useUpdateEventStatus","useUpdateEventClone","orgSettingsFetcher","userid","get","withNestedJSON","goemerchant","useFetchOrgSettings","onError","retry","AuctionSettingsForm","isEdit","privacyValue","setPrivacyValue","warningMsg","watcheventspaymentprocessorkey","show","timezones","setTimezones","templates","setTemplates","paymentProcessors","setPaymentProcessors","ccRequired","setCCRequired","processorReadOnly","setProcessorReadOnly","ccrequiredenabled","setccrequiredenabled","allowTextingWatch","allowpaymentoffeesWatch","actual","allowattendedbytickettype","ccrequiredlist","storeheader","storebuttonevent","storebuttoneventshow","storebuttonauction","storebuttonauctionshow","storefooter","ccrequiredid","auctionSettingsData","setAuctionSettingsData","localId","getAuctionSettingsData","timezonesData","timeZone","paymentProcessorsData","paymentPro","paymentprocessorkey","paymentprocessorname","ccRequiredData","ccReq","ccrequiredname","ccReqData","authToken","lockCode","setLockCode","openFailure","setFailureOpen","failureMessage","setFailureMessage","isFetching","timezonesTemp","receipttemplatename","payments","editMutation","handleClickContinue","isLock","handleClose","closeFailure","getDefaults","startDate","toISOString","endDate","bidStartDate","bidEndDate","timeZoneForm","eventspaymentprocessorkeyForm","valid","checkboxbiddingsettings","checkboxothersettings","handleChange","rest","Lock","LockOpen","checkBidStartDate","checkBidEndDate","datePlus","setDate","getDate","checkEventEndDate","startsWith","EventSettingsForm","watchAllowpaymentoffees","setEventSettings","storeHeader","setStoreHeader","storeFooter","setStoreFooter","eventPrivacy","setEventPrivacy","validauction","validevent","eventsettings","getEventSettingsData","checkboxsettings","disableTexting","eventcode","LocalizationProvider","dateAdapter","AdapterDayjs","DatePicker","slotProps","textField","inputRef","date","shortcodes","setShortcodeData","fieldData","fieldname","CheckoutPageTab","InsertShortcodeTool","handleShortcodeInsert","selectedShortcode","view","schema","shortcodeNode","nodes","nonEditable","createAndFill","class","EditorUtils","insertNode","this","canInsertTextNode","canInsert","DropDownButton","iconClass","onItemClick","userSelect","accordionDetails","boxSizing","EmailCustomizationPage","Schema","ProseMirror","EditorView","EditorState","transactionReceiptHeader","setTransactionReceiptHeader","transactionReceiptFooter","setTransactionReceiptFooter","purchaserHeader","setPurchaserHeader","purchaserFooter","setPurchaserFooter","guestHeader","setGuestHeader","guestFooter","setGuestFooter","fetchData","url","setDataHeader","setDataFooter","undefined","footer","saveTransactionReceiptData","alert","savePurchaserData","saveGuestData","inline","group","content","marks","attrs","contenteditable","default","atom","parseDOM","priority","toDOM","onMount","viewProps","plugins","spec","addToEnd","mySchema","doc","createDocument","mount","dom","create","EmailEditModal","emailData","activeTab","setActiveTab","selectionModel","setSelectionModel","testEmail","setTestEmail","handleSendEmails","handleSelectAll","allIds","handleDeselectAll","handleResetFilters","Tabs","newValue","centered","Tab","p","mb","emailName","emailType","mt","DataGrid","pageSize","checkboxSelection","onSelectionModelChange","newSelection","EmailRecipients","massemailid","selectedRow","useGridApiRef","columnlist","emailcount","massemailname","massemailtype","rowlist","totalcount","setEmailData","setCheckboxSelection","readonly","setCheckboxSel","selectedItems","listofstuff","isselected","shouldAllBeSelected","selections","allSelected","op","gridFilteredSortedRowEntriesSelector","selectionValues","allValue","getCheckboxSel","selection","valueGetter","actualDay","newDate","set","month","year","lookupDateTimeValue","lookupValue","paramsValue","processValue","valuesAsString","save","ids","sels","columnList","gridDefs","gridAlignmentHeader","fieldheaderalign","gridAlignmentCell","fieldalign","colWidth","fieldwidth","col","fieldfield","fieldlabel","fieldcontrol","GRID_CHECKBOX_SELECTION_COL_DEF","groupingValueGetter","renderEditCell","buildDynamicColumnDefs","newSelectionModel","EmailBody","Subscript","Superscript","fieldlist","massemailbody","showbody","massemailfooter","showfooter","massemailheader","showheader","massemailfrom","massemailfromname","massemailsubject","setBodyData","headerData","setHeaderData","footerData","setFooterData","handleInputChange","ZIndexContext","Provider","Outlet","EmailReview","showpreviewbutton","showsendbutton","showcancelbutton","sendemailcount","sections","previewlist","reviewData","setReviewData","emailbody","fromemail","fromname","key","locked","subject","toemail","toname","previewData","setPreviewData","previewDataIndex","setPreviewDataIndex","isEmailPreviewModalOpen","setIsEmailPreviewModalOpen","isEmailError","setIsEmailError","setEmail","isEmailSendingModalOpen","setIsEmailSendingModalOpen","handleEmailSendingCloseModal","handleEmailPreviewCloseModal","withStyles","border","MuiTableCell","sendEmail","RegExp","testResults","test","emailDataFromList","Stack","float","ChevronLeft","onNext","paddingBottom","validateEmail","TableContainer","Table","dataPreview","sectionshow","dInfo","sectiontype","paddingTop","sectiontitle","sectiondata","backgroundColor","clickActionBUtton","getSections","MassEmailMaintenanceTable","emails","setEmails","reload","setReload","isModalOpen","setIsModalOpen","emailFormData","setEmailFormData","typedescription","typeid","typeshowaskguestregister","emailTypeObject","setEmailTypeObject","askGuestToRegister","lastSent","readOnly","selectedCount","setSelectedRow","askForAuctionSnap","setAskForAuctionSnap","isEmailEditModalOpen","setIsEmailEditModalOpen","selectedEmail","setSelectedEmail","tabSel","setTabSel","emailTypes","setEmailTypes","massemaillist","massemailtypedescription","massemailaskguesttoregister","candelete","canedit","massemailselectedcount","massemaillastsent","typelist","handleCloseModal","handleSaveEmail","massemailtypeid","hidden","t","indicatorColor","textColor","scrollButtons","disableMultipleSelection","onRowClick","param","details","ConfirmModal","onConfirm","confirmText","globalSponsorFetcher","sponsors","useSponsorsMutation","UserForm","sponsor","onCreateSubmit","onEditSubmit","sponsorid","maxFiles","accept","cancelButton","EventSponsors","sponsorToEdit","setSponsorToEdit","sponsorToDelete","setSponsorToDelete","onDelete","SponsorsForm","pagination","ViewList","numOfCols","listItemProps","listProps","containerProps","numOfRows","Math","ceil","cols","Array","from","listContainer","listContainerProps","hover","islink","isprocessorlink","eventname","aligntitle","alignvalue","widthtitle","widthvalue","qrcode","createRef","QRCode","navigator","clipboard","writeText","eventLink","codeRef","exportImage","dataURI","saveAs","exportQRCode","divider","globalEventsFetcher","events","globalFetcher","useFetchEvents","getConfig","window","hostname","apiUrl","auctionSnapURL","version","HomePage","editStatusMutation","editCloneMutation","validAuction","setValidAuction","validEvent","setValidEvent","newbuttontext","setnewbuttontext","eventAuctionsData","setEventAuctionsData","localActiveOnly","getItem","errorDialogMsg","setErrorDialogMsg","dialogActivateMsg","setActivateDialogMsg","setIsLoading","activeEvent","setActiveEvent","dialogCloneMessage","setDialogCloneMsg","eventauctions","filteredEvents","eventItem","eventPath","eventPathSettings","topRow","successBtn","eventorauctionurl","defaultChecked","auctionPath","liValues","eventdetail","ed","Card","CardContent","paddingRight","CardActions","cardActions","cloneBtn","deleteBtn","TermsPage","termsEdit","useTermsMutation","setEvents","dangerouslySetInnerHTML","__html","subrootitems","TagsForm","useCreateTag","description","tagsForm","useLocationTags","TagsTable","logationsTagsMutation","tagRows","tagid","DataGridPro","LocationsForm","useCreateLocation","opendate","closeddate","locationsForm","checkEndDate","LocationsTable","UDTitlesDefault","userdefinedtitle1","userdefinedtitle2","userdefinedtitle3","userdefinedtitle4","userdefinedtitle5","globalLocationTitlesFetcher","DonationForm","useCreateDonation","donationForm","DonationTable","donations","donationRows","AccountingCodeForm","useCreateAccountingCode","accountingForm","AccountingCode","accountingcodes","accountingRows","UDTitlesForm","titles","updateMutation","useUpdateTitles","udtitlesForm","UDTitlesTable","LocationsTagsPage","udTitles","AutocompleteSelect","getOpObj","Autocomplete","getOptionLabel","isOptionEqualToValue","_","obj","renderInput","BidForm","bidderList","buyItNow","manualBidMutation","useUpdateManualBid","dialogStatus","setDialogStatus","currencyValues","setCurrencyValues","buyitnowquantity","quantityValues","setQuantityValues","isValid","setIsValid","buyitnow","price","bidderid","initialAmount","bidincrement","amount","message2","bidForm","currencySymbol","outputFormat","decimalPlaces","decimalCharacter","toFixed","minimumValue","ManualBidEntryPage","isBidFormShowing","setBidIsFormShowing","setBuyItNow","ManualBidDataObject","dataRows","setDataRows","setBidderList","manualbiditemlist","getMappedRecords","manualList","numberofbids","closing","opencd","closingcd","buyitnowavailable","bidstatus","quantityavailable","unlimitedquantity","imageurl","handleBid","buyItNowParam","AttachMoneyOutlined","rec","returnRows","getRecord","density","hideFooterSelectedRowCount","globalUserFetcher","users","useUser","OrgUserForm","user","putUser","globalsetup","auctionsettings","customusermessage","customemail","auctionitems","participants","manualbidentry","checkout","participantlisting","accountingreport","transfertransactionsto","transfertransactionsfrom","transfernewcontactsto","createinteractionrecords","onFormSubmit","onResetEmail","sitecode","passwordFieldEnabled","userForm","validator","isEmail","resetBtn","dialogActions","UsersTable","userToEdit","setUserToEdit","useFetchUsers","lastupdateddate","lastupdatedby","toLocaleString","orgSettingsTwilioFetcher","orgSettingsGEMFetcher","orgSettingsStripeFetcher","stripeList","StripeForm","stripeAccountData","stripeaccountname","OrgSettingsPage","refreshaccountid","accountid","putOrgSetting","useOrgSettings","putOrgSettingsTwilio","useOrgSettingsTwilio","putOrgSettingsGEM","useOrgSettingsGEM","stripeData","setStripeData","deleteDialogObj","setDeleteDialogObj","stripeAccordionExpanded","setstripeAccordionExpanded","stripeaccountid","setStripeAccountData","twilioFormMethods","twilloReset","gemFormMethods","gemReset","refreshStripeId","redirecturl","ontwilioSubmit","twiliophone","twilioaccountsid","twilioauthtoken","errormessage","onGEMSubmit","transactionid","gatewayid","orgInfo","contactname","address1","address2","city","postalcode","phone","useFetchOrgSettingsTwilio","twilioSettings","useFetchOrgSettingsGEM","GEMSettings","useFetchOrgSettingsStripe","stripeSettings","stripelist","newData","stripeid","hasInitiatedForm","useRef","zip","address","hasInitiatedTwilioForm","twiliovisauctionsnapaccount","hasInitiatedGEMForm","ecommerceid","retailid","lastupdated","validationdate","canvalidate","handleValidate","cansetup","handleSetup","handleAdd","resetConfirm","bottomSaveButton","expanded","flexWrap","flex","sm","md","resetButton","inputsContainerCenterText","inputButtonContainer","useCreateParticipant","particpant","nextBidNumber","bidnumber","first","last","authorizedbidder","source","userdefined1","userdefined2","userdefined3","userdefined4","userdefined5","paddlenumbertext","participantid","addressreadonly","lastlogindate","fetchers","useFetchParticpants","fetchwitUDTitles","udti","ParticipantsPage","importPath","importDMPPath","particpantToEdit","setParticpantToEdit","particpantToDelete","setParticpantToDelete","useFetchParticpantswithUDTitles","particpantswithTitles","generateContactReport","onEditCommit","match","alignContent","titleRow","ParticipantsForm","max","apply","o","getNextBidderNumber","onCellEditCommit","api","getRow","participantDefault","company","country","contactid","participantname","globalAuctionReportFetcher","partipantListingMergePost","useStyle","overflow","lineHeight","whiteSpace","ParticipantsListingPage","dialogOpen","setDialogOpen","dialogMessage","setDialogMessage","unLink","usePutParticipantUNLink","autoLink","usePutParticipantAutoLink","getRowId","rowThreshold","columnVisibilityModel","ParticipantMergePage","putLink","selectedOldParticipant","setSelectedOldParticipant","selectedNewParticipant","setSelectedNewParticipant","confirmDialogOpen","setConfirmDialogOpen","successDialogOpen","setSuccessDialogOpen","mergeSuccess","setMergeSuccess","defaultValues","participantidold","participantidnew","selectedOldParticipantId","selectedNewParticipantId","getparticipantsOptions","currentWinningBids","numberOfCheckouts","numberOfIntegrated","editedData","setEditedData","setFormData","handleConfirmDialogClose","handleSuccessDialogClose","catch","currentwinningbids","numberofcheckouts","numberofintegrated","participantsource","participantcontactkey","SearchBar","searchText","setsearchText","InputBase","ml","placeHolder","onKeyPress","preventDefault","ParticipantsLinkingPage","ipk","multi","searchP","setsearchP","rowsErrorMessage","setRowsErrorMessage","setRows","usePutParticipantLink","propPass","participantinfo","getLinkingData","contactdata","mx","searchString","NoRowsOverlay","NoResultsOverlay","useImportParticipants","ImportPage","importtype","steps","workbook","setWorkBook","setIsUploaderOpen","selectedFile","setSelectedFile","selectedWorkbookSheet","setSelectedWorkbookSheet","tableData","setTableData","finalTableData","setFinalTableData","setJsonString","jsonFinalString","setJsonFinalString","dataKeys","setDataKeys","activeStep","setActiveStep","nextEnabled","setNextEnabled","checkWatch","setCheckWatch","Set","setDropOptions","importParticipantsFields","useParticipantsImportFields","importParticipantsDMPList","useParticipantsImportDMPList","importParticipantsDataMiner","useParticipantsImportDataMiner","importParticipantsSpreadsheet","errorList","setErrorList","setFieldData","displayFieldData","setDisplayFieldData","bypassFieldData","setBypassFieldData","requiredFields","setRequiredFields","dmpList","setDMPList","batchIdWatch","loadFieldsData","enabledNext","loadDMPList","importSteps","setupDropOptions","opts","newOptions","add","batchlist","batchId","batchid","callType","fieldConvertedData","fieldmatch","minlength","maxlength","requiredWatch","handleNext","rowObject","batchdata","filteredKey","keys","r","processKeys","participantsData","errorlist","prevActiveStep","getSheetData","fields","sheetData","fieldName","unshift","XlsxPopulate","fromBlankAsync","sheet1","sheet","totalColumns","cell","range","usedRange","endColumn","String","fromCharCode","outputAsync","res","finalcolumns","selectDMPOptions","batch","selectOptions","formDataKeys","goodJson","addItem","formKey","fieldDataFiltered","getSheet","workbookSelection1","processWorksheet","sheetToProcess","SheetNames","XLSX","sheet_to_json","Sheets","raw","defval","fieldD","toLowerCase","includes","fieldValue","onSave","loadedWorkbook","read","jsonData","readAsBinaryString","saveAsExcel","Stepper","index","labelProps","Step","StepLabel","selectSource","fileUpload","matchFields","matchFieldsContainer","selectRow","gridContainer","textRow","hideFooterRowCount","importParticipants","pt","importButton","HttpInterceptor","authReqInterceptor","setAuthReqInterceptor","jsonResponseInterceptor","setJsonResponseInterceptor","urlInterceptor","setUrlInterceptor","interceptor","interceptors","request","use","config","hasOwnProperty","Authorization","Promise","reject","addAuthInterceptor","baseURL","addBaseUrlInterceptor","jsonInfo","addParseResponseInterceptor","eject","Fragment","rootReducer","combineReducers","configureStore","reducer","middleware","getDefaultMiddleware","devTools","process","BidMaintenanceDefaults","bidtime","bidtype","bidamount","bidautoamount","checkoutcompleted","itembiddingclosed","globalBidMaintenanceFetcher","bids","BidMaintenancePage","updateBidMaintenanceMutation","useUpdateBidMaintenance","bidmaintRows","bm","AuctionStatusDefaults","qtyunlimited","butitnowonly","globalAuctionStatusFetcher","statuslist","AuctionStatusPage","useUpdateAuctionStatus","LiveAuctionPage","useUpdateLiveBid","clearBidMutation","useClearLiveBid","liveBidError","setLiveBidError","participantList","setParticipantList","clearedRowIds","setClearedRowIds","confirmmutation","useConfirmLiveAuction","rowsToSave","setRowsToSave","blankRowIds","getBidderOptions","handleSave","prevIds","part","onButtonClick","cellParams","stopRowEditMode","autoHighlight","setEditCellValue","inputParams","bidderOptions","cellClassName","clsx","negative","buttonText","editMode","processRowUpdate","newRow","oldRow","updatedRow","isNew","onProcessRowUpdateError","experimentalFeatures","newEditingApi","Logger","logData","useAddCheckoutDetail","checkoutDetailAdd","checkoutUndo","resendCheckout","generatePDF","manualBid","globalCheckoutDetailFetcher","isreadonly","AddItemForm","addItemObjects","selectedParticipant","getCheckoutDetailData","responseData","checkoutitems","itemlist","getItemOptions","CheckoutForm","checkoutDataObject","creditCardInfo","setShowPayment","cryptogram","setCryptogram","setCryptogramTimeout","setCryptogramCode","subtotal","setSubtotal","ccfees","setCCFees","setQuantity","additionalDonation","setAdditionalDonation","totalAmount","setTotalAmount","showResendDialog","setShowResendDialog","showVoidDialog","setShowVoidDialog","showCheckoutDialog","setShowCheckoutDialog","isLoadingBackdrop","setisLoadingBackdrop","dialogAddItemObj","setAddItemDialogObj","invalidateIframe","setInvalidateIframe","javascriptfile","script","document","createElement","setAttribute","transcenterid","processorid","appendChild","addEventListener","processPayment","removeEventListener","firstpay","ccData","now","category","iserror","logEvent","checkoutFormMethods","includeCCFees","headerDataRows","setHeaderDataRows","itemDataRows","setItemDataRows","paymentMethodWatch","dataDetailAdd","useFetchCheckoutDetail","additionalDonations","checkoutheader","headerRecords","getHeaderRecords","additionaldonation","getItemRecords","acc","curr","checkoutstatus","ccAmount","ccfeespercentage","total","showccfees","checkoutHeader","ccfeesexactamount","totalamount","paymentmethod","ccfeesamount","sendemail","checkoutItems","handleCheckout","errorMessage","emerchtoken","checkoutData","handleVoid","checkoutundo","handleResend","resendData","generatePDFClick","itemMessage","itemMessageFinal","buildCheckoutConfirm","rootitems","subrootcard","allowNegativeValue","subrootgrid","grid","globalCheckoutFetcher","CheckoutOrdersGrid","setCheckoutDataObject","setCreditCardInfo","gridAPIRef","checkoutlist","creditcardiframe","transactiontype","checkoutObjData","receiptnumber","checkOut","rowsPerPageOptions","CheckoutPage","None","tab","setTab","selectedUser","ResendReceipt","Void","tabs","CheckoutAllForm","setIncludeCCFees","setSelectedItems","setSelectedParticipants","participantValue","setParticipantValue","paymentmethodvalue","paymentMethodList","setPaymentMethodList","processorToken","setProcessorToken","stripeObj","setStripeObj","stripeElement","setStripeElement","stripePaymentElement","setStripePaymentElement","stripeAPIKey","setStripeAPIKey","stripeAccountId","setStripeAccountId","setCheckoutData","setdataDetailAdd","paymentMethodCreation","setupFutureUsage","loadStripeAccount","loadStripe","stripeAccount","stripeTempObj","elements","paymentElement","layout","defaultCollapsed","on","complete","submit","createConfirmationToken","confirmationToken","paymentprocessorcode","paymentprocessorinfo","stripeapikey","participantSelected","getCheckoutDetailAdd","processUpdate","update","headRecs","paymentmethodlist","dataTempRows","selectedRowData","participant","processortoken","clear","getParticipantOptions","disablePortal","renderOption","pml","disableSelectionOnClick","selectedIDs","has","stopPropagation","showCheckoutDialogMessage","CheckoutAllPage","setParticipantsData","paymentprocessorisvalid","checkoutListData","setCheckoutListData","getCheckoutListAllData","dataRowsTemp","checkoutListDataNew","CheckoutMainPage","checkoutDetailDefault","checkoutHeaderDefault","checkoutdate","checkoutheaderlist","checkoutdetaillist","detail","CustomToolbar","generateAuctionSummaryClick","generateAuctionDetailClick","AuctionSummaryReportPage","DetailPanelContent","rowProp","py","hideFooter","getDetailPanelContent","useCallback","getDetailPanelHeight","localeText","toolbarExport","AdminAuthPage","tokenid","getTokenFromAdmin","globalTextMessageFetcher","broadcastlist","BroadcastMessagePage","broadcastMessage","useBroadcastMessage","emailPresend","useCartEmailPresend","emailSend","useCartEmailSend","particpants","distinctparticipantsauthorizedtexting","setDistinctparticipantsauthorizedtexting","messageList","setMessageList","messageTextList","setMessageTextList","sendNowMessageValueList","carts","cartstotal","lastdatesent","emailPre","setEmailPre","textParticipants","setTextParticipants","useFetchTextMessages","textMessageData","textMessagesLoading","whenToSend","preSend","getPhoneTextParticipants","newDataRows","newdata","broadcasttextid","selectMessageList","allLabel","participantlist","dateFormat","onBroadcastTextSubmit","broadcasttextmessage","broadcasttextphonetitle","broadcasttextsentdate","putMessageData","setBroadcastTextDlg","setBroadcastDlg","onSubmitCart","subjectline","setCartsDlg","brodacastDlg","brodacastTextDlg","cartsDlg","handleCloseBroadcast","handleCloseBroadcastText","handleCloseCart","broadcasttextstatus","broadcasttextscheduledate","Tooltip","disableFocusListener","minRows","maxRows","AddShoppingCartOutlined","ForceRefreshPage","forceRefresh","useForceRefresh","forceLogout","useForceLogout","particpantsList","setParticpantsList","selectList","onSubmitForceLogout","DonationPage","batchCodeSelectWatch","batchCodeTextWatch","campaignSelectWatch","campaignTextWatch","appealSelectWatch","appealTextWatch","donationTypeSelectWatch","dontaionTypeTextWatch","accountCodeSelectWatch","accountCodeTextWatch","numberOfCheckoutsPosted","numberOfItemsPosted","totalAmtPosted","numberOfCheckoutsUnpostedLink","numberOfItemsUnpostedLink","totalAmtUnpostedLink","extraAmtUnpostedLink","numberOfCheckoutsUnpostedUnlink","numberOfItemsUnpostedUnlink","totalAmtUnpostedUnlink","campaignlist","appeallist","batchcodelist","accountingcodelist","donationtypelist","donationData","setDonationData","valueDate","setDateValue","dialogComplete","setdialogComplete","checkedAck","setAckChecked","checkedFair","setFairChecked","getIntegrationDonation","textReturn","getBatchCodeText","getCampaignText","getAppealText","getDonationText","getAccountingText","donationcontrol","batchCodeOptions","verticalAlign","getCampaignOptions","getAppealOptions","DateInput","getDonationTypeOptions","getAccountingCodeOptions","TransferPage","count","checkedoutonly","setDialog","linkparticipants","linkparticipantsnotauthorized","totalparticipants","unlinkcheckedoutparticipants","unlinkcheckedoutparticipantsnotauthorized","unlinkparticipants","unlinkparticipantsnotauthorized","unlinkpendingcartitemsparticipants","unlinkpendingcartitemsparticipantsnotauthorized","contactData","setContactData","a11yProps","getContactDetails","putIntegrationContact","checkedoutOnly","promptWithDialog","messageCount","checkoutonly","EventTransferPage","globalEventUserDefinedFetcher","eventuserdefined","useCreateEvtUserDefined","EventValueForm","isValueOpen","setIsValueOpen","activeId","controlDropdownValues","setControlDropdownValues","fieldtypelist","element","cdv","min","sign","newValues","EventUserDefinedForm","controlWatch","itemSelection","setItemSelection","displayForAllGuest","setDisplayForAllGuest","setActiveId","currencyNumber","setCurrencyNumber","dateTimeValue","setDateTimeValue","getDropdowns","getEvtUserDefined","udid","dropdownlist","fieldtype","control2","defaultcontrol1","displayvalue","defaultcontrol2","default2","defaultcontrol3","default3","defaultcontrol4","default4","defaultcontrol5","default5","displayforallguest","default6","resetObject","defaultcontrol6","itemsInSelection","realDataItem","itemidsString","itm","defaultControl","defaultControlkey","itemids","controlName","defaultControlValue","controlDefault6","fieldTypeOptions","defaultValueOptions","uditem","EventUserDefinedTable","eventUserDefineCreate","itemsTemp","strs","trim","itemidsTemp","globalEventTransactionFetcher","transactions","EventTransactionsDetailForm","Input","EventAddCheckoutForm","transactionId","setTransactionId","itemQuantity","setItemQuantity","validQuantity","setValidQuantity","itemPrice","setItemPrice","quantityModal","setQuantityModal","getCheckoutData","quantityUpdate","prices","quantityBlur","quantityremaining","calcItemPrice","maxquantitypertransaction","priceUnformatted","pop","itemdata","section","sectionname","lg","xl","onBlur","isquantityunlimited","SpanImage","span","Image","img","EventCheckoutForm","setIsAddEventCheckout","setIsEventReview","discount","setDiscount","discountCodeWatch","firstWatch","lastWatch","cityWatch","stateWatch","zipWatch","addressWatch","address2Watch","emailWatch","cartitems","hasdiscount","cartData","setCartData","getCartData","discountamount","getDiscount","cd","lineamount","borderTop","GenericForm","isGuestOpen","setIsGuestOpen","endpoint","genericid","register","ticketfieldslist","tickettitle","showbuttonreassign","showbuttonunassign","ticketlookuplist","ticketData","setTicketData","getEventTicket","getTicketLookupDataOptions","lookupfieldid","lookupactive","lookupid","lookup","unassignEventTicket","unassign","newFormValues","fieldid","fieldList","fieldId","defaultValueControl","fieldDataObject","fieldslist","handleSelectionClick","fieldControlId","onchange","endsWith","newKey","newTicketData","ticket","fieldreadonly","handleReassign","sort","b","fieldrowgrouping","ticketFieldData","EventCheckoutReview","ticketList","setTicketList","ticketId","setTicketId","transactiontotalamount","transactionpaymentmethod","transactionadditionaldonation","transactionaddress","transactionaddress2","transactioncity","transactioncountry","transactiondate","transactiondiscountamount","transactionemail","transactionfirst","transactionlast","transactionphone","transactionprocessingfees","transactionsource","transactionstate","transactionsubtotal","transactionzip","itemdetail","ticketlist","transactionData","setTransactionData","getTransactionData","updateTransData","newTicketList","guestname","groupname","ticketid","transactiondetailitemname","transactiondetailqty","transactiondetailprice","transactiondetaillinetotal","EventTransactionsTable","eventIDvalue","useFetchTransaction","isAddEventCheckout","isEventCheckout","setIsEventCheckout","isEventReview","tablebutton","purchaser","handleCheckoutReview","ShoppingCartOutlined","EventTicketsTable","ticketItemId","ticketItem","setTicketItem","setEndpoint","ticketitemid","tickets","selectedticketitemid","handleSelectionChange","ticketitemlist","ticketitemname","getTicketItemOptions","globalEventDiscountCodesFetcher","EventDiscountCodesForm","discountid","displayItemDiscount","setDisplayItemDiscount","displayPaymentMethodAmount","setDisplayPaymentMethodAmount","discounttypeidWatch","discountmethodidWatch","discounttypelist","discountmethodlist","discountactive","discountcandelete","discountcode","discountdescription","discountdateend","discountitemids","discountitems","discountmethod","discountmethodid","discountminimumpurchaseneeded","discountminimumquantityneeded","discountdatestart","discounttype","discounttypeid","setDiscountData","discountObject","getData","getDropdownData","getDiscountData","formdata","getDiscountTypeListOptions","getItemListOptions","getDiscountMethodOptions","EventDiscountCodesTable","discountId","setDiscountId","discounts","fontFamily","GuestForm","reloadGuestData","setReloadGuestData","registrationid","fieldorder","fieldrequired","EventGuestMaintenanceTable","registrations","selectedticketid","guestsData","setGuestData","getGuestData","registrationname","newTicketItem","ticketname","AuctionCarouselSetup","watchTable","watchAll","setURL","aucInfo","locationName","f","buildUrl","duration","itemsperpage","auctionSnapURLParam","toggleItemTypeParam","locationNameParam","dataParam","parts","encodeURIComponent","copyTextToClipboard","inputMode","viewBox","wordWrap","overflowWrap","classNames","borderRadius","cursor","defaultProps","listStyle","DroppableList","dropInstance","DragContext","drag","DropContext","drop","setDrop","useDroppable","onDragEnter","onDragLeave","DraggableListItem","hint","dropHint","dragInstance","setDrag","DirectionContext","setDirection","dragged","setDragged","y","offset","setOffset","setPosition","setWidth","handlePress","offsetX","offsetY","offsetWidth","handleDragStart","handleDrag","newDirection","calculateDirection","clientX","clientY","handleDragEnd","handleRelease","handleDragEnter","handleDragLeave","handleDrop","useDraggable","onPress","onDragStart","onDrag","onDragEnd","onRelease","autoScroll","dragRect","getBoundingClientRect","dropRect","createContext","EventGroupMaintenance","dropTimeout","setData","groupid","groupName","setGroupName","newGroupName","setNewGroupName","reloadForRename","setreloadForRename","ticketgroups","groupData","setGroupData","getGroups","handleDropChange","newDrop","clearTimeout","handleItemDrop","handleListDrop","saveGroupName","CardHeader","action","allowchangegroupname","handleEditGroup","guests","handleDeleteGroup","EventDonationPage","EventPurchaserLinkTable","uploadCount","uploadDuplicates","dialogUpload","setDialogUpload","purchaserData","setPurchaserData","reloadData","setReloadData","isDataLoading","setIsDataLoading","newPurchaserData","purchasers","purchaserid","purchaserupload","cbSels","uploadcount","duplicates","downloadExcel","purchaserlinkupload","checkboxCol","transactionlinklocked","bgcolor","disableGutters","purchaserautolink","usePutPurchaserLink","purchaserInfo","globalEventGuestLinkFetcher","EventGuestLinkTable","useFetchGuestLink","tabValue","setTabValue","guestid","guestupload","guestautolink","downloadInteractionExcel","linkGuest","GuestLinkingPage","usePutGuestLink","guestInfo","EventNameTagsPage","guides","selectedsizeid","sizelist","userdefinedlist","tagsData","setTagsData","getTagsData","sizeid","sizeList","sizeOptions","sizename","ticketTypeList","ticketType","onSubmitExcel","onSubmitPDF","onSubmitWord","EventGroupListingPage","includeUnregisteredGuest","setIncludeUnregisteredGuest","oneGroupPerPage","setOneGroupPerPage","userDefinedOptions","includeunregisteredguests","onegroupperpage","RegisterForm","lookuplist","EventCheckInPage","setSearchText","statusList","setStatusList","statusId","setStatusId","defaultStatusId","setDefaultStatusId","defaultTicketId","setDefaultTicketId","setFirstLoad","guestId","setGuestId","invalidateKey","SetinvalidateeKey","searchQuery","timeOutId","selectedstatusid","attendeelist","uploadGuest","checkin","cancheckin","allItems","uploadGuests","selectedItemsIds","canregister","checkedin","handleStatusChange","handleTicketChange","borderLeft","borderRight","elevation","square","statusid","orientation","EventGuestInformation","LicenseInfo","setLicenseKey","QueryClient","AutoAuth","useAutoAuth","App","client","store","app","adminlogin","stripeRefresh","stripeReturn","showHome","newauction","evtsettings","eventnew","eventsponsors","eventemailcustomization","EventEmailCustomization","emassemailmaintenancetable","custommessages","locationstags","eventtransactions","eventnametags","eventgrouplistingreport","eventguestinformation","eventcheckin","eventguestlink","eventpurchaserlink","eventpurchaserlinking","EventPurchaserLinkingPage","eventguestlinking","EventGuestLinkingPage","eventdiscountcodes","eventactivitytickets","eventgroupmaintenance","eventguestmaintenance","ParticipantsLinking","ParticipantLinking","ParticipantLinkingPage","importParticpants","importTypeParticpants","bidmaintenance","AuctionStatus","liveauction","broadcastmessage","forcerefresh","auction","auctioncarouselsetup","participantmerge","ReactDOM","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.e652bb9f.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ParticipantsListingPage_root__1_jB-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"app\":\"App_app__1V0bG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionStatusPage_root__1QNeL\",\"dialog\":\"AuctionStatusPage_dialog__2lnU3\",\"submitButton\":\"AuctionStatusPage_submitButton__1UKEp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionSummaryReportPage_root__5hcA8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"itemsForm\":\"AuctionItemsTable_itemsForm__2eqNr\",\"dialog\":\"AuctionItemsTable_dialog__3j3cg\",\"submitButton\":\"AuctionItemsTable_submitButton__1sU4r\",\"switchContainer\":\"AuctionItemsTable_switchContainer__2j1AR\",\"singleContainer\":\"AuctionItemsTable_singleContainer__1lKXA\",\"buyItNowContainer\":\"AuctionItemsTable_buyItNowContainer__NFPwZ\",\"textContainer\":\"AuctionItemsTable_textContainer__2RHip\",\"buyitnowtextContainer\":\"AuctionItemsTable_buyitnowtextContainer__1WtMN\",\"formContainer\":\"AuctionItemsTable_formContainer__2eOga\",\"buyitnowformContainer\":\"AuctionItemsTable_buyitnowformContainer__2mwaL\",\"imageWrapper\":\"AuctionItemsTable_imageWrapper__J3tG9\",\"dropzone\":\"AuctionItemsTable_dropzone__1JesV\",\"logoWrapper\":\"AuctionItemsTable_logoWrapper__3eivP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventGroupMaintenance_root__3kwnv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventPurchaserLinkTable_root__1DloH\",\"selectcontrol\":\"EventPurchaserLinkTable_selectcontrol__3JxBo\",\"itemsForm\":\"EventPurchaserLinkTable_itemsForm__WMfKJ\",\"dialog\":\"EventPurchaserLinkTable_dialog__3cCOa\",\"tablebutton\":\"EventPurchaserLinkTable_tablebutton__3t2rU\",\"submitButton\":\"EventPurchaserLinkTable_submitButton__DPcdZ\",\"switchContainer\":\"EventPurchaserLinkTable_switchContainer__3CI7C\",\"singleContainer\":\"EventPurchaserLinkTable_singleContainer__3LNON\",\"buyItNowContainer\":\"EventPurchaserLinkTable_buyItNowContainer__1sN5d\",\"twoControlContainer\":\"EventPurchaserLinkTable_twoControlContainer__3DGZR\",\"textContainer\":\"EventPurchaserLinkTable_textContainer__2ABJr\",\"buyitnowtextContainer\":\"EventPurchaserLinkTable_buyitnowtextContainer__2KSUx\",\"formContainer\":\"EventPurchaserLinkTable_formContainer__1Ym2t\",\"buyitnowformContainer\":\"EventPurchaserLinkTable_buyitnowformContainer__3p9kg\",\"imageWrapper\":\"EventPurchaserLinkTable_imageWrapper__Rr9H8\",\"dropzone\":\"EventPurchaserLinkTable_dropzone__1G5gG\",\"logoWrapper\":\"EventPurchaserLinkTable_logoWrapper__2hxBP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventGuestLinkTable_root__3ZESN\",\"selectcontrol\":\"EventGuestLinkTable_selectcontrol__3cJiu\",\"itemsForm\":\"EventGuestLinkTable_itemsForm__34EvY\",\"dialog\":\"EventGuestLinkTable_dialog__1d94s\",\"tablebutton\":\"EventGuestLinkTable_tablebutton__3Pjis\",\"submitButton\":\"EventGuestLinkTable_submitButton__3Vcwc\",\"switchContainer\":\"EventGuestLinkTable_switchContainer__K5Po0\",\"singleContainer\":\"EventGuestLinkTable_singleContainer__YEvfn\",\"buyItNowContainer\":\"EventGuestLinkTable_buyItNowContainer__3JJTF\",\"twoControlContainer\":\"EventGuestLinkTable_twoControlContainer__2y2nM\",\"textContainer\":\"EventGuestLinkTable_textContainer__lK8Xv\",\"buyitnowtextContainer\":\"EventGuestLinkTable_buyitnowtextContainer__2y0qB\",\"formContainer\":\"EventGuestLinkTable_formContainer__KcQs1\",\"buyitnowformContainer\":\"EventGuestLinkTable_buyitnowformContainer__10HGz\",\"imageWrapper\":\"EventGuestLinkTable_imageWrapper__3CRky\",\"dropzone\":\"EventGuestLinkTable_dropzone__S5eRw\",\"logoWrapper\":\"EventGuestLinkTable_logoWrapper__Y0Rx_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventGuestInformation_root__3O-Jw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"GenericForm_root__I1Opp\",\"selectcontrol\":\"GenericForm_selectcontrol__313vb\",\"itemsForm\":\"GenericForm_itemsForm__Qg-5j\",\"dialog\":\"GenericForm_dialog__7Lhw6\",\"tablebutton\":\"GenericForm_tablebutton__1CcF1\",\"submitButton\":\"GenericForm_submitButton__1Y7op\",\"switchContainer\":\"GenericForm_switchContainer__2dBqu\",\"singleContainer\":\"GenericForm_singleContainer__37EzM\",\"buyItNowContainer\":\"GenericForm_buyItNowContainer__2yB-q\",\"twoControlContainer\":\"GenericForm_twoControlContainer__2K1nZ\",\"textContainer\":\"GenericForm_textContainer__6SVg8\",\"buyitnowtextContainer\":\"GenericForm_buyitnowtextContainer__8aPXq\",\"formContainer\":\"GenericForm_formContainer__30kg2\",\"buyitnowformContainer\":\"GenericForm_buyitnowformContainer__3uYmJ\",\"imageWrapper\":\"GenericForm_imageWrapper__1dt9f\",\"dropzone\":\"GenericForm_dropzone__1j8F5\",\"logoWrapper\":\"GenericForm_logoWrapper__2BmNg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventItemsTable_root__259GU\",\"itemsForm\":\"EventItemsTable_itemsForm__31tW0\",\"dialog\":\"EventItemsTable_dialog__1cL7t\",\"submitButton\":\"EventItemsTable_submitButton__33QN_\",\"switchContainer\":\"EventItemsTable_switchContainer__3E4Eu\",\"singleContainer\":\"EventItemsTable_singleContainer__2NTJ2\",\"buyItNowContainer\":\"EventItemsTable_buyItNowContainer__Lffrk\",\"twoControlContainer\":\"EventItemsTable_twoControlContainer__sjAZR\",\"textContainer\":\"EventItemsTable_textContainer__1CzEq\",\"buyitnowtextContainer\":\"EventItemsTable_buyitnowtextContainer__2JbWh\",\"formContainer\":\"EventItemsTable_formContainer__1ppPt\",\"buyitnowformContainer\":\"EventItemsTable_buyitnowformContainer__6y3Gr\",\"imageWrapper\":\"EventItemsTable_imageWrapper__dhvAQ\",\"dropzone\":\"EventItemsTable_dropzone__6Nnek\",\"logoWrapper\":\"EventItemsTable_logoWrapper__g3URj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventPage_root__3GbGf\",\"submitButton\":\"EventPage_submitButton__14opw\",\"selectcontrol\":\"EventPage_selectcontrol__2Glrp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventSettingsForm_root__gHhgY\",\"form\":\"EventSettingsForm_form__1qQ4o\",\"button\":\"EventSettingsForm_button__1V1WP\",\"dropzone\":\"EventSettingsForm_dropzone__taGXW\",\"selectcontrol\":\"EventSettingsForm_selectcontrol__1Y3kU\",\"logoWrapper\":\"EventSettingsForm_logoWrapper__2Rh0a\"};","import { useSelector } from 'react-redux'\n\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit'\n\nimport { AppState } from '../App/store'\nimport {EventState} from \"./eventSlice\";\n\nexport type CurrentUser = any\n\nexport type AuthToken = {\n aud: string\n email: string\n exp: number\n iss: string\n jti: string\n sitecode: string\n siteid: string\n sub: string\n userid: string\n}\nexport interface AuthState {\n currentUser: CurrentUser\n token: AuthToken\n isLoggedIn: boolean\n resetPasswordKey: string\n alloweventrefresh: boolean\n terms: string\n}\n\nconst initialState: AuthState = {\n currentUser: '',\n token: null,\n isLoggedIn: false,\n resetPasswordKey: '',\n alloweventrefresh: false,\n terms: ''\n}\n\nexport const authSlice = createSlice({\n name: 'auth',\n initialState,\n reducers: {\n updateUser: (state, { payload }: PayloadAction) => {\n state.alloweventrefresh = (payload.alloweventrefresh === true ? true : false)\n state.currentUser = (payload.currentUser ? payload.currentUser : state.currentUser)\n },\n setCurrentUser: (\n state,\n { payload }: PayloadAction\n ) => {\n state.currentUser = Object.assign(state.currentUser, payload)\n },\n loginUser: (state, { payload }: PayloadAction) => {\n state.token = payload\n state.isLoggedIn = true\n },\n logout: (state) => {\n localStorage.removeItem('tokenadmin')\n state.currentUser = initialState.currentUser\n state.isLoggedIn = false\n state.token = null\n state.alloweventrefresh = false\n },\n setResetPasswordKey: (state, { payload }: PayloadAction) => {\n state.resetPasswordKey = payload\n },\n setAllowEventRefresh: (state, { payload }: PayloadAction) => {\n state.alloweventrefresh = payload\n },\n setTerms: (state, { payload }: PayloadAction) => {\n state.terms = payload\n },\n setToken: (state, { payload }: PayloadAction) => {\n state.token = payload\n }\n }\n})\n\n/** ACTION EXPORTS */\nexport const {\n updateUser,\n setCurrentUser,\n loginUser,\n logout,\n setResetPasswordKey,\n setAllowEventRefresh,\n setToken, setTerms\n} = authSlice.actions\n\n/** REDUCER EXPORT */\nexport default authSlice.reducer\n\n/** STATE HOOK EXPORTS - hooks for components to get state */\nexport const useAuthState = () => useSelector((state: AppState) => state.auth)\n\nexport const useCurrentUser = () =>\n useSelector(({ auth }: AppState) => auth.currentUser)\n\nexport const useAuthToken = () =>\n useSelector(({ auth }: AppState) => auth.token)\n\nexport const useIsLoggedIn = () =>\n useSelector(({ auth }: AppState) => auth.isLoggedIn)\n\nexport const useResetPasswordKey = () =>\n useSelector(({ auth }: AppState) => auth.resetPasswordKey)\n\nexport const useAllowEventRefresh = () =>\n useSelector(({ auth }: AppState) => auth.alloweventrefresh)\n\n/** SAGA SELECTORS - selects state for sagas */\nexport const selectResetPasswordKey = ({ auth }: AppState) =>\n auth.resetPasswordKey\n","import { Backdrop, CircularProgress } from '@material-ui/core'\n\nconst LoadingBackdrop = ({ open = false }) => {\n return (\n {}}>\n \n \n )\n}\n\nexport default LoadingBackdrop\n","import { useIsLoggedIn } from '../../slices/authSlice'\nimport LoadingBackdrop from './LoadingBackdrop'\n\nexport const AuthGuard = ({ children }) => {\n const isLoggedIn = useIsLoggedIn()\n\n if (!isLoggedIn) {\n return \n }\n\n return children\n}\n","import { useSelector } from 'react-redux'\n\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit'\n\nimport { AppState } from '../App/store'\n\nexport interface EventState {\n eventId: string\n eventName: string\n eventCode?: string\n eventStart?: string\n eventEnd?: string\n bidStart?: string\n bidEnd?: string\n allowpaymentoffees?: boolean\n ccfee?: number\n eventUrl?: string\n auctionUrl?: string\n}\n\nconst initialState: EventState = {\n eventId: '',\n eventName: '',\n eventCode: '',\n eventStart: '',\n eventEnd: '',\n bidStart: '',\n bidEnd: '',\n allowpaymentoffees: false,\n ccfee: 0,\n eventUrl: '',\n auctionUrl: ''\n}\n\nexport const eventSlice = createSlice({\n name: 'event',\n initialState,\n reducers: {\n setEvent: (state, { payload }: PayloadAction) => {\n state.eventId = payload.eventId\n state.eventName = payload.eventName\n state.eventCode = (payload.eventCode ? payload.eventCode : state.eventCode)\n state.eventStart = (payload.eventStart ? payload.eventStart : state.eventStart)\n state.eventEnd = (payload.eventEnd ? payload.eventEnd : state.eventEnd)\n state.bidStart = (payload.bidStart ? payload.bidStart : state.bidStart)\n state.bidEnd = (payload.bidEnd ? payload.bidEnd : state.bidEnd)\n state.allowpaymentoffees = payload.allowpaymentoffees\n state.ccfee = payload.ccfee\n },\n setAuctionURL: (state, { payload }: PayloadAction) => {\n state.auctionUrl = payload\n },\n setEventURL: (state, { payload }: PayloadAction) => {\n state.eventUrl = payload\n },\n }\n})\n\n/** ACTION EXPORTS */\nexport const {\n setEvent,\n setEventURL,\n setAuctionURL\n} = eventSlice.actions\n\n/** REDUCER EXPORT */\nexport default eventSlice.reducer\n\n/** STATE HOOK EXPORTS - hooks for components to get state */\nexport const useEventState = () => useSelector((state: AppState) => state.event)\n","import { useSelector } from 'react-redux'\n\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit'\n\nimport { AppState } from '../App/store'\n\nexport interface OrgState {\n name: string\n message: string\n isdonorsnapcustomer: boolean\n twilio: any\n}\n\nconst initialState: OrgState = {\n name: '',\n message: '',\n isdonorsnapcustomer: false,\n twilio: {}\n}\n\nexport const orgSlice = createSlice({\n name: 'organization',\n initialState,\n reducers: {\n setOrg: (state, { payload }: PayloadAction) => {\n state.name = payload.name\n state.message = payload.message\n state.isdonorsnapcustomer = payload.isdonorsnapcustomer\n state.twilio = payload.twilio\n }\n }\n})\n\n/** ACTION EXPORTS */\nexport const {\n setOrg\n} = orgSlice.actions\n\n/** REDUCER EXPORT */\nexport default orgSlice.reducer\n\n/** STATE HOOK EXPORTS - hooks for components to get state */\nexport const useOrgState = () => useSelector((state: AppState) => state.org)\n","export default __webpack_public_path__ + \"static/media/AuctionSnap.f1c1eaf1.png\";","import myLogo from './AuctionSnap.png'\n\nexport const Logo = ({ ...props }) => {\n return \"Auction\n}\n","import cn from 'classnames'\nimport {\n bindMenu,\n bindTrigger,\n usePopupState\n} from 'material-ui-popup-state/hooks'\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\nimport { Link, useHistory } from 'react-router-dom'\n\nimport {\n AppBar,\n Avatar,\n IconButton,\n Menu,\n MenuItem,\n Toolbar,\n Typography\n} from '@material-ui/core'\nimport {\n ChevronRight,\n ExitToApp as ExitIcon,\n HomeRounded as HomeIcon,\n Menu as MenuIcon,\n Person as PersonIcon,\n Settings,\n Web as WebIcon\n} from '@material-ui/icons'\n\nimport { Logo } from '../../../../icons/Logo'\nimport { logout } from '../../../../slices/authSlice'\nimport styles from './Header.module.css'\n\n// import { logout, useCurrentUser } from '@slices/authSlice'\n\nconst Header = ({ showMenu, isOpen, setIsOpen }) => {\n const popupState = usePopupState({ variant: 'popover', popupId: 'demoMenu' })\n const history = useHistory()\n const dispatch = useDispatch()\n\n const redirectToLogin = () => {\n dispatch(logout())\n history.push('/auth/login')\n }\n const redirectToHome = () => {\n history.push('/home')\n }\n return (\n \n \n {showMenu && (\n redirectToHome()}\n classes={{ root: cn(styles.menuButton) }} fontSize=\"large\">\n \n )}\n\n
\n \n \n \n
\n \n {/* {user?.firstname} */}\n \n \n \n \n \n\n \n {/* \n \n Website\n \n \n \n My Profile\n */}\n redirectToLogin()}>\n \n Sign Out\n \n \n
\n \n )\n}\n\nexport default Header\n","// Concat multiple classnames\n\nexport const cn = (...args) => {\n return args.filter((arg) => Boolean(arg)).join(' ')\n}\n","import React, { useState } from 'react'\nimport { useEffect } from 'react'\nimport { useHistory, useLocation, useRouteMatch } from 'react-router-dom'\n\nimport {\n ClickAwayListener,\n Collapse,\n Divider,\n Drawer,\n IconButton,\n List,\n ListItem,\n ListItemIcon,\n ListItemText\n} from '@material-ui/core'\nimport {\n BurstMode as BurstIcon,\n Web as WebIcon,\n LocationOn as LocationIcon,\n Gavel as GavelIcon,\n People as PeopleIcon,\n AddShoppingCart as AddShoppingCartIcon,\n ShoppingCart as ShoppingCartIcon,\n RemoveShoppingCart as RemoveShoppingCartIcon,\n SupervisedUserCircle as SupervisedUserCircleIcon,\n Assessment as AssessmentIcon,\n OpenInNew as OpenInNewIcon,\n GroupAdd as GroupAddIcon,\n LibraryAdd as LibraryAddIcon,\n ChevronLeft as ChevronIcon,\n ExpandLess,\n ExpandMore,\n Home as HomeIcon,\n SettingsOutlined as SettingsIcon\n} from '@material-ui/icons'\n\nimport { cn } from '../../../../util/classnames'\nimport styles from './MainMenu.module.css'\nimport {useEventState} from \"../../../../slices/eventSlice\";\n\ntype MenuItem = {\n label: string\n Icon?: any\n linkTo?: string\n children?: MenuItem[]\n}\n\nconst MainMenu = ({ isOpen, setIsOpen }) => {\n const history = useHistory()\n const { pathname } = useLocation()\n const eventState = useEventState()\n\n const MENU_ITEMS: MenuItem[] = [\n // {\n // label: 'Home',\n // linkTo: '/home'\n // },\n // {\n // label: 'Organization Settings',\n // linkTo: '/settings'\n // },\n {\n label: 'Auction Setup',\n linkTo: '',\n children: [\n {\n label: 'Auction Settings',\n linkTo: '/auction/' + eventState.eventId + '/settings',\n Icon: SettingsIcon\n },\n {\n label: 'Auction Sponsors',\n linkTo: '/auction/' + eventState.eventId + '/sponsors',\n Icon: BurstIcon\n },\n {\n label: 'Page/Email Customization',\n linkTo: '/auction/' + eventState.eventId + '/custommessages/',\n Icon: WebIcon\n },\n {\n label: 'Dropdown Fields',\n linkTo: '/auction/' + eventState.eventId + '/locationstags',\n Icon: LocationIcon\n },\n {\n label: 'Auction Items',\n linkTo: '/auction/' + eventState.eventId + '/auctionitems/',\n Icon: GavelIcon\n },\n {\n label: 'Participants',\n linkTo: '/auction/' + eventState.eventId + '/participants',\n Icon: PeopleIcon\n }\n ]\n },\n {\n label: 'Auction Activity',\n linkTo: '',\n children: [\n {\n label: 'Manual Bid Entry',\n linkTo: '/auction/' + eventState.eventId + '/manualbidentry',\n Icon: AddShoppingCartIcon\n },\n {\n label: 'Bid Maintenance',\n linkTo: '/auction/' + eventState.eventId + '/bidmaintenance',\n Icon: RemoveShoppingCartIcon\n },\n {\n label: 'Auction Status',\n linkTo: '/auction/' + eventState.eventId + '/AuctionStatus',\n Icon: RemoveShoppingCartIcon\n },\n {\n label: 'Live Auction Bid',\n linkTo: '/auction/' + eventState.eventId + '/liveauction',\n Icon: RemoveShoppingCartIcon\n },\n {\n label: 'Checkout',\n linkTo: '/auction/' + eventState.eventId + '/checkout',\n Icon: ShoppingCartIcon\n }\n ]\n },\n {\n label: 'Reports',\n linkTo: '',\n children: [\n {\n label: 'Participant Listing',\n linkTo: '/auction/' + eventState.eventId + '/participantlisting',\n Icon: SupervisedUserCircleIcon\n },\n // {\n // label: 'Accounting Report',\n // linkTo: '/event/' + eventState.eventId + '/accountingreport',\n // Icon: AssessmentIcon\n // }\n ]\n },\n {\n label: 'Integrations',\n linkTo: '',\n children: [\n {\n label: 'DS Event Settings',\n linkTo: '/auction/groupadd',\n Icon: GroupAddIcon\n },\n {\n label: 'Link Regs to DS',\n linkTo: '/auction/groupadd',\n Icon: GroupAddIcon\n },\n {\n label: 'Transfer trans to DS',\n linkTo: '/auction/transfer',\n Icon: OpenInNewIcon\n },\n {\n label: 'Transfer trans from DS',\n linkTo: '/auction/transfer',\n Icon: OpenInNewIcon\n },\n {\n label: 'Transfer new contacts to DS',\n linkTo: '/auction/transfer',\n Icon: OpenInNewIcon\n },\n {\n label: 'Interaction Records',\n linkTo: '/auction/transfer',\n Icon: OpenInNewIcon\n }]\n }\n ]\n\n const initialMenuState = MENU_ITEMS.reduce(\n (state, currentItem) =>\n !currentItem.linkTo ? { ...state, [currentItem.label]: false } : state,\n {}\n )\n\n const [isListOpen, setIsListOpen] = useState(initialMenuState)\n // const user = useCurrentUser()\n\n const getMenuItems = (items: MenuItem[], isSubMenu = false) => {\n return items.map(({ linkTo, label, Icon, children }, i) => {\n return (\n
\n \n linkTo\n ? history.push(linkTo)\n : setIsListOpen({\n ...isListOpen,\n [label]: !isListOpen[label]\n })\n }>\n {Icon && (\n \n \n \n )}\n \n {children && (isListOpen[label] ? : )}\n \n {children && (\n \n \n {getMenuItems(children, true)}\n \n \n )}\n
\n )\n })\n }\n\n return (\n \n
\n setIsOpen((c) => !c)}>\n \n \n
\n \n setIsOpen(false)}>\n {getMenuItems(MENU_ITEMS)}\n \n \n )\n}\nexport default MainMenu\n","import { useSelector } from 'react-redux'\n\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit'\n\nimport { AppState } from '../App/store'\n\nexport interface EvtState {\n eventId: string\n eventName: string\n eventCode?: string\n eventUrl?: string\n allowpaymentoffees?: boolean\n billme?: boolean\n allowattendedbytickettype?: boolean\n ccfee?: number\n}\n\nconst initialState: EvtState = {\n eventId: '',\n eventName: '',\n eventCode: '',\n eventUrl: '',\n allowpaymentoffees: false,\n billme: false,\n ccfee: 0,\n}\n\nexport const evtSlice = createSlice({\n name: 'event',\n initialState,\n reducers: {\n setEvt: (state, { payload }: PayloadAction) => {\n state.eventId = payload.eventId\n state.eventName = payload.eventName\n state.eventCode = (payload.eventCode ? payload.eventCode : state.eventCode)\n // state.eventStart = (payload.actual ? payload.actual : state.actual)\n // state.eventEnd = (payload.eventEnd ? payload.eventEnd : state.eventEnd)\n // state.bidStart = (payload.bidStart ? payload.bidStart : state.bidStart)\n // state.bidEnd = (payload.bidEnd ? payload.bidEnd : state.bidEnd)\n state.allowpaymentoffees = payload.allowpaymentoffees\n state.ccfee = payload.ccfee\n },\n setEvtUrl: (state, { payload }: PayloadAction) => {\n state.eventUrl = payload\n },\n }\n})\n\n/** ACTION EXPORTS */\nexport const {\n setEvt, setEvtUrl\n} = evtSlice.actions\n\n/** REDUCER EXPORT */\nexport default evtSlice.reducer\n\n/** STATE HOOK EXPORTS - hooks for components to get state */\nexport const useEvtState = () => useSelector((state: AppState) => state.evt)\n","import React, { FC, PropsWithChildren, useEffect, useState } from 'react'\nimport { Link, useHistory, useLocation } from 'react-router-dom'\n\nimport { Box, Container, IconButton } from '@material-ui/core'\nimport { red } from '@material-ui/core/colors'\nimport { ArrowBack, Menu, Settings } from '@material-ui/icons'\nimport LaunchIcon from '@mui/icons-material/Launch';\nimport { PagePathTypes } from '../../../App'\nimport { useEventState } from '../../../slices/eventSlice'\nimport { useOrgState } from '../../../slices/orgSlice'\nimport Header from './Header'\nimport MainMenu from './MainMenu'\nimport {useEvtState} from \"../../../slices/evtSlice\";\n\n// eslint-disable-next-line no-unused-vars\n\ntype Props = {\n children: any\n showHome?: boolean\n showArrow?: boolean\n showSettings?: boolean\n showMenu?: boolean\n showBackArrow?: boolean\n showOrgTitle?: boolean\n backArrowToAuction?: boolean\n backArrowToEvent?: boolean\n showEventUrl?: boolean\n showAuctionUrl?: boolean\n backArrowLocation?: boolean\n backArrowLocationValue?: string\n}\n\nconst Layout: React.FC> = (\n props: PropsWithChildren\n) => {\n const history = useHistory()\n const { pathname } = useLocation()\n const [isOpen, setIsOpen] = useState(false)\n const orgState = useOrgState()\n const eventState = useEventState()\n const evtState = useEvtState()\n const title = props.showOrgTitle ? orgState.name : props.showEventUrl ? evtState. eventName : eventState.eventName\n const goBack = () => {\n if(props.backArrowToAuction) {\n history.push('/auction/' + eventState.eventId )\n }\n else if (props.backArrowToEvent) {\n history.push('/event/' + evtState.eventId )\n }\n else{\n history.goBack()\n }\n }\n\n useEffect(() => {\n if (pathname) {\n setIsOpen(false)\n }\n }, [pathname])\n\n return (\n \n \n
\n \n
\n {props.backArrowLocation && (\n \n \n \n \n \n )}\n {props.showBackArrow && (\n \n \n \n )}\n {props.showArrow && (\n \n \n \n \n \n )}\n {/*Hamburger menu disabled*/}\n {/*{!props.showBackArrow && props.showMenu && (*/}\n {/* setIsOpen(true)}*/}\n {/* edge=\"start\"*/}\n {/* aria-label=\"go to home page\">*/}\n {/* */}\n {/* */}\n {/*)}*/}\n
\n \n \n {title}\n {(props.showEventUrl || props.showAuctionUrl) && (\n \n {console.log()}}\n style={{marginLeft: '2px'}}\n >\n \n \n \n )}\n \n \n
\n {props.showSettings && (\n \n \n \n \n \n )}\n
\n \n \n {/**/}\n {/* */}\n {props.children}\n {/**/}\n \n \n )\n}\n\nexport default Layout\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport type AuctionItems = {\n itemid: number\n itemnumber: string\n name: string\n shortdesc: string\n longdesc: string\n locationid: number\n taglistids: number\n liveauctiononly: boolean\n onsitesaleitem: boolean\n allowautobid: boolean\n donatedby: string\n donatedbyemail: string\n donationtypeid: number\n fairmarketvalue: number\n startingbid: number\n minimumraise: number\n buyitnowprice: number\n buyitnowonly: boolean\n quantityunlimited: boolean\n quantity: number\n imageloaded: boolean\n logo: string\n logourl: string\n pickupinstructions: string\n active: boolean\n itemtype: number\n itemorder: number\n}\n\nconst auctionItemsDefaults = {\n itemid: 0,\n itemnumber: \"\",\n name: \"\",\n shortdesc: \"\",\n longdesc: \"\",\n locationid: 0,\n taglistids: 0,\n liveauctiononly: false,\n onsitesaleitem: false,\n allowautobid: false,\n donatedby: \"\",\n donatedbyemail: \"\",\n donationtypeid: 0,\n fairmarketvalue: 0,\n startingbid: 0,\n minimumraise: 1,\n buyitnowprice: 0,\n buyitnowonly: false,\n quantityunlimited: false,\n quantity: 1,\n imageloaded: false,\n logo: \"\",\n logourl: \"\",\n pickupinstructions: \"\",\n active: true,\n itemtype: 1,\n itemorder: 0\n}\nexport type LiveAuctionItems = {\n itemid: number\n itemnumber: string\n name: string\n startingbid: number\n bidderparticipantid: number\n lastbid: number\n biddername: string\n biddernumber: number\n biddersource: string\n historyid: number\n livebidemailsent: string\n livebidcheckedout: string\n livebidconfirmed: string\n}\n\nconst defaultLiveAuctionItem = {\n itemid: 0,\n itemnumber: \"\",\n name: \"\",\n startingbid: 0,\n lastbid: 0,\n biddername: \"\",\n biddernumber: -1,\n biddersource: \"\",\n historyid: 0,\n livebidemailsent: \"\",\n livebidcheckedout: \"\",\n livebidconfirmed: \"\",\n bidderparticipantid : -1\n};\n\nexport type liveBidder = {\n rownumber: number\n bidderparticipantid: number\n biddername: string\n}\nconst liveBidderdefault = {\n rownumber: 0,\n bidderparticipantid: 0,\n biddername : \"\"\n}\n\nexport type liveAuctionLists = {\n LiveAuctionitemlist : LiveAuctionItems[]\n bidderlist : liveBidder[]\n}\nconst liveauctionDefault : liveAuctionLists ={\n LiveAuctionitemlist:[defaultLiveAuctionItem],\n bidderlist:[liveBidderdefault]\n}\nexport const globalAuctionItemsFetcher = async (body) => {\n const { data } = await axios.post('/eventitems', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.eventitems as AuctionItems[]\n}\n\nexport const useFetchAuctionItems = (eventiDvalue) => {\n console.log(\"use fetch auction items\")\n console.log(eventiDvalue)\n return useQuery(\n ['eventitems', eventiDvalue],\n () => globalAuctionItemsFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n placeholderData: [auctionItemsDefaults],\n //keepPreviousData: true\n }\n )\n}\n\nexport const globalLiveAuctionItemsFetcher = async (body) => {\n const { data } = await axios.post('/liveauction', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as liveAuctionLists\n}\nexport const useUpdateLiveBid = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`liveauction`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['liveeventitems'])\n }\n })\n}\nexport const useClearLiveBid = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`liveauctionclear`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['liveeventitems'])\n }\n })\n}\nexport const useFetchLiveAuctionItems = (eventiDvalue) => {\n return useQuery(\n ['liveeventitems', eventiDvalue],\n () => globalLiveAuctionItemsFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n placeholderData: liveauctionDefault\n }\n )\n}\n\n\n\nexport const useUpdateItemOrder = (eventiDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`eventitemsorder`, body), {\n onSuccess: () => {\n // const parsedData = JSON.parse(newData.data.jsonString)\n console.log(\"updatesuccess\")\n // console.log(parsedData.eventitems as AuctionItems[])\n // let newDataFields = parsedData.eventitems as AuctionItems[]\n // queryClient.setQueryData(['eventitems', eventid], newDataFields)\n console.log(eventiDvalue)\n queryClient.invalidateQueries(['eventitems', eventiDvalue])\n }\n })\n}\n\nexport const useConfirmLiveAuction = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`liveauctionconfirmsend`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['liveeventitems'])\n },\n });\n }","import { FC, PropsWithChildren } from 'react'\nimport { FormProvider, SubmitHandler, UseFormReturn } from 'react-hook-form'\n\ntype Props = {\n onSubmit: SubmitHandler\n methods: UseFormReturn\n className?: string\n formProps?: Object\n}\n\nfunction HookForm({\n children,\n methods,\n onSubmit,\n className = '',\n formProps = {}\n}: PropsWithChildren>) {\n return (\n \n \n {children}\n \n \n )\n}\n\nexport default HookForm\n","\nimport {\n Redirect,\n Route,\n Switch,\n useRouteMatch\n} from 'react-router-dom'\n\nimport { Logo } from '../../icons/Logo'\nimport styles from './AuthPage.module.css'\nimport ForgotPasswordForm from './ForgotPasswordForm'\nimport LoginForm from './LoginForm'\nimport ResetPasswordForm from './ResetPasswordForm'\n\nexport enum AuthPageSubPaths {\n login = '/login',\n forgotPassword = '/forgotPassword',\n resetPassword = '/resetPassword/:token'\n}\n\nconst AuthPage = () => {\n const { path } = useRouteMatch()\n\n return (\n
\n
\n
\n \n

Admin

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nexport default AuthPage\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\n\nimport {MenuItem, Switch as MuiSwitch, TextField} from '@material-ui/core'\n\nimport styles from './SelectInput.module.css'\n\ntype Props = {\n name: string\n label: string\n options: { value: any; label: string }[] | string[]\n defaultValue?: string\n rules?: Object\n required?: boolean\n disabled?: boolean\n includeNone?: boolean\n includeAll?: boolean\n textFieldProps?: Object\n onHandleChange?: Function\n onClick? : Function\n tooltipText?: string\n}\n\nconst SelectInput = ({\n name,\n label,\n options,\n defaultValue = '',\n rules,\n required = false,\n disabled = false,\n includeNone = true,\n includeAll = false,\n textFieldProps,\n onHandleChange,\n onClick,\n tooltipText = \"\"\n}: Props) => {\n const { control, formState } = useFormContext()\n\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n defaultValue: defaultValue,\n rules: { ...rules, required: required ? 'Field is required' : false }\n })\n\n const { errors } = formState\n \n return (\n {\n console.log(event)\n }}\n onClick={() => {\n onClick && onClick()\n }}\n variant=\"outlined\"\n size=\"small\"\n label={label}\n disabled={disabled}\n // value={'None'}\n error={errors[name] ? true : false}\n FormHelperTextProps={{\n classes: {\n error: styles.error\n },\n error: true\n }}\n InputProps={{\n classes: {\n root: styles.input,\n error: styles.error,\n focused: styles.focus\n }\n }}\n InputLabelProps={{\n classes: {\n root: styles.label,\n error: styles.error,\n focused: styles.focus\n },\n shrink: true\n }}\n helperText={errors[name]?.message}\n required={required}\n {...textFieldProps}\n {...inputProps}>\n\n {includeNone &&\n \n None\n \n }\n {includeAll &&\n \n ALL\n \n }\n {options && typeof options?.[0] === 'object'\n ? (options as { value: any; label: string }[])?.map(cat => (\n \n {cat.label}\n \n ))\n : (options as string[])?.map(cat => (\n \n {cat}\n \n ))}\n \n )\n}\n\nexport default SelectInput\n","import { useController, useFormContext } from 'react-hook-form'\n\nimport { Switch as MuiSwitch, SwitchProps } from '@material-ui/core'\n\nimport styles from './Switch.module.css'\n\ntype Props = {\n name: string\n rules?: Object\n switchProps?: SwitchProps\n defaultValue?: boolean\n disabled?: boolean\n}\n\nconst Switch = ({\n rules = {},\n name,\n switchProps = {},\n defaultValue = false,\n disabled = false\n}: Props) => {\n const { control } = useFormContext()\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules,\n defaultValue\n })\n\n return (\n \n )\n}\n\nexport default Switch\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\nimport {TextField, TextFieldProps, InputAdornment} from '@material-ui/core'\n\nimport styles from './TextInput.module.css'\n\ntype Props = {\n name: string\n label: string\n required?: boolean\n rules?: Object\n textFieldProps?: TextFieldProps\n defaultValue?: string\n startAdornment?: string\n endAdornment?: string\n disabled?: boolean\n tooltipText?: string\n maxLength?: number\n}\n\nexport const StyledMUIInput = ({ ...props }) => {\n return (\n {props.startAdornment},\n endAdornment: {props.endAdornment},\n }}\n inputProps={{\n maxLength: props.maxLength\n }}\n InputLabelProps={{\n classes: {\n root: styles.label,\n error: styles.error,\n focused: styles.focus\n },\n shrink: true\n }}\n size=\"small\"\n variant=\"outlined\"\n {...props}\n />\n\n )\n}\n\nconst TextInput = ({\n name,\n label,\n rules = {},\n required = false,\n defaultValue = \"\",\n textFieldProps,\n startAdornment = \"\",\n endAdornment = \"\",\n disabled = false,\n tooltipText= \"\",\n maxLength\n}: Props) => {\n const { control, formState } = useFormContext()\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules: { ...rules, required: required ? 'Field is required' : false },\n defaultValue: defaultValue\n })\n\n return (\n \n )\n}\n\nexport default TextInput\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateEventItem = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`eventitems`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['eventitems'])\n }\n })\n}\n\nexport const useUpdateEventItem = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`eventitems`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['eventitems'])\n }\n })\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\n\nexport type Locations = {\n rownumber: number\n id: number\n name: string\n closeddate: string\n active: boolean\n}\n\nexport type Tags = {\n rownumber: number\n id: number\n name: string\n active: boolean\n}\n\nexport type DonationType = {\n rownumber: number\n id: number\n name: string\n active: boolean\n}\n\nexport type AccountingCode = {\n rownumber: number\n id: number\n name: string\n active: boolean\n}\n\nexport type LocationTags = {\n locations: Locations[]\n tags: Tags[]\n donationtype: DonationType[]\n accountingcode: AccountingCode[]\n}\n\nexport const globalLocationTagsFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: Number(eventIdvalue) });\n const { data } = await axios.post('/locationtags', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as LocationTags\n}\n\nexport const useFetchLocationTags = (eventid) => {\n return useQuery(\n ['locationtags', eventid],\n () => globalLocationTagsFetcher(eventid),\n {\n staleTime: 120000,\n placeholderData: { locations: [], tags: [], donationtype: [], accountingcode: [] },\n keepPreviousData: true\n }\n )\n}\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\nimport NumberFormat, {NumberFormatValues} from 'react-number-format'\nimport {InputAdornment, TextField} from '@material-ui/core'\nimport styles from './MaskedInput.module.css'\nimport {StyledMUIInput} from \"../TextInput/TextInput\";\n\ntype Props = {\n name: string\n format?: string\n mask?: string\n disabled?: boolean\n label: string\n required?: boolean\n rules?: Object\n textFieldProps?: Object\n startAdornment?: string\n endAdornment?: string\n defaultValue?: string\n placeholder?: string\n prefix?: string\n onValueChange?: (values: NumberFormatValues) => void,\n thousandsGroupStyle?: string,\n thousandSeparator?: boolean\n tooltipText?: string\n}\n\nconst MaskedInput = ({\n name,\n label,\n format,\n mask,\n disabled,\n rules = {},\n required = false,\n textFieldProps,\n startAdornment = \"\",\n endAdornment = \"\",\n defaultValue = null,\n placeholder = '',\n prefix = \"$\",\n onValueChange,\n thousandsGroupStyle = 'thousand',\n thousandSeparator = true,\n tooltipText = ''\n}: Props) => {\n const { control, formState } = useFormContext()\n\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules: { ...rules, required: required ? 'Field is required' : false },\n defaultValue: defaultValue\n })\n\n const { errors } = formState\n\n return (\n {startAdornment},\n endAdornment: {endAdornment}\n }}\n InputLabelProps={{\n classes: {\n root: styles.label,\n error: styles.error,\n focused: styles.focus\n },\n shrink: true\n }}\n size={'small' as any}\n variant=\"outlined\"\n label={label}\n error={errors[name] ? true : false}\n helperText={errors[name]?.message}\n required={required}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n defaultValue={defaultValue}\n prefix={prefix}\n thousandGroupStyle={thousandsGroupStyle}\n {...textFieldProps}\n {...inputProps}\n />\n )\n}\n\nexport default MaskedInput\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\nimport NumberFormat, {NumberFormatValues} from 'react-number-format'\n\nimport {InputAdornment, TextField} from '@material-ui/core'\n\nimport styles from './MaskedInput.module.css'\nimport {StyledMUIInput} from \"../TextInput/TextInput\";\n\ntype Props = {\n name: string\n format?: string\n mask?: string\n disabled?: boolean\n label: string\n required?: boolean\n rules?: Object\n textFieldProps?: Object\n startAdornment?: string\n endAdornment?: string\n defaultValue?: string\n prefix?: string\n onValueChange?: (values: NumberFormatValues) => void,\n thousandsGroupStyle?: string,\n thousandSeparator?: boolean,\n tooltipText?: string\n}\n\nconst CustomMaskedInput = ({\n name,\n label,\n format,\n mask,\n disabled,\n rules = {},\n required = false,\n textFieldProps,\n startAdornment = \"\",\n endAdornment = \"\",\n defaultValue = '',\n prefix = \"$\",\n onValueChange,\n thousandsGroupStyle = 'thousand',\n thousandSeparator = true,\n tooltipText = ''\n}: Props) => {\n const { control, formState } = useFormContext()\n\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules: { ...rules, required: required ? 'Field is required' : false },\n defaultValue: defaultValue\n })\n\n const { errors } = formState\n\n return (\n {startAdornment},\n endAdornment: {endAdornment}\n }}\n InputLabelProps={{\n classes: {\n root: styles.label,\n error: styles.error,\n focused: styles.focus\n },\n shrink: true\n }}\n size={'small' as any}\n variant=\"outlined\"\n label={label}\n error={errors[name] ? true : false}\n helperText={errors[name]?.message}\n required={required}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n defaultValue={defaultValue}\n prefix={prefix}\n thousandGroupStyle={thousandsGroupStyle}\n {...textFieldProps}\n {...inputProps}\n />\n )\n}\n\nexport default CustomMaskedInput\n","import React, {useEffect, useMemo, useState} from 'react'\nimport {useForm, useFormContext} from 'react-hook-form'\n\nimport {\n Button, Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, FormGroup, Grid, InputAdornment, TextField, Typography\n} from '@material-ui/core'\nimport {Close, PhotoLibrary} from '@material-ui/icons'\n\nimport HookForm from '../../../components/common/HookForm'\nimport LoadingBackdrop from '../../../components/common/LoadingBackdrop'\nimport ChipsList from '../../../components/common/inputs/ChipsList'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport Switch from '../../../components/common/inputs/Switch'\n// import Switch from '@mui/material/Switch';\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useCreateEventItem } from '../../../mutations/useCreateEventItem'\nimport { useFetchLocationTags } from '../../../queries/events/useFetchLocationTags'\nimport { useFetchDonationTypes } from '../../../queries/useFetchDonationTypes'\nimport styles from './AuctionItemsTable.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport MaskedInput from \"../../../components/common/inputs/MaskedInput\";\nimport {emailRegex} from \"../../../util/formValidation\";\nimport Dropzone from \"react-dropzone\";\nimport {\n FormControl,\n FormControlLabel,\n InputLabel, ListItemText,\n MenuItem,\n OutlinedInput,\n Select, SelectChangeEvent,\n ToggleButton,\n ToggleButtonGroup\n} from \"@mui/material\";\nimport NumberFormat from 'react-number-format'\nimport CustomMaskedInput from \"../../../components/common/inputs/MaskedInput/CustomMaskedInput\";\nimport imageCompression from \"browser-image-compression\";\n\n\ninterface FormData {\n itemid: number\n itemnumber: string\n name: string\n shortdesc: string\n longdesc: string\n location: number\n taglistids: [{\n tag: number\n }]\n allowautobid: boolean\n donatedby: string\n donatedbyemail: string\n donationtypeid: number\n accountingcodeid: number\n fairmarketvalue: number\n startingbid: number\n minimumraise: number\n buyitnowprice: number\n buyItNowValueOnlineAuction: number\n buyItNowChangeOnlineOnly: number\n quantityunlimited: boolean\n quantity: number\n maxpurchasequantity: number\n imageloaded: boolean\n logo: string\n logourl: string\n logoremoved: boolean\n pickupinstructions: string\n active: string\n toggleItemType: string\n}\n\nexport const AuctionItemsForm = ({ isOpen, setIsOpen, gridParams, reloadForm }) => {\n const formMethods = useForm()\n // const { control, formState } = useFormContext()\n const eventState = useEventState()\n const title = gridParams ? \"Edit Auction Item\" : \"Create Auction Item\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [tags, setTags] = useState<{ value: any; label: string }[]>([])\n const { data: locationAndTags } = useFetchLocationTags(Number(eventState.eventId))\n // const { data: donationTypes } = useFetchDonationTypes()\n const [quantityValue, setQuantityValue] = useState(1)\n const [fairMarketValue, setFairMarketValue] = useState(0)\n const [startingBidValue, setStartingBidValue] = useState(0)\n const [buyItNowValue, setbuyItNowValue] = useState(null)\n const [buyItNowValueOnlineAuction, setbuyItNowValueOnlineAuction] = useState(null)\n const [buyItNowValueOnlineOnly, setbuyItNowValueOnlineOnly] = useState(null)\n const [minimumRaiseValue, setMinimumRaiseValue] = useState(1)\n const [tagSelection, setTagSelection] = React.useState([]);\n const [buyItNowActive, setbuyItNowActive] = useState(true)\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const watchLogo = watch('logourl')\n const allowautobidWatch = watch('allowautobid')\n const watchLogoData = watch('logo')\n const minNumberRegex = /^([1-9][0-9]{0,2}|1000)$/\n const [toggleItemType, setToggleItemType] = React.useState(\"online-auction\");\n const [allowAutoBidValue, setAllowAutoBidValue] = useState()\n const qtyUnlimited = watch('quantityunlimited')\n\n const ITEM_HEIGHT = 48;\n const ITEM_PADDING_TOP = 8;\n const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n }\n\n useEffect(() => {\n if (qtyUnlimited) {\n setQuantityValue(0)\n setValue('quantity', 0)\n }\n else {\n setQuantityValue(1)\n setValue('quantity', 1)\n }\n }, [qtyUnlimited])\n\n useEffect(() => {\n if (allowautobidWatch) {\n setValue('quantity', 1)\n }\n }, [allowautobidWatch])\n\n const handleQuantityChange = (event) => {\n var maxQty = event.value\n if (maxQty > 25) {\n maxQty = 25\n }\n if (maxQty > 0) {\n setValue('maxpurchasequantity', maxQty)\n }\n\n setQuantityValue(event.value)\n }\n\n const handleFairmarketChange = (event) => {\n setFairMarketValue(event.floatValue)\n }\n\n const handleStartingBidChange = (event) => {\n setStartingBidValue(event.floatValue)\n }\n\n const handleBuyItNowChange = (event) => {\n\n if (event.floatValue <= 0 && (toggleItemType === 'buy-it-now-online' || toggleItemType === 'buy-it-now-in-person')) {\n setbuyItNowValue(event.floatValue)\n setError('buyitnowprice', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n\n setbuyItNowValue(event.floatValue)\n }\n\n const handleBuyItNowChangeOnlineAuction = (event) => {\n if (event.floatValue <= 0 && (toggleItemType === 'buy-it-now-online' || toggleItemType === 'buy-it-now-in-person')) {\n setbuyItNowValueOnlineAuction(event.floatValue)\n setError('buyitnowprice', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n setbuyItNowValueOnlineAuction(event.floatValue)\n }\n\n const handleBuyItNowChangeOnlineOnly = (event) => {\n if (event.floatValue <= 0 && (toggleItemType === 'buy-it-now-online' || toggleItemType === 'buy-it-now-in-person')) {\n setbuyItNowValueOnlineOnly(event.floatValue)\n setError('buyItNowChangeOnlineOnly', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n\n setbuyItNowValueOnlineOnly(event.floatValue)\n }\n\n const handleMinimumRaiseChange = (event) => {\n setMinimumRaiseValue(event.floatValue)\n }\n\n useEffect(() => {\n let selectedTags = []\n let selectedTagsNames= []\n gridParams?.taglistids.forEach(tagId => {\n const tagToAdd = locationAndTags?.tags?.find(tag => tag.id === tagId);\n\n if (tagToAdd && tagToAdd.active) {\n selectedTags.push({value: tagToAdd.id, label: tagToAdd.name})\n selectedTagsNames.push(tagToAdd.name)\n }\n })\n setTags(selectedTags)\n setTagSelection(selectedTagsNames)\n\n\n\n setFairMarketValue(gridParams ? gridParams.fairmarketvalue : 0)\n setStartingBidValue(gridParams ? gridParams.startingbid : 0)\n setMinimumRaiseValue(gridParams ? gridParams.minimumraise : 1)\n setbuyItNowValue(gridParams ? gridParams.buyitnowprice : null)\n setbuyItNowValueOnlineAuction(gridParams ? gridParams.buyitnowprice : null)\n setbuyItNowValueOnlineOnly(gridParams ? gridParams.buyitnowprice : null)\n\n setQuantityValue(gridParams?.quantity)\n setAllowAutoBidValue(gridParams ? gridParams.allowautobid : false)\n\n\n if (gridParams && gridParams.itemtype === 1) {\n setToggleItemType('online-auction')\n }\n else if (gridParams && gridParams.itemtype === 2) {\n setToggleItemType('live-auction')\n }\n else if (gridParams && gridParams.itemtype === 3) {\n setToggleItemType('buy-it-now-online')\n }\n else if (gridParams && gridParams.itemtype === 4) {\n setToggleItemType('buy-it-now-in-person')\n }\n\n reset({\n itemid: (gridParams ? gridParams.itemid : 0),\n itemnumber: (gridParams ? gridParams.itemnumber : ''),\n name: (gridParams ? gridParams.name : ''),\n shortdesc: (gridParams ? gridParams.shortdesc : ''),\n longdesc: (gridParams ? gridParams.longdesc : ''),\n location: (gridParams ? gridParams.locationid : 0),\n taglistids: (gridParams ? gridParams.taglistids : []),\n allowautobid: (gridParams ? gridParams.allowautobid : false),\n donatedby: (gridParams ? gridParams.donatedby : ''),\n donatedbyemail: (gridParams ? gridParams.donatedbyemail : ''),\n donationtypeid: ((gridParams && gridParams.donationtypeid) ? gridParams.donationtypeid : 0),\n accountingcodeid: ((gridParams && gridParams.accountingcodeid) ? gridParams.accountingcodeid : 0),\n fairmarketvalue: (gridParams ? gridParams.fairmarketvalue : 0),\n startingbid: (gridParams ? gridParams.startingbid : 0),\n minimumraise: (gridParams ? gridParams.minimumraise : 1),\n buyitnowprice:(gridParams && gridParams.buyitnowprice > 0 ? gridParams.buyitnowprice : null),\n buyItNowValueOnlineAuction: (gridParams && gridParams.buyitnowprice > 0 ? gridParams.buyitnowprice : null),\n buyItNowChangeOnlineOnly:(gridParams && gridParams.buyitnowprice > 0 ? gridParams.buyitnowprice : null),\n quantityunlimited: (gridParams ? gridParams.quantityunlimited : false),\n quantity: (gridParams ? gridParams.quantity : 1),\n maxpurchasequantity: (gridParams ? gridParams.maxpurchasequantity : 1),\n imageloaded: (gridParams ? gridParams.imageloaded : false),\n logo: (gridParams ? gridParams.logo : ''),\n logourl: (gridParams ? gridParams.logourl : ''),\n logoremoved: false,\n pickupinstructions: (gridParams ? gridParams.pickupinstructions : ''),\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }, [reloadForm, locationAndTags])\n \n const tagOptions = useMemo(\n () =>\n locationAndTags?.tags?.filter((e) => e.active === true).map((tag) => {\n return { value: tag.id, label: tag.name }\n }),\n [locationAndTags]\n )\n\n const locations = locationAndTags ? locationAndTags : { locations:[] }\n\n const locationOptions = useMemo(\n () =>\n locations.locations?.filter((e) => e.active === true).map((location) => {\n return { value: location.id, label: location.name }\n }),\n [locationAndTags]\n )\n\n const donationnTypes = locationAndTags ? locationAndTags : { donationtype:[] }\n const donationTypeOptions = () => {\n const dtRows = donationnTypes.donationtype?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: 0, label: 'None'}, ...dtRows]\n }\n else {\n return [{value: 0, label: 'None'}]\n }\n }\n\n const accountingTypes = locationAndTags ? locationAndTags : { accountingcode:[] }\n const accountingCodeOptions = () => {\n const dtRows = accountingTypes.accountingcode?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: 0, label: 'None'}, ...dtRows]\n }\n else {\n return [{value: 0, label: 'None'}]\n }\n }\n\n\n const createMutation = useCreateEventItem()\n\n const onSubmit = async (data: FormData) => {\n if (toggleItemType === 'online-auction' && data.location === 0 ) {\n setError('location', { type: 'required', message: 'Location is required' })\n return\n }\n\n if (buyItNowValue <= 0 && toggleItemType === 'buy-it-now-in-person') {\n setError('buyitnowprice', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n\n if (buyItNowValueOnlineOnly <= 0 && toggleItemType === 'buy-it-now-online') {\n setError('buyItNowChangeOnlineOnly', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n\n var tagsToSave = []\n locationAndTags?.tags?.forEach(tag => {\n if (tagSelection.find((item) => item === tag.name)) {\n tagsToSave.push(tag.id)\n }\n })\n\n const locs = locationAndTags?.locations?.filter(item => {\n return data.location === item.id\n });\n\n var finalData = gridParams ? { ...data, eventid: Number(eventState.eventId) } : { ...data, eventid: Number(eventState.eventId) }\n\n var localItemType = 1\n var buyItNowVal = buyItNowValue\n if (toggleItemType === 'online-auction') {\n localItemType = 1\n buyItNowVal = buyItNowValueOnlineAuction\n }\n else if (toggleItemType === 'live-auction') {\n localItemType = 2\n }\n else if (toggleItemType === 'buy-it-now-online') {\n localItemType = 3\n buyItNowVal = buyItNowValueOnlineOnly\n }\n else if (toggleItemType === 'buy-it-now-in-person') {\n localItemType = 4\n }\n\n const { data: response } = await createMutation.mutateAsync( {\n eventid: Number(eventState.eventId),\n itemid: Number(finalData.itemid),\n itemnumber: finalData.itemnumber,\n name: finalData.name,\n shortdesc: finalData.shortdesc,\n longdesc: finalData.longdesc,\n locationid: (locs && locs.length > 0 ? locs[0].id : 0),\n taglistids: tagsToSave,\n allowautobid: finalData.allowautobid,\n donatedby: finalData.donatedby,\n donatedbyemail: finalData.donatedbyemail,\n donationtypeid: (finalData.donationtypeid && finalData.donationtypeid.toString().length > 0 && finalData.donationtypeid.toString() !== 'none' ? finalData.donationtypeid : 0),\n accountingcodeid: (finalData.accountingcodeid && finalData.accountingcodeid.toString().length > 0 && finalData.accountingcodeid.toString() !== 'none' ? finalData.accountingcodeid : 0),\n fairmarketvalue: fairMarketValue,\n startingbid: startingBidValue,\n minimumraise: minimumRaiseValue,\n buyitnowprice: buyItNowVal,\n quantityunlimited: finalData.quantityunlimited,\n quantity: Number(quantityValue),\n maxpurchasequantity: Number(finalData.maxpurchasequantity),\n imageloaded: finalData.imageloaded,\n logo: watchLogoData,\n logourl: \"\",\n logoremoved: finalData.logoremoved,\n pickupinstructions: finalData.pickupinstructions,\n active: finalData.active === 'Active',\n itemtype: localItemType\n })\n\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const onLogoDrop = async (files: File[]) => {\n const options = {\n maxSize: 1,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n const compressedFile = await imageCompression(files[0], options)\n\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result as string\n setValue('logo', data.split(';base64,')[1])\n }\n\n fileReader.readAsDataURL(compressedFile)\n }\n\n const currencyFormat = (num) => {\n return '$' + num.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n }\n\n const clickRemoveLogo = () => {\n setValue(\"logourl\", \"\")\n setValue('logoremoved', true)\n }\n\n const handleTagChange = (event: SelectChangeEvent) => {\n const {\n target: { value },\n } = event;\n var values = []\n if (typeof value === 'string') {\n values = value.split(',')\n }\n else {\n value?.forEach(v => {\n if (v.length > 0) {\n values.push(v)\n }\n })\n }\n\n setTagSelection(values)\n }\n\n const handleTypeChange = (\n event: React.MouseEvent,\n newAlignment: string\n ) => {\n if (newAlignment !== null) {\n const loc : any = getValues('location')\n if (newAlignment === 'online-auction' && loc === 'none') {\n setError('location', { type: 'required', message: 'Location is required' })\n }\n else if (newAlignment == 'live-auction') {\n setQuantityValue(1)\n }\n\n setToggleItemType(newAlignment)\n }\n }\n\n const handleAllowAutoBidChange = (event) => {\n // localStorage.setItem('activeOnly', event.target.checked)\n // if (event.target.checked) {\n // setEvents(data.filter((e) => e.active === true))\n // } else {\n // setEvents(data)\n // }\n }\n // const { errors } = formState\n\n return (\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface EventSettings {\n rownumber: number\n eventid: number\n name: string\n code: string\n active: boolean\n start: string\n end: string\n bidstart: string\n bidend: string\n timezone: string\n allowcustomlocations: boolean\n allowbillme: boolean\n allowbuyitnow: boolean\n allowbidanonymously: boolean\n allowautobid: boolean\n allowautobidincrement: boolean\n approvalofbidders: boolean\n allowcreditcards: boolean\n allowpaymentoffees: boolean\n ccfee: number\n startbiddernum: number\n receipttemplateid: number\n allowtexting: boolean\n allowguestentry: boolean\n eventbiddingopen: string\n eventbiddingclosed: string\n textprefix: string\n logourl: string,\n eventprivacy: string,\n logo: string\n eventshowbidderpaddlenumber: boolean\n eventspaymentprocessorisreadonly: boolean\n eventusepaddlenumber: boolean\n timezonelist: timezoneData[]\n receipttemplatelist: receiptData[]\n paymentprocessorlist: paymentProcessorData[]\n eventspaymentprocessorkey: string\n status: string\n}\n\nexport interface timezoneData {\n timezone: string\n}\n\nexport interface receiptData {\n receipttemplateid: number\n receipttemplatename: string\n}\n\nexport interface paymentProcessorData {\n paymentprocessorkey: string\n paymentprocessorname: string\n}\n\nconst defaultEventSettings = {\n rownumber: 0,\n eventid: 0,\n name: '',\n code: '',\n active: false,\n start: '',\n end: '',\n bidstart: '',\n bidend: '',\n timezone: '',\n allowcustomlocations: false,\n allowbillme: true,\n allowbuyitnow: true,\n allowbidanonymously: true,\n allowautobid: true,\n allowautobidincrement: true,\n approvalofbidders: false,\n allowcreditcards: true,\n allowpaymentoffees: true,\n allowtexting: true,\n allowguestentry: true,\n ccfee: 2.5,\n startbiddernum: 0,\n receipttemplateid: 1,\n eventbiddingopen: '',\n eventbiddingclosed: '',\n textprefix: '',\n logourl: '',\n eventprivacy: '',\n logo: '',\n eventshowbidderpaddlenumber: false,\n eventusepaddlenumber: false,\n eventspaymentprocessorisreadonly: false,\n timezonelist: [],\n receipttemplatelist: [],\n paymentprocessorlist: [],\n eventspaymentprocessorkey: \"\",\n status: \"\",\n}\n\nexport const globalEventSettingsFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: eventIdvalue })\n const { data } = await axios.post('/eventsettings', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as EventSettings\n}\n\nexport const useFetchEventSettings = (eventid, enabled = true) => {\n\n return useQuery(\n ['eventsettings', eventid],\n () => globalEventSettingsFetcher(eventid),\n {\n placeholderData: defaultEventSettings,\n enabled\n }\n )\n}\n","import { useDispatch } from 'react-redux'\nimport {globalEventSettingsFetcher} from \"./events/useFetchEventSettings\";\nimport {EventState, setEvent, useEventState} from \"../slices/eventSlice\";\nimport {useEffect} from \"react\";\n\nexport const useAutoEvent = (eventId: string) => {\n const eventState = useEventState()\n const dispatch = useDispatch()\n\n useEffect(() => {\n globalEventSettingsFetcher(Number(eventId)).then((data) => {\n if (data) {\n // console.log(data)\n const newState: EventState = {\n eventId: data?.eventid?.toString(),\n eventName: data.name,\n eventCode: data.code,\n eventStart: data.start,\n eventEnd: data.end,\n bidStart: data.bidstart,\n bidEnd: data.bidend,\n allowpaymentoffees: data?.allowpaymentoffees,\n ccfee: data?.ccfee,\n }\n dispatch(setEvent(newState))\n }\n })\n }, [eventId])\n\n // if (eventState.eventId != eventId) {\n // globalEventSettingsFetcher(Number(eventId)).then((data) => {\n // if (data) {\n // // console.log(data)\n // const newState: EventState = {\n // eventId: data?.eventid?.toString(),\n // eventName: data.name,\n // eventCode: data.code,\n // eventStart: data.start,\n // eventEnd: data.end,\n // bidStart: data.bidstart,\n // bidEnd: data.bidend,\n // allowpaymentoffees: data?.allowpaymentoffees,\n // ccfee: data?.ccfee,\n // }\n // dispatch(setEvent(newState))\n // }\n // })\n // }\n}\n","import React, { useState } from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport { useFetchAuctionItems, useUpdateItemOrder } from '../../../queries/useActionItemsFetch'\nimport { AuctionItemsForm } from './AuctionItemsForm'\nimport styles from './AuctionItemsTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../../slices/eventSlice\";\nimport {useFetchLocationTags} from \"../../../queries/events/useFetchLocationTags\";\nimport {useCreateEventItem} from \"../../../mutations/useCreateEventItem\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../../queries/useAutoEvent\";\nimport {useFetchDonationTypes} from \"../../../queries/useFetchDonationTypes\";\nimport {Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport {getValues} from \"export-from-json/dist/types/utils\";\n\n\nconst auctionItemsDefaults = {\n itemid: null,\n itemnumber: '',\n name: '',\n shortdesc: '',\n longdesc: '',\n locationid: 0,\n taglistids: [],\n itemtype: 0,\n liveauctiononly: false,\n onsitesaleitem: false,\n allowautobid: false,\n donatedby: '',\n donatedbyemail: 0,\n donationtypeid: 0,\n accountingcodeid: 0,\n fairmarketvalue: 0,\n startingbid: 0,\n minimumraise: 1,\n buyitnowprice: 0,\n buyitnowonly: false,\n quantityunlimited: false,\n quantity: 0,\n maxpurchasequantity: 0,\n imageloaded: false,\n logo: \"\",\n logourl: \"\",\n pickupinstructions: \"\",\n active: true\n}\n\ninterface Params {\n id: string\n}\n\nconst AuctionItemsTable = () => {\n const { id } = useParams()\n useAutoEvent(id)\n const queryClient = useQueryClient()\n const eventState = useEventState()\n // const { data: donationTypes } = useFetchDonationTypes()\n const eventItemCreate = useCreateEventItem()\n const [gridParams, setGridParams] = useState(auctionItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n\n const { data, isLoading } = useFetchAuctionItems( Number(eventState.eventId) )\n const { data: locationAndTags } = useFetchLocationTags(Number(eventState.eventId))\n const updateItemOrder = useUpdateItemOrder(eventState.eventId)\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n if (data) {\n console.log(data)\n console.log(locationAndTags)\n rows = data.map((item) => {\n var tag = { name: \"\"}\n var location = { name: \"\" }\n var donationTypes = { name: \"\" }\n var accountingCodes = { name: \"\" }\n if (locationAndTags.tags) {\n tag = locationAndTags.tags.filter((e) => (e.active && Number(e.id) === Number(item.taglistids)))[0]\n }\n if (locationAndTags.locations) {\n location = locationAndTags.locations.filter((e) => (e.active && Number(e.id) === Number(item.locationid)))[0]\n }\n if (locationAndTags.donationtype) {\n donationTypes = locationAndTags.donationtype.filter((e) => (e.active && Number(e.id) === Number(item.donationtypeid)))[0]\n }\n // if (locationAndTags.accountingcode) {\n // accountingCodes = locationAndTags.accountingcode.filter((e) => (e.active && Number(e.id) === Number(item.accountingcodeid)))[0]\n // }\n return { id: item.itemid, ...item, tags: tag ? tag.name : \"\", location: location ? location.name : \"\", donationtype: donationTypes ? donationTypes.name : \"\"}\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const getAuctionType = ((auctionTypeId: number) => {\n if (auctionTypeId === 1) {\n return 'Online Auction'\n }\n else if (auctionTypeId === 2) {\n return 'Live Auction Only'\n }\n else if (auctionTypeId === 3) {\n return 'Buy It Now Only (Online)'\n }\n else if (auctionTypeId === 4) {\n return 'Buy It Now Only (In-Person Only)'\n }\n })\n\n const getDonationType = ((donationId: number) => {\n const dt = locationAndTags?.donationtype?.find((type) => (type.active && type.id === donationId))\n return ((dt && dt.name) ? dt.name : '')\n })\n\n const getAccountCode = ((accountingCodeId: number) => {\n const at = locationAndTags?.accountingcode?.find((type) => (type.active && type.id === accountingCodeId))\n return ((at && at.name) ? at.name : '')\n })\n\n const getTagsDisplayString = ((tagsArray: any) => {\n var stringDisplay = ''\n tagsArray?.forEach(x => {\n const cTag = locationAndTags?.tags?.find((findTag) => (findTag.active && findTag.id === x))\n if (cTag) {\n if (stringDisplay.length > 0) {\n stringDisplay += ', '\n }\n stringDisplay += cTag.name\n }\n })\n return stringDisplay\n })\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const ai = rows.filter((item) => item.itemid === Number(params.id))[0]\n setGridParams( {\n itemid: ai.itemid,\n itemnumber: ai.itemnumber,\n name: ai.name,\n shortdesc: ai.shortdesc,\n longdesc: ai.longdesc,\n locationid: ai.locationid,\n taglistids: ai.taglistids,\n itemtype: ai.itemtype,\n liveauctiononly: ai.liveauctiononly,\n onsitesaleitem: ai.onsitesaleitem,\n allowautobid: ai.allowautobid,\n donatedby: ai.donatedby,\n donatedbyemail: ai.donatedbyemail,\n donationtypeid: ai.donationtypeid,\n accountingcodeid: ai.accountingcodeid,\n fairmarketvalue: ai.fairmarketvalue,\n startingbid: ai.startingbid,\n minimumraise: ai.minimumraise,\n buyitnowprice: ai.buyitnowprice,\n buyitnowonly: ai.buyitnowonly,\n quantityunlimited: ai.quantityunlimited,\n quantity: ai.quantity,\n maxpurchasequantity: ai.maxpurchasequantity,\n imageloaded: ai.imageloaded,\n logo: \"\",\n logourl: ai.logourl,\n pickupinstructions: ai.pickupinstructions,\n active: ai.active\n })\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'itemnumber').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventState.eventId),\n \"itemid\": id,\n \"delete\": true\n }\n const { data: response } = await eventItemCreate.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const canDelete = (active) => {\n if (new Date(eventState.bidStart) <= new Date()) {\n // console.log('date is valid')\n return !active\n }\n else {\n return true\n }\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n minWidth: 120,\n sortable: false,\n },\n {\n field: 'itemorder',\n type: 'number',\n headerName: 'Item Order',\n minWidth: 120,\n hide: true\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n minWidth: 150,\n sortable: false,\n },\n {\n field: 'shortdesc',\n type: 'string',\n headerName: 'Short Desc',\n minWidth: 150,\n sortable: false,\n hide: true,\n },\n {\n field: 'longdesc',\n type: 'string',\n headerName: 'Long Desc',\n minWidth: 150,\n sortable: false,\n hide: true,\n },\n {\n field: 'liveauctiononly',\n type: 'string',\n headerName: 'Live Auction Only',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'onsitesaleitem',\n type: 'string',\n headerName: 'OnSite Only',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'allowautobid',\n type: 'string',\n headerName: 'Allow Auto Bid',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'donatedby',\n type: 'string',\n headerName: 'Donated By',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'donatedbyemail',\n type: 'string',\n headerName: 'Donated By Email',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'startingbid',\n type: 'string',\n headerName: 'Starting Bid',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'buyitnowprice',\n type: 'string',\n headerName: 'Buy It Now Price',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'buyitnowonly',\n type: 'string',\n headerName: 'Buy It Now Only',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'quantityunlimited',\n type: 'string',\n headerName: 'Quantity Unlimited',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'pickupinstructions',\n type: 'string',\n headerName: 'Pickup Instructions',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'itemtype',\n type: 'number',\n align: 'left',\n headerAlign: 'left',\n headerName: 'Auction Type',\n width: 250,\n editable: false,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? getAuctionType(Number(params.value)) : 'None')\n },\n },\n // {\n // field: 'donationtypeid',\n // type: 'number',\n // align: 'left',\n // headerAlign: 'left',\n // headerName: 'Donation Type',\n // width: 175,\n // editable: false,\n // sortable: false,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return (params.value ? getDonationType(Number(params.value)) : \"None\")\n // },\n // },\n // {\n // field: 'accountingcodeid',\n // type: 'number',\n // align: 'left',\n // headerAlign: 'left',\n // headerName: 'Accounting Code',\n // width: 175,\n // editable: false,\n // sortable: false,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return (params.value ? getAccountCode(Number(params.value)) : \"None\")\n // },\n // },\n {\n field: 'location',\n type: 'string',\n headerName: 'Location',\n sortable: false,\n width: 175\n },\n {\n field: 'taglistids',\n type: 'string',\n headerName: 'Tags',\n width: 175,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? getTagsDisplayString(params.value) : \"\")\n },\n },\n {\n field: 'quantity',\n type: 'string',\n headerName: 'Quantity',\n headerAlign: 'center',\n align: 'center',\n sortable: false,\n width: 175,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value > 0 ? params.value : \"Unlimited\")\n },\n },\n {\n field: 'fairmarketvalue',\n type: 'string',\n headerName: 'Fair Market Value',\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n width: 175\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n disableExport: true,\n width: 120,\n sortable: false,\n renderCell: (params) => (\n // \n
\n
\n { handleDelete(params) }}>\n \n \n
\n
\n //
\n )\n }\n ]\n\n const ReOrderToggle = async () =>{\n //todo: Data is being pushed up and saved successfully however it isnt being saved locally so the rerender destroys it until refetched.\n if(rowOrdering){\n for(let i = 0; i x.itemid === rows[i].itemid).itemorder = i;\n\n }\n let itemListingOrder = rows.map(x => {\n return {itemid: x.itemid, order: x.itemorder}\n })\n var finaldata = {\n eventid: eventState.eventId,\n items: itemListingOrder\n }\n console.log(finaldata)\n updateItemOrder.mutate({\n ...finaldata\n },{\n onSuccess: (data) => {\n console.log(data)\n queryClient.invalidateQueries(['eventitems', Number(eventState.eventId)])\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // }\n }\n })\n }\n \n setRowOrdering(!rowOrdering)\n }\n const updateRowPosition = (\n initialIndex: number,\n newIndex: number,\n rows: Array,\n ) => {\n const rowsClone = [...rows];\n const row = rowsClone.splice(initialIndex, 1)[0];\n rowsClone.splice(newIndex, 0, row);\n return rowsClone;\n }\n \n \n const handleRowOrderChange = (params: GridRowOrderChangeParams) => {\n //setLoading(true);\n const newRows = updateRowPosition(\n params.oldIndex,\n params.targetIndex,\n rows,\n );\n rows = newRows \n \n };\n\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n \n ReOrderToggle()}\n >\n {rowOrdering ? 'Save' : 'Re-Order'}\n \n \n {/**/}\n \n \n \n )\n }\n\n return (\n <>\n\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n )\n}\n\nexport default AuctionItemsTable\n","import styles from './AuctionItemsPage.module.css'\nimport AuctionItemsTable from \"./AuctionItemsTable\";\n\n\nconst AuctionItemsPage = () => {\n return (\n
\n

Auction Items

\n \n
\n )\n}\n\nexport default AuctionItemsPage\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventItemsFetcher = async (body) => {\n const { data } = await axios.post('/evtitems', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.eventitems\n}\n\nexport const useFetchEventItems = (eventiDvalue) => {\n return useQuery(\n ['evtitems', eventiDvalue],\n () => globalEventItemsFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n //keepPreviousData: true\n }\n )\n}\n\nexport const useCreateEvtItem = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtitems`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['evtitems'])\n }\n })\n}\n\nexport const useUpdateEvtItem = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`evtitems`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['evtitems'])\n }\n })\n}\n\nexport const useUpdateItemOrder = (eventiDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtitemsorder`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['evtitems', eventiDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventItemsTable.module.css'\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport {Checkbox, FormControlLabel} from \"@mui/material\";\nimport NumberFormat from 'react-number-format'\nimport axios from \"axios\";\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\n\ninterface FormData {\n itemid: number\n itemitemid: number\n itemname: string\n itemdescription: string\n itemprice: number\n itemnondeductibleamount: number\n itemtypeid: number\n itemdonationtypeid: number\n itemaccountcodeid: number\n itemquantity: number\n itemgroupquantity: number\n itemquantityunlimited: boolean\n itemmaxquantitypertransaction: number\n itemonlygroupavailable: boolean\n\n itemlinktoregistration: boolean\n itemwaiverrequired: boolean\n\n itemwaiverurl: string\n\n itemstopsellingdate: string\n\n itemstopselling: boolean\n active: boolean\n delete: boolean\n}\n\nexport const EventItemsForm = ({ isOpen, setIsOpen, gridParams, reloadForm, eventid, itemrows }) => {\n const formMethods = useForm()\n const title = gridParams ? \"Edit Event Item\" : \"Create Event Item\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [priceValue, setPriceValue] = useState(1)\n const [maxQtyPerTransChange, setMaxQtyPerTransChange] = useState(1)\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const itemqtyUnlimited = watch('itemquantityunlimited')\n const [loading, setLoading] = React.useState(false);\n const itemtypeidWatch = watch('itemtypeid')\n const [activeTicketType, setActiveTicketTyp] = React.useState({name: '', id: 0, active: false});\n const [quantityValue, setQuantityValue] = useState(1)\n const [itemGroupQuantity, setItemGroupQuantity] = useState(1)\n const [activeValue, setActiveValue] = useState(true)\n const [registationValue, setRegistrationValue] = useState(false)\n const [onlyGroupAvailableValue, setOnlyGroupAvailableValue] = useState(false)\n const [stopSalesValue, setStopSalesValue] = useState(false)\n const [nonDeductableAmount, setNonDeductableAmount] = useState(1)\n const [dropdownData, setDropdownData] = React.useState({\n accountingcode: [],\n donationtype: [],\n tickettype: [],\n });\n const [groupValues, setGroupValues] = useState({\n id: 0,\n name: ''\n })\n\n useEffect(() => {\n getEventDropdowns()\n }, [])\n\n useEffect(() => {\n const tixType = dropdownData?.tickettype?.find(ticketT => ticketT.id === itemtypeidWatch)\n setActiveTicketTyp(tixType)\n }, [itemtypeidWatch])\n\n const getEventDropdowns = async () => {\n setLoading(true)\n axios.post('/evtitemsdropdowns', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setDropdownData(parsedData)\n setLoading(false)\n })\n }\n\n useEffect(() => {\n console.log(gridParams)\n setPriceValue(gridParams?.itemprice)\n setActiveValue(gridParams ? gridParams?.active : true)\n setQuantityValue(gridParams ? gridParams?.itemquantity : 1)\n setItemGroupQuantity(gridParams ? gridParams?.itemgroupquantity : 1)\n setMaxQtyPerTransChange(gridParams?.itemmaxquantitypertransaction)\n setRegistrationValue(gridParams?.itemlinktoregistration)\n setOnlyGroupAvailableValue(gridParams?.itemonlygroupavailable)\n setStopSalesValue(gridParams?.itemstopselling)\n setNonDeductableAmount(gridParams?.itemnondeductibleamount)\n\n\n\n reset({\n itemid: (gridParams ? gridParams.itemid : null),\n itemitemid: (gridParams ? gridParams.itemitemid : null),\n itemname: (gridParams ? gridParams.itemname : null),\n itemdescription: (gridParams ? gridParams.itemdescription : null),\n itemprice: (gridParams ? gridParams.itemprice : null),\n itemnondeductibleamount: (gridParams ? gridParams.itemnondeductibleamount : null),\n itemtypeid: (gridParams ? gridParams.itemtypeid : 1),\n itemdonationtypeid: (gridParams ? Number(gridParams.itemdonationtypeid) : 0),\n itemaccountcodeid: (gridParams ? Number(gridParams.itemaccountcodeid) : 0),\n itemquantity: (gridParams ? gridParams.itemquantity : 1),\n // itemquantity: (gridParams ? gridParams.itemquantity : 1),\n itemgroupquantity: (gridParams ? gridParams.itemgroupquantity : 1),\n itemquantityunlimited: (gridParams ? gridParams.itemquantityunlimited : false),\n itemmaxquantitypertransaction: (gridParams ? gridParams.itemmaxquantitypertransaction : 1),\n itemonlygroupavailable: (gridParams ? gridParams.itemonlygroupavailable : false),\n itemlinktoregistration: (gridParams ? gridParams.itemlinktoregistration : false),\n itemwaiverrequired: (gridParams ? gridParams.itemwaiverrequired : false),\n itemwaiverurl: (gridParams ? gridParams.itemwaiverurl : ''),\n itemstopsellingdate: (gridParams ? gridParams.itemstopsellingdate : ''),\n itemstopselling: (gridParams ? gridParams.itemstopselling : false),\n delete: (gridParams ? gridParams.delete : false),\n })\n }, [reloadForm])\n\n const donationTypeOptions = () => {\n console.log(dropdownData.donationtype)\n const dtRows = dropdownData.donationtype?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: 0, label: 'None'}, ...dtRows]\n }\n else {\n return [{value: 0, label: 'None'}]\n }\n }\n\n const ticketTypeOptions = () => {\n var rows = dropdownData.tickettype?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n\n if (itemrows && itemrows?.length <= 0) {\n // Filter out Group\n rows = rows?.filter((e) => e.label !== 'Group of Tickets').map((types) => {\n return {value: types.value, label: types.label}\n })\n }\n\n if (rows && rows.length > 0) {\n return [...rows]\n }\n else {\n return []\n }\n }\n\n const linkedTicketTypeOptions = () => {\n const linkedTickets = itemrows?.filter((i) => i.itemtype === 'Ticket').map((types) => {\n return {value: types.id, label: types.itemname}\n })\n\n if (linkedTickets && linkedTickets.length > 0) {\n return [...linkedTickets]\n }\n else {\n return []\n }\n }\n\n const accountingCodeOptions = () => {\n const dtRows = dropdownData.accountingcode?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: 0, label: 'None'}, ...dtRows]\n }\n else {\n return [{value: 0, label: 'None'}]\n }\n }\n\n const createMutation = useCreateEvtItem()\n\n const onSubmit = async (data: FormData) => {\n console.log(data)\n var finalData = gridParams ? { ...data, eventid: Number(eventid) } : { ...data, eventid: Number(eventid) }\n console.log(finalData)\n\n // const isGroupType = itemrows?.find((i) => i.itemtype === 'Group of Tickets')\n // console.log(isGroupType)\n // const unlimited = (isGroupType ? false : finalData.itemquantityunlimited)\n // console.log(unlimited)\n\n // setItemGroupQuantity\n var bodyData = {\n eventid: Number(eventid),\n itemname: finalData.itemname,\n itemdescription: finalData.itemdescription,\n itemprice: priceValue,\n itemnondeductibleamount: nonDeductableAmount,\n itemtypeid: finalData.itemtypeid,\n itemdonationtypeid: Number(finalData.itemdonationtypeid),\n itemaccountcodeid: Number(finalData.itemaccountcodeid),\n itemquantity: Number(itemGroupQuantity),\n itemgroupquantity: Number(itemGroupQuantity),\n itemquantityunlimited: finalData.itemquantityunlimited,\n itemmaxquantitypertransaction: Number(maxQtyPerTransChange) > 0 ? Number(maxQtyPerTransChange) : 0,\n itemonlygroupavailable: onlyGroupAvailableValue,\n itemlinktoregistration: registationValue,\n itemwaiverrequired: finalData.itemwaiverrequired,\n itemwaiverurl: finalData.itemwaiverurl,\n itemstopselling: stopSalesValue,\n active: activeValue\n }\n if (finalData.itemid > 0) {\n bodyData['itemid'] = Number(finalData.itemid)\n }\n\n if (finalData.itemitemid > 0) {\n bodyData['itemitemid'] = Number(finalData.itemitemid)\n }\n\n const { data: response } = await createMutation.mutateAsync(bodyData)\n\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const currencyFormat = (num) => {\n return '$' + num.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n }\n\n const handlePriceChange = (event) => {\n if (Number(event.value) >= 0) {\n setPriceValue(event.value)\n }\n else {\n setPriceValue(gridParams ? gridParams?.itemprice : 1)\n }\n }\n\n const handleNonDeductableAmountChange = (event) => {\n setNonDeductableAmount(event.value)\n }\n\n const handleQuantityChange = (event) => {\n console.log(event)\n if (Number(event.value) >= 0) {\n setItemGroupQuantity(Number(event.value))\n }\n else {\n setItemGroupQuantity(gridParams && gridParams?.itemgroupquantity > 0 ? gridParams?.itemgroupquantity : 1)\n }\n }\n\n const handleGroupQuantityChange = (event) => {\n console.log(event)\n if (Number(event.value) >= 0) {\n setItemGroupQuantity(Number(event.value))\n }\n else {\n setItemGroupQuantity(gridParams && gridParams?.itemgroupquantity > 0 ? gridParams?.itemgroupquantity : 1)\n }\n }\n\n const handleMaxQtyPerTransChange = (event) => {\n setMaxQtyPerTransChange(event.value)\n }\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n const handleRegistrationChange = (event: React.ChangeEvent) => {\n setRegistrationValue(event.target.checked);\n }\n\n const handleOnlyGroupAvailableChange = (event: React.ChangeEvent) => {\n setOnlyGroupAvailableValue(event.target.checked);\n }\n\n const handleStopSalesChange = (event: React.ChangeEvent) => {\n setStopSalesValue(event.target.checked);\n }\n\n return (\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n\n \n\n {activeTicketType?.name === 'Ticket' &&\n <>\n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n {/**/}\n {/*} label=\"Unlimited\" />*/}\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n
\n\n
\n } label=\"Link to Registration\" />\n } label=\"Only available as part of a group\" />\n
\n
\n } label=\"Hide From Store\" />\n } label=\"Active\" />\n
\n \n }\n\n\n {activeTicketType?.name === 'Merchandise' &&\n <>\n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n {/**/}\n {/*} label=\"Unlimited\" />*/}\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n
\n\n {/*
*/}\n {/* } label=\"Link to Registration\" />*/}\n {/* } label=\"Only available as part of a group\" />*/}\n {/*
*/}\n
\n } label=\"Hide From Store\" />\n } label=\"Active\" />\n
\n \n }\n\n\n {activeTicketType?.name === 'Group of Tickets' &&\n <>\n \n \n \n\n
\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n
\n\n {/*
*/}\n {/* } label=\"Link to Registration\" />*/}\n {/* } label=\"Only available as part of a group\" />*/}\n {/*
*/}\n
\n } label=\"Hide From Store\" />\n } label=\"Active\" />\n
\n \n }\n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","const formatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n})\n\nexport const formatMoney = (num: number) => {\n return formatter.format(num)\n}\n","import React, { useState } from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEvtItem, useFetchEventItems, useUpdateItemOrder} from '../../queries/useEventItemsFetch'\nimport { EventItemsForm } from './EventItemsForm'\nimport styles from './EventItemsTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport {formatMoney} from \"../../util/formatHelpers\";\n\nconst eventItemsDefaults = {\n itemid: 0,\n itemitemid: 0,\n itemname: '',\n itemdescription: '',\n itemprice: 0,\n itemnondeductibleamount: 0,\n itemtypeid: 0,\n itemdonationtypeid: 0,\n itemaccountcodeid: 0,\n itemquantity: 0,\n itemgroupquantity: 0,\n itemquantityavailable: 0,\n itemquantitysold: 0,\n itemquantityunlimited: true,\n itemmaxquantitypertransaction: 0,\n itemonlygroupavailable: true,\n itemlinktoregistration: true,\n itemwaiverrequired: true,\n itemwaiverurl: '',\n itemstopsellingdate: '',\n itemstopselling: true,\n active: true,\n delete: true\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventItemsTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const eventState = useEventState()\n const eventItemCreate = useCreateEvtItem()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n\n const { data, isLoading } = useFetchEventItems( Number(eventState.eventId) )\n const updateItemOrder = useUpdateItemOrder(eventState.eventId)\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n if (data) {\n console.log(data)\n rows = data.map((item) => {\n return { id: item.itemid, ...item}\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const getAuctionType = ((auctionTypeId: number) => {\n if (auctionTypeId === 1) {\n return 'Online Auction'\n }\n else if (auctionTypeId === 2) {\n return 'Live Auction Only'\n }\n else if (auctionTypeId === 3) {\n return 'Buy It Now Only (Online)'\n }\n else if (auctionTypeId === 4) {\n return 'Buy It Now Only (In-Person Only)'\n }\n })\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const ai = rows.filter((item) => item.itemid === Number(params.id))[0]\n console.log(ai)\n setGridParams( {\n itemid: ai.itemid,\n itemitemid: ai.itemitemid,\n itemname: ai.itemname,\n itemdescription: ai.itemdescription,\n itemprice: ai.itemprice,\n itemnondeductibleamount: ai.itemnondeductibleamount,\n itemtypeid: ai.itemtypeid,\n itemdonationtypeid: ai.itemdonationtypeid,\n itemaccountcodeid: ai.itemaccountcodeid,\n itemquantity: ai.itemquantity,\n itemgroupquantity: ai.itemgroupquantity,\n itemquantityavailable: ai.itemquantityavailable,\n itemquantitysold: ai.itemquantitysold,\n itemquantityunlimited: ai.itemquantityunlimited,\n itemmaxquantitypertransaction: ai.itemmaxquantitypertransaction,\n itemonlygroupavailable: ai.itemonlygroupavailable,\n itemlinktoregistration: ai.itemlinktoregistration,\n itemwaiverrequired: ai.itemwaiverrequired,\n itemwaiverurl: ai.itemwaiverurl,\n itemstopsellingdate: ai.itemstopsellingdate,\n itemstopselling: ai.itemstopselling,\n active: ai.active,\n delete: ai.delete,\n })\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'itemname').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"itemid\": id,\n \"delete\": true\n }\n const { data: response } = await eventItemCreate.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n if (json.message) {\n setDialogMsg(json.message)\n }\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const canDelete = (active) => {\n if (new Date(eventState.bidStart) <= new Date()) {\n // console.log('date is valid')\n return !active\n }\n else {\n return true\n }\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Item Name',\n minWidth: 350,\n sortable: true,\n },\n {\n field: 'itemtypedesc',\n type: 'string',\n headerName: 'Type',\n minWidth: 300,\n },\n {\n field: 'itemprice',\n type: 'string',\n headerAlign: 'left',\n align: 'right',\n headerName: 'Price',\n minWidth: 150,\n sortable: true,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n },\n {\n field: 'itemgroupquantity',\n type: 'number',\n headerName: 'Quantity',\n minWidth: 100,\n sortable: true,\n renderCell: (params) => (\n <>\n {/*{params.row.itemquantityunlimited ?*/}\n {/*
Unlimited
*/}\n {/* :*/}\n {/*
{params.row.itemgroupquantity}
*/}\n {/*}*/}\n
{params.row.itemgroupquantity}
\n \n )\n // valueFormatter: (params: GridValueFormatterParams) => {\n // console.log(params)\n // return params.value\n // },\n },\n {\n field: 'itemquantitysold',\n type: 'number',\n headerName: 'Qty Sold',\n minWidth: 150,\n sortable: true,\n },\n {\n field: 'itemquantityavailable',\n type: 'number',\n headerName: 'Qty Remaining',\n minWidth: 150,\n sortable: true,\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: true,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: true,\n renderCell: (params) => (\n //
\n //
\n // { handleDelete(params) }}>\n // \n // \n //
\n //
\n
\n
\n { handleDelete(params) }}>\n \n \n
\n
\n )\n }\n ]\n const ReOrderToggle = async () =>{\n //todo: Data is being pushed up and saved successfully however it isnt being saved locally so the rerender destroys it until refetched.\n if(rowOrdering){\n for(let i = 0; i x.itemid === rows[i].itemid).itemorder = i;\n\n }\n let itemListingOrder = rows.map(x => {\n return {itemid: x.itemid, order: x.itemorder}\n })\n var finaldata = {\n eventid: eventState.eventId,\n items: itemListingOrder\n }\n console.log(finaldata)\n updateItemOrder.mutate({\n ...finaldata\n },{\n onSuccess: (data) => {\n console.log(data)\n queryClient.invalidateQueries(['evtitems', Number(eventState.eventId)])\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // }\n }\n })\n }\n \n setRowOrdering(!rowOrdering)\n }\n const updateRowPosition = (\n initialIndex: number,\n newIndex: number,\n rows: Array,\n ) => {\n const rowsClone = [...rows];\n const row = rowsClone.splice(initialIndex, 1)[0];\n rowsClone.splice(newIndex, 0, row);\n return rowsClone;\n }\n \n \n const handleRowOrderChange = (params: GridRowOrderChangeParams) => {\n //setLoading(true);\n const newRows = updateRowPosition(\n params.oldIndex,\n params.targetIndex,\n rows,\n );\n rows = newRows \n \n };\n\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n \n ReOrderToggle()}\n >\n {rowOrdering ? 'Save' : 'Re-Order'}\n \n \n {/**/}\n \n \n \n )\n }\n\n return (\n
\n

Tickets and Items

\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n
\n )\n}\n\nexport default EventItemsTable\n","import styles from './FlexMonsterPage.module.css'\nimport * as FlexmonsterReact from 'react-flexmonster';\n\nconst FlexMonsterPage = () => {\n\n let jsonData = [\n {\n \"Category\": \"Accessories\",\n \"Size\": \"277 oz\",\n \"Color\": \"red\",\n \"Destination\": \"United Kingdom\",\n \"Business Type\": \"Warehouse\",\n \"Country\": \"United Kingdom\",\n \"Price\": 1000,\n \"Quantity\": 730,\n \"Discount\": 38\n },\n {\n \"Category\": \"Accessories\",\n \"Size\": \"47 oz\",\n \"Color\": \"white\",\n \"Destination\": \"United States\",\n \"Business Type\": \"Warehouse\",\n \"Country\": \"United States\",\n \"Price\": 7941,\n \"Quantity\": 73,\n \"Discount\": 53\n },\n {\n \"Category\": \"Bikes\",\n \"Size\": \"264 oz\",\n \"Color\": \"white\",\n \"Destination\": \"Australia\",\n \"Business Type\": \"Specialty Bike Shop\",\n \"Country\": \"Australia\",\n \"Price\": 6829,\n \"Quantity\": 19,\n \"Discount\": 56\n }\n ];\n\n // flexmonster.updateData({ data: jsonData });\n\n return (\n
\n

Auction Items

\n \n
\n )\n}\n\nexport default FlexMonsterPage\n","import axios from 'axios'\n\nexport const passwordResetEmail = async (eventid, emailAddress) => {\n const json = JSON.stringify({ customerid: eventid, email: emailAddress })\n const { data } = await axios.post('/passwordreset', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.status === 'success'\n}\n\nexport const passwordResetWithToken = async (token, password) => {\n const json = JSON.stringify({ token: token, password: password })\n const { data } = await axios.post('/passwordresetlink', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.status === 'success'\n}\n\n// export const useFetchEventMessages = (eventid) => {\n// return useQuery(\n// ['eventmessages'],\n// () => globalEventMessagesFetcher(eventid),\n// {\n// staleTime: 120000,\n// placeholderData: defaultEventMessages,\n// keepPreviousData: true\n// }\n// )\n// }\n","export const emailRegex =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\nexport const phoneRegex = /^(\\+\\d{1,2}\\s?)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}$/\nexport const zipCodeRegex = /^\\d{5}(?:[-\\s]\\d{4})?$/\n\nexport const checkPasswordValidity = (value: string) => {\n return (\n [/[a-z]/, /[A-Z]/, /[0-9]/, /[^a-zA-Z0-9]/].every((pattern) =>\n pattern.test(value)\n ) || 'Must include a lower, upper, number, and special character'\n )\n}\n\nexport const checkPasswordsMatch = (value: string, watch: Function) =>\n value === watch('password') || 'Passwords do not match'\n\nexport const checkEndDate = (value: string, watch: Function) => {\n return new Date(value) >= new Date(watch('start')) || 'Event end date should be after event start date.'\n}\n\nexport const checkBidStartDate = (value: string, watch: Function) => {\n return new Date(value) >= new Date(watch('start')) || 'Bidding open date should be after event start date.'\n}\n\nexport const checkBidEndDate = (value: string, watch: Function) => {\n return (new Date(value) >= new Date(watch('start')) && new Date(value) >= new Date(watch('bidstart'))) || 'Bidding close date should be after event start and bidding open dates.'\n}\n\nexport const checkBidEndFinalDate = (value: string, watch: Function) => {\n return (new Date(value) >= new Date(watch('start')) && new Date(value) >= new Date(watch('bidstart'))) || 'Event Close must be at least 24 hours after Bidding Close to allow time for checkout.'\n}\n\nexport const checkEventEndDate = (value: string, watch: Function) => {\n var datePlus = new Date(watch('bidend'));\n datePlus.setDate(datePlus.getDate() + 1);\n return (new Date(value) >= new Date(watch('start')) &&\n new Date(value) >= new Date(watch('bidstart')) &&\n new Date(value) >= datePlus &&\n new Date(value) >= new Date(watch('bidend'))) || 'Event Close must be at least 24 hours after Bidding Close to allow time for checkout.'\n}\n\nexport const checkIsNumeric = (value: string) => {\n return !isNaN(Number(value)) || 'Must be a numeric value'\n}\n\nexport const checkEndDateAfterStartDate = (\n startDate: string,\n endDate: string\n) => {\n if (!startDate || !endDate) return true\n const start = new Date(startDate)\n const end = new Date(endDate)\n\n return start.getTime() >= end.getTime()\n ? 'End time must be after start time'\n : true\n}\n\nexport const statesArray = [\n { label: 'Alabama', value: 'AL' },\n { label: 'Alaska', value: 'AK' },\n { label: 'Arizona', value: 'AZ' },\n { label: 'Arkansas', value: 'AR' },\n { label: 'California', value: 'CA' },\n { label: 'Colorado', value: 'CO' },\n { label: 'Connecticut', value: 'CT' },\n { label: 'Delaware', value: 'DE' },\n { label: 'District of Columbia', value: 'DC' },\n { label: 'Florida', value: 'FL' },\n { label: 'Georgia', value: 'GA' },\n { label: 'Hawaii', value: 'HI' },\n { label: 'Idaho', value: 'ID' },\n { label: 'Illinois', value: 'IL' },\n { label: 'Indiana', value: 'IN' },\n { label: 'Iowa', value: 'IA' },\n { label: 'Kansas', value: 'KS' },\n { label: 'Kentucky', value: 'KY' },\n { label: 'Louisiana', value: 'LA' },\n { label: 'Maine', value: 'ME' },\n { label: 'Maryland', value: 'MD' },\n { label: 'Massachusetts', value: 'MA' },\n { label: 'Michigan', value: 'MI' },\n { label: 'Minnesota', value: 'MN' },\n { label: 'Mississippi', value: 'MS' },\n { label: 'Missouri', value: 'MO' },\n { label: 'Montana', value: 'MT' },\n { label: 'Nebraska', value: 'NE' },\n { label: 'Nevada', value: 'NV' },\n { label: 'New Hampshire', value: 'NH' },\n { label: 'New Jersey', value: 'NJ' },\n { label: 'New Mexico', value: 'NM' },\n { label: 'New York', value: 'NY' },\n { label: 'North Carolina', value: 'NC' },\n { label: 'North Dakota', value: 'ND' },\n { label: 'Ohio', value: 'OH' },\n { label: 'Oklahoma', value: 'OK' },\n { label: 'Oregon', value: 'OR' },\n { label: 'Pennsylvania', value: 'PA' },\n { label: 'Puerto Rico', value: 'PR' },\n { label: 'Rhode Island', value: 'RI' },\n { label: 'South Carolina', value: 'SC' },\n { label: 'South Dakota', value: 'SD' },\n { label: 'Tennessee', value: 'TN' },\n { label: 'Texas', value: 'TX' },\n { label: 'Utah', value: 'UT' },\n { label: 'Vermont', value: 'VT' },\n { label: 'Virginia', value: 'VA' },\n { label: 'Washington', value: 'WA' },\n { label: 'West Virginia', value: 'WV' },\n { label: 'Wisconsin', value: 'WI' },\n { label: 'Wyoming', value: 'WY' },\n { label: \"ARMED FORCES IN EUROPE\", value: \"AE\" },\n { label: \"Armed Forces the Americas\", value: \"AA\" },\n { label: \"Armed Forces Pacific\", value: \"AP\" },\n { label: \"Virgin Islands\", value: \"VI\" },\n { label: \"United States Minor Outlying Islands\", value: \"UM\" },\n { label: \"Puerto Rico\", value: \"PR\" },\n { label: \"Madhya Pradesh\", value: \"MP\" },\n { label: \"Guam\", value: \"GU\" },\n { label: \"American Samoa\", value: \"AS\" },\n { label: \"Alberta\", value: \"AB\" },\n { label: \"British Columbia\", value: \"BC\" },\n { label: \"Manitoba\", value: \"MB\" },\n { label: \"Newfoundland and Labrador\", value: \"NL\" },\n { label: \"Northwest Territories\", value: \"NT\" },\n { label: \"Nova Scotia\", value: \"NS\" },\n { label: \"Nunavut\", value: \"NU\" },\n { label: \"Ontario\", value: \"ON\" },\n { label: \"Prince Edward Island\", value: \"PE\" },\n { label: \"Quebec\", value: \"QC\" },\n { label: \"Saskatchewan\", value: \"SK\" },\n { label: \"Yukon\", value: \"YT\" },\n]\n","import React, { useEffect, useState } from 'react'\n\nimport { Snackbar } from '@material-ui/core'\nimport Alert from '@material-ui/lab/Alert'\n\ntype Props = {\n errorMsg?: string\n successMsg?: string\n}\n\nconst Alerts = ({ errorMsg, successMsg }: Props) => {\n const [isErrorOpen, setIsErrorOpen] = useState(false)\n const [isSuccessOpen, setIsSuccessOpen] = useState(false)\n\n useEffect(() => {\n if (errorMsg) {\n setIsErrorOpen(true)\n setIsSuccessOpen(false)\n } else if (successMsg) {\n setIsSuccessOpen(true)\n setIsErrorOpen(false)\n } else {\n setIsSuccessOpen(false)\n setIsSuccessOpen(false)\n }\n }, [errorMsg, successMsg])\n\n return (\n <>\n setIsErrorOpen(false)}\n autoHideDuration={6000}>\n setIsErrorOpen(false)} severity={'error'}>\n {errorMsg}\n \n \n setIsSuccessOpen(false)}>\n setIsSuccessOpen(false)} severity={'success'} color={'success'}>\n {successMsg}\n \n \n \n )\n}\n\nexport default Alerts\n","import { useForm } from 'react-hook-form'\nimport { Link } from 'react-router-dom'\n\nimport { Button } from '@material-ui/core'\nimport { passwordResetEmail } from \"../../../queries/useResetPassword\";\nimport { PagePathTypes } from '../../../App'\nimport HookForm from '../../../components/common/HookForm'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { emailRegex } from '../../../util/formValidation'\nimport { AuthPageSubPaths } from '../AuthPage'\nimport styles from './ForgotPasswordForm.module.css'\nimport Alerts from \"../../../components/common/Alerts\";\nimport {useState} from \"react\";\n\ntype FormData = {\n email: string\n siteCode: string\n}\n\nconst ForgotPasswordForm = () => {\n const [successMsg, setSuccessMsg] = useState(null)\n const formMethods = useForm({\n mode: 'onChange'\n })\n const { formState, control } = formMethods\n // const dispatch = useDispatch()\n //const router = useRouter()\n //const router = useRouter()\n\n // useEffect(() => {\n // if (isLoading && authStatus !== 'pending') {\n // setIsloading(false)\n // }\n\n // if (authStatus === 'loggedIn') {\n // router.push('/')\n // }\n // }, [authStatus, isLoading, router])\n\n const onSubmit = async (formData: FormData) => {\n console.log('send onSubmit')\n const emailSent = await passwordResetEmail(formData.siteCode, formData.email)\n console.log(emailSent)\n setSuccessMsg('An email was sent to ' + formData.email + \". Please click the link within the email to reset your password.\")\n }\n return (\n
\n

Forgot Password

\n \n \n {/* {isLoading && (\n \n )} */}\n\n \n \n \n \n \n Back to Login\n \n
\n )\n}\n\nexport default ForgotPasswordForm\n","import axios from 'axios'\nimport { useMutation } from 'react-query'\nimport { useDispatch } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\n\nimport {AuthToken, loginUser, setAllowEventRefresh, setTerms} from '../../../slices/authSlice'\n\nexport const parseJwt = (token) => {\n var base64Url = token.split('.')[1]\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/')\n var jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\n })\n .join('')\n )\n\n return JSON.parse(jsonPayload)\n}\n\nexport const useLoginMutation = () => {\n const dispatch = useDispatch()\n const history = useHistory()\n\n return useMutation(\n (body: any) => {\n return axios.post(`/login`, body)\n },\n {\n onSuccess: (response: any) => {\n // console.log(response)\n if (response.status === 'failure') {\n throw new Error(response.message)\n }\n // update local storage\n localStorage.setItem('tokenadmin', response.token)\n const parsedToken: AuthToken = parseJwt(response.token)\n // update redux\n dispatch(loginUser(parsedToken))\n dispatch(setAllowEventRefresh(response.alloweventrefresh))\n if (response.terms && response.terms.length > 0) {\n dispatch(setTerms(response.terms))\n history.push('/terms')\n }\n else {\n // redirect\n history.push('/home')\n }\n }\n }\n )\n}\n","import { useEffect } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { Link, useHistory } from 'react-router-dom'\n\nimport { Button } from '@material-ui/core'\n\nimport { PagePathTypes } from '../../../App'\nimport Alerts from '../../../components/common/Alerts'\nimport HookForm from '../../../components/common/HookForm'\nimport LoadingBackdrop from '../../../components/common/LoadingBackdrop'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { emailRegex } from '../../../util/formValidation'\nimport { AuthPageSubPaths } from '../AuthPage'\nimport styles from './LoginForm.module.css'\nimport { useLoginMutation } from './useLoginMutation'\nimport {useQueryClient} from \"react-query\";\n\ntype FormData = {\n email: string\n password: string\n siteCode: string\n}\n\nconst LoginForm = () => {\n const queryClient = useQueryClient()\n const formMethods = useForm({\n mode: 'onChange'\n })\n\n const loginMutation = useLoginMutation()\n\n const onSubmit = ({ email, password, siteCode }: FormData) => {\n queryClient.invalidateQueries(['events'])\n loginMutation.mutate({ password, email, customerid: siteCode })\n }\n\n return (\n
\n

Login

\n \n \n\n \n \n \n \n\n \n \n \n Forgot Password?\n \n
\n )\n}\n\nexport default LoginForm\n","import { useForm } from 'react-hook-form'\nimport {Link, useHistory} from 'react-router-dom'\n\nimport { Button } from '@material-ui/core'\n\nimport { PagePathTypes } from '../../../App'\nimport HookForm from '../../../components/common/HookForm'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport {\n checkPasswordValidity,\n checkPasswordsMatch\n} from '../../../util/formValidation'\nimport { AuthPageSubPaths } from '../AuthPage'\nimport styles from './ResetPasswordForm.module.css'\nimport {useParams} from \"react-router\";\nimport {passwordResetEmail, passwordResetWithToken} from \"../../../queries/useResetPassword\";\nimport {useState} from \"react\";\nimport Alerts from \"../../../components/common/Alerts\";\n\ntype FormData = {\n password: string\n confirmPassword: string\n}\n\ninterface Params {\n token: string\n}\n\nconst ResetPasswordForm = () => {\n const [successMsg, setSuccessMsg] = useState(null)\n const formMethods = useForm({\n mode: 'onChange'\n })\n const { watch } = formMethods\n const history = useHistory()\n const { token } = useParams()\n const onSubmit = async (formData: FormData) => {\n const worked = await passwordResetWithToken(token, formData.password)\n if (worked) {\n setSuccessMsg('Your password was reset. You can now login with your new password.')\n setTimeout(() => {\n history.push('/auth/login')\n }, 3000);\n }\n else {\n setSuccessMsg('The request failed. Please try to reset your password again..')\n }\n }\n\n return (\n
\n

Reset Password

\n \n \n {/* {isLoading && (\n \n )} */}\n\n \n checkPasswordsMatch(val, watch)\n }}\n textFieldProps={{ type: 'password' }}\n />\n\n \n\n {/* */}\n \n \n Back to Login\n \n
\n )\n}\n\nexport default ResetPasswordForm\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type EventMessages = {\n preeventtext: string\n contactustext: string\n emailreceipttextfooter: string\n winningbidtextheader: string\n winningbidtextfooter: string\n emailreceipttextheader: string\n mobilelogintext: string\n mobilewelcometext: string\n message: string\n}\n\nvar defaultEventMessages = {\n preeventtext: '',\n contactustext: '',\n emailreceipttextfooter: '',\n winningbidtextheader: '',\n winningbidtextfooter: '',\n emailreceipttextheader: '',\n mobilelogintext: '',\n mobilewelcometext: '',\n message: ''\n}\n\nexport const globalEventMessagesFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: eventIdvalue })\n const { data } = await axios.post('/eventmessages', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as EventMessages\n}\n\nexport const useFetchEventMessages = (eventid) => {\n return useQuery(\n ['eventmessages', eventid],\n () => globalEventMessagesFetcher(eventid),\n {\n staleTime: 120000,\n placeholderData: defaultEventMessages,\n keepPreviousData: true\n }\n )\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport { sanitize } from 'dompurify'\n\n\nimport { Editor, EditorTools } from \"@progress/kendo-react-editor\";\nimport React, {useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useParams } from 'react-router'\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n ButtonProps } from '@material-ui/core'\n import { styled } from '@mui/material/styles';\nimport { ExpandMore } from '@material-ui/icons'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport { useCustomMessagesMutation } from '../../mutations/useCustomMessagesMutation'\nimport { useFetchEventMessages } from '../../queries/events/useFetchEventMessages'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport styles from './CustomMessagesPage.module.css'\n\ntype FormData = {\n email: string\n password: string\n siteCode: string\n}\n\ninterface Params {\n id: string\n}\n\nconst CustomMessagesPage = () => {\n const richTextTools = [\n [EditorTools.Bold, EditorTools.Italic, EditorTools.Underline, EditorTools.Strikethrough],\n // [EditorTools.Subscript, EditorTools.Superscript],\n EditorTools.ForeColor,\n EditorTools.BackColor,\n [EditorTools.CleanFormatting],\n [EditorTools.AlignLeft, EditorTools.AlignCenter, EditorTools.AlignRight, EditorTools.AlignJustify],\n [EditorTools.Indent, EditorTools.Outdent],\n [EditorTools.OrderedList, EditorTools.UnorderedList],\n // [EditorTools.NumberedList, EditorTools.BulletedList],\n EditorTools.FontSize,\n EditorTools.FontName,\n EditorTools.FormatBlock,\n [EditorTools.SelectAll],\n [EditorTools.Undo, EditorTools.Redo],\n [EditorTools.Link, EditorTools.Unlink, EditorTools.InsertImage, EditorTools.ViewHtml],\n [EditorTools.InsertTable, EditorTools.InsertFile],\n // [EditorTools.Pdf, EditorTools.Print],\n [EditorTools.AddRowBefore, EditorTools.AddRowAfter, EditorTools.AddColumnBefore, EditorTools.AddColumnAfter],\n [EditorTools.DeleteRow, EditorTools.DeleteColumn, EditorTools.DeleteTable],\n [EditorTools.MergeCells, EditorTools.SplitCell],\n ]\n\n const { id } = useParams()\n const [dialogMsg, setDialogMsg] = React.useState('')\n useAutoEvent(id)\n const eventState = useEventState()\n\n const { data, isLoading } = useFetchEventMessages(Number(eventState.eventId))\n console.log(\n '🚀 ~ file: CustomMessagesPage.tsx ~ line 54 ~ CustomMessagesPage ~ data',\n data\n )\n\n const formMethods = useForm({\n mode: 'onChange'\n })\n\n const [preEventValue, setPreEventValue] = useState('')\n const [loginSummaryValue, setLoginSummaryValue] = useState('')\n const [welcomeValue, setWelcomeValue] = useState('')\n const [receiptHeaderValue, setReceiptHeaderValue] = useState('')\n const [receiptFooterValue, setReceiptFooterValue] = useState('')\n const [winningBidHeaderValue, setWinningBidHeaderValue] = useState('')\n const [winningBidFooterValue, setWinningBidFooterValue] = useState('')\n const [contactUsText, setContactUsText] = useState('')\n\n useEffect(() => {\n setPreEventValue(data?.preeventtext)\n setLoginSummaryValue(data?.mobilelogintext)\n setWelcomeValue(data?.mobilewelcometext)\n setReceiptHeaderValue(data?.emailreceipttextheader)\n setReceiptFooterValue(data?.emailreceipttextfooter)\n setWinningBidHeaderValue(data?.winningbidtextheader)\n setWinningBidFooterValue(data?.winningbidtextfooter)\n setContactUsText(data?.contactustext)\n }, [data])\n const FloatingButton = styled(Button)(({ theme }) => ({\n margin:'auto',\n top: 'auto',\n // right: '40%',\n bottom: 20,\n left: '25%',\n position: 'fixed',\n width: '50%'\n }))\n const messagesMutation = useCustomMessagesMutation()\n const onSubmit = () => {\n messagesMutation.mutate(\n {\n eventid: Number(eventState.eventId),\n preeventtext: preEventValue,\n mobilelogintext: loginSummaryValue,\n mobilewelcometext: welcomeValue,\n emailreceipttextheader: receiptHeaderValue,\n emailreceipttextfooter: receiptFooterValue,\n winningbidtextheader: winningBidHeaderValue,\n winningbidtextfooter: winningBidFooterValue,\n contactustext: contactUsText\n },\n {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === 'failure') {\n setDialogMsg(json.message)\n } else {\n setDialogMsg('Customization settings successfully saved.')\n }\n }\n }\n )\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n }\n\n return (\n
\n

Page/Email Customization

\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\">\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n\n \n }>\n

Pre-Event Banner Page Header

\n
\n \n
\n
This content will show in place of the login screen before the Event Open date.
\n {\n setPreEventValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Event Login Page Header

\n
\n \n
\n
This content will show above the login fields while the event is open.
\n {\n setLoginSummaryValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Event Welcome Page Body

\n
\n \n
\n
This content will show in the middle of the page below the countdown timer and buttons after a user logs in.
\n {\n setWelcomeValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Email Receipt

\n
\n \n
\n

Header

\n {\n setReceiptHeaderValue(eventState.html)\n }}\n />\n

Footer

\n {\n setReceiptFooterValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Winning Bid Email

\n
\n \n
\n

Header

\n {\n setWinningBidHeaderValue(eventState.html)\n }}\n />\n

Footer

\n {\n setWinningBidFooterValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Contact Us Page

\n
\n \n
\n {\n setContactUsText(eventState.html)\n }}\n />\n
\n
\n
\n\n \n Save\n \n \n
\n )\n}\n\nexport default CustomMessagesPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCustomMessagesMutation = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventmessages`, body)\n },\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['eventmessages'])\n }\n }\n )\n}\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface AuctionInformation {\n type: string;\n status: string;\n message: string;\n biddingopens: string;\n biddingcloses: string;\n authorizedbidders: number;\n pendingregistrations: number;\n totalnumberofbids: number;\n openbidsamount: number;\n pendingcheckoutamount: number;\n collectedamount: number;\n totalnumberofbuyitnowpurchases: number;\n totaldollarsofbuyitnowpurchases: number;\n numberitemswithbids: number;\n numberitemswithoutbids: number;\n eventlink: string;\n auctionlink:string;\n resetmessage: string;\n showresetbutton: boolean;\n}\nconst defaultAuctionInformation: AuctionInformation = {\n type: \"\",\n status: \"\",\n message: \"\",\n biddingopens: \"\",\n biddingcloses: \"\",\n authorizedbidders: 0,\n pendingregistrations: 0,\n totalnumberofbids: 0,\n openbidsamount: 0,\n pendingcheckoutamount: 0,\n collectedamount: 0,\n totalnumberofbuyitnowpurchases: 0,\n totaldollarsofbuyitnowpurchases: 0,\n numberitemswithbids: 0,\n numberitemswithoutbids: 0,\n eventlink: \"\",\n auctionlink:\"\",\n resetmessage: \"\",\n showresetbutton: false\n};\n\nexport const useAuctionInfo = (eventIdvalue) => {\n return useQuery(\n ['auctioninformation', eventIdvalue],\n () => globalAuctionInfoFetcher(eventIdvalue),\n {\n placeholderData: defaultAuctionInformation\n }\n )\n}\n\n\nexport const globalAuctionInfoFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/auctioninformation', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as AuctionInformation\n}\n\nexport const useEventInfo = (eventIdvalue) => {\n return useQuery(\n ['eventinformation', eventIdvalue],\n () => globalEventInfoFetcher(eventIdvalue),\n {\n staleTime: 120000,\n placeholderData: defaultAuctionInformation,\n keepPreviousData: true\n }\n )\n}\n\n\nexport const globalEventInfoFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/evtinformation', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as AuctionInformation\n}\n","import { useParams } from 'react-router'\nimport { useHistory } from 'react-router-dom'\nimport download from 'downloadjs';\nimport {Box, Dialog, DialogActions, DialogContent, DialogContentText, Grid, Typography} from '@material-ui/core'\nimport Button from '@material-ui/core/Button'\nimport Paper from '@material-ui/core/Paper'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport {\n AddShoppingCart as AddShoppingCartIcon,\n Message as MessageIcon,\n Refresh as RefreshIcon,\n Assessment as AssessmentIcon,\n BurstMode as BurstIcon,\n Gavel as GavelIcon,\n LocationOn as LocationIcon,\n People as PeopleIcon,\n RemoveShoppingCart as RemoveShoppingCartIcon,\n SettingsOutlined as SettingsIcon,\n ShoppingCart as ShoppingCartIcon,\n SupervisedUserCircle as SupervisedUserCircleIcon,\n Web as WebIcon\n} from '@material-ui/icons'\n\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport styles from './AuctionPage.module.css'\nimport {useAllowEventRefresh} from \"../../slices/authSlice\";\nimport {setAuctionURL, setEventURL} from \"../../slices/eventSlice\"\nimport {useAuctionInfo, useEventInfo} from '../../queries/useFetchAuctionInfo'\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport {User} from \"../../queries/useUsers\";\nimport React from \"react\";\nimport {useQueryClient} from \"react-query\";\nimport {useDispatch} from \"react-redux\";\n\ninterface Params {\n id: string\n}\n\nconst AuctionPage = () => {\n const history = useHistory()\n const dispatch = useDispatch()\n const { id } = useParams()\n const queryClient = useQueryClient()\n useAutoEvent(id)\n const eventState = useEventState()\n const allowRefresh = useAllowEventRefresh()\n const {data} = useAuctionInfo(id)\n const {data: eventData} = useEventInfo(id)\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n console.log(data)\n console.log(eventData)\n dispatch(setEventURL(eventData.eventlink))\n dispatch(setAuctionURL(data.auctionlink))\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1)\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n },\n info: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n flexGrow: 1\n }\n })\n )\n const generateWinningBidsClick = async () => {\n axios.post('/auctionitemstatusreport', {eventid: eventState.eventId}, {responseType: \"blob\"}).then(response => {\n var filename = eventState.eventName + '-winningBids.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n })\n }\n \n const clickReset = async () => {\n const { data } = await axios.post('/auctionresetnotifications', {eventid: eventState.eventId})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData.status === 'failed') {\n setDialogMsg(parsedData.message)\n }\n else {\n queryClient.invalidateQueries(['auctioninformation', eventState.eventId])\n queryClient.invalidateQueries(['eventinformation', eventState.eventId])\n }\n }\n\n const handleClose = () => {\n setDialogMsg(\"\")\n };\n\n const classes = useStyles()\n\n return (\n
\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n {data && (\n <>\n

Bidding Opens: {dayjs(data.biddingopens as string).format('MMMM DD, YYYY hh:mm A')}

\n

Bidding Closes: {dayjs(data.biddingcloses as string).format('MMMM DD, YYYY hh:mm A')}

\n

\n \n )}\n
\n \n {data && (\n <>\n

Authorized Bidders: {data.authorizedbidders}

Pending Registrations: {data.pendingregistrations}

\n \n )}\n
\n \n {data && (\n <>\n

Open Bids: ${data.openbidsamount}

Pending Checkout: ${data.pendingcheckoutamount}

Collected: ${data.collectedamount}

\n \n )}\n
\n
\n {data.showresetbutton &&\n \n \n \n \n {\n clickReset()\n }}>\n Reset Notification Status\n \n \n \n \n \n {data.resetmessage}\n \n \n \n \n \n \n }\n\n \n Auction Setup\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/settings')\n }}\n startIcon={}>\n Settings\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/sponsors')\n }}\n startIcon={}>\n Sponsors\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/custommessages')\n }}>\n Page/Email Customization\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/locationstags')\n history.push('/auction/' + eventState.eventId + '/locationstags')\n }}>\n Dropdown Fields\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/auctionitems/')\n }}>\n Auction Items\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/participants')\n }}>\n Participants\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/carouselsetup')\n }}>\n Item Carousel\n \n \n \n \n Auction Activity\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/manualbidentry')\n }}\n startIcon={}>\n Manual Bid Entry\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/bidmaintenance')\n }}\n startIcon={}>\n Bid Maintenance\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/AuctionStatus')\n }}\n startIcon={}>\n Auction Status\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/liveauction')\n }}\n startIcon={}>\n Live Auction Winning Bid Entry\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/checkout')\n }}\n className={classes.button}\n startIcon={}>\n Checkout\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/broadcastmessage')\n }}\n className={classes.button}\n startIcon={}>\n Communication Tools\n \n \n {allowRefresh &&\n \n {\n history.push('/auction/' + eventState.eventId + '/forcerefresh')\n }}\n className={classes.button}\n startIcon={}>\n Force Refresh\n \n \n }\n \n \n Reports\n \n \n {/**/}\n {/* }*/}\n {/* onClick={() => {*/}\n {/* history.push(*/}\n {/* '/event/' + eventState.eventId + '/participantlisting'*/}\n {/* )*/}\n {/* }}>*/}\n {/* Participation Listing*/}\n {/* */}\n {/**/}\n {/**/}\n {/* }*/}\n {/* onClick={() => {*/}\n {/* history.push('/event/' + eventState.eventId + '/accountingreport')*/}\n {/* }}>*/}\n {/* Accounting Report*/}\n {/* */}\n {/**/}\n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n }}>\n Auction Summary\n \n \n \n }\n onClick={() => generateWinningBidsClick()\n }>\n Winning Bids\n \n \n\n\n {/* \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/AuctionSummaryReportDetailPage')\n }}>\n Auction Summary Detail\n \n */}\n \n \n DonorSnap Integration\n \n \n \n }\n onClick={() => {\n history.push(\n '/auction/' + eventState.eventId + '/participantslinking'\n )\n }}>\n Participant Linking\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/TransferPage')\n }}>\n Transfer/Export\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/participantmerge')\n }}>\n Participant Merge\n \n \n \n
\n )\n}\n\nexport default AuctionPage\n","import axios from 'axios';\nimport { useQuery } from 'react-query';\n\nexport interface EventSettings {\n eventid: number;\n type: string;\n status: string;\n message: string;\n name: string;\n code: string;\n actual: string;\n timezone: string;\n allowtexting: boolean;\n textprefix: string;\n allowpaymentoffees: boolean;\n billme: boolean;\n allowattendedbytickettype: boolean;\n ccfee: number;\n logourl: string;\n eventprivacy: string;\n storeheader: string;\n storebuttonevent: string;\n storebuttoneventshow: boolean;\n storebuttonauction: string;\n storebuttonauctionshow: boolean;\n storefooter: string;\n active: boolean;\n}\n\nconst defaultEventSettings = {\n type: \"\",\n status: \"\",\n message: \"\",\n eventid: 0,\n name: \"\",\n code: \"\",\n actual: \"\",\n timezone: \"\",\n allowtexting: false,\n textprefix: \"\",\n allowpaymentoffees: false,\n billme: false,\n allowattendedbytickettype: false,\n ccfee: 0,\n logourl: \"\",\n eventprivacy: \"\",\n storeheader: \"\",\n storebuttonevent: \"\",\n storebuttoneventshow: false,\n storebuttonauction: \"\",\n storebuttonauctionshow: false,\n storefooter: \"\",\n active: false\n}\n\nexport const globalEventSettingsFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: eventIdvalue })\n const { data } = await axios.post('/evtsettings', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as EventSettings\n}\n\nexport const useFetchEventSettings = (eventid) => {\n return useQuery(\n ['/evtsettings', eventid],\n () => globalEventSettingsFetcher(eventid),\n )\n}\n","import { useDispatch } from 'react-redux'\nimport {globalEventSettingsFetcher} from \"./events/useFetchEvtSettings\";\nimport {EvtState, setEvt, useEvtState} from \"../slices/evtSlice\";\nimport {useEffect} from \"react\";\n\nexport const useAutoEvt = (eventId: string) => {\n const eventState = useEvtState()\n const dispatch = useDispatch()\n\n useEffect(() => {\n globalEventSettingsFetcher(Number(eventId)).then((data) => {\n if (data) {\n console.log(data)\n const newState: EvtState = {\n eventId: data?.eventid?.toString(),\n eventName: data.name,\n eventCode: data.code,\n allowpaymentoffees: data?.allowpaymentoffees,\n ccfee: data?.ccfee\n }\n dispatch(setEvt(newState))\n }\n })\n }, [eventId])\n\n // if (Number(eventState.eventId) != Number(eventId) && Number(eventId) > 0 && Number(eventState.eventId) == 0) {\n // console.log('Updating')\n // console.log(eventId)\n // console.log(Number(eventState.eventId))\n // globalEventSettingsFetcher(Number(eventId)).then((data) => {\n // if (data) {\n // console.log(data)\n // const newState: EvtState = {\n // eventId: data?.eventid?.toString(),\n // eventName: data.name,\n // eventCode: data.code,\n // allowpaymentoffees: data?.allowpaymentoffees,\n // ccfee: data?.ccfee\n // }\n // dispatch(setEvt(newState))\n // }\n // })\n // }\n}\n","import { useParams } from 'react-router'\nimport { useHistory } from 'react-router-dom'\n\nimport { Grid } from '@material-ui/core'\nimport Button from '@material-ui/core/Button'\nimport Paper from '@material-ui/core/Paper'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport {\n AddShoppingCart as AddShoppingCartIcon,\n SettingsOutlined as SettingsIcon,\n Tune as TuneIcon,\n ConfirmationNumber as ConfirmationNumberIcon,\n Group as GroupsIcon,\n PermContactCalendar, DoneAll, Assessment as AssessmentIcon\n} from '@material-ui/icons'\nimport BadgeIcon from '@mui/icons-material/Badge'\nimport { useAutoEvt } from '../../queries/useAutoEvt'\nimport styles from './EventPage.module.css'\nimport { useAllowEventRefresh } from \"../../slices/authSlice\";\nimport {useAuctionInfo, useEventInfo} from \"../../queries/useFetchAuctionInfo\";\nimport {useDispatch} from \"react-redux\";\nimport {setEvtUrl, useEvtState} from \"../../slices/evtSlice\";\nimport React from \"react\";\n\ninterface Params {\n id: string\n}\n\nconst EventPage = () => {\n const history = useHistory()\n const { id } = useParams()\n const dispatch = useDispatch()\n // useAutoEvent(id)\n useAutoEvt(id)\n\n const {data} = useAuctionInfo(id)\n const {data: eventData} = useEventInfo(id)\n const eventState = useEvtState()\n dispatch(setEvtUrl(eventData.eventlink))\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1)\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n return (\n
\n \n Event Setup\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/settings')\n }}\n startIcon={}>\n Event Settings\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/userdefined')\n }}\n startIcon={}>\n User Defined Fields\n \n \n \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/eventitems')\n }}\n >\n Tickets and Items\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/discountcodes')\n }}\n startIcon={}>\n Promo Codes\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/EventEmailCustomization')\n }}\n startIcon={}>\n Email Customization\n \n \n \n\n \n Event Activity\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/transactions')\n }}\n startIcon={}>\n EVENT TRANSACTIONS\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/activitytickets')\n }}\n startIcon={}>\n TICKET MAINTENANCE\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/eventguestmaintenance')\n }}\n startIcon={}>\n Guest Maintenance\n \n \n \n \n \n {\n history.push('/event/' + eventState.eventId + '/eventgroupmaintenance')\n }}\n startIcon={}>\n Group Maintenance\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/EventMassEmailMaintenanceTable')\n }}\n startIcon={}>\n Email\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/EventCheckIn')\n }}\n startIcon={}>\n Check In\n \n \n \n\n \n Event Reports\n \n \n \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/eventguestinformation')\n }}\n >\n Guest Information\n \n \n \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/nametags')\n }}\n >\n Name Tags\n \n \n \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/grouplistingreport')\n }}\n >\n Groupings\n \n \n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n Event Summary\n \n \n \n \n \n Integrations\n \n \n \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/eventpurchaserlink')\n }}\n >\n Purchaser Link / Transfer\n \n \n {/**/}\n {/* }*/}\n {/* onClick={() => {*/}\n {/* history.push('/event/' + eventState.eventId + '/EventTransferPage')*/}\n {/* }}>*/}\n {/* Transfer/Export*/}\n {/* */}\n {/**/}\n \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/eventguestlink')\n }}\n >\n Guest Link / Transfer\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n AuctionSnap\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n DonorSnap\n \n \n \n \n Maintenance\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n Merge Participants\n \n \n \n \n
\n )\n}\n\nexport default EventPage\n","import React from 'react'\nimport { Control, Controller, useFormContext } from 'react-hook-form'\n\nimport {\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n FormLabel, Grid\n} from '@material-ui/core'\nimport styles from \"../../../../pages/AuctionSettingsForm/EventSettingsForm.module.css\";\nimport TextInput from \"../TextInput\";\n\ntype Props = {\n options: { value: string; label: string; tooltipText?: string; disabled?: boolean, textoptions?: { name: string; label: string; tooltipText?: string; defaultValue?: string, disabled?: boolean, maxLength?: number, endAdornment?: string, required?: boolean} }[] | string[]\n name: string\n label?: string\n rules?: Object\n formLabelProps?: Object\n formGroupProps?: Object\n formControlProps?: Object\n formControlLabelProps?: Object\n checkboxProps?: Object\n onChange?: Function\n defaultValue?: { [key: string]: boolean }\n}\n\nconst CheckboxGroup = ({\n options,\n label,\n rules,\n formControlProps,\n formLabelProps,\n formGroupProps,\n checkboxProps,\n name,\n formControlLabelProps,\n onChange,\n defaultValue = null\n}: Props) => {\n const { control } = useFormContext()\n\n return (\n \n {label && (\n \n {label}\n \n )}\n\n \n {(options as {value: string; label: string; tooltipText?: string; disabled?: boolean }[] | string[]).map((option) => {\n return (\n <>\n (\n {\n // onChange && onChange(e)\n onChange && onChange(e, field)\n return field.onChange(e.target.checked)\n }}\n checked={Boolean(field.value)}\n {...checkboxProps}\n />\n )}\n />\n }\n label={option.label || option}\n {...formControlLabelProps}\n />\n {(option?.textoptions && !option.textoptions.disabled) &&\n
\n \n
\n }\n \n )\n })}\n\n
\n
\n )\n}\n\nexport default CheckboxGroup\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\nimport DayJSUtils from '@date-io/dayjs'\nimport { DateTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'\n\ntype Props = {\n name: string\n label: string\n defaultValue?: string\n required?: boolean\n disabled?: boolean\n rules?: Object\n textFieldProps?: Object\n dateTimeProps?: Object\n tooltipText?: string\n onClose?: any\n}\n\nconst DateTimeInput = ({\n name,\n label,\n defaultValue = '',\n rules = {},\n required = false,\n disabled = false,\n textFieldProps,\n dateTimeProps,\n tooltipText = \"\",\n onClose = null,\n}: Props) => {\n const {\n control,\n formState: { errors }\n } = useFormContext()\n\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules: { ...rules, required: required ? 'Field is required' : false },\n defaultValue: defaultValue\n })\n\n return (\n \n {\n onClose && onClose()\n }}\n {...dateTimeProps}\n {...inputProps}\n />\n \n )\n}\n\nexport default DateTimeInput\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useEditEventSettings = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventsettings`, body)\n }\n ,\n {\n onSuccess: (data) => {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n }\n }\n )\n}\n\nexport const useUpdateEventStatus = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventstatus`, body)\n }\n ,\n {\n onSuccess: (data) => {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n }\n }\n )\n}\n\nexport const useUpdateEventClone = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventclone`, body)\n }\n ,\n {\n onSuccess: (data) => {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n }\n }\n )\n}\n\nexport const useCreateEvent = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventsettings`, body)\n },\n {\n onSuccess: (data ) => {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n }\n }\n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nimport { useAuthToken } from '../../slices/authSlice'\n\nexport interface OrgSettings {\n type: string\n status: string\n message: string\n isdonorsnapcustomer: boolean\n name: string\n contactname: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n goemerchant: GoEmerchant\n twilio: Twilio\n users: User[]\n}\n\ninterface User {\n userid: number\n active: boolean\n email: string\n lastupdated: string\n}\n\ninterface GoEmerchant {\n transactionid: string\n gatewayid: string\n ecommerceid: string\n lastupdated: string\n address: boolean\n postalcode: boolean\n}\n\ninterface Twilio {\n phone: string\n accountsid: string\n token: string\n}\n\nexport const orgSettingsFetcher = async (userid) => {\n if (userid) {\n const response = await axios.get(`/orgsettings`, {\n params: {\n customerid: userid\n }\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n const withNestedJSON = {\n ...parsedResponse,\n goemerchant: parsedResponse.goemerchant ? JSON.parse(parsedResponse.goemerchant) : {},\n twilio: parsedResponse.twilio ? JSON.parse(parsedResponse.twilio) : {}\n }\n\n return withNestedJSON\n }\n else {\n return null\n }\n}\n\nexport const useFetchOrgSettings = ({\n userid,\n onSuccess = () => null,\n onError = () => null,\n enabled\n}: {\n userid?: string\n onSuccess?: any\n onError?: any\n enabled?: boolean\n} = {}) => {\n return useQuery(\n ['orgsettings', userid],\n () => orgSettingsFetcher(userid),\n {\n staleTime: 120000,\n enabled: enabled ? enabled : Boolean(userid),\n onSuccess,\n onError,\n retry: false\n }\n )\n}\n","import React, {useEffect, useMemo, useState} from 'react'\nimport Dropzone from 'react-dropzone'\nimport { useForm } from 'react-hook-form'\nimport { Button, Grid, Dialog, DialogActions, DialogContent, DialogContentText, ButtonProps } from '@material-ui/core'\nimport { styled } from '@mui/material/styles';\nimport Alerts from '../../components/common/Alerts'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport CheckboxGroup from '../../components/common/inputs/CheckboxGroup'\nimport DateTimeInput from '../../components/common/inputs/DateTimeInput'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { useFetchEventSettings } from '../../queries/events/useFetchEventSettings'\nimport {EventState, setAuctionURL, setEvent, useEventState} from '../../slices/eventSlice'\nimport styles from './AuctionSettingsForm.module.css'\nimport { useEditEventSettings } from './useEditEventSettings'\nimport {Lock, LockOpen, Close } from '@material-ui/icons'\nimport dayjs from \"dayjs\";\nimport {useHistory} from \"react-router-dom\";\nimport {useDispatch} from \"react-redux\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {checkBidEndDate, checkBidStartDate, checkEndDate, checkEventEndDate} from \"../../util/formValidation\";\nimport {useAuthToken} from \"../../slices/authSlice\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {OrgState, setOrg, useOrgState} from \"../../slices/orgSlice\";\nimport {Editor, EditorTools} from \"@progress/kendo-react-editor\";\nimport imageCompression from \"browser-image-compression\";\nimport {useQueryClient} from \"react-query\";\nimport {useAuctionInfo} from \"../../queries/useFetchAuctionInfo\";\nimport axios from \"axios\";\n\ntype FormData = {\n rownumber: number\n id: number\n name: string\n code: string\n active: boolean\n start: string\n end: string\n bidstart: string\n bidend: string\n timezone: string\n eventspaymentprocessorkey: string\n ccrequiredid: number\n checkboxbiddingsettings: {\n allowbidanonymously: boolean\n allowguestentry: boolean\n allowpaymentoffees: boolean\n }\n checkboxothersettings: {\n approvalofbidders: boolean\n allowcustomlocations: boolean\n allowtexting: boolean\n eventshowbidderpaddlenumber: boolean,\n eventusepaddlenumber: boolean\n }\n ccfee: number\n startbiddernum: number\n receipttemplateid: number\n logourl: string\n eventprivacy: string\n logo: string\n textprefix: string\n logoremoved: boolean\n}\n\ninterface Params {\n id: string\n}\n\nconst AuctionSettingsForm = ({ isEdit = false }) => {\n const richTextTools = [\n [EditorTools.Bold, EditorTools.Italic, EditorTools.Underline, EditorTools.Strikethrough],\n // [EditorTools.Subscript, EditorTools.Superscript],\n EditorTools.ForeColor,\n EditorTools.BackColor,\n [EditorTools.CleanFormatting],\n [EditorTools.AlignLeft, EditorTools.AlignCenter, EditorTools.AlignRight, EditorTools.AlignJustify],\n [EditorTools.Indent, EditorTools.Outdent],\n [EditorTools.OrderedList, EditorTools.UnorderedList],\n // [EditorTools.NumberedList, EditorTools.BulletedList],\n EditorTools.FontSize,\n EditorTools.FontName,\n EditorTools.FormatBlock,\n [EditorTools.SelectAll],\n [EditorTools.Undo, EditorTools.Redo],\n [EditorTools.Link, EditorTools.Unlink, EditorTools.InsertImage, EditorTools.ViewHtml],\n [EditorTools.InsertTable, EditorTools.InsertFile],\n // [EditorTools.Pdf, EditorTools.Print],\n [EditorTools.AddRowBefore, EditorTools.AddRowAfter, EditorTools.AddColumnBefore, EditorTools.AddColumnAfter],\n [EditorTools.DeleteRow, EditorTools.DeleteColumn, EditorTools.DeleteTable],\n [EditorTools.MergeCells, EditorTools.SplitCell],\n ]\n const queryClient = useQueryClient()\n const [privacyValue, setPrivacyValue] = useState('')\n const warningMsg = \"WARNING: Changing the Event Code will change your event URL.\"\n const { id } = useParams()\n useAutoEvent(id)\n const {data} = useAuctionInfo(id)\n const event = useEventState()\n const orgState = useOrgState()\n\n const formMethods = useForm()\n const { reset, watch, setValue } = formMethods\n const watchLogo = watch('logourl')\n const watchLogoData = watch('logo')\n const watcheventspaymentprocessorkey = watch('eventspaymentprocessorkey')\n\n const history = useHistory()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false })\n const [timezones, setTimezones] = React.useState([])\n const [templates, setTemplates] = React.useState([])\n const [paymentProcessors, setPaymentProcessors] = React.useState([])\n const [ccRequired, setCCRequired] = React.useState([])\n const [processorReadOnly, setProcessorReadOnly] = React.useState(false)\n const [ccrequiredenabled, setccrequiredenabled] = React.useState(false)\n\n const allowTextingWatch = watch('checkboxothersettings.allowtexting')\n const approvalofbidders = watch('checkboxothersettings.approvalofbidders')\n const allowcustomlocations = watch('checkboxothersettings.allowcustomlocations')\n const allowpaymentoffeesWatch = watch('checkboxbiddingsettings.allowpaymentoffees')\n const bidEndWatch = watch('bidend')\n\n const [auctionSettingsData, setAuctionSettingsData] = useState({\n type: \"\",\n status: \"\",\n message: \"\",\n eventid: 0,\n name: \"\",\n code: \"\",\n start: \"\",\n bidstart: \"\",\n bidend: \"\",\n end: \"\",\n actual: \"\",\n timezone: \"\",\n allowbidanonymously: true,\n allowguestentry: false,\n approvalofbidders: false,\n allowcustomlocations: false,\n allowtexting: false,\n textprefix: \"\",\n allowpaymentoffees: false,\n billme: false,\n allowattendedbytickettype: false,\n eventspaymentprocessorisreadonly: false,\n eventshowbidderpaddlenumber: false,\n eventusepaddlenumber: false,\n ccfee: 0,\n ccrequiredenabled: false,\n ccrequiredlist: [],\n logourl: \"\",\n eventprivacy: \"\",\n storeheader: \"\",\n storebuttonevent: \"\",\n storebuttoneventshow: false,\n storebuttonauction: \"\",\n storebuttonauctionshow: false,\n storefooter: \"\",\n active: false,\n paymentprocessorlist: [],\n eventspaymentprocessorkey: \"\",\n ccrequiredid: 0,\n receipttemplatelist: [],\n timezonelist: [],\n startbiddernum: 1,\n receipttemplateid: 1,\n })\n\n useEffect(() => {\n const localId = Number(id)\n console.log(localId)\n if (localId > 0) {\n getAuctionSettingsData(Number(id))\n }\n }, [])\n\n // useEffect(() => {\n // console.log(auctionSettingsData)\n // }, [auctionSettingsData])\n\n const getAuctionSettingsData = async (eventId) => {\n const json = JSON.stringify({ eventid: eventId })\n const { data } = await axios.post('/eventsettings', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n // console.log(parsedData)\n\n const timezonesData = parsedData?.timezonelist?.map(timeZone => {\n return { value: timeZone.timezone, label: timeZone.timezone }\n })\n setTimezones(timezonesData)\n\n const paymentProcessorsData = parsedData?.paymentprocessorlist?.map(paymentPro => {\n return { value: paymentPro.paymentprocessorkey, label: paymentPro.paymentprocessorname }\n })\n setPaymentProcessors(paymentProcessorsData)\n\n const ccRequiredData = parsedData?.ccrequiredlist?.map(ccReq => {\n return { value: ccReq.ccrequiredid, label: ccReq.ccrequiredname }\n })\n setCCRequired(ccRequiredData)\n\n const ccReqData = parsedData?.ccrequiredlist?.map(ccReq => {\n return { value: ccReq.ccrequiredid, label: ccReq.ccrequiredname }\n })\n setCCRequired(ccReqData)\n setccrequiredenabled(parsedData?.ccrequiredenabled)\n\n setAuctionSettingsData(parsedData)\n }\n\n const dispatch = useDispatch()\n // dispatch(setAuctionURL(data.auctionlink))\n const authToken = useAuthToken()\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n\n useEffect(() => {\n setProcessorReadOnly(false)\n }, [])\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n // console.log(settings)\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n useEffect(() => {\n // console.log(data)\n dispatch(setAuctionURL(data.auctionlink))\n // dispatch(setValidAuction(data.validauction))\n // dispatch(setValidEvent(data.validevent))\n }, [data])\n\n const [errorMsg, setErrorMsg] = useState({\n show: false,\n msg: \"\"\n })\n\n\n const [successMsg, setSuccessMsg] = useState(false)\n const [lockCode, setLockCode] = useState(true)\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [openFailure, setFailureOpen] = React.useState(false);\n const [failureMessage, setFailureMessage] = React.useState(\"\");\n\n var { data: eventsettings, isFetching } = useFetchEventSettings(\n Number(event.eventId),\n isEdit\n )\n\n useEffect(() => {\n // console.log(auctionSettingsData)\n if (auctionSettingsData?.status === 'success') {\n const timezonesTemp = auctionSettingsData?.timezonelist?.map((timeZone: any) => {\n return { value: timeZone.timezone, label: timeZone.timezone }\n })\n setTimezones(timezonesTemp)\n\n const templates = auctionSettingsData?.receipttemplatelist?.map(x => {\n return { label: x.receipttemplatename, value: x.receipttemplateid }\n })\n setTemplates(templates)\n\n const payments = auctionSettingsData?.paymentprocessorlist?.map(x => {\n return { label: x.paymentprocessorname, value: x.paymentprocessorkey }\n })\n setPaymentProcessors(payments)\n\n const ccRequiredData = auctionSettingsData?.ccrequiredlist?.map(ccReq => {\n return { value: ccReq.ccrequiredid, label: ccReq.ccrequiredname }\n })\n setCCRequired(ccRequiredData)\n setccrequiredenabled(auctionSettingsData?.ccrequiredenabled)\n\n setProcessorReadOnly(auctionSettingsData?.eventspaymentprocessorisreadonly)\n }\n }, [auctionSettingsData])\n\n const editMutation = useEditEventSettings()\n const eventCodeRegex = /^[-_A-Za-z0-9]+$/\n\n\n const onEditSubmit = (formData: FormData) => {\n // console.log(formData)\n const {\n checkboxbiddingsettings,\n checkboxothersettings,\n start,\n end,\n bidstart,\n bidend,\n ...rest\n } = formData\n\n editMutation.mutate({\n eventid: Number(event.eventId),\n start: dayjs(start).format('YYYY-MM-DDTHH:mm:ss'),\n end: dayjs(end).format('YYYY-MM-DDTHH:mm:ss'),\n bidstart: dayjs(bidstart).format('YYYY-MM-DDTHH:mm:ss'),\n bidend: dayjs(bidend).format('YYYY-MM-DDTHH:mm:ss'),\n ...rest,\n ccfee: Number(formData.ccfee),\n eventprivacy: privacyValue,\n startbiddernum: Number(formData.startbiddernum),\n ...checkboxbiddingsettings,\n ...checkboxothersettings\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setFailureMessage(json.message)\n setFailureOpen(true)\n }\n else {\n console.log(json)\n const eventState: EventState = {\n eventId: json.eventid,\n eventName: json.name,\n eventCode: json.code,\n eventStart: json.start,\n eventEnd: json.end,\n bidStart: json.bidstart,\n bidEnd: json.bidend,\n allowpaymentoffees: json.allowpaymentoffees,\n ccfee: json.ccfee\n }\n dispatch(setEvent(eventState))\n queryClient.invalidateQueries(['auctioninformation', json.eventid])\n queryClient.invalidateQueries(['eventinformation', json.eventid])\n history.push('/auction/' + json.eventid )\n // setDialogMsg(\"Event was updated successfully.\")\n }\n }\n })\n }\n\n const handleClickContinue = () => {\n const isLock = (warningMsg === dialogMsg);\n setDialogMsg(\"\")\n setLockCode(!lockCode)\n\n if (!isLock && !isEdit) {\n history.goBack()\n }\n };\n\n const handleClose = () => {\n setDialogMsg(\"\")\n };\n\n const closeFailure = () => {\n setFailureOpen(false);\n };\n\n const showDialog = () => {\n return (\n <>\n 0}\n // onClose={handleClose}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n {((warningMsg === dialogMsg)) && (\n \n )}\n \n \n \n \n )\n }\n\n const showFailureDialog = () => {\n return (\n <>\n \n \n \n Failure: {failureMessage}\n \n \n \n \n \n \n \n )\n }\n\nconst FloatingButton = styled(Button)(({ theme }) => ({\n margin:'auto',\n top: 'auto',\n // right: '40%',\n bottom: 20,\n left: '25%',\n position: 'fixed',\n width: '50%'\n}))\n\n const onCreateSubmit = (formData: FormData) => {\n\n const {\n checkboxbiddingsettings,\n start,\n end,\n bidstart,\n bidend,\n checkboxothersettings,\n receipttemplateid,\n ...rest\n } = formData\n\n editMutation.mutate({\n ...rest,\n start: dayjs(start).format('YYYY-MM-DDTHH:mm:ss'),\n end: dayjs(end).format('YYYY-MM-DDTHH:mm:ss'),\n bidstart: dayjs(bidstart).format('YYYY-MM-DDTHH:mm:ss'),\n bidend: dayjs(bidend).format('YYYY-MM-DDTHH:mm:ss'),\n ccfee: Number(formData.ccfee),\n startbiddernum: Number(formData.startbiddernum),\n ...checkboxbiddingsettings,\n ...checkboxothersettings,\n active: true,\n eventprivacy: privacyValue\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setFailureMessage(json.message)\n setFailureOpen(true)\n }\n else {\n // setDialogMsg(\"Event was created successfully.\")\n history.push('/auction/' + json.eventid)\n }\n }\n })\n }\n\n const onLogoDrop = async (files: File[]) => {\n const options = {\n maxSize: 1,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n const compressedFile = await imageCompression(files[0], options)\n\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result as string\n setValue('logo', data.split(';base64,')[1])\n }\n fileReader.readAsDataURL(compressedFile)\n }\n\n const clickLockOpen = () => {\n setDialogMsg(warningMsg);\n }\n\n const clickLockClose = () => {\n setDialogMsg(\"\");\n setLockCode(!lockCode)\n }\n\n const clickRemoveLogo = () => {\n setValue(\"logourl\", \"\")\n setValue('logoremoved', true)\n }\n\n useEffect(() => {\n const getDefaults = async () => {\n const { data } = await axios.get('/eventsadd')\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n if (parsedData?.timezonelist) {\n const timezonesTemp = parsedData?.timezonelist?.map((timeZone: any) => {\n return { value: timeZone.timezone, label: timeZone.timezone }\n })\n setTimezones(timezonesTemp)\n }\n\n if (parsedData?.receipttemplatelist) {\n const templates = parsedData?.receipttemplatelist?.map(x => {\n return { label: x.receipttemplatename, value: x.receipttemplateid }\n })\n setTemplates(templates)\n }\n\n if (parsedData?.paymentprocessorlist) {\n const payments = parsedData?.paymentprocessorlist?.map(x => {\n return { label: x.paymentprocessorname, value: x.paymentprocessorkey }\n })\n setPaymentProcessors(payments)\n }\n\n if (parsedData?.ccrequiredlist) {\n const ccRequiredData = auctionSettingsData?.ccrequiredlist?.map(ccReq => {\n return {value: ccReq.ccrequiredid, label: ccReq.ccrequiredname}\n })\n setCCRequired(ccRequiredData)\n setccrequiredenabled(auctionSettingsData?.ccrequiredenabled)\n }\n\n\n if (parsedData?.eventprivacy) {\n setPrivacyValue(parsedData.eventprivacy)\n }\n setAuctionSettingsData(parsedData)\n return parsedData\n }\n\n if (!isEdit) {\n getDefaults()\n }\n }, [])\n\n useEffect(() => {\n // if (auctionSettingsData && isEdit) {\n const startDate = auctionSettingsData.start ? auctionSettingsData?.start?.split(' ').join('T') : new Date().toISOString()\n const endDate = auctionSettingsData.end ? auctionSettingsData?.end?.split(' ').join('T') : new Date().toISOString()\n const bidStartDate = auctionSettingsData.bidstart ? auctionSettingsData?.bidstart?.split(' ').join('T') : new Date().toISOString()\n const bidEndDate = auctionSettingsData.bidend ? auctionSettingsData?.bidend?.split(' ').join('T') : new Date().toISOString()\n const timeZoneForm = auctionSettingsData.timezone ? auctionSettingsData.timezone : 'Central Standard Time'\n const eventspaymentprocessorkeyForm = auctionSettingsData.eventspaymentprocessorkey ? auctionSettingsData.eventspaymentprocessorkey : 'GEM0003'\n\n\n const twilio = orgState?.twilio\n\n var allowtexting = auctionSettingsData.allowtexting\n if (twilio.valid === false) {\n allowtexting = false\n }\n\n // dispatch(setAuctionURL(data.auctionlink))\n\n reset({\n // rownumber: auctionSettingsData.rownumber,\n id: auctionSettingsData.eventid,\n name: auctionSettingsData.name,\n code: auctionSettingsData.code,\n active: auctionSettingsData.active,\n start: startDate,\n end: endDate,\n bidstart: bidStartDate,\n bidend: bidEndDate,\n timezone: timeZoneForm,\n eventspaymentprocessorkey: eventspaymentprocessorkeyForm,\n ccrequiredid: auctionSettingsData.ccrequiredid,\n checkboxbiddingsettings: {\n allowbidanonymously: auctionSettingsData.allowbidanonymously,\n allowguestentry: auctionSettingsData.allowguestentry,\n allowpaymentoffees: auctionSettingsData.allowpaymentoffees,\n },\n checkboxothersettings: {\n allowcustomlocations: auctionSettingsData.allowcustomlocations,\n approvalofbidders: auctionSettingsData.approvalofbidders,\n allowtexting: allowtexting,\n eventshowbidderpaddlenumber: auctionSettingsData.eventshowbidderpaddlenumber,\n eventusepaddlenumber: auctionSettingsData.eventusepaddlenumber\n },\n ccfee: auctionSettingsData.ccfee,\n startbiddernum: auctionSettingsData.startbiddernum,\n receipttemplateid: auctionSettingsData.receipttemplateid,\n textprefix: auctionSettingsData.textprefix,\n eventprivacy: auctionSettingsData.eventprivacy,\n logourl: auctionSettingsData.logourl,\n logoremoved: false\n })\n setPrivacyValue(auctionSettingsData.eventprivacy)\n }, [auctionSettingsData, reset, isFetching, isEdit])\n\n const handleChange = (e, field) => {\n if (field.name === \"checkboxothersettings.approvalofbidders\" && field.value === false) {\n setDialogObj({msg: \"Caution: Checking this box means that you will need to regularly check the Participants page to manually approve any newly registered participants. Participants that are not approved will not be able to bid on any items. To automatically approve all newly registered participants, leave this setting unchecked.\", show: true})\n }\n else if (field.name === \"checkboxothersettings.allowcustomlocations\" && field.value === false) {\n setDialogObj({msg: \"Caution: Checking this box means that all bidding open/close times are controlled by the Location settings. Changing the bidding open/close times on this page will not affect any existing location close times. Only use this setting if you plan to close tables at different times.\", show: true})\n }\n }\n\n const handleCloseDate = () => {\n if (auctionSettingsData?.bidend) {\n if (new Date(auctionSettingsData?.bidend) <= new Date()) {\n if (dialogObj.show === false) {\n setDialogObj({msg: \"Warning: This auction has already closed. Reopening bidding may cause unintended consequences and confusion for participants, especially in checkout. Winning bid and closing soon notifications will not be sent again for this auction. If this was a test, please create a new auction or clone this auction to set up your live event.\", show: true})\n }\n }\n }\n }\n\n const disableTexting = () => {\n const twilio = orgState?.twilio\n\n return twilio.valid === false\n }\n\n return (\n
\n {showDialog()}\n {showFailureDialog()}\n\n <>\n \n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n

Auction Settings

\n \n \n \n \n \n \n \n {isEdit && (\n \n {!lockCode && }\n {lockCode && }\n \n )}\n \n\n \n \n \n \n\n \n{!allowcustomlocations && checkBidStartDate(val, watch),\n }}\n defaultValue={new Date().toISOString()}\n required={!allowcustomlocations}\n disabled={allowcustomlocations}\n tooltipText={'The time when a user can begin bidding on auction items'}\n />}\n {allowcustomlocations && \n }\n \n\n\n \n {!allowcustomlocations && checkBidEndDate(val, watch),\n }}\n defaultValue={new Date().toISOString()}\n onClose={handleCloseDate}\n required={!allowcustomlocations}\n disabled={allowcustomlocations}\n //tooltipText={\"The time when no more bids will be accepted on auction items\"}\n />}\n {allowcustomlocations && \n }\n \n\n \n checkEventEndDate(val, watch),\n }}\n defaultValue={new Date().toISOString()}\n required={true}\n tooltipText={\"The time when the auction website and checkout pages will no longer be accessible. This is usually multiple days after bidding closes to allow collecting payment at a later date.\"}\n />\n \n \n\n \n \n 0 ? timezones[0].label : \"\")}\n includeNone={false}\n tooltipText={\"The timezone where your event will be held. Dates/times will automatically adjust for each user’s location on their device.\"}\n />\n \n \n 0 ? paymentProcessors[0].label : \"\")}\n includeNone={false}\n tooltipText={\"\"}\n />\n \n \n \n \n \n\n \n \n {handleChange(e, field)}}\n options={[\n {\n value: 'allowbidanonymously',\n label: 'Allow Bid Anonymously',\n tooltipText: \"Give users the option to hide their name in the Bid History section.\"\n },\n {\n value: 'allowguestentry',\n label: 'Allow Guest Entry (View Only)',\n tooltipText: \"Allow users to browse your auction items without logging in. All users must log in to place a bid.\"\n },\n {\n value: 'allowpaymentoffees',\n label: 'Allow Payment of CC Fees',\n tooltipText: \"Display a checkbox during checkout for the user to add a set percentage to their payment to offset payment processing fees.\"\n },\n ]}\n label=\"\"\n />\n \n \n {handleChange(e, field)}}\n options={[\n {\n value: 'approvalofbidders',\n label: 'Require Approval of Bidders',\n tooltipText: \"Do not allow bidding by users that have not been manually approved in the Participants page.\"\n },\n {\n value: 'allowcustomlocations',\n label: 'Allow custom bidding open/close by location',\n tooltipText: \"Each location will have independent open and close times for bidding. Set up these times on the Locations page.\"\n },\n { value: 'eventusepaddlenumber', label: 'Use manually assigned paddle number instead of auto-assigned bidder number', tooltipText: \"\" },\n\n ]}\n label=\"\"\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n 0 ? templates[0].label : \"\")}\n options={templates}\n tooltipText={\"Select the PDF template that should be used for all printed/PDF generated receipts.\"}\n />\n\n \n {watchLogo && (\n \n
\n
\n \"event\n
\n
\n )}\n\n \n {watchLogoData && (\n <>\n
Event/Auction Logo
\n
\n \"event\n
\n \n )}\n
\n
\n

Event Logo

\n \n {({ getRootProps, getInputProps }) => (\n
\n
\n \n

Drag 'n' drop a file here, or click to select a file.\n Event logo will be displayed with a max height of 54px. For best mobile experience, your logo should not exceed 215px by 54px. Only .jpg, .jpeg, .png, .gif, and .bmp images under 2MB are allowed.

\n
\n
\n )}\n
\n\n
\n

Event/Auction Privacy/Refund Policy

\n {\n setPrivacyValue(eventState.html)\n }}\n />\n
\n\n \n Save\n \n\n \n \n
\n )\n}\n\nexport default AuctionSettingsForm\n","import React, {useEffect, useMemo, useState} from 'react'\nimport Dropzone from 'react-dropzone'\nimport { useForm } from 'react-hook-form'\nimport { Editor, EditorTools } from \"@progress/kendo-react-editor\";\nimport { ExpandMore } from '@material-ui/icons'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport { Button, Grid, Dialog, DialogActions, DialogContent, DialogContentText, ButtonProps, Accordion,\n AccordionDetails,\n AccordionSummary } from '@material-ui/core'\nimport { styled } from '@mui/material/styles';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport Alerts from '../../components/common/Alerts'\nimport HookForm from '../../components/common/HookForm'\nimport { Controller} from 'react-hook-form'\nimport CheckboxGroup from '../../components/common/inputs/CheckboxGroup'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport {EvtState, setEvt, useEvtState} from '../../slices/evtSlice'\nimport styles from './EventSettingsForm.module.css'\nimport { useEditEventSettings } from './useEditEventSettings'\nimport {Lock, LockOpen, Close } from '@material-ui/icons'\nimport dayjs from \"dayjs\";\nimport {Dayjs} from \"dayjs\";\n\nimport {useHistory} from \"react-router-dom\";\nimport {useDispatch} from \"react-redux\";\nimport {useParams} from \"react-router\";\n import {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useAuthToken} from \"../../slices/authSlice\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {OrgState, setOrg, useOrgState} from \"../../slices/orgSlice\";\nimport imageCompression from \"browser-image-compression\";\nimport axios from \"axios\";\nimport {useAutoEvt} from \"../../queries/useAutoEvt\";\n\ntype FormData = {\n type: string;\n status: string;\n message: string;\n eventid: number;\n name: string;\n code: string;\n actual: Dayjs;\n timezone: string;\n textprefix: string;\n ccfee: number;\n logo: string; \n logourl: string;\n logoremoved: boolean; \n eventprivacy: string;\n storeheader: string;\n storebuttonevent: string;\n storebuttonauction: string;\n storefooter: string;\n active: boolean;\n delete: boolean; \n checkboxsettings : {\n billme: boolean;\n allowattendedbytickettype: boolean;\n allowpaymentoffees: boolean;\n storebuttoneventshow: boolean;\n storebuttonauctionshow: boolean;\n }\n eventspaymentprocessorkey: string;\n}\ninterface Params {\n id: string\n}\n\nconst EventSettingsForm = ({ isEdit = false }) => {\n const warningMsg = \"WARNING: Changing the Event Code will change your event URL.\"\n const { id } = useParams()\n useAutoEvt(id)\n const orgState = useOrgState()\n const formMethods = useForm()\n const { reset, watch, setValue } = formMethods\n const watchLogo = watch('logourl')\n const watchLogoData = watch('logo')\n const history = useHistory()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false })\n const watchAllowpaymentoffees = watch(\"checkboxsettings.allowpaymentoffees\")\n\n const dispatch = useDispatch()\n const authToken = useAuthToken()\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n\n useEffect(() => {\n const getDefaults = async () => {\n const { data } = await axios.get('/eventsadd')\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setEventSettings(parsedData)\n }\n\n if (!isEdit) {\n getDefaults()\n }\n }, [isEdit])\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n const [errorMsg, setErrorMsg] = useState({\n show: false,\n msg: \"\"\n })\n\n const [successMsg, setSuccessMsg] = useState(false)\n const [lockCode, setLockCode] = useState(true)\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [openFailure, setFailureOpen] = React.useState(false);\n const [failureMessage, setFailureMessage] = React.useState(\"\");\n const [storeHeader, setStoreHeader] = useState('')\n const [storeFooter, setStoreFooter] = useState('')\n const [eventPrivacy, setEventPrivacy] = useState('')\n const [timezones, setTimezones] = React.useState([])\n const [paymentProcessors, setPaymentProcessors] = React.useState([])\n const [processorReadOnly, setProcessorReadOnly] = React.useState(false)\n\n const [eventsettings, setEventSettings] = useState({\n type: \"\",\n status: \"\",\n message: \"\",\n eventid: 0,\n name: \"\",\n code: \"\",\n actual: \"\",\n timezone: \"\",\n allowtexting: false,\n validauction: false,\n validevent: false,\n textprefix: \"\",\n allowpaymentoffees: false,\n billme: false,\n allowattendedbytickettype: false,\n eventspaymentprocessorisreadonly: false,\n ccfee: 0,\n logourl: \"\",\n eventprivacy: \"\",\n storeheader: \"\",\n storebuttonevent: \"\",\n storebuttoneventshow: false,\n storebuttonauction: \"\",\n storebuttonauctionshow: false,\n storefooter: \"\",\n active: false,\n paymentprocessorlist: [],\n eventspaymentprocessorkey: \"\",\n receipttemplatelist: [],\n timezonelist: []\n })\n\n useEffect(() => {\n const localId = Number(id)\n if (localId > 0) {\n getEventSettingsData(Number(id))\n }\n }, [])\n\n useEffect(() => {\n const getDefaults = async () => {\n const { data } = await axios.get('/eventsadd')\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n if (parsedData?.timezonelist) {\n const timezonesTemp = parsedData?.timezonelist?.map((timeZone: any) => {\n return { value: timeZone.timezone, label: timeZone.timezone }\n })\n setTimezones(timezonesTemp)\n }\n\n if (parsedData?.paymentprocessorlist) {\n const payments = parsedData?.paymentprocessorlist?.map(x => {\n return { label: x.paymentprocessorname, value: x.paymentprocessorkey }\n })\n setPaymentProcessors(payments)\n }\n\n return parsedData\n }\n\n if (!isEdit) {\n getDefaults()\n }\n }, [])\n\n // useEffect(() => {\n // console.log(eventsettings)\n // }, [eventsettings])\n\n const getEventSettingsData = async (eventId) => {\n const json = JSON.stringify({ eventid: eventId })\n const { data } = await axios.post('/evtsettings', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n\n const timezonesData = parsedData?.timezonelist?.map(timeZone => {\n return { value: timeZone.timezone, label: timeZone.timezone }\n })\n setTimezones(timezonesData)\n\n const paymentProcessorsData = parsedData?.paymentprocessorlist?.map(paymentPro => {\n return { value: paymentPro.paymentprocessorkey, label: paymentPro.paymentprocessorname }\n })\n setPaymentProcessors(paymentProcessorsData)\n\n setEventSettings(parsedData)\n }\n\n const editMutation = useEditEventSettings()\n const eventCodeRegex = /^[-_A-Za-z0-9]+$/\n const richTextTools = [\n [EditorTools.Bold, EditorTools.Italic, EditorTools.Underline, EditorTools.Strikethrough],\n // [EditorTools.Subscript, EditorTools.Superscript],\n EditorTools.ForeColor,\n EditorTools.BackColor,\n [EditorTools.CleanFormatting],\n [EditorTools.AlignLeft, EditorTools.AlignCenter, EditorTools.AlignRight, EditorTools.AlignJustify],\n [EditorTools.Indent, EditorTools.Outdent],\n [EditorTools.OrderedList, EditorTools.UnorderedList],\n EditorTools.FontSize,\n EditorTools.FontName,\n EditorTools.FormatBlock,\n [EditorTools.SelectAll],\n [EditorTools.Undo, EditorTools.Redo],\n [EditorTools.Link, EditorTools.Unlink, EditorTools.InsertImage, EditorTools.ViewHtml],\n [EditorTools.InsertTable, EditorTools.InsertFile],\n // [EditorTools.Pdf, EditorTools.Print],\n [EditorTools.AddRowBefore, EditorTools.AddRowAfter, EditorTools.AddColumnBefore, EditorTools.AddColumnAfter],\n [EditorTools.DeleteRow, EditorTools.DeleteColumn, EditorTools.DeleteTable],\n [EditorTools.MergeCells, EditorTools.SplitCell],\n ]\n const onEditSubmit = (formData: FormData) => {\n console.log('onEditSubmit')\n console.log(formData)\n const {\n checkboxsettings,\n actual,\n ...rest\n } = formData\n editMutation.mutate({\n eventid: Number(id),\n actual: dayjs(actual).format('YYYY-MM-DD'),\n eventcode: formData.code,\n ...rest,\n ...checkboxsettings,\n ccfee: Number(formData.ccfee),\n storeheader: storeHeader,\n storefooter: storeFooter,\n eventprivacy: eventPrivacy\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setFailureMessage(json.message)\n setFailureOpen(true)\n }\n else {\n console.log(json)\n const eventState: EvtState = {\n eventId: json.eventid,\n eventName: json.name,\n eventCode: json.code,\n allowpaymentoffees: json.allowpaymentoffees,\n billme: json.billme,\n allowattendedbytickettype: json.allowattendedbytickettype,\n ccfee: json.ccfee\n }\n dispatch(setEvt(eventState))\n history.push('/event/' + json.eventid )\n\n // setDialogMsg(\"Event was updated successfully.\")\n }\n }\n })\n }\n\n const handleClickContinue = () => {\n const isLock = (warningMsg === dialogMsg);\n setDialogMsg(\"\")\n if(isLock){\n setLockCode(!lockCode)\n }\n\n if (!isLock && !isEdit) {\n history.goBack()\n }\n };\n\n const handleClose = () => {\n setDialogMsg(\"\")\n };\n\n const closeFailure = () => {\n setFailureOpen(false);\n };\n\n const showDialog = () => {\n return (\n <>\n 0}\n // onClose={handleClose}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n {((warningMsg === dialogMsg)) && (\n \n )}\n \n \n \n \n )\n }\n\n const showFailureDialog = () => {\n return (\n <>\n \n \n \n Failure: {failureMessage}\n \n \n \n \n \n \n \n )\n }\n\n const FloatingButton = styled(Button)(({ theme }) => ({\n margin:'auto',\n top: 'auto',\n // right: '40%',\n bottom: 20,\n left: '25%',\n position: 'fixed',\n width: '50%'\n }))\n\n const onCreateSubmit = (formData: FormData) => {\n const {\n actual,\n ...rest\n } = formData\n editMutation.mutate({\n ...rest,\n actual: dayjs(actual).format('YYYY-MM-DD'),\n ccfee: Number(formData.ccfee),\n storebuttoneventshow: formData.checkboxsettings.storebuttoneventshow,\n storebuttonauctionshow: formData.checkboxsettings.storebuttonauctionshow,\n allowpaymentoffees: formData.checkboxsettings.allowpaymentoffees,\n billme: formData.checkboxsettings.billme,\n allowattendedbytickettype: formData.checkboxsettings.allowattendedbytickettype,\n active: true\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setFailureMessage(json.message)\n setFailureOpen(true)\n }\n else {\n console.log(json)\n const eventState: EvtState = {\n eventId: json.eventid,\n eventName: json.name,\n eventCode: json.code,\n allowpaymentoffees: json.allowpaymentoffees,\n billme: json.billme,\n allowattendedbytickettype: json.allowattendedbytickettype,\n ccfee: json.ccfee\n }\n dispatch(setEvt(eventState))\n history.push('/event/' + json.eventid )\n }\n }\n })\n }\n\n const onLogoDrop = async (files: File[]) => {\n const options = {\n maxSize: 1,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n const compressedFile = await imageCompression(files[0], options)\n\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result as string\n setValue('logo', data.split(';base64,')[1])\n }\n fileReader.readAsDataURL(compressedFile)\n }\n\n const clickLockOpen = () => {\n setDialogMsg(warningMsg);\n }\n\n const clickLockClose = () => {\n setDialogMsg(\"\");\n setLockCode(!lockCode)\n }\n\n const clickRemoveLogo = () => {\n setValue(\"logourl\", \"\")\n setValue('logoremoved', true)\n }\n\n useEffect(() => {\n if (eventsettings) {\n reset({\n type: eventsettings.type,\n status: eventsettings.status,\n message: eventsettings.message,\n eventid: eventsettings.eventid,\n name: eventsettings.name,\n code: eventsettings.code,\n actual: eventsettings?.actual?.length > 0 ? dayjs(eventsettings.actual) : dayjs(),\n timezone: eventsettings.timezone,\n textprefix: eventsettings.textprefix,\n ccfee: eventsettings.ccfee,\n //logo: eventsettings.logo,\n logourl: eventsettings.logourl,\n logoremoved: false,\n eventprivacy: eventsettings.eventprivacy,\n storeheader: eventsettings.storeheader,\n storebuttonevent: eventsettings.storebuttonevent,\n storebuttonauction: eventsettings.storebuttonauction,\n storefooter: eventsettings.storefooter,\n active: eventsettings.active,\n delete: false,\n checkboxsettings: {\n allowpaymentoffees: eventsettings.allowpaymentoffees,\n billme: eventsettings.billme,\n allowattendedbytickettype: eventsettings.allowattendedbytickettype,\n storebuttoneventshow: eventsettings.storebuttoneventshow,\n storebuttonauctionshow: eventsettings.storebuttonauctionshow\n },\n eventspaymentprocessorkey: eventsettings.eventspaymentprocessorkey\n });\n setStoreHeader(eventsettings.storeheader)\n setStoreFooter(eventsettings.storefooter)\n setEventPrivacy(eventsettings.eventprivacy)\n\n }}, [eventsettings, isEdit])\n\n const handleChange = (e, field) => {\n if (field.name === \"checkboxothersettings.approvalofbidders\" && field.value === false) {\n setDialogObj({msg: \"Caution: Checking this box means that you will need to regularly check the Participants page to manually approve any newly registered participants. Participants that are not approved will not be able to bid on any items. To automatically approve all newly registered participants, leave this setting unchecked.\", show: true})\n }\n else if (field.name === \"checkboxothersettings.allowcustomlocations\" && field.value === false) {\n setDialogObj({msg: \"Caution: Checking this box means that all bidding open/close times are controlled by the Location settings. Changing the bidding open/close times on this page will not affect any existing location close times. Only use this setting if you plan to close tables at different times.\", show: true})\n }\n }\n\n const disableTexting = () => {\n const twilio = orgState?.twilio\n\n return twilio.valid === false\n }\n\n return (\n
\n {showDialog()}\n {showFailureDialog()}\n\n <>\n \n \n \n {dialogObj.msg}\n \n \n \n {\n setDialogObj({ msg: '', show: false })\n }}>\n Ok\n \n \n \n \n

Event Settings

\n \n {/**/}\n \n \n \n \n \n {isEdit && (\n \n {!lockCode && }\n {lockCode && (\n \n )}\n \n )}\n \n\n \n \n {\n return (\n \n {\n field.onChange(date);\n }}\n />\n \n\n );\n }}\n />\n\n \n \n 0 ? timezones[0].label : ''\n }\n includeNone={false}\n tooltipText={\n 'The timezone where your event will be held. Dates/times will automatically adjust for each user’s location on their device.'\n }\n />\n \n \n 0 ? paymentProcessors[0].label : \"\")}\n includeNone={false}\n tooltipText={\"\"}\n />\n \n \n\n \n \n {\n handleChange(e, field)\n }}\n options={[\n {\n value: 'billme',\n label: 'Allow Bill Me',\n tooltipText: 'Allow checkout without immediate payment in order to send an invoice at a later date.'\n }\n ]}\n label=\"\"\n />\n \n \n {\n handleChange(e, field)\n }}\n options={[\n {\n value: 'allowattendedbytickettype',\n label: 'Track Attended per Ticket',\n tooltipText: ''\n }\n ]}\n label=\"\"\n />\n \n \n \n \n \n\n\n \n {watchLogo && (\n \n
\n {' '}\n \n
\n
\n \"event\n
\n
\n )}\n\n \n {watchLogoData && (\n <>\n
New Event Logo
\n
\n \n
\n \n )}\n
\n
\n

Event Logo

\n \n {({ getRootProps, getInputProps }) => (\n
\n
\n \n

\n Drag 'n' drop a file here, or click to select a file. Event\n logo will be displayed with a max height of 54px. For best\n mobile experience, your logo should not exceed 215px by 54px.\n Only .jpg, .jpeg, .png, .gif, and .bmp images under 2MB are\n allowed.\n

\n
\n
\n )}\n
\n\n
\n

Event Welcome Page Header

\n
This content will show above the login fields while the event is open.
\n {\n // console.log(eventState)\n setStoreHeader(eventState.html)\n }}\n />\n
\n\n \n {eventsettings?.validevent &&\n \n \n \n }\n {eventsettings?.validauction &&\n \n \n \n }\n \n
\n

Event Welcome Page Footer

\n
This content will show above the login fields while the event is open.
\n {\n setStoreFooter(eventState.html)\n }}\n />\n
\n
\n

Event Privacy/Refund Policy

\n
This content will show above the login fields while the event is open.
\n {\n setEventPrivacy(eventState.html)\n }}\n />\n
\n\n \n Save\n \n\n \n \n
\n )\n}\n\nexport default EventSettingsForm\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useEditEventSettings = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/evtsettings`, body)\n }\n ,\n {\n onSuccess: (data) => {\n queryClient.invalidateQueries(['evtsettings'])\n queryClient.invalidateQueries(['evts'])\n }\n }\n )\n}\n\n\nexport const useCreateEvent = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/evtsettings`, body)\n },\n {\n onSuccess: (data ) => {\n queryClient.invalidateQueries(['evtsettings'])\n queryClient.invalidateQueries(['evts'])\n }\n }\n )\n}\n","import * as React from 'react';\nimport { EditorUtils } from '@progress/kendo-react-editor';\nimport { plusIcon } from '@progress/kendo-svg-icons';\nimport { DropDownButton, DropDownButtonItemClickEvent } from '@progress/kendo-react-buttons';\n\ninterface Shortcode {\n text: string;\n code: string;\n id: number;\n}\n\nvar shortcodes: Shortcode[] = [\n { text: 'Name', code: '«name»', id: 1 },\n { text: 'Initials', code: '«initials»', id: 2 },\n { text: 'Address', code: '«address_street»', id: 3 },\n { text: 'Email', code: '«email»', id: 4 },\n { text: 'Phone', code: '«phone»', id: 5 },\n];\n\nexport function setShortcodeData (data: []) {\n shortcodes = data.map((fieldData: any) => {\n return {text: fieldData.fieldname, code: '<' + fieldData.fieldname + '>', id: 1}\n })\n}\n\nconst defaultItem: Shortcode = { text: 'Insert Field', code: '', id: 0 };\n\ninterface InsertShortcodeToolProps {\n view: any; // Replace 'any' with the appropriate type if known\n}\n\nexport class InsertShortcodeTool extends React.Component {\n handleShortcodeInsert = (event: DropDownButtonItemClickEvent) => {\n const selectedShortcode = event.item as Shortcode;\n\n if (!selectedShortcode.code) {\n return;\n }\n\n const { view } = this.props;\n const schema = view.state.schema;\n\n const nonEditableNodeType = schema.nodes.nonEditable;\n\n const shortcodeNode = nonEditableNodeType.createAndFill(\n { class: 'shortcode' },\n schema.text(selectedShortcode.code)\n );\n\n EditorUtils.insertNode(view, shortcodeNode);\n view.focus();\n };\n\n render() {\n const { view } = this.props;\n const canInsertTextNode = view && EditorUtils.canInsert(view.state, view.state.schema.nodes.text);\n\n return (\n \n );\n }\n}\n","import React, {useEffect, useState} from 'react'\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport { Button } from '@mui/material'\n\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport CheckoutDetails from './CheckoutDetails'\nimport CheckoutForm from './CheckoutForm'\nimport CheckoutOrdersGrid from './CheckoutOrdersGrid'\nimport styles from './CheckoutPage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {CheckoutData, CheckoutObject} from \"../../queries/useFetchCheckout\";\n\nexport enum CheckoutPageTab {\n Checkout,\n ResendReceipt,\n PDF,\n Void,\n None\n}\n\ninterface Params {\n eventid: string\n}\n\nconst CheckoutPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const [tab, setTab] = useState(CheckoutPageTab.None)\n const [showPayment, setShowPayment] = useState(true)\n\n const [selectedUser, setSelectedUser] =\n useState<{ id: number; status: 'Open' | 'CheckedOut' }>(null)\n const [creditCardInfo, setCreditCardInfo] =\n useState<{ showccfees: boolean,\n ccfeespercentage: number,\n creditcardiframe: string,\n javascriptfile: string,\n transcenterid: string,\n processorid: string, transactiontype: string\n }>({\n showccfees: false,\n ccfeespercentage: 0,\n creditcardiframe: \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/v3/CreditCard\",\n javascriptfile: \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/Scripts/firstpay/firstpay.cryptogram.js\",\n processorid: \"70802\",\n transactiontype: \"Sale\",\n transcenterid: \"92754\"\n })\n\n const [checkoutDataObject, setCheckoutDataObject] = useState(null)\n const onResendEmail = () => {\n //Send email here\n setTab(CheckoutPageTab.None)\n }\n\n const onVoid = () => {\n //Void order here\n setTab(CheckoutPageTab.None)\n }\n\n const [cryptogram, setCryptogram] = useState('');\n\n useEffect(() => {\n window.addEventListener(\"message\", processPayment, false)\n return () => {\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n const processPayment = (e: any) => {\n if (e.data.firstpay) {\n const ccData = e.data\n if (ccData.type === 'newCryptogram') {\n setCryptogram(ccData.cryptogram)\n }\n }\n }\n\n return (\n
\n
\n \n
\n setTab(CheckoutPageTab.None)}\n onConfirm={() => onResendEmail()}\n confirmText=\"Resend Receipt\"\n />\n setTab(CheckoutPageTab.None)}\n onConfirm={() => onVoid()}\n confirmText=\"Void Transaction\"\n />\n \n\n {/*{checkoutDataObject?.isreadonly && }*/}\n
\n {selectedUser?.status === 'CheckedOut' && (\n <>\n setTab(CheckoutPageTab.ResendReceipt)}>\n Void Transaction\n \n setTab(CheckoutPageTab.ResendReceipt)}>\n Resend Receipt\n \n {/* setTab(CheckoutPageTab.PDF)}>*/}\n {/* PDF*/}\n {/**/}\n {/* setTab(CheckoutPageTab.Void)}>*/}\n {/* Void*/}\n {/**/}\n \n )}\n
\n
\n )\n}\n\nexport default CheckoutPage\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { Accordion, AccordionSummary, AccordionDetails, Typography, Button, TextField } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n// Assuming you have set up the Telerik Kendo rich text editor\nimport {\n Editor,\n EditorTools,\n EditorUtils,\n ProseMirror,\n EditorChangeEvent\n} from \"@progress/kendo-react-editor\";\nimport {InsertShortcodeTool} from '../../components/common/inputs/RTEInsertTool/RTEInsertTool'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport { makeStyles } from '@material-ui/core/styles';\n\n\ninterface Params {\n eventid: string\n}\n// Custom styles\nconst useStyles = makeStyles((theme) => ({\n accordionDetails: {\n width: '100%', // Set the width to 100% of the parent\n maxWidth: '100%', // Ensure it doesn't expand past the parent\n display: 'block', // Ensures the content takes the full width\n boxSizing: 'border-box', // Includes padding and border in the element's total width and height\n },\n // ...other styles if needed\n}));\n\nconst EmailCustomizationPage = () => {\n const classes = useStyles();\n const { Bold, Italic, Underline, ViewHtml } = EditorTools;\n const { Schema, EditorView, EditorState } = ProseMirror;\n const [transactionReceiptHeader, setTransactionReceiptHeader] = useState('');\n const [transactionReceiptFooter, setTransactionReceiptFooter] = useState('');\n const [purchaserHeader, setPurchaserHeader] = useState('');\n const [purchaserFooter, setPurchaserFooter] = useState('');\n const [guestHeader, setGuestHeader] = useState('');\n const [guestFooter, setGuestFooter] = useState('');\n const { eventid } = useParams()\n useAutoEvent(eventid)\n\n const handleTransactionReceiptHeaderChange = (event: EditorChangeEvent) => {\n setTransactionReceiptHeader(event.html);\n };\n\n const handleTransactionReceiptFooterChange = (event) => {\n setTransactionReceiptFooter(event.html);\n };\n const handlePurchaserHeaderChange = (event) => {\n setPurchaserHeader(event.html);\n };\n\n const handlePurchaserFooterChange = (event) => {\n setPurchaserFooter(event.html);\n };\n const handleGuestHeaderChange = (event) => {\n setGuestHeader(event.html);\n };\n\n const handleGuestFooterChange = (event) => {\n setGuestFooter(event.html);\n };\n // Fetch data functions\n const fetchData = async (url, setDataHeader, setDataFooter) => {\n try {\n const response = await axios.post(url, { eventid: eventid });\n const parsedData = JSON.parse(response.data.jsonString);\n if (parsedData && parsedData.header !== undefined && parsedData.footer !== undefined) {\n setDataHeader(parsedData.header);\n setDataFooter(parsedData.footer);\n } else {\n console.error('Data received is not in the expected format:', parsedData);\n }\n \n } catch (error) {\n console.error('Error fetching data:', error);\n }\n };\n const saveTransactionReceiptData = async () => {\n const data = {\n eventid: eventid, \n header: transactionReceiptHeader,\n footer: transactionReceiptFooter\n };\n \n try {\n const response = await axios.put('https://testapi.auctionsnap.com:8443/evtemailtransactionreceipt', data);\n alert('Transaction Receipt data saved successfully!');\n } catch (error) {\n console.error('Error saving Transaction Receipt data:', error);\n alert('Failed to save Transaction Receipt data.');\n }\n };\n const savePurchaserData = async () => {\n const data = {\n eventid:eventid, \n header: purchaserHeader,\n footer: purchaserFooter\n };\n \n try {\n const response = await axios.put('https://testapi.auctionsnap.com:8443/evtemailpurchaser', data);\n alert('Purchaser data saved successfully!');\n } catch (error) {\n console.error('Error saving purchaser data:', error);\n alert('Failed to save purchaser data.');\n }\n };\n const saveGuestData = async () => {\n const data = {\n eventid: eventid, \n header: guestHeader,\n footer: guestFooter\n };\n \n try {\n const response = await axios.put('https://testapi.auctionsnap.com:8443/evtemailguest', data);\n // Handle response here. For example, you can alert the user about successful save\n alert('guest data saved successfully!');\n } catch (error) {\n // Handle errors here. For example, you can alert the user about the error\n console.error('Error saving guest data:', error);\n alert('Failed to save guest data.');\n }\n };\n \n // Fetch data when the component mounts\n useEffect(() => {\n fetchData('https://testapi.auctionsnap.com:8443/evtemailtransactionreceipt', setTransactionReceiptHeader, setTransactionReceiptFooter);\n fetchData('https://testapi.auctionsnap.com:8443/evtemailpurchaser', setPurchaserHeader, setPurchaserFooter);\n fetchData('https://testapi.auctionsnap.com:8443/evtemailguest', setGuestHeader, setGuestFooter);\n }, []);\n \n // This is the node configuration\nconst nonEditable = {\n name: \"nonEditable\",\n inline: true,\n group: \"inline\",\n content: \"inline+\",\n marks: \"\",\n attrs: {\n contenteditable: { default: null },\n class: { default: null },\n style: { default: null }\n },\n atom: true,\n parseDOM: [{ tag: \"span.uneditable\", priority: 51 }],\n // The styles can be added via the class as well\n toDOM: () => [\n \"span\",\n {\n contenteditable: false,\n class: \"uneditable\",\n style: \"user-select: none; opacity: 0.5;\"\n },\n 0\n ]\n};\n\n const onMount = event => {\n const { viewProps } = event;\n const { plugins, schema } = viewProps.state;\n\n // Append a new node.\n let nodes = schema.spec.nodes.addToEnd('nonEditable', nonEditable);\n\n // Create the new schema.\n const mySchema = new Schema({ nodes: nodes, marks: schema.spec.marks });\n\n // Create a new document using the modified schema.\n const doc = EditorUtils.createDocument(mySchema, '');\n\n // Return the custom EditorView object that will be used by Editor.\n return new EditorView(\n { mount: event.dom },\n {\n ...event.viewProps,\n state: EditorState.create({ doc, plugins })\n }\n );\n };\n \n\n return (\n
\n

Email Customization

\n\n \n }>\n Transaction Receipt\n \n \n
\n Header\n handleTransactionReceiptHeaderChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml]]}\n contentStyle={{ height: 300 }}\n \n />\n\n Footer\n handleTransactionReceiptFooterChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml]]}\n contentStyle={{ height: 300 }}\n \n /> \n\n
\n\n
\n
\n\n \n }>\n Email to Purchaser with Link to All Update Guest Data\n \n \n
\n Header\n handlePurchaserHeaderChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml, InsertShortcodeTool]]}\n contentStyle={{ height: 300 }}\n onMount={onMount}\n />\n Footer\n handlePurchaserFooterChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml]]}\n contentStyle={{ height: 300 }}\n \n /> \n\n\n
\n\n
\n
\n\n \n \n }>\n Email to Guest with Link to Update Guest Data\n \n \n
\n Header\n handleGuestHeaderChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml, InsertShortcodeTool]]}\n contentStyle={{ height: 300 }}\n onMount={onMount}\n />\n Footer\n handleGuestFooterChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml]]}\n contentStyle={{ height: 300 }}\n \n /> \n\n\n
\n\n
\n
\n\n
\n );\n}\n\nexport default EmailCustomizationPage;\n","import React, { useState } from 'react';\nimport { Dialog, Tabs, Tab, Box, Typography, TextField, Button, Grid } from '@mui/material';\nimport { DataGrid, GridSelectionModel, GridColDef } from '@mui/x-data-grid';\nimport {\n Editor,\n EditorTools,\n EditorUtils,\n ProseMirror\n} from \"@progress/kendo-react-editor\";\nimport {InsertShortcodeTool} from '../../../components/common/inputs/RTEInsertTool/RTEInsertTool'\nconst EmailEditModal = ({ isOpen, handleClose, emailData }) => {\n const [activeTab, setActiveTab] = useState(0);\n const [selectionModel, setSelectionModel] = useState([]);\n\n const handleChangeTab = (event, newValue) => {\n setActiveTab(newValue);\n };\n const [testEmail, setTestEmail] = useState('');\n const handleSendTestEmail = () => {\n // Logic to send a test email to the provided address\n };\n\n // Function to handle the final send\n const handleSendEmails = () => {\n // Logic to send the actual emails\n };\n\n\n const handleSelectAll = () => {\n const allIds = emailData.data?.map((row) => row.id);\n setSelectionModel(allIds);\n };\n\n const columns: GridColDef[] = [\n { field: 'id', headerName: 'ID', width: 90, hide: true },\n { field: 'firstName', headerName: 'First Name', width: 150 },\n { field: 'lastName', headerName: 'Last Name', width: 150 },\n { field: 'email', headerName: 'Email', width: 200 },\n // Add more columns as needed\n ];\n const handleDeselectAll = () => {\n setSelectionModel([]);\n };\n\n const handleResetFilters = () => {\n // Reset any applied filters on the DataGrid\n };\n\n const { Bold, Italic, Underline, ViewHtml } = EditorTools;\n const { Schema, EditorView, EditorState } = ProseMirror;\n // This is the node configuration\n const nonEditable = {\n name: \"nonEditable\",\n inline: true,\n group: \"inline\",\n content: \"inline+\",\n marks: \"\",\n attrs: {\n contenteditable: { default: null },\n class: { default: null },\n style: { default: null }\n },\n atom: true,\n parseDOM: [{ tag: \"span.uneditable\", priority: 51 }],\n // The styles can be added via the class as well\n toDOM: () => [\n \"span\",\n {\n contenteditable: false,\n class: \"uneditable\",\n style: \"user-select: none; opacity: 0.5;\"\n },\n 0\n ]\n };\n\n const onMount = event => {\n const { viewProps } = event;\n const { plugins, schema } = viewProps.state;\n\n // Append a new node.\n let nodes = schema.spec.nodes.addToEnd('nonEditable', nonEditable);\n\n // Create the new schema.\n const mySchema = new Schema({ nodes: nodes, marks: schema.spec.marks });\n\n // Create a new document using the modified schema.\n const doc = EditorUtils.createDocument(mySchema, '');\n\n // Return the custom EditorView object that will be used by Editor.\n return new EditorView(\n { mount: event.dom },\n {\n ...event.viewProps,\n state: EditorState.create({ doc, plugins })\n }\n );\n };\n\n return (\n \n \n \n \n \n {/* */}\n \n\n \n {activeTab === 0 && (\n // Step 1: Edit Email Body\n \n \n \n \n Header\n \n \n\n \n \n \n \n )}\n {activeTab === 1 && (\n \n \n \n Email Name: {emailData.emailName}\n \n \n Email Type: {emailData.emailType}\n \n \n \n \n \n Number of guests with emails: 0 {/* Display count here */}\n \n \n \n \n Number of guests Selected: 0 {/* Display count here */}\n \n \n \n \n \n \n \n \n\n setSelectionModel(newSelection)}\n selectionModel={selectionModel}\n />\n \n\n \n \n \n \n \n )}\n {activeTab === 2 && (\n // Step 3: Review and Send\n \n \n \n Email Name: {emailData.emailName}\n \n \n Email Type: {emailData.emailType}\n \n \n {/* Send Test Email Section */}\n \n \n setTestEmail(e.target.value)}\n fullWidth\n />\n \n \n \n \n \n\n \n \n\n \n Preview First 10 Emails: {/* Display count here */}\n \n \n \n\n \n \n \n {/* Send Emails Section */}\n \n \n\n \n Number of emails to send: {/* Display count here */}\n \n \n \n\n \n \n \n \n )}\n {activeTab === 3 && (\n // Step 4: Send History\n // \n \n {/* Summary of email and a Send button */}\n \n )}\n \n \n );\n};\n\nexport default EmailEditModal;\n","import React, {useEffect, useState} from 'react';\nimport axios from \"axios\";\nimport {\n DataGridPremium,\n GridAlignment,\n GridCallbackDetails,\n GridCellParams,\n GridColDef,\n GridCsvExportOptions,\n GridCsvGetRowsToExportParams,\n GridEventListener, GridRenderCellParams,\n GridRenderEditCellParams,\n GridRowEditStopReasons, GridRowModel, GridRowModes,\n GridRowParams,\n gridSortedRowIdsSelector,\n GridSortModel,\n GridToolbarContainer,\n GridToolbarExport, GridValueFormatterParams,\n MuiEvent, useGridApiRef,\n GRID_CHECKBOX_SELECTION_COL_DEF, GridState, gridFilteredSortedRowEntriesSelector,\n} from \"@mui/x-data-grid-premium\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {Checkbox, Grid, TextField} from \"@mui/material\";\nimport dayjs from \"dayjs\";\nimport {GridFilterState, GridSelectionModel} from \"@mui/x-data-grid-pro\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText} from \"@material-ui/core\";\nimport styles from \"../../AuctionSettingsForm/AuctionSettingsForm.module.css\";\n\nconst EmailRecipients = ({eventid, massemailid, selectedRow}) => {\n const apiRef = useGridApiRef();\n const [emailData, setEmailData] = useState({columnlist: [], emailcount: 0, massemailname: '', massemailtype: '', message: '', rowlist: [], totalcount: 0});\n const [checkboxSelection, setCheckboxSelection] = React.useState([])\n const [selectionModel, setSelectionModel] = React.useState([1]);\n const [checked, setChecked] = React.useState(true);\n const [filterSelectedRows, setFilterSelectedRows] = React.useState([]);\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n\n const handleChange = (event: React.ChangeEvent) => {\n if (!selectedRow.readonly) {\n setCheckboxSel(event.target.id, event.target.checked)\n }\n };\n\n useEffect(() => {\n const body = {'eventid': eventid, 'massemailid': massemailid}\n\n const fetchData = async () => {\n const { data } = await axios.post('/evtmassemailrecipient', body)\n const parsedData = JSON.parse(data.jsonString)\n // console.log(parsedData)\n setEmailData(parsedData)\n\n const selectedItems = parsedData.rowlist.map(listofstuff => {\n return {id: listofstuff.id, value: listofstuff.isselected}\n })\n if (shouldAllBeSelected(selectedItems)) {\n setCheckboxSelection([{id: 0, value: true}, ...selectedItems])\n }\n else {\n setCheckboxSelection(selectedItems)\n }\n }\n\n fetchData()\n }, [])\n\n const shouldAllBeSelected = (selections) => {\n var allSelected = true\n selections.forEach(listofstuff => {\n if (listofstuff.value == false) {\n allSelected = false\n }\n })\n return allSelected\n }\n\n const setCheckboxSel = (id, value) => {\n const selections = checkboxSelection.filter((op) => op.id != id)\n if (id == 0) {\n const gridFilteredRows = gridFilteredSortedRowEntriesSelector(apiRef)\n const selectedItems = gridFilteredRows.map(listofstuff => {\n return {id: listofstuff.id, value: value}\n })\n setCheckboxSelection([{id: 0, value: value}, ...selectedItems])\n }\n else {\n const selectionValues = [{id: Number(id), value: value}, ...selections].filter((op) => op.id != 0)\n const allValue = shouldAllBeSelected(selectionValues)\n\n selectionValues.push({id: 0, value: allValue})\n setCheckboxSelection(selectionValues)\n }\n }\n\n const getCheckboxSel = (id) => {\n const selection = checkboxSelection.find((op) => op.id === id)\n return selection ? selection.value : false\n }\n\n const valueGetter = (gridParams) => {\n var actualDay = dayjs(gridParams?.value?.toString(), \"YYYY-MM-DD\")\n const newDate = dayjs().set('date', actualDay.date()).set('month', actualDay.month()).set('year', actualDay.year())\n\n return (gridParams.value ? newDate.format('MM/DD/YYYY') : '')\n }\n\n const lookupDateTimeValue = (params: GridValueFormatterParams) => {\n if (params.value) {\n return dayjs(params.value).format('MMMM DD, YYYY hh:mm A')\n }\n }\n\n const lookupValue = (params: GridValueFormatterParams) => {\n if (params.value) {\n // console.log(params.value.toString())\n const paramsValue = params.value.toString()\n const tagDescription = processValue(paramsValue)\n return tagDescription\n }\n }\n const processValue = (valuesAsString: string) => {\n // var idsToLookup = [valuesAsString]\n // if (valuesAsString && typeof valuesAsString == \"string\" && valuesAsString.length > 0 && valuesAsString.includes(',')) {\n // idsToLookup = valuesAsString.split(',')\n // }\n // const lookupStrings = idsToLookup.map(id => {\n // const lookObj = mainData?.lookuplist.filter((item) => item.uniqueid === id)\n // // console.log(lookObj)\n // if (lookObj && lookObj.length > 0) {\n // return lookObj[0].lookup\n // }\n // })\n // const tagDescription = getTagDescription(lookupStrings)\n // return tagDescription\n return ''\n }\n\n // const valueSingleSelectGetter = (params) => {\n // var check = ''\n // if (params.value) {\n // check = params.value.toString()\n // }\n // const lookup = lookupList.filter(list => list.uniqueid === check)\n // if (lookup && lookup.length > 0) {\n // return lookup[0].lookup\n // }\n // else {\n // return params.value ? params.value : 'None'\n // }\n // }\n\n const buildDynamicColumnDefs = (columnList) => {\n var gridDefs = [];\n // var sortModel: GridSortModel = [gridSortItem]\n\n columnList?.forEach(field => {\n // 1 - boolean\n // 2 - Lookup\n // 3 - integer\n // 4 - money (double)\n // 5 - text\n // 6 - date\n // 7 - text ([1,3,5] multi lookup values\n // 8 - Datetime\n // 9 - Time\n\n let gridAlignmentHeader: GridAlignment = field.fieldheaderalign\n let gridAlignmentCell: GridAlignment = field.fieldalign\n let colWidth = field.fieldwidth\n\n var col: GridColDef = {\n \"field\": field.fieldfield.toString(),\n \"headerName\": field.fieldlabel,\n \"type\": 'string',\n \"headerAlign\": gridAlignmentHeader,\n \"width\": colWidth,\n \"align\": gridAlignmentCell,\n }\n\n if (field.fieldcontrol === 1) {\n // col.renderCell = RenderCheckBox\n // col.valueFormatter = boolValueLookup\n col = GRID_CHECKBOX_SELECTION_COL_DEF\n\n col.field = field.fieldfield.toString()\n col.headerName = field.fieldlabel\n col.editable = !selectedRow.readonly\n col.width = colWidth\n col.align = gridAlignmentCell\n col.headerAlign = gridAlignmentHeader\n col.renderHeader = (params) => {\n return (\n \n )\n }\n col.renderCell = (params) => {\n return (\n \n )\n }\n // col.valueGetter = valueCheckboxGetter\n // col.valueSetter = valueCheckboxSetter\n // console.log(col)\n } else if (field.fieldcontrol === 2) {\n // col.groupingValueGetter = valueSingleSelectGetter\n // col.valueFormatter = valueLookup\n // col.renderCell = (params) => {\n // const fieldid = field.schedulefieldid\n // const fieldcolorId = 'schedulegridcolor' + field.schedulefieldid\n // const testData = processValue(params.row[fieldid])\n // return getCellText(testData, params.row[fieldcolorId])\n }\n else if (field.fieldcontrol === 3) {\n col.type = 'number'\n } else if (field.fieldcontrol === 4) {\n // col.renderEditCell = (params: any) => {\n // return (\n // <>\n // handleCurrencyChange(value, field.scheduleid, field.schedulefieldid)}\n // />\n // \n // )\n // }\n } else if (field.fieldcontrol === 5) {\n // col.renderEditCell = (params: any) => {\n // return (\n // <>\n // \n // \n // )\n // }\n } else if (field.fieldcontrol === 6) {\n // col.valueFormatter = formatDate\n col.valueGetter = valueGetter\n col.groupingValueGetter = valueGetter\n } else if (field.fieldcontrol === 7) {\n col.valueFormatter = lookupValue\n col.renderEditCell = (params: any) => {\n return (\n <>\n \n )\n }\n }\n else if (field.fieldcontrol === 8) {\n col.valueFormatter = lookupDateTimeValue\n }\n // const fielddata = getFieldData(field.fieldfield.toString())\n // console.log(fielddata)\n gridDefs.push({...col})\n })\n // console.log(GRID_CHECKBOX_SELECTION_COL_DEF)\n\n\n return [...gridDefs]\n }\n\n const save = async () => {\n const selections = checkboxSelection.filter(item => item.value == true)\n const ids = selections.map(sels => {\n return sels.id\n })\n\n const body = {\n \"eventid\": eventid,\n \"massemailid\": massemailid,\n \"idlist\": ids\n }\n\n const { data } = await axios.put('/evtmassemailrecipient', body)\n const parsedData = JSON.parse(data.jsonString)\n var message = \"Successfully saved.\"\n if (parsedData.message) {\n parsedData.message = message\n }\n setDialogMsg(message)\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n <>\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n
\n \n \n console.log(itm)}\n onSelectionModelChange={(newSelectionModel) => {\n setSelectionModel(newSelectionModel);\n }}\n selectionModel={selectionModel}\n apiRef={apiRef}\n // onRowClick={handleRowClick}\n />\n \n\n \n \n \n \n
\n \n )\n}\nexport default EmailRecipients\n\n","import React, {useEffect, useState} from 'react';\nimport axios from \"axios\";\nimport {Grid, List, ListItemButton, TextField, Typography} from \"@mui/material\";\nimport styles from \"../../AuctionSettingsForm/AuctionSettingsForm.module.css\";\nimport { ZIndexContext } from '@progress/kendo-react-common';\nimport {Button, ButtonProps, Dialog, DialogActions, DialogContent, DialogContentText, ListItemText} from \"@material-ui/core\";\nimport {\n Editor, EditorChangeEvent,\n EditorTools,\n EditorUtils,\n ProseMirror\n} from \"@progress/kendo-react-editor\";\nimport {InsertShortcodeTool, setShortcodeData} from '../../../components/common/inputs/RTEInsertTool/RTEInsertTool'\nimport {Outlet} from \"@mui/icons-material\";\nimport {DropDownButton, DropDownButtonItemClickEvent} from \"@progress/kendo-react-buttons\";\nimport {render} from \"react-dom\";\n\nconst EmailBody = ({eventid, massemailid, selectedRow}) => {\n\n const edBold = EditorTools.Bold\n const richTextTools = [\n [edBold, EditorTools.Italic, EditorTools.Underline, EditorTools.Strikethrough],\n [EditorTools.Subscript, EditorTools.Superscript],\n EditorTools.ForeColor,\n EditorTools.BackColor,\n [EditorTools.CleanFormatting],\n [EditorTools.AlignLeft, EditorTools.AlignCenter, EditorTools.AlignRight, EditorTools.AlignJustify],\n [EditorTools.Indent, EditorTools.Outdent],\n [EditorTools.OrderedList, EditorTools.UnorderedList],\n // [EditorTools.NumberedList, EditorTools.BulletedList],\n EditorTools.FontSize,\n EditorTools.FontName,\n EditorTools.FormatBlock,\n [EditorTools.SelectAll],\n [EditorTools.Undo, EditorTools.Redo],\n [EditorTools.Link, EditorTools.Unlink, EditorTools.InsertImage, EditorTools.ViewHtml],\n [EditorTools.InsertTable, EditorTools.InsertFile],\n // [EditorTools.Pdf, EditorTools.Print],\n [EditorTools.AddRowBefore, EditorTools.AddRowAfter, EditorTools.AddColumnBefore, EditorTools.AddColumnAfter],\n [EditorTools.DeleteRow, EditorTools.DeleteColumn, EditorTools.DeleteTable],\n [EditorTools.MergeCells, EditorTools.SplitCell],\n InsertShortcodeTool,\n ]\n\n const [emailData, setEmailData] = useState({fieldlist: null, massemailbody: '', showbody: false, massemailfooter: '', showfooter: false, massemailheader: '', showheader: false, massemailfrom: '', massemailfromname: '', massemailid: 0, massemailsubject: ''});\n const [bodyData, setBodyData] = useState('');\n const [headerData, setHeaderData] = useState('');\n const [footerData, setFooterData] = useState('');\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n\n\n\n useEffect(() => {\n const body = {'eventid': eventid, 'massemailid': massemailid}\n\n const fetchData = async () => {\n const { data } = await axios.post('/evtmassemailbody', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setEmailData(parsedData[0])\n setShortcodeData(parsedData[0]?.fieldlist)\n setBodyData(parsedData[0].massemailbody)\n setFooterData(parsedData[0].massemailfooter)\n setHeaderData(parsedData[0].massemailheader)\n }\n\n fetchData()\n }, [])\n\n const handleHeaderDataChange = (event: EditorChangeEvent) => {\n if (!selectedRow.readonly) {\n setHeaderData(event.html);\n }\n };\n const handleBodyDataChange = (event: EditorChangeEvent) => {\n if (!selectedRow.readonly) {\n setBodyData(event.html);\n }\n };\n\n const handleFooterDataChange = (event: EditorChangeEvent) => {\n console.log(event.html)\n if (!selectedRow.readonly) {\n setFooterData(event.html);\n }\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setEmailData({\n ...emailData,\n [name]: value\n });\n };\n\n const save = async () => {\n const body = {\n 'eventid': eventid,\n 'massemailid': massemailid,\n 'massemailfrom': emailData.massemailfrom,\n 'massemailfromname': emailData.massemailfromname,\n 'massemailsubject': emailData.massemailsubject,\n 'massemailbody': bodyData,\n 'massemailheader': headerData,\n 'massemailfooter': footerData\n }\n\n const { data } = await axios.put('/evtmassemailbody', body)\n const parsedData = JSON.parse(data.jsonString)\n var message = \"Successfully saved.\"\n if (parsedData.message) {\n parsedData.message = message\n }\n setDialogMsg(message)\n }\n\n const reset = async () => {\n setBodyData('')\n setEmailData({fieldlist: null, massemailbody: '', showbody: false, massemailfooter: '', showfooter: false, massemailheader: '', showheader: false, massemailfrom: '', massemailfromname: '', massemailid: 0, massemailsubject: ''});\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const handleHeaderToggle = (value: string) => () => {\n // const nonEditableNodeType = schema.nodes.nonEditable;\n //\n // const shortcodeNode = nonEditableNodeType.createAndFill(\n // { class: 'shortcode' },\n // schema.text(value)\n // );\n setHeaderData(headerData + '{{' + value + '}}')\n }\n\n const handleBodyToggle = (value: string) => () => {\n // const nonEditableNodeType = schema.nodes.nonEditable;\n //\n // const shortcodeNode = nonEditableNodeType.createAndFill(\n // { class: 'shortcode' },\n // schema.text(value)\n // );\n setBodyData(bodyData + '{{' + value + '}}')\n }\n\n const handleFooterToggle = (value: string) => () => {\n // const nonEditableNodeType = schema.nodes.nonEditable;\n //\n // const shortcodeNode = nonEditableNodeType.createAndFill(\n // { class: 'shortcode' },\n // schema.text(value)\n // );\n console.log(footerData)\n setFooterData(footerData + '{{' + value + '}}')\n console.log(footerData)\n }\n\n const { Schema, EditorView, EditorState } = ProseMirror;\n const { Bold, Italic, Underline, ViewHtml } = EditorTools;\n\n const nonEditable = {\n name: \"nonEditable\",\n inline: true,\n group: \"inline\",\n content: \"inline+\",\n marks: \"\",\n attrs: {\n contenteditable: { default: null },\n class: { default: null },\n style: { default: null }\n },\n atom: true,\n parseDOM: [{ tag: \"span.uneditable\", priority: 51 }],\n // The styles can be added via the class as well\n toDOM: () => [\n \"span\",\n {\n contenteditable: false,\n class: \"uneditable\",\n style: \"user-select: none;\"\n },\n 0\n ]\n };\n\n const onMount = event => {\n console.log('ONMOUNT')\n console.log(event)\n const { viewProps } = event;\n const { plugins, schema } = viewProps.state;\n\n // Append a new node.\n let nodes = schema.spec.nodes.addToEnd('nonEditable', nonEditable);\n\n // Create the new schema.\n const mySchema = new Schema({ nodes: nodes, marks: schema.spec.marks });\n\n // Create a new document using the modified schema.\n const doc = EditorUtils.createDocument(mySchema, '');\n\n // Return the custom EditorView object that will be used by Editor.\n return new EditorView(\n { mount: event.dom },\n {\n ...event.viewProps,\n state: EditorState.create({ doc, plugins })\n }\n );\n }\n\n return (\n <><>\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n {emailData.showheader &&\n <>\n \n \n

Header

\n
\n \n handleHeaderDataChange(e)}\n tools={richTextTools}\n contentStyle={{height: 300}}\n onMount={onMount}\n />\n \n
\n \n }\n {emailData.showbody &&\n <>\n \n \n

Body

\n
\n \n handleBodyDataChange(e)}\n tools={richTextTools}\n contentStyle={{height: 300}}\n onMount={onMount}/>\n \n
\n }\n\n {emailData.showfooter &&\n <>\n \n \n

Footer

\n
\n \n handleFooterDataChange(e)}\n tools={richTextTools}\n contentStyle={{height: 300}}\n onMount={onMount}/>\n \n
\n }\n\n \n \n \n \n \n \n
\n
\n \n \n )\n}\nexport default EmailBody\n\n","import React, {useEffect, useState} from 'react';\nimport axios from \"axios\";\nimport {\n Checkbox,\n DialogTitle,\n FormControl,\n FormControlLabel,\n Grid,\n InputLabel, ListItemText,\n MenuItem,\n Select,\n Stack,\n TextField, Typography\n} from \"@mui/material\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText, IconButton, withStyles,\n} from \"@material-ui/core\";\n\nimport Table from '@mui/material/Table';\nimport TableContainer from '@mui/material/TableContainer';\nimport TableRow from '@mui/material/TableRow';\nimport Paper from '@mui/material/Paper';\n\nimport MuiTableCell from \"@material-ui/core/TableCell\";\nimport styles from \"../../AuctionSettingsForm/AuctionSettingsForm.module.css\";\nimport { Editor, EditorChangeEvent,\n EditorTools,\n EditorUtils,\n ProseMirror} from \"@progress/kendo-react-editor\";\nimport {ChevronLeft, ChevronRight} from \"@material-ui/icons\";\nimport DateTimeInput from \"../../../components/common/inputs/DateTimeInput\";\nimport HookForm from \"../../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\n\nconst EmailReview = ({eventid, massemailid, selectedRow}) => {\n const formMethods = useForm()\n const { reset, watch, setValue } = formMethods\n\n const [reviewData, setReviewData] = useState({showpreviewbutton: true, showsendbutton: true, showcancelbutton: false, sendemailcount: 0, sections: [], previewlist: []});\n const [previewData, setPreviewData] = useState({emailbody: '', fromemail: '', fromname: '', key: '', locked: false, subject: '', toemail: '', toname: ''});\n const [previewDataIndex, setPreviewDataIndex] = useState(0)\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [isEmailPreviewModalOpen, setIsEmailPreviewModalOpen] = useState(false);\n const [isEmailError, setIsEmailError] = useState(false);\n const [email, setEmail] = useState('');\n\n const [isEmailSendingModalOpen, setIsEmailSendingModalOpen] = useState(false);\n\n const { Bold, Italic, Underline, ViewHtml } = EditorTools;\n\n const handleEmailSendingCloseModal = () => {\n setIsEmailSendingModalOpen(false);\n };\n\n const handleEmailPreviewCloseModal = () => {\n setIsEmailPreviewModalOpen(false);\n };\n\n const TableCell = withStyles({\n root: {\n border: \"none\",\n // border: \"3px dashed #eeeeee;\"\n }\n })(MuiTableCell);\n\n useEffect(() => {\n const body = {'eventid': eventid, 'massemailid': massemailid}\n\n const fetchData = async () => {\n const { data } = await axios.post('/evtmassemailreview', body)\n const parsedData = JSON.parse(data.jsonString)\n setReviewData(parsedData)\n console.log(parsedData)\n setPreviewData(parsedData?.previewlist[previewDataIndex])\n }\n\n fetchData()\n }, [])\n\n\n const save = async () => {\n const body = {\n \"eventid\": eventid,\n \"massemailid\": massemailid\n }\n\n const { data } = await axios.post('/evtmassemailsend', body)\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData.message && parsedData.message.length > 0) {\n setDialogMsg(parsedData.message)\n }\n else {\n setIsEmailSendingModalOpen(false);\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const clickActionBUtton = (dInfo) => {\n if (dInfo.sectiontype === 'PREVIEW') {\n setIsEmailPreviewModalOpen(true)\n }\n else if (dInfo.sectiontype === 'SEND') {\n setIsEmailSendingModalOpen(true)\n }\n }\n\n const getSections = (dataPreview) => {\n\n return dataPreview?.sections?.filter(item => item.sectionshow == true).map(dInfo => {\n var color = '#5732db;'\n if (dInfo.sectiontype == 'CANCEL') {\n color = 'red'\n }\n\n return (\n <>\n \n
{dInfo.sectiontitle}
\n {dInfo?.sectiondata?.map((item) => (\n <>\n
{item.label} {item.value}
\n \n ))}\n
\n \n {/**/}\n
\n clickActionBUtton(dInfo)}\n >\n {dInfo.sectiontype}\n \n
\n {/*
*/}\n
\n \n )\n })\n }\n\n const onNext = () => {\n // const previewLength = reviewData?.previewlist?.length\n if (reviewData?.previewlist?.length > previewDataIndex) {\n setPreviewDataIndex(previewDataIndex+1)\n setPreviewData(reviewData?.previewlist[previewDataIndex+1])\n }\n }\n\n const onPrevious = () => {\n if (previewDataIndex != 0) {\n setPreviewDataIndex(previewDataIndex-1)\n setPreviewData(reviewData?.previewlist[previewDataIndex-1])\n }\n }\n\n const sendEmail = async () => {\n const emailRegex: RegExp = new RegExp(/\\S+@\\S+\\.\\S+/);\n const testResults = emailRegex.test(email)\n console.log(testResults)\n setIsEmailError(testResults == false)\n\n if (testResults) {\n const emailDataFromList = reviewData?.previewlist[previewDataIndex]\n console.log(emailDataFromList)\n\n var body = {\n \"eventid\": eventid,\n \"massemailid\": massemailid,\n \"testemail\": email,\n \"key\": emailDataFromList.key\n }\n const { data } = await axios.post('/evtmassemailtestemail', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n }\n }\n\n const validateEmail = (e) => {\n setEmail(e.target.value)\n const emailRegex: RegExp = new RegExp(/\\S+@\\S+\\.\\S+/);\n setIsEmailError(emailRegex.test(e.target.value) == false)\n }\n\n const onSubmitScheduleSend = (formData: FormData) => {\n console.log(formData)\n }\n\n return (\n <>\n <>\n \n {/*Preview and Send Test Emails*/}\n \n\n \n \n Send Your Email\n \n \n \n
\n \n \n
You are about to schedule the sending of {reviewData?.sendemailcount} emails.
\n
\n \n
While waiting to send this email, it's body and recipients will be locked from editing. No new recipients will be added to this email, and changes made to the guest/ticket records will not be reflected in these emails. If you need to make a change while your email is already scheduled, first cancel the pending email to unlock it and make any necessary changes.
\n
\n {/**/}\n {/* */}\n {/**/}\n
\n
\n
\n\n \n \n \n \n \n
\n \n <>\n \n {/*Preview and Send Test Emails*/}\n \n \n onPrevious()}\n >\n Previous Email\n \n Preview and Send Test Emails\n onNext()}\n >\n Next Email\n \n \n \n \n
\n \n \n
From Name:
\n
\n \n
{previewData?.fromname}
\n
\n\n \n
From Email:
\n
\n \n
{previewData?.fromemail}
\n
\n\n \n
To Email:
\n
\n \n
{previewData?.toemail}
\n
\n\n \n
Subject:
\n
\n \n
{previewData?.subject}
\n
\n \n {/*
*/}\n
Email Body:
\n {/*
*/}\n
\n
\n\n\n \n
\n \n
\n
\n\n \n { setEmail(e.target.value) }}\n onChange={(e) => { validateEmail(e) }}\n helperText={isEmailError ? 'Please enter a valid email.' : ' '}\n error={isEmailError} fullWidth required\n />\n \n
\n
\n\n \n \n \n \n
\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n
\n \n \n \n \n <>\n {getSections(reviewData)}\n \n
\n
\n
\n
\n
\n \n )\n}\nexport default EmailReview\n\n","import React, { useState, useEffect } from 'react';\nimport {\n DataGridPremium,\n GridColDef,\n GridValueFormatterParams,\n GridSelectionModel,\n GridRowParams,\n GridCallbackDetails, MuiEvent, GridCellParams\n} from '@mui/x-data-grid-premium';\n\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n DialogContentText,\n Select,\n IconButton,\n Grid,\n Button,\n Box,\n MenuItem,\n FormControl,\n InputLabel,\n FormControlLabel,\n Checkbox,\n AppBar, Typography\n} from '@mui/material';\nimport AddIcon from '@mui/icons-material/Add';\nimport EmailEditModal from './EmailReviewForm'; // Import your Email Edit Modal component\nimport { Edit, Delete } from '@material-ui/icons';\nimport dayjs from 'dayjs';\nimport axios from 'axios';\nimport styles from './EventMassEmailMaintenanceTable.module.css';\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport {\n Editor,\n EditorTools,\n EditorUtils,\n ProseMirror\n} from \"@progress/kendo-react-editor\";\nimport EmailRecipients from \"./EmailRecipients\";\nimport EmailBody from \"./EmailBody\";\nimport EmailReview from \"./EmailReview\";\ninterface Params {\n eventid: string\n}\n\nconst { Bold, Italic, Underline, ViewHtml } = EditorTools;\nconst { Schema, EditorView, EditorState } = ProseMirror;\n\nconst nonEditable = {\n name: \"nonEditable\",\n inline: true,\n group: \"inline\",\n content: \"inline+\",\n marks: \"\",\n attrs: {\n contenteditable: { default: null },\n class: { default: null },\n style: { default: null }\n },\n atom: true,\n parseDOM: [{ tag: \"span.uneditable\", priority: 51 }],\n // The styles can be added via the class as well\n toDOM: () => [\n \"span\",\n {\n contenteditable: false,\n class: \"uneditable\",\n style: \"user-select: none; opacity: 0.5;\"\n },\n 0\n ]\n};\nconst onMount = event => {\n const { viewProps } = event;\n const { plugins, schema } = viewProps.state;\n\n // Append a new node.\n let nodes = schema.spec.nodes.addToEnd('nonEditable', nonEditable);\n\n // Create the new schema.\n const mySchema = new Schema({ nodes: nodes, marks: schema.spec.marks });\n\n // Create a new document using the modified schema.\n const doc = EditorUtils.createDocument(mySchema, '');\n\n // Return the custom EditorView object that will be used by Editor.\n return new EditorView(\n { mount: event.dom },\n {\n ...event.viewProps,\n state: EditorState.create({ doc, plugins })\n }\n );\n};\n\ninterface EmailRow {\n id: number;\n emailName: string;\n emailType: string;\n askGuestToRegister: boolean;\n readOnly: boolean;\n active: boolean;\n selectedCount: number;\n canedit: boolean;\n candelete: boolean;\n readonly: boolean;\n lastSent: string | null;\n data: any[];\n}\n// \nconst MassEmailMaintenanceTable = () => {\n const [emails, setEmails] = useState([]);\n const [dialogObj, setDialogObj] = useState({ msg: '', id: 0 });\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [reload, setReload] = useState(0);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [emailFormData, setEmailFormData] = useState(null);\n const [emailTypeObject, setEmailTypeObject] = useState({typedescription: '', typeid: null, typeshowaskguestregister: null});\n const [selectedRow, setSelectedRow] = useState({askGuestToRegister: true, emailName: null, emailType: null, id: null, lastSent: null, readOnly: null, selectedCount: null})\n const [askForAuctionSnap, setAskForAuctionSnap] = useState(false);\n const [isEmailEditModalOpen, setIsEmailEditModalOpen] = useState(false);\n const [selectedEmail, setSelectedEmail] = useState();\n const [tabSel, setTabSel] = React.useState(0)\n const [emailTypes, setEmailTypes] = useState([]); // State to store email types for dropdown\n const { eventid } = useParams()\n const [selectionModel, setSelectionModel] = React.useState();\n useAutoEvent(eventid)\n useEffect(() => {\n // Function to fetch data from the API\n const fetchData = async () => {\n try {\n const response = await axios.post('evtmassemail', { eventid: eventid });\n const data = response.data.jsonString ? JSON.parse(response.data.jsonString) : null;\n\n if (data && data.status === \"success\") {\n // Update the emails state with massemaillist\n setEmails(data.massemaillist.map(item => ({\n id: item.massemailid,\n emailName: item.massemailname,\n emailType: item.massemailtypedescription,\n askGuestToRegister: item.massemailaskguesttoregister,\n readOnly: item.readonly,\n active: item.active,\n candelete: item.candelete,\n canedit: item.canedit,\n readonly: item.readonly,\n selectedCount: item.massemailselectedcount,\n lastSent: item.massemaillastsent || null,\n })));\n\n // Update email types for the dropdown\n // console.log(data.typelist)\n setEmailTypes(data.typelist);\n }\n } catch (error) {\n console.error('Error fetching data:', error);\n }\n };\n\n fetchData();\n }, [reload]);\n\n useEffect(() => {\n // console.log(emailTypeObject)\n }, [emailTypeObject])\n\n\n const handleOpenEmailEditModal = (email: EmailRow | null) => {\n setSelectedEmail(email); // null for new email, or pass the selected email for editing\n setIsEmailEditModalOpen(true);\n };\n\n const handleCloseEmailEditModal = () => {\n setIsEmailEditModalOpen(false);\n setSelectedEmail(null);\n };\n // Fetch data (replace with your API call)\n\n const handleEdit = (row) => {\n const emailTypeObject = emailTypes.find(t => t.typedescription === row.emailType)\n if (emailTypeObject) {\n setEmailTypeObject(emailTypeObject)\n }\n\n setEmailFormData(row)\n setIsModalOpen(true)\n };\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.emailName + \"\\\"?\",\n id: Number(params.row.id)\n })\n }\n\n const handleEmailTypeChange = (event) => {\n const emailTypeObject = emailTypes.find(t => t.typeid === event.target.value)\n setEmailTypeObject(emailTypeObject)\n }\n\n const handleAuctionSnapChange = (event) => {\n setAskForAuctionSnap(event.target.checked);\n };\n const handleOpenModal = () => {\n setEmailTypeObject({typedescription: '', typeid: null, typeshowaskguestregister: null})\n setEmailFormData(null);\n setIsModalOpen(true);\n };\n\n const handleCloseModal = () => {\n setIsModalOpen(false);\n };\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTabSel(newValue)\n }\n\n const handleSaveEmail = async () => {\n var body = {\n eventid: eventid,\n massemailname: emailFormData?.emailName,\n massemailtypeid: emailTypeObject.typeid,\n massemailaskguesttoregister: askForAuctionSnap,\n active: true,\n // delete: false\n }\n\n if (emailFormData.id) {\n body['massemailid'] = emailFormData.id\n }\n\n const response = await axios.put('evtmassemail', body);\n setReload(reload+1)\n handleCloseModal();\n };\n const columns: GridColDef[] = [\n \n {\n field: 'emailName',\n headerName: 'Email Name',\n type: 'string',\n width: 200,\n },\n {\n field: 'emailType',\n headerName: 'Type',\n type: 'string',\n width: 250,\n },\n {\n field: 'selectedCount',\n headerName: 'Selected Count',\n type: 'number',\n width: 200,\n },\n \n {\n field: 'totalSent',\n headerName: 'Total Sent',\n type: 'number',\n width: 100,\n },\n {\n field: 'askGuestToRegister',\n headerName: 'Ask Guest to Register',\n type: 'boolean',\n width: 200,\n },\n \n {\n field: 'lastSent',\n headerName: 'Last Sent',\n type: 'dateTime',\n width: 150,\n valueFormatter: (params: GridValueFormatterParams) => params.value ? dayjs(params.value as string).format('MM-DD-YYYY') : '',\n },\n {\n field: 'edit',\n headerName: 'Edit',\n renderCell: (params) => (\n \n ),\n width: 100\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
\n
\n \n
\n )\n }\n ];\n\n const handleRowClick = (param : GridRowParams, event: MuiEvent, details: GridCallbackDetails) => {\n console.log(param.row)\n setSelectedRow(param.row)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"massemailtypeid\": id,\n \"delete\": true\n }\n\n const { data } = await axios.put('/evtmassemail', finaldata)\n const json = JSON.parse(data.jsonString)\n\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setReload(reload+1)\n }\n }\n\n return (\n
\n

Email Maintenance {selectedRow?.emailName ? ' - ' + selectedRow.emailName : ''}

\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n {tabSel === 0 && (\n <>\n
\n \n \n Add Email\n \n \n\n {\n setSelectionModel(newSelectionModel);\n }}\n selectionModel={selectionModel}\n onRowClick={handleRowClick}\n />\n
\n \n )}\n {tabSel === 1 && (\n \n )}\n {tabSel === 3 && (\n \n )}\n {tabSel === 4 && (\n \n )}\n\n
\n \n\n {/* Popup Modal for Adding/Editing Email */}\n \n {emailFormData ? 'Edit Email' : 'Add New Email'}\n \n setEmailFormData({ ...emailFormData, emailName: e.target.value })}\n />\n {/* Dropdown for Email Types */}\n \n Type of Email\n \n {emailTypes.map((type) => (\n {type.typedescription}\n ))\n }\n \n \n {/* Checkbox for Auction Snap Registration */}\n {emailTypeObject.typeshowaskguestregister && (\n \n }\n label=\"Ask Guest if they want to be registered for Auction Snap\"\n />\n )}\n \n \n \n \n \n \n \n
\n \n );\n};\n\nexport default MassEmailMaintenanceTable;\n","import React from 'react'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle\n} from '@material-ui/core'\n\nexport const ConfirmModal = ({\n isOpen,\n text,\n onClose,\n onConfirm,\n confirmText = 'Confirm',\n title = 'Confirm'\n}) => {\n return (\n \n {title}\n {text}\n \n \n \n \n {confirmText}\n \n \n \n \n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type Sponsor = {\n sponsorid: number\n name: string\n logo: string\n logourl: string\n active: boolean\n}\n\nexport const globalSponsorFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/sponsor', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.sponsors as Sponsor[]\n}\n\nexport const useFetchSponsors = (eventid) => {\n return useQuery(\n ['sponsors', eventid],\n () => globalSponsorFetcher(eventid),\n {\n staleTime: 120000\n }\n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useSponsorsMutation = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/sponsor`, body)\n },\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['sponsors'])\n }\n }\n )\n}\n","import { DropzoneDialog } from 'material-ui-dropzone'\nimport { readAsDataURL } from 'promise-file-reader'\nimport React, { useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, Grid\n} from '@material-ui/core'\nimport {Close} from '@material-ui/icons'\n\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { Sponsor } from '../../queries/events/useFetchSponsors'\nimport { useEventState } from '../../slices/eventSlice'\nimport styles from './SponsorsForm.module.css'\nimport { useSponsorsMutation } from './useSponsorsMutation'\nimport Dropzone from \"react-dropzone\";\nimport SelectInput from \"../../components/common/inputs/SelectInput\";\nimport imageCompression from \"browser-image-compression\";\n\ntype FormData = {\n name: string\n logo: string\n logourl: string\n logoremoved: boolean\n active: boolean\n}\n\ntype Props = {\n isOpen: boolean\n setIsOpen: Function\n sponsor?: Sponsor\n reloadForm?: number\n}\n\nconst UserForm = ({ isOpen, setIsOpen, sponsor, reloadForm }: Props) => {\n const event = useEventState()\n const formMethods = useForm()\n const { setValue, watch, reset } = formMethods\n const watchLogo = watch('logourl')\n const watchLogoData = watch('logo')\n\n const isEdit = Boolean(sponsor)\n\n const createMutation = useSponsorsMutation()\n const editMutation = useSponsorsMutation()\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n reset({\n logo: (sponsor ? sponsor.logo : \"\"),\n logourl: (sponsor ? sponsor.logourl : \"\"),\n logoremoved: false,\n name: (sponsor ? sponsor.name : \"\"),\n active: (sponsor ? sponsor.active : true)\n })\n }, [reloadForm])\n\n const onCreateSubmit = async (data: FormData) => {\n const { data: response } = await createMutation.mutateAsync({\n ...data,\n eventid: Number(event.eventId),\n logo: data.logo\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const onEditSubmit = async (data: FormData) => {\n const { data: response } = await editMutation.mutateAsync({\n ...data,\n sponsorid: sponsor.sponsorid,\n eventid: Number(event.eventId),\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const onLogoDrop = async (files: File[]) => {\n const options = {\n maxSize: 1,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n const compressedFile = await imageCompression(files[0], options)\n\n if (files && files.length > 0) {\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result as string\n setValue('logo', data.split(';base64,')[1])\n }\n fileReader.readAsDataURL(compressedFile)\n }\n }\n\n const clickRemoveLogo = () => {\n setValue(\"logourl\", \"\")\n setValue('logoremoved', true)\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {isEdit ? 'Edit' : 'Create'} Sponsor\n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n \n {watchLogo && (\n \n
\n
\n \"sponsor\n
\n
\n )}\n\n \n {watchLogoData && (\n <>\n
New Sponsor Logo
\n
\n \"event\n
\n \n )}\n
\n
\n\n \n {({ getRootProps,\n getInputProps,\n isDragActive,\n isDragAccept,\n isDragReject,\n acceptedFiles,\n fileRejections\n }) => (\n
\n
Upload Image
\n
\n \n {isDragAccept && (

File is a valid image type. Go ahead and drop.

)}\n {!isDragActive && (

Drag 'n' drop a files here, or click to select a file

)}\n {isDragReject && (

File cannot be dropped. It's an invalid type.

)}\n
Sponsor Images will be displayed with a max size of 400px by 90px. Only .jpg, .jpeg, .png, .gif, and .bmp images under 2MB are allowed.
\n
\n
\n )}\n \n \n \n \n setIsOpen(false)}\n className={styles.cancelButton}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n\nexport default UserForm\n","import { useState } from 'react'\nimport { useQueryClient } from 'react-query'\n\nimport { IconButton } from '@material-ui/core'\nimport { Add, Delete, Edit } from '@material-ui/icons'\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport {\n Sponsor,\n useFetchSponsors\n} from '../../queries/events/useFetchSponsors'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport SponsorsForm from '../SponsorsForm'\nimport { useSponsorsMutation } from '../SponsorsForm/useSponsorsMutation'\nimport styles from './EventSponsors.module.css'\nimport {useParams} from \"react-router\";\nimport {useDispatch} from \"react-redux\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {DataGridPremium} from \"@mui/x-data-grid-premium\";\n\ninterface Params {\n id: string\n}\n\nconst EventSponsors = () => {\n const { id } = useParams()\n useAutoEvent(id)\n const eventState = useEventState()\n\n const { data, isLoading } = useFetchSponsors(Number(eventState.eventId))\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [reloadForm, setReloadForm] = useState(0)\n const [sponsorToEdit, setSponsorToEdit] = useState(null)\n const [sponsorToDelete, setSponsorToDelete] = useState(null)\n const queryClient = useQueryClient()\n\n const editMutation = useSponsorsMutation()\n\n const onDelete = async () => {\n try {\n await editMutation.mutateAsync({\n sponsorid: sponsorToDelete.sponsorid,\n eventid: Number(eventState.eventId),\n delete: true\n })\n setSponsorToDelete(null)\n queryClient.invalidateQueries(['participant'])\n } catch {}\n }\n\n const rows = data\n ? data.map((v) => {\n return {\n ...v,\n id: v.sponsorid\n }\n })\n : []\n\n const columns: any = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n {\n setReloadForm(reloadForm+1)\n setSponsorToEdit(null)\n setIsFormShowing(true)\n }}>\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n {\n setReloadForm(reloadForm+1)\n setSponsorToEdit(params.row as Sponsor)\n setIsFormShowing(true)\n }}>\n \n \n )\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Sponsor Name',\n width: 280\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 150,\n sortable: false,\n renderCell: (params) => (\n setSponsorToDelete(params.row as Sponsor)}>\n \n \n )\n }\n ]\n\n return (\n
\n

Event Sponsors

\n
Upload the logos of event sponsors to be displayed in a rotating slideshow at the bottom of the auction website.
\n \n setSponsorToDelete(null)}\n />\n \n
\n )\n}\n\nexport default EventSponsors\n","import React, { FC } from 'react'\n\nimport { Divider, IconButton, List, ListItem } from '@material-ui/core'\nimport {Add, Launch} from '@material-ui/icons'\nimport QrCodeIcon from '@mui/icons-material/QrCode';\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\n\nimport { saveAs } from \"@progress/kendo-file-saver\";\nimport { QRCode } from \"@progress/kendo-react-barcodes\";\nimport styles from './ViewList.module.css'\n\ntype Props = {\n values: { label: string; value: any, title?: string, hover?:string, islink?: boolean, isprocessorlink?: boolean, aligntitle?: string, alignvalue?: string, widthtitle?: number, widthvalue?: number, eventname?: string,\n eventid?: number, active?: boolean}[]\n numOfCols?: number\n containerProps?: Object\n listProps?: Object\n listItemProps?: Object\n}\n\nconst ViewList: FC = ({\n values,\n numOfCols = 3,\n listItemProps = {},\n listProps = {},\n containerProps = {}\n}) => {\n const numOfRows = Math.ceil(values.length / numOfCols)\n\n const cols = Array.from({ length: numOfCols }, (v, i) => {\n return values.slice(numOfRows * i, numOfRows * (i + 1))\n })\n\n const exportQRCode = (eventname: string, eventLink: string, codeRef: any) => {\n console.log(codeRef)\n if (!codeRef || !codeRef.current) {\n return;\n }\n\n codeRef.current.exportImage().then((dataURI) => {\n saveAs(dataURI, eventname + \".png\");\n });\n }\n\n return (\n
\n {cols.map((col, i) => {\n // console.log(col)\n return (\n
\n \n {col.map(({ label, value, title, hover, islink, isprocessorlink, aligntitle, alignvalue, widthtitle, widthvalue, eventname, eventid, active}, i) => {\n if (islink) {\n const qrcode = React.createRef();\n return (\n \n \n \n \n {title}:\n \n \n {} }\n size=\"small\"\n title=\"Open link in new window\"\n >\n \n \n \n {navigator.clipboard.writeText(value)} }\n size=\"small\"\n title=\"Copy link to clipboard\"\n >\n \n \n {exportQRCode(eventname, value, qrcode)} }\n size=\"small\"\n title=\"Download QR Code\"\n >\n \n \n \n \n )\n }\n else if (isprocessorlink) {\n const qrcode = React.createRef();\n return (\n \n \n \n \n {title}\n \n \n {} }\n size=\"small\"\n title=\"Open link in new window\"\n >\n \n \n \n \n \n )\n }\n else {\n return (\n \n {label}\n \n {Boolean(value) === false && value !== 0 ? 'N/A' : value}\n \n \n )\n }\n })}\n \n {i !== cols.length - 1 && }\n
\n )\n })}\n
\n )\n}\n\nexport default ViewList\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type Events = {\n rownumber: number\n eventid: number\n eventname: string\n eventcode: string\n startdate: string\n enddate: string\n eventlink: string\n numofregisteredbidders: number\n numofpendingbidders: number\n raised: number\n openbids: number\n openbidsamount: number\n pendingamount: number\n collectedamount: number\n active: boolean\n}\n\nexport type EventDetail = {\n value: string\n title: string\n hover: string\n islink: boolean\n isprocessorlink: boolean\n aligntitle: string\n alignvalue: string\n widthtitle: number\n widthvalue: number\n}\n\nexport type EventAuctions = {\n active: boolean\n eventid: number\n eventname: string\n eventdetail: EventDetail[]\n}\n\nexport type EventsData = {\n validauction: boolean\n validevent: boolean\n isprocessorlink: boolean\n newbuttontext: string\n events: Events[]\n eventauctions: EventAuctions[]\n}\n\nexport const globalEventsFetcher = async () => {\n const { data } = await axios.get('/events')\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n return parsedData.events as Events[]\n}\n\nexport const globalFetcher = async () => {\n const { data } = await axios.get('/events')\n const parsedData = JSON.parse(data.jsonString)\n // console.log(parsedData)\n return parsedData as EventsData\n}\n\nexport const useFetchEvents = () => {\n return useQuery(\n ['events'],\n () => globalEventsFetcher(),\n {\n staleTime: 120000,\n placeholderData: [],\n keepPreviousData: true\n }\n )\n}\n\nexport const useFetchEventData = () => {\n return useQuery(\n ['eventdata'],\n () => globalFetcher(),\n {\n // staleTime: 120000,\n // placeholderData: {},\n // keepPreviousData: true\n }\n )\n}\n","export const getConfig = () => {\n if (window.location.hostname === 'localhost') {\n console.log('Setting up for Local')\n return {\n apiUrl: 'https://stagingapi.auctionsnap.com:8443',\n auctionSnapURL: 'localhost:3000'\n }\n }\n else if (window.location.hostname === 'testadmin.auctionsnap.com') {\n console.log('Setting up for Dev')\n return {\n apiUrl: 'https://testapi.auctionsnap.com:8443',\n auctionSnapURL: 'https://testapp.auctionsnap.com',\n version: 'AuctionSnap Admin 1.0.10',\n }\n }\n else if (window.location.hostname === 'stagingadmin.auctionsnap.com') {\n console.log('Setting up for Staging')\n return {\n apiUrl: 'https://stagingapi.auctionsnap.com:8443',\n auctionSnapURL: 'https://stagingapp.auctionsnap.com',\n version: 'AuctionSnap Admin 1.0.10',\n }\n }\n else if (window.location.hostname === 'admin.auctionsnap.com') {\n console.log('Setting up for Live')\n return {\n apiUrl: 'https://api.auctionsnap.com:8443',\n auctionSnapURL: 'https://app.auctionsnap.com',\n version: 'AuctionSnap Admin 1.0.10',\n }\n }\n}\n","import React, { useEffect, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport {\n Button,\n Card,\n CardActions,\n CardContent, Dialog, DialogActions, DialogContent, DialogContentText,\n FormControlLabel,\n Switch\n} from '@material-ui/core'\n\nimport ViewList from '../../components/common/ViewList'\nimport {EventAuctions, useFetchEventData} from '../../queries/events/useFetchEvents'\nimport styles from './HomePage.module.css'\nimport {getConfig} from \"../../AppConfig\";\nimport {\n useEditEventSettings,\n useUpdateEventClone,\n useUpdateEventStatus\n} from \"../AuctionSettingsForm/useEditEventSettings\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {OrgState, setOrg} from \"../../slices/orgSlice\";\nimport {useDispatch} from \"react-redux\";\nimport {useAuthToken} from \"../../slices/authSlice\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport * as events from \"events\";\nimport {useQueryClient} from \"react-query\";\nimport axios from \"axios\";\n\nconst HomePage = () => {\n let { data } = useFetchEventData()\n const queryClient = useQueryClient()\n const editMutation = useEditEventSettings()\n const editStatusMutation = useUpdateEventStatus()\n const editCloneMutation = useUpdateEventClone()\n const [validAuction, setValidAuction] = useState(true)\n const [validEvent, setValidEvent] = useState(true)\n const [newbuttontext, setnewbuttontext] = useState('')\n const [eventAuctionsData, setEventAuctionsData] = useState(null)\n const localActiveOnly = localStorage.getItem('activeOnly')\n const history = useHistory()\n const dispatch = useDispatch()\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [errorDialogMsg, setErrorDialogMsg] = React.useState(\"\");\n const [dialogActivateMsg, setActivateDialogMsg] = React.useState(\"\");\n const [isLoading, setIsLoading] = React.useState(true);\n const [activeEvent, setActiveEvent] = React.useState({eventid: 0, active: true});\n const [dialogCloneMessage, setDialogCloneMsg] = React.useState(\"\");\n const authToken = useAuthToken()\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n const { auctionSnapURL } = getConfig()\n\n useEffect(() => {\n return () => {\n setTimeout(() => {\n console.log('Home Page destructor')\n setIsLoading(true)\n setEventAuctionsData(null)\n data = null\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n const orgState: OrgState = {\n name: '', message: '', isdonorsnapcustomer: false, twilio: ''\n }\n dispatch(setOrg(orgState))\n })\n }\n }, [])\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n const handleChange = (checked) => {\n localStorage.setItem('activeOnly', checked)\n\n if (data && data.eventauctions) {\n const filteredEvents = (checked ? data?.eventauctions?.filter((e) => e.active === true) : data.eventauctions)\n setEventAuctionsData(filteredEvents.map((eventItem) => {\n return {...eventItem}\n }))\n }\n else {\n setEventAuctionsData(null)\n }\n }\n\n const closeDialog = () => {\n setErrorDialogMsg('')\n setDialogMsg(\"\")\n setActivateDialogMsg(\"\")\n setDialogCloneMsg(\"\")\n }\n\n const deleteDialog = async () => {\n\n const { data } = await axios.put(`/eventsettings`, {\n delete: true,\n eventid: activeEvent.eventid\n })\n const parsedData = JSON.parse(data.jsonString)\n // console.log(parsedData)\n if (parsedData?.status == \"failure\") {\n setDialogMsg('')\n setErrorDialogMsg(parsedData?.message)\n }\n else {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n setDialogMsg(\"\")\n }\n\n\n }\n\n const cloneContinueDialog = () => {\n editCloneMutation.mutate(\n {\n eventid: activeEvent.eventid\n }, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === 'failure') {\n setDialogMsg(json.message)\n }\n else {\n setDialogCloneMsg(\"\")\n\n const eventPath = '/auction/' + json.eventid\n history.push(eventPath)\n const eventPathSettings = '/auction/' + json.eventid + '/settings'\n history.push(eventPathSettings)\n }\n }\n }\n )\n }\n\n const activateDialog = () => {\n editStatusMutation.mutate({\n active: !activeEvent.active,\n eventid: activeEvent.eventid\n })\n setActivateDialogMsg(\"\")\n }\n\n useEffect(() => {\n if (data && data.newbuttontext) {\n setnewbuttontext(data.newbuttontext)\n }\n\n if (data) {\n setValidAuction(data.validauction)\n setValidEvent(data.validevent)\n }\n\n if (data && data.eventauctions) {\n const filteredEvents = ('true' === localActiveOnly ? data?.eventauctions?.filter((e) => e.active === true) : data.eventauctions)\n setEventAuctionsData(filteredEvents.map((eventItem) => {\n return {...eventItem}\n }))\n }\n else {\n setEventAuctionsData(null)\n }\n setIsLoading(false)\n }, [data])\n\n return (\n
\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n Clicking the continue button will clone the full event.\n \n \n \n \n \n \n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {errorDialogMsg}\n \n \n \n \n \n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogActivateMsg}\n \n \n \n \n \n \n \n \n\n
\n {\n var eventorauctionurl = 'auctionnew'\n if (validEvent) {\n eventorauctionurl = 'eventnew'\n }\n history.push(eventorauctionurl)\n }}>\n Add New {newbuttontext}\n \n {handleChange(event.target.checked)}}\n />\n }\n />\n
\n\n\n {eventAuctionsData?.map((event, i) => {\n const eventId = event.eventid\n const auctionPath = 'auction/' + eventId\n const eventPath = 'event/' + eventId\n let liValues = event.eventdetail.map((ed) => {\n return {\n label: ed.title,\n value: ed.value,\n title: ed.title,\n hover: ed.hover,\n islink: ed.islink,\n isprocessorlink: ed.isprocessorlink,\n aligntitle: ed.aligntitle,\n alignvalue: ed.alignvalue,\n widthtitle: ed.widthtitle,\n widthvalue: ed.widthvalue,\n eventname: event.eventname,\n eventid: event.eventid,\n active: event.active,\n }\n })\n\n return (\n\n \n {!isLoading &&\n <>\n \n

{event.eventname}

\n \n
\n {validAuction &&\n <>\n {\n history.push(auctionPath)\n }}>\n Auction\n \n }\n {validEvent &&\n {\n history.push(eventPath)\n }}>\n Event\n }\n {\n setActiveEvent({eventid: event.eventid, active: event.active})\n setDialogCloneMsg(\"clone\")\n }}>\n Clone\n \n {\n setActiveEvent({eventid: event.eventid, active: event.active})\n const message = (event.active ? \"Are you sure you want to disable this event?\" : \"Are you sure you want to enable this event?\")\n setActivateDialogMsg(message)\n }}\n size=\"small\"\n variant=\"contained\"\n className={styles.deleteBtn}>\n {event.active && \"Disable\"}\n {!event.active && \"Enable\"}\n \n \n {!event.active &&\n {\n setActiveEvent({eventid: event.eventid, active: event.active})\n setDialogMsg(\"Are you sure you want to delete this event?\")\n }}\n size=\"small\"\n variant=\"contained\"\n className={styles.deleteBtn}>\n Delete\n }\n \n \n }\n
\n )\n })}\n
\n )\n}\n\nexport default HomePage\n","import dayjs from 'dayjs'\nimport React, { useEffect, useState } from 'react'\nimport { Link, useHistory } from 'react-router-dom'\nimport {Add, Launch} from '@material-ui/icons'\n\nimport {\n Button,\n Card,\n CardActions,\n CardContent, Dialog, DialogActions, DialogContent, DialogContentText,\n FormControlLabel, IconButton, List, ListItem,\n Switch\n} from '@material-ui/core'\n\nimport ViewList from '../../components/common/ViewList'\nimport { Events, useFetchEvents } from '../../queries/events/useFetchEvents'\nimport { formatMoney } from '../../util/formatHelpers'\nimport styles from './TermsPage.module.css'\nimport {getConfig} from \"../../AppConfig\";\nimport {\n useEditEventSettings,\n useUpdateEventClone,\n useUpdateEventStatus\n} from \"../AuctionSettingsForm/useEditEventSettings\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {OrgState, setOrg} from \"../../slices/orgSlice\";\nimport {useDispatch} from \"react-redux\";\nimport {logout, useAuthState, useAuthToken} from \"../../slices/authSlice\";\nimport { saveAs } from \"@progress/kendo-file-saver\";\nimport { QRCode } from \"@progress/kendo-react-barcodes\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {useSponsorsMutation} from \"../SponsorsForm/useSponsorsMutation\";\nimport {useTermsMutation} from \"./useTermsMutation\";\n\nconst TermsPage = () => {\n let { data } = useFetchEvents()\n const event = useEventState()\n\n const auth = useAuthState()\n\n const termsEdit = useTermsMutation()\n\n const editMutation = useEditEventSettings()\n const editStatusMutation = useUpdateEventStatus()\n const editCloneMutation = useUpdateEventClone()\n const qrcode = React.createRef();\n const [eventsData, setEvents] = useState(null)\n const localActiveOnly = localStorage.getItem('activeOnly')\n const history = useHistory()\n const dispatch = useDispatch()\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [dialogActivateMsg, setActivateDialogMsg] = React.useState(\"\");\n const [qrCodeLink, setQRCodeLink] = React.useState(\"\");\n const [terms, setTerms] = React.useState(\"\");\n const [isLoading, setIsLoading] = React.useState(true);\n const [activeEvent, setActiveEvent] = React.useState();\n const [dialogCloneMessage, setDialogCloneMsg] = React.useState(\"\");\n const authToken = useAuthToken()\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n\n // useEffect(() => {\n // setEvents(null)\n // return () => {\n // setEvents(null)\n // }\n // }, [])\n\n useEffect(() => {\n console.log(auth)\n const termsData = '

TERMS OF SERVICE

This Terms of Service (this “Terms of Service”) constitutes a legally binding agreement between you and Nashotah Management, Inc., d/b/a DonorSnap™ (“Company,” “we,” “us” or “our”) governing your use of the Company SaaS. The “Company SaaS” means the Company software as a service made available to you by Company, accessible via the Internet, that provides information and functionality related to donor relationship management. The “Company Software” means the Company computer programs and applications made available to you by Company that are specifically designed to access and use the Company SaaS from a computer, mobile, or other device.

PLEASE READ THIS TERMS OF SERVICE CAREFULLY BEFORE USING OR ACCESSING THE COMPANY SAAS OR THE COMPANY SOFTWARE. BY USING OR ACCESSING THE COMPANY SAAS OR THE COMPANY SOFTWARE, YOU ACCEPT AND AGREE TO THIS TERMS OF SERVICE.

IF YOU ARE ACCEPTING THIS TERMS OF SERVICE ON BEHALF OF A NONPROFIT, A BUSINESS, OR ANOTHER ENTITY, YOU REPRESENT AND WARRANT THAT YOU HAVE FULL AUTHORITY TO ACT FOR AND TO BIND THAT ENTITY TO THIS TERMS OF SERVICE, IN WHICH CASE THE TERMS “YOU” AND “YOUR” REFER TO SUCH ENTITY. IF YOU DO NOT HAVE SUCH AUTHORITY, YOU SHALL NOT USE OR ACCESS THE COMPANY SAAS OR THE COMPANY SOFTWARE.

1.  Orders.

An “Order” means the electronic order or sign up page issued by us and accepted by you that lists your contact information (including your organization name and primary contact name with email address), the Company SaaS or Company Software to be made available by Company to you, the fees to be paid by you, and the payment method. All Orders are subject to this Terms of Service.

2.  Company SaaS and Company Software.

2.1  Limited Access and Use. Subject to the terms of this Terms of Service, Company hereby grants each of you during the Term a nonexclusive, non-transferable, revocable, limited right to (a) access and use via the Internet the Company SaaS to manage your donor relationships, and (b) install and use the Company Software solely in connection with the permitted access to and use of the Company SaaS. You agree to inform each of your users of the limitations on the use of the Company SaaS. You are responsible for all activity associated with your user logins and for all activity associated with your account and your users’ logins. Any breach of this Terms of Service by any of your users is a breach of this Terms of Service by you. During the Term, we grant you a limited, revocable right to use the Knowledge Base Content (defined below) solely for the purposes of understanding the capabilities, functions, limitations, and requirements of the Company SaaS and the Company Software as permitted by this Terms of Service. “Knowledge Base Content” means the user support pages, training webinars, and user support materials provided or made generally available for no additional fee by Company from time to time that describe the features and functions of the Company SaaS and the Company Software, including any changes that Company may provide from time to time.
2.2  Obligations Related to Access and Use. You shall not directly or indirectly through or with one or more other persons or entities: (a) decompile, disassemble, or reverse engineer any Company Technology (defined below in Section 2.4) to: (i) build a competitive product or service, (ii) build a product or service using similar ideas, features, functions, or graphics of any Company Technology, or (iii) copy any ideas, features, functions, or graphics of any Company Technology; (b) use any Company Technology to develop a competing service; (c) remove any copyright, trademark, proprietary rights, disclaimer, or warning notice included on or embedded in any part of any Company Technology (including any screen displays, etc.); or (d) permit or allow any person or entity other than your users to access or use any Company Technology or any logins assigned to your users. If you or your affiliates are or become a competitor of Company as determined by Company in Company’s sole discretion, this Terms of Services will terminate immediately, and you shall make no further use of any Company Technology.
2.3  Other Restrictions on Access and Use. You represent and warrant that you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and that you are not listed on any U.S. government list of prohibited or restricted parties. In addition, when using or accessing the Company SaaS or installing or using the Company Software, you shall not directly or indirectly through or with one or more other persons:
  a.  Post, provide, input, or transmit any content that is infringing, libelous, defamatory, abusive, offensive, obscene, pornographic, or violates any law, or right of Company or any third party;
  b.  Post, provide, input, or transmit any content that contains social security numbers, patient numbers, bank account numbers, drivers’ license numbers, credit card numbers, or any other similar sensitive personal information.
  c.  Post, provide, input, or transmit software viruses or any other computer code, file, or program designed to interrupt, destroy, or limit the features or functionality of any software, hardware, or telecommunications equipment;
  d.  use any robot, spider, scraper, or other automated means to access or use the Company SaaS for any purpose without our express written permission, or otherwise take any action that may impose an unreasonable or disproportionately large load on our infrastructure;
  e.  bypass any measures we may use to prevent or restrict use of the Company SaaS or the Company Software, or otherwise interfere or tamper with our administration or the proper working of the Company SaaS or the Company Software;
  f.  falsify information you disclose to us;
  g.  take any action that is improper, unfair, or otherwise adverse to the operation of the Company SaaS or the Company Software; or
  h.  use, or permit the use of, any login to the Company SaaS or the Company Software by more than one individual person.
2.4  Company Technology. Except for the limited rights granted in Section 2.1 (Limited Access and Use), we and our licensors reserve all right, title, and interest, express or implied, in and to the Company SaaS, the Company Software, System Data, Knowledge Base Content, our private webinar and other training content, our policies, our software and systems, our web applications, tools, and other application services, and our logos, marks, data, information, and other content we provide (collectively, the “Company Technology”). “System Data” means technical, configuration, statistical, utilization, and other information related to the use of the Company Technology.
2.5  Feedback. “Feedback” means suggestions, comments, requests, improvements, modifications, defect, bug and error reports, and other feedback provided by you with respect to the Company Technology or any of our offerings. Feedback is voluntary, and we are not required to hold Feedback in confidence. You hereby grant Company, on behalf of yourself and your users, an irrevocable, non-exclusive, perpetual, royalty-free, worldwide license (with the right to assign and sublicense) to use, display, copy, distribute, make derivative works of, sell, and import such Feedback and products and services that incorporate, are based upon, or rely upon such Feedback.
2.6  Your Data. As between you and us, you own all data and other content (other than Company Technology and Feedback) (a) input by you, your users, or both, into the Company SaaS or the Company Software, (b) you, your users, or both, provide to us for input into the Company SaaS or the Company Software, or (c) you, the your users, or both, collect from one or more third parties in connection with the permitted use of the Company SaaS or the Company Software (collectively, “Your Data”). You hereby grant Company, on behalf of yourself and your users, a nonexclusive, royalty-free, fully paid-up, irrevocable, perpetual, worldwide license (with the right to assign and sublicense) to use, display, copy, distribute, modify, make derivative works of, and import Your Data, for (i) purposes of enabling us to offer and perform our services and fulfill our obligations hereunder, and (ii) any other purpose that does not include use of the names, full mailing addresses, phone numbers, or email addresses of you, your donors, or your users. You may download Your Data from the Company SaaS during the Term only by use of the tools provided in the Company SaaS to do so. You warrant to us that: (x) you have obtained all rights, consents, and permissions necessary to provide Company the licenses granted in this Terms of Service, and (y) you shall comply with all applicable laws with respect to the collection, use, retention, and disposal of all of Your Data. Company may remove any of Your Data following termination of this Terms of Service or an Order, or for any reason related to suspension of your access to any Company Technology.
2.7  Suspension. We may suspend your access to Company Technology (in whole or in part): (a) to prevent damages to, or degradation of, the Company Technology; (b) to comply with any law, court order, or governmental request; (c) to protect the interests of Company, or (d) if you fail to make payments when due or otherwise violate the terms of this Terms of Service. We will use reasonable efforts to provide you with notice before or promptly following any suspension. We will restore access as soon as the event giving rise to suspension has been resolved. In addition, we may suspend at any time your access to those portions of the Company SaaS or the Company Software that are identified by us as in beta. This Terms of Service is not to be construed as imposing any obligation on us to monitor Your Data or your use of the Company SaaS or the Company Software.

3.  Indemnification.

To the extent permitted under applicable law, you shall indemnify, defend, and hold harmless Company and its affiliates and subsidiaries and successors and their respective officers, directors, employees, representatives, vendors, licensors, independent contractors, and agents (each an “Indemnified Party”) from and against any and all claims, losses, liability, damages, costs, fees, fines, penalties, charges, and expenses (including reasonable out-of-pocket expenses and legal fees) arising out of or relating to your use of the Company Technology, your breach of any representations, warranties or obligations under this Terms of Service, your violation of a law, or your infringement of the intellectual property rights of Company or a third party.

4.  Professional Services.

We may provide data conversion, training, support, or other consulting services (collectively, “Professional Services”). If we agree to provide Professional Services to you, we may describe such services in an Order. We may provide estimates of fees in connection with Professional Services. All estimates are subject to change and the final Professional Services fees, if any, will be determined on a time-and-materials basis at our then-current rates.

5.  Fees and Payment.

Unless otherwise provided in an Order, you shall pay us the fees as stated in the applicable Order in advance. For fees and charges not otherwise paid in advance, you shall pay us the amounts properly listed on our invoice submitted to you within the time frame listed on such invoice. Payments not made within such time period are subject to late charges equal to the lesser of (a) one and one-half percent (1.5%) per month of the overdue amount, or (b) the maximum amount permitted under law, plus in either case, costs of collection, and if applicable, reasonable legal fees. We may adjust fees applicable to a renewal term with notice to you prior to the start of the renewal term. You are responsible for all taxes associated with your access to and use of the content generated by the Company SaaS, other than taxes based solely upon the income of Company. You shall make all payments in U.S. dollars. If you request or require a number of contacts in excess of the limit specified in an Order, we may charge and you shall pay an additional fee.

6.  Term and Termination.

The term of this Terms of Service (the “Term”) commences when you accept the Order incorporating this Terms of Service and continues until terminated. The initial term of an Order and each subsequent renewal term of an Order will automatically renew on the same monthly or annual basis as the initial term of an Order, unless a party provides notice of nonrenewal to the other party in writing at least 10 days prior to the end of the then-current term. Company may terminate this Terms of Service upon notice to you, if you violate this Terms of Service. You may terminate an Order if Company fails to cure its breach of this Terms of Service within 30 days of your notice to Company of the breach. If you terminate an Order for any reason other than our uncured breach, or if we terminate due to your violation of this Terms of Service, you will not receive any refund of prepaid fees and you shall pay us the fees not otherwise prepaid for the terminated portion the Order term. Either party may terminate this Terms of Service effective upon notice to the other party, if no Order is then in effect.

7.  Disclaimer of Warranties.

THE COMPANY TECHNOLOGY AND THE PROFESSIONAL SERVICES ARE PROVIDED “AS IS” AND “AS AVAILABLE,” WITH ALL FAULTS, AND WITHOUT WARRANTIES OF ANY KIND. COMPANY AND ITS VENDORS AND LICENSORS DISCLAIM ALL REPRESENTATIONS, WARRANTIES AND CONDITIONS, EXPRESS AND IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT, QUALITY OF INFORMATION, TITLE, AND NON-INFRINGEMENT. COMPANY MAKES NO WARRANTIES AND WILL HAVE NO RESPONSIBILITY WITH RESPECT TO THE RESULTS OF ANY ACTION YOU OR ANY THIRD PARTY MAY TAKE BASED ON YOUR DATA OR YOUR USE OF ANY COMPANY TECHNOLOGY OR PROFESSIONAL SERVICES. COMPANY WILL HAVE NO LIABILITY FOR ANY CLAIM ARISING FROM YOUR USE OF THE COMPANY TECHNOLOGY, OR ANY INFORMATION OBTAINED FROM THE COMPANY TECHNOLOGY OR RESULT OF ANY OF YOUR ACTIONS BASED UPON INFORMATION OBTAINED FROM THE COMPANY TECHNOLOGY. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY COMPANY CREATES ANY WARRANTIES OR IN ANY WAY INCREASES THE SCOPE OF COMPANY’S OBLIGATIONS UNDER THIS TERMS OF SERVICE. THE COMPANY TECHNOLOGY MAY BE USED TO ACCESS AND TRANSFER INFORMATION OVER THE INTERNET. YOU ACKNOWLEDGE AND AGREE THAT COMPANY AND ITS VENDORS AND LICENSORS DO NOT OPERATE OR CONTROL THE INTERNET AND THAT (A) VIRUSES, WORMS, TROJAN HORSES, OR OTHER UNDESIREABLE DATA OR SOFTWARE; OR (B) UNAUTHORIZED THIRD PARTIES (e.g. HACKERS) MAY ATTEMPT TO OBTAIN ACCESS TO AND DAMAGE YOUR DATA, WEBSITES, COMPUTERS, OR NETWORKS. COMPANY WILL NOT BE LIABLE FOR ANY SUCH ACTIVITIES NOR WILL SUCH ACTIVITIES CONSTITUTE A BREACH BY COMPANY OF ITS OBLIGATIONS UNDER THIS TERMS OF SERVICE OR ANY OTHER AGREEMENT BETWEEN YOU AND COMPANY.

IN CONNECTION WITH THIS TERMS OF SERVICE, THE COMPANY SAAS, THE COMPANY SOFTWARE, OR THE PROFESSIONAL SERVICES, YOU MAY ACCESS AND BE PROVIDED INFORMATION REGARDING PERSONS AND ENTITIES OTHER THAN COMPANY (“THIRD PARTY INFORMATION”). ALL THIRD PARTY INFORMATION IS PROVIDED AS-IS, WITHOUT REPRESENTATIONS, WARRANTIES OR CONDITIONS OF ANY KIND. COMPANY MAKES NO WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, RELATING TO ANY THIRD PARTY INFORMATION, OR AS TO THE ACCURACY, CURRENCY, OR COMPREHENSIVENESS OF THE SAME.

The company saas and company software may contain links to and integrations with third party websites, applications and services (“Third Party Services”), and you agree that we provide links to and integrations with such Third Party Services solely as a convenience and have no responsibility for the content or availability of such Third Party Services, and that we do not endorse such Third Party Services (or any products or other services associated therewith). When you USE THE COMPANY SAAS OR COMPANY SOFTWARE TO SOLICIT OR OBTAIN A DONATION, we will use a THRID PARTY SERVICE DESIGNATED BY YOU AND INTEGRATED WITH THE COMPANY SAAS to process the payment. We do not collect THE CORRESPONDING credit card number, expiration date, or pin number. The transaction details we retain are those details that allow us to verify THE transaction, including price, currency, date of payment, payment method, name, and account name. Access to AND USE OF any Third Party Services linked to or integrated with the company saas or the company software is at your own risk, and we are not responsible for the accuracy, security, or reliability of any information, data, opinions, advice or statements provided by such Third Party Services. Your use of such Third Party Services will be subject to the terms applicable to each such Third Party Services. You may not post a link that directs users to any content or information that would constitute a violation of these Terms of Service or any terms applicable to such Third Party Services.

8.  Limitation of Liability.

NEITHER COMPANY NOR ANY INDEMNIFIED PARTY WILL HAVE ANY LIABILITY TO YOU OR ANY THIRD PARTY FOR ANY INDIRECT DAMAGES, INCLUDING LOSS OF PROFITS, SALES, BUSINESS, OR DATA, OR INCIDENTAL, CONSEQUENTIAL, OR SPECIAL LOSS DAMAGES, INCLUDING EXEMPLARY AND PUNITIVE DAMAGES OF ANY KIND OR NATURE RESULTING FROM OR ARISING OUT OF THIS TERMS OF SERVICE, THE COMPANY SAAS, THE COMPANY SOFTWARE, OR THE PROFESSIONAL SERVICES. THE TOTAL LIABILITY OF COMPANY AND THE INDEMNIFIED PARTIES TO YOU OR ANY THIRD PARTY ARISING OUT OF THIS TERMS OF SERVICE, THE COMPANY TECHNOLOGY, THE COMPANY SOFTWARE, AND THE PROFESSIONAL SERVICES, REGARDLESS OF WHETHER UNDER A CONTRACT, TORT, OR OTHER THEORY OF LIABILITY, FOR ANY AND ALL CLAIMS OR TYPES OF DAMAGES, WILL NOT EXCEED THE TOTAL FEES PAID BY YOU TO US FOR USE OF AND ACCESS TO THE COMPANY SAAS DURING THE TWELVE MONTHS IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO LIABILITY.

9.  General Provisions.

9.1  CCPA. Capitalized terms used in this section have the meaning given in the CCPA, specifically Cal. Civ. Code §1798.140, and in the caption to this Terms of Service. CCPAmeans Cal. Civ. Code §§ 1798.100-1798.199, including (a) any rules and regulations promulgated thereunder, and (b) any subsequent amendment or superseding statute. With respect to Personal Information Processed by us on behalf of you pursuant to this Terms of Service (“CCPA Data”), we are a Service Provider, and you are a Business. Notwithstanding Section 2.6, we shall not retain, use, disclose, or further Collect or Sell, the CCPA Data for any purpose other than for the specific purpose of performing our services for you. If you receive a Verifiable Consumer Request to delete a Consumer’s CCPA Data pursuant to the CCPA, you shall notify us, and we shall thereafter delete such Personal Information from our records to the extent required under the CCPA. Each party shall comply with its respective obligations under the CCPA.
9.2  Certain Communications. You agree to receive communications from us, including via mail, certified mail, fax, email, text message, and phone call. Communications from Company and its affiliated companies may include, but are not limited to, (a) operational communications concerning your account, the Professional Services, the Company Software, and the Company SaaS, (b) updates concerning new and existing features of any Company Technology, and (c) news concerning Company and industry developments. Standard messaging charges applied by your carrier may apply to messages we send.
9.3  Modifications. Company may modify and update this Terms of Service from time to time by providing you notice of such modification or update. Such modifications and updates will be considered accepted and binding on you as provided in such notice.
9.4  Waivers. No failure or delay in exercising any right or remedy or requiring the satisfaction of any condition under this Terms of Service, and no course of dealing between you and Company, operates as a waiver or estoppel by Company of any right, remedy, or condition. A waiver made by Company in writing on one occasion is effective only in that instance and only for the purpose that it is given and is not to be construed as a waiver on any future occasion or against any other person. To the extent that any course of dealing, act, omission, failure, or delay in exercising any right or remedy by Company under this Terms of Service constitutes the election of an inconsistent right or remedy, that election does not either constitute a waiver of any right or remedy, or limit or prevent the subsequent enforcement by Company of any provision of this Terms of Service.
9.5  Assignment. Without the prior written consent of Company, you shall neither (a) assign, whether voluntarily or involuntarily, this Terms of Service or any of your rights under this Terms of Service, nor (b) delegate any performance under this Terms of Service. Any purported assignment or delegation in violation of this section will be void. We may assign this Terms of Service and any or all of our rights and delegate any or all of our obligations hereunder by providing notice to you. This Terms of Service binds and benefits you and Company and each of your and our respective permitted successors and assigns.
9.6  Governing Law. The laws of the State of Wisconsin govern all matters arising out of or relating to this Terms of Service, including, without limitation, its interpretation, construction, performance, and enforcement, without giving effect to such state’s conflicts of law principles or rules of construction concerning the drafter hereof. You hereby irrevocably and unconditionally submit to the jurisdiction of the federal and state courts located in Waukesha County, Wisconsin for the purpose of any suit, action, or other proceeding arising out of or based upon this Terms of Service, which courts are the exclusive forum for any such suit, action, or other proceeding. If we are the prevailing party in any such dispute, we may recover our reasonable attorneys’ fees related to such dispute.
9.7  Severability. If any provision of this Terms of Service is held to be invalid, illegal, or unenforceable, the validity, legality, and enforceability of the remaining provisions of this Terms of Service will not be affected or impaired.
9.8  Entire Agreement. This Terms of Service, together with the Order(s), is the complete and exclusive expression of the parties’ agreement on the matters contained in this Terms of Service. All prior and contemporaneous negotiations, term sheets, letters, memoranda, and other discussions and agreements, either oral or in writing, between the parties on the matters contained in this Terms of Service are expressly merged into and superseded by this Terms of Service. No provision of this Terms of Service may be explained, supplemented, or qualified through evidence of trade usage or a prior course of dealings. In entering into this Terms of Service, you have not relied on any statement, representation, or warranty, or agreement of Company or any other party except for those expressly contained in this Terms of Service. In the event of a conflict between an Order and this Terms of Service, this Terms of Service will govern, unless the Order specifically identifies the provision in this Terms of Service being superseded and the Order is signed by us.
9.9  Relationship of the Parties. Each party is an independent contractor with respect to the other party and is not an employee, joint venture, partner, or agent of the other party. Neither party has the authority to enter into any contract in the name of or on behalf of the other party, solely by reason of this Terms of Service.
9.10  Headings. The descriptive headings of the articles, sections, and subsections of this Terms of Service are for convenience of reference only. They do not constitute a part of this Terms of Service and do not affect its construction or interpretation.
9.11  Effect of Termination. The following sections survive any termination or expiration of this Terms of Service: Section 2.2 (Obligations Related to Access and Use), Section 2.4 (Company Technology). Section 2.5 (Feedback), Section 2.6 (Your Data), Section 3 (Indemnification), Section 5 (Fees and Payment), Section 7 (Disclaimer of Warranties), Section 8 (Limitation of Liability), and Section 9 (General Provisions). Any termination of this Terms of Service will not relieve us of any remedy due to your breach of a term of this Terms of Service prior to such termination.
9.12  How to Contact Company.

You can contact us via email at sales@donorsnap.com or at the following address:
 Nashotah Management, Inc., DBA DonorSnap
 555 South Industrial Drive, Suite 6
 Hartland, WI 53029-2333

To be effective, any notice to Company given in connection with this Terms of Service must be in writing and (a) delivered in person, (b) mailed by certified or registered mail, return receipt requested, postage prepaid, (c) sent by same-day messenger or nationally recognized overnight delivery service, with all fees prepaid, or (d) sent by email, with acknowledgment of receipt by either the intended recipient or other third party confirmation of delivery service (with an automatic “read receipt” not constituting receipt of an email). A notice to Company is effective on the earlier of (x) the date it is delivered in person, (y) the date it is delivered to Company as indicated by the date of the acknowledgement or signed receipt, or (z) with respect to an email, the date on which the email is confirmed, provided that if such date is not a business day or the confirmation time is after 5:00 p.m. local time of the recipient on a business day, then the following business day. We may update our email address or physical address at any time with notice to you or by posting the updated information to this page. Any notices to you shall be provided to you in accordance with Section 9.1 or given to you via the email address or physical address you provide to Company during the Order process. Notices to you are effective when Company sends such notice.

* * * * *

Last Updated: 06/01/2021

'\n setTerms(termsData)\n }, [auth])\n\n const handleChange = (event) => {\n localStorage.setItem('activeOnly', event.target.checked)\n if (event.target.checked) {\n if (data && data.length > 0) {\n setEvents(data?.filter((e) => e.active === true))\n }\n } else {\n setEvents(data)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n setActivateDialogMsg(\"\")\n setDialogCloneMsg(\"\")\n }\n\n const deleteDialog = () => {\n editMutation.mutate({\n delete: true,\n eventid: activeEvent.eventid\n })\n setDialogMsg(\"\")\n }\n\n const cloneContinueDialog = () => {\n editCloneMutation.mutate(\n {\n eventid: activeEvent.eventid\n }, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === 'failure') {\n setDialogMsg(json.message)\n }\n else {\n setDialogCloneMsg(\"\")\n\n const eventPath = '/auction/' + json.eventid\n history.push(eventPath)\n const eventPathSettings = '/auction/' + json.eventid + '/settings'\n history.push(eventPathSettings)\n }\n }\n }\n )\n }\n\n const activateDialog = () => {\n editStatusMutation.mutate({\n active: !activeEvent.active,\n eventid: activeEvent.eventid\n })\n\n setActivateDialogMsg(\"\")\n }\n\n\n const redirectAgree = () => {\n termsEdit.mutateAsync({})\n history.push('/home')\n }\n\n const redirectToLogin = () => {\n dispatch(logout())\n history.push('/auth/login')\n }\n\n useEffect(() => {\n if (data) {\n const filteredEvents = ('true' === localActiveOnly ? data.filter((e) => e.active === true) : data)\n setEvents(filteredEvents.map((eventItem) => {\n const qrcode = React.createRef();\n return {codeRef: qrcode, ...eventItem}\n }))\n }\n else {\n setEvents(null)\n }\n setIsLoading(false)\n }, [data])\n\n const exportQRCode = (eventname: string, eventLink: string, codeRef: any) => {\n if (!codeRef || !codeRef.current) {\n return;\n }\n\n codeRef.current.exportImage().then((dataURI) => {\n saveAs(dataURI, eventname + \".png\");\n });\n };\n\n return (\n
\n \n
\n
\n
\n \n \n
\n
\n\n
\n )\n}\n\nexport default TermsPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useTermsMutation = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/termsofservice`, body)\n },\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['termsofservice'])\n }\n }\n )\n}\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './TagsTable.module.css'\nimport { useCreateTag } from './useCreateTag'\nimport React, {useEffect} from \"react\";\n\ntype FormData = {\n active: string\n id: number\n description: string\n}\nexport const TagsForm = ({ isOpen, setIsOpen, gridParams }) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const eventState = useEventState()\n const createMutation = useCreateTag()\n const title = gridParams ? \"Edit Tag\" : \"Create Tag\"\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n if (gridParams) {\n reset({\n id: gridParams.id,\n description: gridParams.description,\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }\n else {\n reset({ active: 'Active' })\n }\n }, [gridParams, isOpen])\n\n const onSubmit = async (formData: FormData) => {\n const id = gridParams ? { id: formData.id } : { }\n\n try {\n await createMutation.mutateAsync({\n description: formData.description,\n active: (formData.active === 'Active'),\n type: \"tag\",\n eventid: Number(eventState.eventId),\n ...id\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateTag = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useLocationTags = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport { TagsForm } from './TagsForm'\nimport styles from './TagsTable.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useLocationTags} from \"../../../mutations/useLocationTags\";\nimport {DataGridPro, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst TagsTable = (tags) => {\n const [gridParams, setGridParams] = useState({ id:0, description: '', active: true})\n const data = tags?.tags\n const logationsTagsMutation = useLocationTags()\n const [isFormShowing, setIsFormShowing] = useState(false)\n const eventState = useEventState()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var tagRows = []\n if (data) {\n tagRows = data.map((v, i) => {\n return {description: v.name, active: v.active, tagid: v.id, id: v.id}\n })\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setGridParams({\n id:Number(params.id),\n description: params.getValue(params.id, 'description').toString(),\n active: Boolean(params.getValue(params.id, 'active'))})\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'description').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"id\": id,\n \"eventid\": Number(eventState.eventId),\n \"delete\": true,\n \"type\": \"tag\"\n }\n await logationsTagsMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'description',\n type: 'string',\n headerName: 'Tag',\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDelete(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default TagsTable\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, Grid,\n TextField\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './LocationsTable.module.css'\nimport { useCreateLocation } from './useCreateLocation'\nimport React, {useEffect} from \"react\";\nimport DateTimeInput from \"../../../components/common/inputs/DateTimeInput\";\nimport dayjs from \"dayjs\";\nimport { Events, useFetchEvents } from '../../../queries/events/useFetchEvents'\nimport {useFetchEventSettings} from \"../../../queries/events/useFetchEventSettings\";\n\ntype FormData = {\n id: string\n location: string\n active: string\n opendate: string\n closeddate: string\n}\nexport const LocationsForm = ({ isOpen, setIsOpen, gridParams }) => {\n let { data } = useFetchEvents()\n\n const formMethods = useForm()\n const { reset, watch } = formMethods\n const createMutation = useCreateLocation()\n const eventState = useEventState()\n const title = gridParams ? \"Edit Location\" : \"Create Location\"\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var { data: eventsettings, isFetching } = useFetchEventSettings(\n Number(eventState.eventId),\n true\n )\n\n useEffect(() => {\n if (gridParams) {\n reset({\n id: gridParams.id,\n location: gridParams.location,\n opendate: gridParams.opendate,\n closeddate: gridParams.closeddate,\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }\n else {\n // var curEvent = data.find(event => event.eventid === Number(eventState.eventId))\n\n reset({ \n location: '',\n active: 'Active',\n opendate: eventsettings.bidstart,\n closeddate: eventsettings.bidend,\n })\n }\n }, [gridParams, isOpen])\n\n const checkEndDate = (value: string, watch: Function) => {\n if(new Date(value) > new Date(eventsettings?.end)){\n return 'Location closing date should be before '+ eventsettings.name + ' close date.'\n }\n return new Date(value) >= new Date(watch('opendate')) || 'Location closing date should be after location open date.'\n }\n const checkStartDate = (value: string) => {\n return new Date(value) >= new Date(eventsettings?.start) || 'Location opening date should be after '+ eventsettings.name + ' open date.'\n }\n\n const onSubmit = async (formData: FormData) => {\n const id = gridParams ? { id: formData.id } : { }\n\n try {\n await createMutation.mutateAsync({\n description: formData.location,\n opendate: dayjs(formData.opendate).format('YYYY-MM-DDTHH:mm:ss'),\n closeddate: dayjs(formData.closeddate).format('YYYY-MM-DDTHH:mm:ss'),\n active: (formData.active === 'Active'),\n eventid: Number(eventState.eventId),\n type: 'location',\n ...id\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n checkStartDate(val),\n }}\n required={true}\n disabled={!eventsettings.allowcustomlocations}\n />\n checkEndDate(val, watch),\n }}\n disabled={!eventsettings.allowcustomlocations}\n required={true}\n />\n\n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateLocation = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Delete, Edit } from '@material-ui/icons'\nimport { LocationsForm } from './LocationsForm'\nimport styles from './LocationsTable.module.css'\nimport { useEventState } from \"../../../slices/eventSlice\";\nimport {useLocationTags} from \"../../../mutations/useLocationTags\";\nimport dayjs from \"dayjs\";\nimport {DataGridPro, GridValueFormatterParams, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst LocationsTable = (locations) => {\n const [gridParams, setGridParams] = useState({ id:0, location: '', opendate: '', closeddate: '', active: true})\n const logationsTagsMutation = useLocationTags()\n const eventState = useEventState()\n const data = locations?.locations\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var rows = []\n if (data) {\n rows = data.map((v, i) => {\n return {\n location: v.name,\n opendate: v.opendate,\n closeddate: v.closeddate,\n active: v.active,\n id: Number(v.id)\n }\n })\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setGridParams({\n id:Number(params.id),\n location: params.getValue(params.id, 'location').toString(),\n opendate: params.getValue(params.id, 'opendate').toString(),\n closeddate: params.getValue(params.id, 'closeddate').toString(),\n active: Boolean(params.getValue(params.id, 'active'))})\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'location').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"id\": id,\n \"eventid\": Number(eventState.eventId),\n \"delete\": true,\n \"type\": \"location\"\n }\n await logationsTagsMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'location',\n type: 'string',\n headerName: 'Location',\n width: 200\n },\n {\n field: 'opendate',\n type: 'dateTime',\n headerName: 'Open Date',\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n width: 200\n },\n {\n field: 'closeddate',\n type: 'dateTime',\n headerName: 'Close Date',\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDelete(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default LocationsTable\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\nimport { udTitles } from '../pages/ParticipantsPage/useFetchParticipants'\n\nexport type UDTitles = {\n userdefinedtitle1: string\n userdefinedtitle2: string\n userdefinedtitle3: string\n userdefinedtitle4: string\n userdefinedtitle5: string\n}\n\nconst UDTitlesDefault = {\n userdefinedtitle1: \"userdefinedtitle1\",\n userdefinedtitle2: \"userdefinedtitle2\",\n userdefinedtitle3: \"userdefinedtitle3\",\n userdefinedtitle4: \"userdefinedtitle4\",\n userdefinedtitle5: \"userdefinedtitle5\"\n}\n\nexport const globalLocationTitlesFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: Number(eventIdvalue) });\n const { data } = await axios.post('/participanttitles', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as udTitles\n}\n\nexport const useFetchUDTitles = (eventid) => {\n return useQuery(\n ['participanttitles', eventid],\n () => globalLocationTitlesFetcher(eventid),\n {\n staleTime: 120000,\n placeholderData: UDTitlesDefault,\n keepPreviousData: false\n }\n )\n}\n\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './DonationTable.module.css'\nimport { useCreateDonation } from './useCreateDonation'\nimport React, {useEffect} from \"react\";\n\ntype FormData = {\n active: string\n id: number\n description: string\n}\nexport const DonationForm = ({ isOpen, setIsOpen, gridParams }) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const eventState = useEventState()\n const createMutation = useCreateDonation()\n const title = gridParams ? \"Edit Donation Type\" : \"Create Donation Type\"\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n if (gridParams) {\n reset({\n id: gridParams.id,\n description: gridParams.description,\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }\n else {\n reset({ active: 'Active' })\n }\n }, [gridParams, isOpen])\n\n const onSubmit = async (formData: FormData) => {\n const id = gridParams ? { id: formData.id } : { }\n\n try {\n await createMutation.mutateAsync({\n description: formData.description,\n active: (formData.active === 'Active'),\n type: \"donationtype\",\n eventid: Number(eventState.eventId),\n ...id\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateDonation = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\n\nimport { DonationForm } from './DonationForm'\nimport styles from './DonationTable.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useLocationTags} from \"../../../mutations/useLocationTags\";\nimport {DataGridPro, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst DonationTable = (donations) => {\n const [gridParams, setGridParams] = useState({ id:0, description: '', active: true})\n const data = donations?.donations\n const logationsTagsMutation = useLocationTags()\n const [isFormShowing, setIsFormShowing] = useState(false)\n const eventState = useEventState()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var donationRows = []\n if (data) {\n donationRows = data.map((v, i) => {\n return {description: v.name, active: v.active, tagid: v.id, id: v.id}\n })\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setGridParams({\n id:Number(params.id),\n description: params.getValue(params.id, 'description').toString(),\n active: Boolean(params.getValue(params.id, 'active'))})\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'description').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"id\": id,\n \"eventid\": Number(eventState.eventId),\n \"delete\": true,\n \"type\": \"donationtype\"\n }\n await logationsTagsMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'description',\n type: 'string',\n headerName: 'Donation Type',\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDelete(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default DonationTable\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './AccountingCode.module.css'\nimport { useCreateAccountingCode } from './useCreateAccountingCode'\nimport React, {useEffect} from \"react\";\n\ntype FormData = {\n active: string\n id: number\n description: string\n}\nexport const AccountingCodeForm = ({ isOpen, setIsOpen, gridParams }) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const eventState = useEventState()\n const createMutation = useCreateAccountingCode()\n const title = gridParams ? \"Edit Accounting Code\" : \"Create Accounting Code\"\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n if (gridParams) {\n reset({\n id: gridParams.id,\n description: gridParams.description,\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }\n else {\n reset({ active: 'Active' })\n }\n }, [gridParams, isOpen])\n\n const onSubmit = async (formData: FormData) => {\n const id = gridParams ? { id: formData.id } : { }\n\n try {\n await createMutation.mutateAsync({\n description: formData.description,\n active: (formData.active === 'Active'),\n type: \"accountingcode\",\n eventid: Number(eventState.eventId),\n ...id\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateAccountingCode = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\n\nimport { AccountingCodeForm } from './AccountingCodeForm'\nimport styles from './AccountingCode.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useLocationTags} from \"../../../mutations/useLocationTags\";\nimport {DataGridPro, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst AccountingCode = (accountingcodes) => {\n const [gridParams, setGridParams] = useState({ id:0, description: '', active: true})\n const data = accountingcodes?.accountingcodes\n const logationsTagsMutation = useLocationTags()\n const [isFormShowing, setIsFormShowing] = useState(false)\n const eventState = useEventState()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var accountingRows = []\n if (data) {\n accountingRows = data.map((v, i) => {\n return {description: v.name, active: v.active, tagid: v.id, id: v.id}\n })\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setGridParams({\n id:Number(params.id),\n description: params.getValue(params.id, 'description').toString(),\n active: Boolean(params.getValue(params.id, 'active'))})\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'description').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"id\": id,\n \"eventid\": Number(eventState.eventId),\n \"delete\": true,\n \"type\": \"accountingcode\"\n }\n await logationsTagsMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'description',\n type: 'string',\n headerName: 'Accounting Code',\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDelete(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default AccountingCode\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './ParticipantUDTitle.module.css'\nimport { useUpdateTitles } from './useUpdateUDTitles'\nimport React, {useEffect} from \"react\";\n\ntype FormData = {\n userdefinedtitle1: string\n userdefinedtitle2: string\n userdefinedtitle3: string\n userdefinedtitle4: string\n userdefinedtitle5: string\n \n}\nexport const UDTitlesForm = ({ isOpen, setIsOpen, gridParams, titles }) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const eventState = useEventState()\n const updateMutation = useUpdateTitles()\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n console.log(titles);\n console.log(titles.titles.userdefinedtitle1);\n if (titles) {\n reset({\n userdefinedtitle1: titles.titles.userdefinedtitle1,\n userdefinedtitle2: titles.titles.userdefinedtitle2,\n userdefinedtitle3: titles.titles.userdefinedtitle3,\n userdefinedtitle4: titles.titles.userdefinedtitle4,\n userdefinedtitle5: titles.titles.userdefinedtitle5\n })\n }\n else {\n reset({ userdefinedtitle1: 'User Defined 1', \n userdefinedtitle2: 'User Defined 2',\n userdefinedtitle3: 'User Defined 3',\n userdefinedtitle4: 'User Defined 4',\n userdefinedtitle5: 'User Defined 5'\n })\n }\n }, [isOpen, titles, reset])\n\n const onSubmit = async (formData: FormData) => {\n\n try {\n await updateMutation.mutateAsync({\n userdefinedtitle1: formData.userdefinedtitle1,\n userdefinedtitle2: formData.userdefinedtitle2,\n userdefinedtitle3: formData.userdefinedtitle3,\n userdefinedtitle4: formData.userdefinedtitle4,\n userdefinedtitle5: formData.userdefinedtitle5,\n eventid: Number(eventState.eventId),\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n Rename User Defined Field\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n

Renaming a User Defined Field will not clear any data previously stored in it. If it was already used for a different purpose, best practice is to use one that was previously not used.

\n \n \n \n \n \n \n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useUpdateTitles = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/participanttitles`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['participanttitles'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport { UDTitlesForm } from './ParticipantUDTitle'\nimport styles from './ParticipantUDTitle.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useUpdateTitles} from \"./useUpdateUDTitles\";\nimport {DataGridPro, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst UDTitlesTable = (titles) => {\n const [gridParams, setGridParams] = useState({ id:0, description: '', active: true})\n const data = titles?.titles\n //const udTitlesMutation = useUpdateTitles()\n const [isFormShowing, setIsFormShowing] = useState(false)\n const eventState = useEventState()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var tagRows = []\n if (data) {\n tagRows = [{id: 1, name: data.userdefinedtitle1},\n {id: 2, name: data.userdefinedtitle2},\n {id: 3, name: data.userdefinedtitle3},\n {id: 4, name: data.userdefinedtitle4},\n {id: 5, name: data.userdefinedtitle5}]\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n\n\n\n \n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n ''\n )\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n width: 200\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default UDTitlesTable\n","import { useForm } from 'react-hook-form'\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n Checkbox,\n FormControlLabel,\n FormGroup,\n Grid,\n InputLabel,\n MenuItem,\n Select,\n TextField\n} from '@material-ui/core'\n\nimport Alerts from '../../components/common/Alerts'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport styles from './LocationsTagsPage.module.css'\n// import { useLocationsTagsMutation } from './useLocationsTagsMutation'\nimport {ExpandMore} from \"@material-ui/icons\";\nimport TagsTable from \"../LocationsTagsPage/TagsTable\";\nimport LocationsTable from \"../LocationsTagsPage/LocationsTable\";\nimport {useFetchLocationTags} from \"../../queries/events/useFetchLocationTags\";\nimport {useFetchUDTitles} from \"../../queries/useParticipantTitles\";\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport DonationTable from \"./DonationTable\";\nimport React from \"react\";\nimport AccountingCode from \"./AccountingCode\";\nimport ParticipantUDTitlesTable from \"./ParticipantUDTitles\";\n\ntype FormData = {\n email: string\n password: string\n siteCode: string\n}\n\ninterface Params {\n id: string\n}\n\nconst LocationsTagsPage = () => {\n const { id } = useParams()\n useAutoEvent(id)\n const eventState = useEventState()\n\n const { data } = useFetchLocationTags(eventState.eventId)\n const udTitles = useFetchUDTitles(eventState.eventId)\n console.log(data)\n console.log(udTitles.data)\n const formMethods = useForm({\n mode: 'onChange'\n })\n\n const onSubmit = ({ email, password, siteCode }: FormData) => {\n //locationsTagsMutation.mutate({ password, email, customerid: siteCode })\n }\n\n return (\n
\n

Dropdown Fields

\n \n }>\n

Locations

\n
\n \n
\n
Specify a table number or another type of single select grouping for items.
\n \n
\n
\n
\n \n }>\n

Tags

\n
\n \n
\n
Categorize items with tags so that guests can search for similar items. Multiple tags can be selected for each item.
\n \n
\n
\n
\n \n }>\n

Donation Types

\n
\n \n
\n
The Donation Type field is for the item’s donation record in DonorSnap or your donor management system.
\n \n
\n
\n
\n \n }>\n

Accounting Codes

\n
\n \n
\n
The Accounting code field is for the item’s record in DonorSnap or your donor management system.
\n \n
\n
\n
\n \n }>\n

User Defined Fields

\n
\n \n
\n
Rename the custom fields availible for use on the Participant record.
\n \n
\n
\n
\n
\n )\n}\n\nexport default LocationsTagsPage\n","import React, { useEffect, useMemo, useState } from 'react'\nimport {Controller ,useController, useFormContext } from 'react-hook-form'\nimport TextField from '@mui/material/TextField'\nimport Autocomplete from '@mui/material/Autocomplete'\n\ntype selectOption = {\n label: string\n value: number\n}\n\ntype Props = {\n name: string\n label: string\n options: selectOption[] \n required?: boolean\n disabled?: boolean\n}\n\nconst AutocompleteSelect = ({\n name='',\n label='',\n options=[],\n required = false,\n disabled = false\n}: Props) => {\n const { control, formState } = useFormContext()\n \n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name,\n control\n })\n const getOpObj = (option) => {\n if(!option)\n return {}\n if (!option.value)\n option = options.find((op) => op.value === option)\n \n return option\n }\n const getOptions = () => {\n if (options && options.length > 0) {\n return options\n }\n else {\n return []\n }\n }\n\n return (\n (\n getOpObj(option)?.label || \"\"}\n isOptionEqualToValue={(option, value) => getOpObj(option)?.value === value}\n onChange={(_, obj) => field.onChange(getOpObj(obj).value)}\n renderInput={(params) => (\n \n )}\n />\n )}\n />\n )\n}\n\nexport default AutocompleteSelect\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface ManualBidDataObject {\n status: string\n message: string\n manualbiditemlist: ManualBidData[]\n bidderlist: BidderListData[]\n}\n\nexport interface BidderListData {\n rownumber: number\n bidderparticipantid: number\n biddername: string\n}\n\nexport interface ManualBidData {\n rownumber: number\n itemid: number\n itemnumber: string\n name: string\n tags: string\n itemtype: string\n numberofbids: number\n startingbid: number\n bidincrement: number\n lastbid: number\n open: string\n closing: string\n opencd: string\n closingcd: string\n buyitnowavailable: boolean\n buyitnowonly: boolean\n allowautobid: boolean\n buyitnowprice: number\n bidstatus: string\n quantityavailable: number\n location: string\n unlimitedquantity: boolean\n maxpurchasequantity: number\n biddername: string\n biddernumber: number\n biddersource: string\n imageurl: string\n}\n\nexport const ManualBidDataDefaults = {\n rownumber: 0,\n itemid: 0,\n itemnumber: null,\n name: null,\n tags: null,\n itemtype: null,\n numberofbids: 0,\n startingbid: 0,\n bidincrement: 0,\n lastbid: 0,\n open: null,\n closing: null,\n opencd: null,\n closingcd: null,\n buyitnowavailable: false,\n buyitnowonly: false,\n allowautobid: false,\n buyitnowprice: 0,\n bidstatus: null,\n quantityavailable: 0,\n location: null,\n unlimitedquantity: false,\n maxpurchasequantity: 0,\n biddername: null,\n biddernumber: 0,\n biddersource: null,\n imageurl: null,\n}\n\nexport const useFetchManualBid = (eventId: number) => {\n return useQuery(\n ['manualbid', eventId],\n () => globalFetcher(eventId),\n {\n staleTime: 100,\n keepPreviousData: false\n }\n )\n}\n\nexport const useUpdateManualBid = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`manualbid`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['manualbid'])\n }\n })\n}\n\nexport const useDeleteManualBid = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.delete(`manualbid`, {data: body}), {\n onSuccess: () => {\n queryClient.invalidateQueries(['manualbid'])\n }\n })\n}\n\nexport const globalFetcher = async (eventId: number) => {\n const { data } = await axios.post('/manualbid', {\n eventid: eventId\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as ManualBidDataObject\n}\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, Grid,\n TextField\n} from '@material-ui/core'\n\nimport HookForm from '../../components/common/HookForm'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { useEventState } from '../../slices/eventSlice'\nimport styles from './ManualBidEntryPage.module.css'\nimport React, {useEffect} from \"react\";\nimport DateTimeInput from \"../../components/common/inputs/DateTimeInput\";\nimport dayjs from \"dayjs\";\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport AutocompleteSelect from \"../../components/common/inputs/AutoCompleteSelectInput/AutocompleteSelect\"\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {useUpdateManualBid} from \"../../queries/useManualBid\";\nimport {useQueryClient} from \"react-query\";\n\ntype FormData = {\n id: string\n eventid: number\n itemid: number\n buyitnow: boolean\n buyitnowquantity: number\n price: string\n bidderid: number\n}\nexport const BidForm = ({ isOpen, setIsOpen, gridParams, bidderList, buyItNow }) => {\n const formMethods = useForm()\n const { reset, watch, setError} = formMethods\n const manualBidMutation = useUpdateManualBid()\n const eventState = useEventState()\n const title = (buyItNow ? \"Buy It Now\" : \"Manual Bid\")\n const [dialogMsg, setDialogMsg] = React.useState({message: \"\", display: false})\n const [dialogStatus, setDialogStatus] = React.useState(true)\n const [currencyValues, setCurrencyValues] = React.useState(gridParams.lastbid)\n const [quantityValues, setQuantityValues] = React.useState(gridParams.buyitnowquantity)\n const [isValid, setIsValid] = React.useState(true)\n const queryClient = useQueryClient()\n\n useEffect(() => {\n if (gridParams) {\n console.log(gridParams)\n console.log(eventState)\n reset({\n id: gridParams.id,\n eventid: Number(eventState.eventId),\n itemid: gridParams.itemid,\n buyitnow: buyItNow,\n buyitnowquantity: gridParams.buyitnowquantity,\n price: gridParams.price,\n bidderid: gridParams.bidderid\n })\n var initialAmount = gridParams.startingbid\n if (gridParams.startingbid === gridParams.lastbid) {\n initialAmount = gridParams.lastbid\n }\n else if (gridParams.lastbid > 0) {\n initialAmount = gridParams.lastbid + gridParams.bidincrement\n }\n\n setCurrencyValues(initialAmount)\n setQuantityValues(1)\n setIsValid(true)\n }\n }, [gridParams])\n\n useEffect(() => {\n setIsValid(true)\n }, [isOpen])\n\n const onSubmit = async (formData: FormData) => {\n\n try {\n await manualBidMutation.mutateAsync({\n eventid: eventState.eventId,\n itemid: gridParams.itemid,\n buyitnow: buyItNow,\n quantity: quantityValues,\n amount: Number(currencyValues),\n bidderparticipantid: formData.bidderid\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n console.log(json)\n if (json.status === \"failed\") {\n setDialogStatus(false)\n }\n setDialogMsg({message: json.message2, display: true})\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg({message: \"\", display: false})\n if (dialogStatus) {\n queryClient.invalidateQueries(['manualbid'])\n setIsOpen(false)\n }\n }\n\n const getBidderOptions = () => {\n return bidderList?.map(item =>{\n return {value:item.bidderparticipantid, label:item.biddername}\n })\n }\n\n const handleCurrencyChange = (newValue: number | null) => {\n // setError('bidderid', { type: 'required', message: 'Location is required' })\n\n if (newValue > gridParams.lastbid) {\n setIsValid(true)\n setCurrencyValues(Number(newValue.toFixed(1)))\n }\n else {\n setIsValid(false)\n }\n }\n\n const handleQuantityChange = (newValue: number) => {\n if (newValue > 0) {\n setQuantityValues(newValue)\n }\n }\n\n return (\n \n {title}\n\n <>\n \n \n \n {dialogMsg.message}\n \n \n \n \n \n \n \n\n \n \n\n \n \n
Item: {gridParams.itemnumber} - {gridParams.name}
\n
\n \n {buyItNow &&\n
Buy It Now Price: ${gridParams.buyitnowprice}
\n }\n
\n
\n \n \n
\n \n
\n
\n
\n\n {!buyItNow &&\n \n \n
\n handleCurrencyChange(value)}\n />\n
\n
\n
\n }\n \n {buyItNow && (\n \n handleQuantityChange(value)}\n />\n \n )}\n \n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport { IconButton } from '@material-ui/core'\nimport { Add, AddShoppingCart, AttachMoneyOutlined, Delete, Edit } from '@material-ui/icons'\nimport styles from './ManualBidEntryPage.module.css'\nimport {BidForm} from \"./BidForm\";\nimport {ManualBidData, ManualBidDataObject, useFetchManualBid} from \"../../queries/useManualBid\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport {DataGridPro, GridValueFormatterParams} from \"@mui/x-data-grid-pro\";\nimport {DataGridPremium, GridCellParams} from \"@mui/x-data-grid-premium\";\n\ninterface Params {\n eventid: string\n}\n\nconst ManualBidEntryPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const [isBidFormShowing, setBidIsFormShowing] = useState(false)\n const [buyItNow, setBuyItNow] = useState(false)\n\n const { data: ManualBidDataObject } = useFetchManualBid(Number(eventid))\n const [dataRows, setDataRows] = React.useState([]);\n const [bidderList, setBidderList] = useState([])\n console.log(ManualBidDataObject)\n\n useEffect(() => {\n if (ManualBidDataObject?.bidderlist && ManualBidDataObject?.bidderlist?.length > 0) {\n setBidderList(ManualBidDataObject.bidderlist)\n }\n\n if (ManualBidDataObject?.manualbiditemlist && ManualBidDataObject?.manualbiditemlist?.length > 0) {\n const dataRows = getMappedRecords()\n setDataRows(dataRows)\n }\n else {\n setDataRows([])\n }\n }, [ManualBidDataObject])\n\n const getMappedRecords = () => {\n const dataReturn = ManualBidDataObject?.manualbiditemlist.map((manualList: ManualBidData, i) => {\n return {\n id: manualList.itemid,\n itemid: manualList.itemid,\n itemnumber: manualList.itemnumber,\n name: manualList.name,\n tags: manualList.tags,\n itemtype: manualList.itemtype,\n numberofbids: manualList.numberofbids,\n startingbid: manualList.startingbid,\n bidincrement: manualList.bidincrement,\n lastbid: manualList.lastbid,\n open: manualList.open,\n closing: manualList.closing,\n opencd: manualList.opencd,\n closingcd: manualList.closingcd,\n buyitnowavailable: manualList.buyitnowavailable,\n buyitnowonly: manualList.buyitnowonly,\n allowautobid: manualList.allowautobid,\n buyitnowprice: manualList.buyitnowprice,\n bidstatus: manualList.bidstatus,\n quantityavailable: manualList.quantityavailable,\n location: manualList.location,\n unlimitedquantity: manualList.unlimitedquantity,\n maxpurchasequantity: manualList.maxpurchasequantity,\n biddername: manualList.biddername,\n biddernumber: manualList.biddernumber,\n biddersource: manualList.biddersource,\n imageurl: manualList.imageurl,\n\n }\n })\n return dataReturn\n }\n\n\n const [gridParams, setGridParams] = useState({})\n\n const getRecord = (id: number) => {\n const returnRows = dataRows.filter((v, i) => v.id === id)\n if (returnRows && returnRows.length > 0) {\n return returnRows[0]\n }\n else {\n return {}\n }\n }\n\n const handleBid = (params: GridCellParams, buyItNowParam: boolean) => {\n setBuyItNow(buyItNowParam)\n setGridParams({...params.row, buyitnow: buyItNowParam})\n setBidIsFormShowing(true)\n }\n\n const columns= [\n {\n field: 'Edit',\n renderHeader: () => {\n return (<>\n // setIsFormShowing(true)}\n // size=\"small\">\n // \n // \n )\n },\n width: 120,\n sortable: false,\n renderCell: (params) => (\n <>\n {!params.row.buyitnowonly && (params.row.unlimitedquantity || params.row.quantityavailable > 0) &&\n { handleBid(params, false) }}>\n \n \n }\n {params.row.buyitnowavailable && (params.row.unlimitedquantity || params.row.quantityavailable > 0) &&\n {\n handleBid(params, true)\n }}>\n \n \n }\n \n )\n },\n {\n field: 'itemnumber',\n type: 'number',\n headerName: 'Item #',\n width: 150\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n width: 200\n },\n {\n field: 'location',\n type: 'string',\n headerName: 'Location',\n width: 200\n },\n {\n field: 'itemtype',\n type: 'string',\n headerName: 'Item Type',\n width: 200\n },\n {\n field: 'quantityavailable',\n type: 'string',\n headerName: 'Quantity Available',\n width: 200,\n valueFormatter: (params) => {\n const rec = getRecord(params.id)\n return (rec?.unlimitedquantity ? 'Unlimited' : (params.value === 0 ? 'Sold Out' : params.value))\n },\n },\n {\n field: 'lastbid',\n type: 'string',\n headerName: 'Current Bid',\n width: 200,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n },\n {\n field: 'buyitnowprice',\n type: 'number',\n headerName: 'Buy It Now',\n width: 225,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n },\n {\n field: 'biddername',\n type: 'string',\n headerName: 'Bidder Name',\n width: 200\n }\n ]\n\n return (\n
\n

Manual Bid Entry

\n \n\n \n
\n )\n}\n\nexport default ManualBidEntryPage\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface User {\n userid: number\n email: string\n password: string\n active: boolean\n globalsetup: boolean\n auctionsettings: boolean\n sponsors: boolean\n customusermessage: boolean\n customemail: boolean\n location: boolean\n auctionitems: boolean\n participants: boolean\n manualbidentry: boolean\n checkout: boolean\n participantlisting: boolean\n accountingreport: boolean\n transfertransactionsto: boolean\n transfertransactionsfrom: boolean\n transfernewcontactsto: boolean\n createinteractionrecords: boolean\n lastupdateddate: string\n lastupdatedby: string\n}\n\n\nexport const globalUserFetcher = async () => {\n const { data } = await axios.post('/usersetup', {})\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.users as User[]\n}\n\nexport const useFetchUsers = ({\n userid\n }: {\n userid?: string\n} = {}) => {\n return useQuery(\n ['users', userid],\n () => globalUserFetcher(),\n {\n staleTime: 0,\n placeholderData: [],\n keepPreviousData: false\n }\n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useUser = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`usersetup`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['users'])\n }\n })\n}\n\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow\n} from '@material-ui/core'\nimport Switch from '../../../components/common/inputs/Switch'\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport styles from './UsersTable.module.css'\nimport { useUser } from '../../../mutations/useUser'\nimport React, {useEffect, useState} from \"react\";\nimport validator from 'validator'\nimport {passwordResetEmail} from \"../../../queries/useResetPassword\";\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {AuthToken} from \"../../../slices/authSlice\";\nimport {parseJwt} from \"../../AuthPage/LoginForm/useLoginMutation\";\nimport DateTimeInput from \"../../../components/common/inputs/DateTimeInput\";\n\ntype FormData = {\n userid: number\n email: string\n password: string\n active: boolean\n globalsetup: boolean\n auctionsettings: boolean\n sponsors: boolean\n customusermessage: boolean\n customemail: boolean\n location: boolean\n auctionitems: boolean\n participants: boolean\n manualbidentry: boolean\n checkout: boolean\n participantlisting: boolean\n accountingreport: boolean\n transfertransactionsto: boolean\n transfertransactionsfrom: boolean\n transfernewcontactsto: boolean\n createinteractionrecords: boolean\n}\n\nexport const OrgUserForm = ({ isOpen, setIsOpen, user, reloadForm }) => {\n const putUser = useUser()\n const formMethods = useForm()\n const title = user ? \"Edit User\" : \"Create User\"\n const { reset, getValues, setValue } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n // console.log((user ? user.email : \"blank\"))\n useEffect(() => {\n // console.log(user)\n setValue('email', \"\")\n reset({\n // userid: (user ? user.userid : \"\"),\n email: (user ? user.email : \"\"),\n password: (user ? \"123456789\" : \"\"),\n active: (user ? user.active : true),\n globalsetup: (user ? user.globalsetup : false),\n auctionsettings: (user ? user.auctionsettings : false),\n sponsors: (user ? user.sponsors : false),\n customusermessage: (user ? user.customusermessage : false),\n customemail: (user ? user.customemail : false),\n location: (user ? user.location : false),\n auctionitems: (user ? user.auctionitems : false),\n participants: (user ? user.participants : false),\n manualbidentry: (user ? user.manualbidentry : false),\n checkout: (user ? user.checkout : false),\n participantlisting: (user ? user.participantlisting : false),\n accountingreport: (user ? user.accountingreport : false),\n transfertransactionsto: (user ? user.transfertransactionsto : false),\n transfertransactionsfrom: (user ? user.transfertransactionsfrom : false),\n transfernewcontactsto: (user ? user.transfernewcontactsto : false),\n createinteractionrecords: (user ? user.createinteractionrecords : false)\n })\n }, [reloadForm])\n\n const onFormSubmit = async (data: FormData) => {\n const finalData = user ? { ...data, userid: user.userid } : { ...data }\n const { data: response } = await putUser.mutateAsync({\n ...finalData\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const onResetEmail = async () => {\n console.log('send onSubmit')\n const token = localStorage.getItem('tokenadmin')\n const parsedToken: AuthToken = parseJwt(token)\n\n const emailSent = await passwordResetEmail(parsedToken.sitecode, getValues(\"email\"))\n if (emailSent) {\n setDialogMsg(\"An email was sent to \" + user?.email + \". Please click the link within the email to reset your password.\")\n }\n }\n\n const passwordFieldEnabled = () => {\n return user ? true : false\n }\n\n return (\n \n {title}\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n validator.isEmail(val) || 'Please enter a valid email address.'\n }}\n />\n \n \n {passwordFieldEnabled() && (\n onResetEmail()}>\n Reset User Password\n \n )}\n\n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/* Page*/}\n {/* Access Level*/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* Global Setup*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Auction Settings*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Sponsors*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Page/Email Customization*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Custom Email*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Location*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Auction Items*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Participants*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Manual Bid Entry*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Checkout*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Participant Listings*/}\n {/* */}\n {/* */}\n {/* /!**!/*/}\n {/* /!* Accounting Report*!/*/}\n {/* /!* *!/*/}\n {/* /!**!/*/}\n {/* */}\n {/* Transfer Transactions To*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Transfer Transactions From*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Transfer New Contacts To*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Create Interaction Records*/}\n {/* */}\n {/* */}\n {/* */}\n {/*
*/}\n {/*
*/}\n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import React, { useState } from 'react'\n\nimport { IconButton } from '@material-ui/core'\nimport { Add, Delete, Edit } from '@material-ui/icons'\nimport { useFetchUsers, User } from '../../../queries/useUsers'\nimport { useUser } from \"../../../mutations/useUser\";\nimport { OrgUserForm } from './UserForm'\nimport styles from './UsersTable.module.css'\nimport {DataGridPremium, GridCellParams} from \"@mui/x-data-grid-premium\";\nimport {GridColumns} from \"@mui/x-data-grid-pro\";\n\nconst Users = {\n userid: 0,\n email: '',\n password: '',\n active: true,\n globalsetup: false,\n auctionsettings: false,\n sponsors: false,\n customusermessage: false,\n customemail: false,\n location: false,\n auctionitems: false,\n participants: false,\n manualbidentry: false,\n checkout: false,\n participantlisting: false,\n accountingreport: false,\n transfertransactionsto: false,\n transfertransactionsfrom: false,\n transfernewcontactsto: false,\n createinteractionrecords: false,\n lastupdateddate: '',\n lastupdatedby: ''\n}\n\nconst UsersTable = () => {\n const [userToEdit, setUserToEdit] = useState(null)\n const [reloadForm, setReloadForm] = useState(0)\n const putUser = useUser()\n\n var { data } = useFetchUsers()\n var rows = []\n if (data) {\n rows = data.map((user) => {\n return { id: Number(user.userid), email: user.email, password:'', active: user.active,\n globalsetup: user.globalsetup,\n auctionsettings: user.auctionsettings,\n sponsors: user.sponsors,\n customusermessage: user.customusermessage,\n customemail: user.customemail,\n location: user.location,\n auctionitems: user.auctionitems,\n participants: user.participants,\n manualbidentry: user.manualbidentry,\n checkout: user.checkout,\n participantlisting: user.participantlisting,\n accountingreport: user.accountingreport,\n transfertransactionsto: user.transfertransactionsto,\n transfertransactionsfrom: user.transfertransactionsfrom,\n transfernewcontactsto: user.transfernewcontactsto,\n createinteractionrecords: user.createinteractionrecords,\n lastupdateddate: user.lastupdateddate,\n lastupdatedby: user.lastupdatedby\n }\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setUserToEdit(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const data = rows.filter((e) => Number(e.id) === Number(params.id))[0]\n setUserToEdit({\n userid: Number(params.id),\n email: data.email,\n password: data.password,\n active: data.active,\n globalsetup: data.globalsetup,\n auctionsettings: data.auctionsettings,\n sponsors: data.sponsors,\n customusermessage: data.customusermessage,\n customemail: data.customemail,\n location: data.location,\n auctionitems: data.auctionitems,\n participants: data.participants,\n manualbidentry: data.manualbidentry,\n checkout: data.checkout,\n participantlisting: data.participantlisting,\n accountingreport: data.accountingreport,\n transfertransactionsto: data.transfertransactionsto,\n transfertransactionsfrom: data.transfertransactionsfrom,\n transfernewcontactsto: data.transfernewcontactsto,\n createinteractionrecords: data.createinteractionrecords,\n lastupdateddate: data.lastupdateddate,\n lastupdatedby: data.lastupdatedby\n })\n setIsFormShowing(true)\n }\n\n const handleDeleteConfirm = async (params: GridCellParams) => {\n var finaldata = {\n \"userid\": params.id,\n \"email\": params.getValue(params.id, 'email').toString(),\n \"delete\": true\n }\n await putUser.mutateAsync({\n ...finaldata\n })\n }\n\n const [isFormShowing, setIsFormShowing] = useState(false)\n\n const columns: any = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'lastupdateddate',\n type: 'string',\n headerName: 'Last Updated Date',\n width: 200,\n valueFormatter: (params) =>\n params.value ? new Date(params.value as string).toLocaleString() : 'N/A'\n },\n {\n field: 'lastupdatedby',\n type: 'date',\n headerName: 'Last Updated By',\n width: 200\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDeleteConfirm(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n \n \n \n )\n}\n\nexport default UsersTable\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface Twilio {\n twiliophone: string\n twilioaccountsid: string\n twilioauthtoken: string\n valid: boolean\n twiliovisauctionsnapaccount: boolean\n}\n\nexport const orgSettingsTwilioFetcher = async () => {\n const response = await axios.get(`/orgsettingstwilio`, {\n params: {}\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n const twilio = JSON.parse(parsedResponse.twilio)\n return twilio\n}\n\nexport const useFetchOrgSettingsTwilio = ({\n onSuccess = () => null,\n onError = () => null\n }: {\n onSuccess?: any\n onError?: any\n} = {}) => {\n return useQuery(\n ['orgsettingstwilio'],\n () => orgSettingsTwilioFetcher(),\n {\n staleTime: 120000,\n onSuccess,\n onError,\n retry: false\n }\n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface GEM {\n transactionid: string\n gatewayid: string\n ecommerceid: string\n retailid: string\n lastupdated: string\n validationdate: string\n valid: boolean\n}\n\nexport const orgSettingsGEMFetcher = async () => {\n const response = await axios.get(`/orgsettingsgem`, {\n params: {}\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n const goemerchant = JSON.parse(parsedResponse.goemerchant)\n return goemerchant\n}\n\nexport const useFetchOrgSettingsGEM = ({\n onSuccess = () => null,\n onError = () => null\n }: {\n onSuccess?: any\n onError?: any\n} = {}) => {\n return useQuery(\n ['orgsettingsgem'],\n () => orgSettingsGEMFetcher(),\n {\n staleTime: 120000,\n onSuccess,\n onError,\n retry: false\n }\n )\n}\n\nexport const useFetchOrgSettingsStripe = ({\n\n }: {\n} = {}) => {\n return useQuery(\n ['stripesettings'],\n () => orgSettingsStripeFetcher(),\n {}\n )\n}\n\nexport const orgSettingsStripeFetcher = async () => {\n const response = await axios.get(`/stripe`, {\n params: {}\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n const stripeList = parsedResponse\n return stripeList\n}\n","import {Button, Dialog, DialogActions, DialogContent} from \"@material-ui/core\";\nimport styles from \"./StripeForm.module.css\";\nimport HookForm from \"../../components/common/HookForm\";\nimport {DialogTitle, Grid, Stack, Typography} from \"@mui/material\";\nimport React, {useEffect} from \"react\";\nimport {useForm} from \"react-hook-form\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport axios from \"axios\";\nimport {useQueryClient} from \"react-query\";\n\ntype FormData = {\n id: 0;\n stripeaccountname: string;\n stripeaccountid: string;\n}\n\nconst StripeForm = ({isOpen, setIsOpen, stripeAccountData}) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const queryClient = useQueryClient()\n\n useEffect(()=> {\n reset(stripeAccountData)\n }, [stripeAccountData])\n\n const onSubmit = async (formData: FormData) => {\n console.log(formData)\n const { data } = await axios.put('/stripe', {\"stripeid\": formData.id, \"stripeaccountname\": formData.stripeaccountname})\n const parsedData = JSON.parse(data.jsonString)\n queryClient.invalidateQueries(['stripesettings'])\n setIsOpen(false)\n }\n const handleCloseModal = () => {\n setIsOpen(false);\n }\n\n return (\n <>\n \n Stripe Account\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default StripeForm","import React, {useEffect, useState} from 'react'\nimport { useRef } from 'react'\nimport {set, useForm} from 'react-hook-form'\nimport {\n useOrgSettings,\n useOrgSettingsTwilio,\n useOrgSettingsGEM,\n useResetTwilio,\n useResetGEM\n} from '../../mutations/useOrgSettings'\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton\n} from '@material-ui/core'\nimport {Delete, Edit, ExpandMore} from '@material-ui/icons'\nimport LinkIcon from '@mui/icons-material/Link';\nimport LinkOffIcon from '@mui/icons-material/LinkOff';\n\nimport HookForm from '../../components/common/HookForm'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { useAuthToken } from '../../slices/authSlice'\nimport styles from './OrgSettingsPage.module.css'\nimport UsersTable from './UsersTable'\nimport { useFetchOrgSettings } from './useFetchOrgSettings'\nimport { useFetchOrgSettingsTwilio } from './useFetchOrgSettingsTwilio'\nimport {useFetchOrgSettingsGEM, useFetchOrgSettingsStripe} from './useFetchOrgSettingsGEM'\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport {emailRegex, phoneRegex, zipCodeRegex} from \"../../util/formValidation\";\nimport {useDispatch} from \"react-redux\";\nimport {useParams} from \"react-router\";\nimport {EventState, setEvent} from \"../../slices/eventSlice\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {OrgState, setOrg} from \"../../slices/orgSlice\";\nimport DateTimeInput from \"../../components/common/inputs/DateTimeInput\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent, Stack} from \"@mui/material\";\nimport {useQueryClient} from \"react-query\";\nimport axios from \"axios\";\nimport {\n DataGridPremium, GridCellParams,\n GridColDef,\n GridToolbarContainer, GridValueFormatterParams,\n} from \"@mui/x-data-grid-premium\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport dayjs from \"dayjs\";\nimport StripeForm from \"./StripeForm\";\n\ntype FormData = {\n email: string\n phone: string\n postalcode: string\n orgInfo: {\n name: string\n contactname: string\n address1: string\n address2: string\n city: string\n state: string\n postalcode: string\n email: string\n phone: string\n }\n}\n\ntype formDataTwilio = {\n twiliophone: string\n twilioaccountsid: string\n twilioauthtoken: string\n valid: boolean\n twiliovisauctionsnapaccount: boolean\n}\n\ntype formDataGEM = {\n transactionid: string\n gatewayid: string\n ecommerceid: string\n retailid: string\n lastupdated: string\n validationdate: string\n}\n\ninterface Params {\n id: string,\n name: string\n refreshaccountid: string\n accountid: string\n}\n\nconst OrgSettingsPage = () => {\n const dispatch = useDispatch()\n const queryClient = useQueryClient()\n const { id, name, refreshaccountid, accountid } = useParams()\n const eventState: EventState = {\n eventId: id,\n eventName: name\n }\n dispatch(setEvent(eventState))\n var rows = []\n\n const putOrgSetting = useOrgSettings()\n const putOrgSettingsTwilio = useOrgSettingsTwilio();\n const putOrgSettingsGEM = useOrgSettingsGEM();\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [stripeData, setStripeData] = React.useState([])\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false, twilio: false })\n const [deleteDialogObj, setDeleteDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [isLoading, setIsLoading] = React.useState(false)\n const [isOpen, setIsOpen] = React.useState(false)\n const [stripeAccordionExpanded, setstripeAccordionExpanded] = React.useState(false)\n\n const [stripeAccountData, setStripeAccountData] = React.useState({id: 0, stripeaccountid: '', stripeaccountname: ''})\n\n const formMethods = useForm()\n const { reset } = formMethods\n\n const twilioFormMethods = useForm()\n const { reset : twilloReset } = twilioFormMethods\n\n const gemFormMethods = useForm()\n const { reset : gemReset } = gemFormMethods\n\n const authToken = useAuthToken()\n\n useEffect(() => {\n if (accountid || refreshaccountid) {\n setstripeAccordionExpanded(true)\n\n }\n else {\n setstripeAccordionExpanded(false)\n }\n }, [])\n\n\n useEffect(() => {\n\n const refreshStripeId = async () => {\n const { data } = await axios.post('/striperefresh', {\"stripeaccountid\": refreshaccountid})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData?.redirecturl?.length > 0) {\n window.location.href = parsedData.redirecturl\n }\n }\n refreshStripeId()\n }, [refreshaccountid])\n\n useEffect(() => {\n const refreshStripeId = async () => {\n const { data } = await axios.post('/stripereturn', {\"stripeaccountid\": accountid})\n const parsedData = JSON.parse(data.jsonString)\n // setStripeAccountData(parsedData)\n }\n refreshStripeId()\n\n\n }, [accountid])\n\n const ontwilioSubmit = async (formData: formDataTwilio) => {\n setIsLoading(true)\n var finaldata = {\n \"twiliophone\": formData.twiliophone,\n \"twilioaccountsid\": formData.twilioaccountsid,\n \"twilioauthtoken\": formData.twilioauthtoken,\n }\n\n const { data: response } = await putOrgSettingsTwilio.mutateAsync({\n ...finaldata\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n const twilio = JSON.parse(parsedResponse?.twilio)\n\n if (parsedResponse?.status === 'success' && twilio.valid) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: twilio\n }\n dispatch(setOrg(orgState))\n queryClient.invalidateQueries(['orgsettings', authToken?.userid])\n setDialogMsg('Twilio settings successfully saved.')\n }\n if (!twilio.valid) {\n setDialogMsg(twilio.errormessage)\n }\n else if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse?.message)\n }\n\n setIsLoading(false)\n }\n\n const onGEMSubmit = async (formData: formDataGEM) => {\n setIsLoading(true)\n var finaldata = {\n \"goetransactionid\": formData.transactionid,\n \"goegatewayid\": formData.gatewayid\n }\n\n const { data: response } = await putOrgSettingsGEM.mutateAsync({\n ...finaldata\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse?.message)\n }\n if (parsedResponse?.goemerchant) {\n const goemerchant = JSON.parse(parsedResponse?.goemerchant)\n if (!goemerchant.valid) {\n setDialogMsg(goemerchant.errormessage)\n }\n else if (parsedResponse?.status === 'success' && goemerchant.valid) {\n setDialogMsg('GoEmerchant settings successfully saved.')\n }\n }\n\n setIsLoading(false)\n }\n\n const onSubmit = async (formData: FormData) => {\n setIsLoading(true)\n var finaldata = {\n \"name\": formData.orgInfo.name,\n \"contactname\": formData.orgInfo.contactname,\n \"address\" : formData.orgInfo.address1,\n \"address2\": formData.orgInfo.address2,\n \"city\": formData.orgInfo.city,\n \"state\": formData.orgInfo.state,\n \"zip\": formData.postalcode,\n \"email\": formData.email,\n \"phone\": formData.phone\n }\n\n const { data: response } = await putOrgSetting.mutateAsync({\n ...finaldata\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'success') {\n // const orgState: OrgState = {\n // name: formData.orgInfo.name, message: settings?.message\n // }\n // dispatch(setOrg(orgState))\n setDialogMsg('Organization settings successfully saved.')\n }\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse?.message)\n }\n setIsLoading(false)\n }\n\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n const { data: twilioSettings } = useFetchOrgSettingsTwilio({})\n const { data: GEMSettings } = useFetchOrgSettingsGEM({})\n const { data: stripeSettings } = useFetchOrgSettingsStripe({})\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n useEffect(() => {\n console.log(stripeSettings)\n if (stripeSettings && stripeSettings?.stripelist) {\n const newData = stripeSettings?.stripelist?.map((stripeData) => {\n return {id: stripeData.stripeid, ...stripeData}\n })\n setStripeData(newData)\n }\n\n }, [stripeSettings])\n\n const hasInitiatedForm = useRef(false)\n useEffect(() => {\n if (settings && !hasInitiatedForm.current) {\n reset({\n email: settings.email,\n phone: settings.phone,\n postalcode: settings.zip,\n orgInfo: {\n name: settings.name,\n contactname: settings.contactname,\n address1: settings.address,\n address2: settings.address2,\n city: settings.city,\n state: settings.state,\n postalcode: settings.zip,\n email: settings.email,\n phone: settings.phone\n }\n })\n hasInitiatedForm.current = true\n }\n }, [settings])\n\n const hasInitiatedTwilioForm = useRef(false)\n useEffect(() => {\n if (twilioSettings && !hasInitiatedTwilioForm.current) {\n twilloReset({\n twiliophone: twilioSettings.twiliophone.replace(\"+1\", \"\"),\n twilioaccountsid: twilioSettings.twilioaccountsid,\n twilioauthtoken: twilioSettings.twilioauthtoken,\n twiliovisauctionsnapaccount: twilioSettings?.twiliovisauctionsnapaccount\n })\n hasInitiatedTwilioForm.current = true\n }\n }, [twilioSettings])\n\n const hasInitiatedGEMForm = useRef(false)\n useEffect(() => {\n if (GEMSettings && !hasInitiatedGEMForm.current) {\n gemReset({\n transactionid: GEMSettings.transactionid,\n gatewayid: GEMSettings.gatewayid,\n ecommerceid: GEMSettings.ecommerceid,\n retailid: GEMSettings.retailid,\n lastupdated: GEMSettings.lastupdated,\n validationdate: GEMSettings.validationdate\n })\n hasInitiatedGEMForm.current = true\n }\n }, [GEMSettings])\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n // renderHeader: () => {\n // return (\n // handleAdd()}\n // size=\"small\">\n // \n // \n // )\n // },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n \n )\n },\n {\n field: 'stripeaccountid',\n type: 'string',\n headerName: 'Account Id',\n minWidth: 320\n },\n {\n field: 'stripeaccountname',\n type: 'string',\n headerName: 'Account Name',\n minWidth: 320\n },\n {\n field: 'stripeisvalid',\n type: 'string',\n headerName: 'Is Valid',\n minWidth: 120\n },\n {\n field: 'stripevalidationdate',\n type: 'string',\n headerName: 'Validation Date',\n align: \"right\",\n minWidth: 180,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params?.value?.length > 0 ? dayjs(params.value as string).format('MM/DD/YYYY hh:mm A') : '')\n },\n },\n {\n field: 'other',\n headerName: '',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 220,\n sortable: false,\n renderCell: (params) => {\n return (\n
\n {params.row.canvalidate &&\n {handleValidate(params.row)}}\n // startIcon={}\n color=\"primary\">\n Validate\n \n }\n {params.row.cansetup &&\n {handleSetup(params.row)}}\n // startIcon={}\n color=\"primary\">\n Finish Setup\n \n }\n
\n )\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => {\n return (\n
\n {params.row.candelete &&\n {\n handleDelete(params)\n }}\n >\n \n \n }\n
\n )\n }\n }\n ]\n\n const handleAdd = async () => {\n setIsLoading(true)\n const { data } = await axios.get('/stripenewaccount')\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData?.redirecturl?.length > 0) {\n window.location.href = parsedData.redirecturl\n }\n setIsLoading(false)\n }\n\n const handleSetup = async (row) => {\n setIsLoading(true)\n const { data } = await axios.post('/stripesetup', {\"stripeid\": row.id})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData?.redirecturl?.length > 0) {\n window.location.href = parsedData.redirecturl\n }\n setIsLoading(false)\n }\n\n const handleValidate = async (row) => {\n const { data } = await axios.post('/stripevalidate', {\"stripeid\": row.stripeid})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData?.message && parsedData?.message?.length > 0) {\n setDialogMsg(parsedData.message)\n }\n // else {\n // const stripeList = parsedData.stripelist\n // setStripeData(stripeList)\n // }\n queryClient.invalidateQueries(['stripesettings'])\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(deleteDialogObj.id)\n }\n\n const handleDelete = (params: GridCellParams) => {\n const message = params.row.stripeaccountname?.length > 0 ? params.row.stripeaccountname : params.row.stripeaccountid\n setDeleteDialogObj({\n msg: 'Are you sure you want to delete \\\"' + message + \"\\\"?\",\n id: Number(params.row.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"stripeid\": id\n }\n\n const { data } = await axios.delete('/stripe', {data: finaldata})\n const json = JSON.parse(data.jsonString)\n\n if (json.status === \"failure\") {\n setDeleteDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n queryClient.invalidateQueries(['stripesettings'])\n setDeleteDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n\n const handleEdit = (params: GridCellParams) => {\n setStripeAccountData({id: params.row.id, stripeaccountname: params.row.stripeaccountname, stripeaccountid: params.row.stripeaccountid})\n setIsOpen(true)\n }\n\n function CustomGridToolbar() {\n return (\n <>\n \n <>\n \n \n \n {handleAdd()}}\n startIcon={}\n color=\"primary\">\n Add New Stripe Account\n \n \n \n \n \n \n \n )\n }\n\n\n const closeDialog = () => {\n setDeleteDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg('')\n setDialogObj({\n msg: '',\n show: false,\n twilio: false\n })\n }\n\n const checkPhoneNumber = (value: string) =>\n value?.replace(/\\D/g,'').length === 10 || 'Please enter a valid phone number.'\n\n const onResetGEM = () => {\n setDialogObj({\n msg: 'Are you sure you want to reset the GoEmerchant settings?',\n show: true,\n twilio: false\n })\n }\n\n const onResetTWILIO = () => {\n setDialogObj({\n msg: 'Are you sure you want to reset the Twilio settings?',\n show: true,\n twilio: true\n })\n }\n\n const resetConfirm = async () => {\n if (dialogObj.twilio) {\n const { data } = await axios.get('/resettwilio')\n const parsedData = JSON.parse(data.jsonString)\n queryClient.invalidateQueries(['orgsettingstwilio'])\n queryClient.invalidateQueries(['orgsettings', authToken?.userid])\n if (parsedData.status === 'success') {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer,\n twilio: { twiliophone:\"\", twilioaccountsid:\"\", twilioauthtoken:\"\",\n valid:false, errormessage:\"\", validationdate:null}\n }\n dispatch(setOrg(orgState))\n twilloReset({\n twiliophone: \"\",\n twilioaccountsid: \"\",\n twilioauthtoken: \"\",\n })\n setDialogObj({\n msg: \"\",\n show: false,\n twilio: true\n })\n }\n else {\n setDialogObj({\n msg: parsedData.message,\n show: true,\n twilio: true\n })\n }\n }\n else {\n const { data } = await axios.get('/resetgem')\n const parsedData = JSON.parse(data.jsonString)\n queryClient.invalidateQueries(['orgsettingsgem'])\n if (parsedData.status === 'success') {\n gemReset({\n transactionid: \"\",\n gatewayid: \"\",\n ecommerceid: \"\",\n retailid: \"\",\n lastupdated: null,\n validationdate: null\n })\n setDialogObj({\n msg: \"\",\n show: false,\n twilio: true\n })\n }\n else {\n setDialogObj({\n msg: parsedData.message,\n show: true,\n twilio: true\n })\n }\n }\n }\n\n return (\n
\n

Organization Settings

\n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {deleteDialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n }>\n

Organization Info

\n
\n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n {setstripeAccordionExpanded(expanded)}} expanded={stripeAccordionExpanded}>\n }>\n
\n

Stripe - Payment Processing Integration

\n {stripeSettings?.valid ?\n <>\n \n

Connected

\n \n :\n <>\n \n

Not Connected

\n \n }\n
\n
\n \n {/*
*/}\n\n \n {/*
*/}\n
\n
\n \n }>\n
\n

goEmerchant - Payment Processing Integration

\n {GEMSettings?.valid ?\n <>\n \n

Connected

\n \n :\n <>\n \n

Not Connected

\n \n }\n
\n
\n \n \n
\n \n \n \n {/**/}\n \n \n \n \n Validate and Save\n \n \n \n
\n
\n
\n
\n \n }>\n
\n

Twilio - Text Messaging Integration

\n {twilioSettings?.valid ?\n <>\n \n

Connected

\n \n :\n <>\n \n

Not Connected

\n \n }\n
\n
\n\n \n
\n {twilioSettings?.twiliovisauctionsnapaccount &&\n
Please contact support@auctionsnap.com if you would like to use your own Twilio account for text messaging.
\n }\n\n \n checkPhoneNumber(val)\n }}\n />\n \n
\n \n
\n \n \n Validate and Save\n \n \n \n
\n
\n
\n
\n \n }>\n

Users

\n
\n \n \n \n
\n {/**/}\n {/* }>*/}\n {/*

Receipt Templates

*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* */}\n {/*
*/}\n
\n )\n}\n\nexport default OrgSettingsPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useOrgSettings = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`orgsettings`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['orgsettings'])\n }\n })\n}\n\nexport const useOrgSettingsTwilio = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`orgsettingstwilio`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['orgsettingstwilio'])\n }\n })\n}\n\nexport const useResetTwilio = async () => {\n const { data } = await axios.get('/resettwilio')\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const useOrgSettingsGEM = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`orgsettingsgem`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['orgsettingsgem'])\n }\n })\n}\n\nexport const useResetGEM = async () => {\n const { data } = await axios.get('/resetgem')\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateParticipant = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/participant`, body)\n },\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['participant'])\n }\n }\n )\n}\n","import React, { useEffect } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useQueryClient } from 'react-query'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle,\n FormLabel\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport Switch from '../../../components/common/inputs/Switch'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport { Participant, udTitles } from '../useFetchParticipants'\nimport styles from './ParticipantsForm.module.css'\nimport { useCreateParticipant } from './useCreateParticipant'\nimport MaskedInput from \"../../../components/common/inputs/MaskedInput\";\nimport {emailRegex, phoneRegex, zipCodeRegex} from \"../../../util/formValidation\";\n\ntype FormData = {\n bidnumber: number\n first: string\n last: string\n email: string\n phone: string\n authorizedbidder: boolean\n address: string\n address2: string\n city: string\n state: string\n zip: string\n source: string\n userdefined1: string\n userdefined2: string\n userdefined3: string\n userdefined4: string\n userdefined5: string\n paddlenumbertext: string\n}\n\ntype Props = {\n isOpen: boolean\n setIsOpen: Function\n particpant?: Participant\n bidnumber?: number\n reloadForm?: number\n nextBidNumber?: number\n udTitles?: udTitles\n}\nconst UserForm = ({ isOpen, setIsOpen, particpant, reloadForm, nextBidNumber, udTitles }: Props) => {\n const isEdit = Boolean(particpant)\n const formMethods = useForm()\n const { reset, setValue } = formMethods\n const eventState = useEventState()\n const createMutation = useCreateParticipant()\n const editMutation = useCreateParticipant()\n const queryClient = useQueryClient()\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n useEffect(() => {\n reset({\n bidnumber: (particpant ? particpant.bidnumber : nextBidNumber),\n first: (particpant ? particpant.first : ''),\n last: (particpant ? particpant.last : ''),\n email: (particpant ? particpant.email : ''),\n phone: (particpant ? particpant.phone : ''),\n authorizedbidder: (particpant ? particpant.authorizedbidder : true),\n address: (particpant ? particpant.address : ''),\n address2: (particpant ? particpant.address2 : ''),\n city: (particpant ? particpant.city : ''),\n state: (particpant ? particpant.state : ''),\n zip: (particpant ? particpant.zip : ''),\n source: 'manual',\n userdefined1: (particpant ? particpant.userdefined1 : ''),\n userdefined2: (particpant ? particpant.userdefined2 : ''),\n userdefined3: (particpant ? particpant.userdefined3 : ''),\n userdefined4: (particpant ? particpant.userdefined4 : ''),\n userdefined5: (particpant ? particpant.userdefined5 : ''),\n paddlenumbertext: (particpant ? particpant.paddlenumbertext : '')\n })\n\n }, [reloadForm])\n\n const onCreateSubmit = async (formData: FormData) => {\n try {\n await createMutation.mutateAsync({\n eventid: Number(eventState.eventId),\n source: 'manual',\n bidnumber: formData.bidnumber,\n first: formData.first,\n last: formData.last,\n email: formData.email,\n phone: formData.phone,\n authorizedbidder: formData.authorizedbidder,\n address: formData.address,\n address2: formData.address2,\n city: formData.city,\n state: formData.state,\n zip: formData.zip,\n userdefined1: formData.userdefined1,\n userdefined2: formData.userdefined2,\n userdefined3: formData.userdefined3,\n userdefined4: formData.userdefined4,\n userdefined5: formData.userdefined5,\n paddlenumbertext: formData.paddlenumbertext,\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n queryClient.invalidateQueries(['participant'])\n }\n }\n })\n } catch {}\n }\n const onEditSubmit = async (formData: FormData) => {\n try {\n await editMutation.mutateAsync({\n participantid: particpant.participantid,\n eventid: Number(eventState.eventId),\n source: 'manual',\n bidnumber: formData.bidnumber,\n first: formData.first,\n last: formData.last,\n email: formData.email,\n phone: formData.phone,\n authorizedbidder: formData.authorizedbidder,\n address: formData.address,\n address2: formData.address2,\n city: formData.city,\n state: formData.state,\n zip: formData.zip,\n userdefined1: formData.userdefined1,\n userdefined2: formData.userdefined2,\n userdefined3: formData.userdefined3,\n userdefined4: formData.userdefined4,\n userdefined5: formData.userdefined5,\n paddlenumbertext: formData.paddlenumbertext\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n queryClient.invalidateQueries(['participant'])\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n }\n\n const handleZip = (event) => {\n setValue(\"zip\", event.toString())\n }\n\n const handlePhone = (event) => {\n setValue(\"phone\", event.toString())\n }\n\n return (\n \n {isEdit ? 'Edit' : 'Create'} Participant\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n {isEdit && (\n \n )}\n \n \n 0}\n rules={{\n pattern: {\n value: emailRegex,\n message: 'Please enter a valid email address.'\n }\n }}\n />\n \n
\n Authorized Bidder: \n \n
\n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n\nexport default UserForm\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface Participant {\n participantid: number\n authorizedbidder: boolean\n first: string\n last: string\n company: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n authorizedtexting: boolean\n email: string\n source: string\n bidnumber: number\n active: boolean\n lastlogindate: string\n numberofbids: number\n numberwinningbids: number\n numberhighbids: number\n addressreadonly: boolean\n userdefined1:string\n userdefined2: string\n userdefined3: string\n userdefined4: string\n userdefined5: string\n paddlenumbertext: string\n}\n\nexport interface udTitles {\n userdefinedtitle1: string\n userdefinedtitle2: string\n userdefinedtitle3: string\n userdefinedtitle4: string\n userdefinedtitle5: string\n}\n\nexport interface ParticipantsWithTitles {\n participants: Participant[]\n udTitles: udTitles\n}\n\nexport const fetchers = async (eventid) => {\n const { data } = await axios.post('/participant', {\n eventid: Number(eventid)\n })\n const parsedData = JSON.parse(data.jsonString)\n\n return parsedData?.participants || []\n}\n\nexport const useFetchParticpants = (eventid) => {\n return useQuery(\n ['participant', eventid],\n () => fetchers(eventid),\n {}\n )\n}\n\nexport const fetchwitUDTitles = async (eventid) => {\n const { data } = await axios.post('/participant', {\n eventid: Number(eventid)\n })\n const parsedData = JSON.parse(data.jsonString)\n let udti : ParticipantsWithTitles = {\n participants: parsedData?.participants || [],\n udTitles: {\n userdefinedtitle1: parsedData?.userdefinedtitle1 || \"\",\n userdefinedtitle2: parsedData?.userdefinedtitle2 || \"\",\n userdefinedtitle3: parsedData?.userdefinedtitle3 || \"\",\n userdefinedtitle4: parsedData?.userdefinedtitle4 || \"\",\n userdefinedtitle5: parsedData?.userdefinedtitle5 || \"\"}}\n \n \n return udti\n}\n\nexport const useFetchParticpantswithUDTitles = (eventid) => {\n return useQuery(\n ['participant', eventid],\n () => fetchwitUDTitles(eventid),\n {}\n )\n}\n","import React, {useEffect, useMemo, useState} from 'react'\nimport { useQueryClient } from 'react-query'\nimport { useParams } from 'react-router'\nimport {Link, useHistory} from 'react-router-dom'\nimport Button from '@mui/material/Button';\nimport download from 'downloadjs';\n\nimport { IconButton } from '@material-ui/core'\nimport { Add, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPro,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef\n} from \"@mui/x-data-grid-pro\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport UploadFileIcon from '@mui/icons-material/UploadFile';\nimport ImportExportIcon from '@mui/icons-material/ImportExport';\nimport { Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle} from \"@material-ui/core\";\n\nimport {Box, Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport { PagePathTypes } from '../../App'\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport ParticipantsForm from './ParticipantsForm'\nimport { useCreateParticipant } from './ParticipantsForm/useCreateParticipant'\nimport styles from './ParticipantsPage.module.css'\nimport { Participant, useFetchParticpantswithUDTitles } from './useFetchParticipants'\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {OrgState, setOrg, useOrgState} from \"../../slices/orgSlice\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {useAuthState} from \"../../slices/authSlice\";\nimport {useDispatch} from \"react-redux\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\n\ninterface Params {\n eventid: string\n}\n\nconst ParticipantsPage = () => {\n const orgState = useOrgState()\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const event = useEventState()\n const auth = useAuthState()\n const dispatch = useDispatch()\n const { data: settings } = useFetchOrgSettings({ userid: auth?.token?.userid })\n const [dialogMsg, setDialogMsg] = useState(\"\")\n const [loading, setLoading] = React.useState(false);\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n const importPath = '/auction/' + eventid + '/participants/import'\n const importDMPPath = '/auction/' + eventid + '/participants/dmp/import'\n\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [particpantToEdit, setParticpantToEdit] = useState(null)\n const [particpantToDelete, setParticpantToDelete] =\n useState(null)\n const [reloadForm, setReloadForm] = useState(0)\n\n const { data: particpantswithTitles, isLoading } = useFetchParticpantswithUDTitles(event?.eventId)\n const rows = useMemo(\n () =>\n particpantswithTitles?.participants?.map((p) => {\n return { ...p, id: p.participantid }\n }) || [],\n [particpantswithTitles]\n )\n\n const getNextBidderNumber = () => {\n return Math.max.apply(\n Math,\n particpantswithTitles?.participants?.map(function (o) {\n return o.bidnumber + 1\n })\n )\n }\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) => gridSortedRowIdsSelector(apiRef);\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const generateContactReport = async () => {\n // setLoading(true)\n axios.post('/integrationcontactreport', {eventid: eventid}, {responseType: \"blob\"}).then(response => {\n var filename = 'integrationcontactreport.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n // setLoading(false)\n })\n }\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n generateContactReport()\n // options.allColumns = true;\n // apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const uploadebuttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n\n \n {/* { history.push(importPath) }}*/}\n {/*>*/}\n {/* IMPORT PARTICIPANTS*/}\n {/**/}\n {/* { history.push(importDMPPath) }}*/}\n {/*>*/}\n {/* IMPORT DONORSNAP*/}\n {/**/}\n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n )\n }\n const editMutation = useCreateParticipant()\n const queryClient = useQueryClient()\n\n const onDelete = async () => {\n try {\n \n await editMutation.mutateAsync({\n participantid: particpantToDelete.participantid,\n eventid: Number(event.eventId),\n delete: true\n }, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n // console.log(json)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n //setDialogMsg('Message was sent successfully.')\n }\n }\n })\n setParticpantToDelete(null)\n queryClient.invalidateQueries(['participant'])\n } catch {}\n }\n\n const onEditCommit = async (row: any, params: any) => {\n editMutation.mutateAsync({\n ...(row || {}),\n eventid: Number(event.eventId),\n [params.field]: params.value\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n {\n setReloadForm(reloadForm + 1)\n setParticpantToEdit(null)\n setIsFormShowing(true)\n }}\n size=\"small\">\n \n \n )\n },\n width: 75,\n sortable: false,\n renderCell: (params) => (\n {\n setReloadForm(reloadForm + 1)\n setParticpantToEdit(params.row as Participant)\n setIsFormShowing(true)\n }}>\n \n \n )\n },\n {\n field: 'authorizedbidder',\n type: 'boolean',\n headerName: 'Bidding Authorized',\n width: 150,\n editable: true\n },\n {\n field: 'bidnumber',\n type: 'string',\n headerName: 'Bidder #',\n width: 150,\n editable: false\n },\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle #',\n width: 150,\n editable: false\n },\n {\n field: 'first',\n type: 'string',\n headerName: 'First name',\n width: 200,\n editable: true\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last name',\n width: 200,\n editable: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200,\n editable: false\n },\n {\n field: 'phone',\n type: 'string',\n headerName: 'Phone',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'authorizedtexting',\n type: 'boolean',\n headerName: 'Text Opt In',\n width: 150,\n editable: true\n },\n {\n field: 'numberofbids',\n type: 'number',\n headerName: 'Total # Bids',\n width: 200,\n editable: true\n },\n {\n field: 'numberhighbids',\n type: 'number',\n headerName: '# Current High Bids',\n width: 200,\n editable: true\n },\n {\n field: 'numbercartitems',\n type: 'number',\n headerName: '# Items in Cart',\n width: 200,\n editable: true\n },\n {\n field: 'numbercheckoutitems',\n type: 'number',\n headerName: '# Items Checked Out',\n width: 200,\n editable: true\n },\n {\n field: 'source',\n type: 'string',\n headerName: 'Source',\n width: 200,\n editable: true\n },\n {\n field: 'lastlogindate',\n headerName: 'Last Login',\n width: 200,\n valueFormatter: (params: GridValueFormatterParams) => {\n if (params.value) {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n }\n else {\n return 'Never'\n }\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 150,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n return (\n
\n {params.row.candelete &&\n setParticpantToDelete(params.row as Participant)}>\n \n \n }\n
\n )\n }\n }\n ]\n\n return (\n
\n <>\n \n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n Error Can't Delete\n\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n

Participants

\n
\n
\n \n {orgState.isdonorsnapcustomer &&\n \n \n Import Donorsnap\n \n \n }\n \n \n Import Spreadsheet\n \n \n\n \n
\n \n \n setParticpantToDelete(null)}\n />\n {\n const row = details.api?.getRow(params.id)\n onEditCommit(row, params)\n }}\n components={{\n Toolbar: CustomGridToolbar,\n }}\n componentsProps={{ toolbar: { csvOptions: { allColumns: true }}}}\n rows={rows}\n columns={columns}\n loading={isLoading}\n pagination={true}\n />\n
\n )\n}\n\nexport default ParticipantsPage\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\n\nexport type Participant = {\n participantid: number;\n authorizedbidder: boolean;\n first: string;\n last: string;\n company: string;\n address: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n country: string;\n phone: string;\n email: string;\n source: string;\n bidnumber: number;\n active: boolean;\n contactid: number;\n paddlenumbertext: string;\n participantname: string;\n}\n\nconst participantDefault = {\n participantid: 0,\n authorizedbidder: false,\n first: \"\",\n last: \"\",\n company: \"\",\n address: \"\",\n address2: \"\",\n city: \"\",\n state: \"\",\n zip: \"\",\n country: \"\",\n phone: \"\",\n email: \"\",\n source: \"\",\n bidnumber: 0,\n active: false,\n contactid: 0,\n paddlenumbertext: \"\",\n participantname:\"\"\n}\n\nexport type ContactData = {\n rownumber: number,\n contactid: number,\n first: string,\n last: string,\n email: string,\n first2: string,\n last2: string,\n email2: string,\n phone: string,\n cell: string,\n company: string,\n address1: string,\n paddlenumbertext : string\n message: string\n }\nconst contactDataDefault = {\n rownumber: 0,\n contactid: 0,\n first: '',\n last: '',\n email: '',\n first2: '',\n last2: '',\n email2: '',\n phone: '',\n cell: '',\n company: '',\n address1: '',\n paddlenumbertext: '',\n message: ''\n}\ninterface ParticipantMerge {\n type: string;\n status: string;\n message: string;\n userdefinedtitle1: string;\n userdefinedtitle2: string;\n userdefinedtitle3: string;\n userdefinedtitle4: string;\n userdefinedtitle5: string;\n eventid: number;\n participantid: number;\n biddernumber: number | null;\n first: string;\n last: string;\n email: string;\n phone: string;\n address: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n userdefined1: string;\n userdefined2: string;\n userdefined3: string;\n userdefined4: string;\n userdefined5: string;\n lastlogindate: string;\n participantsource: string;\n participantcontactkey: number;\n currentwinningbids: number;\n numberofcheckouts: number;\n numberofintegrated: number;\n addressreadonly: boolean;\n }\n \n const defaultParticipantMerge: ParticipantMerge = {\n type: \"\",\n status: \"\",\n message: \"\",\n userdefinedtitle1: \"\",\n userdefinedtitle2: \"\",\n userdefinedtitle3: \"\",\n userdefinedtitle4: \"\",\n userdefinedtitle5: \"\",\n eventid: 0,\n participantid: 0,\n biddernumber: null,\n first: \"\",\n last: \"\",\n email: \"\",\n phone: \"\",\n address: \"\",\n address2: \"\",\n city: \"\",\n state: \"\",\n zip: \"\",\n userdefined1: \"\",\n userdefined2: \"\",\n userdefined3: \"\",\n userdefined4: \"\",\n userdefined5: \"\",\n lastlogindate: \"\",\n participantsource: \"\",\n participantcontactkey: 0,\n currentwinningbids: 0,\n numberofcheckouts: 0,\n numberofintegrated: 0,\n addressreadonly: false,\n };\n\n const globalAuctionReportFetcher = async (body) => {\n console.log(\" get participants global on query page\")\n\n const { data } = await axios.post('/participant', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData.participants as Participant[]\n \n return headers\n}\n\nconst partipantMergePost = async (body) => {\n\n const { data } = await axios.post('/participantmerge', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData as ParticipantMerge\n \n return headers\n}\n\nconst partipantListingMergePost = async (body) => {\n\n const { data } = await axios.post('/participantmerge', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData.participants as Participant[]\n \n return headers\n}\n\nexport const useFetchparticipentforMerge = (eventiDvalue, participantid) => {\n console.log(\" get participants usefetch on query page\")\n\n return useQuery(\n ['participantmerge', {eventiDvalue, participantid}],\n () => partipantMergePost({ \"eventid\": eventiDvalue, \"participantid\": participantid}),\n {\n staleTime: 100,\n placeholderData: defaultParticipantMerge \n }\n )\n}\nexport const useFetchparticipentsListing = (eventiDvalue) => {\n console.log(\" get participants usefetch on query page\")\n\n return useQuery(\n ['linkingparticipant', eventiDvalue],\n () => globalAuctionReportFetcher({ \"eventid\": eventiDvalue}),\n {\n staleTime: 100,\n placeholderData: [participantDefault] \n }\n )\n}\nexport const useFetchMergeparticipentsListing = (eventiDvalue) => {\n console.log(\" get participants usefetch on query page\")\n\n return useQuery(\n ['participantmerge', eventiDvalue],\n () => partipantListingMergePost({ \"eventid\": eventiDvalue}),\n {\n staleTime: 100,\n placeholderData: [participantDefault] \n }\n )\n}\n export const getParticpentLinkList = async (body) => {\n const { data } = await axios.post('/participantlinklookup', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData.contactdata as ContactData[]\n \n return headers\n}\n\nexport const useFetchparticipentLinking = (eventiDvalue, participantid?, searchString?, contactid?) => {\n return useQuery(\n ['participantlinklookup', eventiDvalue , participantid, searchString, contactid],\n () => getParticpentLinkList({ \"eventid\": eventiDvalue, \"participantid\" : participantid, \"search\": searchString, \"contactid\": contactid}),\n {\n staleTime: 100,\n placeholderData: [contactDataDefault],\n\n }\n )\n}\n\n\nexport const usePutParticipantLink = () => {\n const queryClient = useQueryClient()\n //console.log(\" useputparticipant on query page\")\n\n return useMutation((body: any) =>\n axios.put(`participantlink`, body), {\n onSuccess: () => {\n console.log(\" success of useputparticipant on query page\")\n queryClient.invalidateQueries(['participantlinklookup'])\n queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}\nexport const usePutParticipantMerge = () => {\n const queryClient = useQueryClient()\n return useMutation((body: any) =>\n axios.put(`participantmerge`, body), {\n onSuccess: () => {\n // queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}\n\nexport const usePutParticipantUNLink = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`participantunlink`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}\n\nexport const usePutParticipantAutoLink = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`participantlinkauto`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}","import React, { useState, useMemo } from 'react'\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport Paper from '@mui/material/Paper';\nimport Stack from '@mui/material/Stack';\nimport { DataGridPremium, DataGridPremiumProps, GridToolbarContainer, GridToolbarExport, GridValueFormatterParams } from '@mui/x-data-grid-premium';\nimport {useFetchparticipentsListing, usePutParticipantUNLink, usePutParticipantAutoLink} from \"../../queries/useParticipantLinking\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport { useParams } from 'react-router'\nimport { useHistory } from 'react-router-dom'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport dayjs from \"dayjs\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport { makeStyles, Button, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions } from \"@material-ui/core\";\nimport styles from './ParticipantsListingPage.module.css'\n\ninterface Params {\n eventid: string\n}\n\n\n\nconst useStyle = makeStyles({\n root: {\n \"& .MuiDataGrid-columnHeaderTitle\": {\n overflow: \"visible\",\n lineHeight: \"1.43rem\",\n whiteSpace: \"normal\"\n }\n }\n});\n\n\n const ParticipantsListingPage = () => {\n \n const [dialogOpen, setDialogOpen] = useState(false);\n const [dialogMessage, setDialogMessage] = useState('');\n const unLink = usePutParticipantUNLink()\n const autoLink = usePutParticipantAutoLink()\n const history = useHistory()\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const event = useEventState()\n //console.log(event)\n var rows = []\n\n const { data , isLoading } = useFetchparticipentsListing(event?.eventId);\n if(data){\n rows = data;\n }\n const columns = [\n {\n field: 'button',\n headerName: 'Link',\n width: 130,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n if(params.row.contactid > 0){\n return {\n unLink.mutate({\n eventid: event.eventId,\n participantid: params.row.participantid,\n },{\n onSuccess: (data) => {\n console.log(data)\n \n }\n })\n }}>\n UnLink\n ;\n }\n return {\n console.log(params)\n history.push({ \n pathname: '/auction/' + event.eventId + '/participantlinking',\n state:{\n data: params.row,\n }}\n )\n }}>\n Link\n ;\n \n }\n },\n //{ field: 'participantid', headerName: 'participantid' } ,\n {\n field: 'bidnumber',\n type: 'string',\n headerName: 'Bidder #',\n width: 75,\n editable: false\n },\n {\n field: 'authorizedbidder',\n type: 'boolean',\n headerName: 'Authorized',\n width: 90,\n editable: true\n },\n \n {\n field: 'first',\n type: 'string',\n headerName: 'First Name',\n width: 150,\n editable: true\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last Name',\n width: 150,\n editable: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200,\n editable: false\n },\n {\n field: 'phone',\n type: 'string',\n headerName: 'Phone',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 150,\n editable: true\n },\n {\n field: 'source',\n type: 'string',\n headerName: 'Source',\n width: 100,\n editable: true\n },\n {\n field: 'lastlogindate',\n headerName: 'Last Login',\n width: 175,\n valueFormatter: (params: GridValueFormatterParams) => {\n if (params.value) {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n }\n else {\n return 'Never'\n }\n },\n },\n {\n field: 'contactid',\n headerName: 'Linked Contact',\n width: 100,\n \n }\n ,\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle Number',\n width: 200,\n editable: true\n }\n \n ];\n const classes = useStyle();\n\n return (\n
\n

Participant Linking

\n \n \n \n setDialogOpen(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {\"Auto Link Status\"}\n \n \n {dialogMessage}\n \n \n \n \n \n \n \n row.participantid}\n className={classes.root}\n autoHeight\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n \n columnVisibilityModel={{\n // Hide column rownumber the other columns will remain visible\n participantid: false,\n }}\n \n\n \n />\n
\n );\n }\n export default ParticipantsListingPage\n","import React, { useState, useMemo, useEffect } from 'react'\nimport Box from '@mui/material/Box'\nimport Grid from '@mui/material/Grid'\nimport Typography from '@mui/material/Typography'\nimport Paper from '@mui/material/Paper'\nimport Stack from '@mui/material/Stack'\nimport { useForm } from 'react-hook-form'\nimport HookForm from '../../components/common/HookForm'\nimport AutocompleteSelect from \"../../components/common/inputs/AutoCompleteSelectInput/AutocompleteSelect\"\nimport styles from './ParticipantMergePage.module.css'\nimport { TextField } from '@material-ui/core'\n\nimport {\n useFetchparticipentsListing,\n useFetchMergeparticipentsListing,\n usePutParticipantMerge,\n useFetchparticipentforMerge\n} from '../../queries/useParticipantLinking'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useParams } from 'react-router'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport dayjs from 'dayjs'\nimport { makeStyles, Button } from '@material-ui/core'\nimport SearchBar from '../../components/common/inputs/SearchBar'\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport axios from 'axios'\n\ninterface Params {\n id: string\n}\n\n\nconst ParticipantMergePage = () => {\n\n const { id } = useParams()\n useAutoEvent(id)\n const event = useEventState()\n const putLink = usePutParticipantMerge()\n const [selectedOldParticipant, setSelectedOldParticipant] = useState(null);\n const [selectedNewParticipant, setSelectedNewParticipant] = useState(null);\n\n const [confirmDialogOpen, setConfirmDialogOpen] = useState(false);\n const [successDialogOpen, setSuccessDialogOpen] = useState(false);\n const [dialogMessage, setDialogMessage] = useState('');\n const [mergeSuccess, setMergeSuccess] = useState(false);\n const formMethods = useForm({\n defaultValues: {\n participantidold: null,\n participantidnew: null,\n },\n });\n const { data, isLoading } = useFetchMergeparticipentsListing(event.eventId)\n if (data) {\n console.log(data)\n //rows = data\n }\n const { watch } = formMethods;\n const selectedOldParticipantId = watch('participantidold');\n const selectedNewParticipantId = watch('participantidnew');\n const getparticipantsOptions = () => {\n return data?.map(item =>{\n return {value:item.participantid, label:item.participantname }\n })\n }\n const participantsOptions = useMemo(() => getparticipantsOptions(), [data]);\n\n const [editedData, setEditedData] = useState({\n first: \"\",\n last: \"\",\n phone: \"\",\n address: \"\",\n address2: \"\",\n city: \"\",\n state: \"\",\n zip: \"\",\n currentWinningBids: \"\",\n numberOfCheckouts: \"\",\n numberOfIntegrated: \"\",\n paddlenumbertext: \"\"\n });\n \n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setEditedData({\n ...editedData,\n [name]: value\n });\n };\ntype FormData = {\n participantidold: number\n participantidnew: number\n}\nconst [formData, setFormData] = useState(null);\n\n \nconst handleConfirmDialogOpen = (formData: FormData) => {\n setFormData(formData);\n setConfirmDialogOpen(true);\n};\n\nconst handleConfirmDialogClose = () => {\n setConfirmDialogOpen(false);\n};\n\nconst handleSuccessDialogClose = () => {\n setSuccessDialogOpen(false);\n if (mergeSuccess) {\n // Reset the selection and any other necessary state\n setSelectedOldParticipant(null);\n setSelectedNewParticipant(null);\n formMethods.reset();\n // ... any other state reset logic\n }\n};\n\n \n // useEffect(() => {\n // if (selectedOldParticipantId) {\n // const selectedParticipant = data?.find(item => item.participantid === selectedOldParticipantId);\n // setSelectedOldParticipant(selectedParticipant);\n // }\n // }, [selectedOldParticipantId, data]);\n\n // useEffect(() => {\n // if (selectedNewParticipantId) {\n // const selectedParticipant = data?.find(item => item.participantid === selectedNewParticipantId);\n // setSelectedNewParticipant(selectedParticipant);\n // }\n // }, [selectedNewParticipantId, data]);\n \n useEffect(() => {\n if (selectedOldParticipantId) {\n axios.post('/participantmerge', {\n eventid: event.eventId,\n participantid: selectedOldParticipantId\n }).then(response => {\n const data = JSON.parse(response.data.jsonString)\n setSelectedOldParticipant(data);\n }).catch(error => {\n console.error('Error fetching old participant data:', error);\n });\n }\n }, [selectedOldParticipantId, event.eventId]);\n\n useEffect(() => {\n if (selectedNewParticipantId) {\n axios.post('/participantmerge', {\n eventid: event.eventId,\n participantid: selectedNewParticipantId\n }).then(response => {\n const data = JSON.parse(response.data.jsonString)\n setSelectedNewParticipant(data);\n }).catch(error => {\n console.error('Error fetching new participant data:', error);\n });\n }\n }, [selectedNewParticipantId, event.eventId]);\n\n const onSubmit = async () => {\n if (formData) {\n\n handleConfirmDialogClose(); // Close confirmation dialog\n\n console.log(data)\n\n try {\n await putLink.mutateAsync({\n eventid: Number(event.eventId),\n participantidold: formData.participantidold,\n participantidnew: formData.participantidnew,\n first: editedData.first,\n last: editedData.last,\n address: editedData.address,\n address2: editedData.address2,\n city: editedData.city,\n state: editedData.state,\n zip: editedData.zip,\n phone: editedData.phone,\n paddlenumbertext : editedData.paddlenumbertext\n\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n console.log(json)\n if (json.status === \"success\") {\n setDialogMessage(` ${selectedOldParticipant.first} ${selectedOldParticipant.last} was successfully merged into ${selectedNewParticipant.first} ${selectedNewParticipant.last}`);\n setMergeSuccess(true);\n } else {\n setDialogMessage(`An error has occurred. Participant merge was not successful.`);\n setMergeSuccess(false);\n }\n setSuccessDialogOpen(true);\n }\n })\n } catch {\n setDialogMessage(`An error has occurred. Participant merge was not successful.`);\n setMergeSuccess(false);\n setSuccessDialogOpen(true);\n }\n }\n }\n useEffect(() => {\n if (selectedNewParticipant) {\n setEditedData({\n first: selectedNewParticipant.first || \"\",\n last: selectedNewParticipant.last || \"\",\n phone: selectedNewParticipant.phone || \"\",\n address: selectedNewParticipant.address || \"\",\n address2: selectedNewParticipant.address2 || \"\",\n city: selectedNewParticipant.city || \"\",\n state: selectedNewParticipant.state || \"\",\n zip: selectedNewParticipant.zip || \"\",\n currentWinningBids: selectedNewParticipant.currentwinningbids || \"\",\n numberOfCheckouts: selectedNewParticipant.numberofcheckouts || \"\",\n numberOfIntegrated: selectedNewParticipant.numberofintegrated || \"\",\n paddlenumbertext : selectedNewParticipant.paddlenumbertext || \"\"\n });\n }\n }, [selectedNewParticipant]);\n\n\n\n return (\n
\n \n\n\n \n \n
\n \n
\n {selectedOldParticipant && (\n<> Old Participant Details\n Bidder Number: {selectedOldParticipant.biddernumber}\n Paddle Number: {selectedOldParticipant.paddlenumbertext}\n First Name: {selectedOldParticipant.first}\n Last Name: {selectedOldParticipant.last}\n Email: {selectedOldParticipant.email}\n Phone: {selectedOldParticipant.phone}\n Address: {selectedOldParticipant.address}\n Address 2: {selectedOldParticipant.address2}\n City: {selectedOldParticipant.city}\n State: {selectedOldParticipant.state}\n ZIP: {selectedOldParticipant.zip}\n Last Login Date: {selectedOldParticipant.lastlogindate ? dayjs(selectedOldParticipant.lastlogindate as string).format('MM-DD-YYYY hh:mm A') : 'Never'}\n Participant Source: {selectedOldParticipant.participantsource}\n Participant Contact Key: {selectedOldParticipant.participantcontactkey > 0 ? selectedOldParticipant.participantcontactkey : \"None\"}\n Current Winning Bids: {selectedOldParticipant.currentwinningbids}\n Number of checkouts: {selectedOldParticipant.numberofcheckouts}\n Authorized: {selectedOldParticipant.authorizedbidder ? 'YES' : 'NO'}\n {/* Number of Checkouts: {selectedOldParticipant.numberofcheckouts}\n Number of Integrated: {selectedOldParticipant.numberofintegrated} */}\n \n )}\n
\n \n \n
\n \n
\n {selectedNewParticipant && (\n <>\n New Participant Details\n Bidder Number: {selectedNewParticipant.biddernumber}\n Paddle Number: {selectedNewParticipant.paddlenumbertext}\n First Name: {selectedNewParticipant.first}\n Last Name: {selectedNewParticipant.last}\n Email: {selectedNewParticipant.email}\n Phone: {selectedNewParticipant.phone}\n Address: {selectedNewParticipant.address}\n Address 2: {selectedNewParticipant.address2}\n City: {selectedNewParticipant.city}\n State: {selectedNewParticipant.state}\n ZIP: {selectedNewParticipant.zip}\n\n {/* {selectedNewParticipant.userdefinedtitle1}: {selectedNewParticipant.userdefined1}\n {selectedNewParticipant.userdefinedtitle2}: {selectedNewParticipant.userdefined2}\n {selectedNewParticipant.userdefinedtitle3}: {selectedNewParticipant.userdefined3}\n {selectedNewParticipant.userdefinedtitle4}: {selectedNewParticipant.userdefined4}\n {selectedNewParticipant.userdefinedtitle5}: {selectedNewParticipant.userdefined5} */}\n Last Login Date: {selectedNewParticipant.lastlogindate ? dayjs(selectedNewParticipant.lastlogindate as string).format('MM-DD-YYYY hh:mm A') : 'Never'}\n Participant Source: {selectedNewParticipant.participantsource}\n Participant Contact Key: {selectedNewParticipant.participantcontactkey > 0 ? selectedNewParticipant.participantcontactkey : \"None\"}\n Current Winning Bids: {selectedNewParticipant.currentwinningbids}\n Number of checkouts: {selectedNewParticipant.numberofcheckouts}\n Authorized: {selectedNewParticipant.authorizedbidder ? 'YES' : 'NO'}\n\n {/* Number of Checkouts: {selectedNewParticipant.numberofcheckouts}\n Number of Integrated: {selectedNewParticipant.numberofintegrated} */}\n \n)}\n
\n \n Resulting Data\n\n \n \n \n \n \n \n \n \n \n \n \n Email: {selectedNewParticipant?.email }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Bidder Number: {selectedNewParticipant?.biddernumber}\n \n \n Last Login: {selectedNewParticipant?.lastlogindate ? dayjs(selectedNewParticipant.lastlogindate as string).format('MM-DD-YYYY hh:mm A') : 'Never'}\n \n \n Participant Source: {selectedNewParticipant?.participantsource}\n \n \n Contact Key: {selectedNewParticipant?.participantcontactkey > 0 ? selectedNewParticipant.participantcontactkey : \"None\"}\n \n \n Authorized: {selectedNewParticipant?.authorizedbidder ? 'YES' : 'NO'}\n \n Number of checkouts: {((selectedOldParticipant?.numberofcheckouts || 0) + (selectedNewParticipant?.numberofcheckouts || 0))}\n \n Current Winning Bids: {((selectedOldParticipant?.currentwinningbids || 0) + (selectedNewParticipant?.currentwinningbids || 0))}\n \n \n \n {/* \n \n Number of Checkouts: {((selectedOldParticipant?.numberofcheckouts || 0) + (selectedNewParticipant?.numberofcheckouts || 0))}\n \n \n \n \n Number of Integrated: {((selectedOldParticipant?.numberofintegrated || 0) + (selectedNewParticipant?.numberofintegrated || 0))}\n \n */}\n \n Submit\n \n \n \n
\n\n \n \n \n {\"Confirm Merge\"}\n \n \n Are you sure you want to merge \n {selectedOldParticipant ? ` ${selectedOldParticipant.first} ${selectedOldParticipant.last} ` : ' [old contact]'} \n into \n {selectedNewParticipant ? ` ${selectedNewParticipant.first} ${selectedNewParticipant.last}` : ' [new contact]'}? \n This operation cannot be undone. All bids/carts/checkouts will be moved to the \n {selectedNewParticipant ? ` ${selectedNewParticipant.first} ${selectedNewParticipant.last} ` : ' [new contact]'} \n record and \n {selectedOldParticipant ? ` ${selectedOldParticipant.first} ${selectedOldParticipant.last} ` : ' [old contact]'} \n will be permanently deleted.\n \n \n \n \n \n \n \n\n \n {\"Operation Result\"}\n \n \n {dialogMessage}\n \n \n \n \n \n \n\n
\n )\n}\nexport default ParticipantMergePage\n","import Paper from '@mui/material/Paper';\nimport InputBase from '@mui/material/InputBase';\nimport IconButton from '@mui/material/IconButton';\nimport SearchIcon from '@mui/icons-material/Search';\nimport { useState } from 'react';\n\nconst SearchBar = (props) => {\n const [searchText, setsearchText] = useState(\"\")\n const onKeyPress = (e) => {\n if (e.key === \"Enter\") {\n \n e.preventDefault();\n props.onClick(searchText)\n }\n }\n return (\n \n \n setsearchText(e.target.value)}\n onKeyPress={(e) => onKeyPress(e)}\n />\n props.onClick(searchText)}>\n \n \n \n );\n}\n\nexport default SearchBar","import React, {useState, useMemo, useEffect} from 'react'\nimport Box from '@mui/material/Box'\nimport Grid from '@mui/material/Grid'\nimport Typography from '@mui/material/Typography'\nimport Paper from '@mui/material/Paper'\nimport Stack from '@mui/material/Stack'\nimport {\n DataGridPremium,\n DataGridPremiumProps,\n GridToolbarContainer,\n GridToolbarExport,\n GridValueFormatterParams\n} from '@mui/x-data-grid-premium'\nimport {\n useFetchparticipentLinking,\n usePutParticipantLink,\n getParticpentLinkList\n} from '../../queries/useParticipantLinking'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useParams } from 'react-router'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport dayjs from 'dayjs'\nimport { formatMoney } from '../../util/formatHelpers'\nimport { makeStyles, Button } from '@material-ui/core'\nimport SearchBar from '../../components/common/inputs/SearchBar'\nimport axios from \"axios\";\ninterface Params {\n eventid: string\n}\n\nconst useStyle = makeStyles({\n root: {\n '& .MuiDataGrid-columnHeaderTitle': {\n overflow: 'visible',\n lineHeight: '1.43rem',\n whiteSpace: 'normal'\n }\n }\n})\n\nconst ParticipantsLinkingPage = () => {\n const [searchP, setsearchP] = useState({ipk:undefined, multi:undefined})\n const [rowsErrorMessage, setRowsErrorMessage] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [rows, setRows] = useState([])\n const onClickMultiSearch = (searchString) => {\n setsearchP({ipk:null, multi:searchString})\n }\n const onClickIPKSearch = (ipk) => {\n setsearchP({ipk:ipk, multi:null})\n }\n\n const history = useHistory()\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const event = useEventState()\n const putLink = usePutParticipantLink()\n\n //todo: any decleration is not a great way to do this but going for speed\n const propPass: any = useLocation()\n console.log(propPass)\n const participantinfo = propPass.state?.data\n\n useEffect(() => {\n setIsLoading(true)\n getLinkingData()\n }, [searchP])\n\n const getLinkingData = async () => {\n var body = { eventid: eventid, participantid: participantinfo.participantid, }\n\n if (searchP.multi) {\n body['search'] = searchP.multi\n }\n\n if (searchP.ipk) {\n body['contactid'] = Number(searchP.ipk)\n }\n\n const { data } = await axios.post('/participantlinklookup', body)\n const parsedData = JSON.parse(data.jsonString)\n\n if (parsedData?.contactdata?.length > 0 && parsedData.contactdata[0].message) {\n setRows([])\n setRowsErrorMessage(parsedData.contactdata[0].message)\n }\n else {\n setRows(parsedData?.contactdata)\n setRowsErrorMessage('')\n }\n setIsLoading(false)\n }\n\n const columns = [\n {\n field: 'buttons',\n headerName: 'Link',\n width: 150,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n return (\n {\n console.log('before useputparticipant on linking page')\n\n putLink.mutate(\n {\n eventid: event.eventId,\n contactid: params.row.contactid,\n participantid: participantinfo.participantid\n\n },\n {\n onSuccess: (data) => {\n console.log('on success useputparticipant on linking page')\n console.log(data)\n history.push(\n '/auction/' + event.eventId + '/participantslinking'\n )\n }\n }\n )\n }}>\n Link\n \n )\n }\n },\n { field: 'rownumber', headerName: 'rownumber' },\n {\n field: 'contactid',\n type: 'string',\n headerName: 'Contact ID',\n width: 100,\n editable: false\n },\n {\n field: 'first',\n type: 'string',\n headerName: 'First Name',\n width: 200,\n editable: true\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last Name',\n width: 200,\n editable: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200,\n editable: false\n },\n {\n field: 'first2',\n type: 'string',\n headerName: 'First Name 2',\n width: 200,\n editable: true\n },\n {\n field: 'last2',\n type: 'string',\n headerName: 'Last Name 2',\n width: 200,\n editable: true\n },\n {\n field: 'email2',\n type: 'string',\n headerName: 'Email 2',\n width: 200,\n editable: false\n },\n {\n field: 'phone',\n type: 'string',\n headerName: 'Phone',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'cell',\n type: 'string',\n headerName: 'Cell',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'company',\n type: 'string',\n headerName: 'Company',\n width: 200,\n editable: true\n },\n {\n field: 'address1',\n type: 'string',\n headerName: 'Address',\n width: 200,\n editable: true\n },\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle Number',\n width: 200,\n editable: true\n }\n ]\n const classes = useStyle()\n\n return (\n
\n \n \n \n {`Participant # ${participantinfo.participantid}`}\n \n \n \n {`${participantinfo.first} ${participantinfo.last}`}\n {participantinfo.address}\n \n \n \n {`${participantinfo.email}`}\n {participantinfo.city}\n \n \n \n {participantinfo.phone}\n {`${participantinfo.state} ${participantinfo.zip}`}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n (\n \n {rowsErrorMessage?.length > 0 ? rowsErrorMessage : 'No Rows'}\n \n ),\n NoResultsOverlay: () => (\n \n {rowsErrorMessage?.length > 0 ? rowsErrorMessage : 'No Rows'}\n \n )\n }}\n getRowId={(row) => row.rownumber}\n className={classes.root}\n autoHeight\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n columnVisibilityModel={{\n // Hide column rownumber the other columns will remain visible\n rownumber: false\n }}\n />\n
\n )\n}\nexport default ParticipantsLinkingPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useImportParticipants = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/importparticipants`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['importparticipants'])\n }\n })\n}\n\nexport const useParticipantsImportFields = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`importparticipants`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['importparticipants'])\n }\n })\n}\n\nexport const useParticipantsImportDMPList = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`importdmpparticipants`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['importdmpparticipants'])\n }\n })\n}\n\n\nexport const useParticipantsImportDataMiner = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`importdmpparticipants`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['importdmpparticipants'])\n }\n })\n}\n\n\n\n","import { DropzoneDialog } from 'material-ui-dropzone'\nimport React, {useEffect, useState} from 'react'\nimport exportFromJSON from 'export-from-json'\nimport { useForm } from 'react-hook-form'\nimport XLSX from 'xlsx'\nimport styled from \"@emotion/styled\"\nimport {Button, Box, Dialog, DialogContent, DialogContentText, DialogActions, List} from '@material-ui/core'\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport styles from './ImportPage.module.css'\nimport download from 'downloadjs';\nimport XlsxPopulate from \"xlsx-populate\";\nimport { saveAs } from \"file-saver\";\nimport {\n Typography,\n StepLabel,\n Step,\n Stepper,\n ListItemText,\n ListItem,\n Grid,\n ListItemButton,\n FormControl, Select, MenuItem\n} from \"@mui/material\";\nimport Dropzone from \"react-dropzone\";\nimport LoadingBackdrop from \"../../../components/common/LoadingBackdrop\";\nimport {\n useImportParticipants,\n useParticipantsImportFields,\n useParticipantsImportDMPList,\n useParticipantsImportDataMiner\n} from \"../../../pages/ParticipantsPage/ImportPage/useImportParticipants\"\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useHistory} from \"react-router-dom\";\nimport {DataGridPro} from \"@mui/x-data-grid-pro\";\nimport {emailRegex} from \"../../../util/formValidation\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../../queries/useAutoEvent\";\nimport {useMutation, useQueryClient} from \"react-query\";\nimport axios from \"axios\";\n\ntype FormData = {\n isDMPMethod: boolean\n dmp: string\n dmpsource: string\n // first: string\n // last: string\n // email: string\n // phone: string\n // address1: string\n // address2: string\n // city: string\n // state: string\n // zip: string\n workbookSelection: string\n}\n\n\n\ninterface Params {\n eventid: string\n importtype: string\n}\n\nconst ImportPage = () => {\n \n const { eventid, importtype } = useParams()\n const queryClient = useQueryClient()\n useAutoEvent(eventid)\n\n const source = importtype === 'dmp' ? 'Select DataMiner Source' : 'Select Source'\n const steps = [source, 'Match Fields', 'Import Participants'];\n\n // const event = useEventState()\n const history = useHistory()\n const formMethods = useForm()\n const {watch, getValues, setValue} = formMethods\n const [workbook, setWorkBook] = useState(null)\n const [isUploaderOpen, setIsUploaderOpen] = useState(false)\n const [selectedFile, setSelectedFile] = useState(null)\n const [selectedWorkbookSheet, setSelectedWorkbookSheet] = useState(null)\n const [tableData, setTableData] = useState(null)\n const [finalTableData, setFinalTableData] = useState([])\n const [jsonString, setJsonString] = useState(null)\n const [jsonErrorString, setJsonErrorString] = useState(null)\n const [jsonFinalString, setJsonFinalString] = useState(null)\n const [dataKeys, setDataKeys] = useState(null)\n const [selectedField, setSelectedField] = useState<{ value: string, label: string }[]>([{ value: 'First', label: 'First' }, { value: 'Last', label: 'Last' }, { value: 'Phone', label: 'Phone' }, { value: 'Email', label: 'Email' }, { value: 'Address1', label: 'Address1' }, { value: 'Address2', label: 'Address2' }, { value: 'City', label: 'City' }, { value: 'State', label: 'State' }, { value: 'Zip', label: 'Zip' }])\n const [isLoading, setIsLoading] = useState(false)\n const [activeStep, setActiveStep] = useState(0);\n const [nextEnabled, setNextEnabled] = useState(false);\n const [checkWatch, setCheckWatch] = useState(0);\n const [skipped, setSkipped] = useState(new Set());\n const [dropOptions, setDropOptions] = useState(new Set());\n const importParticipants = useImportParticipants();\n const importParticipantsFields = useParticipantsImportFields();\n const importParticipantsDMPList = useParticipantsImportDMPList();\n const importParticipantsDataMiner = useParticipantsImportDataMiner();\n const importParticipantsSpreadsheet = useImportParticipants();\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [errorList, setErrorList] = useState(null)\n\n\n const [fieldData, setFieldData] = useState([])\n const [displayFieldData, setDisplayFieldData] = useState([])\n const [bypassFieldData, setBypassFieldData] = useState([])\n const [requiredFields, setRequiredFields] = useState([])\n const [dmpList, setDMPList] = useState([])\n const [finalColumns, setfinalColumns] = useState< {field: string, type: string, headerName: string, width: number}[]>()\n\n const batchIdWatch = watch('dmpsource')\n\n useEffect(() => {\n loadFieldsData(batchIdWatch)\n setNextEnabled(true)\n }, [batchIdWatch])\n\n useEffect(() => {\n if (activeStep === 1) {\n var enabledNext = true\n requiredFields.forEach(item => {\n if (getValues(item) === 'none') {\n enabledNext = false\n }\n })\n setNextEnabled(enabledNext)\n }\n }, [checkWatch])\n\n useEffect(() => {\n loadFieldsData(null)\n\n if (importtype === 'dmp') {\n loadDMPList()\n }\n }, [])\n\n const onClickSelect = () => {\n setCheckWatch(checkWatch+1)\n }\n\n // useEffect(() => {\n // const field = \"dnpsource\"\n // setValue(field, dmpList[0].batch)\n // }, [dmpList])\n\n enum importSteps {\n selectSource = 0,\n matchFields = 1,\n importParticipants = 2\n }\n\n const setupDropOptions = (opts) => {\n const newOptions = new Set();\n opts.forEach((key) => {\n newOptions.add(key)\n })\n setDropOptions(newOptions)\n }\n\n const isStepOptional = (step) => {\n return false;\n }\n\n const closeDialog = () => {\n history.goBack()\n setDialogMsg('')\n }\n\n const generateErrorReport = () => {\n saveAsExcel(errorList)\n }\n\n const loadDMPList = async () => {\n await importParticipantsDMPList.mutateAsync({\n eventid: Number(eventid),\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"success\") {\n setDMPList(json.batchlist)\n }\n }\n })\n }\n\n const loadFieldsData = async (batchId: any) => {\n const body = (batchId ? { eventid: Number(eventid), batchid: batchId } : { eventid: Number(eventid) })\n const callType = (batchId ? importParticipantsDMPList : importParticipantsFields)\n await callType.mutateAsync(body,{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n console.log(json)\n if (json.status === \"success\") {\n const fieldConvertedData = json.fieldlist.map(field => {\n return {field: field.fieldmatch, header: field.title, required: field.required, display: field.display, minlength: field.minlength, maxlength: field.maxlength}\n })\n\n\n\n setFieldData(fieldConvertedData)\n setDisplayFieldData(fieldConvertedData.filter((v) => v.display))\n setBypassFieldData(fieldConvertedData.filter((v) => v.display === false))\n\n setRequiredFields(fieldConvertedData.filter((v) => (v.display === true && v.required === true)).map(requiredWatch => {\n return requiredWatch.field\n }))\n }\n }\n })\n }\n\n const canDisplayField = (field) => {\n // console.log(fieldData)\n // console.log(field)\n // const filteredFieldData = fieldData.filter((v) => v.field === field)\n // if (filteredFieldData && filteredFieldData.length > 0) {\n // return filteredFieldData[0].display\n // }\n // return false\n return field\n }\n\n const handleNext = async () => {\n if (activeStep === 0 && importtype === 'dmp') {\n setIsLoading(true)\n await importParticipantsDMPList.mutateAsync({\n eventid: Number(eventid),\n batchid: batchIdWatch\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n let rowObject = json.batchdata.map(({rownumber, ...rest}) => ({...rest}));\n // let rowObject = json.batchdata\n const keys = rowObject && rowObject.length > 0 ? Object.keys(rowObject[0]) : ['']\n const filteredKey = keys.filter((key) => canDisplayField(key))\n setDataKeys(filteredKey)\n setupDropOptions(filteredKey)\n setTableData(\n rowObject.slice(0, 5).map((r, i) => {\n return {...(r as object), id: i}\n })\n )\n processKeys(filteredKey)\n const data = JSON.stringify(rowObject)\n setJsonString(data)\n }\n setIsLoading(false)\n }\n })\n }\n\n if (activeStep === 2) {\n const batchId = batchIdWatch\n const body = (batchId ? { eventid: Number(eventid), batchid: batchId, participantsData: JSON.parse(jsonFinalString) } : { eventid: Number(eventid), participantsData: JSON.parse(jsonFinalString) })\n const callType = (batchId ? importParticipantsDataMiner : importParticipantsSpreadsheet)\n setIsLoading(true)\n await callType.mutateAsync(body,{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n setErrorList(json.errorlist)\n\n if (json.message.length > 0) {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Import has completed successfully.')\n }\n queryClient.invalidateQueries(['participant', Number(eventid)])\n setIsLoading(false)\n }\n })\n }\n\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\n };\n\n function getSheetData(data, header) {\n var fields = Object.keys(data[0]);\n var sheetData = data.map(function (row) {\n return fields.map(function (fieldName) {\n return row[fieldName] ? row[fieldName] : \"\";\n });\n });\n sheetData.unshift(header);\n return sheetData;\n }\n\n async function saveAsExcel(data) {\n let header = Object.keys(data[0]);\n XlsxPopulate.fromBlankAsync().then(async (workbook) => {\n const sheet1 = workbook.sheet(0);\n const sheetData = getSheetData(data, header);\n const totalColumns = sheetData[0].length;\n\n sheet1.cell(\"A1\").value(sheetData);\n const range = sheet1.usedRange();\n const endColumn = String.fromCharCode(64 + totalColumns);\n sheet1.row(1).style(\"bold\", true);\n sheet1.range(\"A1:\" + endColumn + \"1\").style(\"fill\", \"BFBFBF\");\n range.style(\"border\", true);\n return workbook.outputAsync().then((res) => {\n saveAs(res, \"error_report.xlsx\");\n });\n });\n }\n\n const handleBack = () => {\n setNextEnabled(true)\n setActiveStep(activeStep - 1);\n };\n\n const handleReset = () => {\n setActiveStep(0);\n };\n\n const columns = dataKeys?.map((key) => {\n return {\n field: key,\n type: 'string',\n headerName: key,\n width: 120\n }\n })\n\n const finalcolumns = displayFieldData.map((key) => {\n return {\n field: key.field,\n type: 'string',\n headerName: key.header,\n width: 130\n }\n })\n\n const selectDMPOptions =\n dmpList?.map((obj) => {\n return { value: obj.batchid, label: obj.batch }\n }) || []\n\n const selectOptions =\n dataKeys?.map((obj) => {\n return { value: obj, label: obj }\n }) || []\n\n const onSubmit = async (formData: FormData) => {\n console.log('onsubmit')\n console.log(activeStep)\n const formDataKeys = Object.keys(formData)\n\n if (activeStep === 2) {\n let errorJson = []\n let goodJson = []\n const dataObject = JSON.parse(jsonString)\n\n dataObject.forEach(item => {\n // var errorItem = null\n var addItem = {}\n // console.log(item)\n\n bypassFieldData.forEach((v) => {\n addItem[v.field] = item[v.field]\n })\n\n // console.log(formDataKeys)\n formDataKeys.forEach(formKey => {\n if (formKey === 'dmpsource' || formKey === 'workbookSelection') {\n return\n }\n const value = formData[formKey]\n if (value !== 'none') {\n const fieldDataFiltered = fieldData.filter((v, i) => v.field === formKey)\n if (fieldDataFiltered && fieldDataFiltered?.length > 0) {\n addItem[formKey] = item[value]?.toString()\n }\n }\n })\n\n goodJson.push(addItem)\n })\n\n setFinalTableData(\n goodJson.map((r, i) => {\n return { ...(r as object), id: i }\n })\n )\n const data = JSON.stringify(goodJson)\n setJsonFinalString(data)\n }\n }\n\n const getSheet = () => {\n const workbookSelection1 = watch('workbookSelection')\n setSelectedWorkbookSheet(workbookSelection1)\n processWorksheet(workbookSelection1)\n }\n\n const processWorksheet = (sheetToProcess: string) => {\n workbook.SheetNames.forEach((sheet) => {\n if (sheet === sheetToProcess) {\n let rowObject = XLSX.utils.sheet_to_json(workbook.Sheets[sheet],{raw: true, defval:null})\n const keys = rowObject && rowObject.length > 0 ? Object.keys(rowObject[0]) : ['']\n\n setDataKeys(keys)\n setupDropOptions(keys)\n setTableData(\n rowObject.slice(0, 5).map((r, i) => {\n return {...(r as object), id: i}\n })\n )\n const data = JSON.stringify(rowObject)\n console.log(data)\n setJsonString(data)\n }\n })\n }\n\n const processKeys = (keys) => {\n // console.log('keys' + keys)\n keys.forEach(key => {\n fieldData.map((fieldD) => {\n const currentFieldValue = getValues(fieldD.field)\n if (!currentFieldValue && key.toLowerCase().includes(fieldD.field) || fieldD.field.toLowerCase().includes(key)) {\n // console.log('setting - ' + fieldD.field + ' value - ' + key)\n setValue(fieldD.field, key);\n }\n }\n )})\n\n\n fieldData.map((fieldD) => {\n const fieldValue = getValues(fieldD.field)\n if (fieldValue === undefined || fieldValue?.length === 0) {\n setValue(fieldD.field, 'none');\n }\n })\n }\n\n const onSave = async (files: File[]) => {\n if (files && files.length > 0) {\n setIsUploaderOpen(false)\n setSelectedFile(files[0])\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result\n\n const loadedWorkbook = XLSX.read(data, {\n type: 'binary'\n })\n setWorkBook(loadedWorkbook)\n\n const sheet = loadedWorkbook.SheetNames[0]\n setSelectedWorkbookSheet(sheet)\n let rowObject = XLSX.utils.sheet_to_json(loadedWorkbook.Sheets[sheet], {raw: true, defval:null})\n const keys = rowObject && rowObject.length > 0 ? Object.keys(rowObject[0]) : ['']\n\n // Process matches on keys\n processKeys(keys)\n setDataKeys(keys)\n setupDropOptions(keys)\n setTableData(\n rowObject.slice(0, 5).map((r, i) => {\n return { ...(r as object), id: i }\n })\n )\n const jsonData = JSON.stringify(rowObject)\n console.log(jsonData)\n setJsonString(jsonData)\n }\n fileReader.readAsBinaryString(files[0])\n setNextEnabled(true)\n }\n else {\n setSelectedFile(null)\n setNextEnabled(false)\n }\n }\n\n return (\n
\n

Import Participants

\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n {(errorList && errorList.length > 0) &&\n \n }\n \n \n \n \n\n \n \n \n {steps.map((label, index) => {\n const stepProps: { completed?: boolean } = {};\n const labelProps: {\n optional?: React.ReactNode;\n } = {};\n if (isStepOptional(index)) {\n labelProps.optional = (\n Optional\n )\n }\n\n return (\n \n {label}\n \n )\n })}\n \n\n {activeStep === steps.length ? (\n <>\n {/**/}\n {/* All steps completed - you're finished*/}\n {/**/}\n {/**/}\n {/* */}\n {/* */}\n {/**/}\n \n ) : (\n <>\n \n {(activeStep === importSteps.selectSource && importtype === \"dmp\") && (\n <>\n \n \n \n \n \n \n )}\n {(activeStep === importSteps.selectSource && importtype !== \"dmp\") && (\n
\n \n {({ getRootProps,\n getInputProps,\n isDragActive,\n isDragAccept,\n isDragReject,\n acceptedFiles,\n fileRejections\n }) => (\n
\n
\n \n {isDragAccept && (

File is a valid Excel. Go ahead and drop.

)}\n {!isDragActive && (

Drag 'n' drop Excel files here, or click to select Excel files

)}\n {isDragReject && (

File cannot be dropped. It's an invalid type.

)}\n (The file must be of type .xls, .xlsx, or .csv.)\n
\n
\n {workbook && workbook.SheetNames.length === 1 && selectedFile && selectedFile?.name && (

Click the 'NEXT' button below to continue processing '{selectedFile && selectedFile?.name} - {selectedFile?.size} bytes'

)}\n {fileRejections && fileRejections.length > 0 && (

The file type is invalid. The file must be of type .xls, .xlsx, or .csv.

)}\n {workbook && workbook.SheetNames?.length > 1 && (

Click the 'NEXT' button below to continue processing the sheet named '{selectedWorkbookSheet}'

)}\n {workbook && workbook.SheetNames.length > 1 &&\n \n }\n
\n
\n )}\n \n
\n )}\n
\n {activeStep === importSteps.matchFields && (\n
\n
\n {displayFieldData.map((fieldData) =>\n {onClickSelect()}}\n // required={fieldData.required}\n rules={{\n validate: (val) => (fieldData.required && (val === 'none' || val?.length === 0)) ? fieldData.header + \" is required.\" : true,\n }}\n />\n )}\n
\n
\n
\n \n Preview Uploaded File\n \n
\n \n
\n
\n )}\n {activeStep === importSteps.importParticipants && (\n <>\n
\n \n
\n \n )}\n\n \n {activeStep > importSteps.selectSource && (\n \n Back\n \n )}\n\n \n \n \n \n )}\n \n \n
\n )\n}\n\nexport default ImportPage\n","import axios from 'axios'\nimport React, { useEffect, useState } from 'react'\n\nimport { getConfig } from '../AppConfig'\n\nconst HttpInterceptor = () => {\n const [authReqInterceptor, setAuthReqInterceptor] = useState(undefined)\n const [jsonResponseInterceptor, setJsonResponseInterceptor] =\n useState(undefined)\n const [urlInterceptor, setUrlInterceptor] = useState(undefined)\n // eslint-disable-next-line no-undef\n const { apiUrl } = getConfig()\n\n const addAuthInterceptor = () => {\n const interceptor = axios.interceptors.request.use(\n (config) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!config.headers.hasOwnProperty('Authorization')) {\n const token = localStorage.getItem('tokenadmin')\n if (token) {\n config.headers.Authorization = 'Bearer ' + token\n }\n } else if (!config.headers.Authorization) {\n delete config.headers.Authorization\n }\n return config\n },\n (error) => {\n return Promise.reject(error)\n }\n )\n setAuthReqInterceptor(interceptor)\n }\n\n const addParseResponseInterceptor = () => {\n const interceptor = axios.interceptors.response.use(\n (res: any) => {\n // eslint-disable-next-line no-prototype-builtins\n return res.data?.jsonInfo ? JSON.parse(res.data.jsonInfo) : res\n },\n (error) => {\n return Promise.reject(error)\n }\n )\n setJsonResponseInterceptor(interceptor)\n }\n\n const addBaseUrlInterceptor = () => {\n const interceptor = axios.interceptors.request.use(\n (config) => {\n if (!config.url.includes('http')) {\n config.baseURL = apiUrl\n }\n return config\n },\n (error) => {\n return Promise.reject(error)\n }\n )\n setUrlInterceptor(interceptor)\n }\n\n const removeAuthInterceptor = () => {\n axios.interceptors.request.eject(authReqInterceptor)\n setAuthReqInterceptor(undefined)\n }\n\n const removeBaseUrlInterceptor = () => {\n axios.interceptors.request.eject(urlInterceptor)\n setAuthReqInterceptor(undefined)\n }\n\n const removeJsonResponseInterceptor = () => {\n axios.interceptors.request.eject(jsonResponseInterceptor)\n setJsonResponseInterceptor(undefined)\n }\n\n useEffect(() => {\n addAuthInterceptor()\n addBaseUrlInterceptor()\n addParseResponseInterceptor()\n return () => {\n removeAuthInterceptor()\n removeBaseUrlInterceptor()\n removeJsonResponseInterceptor()\n }\n }, [])\n\n return \n}\n\nexport default HttpInterceptor\n","import {\n combineReducers,\n configureStore,\n getDefaultMiddleware\n} from '@reduxjs/toolkit'\n\nimport auth from '../slices/authSlice'\nimport event from '../slices/eventSlice'\nimport evt from '../slices/evtSlice'\nimport org from '../slices/orgSlice'\n\n\nconst rootReducer = combineReducers({\n auth,\n event,\n org,\n evt\n})\n\nexport default configureStore({\n reducer: rootReducer,\n middleware: [...getDefaultMiddleware()],\n // eslint-disable-next-line no-undef\n devTools: process.env.NODE_ENV === 'development'\n})\n\nexport type AppState = ReturnType\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface BidMaintenance {\n rownumber: number\n historyid: number\n biddername: string\n itemnumber: string\n bidtime: string\n bidtype: string\n quantity: number\n bidamount: number\n bidautoamount: number\n checkoutcompleted: boolean\n itembiddingclosed: number\n active: boolean\n}\n\nconst BidMaintenanceDefaults = {\n rownumber: 0,\n historyid: 0,\n biddername: \"\",\n itemnumber: \"\",\n bidtime: \"\",\n bidtype: \"\",\n quantity: 0,\n bidamount: 0,\n bidautoamount: 0,\n checkoutcompleted: false,\n itembiddingclosed: 0,\n active: true\n}\n\nexport const useFetchBidMaintenance = (eventIdvalue) => {\n return useQuery(\n ['bidmaintenance', eventIdvalue],\n () => globalBidMaintenanceFetcher(eventIdvalue),\n {\n staleTime: 120000,\n placeholderData: [BidMaintenanceDefaults],\n keepPreviousData: true\n }\n )\n}\n\nexport const useUpdateBidMaintenance = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`bidmaintenance`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['bidmaintenance'])\n }\n })\n}\n\nexport const globalBidMaintenanceFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/bidmaintenance', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.bids as BidMaintenance[]\n}\n","import React, { useState } from 'react'\nimport styles from './BidMaintenancePage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from \"@material-ui/core\";\nimport {Delete} from \"@material-ui/icons\";\nimport {useFetchBidMaintenance, useUpdateBidMaintenance} from \"../../queries/useFetchBidMaintenance\";\nimport dayjs from \"dayjs\";\nimport {DataGridPremium, GridValueFormatterParams, GridCellParams} from \"@mui/x-data-grid-premium\";\n\ninterface Params {\n eventid: string\n}\n\nconst BidMaintenancePage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const { data, isLoading } = useFetchBidMaintenance(Number(eventid))\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0, title: \"\" })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n const updateBidMaintenanceMutation = useUpdateBidMaintenance()\n\n var bidmaintRows = []\n if (data) {\n bidmaintRows = data.map((bm, index) => {\n return { ...bm, id: bm.historyid }\n })\n }\n\n // scotty\n const handleDelete = (params: GridCellParams) => {\n\n setDialogObj({\n title: 'Are you sure you want to delete the following bid?',\n id: Number(params.id),\n msg: params.row.biddername + \" | \" + params.row.itemname + \" | $\" + params.row.bidamount,\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventState.eventId),\n \"historyid\": id,\n \"delete\": true\n }\n const { data: response } = await updateBidMaintenanceMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n }\n })\n }\n\n const columns : any = [\n {\n field: 'action',\n headerName: 'Delete',\n width: 70,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n renderCell: (params) => (\n <>\n {!params.row.checkoutcompleted &&\n { handleDelete(params) }}>\n \n \n }\n \n )\n },\n {\n field: 'rownumber',\n hide: true\n },\n {\n field: 'biddername',\n type: 'string',\n headerName: 'Bidder',\n width: 200\n },\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n width: 120\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Item Name',\n width: 200\n },\n {\n field: 'bidtype',\n headerName: 'Type',\n width: 150,\n sortable: false,\n },\n {\n field: 'bidtime',\n headerName: 'Bid Date',\n width: 200,\n sortable: true,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'quantity',\n headerName: 'Quantity',\n width: 120,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n },\n {\n field: 'bidamount',\n headerName: 'Current Bid',\n width: 150,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n },\n {\n field: 'bidautoamount',\n headerName: 'Auto Bid',\n width: 120,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n }\n ]\n\n return (\n
\n

Bid Maintenance

\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.title}\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default BidMaintenancePage\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface AuctionStatus {\n rownumber: number\n itemid: number\n biddername: string\n itemname: string\n itemnumber: string\n bidtime: string\n bidtype: string\n quantity: number\n bidamount: number\n bidautoamount: number\n checkoutcompleted: boolean\n itembiddingclosed: number\n active: boolean\n qtyunlimited: boolean\n butitnowonly: boolean\n open: string\n closing: string\n bidstatus: string\n buyitnowprice: number\n}\n\nconst AuctionStatusDefaults = {\n rownumber: 0,\n itemid: 0,\n biddername: \"\",\n itemname: \"\",\n itemnumber: \"\",\n bidtime: \"\",\n bidtype: \"\",\n quantity: 0,\n bidamount: 0,\n bidautoamount: 0,\n checkoutcompleted: false,\n itembiddingclosed: 0,\n active: true,\n qtyunlimited: true,\n butitnowonly: true,\n open: \"\",\n closing: \"\",\n bidstatus: \"\",\n buyitnowprice: 0\n}\n\nexport const useFetchAuctionStatus = (eventIdvalue) => {\n return useQuery(\n ['auctionstatus', eventIdvalue],\n () => globalAuctionStatusFetcher(eventIdvalue),\n {\n staleTime: 120000,\n placeholderData: [AuctionStatusDefaults],\n keepPreviousData: true\n }\n )\n}\n\nexport const useUpdateAuctionStatus = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`auctionstatus`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['auctionstatus'])\n }\n })\n}\n\nexport const globalAuctionStatusFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/currentstatus', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.statuslist as AuctionStatus[]\n}\n","import React, { useState } from 'react'\nimport styles from './AuctionStatusPage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from \"@material-ui/core\";\nimport {Delete} from \"@material-ui/icons\";\nimport {useFetchAuctionStatus, useUpdateAuctionStatus} from \"../../queries/useFetchAuctionStatus\";\nimport dayjs from \"dayjs\";\nimport {DataGridPremium, GridValueFormatterParams} from \"@mui/x-data-grid-premium\";\n\n\ninterface Params {\n eventid: string\n}\n\nconst AuctionStatusPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const { data, isLoading } = useFetchAuctionStatus(Number(eventid))\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n const updateAuctionStatusMutation = useUpdateAuctionStatus()\n\n var bidmaintRows = []\n if (data) {\n bidmaintRows = data.map((bm, index) => {\n return { ...bm, id: bm.itemid }\n })\n }\n\n \n\n \n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n \n\n\n const columns: any = [\n {\n field: 'rownumber',\n hide: true\n },\n {\n field: 'biddername',\n type: 'string',\n headerName: 'Bidder',\n width: 200\n },\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n width: 120\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Item Name',\n width: 300\n },\n {\n field: 'bidtime',\n headerName: 'Bid Date',\n width: 200,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'bidtype',\n headerName: 'Type',\n width: 150,\n },\n {\n field: 'quantity',\n headerName: 'Quantity',\n width: 120,\n align: \"right\",\n },\n {\n field: 'bidamount',\n headerName: 'Current Bid',\n width: 150,\n align: \"right\",\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n },\n {\n field: 'buyitnowprice',\n headerName: 'Buy it Now',\n width: 150,\n align: \"right\",\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n }\n ]\n\n return (\n
\n

Auction Status

\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n row.rownumber} \n autoHeight\n rows={bidmaintRows}\n columns={columns}\n loading={isLoading}\n hideFooterSelectedRowCount={true}\n // density={'compact'}\n pagination={true}\n />\n
\n )\n}\n\nexport default AuctionStatusPage\n","import { useState, useEffect } from 'react'\nimport styles from './LiveAuctionPage.module.css'\nimport { useParams } from 'react-router'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useEventState } from '../../slices/eventSlice'\nimport {\n useFetchLiveAuctionItems,\n useUpdateLiveBid,\n useClearLiveBid,\n useConfirmLiveAuction\n} from '../../queries/useActionItemsFetch'\nimport {\n DataGridPro,\n GridCellParams,\n useGridApiRef,\n GridValueFormatterParams\n} from '@mui/x-data-grid-pro'\nimport Box from '@mui/material/Box';\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText\n} from '@mui/material'\nimport { formatMoney } from '../../util/formatHelpers'\nimport { Autocomplete, TextField } from '@mui/material'\nimport clsx from 'clsx';\n\nimport {\n GridRenderEditCellParams,\n useGridApiContext\n} from '@mui/x-data-grid-pro'\nimport { useCallback } from 'react'\ninterface Params {\n eventid: string\n}\n\nconst LiveAuctionPage = () => {\n const { eventid } = useParams()\n\n useAutoEvent(eventid)\n const eventState = useEventState()\n const { data, isLoading } = useFetchLiveAuctionItems(Number(eventid))\n const manualBidMutation = useUpdateLiveBid()\n const clearBidMutation = useClearLiveBid()\n const [liveBidError, setLiveBidError] = useState('')\n const [rows, setRows] = useState([])\n const [participantList, setParticipantList] = useState([])\n const apiRef = useGridApiRef()\n const [clearedRowIds, setClearedRowIds] = useState([])\n const confirmmutation = useConfirmLiveAuction()\n const [dialogMsg, setDialogMsg] = useState('')\n const editableFields = ['bidderparticipantid', 'lastbid'] // Add here all your editable fields\n const [rowsToSave, setRowsToSave] = useState({});\n const [isLoadingSpinner, setIsLoading] = useState(false);\n\n\n useEffect(() => {\n if (data && data.LiveAuctionitemlist) {\n setRows(data.LiveAuctionitemlist)\n setParticipantList(data.bidderlist)\n\n // Initialize clearedRowIds with ids of blank rows\n const blankRowIds = data.LiveAuctionitemlist.filter(\n (row) => row.bidderparticipantid <= 0\n ).map((row) => row.itemid)\n setClearedRowIds(blankRowIds)\n }\n }, [data])\n\n const getBidderOptions = () => {\n //console.log(participantList)\n return participantList?.map((item) => {\n return { value: item.bidderparticipantid, label: item.biddername }\n })\n }\n const handleRowEditCommit = (newRow, oldRow) => {\n const updatedRow = { ...newRow, isNew: false } \n console.log(rowsToSave)\n if(rowsToSave && rowsToSave[0] && rowsToSave[0].itemid === newRow.itemid ){\n if (updatedRow.lastbid > 0 && updatedRow.bidderparticipantid) {\n\n handleSave(updatedRow)\n return updatedRow\n }\n }\n return oldRow\n\n }\n const handleRowUpdateError = (error) => {\n console.log(error)\n }\n const handleSave = (row) => {\n setClearedRowIds((prevIds) => prevIds.filter((id) => id !== row.itemid))\n try {\n console.log('mutate')\n var part = participantList.find(\n (p) => p.bidderparticipantid === row.bidderparticipantid\n )\n manualBidMutation.mutate(\n {\n eventid: eventState.eventId,\n itemid: row.itemid,\n amount: row.lastbid,\n bidderparticipantid: part.bidderparticipantid\n },\n {\n onSuccess: (response) => {\n const json = JSON.parse(response.data.jsonString)\n console.log(json)\n if (json.status === 'failed') {\n setLiveBidError(json.message)\n } else {\n setLiveBidError('')\n }\n setRowsToSave({});\n setIsLoading(false);\n }\n }\n )\n } catch {\n setRowsToSave({});\n setIsLoading(false);\n }\n \n }\n // If a row is cleared, add it to clearedRowIds\n const handleClear = (row) => {\n setClearedRowIds((prevIds) => [...prevIds, row.itemid])\n // Clear the row here...\n\n clearBidMutation.mutate(\n {\n eventid: eventState.eventId,\n historyid: row.historyid\n },\n {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n console.log(json)\n if (json.status === 'failed') {\n setLiveBidError(json.message)\n } else {\n setLiveBidError('')\n }\n }\n }\n )\n }\n \n const onButtonClick = (e, cellParams) => {\n //e.stopPropagation()\n \n const isSaveButton = clearedRowIds.includes(cellParams.row.itemid)\n if (isSaveButton) {\n setRowsToSave([cellParams.row]);\n apiRef.current.stopRowEditMode({ id: cellParams.row.itemid });\n\n } else {\n handleClear(cellParams.row)\n }\n }\n\n const sendWinningBid = () => {\n confirmmutation.mutate(\n {\n eventid: eventState.eventId\n },\n {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === 'failure') {\n setDialogMsg(json.message)\n } else {\n setDialogMsg(\n 'Successfully notified winning bidders and added the items to their carts. '\n )\n }\n }\n }\n )\n }\n \n const columns = [\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n width: 150\n },\n {\n field: 'name',\n headerName: 'Name',\n width: 300,\n sortable: false\n },\n {\n field: 'bidderparticipantid',\n headerName: 'Bidder',\n width: 300,\n sortable: false,\n editable: true,\n renderEditCell: (params) => (\n op.value == val.value}\n onChange={(event, newValue) => {\n //event.stopPropagation();\n if (typeof newValue === 'object' && newValue !== null) {\n apiRef.current.setEditCellValue({\n id: params.id,\n field: params.field,\n value: newValue.value\n })\n }\n }}\n renderInput={(inputParams) => (\n \n )}\n />\n ),\n valueFormatter: (params: GridValueFormatterParams) => {\n var bidderOptions = getBidderOptions();\n if (bidderOptions && bidderOptions.length > 0) {\n var part = bidderOptions.find((p) => p.value === params.value);\n return part ? part.label : '(Double click to add bidder)';\n } else {\n return '';\n }\n } ,\n cellClassName: (params: GridCellParams) => {\n console.log(params)\n if (params.value == null) {\n return '';\n }\n \n return clsx('super-app', {\n negative: params.value < 0,\n });\n } \n },\n {\n field: 'lastbid',\n //lastbid\n headerName: 'Amount',\n width: 150,\n type: 'number',\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value ? params.value : 0))\n },\n editable: true\n },\n {\n field: 'actions',\n headerName: 'Action',\n width: 150,\n renderCell: (params) => {\n if (params.row.livebidcheckedout == 'Yes') {\n return null\n }\n const buttonText = clearedRowIds.includes(params.row.itemid)\n ? 'Save Bid'\n : 'Clear Bid'\n return (\n \n )\n }\n },\n {\n field: 'livebidconfirmed',\n headerName: 'Added to Cart',\n width: 150,\n sortable: false\n },\n {\n field: 'livebidcheckedout',\n headerName: 'Checked Out',\n width: 150,\n sortable: false\n },\n {\n field: 'livebidhasemail',\n headerName: 'Has Email',\n width: 150,\n sortable: false\n },\n ]\n\n \n\n const closeDialog = () => {\n setDialogMsg('')\n }\n return (\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\">\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n

Live Auction Winning Bid Entry

\n

Double click to enter winning bidder and amount.

\n {liveBidError.length > 0 &&

An error occurred: {liveBidError}

}\n sendWinningBid()}>\n Send Winning Bid Emails and Add Items to Cart\n \n row.itemid}\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n processRowUpdate={handleRowEditCommit}\n onProcessRowUpdateError={handleRowUpdateError}\n experimentalFeatures={{ newEditingApi: true }}\n />\n \n )\n}\n\nexport default LiveAuctionPage\n","import axios, { AxiosResponse } from 'axios';\n\n// Define the type for the log data\ninterface LogData {\n eventid: number;\n category: string;\n location: string;\n message: string;\n iserror: boolean;\n}\n\n// Define the class for logging\nexport default class Logger {\n\n // Method to send log data\n static async logEvent(logData: LogData): Promise> {\n try {\n const response = await axios.put(\"/logging\", logData);\n return response;\n } catch (error) {\n // Handle error appropriately\n console.error('Error sending log data', error);\n //throw error;\n }\n }\n}\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\n\nexport interface CheckoutDetailObject {\n status: string\n message: string\n checkoutheader: CheckoutHeaderData[]\n checkoutitems: CheckoutItemsData[]\n paymentmethodlist: [{paymentmethodvalue: string, paymentmethod: string}]\n}\n\nexport interface CheckoutHeaderData {\n biddernumber: number\n company: string\n participantid: number\n participantname: string\n first: string\n last: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n additionaldonation: number\n ccfeesexactamount: number\n totalamount: number\n ccfeesamount?: number\n paymentmethod: string\n sendemail: boolean\n}\n\nexport interface CheckoutItemsData {\n itemid: number\n historyid: number\n itemnumber: string\n itemname: string\n quantity: number\n fairmarketvalue: number\n amount: number\n}\n\nexport const useFetchCheckoutDetail = (eventIdvalue, key, isreadonly) => {\n return useQuery(\n ['checkoutdetail', eventIdvalue, key, isreadonly],\n () => globalCheckoutDetailFetcher(eventIdvalue, key, isreadonly),\n {}\n )\n}\n\nexport const useFetchCheckoutDetailAdd = (eventIdvalue) => {\n return useQuery(\n ['checkoutdetailadd', eventIdvalue],\n () => checkoutDetailAdd(eventIdvalue),\n {}\n )\n}\n\nexport const useUpdateCheckoutDetail = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`checkoutdetail`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['checkoutdetail'])\n }\n })\n}\n\n\nexport const useAddCheckoutDetail = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`checkoutdetail`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['checkoutdetail'])\n }\n })\n}\n\nexport const checkoutDetailAdd = async (eventid) => {\n const { data } = await axios.post('/checkoutdetailadd', {eventid: eventid})\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const checkout = async (body) => {\n const { data } = await axios.put('/checkoutadmin', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const checkoutUndo = async (eventid, key, email) => {\n const {data} = await axios.post('/checkoutundo', {eventid: eventid, key: key, email: email})\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\nexport const resendCheckout = async (eventid, key, email) => {\n const {data} = await axios.post('/checkoutresend', {eventid: eventid, key: key, email: email})\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const generatePDF = async (eventid, key) => {\n const {data} = await axios.post('/checkoutpdf', {eventid: eventid, key: key}, {responseType: \"blob\"})\n return data\n}\n\nexport const manualBid = async (eventid, itemid, buyitnow, quantity, bidderparticipantid) => {\n const { data } = await axios.put('/manualbid', { eventid: eventid, itemid: itemid, buyitnow: buyitnow, quantity: quantity, bidderparticipantid: bidderparticipantid })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const globalCheckoutDetailFetcher = async (eventIdvalue, key, isreadonly) => {\n const { data } = await axios.post('/checkoutdetail', { eventid: eventIdvalue, isreadonly: isreadonly, key: key })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as CheckoutDetailObject\n}\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, Grid,\n TextField\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './CheckoutForm.module.css'\nimport React, {useEffect} from \"react\";\nimport DateTimeInput from \"../../../components/common/inputs/DateTimeInput\";\nimport dayjs from \"dayjs\";\nimport MaskedInput from \"../../../components/common/inputs/MaskedInput\";\nimport AutocompleteSelect from \"../../../components/common/inputs/AutoCompleteSelectInput/AutocompleteSelect\"\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {useUpdateManualBid} from \"../../../queries/useManualBid\";\nimport {useQueryClient} from \"react-query\";\nimport {manualBid} from \"../../../queries/useFetchCheckoutDetail\";\nimport axios from \"axios\";\n\ntype FormData = {\n id: string\n eventid: number\n itemid: {label: string, value: number}\n buyitnow: boolean\n buyitnowquantity: number\n price: string\n bidderid: number\n}\n\nexport const AddItemForm = ({ addItemObjects, dialogObj, setDialogObj, eventid, participantid, selectedParticipant, getCheckoutDetailData }) => {\n const formMethods = useForm()\n const { reset, watch } = formMethods\n const eventState = useEventState()\n const title = \"Add Checkout Item\"\n const [dialogMsg, setDialogMsg] = React.useState({message: \"\", display: false})\n const [dialogStatus, setDialogStatus] = React.useState(true)\n const [quantityValues, setQuantityValues] = React.useState()\n const queryClient = useQueryClient()\n\n const onSubmit = async (formData: FormData) => {\n console.log(formData)\n const responseData = await manualBid(eventid, formData.itemid, true, quantityValues, participantid)\n const historyid = responseData.historyid\n if (responseData.status === \"success\") {\n queryClient.invalidateQueries(['checkoutdetailadd'])\n queryClient.invalidateQueries(['checkoutdetail'])\n if (getCheckoutDetailData != null) {\n getCheckoutDetailData()\n }\n\n const { data } = await axios.post('/checkoutdetail', { eventid: eventid, isreadonly: selectedParticipant.isreadonly, key: selectedParticipant.key })\n const parsedData = JSON.parse(data.jsonString)\n const item = parsedData?.checkoutitems?.find((item) => item.historyid === historyid)\n if (item) {\n setDialogObj({msg: '', show: false})\n }\n else {\n setDialogMsg({message: responseData.message2, display: true})\n }\n }\n else {\n setDialogMsg({message: responseData.message2, display: true})\n }\n }\n\n const closeDialog = () => {\n setDialogMsg({message: \"\", display: false})\n // if (dialogStatus) {\n // // queryClient.invalidateQueries(['manualbid'])\n // setDialogObj({msg: '', show: false})\n // }\n }\n\n const getItemOptions = () => {\n return addItemObjects?.itemlist?.map(item =>{\n return {value:item.itemid, label: item.itemnumber + ' - ' + item.name}\n })\n }\n\n const handleQuantityChange = (newValue: number) => {\n if (newValue > 0) {\n setQuantityValues(newValue)\n }\n }\n\n return (\n \n {title}\n\n <>\n \n \n \n {dialogMsg.message}\n \n \n \n \n \n \n \n\n \n \n\n \n \n {/*
Item: {gridParams.itemnumber} - {gridParams.name}
*/}\n
\n \n
\n \n
\n
\n \n handleQuantityChange(value)}\n />\n \n
\n \n
\n \n setDialogObj({msg: '', show: false})}>\n Cancel\n \n \n Add Item\n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport { useForm } from 'react-hook-form'\nimport \"./iframe.css\"\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, Switch} from '@material-ui/core'\nimport { FormLabel } from '@mui/material'\nimport download from 'downloadjs';\nimport Logger from '../../../util/logger';\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput/SelectInput'\n// import Switch from '../../../components/common/inputs/Switch'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport styles from './CheckoutForm.module.css'\nimport {CheckoutData, useFetchCheckout} from \"../../../queries/useFetchCheckout\";\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {\n CheckoutHeaderData,\n CheckoutItemsData,\n useFetchCheckoutDetail,\n useAddCheckoutDetail,\n resendCheckout,\n generatePDF,\n checkout,\n checkoutDetailAdd,\n useFetchCheckoutDetailAdd, checkoutUndo\n} from \"../../../queries/useFetchCheckoutDetail\";\nimport {DataGridPro, GridSelectionModel, GridValueFormatterParams} from \"@mui/x-data-grid-pro\";\nimport {formatMoney} from \"../../../util/formatHelpers\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {CheckoutPageTab} from \"../CheckoutPage\";\nimport {ConfirmModal} from \"../../../components/common/ConfirmModal\";\nimport axios from \"axios\";\nimport CheckoutItemAddForm from \"../CheckoutItemAddForm\";\nimport {useQueryClient} from \"react-query\";\nimport LoadingBackdrop from '../../../components/common/LoadingBackdrop'\nimport {AddItemForm} from \"./AddItemForm\";\nimport {statesArray} from \"../../../util/formValidation\";\n\ntype FormData = {\n biddernumber: number\n company: string\n participantname: string\n first: string\n last: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n additionaldonation: number\n ccfeesexactamount: number\n ccfeesamount: number\n totalamount: number\n paymentmethod: string\n sendemail: boolean\n}\n\ntype AddItemFormData = {\n item: string\n price: number\n quantity: number\n total: number\n}\n\nconst CheckoutForm = ({ checkoutDataObject, creditCardInfo, setShowPayment }) => {\n console.log(checkoutDataObject)\n const queryClient = useQueryClient()\n const addItemDetail = useAddCheckoutDetail()\n const [cryptogram, setCryptogram] = useState('');\n const [cryptogramTimeout, setCryptogramTimeout] = useState(0);\n const [cryptogramCode, setCryptogramCode] = useState('');\n const [selectedItems, setSelectedItems] = useState(null);\n const [selectionModel, setSelectionModel] = React.useState([1]);\n const [subtotal, setSubtotal] = useState(0);\n const [ccfees, setCCFees] = useState(0);\n const [quantity, setQuantity] = useState(0);\n const [additionalDonation, setAdditionalDonation] = React.useState(0)\n const [totalAmount, setTotalAmount] = React.useState(0)\n const [showResendDialog, setShowResendDialog] = React.useState(false)\n const [showVoidDialog, setShowVoidDialog] = React.useState(false)\n const [showCheckoutDialog, setShowCheckoutDialog] = React.useState(false)\n const [isLoadingBackdrop, setisLoadingBackdrop] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false })\n const [dialogAddItemObj, setAddItemDialogObj] = React.useState({ msg: \"\", show: false })\n const [invalidateIframe, setInvalidateIframe] = React.useState(1)\n\n useEffect(() => {\n // console.log(creditCardInfo)\n if (creditCardInfo && creditCardInfo.javascriptfile) {\n const script = document.createElement(\"script\")\n script.src = creditCardInfo?.javascriptfile\n script.id = \"firstpay-script-cryptogram\"\n script.type = \"text/javascript\"\n script.setAttribute(\"data-transcenter\", creditCardInfo?.transcenterid)\n script.setAttribute(\"data-processor\", creditCardInfo?.processorid)\n\n document.body.appendChild(script)\n }\n }, [creditCardInfo])\n\n useEffect(() => {\n window.addEventListener(\"message\", processPayment, false)\n return () => {\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n const processPayment = (e: any) => {\n if (e.data.firstpay) {\n const ccData = e.data\n setCryptogramCode(ccData.code)\n if (ccData.type === 'newCryptogram') {\n setCryptogram(ccData.cryptogram)\n setCryptogramTimeout(Date.now())\n }\n if (ccData.type === 'cryptogramFailed') {\n setCryptogram('')\n console.log(ccData)\n var logData = {\n eventid: Number(eventState.eventId),\n category: 'Checkout',\n location: 'Admin Checkout',\n message: ccData.message,\n iserror: true\n }\n Logger.logEvent(logData)\n //setCryptogramTimeout(Date.now())\n }\n }\n }\n\n const checkoutFormMethods = useForm()\n const {reset, watch, getValues} = checkoutFormMethods\n const addItemMethods = useForm()\n const [isAddItemsFormShowing, setIsAddItemsFormShowing] = useState(false)\n const [includeCCFees, setIncludeCCFees] = React.useState(false);\n const handleCCFeesChange = (event: React.ChangeEvent) => {\n setIncludeCCFees(event.target.checked);\n };\n\n const [headerDataRows, setHeaderDataRows] = React.useState();\n const [itemDataRows, setItemDataRows] = React.useState([]);\n const eventState = useEventState()\n const paymentMethodWatch = watch('paymentmethod')\n\n const { data: dataDetailAdd, isLoading: isDataDetailLoading } = useFetchCheckoutDetailAdd(Number(eventState.eventId))\n\n const { data, isLoading } = useFetchCheckoutDetail(Number(eventState.eventId), checkoutDataObject?.key, checkoutDataObject?.isreadonly)\n useEffect(() => {\n console.log(data)\n var additionalDonations = 0\n if (data?.checkoutheader && data?.checkoutheader?.length > 0) {\n const headerRecords = getHeaderRecords()\n var headRecs = headerRecords[0]\n\n reset(headerRecords[0])\n additionalDonations = headerRecords[0].additionaldonation\n setHeaderDataRows(headerRecords[0])\n console.log(headerRecords[0])\n }\n if (data?.checkoutitems && data?.checkoutitems?.length > 0) {\n const dataRows = getItemRecords()\n setItemDataRows(dataRows)\n \n const amount = data?.checkoutitems?.reduce((acc: any, curr: any) => {\n if (checkoutDataObject?.checkoutstatus === 'Checked Out') {\n return acc + curr.amount * curr.quantity\n }\n else {\n return 0\n }\n }, 0)\n\n setSubtotal(amount)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonations\n }\n setCCFees(ccAmount * (creditCardInfo?.ccfeespercentage / 100))\n setAdditionalDonation(additionalDonations)\n\n const total = (creditCardInfo?.showccfees && includeCCFees) ?\n ccAmount + (ccAmount * (creditCardInfo?.ccfeespercentage / 100)) :\n ccAmount\n setTotalAmount(total)\n\n setQuantity(data?.checkoutitems?.reduce((acc: any, curr: any) => {\n if (checkoutDataObject?.checkoutstatus === 'Checked Out') {\n return acc + curr.quantity\n }\n else {\n return 0\n }\n }, 0))\n }\n else {\n setItemDataRows([])\n }\n }, [data])\n\n useEffect(() => {\n const amount = selectedItems?.reduce((acc: any, curr: any) => {\n return acc + curr.amount * curr.quantity\n }, 0)\n setSubtotal(amount)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonation\n }\n setCCFees(((ccAmount) * (creditCardInfo?.ccfeespercentage / 100)))\n\n const total = (creditCardInfo?.showccfees && includeCCFees && creditCardInfo?.ccfeespercentage > 0.000000001) ?\n ccAmount + (ccAmount * (creditCardInfo?.ccfeespercentage / 100)) :\n ccAmount\n setTotalAmount(total)\n\n setQuantity(selectedItems?.reduce((acc: any, curr: any) => {\n return acc + curr.quantity\n }, 0))\n }, [includeCCFees, selectedItems, additionalDonation])\n\n const getHeaderRecords = () => {\n return data?.checkoutheader.map((checkoutHeader: CheckoutHeaderData, i) => {\n return {\n biddernumber: checkoutHeader.biddernumber,\n company: checkoutHeader.company,\n participantid: checkoutHeader.participantid,\n participantname: checkoutHeader.participantname,\n first: checkoutHeader.first,\n last: checkoutHeader.last,\n address: checkoutHeader.address,\n address2: checkoutHeader.address2,\n city: checkoutHeader.city,\n state: checkoutHeader.state,\n zip: checkoutHeader.zip,\n country: checkoutHeader.country,\n phone: checkoutHeader.phone,\n email: checkoutHeader.email,\n additionaldonation: checkoutHeader.additionaldonation,\n ccfeesexactamount: ccfees,\n totalamount: checkoutHeader.totalamount,\n paymentmethod: checkoutHeader.paymentmethod,\n ccfeesamount: checkoutHeader.ccfeesamount,\n sendemail: checkoutHeader.sendemail,\n\n }\n })\n }\n\n const getItemRecords = () => {\n return data?.checkoutitems.map((checkoutItems: CheckoutItemsData, i) => {\n return {\n id: checkoutItems.historyid,\n itemid: checkoutItems.itemid,\n historyid: checkoutItems.historyid,\n itemnumber: checkoutItems.itemnumber,\n itemname: checkoutItems.itemname,\n quantity: checkoutItems.quantity,\n fairmarketvalue: checkoutItems.fairmarketvalue,\n amount: checkoutItems.amount,\n }\n })\n }\n\n const onSubmit = (formData: FormData) => {\n if (paymentMethodWatch === \"CC\" && cryptogram.length <= 0) {\n const errorMessage = \"Please enter a valid credit card.\"\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n setShowCheckoutDialog(true)\n }\n }\n\n const columns = [\n {\n field: 'id',\n type: 'string',\n headerName: 'id',\n //minWidth: 120,\n hide: true\n },\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n minWidth: 120\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Name',\n minWidth: 200\n },\n {\n field: 'quantity',\n type: 'number',\n headerName: 'QTY',\n minWidth: 100\n },\n // {\n // field: 'fairmarketvalue',\n // type: 'number',\n // headerName: 'Fair Market Value',\n // minWidth: 250,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return formatMoney(Number(params.value))\n // },\n // },\n {\n field: 'amount',\n type: 'number',\n headerName: 'Amount',\n minWidth: 150,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n }\n ]\n\n const handleAdditionalDonationChange = (newValue: number | null) => {\n if (newValue > 0) {\n setAdditionalDonation(newValue)\n }\n else {\n setAdditionalDonation(0)\n }\n }\n\n const handleCheckout = async () => {\n setisLoadingBackdrop(true)\n setShowCheckoutDialog(false)\n const company = getValues(\"company\")\n const first = getValues(\"first\")\n const last = getValues(\"last\")\n const address = getValues(\"address\")\n const address2 = getValues(\"address2\")\n const city = getValues(\"city\")\n const state = getValues(\"state\")\n const zip = getValues(\"zip\")\n const email = getValues(\"email\")\n const sendemail = getValues(\"sendemail\")\n\n var errorMessage = \"\"\n if (first.length <= 0) {\n errorMessage = \"First name is required.\"\n }\n else if (last.length <= 0) {\n errorMessage = \"Last name is required.\"\n }\n // else if (address.length <= 0) {\n // errorMessage = \"Address is required.\"\n // }\n // else if (city.length <= 0) {\n // errorMessage = \"City is required.\"\n // }\n // else if (state.length <= 0) {\n // errorMessage = \"State is required.\"\n // }\n else if (zip.length <= 0) {\n errorMessage = \"Zip is required.\"\n }\n // else if (email.length <= 0) {\n // errorMessage = \"Email is required.\"\n // }\n else if (selectedItems === null || selectedItems?.length <= 0) {\n errorMessage = \"Please select at least 1 item.\"\n }\n else if (paymentMethodWatch === \"CC\" && cryptogram.length <= 0) {\n errorMessage = \"Please enter a valid credit card.\"\n }\n\n if (errorMessage.length > 0) {\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n const checkoutData = await checkout({\n eventid: Number(eventState.eventId),\n key: checkoutDataObject?.key,\n participantid: headerDataRows?.participantid,\n company: company,\n first: first,\n last: last,\n address: address,\n address2: address2,\n city: city,\n state: state,\n zip: zip,\n email: email,\n additionaldonation: additionalDonation,\n ccfeesexactamount: creditCardInfo?.ccfeespercentage, // Number(ccfees.toFixed(2)),\n totalamount: Number(totalAmount.toFixed(2)),\n paymentmethod: paymentMethodWatch,\n sendemail: sendemail,\n emerchtoken: cryptogram,\n subtotal: subtotal,\n itemid: selectedItems?.map((item) => {\n return item.itemid\n }),\n historyid: selectedItems?.map((item) => {\n return item.historyid\n })\n })\n\n if (checkoutData.status === 'success') {\n setDialogObj({msg: \"Checkout was successfull.\", show: true})\n setInvalidateIframe(invalidateIframe+1)\n setCryptogram('')\n }\n else {\n setDialogObj({msg: checkoutData.message, show: true})\n }\n queryClient.invalidateQueries(['checkout'])\n queryClient.invalidateQueries(['checkoutdetail'])\n }\n\n setisLoadingBackdrop(false)\n }\n\n const buildCheckoutConfirm = () => {\n const itemMessage = selectedItems?.map(item => {\n return (\n <>\n #{item.itemnumber} - {item.itemname} - Qty: {item.quantity} - ${item.amount}
\n \n )\n })\n\n const itemMessageFinal = <>\n {(selectedItems && selectedItems?.length > 0) &&\n <>{itemMessage}
\n }\n {/*{additionalDonation &&*/}\n <>\n Additional Donation: ${additionalDonation ? additionalDonation : 0}
\n \n {/*}*/}\n Processing Fees: ${ccfees}
\n Total Amount: ${Number(totalAmount.toFixed(2))}\n \n\n var message =\n <>\n {itemMessageFinal}\n Are you sure you want to purchase these items?\n \n return message\n }\n\n const handleVoid = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n setShowVoidDialog(false)\n setShowVoidDialog(false)\n const email = getValues(\"email\")\n const checkoutundo = await checkoutUndo(Number(eventState.eventId), checkoutDataObject?.key, email)\n\n if (checkoutundo.status === 'success') {\n setDialogObj({msg: \"Transaction was voided.\", show: true})\n }\n else {\n setDialogObj({msg: checkoutundo.message, show: true})\n }\n queryClient.invalidateQueries(['checkout'])\n queryClient.invalidateQueries(['checkoutdetail'])\n setisLoadingBackdrop(false)\n }\n\n const handleResend = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n setShowVoidDialog(false)\n const email = getValues(\"email\")\n const resendData = await resendCheckout(Number(eventState.eventId), checkoutDataObject?.key, email)\n\n if (resendData.status === 'success') {\n setDialogObj({msg: \"Receipt was successfully sent to \" + email + \".\", show: true})\n }\n else {\n setDialogObj({msg: resendData.message, show: true})\n }\n setisLoadingBackdrop(false)\n }\n\n const generatePDFClick = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n setShowVoidDialog(false)\n const resendData = await generatePDF(Number(eventState.eventId), checkoutDataObject?.key)\n if (resendData) {\n download(resendData, eventState.eventName + '-' + checkoutDataObject?.key + '-receipt.pdf', 'application/pdf');\n }\n setisLoadingBackdrop(false)\n }\n\n return (\n <>\n
\n \n\n \n {/**/}\n setShowVoidDialog(false)}\n onConfirm={() => handleVoid()}\n confirmText=\"Void Transaction\"\n />\n setShowResendDialog(false)}\n onConfirm={() => handleResend()}\n confirmText=\"Resend Receipt\"\n />\n setShowCheckoutDialog(false)}\n onConfirm={() => handleCheckout()}\n confirmText=\"Checkout\"\n />\n <>\n \n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n
\n \n\n
\n
\n \n \n \n \n \n \n {\n return {label: state.value, value: state.value}\n })}\n />\n \n \n
\n \n Send Email\n
\n\n\n

Subtotal: {formatMoney(subtotal | 0)} ({quantity | 0} items)

\n {(Number(headerDataRows?.ccfeesamount) > 0.0001) &&\n
\n CC Fees: {formatMoney(Number(headerDataRows?.ccfeesamount))}\n
\n }\n handleAdditionalDonationChange(value)}\n />\n handleAdditionalDonationChange(value)}\n />\n \n
\n
\n
\n
\n {\n setSelectionModel(newSelectionModel);\n }}\n selectionModel={selectionModel}\n />\n
\n {/*{!checkoutDataObject?.isreadonly &&*/}\n {/* setAddItemDialogObj({msg: '', show: true})}>*/}\n {/* Add Item*/}\n {/* */}\n {/*}*/}\n
\n
\n
\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*{!checkoutDataObject?.isreadonly &&*/}\n {/* <>*/}\n {/* {setShowCheckoutDialog(true)}}*/}\n {/* >*/}\n {/* Complete Checkout*/}\n {/* */}\n {/* */}\n {/*}*/}\n {checkoutDataObject?.isreadonly &&\n <>\n {paymentMethodWatch != \"CC\" &&\n {setShowVoidDialog(true)}}\n >\n Void Transaction\n \n }\n {setShowResendDialog(true)}}\n >\n Resend Receipt\n \n generatePDFClick()}\n >\n PDF\n \n \n }\n \n
\n
\n \n\n )\n}\n\nexport default CheckoutForm\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface CheckoutObject {\n status: string\n message: string\n showccfees: boolean,\n ccfeespercentage: number,\n creditcardiframe: string,\n javascriptfile: string,\n transcenterid: string,\n processorid: string,\n transactiontype: string,\n checkoutlist: CheckoutData[]\n}\n\nexport interface CheckoutData {\n rownumber: number\n biddernumber: number\n paddlenumbertext: string\n receiptnumber: number\n participantname: string\n checkoutstatus: string\n amount: string\n isreadonly: boolean\n key: number\n}\n\nconst CheckoutDefaults = {\n rownumber: null,\n biddernumber: null,\n paddlenumbertext: null,\n receiptnumber: null,\n participantname: null,\n checkoutstatus: null,\n amount: null,\n isreadonly: false,\n key: 0\n}\n\nexport const useFetchCheckout = (eventIdvalue) => {\n return useQuery(\n ['checkout', eventIdvalue],\n () => globalCheckoutFetcher(eventIdvalue),\n {\n staleTime: 0,\n keepPreviousData: false\n }\n )\n}\n\nexport const useUpdateCheckout = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`checkoutlist`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['checkout'])\n }\n })\n}\n\nexport const globalCheckoutFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/checkoutlist', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as CheckoutObject\n}\n","import { useParams } from 'react-router'\nimport { Button } from '@mui/material'\nimport { useAutoEvent } from '../../../queries/useAutoEvent'\nimport { useEventState } from '../../../slices/eventSlice'\nimport {useFetchBidMaintenance} from \"../../../queries/useFetchBidMaintenance\";\nimport {CheckoutData, useFetchCheckout} from \"../../../queries/useFetchCheckout\";\nimport React, {useEffect} from \"react\";\n\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef\n} from \"@mui/x-data-grid-premium\";\nimport {formatMoney} from \"../../../util/formatHelpers\";\nimport {GridSelectionModel} from \"@mui/x-data-grid-pro\";\n// import {DataGridPremium} from \"@mui/x-data-grid-premium\";\n\ntype Order = {\n id: number\n bidnumber: number\n name: string\n receiptnumber: number\n status: string\n}\n\ninterface Params {\n id: string\n}\n\nconst CheckoutOrdersGrid = ({ checkoutDataObject, setCheckoutDataObject, setCreditCardInfo}) => {\n const eventState = useEventState()\n const gridAPIRef = useGridApiRef()\n const [dataRows, setDataRows] = React.useState([]);\n const [selectionModel, setSelectionModel] = React.useState([1]);\n const { data, isLoading } = useFetchCheckout(Number(eventState.eventId))\n useEffect(() => {\n if (data?.checkoutlist && data?.checkoutlist?.length > 0) {\n const dataRows = getMappedRecords()\n console.log(dataRows)\n setDataRows(dataRows)\n }\n if (data) {\n setCreditCardInfo(\n { showccfees: data.showccfees,\n ccfeespercentage: data.ccfeespercentage,\n creditcardiframe: data.creditcardiframe,\n javascriptfile: data.javascriptfile,\n transcenterid: data.transcenterid,\n processorid: data.processorid,\n transactiontype: data.transactiontype\n }\n )\n console.log({ showccfees: data.showccfees,\n ccfeespercentage: data.ccfeespercentage,\n creditcardiframe: data.creditcardiframe,\n javascriptfile: data.javascriptfile,\n transcenterid: data.transcenterid,\n processorid: data.processorid,\n transactiontype: data.transactiontype\n })\n }\n\n // if (data?.checkoutlist && data?.checkoutlist.length > 0) {\n // setTimeout(() => {\n // gridAPIRef.current?.selectRows([data?.checkoutlist[0].rownumber])\n // setCheckoutDataObject(data?.checkoutlist[0])\n // })\n // }\n }, [data])\n\n useEffect(() => {\n if (dataRows && dataRows.length > 0) {\n setSelectionModel([dataRows[0].id])\n const checkoutObjData = data.checkoutlist.filter((checkoutlist) => { return checkoutlist.biddernumber === Number(dataRows[0].biddernumber) && checkoutlist.receiptnumber === Number(dataRows[0].receiptnumber)})\n if (checkoutObjData && checkoutObjData.length > 0) {\n setCheckoutDataObject(checkoutObjData[0])\n }\n }\n }, [dataRows])\n\n const getMappedRecords = () => {\n return data?.checkoutlist.filter((checkOut) => checkOut.checkoutstatus !== 'Open').map((checkoutData: CheckoutData, i) => {\n return {\n id: checkoutData.rownumber,\n rownumber: checkoutData.rownumber,\n biddernumber: checkoutData.biddernumber,\n paddlenumbertext: checkoutData.paddlenumbertext,\n receiptnumber: checkoutData.receiptnumber,\n participantname: checkoutData.participantname,\n checkoutstatus: checkoutData.checkoutstatus,\n amount: checkoutData.amount,\n isreadonly: checkoutData.isreadonly,\n key: checkoutData.key,\n }\n })\n }\n\n const handleRowClick = (param: GridRowParams, event: MuiEvent, details: GridCallbackDetails) => {\n const checkoutObjData = data.checkoutlist.filter((checkoutlist) => { return checkoutlist.rownumber === Number(param.id)})\n if (checkoutObjData && checkoutObjData.length > 0) {\n setCheckoutDataObject(checkoutObjData[0])\n }\n }\n\n const columns: GridColDef[] = [\n {\n field: 'biddernumber',\n type: 'number',\n headerName: 'Bid #',\n minWidth: 120\n },\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle #',\n minWidth: 120\n },\n {\n field: 'participantname',\n type: 'string',\n headerName: 'Name',\n minWidth: 280\n },\n {\n field: 'receiptnumber',\n type: 'number',\n headerName: 'Receipt #',\n minWidth: 150\n },\n {\n field: 'amount',\n headerName: 'Amount',\n width: 150,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? formatMoney(Number(params.value)) : '$0.00')\n },\n },\n {\n field: 'checkoutstatus',\n type: 'string',\n headerName: 'Status',\n minWidth: 150\n }\n ]\n\n return (\n <>\n {\n setSelectionModel(newSelectionModel);\n }}\n selectionModel={selectionModel}\n pagination\n rowsPerPageOptions={[5]}\n />\n \n )\n}\n\nexport default CheckoutOrdersGrid\n","import React, {useEffect, useState} from 'react'\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport {Button, Grid} from '@mui/material'\n\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport styles from './CheckoutPage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {CheckoutData, CheckoutObject, useFetchCheckout} from \"../../queries/useFetchCheckout\";\nimport SelectInput from \"../../components/common/inputs/SelectInput\";\nimport {\n CheckoutListAllData,\n CheckoutListAllObject,\n useFetchCheckoutListAll\n} from \"../../queries/useFetchCheckoutListAll\";\nimport CheckoutAllForm from \"./CheckoutForm/CheckoutAllForm\";\nimport axios from \"axios\";\n\nexport enum CheckoutPageTab {\n Checkout,\n ResendReceipt,\n PDF,\n Void,\n None\n}\n\ninterface Params {\n eventid: string\n}\n\nconst CheckoutAllPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const [tab, setTab] = useState(CheckoutPageTab.None)\n const [showPayment, setShowPayment] = useState(true)\n const [tabSel, setTabSel] = React.useState(0)\n const [dataRows, setDataRows] = React.useState([])\n const [participantsData, setParticipantsData] = React.useState([])\n const [checkoutListData, setCheckoutListData] = React.useState({\n status: '',\n message: '',\n showccfees: false,\n ccfeespercentage: null,\n creditcardiframe: '',\n javascriptfile: '',\n transcenterid: '',\n processorid: '',\n transactiontype: '',\n checkoutlist: [],\n paymentprocessorcode: null,\n paymentprocessorisvalid: true,\n paymentprocessorinfo: {\n stripeaccountid: '',\n stripeapikey: '',\n creditcardiframe: '',\n javascriptfile: '',\n transcenterid: '',\n processorid: '',\n transactiontype: ''\n }\n })\n\n const getMappedRecords = () => {\n var participants = []\n // console.log(checkoutListData?.checkoutlist.sort((a, b) => a.participantname > b.participantname ? 1 : -1))\n const checkoutListDataNew = checkoutListData?.checkoutlist.map((checkoutData: CheckoutListAllData, i) => {\n participants.push({\n participantinfo: checkoutData.participantinfo,\n participantname: checkoutData.participantname,\n key: checkoutData.key,\n biddernumber: checkoutData.biddernumber,\n })\n\n return {\n id: checkoutData.rownumber,\n rownumber: checkoutData.rownumber,\n biddernumber: checkoutData.biddernumber,\n receiptnumber: checkoutData.receiptnumber,\n participantname: checkoutData.participantname,\n checkoutstatus: checkoutData.checkoutstatus,\n amount: checkoutData.amount,\n isreadonly: checkoutData.isreadonly,\n key: checkoutData.key,\n participantinfo: checkoutData.participantinfo\n }\n })\n // console.log(participants.sort((a, b) => a.participantname > b.participantname ? 1 : -1))\n setParticipantsData(participants)\n return checkoutListDataNew\n }\n\n const getCheckoutListAllData = async (eventIdvalue) => {\n const { data } = await axios.post('/checkoutlistall', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n setCheckoutListData(parsedData)\n }\n\n // const { data, isLoading } = useFetchCheckoutListAll(Number(eventState.eventId))\n useEffect(() => {\n if (checkoutListData?.checkoutlist && checkoutListData?.checkoutlist?.length > 0) {\n const dataRowsTemp = getMappedRecords()\n setDataRows(dataRowsTemp)\n }\n if (checkoutListData) {\n console.log(checkoutListData)\n setCreditCardInfo(\n {\n paymentprocessorisvalid: checkoutListData?.paymentprocessorisvalid,\n paymentprocessorcode: checkoutListData?.paymentprocessorcode,\n paymentprocessorinfo: {\n stripeaccountid: checkoutListData?.paymentprocessorinfo?.stripeaccountid,\n stripeapikey: checkoutListData?.paymentprocessorinfo?.stripeapikey,\n creditcardiframe: checkoutListData.paymentprocessorinfo?.creditcardiframe,\n javascriptfile: checkoutListData.paymentprocessorinfo?.javascriptfile,\n transcenterid: checkoutListData.paymentprocessorinfo?.transcenterid,\n processorid: checkoutListData.paymentprocessorinfo?.processorid,\n transactiontype: checkoutListData.paymentprocessorinfo?.transactiontype\n },\n showccfees: checkoutListData.showccfees,\n ccfeespercentage: checkoutListData.ccfeespercentage,\n }\n )\n }\n }, [checkoutListData])\n\n\n useEffect(()=> {\n getCheckoutListAllData(eventid)\n }, [eventid])\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTabSel(newValue)\n }\n\n const [selectedUser, setSelectedUser] =\n useState<{ id: number; status: 'Open' | 'CheckedOut' }>(null)\n const [creditCardInfo, setCreditCardInfo] =\n useState<{\n paymentprocessorisvalid: boolean,\n paymentprocessorcode: number,\n paymentprocessorinfo: {\n stripeaccountid: string,\n stripeapikey: string,\n creditcardiframe: string,\n javascriptfile: string,\n transcenterid: string,\n processorid: string\n transactiontype: string\n },\n showccfees: boolean,\n ccfeespercentage: number,\n }>({\n paymentprocessorisvalid: true,\n paymentprocessorcode: 0,\n paymentprocessorinfo: {\n stripeaccountid: '',\n stripeapikey: '',\n creditcardiframe: \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/v3/CreditCard\",\n javascriptfile: \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/Scripts/firstpay/firstpay.cryptogram.js\",\n transcenterid: \"92754\",\n processorid: \"70802\",\n transactiontype: \"Sale\"\n },\n showccfees: false,\n ccfeespercentage: 0,\n })\n\n // const [checkoutDataObject, setCheckoutDataObject] = useState(null)\n const onResendEmail = () => {\n //Send email here\n setTab(CheckoutPageTab.None)\n }\n\n const onVoid = () => {\n //Void order here\n setTab(CheckoutPageTab.None)\n }\n\n const [cryptogram, setCryptogram] = useState('');\n\n useEffect(() => {\n setCryptogram('')\n window.addEventListener(\"message\", processPayment, false)\n return () => {\n setCryptogram('')\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n const processPayment = (e: any) => {\n if (e.data.firstpay) {\n const ccData = e.data\n if (ccData.type === 'newCryptogram') {\n setCryptogram(ccData.cryptogram)\n }\n }\n }\n\n return (\n
\n setTab(CheckoutPageTab.None)}\n onConfirm={() => onResendEmail()}\n confirmText=\"Resend Receipt\"\n />\n setTab(CheckoutPageTab.None)}\n onConfirm={() => onVoid()}\n confirmText=\"Void Transaction\"\n />\n \n\n {/*{checkoutDataObject?.isreadonly && }*/}\n
\n {selectedUser?.status === 'CheckedOut' && (\n <>\n setTab(CheckoutPageTab.ResendReceipt)}>\n Void Transaction\n \n setTab(CheckoutPageTab.ResendReceipt)}>\n Resend Receipt\n \n {/* setTab(CheckoutPageTab.PDF)}>*/}\n {/* PDF*/}\n {/**/}\n {/* setTab(CheckoutPageTab.Void)}>*/}\n {/* Void*/}\n {/**/}\n \n )}\n
\n
\n )\n}\n\nexport default CheckoutAllPage\n","import React, {useEffect, useMemo, useState} from 'react'\nimport { useForm } from 'react-hook-form'\nimport \"./iframe.css\"\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, Switch} from '@material-ui/core'\nimport { FormLabel } from '@mui/material'\nimport download from 'downloadjs';\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport styles from './CheckoutAllForm.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {\n CheckoutHeaderData,\n useFetchCheckoutDetail,\n useAddCheckoutDetail,\n resendCheckout,\n generatePDF,\n checkout,\n useFetchCheckoutDetailAdd, CheckoutDetailObject\n} from \"../../../queries/useFetchCheckoutDetail\";\nimport {DataGridPro, GridValueFormatterParams} from \"@mui/x-data-grid-pro\";\nimport {formatMoney} from \"../../../util/formatHelpers\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {ConfirmModal} from \"../../../components/common/ConfirmModal\";\nimport {useQueryClient} from \"react-query\";\nimport LoadingBackdrop from '../../../components/common/LoadingBackdrop'\nimport {AddItemForm} from \"./AddItemForm\";\nimport {statesArray} from \"../../../util/formValidation\";\nimport {loadStripe} from '@stripe/stripe-js';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport TextField from '@mui/material/TextField';\nimport axios from \"axios\";\n\ntype FormData = {\n biddernumber: number\n company: string\n participantname: string\n first: string\n last: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n additionaldonation: number\n ccfeesexactamount: number\n totalamount: number\n paymentmethod: string\n sendemail: boolean\n participant: string\n}\n\ntype AddItemFormData = {\n item: string\n price: number\n quantity: number\n total: number\n}\n\nconst CheckoutAllForm = ({ dataRows, creditCardInfo, participantsData }) => {\n const checkoutFormMethods = useForm()\n const {reset, watch, getValues, setValue} = checkoutFormMethods\n const addItemMethods = useForm()\n const [includeCCFees, setIncludeCCFees] = React.useState(false);\n const queryClient = useQueryClient()\n const addItemDetail = useAddCheckoutDetail()\n const [selectedItems, setSelectedItems] = useState(null);\n const [selectedParticipant, setSelectedParticipants] = useState(null);\n const [participantValue, setParticipantValue] = useState(null);\n const [subtotal, setSubtotal] = useState(0);\n const [ccfees, setCCFees] = useState(0);\n const [quantity, setQuantity] = useState(0);\n const [additionalDonation, setAdditionalDonation] = React.useState(0)\n const [totalAmount, setTotalAmount] = React.useState(0)\n const [showResendDialog, setShowResendDialog] = React.useState(false)\n const [showCheckoutDialog, setShowCheckoutDialog] = React.useState(false)\n const [isLoadingBackdrop, setisLoadingBackdrop] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false })\n const [dialogAddItemObj, setAddItemDialogObj] = React.useState({ msg: \"\", show: false })\n const [invalidateIframe, setInvalidateIframe] = React.useState(1)\n const [paymentMethodList, setPaymentMethodList] = React.useState([{paymentmethodvalue: \"\", paymentmethod: \"\"}])\n const [processorToken, setProcessorToken] = useState('');\n const [stripeObj, setStripeObj] = useState(null)\n const [stripeElement, setStripeElement] = useState(null)\n const [stripePaymentElement, setStripePaymentElement] = useState(null)\n const [stripeAPIKey, setStripeAPIKey] = useState('')\n const [stripeAccountId, setStripeAccountId] = useState('')\n const [checkoutData, setCheckoutData] = useState()\n const [dataDetailAdd, setdataDetailAdd] = useState()\n const paymentMethodWatch = watch('paymentmethod')\n\n useEffect(() => {\n console.log('Processor Token: ' + processorToken)\n }, [processorToken])\n\n const options = {\n mode: 'payment',\n amount: 25 * 100,\n paymentMethodCreation: 'manual',\n currency: 'usd',\n // paymentMethodTypes: ['card', 'us_bank_account'],\n //confirm = true,\n setupFutureUsage: 'off_session',\n };\n\n const loadStripeAccount = async () => {\n const stripeTempObj = await loadStripe(stripeAPIKey, {\n stripeAccount: stripeAccountId,\n });\n setStripeObj(stripeTempObj);\n }\n\n useEffect(() => {\n if (stripeObj && paymentMethodWatch === 'CC') {\n const elements = stripeObj.elements(options);\n setStripeElement(elements)\n const paymentElement = elements.create('payment', {\n layout: {\n type: 'tabs',\n defaultCollapsed: false,\n },\n });\n paymentElement.mount('#payment-element');\n\n paymentElement.on('change', async function(event) {\n if (event.complete) {\n console.log('Stripe Form - complete')\n\n await elements.submit();\n const {error, confirmationToken} = await stripeObj.createConfirmationToken({elements: elements})\n if (confirmationToken) {\n setProcessorToken(confirmationToken.id)\n }\n console.log(confirmationToken)\n console.log(error)\n }\n });\n setStripePaymentElement(paymentElement)\n }\n }, [stripeObj, paymentMethodWatch === 'CC'])\n\n\n useEffect(() => {\n if (creditCardInfo?.paymentprocessorcode === 2) {\n if (creditCardInfo?.paymentprocessorinfo?.stripeapikey) {\n setStripeAPIKey(creditCardInfo?.paymentprocessorinfo?.stripeapikey)\n }\n if (creditCardInfo?.paymentprocessorinfo?.stripeaccountid) {\n setStripeAccountId(creditCardInfo?.paymentprocessorinfo?.stripeaccountid)\n }\n }\n }, [creditCardInfo?.paymentprocessorinfo?.stripeaccountid])\n\n useEffect(() => {\n if (stripeAPIKey && stripeAPIKey.length > 0) {\n loadStripeAccount()\n }\n }, [stripeAPIKey, stripeAccountId])\n\n useEffect(() => {\n console.log(creditCardInfo)\n if (creditCardInfo && creditCardInfo.paymentprocessorinfo?.javascriptfile) {\n const script = document.createElement(\"script\")\n script.src = creditCardInfo?.paymentprocessorinfo?.javascriptfile\n script.id = \"firstpay-script-cryptogram\"\n script.type = \"text/javascript\"\n script.setAttribute(\"data-transcenter\", creditCardInfo?.paymentprocessorinfo?.transcenterid)\n script.setAttribute(\"data-processor\", creditCardInfo?.paymentprocessorinfo?.processorid)\n\n document.body.appendChild(script)\n }\n }, [creditCardInfo])\n\n useEffect(() => {\n window.addEventListener(\"message\", processPayment, false)\n setProcessorToken('')\n return () => {\n setProcessorToken('')\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n useEffect(() => {\n if (dataRows && dataRows.length > 0) {\n const dataRowId = Number(dataRows[0]?.id)\n const participantId = Number(selectedParticipant?.id)\n const isEqual = dataRowId == participantId\n if (isEqual === false) {\n setSelectedParticipants(dataRows[0])\n setParticipantValue({value:dataRows[0]?.id, label: dataRows[0]?.participantinfo, id: dataRows[0]?.id, key: dataRows[0]?.key})\n }\n }\n }, [dataRows])\n\n \n const processPayment = (e: any) => {\n if (e.data.firstpay) {\n const ccData = e.data\n if (ccData.type === 'newCryptogram') {\n setProcessorToken(ccData.cryptogram)\n }\n }\n }\n\n const handleCCFeesChange = (event: React.ChangeEvent) => {\n setIncludeCCFees(event.target.checked);\n };\n\n const [headerDataRows, setHeaderDataRows] = React.useState();\n const [itemDataRows, setItemDataRows] = React.useState([]);\n const eventState = useEventState()\n\n // const { data: dataDetailAdd, isLoading: isDataDetailLoading } = useFetchCheckoutDetailAdd(Number(eventState.eventId))\n\n useEffect(() => {\n if (participantValue) {\n const participantSelected = dataRows?.filter(item => item.key === participantValue.key)\n if (participantSelected && participantSelected.length > 0) {\n if (participantSelected[0].id !== selectedParticipant.id) {\n setSelectedParticipants(participantSelected[0])\n }\n }\n }\n\n setInvalidateIframe(invalidateIframe+1)\n setProcessorToken('')\n setValue('additionaldonation', 0)\n setAdditionalDonation(0)\n // setSelectedItems([])\n setIncludeCCFees(false)\n setValue('paymentmethod', 'check')\n }, [participantValue])\n\n const getCheckoutDetailAdd = async () => {\n const { data } = await axios.post('/checkoutdetailadd', {eventid: Number(eventState.eventId)})\n const parsedData = JSON.parse(data.jsonString)\n setdataDetailAdd(parsedData)\n }\n\n const getCheckoutDetailData = async () => {\n const { data } = await axios.post('/checkoutdetail', { eventid: Number(eventState.eventId), isreadonly: selectedParticipant?.isreadonly, key: selectedParticipant?.key })\n const parsedData = JSON.parse(data.jsonString)\n setCheckoutData(parsedData)\n }\n\n useEffect(() => {\n if (Number(eventState.eventId) > 0 && selectedParticipant?.key) {\n getCheckoutDetailAdd()\n getCheckoutDetailData()\n }\n }, [eventState.eventId, selectedParticipant?.key])\n\n useEffect(() => {\n const total = Number(totalAmount.toFixed(2))\n const processUpdate = async () => {\n if (creditCardInfo?.paymentprocessorcode === 2 && stripeElement && total > 0) {\n console.log('processing update for total')\n stripeElement.update({\n amount: total*100,\n });\n // await stripeElement.submit();\n // const {error, confirmationToken} = await stripeObj.createConfirmationToken({elements: stripeElement})\n // if (confirmationToken) {\n // setProcessorToken(confirmationToken.id)\n // }\n }\n }\n processUpdate()\n }, [totalAmount])\n\n useEffect(() => {\n\n var additionalDonations = 0\n if (checkoutData && checkoutData?.checkoutheader && checkoutData?.checkoutheader?.length > 0) {\n const headerRecords = getHeaderRecords()\n var headRecs = headerRecords[0]\n headRecs['participant'] = selectedParticipant?.key\n headRecs['paymentmethod'] = 'check'\n reset(headRecs)\n additionalDonations = dataRows[0].additionaldonation\n setHeaderDataRows(headerRecords[0])\n }\n\n if (checkoutData && checkoutData?.paymentmethodlist) {\n setPaymentMethodList(checkoutData?.paymentmethodlist)\n }\n\n if (checkoutData && checkoutData?.checkoutitems && checkoutData?.checkoutitems?.length > 0) {\n const dataTempRows = getItemRecords()\n if (dataTempRows && dataTempRows?.length > 0) {\n setItemDataRows(dataTempRows)\n }\n\n const amount = checkoutData?.checkoutitems?.reduce((acc: any, curr: any) => {\n if (dataRows?.checkoutstatus === 'Checked Out') {\n return acc + curr.amount * curr.quantity\n }\n else {\n return 0\n }\n }, 0)\n setSubtotal(amount)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonations\n }\n setCCFees(ccAmount * (eventState?.ccfee / 100))\n setAdditionalDonation(additionalDonations)\n\n const total = (eventState?.allowpaymentoffees && includeCCFees) ?\n ccAmount + (ccAmount * (eventState?.ccfee / 100)) :\n ccAmount\n setTotalAmount(total)\n\n setQuantity(dataRows?.checkoutitems?.reduce((acc: any, curr: any) => {\n if (dataRows?.checkoutstatus === 'Checked Out') {\n return acc + curr.quantity\n }\n else {\n return 0\n }\n }, 0))\n\n const selectedRowData = checkoutData?.checkoutitems?.filter((item) =>\n item.historyid\n )\n console.log(selectedRowData)\n setSelectedItems(selectedRowData);\n }\n else {\n setItemDataRows([])\n }\n }, [checkoutData])\n\n useEffect(() => {\n const amount = selectedItems?.reduce((acc: any, curr: any) => {\n return acc + curr.amount * curr.quantity\n }, 0)\n setSubtotal(amount)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonation\n }\n setCCFees(((ccAmount) * (eventState?.ccfee / 100)))\n\n const total = (eventState?.allowpaymentoffees && includeCCFees && eventState?.ccfee > 0.000000001) ?\n ccAmount + (ccAmount * (eventState?.ccfee / 100)) :\n ccAmount\n setTotalAmount(total)\n\n setQuantity(selectedItems?.reduce((acc: any, curr: any) => {\n return acc + curr.quantity\n }, 0))\n }, [includeCCFees, selectedItems, additionalDonation])\n\n const getHeaderRecords = () => {\n return checkoutData?.checkoutheader?.map((checkoutHeader: CheckoutHeaderData, i) => {\n return {\n biddernumber: checkoutHeader.biddernumber,\n company: checkoutHeader.company,\n participantid: checkoutHeader.participantid,\n participantname: checkoutHeader.participantname,\n first: checkoutHeader.first,\n last: checkoutHeader.last,\n address: checkoutHeader.address,\n address2: checkoutHeader.address2,\n city: checkoutHeader.city,\n state: checkoutHeader.state,\n zip: checkoutHeader.zip,\n country: checkoutHeader.country,\n phone: checkoutHeader.phone,\n email: checkoutHeader.email,\n additionaldonation: checkoutHeader.additionaldonation,\n ccfeesexactamount: ccfees,\n totalamount: checkoutHeader.totalamount,\n paymentmethod: checkoutHeader.paymentmethod,\n sendemail: checkoutHeader.sendemail,\n participant: participantValue\n }\n })\n }\n\n const getItemRecords = () => {\n return checkoutData?.checkoutitems?.map((checkoutItems, i) => {\n return {\n id: checkoutItems.historyid,\n itemid: checkoutItems.itemid,\n historyid: checkoutItems.historyid,\n itemnumber: checkoutItems.itemnumber,\n itemname: checkoutItems.itemname,\n quantity: checkoutItems.quantity,\n fairmarketvalue: checkoutItems.fairmarketvalue,\n amount: checkoutItems.amount,\n }\n })\n }\n\n const onSubmit = (formData: FormData) => {\n if (paymentMethodWatch === \"CC\" && processorToken.length <= 0) {\n const errorMessage = \"Please enter a valid credit card.\"\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n setShowCheckoutDialog(true)\n }\n }\n\n const columns = [\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n minWidth: 120\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Name',\n minWidth: 200\n },\n {\n field: 'quantity',\n type: 'number',\n headerName: 'QTY',\n minWidth: 100\n },\n // {\n // field: 'fairmarketvalue',\n // type: 'number',\n // headerName: 'Fair Market Value',\n // minWidth: 250,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return formatMoney(Number(params.value))\n // },\n // },\n {\n field: 'amount',\n type: 'number',\n headerName: 'Amount',\n minWidth: 150,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n }\n ]\n\n const handleAdditionalDonationChange = (newValue: number | null) => {\n if (newValue > 0) {\n setAdditionalDonation(newValue)\n }\n else {\n setAdditionalDonation(0)\n }\n }\n\n const handleCheckout = async () => {\n setisLoadingBackdrop(true)\n setShowCheckoutDialog(false)\n const company = getValues(\"company\")\n const first = getValues(\"first\")\n const last = getValues(\"last\")\n const address = getValues(\"address\")\n const address2 = getValues(\"address2\")\n const city = getValues(\"city\")\n const state = getValues(\"state\")\n const zip = getValues(\"zip\")\n const email = getValues(\"email\")\n const sendemail = getValues(\"sendemail\")\n\n var errorMessage = \"\"\n if (first.length <= 0) {\n errorMessage = \"First name is required.\"\n }\n else if (last.length <= 0) {\n errorMessage = \"Last name is required.\"\n }\n // else if (address.length <= 0) {\n // errorMessage = \"Address is required.\"\n // }\n // else if (city.length <= 0) {\n // errorMessage = \"City is required.\"\n // }\n // else if (state.length <= 0) {\n // errorMessage = \"State is required.\"\n // }\n else if (zip.length <= 0) {\n errorMessage = \"Zip is required.\"\n }\n // else if (email.length <= 0) {\n // errorMessage = \"Email is required.\"\n // }\n // else if (selectedItems?.length <= 0) {\n // errorMessage = \"Please select at least 1 item.\"\n // }\n else if (paymentMethodWatch === \"CC\" && processorToken.length <= 0) {\n errorMessage = \"Please enter a valid credit card.\"\n }\n else if (Number(totalAmount.toFixed(2)) <= 0) {\n errorMessage = \"Please select a checkout item or additional donation to proceed.\"\n }\n\n if (errorMessage.length > 0) {\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n const checkoutData = await checkout({\n eventid: Number(eventState.eventId),\n key: dataRows?.key,\n participantid: headerDataRows?.participantid,\n company: company,\n first: first,\n last: last,\n address: address,\n address2: address2,\n city: city,\n state: state,\n zip: zip,\n email: email,\n additionaldonation: additionalDonation,\n ccfeesexactamount: includeCCFees ? eventState?.ccfee : 0, // Number(ccfees.toFixed(2)),\n totalamount: Number(totalAmount.toFixed(2)),\n paymentmethod: paymentMethodWatch,\n sendemail: sendemail,\n processortoken: processorToken,\n subtotal: subtotal,\n itemid: selectedItems?.map((item) => {\n return item.itemid\n }),\n historyid: selectedItems?.map((item) => {\n return item.historyid\n })\n })\n\n if (checkoutData.status === 'success') {\n setAdditionalDonation(0)\n setDialogObj({msg: \"Checkout was successful.\", show: true})\n setInvalidateIframe(invalidateIframe+1)\n setProcessorToken('')\n if (stripePaymentElement) {\n stripePaymentElement.clear()\n }\n queryClient.invalidateQueries(['checkout'])\n // queryClient.invalidateQueries(['checkoutdetail'])\n getCheckoutDetailData()\n }\n else {\n setDialogObj({msg: checkoutData.message, show: true})\n }\n }\n\n setisLoadingBackdrop(false)\n }\n\n const buildCheckoutConfirm = () => {\n var message\n const itemMessage = selectedItems?.map(item => {\n return (\n
\n #{item.itemnumber} - {item.itemname} - Qty: {item.quantity} - ${item.amount}
\n
\n )\n })\n\n\n const first = getValues(\"first\")\n const last = getValues(\"last\")\n const name = first + ' ' + last\n\n const itemMessageFinal = <>\n <>{name}

\n {(selectedItems && selectedItems?.length > 0) &&\n <>{itemMessage}
\n }\n {/*{additionalDonation &&*/}\n <>\n Additional Donation: {formatMoney(Number(additionalDonation ? additionalDonation : 0))}
\n \n {/*}*/}\n {includeCCFees &&\n <>\n Processing Fees: {formatMoney(Number(ccfees))}
\n \n }\n Total Amount: {formatMoney(Number(totalAmount.toFixed(2)))}\n \n\n message =\n <>\n {itemMessageFinal}\n Are you sure you want to purchase these items?\n \n\n return message\n }\n\n const handleResend = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n const email = getValues(\"email\")\n const resendData = await resendCheckout(Number(eventState.eventId), dataRows?.key, email)\n\n if (resendData.status === 'success') {\n setDialogObj({msg: \"Receipt was successfully sent to \" + email + \".\", show: true})\n }\n else {\n setDialogObj({msg: resendData.message, show: true})\n }\n setisLoadingBackdrop(false)\n }\n\n const generatePDFClick = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n const resendData = await generatePDF(Number(eventState.eventId), dataRows?.key)\n if (resendData) {\n download(resendData, eventState.eventName + '-' + dataRows?.key + '-receipt.pdf', 'application/pdf');\n }\n setisLoadingBackdrop(false)\n }\n\n const getParticipantOptions = useMemo(\n () => participantsData?.map((item) => {\n return {value:item.key, label: item?.participantinfo, key: item.key, id: item.key}\n }),\n [participantsData]\n )\n\n const showCheckoutDialogMessage = (e) => {\n e.stopPropagation()\n if (Number(totalAmount.toFixed(2)) <= 0) {\n const errorMessage = \"Please select a checkout item or additional donation to proceed.\"\n setDialogObj({msg: errorMessage, show: true})\n }\n else if (paymentMethodWatch === \"CC\" && processorToken.length <= 0) {\n const errorMessage = \"Please enter a valid credit card.\"\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n setShowCheckoutDialog(true)\n }\n }\n\n const getPaymentMethodOptions = () => {\n if (paymentMethodList && paymentMethodList.length > 0) {\n const options = paymentMethodList.map(pml => {\n return { value: pml.paymentmethodvalue, label: pml.paymentmethod }\n })\n return options\n }\n else {\n return []\n }\n }\n\n return (\n <>\n
\n \n \n {/**/}\n setShowResendDialog(false)}\n onConfirm={() => handleResend()}\n confirmText=\"Resend Receipt\"\n />\n setShowCheckoutDialog(false)}\n onConfirm={() => handleCheckout()}\n confirmText=\"Checkout\"\n />\n <>\n \n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n
\n \n {\n console.log(newValue)\n setParticipantValue(newValue)\n }}\n getOptionLabel={(option) => option.label}\n // inputValue={inputValue}\n // onInputChange={(event, newInputValue) => {\n // setInputValue(newInputValue);\n // }}\n renderOption={(props, option: any) => {\n return (\n
  • \n {option.label}\n
  • \n );\n }}\n renderInput={(params) => {\n return ()\n }}\n />\n
    \n
    \n \n \n \n \n \n \n {\n return {label: state.value, value: state.value}\n })}\n />\n \n \n
    \n \n Send Email\n
    \n\n\n

    Subtotal: {formatMoney(subtotal | 0)} ({quantity | 0} items)

    \n {(eventState.allowpaymentoffees) &&\n
    \n \n Include CC Fees: {formatMoney(ccfees)}\n
    \n }\n handleAdditionalDonationChange(value)}\n />\n handleAdditionalDonationChange(value)}\n />\n \n
    \n
    \n
    \n
    \n {return item?.historyid})}\n onSelectionModelChange={(ids) => {\n const selectedIDs = new Set(ids);\n const selectedRowData = checkoutData?.checkoutitems?.filter((item) =>\n selectedIDs.has(item.historyid)\n )\n setSelectedItems(selectedRowData);\n }}\n />\n
    \n {!dataRows?.isreadonly &&\n setAddItemDialogObj({msg: '', show: true})}>\n Add Item\n \n }\n
    \n
    \n
    \n
    \n \n
    \n {(creditCardInfo?.paymentprocessorcode === 2 && paymentMethodWatch === 'CC') &&\n
    \n }\n {!dataRows?.isreadonly &&\n <>\n {showCheckoutDialogMessage(e)}}\n >\n Complete Checkout\n \n \n }\n {dataRows?.isreadonly &&\n <>\n {setShowResendDialog(true)}}\n >\n Void Transaction\n \n {setShowResendDialog(true)}}\n >\n Resend Receipt\n \n generatePDFClick()}\n >\n PDF\n \n \n }\n \n
    \n
    \n \n )\n}\n\nexport default CheckoutAllForm\n","import React, {useEffect, useState} from 'react'\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport {AppBar, Button, Grid, Typography} from '@mui/material'\n\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport CheckoutDetails from './CheckoutDetails'\nimport CheckoutForm from './CheckoutForm'\nimport CheckoutOrdersGrid from './CheckoutOrdersGrid'\nimport styles from './CheckoutPage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {CheckoutData, CheckoutObject} from \"../../queries/useFetchCheckout\";\nimport CheckoutPage from \"./CheckoutPage\";\nimport CheckoutAllPage from \"./CheckoutAllPage\";\n\nexport enum CheckoutPageTab {\n Checkout,\n ResendReceipt,\n PDF,\n Void,\n None\n}\n\ninterface Params {\n eventid: string\n}\n\nconst CheckoutMainPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const [tab, setTab] = useState(CheckoutPageTab.None)\n const [showPayment, setShowPayment] = useState(true)\n const [tabSel, setTabSel] = React.useState(0)\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTabSel(newValue)\n }\n\n\n return (\n
    \n

    Checkout

    \n
    \n
    \n \n \n {/**/}\n {/* Checkout*/}\n {/**/}\n \n \n \n \n {tabSel === 0 && (\n \n )}\n {tabSel === 1 && (\n \n )}\n \n \n
    \n
    \n
    \n )\n}\n\nexport default CheckoutMainPage\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type CheckoutDetail = {\n rownumber: number\n receiptnumber: number\n biddernumber: number\n biddername: string\n itemnumber: string\n itemname: string\n quantity: number\n amount: number\n}\n const checkoutDetailDefault = {\n rownumber: 0,\n receiptnumber: 0,\n biddernumber: 0,\n biddername: \"\",\n itemnumber: \"\",\n itemname: \"\",\n quantity: 0,\n amount: 0\n}\nexport type CheckoutHeader = {\n rownumber: number\n receiptnumber: number\n biddernumber: number\n biddername: string\n checkoutdate: string\n subtotal: number\n additionaldonation: number\n ccfees: number\n totalamount: number\n source: string\n paymentmethod: string,\n details: CheckoutDetail[]\n}\n\nconst checkoutHeaderDefault = {\n rownumber: 0,\n receiptnumber: 0,\n biddernumber: 0,\n biddername: \"\",\n checkoutdate: \"\",\n subtotal: 0,\n additionaldonation: 0,\n ccfees: 0,\n totalamount: 0,\n source: \"\",\n paymentmethod: \"\",\n details : [checkoutDetailDefault]\n}\n\n\n\nexport const globalAuctionReportFetcher = async (body) => {\n const { data } = await axios.post('/reportcheckout', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData.checkoutheaderlist as CheckoutHeader[]\n const details = parsedData.checkoutdetaillist as CheckoutDetail[]\n if(details)\n {\n details.forEach( detail => {\n var header = headers.find(header=> header.biddernumber === detail.biddernumber && header.receiptnumber === detail.receiptnumber) \n if(header.details){\n header.details.push(detail)\n }else{\n header.details = [detail]\n }\n }\n )\n }\n return headers\n}\n\nexport const useFetchReportCheckout = (eventiDvalue) => {\n return useQuery(\n ['checkoutheader', eventiDvalue],\n () => globalAuctionReportFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n placeholderData: [checkoutHeaderDefault] }\n )\n}\n\nexport const globalAuctionReportDetailsFetcher = async (body) => {\n const { data } = await axios.post('/reportcheckout', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n const details = parsedData.checkoutdetaillist as CheckoutDetail[]\n \n return details\n}\n\nexport const useFetchReportCheckoutDetails = (eventiDvalue) => {\n return useQuery(\n ['checkoutdetails', eventiDvalue],\n () => globalAuctionReportDetailsFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n placeholderData: [checkoutDetailDefault]\n }\n )\n}\n","import React, { useState, useMemo } from 'react'\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport Paper from '@mui/material/Paper';\nimport Stack from '@mui/material/Stack';\nimport { DataGridPremium, DataGridPremiumProps, GridToolbarContainer, GridToolbarExport, GridValueFormatterParams } from '@mui/x-data-grid-premium';\nimport {useFetchReportCheckout} from \"../../queries/useFetchReportCheckout\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport { useParams } from 'react-router'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport dayjs from \"dayjs\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport { makeStyles } from \"@material-ui/core\";\nimport Button, {ButtonProps} from \"@mui/material/Button\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport download from 'downloadjs';\nimport axios from \"axios\";\nimport styles from './AuctionSummaryReportPage.module.css'\n\ninterface Params {\n eventid: string\n}\n\nfunction CustomToolbar() {\n const eventState = useEventState()\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const generateAuctionSummaryClick = async () => {\n axios.post('/auctionsummaryexcel', {eventid: eventState.eventId}, {responseType: \"blob\"}).then(response => {\n var filename = eventState.eventName + '-auctionsummary.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n })\n }\n\n const generateAuctionDetailClick = async () => {\n axios.post('/auctionsummaryexceldetail ', {eventid: eventState.eventId}, {responseType: \"blob\"}).then(response => {\n var filename = eventState.eventName + '-auctiondetail.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n })\n }\n return (\n \n \n {/* */}\n generateAuctionSummaryClick()}\n >\n EXPORT SUMMARY\n \n {/* { history.push(importPath) }}*/}\n {/*>*/}\n {/* IMPORT PARTICIPANTS*/}\n {/**/}\n {/* { history.push(importDMPPath) }}*/}\n {/*>*/}\n {/* IMPORT DONORSNAP*/}\n {/**/}\n generateAuctionDetailClick()}\n >\n EXPORT DETAIL\n \n {/**/}\n \n \n );\n}\n\n\nconst useStyle = makeStyles({\n root: {\n \"& .MuiDataGrid-columnHeaderTitle\": {\n overflow: \"visible\",\n lineHeight: \"1.43rem\",\n whiteSpace: \"normal\"\n }\n }\n});\n\n const AuctionSummaryReportPage = () => {\n const [isLoadingBackdrop, setisLoadingBackdrop] = React.useState(false)\n\n\n function DetailPanelContent({ row: rowProp }: { row: Header }) {\n return (\n \n \n \n {`Receipt #${rowProp.receiptnumber}`}\n \n \n \n Customer information\n \n {rowProp.biddername}\n {rowProp.biddernumber}\n \n \n \n Payment Details\n \n \n {`${rowProp.source}, ${rowProp.paymentmethod}`}\n \n {`Purchase Total ${formatMoney(Number(rowProp.subtotal))}, Total Checkout ${formatMoney(Number(rowProp.totalamount))}`}\n \n \n \n row.rownumber}\n columns={[\n { field: 'biddernumber', headerName: 'Bidder #' },\n { field: 'biddername', headerName: 'Bidder Name' , minWidth: 150},\n { field: 'itemnumber', headerName: 'Item #' },\n { field: 'itemname', headerName: 'Item Name', minWidth: 150},\n { field: 'quantity', headerName: 'Quantity', type: 'number' },\n { field: 'amount', headerName: 'Amount',\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n ]}\n rows={rowProp.details}\n sx={{ flex: 1 }}\n hideFooter\n />\n \n \n \n );\n }\n \n \n type Header = typeof rows[number];\n const columns = [\n { field: 'rownumber', headerName: 'Row Number' },\n { field: 'biddernumber', headerName: 'Bidder #', minWidth: 100},\n { field: 'receiptnumber', headerName: 'Receipt #', minWidth: 100 },\n { field: 'biddername', headerName: 'Bidder Name', minWidth: 200},\n { field: 'checkoutdate', headerName: 'Checkout Date', minWidth: 200 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },},\n { field: 'subtotal', headerName: 'Subtotal', minWidth: 100 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n { field: 'additionaldonation', headerName: 'Additional Donation', minWidth: 100 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n { field: 'ccfees', headerName: 'Fees', minWidth: 100 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n { field: 'totalamount', headerName: 'Total', minWidth: 100 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n { field: 'source', headerName: 'Source', minWidth: 100 },\n { field: 'paymentmethod', headerName: 'Payment Method', minWidth: 100 },\n ];\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const event = useEventState()\n console.log(event)\n var rows = []\n\n const { data , isLoading } = useFetchReportCheckout(event?.eventId);\n if(data){\n rows = data;\n }\n const getDetailPanelContent = React.useCallback<\n NonNullable\n >(({ row }) => , []);\n\n const getDetailPanelHeight = React.useCallback(() => 400, []);\n const classes = useStyle();\n\n return (\n
    \n

    Auction Summary Report

    \n row.rownumber}\n className={classes.root}\n autoHeight\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n getDetailPanelHeight={getDetailPanelHeight}\n getDetailPanelContent={getDetailPanelContent}\n columnVisibilityModel={{\n // Hide column rownumber the other columns will remain visible\n rownumber: false,\n }}\n components={{\n Toolbar: CustomToolbar,\n }}\n\n \n />\n
    \n );\n }\n export default AuctionSummaryReportPage\n","\nimport {\n useHistory,\n} from 'react-router-dom'\n\nimport styles from './AuthPage.module.css'\nimport {useParams} from \"react-router\";\nimport axios from \"axios\";\nimport React, {useEffect} from \"react\";\nimport {AuthToken, loginUser} from \"../../slices/authSlice\";\nimport {parseJwt} from \"../AuthPage/LoginForm/useLoginMutation\";\nimport {useDispatch} from \"react-redux\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\n\nexport enum AuthPageSubPaths {\n login = '/login',\n forgotPassword = '/forgotPassword',\n resetPassword = '/resetPassword/:token'\n}\n\ninterface Params {\n tokenid: string\n}\nconst AdminAuthPage = () => {\n const { tokenid } = useParams()\n const dispatch = useDispatch()\n const history = useHistory()\n\n useEffect(() => {\n const getTokenFromAdmin = async () => {\n const json = JSON.stringify({ token: tokenid })\n const data: any = await axios.post('/adminlogin', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n\n localStorage.setItem('tokenadmin', data.token)\n const parsedToken: AuthToken = parseJwt(data.token)\n // update redux\n dispatch(loginUser(parsedToken))\n\n history.push('/home')\n }\n getTokenFromAdmin();\n }, [tokenid])\n\n return (\n
    \n
    \n \n
    \n
    \n )\n}\n\nexport default AdminAuthPage\n\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport const globalTextMessageFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/broadcasttextmessage', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.broadcastlist as []\n}\n\nexport const useUpdateBroadcastTextMessage = (body) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/broadcasttextmessage`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['textmessage', body.eventid])\n }\n })\n}\n\nexport const useFetchTextMessages = (eventid) => {\n return useQuery<[]>(\n ['textmessage', eventid],\n () => globalTextMessageFetcher(eventid),\n {}\n )\n}","import React, {useEffect, useState} from 'react'\nimport {DialogTitle, Grid, TextField, Tooltip, useTheme} from \"@mui/material\";\n\nimport styles from \"./BroadcastMessagePage.module.css\";\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport {useFetchParticpants} from \"../ParticipantsPage/useFetchParticipants\";\nimport {useParams} from \"react-router\";\nimport HookForm from \"../../components/common/HookForm\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport {useForm} from \"react-hook-form\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n IconButton,\n useMediaQuery\n} from \"@material-ui/core\";\nimport {\n useCartEmailPresend,\n useBroadcastMessage,\n useCartEmailSend\n} from \"./useBroadcastMessage\";\nimport {Message as MessageIcon, AddShoppingCartOutlined, Add, Edit, Delete, Message} from \"@material-ui/icons\";\n\nimport Paper from '@material-ui/core/Paper'\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {DataGridPremium, GridCellParams, GridColDef, GridValueFormatterParams} from \"@mui/x-data-grid-premium\";\nimport {Sponsor, useFetchSponsors} from \"../../queries/events/useFetchSponsors\";\nimport {useFetchTextMessages, useUpdateBroadcastTextMessage} from \"../../queries/useFetchBroadcastTextMessages\";\nimport DateTimeInput from \"../../components/common/inputs/DateTimeInput\";\nimport {useQueryClient} from \"react-query\";\n\ninterface Params {\n eventid: string\n}\n\ntype FormData = {\n broadcasttextid: number,\n broadcasttextphonetitle: string,\n broadcasttextmessage: string,\n broadcasttextstatus: string,\n broadcasttextsentdate: string\n}\n\nconst BroadcastMessagePage = () => {\n const { eventid } = useParams()\n const formMethods = useForm()\n const {watch, getValues, setValue, reset} = formMethods\n const broadcastMessage = useBroadcastMessage()\n const emailPresend = useCartEmailPresend()\n const queryClient = useQueryClient()\n const emailSend = useCartEmailSend()\n const { data: particpants, isLoading: dataLoading } = useFetchParticpants(eventid)\n const [distinctparticipantsauthorizedtexting, setDistinctparticipantsauthorizedtexting] = React.useState(1)\n const [messageList, setMessageList] = React.useState([{ value: '', label: '' }])\n const [messageTextList, setMessageTextList] = React.useState([{ value: '', label: '' }])\n const [sendNowMessageValueList, setSendNowMessageValueList] = React.useState([{ value: 'Sent', label: 'Send Now' }, { value: 'Scheduled', label: 'Send Later' }])\n const [emailPre, setEmailPre] = React.useState({ carts: 0, cartstotal: 0, lastdatesent: '' })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reload, setReload] = React.useState(0)\n const [isLoading, setIsLoading] = React.useState(false)\n const [dataRows, setDataRows] = React.useState([])\n const [textParticipants, setTextParticipants] = React.useState([])\n const { data: textMessageData, isLoading: textMessagesLoading } = useFetchTextMessages(Number(eventid))\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const whenToSend = watch('broadcasttextstatus')\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n useEffect(() => {\n preSend()\n getPhoneTextParticipants()\n }, [eventid, reload])\n\n useEffect(() => {\n console.log(textMessageData)\n if (textMessageData && textMessageData.length > 0) {\n const newDataRows = textMessageData.map((newdata: any) => {\n return {id: newdata.broadcasttextid, ...newdata}\n })\n setDataRows(newDataRows)\n }\n }, [textMessageData])\n\n useEffect(() => {\n let selectMessageList = []\n if (particpants && particpants.length > 0) {\n selectMessageList = particpants?.filter((item) => item.email && item.lastlogindate).map((obj) => {\n return { value: obj?.email, label: obj?.email }\n })\n }\n selectMessageList.unshift({ value: \"ALL\", label: \"ALL\" })\n setMessageList(selectMessageList)\n }, [particpants])\n\n useEffect(() => {\n let selectMessageList = []\n if (textParticipants && textParticipants.length > 0) {\n selectMessageList = textParticipants?.filter((item) => item.phone).map((obj) => {\n return { value: obj?.phone, label: obj?.participantinfo }\n })\n }\n var allLabel = 'ALL (' + distinctparticipantsauthorizedtexting + ' phone numbers currently opted in)'\n\n\n selectMessageList.unshift({ value: \"ALL\", label: allLabel })\n setMessageTextList(selectMessageList)\n }, [textParticipants])\n\n\n const getPhoneTextParticipants = async () => {\n const response = await axios.post(`/broadcasttextmessagelist`, {\n eventid: eventid\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n setDistinctparticipantsauthorizedtexting(parsedResponse.distinctparticipantsauthorizedtexting)\n setTextParticipants(parsedResponse.participantlist)\n }\n\n const preSend = async () => {\n let body = {\n eventid: eventid\n }\n\n await emailPresend.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n const dateLastSent = dayjs(json.lastdatesent).format('MM-DD-YYYY')\n const timeLastSent = dayjs(json.lastdatesent).format('h:mm A')\n const dateFormat = dateLastSent + \" at \" +timeLastSent\n setEmailPre({carts: json.carts, cartstotal: json.cartstotal, lastdatesent: json.lastdatesent ? dateFormat : '' })\n }\n })\n }\n\n\n const onBroadcastTextSubmit = async (data: any) => {\n setIsLoading(true)\n let body = {\n eventid: eventid,\n broadcasttextmessage: data.broadcasttextmessage\n }\n\n if (data.broadcasttextid !== null) {\n body['broadcasttextid'] = data.broadcasttextid\n }\n\n if (data.broadcasttextphonetitle !== 'ALL') {\n body['broadcasttextphone'] = data.broadcasttextphonetitle\n }\n\n if (whenToSend === 'Scheduled') {\n body['broadcasttextscheduledate'] = dayjs(data.broadcasttextsentdate).format('YYYY-MM-DDTHH:mm:ss')\n }\n\n const { data: putMessageData } = await axios.put('/broadcasttextmessage', body)\n const json = JSON.parse(putMessageData.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n queryClient.invalidateQueries(['textmessage', Number(eventid)])\n // setDialogMsg('Text Message was sent successfully.')\n setBroadcastTextDlg(false)\n }\n setIsLoading(false)\n }\n\n const onSubmit = async (data: any) => {\n let body = {\n eventid: eventid,\n message: data.message\n }\n\n if (data.email !== 'ALL') {\n body['email'] = data.email\n }\n\n await broadcastMessage.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n // console.log(json)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Message was sent successfully.')\n setBroadcastDlg(false)\n }\n }\n })\n }\n\n const onSubmitCart = async (data: any) => {\n let body = {\n eventid: eventid,\n subjectline: data.subjectline,\n }\n\n await emailSend.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n // console.log(json)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Email sent successfully.')\n setCartsDlg(false)\n }\n }\n })\n }\n\n\n const closeDialog = () => {\n setDialogObj({ msg: \"\", id: 0 })\n setDialogMsg(\"\")\n }\n\n const [brodacastDlg, setBroadcastDlg] = React.useState(false);\n const [brodacastTextDlg, setBroadcastTextDlg] = React.useState(false);\n const [cartsDlg, setCartsDlg] = React.useState(false);\n\n const handleOpenBroadcast = () => {\n setBroadcastDlg(true);\n };\n\n const handleOpenBroadcastTextMessages = () => {\n reset({\n 'broadcasttextid': null,\n 'broadcasttextphonetitle': 'ALL',\n 'broadcasttextmessage': '',\n 'broadcasttextstatus': 'Sent',\n 'broadcasttextsentdate': dayjs().add(30, 'minutes').toString()\n })\n setBroadcastTextDlg(true);\n };\n\n const handleCloseBroadcast = () => {\n setBroadcastDlg(false);\n };\n\n const handleCloseBroadcastText = () => {\n setBroadcastTextDlg(false);\n };\n\n const handleOpenCart = () => {\n setCartsDlg(true);\n };\n\n const handleCloseCart = () => {\n setCartsDlg(false);\n };\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n id: Number(params.row.broadcasttextid),\n msg: \"Are you sure you want to delete message - \" + params.row.broadcasttextphonetitle + ' - ' + params.row.broadcasttextmessage,\n })\n }\n\n const handleEdit = (params: GridCellParams) => {\n reset({\n 'broadcasttextid': params.row.broadcasttextid,\n 'broadcasttextphonetitle': params.row.broadcasttextphonetitle,\n 'broadcasttextmessage': params.row.broadcasttextmessage,\n 'broadcasttextstatus': params.row.broadcasttextstatus,\n 'broadcasttextsentdate': params.row.broadcasttextscheduledate\n })\n setBroadcastTextDlg(true)\n }\n\n const columns: GridColDef[] = [\n {\n field: 'broadcasttextid',\n headerName: '',\n disableExport: true,\n // renderHeader: () => {\n // return (\n // handleAdd()}\n // size=\"small\">\n // \n // \n // )\n // },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}\n >\n \n \n )\n },\n {\n field: 'broadcasttextdate',\n headerName: 'Date',\n width: 200,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'broadcasttextphonetitle',\n headerName: 'To',\n width: 150,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return params.value === 'ALL' ? 'ALL' : \"Other\"\n // },\n },\n {\n field: 'broadcasttextstatus',\n type: 'string',\n headerName: 'Status',\n minWidth: 150,\n sortable: false,\n },\n {\n field: 'broadcasttextmessage',\n type: 'string',\n headerName: 'Message',\n minWidth: 120,\n sortable: false,\n headerAlign: \"center\",\n align: 'center',\n renderCell: (params) => (\n \n \n \n \n \n )\n },\n {\n field: 'broadcasttextcount',\n type: 'number',\n headerName: 'Text Count',\n minWidth: 120,\n sortable: false,\n },\n {\n field: 'action',\n headerName: 'Delete',\n disableExport: true,\n width: 120,\n sortable: false,\n renderCell: (params) => (\n
    \n
    \n { handleDelete(params) }}\n >\n \n \n
    \n
    \n )\n }\n ]\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"broadcasttextid\": Number(id),\n }\n\n const { data } = await axios.delete('/broadcasttextmessage', {data: finaldata})\n const json = JSON.parse(data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n queryClient.invalidateQueries(['textmessage', Number(eventid)])\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n return (\n
    \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n <>\n \n Unpaid Items in Carts\n \n \n\n \n Send a reminder email to all participants with unpaid terms remaining in their cart. It will include a list of their items and a link to the checkout page.\n \n\n \n Carts with items not checked out: {emailPre.carts}\n \n\n {emailPre?.lastdatesent.length > 0 &&\n \n This email was last sent on {emailPre.lastdatesent}\n \n }\n\n \n \n \n \n \n \n Cancel\n \n \n Send\n \n \n \n \n \n \n \n\n <>\n \n Broadcast Message\n \n \n \n \n \n \n \n \n \n \n \n \n Cancel\n \n \n Send\n \n \n \n \n \n \n \n\n <>\n \n Broadcast Text Message\n \n \n \n \n \n \n \n \n \n \n \n \n \n {whenToSend === 'Scheduled' &&\n \n \n \n }\n \n \n \n \n Cancel\n \n \n Send\n \n \n \n \n \n \n \n\n

    Communication Tools

    \n \n \n Emails\n \n \n {\n handleOpenCart()\n }}\n startIcon={}>\n UNPAID ITEMS IN CARTS\n \n \n\n \n In-app messages to people currently viewing the page\n \n \n {\n handleOpenBroadcast()\n }}\n startIcon={}>\n BROADCAST MESSAGE\n \n \n \n Text Messages via cell phone\n \n \n {\n setReload(reload+1)\n handleOpenBroadcastTextMessages()\n }}\n startIcon={}>\n BROADCAST TEXT MESSAGE\n \n \n \n \n \n \n \n\n \n {/**/}\n
    \n )\n}\n\nexport default BroadcastMessagePage\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\nimport {CheckoutObject, globalCheckoutFetcher} from \"../../queries/useFetchCheckout\";\n\nexport const useBroadcastMessage = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/broadcastmessage`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['broadcastmessage'])\n }\n })\n}\n\nexport const useBroadcastTextMessage = (body) => {\n return useQuery(\n ['broadcasttextmessage', body.eventid],\n () => globalBroadcastTextMessageFetcher(body),\n {\n staleTime: 0,\n keepPreviousData: false\n }\n )\n}\n\nexport const globalBroadcastTextMessageFetcher = async (body) => {\n const { data } = await axios.post('/broadcasttextmessage', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as CheckoutObject\n}\n\n\nexport const useCartEmailPresend = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/cartemailpresend`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['cartemailpresend'])\n }\n })\n}\n\n\nexport const useCartEmailSend = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/cartemailsend`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['cartemailsend'])\n }\n })\n}\n","import React, {useEffect} from 'react'\nimport {Grid} from \"@mui/material\";\n\nimport styles from \"./ForceRefreshPage.module.css\";\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport {useFetchParticpants} from \"../ParticipantsPage/useFetchParticipants\";\nimport {useParams} from \"react-router\";\nimport HookForm from \"../../components/common/HookForm\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport {useForm} from \"react-hook-form\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText} from \"@material-ui/core\";\nimport {useForceRefresh, useForceLogout} from \"./useForceRefresh\";\nimport Paper from \"@material-ui/core/Paper\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport Typography from \"@mui/material/Typography\";\n\ninterface Params {\n eventid: string\n}\n\nconst ForceRefreshPage = () => {\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1)\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n\n const classes = useStyles()\n const { eventid } = useParams()\n const formMethods = useForm()\n const forceRefresh = useForceRefresh()\n const forceLogout = useForceLogout()\n const { data: particpants, isLoading } = useFetchParticpants(eventid)\n const [particpantsList, setParticpantsList] = React.useState([{ value: '', label: '' }])\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n let selectList = []\n if (particpants && particpants.length > 0) {\n selectList = particpants?.filter((item) => item.email && item.lastlogindate).map((obj) => {\n return { value: obj?.email, label: obj?.email }\n })\n }\n selectList.unshift({ value: \"All\", label: \"All\" })\n setParticpantsList(selectList)\n }, [particpants])\n\n const onSubmit = async (data: any) => {\n let body = {\n eventid: eventid\n }\n\n if (data.email !== 'All') {\n body['email'] = data.email\n }\n\n await forceRefresh.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Force Refresh was sent successfully.')\n }\n }\n })\n }\n\n const onSubmitForceLogout = async (data: any) => {\n let body = {\n eventid: eventid\n }\n\n if (data.email !== 'All') {\n body['email'] = data.email\n }\n\n await forceLogout.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Force Logout was sent successfully.')\n }\n }\n })\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n
    \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n

    Force Refresh

    \n \n \n \n \n \n \n \n Submit\n \n \n \n \n \n\n \n \n

    Force Logout

    \n
    \n \n \n \n \n \n Submit\n \n \n
    \n \n
    \n )\n}\n\nexport default ForceRefreshPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useForceRefresh = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/eventrefresh`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['forcerefresh'])\n }\n })\n}\n\nexport const useForceLogout = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/forcelogout`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['forcelogout'])\n }\n })\n}\n","import React, {useEffect} from 'react'\nimport styles from \"./TransferPage.module.css\";\nimport {useParams} from \"react-router\";\nimport {Checkbox, FormControlLabel, Grid} from \"@mui/material\";\nimport Paper from \"@material-ui/core/Paper\";\nimport SelectInput from \"../../components/common/inputs/SelectInput\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport {Button, Dialog, DialogActions, DialogContent} from \"@material-ui/core\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport axios from \"axios\";\nimport HookForm from \"../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\nimport {DateInput} from \"@progress/kendo-react-dateinputs\";\nimport dayjs from \"dayjs\";\n\ninterface FormData {\n batchCodeSelect: string\n batchCodeText: string\n CampaignSelect: string\n CampaignText: string\n AppealSelect: string\n AppealText: string\n AccountingCodeSelect: string\n AccountingCodeText: string\n DonationTypeSelect: string\n DonationTypeText: string\n}\nconst DonationPage = (params) => {\n const formMethods = useForm()\n const { setValue, watch, getValues } = formMethods\n const { reset } = formMethods\n const eventid = params.eventid\n\n const batchCodeSelectWatch = watch('batchCodeSelect')\n const batchCodeTextWatch = watch('batchCodeText')\n const campaignSelectWatch = watch('CampaignSelect')\n const campaignTextWatch = watch('CampaignText')\n const appealSelectWatch = watch('AppealSelect')\n const appealTextWatch = watch('AppealText')\n const donationTypeSelectWatch = watch('DonationTypeSelect')\n const dontaionTypeTextWatch = watch('DonationTypeText')\n const accountCodeSelectWatch = watch('AccountingCodeSelect')\n const accountCodeTextWatch = watch('DonationTypeText')\n const [donationData, setDonationData] = React.useState({numberOfCheckoutsPosted: 0, numberOfItemsPosted: 0, totalAmtPosted: 0, numberOfCheckoutsUnpostedLink: 1,\n numberOfItemsUnpostedLink: 1, totalAmtUnpostedLink: 1,\n extraAmtUnpostedLink: 0, numberOfCheckoutsUnpostedUnlink: 0,\n numberOfItemsUnpostedUnlink: 0, totalAmtUnpostedUnlink: 0, campaignlist: [], appeallist: [], batchcodelist: [], accountingcodelist: [], donationtypelist:[]})\n\n\n const [valueDate, setDateValue] = React.useState(new Date())\n const [dialogComplete, setdialogComplete] = React.useState({open: false, message: \"\"})\n const changeDate = (event) => {\n setDateValue(event.value);\n }\n\n const [checkedAck, setAckChecked] = React.useState(false);\n const handleAckChange = (event: React.ChangeEvent) => {\n setAckChecked(event.target.checked);\n }\n\n const [checkedFair, setFairChecked] = React.useState(false);\n const handleFairChange = (event: React.ChangeEvent) => {\n setFairChecked(event.target.checked);\n }\n\n useEffect(() => {\n getIntegrationDonation()\n }, [eventid])\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n const getBatchCodeText = (id) => {\n var textReturn = ''\n donationData?.batchcodelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const batchCodeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.batchcodelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const getCampaignText = (id) => {\n var textReturn = ''\n donationData?.campaignlist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getCampaignOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.campaignlist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n\n const getIntegrationDonation = async () => {\n axios.post('/integrationdonation', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setDonationData(parsedData)\n })\n }\n\n const getAppealText = (id) => {\n var textReturn = ''\n donationData?.appeallist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getAppealOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.appeallist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const getAccountingText = (id) => {\n var textReturn = ''\n donationData?.accountingcodelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getAccountingCodeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.accountingcodelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n // return [{value: 'none', label: 'None'}]\n }\n\n const getDonationText = (id) => {\n var textReturn = ''\n donationData?.donationtypelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getDonationTypeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.donationtypelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const onSubmit = async (data: any) => {\n\n console.log(data)\n }\n\n const handleSubmit = () => {\n var body = {}\n if (batchCodeTextWatch?.length > 0) {\n body['batchcode'] = batchCodeTextWatch\n }\n else {\n body['batchcode'] = getBatchCodeText(batchCodeSelectWatch)\n }\n if (campaignTextWatch?.length > 0) {\n body['campaign'] = campaignTextWatch\n }\n else {\n body['campaign'] = getCampaignText(campaignSelectWatch)\n }\n if (appealTextWatch?.length > 0) {\n body['appeal'] = appealTextWatch\n }\n else {\n body['appeal'] = getAppealText(appealSelectWatch)\n }\n if (dontaionTypeTextWatch?.length > 0) {\n body['donation'] = dontaionTypeTextWatch\n }\n else {\n body['donation'] = getDonationText(donationTypeSelectWatch)\n }\n if (accountCodeTextWatch?.length > 0) {\n body['accountingcode'] = accountCodeTextWatch\n }\n else {\n body['accountingcode'] = getAccountingText(accountCodeSelectWatch)\n }\n body['fairmarketvalue'] = checkedFair\n body['donationack'] = checkedAck\n body['eventid'] = Number(eventid)\n body['accountingdate'] = dayjs(valueDate).format('MM-DD-YYYY')\n\n\n axios.put('/integrationdonation', body, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setdialogComplete({message: parsedData.message, open: true})\n getIntegrationDonation()\n\n })\n }\n\n return (\n
    \n <>\n \n \n \n {/*Successfully added {dialogComplete.count} contacts to DonorSnap.*/}\n {dialogComplete.message}\n \n \n \n setdialogComplete({open: false, message: ''})}\n >\n Ok\n \n \n \n \n\n \n \n \n Donation Record Settings to Upload into DonorSnap\n \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n \n \n \n \n \n \n } label=\"Set value received to be the Fair Market Value\" />\n \n \n \n \n } label=\"Mark all donation records as Acknowledged\" />\n \n \n\n {donationData.extraAmtUnpostedLink > 0 &&\n <>\n \n \n
    For all additional donations made during checkout, use the following settings:
    \n
    \n
    \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n }\n \n \n {\n handleSubmit()\n }}\n >\n UPLOAD {donationData?.numberOfCheckoutsUnpostedLink} CHECKOUTS LINKED TO DONORSNAP CONTACTS\n \n \n \n
    {donationData.numberOfCheckoutsUnpostedLink} Checkouts not linked to DonorSnap Contacts
    \n
    \n \n
    {donationData.numberOfCheckoutsPosted} Checkouts already uploaded to DonorSnap
    \n
    \n
    \n\n \n
    \n\n
    \n )\n}\nexport default DonationPage","import React, {useEffect} from 'react'\nimport {Checkbox, DialogTitle, FormControlLabel, Grid, TextField, useTheme} from \"@mui/material\";\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\nimport styles from \"./TransferPage.module.css\";\nimport {useParams} from \"react-router\";\nimport HookForm from \"../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, useMediaQuery} from \"@material-ui/core\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport axios from \"axios\";\nimport download from 'downloadjs';\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport DonationPage from \"./DonationPage\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\n\ninterface Params {\n eventid: string\n}\n\nconst TransferPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const formMethods = useForm()\n const [dialog, setDialog] = React.useState({count:0, open: false, checkedoutonly: false})\n const [dialogComplete, setdialogComplete] = React.useState({count:0, open: false, message: \"\"})\n\n const [value, setValue] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n const [contactData, setContactData] = React.useState({linkparticipants: 0, linkparticipantsnotauthorized: 0, message: \"\", totalparticipants: 0,\n unlinkcheckedoutparticipants: 0, unlinkcheckedoutparticipantsnotauthorized: 0, unlinkparticipants: 0, unlinkparticipantsnotauthorized: 0,\n unlinkpendingcartitemsparticipants: 0, unlinkpendingcartitemsparticipantsnotauthorized: 0});\n\n const handleChange = (event: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n };\n\n function a11yProps(index: number) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n }\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n useEffect(() => {\n getContactDetails()\n }, [eventid])\n\n const onSubmit = async (data: any) => {\n let body = {\n eventid: eventid,\n message: data.message\n }\n\n if (data.email !== 'All') {\n body['email'] = data.email\n }\n }\n\n const getContactDetails = async () => {\n setLoading(true)\n axios.post('/integrationcontact', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setContactData(parsedData)\n setLoading(false)\n })\n }\n\n const putIntegrationContact = async (checkedoutOnly) => {\n setLoading(true)\n axios.put('/integrationcontact', {eventid: eventid, checkedoutonly: checkedoutOnly}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setLoading(false)\n setdialogComplete({count: dialog.count, open: true, message: parsedData.message})\n setDialog({count: 0, open: false, checkedoutonly: false})\n getContactDetails()\n })\n }\n\n const promptWithDialog = async (messageCount, checkoutonly) => {\n setDialog({count: messageCount, open: true, checkedoutonly: checkoutonly})\n }\n\n const generateContactReport = async () => {\n setLoading(true)\n axios.post('/integrationcontactreport', {eventid: eventid}, {responseType: \"blob\"}).then(response => {\n var filename = 'integrationcontactreport.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n setLoading(false)\n })\n }\n\n const batchCodeOptions = () => {\n return [{value: 'none', label: 'None'}]\n }\n\n return (\n
    \n <>\n \n Upload Participants to DonorSnap\n \n \n You are about to upload {dialog.count} participants into your DonorSnap account. Are you sure you want to continue?\n \n \n \n setDialog({count: 0, open: false, checkedoutonly: false})}\n >\n Cancel\n \n putIntegrationContact(dialog.checkedoutonly)}\n >\n UPLOAD TO DONORSNAP\n \n \n \n \n <>\n \n \n \n {/*Successfully added {dialogComplete.count} contacts to DonorSnap.*/}\n {dialogComplete.message}\n \n \n \n setdialogComplete({count: 0, open: false, message: ''})}\n >\n Ok\n \n \n \n \n\n\n \n \n\n\n

    Transfer to DonorSnap / Export

    \n \n \n \n \n {value === 0 && (\n \n {/**/}\n {/* Upload Options*/}\n {/**/}\n \n {\n generateContactReport()\n }}\n >\n EXPORT {contactData.totalparticipants} PARTICIPANTS TO EXCEL\n \n \n \n {\n promptWithDialog((contactData.unlinkparticipants - contactData.unlinkparticipantsnotauthorized), true)\n }}\n >\n UPLOAD {contactData.unlinkparticipants - contactData.unlinkparticipantsnotauthorized} PARTICIPANTS NOT LINKED\n \n \n \n {\n promptWithDialog(contactData.unlinkcheckedoutparticipants - contactData.unlinkpendingcartitemsparticipantsnotauthorized\n , false)\n }}\n >\n UPLOAD {contactData.unlinkcheckedoutparticipants - contactData.unlinkpendingcartitemsparticipantsnotauthorized\n } PARTICIPANTS NOT LINKED THAT CHECKED OUT\n \n \n \n
    {contactData.unlinkpendingcartitemsparticipantsnotauthorized} Participant(s) are not linked but have items in their cart
    \n
    \n \n
    {contactData.unlinkparticipantsnotauthorized} Participant(s) are not authorized and will not upload into DonorSnap
    \n
    \n
    \n\n\n )}\n {value === 1 && (\n <>\n \n \n )}\n \n
    \n )\n}\n\nexport default TransferPage\n","import React, {useEffect} from 'react'\nimport {Checkbox, DialogTitle, FormControlLabel, Grid, TextField, useTheme} from \"@mui/material\";\nimport styles from \"./EventTransferPage.module.css\";\nimport {useParams} from \"react-router\";\nimport HookForm from \"../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\nimport {Button, Dialog, DialogActions, DialogContent} from \"@material-ui/core\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport axios from \"axios\";\nimport download from 'downloadjs';\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\n\ninterface Params {\n eventid: string\n}\n\nconst EventTransferPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const formMethods = useForm()\n const [dialog, setDialog] = React.useState({count:0, open: false, checkedoutonly: false})\n const [dialogComplete, setdialogComplete] = React.useState({count:0, open: false, message: \"\"})\n\n const [value, setValue] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n const [contactData, setContactData] = React.useState({linkparticipants: 0, linkparticipantsnotauthorized: 0, message: \"\", totalparticipants: 0,\n unlinkcheckedoutparticipants: 0, unlinkcheckedoutparticipantsnotauthorized: 0, unlinkparticipants: 0, unlinkparticipantsnotauthorized: 0,\n unlinkpendingcartitemsparticipants: 0, unlinkpendingcartitemsparticipantsnotauthorized: 0});\n\n const handleChange = (event: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n };\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n useEffect(() => {\n getContactDetails()\n }, [eventid])\n\n const onSubmit = async (data: any) => {\n let body = {\n eventid: eventid,\n message: data.message\n }\n\n if (data.email !== 'All') {\n body['email'] = data.email\n }\n }\n\n const getContactDetails = async () => {\n setLoading(true)\n axios.post('/integrationcontact', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setContactData(parsedData)\n setLoading(false)\n })\n }\n\n const putIntegrationContact = async (checkedoutOnly) => {\n setLoading(true)\n axios.put('/integrationcontact', {eventid: eventid, checkedoutonly: checkedoutOnly}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setLoading(false)\n setdialogComplete({count: dialog.count, open: true, message: parsedData.message})\n setDialog({count: 0, open: false, checkedoutonly: false})\n getContactDetails()\n })\n }\n\n const promptWithDialog = async (messageCount, checkoutonly) => {\n setDialog({count: messageCount, open: true, checkedoutonly: checkoutonly})\n }\n\n const generateContactReport = async () => {\n setLoading(true)\n axios.post('/integrationcontactreport', {eventid: eventid}, {responseType: \"blob\"}).then(response => {\n var filename = 'integrationcontactreport.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n setLoading(false)\n })\n }\n\n const batchCodeOptions = () => {\n return [{value: 'none', label: 'None'}]\n }\n\n return (\n
    \n <>\n \n Upload Participants to DonorSnap\n \n \n You are about to upload {dialog.count} participants into your DonorSnap account. Are you sure you want to continue?\n \n \n \n setDialog({count: 0, open: false, checkedoutonly: false})}\n >\n Cancel\n \n putIntegrationContact(dialog.checkedoutonly)}\n >\n UPLOAD TO DONORSNAP\n \n \n \n \n <>\n \n \n \n {/*Successfully added {dialogComplete.count} contacts to DonorSnap.*/}\n {dialogComplete.message}\n \n \n \n setdialogComplete({count: 0, open: false, message: ''})}\n >\n Ok\n \n \n \n \n\n\n\n \n \n\n\n

    Transfer to EventSnap / Export

    \n \n {/**/}\n {/* Upload Options*/}\n {/**/}\n \n {\n generateContactReport()\n }}\n >\n EXPORT {contactData.totalparticipants} PARTICIPANTS TO EXCEL\n \n \n \n {\n promptWithDialog((contactData.unlinkparticipants - contactData.unlinkparticipantsnotauthorized), true)\n }}\n >\n UPLOAD {contactData.unlinkparticipants - contactData.unlinkparticipantsnotauthorized} PARTICIPANTS NOT LINKED\n \n \n \n {\n promptWithDialog(contactData.unlinkcheckedoutparticipants - contactData.unlinkpendingcartitemsparticipantsnotauthorized\n , false)\n }}\n >\n UPLOAD {contactData.unlinkcheckedoutparticipants - contactData.unlinkpendingcartitemsparticipantsnotauthorized\n } PARTICIPANTS NOT LINKED THAT CHECKED OUT\n \n \n \n
    {contactData.unlinkpendingcartitemsparticipantsnotauthorized} Participant(s) are not linked but have items in their cart
    \n
    \n \n
    {contactData.unlinkparticipantsnotauthorized} Participant(s) are not authorized and will not upload into DonorSnap
    \n
    \n
    \n \n
    \n )\n}\n\nexport default EventTransferPage\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventUserDefinedFetcher = async (body) => {\n const { data } = await axios.post('/evtuserdefined', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.eventuserdefined\n}\n\nexport const useFetchUserDefined = (eventiDvalue) => {\n return useQuery(\n ['UserDefined', eventiDvalue],\n () => globalEventUserDefinedFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n //keepPreviousData: true\n }\n )\n}\n\nexport const useCreateEvtUserDefined = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateEvtUserDefined = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateUserDefined = (eventiDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined', eventiDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventUserDefinedTable.module.css'\nimport {Checkbox, FormControlLabel} from \"@mui/material\";\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\n\ninterface FormData {\n name: string\n id: number\n active: boolean\n delete: boolean\n}\n\nexport const EventValueForm = ({ isValueOpen, setIsValueOpen, activeId, controlDropdownValues, setControlDropdownValues }) => {\n const formMethods = useForm()\n const title = activeId ? \"Edit Dropdown\" : \"Add New Dropdown\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false);\n const [activeValue, setActiveValue] = useState(true)\n const [dropdownData, setDropdownData] = React.useState({\n fieldtypelist: [],\n itemlist: [],\n });\n const [groupValues, setGroupValues] = useState({\n id: 0,\n name: '',\n active: true\n })\n\n const createMutation = useCreateEvtItem()\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n useEffect(() => {\n var element = controlDropdownValues.find(c => c.id === activeId)\n if (element) {\n setActiveValue(element?.active)\n reset({\n name: element?.name\n })\n }\n else {\n reset({\n name: ''\n })\n }\n}, [activeId, controlDropdownValues])\n\n const onSubmit = async (data: FormData) => {\n const cdv = controlDropdownValues\n if (activeId) {\n var element = cdv.find(c => c.id === activeId)\n element.name = data.name\n element.active = activeValue\n }\n else {\n var id = -1\n if (cdv && cdv.length > 0) {\n id = Math.min(...cdv.map(o => o.id))\n if (Math. sign(id) === -1) {\n id = (id + -1)\n console.log(id)\n }\n else {\n id = -1\n }\n }\n\n const newValues = [...cdv, {id: id, name: data.name, active: activeValue}]\n setControlDropdownValues(newValues)\n }\n\n setIsValueOpen(false)\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n } label=\"Active\" />\n \n \n \n setIsValueOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventUserDefinedTable.module.css'\nimport axios from \"axios\";\nimport {useCreateEvtUserDefined} from \"../../queries/useEventUserDefinedFetch\"\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\nimport {DataGridPremium, GridCellParams, GridColDef, GridValueFormatterParams} from \"@mui/x-data-grid-premium\";\nimport {Add, Delete, Edit} from \"@material-ui/icons\";\nimport {EventValueForm} from \"./EventValueForm\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {\n FormControl,\n FormControlLabel,\n InputLabel,\n ListItemText,\n MenuItem,\n OutlinedInput,\n Select,\n SelectChangeEvent\n} from \"@mui/material\";\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\n\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport dayjs, {Dayjs} from \"dayjs\";\n\n// 1 - boolean\n// 2 - Lookup\n// 3 - integer\n// 4 - money (double)\n// 5 - text\n// 6 - date\n// 7 - text ([1,3,5] multi lookup values\n// 8 - Datetime\n// 9 - Time\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\n}\n\nexport const EventUserDefinedForm = ({ isOpen, setIsOpen, gridParams, reloadForm, eventid, itemrows }) => {\n const formMethods = useForm()\n const title = gridParams ? \"Edit User Defined Item\" : \"Create User Defined Item\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const controlWatch = watch('control')\n const [loading, setLoading] = React.useState(false);\n const [itemSelection, setItemSelection] = React.useState([]);\n const [activeValue, setActiveValue] = useState(true)\n const [displayForAllGuest, setDisplayForAllGuest] = useState(true)\n const [isValueOpen, setIsValueOpen] = useState(false)\n const [activeId, setActiveId] = useState(1)\n const [currencyNumber, setCurrencyNumber] = useState(0)\n const [dateTimeValue, setDateTimeValue] = useState(null)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dropdownData, setDropdownData] = React.useState({\n fieldtypelist: [],\n itemlist: [],\n });\n\n const [controlDropdownValues, setControlDropdownValues] = useState([])\n\n const ITEM_HEIGHT = 48;\n const ITEM_PADDING_TOP = 8;\n const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n }\n\n useEffect(() => {\n setControlDropdownValues([])\n getDropdowns()\n }, [])\n\n useEffect(() => {\n setControlDropdownValues([])\n }, [isOpen])\n\n const getDropdowns = async () => {\n setLoading(true)\n axios.post('/evtuserdefineddropdowns', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setDropdownData(parsedData)\n setLoading(false)\n })\n }\n\n const getEvtUserDefined = async (udid) => {\n axios.post('/evtuserdefined', {eventid: eventid, udid: udid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n if (parsedData && parsedData?.dropdownlist) {\n console.log(parsedData?.dropdownlist)\n setControlDropdownValues(parsedData?.dropdownlist)\n }\n })\n }\n\n useEffect(() => {\n console.log(gridParams)\n if (gridParams?.fieldtype === 'Dropdown') {\n getEvtUserDefined(gridParams?.id).then(() => {\n setValue('defaultcontrol2', Number(gridParams.control2))\n })\n }\n // setControlDropdownValues(((gridParams && gridParams?.itemlist && gridParams?.itemlist?.length > 0) ? gridParams?.itemlist : []))\n setItemSelection((gridParams && gridParams?.items && gridParams?.items?.length > 0 ? gridParams.items : []))\n\n reset({\n id: (gridParams ? gridParams.id : null),\n control: (gridParams ? gridParams.control : 1),\n fieldname: (gridParams ? gridParams.fieldname : null),\n defaultcontrol1: (gridParams ? gridParams.displayvalue === \"Yes\" : null),\n defaultcontrol2: (gridParams ? gridParams.default2 : null),\n defaultcontrol3: (gridParams && gridParams.default3 ? gridParams.default3 : null),\n defaultcontrol4: (gridParams && gridParams.default4 ? gridParams.default4 : null),\n defaultcontrol5: (gridParams && gridParams.default5 ? gridParams.default5 : null),\n // defaultcontrol6: (gridParams && gridParams.default6 ? gridParams.default6 : null),\n displayforallguest: (gridParams ? gridParams.displayforallguest : true),\n items: (gridParams ? gridParams.items : []),\n active: (gridParams ? gridParams.active : false),\n delete: (gridParams ? gridParams.delete : false),\n })\n setDisplayForAllGuest((gridParams ? gridParams.displayforallguest : true))\n\n // Setup Currency value\n if (gridParams?.control == 4) {\n setCurrencyNumber(gridParams?.default4)\n }\n else if (gridParams?.control == 6) {\n setDateTimeValue(gridParams?.default6 ? gridParams?.default6 : null)\n }\n }, [reloadForm])\n\n useEffect(() => {\n if (gridParams) {\n let resetObject = {\n id: (gridParams ? gridParams.id : null),\n fieldname: (gridParams ? gridParams.fieldname : null),\n defaultcontrol1: (gridParams ? gridParams.displayvalue === \"Yes\" : null),\n defaultcontrol2: (gridParams ? gridParams.default2 : null),\n defaultcontrol3: (gridParams && gridParams.default3 ? gridParams.default3 : null),\n defaultcontrol4: (gridParams && gridParams.default4 ? gridParams.default4 : null),\n defaultcontrol5: (gridParams && gridParams.default5 ? gridParams.default5 : null),\n defaultcontrol6: (gridParams && gridParams.default6 ? gridParams.default6 : null),\n items: (gridParams ? gridParams.items : []),\n active: (gridParams ? gridParams.active : false),\n delete: (gridParams ? gridParams.delete : false),\n }\n\n if (gridParams && gridParams.control) {\n resetObject['control'] = (gridParams ? gridParams.control : 1)\n }\n\n reset(resetObject)\n setDisplayForAllGuest((gridParams ? gridParams.displayforallguest : true))\n }\n }, [controlDropdownValues])\n\n\n const fieldTypeOptions = () => {\n const dtRows = dropdownData?.fieldtypelist?.filter((e) => e.active === true).map((types) => {\n return {value: types.control, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const defaultValueOptions = () => {\n console.log(controlDropdownValues)\n const dtRows = controlDropdownValues.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: -9000, label: 'None'}, ...dtRows]\n }\n else {\n return []\n }\n }\n\n const handleItemChange = (event: SelectChangeEvent) => {\n const {\n target: { value },\n } = event;\n var values = []\n if (typeof value === 'string') {\n values = value.split(',')\n }\n else {\n value?.forEach(v => {\n if (v.length > 0) {\n values.push(v)\n }\n })\n }\n\n setItemSelection(values)\n }\n\n // const createMutation = useCreateEvtItem()\n const createMutation = useCreateEvtUserDefined()\n const onSubmit = async (data: FormData) => {\n console.log(data)\n // console.log(itemSelection)\n // console.log(gridParams)\n\n const itemsInSelection = itemSelection?.map(item => {\n return dropdownData?.itemlist?.find(realDataItem => realDataItem.itemname === item)\n })\n var itemidsString = ''\n\n itemsInSelection?.map(itm => {\n if (itm) {\n if (itemidsString.length > 0) {\n itemidsString += '|'\n }\n itemidsString += itm.itemid\n }\n })\n\n const defaultControl = 'defaultcontrol' + data.control\n const defaultControlkey = 'default' + data.control\n var finalData = {\n eventid: eventid,\n control: data.control,\n fieldname: data.fieldname,\n displayforallguest: displayForAllGuest,\n active: activeValue,\n itemids: itemidsString,\n // items: itemsInSelection\n }\n finalData[defaultControlkey] = data[defaultControl]\n if (data.control === 2) {\n const controlName = 'default' + data.control + 'text'\n const defaultControlValue = controlDropdownValues.find(control => control.id === data[defaultControl])\n finalData[controlName] = defaultControlValue?.name\n finalData['lookuplist'] = controlDropdownValues.map(cdv => {\n return {name: cdv.name, active: cdv.active}\n })\n }\n else if (data.control === 4) {\n finalData['default4'] = Number(currencyNumber)\n }\n else if (data.control === 6) {\n var controlDefault6 = dayjs(dateTimeValue).format('YYYY-MM-DDTHH:mm:ss')\n if (controlDefault6 == 'Invalid Date') {\n controlDefault6 = null\n }\n finalData['default6'] = controlDefault6\n }\n if (gridParams?.id !== null && gridParams?.id > 0) {\n finalData['udid'] = gridParams.id\n finalData['lookuplist'] = controlDropdownValues\n }\n\n\n const { data: response } = await createMutation.mutateAsync(finalData)\n const parsedResponse = JSON.parse(response?.jsonString)\n // console.log(parsedResponse)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const handleAdd = () => {\n setActiveId(null)\n setIsValueOpen(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setActiveId(Number(params.row.id))\n setIsValueOpen(true)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n }\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n const handleDisplayForAllGuest = (event: React.ChangeEvent) => {\n if (event.target.checked) {\n setItemSelection([])\n }\n setDisplayForAllGuest(event.target.checked);\n }\n\n const handleDelete = (params: GridCellParams) => {\n console.log(params)\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.name + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const deleteDialog = async () => {\n setControlDropdownValues(controlDropdownValues?.filter((i) => i.id !== dialogObj.id))\n setDialogObj({msg: '', id: 0})\n }\n\n\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n minWidth: 350,\n sortable: false,\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
    \n
    \n { handleDelete(params) }}>\n \n \n
    \n //
    \n // \n )\n }\n ]\n\n const handleAmountChange = (event) => {\n // setAmountChange(event.floatValue)\n }\n\n const handleCurrencyChange = (newValue: number | null) => {\n setCurrencyNumber(newValue)\n }\n\n const handleDateTimeChange = (newValue: Dayjs | null) => {\n setDateTimeValue(newValue.format('MM-DD-YYYY hh:mm A'))\n }\n\n const handleChecked = (item) => {\n return (itemSelection.indexOf(item.itemname) > -1)\n }\n\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n\n \n \n {controlWatch === 1 &&\n \n }\n\n {controlWatch === 2 &&\n <>\n \n\n \n \n }\n\n {controlWatch === 3 &&\n \n }\n\n {controlWatch === 4 &&\n handleCurrencyChange(value)}\n />\n }\n\n {controlWatch === 5 &&\n \n }\n\n {controlWatch === 6 &&\n \n { handleDateTimeChange(e)}}\n // renderInput={(params) => }\n />\n \n }\n } label=\"Display for All Guest Registrations\" />\n \n Display for Specific Item(s)\n }\n renderValue={(selected) => selected.join(', ')}\n MenuProps={MenuProps}\n >\n {dropdownData?.itemlist?.map((item) => (\n \n -1} />\n \n \n ))}\n \n \n } label=\"Active\" />\n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Save\n \n \n \n \n\n )\n}\n","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEvtUserDefined, useFetchUserDefined, useUpdateUserDefined} from '../../queries/useEventUserDefinedFetch'\nimport { EventUserDefinedForm } from './EventUserDefinedForm'\nimport styles from './EventUserDefinedTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventUserDefinedTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventUserDefineCreate = useCreateEvtUserDefined()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n\n const { data, isLoading } = useFetchUserDefined( Number(eventid) )\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.map((item) => {\n return { id: item.itemid, ...item}\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const ai = rows.filter((item) => item.id === Number(params.id))[0]\n console.log(ai)\n const itemsTemp = ai.items.split(',').map(strs => { return strs.trim() })\n const itemidsTemp = ai.itemids.split('|')\n\n var values = {\n id: ai.id,\n control: ai.control,\n fieldname: ai.fieldname,\n fieldtype: ai.fieldtype,\n displayvalue: ai.displayvalue,\n active: ai.active,\n uditem: ai.uditem,\n items: itemsTemp,\n itemids: itemidsTemp,\n displayforallguest: ai.displayforallguest,\n }\n const defaultValue = 'default' + ai.control\n values[defaultValue] = ai[defaultValue]\n\n setGridParams(values)\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.fieldname + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"udid\": id,\n \"delete\": true\n }\n const { data: response } = await eventUserDefineCreate.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'fieldname',\n type: 'string',\n headerName: 'Field Name',\n minWidth: 350,\n sortable: true,\n },\n {\n field: 'fieldtype',\n type: 'string',\n headerName: 'Field Type',\n minWidth: 200,\n sortable: true,\n hide: false\n },\n {\n field: 'displayvalue',\n type: 'string',\n headerAlign: 'left',\n align: 'right',\n headerName: 'Default Value',\n minWidth: 150,\n sortable: true,\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: true,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
    \n
    \n { handleDelete(params) }}>\n \n \n
    \n //
    \n // \n )\n }\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n )\n }\n\n return (\n
    \n

    User Defined Fields

    \n\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n
    \n )\n}\n\nexport default EventUserDefinedTable\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventTransactionFetcher = async (body) => {\n const { data } = await axios.post('/evtactivitytransactions', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n return parsedData.transactions\n}\n\nexport const useFetchTransaction = (eventIDvalue) => {\n var body = {\"eventid\": eventIDvalue}\n return useQuery(\n ['EventTransaction', eventIDvalue],\n () => globalEventTransactionFetcher(body),\n {\n staleTime: 120000,\n //keepPreviousData: true\n }\n )\n}\n\nexport const useCreateEventTransaction = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateTransaction = (eventIDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined', eventIDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport Switch from '../../components/common/inputs/Switch'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventTransactionsTable.module.css'\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport {Checkbox, FormControlLabel} from \"@mui/material\";\nimport NumberFormat from 'react-number-format'\nimport axios from \"axios\";\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\nimport {DataGridPremium, GridColDef} from \"@mui/x-data-grid-premium\";\nimport {Add, Edit} from \"@material-ui/icons\";\n\ninterface FormData {\n name: string\n id: number\n active: boolean\n delete: boolean\n}\n\nexport const EventValueForm = ({ isValueOpen, setIsValueOpen, activeId, controlDropdownValues, setControlDropdownValues }) => {\n const formMethods = useForm()\n const title = activeId ? \"Edit Dropdown\" : \"Add New Dropdown\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false);\n const [activeValue, setActiveValue] = useState(true)\n const [dropdownData, setDropdownData] = React.useState({\n fieldtypelist: [],\n itemlist: [],\n });\n const [groupValues, setGroupValues] = useState({\n id: 0,\n name: '',\n active: true\n })\n\n const createMutation = useCreateEvtItem()\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n useEffect(() => {\n var element = controlDropdownValues.find(c => c.id === activeId)\n if (element) {\n setActiveValue(element?.active)\n reset({\n name: element?.name\n })\n }\n else {\n reset({\n name: ''\n })\n }\n}, [activeId, controlDropdownValues])\n\n const onSubmit = async (data: FormData) => {\n const cdv = controlDropdownValues\n if (activeId) {\n var element = cdv.find(c => c.id === activeId)\n element.name = data.name\n element.active = activeValue\n }\n else {\n var id = -1\n // if (cdv && cdv.length > 0) {\n // id = Math.max(...cdv.map(o => o.id)) + 1\n // }\n\n const newValues = [...cdv, {id: id, name: data.name, active: activeValue}]\n setControlDropdownValues(newValues)\n }\n\n setIsValueOpen(false)\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n } label=\"Active\" />\n \n \n \n setIsValueOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventTransactionsTable.module.css'\nimport axios from \"axios\";\nimport {useCreateEvtUserDefined} from \"../../queries/useEventUserDefinedFetch\"\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\nimport {DataGridPremium, GridCellParams, GridColDef, GridValueFormatterParams} from \"@mui/x-data-grid-premium\";\nimport {Add, Delete, Edit} from \"@material-ui/icons\";\nimport {EventValueForm} from \"./EventValueForm\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {\n FormControl,\n FormControlLabel,\n InputLabel,\n ListItemText,\n MenuItem,\n OutlinedInput,\n Select,\n SelectChangeEvent\n} from \"@mui/material\";\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\n\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport {Dayjs} from \"dayjs\";\n\n// 1 - boolean\n// 2 - Lookup\n// 3 - integer\n// 4 - money (double)\n// 5 - text\n// 6 - date\n// 7 - text ([1,3,5] multi lookup values\n// 8 - Datetime\n// 9 - Time\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\n}\n\nexport const EventTransactionsDetailForm = ({ isOpen, setIsOpen, gridParams, reloadForm, eventid, itemrows }) => {\n const formMethods = useForm()\n const title = gridParams ? \"Transaction Detail\" : \"Transaction Detail\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const controlWatch = watch('control')\n const [loading, setLoading] = React.useState(false);\n const [itemSelection, setItemSelection] = React.useState([]);\n const [activeValue, setActiveValue] = useState(true)\n const [displayForAllGuest, setDisplayForAllGuest] = useState(true)\n const [isValueOpen, setIsValueOpen] = useState(false)\n const [activeId, setActiveId] = useState(1)\n const [currencyNumber, setCurrencyNumber] = useState(1)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dropdownData, setDropdownData] = React.useState({\n fieldtypelist: [],\n itemlist: [],\n });\n\n const [controlDropdownValues, setControlDropdownValues] = useState([])\n\n const ITEM_HEIGHT = 48;\n const ITEM_PADDING_TOP = 8;\n const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n };\n\n useEffect(() => {\n setControlDropdownValues([])\n getDropdowns()\n }, [])\n\n\n const getDropdowns = async () => {\n setLoading(true)\n axios.post('/evtuserdefineddropdowns', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setDropdownData(parsedData)\n setLoading(false)\n })\n }\n\n const getEvtUserDefined = async (udid) => {\n axios.post('/evtuserdefined', {eventid: eventid, udid: udid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n if (parsedData && parsedData?.dropdownlist) {\n console.log(parsedData?.dropdownlist)\n setControlDropdownValues(parsedData?.dropdownlist)\n }\n })\n }\n\n useEffect(() => {\n console.log(gridParams)\n if (gridParams?.fieldtype === 'Dropdown') {\n getEvtUserDefined(gridParams?.id).then(() => {\n // console.log('set value')\n // console.log(gridParams)\n // console.log(gridParams.default2)\n // setValue('defaultcontrol2', Number(gridParams.control2))\n })\n }\n // setControlDropdownValues(((gridParams && gridParams?.itemlist && gridParams?.itemlist?.length > 0) ? gridParams?.itemlist : []))\n setItemSelection((gridParams && gridParams?.items && gridParams?.items?.length > 0 ? gridParams.items : []))\n\n reset({\n id: (gridParams ? gridParams.id : null),\n control: (gridParams ? gridParams.control : 1),\n fieldname: (gridParams ? gridParams.fieldname : null),\n defaultcontrol1: (gridParams ? gridParams.displayvalue === \"Yes\" : null),\n defaultcontrol2: (gridParams ? gridParams.default2 : null),\n defaultcontrol3: (gridParams ? gridParams.default : null),\n defaultcontrol4: (gridParams ? gridParams.default4 : null),\n defaultcontrol5: (gridParams ? gridParams.default : null),\n defaultcontrol6: (gridParams ? gridParams.default : null),\n displayforallguest: (gridParams ? gridParams.displayforallguest : false),\n items: (gridParams ? gridParams.items : []),\n active: (gridParams ? gridParams.active : false),\n delete: (gridParams ? gridParams.delete : false),\n })\n setDisplayForAllGuest((gridParams? gridParams.displayforallguest : false))\n\n // Setup Currency value\n if (gridParams && gridParams.default4) {\n setCurrencyNumber(gridParams.default4)\n }\n\n }, [reloadForm])\n\n useEffect(() => {\n console.log('reset form')\n console.log(gridParams)\n console.log(controlDropdownValues)\n reset({\n id: (gridParams ? gridParams.id : null),\n control: (gridParams ? gridParams.control : 1),\n fieldname: (gridParams ? gridParams.fieldname : null),\n defaultcontrol1: (gridParams ? gridParams.displayvalue === \"Yes\" : null),\n defaultcontrol2: gridParams.default2,\n defaultcontrol3: (gridParams && gridParams.default3 ? gridParams.default3 : null),\n defaultcontrol4: (gridParams && gridParams.default4 ? gridParams.default4 : null),\n defaultcontrol5: (gridParams && gridParams.default5 ? gridParams.default5 : null),\n defaultcontrol6: (gridParams && gridParams.default6 ? gridParams.default6 : null),\n items: (gridParams ? gridParams.items : []),\n active: (gridParams ? gridParams.active : false),\n delete: (gridParams ? gridParams.delete : false),\n })\n setDisplayForAllGuest(gridParams.displayforallguest)\n }, [controlDropdownValues])\n\n\n const fieldTypeOptions = () => {\n const dtRows = dropdownData?.fieldtypelist?.filter((e) => e.active === true).map((types) => {\n return {value: types.control, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const defaultValueOptions = () => {\n console.log(controlDropdownValues)\n const dtRows = controlDropdownValues.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const handleItemChange = (event: SelectChangeEvent) => {\n const {\n target: { value },\n } = event;\n var values = []\n if (typeof value === 'string') {\n values = value.split(',')\n }\n else {\n value?.forEach(v => {\n if (v.length > 0) {\n values.push(v)\n }\n })\n }\n\n setItemSelection(values)\n }\n\n // const createMutation = useCreateEvtItem()\n const createMutation = useCreateEvtUserDefined()\n const onSubmit = async (data: FormData) => {\n console.log(data)\n // console.log(itemSelection)\n // console.log(gridParams)\n\n const itemsInSelection = itemSelection?.map(item => {\n return dropdownData?.itemlist?.find(realDataItem => realDataItem.itemname === item)\n })\n var itemidsString = ''\n\n itemsInSelection?.map(itm => {\n if (itm) {\n if (itemidsString.length > 0) {\n itemidsString += '|'\n }\n itemidsString += itm.itemid\n }\n })\n\n const defaultControl = 'defaultcontrol' + data.control\n const defaultControlkey = 'default' + data.control\n var finalData = {\n eventid: eventid,\n control: data.control,\n fieldname: data.fieldname,\n displayforallguest: displayForAllGuest,\n active: activeValue,\n itemids: itemidsString,\n // items: itemsInSelection\n }\n finalData[defaultControlkey] = data[defaultControl]\n if (data.control === 2) {\n finalData['lookuplist'] = controlDropdownValues.map(cdv => {\n return {name: cdv.name, active: cdv.active}\n })\n }\n else if (data.control === 4) {\n finalData['default4'] = Number(currencyNumber)\n }\n if (gridParams?.id !== null && gridParams?.id > 0) {\n finalData['udid'] = gridParams.id\n finalData['lookuplist'] = controlDropdownValues\n }\n\n\n const { data: response } = await createMutation.mutateAsync(finalData)\n const parsedResponse = JSON.parse(response?.jsonString)\n // console.log(parsedResponse)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const handleAdd = () => {\n setActiveId(null)\n setIsValueOpen(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setActiveId(Number(params.row.id))\n setIsValueOpen(true)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n }\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n const handleDisplayForAllGuest = (event: React.ChangeEvent) => {\n setDisplayForAllGuest(event.target.checked);\n }\n\n const handleDelete = (params: GridCellParams) => {\n console.log(params)\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.name + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const deleteDialog = async () => {\n setControlDropdownValues(controlDropdownValues?.filter((i) => i.id !== dialogObj.id))\n setDialogObj({msg: '', id: 0})\n }\n\n\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n minWidth: 350,\n sortable: false,\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
    \n
    \n { handleDelete(params) }}>\n \n \n
    \n //
    \n // \n )\n }\n ]\n\n const handleAmountChange = (event) => {\n // setAmountChange(event.floatValue)\n }\n\n const handleCurrencyChange = (newValue: number | null) => {\n setCurrencyNumber(newValue)\n }\n\n const handleDateTimeChange = (newValue: Dayjs | null) => {\n // const updatedSubmit = dateTimeValues.filter(val => (val.schedulefieldid !== schedulefieldid))\n // const updateDates = [...updatedSubmit, { schedulefieldid: schedulefieldid,\n // dateTimeValue: newValue }]\n // setDateTimeValues(updateDates)\n }\n\n const handleChecked = (item) => {\n return (itemSelection.indexOf(item.itemname) > -1)\n }\n\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n\n \n \n {controlWatch === 1 &&\n \n }\n\n {controlWatch === 2 &&\n <>\n \n\n \n \n }\n\n {controlWatch === 3 &&\n \n }\n\n {controlWatch === 4 &&\n handleCurrencyChange(value)}\n />\n }\n\n {controlWatch === 5 &&\n \n }\n\n {controlWatch === 6 &&\n \n { handleDateTimeChange(e)}}\n // renderInput={(params) => }\n />\n \n }\n } label=\"Display for All Guest Registrations\" />\n \n Display for Specific Item(s)\n }\n renderValue={(selected) => selected.join(', ')}\n MenuProps={MenuProps}\n >\n {dropdownData?.itemlist?.map((item) => (\n \n -1} />\n \n \n ))}\n \n \n } label=\"Active\" />\n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Save\n \n \n \n \n\n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport styles from './EventTransactionsTable.module.css'\nimport axios from \"axios\";\nimport {EventValueForm} from \"./EventValueForm\";\nimport {\n FormControl,\n FormControlLabel, Grid,\n InputLabel,\n} from \"@mui/material\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport styled from \"@emotion/styled\";\nimport {formatMoney} from \"../../util/formatHelpers\";\n\ninterface FormData {\n id: number\n}\n\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\n\nexport const EventAddCheckoutForm = ({ isOpen, setIsOpen, gridParams, reloadForm, eventid, transactionId, setTransactionId, handleNext, itemQuantity, setItemQuantity }) => {\n const formMethods = useForm()\n const eventState = useEventState()\n const title = gridParams ? \"Add Items for Checkout\" : \"Add Items for Checkout\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false);\n const [isValueOpen, setIsValueOpen] = useState(false)\n const [validQuantity, setValidQuantity] = useState(false)\n const [activeId, setActiveId] = useState(1)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n // const [itemQuantity, setItemQuantity] = React.useState({})\n const [checkoutData, setCheckoutData] = React.useState([])\n const [controlDropdownValues, setControlDropdownValues] = useState([])\n const [itemPrice, setItemPrice] = React.useState({})\n const [quantityModal, setQuantityModal] = React.useState({active: false, quantity: 0, item: \"\"})\n\n useEffect(() => {\n getCheckoutData()\n }, [isOpen])\n\n useEffect(() => {\n console.log(itemQuantity)\n setValidQuantity(false)\n Object.keys(itemQuantity).map((key) => {\n if (itemQuantity[key] > 0) {\n setValidQuantity(true)\n }\n })\n\n\n\n }, [itemQuantity])\n\n const getCheckoutData = async () => {\n console.log('getting checkout data')\n setLoading(true)\n const { data } = await axios.post('/evtactivitytransactionssetup', {eventid: eventid})\n const parsedData = JSON.parse(data.jsonString)\n if (transactionId <= 0) {\n setTransactionId(parsedData.transactionid)\n }\n setCheckoutData(parsedData?.sections)\n setLoading(false)\n }\n\n const onSubmit = async (data: FormData) => {\n console.log(data)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n setQuantityModal({active: false, quantity: 0, item: null})\n }\n\n const quantityUpdate = async (value, item) => {\n const quantity = {...itemQuantity}\n quantity[item.id] = Number(value)\n setItemQuantity(quantity)\n\n var prices = {...itemPrice}\n prices[item.id] = '$' + item.price * value\n setItemPrice(prices)\n }\n\n const quantityBlur = async (value, item) => {\n const body = {quantity: Number(value), itemid: Number(item.id), eventid: eventid, transactionid: transactionId}\n\n const data = await axios.post('/evtactivitytransactionsadditem', body, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n\n // if (parsedData.status === 'expired') {\n // localStorage.removeItem(\"token\")\n // history.push(`/${eventcode}/event`);\n // }\n if (parsedData.status === 'failure') {\n const quantity = {...itemQuantity}\n quantity[parsedData.itemid] = Number(parsedData.quantityremaining)\n setItemQuantity(quantity)\n setQuantityModal({active: true, quantity: parsedData.quantityremaining, item: parsedData.itemname})\n }\n })\n }\n\n const calcItemPrice = (item) => {\n var quantityValue = itemQuantity[item.id]\n if (item.maxquantitypertransaction > quantityValue) {\n quantityValue = item.maxquantitypertransaction\n }\n var priceUnformatted = 0\n if (itemPrice && itemPrice[item.id]) {\n priceUnformatted = Number(itemPrice[item.id].split(\"$\").pop())\n }\n const total = formatMoney(priceUnformatted)\n const price = formatMoney(item.price)\n\n var totalPrice = (item.id in itemPrice) ? `X ${price} = ${total}` : `X ${price} = $0`\n\n return totalPrice\n }\n\n useEffect(() => {\n const quantity = {...itemQuantity}\n const prices = {...itemPrice}\n checkoutData.map((item, index) => {\n item.data.map(itemdata => {\n if (itemdata && itemdata.id > 0) {\n quantity[itemdata.id] = Number(itemdata.quantity)\n prices[itemdata.id] = '$' + itemdata.price * Number(itemdata.quantity)\n }\n })\n })\n setItemQuantity(quantity)\n setItemPrice(prices)\n }, [checkoutData])\n\n return (\n <>\n \n {title}\n {/**/}\n <>\n \n \n

    {\"Insuffcient Quantity Available\"}

    \n

    {\"We're sorry, but the quantity available is lower than you seleced:\"}

    \n\n \n \n {quantityModal.item + ':'}\n \n \n {quantityModal.quantity + ' Remaining'}\n \n \n
    \n \n \n \n
    \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n\n {checkoutData.map((section) => (\n <>\n \n {section.sectionname}\n {/*{section.sectionname}*/}\n \n {section?.data.map((sectiondata) => (\n <>\n \n \n {sectiondata.name}\n \n \n {quantityUpdate(e.target.value, sectiondata)}}\n onBlur={(e) => {quantityBlur(e.target.value, sectiondata)}}\n value={itemQuantity[sectiondata.id]}\n defaultValue={itemQuantity[sectiondata.id] > 0 ? itemQuantity[sectiondata.id] : 0}\n />\n \n \n {(!sectiondata?.isquantityunlimited && sectiondata?.quantityremaining <= 0) &&\n SOLD OUT\n }\n {(sectiondata?.isquantityunlimited || sectiondata?.quantityremaining > 0) &&\n {calcItemPrice(sectiondata)}\n }\n \n \n \n ))}\n \n ))}\n \n \n \n {\n setTransactionId(0)\n setCheckoutData([])\n setIsOpen(false)\n }}>\n Cancel\n \n \n Next\n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, Switch, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventTransactionsTable.module.css'\nimport axios from \"axios\";\nimport {EventValueForm} from \"./EventValueForm\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {FormLabel, Grid,\n InputLabel,\n} from \"@mui/material\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport styled from \"@emotion/styled\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport {statesArray} from \"../../util/formValidation\";\nimport {loadStripe} from \"@stripe/stripe-js\";\n\ninterface FormData {\n id: number\n paymentmethod: string\n additionaldonation: number\n discount: number\n promoCode: string\n first: string\n last: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n email: string\n}\n\nconst SpanImage = styled.span`\n margin-top: 5px;\n`\n\nconst Image = styled.img`\n height: 30px;\n`\n\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const EventCheckoutForm = ({ isOpen, setIsOpen, setIsAddEventCheckout, eventId, transactionid, setItemQuantity, setIsEventReview }) => {\n\n const formMethods = useForm()\n const eventState = useEventState()\n const title = \"Checkout\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false);\n const [isValueOpen, setIsValueOpen] = useState(false)\n const [activeId, setActiveId] = useState(1)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [invalidateIframe, setInvalidateIframe] = React.useState(1)\n const [includeCCFees, setIncludeCCFees] = React.useState(false);\n const [subtotal, setSubtotal] = useState(0);\n const [ccfees, setCCFees] = useState(0);\n const [quantity, setQuantity] = useState(0);\n const [additionalDonation, setAdditionalDonation] = React.useState(0)\n const [discount, setDiscount] = React.useState(0)\n const [totalAmount, setTotalAmount] = React.useState(0)\n const [isLoadingBackdrop, setisLoadingBackdrop] = React.useState(false)\n\n const [processorToken, setProcessorToken] = useState('');\n const [stripeObj, setStripeObj] = useState(null)\n const [stripeElement, setStripeElement] = useState(null)\n const [stripePaymentElement, setStripePaymentElement] = useState(null)\n const [stripeAPIKey, setStripeAPIKey] = useState('')\n const [stripeAccountId, setStripeAccountId] = useState('')\n\n const [controlDropdownValues, setControlDropdownValues] = useState([])\n const paymentMethodWatch = watch('paymentmethod')\n const discountCodeWatch = watch('promoCode')\n const firstWatch = watch('first')\n const lastWatch = watch('last')\n const cityWatch = watch('city')\n const stateWatch = watch('state')\n const zipWatch = watch('zip')\n const addressWatch = watch('address')\n const address2Watch = watch('address2')\n const emailWatch = watch('email')\n\n const [cartData, setCartData] = React.useState({\n cartitems: [],\n ccfee: 0,\n paymentprocessorisvalid: true,\n paymentprocessorcode: 0,\n paymentprocessorinfo: {\n stripeaccountid: '',\n stripeapikey: '',\n creditcardiframe: '',\n javascriptfile: '',\n transcenterid: '',\n processorid: '',\n transactiontype: ''\n },\n additionaldonation: 0,\n discount: 0,\n allowpaymentoffees: false,\n subtotal: 0,\n hasdiscount: true\n })\n\n const options = {\n mode: 'payment',\n amount: 25 * 100,\n paymentMethodCreation: 'manual',\n currency: 'usd',\n // paymentMethodTypes: ['card', 'us_bank_account'],\n //confirm = true,\n setupFutureUsage: 'off_session',\n };\n\n const loadStripeAccount = async () => {\n const stripeTempObj = await loadStripe(stripeAPIKey, {\n stripeAccount: stripeAccountId,\n });\n setStripeObj(stripeTempObj);\n }\n\n useEffect(() => {\n if (stripeObj && paymentMethodWatch === 'CC') {\n const elements = stripeObj.elements(options);\n setStripeElement(elements)\n const paymentElement = elements.create('payment', {\n layout: {\n type: 'tabs',\n defaultCollapsed: false,\n },\n });\n paymentElement.mount('#payment-element');\n\n paymentElement.on('change', async function(event) {\n if (event.complete) {\n console.log('Stripe Form - complete')\n\n await elements.submit();\n const {error, confirmationToken} = await stripeObj.createConfirmationToken({elements: elements})\n if (confirmationToken) {\n setProcessorToken(confirmationToken.id)\n }\n console.log(confirmationToken)\n console.log(error)\n }\n });\n setStripePaymentElement(paymentElement)\n }\n }, [stripeObj, paymentMethodWatch === 'CC'])\n\n\n useEffect(() => {\n if (cartData?.paymentprocessorcode === 2) {\n if (cartData?.paymentprocessorinfo?.stripeapikey) {\n setStripeAPIKey(cartData?.paymentprocessorinfo?.stripeapikey)\n }\n if (cartData?.paymentprocessorinfo?.stripeaccountid) {\n setStripeAccountId(cartData?.paymentprocessorinfo?.stripeaccountid)\n }\n }\n }, [cartData?.paymentprocessorinfo?.stripeaccountid])\n\n useEffect(() => {\n if (stripeAPIKey && stripeAPIKey.length > 0) {\n loadStripeAccount()\n }\n }, [stripeAPIKey, stripeAccountId])\n\n useEffect(() => {\n window.addEventListener(\"message\", processPayment, false)\n return () => {\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n const handleCCFeesChange = (event: React.ChangeEvent) => {\n setIncludeCCFees(event.target.checked);\n }\n\n useEffect(() => {\n if (paymentMethodWatch !== 'CC') {\n setIncludeCCFees(false)\n }\n }, [paymentMethodWatch])\n\n useEffect(() => {\n console.log(discountCodeWatch)\n }, [discountCodeWatch])\n\n useEffect(() => {\n setValue('first', '')\n setValue('last', '')\n setValue('promoCode', '')\n setValue('address', '')\n setValue('address2', '')\n setValue('city', '')\n setValue('state', '')\n setValue('zip', '')\n setValue('email', '')\n setValue('additionaldonation', 0)\n setAdditionalDonation(0)\n\n getCartData()\n }, [isOpen])\n\n useEffect(() => {\n if (cartData && (cartData.paymentprocessorinfo?.javascriptfile || cartData.paymentprocessorinfo?.stripeaccountid)) {\n const script = document.createElement(\"script\")\n script.src = cartData?.paymentprocessorinfo?.javascriptfile\n script.id = \"firstpay-script-cryptogram\"\n script.type = \"text/javascript\"\n script.setAttribute(\"data-transcenter\", cartData?.paymentprocessorinfo?.transcenterid)\n script.setAttribute(\"data-processor\", cartData?.paymentprocessorinfo?.processorid)\n document.body.appendChild(script)\n }\n\n if (cartData) {\n setAdditionalDonation(cartData?.additionaldonation)\n\n const amount = cartData.subtotal\n setSubtotal(amount)\n setQuantity(cartData?.cartitems?.length | 0)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonation\n }\n if (discount > 0) {\n ccAmount -= discount\n }\n setCCFees(ccAmount * (cartData?.ccfee / 100))\n const total = (eventState?.allowpaymentoffees && includeCCFees && eventState?.ccfee > 0.000000001) ?\n ccAmount + (ccAmount * (eventState?.ccfee / 100)) :\n ccAmount\n setTotalAmount(total)\n }\n }, [cartData])\n\n useEffect(() => {\n const amount = cartData.subtotal\n setSubtotal(cartData.subtotal)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonation\n }\n if (discount > 0) {\n ccAmount -= discount\n }\n setCCFees(((ccAmount) * (cartData?.ccfee / 100)))\n\n const total = (cartData?.allowpaymentoffees && includeCCFees && cartData?.ccfee > 0.000000001) ?\n ccAmount + (ccAmount * (cartData?.ccfee / 100)) :\n ccAmount\n setTotalAmount(total)\n }, [includeCCFees, additionalDonation, discount])\n\n const getCartData = async () => {\n setLoading(true)\n const { data } = await axios.post('/evtactivitytransactionscart', {eventid: eventId, transactionid})\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setCartData(parsedData)\n // setTransactionId(parsedData?.transactionid)\n setLoading(false)\n }\n\n const handleAdditionalDonationChange = (newValue: number | null) => {\n if (newValue > 0) {\n setAdditionalDonation(newValue)\n }\n else {\n setAdditionalDonation(0)\n }\n }\n\n const processPayment = (e: any) => {\n if (e.data.firstpay) {\n const ccData = e.data\n if (ccData.type === 'newCryptogram') {\n setProcessorToken(ccData.cryptogram)\n }\n }\n }\n\n const onSubmit = async () => {\n setisLoadingBackdrop(true)\n var errorMessage = ''\n if (paymentMethodWatch === \"CC\" && processorToken.length <= 0) {\n errorMessage = \"Please enter a valid credit card.\"\n }\n\n var error = false\n if (firstWatch.length <= 0) {\n setError('first', { type: 'required', message: 'First name is required.' })\n error = true\n }\n else {\n clearErrors('first')\n }\n if (lastWatch.length <= 0) {\n setError('last', { type: 'required', message: 'Last name is required.' })\n error = true\n }\n else {\n clearErrors('last')\n }\n if (zipWatch.length <= 0 && paymentMethodWatch === \"CC\") {\n setError('zip', { type: 'required', message: 'Zip code is required.' })\n error = true\n }\n else {\n clearErrors('zip')\n }\n if (error) {\n setisLoadingBackdrop(false)\n return\n }\n\n if (errorMessage.length > 0) {\n setisLoadingBackdrop(false)\n setDialogMsg(errorMessage)\n }\n else {\n var body = {\n eventid: eventId,\n transactionid: transactionid,\n totalamount: Number(totalAmount.toFixed(2)),\n discountamount: discount,\n additionaldonation: additionalDonation,\n ccfeesexactamount: includeCCFees ? cartData?.ccfee : 0, // Number(ccfees.toFixed(2)),\n paymentmethod: paymentMethodWatch,\n processortoken: processorToken,\n subtotal: subtotal,\n first: firstWatch,\n last: lastWatch,\n address: addressWatch,\n address2: address2Watch,\n city: cityWatch,\n state: stateWatch,\n zip: zipWatch,\n email: emailWatch\n }\n const { data } = await axios.put('/evtactivitytransactionscheckout', body)\n console.log(data)\n\n const parsedResponse = JSON.parse(data?.jsonString)\n console.log(parsedResponse)\n setIsEventReview(true)\n if (parsedResponse?.status === 'failed') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n // setDialogMsg(\"Checkout was successfull.\")\n setInvalidateIframe(invalidateIframe+1)\n setProcessorToken('')\n if (stripePaymentElement) {\n stripePaymentElement.clear()\n }\n\n\n setValue('first', '')\n setValue('last', '')\n setValue('promoCode', '')\n setValue('address', '')\n setValue('address2', '')\n setValue('city', '')\n setValue('state', '')\n setValue('zip', '')\n setValue('email', '')\n setValue('additionaldonation', 0)\n\n setItemQuantity({})\n\n }\n setIsOpen(false)\n }\n setisLoadingBackdrop(false)\n }\n\n const onBack = () => {\n setIsOpen(false)\n setIsAddEventCheckout(true)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n }\n\n const deleteDialog = async () => {\n setControlDropdownValues(controlDropdownValues?.filter((i) => i.id !== dialogObj.id))\n setDialogObj({msg: '', id: 0})\n }\n\n const getDiscount = async () => {\n const body = {\"discountcode\": discountCodeWatch, eventid: eventId, transactionid: transactionid}\n const {data} = await axios.post('/evtactivitytransactionsdiscount', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n if (parsedData.status === 'success') {\n console.log(parsedData.discountamount)\n setDiscount(parsedData.discountamount)\n }\n else {\n setDiscount( 0)\n }\n }\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n {/**/}\n\n {/* {checkoutData?.map((section) => (*/}\n {/* <>*/}\n {/* */}\n {/* {section.sectionname}*/}\n {/* /!*{section.sectionname}*!/*/}\n {/* */}\n\n {/* */}\n {/* ))}*/}\n {/**/}\n\n\n \n \n Items\n \n \n {cartData?.cartitems?.map((cd) => (\n \n \n {cd.name}\n \n \n {cd.quantity + ' x $' + cd.price + ' = $' + cd.lineamount}\n \n \n ))}\n \n \n Subtotal: \n \n \n {formatMoney(subtotal | 0)} ({quantity | 0} items)\n \n \n\n {paymentMethodWatch === 'CC' &&\n \n \n {(cartData.allowpaymentoffees) &&\n
    \n \n Include CC Fees: {formatMoney(ccfees)}\n
    \n }\n
    \n
    \n }\n\n \n \n handleAdditionalDonationChange(value)}\n />\n \n\n \n Additional Donation: \n \n \n {formatMoney(additionalDonation)}\n \n \n\n {cartData.hasdiscount &&\n \n \n \n \n \n \n \n \n Promo Code: \n \n \n {formatMoney(discount)}\n \n \n }\n\n\n\n \n \n Total: \n \n \n {formatMoney(totalAmount)}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n return {label: state.value, value: state.value}\n })}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n {cartData?.paymentprocessorcode == 1 && paymentMethodWatch === 'CC' &&\n Payment securely processed by: \n \"goEmerchant\n \n }\n\n \n {(cartData?.paymentprocessorcode === 2 && paymentMethodWatch === 'CC') &&\n
    \n }\n
    \n \n {onBack()}}\n >\n Back to Items\n \n {onSubmit()}}\n form=\"items-form\">\n Submit Payment\n \n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport styles from './GenericForm.module.css'\nimport axios from \"axios\"\nimport {Grid, InputLabel} from \"@mui/material\";\nimport styled from \"@emotion/styled\"\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\n}\n\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const GenericForm = ({ isGuestOpen, setIsGuestOpen, endpoint, eventId, genericid }) => {\n const formMethods = useForm()\n const {watch, getValues, setValue, register, reset} = formMethods\n const [loading, setLoading] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0, title: \"\" })\n const [dialogMsg, setDialogMsg] = React.useState({active: false, msg: ''})\n const [ticketData, setTicketData] = React.useState({\n ticketfieldslist: [],\n tickettitle: '',\n showbuttonreassign: false,\n showbuttonunassign: false,\n ticketlookuplist: [],\n })\n\n useEffect(() => {\n if (isGuestOpen) {\n getEventTicket()\n }\n }, [eventId, genericid, endpoint, isGuestOpen])\n\n const getTicketLookupDataOptions = (lookupfieldid) => {\n const dtRows = ticketData?.ticketlookuplist?.filter((e) => e.lookupactive === 1 && e.lookupfieldid === lookupfieldid).map((types) => {\n return {value: types.lookupid, label: types.lookup}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const unassignEventTicket = async () => {\n setLoading(true)\n const { data } = await axios.put('/' + endpoint, {eventid: eventId, genericid: genericid, unassign: true})\n const parsedData = JSON.parse(data.jsonString)\n\n setDialogObj({\n title: '',\n id: 0,\n msg: ''\n })\n if (parsedData.status === 'success') {\n setDialogMsg({active: false, msg: ''})\n setIsGuestOpen(false)\n // setDialogMsg({active: false, msg: dialogMsg.msg})\n\n }\n else {\n // setDialogMsg({active: false, msg: parsedData.message})\n setDialogMsg({active: true, msg: parsedData.message})\n }\n\n setLoading(false)\n }\n\n const getEventTicket = async () => {\n var body = {eventid: eventId}\n\n if (genericid > 0) {\n body['genericid'] = genericid\n }\n\n setLoading(true)\n const { data } = await axios.post('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n setLoading(false)\n }\n const handleClose = () => {\n setIsGuestOpen(false)\n }\n\n const onSubmit = async (formData: FormData) => {\n var fieldList = []\n const formKeys = Object.keys(formData)\n formKeys.map(key => {\n const fieldId = key.split(\"defaultcontrol\").pop()\n var element = ticketData?.ticketfieldslist?.find(field => Number(field.fieldid) === Number(fieldId))\n const defaultValueControl = 'defaultcontrol' + fieldId\n var fieldDataObject = {fieldid: element.fieldid}\n if (formData && formData[defaultValueControl]) {\n fieldDataObject['fieldvalue' + element.fieldcontrol] = formData[defaultValueControl]\n fieldList.push(fieldDataObject)\n }\n });\n const body = {eventid: eventId, genericid: genericid, fieldslist: fieldList}\n const {data} = await axios.put('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n\n console.log(parsedData)\n setIsGuestOpen(false)\n }\n\n const handleSelectionClick = async (fieldControlId, fieldData) => {\n console.log(getValues(fieldControlId))\n console.log(fieldData)\n\n\n if (fieldData && fieldData.onchange) {\n var body = {}\n console.log(fieldData?.onchange?.params)\n fieldData?.onchange?.params?.map(key => {\n if (key.startsWith('fieldid')) {\n body['fieldid'] = getValues(fieldControlId)\n }\n else if (key.endsWith('-id')) {\n const newKey = key.replace('-', '')\n body[newKey] = genericid\n }\n else if (key === 'eventid') {\n body['eventid'] = eventId\n }\n })\n if (fieldData.onchange.endpoint) {\n const {data} = await axios.post(fieldData.onchange.endpoint, body)\n if (data.jsonString) {\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n console.log(body)\n }\n }\n }\n }\n\n const handleUnassign = () => {\n setDialogObj({\n title: '',\n id: 0,\n msg: 'Are you sure you want to unassign this guest?'\n })\n }\n\n const handleReassign = () => {\n const newTicketData = {...ticketData}\n console.log(newTicketData?.ticketfieldslist)\n var ticket = newTicketData?.ticketfieldslist.find(ticket => ticket.fieldid === -1001)\n ticket.fieldreadonly = false\n setTicketData(newTicketData)\n }\n\n const unassignDialog = async () => {\n await handleUnassignConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n\n const handleUnassignConfirm = async (id: number) => {\n // var finaldata = {\n // \"eventid\": Number(eventState.eventId),\n // \"historyid\": id,\n // \"delete\": true\n // }\n // const { data: response } = await updateBidMaintenanceMutation.mutateAsync({\n // ...finaldata\n // },{\n // onSuccess: (data) => {\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // }\n // }\n // })\n }\n\n return (\n <>\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.title}\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n \n \n \n {dialogMsg.msg}\n \n \n \n \n \n \n \n\n {ticketData.tickettitle}\n \n \n \n\n {(ticketData.showbuttonreassign || ticketData.showbuttonunassign) &&\n \n {ticketData.showbuttonunassign &&\n \n \n {handleUnassign()}}>Unassign Ticket\n \n \n \n }\n\n {ticketData.showbuttonreassign &&\n \n \n {handleReassign()}}>Reassign a ticket to another guest\n \n \n \n }\n \n }\n\n\n \n {/*fieldrowgrouping*/}\n {ticketData?.ticketfieldslist?.sort((a, b) => a.fieldrowgrouping > b.fieldrowgrouping ? 1 : -1).map((ticketFieldData) => {\n if (ticketFieldData.fieldcontrol === 1) {\n return (\n \n \n \n )\n }\n if (ticketFieldData.fieldcontrol === 2) {\n return (\n \n {handleSelectionClick(\"defaultcontrol\" + ticketFieldData.fieldid, ticketFieldData)}}\n />\n \n )\n }\n else if (ticketFieldData.fieldcontrol === 4) {\n return (\n \n \n \n )\n }\n else if (ticketFieldData.fieldcontrol === 5) {\n return (\n \n \n \n )\n }\n\n })}\n \n\n {/*{controlWatch === 3 &&*/}\n {/* */}\n {/*}*/}\n\n\n {/*{controlWatch === 6 &&*/}\n {/* */}\n {/* { handleDateTimeChange(e)}}*/}\n {/* // renderInput={(params) => }*/}\n {/* />*/}\n {/* */}\n {/*}*/}\n \n\n \n \n {handleClose()}}\n form=\"items-form\">\n Close\n \n \n Submit\n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, Switch, TextField, Typography\n} from '@material-ui/core'\nimport styles from './EventTransactionsTable.module.css'\nimport axios from \"axios\";\nimport {\n FormControl,\n FormControlLabel, FormLabel, Grid,\n InputLabel,\n} from \"@mui/material\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport styled from \"@emotion/styled\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport {Add, Edit} from \"@material-ui/icons\";\nimport {DataGridPremium, GridCellParams} from \"@mui/x-data-grid-premium\";\nimport {useQueryClient} from \"react-query\";\nimport {GenericForm} from \"../GenericForm/GenericForm\";\n\ninterface FormData {\n id: number\n paymentmethod: string\n additionaldonation: number\n discount: number\n}\n\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const EventCheckoutReview = ({ isOpen, setIsOpen, eventId, transactionid, setTransactionId, setItemQuantity }) => {\n const queryClient = useQueryClient()\n const formMethods = useForm()\n const eventState = useEventState()\n const title = \"Review Transaction\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false)\n const [isGuestOpen, setIsGuestOpen] = React.useState(false);\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [ticketList, setTicketList] = React.useState([])\n const [ticketId, setTicketId] = React.useState(0)\n\n const [setupData, setSetupData] = React.useState({})\n const [transactionData, setTransactionData] = React.useState({\n // transactionid: 0,\n transactiontotalamount: 0,\n transactionpaymentmethod: '',\n transactionadditionaldonation: 0,\n transactionaddress: '',\n transactionaddress2: '',\n transactioncity: '',\n transactioncountry: '',\n transactiondate: '',\n transactiondiscountamount: 0,\n transactionemail: '',\n transactionfirst: '',\n transactionlast: '',\n transactionphone: '',\n transactionprocessingfees: 0,\n transactionsource: '',\n transactionstate: '',\n transactionsubtotal: 0,\n transactionzip: '',\n itemdetail: [],\n ticketlist: [],\n })\n\n useEffect(() => {\n getTransactionData(true)\n }, [isOpen])\n\n useEffect(() => {\n getTransactionData(false)\n }, [isGuestOpen])\n\n const getTransactionData = async (updateTransData) => {\n if (eventId > 0 && transactionid > 0) {\n setLoading(true)\n console.log(transactionid)\n console.log(eventId)\n const { data } = await axios.post('/evtactivitytransactions', {eventid: eventId, transactionid: transactionid})\n const parsedData = JSON.parse(data.jsonString)\n if (updateTransData) {\n setTransactionData(parsedData)\n }\n\n console.log(parsedData?.ticketlist)\n const newTicketList = parsedData?.ticketlist?.map(ticket => {\n return {guestname: ticket.guestname, groupname: ticket.groupname, ticket: ticket.ticket, ticketid: ticket.ticketid, id: ticket.ticketid}\n })\n setTicketList(newTicketList)\n setLoading(false)\n }\n }\n\n const onSubmit = async () => {\n queryClient.invalidateQueries(['EventTransaction', Number(eventId)])\n\n setItemQuantity({})\n setTransactionId(0)\n setIsOpen(false)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n }\n\n const handleEdit = (params: GridCellParams) => {\n setTicketId(params.row.ticketid)\n // getEventTicket(params.row.ticketid)\n setIsGuestOpen(true)\n }\n\n const columns = [\n {\n field: 'Edit',\n disableExport: true,\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'guestname',\n type: 'string',\n headerName: 'Guest Name',\n minWidth: 300\n },\n {\n field: 'groupname',\n type: 'string',\n headerName: 'Group Name',\n minWidth: 300\n },\n {\n field: 'ticket',\n type: 'string',\n headerName: 'Ticket',\n minWidth: 300\n },\n ]\n\n return (\n <>\n \n {title}\n {/**/}\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n Items\n \n \n {transactionData?.itemdetail?.map((cd) => (\n \n \n {cd.transactiondetailitemname}\n \n \n {cd.transactiondetailqty + ' x ' + formatMoney(cd.transactiondetailprice) + ' = ' + formatMoney(cd.transactiondetaillinetotal)}\n \n \n ))}\n\n \n \n Subtotal: \n \n \n {formatMoney(transactionData.transactionsubtotal | 0)} ({transactionData?.itemdetail?.length | 0} items)\n \n \n \n \n Customer Information:\n \n \n CC Fees: \n \n \n {formatMoney(transactionData.transactionprocessingfees)}\n \n \n \n \n {transactionData.transactionfirst + ' ' + transactionData.transactionlast}\n \n \n Discount: \n \n \n {formatMoney(transactionData.transactiondiscountamount)}\n \n \n \n \n {transactionData.transactionaddress + ' ' + transactionData.transactioncity + ' ' + transactionData.transactionstate + ' ' + transactionData.transactionzip}\n \n \n Additional Donation: \n \n \n {formatMoney(transactionData.transactionadditionaldonation)}\n \n \n \n \n {transactionData.transactionemail}\n \n \n Total: \n \n \n {formatMoney(transactionData.transactiontotalamount)}\n \n \n \n \n Payment Method: \n \n \n {transactionData.transactionpaymentmethod}\n \n \n\n \n \n Guest Registration\n \n \n \n {ticketList && ticketList.length > 0 &&\n \n }\n \n \n \n \n {onSubmit()}}\n form=\"items-form\">\n Close\n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport {Add, Add as AddIcon, Delete, Edit, AddShoppingCartOutlined, ShoppingCartOutlined} from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEventTransaction, useFetchTransaction, useUpdateTransaction} from '../../queries/events/useEventTransactionFetch'\nimport { EventTransactionsForm } from './EventTransactionsForm'\nimport styles from './EventTransactionsTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\nimport {EventTransactionsDetailForm} from \"./TransactionDetailForm\";\nimport {EventAddCheckoutForm} from \"./EventAddCheckoutForm\";\nimport {EventCheckoutForm} from \"./EventCheckoutForm\";\nimport {EventCheckoutReview} from \"./EventCheckoutReview\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventTransactionsTable = () => {\n\n const { eventid } = useParams()\n console.log(eventid)\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const eventState = useEventState()\n // const eventUserDefineCreate = useCreateEvtUserDefined()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n const [transactionId, setTransactionId] = useState(0)\n const { data, isLoading } = useFetchTransaction( Number(eventid) )\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [isAddEventCheckout, setIsAddEventCheckout] = useState(false)\n const [isEventCheckout, setIsEventCheckout] = useState(false)\n const [isEventReview, setIsEventReview] = useState(false)\n const [itemQuantity, setItemQuantity] = React.useState({})\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.map((item) => {\n return { id: item.transactionid, ...item}\n })\n }\n\n useEffect(() => {\n console.log(transactionId)\n }, [transactionId])\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsAddEventCheckout(true)\n }\n\n const handleCheckoutReview = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const purchaser = rows.find((item) => item.id === Number(params.id))\n setGridParams(purchaser)\n setTransactionId(purchaser.transactionid)\n setIsEventReview(true)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n <>\n { handleCheckoutReview(params) }}>\n \n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'transactiondate',\n headerName: 'Date Added',\n width: 180,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM/DD/YYYY hh:mm A')\n },\n },\n {\n field: 'transactionname',\n type: 'string',\n headerName: 'Name',\n minWidth: 200\n },\n {\n field: 'transactionemail',\n type: 'string',\n headerName: 'Email',\n minWidth: 250\n },\n {\n field: 'transactionsource',\n type: 'string',\n headerName: 'Source',\n minWidth: 120\n },\n {\n field: 'transactiontotalamount',\n type: 'string',\n headerName: 'Amount',\n width: 120,\n align: \"right\",\n valueFormatter: (params: GridValueFormatterParams) => {\n return '$' + params.value.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n },\n },\n {\n field: 'transactionitemtype',\n type: 'string',\n headerName: 'Transaction Type',\n minWidth: 480\n },\n\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n )\n }\n\n const handleNext = () => {\n setIsAddEventCheckout(false)\n setIsEventCheckout(true)\n }\n\n return (\n
    \n

    Event Transactions

    \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n
    \n )\n}\n\nexport default EventTransactionsTable\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventTransactionFetcher = async (body) => {\n const { data } = await axios.post('/evtactivitytickets', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n return parsedData\n}\n\nexport const useFetchTickets = (eventIDvalue, ticketItemId) => {\n return useQuery(\n ['EventActivityTickets', eventIDvalue, ticketItemId],\n () => globalEventTransactionFetcher({ \"eventid\": eventIDvalue, ticketitemid: ticketItemId }),\n )\n}\n\nexport const useCreateEventTickets = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateTickets = (eventIDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined', eventIDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEventTickets, useFetchTickets, useUpdateTickets} from '../../queries/events/useEventTicketsFetch'\nimport { EventTicketsForm } from './EventTicketsForm'\nimport styles from './EventTicketsTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\nimport {GenericForm} from \"../GenericForm/GenericForm\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventTicketsTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const eventState = useEventState()\n // const eventUserDefineCreate = useCreateEvtUserDefined()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n const [ticketItem, setTicketItem] = useState(\"-1\")\n const [ticketId, setTicketId] = React.useState(0)\n const [endpoint, setEndpoint] = useState(\"evtticket\")\n\n const { data, isLoading } = useFetchTickets( Number(eventid), ticketItem )\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.tickets.map((item) => {\n return { id: item.ticketid, ...item}\n })\n }\n\n const handleAdd = () => {\n console.log(ticketItem)\n setEndpoint('evtticketcomplimentary')\n setTicketId(Number(ticketItem))\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n useEffect(() => {\n if (data && data.selectedticketitemid) {\n setTicketItem(data.selectedticketitemid)\n }\n }, [data])\n\n\n useEffect(() => {\n queryClient.invalidateQueries(['EventActivityTickets', Number(eventid), ticketItem])\n }, [ticketItem, isFormShowing])\n\n const handleEdit = (params: GridCellParams) => {\n setEndpoint('evtticket')\n setReloadForm(reloadForm+1)\n const purchaser = rows.filter((item) => item.id === Number(params.id))[0]\n\n setTicketId(params.row.ticketid)\n setGridParams(purchaser)\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.fieldname + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"udid\": id,\n \"delete\": true\n }\n // const { data: response } = await eventUserDefineCreate.mutateAsync({\n // ...finaldata\n // },{\n // onSuccess: (data) => {\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // }\n // }\n // })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n // renderHeader: () => {\n // return (\n // handleAdd()}\n // size=\"small\">\n // \n // \n // )\n // },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'transactionname',\n type: 'string',\n headerName: 'Purchaser',\n minWidth: 320\n },\n {\n field: 'groupname',\n type: 'string',\n headerName: 'Group Name',\n minWidth: 320\n },\n {\n field: 'ticketname',\n type: 'string',\n headerName: 'Guest Name',\n minWidth: 320\n },\n // {\n // field: 'action',\n // headerName: 'Delete',\n // headerAlign: 'center',\n // align: 'center',\n // disableExport: true,\n // width: 70,\n // sortable: false,\n // renderCell: (params) => (\n // //
    \n //
    \n // { handleDelete(params) }}>\n // \n // \n //
    \n // //
    \n // // \n // )\n // }\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const getTicketItemOptions = () => {\n return data?.ticketitemlist?.map(item => (\n \n {item.ticketitemname}\n \n ))\n }\n\n const handleSelectionChange = async (event: SelectChangeEvent) => {\n console.log(event.target.value)\n setTicketItem(event.target.value as string);\n }\n\n return (\n <>\n {/**/}\n {/* */}\n {/* */}\n {/* {getTemplateOptions()}*/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* {getStatusOptions()}*/}\n {/* */}\n {/* */}\n {/* */}\n {/* handleExport({ getRowsToExport: getUnfilteredRows })}*/}\n {/* >*/}\n {/* EXPORT*/}\n {/* */}\n {/* /!**!/*/}\n {/* */}\n {/**/}\n\n\n \n <>\n \n \n \n {handleAdd()}}\n color=\"primary\">\n Add Complimentary Ticket\n \n \n \n \n \n {getTicketItemOptions()}\n \n \n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n \n )\n }\n\n return (\n
    \n

    Ticket Maintenance

    \n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n {/**/}\n \n
    \n )\n}\n\nexport default EventTicketsTable\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventDiscountCodesFetcher = async (body) => {\n const { data } = await axios.post('/evtdiscountcodes', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const useFetchDiscountCodes = (eventIDvalue) => {\n return useQuery(\n ['evtdiscountcodes', eventIDvalue],\n () => globalEventDiscountCodesFetcher({ \"eventid\": eventIDvalue }),\n )\n}\n\nexport const useCreateEventDiscountCode = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateDiscountCodes = (eventIDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['EventActivityDiscountCodes', eventIDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {Controller, useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, MenuItem, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventDiscountCodesTable.module.css'\nimport axios from \"axios\";\nimport {\n Grid, SelectChangeEvent,\n} from \"@mui/material\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport DateTimeInput from \"../../components/common/inputs/DateTimeInput\";\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\n\n\ninterface FormData {\n id: number\n discountactive: string\n discountamount: string\n discountcandelete: boolean\n discountcode: string\n discountdescription: string\n discountdateend: string\n discountid: number\n discountitemids: string\n discountitems: string\n discountmethod: string\n discountmethodid: number\n discountminimumpurchaseneeded: string\n discountminimumquantityneeded: number\n discountdatestart: string\n discounttype: string\n discounttypeid: number\n}\n\nexport const EventDiscountCodesForm = ({ isOpen, setIsOpen, reloadForm, eventid, discountid }) => {\n const formMethods = useForm()\n\n const queryClient = useQueryClient()\n const title = discountid > 0 ? \"Edit Promo Code\" : \"Add Promo Code\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus, reset } = formMethods\n\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false)\n const [displayItemDiscount, setDisplayItemDiscount] = React.useState(true)\n const [displayPaymentMethodAmount, setDisplayPaymentMethodAmount] = React.useState(true)\n const discounttypeidWatch = watch('discounttypeid')\n const discountmethodidWatch = watch('discountmethodid')\n const discountamountWatch = watch('discountamount')\n\n const [dropdownData, setDropdownData] = React.useState({\n discounttypelist: [],\n itemlist: [],\n discountmethodlist: [],\n })\n const [discountData, setDiscountData] = React.useState({\n discountactive: 'active',\n discountamount: '',\n discountcandelete: true,\n discountcode: '',\n discountdescription: '',\n discountdateend: null,\n discountid: 0,\n discountitemids: \"\",\n discountitems: \"\",\n discountmethod: \"\",\n discountmethodid: 0,\n discountminimumpurchaseneeded: \"\",\n discountminimumquantityneeded: 1,\n discountdatestart: \"\",\n discounttype: '',\n discounttypeid: 0\n })\n\n useEffect(() => {\n console.log(discountid)\n }, [discountid])\n\n\n // useEffect(() => {\n // var newData = {...discountData}\n // console.log('amount watch')\n // const discountObject = dropdownData?.discountmethodlist?.find(item => item.id === discountmethodidWatch)\n // console.log(discountObject)\n // if (discountObject?.code === 'M') {\n // newData['discountamount'] = formatMoney(Number(discountamountWatch.replace('$', '')))\n // }\n // else {\n // newData['discountamount'] = discountamountWatch + '%'\n // }\n // reset(newData)\n // }, [discountamountWatch])\n\n\n useEffect(() => {\n const discountObject = dropdownData?.discounttypelist?.find(item => item.id === discounttypeidWatch)\n if (discountObject?.code === 'I') {\n setDisplayItemDiscount(true)\n }\n else {\n setDisplayItemDiscount(false)\n }\n }, [discounttypeidWatch])\n\n useEffect(() => {\n const discountObject = dropdownData?.discountmethodlist?.find(item => item.id === discountmethodidWatch)\n if (discountObject?.code === 'M') {\n setDisplayPaymentMethodAmount(true)\n }\n else {\n setDisplayPaymentMethodAmount(false)\n }\n }, [discountmethodidWatch])\n\n useEffect(() => {\n const getData = async () => {\n await getDropdownData()\n if (discountid > 0) {\n getDiscountData()\n }\n else {\n // const dropDownTypeDefault = dropdownData?.discounttypelist[0]\n // const discountMethodList = dropdownData?.discountmethodlist[0]\n\n\n reset ({\n discountactive: 'active',\n discountamount: '',\n discountcandelete: true,\n discountcode: '',\n discountdescription: '',\n discountdateend: null,\n discountid: 0,\n discountitemids: \"\",\n discountitems: \"\",\n discountmethod: \"\",\n // discountmethodid: discountMethodList?.id,\n discountmethodid: 0,\n discountminimumpurchaseneeded: \"\",\n discountminimumquantityneeded: 1,\n discountdatestart: null,\n discounttype: '',\n // discounttypeid: dropDownTypeDefault?.id\n discounttypeid: 0\n })\n }\n }\n getData()\n }, [discountid, isOpen])\n\n const getDropdownData = async () => {\n setLoading(true)\n const { data } = await axios.post('/evtdiscountcodesdropdowns', {eventid: eventid})\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setDropdownData(parsedData)\n setLoading(false)\n }\n\n const getDiscountData = async () => {\n setLoading(true)\n const { data } = await axios.post('/evtdiscountcodes', {eventid: eventid, discountid: discountid})\n const parsedData = JSON.parse(data.jsonString)\n var newData = {...parsedData}\n\n console.log(newData)\n\n if (!newData['discountdatstart']) {\n newData['discountdatestart'] = null\n }\n if (!newData['discountdateend']) {\n newData['discountdateend'] = null\n }\n\n newData['discountactive'] = parsedData['discountactive'] ? 'active' : 'inactive'\n\n setDiscountData(newData)\n\n reset(newData)\n\n const discountObject = dropdownData?.discounttypelist?.find(item => item.id === newData.discounttypeid)\n if (discountObject?.code === 'I') {\n setDisplayItemDiscount(true)\n }\n else {\n setDisplayItemDiscount(false)\n }\n\n setLoading(false)\n }\n\n const onSubmit = async (formdata: FormData) => {\n console.log(formdata)\n var amount = formdata['discountamount']\n\n var body = {\n eventid: eventid,\n delete: false,\n ...formdata,\n discountamount: amount,\n discountminimumpurchaseneeded: Number(formdata['discountminimumpurchaseneeded']),\n discountminimumquantityneeded: Number(formdata['discountminimumquantityneeded']),\n discountitemids: formdata['discountitemids']?.toString(),\n discounttype: formdata['discounttype'],\n active: formdata['discountactive'] === \"active\" ? true : false\n }\n\n if (body['discountdatestart'] == null) {\n delete body['discountdatestart'];\n }\n\n if (body['discountdateend'] == null) {\n delete body['discountdateend'];\n }\n\n\n const { data } = await axios.put('/evtdiscountcodes', body)\n const parsedData = JSON.parse(data.jsonString)\n\n if (parsedData?.status === 'failure') {\n setDialogMsg(parsedData.message)\n }\n else {\n queryClient.invalidateQueries(['evtdiscountcodes'])\n setIsOpen(false)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const getItemListOptions = () => {\n var dtRows = [{value: 0, label: ''}]\n if (dropdownData?.itemlist) {\n dtRows = dropdownData?.itemlist?.map((item) => {\n return {value: item.itemid, label: item.itemname}\n })\n }\n return dtRows\n }\n\n const getDiscountMethodOptions = () => {\n const dtRows = dropdownData?.discountmethodlist?.map((item) => {\n return {value: item.id, label: item.name}\n })\n return dtRows\n }\n\n const getDiscountTypeListOptions = () => {\n const dtRows = dropdownData?.discounttypelist?.map((item) => {\n return {value: item.id, label: item.name}\n })\n return dtRows\n }\n\n return (\n <>\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n (val?.length === 0 || val === 'none' || val === 0) ? \"\" : clearErrors('discounttypeid'),\n }}\n />\n \n \n \n \n \n (val?.length === 0 || val === 'none' || val === 0) ? \"\" : clearErrors('discountmethodid'),\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Save\n \n \n \n \n\n )\n}\n","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEventDiscountCode, useFetchDiscountCodes, useUpdateDiscountCodes} from '../../queries/events/useEventDiscountCodesFetch'\nimport { EventDiscountCodesForm } from './EventDiscountCodesForm'\nimport styles from './EventDiscountCodesTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport axios from \"axios\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventDiscountCodesTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n const [ticketItem, setTicketItem] = useState(\"-1\")\n const [discountId, setDiscountId] = useState(0)\n const { data, isLoading } = useFetchDiscountCodes( Number(eventid) )\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.discounts.map((item) => {\n return { id: item.discountid, ...item}\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setDiscountId(-1)\n setIsFormShowing(true)\n }\n\n useEffect(() => {\n if (data && data.selectedticketitemid) {\n setTicketItem(data.selectedticketitemid)\n }\n }, [data])\n\n useEffect(() => {\n queryClient.invalidateQueries(['EventActivityDiscountCodes', Number(eventid), ticketItem])\n }, [ticketItem])\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n setDiscountId(Number(params.row.discountid))\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.discountcode + \"\\\"?\",\n id: Number(params.row.discountid)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var body = {\n \"eventid\": Number(eventid),\n \"discountid\": id,\n \"delete\": true\n }\n\n const { data } = await axios.put('/evtdiscountcodes', body)\n const parsedData = JSON.parse(data.jsonString)\n queryClient.invalidateQueries(['evtdiscountcodes'])\n\n if (parsedData.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(parsedData.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'discountcode',\n type: 'string',\n headerName: 'Code',\n minWidth: 220\n },\n {\n field: 'discountdescription',\n type: 'string',\n headerName: 'Description',\n minWidth: 280\n },\n {\n field: 'discounttype',\n type: 'string',\n headerName: 'Type',\n minWidth: 180\n },\n {\n field: 'discountamount',\n type: 'string',\n align: 'right',\n headerName: 'Amount / Percentage',\n minWidth: 180,\n renderCell: (params) => {\n // console.log(params)\n if (params.row.discountmethod === 'Dollar Amount') {\n return ( {formatMoney(params.row.discountamount)})\n }\n else {\n return ( {params.row.discountamount + '%'})\n }\n }\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return formatMoney(params.value)\n // }\n },\n {\n field: 'discountdatestart',\n type: 'string',\n headerName: 'Start Date',\n minWidth: 180,\n valueFormatter: (params: GridValueFormatterParams) => {\n if (params.value) {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n }\n else {\n return ''\n }\n },\n },\n {\n field: 'discountdateend',\n type: 'string',\n headerName: 'End Date',\n minWidth: 180,\n valueFormatter: (params: GridValueFormatterParams) => {\n if (params.value) {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n }\n else {\n return ''\n }\n },\n },\n {\n field: 'discountactive',\n type: 'string',\n headerName: 'Active',\n minWidth: 120,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
    \n <>\n {params.row.discountcandelete &&\n
    \n { handleDelete(params) }}>\n \n \n
    \n }\n \n\n\n //
    \n // \n )\n }\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n \n \n \n )\n }\n\n return (\n
    \n

    Promo Codes

    \n\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n
    \n )\n}\n\nexport default EventDiscountCodesTable\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport styles from '../GenericForm/GenericForm.module.css'\nimport axios from \"axios\"\nimport {Grid, InputLabel} from \"@mui/material\";\nimport styled from \"@emotion/styled\"\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\n}\n\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const GuestForm = ({ isGuestOpen, setIsGuestOpen, endpoint, eventId, genericid, ticketid, reloadGuestData, setReloadGuestData }) => {\n const formMethods = useForm()\n const {watch, getValues, setValue, register, reset} = formMethods\n const [loading, setLoading] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0, title: \"\" })\n const [dialogMsg, setDialogMsg] = React.useState({active: false, msg: ''})\n const [ticketData, setTicketData] = React.useState({\n ticketfieldslist: [],\n tickettitle: '',\n showbuttonreassign: false,\n showbuttonunassign: false,\n ticketlookuplist: [],\n })\n\n useEffect(() => {\n if (isGuestOpen) {\n getEventTicket()\n }\n }, [eventId, genericid, endpoint, isGuestOpen])\n\n const getTicketLookupDataOptions = (lookupfieldid) => {\n const dtRows = ticketData?.ticketlookuplist?.filter((e) => e.lookupactive === 1 && e.lookupfieldid === lookupfieldid).map((types) => {\n return {value: types.lookupid, label: types.lookup}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const unassignEventTicket = async () => {\n setLoading(true)\n const { data } = await axios.put('/' + endpoint, {eventid: eventId, genericid: genericid, unassign: true})\n const parsedData = JSON.parse(data.jsonString)\n\n setDialogObj({\n title: '',\n id: 0,\n msg: ''\n })\n if (parsedData.status === 'success') {\n setDialogMsg({active: false, msg: ''})\n setIsGuestOpen(false)\n // setDialogMsg({active: false, msg: dialogMsg.msg})\n\n }\n else {\n // setDialogMsg({active: false, msg: parsedData.message})\n setDialogMsg({active: true, msg: parsedData.message})\n }\n\n setLoading(false)\n }\n\n const getEventTicket = async () => {\n var body = {eventid: eventId}\n\n console.log(genericid)\n\n if (genericid > 0) {\n body['registrationid'] = genericid\n body['id'] = genericid\n }\n\n setLoading(true)\n const { data } = await axios.post('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n\n setTicketData(parsedData)\n\n var newFormValues = {}\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n setLoading(false)\n }\n const handleClose = () => {\n setIsGuestOpen(false)\n }\n\n const onSubmit = async (formData: FormData) => {\n var fieldList = []\n const formKeys = Object.keys(formData)\n formKeys.map(key => {\n const fieldId = key.split(\"defaultcontrol\").pop()\n var element = ticketData?.ticketfieldslist?.find(field => Number(field.fieldid) === Number(fieldId))\n const defaultValueControl = 'defaultcontrol' + fieldId\n var fieldDataObject = {fieldid: element.fieldid}\n if (formData && formData[defaultValueControl]) {\n fieldDataObject['fieldvalue' + element.fieldcontrol] = formData[defaultValueControl]\n fieldList.push(fieldDataObject)\n }\n });\n const body = {eventid: Number(eventId), ticketid: ticketid, fieldslist: fieldList, registrationid: genericid}\n const {data} = await axios.put('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n\n setReloadGuestData(reloadGuestData+1)\n setIsGuestOpen(false)\n }\n\n const handleSelectionClick = async (fieldControlId, fieldData) => {\n // console.log(getValues(fieldControlId))\n // console.log(fieldData)\n\n if (fieldData && fieldData.onchange) {\n var body = {}\n console.log(fieldData?.onchange?.params)\n fieldData?.onchange?.params?.map(key => {\n if (key.startsWith('fieldid')) {\n body['fieldid'] = getValues(fieldControlId)\n }\n else if (key === 'ticket-id') {\n body['ticketid'] = getValues(fieldControlId)\n }\n else if (key.endsWith('-id')) {\n const newKey = key.replace('-', '')\n body[newKey] = genericid\n }\n else if (key === 'eventid') {\n body['eventid'] = eventId\n }\n })\n if (fieldData.onchange.endpoint) {\n const {data} = await axios.post(fieldData.onchange.endpoint, body)\n if (data.jsonString) {\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n if (parsedData?.status === 'success') {\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n console.log(item)\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n console.log(newFormValues)\n reset(newFormValues)\n console.log(body)\n }\n }\n }\n }\n }\n\n const handleUnassign = () => {\n setDialogObj({\n title: '',\n id: 0,\n msg: 'Are you sure you want to unassign this guest?'\n })\n }\n\n const handleReassign = () => {\n const newTicketData = {...ticketData}\n console.log(newTicketData?.ticketfieldslist)\n var ticket = newTicketData?.ticketfieldslist.find(ticket => ticket.fieldid === -1001)\n ticket.fieldreadonly = false\n setTicketData(newTicketData)\n }\n\n const unassignDialog = async () => {\n await handleUnassignConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n\n const handleUnassignConfirm = async (id: number) => {\n // var finaldata = {\n // \"eventid\": Number(eventState.eventId),\n // \"historyid\": id,\n // \"delete\": true\n // }\n // const { data: response } = await updateBidMaintenanceMutation.mutateAsync({\n // ...finaldata\n // },{\n // onSuccess: (data) => {\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // }\n // }\n // })\n }\n\n return (\n <>\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.title}\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n \n \n \n {dialogMsg.msg}\n \n \n \n \n \n \n \n\n {ticketData.tickettitle}\n \n \n \n\n {(ticketData.showbuttonreassign || ticketData.showbuttonunassign) &&\n \n {ticketData.showbuttonunassign &&\n \n \n {handleUnassign()}}>Unassign Ticket\n \n \n \n }\n\n {ticketData.showbuttonreassign &&\n \n \n {handleReassign()}}>Reassign a ticket to another guest\n \n \n \n }\n \n }\n\n\n \n {/*fieldrowgrouping*/}\n {/*fieldorder*/}\n {ticketData?.ticketfieldslist?.sort((a, b) => (a.fieldrowgrouping > b.fieldrowgrouping ? 1 : -1 && a.fieldorder > b.fieldorder ? 1 : -1)).map((ticketFieldData) => {\n // console.log(ticketFieldData)\n if (ticketFieldData.fieldcontrol === 1) {\n return (\n \n \n \n )\n }\n if (ticketFieldData.fieldcontrol === 2) {\n return (\n \n {handleSelectionClick(\"defaultcontrol\" + ticketFieldData.fieldid, ticketFieldData)}}\n />\n \n )\n }\n else if (ticketFieldData.fieldcontrol === 4) {\n return (\n \n \n \n )\n }\n else if (ticketFieldData.fieldcontrol === 5) {\n return (\n \n \n \n )\n }\n\n })}\n \n\n {/*{controlWatch === 3 &&*/}\n {/* */}\n {/*}*/}\n\n\n {/*{controlWatch === 6 &&*/}\n {/* */}\n {/* { handleDateTimeChange(e)}}*/}\n {/* // renderInput={(params) => }*/}\n {/* />*/}\n {/* */}\n {/*}*/}\n \n\n \n \n {handleClose()}}\n form=\"items-form\">\n Close\n \n \n Submit\n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridToolbarExport, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\n\nimport styles from './EventGuestMaintenance.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport {useFetchGuests} from \"../../queries/events/useEventGuestFetch\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport {GenericForm} from \"../GenericForm/GenericForm\";\nimport {GuestForm} from \"./GuestForm\";\nimport {useFetchTickets} from \"../../queries/events/useEventTicketsFetch\";\nimport {useAutoEvt} from \"../../queries/useAutoEvt\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventGuestMaintenanceTable = () => {\n const { eventid } = useParams()\n useAutoEvt(eventid)\n const queryClient = useQueryClient()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n const [reloadGuestData, setReloadGuestData] = useState(0)\n const [ticketItem, setTicketItem] = useState(null)\n const [rows, setRows] = useState([])\n const [ticketList, setTicketList] = useState([])\n const [guestsData, setGuestData] = useState({registrations: [], selectedticketid: null, status: null, message: null, ticketlist: []})\n const [isFormShowing, setIsFormShowing] = useState(false)\n\n const getGuestData = async () => {\n var body = {'eventid': eventid}\n const { data } = await axios.post('/evtactivityregistrations', body)\n const parsedData = JSON.parse(data.jsonString)\n setGuestData(parsedData)\n }\n\n useEffect(() => {\n getGuestData()\n }, [eventid, reloadGuestData])\n\n useEffect(() => {\n console.log(guestsData)\n if (guestsData) {\n setTicketList(guestsData.ticketlist)\n setRows(guestsData.registrations.map((item) => {\n return { id: item.registrationid, ...item}\n }))\n setTicketItem(guestsData.selectedticketid)\n }\n }, [guestsData])\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const purchaser = rows?.filter((item) => item.id === Number(params.id))[0]\n\n console.log(purchaser)\n\n setGridParams(purchaser)\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.registrationname + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"registrationid\": id,\n \"delete\": true\n }\n\n const { data } = await axios.delete('/evtactivityregistrations', {data: finaldata})\n const json = JSON.parse(data.jsonString)\n\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n getGuestData()\n }\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'purchasernames',\n type: 'string',\n headerName: 'Purchaser',\n minWidth: 280\n },\n {\n field: 'registrationname',\n type: 'string',\n headerName: 'Name',\n minWidth: 320\n },\n {\n field: 'registrationemail',\n type: 'string',\n headerName: 'Email',\n minWidth: 320\n },\n {\n field: 'ticketnames',\n type: 'string',\n headerName: 'Ticket',\n minWidth: 180\n },\n {\n field: 'registrationphone',\n type: 'string',\n headerName: 'Phone',\n minWidth: 180\n },\n {\n field: 'registrationsource',\n type: 'string',\n headerName: 'Source',\n minWidth: 120\n },\n {\n field: 'registrationadded',\n type: 'string',\n headerName: 'Added',\n minWidth: 220,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => {\n return (\n
    \n {params.row.candelete &&\n {\n handleDelete(params)\n }}\n >\n \n \n }\n
    \n )\n }\n }\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const getTicketItemOptions = () => {\n return ticketList?.map(item => (\n \n {item.ticketname}\n \n ))\n }\n\n const handleSelectionChange = async (event: SelectChangeEvent) => {\n const newTicketItem = Number(event.target.value)\n if (newTicketItem >= -1) {\n axios.post('/evtactivityregistrations', {eventid: Number(eventid), ticketid: newTicketItem}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setGuestData(parsedData)\n })\n }\n // setTicketItem(Number(event.target.value));\n }\n\n return (\n \n <>\n \n \n \n {getTicketItemOptions()}\n \n \n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n \n \n \n )\n }\n\n return (\n
    \n

    Guest Maintenance

    \n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n
    \n )\n}\n\nexport default EventGuestMaintenanceTable\n","import React, { useEffect, useMemo, useState } from 'react'\nimport { useForm, useFormContext } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, FormGroup, Grid, InputAdornment, TextField, Typography\n} from '@material-ui/core'\n\nimport HookForm from '../../components/common/HookForm'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { useFetchLocationTags } from '../../queries/events/useFetchLocationTags'\nimport styles from './AuctionItemsTable.module.css'\nimport { useEventState } from \"../../slices/eventSlice\";\nimport { FormControlLabel, ToggleButton, ToggleButtonGroup } from \"@mui/material\";\nimport QRCode from \"react-qr-code\";\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useParams } from 'react-router'\nimport { getConfig } from '../../AppConfig'\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\nimport IconButton from '@mui/material/IconButton';\nimport { useAuctionInfo } from '../../queries/useFetchAuctionInfo'\n\ninterface Params {\n id: string\n}\n\n\n\ninterface FormData {\n multipleitems: string\n location: number\n duration: number\n itemsperpage: number\n}\n\nexport const AuctionCarouselSetup = () => {\n const { auctionSnapURL } = getConfig()\n\n const { id } = useParams()\n useAutoEvent(id)\n const formMethods = useForm()\n const eventState = useEventState()\n const title = \"Item Carousel Setup\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const { data: locationAndTags } = useFetchLocationTags(Number(eventState.eventId))\n const watchDuration = watch(\"duration\", 10) // you can supply default value as second argument\n const watchItems = watch(\"itemsperpage\", 6) // you can supply default value as second argument\n const watchTable = watch(\"location\") // you can supply default value as second argument\n const watchAll = watch([\"multipleitems\", \"location\", \"itemsperpage\", \"duration\"]) // you can supply default value as second argument\n\n const [Duration, setDuration] = useState(10)\n const [ItemsperPage, setItemsperPage] = useState(6)\n const [url, setURL] = useState(\"\")\n const [toggleItemType, setToggleItemType] = React.useState(\"detail\");\n const {data: aucInfo} = useAuctionInfo(id)\n\n // useEffect(() => {\n\n\n\n\n // reset({\n // multipleitems: \"Multiple\",\n // location: \"\",\n // duration: 10,\n // itemsperpage: 8,\n\n // })\n // }, [ locationAndTags])\n\n const locations = locationAndTags && locationAndTags.locations ? locationAndTags.locations : []\n\n const locationOptions = useMemo(\n () => locations.filter((e) => e.active === true).map((location) => {\n return { value: location.id, label: location.name }\n }),\n [locations]\n )\n useEffect(() => {\n if (eventState.eventCode != \"\") {\n setURL(aucInfo.auctionlink +\"detail/\")\n }\n }, [eventState.eventCode]);\n\n useEffect(() => {\n console.log(watchAll);\n console.log(aucInfo.auctionlink);\n\n let locationName = locationOptions.filter(f => f.value === watchAll[1])[0]\n let url = buildUrl(aucInfo.auctionlink, toggleItemType, locationName, { duration: \"\" + watchAll[3], itemsperpage: \"\" + watchAll[2] });\n console.log(url)\n setURL(url)\n }, [watchAll]);\n\n const onSubmit = async (data: FormData) => {\n console.log(toggleItemType)\n console.log(data)\n console.log(eventState)\n let locationName = locationOptions.filter(f => f.value === data.location)[0]\n let url = buildUrl(aucInfo.auctionlink, toggleItemType, locationName, data);\n console.log(url)\n setURL(url)\n }\n function buildUrl(auctionSnapURLParam, toggleItemTypeParam, locationNameParam, dataParam) {\n let parts = [auctionSnapURLParam];\n console.log(dataParam)\n \n if (toggleItemTypeParam) parts.push(toggleItemTypeParam);\n if (locationNameParam && locationNameParam.label) parts.push(encodeURIComponent(locationNameParam.label));\n if (dataParam && dataParam.duration && watchTable > 0) parts.push(dataParam.duration);\n if (dataParam && dataParam.itemsperpage && watchTable > 0 && toggleItemType != 'detail') parts.push(dataParam.itemsperpage);\n parts = parts.map(part => part.replace(/\\/+$/, ''));\n\n return parts.join('/');\n }\n const h3Style = {\n margin: 0,\n wordWrap: 'break-word',\n overflowWrap: 'break-word'\n };\n const handleTypeChange = (\n event: React.MouseEvent,\n newAlignment: string\n ) => {\n // if (newAlignment !== null) {\n // const loc : any = getValues('location')\n // if (newAlignment === 'online-auction' && loc === 'none') {\n // setError('location', { type: 'required', message: 'Location is required' })\n // }\n // else if (newAlignment == 'live-auction') {\n // setQuantityValue(1)\n // }\n if (newAlignment !== null) {\n\n setToggleItemType(newAlignment)\n }\n // }\n }\n // console.log(\"tester\");\n\n console.log(watchTable)\n const copyTextToClipboard = async (text) => {\n try {\n await navigator.clipboard.writeText(text);\n console.log('Text successfully copied to clipboard');\n } catch (err) {\n console.error('Failed to copy text: ', err);\n }\n };\n const handleh3Click = () => {\n const text = url;\n copyTextToClipboard(text);\n };\n return (\n\n
    \n

    Item Carousel Setup

    \n \n \n\n \n\n\n \n One Item Per Page\n Multiple Items Per Page\n \n\n \n {watchTable > 0 && (\n <>\n \n {toggleItemType != 'detail' && (\n \n )}\n\n \n )}\n\n \n\n {/* \n Submit\n */}\n\n\n\n\n
    \n \n
    \n
    \n \n \n \n \n {url}\n \n
    \n
    \n
    \n
    \n\n )\n}\n","import * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n\nexport interface ListItemProps {\n data?: any;\n className?: string;\n children?: React.ReactNode;\n style?: React.CSSProperties;\n}\n\nexport const ListItem = React.forwardRef((props, ref) => {\n return (\n \n )\n})\n\nListItem.defaultProps = {\n style: {}\n}\n","import * as React from 'react';\n\nexport interface ListProps {\n style?: React.CSSProperties;\n children?: React.ReactNode;\n}\n\nexport const List = React.forwardRef((props, ref) => {\n return (\n \n )\n});\n\nList.defaultProps = {\n style: {}\n}","import * as React from 'react';\nimport { useDroppable } from '@progress/kendo-react-common';\n\nimport { ListItem } from './ListItem';\nimport { List, ListProps } from './List';\nimport {DataItem, DragContext, DropContext} from \"./EventGroupMaintenance\";\nexport interface DroppableListProps extends ListProps {\n data: DataItem;\n onDrop?: Function;\n}\n\nexport const DroppableList = (props: DroppableListProps) => {\n const list = React.useRef(null);\n const dropInstance = React.useRef<{element: React.RefObject, data: DataItem}>(null);\n React.useImperativeHandle(dropInstance, () => ({ element: list, data: props.data }));\n\n const [drag] = React.useContext(DragContext);\n const [drop, setDrop] = React.useContext(DropContext);\n\n const handleDragEnter = () => {\n if(!props.children || !React.Children.count(props.children)) {\n setDrop(dropInstance.current);\n }\n }\n\n const handleDragLeave = () => {\n if(!props.children || !React.Children.count(props.children)) {\n setDrop(null);\n }\n }\n\n const handleDrop = () => {\n if(props.onDrop) {\n props.onDrop();\n }\n }\n\n useDroppable(list, {\n onDragEnter: handleDragEnter,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop\n })\n\n return (\n \n {props.children && React.Children.count(props.children)\n ? props.children\n : (drag && drop && drop.data.ticketid === props.data.ticketid) && {drag.data.ticketname}\n }\n )\n}","import { QueryClient, QueryClientProvider } from 'react-query'\nimport {Provider, useDispatch} from 'react-redux'\nimport {\n Redirect,\n Route,\n BrowserRouter as Router,\n Switch\n} from 'react-router-dom'\n\n\nimport { AuthGuard } from '../components/common/AuthGuard'\nimport Layout from '../components/common/Layout'\nimport AuctionItemsPage from '../pages/AuctionItemsPage'\nimport EventItemsPage from '../pages/EventItemsPage'\nimport FlexMonsterPage from \"../pages/FlexMonsterPage\";\nimport AuthPage from '../pages/AuthPage'\nimport CustomMessagesPage from '../pages/CustomMessagesPage'\nimport AuctionPage from '../pages/AuctionPage/AuctionPage'\nimport EventPage from '../pages/EventPage/EventPage'\nimport AuctionSettingsForm from '../pages/AuctionSettingsForm'\nimport EvtSettingsForm from '../pages/EventSettingsForm'\nimport EventEmailCustomization from '../pages/EventEmailCustomization'\nimport EventMassEmail from '../pages/EventMassEmail'\n\nimport EventSponsors from '../pages/EventSponsors'\nimport HomePage from '../pages/HomePage'\nimport TermsPage from '../pages/TermsPage'\nimport LocationsTagsPage from '../pages/LocationsTagsPage'\nimport ManualBidEntryPage from '../pages/ManualBidEntryPage'\nimport OrgSettingsPage from '../pages/OrgSettingsPage'\nimport ParticipantsPage from '../pages/ParticipantsPage'\nimport ParticipantsListingPage from '../pages/ParticipantsListingPage'\nimport ParticipantMergePage from '../pages/ParticipantMergePage'\nimport ParticipantLinkingPage from '../pages/ParticipantLinkingPage'\nimport ImportPage from '../pages/ParticipantsPage/ImportPage'\nimport { useAutoAuth } from '../queries/useAutoAuth'\nimport HttpInterceptor from '../util/HttpInterceptor'\nimport styles from './App.module.css'\nimport store from './store'\nimport BidMaintenancePage from \"../pages/BidMaintenancePage\";\nimport AuctionStatusPage from \"../pages/AuctionStatusPage\";\nimport LiveAuctionPage from \"../pages/LiveAuctionPage\";\nimport CheckoutMainPage from \"../pages/CheckoutPage\";\nimport AuctionSummaryReportPage from \"../pages/AuctionSummaryReportPage\";\nimport { LicenseInfo } from '@mui/x-data-grid-pro'\nimport '@progress/kendo-theme-default/dist/all.css';\nimport AdminAuthPage from '../pages/AdminAuthPage'\nimport BroadcastMessagePage from \"../pages/BroadcastMessagePage\";\nimport ForceRefreshPage from \"../pages/ForceRefreshPage\";\nimport TransferPage from \"../pages/TransferPage\";\nimport EventTransferPage from \"../pages/EventTransferPage\";\nimport EventUserDefinedPage from '../pages/EventUserDefinedPage'\nimport EventTransactionsPage from \"../pages/EventTransactionsPage\";\nimport EventTicketsPage from \"../pages/EventTicketsPage\";\nimport EventDiscountCodesPage from \"../pages/EventDiscountCodesPage\";\nimport EventGuestMaintenanceTable from \"../pages/EventGuestMaintenancePage\";\nimport { AuctionCarouselSetup } from '../pages/AuctionCarouselSetup'\nimport EventGroupMaintenance from \"../pages/EventGroupMaintenancePage\";\nimport EventPurchaserLinkPage from \"../pages/EventPurchaserLinkPage\";\nimport EventPurchaserLinkingPage from \"../pages/EventPurchaserLinkingPage\";\nimport EventGuestLinkPage from \"../pages/EventGuestLinkPage\";\nimport EventGuestLinkingPage from \"../pages/EventGuestLinkingPage\";\nimport EventNameTagsPage from '../pages/EventNameTagsPage'\nimport EventGroupListingPage from \"../pages/EventGroupListingPage\";\nimport EventCheckInPage from \"../pages/EventCheckInPage\";\nimport EventGuestInformation from \"../pages/EventGuestInformation\";\n\nLicenseInfo.setLicenseKey(\n '6162e1cce621688e2125dbbff4830a39Tz0xMDEzMjYsRT0xNzYyNDc5MjAxMDAwLFM9cHJlbWl1bSxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxLVj0y'\n)\n\nexport enum PagePathTypes {\n auth = '/auth',\n adminlogin = '/adminlogin/:tokenid',\n settings = '/settings',\n stripeRefresh = '/striperefresh/:refreshaccountid',\n stripeReturn = '/stripereturn/:accountid',\n auctionsettings = '/auction/:id/settings',\n evtsettings = '/event/:id/settings',\n eventtransactions = '/event/:eventid/transactions',\n eventnametags = '/event/:eventid/nametags',\n eventgrouplistingreport = '/event/:eventid/grouplistingreport',\n eventcheckin = '/event/:eventid/eventcheckin',\n eventpurchaserlink = '/event/:eventid/eventpurchaserlink',\n eventpurchaserlinking = '/event/:eventid/eventpurchaserlinking',\n eventguestinformation = '/event/:eventid/eventguestinformation',\n eventguestlink = '/event/:eventid/eventguestlink',\n eventguestlinking = '/event/:eventid/eventguestlinking',\n eventdiscountcodes = '/event/:eventid/discountcodes',\n eventactivitytickets = '/event/:eventid/activitytickets',\n eventguestmaintenance = '/event/:eventid/eventguestmaintenance',\n eventgroupmaintenance = '/event/:eventid/eventgroupmaintenance',\n eventemailcustomization = '/event/:eventid/EventEmailCustomization',\n emassemailmaintenancetable = '/event/:eventid/EventMassEmailMaintenanceTable',\n newauction = '/auctionnew',\n eventnew = '/eventnew',\n home = '/home',\n terms = '/terms',\n eventsponsors = '/auction/:id/sponsors',\n custommessages = '/auction/:id/custommessages',\n locationstags = '/auction/:id/locationstags',\n auctionitems = '/auction/:id/auctionitems',\n eventitems = '/event/:eventid/eventitems',\n eventuserdefined = '/event/:eventid/userdefined',\n participants = '/auction/:eventid/participants',\n ParticipantsLinking = '/auction/:eventid/participantsLinking',\n ParticipantLinking = '/auction/:eventid/ParticipantLinking',\n importParticpants = '/auction/:eventid/participants/import',\n importTypeParticpants = '/auction/:eventid/participants/:importtype/import',\n manualbidentry = '/auction/:eventid/manualbidentry',\n bidmaintenance = '/auction/:eventid/bidmaintenance',\n AuctionSummaryReportPage = '/auction/:eventid/AuctionSummaryReportPage',\n TransferPage = '/auction/:eventid/TransferPage',\n EventTransferPage = '/event/:eventid/EventTransferPage',\n //AuctionSummaryReportDetailPage = '/event/:eventid/AuctionSummaryReportDetailPage',\n AuctionStatus = '/auction/:eventid/AuctionStatus',\n liveauction = '/auction/:eventid/liveauction',\n checkout = '/auction/:eventid/checkout',\n broadcastmessage = '/auction/:eventid/broadcastmessage',\n forcerefresh = '/auction/:eventid/forcerefresh',\n auction = '/auction/:id',\n event = '/event/:id',\n auctioncarouselsetup = '/auction/:id/carouselsetup',\n participantmerge = '/auction/:id/participantmerge'\n}\nconst queryClient = new QueryClient()\n\nconst AutoAuth = ({ children }) => {\n useAutoAuth()\n return children\n}\n\nexport const App = () => {\n return (\n \n \n \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* \n \n \n \n */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n )\n}\n","import * as React from 'react';\nimport { useDraggable, useDroppable, DroppableDragEnterEvent, DroppableDragLeaveEvent, NormalizedDragEvent } from '@progress/kendo-react-common';\n\n\nimport { ListItem, ListItemProps } from './ListItem';\nimport {DirectionContext, DragContext, DropContext} from \"./EventGroupMaintenance\";\n\nexport interface DraggableListItemProps extends ListItemProps {\n onDrop: Function;\n}\n\nexport const DraggableListItem = (props: DraggableListItemProps) => {\n const item = React.useRef(null);\n const hint = React.useRef(null);\n const dropHint = React.useRef(null);\n const dragInstance = React.useRef<{element: React.RefObject, data}>(null);\n const dropInstance = React.useRef<{element: React.RefObject, data}>(null);\n\n React.useImperativeHandle(dragInstance, () => ({ element: hint, data: props.data }));\n React.useImperativeHandle(dropInstance, () => ({ element: item, data: props.data }));\n\n const [drag, setDrag] = React.useContext(DragContext);\n const [drop, setDrop] = React.useContext(DropContext);\n const [direction, setDirection] = React.useContext(DirectionContext);\n\n const [dragged, setDragged] = React.useState(false);\n const [offset, setOffset] = React.useState<{x: number; y: number}>({x: 0, y: 0});\n const [position, setPosition] = React.useState<{x: number, y: number} | null>(null);\n const [width, setWidth] = React.useState(null);\n\n const handlePress = React.useCallback(\n (event: NormalizedDragEvent) => {\n setOffset({\n x: event.offsetX,\n y: event.offsetY\n });\n if(!item.current) {return;}\n setWidth(item.current.offsetWidth);\n },\n []\n )\n\n const handleDragStart = React.useCallback(\n () => {\n setDragged(true);\n setDrag(dragInstance.current)\n },\n [setDrag]\n )\n\n const handleDrag = React.useCallback(\n (event: NormalizedDragEvent) => {\n if(drag && drag.element.current\n && drop && drop.element.current) {\n const newDirection = calculateDirection(drag.element.current, drop.element.current)\n setDirection(newDirection);\n }\n setPosition({\n x: event.clientX - offset.x,\n y: event.clientY - offset.y\n })\n },\n [drag, drop, offset.x, offset.y, setDirection]\n )\n\n const handleDragEnd = React.useCallback(\n () => {\n setDragged(false);\n setOffset({x: 0, y: 0});\n setDrag(null);\n },\n [setDrag]\n )\n\n const handleRelease = React.useCallback(\n () => {\n setDrop(null);\n },\n [setDrop]\n )\n\n const handleDragEnter = React.useCallback(\n () => {\n setDrop(dropInstance.current);\n },\n [setDrop]\n )\n\n const handleDragLeave = React.useCallback(\n () => {\n setDrop(null);\n },\n [setDrop]\n )\n\n const handleDrop = React.useCallback(\n () => {\n if(props.onDrop) {\n props.onDrop();\n }\n setDrop(null);\n },\n [props, setDrop]\n )\n\n useDraggable(\n item,\n {\n onPress: handlePress,\n onDragStart: handleDragStart,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n onRelease: handleRelease\n },\n {\n hint,\n autoScroll: false\n }\n );\n\n useDroppable(item, {\n onDragEnter: handleDragEnter,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop\n });\n useDroppable(dropHint, {\n onDragEnter: handleDragEnter,\n onDrop: handleDrop\n });\n\n return (\n \n {(drag && drop && drop.data.ticketid === props.data.ticketid && direction === 'before') && {drag.data.ticketname}}\n \n {(drag && drop && drop.data.ticketid === props.data.ticketid && direction === 'after') && {drag.data.ticketname}}\n {(dragged && position) && }\n \n )\n}\n\n\nconst calculateDirection = (drag: HTMLElement, drop: HTMLElement) => {\n const dragRect = drag.getBoundingClientRect();\n const dropRect = drop.getBoundingClientRect();\n\n return (dragRect.top + (dragRect.height / 2 )) < (dropRect.top + (dropRect.height / 2))\n ? 'before'\n : 'after'\n}\n","import React, {useEffect, useState} from 'react'\nimport styles from './EventGroupMaintenance.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {DragAndDrop} from '@progress/kendo-react-common';\nimport axios from \"axios\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {\n CardContent,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n List,\n ListItem, TextField,\n Typography\n} from \"@material-ui/core\";\nimport {\n Card,\n CardHeader,\n Grid,\n IconButton,\n InputLabel,\n ListItemText,\n MenuItem,\n Select,\n SelectChangeEvent\n} from \"@mui/material\";\nimport Button from \"@mui/material/Button\";\nimport {DroppableList} from \"./DroppableList\";\nimport {DraggableListItem} from \"./DropableListItem\";\nimport {Delete, Edit, Note} from \"@material-ui/icons\";\nimport {GridCellParams} from \"@mui/x-data-grid-premium\";\n\ninterface Params {\n eventid: string\n}\n//\n// export interface DataItem {\n// groupid: number\n// groupname: string\n// guests: [\n// {\n// ticketid: number | string\n// ticketname?: string\n// }\n// ]\n// }\n\nexport interface DataItem {\n ticketid: number | string\n ticketname?: string\n groupid?: number | string\n}\n\n\nexport const DragContext = React.createContext<[null | {element: React.RefObject, data: DataItem}, Function]>([null, () => {/* noop */}]);\nexport const DropContext = React.createContext<[null | {element: React.RefObject, data: DataItem}, Function]>([null, () => {/* noop */}]);\nexport const DirectionContext = React.createContext<[\"before\" | \"after\", Function]>([\"before\", () => {/* noop */}]);\n\nconst inRange = (min, max, index) => {\n return Math.max(min, Math.min(max, index));\n}\nconst EventGroupMaintenance = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n\n const dropTimeout = React.useRef();\n\n const [data, setData] = React.useState();\n const [drag, setDrag] = React.useState<{element: React.RefObject, data: DataItem} | null>(null);\n const [drop, setDrop] = React.useState<{element: React.RefObject, data: DataItem} | null>(null);\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [groupName, setGroupName] = React.useState({name: \"\", groupid: 0})\n const [newGroupName, setNewGroupName] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false)\n const [reloadForRename, setreloadForRename] = React.useState(false)\n const [ticketItem, setTicketItem] = useState(\"-1\")\n const [groupData, setGroupData] = React.useState({\n ticketgroups: [],\n ticketitemlist: [],\n selectedticketitemid: 0,\n })\n\n useEffect(() => {\n getGroups()\n }, [])\n\n useEffect(() => {\n setTicketItem(groupData.selectedticketitemid.toString())\n }, [groupData])\n\n useEffect(() => {\n setreloadForRename(false)\n getGroups()\n }, [ticketItem, reloadForRename === true])\n\n const handleSelectionChange = async (event: SelectChangeEvent) => {\n setTicketItem(event.target.value as string);\n }\n\n const getGroups = async () => {\n var body = {eventid: eventid}\n\n if (Number(ticketItem) > 0) {\n body['ticketitemid'] = Number(ticketItem)\n }\n\n setLoading(true)\n const { data } = await axios.post('/evtactivitygroups', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setGroupData(parsedData)\n // parsedData.\n // setData(newData)\n\n setData(parsedData.ticketgroups)\n\n setLoading(false)\n }\n\n const getTicketItemOptions = () => {\n return groupData?.ticketitemlist?.map(item => (\n \n {item.ticketitemname}\n \n ))\n }\n\n const [direction, setDirection] = React.useState<\"before\" | \"after\">(\"before\");\n\n const handleDropChange = React.useCallback(\n (newDrop: {element: React.RefObject, data: DataItem} | null) => {\n if(!newDrop) {\n dropTimeout.current = window.setTimeout(() => { setDrop(newDrop) }, 50)\n } else {\n clearTimeout(dropTimeout.current);\n setDrop(newDrop);\n }\n },\n []\n );\n\n const groupFromTicketIndex = (data, ticketid) => {\n var newgroup = null\n data.forEach(group => {\n if (group.guests.find(ticket => ticket.ticketid === ticketid)) {\n newgroup = group\n }\n })\n return newgroup\n }\n\n const handleItemDrop = React.useCallback(\n async () => {\n if(!drag || !drop) { return; }\n const body = {\n eventid: eventid,\n ticketitemid: ticketItem,\n groupid: drop.data.groupid,\n ticketlist: [\n {ticketid: drag.data.ticketid}\n ]\n }\n\n await axios.put('/evtactivitygroups', body)\n setreloadForRename(true)\n },\n [data, direction, drag, drop]\n );\n\n const handleListDrop = React.useCallback(\n () => {\n if(!drag || !drop) { return; }\n console.log('handleListDrop')\n // console.log(data)\n // const newData = data.slice();\n // const oldIndex = newData.findIndex((d) => d.ticketid === drag.data.ticketid);\n // const dataItem = newData[oldIndex];\n // console.log(dataItem)\n //\n // if(dataItem) {\n // newData.splice(newData.length - 1, 0, newData.splice(oldIndex, 1)[0]);\n // setData(newData);\n // }\n },\n [data, drag, drop]\n )\n\n const handleEditGroup = (group) => {\n setNewGroupName(group.groupname)\n setGroupName({\n name: group.groupname,\n groupid: Number(group.groupid)\n })\n }\n\n const addNewGroup = () => {\n setNewGroupName('New Group Name')\n setGroupName({\n name: 'New Group Name',\n groupid: Number(-1)\n })\n }\n\n const saveGroupName = async () => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"groupname\": newGroupName,\n \"groupid\": groupName.groupid,\n \"ticketitemid\": Number(ticketItem),\n }\n\n const { data } = await axios.put('/evtactivitygroupname', finaldata)\n const json = JSON.parse(data.jsonString)\n if (json.status === \"failure\") {\n // setNewGroupName('')\n setGroupName({\n name: '',\n groupid: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setNewGroupName('')\n setGroupName({\n name: '',\n groupid: 0\n })\n setreloadForRename(true)\n }\n }\n\n const handleDeleteGroup = (group) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + group.groupname + \"\\\"?\",\n id: Number(group.groupid)\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const handleDeleteConfirm = async (groupid: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"groupid\": groupid,\n \"ticketitemid\": Number(ticketItem),\n \"delete\": true\n }\n\n const { data } = await axios.delete('/evtactivitygroupname', {data: finaldata})\n const json = JSON.parse(data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n setreloadForRename(true)\n }\n }\n\n const closeDialog = () => {\n setGroupName({\n name: '',\n groupid: 0\n })\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n return (\n
    \n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n\n <>\n 0}\n fullWidth\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {setNewGroupName(e.target.value)}}\n type=\"string\"\n variant=\"outlined\"\n InputLabelProps={{\n shrink: true,\n }}\n />\n \n \n \n \n \n \n \n \n\n \n

    Group Maintenance

    \n \n \n \n \n {getTicketItemOptions()}\n \n \n \n \n \n \n \n {addNewGroup()}}\n color=\"primary\">\n Add Group\n \n \n \n \n \n \n \n \n \n {/**/}\n {groupData.ticketgroups.map(group => {\n return (\n \n <>\n \n \n {handleEditGroup(group)}}\n aria-label=\"settings\"\n >\n \n \n {handleDeleteGroup(group)}}\n aria-label=\"settings\"\n >\n \n \n
    \n }\n title={group.groupname} />\n \n {/*{group.groupname}*/}\n \n {group.guests.map((item) => (\n {item.ticketname}))}\n \n \n \n \n \n )\n })}\n\n {/**/}\n\n \n \n \n \n\n \n\n
    \n )\n}\n\nexport default EventGroupMaintenance\n","import React, {useEffect} from 'react'\nimport styles from \"./EventTransferPage.module.css\";\nimport {useParams} from \"react-router\";\nimport {Checkbox, FormControlLabel, Grid} from \"@mui/material\";\nimport Paper from \"@material-ui/core/Paper\";\nimport SelectInput from \"../../components/common/inputs/SelectInput\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport {Button, Dialog, DialogActions, DialogContent} from \"@material-ui/core\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport axios from \"axios\";\nimport HookForm from \"../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\nimport {DateInput} from \"@progress/kendo-react-dateinputs\";\nimport dayjs from \"dayjs\";\n\ninterface FormData {\n batchCodeSelect: string\n batchCodeText: string\n CampaignSelect: string\n CampaignText: string\n AppealSelect: string\n AppealText: string\n AccountingCodeSelect: string\n AccountingCodeText: string\n DonationTypeSelect: string\n DonationTypeText: string\n}\nconst EventDonationPage = (params) => {\n const formMethods = useForm()\n const { setValue, watch, getValues } = formMethods\n const { reset } = formMethods\n const eventid = params.eventid\n\n const batchCodeSelectWatch = watch('batchCodeSelect')\n const batchCodeTextWatch = watch('batchCodeText')\n const campaignSelectWatch = watch('CampaignSelect')\n const campaignTextWatch = watch('CampaignText')\n const appealSelectWatch = watch('AppealSelect')\n const appealTextWatch = watch('AppealText')\n const donationTypeSelectWatch = watch('DonationTypeSelect')\n const dontaionTypeTextWatch = watch('DonationTypeText')\n const accountCodeSelectWatch = watch('AccountingCodeSelect')\n const accountCodeTextWatch = watch('DonationTypeText')\n const [donationData, setDonationData] = React.useState({numberOfCheckoutsPosted: 0, numberOfItemsPosted: 0, totalAmtPosted: 0, numberOfCheckoutsUnpostedLink: 1,\n numberOfItemsUnpostedLink: 1, totalAmtUnpostedLink: 1,\n extraAmtUnpostedLink: 0, numberOfCheckoutsUnpostedUnlink: 0,\n numberOfItemsUnpostedUnlink: 0, totalAmtUnpostedUnlink: 0, campaignlist: [], appeallist: [], batchcodelist: [], accountingcodelist: [], donationtypelist:[]})\n\n\n const [valueDate, setDateValue] = React.useState(new Date())\n const [dialogComplete, setdialogComplete] = React.useState({open: false, message: \"\"})\n const changeDate = (event) => {\n setDateValue(event.value);\n }\n\n const [checkedAck, setAckChecked] = React.useState(false);\n const handleAckChange = (event: React.ChangeEvent) => {\n setAckChecked(event.target.checked);\n }\n\n const [checkedFair, setFairChecked] = React.useState(false);\n const handleFairChange = (event: React.ChangeEvent) => {\n setFairChecked(event.target.checked);\n }\n\n useEffect(() => {\n getIntegrationDonation()\n }, [eventid])\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n const getBatchCodeText = (id) => {\n var textReturn = ''\n donationData?.batchcodelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const batchCodeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.batchcodelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const getCampaignText = (id) => {\n var textReturn = ''\n donationData?.campaignlist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getCampaignOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.campaignlist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n\n const getIntegrationDonation = async () => {\n axios.post('/purchaserintegrationdonation', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setDonationData(parsedData)\n })\n }\n\n const getAppealText = (id) => {\n var textReturn = ''\n donationData?.appeallist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getAppealOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.appeallist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const getAccountingText = (id) => {\n var textReturn = ''\n donationData?.accountingcodelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getAccountingCodeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.accountingcodelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n // return [{value: 'none', label: 'None'}]\n }\n\n const getDonationText = (id) => {\n var textReturn = ''\n donationData?.donationtypelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getDonationTypeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.donationtypelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const onSubmit = async (data: any) => {\n\n console.log(data)\n }\n\n const handleSubmit = () => {\n var body = {}\n if (batchCodeTextWatch?.length > 0) {\n body['batchcode'] = batchCodeTextWatch\n }\n else {\n body['batchcode'] = getBatchCodeText(batchCodeSelectWatch)\n }\n if (campaignTextWatch?.length > 0) {\n body['campaign'] = campaignTextWatch\n }\n else {\n body['campaign'] = getCampaignText(campaignSelectWatch)\n }\n if (appealTextWatch?.length > 0) {\n body['appeal'] = appealTextWatch\n }\n else {\n body['appeal'] = getAppealText(appealSelectWatch)\n }\n if (dontaionTypeTextWatch?.length > 0) {\n body['donation'] = dontaionTypeTextWatch\n }\n else {\n body['donation'] = getDonationText(donationTypeSelectWatch)\n }\n if (accountCodeTextWatch?.length > 0) {\n body['accountingcode'] = accountCodeTextWatch\n }\n else {\n body['accountingcode'] = getAccountingText(accountCodeSelectWatch)\n }\n body['fairmarketvalue'] = checkedFair\n body['donationack'] = checkedAck\n body['eventid'] = Number(eventid)\n body['accountingdate'] = dayjs(valueDate).format('MM-DD-YYYY')\n\n\n axios.put('/PurchaserIntegrationDonation', body, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setdialogComplete({message: parsedData.message, open: true})\n getIntegrationDonation()\n\n })\n }\n\n return (\n
    \n <>\n \n \n \n {/*Successfully added {dialogComplete.count} contacts to DonorSnap.*/}\n {dialogComplete.message}\n \n \n \n setdialogComplete({open: false, message: ''})}\n >\n Ok\n \n \n \n \n\n \n \n \n Donation Record Settings to Upload into DonorSnap\n \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n \n \n \n \n \n \n } label=\"Set value received to be the Fair Market Value\" />\n \n \n \n \n } label=\"Mark all donation records as Acknowledged\" />\n \n \n\n {donationData.extraAmtUnpostedLink > 0 &&\n <>\n \n \n
    For all additional donations made during checkout, use the following settings:
    \n
    \n
    \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n \n 0}\n tooltipText={''}\n />\n \n \n
    OR
    \n
    \n \n \n \n
    \n \n }\n \n \n {\n handleSubmit()\n }}\n >\n UPLOAD {donationData?.numberOfCheckoutsUnpostedLink} CHECKOUTS LINKED TO DONORSNAP CONTACTS\n \n \n \n
    {donationData.numberOfCheckoutsUnpostedUnlink} Checkouts not linked to DonorSnap Contacts
    \n
    \n \n
    {donationData.numberOfCheckoutsPosted} Checkouts already uploaded to DonorSnap
    \n
    \n
    \n\n \n
    \n\n
    \n )\n}\nexport default EventDonationPage","import React, {useEffect, useState} from 'react'\nimport download from 'downloadjs';\nimport { Dialog, DialogActions, DialogContent, DialogContentText, IconButton, ListItem, Tooltip} from '@material-ui/core'\nimport {Checkbox, DialogTitle, List, ListItemText} from \"@mui/material\";\nimport {Add, Add as AddIcon, Delete, Edit, AddShoppingCartOutlined, ShoppingCartOutlined} from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams, gridSortedRowIdsSelector,GridToolbarContainer, GridValueFormatterParams, useGridApiContext,\n useGridApiRef,\n GridRowOrderChangeParams, GRID_CHECKBOX_SELECTION_COL_DEF, gridFilteredSortedRowEntriesSelector,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport styles from './EventPurchaserLinkTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {Grid, InputLabel, Stack} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport {useHistory} from \"react-router-dom\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {useAutoEvt} from \"../../queries/useAutoEvt\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport DonationPage from \"../EventTransferPage/EventDonationPage\";\n\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventPurchaserLinkTable = () => {\n const { eventid } = useParams()\n useAutoEvt(eventid)\n\n const apiRef = useGridApiRef();\n const queryClient = useQueryClient()\n const eventState = useEventState()\n const [dialogUpload, setDialogUpload] = React.useState({ msg: \"\", id: 0, open: false, uploadCount: null, uploadDuplicates: null })\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [transactionId, setTransactionId] = useState(0)\n const [purchaserData, setPurchaserData] = useState([])\n const [reloadData, setReloadData] = React.useState(1)\n const [isDataLoading, setIsDataLoading] = React.useState(false)\n const [checkboxSelection, setCheckboxSelection] = React.useState([])\n const [value, setValue] = React.useState(0);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [dialogMessage, setDialogMessage] = useState('');\n const history = useHistory()\n\n useEffect(() => {\n const getData = async () => {\n var body = {\"eventid\": eventid}\n const {data} = await axios.post('/purchaserlink', body)\n const parsedData = JSON.parse(data.jsonString)\n const newPurchaserData = parsedData.purchasers.map((item) => {\n return { id: item.purchaserid, ...item}\n })\n setPurchaserData(newPurchaserData)\n }\n getData()\n }, [eventid, reloadData])\n\n useEffect(() => {\n console.log(transactionId)\n }, [transactionId])\n\n const purchaserupload = async () => {\n setIsDataLoading(true)\n const body = {\n 'eventid': eventid,\n 'idlist': checkboxSelection.map(cbSels => {return cbSels.id})\n }\n const response = await axios.post(`purchaserlinkuploadpre`, body)\n const parsedData = JSON.parse(response.data.jsonString)\n\n console.log(parsedData.uploadcount)\n console.log(parsedData.duplicates)\n // uploadcount\\\":3,\\\"duplicates\\\":[]\n // purchaserlinkuploadpre\n\n setIsDataLoading(false)\n\n setDialogUpload({ msg: \"\", id: 0, open: true, uploadCount: parsedData?.uploadcount, uploadDuplicates: parsedData?.duplicates })\n }\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n }\n\n function a11yProps(index: number) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n }\n\n const purchaserautolink = () => {\n // Scott\n setIsDataLoading(true)\n const body = {eventid: eventid}\n axios.post(`purchaserlinkauto`, body).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setDialogOpen(true);\n setDialogMessage(parsedData.message);\n setReloadData(reloadData+1)\n setIsDataLoading(false)\n })\n }\n\n const downloadExcel = async () => {\n setIsDataLoading(true)\n axios.post('/purchaserlinkreport', {eventid: eventid}, {responseType: \"blob\"}).then(response => {\n var filename = eventState.eventName + '-Purchasers.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n setIsDataLoading(false)\n })\n }\n\n const closeDialog = () => {\n setDialogUpload({ msg: \"\", id: 0, open: false, uploadCount: [], uploadDuplicates: [] })\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const purchaserlinkupload = async () => {\n setIsDataLoading(true)\n const body = {\n 'eventid': eventid,\n 'idlist': checkboxSelection.map(cbSels => {return cbSels.id})\n }\n const response = await axios.post(`purchaserlinkupload`, body)\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData.uploadcount)\n console.log(parsedData.duplicates)\n // uploadcount\\\":3,\\\"duplicates\\\":[]\n // purchaserlinkuploadpre\n\n setReloadData(reloadData+1)\n\n setIsDataLoading(false)\n setDialogUpload({ msg: \"\", id: 0, open: false, uploadCount: [], uploadDuplicates: [] })\n }\n\n const handleChange = (event: React.ChangeEvent) => {\n setCheckboxSel(event.target.id, event.target.checked)\n }\n const setCheckboxSel = (id, value) => {\n const selections = checkboxSelection.filter((op) => op.id != id)\n if (id == 0) {\n if (value) {\n const gridFilteredRows = gridFilteredSortedRowEntriesSelector(apiRef)\n const selectedItems = gridFilteredRows.map(listofstuff => {\n return {id: listofstuff.id, value: value}\n })\n setCheckboxSelection([{id: 0, value: value}, ...selectedItems])\n }\n else {\n setCheckboxSelection([])\n }\n // console.log(value)\n }\n else {\n const selectionValues = [{id: Number(id), value: value}, ...selections].filter((op) => op.id != 0)\n const allValue = shouldAllBeSelected(selectionValues)\n\n selectionValues.push({id: 0, value: allValue})\n setCheckboxSelection(selectionValues)\n }\n }\n\n const shouldAllBeSelected = (selections) => {\n var allSelected = true\n selections.forEach(listofstuff => {\n if (listofstuff.value == false) {\n allSelected = false\n }\n })\n return allSelected\n }\n\n const getCheckboxSel = (id) => {\n const selection = checkboxSelection.find((op) => op.id === id)\n return selection ? selection.value : false\n }\n\n var checkboxCol: GridColDef = {\n \"field\": 'checkedeContactid',\n \"headerName\":'',\n \"type\": 'string',\n \"headerAlign\": 'right',\n \"width\": 180,\n \"align\": 'right',\n }\n checkboxCol = GRID_CHECKBOX_SELECTION_COL_DEF\n checkboxCol.field = 'checkedeContactid'\n checkboxCol.headerName = ''\n checkboxCol.width = 120\n checkboxCol.renderHeader = (params) => {\n return (\n \n )\n }\n checkboxCol.renderCell = (params) => {\n if (params.row.contactid) {\n return (\n
    {params.row.contactid}
    \n )\n }\n else {\n return (\n \n )\n }\n }\n\n const columns: GridColDef[] = [\n {\n field: 'button',\n headerName: 'Link',\n width: 130,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n if(params.row.contactid > 0) {\n if (params.row.transactionlinklocked) {\n return <>\n }\n else {\n return {\n const body = {eventid: eventid, purchaserid: params.row.purchaserid}\n axios.put(`purchaserunlink`, body).then(response => {\n setReloadData(reloadData+1)\n })\n }}>\n UnLink\n ;\n }\n }\n return {\n history.replace({\n pathname: '/event/' + eventid + '/eventpurchaserlinking',\n state:{\n data: params.row,\n }}\n )\n }}>\n Link\n ;\n\n }\n },\n checkboxCol,\n {\n field: 'first',\n headerName: 'First',\n type: 'string',\n width: 180,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return dayjs(params.value as string).format('MM/DD/YYYY hh:mm A')\n // },\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last',\n width: 180\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n minWidth: 250\n },\n {\n field: 'date',\n headerName: 'Date',\n width: 180,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM/DD/YYYY hh:mm A')\n },\n },\n {\n field: 'totalamount',\n type: 'string',\n headerName: 'Total Amount',\n width: 120,\n align: \"right\",\n valueFormatter: (params: GridValueFormatterParams) => {\n return '$' + params?.value?.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n },\n },\n {\n field: 'transactiontype',\n type: 'string',\n headerName: 'Transaction Type',\n minWidth: 200\n },\n {\n field: 'address',\n type: 'string',\n headerName: 'Address',\n minWidth: 400,\n valueGetter: (gridParams) => {\n const addressValue = gridParams.row?.address + ' ' + gridParams.row?.city + ', ' + gridParams.row?.state + ' ' + gridParams.row?.zip\n return addressValue\n }\n // valueFormatter: (params: GridValueFormatterParams) => {\n // console.log(params)\n // return params.value\n // },\n },\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n <>\n \n \n \n {purchaserautolink()}}\n color=\"primary\">\n AUTOLINK\n \n \n \n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n \n )\n }\n\n return (\n
    \n

    Event Purchaser Link / Transfer

    \n
    \n setDialogOpen(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {\"Auto Link Status\"}\n \n \n {dialogMessage}\n \n \n \n \n \n \n \n Upload Purchasers to DonorSnap\n \n \n You are about to upload {dialogUpload?.uploadCount} purchasers into your DonorSnap account. Are you sure you want to continue?\n \n {dialogUpload?.uploadDuplicates?.length > 0 &&\n <>\n NOTICE: You selected multiple purchaser records with the same email address. This will create a\n new contact for each one, potentially duplicate contacts.\n \n {dialogUpload?.uploadDuplicates?.map((value) => (\n \n \n \n ))}\n \n }\n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n \n \n {value === 0 && (\n <>\n \n\n \n {purchaserupload()}}\n disabled={checkboxSelection.length === 0}\n color=\"primary\">\n UPLOAD SELECTED PURCHASERS TO DONORSNAP\n \n {downloadExcel()}}\n color=\"primary\">\n EXPORT ALL TO EXCEL\n \n \n \n )}\n {value === 1 && (\n <>\n \n \n )}\n
    \n
    \n )\n}\n\nexport default EventPurchaserLinkTable\n","import React, {useState, useMemo, useEffect} from 'react'\nimport Box from '@mui/material/Box'\nimport Grid from '@mui/material/Grid'\nimport Typography from '@mui/material/Typography'\nimport Paper from '@mui/material/Paper'\nimport Stack from '@mui/material/Stack'\nimport {\n DataGridPremium,\n} from '@mui/x-data-grid-premium'\nimport { useParams } from 'react-router'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport dayjs from 'dayjs'\nimport { formatMoney } from '../../util/formatHelpers'\nimport { makeStyles, Button } from '@material-ui/core'\nimport SearchBar from '../../components/common/inputs/SearchBar'\nimport axios from \"axios\";\nimport {usePutPurchaserLink} from \"../../queries/events/useFetchPurchaserLink\";\nimport {useAutoEvt} from \"../../queries/useAutoEvt\";\ninterface Params {\n eventid: string\n purchaserid: string\n}\n\nconst useStyle = makeStyles({\n root: {\n '& .MuiDataGrid-columnHeaderTitle': {\n overflow: 'visible',\n lineHeight: '1.43rem',\n whiteSpace: 'normal'\n }\n }\n})\n\nconst ParticipantsLinkingPage = () => {\n const { eventid, purchaserid } = useParams()\n const history = useHistory()\n useAutoEvt(eventid)\n const event = useEventState()\n const [searchP, setsearchP] = useState({ipk:undefined, multi:undefined})\n const [rows, setRows] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n const [rowsErrorMessage, setRowsErrorMessage] = useState('')\n const putLink = usePutPurchaserLink()\n\n const propPass: any = useLocation()\n const purchaserInfo = propPass.state?.data\n\n useEffect(() => {\n getLinkingData()\n }, [purchaserid, searchP])\n\n const getLinkingData = async () => {\n setIsLoading(true)\n var body = { eventid: eventid, purchaserid:purchaserInfo.purchaserid }\n\n if (searchP.multi) {\n body['search'] = searchP.multi\n }\n\n if (searchP.ipk) {\n body['contactid'] = Number(searchP.ipk)\n }\n\n const { data } = await axios.post('/purchaserlinklookup', body)\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData?.contactdata?.length > 0 && parsedData.contactdata[0].message) {\n setRows([])\n setRowsErrorMessage(parsedData.contactdata[0].message)\n }\n else {\n setRows(parsedData?.contactdata)\n setRowsErrorMessage('')\n }\n\n setIsLoading(false)\n }\n const onClickMultiSearch = (searchString) => {\n setsearchP({ipk:null, multi:searchString})\n }\n const onClickIPKSearch = (ipk) => {\n setsearchP({ipk:ipk, multi:null})\n }\n\n const columns = [\n {\n field: 'buttons',\n headerName: 'Link',\n width: 150,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n return (\n {\n putLink.mutate(\n {\n eventid: eventid,\n contactid: params.row.contactid,\n purchaserid: purchaserInfo.purchaserid\n },\n {\n onSuccess: (data) => {\n history.push(\n '/event/' + eventid + '/eventpurchaserlink'\n )\n }\n }\n )\n }}>\n Link\n \n )\n }\n },\n { field: 'rownumber', headerName: 'rownumber' },\n {\n field: 'contactid',\n type: 'string',\n headerName: 'Contact ID',\n width: 100,\n editable: false\n },\n {\n field: 'first',\n type: 'string',\n headerName: 'First Name',\n width: 200,\n editable: true\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last Name',\n width: 200,\n editable: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200,\n editable: false\n },\n {\n field: 'first2',\n type: 'string',\n headerName: 'First Name 2',\n width: 200,\n editable: true\n },\n {\n field: 'last2',\n type: 'string',\n headerName: 'Last Name 2',\n width: 200,\n editable: true\n },\n {\n field: 'email2',\n type: 'string',\n headerName: 'Email 2',\n width: 200,\n editable: false\n },\n {\n field: 'phone',\n type: 'string',\n headerName: 'Phone',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'cell',\n type: 'string',\n headerName: 'Cell',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'company',\n type: 'string',\n headerName: 'Company',\n width: 200,\n editable: true\n },\n {\n field: 'address1',\n type: 'string',\n headerName: 'Address',\n width: 200,\n editable: true\n },\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle Number',\n width: 200,\n editable: true\n }\n ]\n const classes = useStyle()\n\n return (\n
    \n \n \n \n {`Participant # ${purchaserInfo.purchaserid}`}\n \n \n\n {`${purchaserInfo.first} ${purchaserInfo.last}`}\n {purchaserInfo.address}\n \n \n \n {`${purchaserInfo.email}`}\n {purchaserInfo.city}\n \n \n {purchaserInfo.phone}\n {`${purchaserInfo.state} ${purchaserInfo.zip}`}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (\n \n {rowsErrorMessage?.length > 0 ? rowsErrorMessage : 'No Rows'}\n \n ),\n NoResultsOverlay: () => (\n \n {rowsErrorMessage?.length > 0 ? rowsErrorMessage : 'No Rows'}\n \n )\n }}\n getRowId={(row) => row.rownumber}\n className={classes.root}\n autoHeight\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n\n columnVisibilityModel={{\n // Hide column rownumber the other columns will remain visible\n rownumber: false\n }}\n />\n
    \n )\n}\nexport default ParticipantsLinkingPage\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventPurchaserLinkFetcher = async (body) => {\n const { data } = await axios.post('/purchaserlink', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.purchasers\n}\n\nexport const useFetchPurchaserLink = (eventIDvalue) => {\n var body = {\"eventid\": eventIDvalue}\n return useQuery(\n ['purchaserlink', eventIDvalue],\n () => globalEventPurchaserLinkFetcher(body),\n {}\n )\n}\n\nexport const usePutPurchaserLink = () => {\n const queryClient = useQueryClient()\n //console.log(\" useputparticipant on query page\")\n\n return useMutation((body: any) =>\n axios.put(`purchaserlink`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['purchaserlink'])\n }\n })\n}\n//\n// export const usePutPurchaserLink = (eventid: number, participantid: number) => {\n// // requires eventid: any, purchaserid: any\n// const queryClient = useQueryClient()\n//\n// const body = {eventid: eventid, participantid: participantid}\n// axios.put(`purchaserlink`, body).then(response => {\n// queryClient.invalidateQueries(['purchaserlink'])\n// })\n// }\nexport const usePutPurchaserUnLink = (eventid: number, participantid: number) => {\n // requires eventid: any, purchaserid: any\n const queryClient = useQueryClient()\n\n const body = {eventid: eventid, participantid: participantid}\n axios.put(`purchaserunlink`, body).then(response => {\n queryClient.invalidateQueries(['purchaserlink'])\n })\n}\n\nexport const usePutPurchaserAutoLink = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`participantlinkauto`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventGuestLinkFetcher = async (body) => {\n const { data } = await axios.post('/guestlink', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.guests\n}\n\nexport const useFetchGuestLink = (eventIDvalue) => {\n var body = {\"eventid\": eventIDvalue}\n return useQuery(\n ['guestlink', eventIDvalue],\n () => globalEventGuestLinkFetcher(body),\n {}\n )\n}\n\nexport const usePutGuestLink = () => {\n const queryClient = useQueryClient()\n //console.log(\" useputparticipant on query page\")\n\n return useMutation((body: any) =>\n axios.put(`guestlink`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['guestlink'])\n }\n })\n}\n//\n// export const usePutPurchaserLink = (eventid: number, participantid: number) => {\n// // requires eventid: any, purchaserid: any\n// const queryClient = useQueryClient()\n//\n// const body = {eventid: eventid, participantid: participantid}\n// axios.put(`purchaserlink`, body).then(response => {\n// queryClient.invalidateQueries(['purchaserlink'])\n// })\n// }\nexport const usePutGuestUnLink = (eventid: number, participantid: number) => {\n // requires eventid: any, purchaserid: any\n const queryClient = useQueryClient()\n\n const body = {eventid: eventid, participantid: participantid}\n axios.put(`guestunlink`, body).then(response => {\n queryClient.invalidateQueries(['guestlink'])\n })\n}\n\nexport const usePutGuestAutoLink = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`guestlinkauto`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['linkingguest'])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport download from 'downloadjs';\nimport { Dialog, DialogActions, DialogContent, DialogContentText, IconButton, ListItem, Tooltip} from '@material-ui/core'\nimport {Checkbox, DialogTitle, List, ListItemText} from \"@mui/material\";\nimport {Add, Add as AddIcon, Delete, Edit, AddShoppingCartOutlined, ShoppingCartOutlined} from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams, gridSortedRowIdsSelector,GridToolbarContainer, GridValueFormatterParams, useGridApiContext,\n useGridApiRef, GRID_CHECKBOX_SELECTION_COL_DEF, gridFilteredSortedRowEntriesSelector,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport styles from './EventGuestLinkTable.module.css';\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent, Stack} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport {useHistory} from \"react-router-dom\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {useFetchGuestLink} from \"../../queries/events/useFetchGuestLink\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Paper from \"@material-ui/core/Paper\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\n\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventGuestLinkTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const apiRef = useGridApiRef();\n const queryClient = useQueryClient()\n const eventState = useEventState()\n const [dialogUpload, setDialogUpload] = React.useState({ msg: \"\", id: 0, open: false, uploadCount: null, uploadDuplicates: null })\n const { data, isLoading } = useFetchGuestLink( Number(eventid) )\n const [isDataLoading, setIsDataLoading] = React.useState(false)\n const [checkboxSelection, setCheckboxSelection] = React.useState([])\n const [dialogOpen, setDialogOpen] = useState(false);\n const [dialogMessage, setDialogMessage] = useState('');\n const [tabValue, setTabValue] = React.useState(0);\n const history = useHistory()\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.map((item) => {\n return { id: item.guestid, ...item}\n })\n }\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n marginBottom: 20,\n textAlign: 'left',\n fontSize: 15,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n const guestupload = async () => {\n setIsDataLoading(true)\n const body = {\n 'eventid': eventid,\n 'idlist': checkboxSelection.map(cbSels => {return cbSels.id})\n }\n const response = await axios.post(`guestlinkuploadpre`, body)\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData.uploadcount)\n console.log(parsedData.duplicates)\n\n setIsDataLoading(false)\n\n setDialogUpload({ msg: \"\", id: 0, open: true, uploadCount: parsedData.uploadcount, uploadDuplicates: parsedData.duplicates })\n }\n\n const guestautolink = () => {\n setIsDataLoading(true)\n const body = {eventid: eventid}\n axios.post(`guestlinkauto`, body).then(response => {\n console.log(response)\n const parsedData = JSON.parse(response.data.jsonString)\n setDialogOpen(true);\n setDialogMessage(parsedData.message);\n queryClient.invalidateQueries(['guestlink'])\n setIsDataLoading(false)\n })\n }\n\n const downloadInteractionExcel = async () => {\n // setIsDataLoading(true)\n // axios.post('/guestlinkreport', {eventid: eventid}, {responseType: \"blob\"}).then(response => {\n // var filename = eventState.eventName + '-Guest.xlsx';\n // var disposition = response.headers['content-disposition']\n // var contentType = response.headers['content-type']\n // if (disposition && disposition.indexOf('attachment') !== -1) {\n // var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n // var matches = filenameRegex.exec(disposition);\n // if (matches != null && matches[1]) {\n // filename = matches[1].replace(/['\"]/g, '');\n // }\n // }\n // if (response.data) {\n // download(response.data, filename, contentType);\n // }\n // setIsDataLoading(false)\n // })\n }\n\n const downloadExcel = async () => {\n setIsDataLoading(true)\n axios.post('/guestlinkreport', {eventid: eventid}, {responseType: \"blob\"}).then(response => {\n var filename = eventState.eventName + '-Guest.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n setIsDataLoading(false)\n })\n }\n\n const closeDialog = () => {\n setDialogUpload({ msg: \"\", id: 0, open: false, uploadCount: [], uploadDuplicates: [] })\n }\n\n const guestlinkupload = async () => {\n setIsDataLoading(true)\n const body = {\n 'eventid': eventid,\n 'idlist': checkboxSelection.map(cbSels => {return cbSels.id})\n }\n const response = await axios.post(`guestlinkupload`, body)\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData.uploadcount)\n console.log(parsedData.duplicates)\n\n queryClient.invalidateQueries(['guestlink'])\n\n setIsDataLoading(false)\n setDialogUpload({ msg: \"\", id: 0, open: false, uploadCount: [], uploadDuplicates: [] })\n }\n\n const handleChange = (event: React.ChangeEvent) => {\n setCheckboxSel(event.target.id, event.target.checked)\n }\n const setCheckboxSel = (id, value) => {\n const selections = checkboxSelection.filter((op) => op.id != id)\n if (id == 0) {\n if (value) {\n const gridFilteredRows = gridFilteredSortedRowEntriesSelector(apiRef)\n const selectedItems = gridFilteredRows.map(listofstuff => {\n return {id: listofstuff.id, value: value}\n })\n setCheckboxSelection([{id: 0, value: value}, ...selectedItems])\n }\n else {\n setCheckboxSelection([])\n }\n // console.log(value)\n }\n else {\n const selectionValues = [{id: Number(id), value: value}, ...selections].filter((op) => op.id != 0)\n const allValue = shouldAllBeSelected(selectionValues)\n\n selectionValues.push({id: 0, value: allValue})\n setCheckboxSelection(selectionValues)\n }\n }\n\n const shouldAllBeSelected = (selections) => {\n var allSelected = true\n selections.forEach(listofstuff => {\n if (listofstuff.value == false) {\n allSelected = false\n }\n })\n return allSelected\n }\n\n const getCheckboxSel = (id) => {\n const selection = checkboxSelection.find((op) => op.id === id)\n return selection ? selection.value : false\n }\n\n const linkGuest = (guestid) => {\n const body = {eventid: eventid, guestid: guestid}\n axios.put(`guestunlink`, body).then(response => {\n const json = JSON.parse(data.jsonString)\n\n if (json.status === \"failure\") {\n setDialogOpen(true)\n setDialogMessage(json.message)\n }\n else {\n queryClient.invalidateQueries(['guestlink'])\n }\n\n })\n }\n\n var checkboxCol: GridColDef = {\n \"field\": 'checkedeContactid',\n \"headerName\":'',\n \"type\": 'string',\n \"headerAlign\": 'right',\n \"width\": 180,\n \"align\": 'right',\n }\n checkboxCol = GRID_CHECKBOX_SELECTION_COL_DEF\n checkboxCol.field = 'checkedeContactid'\n checkboxCol.headerName = ''\n checkboxCol.width = 120\n checkboxCol.renderHeader = (params) => {\n return (\n \n )\n }\n checkboxCol.renderCell = (params) => {\n if (params.row.contactid) {\n return (\n
    {params.row.contactid}
    \n )\n }\n else {\n return (\n \n )\n }\n }\n\n const columns: GridColDef[] = [\n {\n field: 'button',\n headerName: 'Link',\n width: 130,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n if(params.row.contactid > 0) {\n return {\n linkGuest(params.row.guestid)\n // Scotty\n // const body = {eventid: eventid, guestid: params.row.guestid}\n // axios.put(`guestunlink`, body).then(response => {\n // queryClient.invalidateQueries(['guestlink'])\n // })\n }}>\n UnLink\n ;\n }\n return {\n history.push({\n pathname: '/event/' + eventid + '/eventguestlinking',\n state:{\n data: params.row,\n }}\n )\n }}>\n Link\n ;\n\n }\n },\n checkboxCol,\n {\n field: 'first',\n headerName: 'First',\n type: 'string',\n width: 180,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return dayjs(params.value as string).format('MM/DD/YYYY hh:mm A')\n // },\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last',\n width: 180\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n minWidth: 250\n },\n {\n field: 'phone',\n headerName: 'Phone',\n width: 180,\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n },\n {\n field: 'attended',\n type: 'string',\n headerName: 'Attended',\n width: 120,\n align: \"right\",\n },\n {\n field: 'ticketnames',\n type: 'string',\n headerName: 'Ticket Type',\n minWidth: 300\n },\n {\n field: 'purchasernames',\n type: 'string',\n headerName: 'Purchaser',\n minWidth: 300\n },\n {\n field: 'address',\n type: 'string',\n headerName: 'Address',\n minWidth: 400,\n valueGetter: (gridParams) => {\n const addressValue = gridParams.row?.address + ' ' + gridParams.row?.city + (gridParams.row?.city.length > 0 ? ', ' : ' ') + gridParams.row?.state + ' ' + gridParams.row?.zip\n return addressValue\n }\n },\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTabValue(newValue);\n }\n\n function a11yProps(index: number) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n }\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const getTicketItemOptions = () => {\n return data?.ticketitemlist?.map(item => (\n \n {item.ticketitemname}\n \n ))\n }\n\n const handleSelectionChange = async (event: SelectChangeEvent) => {\n console.log(event.target.value)\n // setTicketItem(event.target.value as string);\n }\n\n return (\n <>\n \n <>\n \n \n \n {guestautolink()}}\n color=\"primary\">\n AUTOLINK\n \n \n \n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n \n )\n }\n\n return (\n
    \n

    Event Guest Link / Transfer

    \n <>\n setDialogOpen(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {\"Auto Link Status\"}\n \n \n {dialogMessage}\n \n \n \n \n \n \n \n Upload Guests to DonorSnap\n \n \n You are about to upload {dialogUpload?.uploadCount} guests into your DonorSnap account. Are you sure you want to continue?\n \n {dialogUpload?.uploadDuplicates?.length > 0 &&\n <>\n NOTICE: You selected multiple guests records with the same email address. This will create a\n new contact for each one, potentially duplicate contacts.\n \n {dialogUpload?.uploadDuplicates?.map((value) => (\n \n \n \n ))}\n \n }\n \n \n \n \n \n \n \n\n \n
    \n \n \n \n \n {tabValue === 0 && (\n <>\n \n\n \n {guestupload()}}\n disabled={checkboxSelection.length === 0}\n color=\"primary\">\n UPLOAD SELECTED GUESTS TO DONORSNAP\n \n {downloadExcel()}}\n color=\"primary\">\n EXPORT ALL TO EXCEL\n \n \n \n )}\n {tabValue === 1 && (\n <>\n Export guest ticket information to Excel to customize interaction data for import into DonorSnap\n {downloadInteractionExcel()}}\n color=\"primary\">\n EXPORT TO EXCEL\n \n \n )}\n
    \n
    \n )\n}\n\nexport default EventGuestLinkTable\n","import React, {useState, useMemo, useEffect} from 'react'\nimport Box from '@mui/material/Box'\nimport Grid from '@mui/material/Grid'\nimport Typography from '@mui/material/Typography'\nimport Paper from '@mui/material/Paper'\nimport Stack from '@mui/material/Stack'\nimport {\n DataGridPremium,\n} from '@mui/x-data-grid-premium'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useParams } from 'react-router'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport { makeStyles, Button } from '@material-ui/core'\nimport SearchBar from '../../components/common/inputs/SearchBar'\nimport axios from \"axios\";\nimport {usePutGuestLink} from \"../../queries/events/useFetchGuestLink\";\ninterface Params {\n eventid: string\n}\n\nconst useStyle = makeStyles({\n root: {\n '& .MuiDataGrid-columnHeaderTitle': {\n overflow: 'visible',\n lineHeight: '1.43rem',\n whiteSpace: 'normal'\n }\n }\n})\n\nconst GuestLinkingPage = () => {\n const { eventid } = useParams()\n const history = useHistory()\n useAutoEvent(eventid)\n const event = useEventState()\n const [searchP, setsearchP] = useState({ipk:undefined, multi:undefined})\n const [rowsErrorMessage, setRowsErrorMessage] = useState('')\n const [rows, setRows] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n const putLink = usePutGuestLink()\n\n const propPass: any = useLocation()\n const guestInfo = propPass.state?.data\n\n useEffect(() => {\n getLinkingData()\n }, [searchP])\n\n const getLinkingData = async () => {\n setIsLoading(true)\n var body = { eventid: eventid, guestid:guestInfo.guestid }\n\n if (searchP.multi) {\n body['search'] = searchP.multi\n }\n\n if (searchP.ipk) {\n body['contactid'] = Number(searchP.ipk)\n }\n\n const { data } = await axios.post('/guestlinklookup', body)\n const parsedData = JSON.parse(data.jsonString)\n\n if (parsedData?.contactdata?.length > 0 && parsedData.contactdata[0].message) {\n setRows([])\n setRowsErrorMessage(parsedData.contactdata[0].message)\n }\n else {\n setRows(parsedData?.contactdata)\n setRowsErrorMessage('')\n }\n setIsLoading(false)\n }\n const onClickMultiSearch = (searchString) => {\n setsearchP({ipk:null, multi:searchString})\n }\n const onClickIPKSearch = (ipk) => {\n setsearchP({ipk:ipk, multi:null})\n }\n\n const columns = [\n {\n field: 'buttons',\n headerName: 'Link',\n width: 150,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n return (\n {\n putLink.mutate(\n {\n eventid: eventid,\n contactid: params.row.contactid,\n guestid: guestInfo.guestid\n },\n {\n onSuccess: (data) => {\n history.push(\n '/event/' + eventid + '/eventguestlink'\n )\n }\n }\n )\n }}>\n Link\n \n )\n }\n },\n { field: 'rownumber', headerName: 'rownumber' },\n {\n field: 'contactid',\n type: 'string',\n headerName: 'Contact ID',\n width: 100,\n editable: false\n },\n {\n field: 'first',\n type: 'string',\n headerName: 'First Name',\n width: 200,\n editable: true\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last Name',\n width: 200,\n editable: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200,\n editable: false\n },\n {\n field: 'first2',\n type: 'string',\n headerName: 'First Name 2',\n width: 200,\n editable: true\n },\n {\n field: 'last2',\n type: 'string',\n headerName: 'Last Name 2',\n width: 200,\n editable: true\n },\n {\n field: 'email2',\n type: 'string',\n headerName: 'Email 2',\n width: 200,\n editable: false\n },\n {\n field: 'phone',\n type: 'string',\n headerName: 'Phone',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'cell',\n type: 'string',\n headerName: 'Cell',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'company',\n type: 'string',\n headerName: 'Company',\n width: 200,\n editable: true\n },\n {\n field: 'address1',\n type: 'string',\n headerName: 'Address',\n width: 200,\n editable: true\n },\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle Number',\n width: 200,\n editable: true\n }\n ]\n const classes = useStyle()\n\n return (\n
    \n \n \n \n {`Participant # ${guestInfo.guestid}`}\n \n \n\n {`${guestInfo.first} ${guestInfo.last}`}\n {guestInfo.address}\n \n \n \n {`${guestInfo.email}`}\n {guestInfo.city}\n \n \n {guestInfo.phone}\n {`${guestInfo.state} ${guestInfo.zip}`}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (\n \n {rowsErrorMessage?.length > 0 ? rowsErrorMessage : 'No Rows'}\n \n ),\n NoResultsOverlay: () => (\n \n {rowsErrorMessage?.length > 0 ? rowsErrorMessage : 'No Rows'}\n \n )\n }}\n getRowId={(row) => row.rownumber}\n className={classes.root}\n autoHeight\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n columnVisibilityModel={{\n // Hide column rownumber the other columns will remain visible\n rownumber: false\n }}\n />\n
    \n )\n}\nexport default GuestLinkingPage\n","import React, {useEffect, useMemo, useRef, useState} from 'react'\nimport styles from './EventNameTagsPage.module.css';\nimport {useParams} from \"react-router\";\nimport {AppBar, FormControl, Grid, InputLabel, Stack} from \"@mui/material\";\nimport axios from \"axios\";\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport HookForm from \"../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\nimport {useAutoEvt} from \"../../queries/useAutoEvt\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport {Button} from \"@material-ui/core\";\n\ninterface Params {\n eventid: string\n guides: any\n}\n\ninterface FormData {\n ticketid: number\n sizeid: number\n firstname: string,\n lastname: string,\n company: string,\n group: string,\n groupprefixtext: string,\n userdefined1: string,\n userdefinedprefixtext1: string,\n userdefined2: string,\n userdefinedprefixtext2: string,\n exportalltoexcel: string,\n}\n\nconst EventNameTagsPage = () => {\n const { eventid, guides } = useParams()\n const { handleSubmit } = useForm()\n const formMethods = useForm()\n const { setValue, watch, getValues, setError, clearErrors, setFocus, reset } = formMethods\n\n console.log(eventid)\n useAutoEvt(eventid)\n const [tagsData, setTagsData] = React.useState({selectedticketid: null, selectedsizeid: null, sizelist: [], ticketlist: [], userdefinedlist: [], status: '', message: ''})\n\n const getTagsData = async () => {\n var body = {'eventid': eventid}\n const { data } = await axios.post('/evtnametags', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n\n reset({\n ticketid: parsedData.selectedticketid,\n sizeid: parsedData.selectedsizeid\n })\n setTagsData(parsedData)\n }\n\n useEffect(() => {\n // evtnametags\n getTagsData()\n }, [])\n\n const sizeList = tagsData && tagsData.sizelist ? tagsData.sizelist : []\n const sizeOptions = useMemo(\n () => sizeList.map((size) => {\n return { value: size.sizeid, label: size.sizename }\n }),\n [sizeList]\n )\n\n const ticketTypeList = tagsData && tagsData.ticketlist ? tagsData.ticketlist : []\n const ticketTypeOptions = useMemo(\n () => ticketTypeList.map((ticketType) => {\n return { value: ticketType.ticketid, label: ticketType.ticketname }\n }),\n [ticketTypeList]\n )\n\n const lineOptions = () => {\n return [\n { value: 'line1', label: 'Line 1' },\n { value: 'line2', label: 'Line 2' },\n { value: 'line3', label: 'Line 3' },\n { value: 'line4', label: 'Line 4' },\n { value: 'line5', label: 'Line 5' },\n { value: 'footer', label: 'Footer' },\n { value: 'notincluded', label: 'Not Included' },\n ]\n }\n\n\n const onSubmit = async (data: FormData) => {\n const body = {eventid: Number(eventid), ...data}\n console.log(body)\n axios.post(`evtnametagsprocess`, body).then(response => {})\n }\n\n const onSubmitExcel = async (data: FormData) => {\n const values = getValues()\n const body = {eventid: Number(eventid), type: 'exportalltoexcel', ...values}\n console.log(body)\n axios.post(`evtnametagsprocess`, body).then(response => {})\n }\n\n const onSubmitPDF = async (data: FormData) => {\n const values = getValues()\n const body = {eventid: Number(eventid), type: 'exportpdf', ...values}\n console.log(body)\n axios.post(`evtnametagsprocess`, body).then(response => {})\n }\n\n const onSubmitWord = async (data: FormData) => {\n const values = getValues()\n const body = {eventid: Number(eventid), type: 'exportword', ...values}\n console.log(body)\n axios.post(`evtnametagsprocess`, body).then(response => {})\n }\n\n return (\n
    \n

    Name Tags

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n

    Build Your Name Tags

    \n
    \n \n
    Assign your fields to specific lines or exclude them from the name tags
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n )\n}\n\nexport default EventNameTagsPage\n","import React, {useEffect, useMemo, useRef, useState} from 'react'\nimport styles from './EventGroupListingPage.module.css';\nimport {useParams} from \"react-router\";\nimport {AppBar, Checkbox, FormControl, FormControlLabel, Grid, InputLabel, Stack} from \"@mui/material\";\nimport axios from \"axios\";\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport HookForm from \"../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\nimport {useAutoEvt} from \"../../queries/useAutoEvt\";\nimport {Button} from \"@material-ui/core\";\n\ninterface Params {\n eventid: string\n}\n\ninterface FormData {\n ticketid: number\n sizeid: number\n}\n\nconst EventGroupListingPage = () => {\n const { eventid } = useParams()\n const { handleSubmit } = useForm()\n const [includeUnregisteredGuest, setIncludeUnregisteredGuest] = useState(true);\n const [oneGroupPerPage, setOneGroupPerPage] = useState(true);\n const formMethods = useForm()\n const { setValue, watch, getValues, setError, clearErrors, setFocus, reset } = formMethods\n\n console.log(eventid)\n useAutoEvt(eventid)\n const [tagsData, setTagsData] = React.useState({selectedticketid: null, selectedsizeid: null, sizelist: [], ticketlist: [], userdefinedlist: [], status: '', message: ''})\n\n const getTagsData = async () => {\n var body = {'eventid': eventid}\n const { data } = await axios.post('/evtnametags', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n\n reset({\n ticketid: parsedData.selectedticketid,\n sizeid: parsedData.selectedsizeid\n })\n setTagsData(parsedData)\n }\n\n useEffect(() => {\n // evtnametags\n getTagsData()\n }, [])\n\n const sizeList = tagsData && tagsData.sizelist ? tagsData.sizelist : []\n const userDefinedOptions = useMemo(\n () => sizeList.map((size) => {\n return { value: size.sizeid, label: size.sizename }\n }),\n [sizeList]\n )\n\n const ticketTypeList = tagsData && tagsData.ticketlist ? tagsData.ticketlist : []\n const ticketTypeOptions = useMemo(\n () => ticketTypeList.map((ticketType) => {\n return { value: ticketType.ticketid, label: ticketType.ticketname }\n }),\n [ticketTypeList]\n )\n const onSubmit = async (data: FormData) => {}\n const onSubmitExcel = async (data: FormData) => {\n const values = getValues()\n const body = {\n eventid: Number(eventid), type: 'exportalltoexcel',\n includeunregisteredguests: includeUnregisteredGuest,\n onegroupperpage: oneGroupPerPage, ...values}\n console.log(body)\n axios.post(`evtnametagsprocess`, body).then(response => {})\n }\n\n const onSubmitPDF = async (data: FormData) => {\n const values = getValues()\n const body = {\n eventid: Number(eventid), type: 'exportpdf',\n includeunregisteredguests: includeUnregisteredGuest,\n onegroupperpage: oneGroupPerPage, ...values}\n console.log(body)\n axios.post(`evtnametagsprocess`, body).then(response => {})\n }\n\n const handleUnregisteredGuests = (event) => {\n setIncludeUnregisteredGuest(event.target.checked);\n }\n\n const handleOneGroupPerPage = (event) => {\n setOneGroupPerPage(event.target.checked);\n }\n\n return (\n
    \n

    Group Listing Report

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n label=\"Include Unregistered Guests\"\n />\n \n \n \n }\n label=\"One Group Per Page\"\n />\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
    \n )\n}\n\nexport default EventGroupListingPage\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport styles from '../GenericForm/GenericForm.module.css'\nimport axios from \"axios\"\nimport {Grid, InputLabel} from \"@mui/material\";\nimport styled from \"@emotion/styled\"\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\n}\n\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const RegisterForm = ({ isGuestOpen, setIsGuestOpen, endpoint, eventId, genericid }) => {\n const formMethods = useForm()\n const {watch, getValues, setValue, register, reset} = formMethods\n const [loading, setLoading] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0, title: \"\" })\n const [dialogMsg, setDialogMsg] = React.useState({active: false, msg: ''})\n const [ticketData, setTicketData] = React.useState({\n fieldslist: [],\n title: '',\n showbuttonreassign: false,\n showbuttonunassign: false,\n lookuplist: [],\n })\n\n useEffect(() => {\n if (isGuestOpen) {\n getEventTicket()\n }\n }, [eventId, genericid, endpoint, isGuestOpen])\n\n const getTicketLookupDataOptions = (lookupfieldid) => {\n const dtRows = ticketData?.lookuplist?.filter((e) => e.lookupactive === true && e.lookupfieldid === lookupfieldid).map((types) => {\n return {value: types.lookupid, label: types.lookup}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const unassignEventTicket = async () => {\n setLoading(true)\n const { data } = await axios.put('/' + endpoint, {eventid: eventId, genericid: genericid, unassign: true})\n const parsedData = JSON.parse(data.jsonString)\n\n setDialogObj({\n title: '',\n id: 0,\n msg: ''\n })\n if (parsedData.status === 'success') {\n setDialogMsg({active: false, msg: ''})\n setIsGuestOpen(false)\n // setDialogMsg({active: false, msg: dialogMsg.msg})\n\n }\n else {\n // setDialogMsg({active: false, msg: parsedData.message})\n setDialogMsg({active: true, msg: parsedData.message})\n }\n\n setLoading(false)\n }\n\n const getEventTicket = async () => {\n var body = {eventid: eventId}\n\n console.log(genericid)\n\n if (genericid > 0) {\n body['registrationid'] = genericid\n body['id'] = genericid\n }\n\n setLoading(true)\n const { data } = await axios.post('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n setLoading(false)\n }\n const handleClose = () => {\n setIsGuestOpen(false)\n }\n\n const onSubmit = async (formData: FormData) => {\n var fieldList = []\n const formKeys = Object.keys(formData)\n formKeys.map(key => {\n const fieldId = key.split(\"defaultcontrol\").pop()\n var element = ticketData?.fieldslist?.find(field => Number(field.fieldid) === Number(fieldId))\n const defaultValueControl = 'defaultcontrol' + fieldId\n var fieldDataObject = {fieldid: element.fieldid}\n if (formData && formData[defaultValueControl]) {\n fieldDataObject['fieldvalue' + element.fieldcontrol] = formData[defaultValueControl]\n fieldList.push(fieldDataObject)\n }\n });\n const body = {eventid: eventId, genericid: genericid, id: genericid, fieldslist: fieldList}\n const {data} = await axios.put('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n\n console.log(parsedData)\n setIsGuestOpen(false)\n }\n\n const handleSelectionClick = async (fieldControlId, fieldData) => {\n console.log(getValues(fieldControlId))\n console.log(fieldData)\n\n\n if (fieldData && fieldData.onchange) {\n var body = {}\n console.log(fieldData?.onchange?.params)\n fieldData?.onchange?.params?.map(key => {\n if (key.startsWith('fieldid')) {\n body['fieldid'] = getValues(fieldControlId)\n }\n else if (key.endsWith('-id')) {\n const newKey = key.replace('-', '')\n body[newKey] = genericid\n }\n else if (key === 'eventid') {\n body['eventid'] = eventId\n }\n })\n if (fieldData.onchange.endpoint) {\n const {data} = await axios.post(fieldData.onchange.endpoint, body)\n if (data.jsonString) {\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n console.log(body)\n }\n }\n }\n }\n\n const handleUnassign = () => {\n setDialogObj({\n title: '',\n id: 0,\n msg: 'Are you sure you want to unassign this guest?'\n })\n }\n\n const handleReassign = () => {\n const newTicketData = {...ticketData}\n console.log(newTicketData?.fieldslist)\n var ticket = newTicketData?.fieldslist.find(ticket => ticket.fieldid === -1001)\n ticket.fieldreadonly = false\n setTicketData(newTicketData)\n }\n\n const unassignDialog = async () => {\n await handleUnassignConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n\n const handleUnassignConfirm = async (id: number) => {\n // var finaldata = {\n // \"eventid\": Number(eventState.eventId),\n // \"historyid\": id,\n // \"delete\": true\n // }\n // const { data: response } = await updateBidMaintenanceMutation.mutateAsync({\n // ...finaldata\n // },{\n // onSuccess: (data) => {\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // }\n // }\n // })\n }\n\n return (\n <>\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.title}\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n \n \n \n {dialogMsg.msg}\n \n \n \n \n \n \n \n\n {ticketData.title}\n \n \n \n\n\n \n {/*fieldrowgrouping*/}\n {ticketData?.fieldslist?.sort((a, b) => a.fieldrowgrouping > b.fieldrowgrouping ? 1 : -1).map((ticketFieldData) => {\n if (ticketFieldData.fieldcontrol === 1) {\n return (\n \n \n \n )\n }\n if (ticketFieldData.fieldcontrol === 2) {\n return (\n \n {handleSelectionClick(\"defaultcontrol\" + ticketFieldData.fieldid, ticketFieldData)}}\n />\n \n )\n }\n else if (ticketFieldData.fieldcontrol === 4) {\n return (\n \n \n \n )\n }\n else if (ticketFieldData.fieldcontrol === 5) {\n return (\n \n \n \n )\n }\n\n })}\n \n\n {/*{controlWatch === 3 &&*/}\n {/* */}\n {/*}*/}\n\n\n {/*{controlWatch === 6 &&*/}\n {/* */}\n {/* { handleDateTimeChange(e)}}*/}\n {/* // renderInput={(params) => }*/}\n {/* />*/}\n {/* */}\n {/*}*/}\n \n\n \n \n {handleClose()}}\n form=\"items-form\">\n Close\n \n \n Submit\n \n \n \n \n )\n}\n","import React, {useEffect, useLayoutEffect, useMemo, useState} from 'react'\nimport {Checkbox, DialogTitle, Divider, FormControl, InputBase, IconButton, List, ListItemText} from \"@mui/material\";\nimport {\n DataGridPremium,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams, gridSortedRowIdsSelector,GridToolbarContainer, GridValueFormatterParams, useGridApiContext,\n useGridApiRef,\n GridRowOrderChangeParams, GRID_CHECKBOX_SELECTION_COL_DEF, gridFilteredSortedRowEntriesSelector,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport styles from './EventCheckInPage.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent, Stack} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport axios from \"axios\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport Paper from \"@mui/material/Paper\";\nimport {GuestForm} from \"../EventGuestMaintenancePage/GuestForm\";\nimport {styled} from \"@mui/material/styles\";\nimport SelectInput from \"../../components/common/inputs/SelectInput\";\nimport {useAutoEvt} from \"../../queries/useAutoEvt\";\nimport {RegisterForm} from \"./RegisterForm\";\ninterface Params {\n eventid: string\n}\n\nconst EventCheckInPage = () => {\n const { eventid } = useParams()\n useAutoEvt(eventid)\n\n const apiRef = useGridApiRef();\n const eventState = useEventState()\n const [transactionId, setTransactionId] = useState(0)\n const [rows, setRows] = React.useState([])\n const [isDataLoading, setIsDataLoading] = React.useState(false)\n const [checkboxSelection, setCheckboxSelection] = React.useState([])\n const [searchText, setSearchText] = useState('');\n const [statusList, setStatusList] = React.useState([])\n const [ticketList, setTicketList] = React.useState([])\n const [statusId, setStatusId] = useState('');\n const [ticketId, setTicketId] = useState('');\n const [defaultStatusId, setDefaultStatusId] = useState('');\n const [defaultTicketId, setDefaultTicketId] = useState('');\n const [firstLoad, setFirstLoad] = useState(true);\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [guestId, setGuestId] = useState(null)\n const [invalidateKey, SetinvalidateeKey] = React.useState(1)\n\n const FloatingButton = styled(Button)(({ theme }) => ({\n margin:'auto',\n top: 'auto',\n // right: '40%',\n bottom: 20,\n left: '25%',\n position: 'fixed',\n width: '50%'\n }))\n\n useEffect(() => {\n if (!isFormShowing) {\n searchQuery()\n }\n }, [isFormShowing])\n\n useEffect(() => {\n setFirstLoad(true)\n searchQuery()\n }, [statusId, ticketId])\n\n useEffect(() => {\n console.log(transactionId)\n }, [transactionId])\n\n useEffect(() => {\n const timeOutId = setTimeout(() => searchQuery(), 500);\n return () => clearTimeout(timeOutId);\n }, [searchText]);\n\n const searchQuery = async () => {\n var body = {\n eventid: Number(eventid)\n }\n if (searchText?.length > 0) {\n body['search'] = searchText\n }\n if (Number(statusId) > 0) {\n body['statusid'] = Number(statusId);\n }\n\n if (Number(ticketId) > 0) {\n body['ticketid'] = Number(ticketId);\n }\n const { data } = await axios.post('/evtattendee', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n\n\n setDefaultStatusId(parsedData?.selectedstatusid?.toString())\n setDefaultTicketId(parsedData?.selectedticketid?.toString())\n SetinvalidateeKey(invalidateKey+1)\n\n if (parsedData?.statuslist) {\n setStatusList(parsedData?.statuslist)\n }\n if (parsedData?.ticketlist) {\n setTicketList(parsedData?.ticketlist)\n }\n\n var selectionValues = []\n selectionValues.push({id: 0, value: false})\n setRows(parsedData.attendeelist.map((item) => {\n selectionValues.push({id: item.id, value: false, ...item})\n return { id: item.id, ...item}\n }))\n // if (firstLoad) {\n setFirstLoad(false)\n setCheckboxSelection(selectionValues)\n // }\n }\n\n const uploadGuest = async (checkin, id) => {\n setIsDataLoading(true)\n\n const selection = checkboxSelection.find(cbSels => cbSels.id == id)\n console.log(selection)\n if (selection?.cancheckin) {\n selection.value = checkin\n const allItems = checkboxSelection.filter(itm => itm.id != id)\n console.log(allItems)\n setCheckboxSelection([...allItems, selection])\n\n const body = {\n 'eventid': eventid,\n 'id': id,\n 'checkin': checkin\n }\n const response = await axios.put(`evtattendee`, body)\n const parsedData = JSON.parse(response.data.jsonString)\n\n searchQuery()\n }\n\n\n setIsDataLoading(false)\n }\n const uploadGuests = async (checkin) => {\n setIsDataLoading(true)\n const selectedItemsIds = checkboxSelection.filter(cbSels => cbSels.value == true).map((item)=> {\n return item.id;\n })\n\n const body = {\n 'eventid': eventid,\n 'ids': selectedItemsIds,\n 'checkin': checkin\n }\n const response = await axios.put(`evtattendee`, body)\n const parsedData = JSON.parse(response.data.jsonString)\n\n searchQuery()\n setIsDataLoading(false)\n }\n\n const handleChange = (event: React.ChangeEvent) => {\n setCheckboxSel(event.target.id, event.target.checked)\n }\n const setCheckboxSel = (id, value) => {\n const selections = checkboxSelection.filter((op) => op.id != id)\n\n if (id == 0) {\n const gridFilteredRows = gridFilteredSortedRowEntriesSelector(apiRef)\n const selectedItems = gridFilteredRows.map(listofstuff => {\n return {id: listofstuff.id, value: value}\n })\n setCheckboxSelection([{id: 0, value: value}, ...selectedItems])\n }\n else {\n const selectionValues = [{id: Number(id), value: value}, ...selections].filter((op) => op.id != 0)\n const allValue = shouldAllBeSelected(selectionValues)\n selectionValues.push({id: 0, value: allValue})\n setCheckboxSelection(selectionValues)\n }\n }\n\n const shouldAllBeSelected = (selections) => {\n var allSelected = true\n selections.forEach(listofstuff => {\n if (listofstuff.value == false) {\n allSelected = false\n }\n })\n return allSelected\n }\n\n const getCheckboxSel = (id) => {\n const selection = checkboxSelection.find((op) => op.id === id)\n return selection ? selection.value : false\n }\n\n const handleRegister = (id) => {\n setGuestId(id)\n setIsFormShowing(true)\n }\n\n var checkboxCol: GridColDef = {\n \"field\": 'checkedeContactid',\n \"headerName\":'',\n \"type\": 'string',\n \"headerAlign\": 'right',\n \"width\": 180,\n \"align\": 'right',\n }\n checkboxCol = GRID_CHECKBOX_SELECTION_COL_DEF\n checkboxCol.field = 'checkedeContactid'\n checkboxCol.headerName = ''\n checkboxCol.width = 160\n checkboxCol.headerAlign = \"left\"\n checkboxCol.renderHeader = (params) => {\n return (\n <>\n \n \n \n \n )\n }\n checkboxCol.renderCell = (params) => {\n if (params.row.canregister) {\n return (\n <>\n {params.row.cancheckin &&\n \n }\n
    \n {handleRegister(params.row.id)}}\n >\n Register\n \n \n )\n }\n else if(params.row.cancheckin && params.row.checkedin == false) {\n return (\n <>\n \n {uploadGuest(true, params.row.id)}}>\n Check In\n \n \n )\n }\n else {\n return (\n <>\n \n {/**/}\n \n \n )\n }\n }\n\n const columns: GridColDef[] = [\n checkboxCol,\n {\n field: 'guestname',\n headerName: 'Guest Name',\n type: 'string',\n width: 300,\n },\n {\n field: 'groupname',\n type: 'string',\n headerName: 'Group Name',\n width: 350\n },\n {\n field: 'purchasername',\n type: 'string',\n headerName: 'Purchaser',\n minWidth: 300\n },\n {\n field: 'checkout-button',\n headerName: '',\n width: 160,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n if(params.row.cancheckin == true && params.row.checkedin === true) {\n return {uploadGuest(false, params.row.id)}}>\n UNDO Check In\n ;\n }\n }\n },\n // {\n // field: 'checkedin',\n // headerName: 'Checked In',\n // width: 120,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // console.log(params.value)\n // return params.value == false ? 'NO' : 'yes'\n // },\n // },\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n <>\n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n \n )\n }\n\n const getStatusOptions = () => {\n return statusList?.map(item => (\n \n {item.status}\n \n ))\n }\n\n const handleStatusChange = async (event: SelectChangeEvent) => {\n setStatusId(event.target.value);\n }\n\n const getTicketItemOptions = () => {\n return ticketList?.map(item => (\n \n {item.ticketname}\n \n ))\n }\n\n const handleTicketChange = async (event: SelectChangeEvent) => {\n setTicketId(event.target.value);\n }\n\n return (\n
    \n

    Check In

    \n \n {/**/}\n \n \n Select Tickets\n \n {getTicketItemOptions()}\n \n \n\n \n Status\n { handleStatusChange(event) }}\n >\n {getStatusOptions()}\n \n \n \n \n \n { setSearchText(event.target.value)}}\n />\n \n \n \n \n \n \n \n \n \n \n \n\n \n {uploadGuests(true)}}\n hidden={!checkboxSelection.find((op) => op.value == true)}\n color=\"primary\">\n CHECK IN ALL SELECTED GUESTS\n \n \n \n
    \n )\n}\n\nexport default EventCheckInPage\n","import React, {useEffect, useState} from 'react'\nimport styles from './EventGuestInformation.module.css'\nimport {useParams} from \"react-router\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\n\nimport {\n Checkbox,\n FormControlLabel,\n Grid,\n InputLabel,\n Select,\n SelectChangeEvent\n} from \"@mui/material\";\nimport {useAutoEvt} from \"../../queries/useAutoEvt\";\nimport CheckboxGroup from \"../../components/common/inputs/CheckboxGroup\";\nimport Button from \"@mui/material/Button\";\n\ninterface Params {\n eventid: string\n}\n\nconst EventGuestInformation = () => {\n const { eventid } = useParams()\n useAutoEvt(eventid)\n\n const [loading, setLoading] = React.useState(false)\n const [ticketItem, setTicketItem] = useState(\"-1\")\n\n\n const handleSelectionChange = async (event: SelectChangeEvent) => {\n setTicketItem(event.target.value as string);\n }\n\n const getTicketItemOptions = () => {\n // return groupData?.ticketitemlist?.map(item => (\n // \n // {item.ticketitemname}\n // \n // ))\n return []\n }\n\n return (\n
    \n \n

    Guest Information

    \n \n \n \n \n {getTicketItemOptions()}\n \n \n \n \n \n \n } label=\"Include Purchaser Name\" />\n \n \n } label=\"Include User Defined Fields\" />\n \n \n } label=\"Include System Fields\" />\n \n \n {downloadInteractionExcel()}}\n color=\"primary\">\n EXPORT TO EXCEL\n \n \n \n \n \n
    \n )\n}\n\nexport default EventGuestInformation\n","import { useDispatch } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\n\nimport { parseJwt } from '../pages/AuthPage/LoginForm/useLoginMutation'\nimport { useFetchOrgSettings } from '../pages/OrgSettingsPage/useFetchOrgSettings'\nimport {AuthToken, loginUser, updateUser} from '../slices/authSlice'\nimport axios from \"axios\";\nimport {User} from \"./useUsers\";\n\nexport const useAutoAuth = () => {\n const dispatch = useDispatch()\n const token = localStorage.getItem('tokenadmin')\n\n const parsedToken: AuthToken = ((token && token !== 'undefined') ? parseJwt(token) : null)\n const history = useHistory()\n\n return useFetchOrgSettings({\n userid: parsedToken?.userid,\n onSuccess: () => {\n if (parsedToken && parsedToken.userid) {\n dispatch(loginUser(parsedToken))\n\n axios.post('/usersetup', {userid: parsedToken.userid}).then((response) => {\n const parsedData = JSON.parse(response?.data?.jsonString)\n if (parsedData && parsedData?.users && parsedData?.users.length > 0) {\n const user = parsedData.users[0]\n dispatch(updateUser(user))\n }\n })\n\n } else {\n history.push('/auth/login')\n }\n },\n onError: () => {\n history.push('/auth/login')\n },\n enabled: Boolean(history)\n })\n}\n","import './index.css'\n\nimport React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport { App } from './App'\nimport 'flexmonster/flexmonster.css';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionPage_root__3Hq0Y\",\"submitButton\":\"AuctionPage_submitButton__1IQKX\",\"selectcontrol\":\"AuctionPage_selectcontrol__fNU1y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"BroadcastMessagePage_root__3JmYX\",\"switchContainer\":\"BroadcastMessagePage_switchContainer__1lAsz\",\"labelContainer\":\"BroadcastMessagePage_labelContainer__33n91\",\"selectSourceContainer\":\"BroadcastMessagePage_selectSourceContainer__1Cpxc\",\"fileUpload\":\"BroadcastMessagePage_fileUpload__2Uk-X\",\"selectRow\":\"BroadcastMessagePage_selectRow__25oTK\",\"gridContainer\":\"BroadcastMessagePage_gridContainer__RPbFG\",\"matchFieldsContainer\":\"BroadcastMessagePage_matchFieldsContainer__3sSRz\",\"textRow\":\"BroadcastMessagePage_textRow__wvi9n\",\"selectcontrol\":\"BroadcastMessagePage_selectcontrol__1HUY2\",\"submitButton\":\"BroadcastMessagePage_submitButton__21d8V\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventDiscountCodesTable_root__2mIAp\",\"itemsForm\":\"EventDiscountCodesTable_itemsForm__2P4I3\",\"dialog\":\"EventDiscountCodesTable_dialog__1jGrC\",\"submitButton\":\"EventDiscountCodesTable_submitButton__2bhxI\",\"switchContainer\":\"EventDiscountCodesTable_switchContainer__2paOM\",\"singleContainer\":\"EventDiscountCodesTable_singleContainer__2HLuz\",\"buyItNowContainer\":\"EventDiscountCodesTable_buyItNowContainer__2Iru_\",\"twoControlContainer\":\"EventDiscountCodesTable_twoControlContainer__2HIlh\",\"textContainer\":\"EventDiscountCodesTable_textContainer__2hvXl\",\"buyitnowtextContainer\":\"EventDiscountCodesTable_buyitnowtextContainer__1z3C8\",\"formContainer\":\"EventDiscountCodesTable_formContainer__1ul4C\",\"buyitnowformContainer\":\"EventDiscountCodesTable_buyitnowformContainer__2ND48\",\"imageWrapper\":\"EventDiscountCodesTable_imageWrapper__162w2\",\"dropzone\":\"EventDiscountCodesTable_dropzone__1PKXm\",\"logoWrapper\":\"EventDiscountCodesTable_logoWrapper__QjwlV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"MaskedInput_input__3Larn\",\"label\":\"MaskedInput_label__w2WMr\",\"textContainer\":\"MaskedInput_textContainer__2TuCz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"OrgSettingsPage_root__2_CTg\",\"inputsContainerCenterText\":\"OrgSettingsPage_inputsContainerCenterText__2fmoH\",\"inputsContainer\":\"OrgSettingsPage_inputsContainer__3hhDv\",\"inputButtonContainer\":\"OrgSettingsPage_inputButtonContainer__2VZCl\",\"floatingButton\":\"OrgSettingsPage_floatingButton__2SiGJ\",\"saveButton\":\"OrgSettingsPage_saveButton__3uEgT\",\"resetButton\":\"OrgSettingsPage_resetButton__3eFZF\",\"bottomSaveButton\":\"OrgSettingsPage_bottomSaveButton__3j98d\",\"tableContainer\":\"OrgSettingsPage_tableContainer__2lCBT\",\"horizontalScroll\":\"OrgSettingsPage_horizontalScroll___qo-e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventUserDefinedTable_root__2oi_9\",\"itemsForm\":\"EventUserDefinedTable_itemsForm__3_huI\",\"dialog\":\"EventUserDefinedTable_dialog__i5725\",\"submitButton\":\"EventUserDefinedTable_submitButton__2N7VB\",\"switchContainer\":\"EventUserDefinedTable_switchContainer__37fn1\",\"singleContainer\":\"EventUserDefinedTable_singleContainer__2Pfnf\",\"buyItNowContainer\":\"EventUserDefinedTable_buyItNowContainer__11wKb\",\"twoControlContainer\":\"EventUserDefinedTable_twoControlContainer__1hwXH\",\"textContainer\":\"EventUserDefinedTable_textContainer__30KQc\",\"buyitnowtextContainer\":\"EventUserDefinedTable_buyitnowtextContainer__2RBZ8\",\"formContainer\":\"EventUserDefinedTable_formContainer__19jvI\",\"buyitnowformContainer\":\"EventUserDefinedTable_buyitnowformContainer__3XBf8\",\"imageWrapper\":\"EventUserDefinedTable_imageWrapper__3U8So\",\"dropzone\":\"EventUserDefinedTable_dropzone__3XcwH\",\"logoWrapper\":\"EventUserDefinedTable_logoWrapper__1mWO5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CheckoutForm_root__39SID\",\"subrootitems\":\"CheckoutForm_subrootitems__2v-cL\",\"subrootcard\":\"CheckoutForm_subrootcard__6X7PD\",\"subrootgrid\":\"CheckoutForm_subrootgrid__1u-n2\",\"form\":\"CheckoutForm_form__1URiu\",\"gridContainer\":\"CheckoutForm_gridContainer__oUl9w\",\"grid\":\"CheckoutForm_grid__2an6_\",\"rootitems\":\"CheckoutForm_rootitems__1eB_E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ImportPage_root__3BIK6\",\"switchContainer\":\"ImportPage_switchContainer__27nu4\",\"labelContainer\":\"ImportPage_labelContainer__3OvWz\",\"selectSourceContainer\":\"ImportPage_selectSourceContainer__1Zvmy\",\"fileUpload\":\"ImportPage_fileUpload__1Hjud\",\"selectRow\":\"ImportPage_selectRow__3sO-z\",\"gridContainer\":\"ImportPage_gridContainer__d8Exk\",\"matchFieldsContainer\":\"ImportPage_matchFieldsContainer__OXQxt\",\"textRow\":\"ImportPage_textRow__2hIcO\",\"selectcontrol\":\"ImportPage_selectcontrol__1A0fp\",\"dropzone\":\"ImportPage_dropzone__1Zq81\",\"dropzoneselect\":\"ImportPage_dropzoneselect__1HP-p\",\"dropzoneinvalid\":\"ImportPage_dropzoneinvalid__spLyC\",\"selectedFile\":\"ImportPage_selectedFile__3P74h\",\"errorButton\":\"ImportPage_errorButton__3-rJH\",\"importButton\":\"ImportPage_importButton__1My_s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ManualBidEntryPage_root__jdho2\",\"submitButton\":\"ManualBidEntryPage_submitButton__1qz9K\",\"selectcontrol\":\"ManualBidEntryPage_selectcontrol__3A-Ex\",\"bidForm\":\"ManualBidEntryPage_bidForm__2UvOX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"SelectInput_input__6QEx2\",\"label\":\"SelectInput_label__1tqUl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"HomePage_root__2rAvm\",\"topRow\":\"HomePage_topRow__E1eIP\",\"successBtn\":\"HomePage_successBtn__3XQsk\",\"deleteBtn\":\"HomePage_deleteBtn__23o7H\",\"switchBase\":\"HomePage_switchBase__3N-K3\",\"cardActions\":\"HomePage_cardActions__3L-wf\",\"listContainer\":\"HomePage_listContainer__3gtAg\",\"listItem\":\"HomePage_listItem__2vluB\",\"divider\":\"HomePage_divider__LqaTs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CheckoutPage_root__DD87j\",\"submitButton\":\"CheckoutPage_submitButton__W2jcg\",\"grid\":\"CheckoutPage_grid__29ZB3\",\"tabs\":\"CheckoutPage_tabs__Xlpvm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"SponsorsForm_root__34WKk\",\"form\":\"SponsorsForm_form__3BHXd\",\"button\":\"SponsorsForm_button__1NIdU\",\"dropzone\":\"SponsorsForm_dropzone__2IepB\",\"selectcontrol\":\"SponsorsForm_selectcontrol__2XmpX\",\"logoWrapper\":\"SponsorsForm_logoWrapper__2cZyL\",\"dropzoneselect\":\"SponsorsForm_dropzoneselect__qG9c4\",\"dropzoneinvalid\":\"SponsorsForm_dropzoneinvalid__eAobu\",\"selectedFile\":\"SponsorsForm_selectedFile__1Cw90\",\"cancelButton\":\"SponsorsForm_cancelButton__Hdf4Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"listContainer\":\"ViewList_listContainer__3Ixhs\",\"listContainerProps\":\"ViewList_listContainerProps__2f-l5\",\"listItem\":\"ViewList_listItem__wxdYC\",\"divider\":\"ViewList_divider__31K_Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ForceRefreshPage_root__1gD5B\",\"switchContainer\":\"ForceRefreshPage_switchContainer__3Pb9r\",\"labelContainer\":\"ForceRefreshPage_labelContainer__EYFhf\",\"selectSourceContainer\":\"ForceRefreshPage_selectSourceContainer__1gPK5\",\"fileUpload\":\"ForceRefreshPage_fileUpload__2_69I\",\"selectRow\":\"ForceRefreshPage_selectRow__1HRDx\",\"gridContainer\":\"ForceRefreshPage_gridContainer__38xvJ\",\"matchFieldsContainer\":\"ForceRefreshPage_matchFieldsContainer__3CK_6\",\"textRow\":\"ForceRefreshPage_textRow__13VAv\",\"selectcontrol\":\"ForceRefreshPage_selectcontrol__1gyLh\",\"submitButton\":\"ForceRefreshPage_submitButton__1Vq4C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CustomMessagesPage_root__1s652\",\"form\":\"CustomMessagesPage_form__BPze8\",\"button\":\"CustomMessagesPage_button__1wWpG\",\"dropzone\":\"CustomMessagesPage_dropzone__CXgoT\",\"selectcontrol\":\"CustomMessagesPage_selectcontrol__3XFbV\",\"inputsContainer\":\"CustomMessagesPage_inputsContainer__36SFZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CheckoutAllForm_root__91lnT\",\"participantsList\":\"CheckoutAllForm_participantsList__2dL8h\",\"rootitems\":\"CheckoutAllForm_rootitems__2YDid\",\"subrootitems\":\"CheckoutAllForm_subrootitems__3VqTe\",\"subrootcard\":\"CheckoutAllForm_subrootcard__1Um-R\",\"subrootgrid\":\"CheckoutAllForm_subrootgrid__3wCKg\",\"form\":\"CheckoutAllForm_form__2ZGp_\",\"gridContainer\":\"CheckoutAllForm_gridContainer__2HIWX\",\"grid\":\"CheckoutAllForm_grid__3g_w_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userForm\":\"UsersTable_userForm__3YfQd\",\"submitButton\":\"UsersTable_submitButton__2gpw2\",\"resetBtn\":\"UsersTable_resetBtn__3NMvT\",\"dialogContent\":\"UsersTable_dialogContent__3937I\",\"dialogActions\":\"UsersTable_dialogActions__12jHu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"TextInput_input__3u3hB\",\"label\":\"TextInput_label__22MyK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"toolbar\":\"Header_toolbar__3gmfh\",\"appBar\":\"Header_appBar__2iLy7\",\"menuButton\":\"Header_menuButton__1-nqb\",\"hidden\":\"Header_hidden__11Unr\",\"arrow\":\"Header_arrow__1ZCA5\",\"settings\":\"Header_settings__wSxNC\",\"avatar\":\"Header_avatar__wET4Y\",\"logoWrapper\":\"Header_logoWrapper__1GvYe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"drawerPaper\":\"MainMenu_drawerPaper__1vDS3\",\"toolbarIcon\":\"MainMenu_toolbarIcon__2pEyc\",\"list\":\"MainMenu_list__2uGNt\",\"link\":\"MainMenu_link__3ALcD\",\"truncate\":\"MainMenu_truncate__1UIXv\",\"nested\":\"MainMenu_nested__LU9xa\",\"close\":\"MainMenu_close__1ZuoN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tagsForm\":\"TagsTable_tagsForm__YNKcR\",\"submitButton\":\"TagsTable_submitButton__5hPNU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"locationsForm\":\"LocationsTable_locationsForm__1YWxy\",\"submitButton\":\"LocationsTable_submitButton__ntRAS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"donationForm\":\"DonationTable_donationForm__1Qwz8\",\"submitButton\":\"DonationTable_submitButton__GRfOk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"accountingForm\":\"AccountingCode_accountingForm__SEhFn\",\"submitButton\":\"AccountingCode_submitButton__2dyiD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"LocationsTagsPage_root__jPzjd\",\"form\":\"LocationsTagsPage_form__2LVJM\",\"button\":\"LocationsTagsPage_button__f6882\",\"dropzone\":\"LocationsTagsPage_dropzone__3MVFZ\",\"selectcontrol\":\"LocationsTagsPage_selectcontrol__1ce0g\",\"inputsContainer\":\"LocationsTagsPage_inputsContainer__20LIa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ParticipantsPage_root__2HjgB\",\"submitButton\":\"ParticipantsPage_submitButton__10x0Y\",\"titleRow\":\"ParticipantsPage_titleRow__1mdon\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventNameTagsPage_root__3XLE-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventTransactionsTable_root__2Cpcs\",\"selectcontrol\":\"EventTransactionsTable_selectcontrol__zlh28\",\"itemsForm\":\"EventTransactionsTable_itemsForm__3lrX6\",\"dialog\":\"EventTransactionsTable_dialog__1QQYY\",\"tablebutton\":\"EventTransactionsTable_tablebutton__1oeRh\",\"submitButton\":\"EventTransactionsTable_submitButton__13mPJ\",\"switchContainer\":\"EventTransactionsTable_switchContainer__1RxtR\",\"singleContainer\":\"EventTransactionsTable_singleContainer__2TXl_\",\"buyItNowContainer\":\"EventTransactionsTable_buyItNowContainer__DzbX0\",\"twoControlContainer\":\"EventTransactionsTable_twoControlContainer__2wD2y\",\"textContainer\":\"EventTransactionsTable_textContainer__m8VY_\",\"buyitnowtextContainer\":\"EventTransactionsTable_buyitnowtextContainer__geuRW\",\"formContainer\":\"EventTransactionsTable_formContainer__Ks8OK\",\"buyitnowformContainer\":\"EventTransactionsTable_buyitnowformContainer__1Zn3V\",\"imageWrapper\":\"EventTransactionsTable_imageWrapper__2_3TS\",\"dropzone\":\"EventTransactionsTable_dropzone__39RAO\",\"logoWrapper\":\"EventTransactionsTable_logoWrapper__2QTnO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"udtitlesForm\":\"ParticipantUDTitle_udtitlesForm__32EcH\",\"submitButton\":\"ParticipantUDTitle_submitButton__3P6j3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventSponsors_root__OKNhv\",\"submitButton\":\"EventSponsors_submitButton__lKEod\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventGroupListingPage_root__48ehk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"switchBase\":\"Switch_switchBase__3O2sP\",\"checked\":\"Switch_checked__1NAtt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuthPage_root__1_zml\",\"backgroundContainer\":\"AuthPage_backgroundContainer__32bvE\",\"header\":\"AuthPage_header__2MgG8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ForgotPasswordForm_root__3Lmlc\",\"form\":\"ForgotPasswordForm_form__3bKxA\",\"button\":\"ForgotPasswordForm_button__2h_AB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"LoginForm_root__22FuC\",\"form\":\"LoginForm_form__1DPxB\",\"button\":\"LoginForm_button__1B_Kr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ResetPasswordForm_root__rwtOG\",\"form\":\"ResetPasswordForm_form__3NqFk\",\"button\":\"ResetPasswordForm_button__3r86R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventGuestMaintenance_root__2Mh4o\",\"itemsForm\":\"EventGuestMaintenance_itemsForm__2CSFw\",\"dialog\":\"EventGuestMaintenance_dialog__1vYx2\",\"submitButton\":\"EventGuestMaintenance_submitButton__r1uuX\",\"switchContainer\":\"EventGuestMaintenance_switchContainer__2Id85\",\"singleContainer\":\"EventGuestMaintenance_singleContainer__2T3PT\",\"buyItNowContainer\":\"EventGuestMaintenance_buyItNowContainer__t0XTU\",\"twoControlContainer\":\"EventGuestMaintenance_twoControlContainer__3ziqS\",\"textContainer\":\"EventGuestMaintenance_textContainer__1LMNM\",\"buyitnowtextContainer\":\"EventGuestMaintenance_buyitnowtextContainer__1V2H7\",\"formContainer\":\"EventGuestMaintenance_formContainer__2Wk3k\",\"buyitnowformContainer\":\"EventGuestMaintenance_buyitnowformContainer__2IZza\",\"imageWrapper\":\"EventGuestMaintenance_imageWrapper__2jP4L\",\"dropzone\":\"EventGuestMaintenance_dropzone__3zhoa\",\"logoWrapper\":\"EventGuestMaintenance_logoWrapper__1qFbp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventMassEmailMaintenanceTable_root__2bmMM\",\"dialog\":\"EventMassEmailMaintenanceTable_dialog__2RD0l\",\"submitButton\":\"EventMassEmailMaintenanceTable_submitButton__3plhN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"TermsPage_root__37MKj\",\"rootitems\":\"TermsPage_rootitems__1-s8z\",\"subrootitems\":\"TermsPage_subrootitems__3ZPHH\",\"topRow\":\"TermsPage_topRow__12YMf\",\"successBtn\":\"TermsPage_successBtn__3vVNr\",\"deleteBtn\":\"TermsPage_deleteBtn__3NnOZ\",\"switchBase\":\"TermsPage_switchBase__3Wl_G\",\"cardActions\":\"TermsPage_cardActions__1ayvr\",\"listContainer\":\"TermsPage_listContainer__1kTzy\",\"listItem\":\"TermsPage_listItem__3m3c0\",\"divider\":\"TermsPage_divider__2z-30\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"StripeForm_form__1zAWu\",\"submitButton\":\"StripeForm_submitButton__20ZyW\",\"resetBtn\":\"StripeForm_resetBtn__3LoHt\",\"dialogContent\":\"StripeForm_dialogContent__3pE3n\",\"dialogActions\":\"StripeForm_dialogActions__1Ub4z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"ParticipantsForm_form__3b3O2\",\"submitButton\":\"ParticipantsForm_submitButton__3YgeI\",\"imgBorder\":\"ParticipantsForm_imgBorder__3EGFX\",\"imageWrapper\":\"ParticipantsForm_imageWrapper__3U8SC\",\"noLogo\":\"ParticipantsForm_noLogo__37Ykm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"BidMaintenancePage_root__1xiWt\",\"dialog\":\"BidMaintenancePage_dialog__2Waub\",\"submitButton\":\"BidMaintenancePage_submitButton__2sV_P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuthPage_root__1nHXx\",\"backgroundContainer\":\"AuthPage_backgroundContainer__3GC9k\",\"header\":\"AuthPage_header__3aVpe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventTicketsTable_root__cpeUe\",\"itemsForm\":\"EventTicketsTable_itemsForm__1ygTC\",\"dialog\":\"EventTicketsTable_dialog__3OQS5\",\"submitButton\":\"EventTicketsTable_submitButton__2nARJ\",\"switchContainer\":\"EventTicketsTable_switchContainer__1KnIy\",\"singleContainer\":\"EventTicketsTable_singleContainer__4OV3a\",\"buyItNowContainer\":\"EventTicketsTable_buyItNowContainer__3EZIE\",\"twoControlContainer\":\"EventTicketsTable_twoControlContainer__2w1QH\",\"textContainer\":\"EventTicketsTable_textContainer__1_HFv\",\"buyitnowtextContainer\":\"EventTicketsTable_buyitnowtextContainer__1rlgh\",\"formContainer\":\"EventTicketsTable_formContainer__14OtO\",\"buyitnowformContainer\":\"EventTicketsTable_buyitnowformContainer__3AHkY\",\"imageWrapper\":\"EventTicketsTable_imageWrapper__3WcE4\",\"dropzone\":\"EventTicketsTable_dropzone__2_n9V\",\"logoWrapper\":\"EventTicketsTable_logoWrapper__sciif\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventCheckInPage_root__3uvvk\",\"selectcontrol\":\"EventCheckInPage_selectcontrol__390qR\",\"itemsForm\":\"EventCheckInPage_itemsForm__ERJGA\",\"dialog\":\"EventCheckInPage_dialog__3ZC0p\",\"tablebutton\":\"EventCheckInPage_tablebutton__1z1dE\",\"submitButton\":\"EventCheckInPage_submitButton__2B4Jl\",\"switchContainer\":\"EventCheckInPage_switchContainer__y02ui\",\"singleContainer\":\"EventCheckInPage_singleContainer__rrPq4\",\"buyItNowContainer\":\"EventCheckInPage_buyItNowContainer__a8OVc\",\"twoControlContainer\":\"EventCheckInPage_twoControlContainer__VycIm\",\"textContainer\":\"EventCheckInPage_textContainer__1kbX3\",\"buyitnowtextContainer\":\"EventCheckInPage_buyitnowtextContainer__cKnAP\",\"formContainer\":\"EventCheckInPage_formContainer__279ja\",\"buyitnowformContainer\":\"EventCheckInPage_buyitnowformContainer__2sAMd\",\"imageWrapper\":\"EventCheckInPage_imageWrapper__2VIUm\",\"dropzone\":\"EventCheckInPage_dropzone__T2r8K\",\"logoWrapper\":\"EventCheckInPage_logoWrapper__13pzz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"itemsForm\":\"AuctionItemsTable_itemsForm__26ttk\",\"dialog\":\"AuctionItemsTable_dialog__1xzxk\",\"submitButton\":\"AuctionItemsTable_submitButton__18RSH\",\"switchContainer\":\"AuctionItemsTable_switchContainer__ti79M\",\"singleContainer\":\"AuctionItemsTable_singleContainer__cWjUg\",\"buyItNowContainer\":\"AuctionItemsTable_buyItNowContainer__rRnlr\",\"textContainer\":\"AuctionItemsTable_textContainer__1BJb2\",\"buyitnowtextContainer\":\"AuctionItemsTable_buyitnowtextContainer__2hI6J\",\"formContainer\":\"AuctionItemsTable_formContainer__eGYqb\",\"buyitnowformContainer\":\"AuctionItemsTable_buyitnowformContainer__1GsA3\",\"imageWrapper\":\"AuctionItemsTable_imageWrapper__2jzoX\",\"dropzone\":\"AuctionItemsTable_dropzone__u_-Iu\",\"logoWrapper\":\"AuctionItemsTable_logoWrapper__3-Aoo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionSettingsForm_root__19qCR\",\"form\":\"AuctionSettingsForm_form__1Do4w\",\"button\":\"AuctionSettingsForm_button__1VWRi\",\"dropzone\":\"AuctionSettingsForm_dropzone__1Tg8S\",\"selectcontrol\":\"AuctionSettingsForm_selectcontrol__2k4XQ\",\"logoWrapper\":\"AuctionSettingsForm_logoWrapper__3ceq9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"TransferPage_root__opZNs\",\"switchContainer\":\"TransferPage_switchContainer__25zCh\",\"labelContainer\":\"TransferPage_labelContainer__2-8Ao\",\"selectSourceContainer\":\"TransferPage_selectSourceContainer__1HXi6\",\"fileUpload\":\"TransferPage_fileUpload__aMTSa\",\"selectRow\":\"TransferPage_selectRow__3T1On\",\"gridContainer\":\"TransferPage_gridContainer__1avll\",\"matchFieldsContainer\":\"TransferPage_matchFieldsContainer__16UW3\",\"textRow\":\"TransferPage_textRow__3Cdjg\",\"selectcontrol\":\"TransferPage_selectcontrol__2aLw4\",\"donationcontrol\":\"TransferPage_donationcontrol__6G2YQ\",\"submitButton\":\"TransferPage_submitButton__2e-hE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventTransferPage_root__1Z8fT\",\"switchContainer\":\"EventTransferPage_switchContainer__3KpOf\",\"labelContainer\":\"EventTransferPage_labelContainer__1HiFB\",\"selectSourceContainer\":\"EventTransferPage_selectSourceContainer__3588E\",\"fileUpload\":\"EventTransferPage_fileUpload__yNwnA\",\"selectRow\":\"EventTransferPage_selectRow__3FUJ8\",\"gridContainer\":\"EventTransferPage_gridContainer__1PF0e\",\"matchFieldsContainer\":\"EventTransferPage_matchFieldsContainer__3qz-D\",\"textRow\":\"EventTransferPage_textRow__3Jux2\",\"selectcontrol\":\"EventTransferPage_selectcontrol__3HRUR\",\"donationcontrol\":\"EventTransferPage_donationcontrol__3gg7Q\",\"submitButton\":\"EventTransferPage_submitButton__2dvmx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionItemsPage_root__1LvD6\",\"form\":\"AuctionItemsPage_form__1sEB9\",\"button\":\"AuctionItemsPage_button__nJWoG\",\"dropzone\":\"AuctionItemsPage_dropzone__rr0Ps\",\"selectcontrol\":\"AuctionItemsPage_selectcontrol__ytTNx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"FlexMonsterPage_root__2ozm1\",\"form\":\"FlexMonsterPage_form__2JMNo\",\"button\":\"FlexMonsterPage_button__21sNg\",\"dropzone\":\"FlexMonsterPage_dropzone__2LjQn\",\"selectcontrol\":\"FlexMonsterPage_selectcontrol__3mBjw\"};"],"sourceRoot":""}