{"version":3,"sources":["store/ui-slice.js","store/auth-slice.js","store/index.js","components/layout/Sidebar/MainSidebar.module.css","hooks/use-http.js","images/Sort - Acse.svg","store/pledges-slice.js","components/ParentLogin/Statement/StatementViewItem.module.css","components/Other/New Features/Features List/FeaturesList.module.css","components/Hub/Tasks/TaskActions/NumbersPopup.module.css","store/donors-slice.js","store/hub-actions.js","components/Reminders/RemindersList/RemindersList.module.css","components/Hub/Tasks/AddTask/AddTask.module.css","components/UI/Hub/TaskListTotals.module.css","store/hub-slice.js","components/UI/Inputs/Input.js","store/tenders-slice.js","components/Hub/Tasks/TaskDetails/TaskDetails.module.css","store/donors-actions.js","store/payments-slice.js","components/UI/Buttons/Buttons/ButtonM.js","components/UI/LoadingSpinners/LoadingSpinner.js","components/Hub/Tasks/TaskActions/MorePopup.module.css","components/Hub/Tasks/TaskDetails/TaskActions.module.css","components/UI/Dropdowns/CustomSelect.js","images/Close-dark.svg","components/UI/Buttons/Buttons-Outline/ButtonMOut.js","functions/getMessageBody.js","components/UI/Inputs/TextField.js","components/Filters/PaymentsFilter/FilterPayments.module.css","components/Hub/Tasks/TasksList/TaskListItem.module.css","components/UI/Others/Badge.module.css","components/UI/Others/DetailsItem.module.css","components/UI/Dropdowns/MultiSelect.module.css","components/UI/Modals/MessageBox.js","hooks/use-outside-alerter.js","store/statements-slice.js","store/campaigns-slice.js","components/Other/New Features/Features List/NewFeatures.module.css","components/Other/New Features/Feature Details/NewFeatureDetails.module.css","components/Hub/Tasks/TaskDetails/TaskQueries.module.css","components/Payments/Other/DonorsInfo.module.css","components/UI/Others/Badge.js","images/Arrow - Down small.svg","components/UI/Modals/BackdropBlur.js","components/Hub/Tasks/TasksList/Dashboard.module.css","components/UI/Dropdowns/CustomSelect.module.css","store/pledges-actions.js","store/paymentTypes-slice.js","images/Sort - Desc.svg","functions/Dates/dateFunctions.js","store/solicitors-slice.js","store/accounts-slice.js","store/shuls-slice.js","components/UI/MessageBoxs/Notification.module.css","components/layout/UserDetails.module.css","components/UI/Dropdowns/CustomSelectFreeText.module.css","components/UI/SearchBoxs/DonorSearchBox/DonorSearchItem.module.css","store/tenders-actions.js","images/Logo-sidebar.svg","components/layout/Sidebar/MainSidebar.js","components/layout/Layout.js","images/Bag 2.svg","images/Logout.svg","components/layout/UserDetails.js","images/Logo-mobile-header.svg","images/Menu.svg","components/layout/Sidebar/MobileSidebar.js","components/layout/MainHeader.js","components/UI/Checkboxs/Checkbox.js","store/filters-slice.js","components/UI/Buttons/TextButtons/TextButton.js","components/UI/Buttons/Buttons/ButtonL.js","components/UI/Buttons/TextButtons/TextButton.module.css","components/UI/Inputs/DateInput.js","store/students-slice.js","functions/Dates/formatDate.js","store/organizations-slice.js","store/locations-slice.js","store/reminders-slice.js","components/layout/MainHeader.module.css","components/ParentLogin/Statement/Statement.module.css","components/UI/Hub/DetailsItem.module.css","components/Login/LoginApplication.module.css","images/Arrow - Up 2-G.svg","components/UI/Others/DetailsItem.js","images/Plus.svg","images/Plus-g.svg","components/UI/Buttons/AddButton.js","functions/formatAddress.js","components/UI/Checkboxs/Checkbox.module.css","components/UI/Modals/LoginModal.module.css","components/UI/Modals/ModalDetails.module.css","components/Other/PageNotFound.module.css","components/UI/Hub/TasksList.module.css","components/Hub/Tasks/TaskActions/TaskActions.module.css","components/UI/MessageBoxs/SidePopup.module.css","components/Reminders/ReminderDetails/ReminderDetails.module.css","components/UI/Buttons/TextButtons/PinkTextButton.js","components/UI/Checkboxs/CheckboxS.js","hooks/use-reset.js","store/settings-slice.js","components/UI/Buttons/Buttons-Outline/ButtonLOut.js","store/reminders-actions.js","components/Reminders/ReminderNames.js","components/Reminders/ReminderTypes.js","components/UI/Modals/MessageBox.module.css","components/UI/Inputs/Input.module.css","components/Other/New Features/Features List/ImplementedFeature.module.css","components/UI/Buttons/AddButton.module.css","components/Hub/Tasks/TasksList/TaskListForm.module.css","components/Hub/Tasks/TaskActions/Note.module.css","components/layout/PageHeaders.module.css","functions/formatPhone.js","components/UI/Dropdowns/CustomSelectFreeText.js","components/Payments/AddPayment/SearchDonor.module.css","images/Hide.svg","components/Login/LoginForm.module.css","components/Other/New Features/JiraCredentials.module.css","components/UI/Inputs/TextField.module.css","components/UI/Others/ImageUpload.module.css","components/UI/Others/ModelTitleClose.module.css","components/Hub/Tasks/TaskActions/ChargeTypes.module.css","components/UI/SearchBoxs/DonorSearchBox/DonorSearchBox.module.css","components/UI/Others/Tooltip.module.css","components/UI/MessageBoxs/ChangesMessageBox.module.css","components/UI/Others/SortBy.module.css","components/UI/MessageBoxs/ChangesMessageBox.js","components/UI/Others/ListItem.js","components/UI/Buttons/TextButtons/GreenTextButton.js","images/Arrow - Right with Line.svg","images/Arrow - Right with Line-W.svg","components/UI/Modals/ModalDetails.js","images/success-check.svg","components/UI/MessageBoxs/Notification.js","components/Payments/PaymentsDropdowns/ShulsList.js","components/UI/FixedBottomBar/FixedRightBar.js","components/UI/Modals/ModalNew.js","functions/Dates/datesForDateInput.js","functions/Dates/timeZone.js","components/UI/LoadingSpinners/LoadingSpinnerMiddle.js","functions/Dates/ConvertDateForC#.js","functions/toDecimal.js","images/Message green.svg","images/Email green.svg","components/Other/SendReminder.js","images/Show.svg","components/UI/FixedBottomBar/FixedButtonsBar.js","images/error-check.svg","components/UI/Buttons/Buttons/Button.js","components/UI/LoadingSpinners/LoadingSpinnerButton.js","components/UI/Buttons/Buttons-Outline/ButtonOut.js","images/Close-light.svg","images/Arrow - Right 2.svg","components/UI/LoadingSpinners/LoadingSpinnerButtonLight.js","components/UI/Buttons/TextButtons/GrayTextButton.js","components/UI/Others/ModelTitleClose.js","images/Call.svg","images/Location.svg","images/Message.svg","images/Plus-light small.svg","images/Search.svg","images/Nav-Hub.svg","images/Nav-Hub active.svg","images/Nav-Donors.svg","images/Nav-Donors active.svg","images/Nav-Payments.svg","images/Nav-Payments active.svg","images/Nav-RecPayments.svg","images/Nav-RecPayments active.svg","images/Nav-Pledges.svg","images/Nav-Pledges active.svg","images/Nav-RecPledges.svg","images/Nav-RecPledges active.svg","images/Nav-Settings.svg","images/Nav-Settings active.svg","images/Nav-Features.svg","images/Nav-Features active.svg","images/Nav-Reminders.svg","images/Nav-Reminders active.svg","components/layout/Sidebar/SidebarNav.js","images/Nav-Statement.svg","images/Nav-Statement active.svg","images/Nav-Students.svg","images/Nav-Students active.svg","images/Nav-Registration.svg","images/Nav-Registration active.svg","components/layout/Sidebar/SidebarNavParents.js","components/UI/SearchBoxs/DonorSearchBox/DonorSearchItem.js","components/UI/LoadingSpinners/LoadingSpinnerSearchBox.js","components/UI/SearchBoxs/DonorSearchBox/DonorSearchBox.js","components/UI/Hub/CircleProgressBar.module.css","components/Other/SendReminder.module.css","components/UI/Buttons/FilterButton.module.css","components/UI/Modals/FilterModal.module.css","store/students-actions.js","components/UI/Others/Tooltip.js","components/UI/LoadingSpinners/LoadingSpinner.module.css","components/layout/Sidebar/MobileSidebar.module.css","components/UI/Buttons/Buttons/Button.module.css","components/UI/LoadingSpinners/LoadingSpinnerButton.module.css","components/UI/LoadingSpinners/LoadingSpinnerButtonLight.module.css","components/UI/Modals/ModalNew.module.css","components/Other/New Features/Add New Feature/AddNewFeature.module.css","components/Hub/Tasks/TasksList/TaskList.module.css","components/UI/Hub/PopupList.module.css","components/UI/Hub/PopupListItem.module.css","components/UI/MessageBoxs/SmallPopup.module.css","components/UI/LoadingSpinners/LoadingSpinnerSearchBox.module.css","components/UI/Dropdowns/MultiSelect.js","store/payments-actions.js","functions/addCommasToNumber.js","components/Payments/Other/DonorsInfo.js","components/UI/Buttons/Buttons-Outline/ButtonMOut.module.css","components/UI/FixedBottomBar/FixedMiddleBar.js","components/UI/Modals/FilterModal.js","images/Filter.svg","components/UI/Buttons/FilterButton.js","images/Sort.svg","components/UI/Others/SortBy.js","components/layout/PageHeaders.js","components/Filters/PaymentsFilter/FilterByDonor.js","components/Filters/PaymentsFilter/FilterByCampaign.js","components/UI/Inputs/IdsInputs.js","components/UI/MessageBoxs/SmallPopup.js","images/Logo-login-right.svg","images/Logo-login-left.svg","components/UI/Modals/LoginModal.js","components/UI/Others/Popup.js","components/Payments/AddPayment/SearchDonor.js","components/UI/Buttons/Buttons/SubmitButton.js","store/statements-actions.js","components/Hub/Tasks/AddTask/AddTask.js","store/settings-actions.js","components/UI/Modals/BackdropBlur.module.css","components/UI/MessageBoxs/ErrorMessage.module.css","components/UI/Others/Popup.module.css","components/UI/Buttons/Buttons/ButtonL.module.css","components/UI/Buttons/Buttons-Outline/ButtonLOut.module.css","components/UI/Buttons/Buttons-Outline/ButtonOut.module.css","components/UI/Buttons/Buttons/ButtonM.module.css","components/UI/Others/ListItem.module.css","components/UI/Buttons/Buttons/SubmitButton.module.css","components/UI/FixedBottomBar/FixedButtonsBar.module.css","components/UI/FixedBottomBar/FixedRightBar.module.css","components/UI/FixedBottomBar/FixedMiddleBar.module.css","components/UI/Buttons/AddButtons/AddButton.module.css","components/UI/LoadingSpinners/LoadingSpinnerMidlle.module.css","components/UI/MessageBoxs/ErrorMessage.js","components/Other/New Features/JiraCredentials.js","components/Other/New Features/Features List/ImplementedFeature.js","images/Arrow - Up Circle.svg","images/Arrow - Down Circle.svg","components/Other/New Features/Features List/Feature.js","components/Other/New Features/Features List/FeaturesList.js","components/Other/New Features/Features List/NewFeatures.js","pages/NewFeatures/NewFeatures.js","components/Login/PortalUserSignUp.js","pages/Login/SignUpPortalUser.js","components/UI/Others/ImageUpload.js","components/Other/New Features/Feature Details/NewFeatureDetails.js","pages/NewFeatures/NewFeatureDetails.js","components/Other/New Features/Add New Feature/AddNewFeature.js","pages/NewFeatures/AddNewFeature.js","images/Logo light background.svg","components/Other/PageNotFound.js","pages/PageNotFound.js","components/ParentLogin/Statement/StatementViewItem.js","components/ParentLogin/Statement/StatementView.js","images/printer.svg","components/ParentLogin/Statement/Statement.js","pages/ParentLogin/Statement/Statement.js","components/UI/Buttons/AddButtons/AddButton.js","components/UI/Hub/CircleProgressBar.js","images/Arrow - Down 2.svg","images/Arrow - Up 2.svg","components/UI/Hub/DetailsItem.js","images/more_vert.svg","components/UI/Hub/TasksList.js","components/UI/Hub/TaskListTotals.js","components/Hub/Tasks/TasksList/TaskList.js","images/check - task completed.svg","images/check - task not completed.svg","images/Notepad.svg","images/Calling.svg","images/Messages, Chat.svg","images/check-circle.svg","images/check-circle-g.svg","components/Hub/Tasks/TaskActions/Note.js","components/Hub/Tasks/TaskActions/NumbersPopup.js","components/Hub/Tasks/TaskActions/ChargeTypes.js","components/UI/Hub/PopupList.js","components/UI/Hub/PopupListItem.js","components/Hub/Tasks/TaskActions/UsersListPopup.js","components/Hub/Tasks/TaskActions/MorePopup.js","components/Hub/Tasks/TaskActions/TaskActions.js","components/Hub/Tasks/TasksList/TaskListItem.js","components/Hub/Tasks/TasksList/Dashboard.js","components/Hub/Tasks/TasksList/TaskListForm.js","pages/Hub/Tasks.js","pages/Hub/TasksApplication.js","components/Login/LoginApplication.js","pages/Login/LoginApplication.js","pages/Hub/NewTask.js","images/message-success-circle.svg","images/message-error.svg","components/UI/MessageBoxs/SidePopup.js","components/UI/MessageBoxs/SidePopupMessage.js","images/right-datails.svg","images/left - details.svg","images/Snooze.svg","images/Message - w.svg","images/Calling - w.svg","components/Hub/Tasks/TaskDetails/TaskActions.js","functions/formatFieldByFieldName.js","components/Hub/Tasks/TaskDetails/TaskQueries.js","components/Hub/Tasks/TaskDetails/TaskDetails.js","pages/Hub/TaskDetailsPage.js","components/Reminders/ReminderDetails/ReminderDetails.js","pages/Reminders/ReminderDetails.js","hooks/use-fetch-data.js","store/campaigns-actions.js","store/organizations-actions.js","store/locations-actions.js","store/solicitors-actions.js","store/paymentTypes-actions.js","store/accounts-actions.js","store/shuls-actions.js","components/Reminders/RemindersList/Reminder.js","components/Reminders/RemindersList/RemindersList.js","hooks/use-fetch-sorted-list.js","components/Filters/RemindersFilter/FilterReminders.js","components/Reminders/RemindersList/RemindersForm.js","pages/Reminders/Reminders.js","App.js","index.js"],"names":["uiSlice","createSlice","name","initialState","notification","errorMessage","sidePopup","reducers","showNotification","state","action","status","payload","title","message","showErrorMessage","showErrorMessageWithLink","link","showSidePopup","resetErrorMessage","resetNotification","uiActions","actions","calculateRemainingTime","expirationTime","currentTime","Date","getTime","authSlice","token","localStorage","getItem","isLoggedIn","portalUserLoggedIn","hubUserLoggedIn","parentLoggedIn","userName","addPermission","updatePermission","deletePermission","hub","allowChargeCreditCard","url","process","login","duration","addP","toLowerCase","updateP","deleteP","allowCredirCard","setItem","toISOString","companyName","inTrial","trialEndDate","role","hasJiraCredentials","remainingTime","setTimeout","removeItem","portalUserLogin","parentLogin","logout","authActions","store","configureStore","reducer","ui","payments","paymentsSlice","campaigns","campaignsSlice","organizations","organizationsSlice","locations","locationsSlice","donors","donorsSlice","pledges","pledgesSlice","solicitors","solicitorsSlice","paymentTypes","paymentTypesSlice","tenders","tendersSlice","accounts","accountsSlice","filters","filtersSlice","auth","shuls","shulsSlice","settings","settingsSlice","statements","statementsSlice","students","studentsSlice","hubSlice","reminders","remindersSlice","module","exports","useHttp","useState","isLoading","setIsLoading","error","setError","baseUrl","useSelector","sendRequest","useCallback","requestConfig","applyData","a","requestUrl","headers","requestHeaders","fetch","method","body","JSON","stringify","response","ok","json","errorData","Error","Message","data","loadedPledges","quantity","selectedPledge","pendingPledge","pledgesForFilter","pledgesForDonor","pledgesForDonorLoading","pledgesForPayment","recurringPledges","loadedRecurringPledges","recurringQuantity","selectedRecurringPledge","recurringIsLoading","recurringPledgesForFilter","recurringPledgesForDonor","recurringPledgesForPayment","loadPledges","length","Object","keys","pledge","find","PledgeID","showMoreRows","showLessRows","slice","loadPledgesForDonor","p","loadPledgesForPayment","resetPledgesForPayment","setPledgeForDonorLoading","setSelectedPledge","id","resetSelectedPledge","setPendingPledge","resetPendingPledge","loadRecurringPledges","showMoreRecurringRows","showLessRecurringRows","setRecurringIsLoading","setSelectedRecurringPledge","PledgeRecurringID","resetSelectedRecurringPledge","loadRecurringPledgesForDonor","loadRecurringPledgesForPayment","resetRecurringPledgesForPayment","resetPledgesLists","removeDeletedPledge","filter","TotalPledges","removeDeletedRecPledge","TotalRecurring","resetDonorsInfo","resetState","pledgesActions","loadedDonors","addresses","contacts","phoneHomes","phoneMobiles","emails","selectedDonor","donorsForFilter","filteredDonorsList","donorReminders","loadDonors","donor","d","DonorsID","setSelectedDonor","loadAddresses","loadContacts","contact","Type","loadDonorReminders","resetAddressesList","resetEmailsList","resetSelectedDonor","donorsActions","fetchDashboards","onlyAll","signal","dispatch","fetchData","all","bearer","getState","m","hubActions","setDashboardsLoading","dashboardsData","loadDashboards","dashboards","loadAllTasks","fetchReminderTypes","setReminderTypesLoading","typesData","loadReminderTypes","types","fetchReminderNames","namesData","loadReminderNames","names","adminDashboards","dashboardsLoading","loadedAllDashboards","loadedSettings","parents","parentsLoading","listForNewTask","listForNewTaskLoading","reminderTypes","reminderTypesLoading","reminderNames","users","loadTuitionTasks","tuitionTasks","tasks","setTuitionTasksLoading","tuitionTasksLoading","AdminDashboard","forEach","dashboard","da","DashboardSettingID","Tasks","Totals","CompletedTasks","NumberOfTasksForCompleted","SmsTemplates","replaceTask","dashboardId","task","t","DonorID","removeTaskFromList","ID","loadParents","setParentsLoading","loadListForNewTask","list","setListForNewTaskLoading","map","value","loadSMSTemplates","smsTemplates","templates","loadUsers","Input","forwardRef","ref","label","onChange","children","required","invalid","className","readOnly","inputClassName","props","classes","e","target","autoComplete","selectedTender","activeCCs","activeOJCs","activePledgers","activeMatbias","activeTheDonorsFunds","activeACHs","pendingCheck","loadTenders","selectedTenderID","tender","DonorTenderCreditCardId","Active","setSelectedTender","resetTenderList","resetSelectedTender","loadTendersType","activeList","type","storePendingCheck","check","resetPendingCheck","tendersActions","fetchDonorsList","amountOfRows","orderBy","desc","donorsData","fetchSingleDonorNotForList","donorId","console","log","fetchDonorsAddressesList","addressesData","fetchDonorsContactsList","contactsData","loadedPayments","selectedPayment","paymentsForFilter","paymentsForDonor","paymentsForPledge","pendingPayment","recurringPayments","loadedRecurringPayments","selectedRecurringPayment","recurringPaymentsForFilter","loadPayments","setSelectedPayment","payment","PaymentsID","resetSelectedPayment","loadPaymentsForDonor","resetPaymentsForDonor","loadPaymentsForPledge","resetPaymentsForPledge","setPendingPayment","resetPendingPayment","loadRecurringPayments","setSelectedRecurringPayment","resetSelectedRecPayment","removeDeletedPayment","TotalPayments","removeDeletedRecPayment","paymentsActions","ButtonM","loading","isDelete","onClick","disabled","delete","LoadingSpinner","loader","spinnerClassName","CustomSelect","options","selectedValue","dropDownClassName","listRef","useRef","isOptionsOpen","setIsOptionsOpen","selectedOption","setSelectedOption","useEffect","selected","findIndex","option","optionChanged","index","setSelectedThenCloseDropdown","handleKeyDown","key","preventDefault","handleListKeyDown","onBlur","event","relatedTarget","prevState","onKeyDown","select","src","Arrow","alt","show","tabIndex","ButtonMOut","getUpdateMessageBody","obj","success","getAddMessageBody","getSaveMessageBody","getDeleteMessageBody","getRestoreMessageBody","getSentMessageBody","getCompleteMessageBody","TextField","textareaRef","current","style","height","scrollHeight","rows","textarea","autoFocus","placeholder","MessageBox","backdropClassName","onClose","portalElement","document","getElementById","ReactDom","createPortal","close","useOutsideAlerter","clickedOutside","setClickedOutside","handleClickOutside","contains","addEventListener","removeEventListener","statement","loadedStatement","selectedCharge","balance","loadStatement","s","PaymentID","resetStatementsInfo","resetSelectedCharge","setBalance","statementsActions","subCampaigns","subCampaignRequired","loadCampaigns","loadSubCampaigns","Required","campaignsActions","Badge","cssClasses","badge","regular","info","warning","BackdropBlur","backdrop","fetchPledgesList","pledgesData","fetchPledgesForDonor","fetchPledgesForPayment","paymentId","fetchRecurringPledgesList","fetchRecurringPledgesForDonor","fetchPledgesForRecurringPayment","recPaymentId","fetchRecurringPledgesForRecurringPayment","fetchRecurringPledgeDetails","recPledgeId","selectedPaymentType","loadPaymentTypes","setSelectedPaymentType","paymentType","Default","resetSelectedPaymentType","paymentTypesActions","addDays","date","days","result","setDate","getDate","toLocaleString","year","month","day","addWeeks","weeks","addMonths","months","setMonth","getMonth","addYears","years","setFullYear","getFullYear","daysDiff","first","second","firstDate","secondDate","Math","round","weeksDiff","floor","monthsDiff","YearsDiff","ageDifMs","ageDate","abs","getUTCFullYear","formatDateObjectForInput","loadSolicitors","solicitorsActions","loadAccounts","accountsActions","loadShuls","shulsActions","fetchAllTendersLists","donorID","CCData","ACHData","OJCData","TheDonorsFundData","PledgerData","MatbiaData","MainSideBar","logo","SidebarNav","SidebarNavParents","Layout","UserDetails","useResetState","Popup","stopPropagation","Bag","Logout","MobileSidebar","MainHeader","userRef","showUser","setShowUser","showMenuBar","setShowMenuBar","hamburger","Array","from","Checkbox","checked","checkbox","htmlFor","initialRemindersFilter","DateFrom","undefined","DateTo","Campaigns","ReminderIds","Name","Description","Donors","Status","paymentsFilter","paymentsFilterString","paymentsHasFilter","recPaymentsFilter","recPaymentsFilterString","recPaymentsHasFilter","pledgesFilter","pledgesFilterString","pledgesHasFilter","recPledgesFilter","recPledgesFilterString","recPledgesHasFilter","donorsFilter","donorsFilterString","donorHasFilter","remindersFilter","remindersFilterString","reminderHasFilter","setPaymentsFilter","setPaymentsFilterString","resetPaymentsFilter","setPledgesFilter","setPledgesFilterString","resetPledgesFilter","setDonorsFilter","setDonorsFilterString","resetDonorsFilter","setRecPaymentsFilter","setRecPaymentsFilterString","resetRecPaymentsFilter","setRecPledgesFilter","setRecPledgesFilterString","resetRecPledgesFilter","setRemindersFilter","setRemindersFilterString","resetRemindersFilter","filtersActions","TextButton","ButtonL","DateInput","datetime","v","min","max","loadedStudents","selectedStudent","loadStudents","setSelectedStudent","StudentID","resetStudentsInfo","resetSelectedStudent","studentsActions","formatDate","yyyy","mm","dd","formatDateWithDayName","weekday","formatDateWithTime","hh","getHours","getMinutes","getSeconds","loadOrganizations","organizationsActions","locationRequired","loadLocations","locationsActions","loadedReminders","loadReminders","remindersActions","DetailsItem","open","ArrowRight","add","AddButton","border","clickAdd","changed","onUpdate","Arrowup","scroll","green","PlusG","Plus","formatAddress","address","formattedAddress","Address","trim","City","State","Zip","PinkTextButton","pink","CheckboxS","small","useDispatch","useNavigate","settingsActions","defaultAmounts","cashPayment","checkPayment","settingsLoaded","setNeededSettings","Value","ButtonLOut","fetchRemindersList","remindersData","ReminderNames","ReminderTypes","formatPhone","phone","formattedPhone","substring","CustomSelectFreeText","items","setItems","cursor","setcursor","itemRef","filteredList","item","toString","includes","itemComponent","scrollIntoView","behavior","block","inline","search","preState","keyCode","ChangesMessageBox","onCancel","Close","buttons","onNoSave","onSave","ListItem","GreenTextButton","ModalDetails","ArrowW","modal","Notification","additionalInfo","specialClasses","errorCheck","successCheck","onClickLink","ShulsList","setShuls","shulList","initialShul","shulID","shul","AppealsShulYearID","onChangeInput","React","memo","FixedRightBar","ModalNew","modelClassName","notNew","FormatDateForDateInput","CurrentDateForDateTimeInput","now","getTimezoneOffset","split","lastIndexOf","CurrentDateForDateInput","getTimeZone","ianaTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","findWindows","LoadingSpinnerMiddle","spinner","converDateForBackendWithCurrentTime","time","hour","minute","toDecimal","number","parseFloat","minimumFractionDigits","maximumFractionDigits","toDecimalWithCommas","n","addCommas","SendReminder","isPledge","isEdit","isEmail","setIsEmail","sendReminderHandler","handleResponse","header","top","Tooltip","tooltipText","email","FixedButtonsBar","Button","LoadingSpinnerButton","container","ButtonOut","LoadingSpinnerButtonLight","GrayTextButton","gray","ModelTitleClose","CloseB","donorsSrc","setDonorsSrc","paymentsSrc","setPaymentsSrc","recPayments","recPaymentsSrc","setRecPaymentsSrc","pledgesSrc","setPledgesSrc","recPledges","recPledgesSrc","setRecPledgesSrc","setting","settingsSrc","setSettingsSrc","features","featuresSrc","setFeaturesSrc","hubSrc","setHubSrc","remindersSrc","setRemindersSrc","allowHub","activeDonors","donorsActive","inActiveDonors","activePayments","paymentsActive","inActuvePayments","activeRecPayments","recPaymentsActive","inActuveRecPayments","activePledges","pledgesActive","inActivePledges","activeRecPledges","recPledgesActive","inActiveRecPledges","activeSettings","settingActive","inActiveSettings","activeFeatures","featuresActive","inActiveFeatures","activeHub","hubActive","inActiveHub","activeReminders","remindersActive","inActiveReminders","onMouseOver","onMouseOut","to","navData","isActive","active","params","useParams","statementSrc","setStatementSrc","studentsSrc","setStudentsSrc","registration","registrationSrc","setRegistrationSrc","activeStatement","statementActive","inActiveStatement","activeStudents","studentsActive","inActiveStudents","activeRegistration","registrationActive","inActiveRegistration","organization","school","DonorSearchItem","setAddress","phoneHome","setPhoneHome","phoneMobile","setPhoneMobile","LoadingSpinnerSearchBox","DonorSearchBox","inputValue","setInputValue","timerRunning","setTimerRunning","typingTimeout","changeInputHandler","clearTimeout","valueForSearch","handleStopTyping","onChangeSearchbox","onSelect","Search","onFocus","fetchStudentsList","studentsData","tooltip","bottom","MultiSelect","inputRef","toggleOption","focus","clearFilter","Dropdown","isSelected","some","onMouseDown","fetchPaymentsList","paymentsData","fetchPaymentsForDonor","fetchPaymentsForPledge","pledgeId","setSelectedPaymentToNull","fetchRecurringPaymentsList","fetchRecurringPaymentDetails","removeCommas","replaceAll","numString","numberString","indexOf","digits","reverse","i","splice","formattedNumber","join","DonorsInfo","couldChangeAddress","addressId","onChangeAddress","onChangeEmail","canRemove","hideDetails","onViewDetails","setFormattedAddress","setAddresses","showAddresses","setShowAddresses","selectedEmail","setSelectedEmail","setEmails","showEmails","setShowEmails","setFormattedPhone","addressesList","emailsList","DonorAddressId","Contact","PhoneMobile","Email","HasDonorPermission","FirstName","LastName","Phone","Location","DonorsAddressID","FixedMiddleBar","FilterModal","onClear","onApply","FilterButton","Filter","SortBy","sortRef","showSort","setShowSort","sort","Sort","columns","selectedColumn","col","c","colName","wrapper","PageHeaders","total","setTotal","setSearch","hasSearch","onOpenFilter","onChangeSort","onAdd","FilterByDonor","selectedDonors","setSelectedDonors","initialIds","remove","FilterByCampaign","setCampaigns","selectedIds","setSelectedIds","campaignsList","camaigns","campaign","CampaignID","ids","initialCampaignIds","newArray","push","IdsInput","test","SmallPopup","LoginModal","LogoLeft","img","LogoRight","SubmitButton","submit","onSubmit","underButton","popup","SearchDonor","setDonors","searchDonors","PhoneHome","onAddDonor","fetchStatementsList","statementData","AddTask","navigate","saveTask","getList","listIsLoading","useSearchParams","searchParams","campaignList","listObj","setListObj","nameInvalid","setNameInvalid","selectedObj","setSelectedObj","selectedIdInvalid","setSelectedIdInvalid","description","setDescription","reminderForSave","setReminderForSave","showSuccessMessage","setShowSuccessMessage","isHub","window","location","href","DashboardID","get","parseInt","SendEmail","IsFinancial","dCampaign","changeObjHandler","closeNewTaskHandler","handleTaskResponse","ActionSuccessful","ReminderID","ActionResultMessage","lst","Parents","parent","ParentID","Students","student","white","model","dropdowns","parentid","ShulID","checkboxes","Accept","fetchNeededSettings","settingsData","ErrorMessageBox","rel","JiraCredentials","saveCredentials","setEmail","emailInvalid","setEmailInvalid","reload","input","ImplementedFeature","feature","FeatureID","summary","Summary","details","Feature","votes","setVotes","myVotes","setMyVotes","Off","notificationsSrc","setNotificationsSrc","saveVote","notificationsLoading","turnNotificationsOnandOff","Votes","MyVotes","IsWatching","On","voteForFeature","voteUp","handleSaveResponse","notificationsOnAndOffHandler","onChangedVotes","handleNotificationResponse","voted","ArrowUp","arrow","ArrowDown","completion","CompletionDate","watch","FeaturesList","setFeatures","calculateDates","changedVotesHandler","fs","f","el","b","inProgress","dt","setHours","lastFeatureDone","compDate","NewFeatures","descRef","implementedFeatures","setImplementedFeatures","setHasJiraCredentials","showDescription","setShowDescription","setLastFeatureDone","getFeatures","featuresNotDone","featuresDone","ResolutionDate","PortalUserSignUp","setCompanyName","setUserName","password","setPassword","confirmPassword","setConfirmPassword","userNameInvalid","setUserNameInvalid","passwordInvalid","setPasswordInvalid","sendEmailLoading","setSendEmailLoading","showForgotPassword","setShowForgotPassword","signUp","property","loginData","formBody","encodedKey","encodeURIComponent","encodedValue","access_token","expires_in","msg","forgotPasswordHandler","sendEmail","SignUpPortalUser","ImageUpload","preview","setPreview","selectedFiles","objects","URL","createObjectURL","o","revokeObjectURL","files","multiple","NewFeatureDetails","getFeature","savingCommentLoading","saveComment","openTab","setOpenTab","attachmentsIsLoading","setAttachmentsIsLoading","selectedFeature","setSelectedFeature","showAddComment","setShowAddComment","newComment","setNewComment","errorSaving","setErrorSaving","uploadedImages","setUploadedImages","comments","setComments","Comments","setupComments","Content","comment","Attachments","AttachmentIds","attachment","att","Id","bytes","random","saveAttachments","form","FormData","append","image","mode","enctype","handleTabClick","tab","attachments","AddNewFeature","setSummary","summaryInvalid","setSummaryInvalid","descriptionInvalid","setDescriptionInvalid","successMessage","setSuccessMessage","closeAddFeatureHandler","saveFeature","PageNotFound","background","StatementViewItem","setValue","formattedDate","replace","amount","Balance","PaymentType","SchoolType","StudentName","StatementView","statementList","showPendingPayments","setShowPendingPayments","SortAsce","valueArrow","setValueArrow","dateArrow","setDateArrow","typeArrow","setTypeArrow","detailsArrow","setDetailsArrow","studentArrow","setStudentArrow","setStatement","statementItems","setStatementItems","BalanceForward","viewDetailsHandler","switchArrowDirection","SortDesc","sortByColumnHandler","column","newList","detailsA","detailsB","isPayment","Statement","componentRef","handlePrint","useReactToPrint","content","printer","plus","CircleProgressBar","circle","backgroundImage","percent","sticky","TasksList","actionRef","menuActions","setMenuActions","showActions","setShowActions","print","setPrint","_actions","actionHandler","onPrint","completed","more","TaskListTotals","under1K","setUnder1K","over1K","setOver1K","over10K","setover10K","totals","bars","compression","bar","TaskList","adminDashboard","footer","Note","checkSrc","setCheckSrc","checkG","note","NumbersPopup","sendMessage","saveCall","numbers","setNumbers","showTemplates","setShowTemplates","setTemplates","showSendEdit","setShowSendEdit","nums","dashboardSettingId","clickNumberHandler","phoneSpouse","TemplateID","template","hide","selectTemplateHandler","sendMessageHandler","reminderId","handleSaveCallResponse","num","onChanged","templateId","handleMessageResponse","ChargeTypes","chargeTypes","setChargeTypes","fetchChargeTypes","recurring","left","taskId","ChargeID","Amount","PopupList","PopupListItem","UsersListPopup","getUsers","assignTask","assignTaskLoading","fetchUsersList","handleGetUsersResponse","handleAssignTaskResponse","user","u","UserID","UserName","cancelco","abort","assignTaskHandler","MorePopup","showSnooze","setShowSnooze","showCustomSnooze","setShowCustomSnooze","customDueDate","moreActions","setMoreActions","showChargeTypes","setShowChargeTypes","showUsersList","setShowUsersList","snoozeTask","snoozeTaskLoading","noResponse","noResponseLoading","completeTask","completeTaskLoading","actionDisplayName","snoozeHandler","snooze","handleSnoozeResponse","handleNoResponseResponse","handleCompleteTaskResponse","workWith","onOpenDetails","TaskActions","showNote","setShowNote","showPhoneNumbers","setShowPhoneNumbers","showMessageNumbers","setShowMessasgeNumbers","showMore","setShowMore","setNote","saveNote","saveNoteLoading","handleNoteResponse","noteImg","call","PhoneSpouse","TaskListItem","showDetailsHandler","notCompleted","RowFormatText","RowFormatLastNameFirst","WorkWith","FieldsToDisplay","detail","ActionsOnDropdown","Dashboard","tasksRef","loadedAll","setTotals","opened","setOpened","amountDisplayed","setAmountDisplayed","showList","setShowList","reduce","Settings","ShowTasksByDefault","NumberOfTasksToLoad","Caption","DashboardActions","ShowHeadersOnGrid","listClasses","FieldName","line","view","load","amountToLoad","TaskListForm","calcelco","setCancelco","controller","AbortController","TasksApplication","padding","LoginApplication","companyNameRef","usernameRef","passwordRef","history","setMessage","error_description","button","NewTask","SidePopup","successImg","errorImg","messages","SidePopupMessage","closePopup","timer","handelSnoozedAndCompleted","TaskCompletedOrSnoozed","onNavigate","Calling","Snooze","formatFieldByFieldName","fieldName","val","isNaN","TaskQueries","queries","setQueries","selectedQuery","setSelectedQuery","direction","sortConfig","setSortConfig","q","Table","parse","sessionStorage","captions","caption","query","entries","_key","isNumeric","sortedTable","changeSortHandler","r","row","TaskDetails","setSearchParams","getDetails","getDetailsLoading","selectedTask","setSelectedTask","selectedTaskDetails","setSelectedTaskDetails","detailsOpened","setDetailsOpened","dashboardSettings","setDashboardSettings","showMessage","setShowMessage","setAdminDashboard","getTaskDetails","closeDetailHandler","navigateTaskHandler","forward","taskIndex","set","saveNoteHandler","TaskFields","right","ArrowLeft","TaskDetailsPage","REMINDER_STATUSES","ReminderDetails","usersList","updateReminder","reminder","setReminder","formChanged","setFormChanged","setUsers","fromRemindersList","updateReminderHandler","handleUpdateResponse","closeDetailsHandler","changeHandler","field","AddDate","fields","ForUser","useFetchData","loggedIn","campaignsData","organizationsData","locationsData","solicitorsData","paymentTypesData","accountsData","shulsData","Reminder","statusName","getStatusName","donorid","RemindersList","onLoadMore","onSortList","idArrow","setIdArrow","donorIdArrow","setDonorIdArrow","donorArrow","setDonorArrow","nameArrow","setNameArrow","descriptionArrow","setDescriptionArrow","statusArrow","setStatusArrow","TotalReminders","useFetchSortedList","fetchAction","initialOrderBy","initialDesc","setOrderBy","setDesc","customOrderBy","customDesc","sortList","newDesc","loadMore","currentRows","setUpListFilter","URLSearchParams","FilterReminders","setFilters","dateRangeInvalid","setDateRangeInvalid","searchFilterHandler","reminderids","display","COLUMNS","RemindersForm","remindersList","showFilter","setShowFilter","toggleFilterHandler","sortListHandler","Reminders","Login","lazy","Payments","NewPayment","PaymentDetail","RecurringPayments","RecurringPaymentDetail","Pledges","NewPledge","PledgeDetail","RecurringPledges","RecurringPledgeDetail","NewDonor","DonorDetail","DonorEdit","PaymentLinkPage","SignUp","ParentLogin","ParentPaymentDetails","ParentChargeDetails","AddParentPayment","Registartion","StudentDetails","App","trialExpiration","setTrialExpiration","returnComponent","setReturnComponent","endDate","utc1","UTC","utc2","Hotjar","init","logoutFromAll","useIdleTimer","timeout","onIdle","debounce","component","path","element","Fragment","ErrorMessage","secondButton","onSecondButtonClick","fallback","ReactDOM","createRoot","render"],"mappings":"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","file":"static/js/main.2714222a.chunk.js","sourcesContent":["import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst uiSlice = createSlice({\r\n name: \"ui\",\r\n initialState: { \r\n notification: null,\r\n errorMessage: null,\r\n sidePopup: null\r\n },\r\n reducers: {\r\n showNotification(state, action) {\r\n state.notification = {\r\n status: action.payload.status,\r\n title: action.payload.title,\r\n message: action.payload.message,\r\n };\r\n },\r\n showErrorMessage(state, action){\r\n \r\n state.errorMessage = {message: action.payload}\r\n },\r\n showErrorMessageWithLink(state, action){\r\n state.errorMessage = {message: action.payload.message, link: action.payload.link}\r\n },\r\n showSidePopup(state, action){\r\n //expecting to get {status: 'success', header: '', message: ''}\r\n state.sidePopup = action.payload\r\n },\r\n resetErrorMessage(state){\r\n state.errorMessage = null\r\n },\r\n resetNotification(state) {\r\n state.notification = null\r\n }\r\n }\r\n});\r\n\r\nexport const uiActions = uiSlice.actions;\r\nexport default uiSlice;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nlet logoutTimer;\r\n\r\nconst calculateRemainingTime = (expirationTime) => {\r\n const currentTime = new Date().getTime();\r\n const adjExpirationTime = new Date(expirationTime).getTime();\r\n\r\n const remainingDuration = adjExpirationTime - currentTime;\r\n\r\n return remainingDuration;\r\n};\r\n\r\n\r\nconst authSlice = createSlice({\r\n name: \"auth\",\r\n initialState: {\r\n token: localStorage.getItem('token') && localStorage.getItem('expirationTime') && calculateRemainingTime(localStorage.getItem('expirationTime')) > 3600 ? localStorage.getItem('token') : '',\r\n isLoggedIn: localStorage.getItem('token') && localStorage.getItem('expirationTime') && calculateRemainingTime(localStorage.getItem('expirationTime')) > 3600 && localStorage.getItem('role') && localStorage.getItem('role') === 'user' ? true : false,\r\n portalUserLoggedIn: localStorage.getItem('token') && localStorage.getItem('expirationTime') && calculateRemainingTime(localStorage.getItem('expirationTime')) > 3600 && localStorage.getItem('role') && localStorage.getItem('role') === 'portalUser' ? true : false,\r\n hubUserLoggedIn: localStorage.getItem('token') && localStorage.getItem('expirationTime') && calculateRemainingTime(localStorage.getItem('expirationTime')) > 3600 && localStorage.getItem('role') && localStorage.getItem('role') === 'hubUser' ? true : false,\r\n parentLoggedIn: localStorage.getItem('token') && localStorage.getItem('expirationTime') && calculateRemainingTime(localStorage.getItem('expirationTime')) > 3600 && localStorage.getItem('role') && localStorage.getItem('role') === 'parent' ? true : false,\r\n userName: localStorage.getItem('userName') ? localStorage.getItem('userName') : '',\r\n addPermission: localStorage.getItem('addPermission') ? localStorage.getItem('addPermission') : '',\r\n updatePermission: localStorage.getItem('updatePermission') ? localStorage.getItem('updatePermission') : '',\r\n deletePermission: localStorage.getItem('deletePermission') ? localStorage.getItem('deletePermission') : '',\r\n hub: localStorage.getItem('hub') && localStorage.getItem('hub') === 'true' ? true : false,\r\n allowChargeCreditCard: localStorage.getItem('allowChargeCreditCard') ? localStorage.getItem('allowChargeCreditCard') : '',\r\n url:process.env.REACT_APP_BACKEND_URL, \r\n },\r\n reducers: {\r\n login(state, action) {\r\n if (action.payload.token && action.payload.duration && action.payload.userName) {\r\n const expirationTime = new Date(\r\n new Date().getTime() + +action.payload.duration * 1000\r\n );\r\n var addP = (action.payload.addPermission.toLowerCase() === 'true') \r\n var updateP = (action.payload.updatePermission.toLowerCase() === 'true')\r\n var deleteP = (action.payload.deletePermission.toLowerCase() === 'true')\r\n var hub = (action.payload.hub.toLowerCase() === 'true')\r\n var allowCredirCard = (action.payload.allowChargeCreditCard.toLowerCase() === 'true')\r\n localStorage.setItem('token', action.payload.token)\r\n localStorage.setItem('expirationTime', expirationTime.toISOString())\r\n localStorage.setItem('addPermission', addP)\r\n localStorage.setItem('updatePermission', updateP)\r\n localStorage.setItem('deletePermission', deleteP)\r\n localStorage.setItem('hub', hub)\r\n localStorage.setItem('allowChargeCreditCard', allowCredirCard)\r\n localStorage.setItem('sessionUserName', action.payload.userName)\r\n localStorage.setItem('sessionCompanyName', action.payload.companyName)\r\n localStorage.setItem('inTrial', action.payload.inTrial)\r\n localStorage.setItem('trialEndDate', action.payload.trialEndDate)\r\n localStorage.setItem('role', action.payload.role)\r\n localStorage.setItem('hasJiraCredentials', action.payload.hasJiraCredentials)\r\n state.isLoggedIn = action.payload.role === 'user'? true : false\r\n state.parentLoggedIn = false\r\n state.portalUserLoggedIn = false\r\n state.hubUserLoggedIn = action.payload.role === 'hubUser'? true : false\r\n state.token = action.payload.token\r\n state.userName = action.payload.userName\r\n state.addPermission = addP\r\n state.updatePermission = updateP\r\n state.deletePermission = deleteP\r\n state.hub = hub\r\n state.allowChargeCreditCard = allowCredirCard\r\n const remainingTime = calculateRemainingTime(expirationTime);\r\n\r\n\r\n logoutTimer = setTimeout(() => {\r\n state.isLoggedIn = false;\r\n state.parentLoggedIn = false;\r\n state.portalUserLoggedIn = false;\r\n state.hubUserLoggedIn = false;\r\n state.token = '';\r\n state.userName = ''\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('expirationTime');\r\n localStorage.removeItem('addPermission')\r\n localStorage.removeItem('updatePermission')\r\n localStorage.removeItem('deletePermission')\r\n localStorage.removeItem('hub')\r\n localStorage.removeItem('allowChargeCreditCard')\r\n localStorage.removeItem('sessionUserName')\r\n localStorage.removeItem('sessionCompanyName')\r\n localStorage.removeItem('inTrial')\r\n localStorage.removeItem('trialEndDate')\r\n localStorage.removeItem('role')\r\n localStorage.removeItem('hasJiraCredentials')\r\n }\r\n\r\n , remainingTime);\r\n }\r\n },\r\n portalUserLogin(state, action){\r\n if (action.payload.token && action.payload.duration && action.payload.userName) {\r\n const expirationTime = new Date(\r\n new Date().getTime() + +action.payload.duration * 1000\r\n );\r\n localStorage.setItem('token', action.payload.token)\r\n localStorage.setItem('expirationTime', expirationTime.toISOString())\r\n localStorage.setItem('sessionUserName', action.payload.userName)\r\n localStorage.setItem('sessionCompanyName', action.payload.companyName)\r\n localStorage.setItem('role', 'portalUser')\r\n localStorage.setItem('hasJiraCredentials', action.payload.hasJiraCredentials)\r\n state.portalUserLoggedIn = true;\r\n state.isLoggedIn = false\r\n state.hubUserLoggedIn = false;\r\n state.parentLoggedIn = false\r\n state.token = action.payload.token\r\n state.userName = action.payload.userName\r\n \r\n const remainingTime = calculateRemainingTime(expirationTime);\r\n \r\n logoutTimer = setTimeout(() => {\r\n state.portalUserLoggedIn = false;\r\n state.token = '';\r\n state.userName = ''\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('expirationTime');\r\n localStorage.removeItem('sessionUserName')\r\n localStorage.removeItem('sessionCompanyName')\r\n localStorage.removeItem('role')\r\n localStorage.removeItem('hasJiraCredentials')\r\n }\r\n \r\n , remainingTime);\r\n } \r\n },\r\n parentLogin(state, action){\r\n if (action.payload.token && action.payload.duration && action.payload.userName) {\r\n const expirationTime = new Date(\r\n new Date().getTime() + +action.payload.duration * 1000\r\n );\r\n localStorage.setItem('token', action.payload.token)\r\n localStorage.setItem('expirationTime', expirationTime.toISOString())\r\n localStorage.setItem('sessionUserName', action.payload.userName)\r\n localStorage.setItem('sessionCompanyName', action.payload.companyName)\r\n localStorage.setItem('role', 'parent')\r\n state.parentLoggedIn = true\r\n state.isLoggedIn = false\r\n state.portalUserLoggedIn = false\r\n state.hubUserLoggedIn = false;\r\n state.token = action.payload.token\r\n state.userName = action.payload.userName\r\n const remainingTime = calculateRemainingTime(expirationTime);\r\n logoutTimer = setTimeout(() => {\r\n state.parentLoggedIn = false;\r\n state.token = '';\r\n state.userName = ''\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('expirationTime');\r\n localStorage.removeItem('sessionUserName')\r\n localStorage.removeItem('sessionCompanyName')\r\n localStorage.removeItem('role')\r\n }\r\n , remainingTime);\r\n }\r\n \r\n },\r\n logout(state) {\r\n state.isLoggedIn = false;\r\n state.parentLoggedIn = false;\r\n state.portalUserLoggedIn = false;\r\n state.token = '';\r\n state.userName = ''\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('expirationTime');\r\n localStorage.removeItem('addPermission')\r\n localStorage.removeItem('updatePermission')\r\n localStorage.removeItem('deletePermission')\r\n localStorage.removeItem('hub')\r\n localStorage.removeItem('allowChargeCreditCard')\r\n localStorage.removeItem('sessionUserName')\r\n localStorage.removeItem('sessionCompanyName')\r\n localStorage.removeItem('inTrial')\r\n localStorage.removeItem('trialEndDate')\r\n localStorage.removeItem('role')\r\n localStorage.removeItem('hasJiraCredentials')\r\n },\r\n },\r\n},\r\n);\r\n\r\nexport const authActions = authSlice.actions;\r\n\r\nexport default authSlice;\r\n","import { configureStore } from \"@reduxjs/toolkit\";\r\n\r\nimport campaignsSlice from \"./campaigns-slice\";\r\nimport donorsSlice from \"./donors-slice\";\r\nimport organizationsSlice from \"./organizations-slice\";\r\nimport paymentsSlice from './payments-slice'\r\nimport solicitorsSlice from './solicitors-slice.js'\r\nimport paymentTypesSlice from './paymentTypes-slice'\r\nimport uiSlice from './ui-slice'\r\nimport tendersSlice from './tenders-slice'\r\nimport accountsSlice from './accounts-slice'\r\nimport filtersSlice from \"./filters-slice\";\r\nimport authSlice from \"./auth-slice\";\r\nimport shulsSlice from \"./shuls-slice\";\r\nimport pledgesSlice from \"./pledges-slice\";\r\nimport settingsSlice from \"./settings-slice\";\r\nimport statementsSlice from \"./statements-slice\";\r\nimport studentsSlice from \"./students-slice\";\r\nimport hubSlice from \"./hub-slice.js\";\r\nimport locationsSlice from \"./locations-slice.js\";\r\nimport remindersSlice from \"./reminders-slice.js\";\r\n\r\nconst store = configureStore({\r\n reducer: {\r\n ui: uiSlice.reducer,\r\n payments: paymentsSlice.reducer,\r\n campaigns: campaignsSlice.reducer,\r\n organizations: organizationsSlice.reducer,\r\n locations: locationsSlice.reducer,\r\n donors: donorsSlice.reducer,\r\n pledges: pledgesSlice.reducer,\r\n solicitors: solicitorsSlice.reducer,\r\n paymentTypes: paymentTypesSlice.reducer,\r\n tenders: tendersSlice.reducer,\r\n accounts: accountsSlice.reducer,\r\n filters: filtersSlice.reducer,\r\n auth: authSlice.reducer,\r\n shuls: shulsSlice.reducer,\r\n settings: settingsSlice.reducer,\r\n statements: statementsSlice.reducer,\r\n students: studentsSlice.reducer,\r\n hub: hubSlice.reducer,\r\n reminders: remindersSlice.reducer\r\n //when you add a slice make sure to reset the state in useResetState hook\r\n }\r\n});\r\n\r\n\r\nexport default store;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main-sidebar\":\"MainSidebar_main-sidebar__RoQls\",\"main-sidebar__logo\":\"MainSidebar_main-sidebar__logo__3kky2\",\"main-sidebar__items\":\"MainSidebar_main-sidebar__items__-E2Fq\",\"main-sidebar__item\":\"MainSidebar_main-sidebar__item__36mLC\",\"main-sidebar__nav\":\"MainSidebar_main-sidebar__nav__1sSiU\",\"active\":\"MainSidebar_active__24N9f\"};","import { useCallback, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst useHttp = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(null);\r\n\r\n const baseUrl = useSelector((state) => state.auth.url);\r\n\r\n const sendRequest = useCallback(async (requestConfig, applyData) => {\r\n setIsLoading(true);\r\n setError(null);\r\n\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n setError(\"Authentication token is missing.\");\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n const requestUrl = `${baseUrl}${requestConfig.url}`;\r\n const headers = requestConfig.headers || {};\r\n const requestHeaders = { ...headers, 'Authorization': `Bearer ${token}` };\r\n\r\n try {\r\n const response = await fetch(requestUrl, {\r\n method: requestConfig.method || 'GET',\r\n headers: requestHeaders,\r\n body: requestConfig.body ? JSON.stringify(requestConfig.body) : null\r\n });\r\n\r\n if (!response.ok) {\r\n const errorData = await response.json();\r\n throw new Error(errorData.Message || \"Something went wrong!\");\r\n }\r\n\r\n const data = await response.json();\r\n applyData(data);\r\n } catch (err) {\r\n setError(err.message || \"Something went wrong!\");\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n }, [baseUrl]);\r\n\r\n return { isLoading, error, sendRequest };\r\n};\r\n\r\nexport default useHttp;\r\n","export default __webpack_public_path__ + \"static/media/Sort - Acse.1e005648.svg\";","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n pledges: [],\r\n loadedPledges: false,\r\n quantity: 50,\r\n selectedPledge: {},\r\n isLoading: false,\r\n pendingPledge: null,\r\n pledgesForFilter: [],\r\n pledgesForDonor: [],\r\n pledgesForDonorLoading: false,\r\n pledgesForPayment: [],\r\n recurringPledges: [],\r\n loadedRecurringPledges: false,\r\n recurringQuantity: 50,\r\n selectedRecurringPledge: {},\r\n recurringIsLoading: false,\r\n recurringPledgesForFilter: [],\r\n recurringPledgesForDonor: [],\r\n recurringPledgesForPayment: [],\r\n}\r\n\r\nconst pledgesSlice = createSlice({\r\n name: \"pledges\",\r\n initialState,\r\n reducers: {\r\n loadPledges(state, action) {\r\n state.pledges = action.payload.pledges;\r\n state.loadedPledges = true;\r\n state.quantity = action.payload.pledges.length\r\n if(Object.keys(state.selectedPledge).length !== 0){\r\n var pledge = action.payload.pledges.find(pledge => pledge.PledgeID === state.selectedPledge.PledgeID)\r\n if(pledge){\r\n state.selectedPledge = pledge\r\n }\r\n }\r\n },\r\n showMoreRows(state) {\r\n state.quantity = state.quantity + 50\r\n },\r\n showLessRows(state) {\r\n state.pledges = state.pledges.slice(0, state.quantity - 51)\r\n state.quantity = state.quantity - 50\r\n },\r\n loadPledgesForDonor(state, action){\r\n state.pledgesForDonor = action.payload.pledges\r\n if(Object.keys(state.selectedPledge).length > 0){\r\n const pledge = action.payload.pledges.find(p => p.PledgeID === state.selectedPledge.PledgeID)\r\n if(pledge){\r\n state.selectedPledge = pledge\r\n }\r\n }\r\n },\r\n loadPledgesForPayment(state, action){\r\n state.pledgesForPayment = action.payload.pledges\r\n },\r\n resetPledgesForPayment(state){\r\n state.pledgesForPayment = []\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n setPledgeForDonorLoading(state, action){\r\n state.pledgesForDonorLoading = action.payload\r\n },\r\n setSelectedPledge(state, action) {\r\n if (action.payload) {\r\n const id = action.payload\r\n var selectedPledge = state.pledges.find(pledge => pledge.PledgeID === id)\r\n if (selectedPledge) {\r\n state.selectedPledge = selectedPledge\r\n }\r\n else if (typeof action.payload === 'object') {\r\n state.selectedPledge = action.payload\r\n }\r\n else{\r\n selectedPledge = state.pledgesForDonor.find(pledge => pledge.PledgeID === id) \r\n if (selectedPledge) {\r\n state.selectedPledge = selectedPledge\r\n }\r\n }\r\n }\r\n },\r\n resetSelectedPledge(state) {\r\n state.selectedPledge = {}\r\n },\r\n setPendingPledge(state, action) {\r\n state.pendingPledge = action.payload\r\n },\r\n resetPendingPledge(state) {\r\n state.pendingPledge = null\r\n },\r\n loadRecurringPledges(state, action){\r\n state.recurringPledges = action.payload.pledges\r\n state.loadedRecurringPledges = true\r\n state.recurringQuantity = action.payload.pledges.length\r\n },\r\n showMoreRecurringRows(state) {\r\n state.recurringQuantity = state.recurringQuantity + 50\r\n },\r\n showLessRecurringRows(state) {\r\n state.recurringPledges = state.pledges.slice(0, state.recurringQuantity - 51)\r\n state.recurringQuantity = state.recurringQuantity - 50\r\n },\r\n setRecurringIsLoading(state, action) {\r\n state.recurringIsLoading = action.payload\r\n },\r\n setSelectedRecurringPledge(state, action){\r\n if (action.payload) {\r\n const id = action.payload\r\n var selectedPledge = state.recurringPledges.find(pledge => pledge.PledgeRecurringID === id)\r\n if (selectedPledge) {\r\n state.selectedRecurringPledge = selectedPledge\r\n }\r\n else if (typeof action.payload === 'object') {\r\n state.selectedRecurringPledge = action.payload\r\n }\r\n else{\r\n selectedPledge = state.recurringPledgesForDonor.find(pledge => pledge.PledgeRecurringID === id) \r\n if (selectedPledge) {\r\n state.selectedRecurringPledge = selectedPledge\r\n }\r\n }\r\n }\r\n },\r\n resetSelectedRecurringPledge(state) {\r\n state.selectedRecurringPledge = {}\r\n },\r\n\r\n loadRecurringPledgesForDonor(state, action){\r\n state.recurringPledgesForDonor = action.payload.pledges\r\n },\r\n loadRecurringPledgesForPayment(state, action){\r\n state.recurringPledgesForPayment = action.payload.pledges\r\n },\r\n resetRecurringPledgesForPayment(state){\r\n state.recurringPledgesForPayment = []\r\n },\r\n resetPledgesLists(state){\r\n state.pledgesForDonor = []\r\n state.pledgesForPayment = []\r\n state.recurringPledgesForDonor = []\r\n state.recurringPledgesForPayment = []\r\n },\r\n removeDeletedPledge(state, action){\r\n state.pledges = state.pledges.filter(p => p.PledgeID !== action.payload)\r\n if(state.pledges.length > 0){\r\n state.pledges[0].TotalPledges -= 1\r\n }\r\n },\r\n removeDeletedRecPledge(state, action){\r\n state.recurringPledges = state.recurringPledges.filter(p => p.PledgeRecurringID !== action.payload)\r\n if(state.recurringPledges.length > 0){\r\n state.recurringPledges[0].TotalRecurring -= 1\r\n }\r\n },\r\n resetDonorsInfo(state) {\r\n state.recurringPledgesForDonor = []\r\n state.pledgesForDonor = []\r\n },\r\n resetState: () => initialState,\r\n },\r\n});\r\n\r\nexport const pledgesActions = pledgesSlice.actions;\r\n\r\nexport default pledgesSlice;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"statement-view__wrapper\":\"StatementViewItem_statement-view__wrapper__3aFx8\",\"successful-payments\":\"StatementViewItem_successful-payments__3eP_X\",\"statement-view__header\":\"StatementViewItem_statement-view__header__18Q4V\",\"statement-view__list\":\"StatementViewItem_statement-view__list__2tE9V\",\"view-item\":\"StatementViewItem_view-item__28ZDD\",\"prev-balance-item\":\"StatementViewItem_prev-balance-item__15z4F\",\"running-balance-item\":\"StatementViewItem_running-balance-item__3kSa6\",\"value\":\"StatementViewItem_value__2xhiT\",\"balance\":\"StatementViewItem_balance__DsCbb\",\"date\":\"StatementViewItem_date__3fWzT\",\"type\":\"StatementViewItem_type__KnDhw\",\"prev-balance\":\"StatementViewItem_prev-balance__3_aQD\",\"student\":\"StatementViewItem_student__369Pm\",\"details\":\"StatementViewItem_details__1YFd_\",\"view-details\":\"StatementViewItem_view-details__HpibL\",\"spinner\":\"StatementViewItem_spinner__PqTRm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"features-list\":\"FeaturesList_features-list__36AYV\",\"features-list__header\":\"FeaturesList_features-list__header__1kh5I\",\"features\":\"FeaturesList_features__S0Z_p\",\"id\":\"FeaturesList_id__ys4Gr\",\"title\":\"FeaturesList_title__3ZA1H\",\"voted\":\"FeaturesList_voted__1lcQN\",\"my-votes\":\"FeaturesList_my-votes__2q_1q\",\"feature\":\"FeaturesList_feature__4Ss-n\",\"completion\":\"FeaturesList_completion__2Z6Su\",\"details\":\"FeaturesList_details__XJXzK\",\"arrow\":\"FeaturesList_arrow__1unKn\",\"status-container\":\"FeaturesList_status-container__25hvz\",\"status\":\"FeaturesList_status__w60E6\",\"watch\":\"FeaturesList_watch__1Cp1m\",\"loading\":\"FeaturesList_loading__2PHLr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"NumbersPopup_popup__3a8Xz\",\"number-item\":\"NumbersPopup_number-item__1r6V8\",\"second\":\"NumbersPopup_second__F4t_p\",\"name\":\"NumbersPopup_name__1FVwJ\",\"number\":\"NumbersPopup_number__1gPAk\",\"templates-popup\":\"NumbersPopup_templates-popup__2MJoK\",\"send-popup\":\"NumbersPopup_send-popup__176tb\",\"hide\":\"NumbersPopup_hide__4-D8k\",\"loading\":\"NumbersPopup_loading__2Kutz\"};","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n donors: [],\r\n loadedDonors: false,\r\n quantity: 50,\r\n addresses: [],\r\n contacts: [],\r\n phoneHomes: [],\r\n phoneMobiles: [],\r\n emails: [],\r\n selectedDonor: {},\r\n isLoading: false,\r\n donorsForFilter: [],\r\n filteredDonorsList: [],\r\n donorReminders: []\r\n}\r\n\r\nconst donorsSlice = createSlice({\r\n name: \"donors\",\r\n initialState,\r\n reducers: {\r\n loadDonors(state, action) {\r\n state.loadedDonors = true\r\n state.donors = action.payload.donors;\r\n state.quantity = action.payload.donors.length\r\n if(state.selectedDonor && Object.keys(state.selectedDonor).length > 0){ //if reloaded the page after adding payment etc. it should also update the selected donor\r\n let donor = action.payload.donors.find(d => d.DonorsID === state.selectedDonor.DonorsID)\r\n if(donor){\r\n state.selectedDonor = donor\r\n }\r\n }\r\n },\r\n showLessRows(state){\r\n state.donors = state.donors.slice(0, state.quantity - 51)\r\n state.quantity = state.quantity - 50\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n setSelectedDonor(state, action) {\r\n if (action.payload) {\r\n const id = action.payload\r\n const selectedDonor = state.donors.find(donor => donor[Object.keys(donor)[0]] === id)\r\n if (selectedDonor) {\r\n state.selectedDonor = selectedDonor\r\n }\r\n else if(typeof action.payload === 'object'){\r\n state.selectedDonor = action.payload\r\n }\r\n }\r\n },\r\n loadAddresses(state, action) {\r\n state.addresses = action.payload.addresses;\r\n\r\n },\r\n loadContacts(state, action) {\r\n state.contacts = action.payload.contacts\r\n const emails = action.payload.contacts.filter(contact => contact.Type === 3)\r\n if(emails) state.emails = emails\r\n\r\n const phoneHomes = action.payload.contacts.filter(contact => contact.Type === 0)\r\n if(phoneHomes) state.phoneHomes = phoneHomes\r\n\r\n const phoneMobiles = action.payload.contacts.filter(contact => contact.Type === 2)\r\n if(phoneMobiles) state.phoneMobiles = phoneMobiles\r\n },\r\n loadDonorReminders(state, action){\r\n state.donorReminders = action.payload\r\n },\r\n resetAddressesList(state) {\r\n state.addresses = []\r\n },\r\n resetEmailsList(state) {\r\n state.emails = []\r\n },\r\n resetSelectedDonor(state) {\r\n state.selectedDonor = {}\r\n state.donorReminders = []\r\n },\r\n resetDonorsInfo(state) {\r\n state.selectedDonor = {}\r\n state.addresses = []\r\n state.contacts = []\r\n state.emails = []\r\n state.phoneHomes = []\r\n state.phoneMobiles = []\r\n state.donorReminders = []\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const donorsActions = donorsSlice.actions;\r\n\r\nexport default donorsSlice;\r\n","import { hubActions } from './hub-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\n\r\nexport const fetchDashboards = (onlyAll = false, signal) => {\r\n return async (dispatch) => {\r\n const fetchData = async (all) => {\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + `api/${all ? 'allTasks' : 'tasks'}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n ,signal: signal\r\n\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{\r\n const m = await response.json()\r\n let message = m.Message\r\n if(!m || m === '')\r\n message = 'Could not fetch dashboards'\r\n throw new Error(message)\r\n }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n let dashboardsData;\r\n if(!onlyAll){\r\n dispatch(hubActions.setDashboardsLoading(true))\r\n dashboardsData = await fetchData()\r\n dispatch(hubActions.loadDashboards({ dashboards: dashboardsData || [] }))\r\n dispatch(hubActions.setDashboardsLoading(false))\r\n }\r\n dashboardsData = await fetchData(true)\r\n dispatch(hubActions.loadAllTasks({ dashboards: dashboardsData || [] }))\r\n } catch (error) {\r\n if(error.name && error.name === 'AbortError'){\r\n\r\n }\r\n else{\r\n dispatch(uiActions.showNotification({status: 'error', message: error.message}))\r\n }\r\n }\r\n\r\n finally {\r\n dispatch(hubActions.setDashboardsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\n\r\nexport const fetchReminderTypes = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(hubActions.setReminderTypesLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/reminderTypes', {\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch reminder types list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const typesData = await fetchData()\r\n dispatch(hubActions.loadReminderTypes({ types: typesData || [] }))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(hubActions.setReminderTypesLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\nexport const fetchReminderNames = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/reminderNames', {\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch reminder names list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const namesData = await fetchData()\r\n dispatch(hubActions.loadReminderNames({ names: namesData || [] }))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\n\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reminder-wrapper\":\"RemindersList_reminder-wrapper__ten7R\",\"reminder-list__header\":\"RemindersList_reminder-list__header__R-U01\",\"reminders-list\":\"RemindersList_reminders-list__27t2U\",\"id\":\"RemindersList_id__KyYrI\",\"donorid\":\"RemindersList_donorid__21ZnQ\",\"donor\":\"RemindersList_donor__V4ONE\",\"name\":\"RemindersList_name__1GhOt\",\"type\":\"RemindersList_type__2OIVM\",\"date\":\"RemindersList_date__3Hyk2\",\"status\":\"RemindersList_status__2zdOJ\",\"details\":\"RemindersList_details__hIEMU\",\"btn-load-more\":\"RemindersList_btn-load-more__1Dgha\",\"mobile-status\":\"RemindersList_mobile-status__3CXCL\",\"reminder\":\"RemindersList_reminder__RJAeq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"backdrop\":\"AddTask_backdrop__3fpdg\",\"model\":\"AddTask_model__18tlL\",\"white\":\"AddTask_white__1uwLe\",\"date\":\"AddTask_date__3YhdZ\",\"dropdowns\":\"AddTask_dropdowns__3K4yY\",\"buttons\":\"AddTask_buttons__POwrP\",\"name\":\"AddTask_name__3j3Er\",\"type\":\"AddTask_type__muIRH\",\"parent\":\"AddTask_parent__2umH9\",\"parent-wrapper\":\"AddTask_parent-wrapper__rVNlD\",\"parent-label\":\"AddTask_parent-label__a2QGp\",\"connected-parent\":\"AddTask_connected-parent__16F6Q\",\"parentid\":\"AddTask_parentid__1VrQR\",\"parent-name\":\"AddTask_parent-name__3B69d\",\"remove-parent\":\"AddTask_remove-parent__2Nq2g\",\"invalid\":\"AddTask_invalid__2UdbO\",\"checkboxes-shul\":\"AddTask_checkboxes-shul__2lJQW\",\"checkboxes\":\"AddTask_checkboxes__1arGc\",\"campaign\":\"AddTask_campaign__1estZ\",\"shul\":\"AddTask_shul__24Z39\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TaskListTotals_container__3T7oo\",\"totals\":\"TaskListTotals_totals__2tmp0\",\"name\":\"TaskListTotals_name__oHOka\",\"value\":\"TaskListTotals_value__1cArI\",\"bars\":\"TaskListTotals_bars__2jSYq\",\"bar-total\":\"TaskListTotals_bar-total__2Vts8\",\"total-numbers\":\"TaskListTotals_total-numbers__65csl\",\"amount\":\"TaskListTotals_amount__34-YN\",\"compression\":\"TaskListTotals_compression__3W9d_\",\"bar\":\"TaskListTotals_bar__2Na_P\"};","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n dashboards: [],\r\n adminDashboards: [],\r\n dashboardsLoading: false,\r\n loadedAllDashboards: 0,\r\n loadedSettings: false,\r\n parents: [],\r\n parentsLoading: false,\r\n listForNewTask: null, //parents, donors, students, etc.\r\n listForNewTaskLoading: false,\r\n reminderTypes: null,\r\n reminderTypesLoading: false,\r\n reminderNames: null,\r\n users: []\r\n}\r\nconst hubSlice = createSlice({\r\n name: \"hub\",\r\n initialState,\r\n reducers: {\r\n loadTuitionTasks(state, action) {\r\n state.tuitionTasks = action.payload.tasks;\r\n },\r\n setTuitionTasksLoading(state, action){\r\n state.tuitionTasksLoading = action.payload\r\n },\r\n loadDashboards(state, action){\r\n // if(state.dashboards.length > 0){ //all tasks got loaded first\r\n // let da = action.payload.dashboards\r\n // state.dashboards.forEach(d => {\r\n // const dashboard = da.find(da => da.DashboardSettingID === d.DashboardSettingID)\r\n // if(dashboard){\r\n // dashboard.Tasks = d.Tasks\r\n // dashboard.Totals = d.Totals\r\n // dashboard.CompletedTasks = d.CompletedTasks\r\n // }\r\n // });\r\n // state.dashboards = da\r\n // state.loadedAllDashboards += 1\r\n // }\r\n //else{\r\n state.dashboards = action.payload.dashboards.filter(d => !d.AdminDashboard)\r\n state.adminDashboards = action.payload.dashboards.filter(d => d.AdminDashboard)\r\n //}\r\n state.loadedSettings = true\r\n },\r\n loadAllTasks(state, action){\r\n //replace tasks in dashboards and totals\r\n //if(state.dashboards.length > 0){\r\n action.payload.dashboards.forEach(d => {\r\n let dashboard = state.dashboards.find(da => da.DashboardSettingID === d.DashboardSettingID)\r\n if(!dashboard){\r\n dashboard = state.adminDashboards.find(da => da.DashboardSettingID === d.DashboardSettingID) \r\n }\r\n if(dashboard){\r\n dashboard.Tasks = d.Tasks\r\n dashboard.Totals = d.Totals\r\n dashboard.CompletedTasks = d.CompletedTasks\r\n dashboard.NumberOfTasksForCompleted = d.NumberOfTasksForCompleted\r\n dashboard.SmsTemplates = d.SmsTemplates\r\n }\r\n });\r\n state.loadedAllDashboards += 1\r\n // }\r\n // else{ //all tasks got loaded first\r\n // state.dashboards = action.payload.dashboards\r\n // } \r\n },\r\n replaceTask(state, action){\r\n //payload should be {dashboardId: 0, task: {}}\r\n let dashboard = state.dashboards.find(d => d.DashboardSettingID === action.payload.dashboardId)\r\n if(dashboard){\r\n let task = dashboard.Tasks.find(t => t.DonorID === action.payload.task.DonorID)\r\n if(task){\r\n task = action.payload.task\r\n }\r\n }\r\n },\r\n removeTaskFromList(state, action){\r\n //payload should be {dashboardId: 0, ID: 0}\r\n let dashboard = state.dashboards.find(d => d.DashboardSettingID === action.payload.dashboardId)\r\n if(dashboard){\r\n dashboard.Tasks = dashboard.Tasks.filter(t => t.ID !== action.payload.ID)\r\n }\r\n },\r\n setDashboardsLoading(state, action){\r\n state.dashboardsLoading = action.payload\r\n },\r\n loadParents(state, action) {\r\n state.parents = action.payload.parents;\r\n },\r\n setParentsLoading(state, action){\r\n state.parentsLoading = action.payload\r\n },\r\n loadListForNewTask(state, action) {\r\n state.listForNewTask = action.payload.list;\r\n },\r\n setListForNewTaskLoading(state, action){\r\n state.listForNewTaskLoading = action.payload\r\n },\r\n loadReminderTypes(state, action) {\r\n state.reminderTypes = action.payload.types.map(t => {\r\n return {name: t, value: t}\r\n });\r\n },\r\n loadReminderNames(state, action){\r\n state.reminderNames = action.payload.names.map(t => {\r\n return {name: t, value: t}\r\n });\r\n },\r\n setReminderTypesLoading(state, action){\r\n state.reminderTypesLoading = action.payload\r\n },\r\n loadSMSTemplates(state, action){\r\n state.smsTemplates = action.payload.templates\r\n },\r\n loadUsers(state, action){\r\n state.users = action.payload\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const hubActions = hubSlice.actions;\r\n\r\nexport default hubSlice;\r\n","\r\nimport { forwardRef } from 'react'\r\nimport classes from './Input.module.css'\r\n\r\nconst Input = forwardRef(({label, value, onChange, children, required, invalid, className, readOnly, inputClassName, ...props }, ref) => {\r\n\r\n const changeInputHandler = (e) => {\r\n onChange(e.target.value)\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {children}\r\n
\r\n {invalid &&

{invalid}

}\r\n
\r\n )\r\n})\r\n\r\nexport default Input","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n tenders: [],\r\n selectedTender: {},\r\n isLoading: false,\r\n activeCCs: [],\r\n activeOJCs: [],\r\n activePledgers: [],\r\n activeMatbias: [],\r\n activeTheDonorsFunds: [],\r\n activeACHs: [],\r\n pendingCheck: {},\r\n}\r\n\r\nconst tendersSlice = createSlice({\r\n name: \"tenders\",\r\n initialState,\r\n reducers: {\r\n loadTenders(state, action) {\r\n state.tenders = action.payload.tenders;\r\n if (action.payload.selectedTenderID) {\r\n var selectedTender = state.tenders.find(tender => tender[Object.keys(tender)[0]] === action.payload.selectedTenderID)\r\n }\r\n if (selectedTender) {\r\n state.selectedTender = selectedTender\r\n }\r\n \r\n else if (action.payload.tenders.length > 0 && action.payload.tenders[0].DonorTenderCreditCardId) {\r\n selectedTender = state.tenders.find(tender => tender.Active === true)\r\n if (selectedTender) {\r\n state.selectedTender = selectedTender\r\n }\r\n else {\r\n state.selectedTender = {}\r\n }\r\n }\r\n else{\r\n if (state.tenders.length !== 0) {\r\n state.selectedTender = state.tenders[0]\r\n }\r\n else {\r\n state.selectedTender = {}\r\n }\r\n }\r\n\r\n },\r\n setSelectedTender(state, action) {\r\n const id = action.payload\r\n const selectedTender = state.tenders.find(tender => tender[Object.keys(tender)[0]] === id)\r\n if (selectedTender) {\r\n state.selectedTender = selectedTender\r\n }\r\n },\r\n resetTenderList(state) {\r\n state.selectedTender = {}\r\n state.tenders = []\r\n state.activeCCs = []\r\n state.activeACHs = []\r\n state.activeOJCs = []\r\n state.activeTheDonorsFunds = []\r\n state.activePledgers = []\r\n state.activeMatbias = []\r\n },\r\n resetSelectedTender(state) {\r\n state.selectedTender = {}\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n loadTendersType(state, action){\r\n if(action.payload.tenders.length !== 0){\r\n const activeList = action.payload.tenders.filter(tender => tender.Active === true)\r\n if(activeList){\r\n switch(action.payload.type){\r\n case 'CC':\r\n state.activeCCs = activeList\r\n break;\r\n case 'ACH':\r\n state.activeACHs = activeList\r\n break;\r\n case 'OJC':\r\n state.activeOJCs = activeList\r\n break;\r\n case 'TheDonorsFund':\r\n state.activeTheDonorsFunds = activeList\r\n break;\r\n case 'Pledger':\r\n state.activePledgers = activeList\r\n break;\r\n case 'Matbia':\r\n state.activeMatbias = activeList\r\n break;\r\n default:\r\n return;\r\n }\r\n }\r\n }\r\n },\r\n storePendingCheck(state, action){\r\n state.pendingCheck = action.payload.check\r\n },\r\n resetPendingCheck(state){\r\n state.pendingCheck = {}\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const tendersActions = tendersSlice.actions;\r\n\r\nexport default tendersSlice;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"backdrop\":\"TaskDetails_backdrop__1Rphz\",\"wrapper\":\"TaskDetails_wrapper__2szeE\",\"detail\":\"TaskDetails_detail__sZVhA\",\"form\":\"TaskDetails_form__30yoL\",\"header\":\"TaskDetails_header__3W7he\",\"spinner\":\"TaskDetails_spinner__1ESWs\",\"save-note\":\"TaskDetails_save-note__3iNSl\",\"details\":\"TaskDetails_details__iSVeX\",\"task-fields\":\"TaskDetails_task-fields__2AZX_\",\"task-field\":\"TaskDetails_task-field__3GXCf\",\"field-key\":\"TaskDetails_field-key__Dc2Kr\",\"field-value\":\"TaskDetails_field-value__3Pmz6\",\"task-queries\":\"TaskDetails_task-queries__XGwxy\",\"right\":\"TaskDetails_right__XVKAp\",\"left\":\"TaskDetails_left__2u35l\",\"line\":\"TaskDetails_line__1_5oQ\"};","import { authActions } from './auth-slice';\r\nimport { donorsActions } from './donors-slice'\r\nimport store from './index' \r\nimport { uiActions } from './ui-slice';\r\n\r\nexport const fetchDonorsList = (amountOfRows, orderBy = 12, desc = false, filter = '') => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(donorsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n let url = store.getState().auth.url\r\n url = url + 'api/donors'\r\n url = url + `?rows=${amountOfRows >=50 ? amountOfRows : '50'}&orderBy=${orderBy}&desc=${desc}${filter}`\r\n \r\n const response = await fetch(url, {\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch donors list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const donorsData = await fetchData()\r\n dispatch(donorsActions.loadDonors({ donors: donorsData || [] }))\r\n } catch (error) {\r\n\r\n }\r\n finally {\r\n dispatch(donorsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\nexport const fetchSingleDonorNotForList = (donorId) => { //example: for payment details - the donor doesn't have to be in list\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(donorsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(`${url}api/donors?rows=1&orderBy=0&desc=true&donorId=${donorId}`, {\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch donors details.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const donorsData = await fetchData()\r\n console.log(donorsData)\r\n dispatch(donorsActions.setSelectedDonor(donorsData && donorsData.length > 0 ? donorsData[0] : {}))\r\n } catch (error) {\r\n uiActions.showErrorMessage(error.message)\r\n }\r\n finally {\r\n dispatch(donorsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\nexport const fetchDonorsAddressesList = (donorId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(donorsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(`${url}api/donorsaddresses/${donorId}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch donors addresses list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const addressesData = await fetchData()\r\n dispatch(donorsActions.loadAddresses({ addresses: addressesData || [] }))\r\n } catch (error) {\r\n uiActions.showErrorMessage(error.message)\r\n }\r\n finally {\r\n dispatch(donorsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\nexport const fetchDonorsContactsList = (donorId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(donorsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(`${url }api/donorscontacts/${donorId}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch donors contacts list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const contactsData = await fetchData()\r\n dispatch(donorsActions.loadContacts({ contacts: contactsData || [] }))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(donorsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\nexport const setDonorsIsLoading = (value) => {\r\n return (dispatch) => {\r\n dispatch(donorsActions.setIsLoading(value))\r\n }\r\n}\r\n\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n payments: [],\r\n loadedPayments: false,\r\n quantity: 50,\r\n selectedPayment: {},\r\n isLoading: false,\r\n paymentsForFilter: [],\r\n paymentsForDonor: [],\r\n paymentsForPledge: [],\r\n pendingPayment: null,\r\n recurringPayments: [],\r\n loadedRecurringPayments: false,\r\n recurringQuantity: 50,\r\n selectedRecurringPayment: {},\r\n recurringIsLoading: false,\r\n recurringPaymentsForFilter: [],\r\n}\r\n\r\nconst paymentsSlice = createSlice({\r\n name: \"payments\",\r\n initialState,\r\n reducers: {\r\n loadPayments(state, action) {\r\n state.payments = action.payload.payments;\r\n state.quantity = action.payload.payments.length\r\n state.loadedPayments = true;\r\n },\r\n showLessRows(state){\r\n state.payments = state.payments.slice(0, state.quantity - 51)\r\n state.quantity = state.quantity - 50\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n setSelectedPayment(state, action) {\r\n if (action.payload) {\r\n const id = action.payload\r\n const selectedPayment = state.payments.find(payment => payment.PaymentsID === id)\r\n if (selectedPayment) {\r\n state.selectedPayment = selectedPayment\r\n }\r\n else if(typeof action.payload === 'object'){\r\n state.selectedPayment = action.payload\r\n }\r\n }\r\n },\r\n resetSelectedPayment(state) {\r\n state.selectedPayment = {}\r\n },\r\n loadPaymentsForDonor(state, action){\r\n state.paymentsForDonor = action.payload.payments\r\n },\r\n resetPaymentsForDonor(state){\r\n state.paymentsForDonor = []\r\n },\r\n loadPaymentsForPledge(state, action){\r\n state.paymentsForPledge = action.payload.payments\r\n },\r\n resetPaymentsForPledge(state){\r\n state.paymentsForPledge = []\r\n },\r\n setPendingPayment(state, action){\r\n state.pendingPayment = action.payload\r\n },\r\n resetPendingPayment(state){\r\n state.pendingPayment = null\r\n },\r\n //recurring payments\r\n loadRecurringPayments(state, action) {\r\n state.recurringPayments = action.payload.payments;\r\n state.loadedRecurringPayments = true;\r\n state.recurringQuantity = action.payload.payments.length\r\n },\r\n showMoreRecurringRows(state) {\r\n state.recurringQuantity = state.recurringQuantity + 50\r\n },\r\n showLessRecurringRows(state){\r\n state.recurringPayments = state.recurringPayments.slice(0, state.recurringQuantity - 51)\r\n state.recurringQuantity = state.recurringQuantity - 50\r\n },\r\n setRecurringIsLoading(state, action) {\r\n state.recurringIsLoading = action.payload\r\n },\r\n setSelectedRecurringPayment(state, action) {\r\n if (action.payload) {\r\n const id = action.payload\r\n const selectedPayment = state.recurringPayments.find(payment => payment.PledgeRecurringID === id)\r\n if (selectedPayment) {\r\n state.selectedRecurringPayment = selectedPayment\r\n }\r\n else if(typeof action.payload === 'object'){\r\n state.selectedRecurringPayment = action.payload\r\n }\r\n }\r\n },\r\n\r\n resetSelectedRecPayment(state) {\r\n state.selectedRecurringPayment = {}\r\n },\r\n removeDeletedPayment(state, action){\r\n state.payments = state.payments.filter(p => p.PaymentsID !== action.payload)\r\n if(state.payments.length > 0){\r\n state.payments[0].TotalPayments -= 1\r\n }\r\n },\r\n removeDeletedRecPayment(state, action){\r\n state.recurringPayments = state.recurringPayments.filter(p => p.PledgeRecurringID !== action.payload)\r\n if(state.recurringPayments.length > 0){\r\n state.recurringPayments[0].TotalRecurring -= 1\r\n }\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const paymentsActions = paymentsSlice.actions;\r\n\r\nexport default paymentsSlice;\r\n","\r\nimport Button from './Button'\r\nimport classes from './ButtonM.module.css'\r\n\r\nconst ButtonM = ({type = 'button', loading, children, isDelete, onClick, disabled, className}) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ButtonM","import classes from './LoadingSpinner.module.css'\r\n\r\nconst LoadingSpinner = (props) => {\r\n return (\r\n
\r\n \r\n
)\r\n}\r\n\r\nexport default LoadingSpinner;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"MorePopup_popup__3dyj3\",\"popup-item\":\"MorePopup_popup-item__RQ2i5\",\"popup-item__delete\":\"MorePopup_popup-item__delete__1wDl_\",\"no-actions\":\"MorePopup_no-actions__1-6dq\",\"snooze-popup\":\"MorePopup_snooze-popup__3zU3x\",\"loading\":\"MorePopup_loading__1RStD\",\"custom-date\":\"MorePopup_custom-date__3ThrR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actions\":\"TaskActions_actions__-yR30\",\"line\":\"TaskActions_line__16WDy\",\"call\":\"TaskActions_call__1Ge3l\",\"message\":\"TaskActions_message__2uPB9\",\"action\":\"TaskActions_action__HJIdQ\",\"more\":\"TaskActions_more__23wih\",\"snooze-popup\":\"TaskActions_snooze-popup__3biWq\",\"popup-item\":\"TaskActions_popup-item__2whp0\"};","import { useEffect, useState } from 'react'\r\n\r\nimport classes from './CustomSelect.module.css'\r\nimport Arrow from '../../../images/Arrow - Down small.svg'\r\nimport { useRef } from 'react';\r\n\r\n\r\nconst CustomSelect = ({label, options, selectedValue, onChange, className, invalid, inputClassName, required, dropDownClassName}) => {\r\n\r\n const listRef = useRef()\r\n\r\n const [isOptionsOpen, setIsOptionsOpen] = useState(false);\r\n const [selectedOption, setSelectedOption] = useState(0);\r\n\r\n useEffect(()=>{\r\n const selected = options.findIndex(option => option.value === selectedValue)\r\n if(selected > -1) {\r\n setSelectedOption(selected)\r\n }\r\n },[options, selectedValue])\r\n\r\n useEffect(()=>{\r\n if(isOptionsOpen){\r\n //listRef.current.scrollIntoView({behavior: 'smooth'})\r\n }\r\n },[isOptionsOpen])\r\n\r\n const optionChanged = (index) => {\r\n const selected = options[index].value\r\n if(selectedValue !== selected){\r\n onChange(selected)\r\n }}\r\n \r\n\r\n \r\n const toggleOptions = () => {\r\n setIsOptionsOpen(prevState => !prevState);\r\n };\r\n\r\n const setSelectedThenCloseDropdown = (index) => {\r\n setSelectedOption(index);\r\n optionChanged(index)\r\n setIsOptionsOpen(false);\r\n };\r\n\r\n const handleKeyDown = (index) => (e) => {\r\n switch (e.key) {\r\n case \" \":\r\n case \"SpaceBar\":\r\n case \"Enter\":\r\n e.preventDefault();\r\n setSelectedThenCloseDropdown(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const handleListKeyDown = (e) => {\r\n var index\r\n switch (e.key) {\r\n case \"Escape\":\r\n e.preventDefault();\r\n setIsOptionsOpen(false);\r\n break;\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n index = selectedOption - 1 >= 0 ? selectedOption - 1 : options.length - 1\r\n setSelectedOption(index);\r\n optionChanged(index)\r\n break;\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n index = selectedOption === options.length - 1 ? 0 : selectedOption + 1\r\n setSelectedOption(index);\r\n optionChanged(index)\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const unFocuseHanler = (event) => {\r\n if(event.relatedTarget && event.relatedTarget.id && event.relatedTarget.id === \"listItem\"){\r\n return\r\n }\r\n setIsOptionsOpen(false)\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n

{options[selectedOption] ? options[selectedOption].name : ''}

\r\n
\r\n \r\n \r\n {options.map((option, index) => (\r\n {\r\n setSelectedThenCloseDropdown(index);\r\n }}\r\n >\r\n {option.name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CustomSelect\r\n","export default __webpack_public_path__ + \"static/media/Close-dark.bee997fc.svg\";","\r\nimport LoadingSpinnerButtonLight from '../../LoadingSpinners/LoadingSpinnerButtonLight'\r\nimport classes from './ButtonMOut.module.css'\r\nimport ButtonOut from './ButtonOut'\r\n\r\nconst ButtonMOut = (props) => {\r\n return (\r\n \r\n {props.children}\r\n {props.loading && }\r\n \r\n )\r\n}\r\n\r\nexport default ButtonMOut","\r\nexport const getUpdateMessageBody = (obj, success = true) => {\r\n if(success){\r\n return `Successfully updated ${obj}`\r\n }\r\n else{\r\n return `Error updating ${obj}`\r\n }\r\n}\r\n\r\n\r\nexport const getAddMessageBody = (obj, success = true) => {\r\n if(success){\r\n return `Successfully added ${obj}`\r\n }\r\n else{\r\n return `Error saving ${obj}`\r\n }\r\n}\r\n\r\nexport const getSaveMessageBody = (obj, success = true) => {\r\n if(success){\r\n return `Successfully saved ${obj}`\r\n }\r\n else{\r\n return `Error saving ${obj}`\r\n }\r\n}\r\n\r\nexport const getDeleteMessageBody = (obj, success = true) => {\r\n if(success){\r\n return `Successfully deleted ${obj}`\r\n }\r\n else{\r\n return `Error deleting ${obj}`\r\n }\r\n}\r\n\r\nexport const getRestoreMessageBody = (obj, success = true) => {\r\n if(success){\r\n return `Successfully restored ${obj}`\r\n }\r\n else{\r\n return `Error restoring ${obj}`\r\n }\r\n}\r\n\r\nexport const getSentMessageBody = (obj, success = true) => {\r\n if(success){\r\n return `Successfully sent ${obj}`\r\n }\r\n else{\r\n return `Error sending ${obj}`\r\n }\r\n}\r\n\r\nexport const getCompleteMessageBody = (obj, success = true) => {\r\n if(success){\r\n return `Successfully completed ${obj}`\r\n }\r\n else{\r\n return `Error completing ${obj}`\r\n }\r\n}","import { useEffect, useState, useRef, useLayoutEffect } from 'react';\r\nimport classes from './TextField.module.css';\r\n\r\nconst TextField = (props) => {\r\n const textareaRef = useRef(null);\r\n\r\n const handleChange = (e) => {\r\n // Pass the updated value back to the parent through onChange\r\n props.onChange(e.target.value);\r\n };\r\n \r\n useEffect(() => {\r\n if (textareaRef.current) {\r\n textareaRef.current.style.height = 'auto'; // Reset height before calculating new height\r\n textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;\r\n }\r\n }, [props.value]);\r\n \r\n \r\n return (\r\n\r\n \r\n \r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\n\r\nexport default TextField;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filter-form\":\"FilterPayments_filter-form__32XP1\",\"select\":\"FilterPayments_select__11zt0\",\"date-range__header\":\"FilterPayments_date-range__header__3alwK\",\"date-range\":\"FilterPayments_date-range__1md7m\",\"date-range__input\":\"FilterPayments_date-range__input__1sW6G\",\"buttons\":\"FilterPayments_buttons__9epUt\",\"selected-donors\":\"FilterPayments_selected-donors__Q9hcD\",\"name\":\"FilterPayments_name__3JR5m\",\"type\":\"FilterPayments_type__3kaex\",\"reminderids\":\"FilterPayments_reminderids__3YYUq\",\"description\":\"FilterPayments_description__2kFuP\",\"status\":\"FilterPayments_status__31W3d\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"task\":\"TaskListItem_task__2Wa0U\",\"info\":\"TaskListItem_info__37LBH\",\"title\":\"TaskListItem_title__3TEJk\",\"details\":\"TaskListItem_details__22lAU\",\"detail\":\"TaskListItem_detail__3B1pL\",\"parentid\":\"TaskListItem_parentid__2nJlR\",\"headers\":\"TaskListItem_headers__1QyUT\",\"headers-admin\":\"TaskListItem_headers-admin__2vzkT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"badge\":\"Badge_badge__3yUx4\",\"regular\":\"Badge_regular__2LVUW\",\"error\":\"Badge_error__3nbeR\",\"success\":\"Badge_success__35Pop\",\"info\":\"Badge_info__qWCAf\",\"warning\":\"Badge_warning__2_oGR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"detail-item\":\"DetailsItem_detail-item__VkJEJ\",\"title-closed\":\"DetailsItem_title-closed__3hDHH\",\"detail-item__open\":\"DetailsItem_detail-item__open__3YkFV\",\"detail-item__open-header\":\"DetailsItem_detail-item__open-header__2dNuW\",\"btn-update\":\"DetailsItem_btn-update__D4HBJ\",\"detail-item__body\":\"DetailsItem_detail-item__body__1A45Q\",\"scroll\":\"DetailsItem_scroll__1sR4w\",\"closed\":\"DetailsItem_closed__2r5ux\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"c-multi-select-dropdown\":\"MultiSelect_c-multi-select-dropdown__3QamC\",\"multi-select__input\":\"MultiSelect_multi-select__input__3BJyZ\",\"multi-select__label\":\"MultiSelect_multi-select__label__3xDm0\",\"multi-select__selected\":\"MultiSelect_multi-select__selected__TkWL1\",\"multi-select__selected-option\":\"MultiSelect_multi-select__selected-option__3T0zq\",\"multi-select__arrow\":\"MultiSelect_multi-select__arrow__3kC7a\",\"multi-select__clear\":\"MultiSelect_multi-select__clear__lzCve\",\"multi-select__options\":\"MultiSelect_multi-select__options__3kHmu\",\"multi-select__option\":\"MultiSelect_multi-select__option__2uAVw\",\"active\":\"MultiSelect_active__Izab7\",\"invalid-input\":\"MultiSelect_invalid-input__3Ofow\"};","import { Fragment } from 'react'\r\nimport ReactDom from 'react-dom'\r\n\r\nimport classes from './MessageBox.module.css'\r\nimport close from '../../../images/Close-dark.svg'\r\nimport BackdropBlur from './BackdropBlur'\r\n\r\nconst MessageBox = ({backdropClassName, className, title, onClose, children}) => {\r\n const portalElement = document.getElementById('overlays')\r\n\r\n return (\r\n \r\n {ReactDom.createPortal(\r\n
\r\n
\r\n

{title}

\r\n \r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n
, portalElement)}\r\n
\r\n )\r\n}\r\n\r\nexport default MessageBox","import { useEffect, useState } from \"react\";\r\n\r\nconst useOutsideAlerter = (ref) => {\r\n const [clickedOutside, setClickedOutside] = useState(false)\r\n\r\n const resetState = () => {\r\n setClickedOutside(false)\r\n }\r\n useEffect(() => {\r\n /**\r\n * Alert if clicked on outside of element\r\n */\r\n function handleClickOutside(event) {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n setClickedOutside(true)\r\n }\r\n }\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [ref]);\r\n return {\r\n resetState,\r\n clickedOutside\r\n }\r\n }\r\n\r\n export default useOutsideAlerter","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n statement: [],\r\n loadedStatement: false,\r\n selectedPayment: {},\r\n selectedCharge: {},\r\n isLoading: false,\r\n balance: '',\r\n}\r\n\r\nconst statementsSlice = createSlice({\r\n name: \"statements\",\r\n initialState,\r\n reducers: {\r\n loadStatement(state, action) {\r\n state.loadedStatement = true\r\n state.statement = action.payload.statement;\r\n },\r\n setSelectedPayment(state, action){\r\n var selected = state.statement.find(s => s.PaymentID === action.payload)\r\n if(selected){\r\n state.selectedPayment = selected\r\n }\r\n },\r\n setSelectedPledge(state, action){\r\n var selected = state.statement.find(s => s.PledgeID === action.payload)\r\n if(selected){\r\n state.selectedCharge = selected\r\n }\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetStatementsInfo(state) {\r\n state.statement = []\r\n },\r\n resetSelectedPayment(state){\r\n state.selectedPayment = {}\r\n },\r\n resetSelectedCharge(state){\r\n state.selectedCharge = {}\r\n },\r\n setBalance(state, action){\r\n if(action.payload > 0){\r\n state.balance = action.payload\r\n }\r\n else{\r\n state.balance = 0\r\n }\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const statementsActions = statementsSlice.actions;\r\n\r\nexport default statementsSlice;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n campaigns: [],\r\n subCampaigns: [],\r\n subCampaignRequired: false,\r\n isLoading: false,\r\n}\r\nconst campaignsSlice = createSlice({\r\n name: \"campaigns\",\r\n initialState,\r\n reducers: {\r\n loadCampaigns(state, action) {\r\n state.campaigns = action.payload.campaigns;\r\n },\r\n loadSubCampaigns(state, action) {\r\n state.subCampaigns = action.payload.subCampaigns;\r\n if(action.payload.subCampaigns.length > 0){\r\n state.subCampaignRequired = action.payload.subCampaigns[0].Required\r\n }\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const campaignsActions = campaignsSlice.actions;\r\n\r\nexport default campaignsSlice;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"features\":\"NewFeatures_features__2G5df\",\"header\":\"NewFeatures_header__aY10y\",\"buttons\":\"NewFeatures_buttons__1o6dv\",\"features-description\":\"NewFeatures_features-description__EjrIQ\",\"features-description__1\":\"NewFeatures_features-description__1__1NzCb\",\"features-description__2\":\"NewFeatures_features-description__2__1_2gl\",\"features-description__3\":\"NewFeatures_features-description__3__1nq21\",\"features-page\":\"NewFeatures_features-page__3h2Pw\",\"implemented-features\":\"NewFeatures_implemented-features__2Sn-0\",\"implemented-features__title\":\"NewFeatures_implemented-features__title__2yLT7\",\"add-feature\":\"NewFeatures_add-feature__2Ym3x\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"status\":\"NewFeatureDetails_status__22vJd\",\"description\":\"NewFeatureDetails_description__xo86v\",\"add-comments\":\"NewFeatureDetails_add-comments__B-sRK\",\"save-comment\":\"NewFeatureDetails_save-comment__2rt5_\",\"comment\":\"NewFeatureDetails_comment__2NfTm\",\"attachments\":\"NewFeatureDetails_attachments__3Kbd3\",\"feature-attachment\":\"NewFeatureDetails_feature-attachment__2yfvD\",\"comment-attachment\":\"NewFeatureDetails_comment-attachment__1xxWt\",\"spinner\":\"NewFeatureDetails_spinner__C8rEP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"queries\":\"TaskQueries_queries__2Q_q_\",\"captions\":\"TaskQueries_captions__3Jvcg\",\"caption\":\"TaskQueries_caption__22NxQ\",\"active\":\"TaskQueries_active__3cWnS\",\"rows\":\"TaskQueries_rows__1zfPH\",\"headers\":\"TaskQueries_headers__1bn_M\",\"row\":\"TaskQueries_row__2HQIn\",\"header\":\"TaskQueries_header__1854X\",\"row-value\":\"TaskQueries_row-value__1dKAY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"donor-name\":\"DonorsInfo_donor-name__29Oaz\",\"donor-phone\":\"DonorsInfo_donor-phone__1S5P0\",\"donor-address\":\"DonorsInfo_donor-address__29QpL\",\"donor-email\":\"DonorsInfo_donor-email__2wmaf\",\"additional-addresses\":\"DonorsInfo_additional-addresses__3qBFO\",\"buttons\":\"DonorsInfo_buttons__2aTsP\",\"additional-addresses__list\":\"DonorsInfo_additional-addresses__list__Ou1A6\"};","\r\nimport classes from './Badge.module.css'\r\n\r\nconst Badge = ({status, className, children}) => {\r\n var cssClasses\r\n switch (status) {\r\n case 'Waiting for support':\r\n cssClasses = `${classes.badge} ${classes.regular} ${className}`\r\n break;\r\n case 'error':\r\n case 'Deleted':\r\n case 'Canceled':\r\n cssClasses = `${classes.badge} ${classes.error} ${className}`\r\n break;\r\n case 'success':\r\n case 'Successful':\r\n case 'Payment':\r\n case 'Resolved':\r\n case 'Complete':\r\n cssClasses = `${classes.badge} ${classes.success} ${className}`\r\n break;\r\n case 'info':\r\n case 'Charge':\r\n case 'In Progress':\r\n cssClasses = `${classes.badge} ${classes.info} ${className}`\r\n break;\r\n case 'warning':\r\n cssClasses = `${classes.badge} ${classes.warning} ${className}`\r\n break;\r\n default:\r\n cssClasses = `${classes.badge} ${classes.warning} ${className}`\r\n\r\n\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Badge","export default __webpack_public_path__ + \"static/media/Arrow - Down small.426c35db.svg\";","\r\nimport classes from './BackdropBlur.module.css'\r\n\r\nconst BackdropBlur = (props) => {\r\n\r\n return (\r\n
{props.children}
\r\n )\r\n}\r\n\r\nexport default BackdropBlur","// extracted by mini-css-extract-plugin\nmodule.exports = {\"load\":\"Dashboard_load__3pBWL\",\"show-more\":\"Dashboard_show-more__1MfTE\",\"list\":\"Dashboard_list__1j-y9\",\"sticky\":\"Dashboard_sticky__3_f0P\",\"header\":\"Dashboard_header__felL_\",\"line\":\"Dashboard_line__3GYAE\",\"view\":\"Dashboard_view__Yn90f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"select-wrapper\":\"CustomSelect_select-wrapper__QQZ1D\",\"select-container\":\"CustomSelect_select-container__30YRf\",\"select-button\":\"CustomSelect_select-button__13CVQ\",\"select\":\"CustomSelect_select__9Q6kT\",\"select-arrow\":\"CustomSelect_select-arrow__2mh-T\",\"options\":\"CustomSelect_options__3VmGk\",\"show\":\"CustomSelect_show__4Odai\",\"invalid-input\":\"CustomSelect_invalid-input__2nImd\"};","import { pledgesActions } from './pledges-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchPledgesList = (amountOfRows = 50, orderBy = 7, desc = true, filter = '') => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(pledgesActions.setIsLoading(true))\r\n if(amountOfRows === 50){\r\n dispatch(pledgesActions.loadPledges({pledges: []}))\r\n }\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n url = url + 'api/pledges'\r\n url = url + `?rows=${amountOfRows >=50 ? amountOfRows : '50'}&orderBy=${orderBy}&desc=${desc}${filter}`\r\n const response = await fetch(url, {\r\n headers: {\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){\r\n dispatch(authActions.logout())\r\n }\r\n else{\r\n throw new Error('Could not fetch pledges list.')\r\n }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const pledgesData = await fetchData()\r\n dispatch(pledgesActions.loadPledges({ pledges: pledgesData || [] }))\r\n dispatch(pledgesActions.setIsLoading(false))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\n\r\nexport const fetchPledgesForDonor = (donorId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(pledgesActions.setPledgeForDonorLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + `api/pledges?rows=1000&donors[0]=${donorId}`, {\r\n headers: {\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch pledges list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const pledgesData = await fetchData()\r\n dispatch(pledgesActions.loadPledgesForDonor({ pledges: pledgesData || [] }))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally{\r\n dispatch(pledgesActions.setPledgeForDonorLoading(false))\r\n }\r\n };\r\n};\r\n\r\nexport const fetchPledgesForPayment = (paymentId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(pledgesActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n url = url + `api/pledgesforpayment/${paymentId}`\r\n const response = await fetch(url, {\r\n headers: {\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch pledges for payment.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const pledgesData = await fetchData()\r\n dispatch(pledgesActions.loadPledgesForPayment({ pledges: pledgesData || [] }))\r\n dispatch(pledgesActions.setIsLoading(false))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const fetchRecurringPledgesList = (amountOfRows = 50, orderBy = 20, desc = true, filter = '') => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(pledgesActions.setRecurringIsLoading(true))\r\n if(amountOfRows === 50){\r\n dispatch(pledgesActions.loadRecurringPledges({ pledges: [] }))\r\n }\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n url = url + 'api/recurringpledges'\r\n url = url + `?rows=${amountOfRows >=50 ? amountOfRows : '50'}&orderBy=${orderBy}&desc=${desc}${filter}`\r\n const response = await fetch(url, {\r\n headers: {\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch recurring pledges list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const pledgesData = await fetchData()\r\n dispatch(pledgesActions.loadRecurringPledges({ pledges: pledgesData || [] }))\r\n dispatch(pledgesActions.setRecurringIsLoading(false))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const fetchRecurringPledgesForDonor = (donorId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + `api/recpledgesfordonor?rows=1000&donors[0]=${donorId}`, {\r\n headers: {\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch recurring pledges list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const pledgesData = await fetchData()\r\n dispatch(pledgesActions.loadRecurringPledgesForDonor({ pledges: pledgesData || [] }))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const fetchPledgesForRecurringPayment = (recPaymentId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(pledgesActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n url = url + `api/pledgesforrecpayment/${recPaymentId}`\r\n const response = await fetch(url, {\r\n headers: {\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch pledges for recurring payment.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const pledgesData = await fetchData()\r\n dispatch(pledgesActions.loadPledgesForPayment({ pledges: pledgesData || [] }))\r\n dispatch(pledgesActions.setIsLoading(false))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const fetchRecurringPledgesForRecurringPayment = (recPaymentId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(pledgesActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n url = url + `api/recpledgesforpayment/${recPaymentId}`\r\n const response = await fetch(url, {\r\n headers: {\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch recurring pledges for recurring payment.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const pledgesData = await fetchData()\r\n dispatch(pledgesActions.loadRecurringPledgesForPayment({ pledges: pledgesData || [] }))\r\n dispatch(pledgesActions.setIsLoading(false))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const fetchRecurringPledgeDetails = (recPledgeId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n const response = await fetch(url + `api/recurringpledgedetails/${recPledgeId}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch recurring pledge details.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const pledgesData = await fetchData()\r\n dispatch(pledgesActions.setSelectedRecurringPledge(pledgesData))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\n\r\n\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n paymentTypes: [],\r\n selectedPaymentType: {},\r\n isLoading: false,\r\n }\r\n\r\nconst paymentTypesSlice = createSlice({\r\n name: \"paymentTypes\",\r\n initialState,\r\n reducers: {\r\n loadPaymentTypes(state, action) {\r\n state.paymentTypes = action.payload.paymentTypes;\r\n },\r\n setSelectedPaymentType(state, action) {\r\n const id = action.payload\r\n var selectedPaymentType\r\n if (id !== null){\r\n selectedPaymentType = state.paymentTypes.find(paymentType => paymentType.ID === id)\r\n }else{\r\n selectedPaymentType = state.paymentTypes.find(paymentType => paymentType.Default === true)\r\n }\r\n if (selectedPaymentType) {\r\n state.selectedPaymentType = selectedPaymentType\r\n }\r\n },\r\n resetSelectedPaymentType(state) {\r\n state.selectedPaymentType = {}\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const paymentTypesActions = paymentTypesSlice.actions;\r\n\r\nexport default paymentTypesSlice;\r\n","export default __webpack_public_path__ + \"static/media/Sort - Desc.9837147e.svg\";","export const addDays = (date, days) => {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n result = result.toLocaleString(\"sv-SE\", {\r\n year: \"numeric\",\r\n month: \"2-digit\",\r\n day: \"2-digit\"\r\n })\r\n return result;\r\n }\r\n\r\nexport const addWeeks = (date, weeks) => {\r\n return addDays(date, weeks * 7)\r\n}\r\n\r\nexport const addMonths = (date, months) => {\r\n var result = new Date(date)\r\n var d = result.getDate();\r\n result.setMonth(result.getMonth() + +months);\r\n if (result.getDate() !== d) {\r\n result.setDate(0);\r\n }\r\n result.setDate(result.getDate() + 1);\r\n result = result.toLocaleString(\"sv-SE\", {\r\n year: \"numeric\",\r\n month: \"2-digit\",\r\n day: \"2-digit\"\r\n })\r\n\r\n return result;\r\n}\r\n\r\nexport const addYears = (date, years) => {\r\n var result = new Date(date)\r\n var d = result.getDate();\r\n result.setFullYear(result.getFullYear() + +years);\r\n if (result.getDate() !== d) {\r\n result.setDate(0);\r\n }\r\n result.setDate(result.getDate() + 1);\r\n result = result.toLocaleString(\"sv-SE\", {\r\n year: \"numeric\",\r\n month: \"2-digit\",\r\n day: \"2-digit\"\r\n })\r\n\r\n return result;\r\n}\r\n\r\nexport const daysDiff = (first, second) => { \r\n var firstDate = new Date(first)\r\n var secondDate = new Date(second) \r\n return Math.round((secondDate - firstDate) / (1000 * 60 * 60 * 24));\r\n}\r\n\r\nexport const weeksDiff = (first, second) => {\r\n var firstDate = new Date(first)\r\n var secondDate = new Date(second) \r\n return Math.floor((secondDate - firstDate) / (7 * 24 * 60 * 60 * 1000));\r\n}\r\n\r\nexport const monthsDiff = (first, second) => {\r\n var firstDate = new Date(first)\r\n var secondDate = new Date(second) \r\n var months;\r\n months = (secondDate.getFullYear() - firstDate.getFullYear()) * 12;\r\n months -= firstDate.getMonth();\r\n months += secondDate.getMonth();\r\n return months <= 0 ? 0 : months;\r\n}\r\n\r\nexport const YearsDiff = (first, second) => {\r\n var ageDifMs = new Date(second) - new Date(first);\r\n var ageDate = new Date(ageDifMs); // miliseconds from epoch\r\n return Math.abs(ageDate.getUTCFullYear() - 1970);\r\n}\r\n\r\nexport const formatDateObjectForInput = (date) => {\r\n var result = new Date(date)\r\n result = result.toLocaleString(\"sv-SE\", {\r\n year: \"numeric\",\r\n month: \"2-digit\",\r\n day: \"2-digit\"\r\n })\r\n return result;\r\n}","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n solicitors: [],\r\n isLoading: false,\r\n}\r\n\r\nconst solicitorsSlice = createSlice({\r\n name: \"solicitors\",\r\n initialState,\r\n reducers: {\r\n loadSolicitors(state, action) {\r\n state.solicitors = action.payload.solicitors;\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const solicitorsActions = solicitorsSlice.actions;\r\n\r\nexport default solicitorsSlice;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n accounts: [],\r\n isLoading: false,\r\n }\r\nconst accountsSlice = createSlice({\r\n name: \"accounts\",\r\n initialState,\r\n reducers: {\r\n loadAccounts(state, action) {\r\n state.accounts = action.payload.accounts;\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetState:() => initialState,\r\n }});\r\n\r\nexport const accountsActions = accountsSlice.actions;\r\n\r\nexport default accountsSlice;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n shuls: [],\r\n isLoading: false,\r\n}\r\n\r\nconst shulsSlice = createSlice({\r\n name: \"shuls\",\r\n initialState,\r\n reducers: {\r\n loadShuls(state, action) {\r\n state.shuls = action.payload.shuls;\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const shulsActions = shulsSlice.actions;\r\n\r\nexport default shulsSlice;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"notification-wrapper\":\"Notification_notification-wrapper__chptc\",\"notification\":\"Notification_notification__2bsoV\",\"notification__close\":\"Notification_notification__close__3DDfq\",\"notification-link\":\"Notification_notification-link__3jcNj\",\"error\":\"Notification_error__3AUaP\",\"success\":\"Notification_success__N2ljL\",\"notification-buttons\":\"Notification_notification-buttons__3f0pI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"user-details\":\"UserDetails_user-details__1QR_o\",\"user-details__header\":\"UserDetails_user-details__header__1wByO\",\"user-detail\":\"UserDetails_user-detail__3wkxA\",\"user-detail__separator\":\"UserDetails_user-detail__separator__1zoNb\",\"logout\":\"UserDetails_logout__1jRsT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"search\":\"CustomSelectFreeText_search__3NwRw\",\"options\":\"CustomSelectFreeText_options__ZVcNH\",\"hover-item\":\"CustomSelectFreeText_hover-item__38Wr2\",\"selected-item\":\"CustomSelectFreeText_selected-item__16Rfp\",\"select-label\":\"CustomSelectFreeText_select-label__2knGX\",\"select-input\":\"CustomSelectFreeText_select-input__PtTyM\",\"required-input\":\"CustomSelectFreeText_required-input__tC-nA\",\"invalid-input\":\"CustomSelectFreeText_invalid-input__2rMsn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"search-donor__item\":\"DonorSearchItem_search-donor__item__2beZ2\",\"active\":\"DonorSearchItem_active__XxTwj\",\"search-donor__name\":\"DonorSearchItem_search-donor__name__2YhP9\",\"search-donor__id\":\"DonorSearchItem_search-donor__id__2fSCq\",\"search-donor__phone\":\"DonorSearchItem_search-donor__phone__FYvkJ\",\"search-donor__address\":\"DonorSearchItem_search-donor__address__2i9kX\",\"search-donor__hr\":\"DonorSearchItem_search-donor__hr__1841O\",\"devider\":\"DonorSearchItem_devider__3Guee\"};","import { tendersActions } from './tenders-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchTendersList = (type, donorID, selectedTenderID) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(tendersActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(`${url}api/${type}/${donorID}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch tenders list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const tendersData = await fetchData()\r\n dispatch(tendersActions.loadAllTenders({ tenders: tendersData || [], selectedTenderID: selectedTenderID }))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(tendersActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\nexport const fetchAllTendersLists = (donorID,) => {\r\n return async (dispatch) => {\r\n const fetchData = async (type) => {\r\n dispatch(tendersActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(`${url}api/${type}/${donorID}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch tenders list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const CCData = await fetchData('donorstenderscreditcards')\r\n dispatch(tendersActions.loadTendersType({ tenders: CCData || [], type: 'CC'}))\r\n\r\n const ACHData = await fetchData('donorstenderschecksach')\r\n dispatch(tendersActions.loadTendersType({ tenders: ACHData || [], type: 'ACH'}))\r\n\r\n const OJCData = await fetchData('ojc')\r\n dispatch(tendersActions.loadTendersType({ tenders: OJCData || [], type: 'OJC'}))\r\n\r\n const TheDonorsFundData = await fetchData('thedonorsfund')\r\n dispatch(tendersActions.loadTendersType({ tenders: TheDonorsFundData || [], type: 'TheDonorsFund'}))\r\n\r\n const PledgerData = await fetchData('pledger')\r\n dispatch(tendersActions.loadTendersType({ tenders: PledgerData || [], type: 'Pledger'}))\r\n\r\n const MatbiaData = await fetchData('matbia')\r\n dispatch(tendersActions.loadTendersType({ tenders: MatbiaData || [], type: 'Matbia'}))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(tendersActions.setIsLoading(false))\r\n }\r\n };\r\n};\r\n\r\n\r\n\r\n\r\nexport const setSelectdTender = (tenderID) => {\r\n return (dispatch) => {\r\n dispatch(tendersActions.setSelectedTender(tenderID))\r\n }\r\n}\r\n","export default __webpack_public_path__ + \"static/media/Logo-sidebar.4e500eca.svg\";","import { useSelector } from 'react-redux'\r\n\r\nimport classes from './MainSidebar.module.css'\r\nimport logo from '../../../images/Logo-sidebar.svg'\r\nimport SidebarNav from './SidebarNav'\r\nimport SidebarNavParents from './SidebarNavParents'\r\n\r\n\r\nconst MainSideBar = () => {\r\n const isLoggedIn = useSelector((state) => state.auth.isLoggedIn)\r\n const parentLoggedIn = useSelector((state) => state.auth.parentLoggedIn)\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default MainSideBar","import React,{ Fragment } from 'react';\r\n\r\nimport MainSideBar from './Sidebar/MainSidebar';\r\n\r\nconst Layout = (props) => {\r\n return (\r\n \r\n \r\n
{props.children}
\r\n
\r\n );\r\n};\r\n\r\nexport default Layout;\r\n","export default __webpack_public_path__ + \"static/media/Bag 2.db88459d.svg\";","export default __webpack_public_path__ + \"static/media/Logout.6618b3d5.svg\";","\r\nimport Bag from '../../images/Bag 2.svg'\r\nimport Logout from '../../images/Logout.svg'\r\nimport classes from './UserDetails.module.css'\r\nimport Popup from '../UI/Others/Popup'\r\nimport useResetState from '../../hooks/use-reset'\r\n\r\n\r\nconst UserDetails = () => {\r\n const { resetState } = useResetState()\r\n\r\n const logoutHandler = () => {\r\n resetState()\r\n }\r\n\r\n return (\r\n e.stopPropagation()}>\r\n

{localStorage.getItem('sessionUserName')}

\r\n
    \r\n {/*
  • {localStorage.getItem('userName')}
  • */}\r\n
  • {localStorage.getItem('sessionCompanyName')}
  • \r\n
    \r\n
  • Log Out
  • \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default UserDetails","export default __webpack_public_path__ + \"static/media/Logo-mobile-header.31200690.svg\";","export default __webpack_public_path__ + \"static/media/Menu.5f9931d2.svg\";","import { useSelector } from 'react-redux'\r\nimport classes from './MobileSidebar.module.css'\r\nimport SidebarNav from './SidebarNav'\r\nimport SidebarNavParents from './SidebarNavParents'\r\n\r\nconst MobileSidebar = (props) => {\r\n const isLoggedIn = useSelector((state) => state.auth.isLoggedIn)\r\n const parentLoggedIn = useSelector((state) => state.auth.parentLoggedIn)\r\n \r\n return (\r\n
\r\n
    \r\n {isLoggedIn && }\r\n {parentLoggedIn && }\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default MobileSidebar","import { Fragment, useEffect, useRef, useState } from 'react'\r\n\r\nimport classes from './MainHeader.module.css'\r\nimport UserDetails from './UserDetails'\r\nimport logo from '../../images/Logo-mobile-header.svg'\r\nimport hamburger from '../../images/Menu.svg'\r\nimport MobileSidebar from './Sidebar/MobileSidebar'\r\nimport useOutsideAlerter from '../../hooks/use-outside-alerter'\r\n\r\nconst MainHeader = (props) => {\r\n\r\n const userRef = useRef()\r\n const {clickedOutside, resetState} = useOutsideAlerter(userRef)\r\n const [showUser, setShowUser] = useState()\r\n const [showMenuBar, setShowMenuBar] = useState()\r\n\r\n useEffect(()=>{\r\n if(clickedOutside){\r\n setShowUser(false)\r\n resetState()\r\n }\r\n },[clickedOutside])\r\n\r\nconst toggleUserShowHandler = () => {\r\nsetShowUser(prevState => !prevState)\r\n}\r\n\r\n return (\r\n \r\n
\r\n

{props.title}

\r\n setShowMenuBar(prevState => !prevState)} alt=''/>\r\n \r\n
\r\n {/*
Search
*/}\r\n {/*
Notification
*/}\r\n
\r\n
{Array.from(localStorage.getItem('sessionUserName') ? localStorage.getItem('sessionUserName') : [])[0]}\r\n {showUser && }
\r\n
\r\n
\r\n {showMenuBar && setShowMenuBar(false)}/>}\r\n
\r\n )\r\n}\r\nexport default MainHeader","import classes from './Checkbox.module.css'\r\n\r\nconst Checkbox = (props) => {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n };\r\n export default Checkbox;","import { createSlice } from \"@reduxjs/toolkit\";\r\nconst initialRemindersFilter = {\r\n DateFrom: undefined,\r\n DateTo: undefined,\r\n Campaigns: [],\r\n ReminderIds: '',\r\n Name: '',\r\n Type: '', \r\n Description: '',\r\n Donors: [],\r\n Status: -1}\r\n \r\nconst initialState = {\r\n paymentsFilter: {},\r\n paymentsFilterString: '',\r\n paymentsHasFilter: false,\r\n recPaymentsFilter: {},\r\n recPaymentsFilterString: '',\r\n recPaymentsHasFilter: false,\r\n pledgesFilter: {},\r\n pledgesFilterString: '',\r\n pledgesHasFilter: false,\r\n recPledgesFilter: {},\r\n recPledgesFilterString: '',\r\n recPledgesHasFilter: false,\r\n donorsFilter: {},\r\n donorsFilterString: '',\r\n donorHasFilter: false,\r\n remindersFilter: initialRemindersFilter,\r\n remindersFilterString: '',\r\n reminderHasFilter: false\r\n}\r\nconst filtersSlice = createSlice({\r\n name: \"filters\",\r\n initialState,\r\n reducers: {\r\n setPaymentsFilter(state, action) {\r\n state.paymentsFilter = action.payload.filter;\r\n state.paymentsHasFilter = true\r\n },\r\n setPaymentsFilterString(state, action) {\r\n state.paymentsFilterString = action.payload\r\n },\r\n resetPaymentsFilter(state) {\r\n state.paymentsFilter = {}\r\n state.paymentsFilterString = ''\r\n state.paymentsHasFilter = false\r\n },\r\n setPledgesFilter(state, action) {\r\n state.pledgesFilter = action.payload.filter;\r\n state.pledgesHasFilter = true\r\n },\r\n setPledgesFilterString(state, action) {\r\n state.pledgesFilterString = action.payload\r\n },\r\n resetPledgesFilter(state) {\r\n state.pledgesFilter = {}\r\n state.pledgesFilterString = ''\r\n state.pledgesHasFilter = false\r\n },\r\n setDonorsFilter(state, action){\r\n state.donorsFilter = action.payload.filter\r\n state.donorHasFilter = true\r\n },\r\n setDonorsFilterString(state, action){\r\n state.donorsFilterString = action.payload\r\n },\r\n resetDonorsFilter(state){\r\n state.donorsFilter = {}\r\n state.donorHasFilter = false\r\n state.donorsFilterString = ''\r\n },\r\n setRecPaymentsFilter(state, action) {\r\n state.recPaymentsFilter = action.payload.filter;\r\n state.recPaymentsHasFilter = true\r\n },\r\n setRecPaymentsFilterString(state, action) {\r\n state.recPaymentsFilterString = action.payload\r\n },\r\n resetRecPaymentsFilter(state) {\r\n state.recPaymentsFilter = {}\r\n state.recPaymentsFilterString = ''\r\n state.recPaymentsHasFilter = false\r\n },\r\n setRecPledgesFilter(state, action) {\r\n state.recPledgesFilter = action.payload.filter;\r\n state.recPledgesHasFilter = true\r\n },\r\n setRecPledgesFilterString(state, action) {\r\n state.recPledgesFilterString = action.payload\r\n },\r\n resetRecPledgesFilter(state) {\r\n state.recPledgesFilter = {}\r\n state.recPledgesFilterString = ''\r\n state.recPledgesHasFilter = false\r\n },\r\n setRemindersFilter(state, action) {\r\n state.remindersFilter = action.payload;\r\n state.reminderHasFilter = true\r\n },\r\n setRemindersFilterString(state, action) {\r\n state.remindersFilterString = action.payload\r\n },\r\n resetRemindersFilter(state) {\r\n state.remindersFilter = initialRemindersFilter\r\n state.remindersFilterString = ''\r\n state.reminderHasFilter = false\r\n },\r\n\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const filtersActions = filtersSlice.actions;\r\n\r\nexport default filtersSlice;\r\n","\r\nimport classes from './TextButton.module.css'\r\n\r\nconst TextButton = (props) => {\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default TextButton","\r\nimport Button from './Button'\r\nimport classes from './ButtonL.module.css'\r\n\r\nconst ButtonL = (props) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ButtonL","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn-cancel\":\"TextButton_btn-cancel__3Fodu\",\"green\":\"TextButton_green__30DNw\",\"blue\":\"TextButton_blue__bHTD-\",\"pink\":\"TextButton_pink__2F3DQ\",\"gray\":\"TextButton_gray__1fSEU\"};","import { useState } from 'react'\r\nimport Input from './Input'\r\nimport { useEffect } from 'react'\r\n\r\nconst DateInput = (props) => {\r\n const [date, setDate] = useState(props.value)\r\n\r\n useEffect(()=>{\r\n setDate(props.value)\r\n },[props.value])\r\n\r\n const changeInputHandler = (v)=> {\r\n setDate(v)\r\n }\r\n const blurInputHandler = (e) => {\r\n props.onChange(e.target.value)\r\n }\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default DateInput","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n students: [],\r\n loadedStudents: false,\r\n selectedStudent: {},\r\n isLoading: false,\r\n}\r\n\r\nconst studentsSlice = createSlice({\r\n name: \"students\",\r\n initialState,\r\n reducers: {\r\n loadStudents(state, action) {\r\n state.loadedStudents = true\r\n state.students = action.payload.students;\r\n },\r\n setSelectedStudent(state, action){\r\n var selected = state.students.find(s => s.StudentID === action.payload)\r\n if(selected){\r\n state.selectedStudent = selected\r\n }\r\n else if(typeof action.payload === 'object'){\r\n state.selectedStudent = action.payload\r\n }\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetStudentsInfo(state) {\r\n state.students = []\r\n },\r\n resetSelectedStudent(state){\r\n state.selectedStudent = {}\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const studentsActions = studentsSlice.actions;\r\n\r\nexport default studentsSlice;\r\n","export const formatDate = (date) => {\r\n const d = new Date(date)\r\n\r\n const yyyy = d.getFullYear();\r\n let mm = d.getMonth() + 1; // Months start at 0!\r\n let dd = d.getDate();\r\n\r\n if (dd < 10) dd = '0' + dd;\r\n if (mm < 10) mm = '0' + mm;\r\n\r\n const formatted = mm + '/' + dd + '/' + yyyy;\r\n return formatted\r\n}\r\n\r\nexport const formatDateWithDayName = (date) => {\r\n const d = new Date(date)\r\n\r\n const day = d.toLocaleString('en-us', { weekday: 'long' });\r\n\r\n const yyyy = d.getFullYear();\r\n let mm = d.getMonth() + 1; // Months start at 0!\r\n let dd = d.getDate();\r\n\r\n if (dd < 10) dd = '0' + dd;\r\n if (mm < 10) mm = '0' + mm;\r\n\r\n const formatted = mm + '/' + dd + '/' + yyyy;\r\n return day + ', ' + formatted\r\n}\r\n\r\nexport const formatDateWithTime = (date) => {\r\n const d = new Date(date)\r\n\r\n const yyyy = d.getFullYear();\r\n let mm = d.getMonth() + 1; // Months start at 0!\r\n let dd = d.getDate();\r\n\r\n if (dd < 10) dd = '0' + dd;\r\n if (mm < 10) mm = '0' + mm;\r\n\r\n let hh = d.getHours()\r\n if(hh < 10) hh = '0' + hh\r\n let m = d.getMinutes()\r\n if(m < 10) m = '0' + m\r\n let s = d.getSeconds()\r\n if(s < 10) s = '0' + s\r\n const formatted = mm + '/' + dd + '/' + yyyy + ' ' + hh + ':' + m + ':' + s;\r\n return formatted\r\n}","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n organizations: [],\r\n isLoading: false,\r\n}\r\n\r\nconst organizationsSlice = createSlice({\r\n name: \"organizations\",\r\n initialState,\r\n reducers: {\r\n loadOrganizations(state, action) {\r\n state.organizations = action.payload.organizations;\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const organizationsActions = organizationsSlice.actions;\r\n\r\nexport default organizationsSlice;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n locations: [],\r\n locationRequired: false,\r\n isLoading: false,\r\n}\r\n\r\nconst locationsSlice = createSlice({\r\n name: \"locations\",\r\n initialState,\r\n reducers: {\r\n loadLocations(state, action) {\r\n state.locations = action.payload.locations;\r\n if(action.payload.locations.length > 0){\r\n state.locationRequired = action.payload.locations[0].Required\r\n }\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const locationsActions = locationsSlice.actions;\r\n\r\nexport default locationsSlice;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n reminders: [],\r\n loadedReminders: false,\r\n isLoading: false,\r\n quantity:50\r\n}\r\n\r\nconst remindersSlice = createSlice({\r\n name: \"reminders\",\r\n initialState,\r\n reducers: {\r\n loadReminders(state, action) {\r\n state.reminders = action.payload.reminders;\r\n state.loadedReminders = true;\r\n state.quantity = action.payload.reminders.length\r\n },\r\n setIsLoading(state, action) {\r\n state.isLoading = action.payload\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const remindersActions = remindersSlice.actions;\r\n\r\nexport default remindersSlice;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"top-menu\":\"MainHeader_top-menu__3b-Ra\",\"top-menu__menu\":\"MainHeader_top-menu__menu__3mWXQ\",\"top-menu__icons\":\"MainHeader_top-menu__icons__3n-tv\",\"top-menu__icon\":\"MainHeader_top-menu__icon__3-iHK\",\"top-menu__icons--username\":\"MainHeader_top-menu__icons--username__1WgLz\",\"top-menu__username\":\"MainHeader_top-menu__username__3aH_h\",\"top-menu__logo\":\"MainHeader_top-menu__logo__17GQt\",\"top-menu__hemburger\":\"MainHeader_top-menu__hemburger__cquJK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headers\":\"Statement_headers__28WfO\",\"statement\":\"Statement_statement__2oEDU\",\"right-side\":\"Statement_right-side__3uEbf\",\"buttons-right-side\":\"Statement_buttons-right-side__1ctI6\",\"add-payment\":\"Statement_add-payment__3gb01\",\"school-details\":\"Statement_school-details__oCJd3\",\"statement-br\":\"Statement_statement-br__2KBIu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"detail-item\":\"DetailsItem_detail-item__s7p2N\",\"detail-item__header\":\"DetailsItem_detail-item__header__Ub3rW\",\"sticky\":\"DetailsItem_sticky__vA9-0\",\"detail-item__header-open\":\"DetailsItem_detail-item__header-open__1FtsD\",\"header\":\"DetailsItem_header__1ip5-\",\"title\":\"DetailsItem_title__3_7yb\",\"detail-item__body\":\"DetailsItem_detail-item__body__1cTrU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"LoginApplication_input__zAtyn\",\"button\":\"LoginApplication_button__2ez2u\",\"backdrop\":\"LoginApplication_backdrop__1KdaQ\",\"popup\":\"LoginApplication_popup__2wkco\",\"spinner-wrapper\":\"LoginApplication_spinner-wrapper__1nEC1\"};","export default __webpack_public_path__ + \"static/media/Arrow - Up 2-G.ef378be7.svg\";","import { Fragment } from 'react'\r\n\r\nimport classes from './DetailsItem.module.css'\r\nimport ArrowRight from '../../../images/Arrow - Right 2.svg'\r\nimport Arrowup from '../../../images/Arrow - Up 2-G.svg'\r\nimport ButtonMOut from '../Buttons/Buttons-Outline/ButtonMOut'\r\nimport AddButton from '../Buttons/AddButton'\r\n\r\nconst DetailsItem = (props) => {\r\n\r\n return (\r\n \r\n {props.open !== true &&
\r\n \r\n

{props.title}

\r\n {props.add && {props.add}}\r\n {props.changed && {props.onUpdate(e)}} className={classes['btn-update']} loading={props.loading}>Update}\r\n
}\r\n
\r\n
\r\n \r\n

{props.title}

\r\n {props.add && {props.add}}\r\n {props.changed && {props.onUpdate(e)}} className={classes['btn-update']} loading={props.loading}>Update}\r\n
\r\n
{props.children}
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default DetailsItem","export default __webpack_public_path__ + \"static/media/Plus.ffa712b4.svg\";","export default __webpack_public_path__ + \"static/media/Plus-g.b47411df.svg\";","\r\nimport classes from './AddButton.module.css'\r\nimport Plus from '../../../images/Plus.svg'\r\nimport PlusG from '../../../images/Plus-g.svg'\r\n\r\n\r\nconst AddButton = (props) => {\r\n\r\n return (\r\n
\r\n \r\n
{props.children}
\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default AddButton","\r\nconst formatAddress = (address) => {\r\n var formattedAddress = ''\r\n if(address.Address && address.Address.trim() !== ''){\r\n formattedAddress = address.Address + ', '\r\n }\r\n if(address.City && address.City.trim() !== ''){\r\n formattedAddress = formattedAddress + address.City + ', '\r\n }\r\n if(address.State && address.State.trim() !== ''){\r\n formattedAddress = formattedAddress + address.State + ' '\r\n }\r\n if(address.Zip && address.Zip.trim() !== ''){\r\n formattedAddress = formattedAddress + address.Zip\r\n }\r\n return formattedAddress\r\n}\r\n\r\nexport default formatAddress","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkbox-wrapper\":\"Checkbox_checkbox-wrapper__19DO0\",\"checkbox\":\"Checkbox_checkbox__3v0HZ\",\"checked\":\"Checkbox_checked__3vdvY\",\"small\":\"Checkbox_small__287n0\",\"readonly\":\"Checkbox_readonly__224Pa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"login-wrapper\":\"LoginModal_login-wrapper__nwtuk\",\"login-background\":\"LoginModal_login-background__3r5ar\",\"login-right\":\"LoginModal_login-right__15eej\",\"login-form\":\"LoginModal_login-form__2ekD_\",\"login-title\":\"LoginModal_login-title__1RPwC\",\"logo-right\":\"LoginModal_logo-right__3KPCx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"ModalDetails_modal__37dz-\",\"modal-back\":\"ModalDetails_modal-back__3yMhz\",\"mobile-back\":\"ModalDetails_mobile-back__1VwOc\",\"modal-title\":\"ModalDetails_modal-title__3pKER\",\"details-section\":\"ModalDetails_details-section__9_eyf\",\"mobile-close\":\"ModalDetails_mobile-close__2W_EZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"background\":\"PageNotFound_background__2c6ot\",\"message-box\":\"PageNotFound_message-box__3hmx8\",\"error\":\"PageNotFound_error__qREc6\",\"header\":\"PageNotFound_header__1ZJQK\",\"message\":\"PageNotFound_message__3qXV4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"completed\":\"TasksList_completed__2UeDD\",\"completed-text\":\"TasksList_completed-text__3-OOW\",\"action\":\"TasksList_action__OSNXx\",\"popup\":\"TasksList_popup__39YiO\",\"popup-item\":\"TasksList_popup-item__1g_ZE\",\"no-actions\":\"TasksList_no-actions__1Q7cp\",\"task-body\":\"TasksList_task-body__I4XKs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actions\":\"TaskActions_actions__30nbT\",\"action\":\"TaskActions_action__1QMXE\",\"loading\":\"TaskActions_loading__3gQHt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"SidePopup_popup__heKIz\",\"show\":\"SidePopup_show__3CMyZ\",\"success\":\"SidePopup_success__13I1V\",\"error\":\"SidePopup_error__1KjkH\",\"messages\":\"SidePopup_messages__31H2d\",\"header\":\"SidePopup_header__28TkJ\",\"message\":\"SidePopup_message__3uuek\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"first-row\":\"ReminderDetails_first-row__3pSkh\",\"id\":\"ReminderDetails_id__1Dv0O\",\"add-date\":\"ReminderDetails_add-date__35sKm\",\"fields\":\"ReminderDetails_fields__S5nCB\"};","\r\nimport TextButton from './TextButton'\r\nimport classes from './TextButton.module.css'\r\n\r\nconst PinkTextButton = (props) => {\r\n return (\r\n {props.children}\r\n )\r\n}\r\n\r\nexport default PinkTextButton","import Checkbox from './Checkbox';\r\n\r\nimport classes from './Checkbox.module.css'\r\n\r\nconst CheckboxS = (props) => {\r\n\r\n return (\r\n \r\n );\r\n };\r\n export default CheckboxS;","import { useCallback } from \"react\"\r\nimport { authActions } from \"../store/auth-slice\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { accountsActions } from \"../store/accounts-slice\"\r\nimport { campaignsActions } from \"../store/campaigns-slice\"\r\nimport { donorsActions } from \"../store/donors-slice\"\r\nimport { pledgesActions } from \"../store/pledges-slice\"\r\nimport { filtersActions } from \"../store/filters-slice\"\r\nimport { organizationsActions } from \"../store/organizations-slice\"\r\nimport { paymentsActions } from \"../store/payments-slice\"\r\nimport { paymentTypesActions } from \"../store/paymentTypes-slice\"\r\nimport { tendersActions } from \"../store/tenders-slice\"\r\nimport { solicitorsActions } from \"../store/solicitors-slice\"\r\nimport { shulsActions } from \"../store/shuls-slice\"\r\nimport { statementsActions } from \"../store/statements-slice\"\r\nimport { settingsActions } from \"../store/settings-slice\"\r\nimport { studentsActions } from \"../store/students-slice\"\r\nimport { hubActions } from \"../store/hub-slice\"\r\nimport { useNavigate } from \"react-router\"\r\nimport { locationsActions } from \"../store/locations-slice\"\r\nimport { remindersActions } from \"../store/reminders-slice\"\r\n\r\n\r\nconst useResetState = () => {\r\n const dispatch = useDispatch()\r\n const navigate = useNavigate()\r\n\r\n const resetState = useCallback(()=>{\r\n //navigate('/login')\r\n dispatch(authActions.logout())\r\n dispatch(accountsActions.resetState())\r\n dispatch(campaignsActions.resetState())\r\n dispatch(donorsActions.resetState())\r\n dispatch(pledgesActions.resetState())\r\n dispatch(filtersActions.resetState())\r\n dispatch(organizationsActions.resetState())\r\n dispatch(paymentsActions.resetState())\r\n dispatch(paymentTypesActions.resetState())\r\n dispatch(tendersActions.resetState())\r\n dispatch(solicitorsActions.resetState())\r\n dispatch(shulsActions.resetState())\r\n dispatch(statementsActions.resetState())\r\n dispatch(studentsActions.resetState())\r\n dispatch(settingsActions.resetState())\r\n dispatch(hubActions.resetState())\r\n dispatch(locationsActions.resetState())\r\n dispatch(remindersActions.resetState())\r\n },[dispatch])\r\n\r\n return {\r\n resetState\r\n }\r\n}\r\nexport default useResetState","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n defaultAmounts: null,\r\n cashPayment: true,\r\n checkPayment: true,\r\n settingsLoaded: false\r\n}\r\n\r\nconst settingsSlice = createSlice({\r\n name: \"settings\",\r\n initialState,\r\n reducers: {\r\n setNeededSettings(state, action) {\r\n let s = action.payload.find(a => a.Name === 'Default Amounts')\r\n if(s){\r\n state.defaultAmounts = s.Value;\r\n }\r\n s = action.payload.find(a => a.Name === 'Payment by Cash')\r\n if(s){\r\n state.cashPayment = s.Value === 'true' ? true : false\r\n }\r\n s = action.payload.find(a => a.Name === 'Payment by Check')\r\n if(s){\r\n state.checkPayment = s.Value === 'true' ? true : false\r\n }\r\n state.settingsLoaded = true\r\n },\r\n resetState:() => initialState,\r\n },\r\n});\r\n\r\nexport const settingsActions = settingsSlice.actions;\r\n\r\nexport default settingsSlice;\r\n","\r\nimport classes from './ButtonLOut.module.css'\r\nimport ButtonOut from './ButtonOut'\r\n\r\nconst ButtonLOut = (props) => {\r\n return (\r\n {props.children}\r\n )\r\n}\r\n\r\nexport default ButtonLOut","\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\nimport { remindersActions } from './reminders-slice';\r\n\r\nexport const fetchRemindersList = (amountOfRows = 50, orderBy = 0, desc = true, filter = '') => {\r\n console.log('fetching list')\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(remindersActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + `api/reminders?amountOfRows=${amountOfRows}&orderBy=${orderBy}&desc=${desc}${filter}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch reminders list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const remindersData = await fetchData()\r\n dispatch(remindersActions.loadReminders({ reminders: remindersData || [] }))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(remindersActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\n","import { useEffect } from \"react\"\r\nimport CustomSelectFreeText from \"../UI/Dropdowns/CustomSelectFreeText\"\r\nimport { fetchReminderNames } from \"../../store/hub-actions\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nconst ReminderNames = ({onChange, name, invalid, className}) => {\r\n const dispatch = useDispatch()\r\n\r\n const names = useSelector((state) => state.hub.reminderNames)\r\n \r\n\r\n useEffect(()=>{\r\n if(!names){ \r\n dispatch(fetchReminderNames())\r\n }\r\n },[names, dispatch])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ReminderNames","import { useDispatch, useSelector } from \"react-redux\"\r\nimport CustomSelectFreeText from \"../UI/Dropdowns/CustomSelectFreeText\"\r\nimport { useEffect } from \"react\"\r\nimport { fetchReminderTypes } from \"../../store/hub-actions\"\r\n\r\nconst ReminderTypes = ({type, onChange, className}) => {\r\n const dispatch = useDispatch()\r\n const types = useSelector((state) => state.hub.reminderTypes)\r\n\r\n useEffect(()=>{\r\n if(!types){\r\n dispatch(fetchReminderTypes())\r\n }\r\n },[types, dispatch])\r\n\r\n return(\r\n \r\n\r\n )\r\n}\r\n\r\nexport default ReminderTypes","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-wrapper\":\"MessageBox_message-wrapper__vlyBW\",\"message\":\"MessageBox_message__3KvcR\",\"message-header\":\"MessageBox_message-header__xIVkE\",\"message-title\":\"MessageBox_message-title__CH0TC\",\"message-close\":\"MessageBox_message-close__3wDeJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form-input__container\":\"Input_form-input__container__MCM5O\",\"form-group\":\"Input_form-group__3ZKVD\",\"readonly\":\"Input_readonly__38I0n\",\"invalid-input\":\"Input_invalid-input__ikOHH\",\"required-input\":\"Input_required-input__1c-iX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"implemented-feature\":\"ImplementedFeature_implemented-feature__1-CM_\",\"status\":\"ImplementedFeature_status__3P_-E\",\"id\":\"ImplementedFeature_id__4rAF2\",\"summary\":\"ImplementedFeature_summary__1SA49\",\"details\":\"ImplementedFeature_details__3BeTu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"add-button\":\"AddButton_add-button__2Luid\",\"border\":\"AddButton_border__3Y21_\",\"img\":\"AddButton_img__1X4u8\",\"green\":\"AddButton_green__2_a1F\",\"btn-text\":\"AddButton_btn-text__3J1I0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tasks-page\":\"TaskListForm_tasks-page__1_uO9\",\"header-line\":\"TaskListForm_header-line__kuK87\",\"header\":\"TaskListForm_header__3oDfy\",\"spinner-wrapper\":\"TaskListForm_spinner-wrapper__uoceC\",\"other-dashboards\":\"TaskListForm_other-dashboards___VExz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"Note_popup__11vt0\",\"header\":\"Note_header__3ru8I\",\"title\":\"Note_title__fdJMD\",\"note\":\"Note_note__3i6cO\",\"check\":\"Note_check__1Jbic\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"PageHeaders_header__FA4xQ\",\"header-title\":\"PageHeaders_header-title__16Yyy\",\"header__items\":\"PageHeaders_header__items__1r_9e\",\"header__search\":\"PageHeaders_header__search__2OFph\",\"header__add-btn\":\"PageHeaders_header__add-btn__kB5E_\"};","\r\nconst formatPhone = (phone) => {\r\n var formattedPhone = ''\r\n if(phone && phone.trim() !== ''){\r\n formattedPhone = '(' + phone.substring(0,3) + ') ' + phone.substring(3,6) + '-' + phone.substring(6,10)\r\n }\r\n return formattedPhone\r\n}\r\n\r\nexport default formatPhone","import { useState, useEffect, useRef } from 'react'\r\n\r\nimport classes from './CustomSelectFreeText.module.css'\r\n\r\nconst CustomSelectFreeText = ({label, options, selectedValue, onChange, invalid, required, className, onBlur}) => {\r\n const [items, setItems] = useState(options)\r\n const [isOptionsOpen, setIsOptionsOpen] = useState(false)\r\n const [cursor, setcursor] = useState(0)\r\n\r\n const itemRef = useRef()\r\n\r\n useEffect(()=> {\r\n if(selectedValue && selectedValue !== ''){\r\n var filteredList = options.filter(item => item.name.toString().toLowerCase().includes(selectedValue.toString().toLowerCase()))\r\n setItems(filteredList)\r\n if(filteredList.length === 0){\r\n setIsOptionsOpen(false)\r\n setcursor(0)\r\n }\r\n }\r\n else{\r\n setItems(options)\r\n }\r\n },[selectedValue, options])\r\n\r\n\r\n const changeInputHandler = (e) => {\r\n onChange(e.target.value)\r\n /*setInputValue(e.target.value)\r\n var filteredList = props.list\r\n if(e.target.value !== ''){\r\n filteredList = props.list.filter(item => item.label.toLowerCase().includes(e.target.value.toLowerCase()))\r\n }\r\n setItems(filteredList)\r\n if(items.length === 0 || (items.length === 1 && items[0].label === e.target.value)){\r\n setIsOptionsOpen(false)\r\n setcursor(0)\r\n }*/\r\n setIsOptionsOpen(true)\r\n }\r\n\r\n const focusInputHandler = () => {\r\n if(isOptionsOpen){\r\n setcursor(0)\r\n }\r\n setIsOptionsOpen(preState => !preState)\r\n }\r\n\r\n const optionChanged = (index) => {\r\n const value = items[index].name\r\n onChange(value)\r\n }\r\n const setSelectedThenCloseDropdown = (index) => {\r\n optionChanged(index)\r\n setIsOptionsOpen(false);\r\n setcursor(0)\r\n };\r\n \r\n const inputKeyDownHandler = (e) => {\r\n if (e.keyCode === 38 && cursor > 0) {\r\n setcursor(prevState => prevState - 1)\r\n }\r\n else if (e.keyCode === 40 && cursor < items.length - 1) {\r\n setcursor(prevState => prevState + 1)\r\n \r\n }\r\n else if (e.key === 'Enter') {\r\n setSelectedThenCloseDropdown(cursor)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n var itemComponent = itemRef;\r\n if (itemComponent && itemComponent.current) {\r\n itemComponent.current.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' })\r\n }\r\n }, [cursor])\r\n \r\n \r\n const handleKeyDown = (index) => (e) => {\r\n switch (e.key) {\r\n case \" \":\r\n case \"SpaceBar\":\r\n case \"Enter\":\r\n e.preventDefault();\r\n setSelectedThenCloseDropdown(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n \r\n const unFocuseHanler = (event) => {\r\n if(event.relatedTarget && event.relatedTarget.id && event.relatedTarget.id === \"listItem\"){\r\n return\r\n }\r\n setIsOptionsOpen(false)\r\n setcursor(0)\r\n }\r\n \r\n\r\n return (\r\n
\r\n \r\n onBlur ? onBlur() : null}/>\r\n {isOptionsOpen && \r\n {items.map((option, index) => (\r\n {\r\n setSelectedThenCloseDropdown(index);\r\n }}\r\n >\r\n {option.name}\r\n \r\n ))}\r\n }\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default CustomSelectFreeText","// extracted by mini-css-extract-plugin\nmodule.exports = {\"donor-search__wrapper\":\"SearchDonor_donor-search__wrapper__2y4eO\",\"donor-search\":\"SearchDonor_donor-search__2iFMj\",\"filter\":\"SearchDonor_filter__2TORW\"};","export default __webpack_public_path__ + \"static/media/Hide.937d88ac.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"login-form\":\"LoginForm_login-form__1B4Nd\",\"login-form__line-remember-me\":\"LoginForm_login-form__line-remember-me__UXFvu\",\"login-form__remember-me\":\"LoginForm_login-form__remember-me__MXQeP\",\"sign-in-label\":\"LoginForm_sign-in-label__3s2lc\",\"error-message\":\"LoginForm_error-message__10lQw\",\"forgot-password\":\"LoginForm_forgot-password__2WI9m\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"credentials-form\":\"JiraCredentials_credentials-form__yaeZK\",\"message\":\"JiraCredentials_message__2StyQ\",\"input\":\"JiraCredentials_input__CaSND\",\"buttons\":\"JiraCredentials_buttons__2jpTW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text-area__wrapper\":\"TextField_text-area__wrapper__1VKEL\",\"textarea\":\"TextField_textarea__17N-Z\",\"required-input\":\"TextField_required-input__3aYMM\",\"invalid-input\":\"TextField_invalid-input__1yNVU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"upload-file\":\"ImageUpload_upload-file__lQiV7\",\"custom-file-upload\":\"ImageUpload_custom-file-upload__yieuG\",\"uploaded-files\":\"ImageUpload_uploaded-files__2yZwI\",\"uploaded-file\":\"ImageUpload_uploaded-file__wJWO1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal-title\":\"ModelTitleClose_modal-title__2Vacq\",\"modal-title__main\":\"ModelTitleClose_modal-title__main__2PAa-\",\"modal-title__close\":\"ModelTitleClose_modal-title__close__3RUnT\",\"mobile-close\":\"ModelTitleClose_mobile-close___cx7E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup-item\":\"ChargeTypes_popup-item__ftcem\",\"popup-list\":\"ChargeTypes_popup-list__gfmgh\",\"left\":\"ChargeTypes_left__1m6P-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"search\":\"DonorSearchBox_search__2FT_t\",\"donors__results\":\"DonorSearchBox_donors__results__1jh7O\",\"options\":\"DonorSearchBox_options__3W-qu\",\"no-results\":\"DonorSearchBox_no-results__3uLo_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tooltip\":\"Tooltip_tooltip__1LGQK\",\"tooltip-text\":\"Tooltip_tooltip-text__1gTzS\",\"top\":\"Tooltip_top__3G0-u\",\"bottom\":\"Tooltip_bottom__2VWdR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message-box-wrapper\":\"ChangesMessageBox_message-box-wrapper__2ISSv\",\"message-box\":\"ChangesMessageBox_message-box__35cyF\",\"message-close\":\"ChangesMessageBox_message-close__2QQOs\",\"buttons\":\"ChangesMessageBox_buttons__2rN7t\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sort-button\":\"SortBy_sort-button__2jx8m\",\"sort-popup\":\"SortBy_sort-popup__aesvB\",\"wrapper\":\"SortBy_wrapper__30Mbz\",\"sort\":\"SortBy_sort__aoXRz\"};","\r\nimport classes from './ChangesMessageBox.module.css'\r\nimport ButtonL from '../Buttons/Buttons/ButtonL'\r\nimport ButtonLOut from '../Buttons/Buttons-Outline/ButtonLOut'\r\nimport Close from '../../../images/Close-dark.svg'\r\nimport TextButton from '../Buttons/TextButtons/TextButton'\r\n\r\nconst ChangesMessageBox = (props) => {\r\n\r\n\r\n return
\r\n
\r\n
\r\n

Do you want to
save changes?

\r\n
\r\n Don't Save\r\n Cancel\r\n Save Changes\r\n
\r\n
\r\n}\r\n\r\nexport default ChangesMessageBox","import classes from './ListItem.module.css'\r\n\r\nconst ListItem = (props) => {\r\n\r\n return(\r\n
{}}>\r\n {props.children}\r\n
\r\n )\r\n}\r\n\r\nexport default ListItem","import TextButton from './TextButton'\r\nimport classes from './TextButton.module.css'\r\n\r\nconst GreenTextButton = (props) => {\r\n return (\r\n {props.children}\r\n )\r\n}\r\n\r\nexport default GreenTextButton","export default __webpack_public_path__ + \"static/media/Arrow - Right with Line.9b647f8f.svg\";","export default __webpack_public_path__ + \"static/media/Arrow - Right with Line-W.5060c521.svg\";","import { Fragment } from 'react'\r\nimport BackdropBlur from './BackdropBlur'\r\n\r\nimport classes from './ModalDetails.module.css'\r\nimport Arrow from '../../../images/Arrow - Right with Line.svg'\r\nimport ArrowW from '../../../images/Arrow - Right with Line-W.svg'\r\nimport Close from '../../../images/Close-light.svg'\r\n\r\nconst ModalDetails = (props) => {\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{props.title} Details

\r\n {props.id &&

{props.title} ID: {props.id}

}\r\n \"\"/\r\n
\r\n
{props.children}
\r\n
\r\n
)\r\n\r\n}\r\n\r\nexport default ModalDetails","export default __webpack_public_path__ + \"static/media/success-check.66e30b54.svg\";","\r\nimport classes from './Notification.module.css'\r\nimport errorCheck from '../../../images/error-check.svg'\r\nimport successCheck from '../../../images/success-check.svg'\r\nimport close from '../../../images/Close-dark.svg'\r\nimport { Fragment } from 'react'\r\nimport ReactDom from 'react-dom'\r\n\r\n\r\nconst Notification = ({message, onClose, children, additionalInfo}) => {\r\n const portalElement = document.getElementById('overlays')\r\n\r\n let specialClasses = '';\r\n\r\n if (message.status === 'error') {\r\n specialClasses = classes.error;\r\n }\r\n if (message.status === 'success') {\r\n specialClasses = classes.success;\r\n }\r\n\r\n const cssClasses = `${classes.notification} ${specialClasses}`;\r\n\r\n return (\r\n {ReactDom.createPortal(\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n

{message.title}

\r\n

{message.message}

\r\n {message.link &&

{message.link}

}\r\n
\r\n {additionalInfo}\r\n
\r\n {children}\r\n
\r\n
\r\n
, portalElement)}\r\n
\r\n )\r\n}\r\n\r\nexport default Notification","import { useSelector } from 'react-redux'\r\nimport React,{ useState, useEffect, Fragment } from 'react'\r\n\r\nimport CustomSelect from '../../UI/Dropdowns/CustomSelect'\r\n\r\n\r\nconst ShulsList = (props) => {\r\n\r\n //#region hooks\r\n const [shuls, setShuls] = useState()\r\n\r\n const shulList = useSelector((state) => state.shuls.shuls)\r\n\r\n useEffect(() => {\r\n\r\n if (shulList.length !== 0) {\r\n let initialShul\r\n if (props.shulID) {\r\n initialShul = shulList.find(shul => shul.AppealsShulYearID === props.shulID)\r\n }else{\r\n initialShul = shulList.find(shul => shul.Default === true)\r\n if(initialShul){\r\n props.onChange(initialShul.AppealsShulYearID)\r\n }else{\r\n props.onChange(shulList[0].AppealsShulYearID)\r\n }\r\n }\r\n const shuls = shulList.map(shul => {\r\n return {value: shul.AppealsShulYearID, name: shul.Name}\r\n })\r\n setShuls(shuls)\r\n }\r\n }, [shulList, props.shulID])\r\n\r\n //#endregion\r\n\r\n //#region event handlers\r\n const changeShulHandler =(id) => {\r\n props.onChange(id)\r\n props.onChangeInput()\r\n }\r\n\r\n //#endregion\r\n \r\n return (\r\n \r\n {shuls && shuls.length !== 0 && }\r\n \r\n )\r\n}\r\n\r\nexport default React.memo(ShulsList)","\r\nimport FixedButtonsBar from './FixedButtonsBar'\r\nimport classes from './FixedRightBar.module.css'\r\n\r\nconst FixedRightBar = (props) => {\r\n\r\n return (\r\n {props.children}\r\n )\r\n}\r\n\r\nexport default FixedRightBar","import { Fragment } from 'react'\r\n\r\nimport classes from './ModalNew.module.css'\r\nimport BackdropBlur from './BackdropBlur'\r\nimport ModelTitleClose from '../Others/ModelTitleClose'\r\n\r\nconst ModalNew = (props) => {\r\n\r\n return(\r\n \r\n (\r\n
\r\n \r\n
\r\n
{props.children}
\r\n
\r\n
\r\n
, portalElement)\r\n
)\r\n}\r\n\r\nexport default ModalNew\r\n\r\n","\r\nconst CurrentDateForDateInput = () => {\r\n var date = new Date();\r\n\r\nvar day = (\"0\" + date.getDate()).slice(-2);\r\nvar month = (\"0\" + (date.getMonth() + 1)).slice(-2);\r\n\r\nvar today = date.getFullYear() + \"-\" + (month) + \"-\" + (day);\r\nreturn today;\r\n}\r\n\r\nexport const FormatDateForDateInput = (date) => {\r\n var d = new Date(date);\r\n\r\n var day = (\"0\" + d.getDate()).slice(-2);\r\n var month = (\"0\" + (d.getMonth() + 1)).slice(-2);\r\n \r\n var today = d.getFullYear() + \"-\" + (month) + \"-\" + (day);\r\n return today;\r\n \r\n}\r\n\r\nexport const CurrentDateForDateTimeInput = () => {\r\n var now = new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60000).toISOString().split('Z')[0]\r\n now = now.slice(0, now.lastIndexOf(\":\"))\r\nreturn now;\r\n}\r\nexport default CurrentDateForDateInput","import { findWindows } from \"windows-iana\";\r\n\r\nexport const getTimeZone = () => {\r\n const ianaTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n const windowsTimeZone = findWindows(ianaTimeZone) || \"UTC\"; // Convert IANA to Windows\r\n\r\n return windowsTimeZone\r\n \r\n}","import LoadingSpinner from './LoadingSpinner'\r\nimport classes from './LoadingSpinnerMidlle.module.css'\r\n\r\nconst LoadingSpinnerMiddle = () => {\r\n\r\n return \r\n}\r\n\r\nexport default LoadingSpinnerMiddle","import { CurrentDateForDateTimeInput } from \"./datesForDateInput\";\r\n\r\nexport const converDateForBackendWithCurrentTime = (date) => {\r\n var time = new Date(CurrentDateForDateTimeInput())\r\n var hour = time.getHours(); \r\n hour = ('0'+hour.toString()).slice(-2); //get it into two digits\r\n var minute = time.getMinutes(); \r\n minute = ('0'+minute.toString()).slice(-2); //get it into two digits\r\n var convertedDate = date + 'T' + hour + ':' + minute\r\n return convertedDate\r\n\r\n}","import addCommas from \"./addCommasToNumber\"\r\n\r\nconst toDecimal = (number) => {\r\n let n = parseFloat(number || 0).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })\r\n return n\r\n}\r\n\r\nexport const toDecimalWithCommas = (number) => {\r\n let n = toDecimal(number)\r\n n = addCommas(n)\r\n return n\r\n}\r\n\r\nexport default toDecimal","export default __webpack_public_path__ + \"static/media/Message green.56fe8000.svg\";","export default __webpack_public_path__ + \"static/media/Email green.1738fd0c.svg\";","import { useDispatch } from \"react-redux\"\r\nimport useHttp from \"../../hooks/use-http\"\r\nimport ButtonMOut from \"../UI/Buttons/Buttons-Outline/ButtonMOut\"\r\nimport classes from './SendReminder.module.css'\r\nimport { uiActions } from \"../../store/ui-slice\"\r\nimport { getSentMessageBody } from \"../../functions/getMessageBody\"\r\nimport message from '../../images/Message green.svg'\r\nimport email from '../../images/Email green.svg'\r\nimport Tooltip from \"../UI/Others/Tooltip\"\r\nimport { useState } from \"react\"\r\n\r\nconst SendReminder = ({id, isPledge, isEdit}) => {\r\n const {sendRequest, isLoading} = useHttp()\r\n const dispatch = useDispatch()\r\n const [isEmail, setIsEmail] = useState(false)\r\n\r\n \r\n const sendReminderHandler = (value) => {\r\n setIsEmail(value)\r\n if(isPledge){\r\n sendRequest({url: `api/sendPledgeReminder?pledgeId=${id}&isEmail=${value}`}, handleResponse)\r\n }\r\n else{\r\n sendRequest({url: `api/sendReminder?reminderId=${id}&isEmailReminder=${value}`}, handleResponse)\r\n }\r\n }\r\n\r\n const handleResponse = (data) =>{\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: getSentMessageBody('reminder')}))\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: getSentMessageBody('reminder', false), message: data}))\r\n }\r\n }\r\n \r\n return(\r\n
\r\n {!isEdit && isPledge && \r\n sendReminderHandler(true)} src={email} alt='email'/>\r\n }\r\n {!isEdit && isPledge && sendReminderHandler(false)} src={message} alt='text'/>}\r\n {(isEdit || !isPledge) && sendReminderHandler(false)}>\r\n Send Text Reminder}\r\n {(isEdit || !isPledge) && sendReminderHandler(true)}>\r\n Send Email Reminder}\r\n
\r\n )\r\n}\r\n\r\nexport default SendReminder","export default __webpack_public_path__ + \"static/media/Show.3f1dd88e.svg\";","import { Fragment } from 'react'\r\n\r\nimport classes from './FixedButtonsBar.module.css'\r\n\r\nconst FixedButtonsBar = (props) => {\r\n\r\n return (\r\n \r\n
{props.children}
\r\n
\r\n )\r\n}\r\n\r\nexport default FixedButtonsBar","export default __webpack_public_path__ + \"static/media/error-check.ed6c2fae.svg\";","\r\nimport classes from './Button.module.css'\r\nimport LoadingSpinnerButton from '../../LoadingSpinners/LoadingSpinnerButton'\r\n\r\n\r\nconst Button = (props) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Button","import classes from './LoadingSpinnerButton.module.css'\r\n\r\nconst LoadingSpinnerButton = () => {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LoadingSpinnerButton","\r\nimport classes from './ButtonOut.module.css'\r\n\r\nconst ButtonOut = (props) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ButtonOut","export default __webpack_public_path__ + \"static/media/Close-light.f7008315.svg\";","export default __webpack_public_path__ + \"static/media/Arrow - Right 2.e541f3d6.svg\";","import classes from './LoadingSpinnerButtonLight.module.css'\r\n\r\nconst LoadingSpinnerButtonLight = () => {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LoadingSpinnerButtonLight","import TextButton from './TextButton'\r\nimport classes from './TextButton.module.css'\r\n\r\nconst GrayTextButton = (props) => {\r\n return (\r\n {props.children}\r\n )\r\n}\r\n\r\nexport default GrayTextButton","\r\nimport classes from './ModelTitleClose.module.css'\r\nimport Close from '../../../images/Close-light.svg'\r\nimport CloseB from '../../../images/Close-dark.svg'\r\n\r\nconst ModelTitleClose = (props) => {\r\n return ( \r\n
\r\n

{props.title}

\r\n
\r\n

Close

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ModelTitleClose","export default __webpack_public_path__ + \"static/media/Call.584454c4.svg\";","export default __webpack_public_path__ + \"static/media/Location.953d26a3.svg\";","export default __webpack_public_path__ + \"static/media/Message.935338fa.svg\";","export default __webpack_public_path__ + \"static/media/Plus-light small.e39513f0.svg\";","export default __webpack_public_path__ + \"static/media/Search.f31514fd.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Hub.9b9c5b4a.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Hub active.c570cb4c.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Donors.a739aa68.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Donors active.fd82ad2b.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Payments.9f52d648.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Payments active.393b4022.svg\";","export default __webpack_public_path__ + \"static/media/Nav-RecPayments.768509ab.svg\";","export default __webpack_public_path__ + \"static/media/Nav-RecPayments active.b6174ebf.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Pledges.eb3fd9d1.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Pledges active.163e5aaf.svg\";","export default __webpack_public_path__ + \"static/media/Nav-RecPledges.0f185dd1.svg\";","export default __webpack_public_path__ + \"static/media/Nav-RecPledges active.397a7f26.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Settings.b5c10c39.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Settings active.eed25c7d.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Features.9496688b.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Features active.4bfbb09d.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Reminders.897424f9.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Reminders active.b6355f79.svg\";","import React, { useState, Fragment } from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\n\r\nimport hub from '../../../images/Nav-Hub.svg'\r\nimport hubActive from '../../../images/Nav-Hub active.svg'\r\nimport donors from '../../../images/Nav-Donors.svg'\r\nimport donorsActive from '../../../images/Nav-Donors active.svg'\r\nimport payments from '../../../images/Nav-Payments.svg'\r\nimport paymentsActive from '../../../images/Nav-Payments active.svg'\r\nimport recPayments from '../../../images/Nav-RecPayments.svg'\r\nimport recPaymentsActive from '../../../images/Nav-RecPayments active.svg'\r\nimport pledges from '../../../images/Nav-Pledges.svg'\r\nimport pledgesActive from '../../../images/Nav-Pledges active.svg'\r\nimport recPledges from '../../../images/Nav-RecPledges.svg'\r\nimport recPledgesActive from '../../../images/Nav-RecPledges active.svg'\r\nimport setting from '../../../images/Nav-Settings.svg'\r\nimport settingActive from '../../../images/Nav-Settings active.svg'\r\nimport features from '../../../images/Nav-Features.svg'\r\nimport featuresActive from '../../../images/Nav-Features active.svg'\r\nimport reminders from '../../../images/Nav-Reminders.svg'\r\nimport remindersActive from '../../../images/Nav-Reminders active.svg'\r\nimport classes from './MainSidebar.module.css'\r\nimport { useSelector } from 'react-redux'\r\n\r\nconst SidebarNav = (props) => {\r\n\r\n //#region hooks \r\n\r\n\r\n const [donorsSrc, setDonorsSrc] = useState(donors)\r\n const [paymentsSrc, setPaymentsSrc] = useState(payments)\r\n const [recPaymentsSrc, setRecPaymentsSrc] = useState(recPayments)\r\n const [pledgesSrc, setPledgesSrc] = useState(pledges)\r\n const [recPledgesSrc, setRecPledgesSrc] = useState(recPledges)\r\n const [settingsSrc, setSettingsSrc] = useState(setting)\r\n const [featuresSrc, setFeaturesSrc] = useState(features)\r\n const [hubSrc, setHubSrc] = useState(hub)\r\n const [remindersSrc, setRemindersSrc] = useState(reminders)\r\n\r\n const allowHub = useSelector((state) => state.auth.hub)\r\n\r\n //#endregion\r\n\r\n //#region event handlers\r\n const donorHoverHandler = () => {\r\n setDonorsSrc(donorsActive)\r\n }\r\n\r\n const donorLeaveHandler = () => {\r\n setDonorsSrc(donors)\r\n }\r\n\r\n const paymentsHoverHandler = () => {\r\n setPaymentsSrc(paymentsActive)\r\n }\r\n\r\n const paymentsLeaveHandler = () => {\r\n setPaymentsSrc(payments)\r\n }\r\n\r\n const recPaymentsHoverHandler = () => {\r\n setRecPaymentsSrc(recPaymentsActive)\r\n }\r\n\r\n const recPaymentsLeaveHandler = () => {\r\n setRecPaymentsSrc(recPayments)\r\n }\r\n\r\n const pledgesHoverHandler = () => {\r\n setPledgesSrc(pledgesActive)\r\n }\r\n\r\n const pledgesLeaveHandler = () => {\r\n setPledgesSrc(pledges)\r\n }\r\n\r\n const recPledgesHoverHandler = () => {\r\n setRecPledgesSrc(recPledgesActive)\r\n }\r\n\r\n const recPledgesLeaveHandler = () => {\r\n setRecPledgesSrc(recPledges)\r\n }\r\n\r\n const SettingsHoverHandler = () => {\r\n setSettingsSrc(settingActive)\r\n }\r\n\r\n const SettingsLeaveHandler = () => {\r\n setSettingsSrc(setting)\r\n }\r\n\r\n const featuresHoverHandler = () => {\r\n setFeaturesSrc(featuresActive)\r\n }\r\n\r\n const featuresLeaveHandler = () => {\r\n setFeaturesSrc(features)\r\n }\r\n\r\n const hubHoverHandler = () => {\r\n setHubSrc(hubActive)\r\n }\r\n\r\n const hubLeaveHandler = () => {\r\n setHubSrc(hub)\r\n }\r\n\r\n const remindersHoverHandler = () => {\r\n setRemindersSrc(remindersActive)\r\n }\r\n\r\n const remindersLeaveHandler = () => {\r\n setRemindersSrc(reminders)\r\n }\r\n\r\n //#endregion\r\n\r\n //#region nav items active/not active\r\n const activeDonors =
Donors
\r\n const inActiveDonors =
Donors
\r\n\r\n const activePayments =
Payments
\r\n const inActuvePayments =
Payments
\r\n\r\n const activeRecPayments =
Payments
\r\n const inActuveRecPayments =
Payments
\r\n\r\n const activePledges =
Pledges
\r\n const inActivePledges =
Pledges
\r\n\r\n const activeRecPledges =
Pledges
\r\n const inActiveRecPledges =
Pledges
\r\n\r\n const activeSettings =
Settings
\r\n const inActiveSettings =
Settings
\r\n\r\n const activeFeatures =
Features
\r\n const inActiveFeatures =
Features
\r\n\r\n const activeHub =
Hub
\r\n const inActiveHub =
Hub
\r\n\r\n const activeReminders =
Reminders
\r\n const inActiveReminders =
Reminders
\r\n\r\n //#endregion\r\n \r\n return (\r\n \r\n {allowHub &&
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeHub : inActiveHub}\r\n />\r\n
  • }\r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeDonors : inActiveDonors}\r\n />\r\n
  • \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activePayments : inActuvePayments}\r\n />\r\n
  • \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeRecPayments : inActuveRecPayments}\r\n />\r\n
  • \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activePledges : inActivePledges}\r\n />\r\n
  • \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeRecPledges : inActiveRecPledges}\r\n />\r\n
  • \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeReminders : inActiveReminders}\r\n />\r\n
  • \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeSettings : inActiveSettings}\r\n />\r\n
  • \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeFeatures : inActiveFeatures}\r\n />\r\n
  • \r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default SidebarNav","export default __webpack_public_path__ + \"static/media/Nav-Statement.df26b3e9.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Statement active.ec522775.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Students.0da7e804.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Students active.03724d1d.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Registration.20e28578.svg\";","export default __webpack_public_path__ + \"static/media/Nav-Registration active.899dfbbe.svg\";","import React, { useState, Fragment } from 'react'\r\nimport { NavLink, useParams } from 'react-router-dom'\r\n\r\nimport statement from '../../../images/Nav-Statement.svg'\r\nimport statementActive from '../../../images/Nav-Statement active.svg'\r\nimport students from '../../../images/Nav-Students.svg'\r\nimport studentsActive from '../../../images/Nav-Students active.svg'\r\nimport registration from '../../../images/Nav-Registration.svg'\r\nimport registrationActive from '../../../images/Nav-Registration active.svg'\r\nimport classes from './MainSidebar.module.css'\r\n\r\nconst SidebarNavParents = (props) => {\r\n \r\n const params = useParams()\r\n\r\n const [statementSrc, setStatementSrc] = useState(statement)\r\n const [studentsSrc, setStudentsSrc] = useState(students)\r\n const [registrationSrc, setRegistrationSrc] = useState(registration)\r\n\r\n const statementHoverHandler = () => {\r\n setStatementSrc(statementActive)\r\n }\r\n\r\n const statementLeaveHandler = () => {\r\n setStatementSrc(statement)\r\n }\r\n\r\n const studentsHoverHandler = () => {\r\n setStudentsSrc(studentsActive)\r\n }\r\n\r\n const studentsLeaveHandler = () => {\r\n setStudentsSrc(students)\r\n }\r\n\r\n const registrationHoverHandler = () => {\r\n setRegistrationSrc(registrationActive)\r\n }\r\n\r\n const registrationLeaveHandler = () => {\r\n setRegistrationSrc(registration)\r\n }\r\n\r\n\r\n\r\n const activeStatement =
    \r\n const inActiveStatement =
    \r\n\r\n const activeStudents =
    \r\n const inActiveStudents =
    \r\n\r\n const activeRegistration =
    \r\n const inActiveRegistration =
    \r\n\r\n return (\r\n \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeStatement : inActiveStatement}\r\n />\r\n
  • \r\n
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeStudents : inActiveStudents}\r\n />\r\n
  • \r\n {localStorage.getItem('ShowRegistration') && localStorage.getItem('ShowRegistration') === 'true' &&
  • props.onClose ? props.onClose() : {}}>\r\n `${classes['main-sidebar__nav']} ${navData.isActive ? classes.active : ''}`}\r\n children={(navData) => navData.isActive ? activeRegistration : inActiveRegistration}\r\n />\r\n
  • }\r\n
    \r\n )\r\n}\r\n\r\nexport default SidebarNavParents","\r\nimport React, { Fragment, useEffect, useState } from 'react'\r\nimport formatAddress from '../../../../functions/formatAddress'\r\nimport formatPhone from '../../../../functions/formatPhone'\r\nimport classes from './DonorSearchItem.module.css'\r\n\r\nconst DonorSearchItem = React.forwardRef((props, ref) => {\r\n const [address, setAddress] = useState()\r\n const [phoneHome, setPhoneHome] = useState()\r\n const [phoneMobile, setPhoneMobile] = useState()\r\n\r\n useEffect(() => {\r\n const address = formatAddress(props.option.address)\r\n setAddress(address)\r\n }, [props.option.address])\r\n\r\n useEffect(() => {\r\n const phone = formatPhone(props.option.phoneHome)\r\n setPhoneHome(phone)\r\n }, [props.option.phoneHome])\r\n\r\n useEffect(() => {\r\n const phone = formatPhone(props.option.phoneMobile)\r\n setPhoneMobile(phone)\r\n }, [props.option.phoneMobile])\r\n\r\n return (\r\n \r\n \r\n

    {props.option.name}

    \r\n

    ID: {props.option.value}

    \r\n

    {phoneMobile}

    {phoneHome}

    {(phoneHome || phoneMobile) && props.option.email && '|'}

    {props.option.email}

    \r\n

    {address}

    \r\n \r\n
    \r\n
    \r\n )\r\n})\r\n\r\nexport default DonorSearchItem","import LoadingSpinner from \"./LoadingSpinner\"\r\nimport classes from './LoadingSpinnerSearchBox.module.css'\r\n\r\nconst LoadingSpinnerSearchBox = () => {\r\n\r\n return \r\n}\r\n\r\nexport default LoadingSpinnerSearchBox","import { useState, useRef, useEffect } from 'react'\r\n\r\nimport classes from './DonorSearchBox.module.css'\r\nimport Search from '../../../../images/Search.svg'\r\nimport DonorSearchItem from './DonorSearchItem';\r\nimport LoadingSpinnerSearchBox from '../../LoadingSpinners/LoadingSpinnerSearchBox';\r\n\r\nconst DonorSearchBox = (props) => {\r\n const itemRef = useRef()\r\n\r\n const [inputValue, setInputValue] = useState('')\r\n const [isOptionsOpen, setIsOptionsOpen] = useState(false)\r\n const [cursor, setcursor] = useState(0)\r\n const [timerRunning, setTimerRunning] = useState() \r\n const typingTimeout = useRef(null);\r\n\r\n\r\n\r\n const changeInputHandler = (e) => {\r\n const value = e.target.value\r\n if(value !== inputValue){\r\n if (typingTimeout.current) {\r\n clearTimeout(typingTimeout.current);\r\n }\r\n let valueForSearch = undefined\r\n if(value && value.length > 2) valueForSearch = value\r\n else if(value.length < 3 && (!value || inputValue.length > 2 )) valueForSearch = ''\r\n if(valueForSearch !== undefined){\r\n setTimerRunning(true)\r\n typingTimeout.current = setTimeout(() => {\r\n handleStopTyping(valueForSearch);\r\n }, 1000); \r\n }\r\n setInputValue(value)\r\n }\r\n setIsOptionsOpen(true)\r\n }\r\n\r\n const handleStopTyping = (value) => {\r\n setTimerRunning(false)\r\n props.onChangeSearchbox(value)\r\n };\r\n\r\n const optionChanged = (index) => {\r\n if (props.list.length !== 0) {\r\n const value = props.list[index].value\r\n props.onSelect(value)\r\n }\r\n }\r\n const setSelectedThenCloseDropdown = (index) => {\r\n optionChanged(index)\r\n setIsOptionsOpen(false);\r\n };\r\n\r\n const handleKeyDown = (index) => (e) => {\r\n switch (e.key) {\r\n case \" \":\r\n case \"SpaceBar\":\r\n case \"Enter\":\r\n e.preventDefault();\r\n setSelectedThenCloseDropdown(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const inputKeyDownHandler = (e) => {\r\n if (e.keyCode === 38 && cursor > 0) {\r\n setcursor(prevState => prevState - 1)\r\n }\r\n else if (e.keyCode === 40 && cursor < props.list.length - 1) {\r\n setcursor(prevState => prevState + 1)\r\n\r\n }\r\n else if (e.key === 'Enter') {\r\n setSelectedThenCloseDropdown(cursor)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n var itemComponent = itemRef;\r\n if (itemComponent && itemComponent.current) {\r\n itemComponent.current.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'center',\r\n inline: 'center',\r\n })\r\n }\r\n }, [cursor])\r\n\r\n \r\n\r\n \r\n\r\n const unFocuseHandler = (event) => {\r\n if (event.relatedTarget && event.relatedTarget.id && event.relatedTarget.id === \"listItem\") {\r\n return\r\n }\r\n //setIsOptionsOpen(false)\r\n }\r\n\r\n\r\n return (\r\n
    \r\n \r\n \r\n {props.list.length > 0 && isOptionsOpen &&

    {props.list.length} Results

    }\r\n {isOptionsOpen && inputValue.length > 2 &&\r\n {props.loading && }\r\n {!props.loading && props.list.length === 0 && !timerRunning &&

    No Results

    }\r\n {props.list.map((option, index) => (\r\n {\r\n setSelectedThenCloseDropdown(index);\r\n }}\r\n active={cursor === index}\r\n option={option}\r\n scrollIntoView\r\n />\r\n ))}\r\n }\r\n
    \r\n\r\n )\r\n}\r\n\r\nexport default DonorSearchBox","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrap-circles\":\"CircleProgressBar_wrap-circles__1ocJj\",\"circle\":\"CircleProgressBar_circle__2ksY4\",\"per-75\":\"CircleProgressBar_per-75__3ILvj\",\"inner\":\"CircleProgressBar_inner__U5FLG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttons\":\"SendReminder_buttons__1WYX4\",\"top\":\"SendReminder_top__dcFnp\",\"loading\":\"SendReminder_loading__1g8qw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filter\":\"FilterButton_filter__MENDf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filter-modal\":\"FilterModal_filter-modal__1VWqW\",\"filter-header\":\"FilterModal_filter-header__3jCKJ\",\"filter-buttons\":\"FilterModal_filter-buttons__qDUrm\",\"filter-cancel\":\"FilterModal_filter-cancel__3z4-v\"};","import { studentsActions } from './students-slice';\r\nimport store from './index' \r\nimport { authActions } from './auth-slice';\r\n\r\n\r\nexport const fetchStudentsList = (id = 0) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(studentsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/students/' + id, {\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch students list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const studentsData = await fetchData()\r\n dispatch(studentsActions.loadStudents({ students: studentsData || [] }))\r\n } catch (error) {\r\n\r\n }\r\n finally {\r\n dispatch(studentsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\n","import classes from './Tooltip.module.css';\r\n\r\nconst Tooltip = ({ children, className, tooltipText, top }) => {\r\n return (\r\n
    \r\n {children}\r\n \r\n {tooltipText}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Tooltip;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinner-wrapper\":\"LoadingSpinner_spinner-wrapper__zUZSG\",\"loader\":\"LoadingSpinner_loader__1iJqL\",\"rotation\":\"LoadingSpinner_rotation__aaqQ_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main-sidebar\":\"MobileSidebar_main-sidebar__1CcDx\",\"main-sidebar__items\":\"MobileSidebar_main-sidebar__items__3hn4F\",\"main-sidebar__item\":\"MobileSidebar_main-sidebar__item__1vnd-\",\"main-sidebar__nav\":\"MobileSidebar_main-sidebar__nav__1akST\",\"active\":\"MobileSidebar_active__3zf-F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn\":\"Button_btn__nCjwA\",\"delete\":\"Button_delete__1d_ex\",\"spinning\":\"Button_spinning__1u9qp\",\"spinner\":\"Button_spinner__2Woa0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"LoadingSpinnerButton_container__1QdN9\",\"loader\":\"LoadingSpinnerButton_loader__cuNcP\",\"rotation\":\"LoadingSpinnerButton_rotation__38FB7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"LoadingSpinnerButtonLight_container__KNPuU\",\"loader\":\"LoadingSpinnerButtonLight_loader__2CnJ_\",\"rotation\":\"LoadingSpinnerButtonLight_rotation__fAjdS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"ModalNew_modal__o7k3A\",\"modal-title\":\"ModalNew_modal-title__NIQCz\",\"modal-title__main\":\"ModalNew_modal-title__main__31Glq\",\"modal-title__close\":\"ModalNew_modal-title__close__A-9K4\",\"mobile-close\":\"ModalNew_mobile-close__Mtp1A\",\"modal-white\":\"ModalNew_modal-white__2xY9X\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"AddNewFeature_header__272yK\",\"description\":\"AddNewFeature_description__FRHtu\",\"success-message\":\"AddNewFeature_success-message__2M-6k\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"list\":\"TaskList_list__3qMvM\",\"footer\":\"TaskList_footer__1VBiq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"PopupList_popup__2iPaa\",\"loading\":\"PopupList_loading__j5OCZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup-item\":\"PopupListItem_popup-item__1LTrh\",\"second\":\"PopupListItem_second__2Ggb8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"email-popup\":\"SmallPopup_email-popup__1VeBZ\",\"email-popup__close\":\"SmallPopup_email-popup__close__1Qts2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"search-spinner\":\"LoadingSpinnerSearchBox_search-spinner__VxGKA\",\"spinner\":\"LoadingSpinnerSearchBox_spinner__1DmFM\"};","import { useState, useRef, useEffect, forwardRef } from 'react'\r\n\r\nimport Dropdown from '../../../images/Arrow - Down small.svg'\r\nimport classes from './MultiSelect.module.css'\r\nimport Close from '../../../images/Close-dark.svg'\r\nimport CheckboxS from '../Checkboxs/CheckboxS'\r\n\r\n\r\nconst MultiSelect = forwardRef((props, ref) => {\r\n const inputRef = useRef()\r\n const itemRef = useRef()\r\n\r\n const [items, setItems] = useState([])\r\n const [isOptionsOpen, setIsOptionsOpen] = useState(false)\r\n const [cursor, setcursor] = useState(0)\r\n const [inputValue, setInputValue] = useState('')\r\n\r\n useEffect(() => {\r\n var itemComponent = itemRef;\r\n if (itemComponent && itemComponent.current) {\r\n itemComponent.current.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'center',\r\n inline: 'center',\r\n })\r\n }\r\n }, [cursor])\r\n\r\n useEffect(()=>{\r\n if(props.options && props.options.length > 0){\r\n setItems(props.options)\r\n }\r\n },[props.options])\r\n\r\n useEffect(() => {\r\n if (!isOptionsOpen) {\r\n setcursor(0)\r\n }\r\n }, [isOptionsOpen])\r\n\r\n const changeInputHandler = (e) => {\r\n const list = props.options.filter(option => option.label.toLowerCase().includes(e.target.value.toLowerCase()))\r\n setItems(list)\r\n setInputValue(e.target.value)\r\n setIsOptionsOpen(true)\r\n }\r\n\r\n const unselectItemHandler = (id) => {\r\n props.toggleOption({ id: id })\r\n setInputValue('')\r\n setItems(props.options)\r\n // inputRef.current.focus()\r\n }\r\n\r\n\r\n // const focusInputHandler = (e) => {\r\n // console.log(e)\r\n // e.stopPropagation()\r\n // setOptionsOpened(true)\r\n //}\r\n\r\n\r\n\r\n const optionChanged = (index) => {\r\n const id = items[index].id\r\n props.toggleOption({ id: id })\r\n setInputValue('')\r\n }\r\n const setSelectedThenCloseDropdown = (index) => {\r\n optionChanged(index)\r\n };\r\n\r\n\r\n const handleKeyDown = (index) => (e) => {\r\n switch (e.key) {\r\n case \" \":\r\n case \"SpaceBar\":\r\n case \"Enter\":\r\n e.preventDefault();\r\n setSelectedThenCloseDropdown(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const inputKeyDownHandler = (e) => {\r\n if (e.keyCode === 38 && cursor > 0) {\r\n setcursor(prevState => prevState - 1)\r\n }\r\n else if (e.keyCode === 40 && cursor < items.length - 1) {\r\n setcursor(prevState => prevState + 1)\r\n\r\n }\r\n else if (e.key === 'Enter') {\r\n setSelectedThenCloseDropdown(cursor)\r\n }\r\n }\r\n\r\n const unFocuseHandler = () => {\r\n setIsOptionsOpen(false)\r\n setInputValue('')\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n
    {props.selected.map((option, index) => {\r\n return

    {option.label}

    unselectItemHandler(option.id)}>
    \r\n })}\r\n \r\n
    \r\n
    {setIsOptionsOpen(prevState => !prevState); inputRef.current.focus()}}>\r\n {props.selected.length > 0 && \"arrow\"/}\r\n \r\n
    \r\n
    \r\n {isOptionsOpen &&\r\n
      \r\n {items.map((option, index) => {\r\n const isSelected = props.selected.some(e => e.id === option.id)\r\n return (\r\n setSelectedThenCloseDropdown(index)}\r\n onKeyDown={handleKeyDown(index)}\r\n key={option.id}\r\n ref={cursor === index ? itemRef : null}\r\n id='listItem'>\r\n {option.label}\r\n {}}/>\r\n \r\n )\r\n })}\r\n
    }\r\n
    \r\n )\r\n})\r\n\r\nexport default MultiSelect","import { paymentsActions } from './payments-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\n\r\nexport const fetchPaymentsList = (amountOfRows, orderBy = 0, desc = true, filter = '') => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(paymentsActions.setIsLoading(true))\r\n if(amountOfRows === 50){\r\n dispatch(paymentsActions.loadPayments({payments: []}))\r\n }\r\n if(!localStorage.getItem('token') || localStorage.getItem('token') === ''){\r\n return []\r\n }\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n url = url + 'api/payments'\r\n url = url + `?rows=${amountOfRows >=50 ? amountOfRows : '50'}&orderBy=${orderBy}&desc=${desc}${filter}`\r\n const response = await fetch(url,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch payments list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const paymentsData = await fetchData()\r\n dispatch(paymentsActions.loadPayments({ payments: paymentsData || [] }))\r\n dispatch(paymentsActions.setIsLoading(false))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\n\r\n\r\nexport const fetchPaymentsForDonor = (donorId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + `api/payments?rows=1000&donors[0]=${donorId}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch payments list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const paymentsData = await fetchData()\r\n dispatch(paymentsActions.loadPaymentsForDonor({ payments: paymentsData || [] }))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const fetchPaymentsForPledge = (pledgeId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + `api/paymentsforpledge/${pledgeId}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch payments for pledge.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const paymentsData = await fetchData()\r\n dispatch(paymentsActions.loadPaymentsForPledge({ payments: paymentsData || [] }))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const setSelectedPaymentToNull = () => {\r\n return (dispatch) => {\r\n dispatch(paymentsActions.resetSelectedPayment())\r\n }\r\n}\r\n\r\nexport const fetchRecurringPaymentsList = (amountOfRows, orderBy = 20, desc = true, filter = '') => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(paymentsActions.setRecurringIsLoading(true))\r\n if(amountOfRows === 50){\r\n dispatch(paymentsActions.loadRecurringPayments({ payments: [] }))\r\n }\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n url = url + 'api/recurringpayments'\r\n url = url + `?rows=${amountOfRows >=50 ? amountOfRows : '50'}&orderBy=${orderBy}&desc=${desc}${filter}`\r\n const response = await fetch(url,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch recurring payments list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const paymentsData = await fetchData()\r\n dispatch(paymentsActions.loadRecurringPayments({ payments: paymentsData || [] }))\r\n dispatch(paymentsActions.setRecurringIsLoading(false))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const fetchRecurringPaymentDetails = (recPaymentId) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n var url = store.getState().auth.url\r\n const response = await fetch(url + `api/recurringpaymentdetails/${recPaymentId}`,{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch recurring payment details.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const paymentsData = await fetchData()\r\n dispatch(paymentsActions.setSelectedRecurringPayment(paymentsData))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n","function addCommas(number) {\r\n // Convert the number to a string\r\n var numString = number.toString();\r\n //remove all old commas\r\n var numberString = numString.replaceAll(',','')\r\n //remove the decimal before adding\r\n if(numberString.includes('.')){\r\n numberString = numberString.substring(0, numberString.indexOf('.'))\r\n }\r\n // Split the string into an array of digits\r\n const digits = numberString.split('');\r\n // Reverse the array of digits\r\n digits.reverse();\r\n // Add a comma every three digits\r\n for (let i = 3; i < digits.length; i += 4) {\r\n digits.splice(i, 0, ',');\r\n }\r\n // Reverse the array of digits back to its original order\r\n digits.reverse();\r\n // Join the array of digits back into a string\r\n var formattedNumber = digits.join('');\r\n if(numString.includes('.')){\r\n formattedNumber = formattedNumber + numString.substring(numString.indexOf('.'), numString.length)\r\n }\r\n // Return the formatted number\r\n return formattedNumber;\r\n }\r\n\r\n export function removeCommas(number){\r\n if(number){\r\n return number.toString().replaceAll(',','')\r\n }\r\n }\r\n\r\n export default addCommas","\r\nimport { Fragment, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n\r\nimport classes from './DonorsInfo.module.css'\r\nimport Phone from '../../../images/Call.svg'\r\nimport Location from '../../../images/Location.svg'\r\nimport Message from '../../../images/Message.svg'\r\nimport CustomSelect from '../../UI/Dropdowns/CustomSelect'\r\nimport Arrow from '../../../images/Arrow - Down small.svg'\r\nimport formatAddress from '../../../functions/formatAddress'\r\nimport formatPhone from '../../../functions/formatPhone'\r\nimport GreenTextButton from '../../UI/Buttons/TextButtons/GreenTextButton'\r\nimport { donorsActions } from '../../../store/donors-slice'\r\nimport { tendersActions } from '../../../store/tenders-slice'\r\nimport { pledgesActions } from '../../../store/pledges-slice'\r\nimport PinkTextButton from '../../UI/Buttons/TextButtons/PinkTextButton'\r\n\r\nconst DonorsInfo = ({couldChangeAddress = true, addressId, email, onChangeAddress, onChangeEmail, canRemove, hideDetails, onViewDetails}) => {\r\n const dispatch = useDispatch()\r\n\r\n //#region hooks\r\n const [address, setAddress] = useState()\r\n const [formattedAddress, setFormattedAddress] = useState()\r\n const [addresses, setAddresses] = useState([])\r\n const [showAddresses, setShowAddresses] = useState()\r\n const [selectedEmail, setSelectedEmail] = useState('')\r\n const [emails, setEmails] = useState([])\r\n const [showEmails, setShowEmails] = useState()\r\n const [formattedPhone, setFormattedPhone] = useState()\r\n\r\n\r\n const addressesList = useSelector((state) => state.donors.addresses)\r\n const emailsList = useSelector((state) => state.donors.emails)\r\n const selectedDonor = useSelector((state) => state.donors.selectedDonor)\r\n const selectedPayment = useSelector((state) => state.payments.selectedPayment)\r\n\r\n //#endregion\r\n\r\n //#region use effects\r\n useEffect(() => {\r\n if(addressesList.length !== 0){\r\n const addresses = addressesList.map(address => {\r\n var formattedAddress = formatAddress(address)\r\n return { value: address.DonorAddressId, name: formattedAddress}\r\n })\r\n setAddresses(addresses)\r\n }\r\n }, [addressesList])\r\n\r\n useEffect(()=>{\r\n var address\r\n if(addressId === 0 && Object.keys(selectedPayment).length !== 0){\r\n address = {DonorAddressId: 0, Address: selectedPayment.Address, City: selectedPayment.City, State: selectedPayment.State, Zip: selectedPayment.Zip}\r\n setAddress(address)\r\n setFormattedAddress(formatAddress(address))\r\n }\r\n if (addressId && addressesList.length !== 0){\r\n address = addressesList.find(address => address.DonorAddressId === addressId)\r\n if(address){\r\n setAddress(address)\r\n setFormattedAddress(formatAddress(address))\r\n }\r\n }\r\n if(!couldChangeAddress){\r\n address = {DonorAddressId: 0, Address: selectedDonor.Address, City: selectedDonor.City, State: selectedDonor.State, Zip: selectedDonor.Zip}\r\n setAddress(address)\r\n setFormattedAddress(formatAddress(address))\r\n }\r\n },[addressId, addressesList, couldChangeAddress, selectedDonor, selectedPayment])\r\n\r\n useEffect(()=>{\r\n if(emailsList.length !== 0){\r\n const emails = emailsList.map(email => {\r\n return {value: email.Contact, name: email.Contact}\r\n })\r\n setEmails(emails)\r\n }\r\n },[emailsList])\r\n\r\n useEffect(()=>{\r\n if (email && emailsList.length !== 0){\r\n const e = emailsList.find(e => e.Contact === email)\r\n if(e){\r\n setSelectedEmail(e.Contact)\r\n }\r\n } \r\n },[email, emailsList])\r\n\r\n useEffect(()=>{\r\n const phone = formatPhone(selectedDonor.PhoneMobile)\r\n setFormattedPhone(phone)\r\n },[selectedDonor])\r\n\r\n useEffect(()=>{\r\n if(!couldChangeAddress){\r\n setSelectedEmail(selectedDonor.Email)\r\n } \r\n },[selectedDonor, couldChangeAddress])\r\n\r\n //#endregion\r\n\r\n //#region event handlers\r\n const toggleShowAddressesHandler = () => {\r\n setShowAddresses(prevState => !prevState)\r\n }\r\n\r\n const toggleShowEmailsHandler = () => {\r\n setShowEmails(prevState => !prevState)\r\n }\r\n\r\n const changeAddressHandler = (id) => {\r\n onChangeAddress(id)\r\n setShowAddresses(false)\r\n }\r\n\r\n const changeEmailHandler = (id) => {\r\n onChangeEmail(id)\r\n setShowEmails(false)\r\n }\r\n\r\n const removeDonorHandler = () => {\r\n dispatch(donorsActions.resetDonorsInfo())\r\n dispatch(tendersActions.resetTenderList())\r\n dispatch(pledgesActions.resetDonorsInfo())\r\n }\r\n\r\n //#endregion\r\n \r\n return (\r\n {selectedDonor && \r\n
    \r\n {canRemove && Remove}\r\n {selectedDonor.HasDonorPermission && !hideDetails && View Details}\r\n
    \r\n

    {`${selectedDonor.FirstName} ${selectedDonor.LastName}`}

    \r\n

    {formattedPhone}

    \r\n
    {address &&

    {formattedAddress}

    }\r\n {(addresses.length > 1 || (addresses.length === 1 && selectedPayment.DonorsAddressID === 0)) && couldChangeAddress &&

    Additional Addresses

    }
    \r\n {showAddresses && }\r\n

    {selectedEmail && selectedEmail}

    \r\n {(emails.length > 1 || (emails.length === 1 && selectedEmail === '')) && couldChangeAddress &&

    Additional Emails

    }
    \r\n {showEmails && }\r\n
    }\r\n
    \r\n )\r\n}\r\n\r\nexport default DonorsInfo","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn-m\":\"ButtonMOut_btn-m__JBOSj\",\"spinning\":\"ButtonMOut_spinning__1Vg4o\",\"spinner\":\"ButtonMOut_spinner__Ijtjg\",\"red\":\"ButtonMOut_red__3fOP_\"};","\r\nimport FixedButtonsBar from './FixedButtonsBar'\r\nimport classes from './FixedMiddleBar.module.css'\r\n\r\nconst FixedMiddleBar = (props) => {\r\n\r\n return (\r\n {props.children}\r\n )\r\n}\r\n\r\nexport default FixedMiddleBar","\r\nimport ButtonL from '../Buttons/Buttons/ButtonL'\r\nimport GrayTextButton from '../Buttons/TextButtons/GrayTextButton'\r\nimport GreenTextButton from '../Buttons/TextButtons/GreenTextButton'\r\nimport classes from './FilterModal.module.css'\r\nimport MessageBox from './MessageBox'\r\n\r\nconst FilterModal = (props) => {\r\n\r\n return \r\n {props.children}\r\n
    \r\n Cancel\r\n Clear All Filters\r\n Apply Filters\r\n
    \r\n
    \r\n}\r\n\r\nexport default FilterModal","export default __webpack_public_path__ + \"static/media/Filter.a8429ce1.svg\";","\r\nimport classes from './FilterButton.module.css'\r\nimport Filter from '../../../images/Filter.svg'\r\n\r\n\r\nconst FilterButton = (props) => {\r\n const cssClasses = props.active ? `${classes.filter} ${classes['filter--active']} ${props.className}` :\r\n `${classes.filter} ${props.className}`\r\n return (\r\n
    \r\n )\r\n}\r\nexport default FilterButton","export default __webpack_public_path__ + \"static/media/Sort.433c0da5.svg\";","import { useEffect, useRef, useState } from \"react\"\r\nimport CustomSelect from \"../Dropdowns/CustomSelect\"\r\nimport classes from './SortBy.module.css'\r\nimport Sort from '../../../images/Sort.svg'\r\nimport CheckboxS from \"../Checkboxs/CheckboxS\"\r\nimport useOutsideAlerter from \"../../../hooks/use-outside-alerter\"\r\n\r\nconst SortBy = (props) => {\r\n\r\n const sortRef = useRef()\r\n const {clickedOutside, resetState} = useOutsideAlerter(sortRef)\r\n \r\n const [showSort, setShowSort] = useState()\r\n\r\n const toggleShowSortHandler = (e) => {\r\n setShowSort(prevState => !prevState)\r\n }\r\n\r\n const listClickedHandler = (e) => {\r\n e.stopPropagation()\r\n }\r\n\r\n useEffect(()=>{\r\n if(clickedOutside){\r\n setShowSort(false)\r\n resetState()\r\n }\r\n },[clickedOutside])\r\n\r\n const changeSortByHandler = (id) => {\r\n var col = props.columns.find(c => c.value === id)\r\n var colName = \"\"\r\n if(col){\r\n colName = col.name\r\n }\r\n if(colName.toLowerCase().includes('date')){\r\n props.onChange(id, true)\r\n }\r\n else{\r\n props.onChange(id, false)\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {showSort &&
    \r\n props.onChange(props.selectedColumn, !props.desc)}\r\n onBlur={()=>{}}\r\n label='Descending'\r\n id='sort'\r\n />\r\n
    }\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default SortBy","import { useSelector } from 'react-redux'\r\n\r\nimport classes from './PageHeaders.module.css'\r\nimport Search from '../../images/Search.svg'\r\nimport Plus from '../../images/Plus-light small.svg'\r\nimport ButtonM from '../UI/Buttons/Buttons/ButtonM'\r\nimport { useEffect, useRef, useState } from 'react'\r\nimport FilterButton from '../UI/Buttons/FilterButton'\r\nimport SortBy from '../UI/Others/SortBy';\r\nimport LoadingSpinnerButtonLight from '../UI/LoadingSpinners/LoadingSpinnerButtonLight'\r\n\r\n\r\n\r\nconst PageHeaders = (props) => {\r\n const addPermission = useSelector((state) => state.auth.addPermission)\r\n\r\n const [total, setTotal] = useState()\r\n const [search, setSearch] = useState('')\r\n const typingTimeout = useRef(null); \r\n\r\n useEffect(()=>{\r\n const i = parseFloat(props.total).toLocaleString()\r\n setTotal(i)\r\n },[props.total])\r\n\r\n useEffect(() => {\r\n setSearch(props.search)\r\n },[props.search])\r\n\r\n const handleStopTyping = (value) => {\r\n props.onChangeSearchbox(value)\r\n };\r\n\r\n const searchChangeHandler = (event) => {\r\n const value = event.target.value;\r\n setSearch(value)\r\n if (typingTimeout.current) {\r\n clearTimeout(typingTimeout.current);\r\n }\r\n \r\n if((value && value.length > 2) || !value || value === ''){\r\n typingTimeout.current = setTimeout(() => {\r\n handleStopTyping(value);\r\n }, 1000); \r\n }\r\n };\r\n return (\r\n
    \r\n

    All {props.title}s ({total})

    \r\n
    \r\n {props.hasSearch &&
    \r\n \r\n \r\n {props.loading && }\r\n
    }\r\n \r\n \r\n {addPermission &&
    New {props.title}
    }\r\n
    \r\n
    \r\n\r\n )\r\n}\r\n\r\nexport default PageHeaders","import { useState, useEffect } from \"react\"\r\n\r\nimport SearchDonor from \"../../Payments/AddPayment/SearchDonor\"\r\nimport classes from './FilterPayments.module.css'\r\nimport remove from '../../../images/Close-dark.svg'\r\n\r\nconst FilterByDonor = (props) => {\r\n\r\n //#region hooks\r\n const [selectedDonors, setSelectedDonors] = useState([])\r\n\r\n useEffect(() => {\r\n props.onChange(selectedDonors)\r\n }, [selectedDonors])\r\n\r\n useEffect(()=>{\r\n if(props.initialIds){\r\n setSelectedDonors(props.initialIds)\r\n }\r\n },[props.initialIds])\r\n //#endregion\r\n\r\n //#region event handlers\r\n\r\n const addDonorHandler = (donor) => {\r\n console.log(donor)\r\n if(!selectedDonors.some(item => item.id === donor.value)){\r\n setSelectedDonors(prevState => [...prevState, {id: donor.value, name: donor.name}])\r\n }\r\n }\r\n\r\n\r\n const removeDonorHandler = (id) => {\r\n setSelectedDonors(prevState => prevState.filter(d => d.id !== id))\r\n }\r\n\r\n //#endregion\r\n\r\n return (\r\n
    \r\n {selectedDonors.map(d => {\r\n return

    {d.id} {d.name}

    removeDonorHandler(d.id)} src={remove} alt=''/>
    \r\n })}\r\n \r\n
    \r\n )\r\n}\r\nexport default FilterByDonor","import { useState, useEffect } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nimport MultiSelect from \"../../UI/Dropdowns/MultiSelect\"\r\n\r\nconst FilterByCampaign = (props) => {\r\n\r\n //#region hooks\r\n const [campaigns, setCampaigns] = useState()\r\n const [selectedIds, setSelectedIds] = useState([])\r\n\r\n const campaignsList = useSelector((state) => state.campaigns.campaigns)\r\n\r\n useEffect(() => {\r\n if (campaignsList.length !== 0) {\r\n var camaigns = campaignsList.map(campaign => {\r\n return {id: campaign.CampaignID, label: campaign.Name}\r\n })\r\n setCampaigns(camaigns)\r\n }\r\n }, [campaignsList])\r\n useEffect(() => {\r\n var ids = []\r\n if(props.initialCampaignIds && campaigns && campaigns.length > 0){\r\n props.initialCampaignIds.forEach(id => {\r\n const index = campaignsList.findIndex(campaign => campaign.CampaignID === id)\r\n if(index !== undefined){\r\n ids = [...ids, campaigns[index]]\r\n }\r\n })\r\n setSelectedIds(ids)\r\n }\r\n else{\r\n setSelectedIds([])\r\n }\r\n }, [props.initialCampaignIds, campaigns, campaignsList])\r\n\r\n //#endregion\r\n \r\n //#region event handlers\r\n const toggleOption = ({ id }) => {\r\n var newArray = [...selectedIds]\r\n if (newArray.some(item => item.id === id)) {\r\n newArray = newArray.filter(item => item.id !== id)\r\n } else {\r\n const item = campaigns.find(item => item.id === id)\r\n newArray.push(item)\r\n }\r\n setSelectedIds(newArray)\r\n\r\n const ids = newArray.map(item => item.id)\r\n props.onChange(ids)\r\n }\r\n\r\n const resetSelectedIdsHandler = () => {\r\n props.onChange([])\r\n setSelectedIds([])\r\n }\r\n\r\n //#endregion\r\n\r\n return (\r\n \r\n )\r\n}\r\nexport default FilterByCampaign","import Input from \"./Input\"\r\n\r\nconst IdsInput = ({label, value, onChange, className}) => {\r\n\r\n const changeInputHandler = (value) => {\r\n const validInput = /^[0-9, ]*$/.test(value);\r\n if(validInput){\r\n onChange(value)\r\n }\r\n }\r\n return(\r\n \r\n\r\n )\r\n}\r\n\r\nexport default IdsInput","import classes from './SmallPopup.module.css'\r\nimport Close from '../../../images/Close-dark.svg'\r\nimport { Fragment } from 'react'\r\nimport ReactDom from 'react-dom'\r\n\r\n\r\nconst SmallPopup = ({className, onClose, children}) => {\r\n const portalElement = document.getElementById('overlays')\r\n\r\n return (\r\n {ReactDom.createPortal(\r\n
    \r\n \r\n {children}\r\n
    , portalElement)}\r\n
    )\r\n}\r\n\r\nexport default SmallPopup","export default __webpack_public_path__ + \"static/media/Logo-login-right.520a1b42.svg\";","export default __webpack_public_path__ + \"static/media/Logo-login-left.5dfcc7f7.svg\";","import { Fragment } from \"react\"\r\n\r\nimport classes from './LoginModal.module.css'\r\nimport LogoRight from '../../../images/Logo-login-right.svg'\r\nimport LogoLeft from '../../../images/Logo-login-left.svg'\r\nimport SubmitButton from \"../Buttons/Buttons/SubmitButton\"\r\n\r\n\r\n\r\nconst LoginModal = (props) => {\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n

    Non-profit data, streamlined

    \r\n
    \r\n
    \r\n \r\n
    \r\n

    {props.name}
    {props.title}

    \r\n {props.children}\r\n {props.title}\r\n {props.underButton}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n\r\n}\r\n\r\nexport default LoginModal","\r\nimport classes from './Popup.module.css'\r\n\r\nconst Popup = (props) => {\r\n\r\n return (
    \r\n {props.children}\r\n
    )\r\n}\r\n\r\nexport default Popup","import { useState, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux/es/exports\"\r\n\r\nimport { donorsActions } from \"../../../store/donors-slice\"\r\nimport { fetchDonorsAddressesList, fetchDonorsContactsList, fetchSingleDonorNotForList } from \"../../../store/donors-actions\"\r\nimport { fetchAllTendersLists } from \"../../../store/tenders-actions\"\r\nimport DonorSearchBox from \"../../UI/SearchBoxs/DonorSearchBox/DonorSearchBox\"\r\nimport classes from './SearchDonor.module.css'\r\nimport AddButton from \"../../UI/Buttons/AddButton\"\r\nimport { fetchPledgesForDonor, fetchRecurringPledgesForDonor } from \"../../../store/pledges-actions\"\r\nimport useHttp from \"../../../hooks/use-http\"\r\n\r\nconst SearchDonor = (props) => {\r\n\r\n //#region hooks\r\n const dispatch = useDispatch()\r\n const [donors, setDonors] = useState([])\r\n const {sendRequest: searchDonors, isLoading} = useHttp()\r\n\r\n\r\n //#endregion\r\n\r\n //#region event handlers\r\n const setSelectedDonorHandler = (value) => {\r\n if (value && value > 0) {\r\n if(props.filter){\r\n let donor = donors.find(d => d.value === value)\r\n if(donor){\r\n props.onChange(donor)\r\n }\r\n }\r\n else{\r\n dispatch(fetchSingleDonorNotForList(value))\r\n dispatch(fetchDonorsAddressesList(value))\r\n dispatch(fetchDonorsContactsList(value))\r\n dispatch(fetchAllTendersLists(value))\r\n dispatch(fetchPledgesForDonor(value))\r\n dispatch(fetchRecurringPledgesForDonor(value))\r\n }\r\n }\r\n }\r\n\r\n const searchDonorHandler = (value) => {\r\n setDonors([])\r\n if(value !== ''){\r\n searchDonors({url: `api/donors?rows=10000&search=${value}&allDonors=${!props.filter}`}, handleResponse) }\r\n \r\n }\r\n\r\n const handleResponse = (data) => {\r\n if(data && data.length > 0){\r\n var list = data.map(donor => {\r\n return {value: donor.DonorsID, name: donor.FirstName + \" \" + donor.LastName, phoneHome: donor.PhoneHome, phoneMobile: donor.PhoneMobile, email: donor.Email, address: {Address: donor.Address, City: donor.City, State: donor.State, Zip: donor.Zip}}\r\n })\r\n setDonors(list)\r\n }\r\n }\r\n\r\n //#endregion\r\n \r\n return (\r\n
    \r\n \r\n {!props.filter && Add Donor}
    \r\n )\r\n}\r\n\r\nexport default SearchDonor","import LoadingSpinnerButton from '../../LoadingSpinners/LoadingSpinnerButton'\r\nimport classes from './SubmitButton.module.css'\r\n\r\nconst SubmitButton = (props) => {\r\n\r\n return(\r\n \r\n )\r\n}\r\n\r\nexport default SubmitButton\r\n\r\n\r\n","import { statementsActions } from './statements-slice';\r\nimport store from './index' \r\nimport { authActions } from './auth-slice';\r\n\r\n\r\nexport const fetchStatementsList = (id = 0) => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(statementsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/statements/' + id, {\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch statements list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const statementData = await fetchData()\r\n dispatch(statementsActions.loadStatement({ statement: statementData || [] }))\r\n } catch (error) {\r\n\r\n }\r\n finally {\r\n dispatch(statementsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\n","\r\nimport classes from './AddTask.module.css'\r\nimport ModelNew from '../../../UI/Modals/ModalNew'\r\nimport { useNavigate, useSearchParams } from 'react-router-dom'\r\nimport TextField from '../../../UI/Inputs/TextField'\r\nimport DateInput from '../../../UI/Inputs/DateInput'\r\nimport ButtonMOut from '../../../UI/Buttons/Buttons-Outline/ButtonMOut'\r\nimport ButtonM from '../../../UI/Buttons/Buttons/ButtonM'\r\nimport { useEffect, useState } from 'react'\r\nimport { CurrentDateForDateTimeInput } from '../../../../functions/Dates/datesForDateInput'\r\nimport CustomSelectFreeText from '../../../UI/Dropdowns/CustomSelectFreeText'\r\nimport DonorSearchBox from '../../../UI/SearchBoxs/DonorSearchBox/DonorSearchBox'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { fetchDashboards, fetchReminderTypes, fetchReminderNames } from '../../../../store/hub-actions'\r\nimport PinkTextButton from '../../../UI/Buttons/TextButtons/PinkTextButton'\r\nimport useHttp from '../../../../hooks/use-http'\r\nimport { uiActions } from '../../../../store/ui-slice'\r\nimport Input from '../../../UI/Inputs/Input'\r\nimport { getAddMessageBody, getSentMessageBody } from '../../../../functions/getMessageBody'\r\nimport CustomSelect from '../../../UI/Dropdowns/CustomSelect'\r\nimport Checkbox from '../../../UI/Checkboxs/Checkbox'\r\nimport ShulsList from '../../../Payments/PaymentsDropdowns/ShulsList'\r\nimport Notification from '../../../UI/MessageBoxs/Notification'\r\nimport SendReminder from '../../../Other/SendReminder'\r\nimport { fetchRemindersList } from '../../../../store/reminders-actions'\r\nimport ReminderNames from '../../../Reminders/ReminderNames'\r\nimport ReminderTypes from '../../../Reminders/ReminderTypes'\r\n\r\nconst AddTask = ({donor, onClose}) => {\r\n\r\n const navigate = useNavigate()\r\n const dispatch = useDispatch()\r\n const {sendRequest: saveTask, isLoading} = useHttp()\r\n const {sendRequest: getList, isLoading: listIsLoading } = useHttp()\r\n \r\n const [searchParams] = useSearchParams()\r\n\r\n const dashboards = useSelector((state) => state.hub.dashboards)\r\n const campaignList = useSelector((state) => state.campaigns.campaigns)\r\n const selectedDonor = useSelector((state) => state.donors.selectedDonor)\r\n\r\n const [listObj, setListObj] = useState([])\r\n const [nameInvalid, setNameInvalid] = useState()\r\n const [selectedObj, setSelectedObj] = useState(null)\r\n const [selectedIdInvalid, setSelectedIdInvalid] = useState()\r\n const [description, setDescription] = useState('')\r\n const [campaigns, setCampaigns] = useState([])\r\n const [reminderForSave, setReminderForSave] = useState({})\r\n const [showSuccessMessage, setShowSuccessMessage] = useState()\r\n\r\n const isHub = window.location.href.includes('new-task')\r\n\r\n useEffect(()=>{\r\n \r\n let task = {\r\n ID: null,\r\n DashboardID: !isHub ? -1 : searchParams.get('dashboard') ? parseInt(searchParams.get('dashboard')) : 0, //if coming from donor it's always donor even if working with is setup to a different type\r\n Type: '',\r\n Description: '',\r\n Name: '',\r\n CampaignID: null,\r\n Date: CurrentDateForDateTimeInput(),\r\n SendEmail: false,\r\n IsFinancial: false\r\n }\r\n setReminderForSave(task)\r\n },[dispatch, isHub, searchParams])\r\n\r\n useEffect(()=>{\r\n if(campaignList.length > 0){\r\n let campaigns = campaignList.map(campaign => {\r\n return {value: campaign.CampaignID, name: campaign.Name}\r\n })\r\n campaigns = [{ value: 0, name: '-'}, ...campaigns]\r\n setCampaigns(campaigns)\r\n var dCampaign = campaignList.find(c => c.Default)\r\n if(dCampaign){\r\n setReminderForSave((prevState) => ({...prevState, CampaignID: dCampaign.CampaignID}))\r\n }\r\n }\r\n },[campaignList])\r\n\r\n useEffect(()=>{\r\n let id\r\n if(searchParams.get('dashboard') && dashboards.length > 0){\r\n id = parseInt(searchParams.get('dashboard'))\r\n if(id && !searchParams.get('id')){\r\n let d = dashboards.find(da => da.DashboardSettingID === id)\r\n if(d){\r\n setReminderForSave((prevState) => ({...prevState, Name: d.Name}))\r\n }\r\n }\r\n \r\n }\r\n },[dashboards, searchParams])\r\n\r\n\r\n useEffect(()=>{\r\n if(donor && selectedDonor.DonorsID){\r\n setSelectedObj({value: selectedDonor.DonorsID, type: 'Donor', name: selectedDonor.FirstName + \" \" + selectedDonor.LastName, phoneHome: selectedDonor.PhoneHome, phoneMobile: selectedDonor.PhoneMobile, email: selectedDonor.Email, address: {Address: selectedDonor.Address, City: selectedDonor.City, State: selectedDonor.State, Zip: selectedDonor.Zip}})\r\n setReminderForSave((prevState) => ({...prevState, ID: selectedDonor.DonorsID}))\r\n\r\n }\r\n },[donor, selectedDonor])\r\n\r\n useEffect(() => {\r\n if(listObj.length > 0){\r\n if(searchParams.get('id')){\r\n changeObjHandler(parseInt(searchParams.get('id')))\r\n }\r\n }\r\n },[listObj, searchParams])\r\n\r\n const closeNewTaskHandler = () => {\r\n if(donor){\r\n onClose()\r\n }\r\n else{\r\n if(isHub){\r\n dispatch(fetchDashboards(true))\r\n }\r\n navigate(-1)\r\n } \r\n }\r\n\r\n \r\n\r\n const changeObjHandler = (id) => {\r\n setReminderForSave((prevState) => ({...prevState, ID: id}))\r\n setSelectedIdInvalid(false)\r\n const obj = listObj.find(p => p.value === id)\r\n if(obj){\r\n setSelectedObj(obj)\r\n setListObj([])\r\n }\r\n else{\r\n setSelectedObj(null)\r\n }\r\n }\r\n\r\n const saveTaskHandler = () => {\r\n if(!reminderForSave.Name || reminderForSave.Name === ''){\r\n setNameInvalid(true)\r\n return\r\n }\r\n if(!reminderForSave.ID){\r\n setSelectedIdInvalid(true)\r\n return\r\n }\r\n saveTask({url: 'api/saveTask', method: 'POST', body: reminderForSave, headers: {\r\n Accept: \"application/json\",\r\n \"content-type\": \"application/json\",\r\n },}, handleTaskResponse)\r\n }\r\n\r\n const handleTaskResponse = (data) => {\r\n if(data.ActionSuccessful){\r\n if (!isHub) {\r\n dispatch(fetchRemindersList())\r\n setShowSuccessMessage({\r\n status: \"success\",\r\n title: \"Reminder Successful!\",\r\n message: '',\r\n id: data.ReminderID\r\n }) \r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'success', header: getAddMessageBody('task')}))\r\n closeNewTaskHandler()\r\n }\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: getAddMessageBody(!isHub ? 'reminder' : 'task', false), message: data.ActionResultMessage}))\r\n }\r\n }\r\n\r\n //#region change inputs \r\n const changeTypeHandler = (value) => {\r\n setReminderForSave((prevState) => ({...prevState, Type: value}))\r\n }\r\n\r\n const changeNameHandler = (value) => {\r\n setReminderForSave((prevState) => ({...prevState, Name: value}))\r\n if(value && value !== ''){\r\n setNameInvalid(false)\r\n }\r\n }\r\n const changeCampaignHandler = (id) => {\r\n setReminderForSave((prevState) => ({...prevState, CampaignID: id}))\r\n }\r\n\r\n const changeDateHandler = (value) => {\r\n setReminderForSave((prevState) => ({...prevState, Date: value}))\r\n }\r\n\r\n const changeSendEmailHandler = () => {\r\n setReminderForSave((prevState) => ({...prevState, SendEmail: !prevState.SendEmail}))\r\n }\r\n\r\n const changeIsFinancialHandler = () => {\r\n setReminderForSave((prevState) => ({...prevState, IsFinancial: !prevState.IsFinancial}))\r\n }\r\n\r\n const changeShulHandler = (id) => {\r\n setReminderForSave((prevState) => ({...prevState, ShulID: id}))\r\n }\r\n\r\n //#endregion\r\n \r\n const searchDonorHandler = (value) => {\r\n setListObj([])\r\n if(value !== ''){\r\n getList({url: `api/listForNewTask?dashboardId=${!isHub ? -1 : searchParams.get('dashboard') ? parseInt(searchParams.get('dashboard')) : 0}&search=${value}`}, handleResponse) \r\n }\r\n }\r\n\r\n const handleResponse = (data) => {\r\n if(data){\r\n let lst\r\n if(data.Donors){\r\n lst = data.Donors.map(donor => {\r\n return {value: donor.DonorsID, type: 'Donor', name: donor.FirstName + \" \" + donor.LastName, phoneHome: donor.PhoneHome, phoneMobile: donor.PhoneMobile, email: donor.Email, address: {Address: donor.Address, City: donor.City, State: donor.State, Zip: donor.Zip}}\r\n })\r\n } \r\n else if(data.Parents){\r\n lst = data.Parents.map(parent => {\r\n return {value: parent.ParentID, type: 'Parent', name: parent.FirstName + \" \" + parent.LastName, phoneHome: parent.PhoneHome, phoneMobile: parent.PhoneMobile, email: parent.Email, address: {Address: parent.Address, City: parent.City, State: parent.State, Zip: parent.Zip}}\r\n })\r\n }\r\n else if(data.Students){\r\n lst = data.Students.map(student => {\r\n return {value: student.StudentID, type: 'Student', name: student.FirstName + \" \" + student.LastName, phoneHome: student.PhoneHome, phoneMobile: student.PhoneMobile, email: student.Email, address: {Address: student.Address, City: student.City, State: student.State, Zip: student.Zip}}\r\n })\r\n }\r\n setListObj(lst)\r\n }\r\n }\r\n\r\n return (\r\n \r\n
    \r\n {(!searchParams.get('dashboard') || searchParams.get('id')) && }\r\n {searchParams.get('dashboard') && !searchParams.get('id') && }\r\n \r\n
    \r\n
    \r\n \r\n {campaigns && campaigns.length > 0 && }\r\n
    \r\n
    \r\n {selectedIdInvalid &&

    Select Donor

    }\r\n {!selectedObj && !donor && }\r\n {selectedObj &&
    \r\n

    {selectedObj.type}

    \r\n
    \r\n

    {selectedObj.value}

    \r\n

    {selectedObj.name}

    \r\n {!donor && changeObjHandler(null)}>Remove}\r\n
    }\r\n
    \r\n setDescription(v)}/>\r\n {}} shulID={reminderForSave.ShulID} className={classes.shul}/>\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n Cancel\r\n Save\r\n
    \r\n {showSuccessMessage && \r\n \r\n }\r\n
    \r\n )\r\n}\r\n\r\nexport default AddTask","import { settingsActions } from './settings-slice'\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchNeededSettings = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/websettings',{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch settings.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const settingsData = await fetchData()\r\n dispatch(settingsActions.setNeededSettings(settingsData))\r\n\r\n } catch (error) {\r\n // dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"backdrop\":\"BackdropBlur_backdrop__2JBMB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message\":\"ErrorMessage_message__2Fiov\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"Popup_popup__2m68L\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn-l\":\"ButtonL_btn-l__3yLqx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn-l\":\"ButtonLOut_btn-l__lM0a5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn-o\":\"ButtonOut_btn-o__2A8JX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn-m\":\"ButtonM_btn-m__28svx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"list-item\":\"ListItem_list-item__1dru-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"login-button\":\"SubmitButton_login-button__1IKx3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fixed-bar\":\"FixedButtonsBar_fixed-bar__1DkaW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fixed-bar\":\"FixedRightBar_fixed-bar__KwX6K\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fixed-bar\":\"FixedMiddleBar_fixed-bar__2pJj3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plus\":\"AddButton_plus__1AFXz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinner\":\"LoadingSpinnerMidlle_spinner__2XtgR\"};","import { useSelector, useDispatch } from \"react-redux/es/exports\";\r\n\r\nimport MessageBox from \"../Modals/MessageBox\";\r\nimport classes from './ErrorMessage.module.css'\r\nimport { uiActions } from \"../../../store/ui-slice\";\r\nimport errorCheck from '../../../images/error-check.svg'\r\n\r\n\r\nconst ErrorMessageBox = () => {\r\n const dispatch = useDispatch()\r\n\r\n const errorMessage = useSelector((state) => state.ui.errorMessage)\r\n\r\n const message = errorMessage.message === 'Failed to fetch' ? \"Connection Failed!\" : errorMessage.message\r\n\r\n const closeMessageHandler = () => {\r\n dispatch(uiActions.resetErrorMessage())\r\n }\r\n return (\r\n \r\n \r\n {errorMessage.title &&

    {errorMessage.title}

    }\r\n

    {message}{errorMessage.link && {errorMessage.link}}

    \r\n
    \r\n )\r\n}\r\n\r\nexport default ErrorMessageBox","import { useState } from \"react\"\r\nimport { useNavigate } from \"react-router\"\r\n\r\nimport useHttp from \"../../../hooks/use-http\"\r\nimport ButtonM from \"../../UI/Buttons/Buttons/ButtonM\"\r\nimport Input from \"../../UI/Inputs/Input\"\r\nimport MessageBox from \"../../UI/Modals/MessageBox\"\r\nimport classes from './JiraCredentials.module.css'\r\n\r\nconst JiraCredentials = () => {\r\n const navigate = useNavigate()\r\n const {isLoading, sendRequest: saveCredentials} = useHttp()\r\n\r\n const [email, setEmail] = useState('')\r\n const [emailInvalid, setEmailInvalid] = useState()\r\n\r\n const saveJiraCredentials = (e) => {\r\n e.preventDefault()\r\n if(!email || email === '' || !email.includes('@') || !email.includes('.')){\r\n //setEmailInvalid(true)\r\n //return\r\n }\r\n saveCredentials({url: `api/save-jira-credentials?email=${email}`}, handleResponse)\r\n }\r\n\r\n const handleResponse = (data) => {\r\n if(data === ''){\r\n localStorage.setItem('hasJiraCredentials', 'True')\r\n window.location.reload();\r\n }\r\n else{\r\n setEmailInvalid(data)\r\n }\r\n }\r\n\r\n return (\r\n \r\n navigate(-1)}>\r\n
    \r\n {setEmail(v); setEmailInvalid(false)}} value={email} required invalid={emailInvalid} disabled={isLoading}/>\r\n
    \r\n {}} loading={isLoading} type='submit'>Save\r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default JiraCredentials","import { useNavigate } from 'react-router-dom'\r\n\r\nimport Badge from '../../../UI/Others/Badge'\r\nimport classes from './ImplementedFeature.module.css'\r\n\r\nconst ImplementedFeature = (props) => {\r\n\r\n const navigate = useNavigate()\r\n\r\n const viewDetailsHandler = () => {\r\n navigate(`/new-features/feature-details/${props.feature.FeatureID}`)\r\n }\r\n\r\n return (\r\n
    \r\n {props.feature.Status}\r\n

    {props.feature.FeatureID}

    \r\n

    {props.feature.Summary}

    \r\n
    {props.feature.Description}
    \r\n

    View Details

    \r\n
    \r\n )\r\n}\r\n\r\nexport default ImplementedFeature","export default __webpack_public_path__ + \"static/media/Arrow - Up Circle.7b492e75.svg\";","export default __webpack_public_path__ + \"static/media/Arrow - Down Circle.3f8a8a88.svg\";","import { useEffect, useState } from \"react\"\r\nimport { useNavigate } from \"react-router-dom\"\r\n\r\nimport Badge from \"../../../UI/Others/Badge\"\r\nimport ListItem from \"../../../UI/Others/ListItem\"\r\nimport classes from './FeaturesList.module.css'\r\nimport ArrowUp from '../../../../images/Arrow - Up Circle.svg'\r\nimport ArrowDown from '../../../../images/Arrow - Down Circle.svg'\r\nimport On from '../../../../images/Show.svg'\r\nimport Off from '../../../../images/Hide.svg'\r\nimport useHttp from \"../../../../hooks/use-http\"\r\n\r\nconst Feature = (props) => {\r\n\r\n const [votes, setVotes] = useState()\r\n const [myVotes, setMyVotes] = useState()\r\n const [notificationsSrc, setNotificationsSrc] = useState(Off)\r\n const navigate = useNavigate()\r\n const {isLoading, sendRequest: saveVote} = useHttp()\r\n const {isLoading: notificationsLoading, sendRequest: turnNotificationsOnandOff} = useHttp()\r\n\r\n useEffect(() => {\r\n if(props.feature){\r\n setVotes(props.feature.Votes)\r\n setMyVotes(props.feature.MyVotes)\r\n if(props.feature.IsWatching){\r\n setNotificationsSrc(On)\r\n }\r\n }\r\n },[props.feature])\r\n\r\n const viewDetailsHandler = () => {\r\n navigate(`/new-features/feature-details/${props.feature.FeatureID}`)\r\n }\r\n\r\n const voteUpHandler = () => {\r\n if(myVotes >2){\r\n return;\r\n }\r\n voteForFeature(true)\r\n }\r\n\r\n const voteDownHandler = () => {\r\n if(myVotes === 0){\r\n return;\r\n }\r\n voteForFeature(false)\r\n }\r\n\r\n const voteForFeature = (voteUp) => {\r\n saveVote({url: `/api/vote-feature?featureId=${props.feature.FeatureID}&voteUp=${voteUp}&summary=${props.feature.Summary}`}, (data) => handleSaveResponse(data, voteUp))\r\n }\r\n\r\n const handleSaveResponse = (data, voteUp) => {\r\n if(data){\r\n if(voteUp){\r\n setVotes(prevState => parseInt(prevState) + 1)\r\n setMyVotes(prevState => parseInt(prevState) + 1)\r\n if(notificationsSrc === Off){\r\n notificationsOnAndOffHandler()\r\n }\r\n props.onChangedVotes(props.feature.FeatureID, parseInt(votes) + 1, parseInt(myVotes) + 1)\r\n }\r\n else{\r\n setVotes(prevState => parseInt(prevState) - 1)\r\n setMyVotes(prevState => parseInt(prevState) - 1)\r\n props.onChangedVotes(props.feature.FeatureID, parseInt(votes) - 1, parseInt(myVotes) - 1)\r\n }\r\n\r\n }\r\n }\r\n\r\n const notificationsOnAndOffHandler = () => {\r\n turnNotificationsOnandOff({url: `api/turn-notifications-on-and-off?featureId=${props.feature.FeatureID}&add=${notificationsSrc === Off}`}, handleNotificationResponse)\r\n }\r\n\r\n const handleNotificationResponse = (data) => {\r\n if(data){\r\n if(notificationsSrc === On){\r\n setNotificationsSrc(Off)\r\n }\r\n else{\r\n setNotificationsSrc(On)\r\n }\r\n }\r\n }\r\n\r\n return(\r\n \r\n

    {props.feature.FeatureID}

    \r\n

    {props.feature.Summary}

    \r\n

    {votes}

    \r\n

    {myVotes}

    \r\n

    {props.feature.CompletionDate}

    \r\n

    View Details

    \r\n

    \r\n
    \r\n {(props.feature.Status === 'In Progress' || props.feature.Status === 'Pending' || props.feature.Status === 'To be Updated')&& In Progress}\r\n
    \r\n
    \r\n\r\n )\r\n}\r\n\r\nexport default Feature","\r\nimport { useEffect, useState } from 'react'\r\nimport Feature from './Feature'\r\nimport classes from './FeaturesList.module.css'\r\nimport { addMonths } from '../../../../functions/Dates/dateFunctions'\r\nimport { formatDate } from '../../../../functions/Dates/formatDate'\r\n\r\nconst FeaturesList = (props) => {\r\n const [features, setFeatures] = useState([])\r\n\r\n useEffect(()=>{\r\n calculateDates(props.features)\r\n },[props.features])\r\n\r\n const changedVotesHandler = (id, votes, myVotes) => {\r\n let fs = [...features]\r\n fs = fs.map(el => el.FeatureID === id ? {...el, Votes: votes, MyVotes: myVotes} : el);\r\n let f = fs.filter(feature => !['In Progress', 'Pending'].includes(feature.Status))\r\n f = f.sort((a, b) => b.Votes-a.Votes);\r\n let inProgress = fs.filter(feature => ['In Progress', 'Pending'].includes(feature.Status))\r\n \r\n calculateDates([...inProgress, ...f])\r\n }\r\n const calculateDates = (features) => {\r\n var date = new Date();\r\n var dt = date.getDate();\r\n date.setDate(15);\r\n if (dt >= 15) {\r\n date.setMonth(date.getMonth() + 1);\r\n }\r\n date.setHours(23, 59, 59, 0);\r\n if(props.lastFeatureDone && props.lastFeatureDone > addMonths(date, -1)){\r\n date = addMonths(date, 1)\r\n }\r\n let f = features.map(feature => {\r\n let compDate = addMonths(date, 0)\r\n date = addMonths(date, 1)\r\n return {...feature, CompletionDate: formatDate(compDate)}\r\n })\r\n setFeatures(f)\r\n }\r\n\r\n return (
    \r\n \r\n
    \r\n

    Id

    \r\n

    Summary

    \r\n

    Votes

    \r\n

    My Votes

    \r\n

    Projected
    Completion Date

    \r\n

    \r\n

    \r\n

    \r\n
    \r\n
    \r\n {features.map(f=> )}\r\n
    \r\n
    )\r\n}\r\n\r\nexport default FeaturesList","import { Fragment, useEffect, useState, useRef } from \"react\"\r\n\r\nimport classes from './NewFeatures.module.css'\r\nimport MainHeader from \"../../../layout/MainHeader\"\r\nimport ButtonL from \"../../../UI/Buttons/Buttons/ButtonL\"\r\nimport ButtonLOut from '../../../UI/Buttons/Buttons-Outline/ButtonLOut'\r\nimport useHttp from \"../../../../hooks/use-http\"\r\nimport { useNavigate } from \"react-router\"\r\nimport LoadingSpinner from \"../../../UI/LoadingSpinners/LoadingSpinner\"\r\nimport JiraCredentials from \"../JiraCredentials\"\r\nimport ImplementedFeature from \"./ImplementedFeature\"\r\nimport FeaturesList from \"./FeaturesList\"\r\nimport { Link } from \"react-router-dom\"\r\nimport useOutsideAlerter from \"../../../../hooks/use-outside-alerter\"\r\nimport MessageBox from \"../../../UI/Modals/MessageBox\"\r\n\r\nconst NewFeatures = () => {\r\n const {sendRequest, isLoading } = useHttp()\r\n const descRef = useRef()\r\n const {resetState, clickedOutside} = useOutsideAlerter(descRef)\r\n const navigate = useNavigate()\r\n\r\n const [features, setFeatures] = useState([])\r\n const [implementedFeatures, setImplementedFeatures] = useState([])\r\n const [hasJiraCredentials, setHasJiraCredentials] = useState()\r\n const [showDescription, setShowDescription] = useState()\r\n const [lastFeatureDone, setLastFeatureDone] = useState()\r\n\r\n useEffect(()=>{\r\n if(clickedOutside){\r\n // setShowDescription(false)\r\n // resetState()\r\n }\r\n },[clickedOutside])\r\n\r\n useEffect(()=> {\r\n if(localStorage.getItem('hasJiraCredentials')){\r\n setHasJiraCredentials(localStorage.getItem('hasJiraCredentials') === 'True')\r\n }\r\n },[])\r\n useEffect(()=>{\r\n getFeatures()\r\n },[])\r\n\r\n const getFeatures = () => {\r\n sendRequest({url: \"api/featurevoting\"}, handleResponse)\r\n }\r\n\r\n const handleResponse = (data) => {\r\n if(data && data.length > 0){\r\n const featuresNotDone = data.filter(feature => feature.Status !== 'Resolved' && feature.Status !== 'To be Updated')\r\n setFeatures(featuresNotDone)\r\n const featuresDone = data.filter(feature => feature.Status === 'Resolved' || feature.Status === 'To be Updated')\r\n setImplementedFeatures(featuresDone)\r\n let date = null\r\n featuresDone.forEach(f => {\r\n if(f.ResolutionDate && (!date || f.ResolutionDate > date)){\r\n date = f.ResolutionDate\r\n }\r\n })\r\n setLastFeatureDone(date)\r\n }\r\n }\r\n\r\n return (\r\n \r\n {isLoading && hasJiraCredentials && }\r\n {hasJiraCredentials && \r\n
    \r\n

    Requested Features

    \r\n
    \r\n setShowDescription(prevState => !prevState)}>How this page works\r\n {navigate('/new-features/suggest-feature');}}>Suggest New Feature\r\n
    \r\n {showDescription && setShowDescription(false)} className={classes['features-description']}>

    \r\n Advanced Data is constantly on the lookout to make your workflow simple and more efficient!
    \r\n We develop our software by listening to you!

    \r\n

    Displayed is a list of features, that have been requested by users like you, that our clients would like to have implemented and added to our already amazing software.

    \r\n
      \r\n

      Here is how this portal works:

      \r\n
    1. Every user gets 3 votes which they can use to vote for the features requested and with that up the priority of having it implemented.
    2. \r\n
    3. Once a feature is done, the votes will be returned to you.
    4. \r\n
    5. By clicking on the eye icon you can enable/disable the watch over a ticket.
    6. \r\n
    7. When the watch over a ticket is enabled, you will receive email notifications with the progress of the request
    \r\n

    Do you have any other great ideas that you would like for us to implement? setShowDescription(false)}>Click here to submit your request.\r\n

    }\r\n
    \r\n
    \r\n {features.length > 0 && }\r\n {implementedFeatures && implementedFeatures.length > 0 &&
    \r\n

    Implemented Features

    \r\n {implementedFeatures.map((f, i) => )}\r\n
    }\r\n
    \r\n
    }\r\n {!hasJiraCredentials && }\r\n
    \r\n )\r\n}\r\n\r\nexport default NewFeatures","import { Fragment } from \"react\"\r\nimport { Outlet } from \"react-router-dom\"\r\nimport Layout from \"../../components/layout/Layout\"\r\nimport NewFeature from '../../components/Other/New Features/Features List/NewFeatures'\r\n\r\nconst NewFeatures = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default NewFeatures","import { Fragment, useEffect, useState } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useNavigate, useSearchParams } from \"react-router-dom\"\r\nimport { authActions } from \"../../store/auth-slice\"\r\n\r\nimport Input from \"../UI/Inputs/Input\"\r\nimport LoginModal from \"../UI/Modals/LoginModal\"\r\nimport MessageBox from \"../UI/Modals/MessageBox\"\r\nimport classes from './LoginForm.module.css'\r\nimport { getTimeZone } from \"../../functions/Dates/timeZone\"\r\n\r\nconst PortalUserSignUp = () => {\r\n\r\n //#region hooks\r\n\r\n const navigate = useNavigate()\r\n const [searchParams] = useSearchParams()\r\n const dispatch = useDispatch()\r\n\r\n const [companyName, setCompanyName] = useState('')\r\n const [userName, setUserName] = useState('')\r\n const [password, setPassword] = useState('')\r\n const [confirmPassword, setConfirmPassword] = useState('')\r\n const [userNameInvalid, setUserNameInvalid] = useState()\r\n const [passwordInvalid, setPasswordInvalid] = useState()\r\n const [error, setError] = useState()\r\n const [isLoading, setIsLoading] = useState()\r\n const [sendEmailLoading, setSendEmailLoading] = useState()\r\n const [showForgotPassword, setShowForgotPassword] = useState()\r\n\r\n const url = useSelector((state) => state.auth.url)\r\n\r\n useEffect(()=> {\r\n if(searchParams.get('company')){\r\n setCompanyName(searchParams.get('company'))\r\n }\r\n if(searchParams.get('email')){\r\n setUserName(searchParams.get('email'))\r\n }\r\n },[])\r\n //#endregion\r\n\r\n //#region change input handlers \r\n\r\n const changeCompanyNameHandler = (value) => {\r\n setCompanyName(value)\r\n }\r\n\r\n const changeUserNameHandler = (value) => {\r\n setUserName(value)\r\n setUserNameInvalid(false)\r\n }\r\n\r\n const changePasswordHandler = (value) => {\r\n setPassword(value)\r\n if(value === confirmPassword){\r\n setPasswordInvalid(false)\r\n }\r\n }\r\n\r\n const changeConfirmPasswordHandler = (value) => {\r\n setConfirmPassword(value)\r\n if(value === password){\r\n setPasswordInvalid(false)\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region sign up\r\n\r\n const signUpHandler = (e) => {\r\n e.preventDefault()\r\n if(!userName.includes('@') || !userName.includes('.')){\r\n setUserNameInvalid(true)\r\n return\r\n }\r\n if(password.trim() !== confirmPassword.trim()){\r\n setPasswordInvalid(true)\r\n return;\r\n }\r\n if(isLoading){ return; }\r\n signUp()\r\n }\r\n\r\n const signUp = async () => {\r\n setIsLoading(true)\r\n var token = searchParams.get('token') ? searchParams.get('token') : ''\r\n var response = await fetch(`${url}api/portal-user/signup?companyName=${companyName}&userName=${userName}&password=${password}&token=${token}`)\r\n var data = await response.json()\r\n if(data === ''){\r\n // log in\r\n const loginData = { 'companyname': companyName, 'username': userName, 'password': password, 'grant_type': 'password', 'timeZone': getTimeZone() }\r\n \r\n var formBody = [];\r\n for (var property in loginData) {\r\n var encodedKey = encodeURIComponent(property);\r\n var encodedValue = encodeURIComponent(loginData[property]);\r\n formBody.push(encodedKey + \"=\" + encodedValue);\r\n }\r\n formBody = formBody.join(\"&\");\r\n try {\r\n const response = await fetch(url + 'token', {\r\n method: 'POST',\r\n body: formBody,\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\r\n }\r\n })\r\n const data = await response.json()\r\n if (response.ok && data.access_token) {\r\n dispatch(authActions.portalUserLogin({token: data.access_token, duration: data.expires_in, userName: userName, companyName: companyName, hasJiraCredentials: data.hasJiraCredentials }))\r\n navigate('/new-features')\r\n } \r\n }\r\n catch{\r\n\r\n }\r\n }\r\n else{\r\n if(data.includes('forgot password')){\r\n const msg =

    {data.substring(0, data.indexOf('Click') + 6)} Forgot password {data.substring(data.indexOf('password') + 8)}

    \r\n setError(msg)\r\n }\r\n else{\r\n\r\n setError(data)\r\n }\r\n }\r\n setIsLoading(false)\r\n }\r\n\r\n //#endregion\r\n\r\n //#region forgot password\r\n\r\n const forgotPasswordHandler = () => {\r\n if(sendEmailLoading){\r\n return;\r\n }\r\n if(!userName || !userName.includes('@') || !userName.includes('.')){\r\n setUserNameInvalid(true)\r\n return;\r\n }\r\n sendEmail()\r\n }\r\n \r\n const sendEmail = async () => {\r\n setSendEmailLoading(true)\r\n const response = await fetch(`${url}api/send-signup-email-portal-user?email=${userName}&companyName=${companyName}`)\r\n const data = await response.json()\r\n if(data === \"\"){\r\n setShowForgotPassword(true)\r\n }\r\n else{\r\n setError(data)\r\n }\r\n setSendEmailLoading(false)\r\n }\r\n \r\n //#endregion\r\n const underButton = {error &&

    {error}

    }\r\n
    \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showForgotPassword && {setShowForgotPassword(false)}}>\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default PortalUserSignUp","import PortalUserSignUp from \"../../components/Login/PortalUserSignUp\"\r\n\r\nconst SignUpPortalUser = () => {\r\n\r\n return (\r\n \r\n )\r\n}\r\nexport default SignUpPortalUser","import { Fragment, useEffect, useState } from \"react\"\r\n\r\nimport classes from './ImageUpload.module.css'\r\n\r\nconst ImageUpload = (props) => {\r\n const [preview, setPreview] = useState()\r\n\r\n // create a preview as a side effect, whenever selected file is changed\r\n useEffect(() => {\r\n if (!props.selectedFiles) {\r\n setPreview(undefined)\r\n return\r\n }\r\n var objects = props.selectedFiles.map(f => {\r\n const objectUrl = URL.createObjectURL(f)\r\n return objectUrl\r\n \r\n })\r\n setPreview(objects)\r\n\r\n // free memory when ever this component is unmounted\r\n return () => {\r\n objects.map(o => URL.revokeObjectURL(o))\r\n }\r\n }, [props.selectedFiles])\r\n\r\n const onSelectFile = e => {\r\n if (!e.target.files || e.target.files.length === 0) {\r\n props.onChange([])\r\n return\r\n }\r\n\r\n // I've kept this example simple by using the first image instead of multiple\r\n const files = [...props.selectedFiles, e.target.files[0]]\r\n props.onChange(files)\r\n \r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n
    \r\n {props.selectedFiles && props.selectedFiles.length > 0 && preview && preview.length > 0 &&
    {props.selectedFiles.map((f, i) => \r\n
    \r\n \r\n {f.name}\r\n
    )}\r\n
    }\r\n
    \r\n )\r\n}\r\n\r\nexport default ImageUpload","import { Fragment, useEffect, useState } from \"react\"\r\nimport { useNavigate, useParams } from \"react-router-dom\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nimport ModalDetails from \"../../../UI/Modals/ModalDetails\"\r\nimport useHttp from \"../../../../hooks/use-http\"\r\nimport DetailsItem from \"../../../UI/Others/DetailsItem\"\r\nimport Badge from \"../../../UI/Others/Badge\"\r\nimport TextField from \"../../../UI/Inputs/TextField\"\r\nimport classes from './NewFeatureDetails.module.css'\r\nimport ButtonM from \"../../../UI/Buttons/Buttons/ButtonM\"\r\nimport GrayTextButton from \"../../../UI/Buttons/TextButtons/GrayTextButton\"\r\nimport ImageUpload from \"../../../UI/Others/ImageUpload\"\r\nimport LoadingSpinner from \"../../../UI/LoadingSpinners/LoadingSpinner\"\r\nimport FixedRightBar from \"../../../UI/FixedBottomBar/FixedRightBar\"\r\n\r\nconst NewFeatureDetails = () => {\r\n const navigate = useNavigate()\r\n const {isLoading, sendRequest: getFeature} = useHttp()\r\n const {isLoading: savingCommentLoading, sendRequest: saveComment} = useHttp()\r\n\r\n const url = useSelector((state) => state.auth.url)\r\n\r\n const params = useParams()\r\n\r\n const [openTab, setOpenTab] = useState('details')\r\n const [attachmentsIsLoading, setAttachmentsIsLoading] = useState()\r\n const [selectedFeature, setSelectedFeature] = useState()\r\n const [showAddComment, setShowAddComment] = useState()\r\n const [newComment, setNewComment] = useState('')\r\n const [errorSaving, setErrorSaving] = useState()\r\n const [uploadedImages, setUploadedImages] = useState([])\r\n const [comments, setComments] = useState([])\r\n\r\n useEffect(()=>{\r\n if(params.id){\r\n getFeature({url:`api/new-feature-details/${params.id}`}, handleResponse)\r\n }\r\n },[params.id, getFeature])\r\n\r\n useEffect(()=>{\r\n if(selectedFeature && selectedFeature.Comments && selectedFeature.Comments.length > 0&& !savingCommentLoading){\r\n //setup the comments\r\n var setupComments = selectedFeature.Comments.map((c,i )=> {\r\n const value = c.Content.substring(c.Content.indexOf(':') + 2) ?? ''\r\n return \r\n {selectedFeature.Attachments && selectedFeature.Attachments.length > 0 && c.AttachmentIds && c.AttachmentIds.length > 0 && c.AttachmentIds.map((a, i) => {\r\n var attachment = selectedFeature.Attachments.find(att => att.Id === a)\r\n var bytes = attachment ? attachment.Content : []\r\n return \r\n })}\r\n })\r\n setComments(setupComments)\r\n }\r\n },[selectedFeature, savingCommentLoading])\r\n\r\n const handleResponse = (data) => {\r\n if(data){\r\n setSelectedFeature(data)\r\n }\r\n }\r\n\r\n \r\n\r\n const closeDetailsHandler = () => {\r\n navigate(-1)\r\n }\r\n\r\n const showAddCommentHandler = (type) => {\r\n setShowAddComment(type)\r\n }\r\n\r\n const changeNewCommentHandler = (value) => {\r\n setNewComment(value)\r\n }\r\n\r\n const saveCommentHandler = () => {\r\n if(uploadedImages.length > 0){\r\n saveAttachments()\r\n }\r\n else{\r\n setComments([])\r\n saveComment({url: `api/save-feature-comment?featureId=${selectedFeature.FeatureID}&comment=${newComment}`}, handleSaveResponse)\r\n }\r\n }\r\n\r\n const saveAttachments = async () => {\r\n setAttachmentsIsLoading(true)\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n\r\n var form = new FormData()\r\n form.append(\"Comment\", newComment)\r\n form.append(\"FeatureId\", selectedFeature.FeatureID)\r\n uploadedImages.forEach(image => {\r\n form.append(image.name, image)\r\n\r\n });\r\n const response = await fetch(`${url}api/comment-with-attachment`,\r\n {\r\n method: 'POST',\r\n mode: 'cors',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Authorization': bearer\r\n },\r\n enctype: \"multipart/form-data\",\r\n body: form\r\n })\r\n const data = await response.json()\r\n if(data.ActionSuccessful){\r\n setSelectedFeature(data)\r\n setShowAddComment(false)\r\n setNewComment('')\r\n setUploadedImages([])\r\n }\r\n else{\r\n setErrorSaving(data.ActionResultMessage)\r\n }\r\n \r\n setAttachmentsIsLoading(false)\r\n }\r\n\r\n const handleSaveResponse = (data) => {\r\n if(data.ActionSuccessful){\r\n setSelectedFeature(data)\r\n setShowAddComment(false)\r\n setNewComment('')\r\n }\r\n else{\r\n setErrorSaving(data.ActionResultMessage)\r\n }\r\n }\r\n\r\n const changeUploadedImages = (files) => {\r\n setUploadedImages(files)\r\n }\r\n\r\n const handleTabClick = (tab) => {\r\n setOpenTab(openTab === tab ? null : tab);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {isLoading && }\r\n {!isLoading && selectedFeature && handleTabClick('details')} open={openTab === 'details'} >\r\n

    {selectedFeature.Summary}

    \r\n

    {selectedFeature.Description}

    \r\n {(selectedFeature.Status === 'In Progress' || selectedFeature.Status === 'Resolved') && {selectedFeature.Status}}\r\n
    }\r\n {!isLoading && selectedFeature && handleTabClick('comments')} open={openTab === 'comments'} scroll>\r\n
    \r\n showAddCommentHandler(true)}>Add Comment\r\n
    \r\n {showAddComment && }\r\n {showAddComment && }\r\n {showAddComment &&
    \r\n {errorSaving &&

    {errorSaving}

    }\r\n setShowAddComment(null)}>Cancel\r\n Save
    }\r\n {comments}\r\n
    }\r\n {!isLoading && selectedFeature && handleTabClick('attachments')} open={openTab === 'attachments'} scroll>\r\n {selectedFeature.Attachments && selectedFeature.Attachments.length > 0 && selectedFeature.Attachments.map((a, i) => \r\n \r\n )}\r\n }\r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default NewFeatureDetails","import NewFeatureDetail from \"../../components/Other/New Features/Feature Details/NewFeatureDetails\"\r\n\r\nconst NewFeatureDetails = () => {\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default NewFeatureDetails","import { Fragment, useState } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { useNavigate } from \"react-router\"\r\nimport ButtonM from \"../../../UI/Buttons/Buttons/ButtonM\"\r\nimport PinkTextButton from \"../../../UI/Buttons/TextButtons/PinkTextButton\"\r\nimport FixedMiddleBar from \"../../../UI/FixedBottomBar/FixedMiddleBar\"\r\n\r\nimport Input from \"../../../UI/Inputs/Input\"\r\nimport TextField from \"../../../UI/Inputs/TextField\"\r\nimport MessageBox from \"../../../UI/Modals/MessageBox\"\r\nimport ModalNew from \"../../../UI/Modals/ModalNew\"\r\nimport ImageUpload from \"../../../UI/Others/ImageUpload\"\r\nimport classes from './AddNewFeature.module.css'\r\n\r\n\r\nconst AddNewFeature = () => {\r\n\r\n const navigate = useNavigate()\r\n const url = useSelector((state) => state.auth.url)\r\n\r\n const [summary, setSummary] = useState('')\r\n const [summaryInvalid, setSummaryInvalid] = useState()\r\n const [description, setDescription] = useState('')\r\n const [descriptionInvalid, setDescriptionInvalid] = useState()\r\n const [uploadedImages, setUploadedImages] = useState([])\r\n const [isLoading, setIsLoading] = useState()\r\n const [error, setError] = useState()\r\n const [successMessage, setSuccessMessage] = useState()\r\n\r\n\r\n\r\n const closeAddFeatureHandler = () => {\r\n navigate(-1)\r\n }\r\n\r\n const changeUploadedImages = (files) => {\r\n setUploadedImages(files)\r\n }\r\n\r\n const saveFeatureHandler = () => {\r\n if(!summary || summary.trim() === ''){\r\n setSummaryInvalid(true)\r\n return;\r\n }\r\n if(!description || description.trim() === ''){\r\n setDescriptionInvalid(true)\r\n return;\r\n }\r\n saveFeature()\r\n }\r\n\r\n const saveFeature = async () => {\r\n setIsLoading(true)\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n\r\n var form = new FormData()\r\n form.append(\"Summary\", summary)\r\n form.append(\"Description\", description)\r\n uploadedImages.forEach(image => {\r\n form.append(image.name, image)\r\n\r\n });\r\n const response = await fetch(`${url}api/featurevoting`,\r\n {\r\n method: 'POST',\r\n mode: 'cors',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Authorization': bearer\r\n },\r\n enctype: \"multipart/form-data\",\r\n body: form\r\n })\r\n const data = await response.json()\r\n if(!data){\r\n setError(true)\r\n }\r\n else{\r\n setSuccessMessage(true)\r\n }\r\n setUploadedImages([])\r\n setIsLoading(false)\r\n }\r\n\r\n\r\n return \r\n {setSummary(v); setSummaryInvalid(false)}} value={summary} invalid={summaryInvalid}/>\r\n {setDescription(v); setDescriptionInvalid(false)}} value={description} className={classes.description} invalid={descriptionInvalid}/>\r\n \r\n \r\n Cancel\r\n {error &&

    An error accured while saving, please try again.

    }\r\n Save\r\n
    \r\n\r\n
    \r\n {successMessage && {navigate(-1)}}>\r\n \r\n }\r\n
    \r\n}\r\n\r\nexport default AddNewFeature","import NewFeatureAdd from '../../components/Other/New Features/Add New Feature/AddNewFeature'\r\n\r\nconst AddNewFeature = () => {\r\n\r\n return \r\n}\r\n\r\nexport default AddNewFeature","export default __webpack_public_path__ + \"static/media/Logo light background.9b52a702.svg\";","import classes from './PageNotFound.module.css'\r\nimport logo from '../../images/Logo light background.svg'\r\n\r\nconst PageNotFound = () => {\r\n\r\n return
    \r\n
    \r\n
    \r\n

    Error 404

    \r\n

    Page Not Found

    \r\n

    The page you are looking for doesn't exist
    or an other error occured.

    \r\n
    \r\n
    \r\n} \r\nexport default PageNotFound","import PageNotF from '../components/Other/PageNotFound'\r\n\r\nconst PageNotFound = () => {\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default PageNotFound","\r\nimport { useEffect } from 'react'\r\nimport { useState } from 'react'\r\nimport Badge from '../../UI/Others/Badge'\r\nimport classes from './StatementViewItem.module.css'\r\n\r\nconst StatementViewItem = (props) => {\r\n\r\n //#region hooks\r\n\r\n const [date, setDate] = useState()\r\n const [value, setValue]= useState()\r\n const [balance, setBalance] = useState()\r\n\r\n useEffect(() => {\r\n if (props.statement.Date) {\r\n var date = new Date(props.statement.Date)\r\n var formattedDate = date.toLocaleString(undefined, { year: \"numeric\", month: \"2-digit\", day: \"2-digit\"}).replace(',', '')\r\n setDate(formattedDate)\r\n }\r\n\r\n }, [props.statement.Date])\r\n\r\n useEffect(() => {\r\n var amount = parseFloat(props.statement.Value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })\r\n setValue(amount)\r\n }, [props.statement.Value])\r\n\r\n useEffect(() => {\r\n var amount = parseFloat(props.statement.Balance).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })\r\n setBalance(amount)\r\n }, [props.statement.Balance])\r\n\r\n //#endregion\r\n\r\n return (\r\n
    \r\n

    ${value}

    \r\n

    ${balance}

    \r\n

    {date}

    \r\n {props.statement.Status && props.statement.Status !== 'Successful' && props.statement.Status}{props.statement.PaymentID > 0 ? 'Payment' : 'Charge'}\r\n

    {props.statement.PaymentID > 0 ? props.statement.PaymentType : props.statement.SchoolType}

    \r\n

    {props.statement.StudentName}

    \r\n

    View Details

    \r\n
    \r\n )\r\n}\r\n\r\nexport default StatementViewItem","import { Fragment, useState } from \"react\";\r\nimport { useNavigate, useParams } from \"react-router-dom\";\r\n\r\nimport StatementViewItem from \"./StatementViewItem\"\r\nimport classes from './StatementViewItem.module.css'\r\nimport SortDesc from \"../../../images/Sort - Desc.svg\";\r\nimport SortAsce from \"../../../images/Sort - Acse.svg\";\r\nimport CheckboxS from \"../../UI/Checkboxs/CheckboxS\"\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useEffect } from \"react\";\r\nimport { statementsActions } from \"../../../store/statements-slice\";\r\nimport LoadingSpinner from \"../../UI/LoadingSpinners/LoadingSpinner\";\r\nimport { forwardRef } from \"react\";\r\n\r\n\r\nconst StatementView = forwardRef((props,ref)=>{\r\n\r\n //#region hooks\r\n\r\n const navigate = useNavigate()\r\n const params = useParams()\r\n const dispatch = useDispatch()\r\n\r\n const statementList = useSelector((state) => state.statements.statement)\r\n const isLoading = useSelector((state) => state.statements.isLoading)\r\n\r\n const [showPendingPayments, setShowPendingPayments] = useState(false)\r\n const [valueArrow, setValueArrow] = useState(SortAsce);\r\n const [dateArrow, setDateArrow] = useState(SortAsce);\r\n const [typeArrow, setTypeArrow] = useState(SortAsce);\r\n const [detailsArrow, setDetailsArrow] = useState(SortAsce);\r\n const [studentArrow, setStudentArrow] = useState(SortAsce)\r\n const [statement, setStatement] = useState([])\r\n const [statementItems, setStatementItems] = useState([])\r\n const [balance, setBalance] = useState('')\r\n \r\n useEffect(() => {\r\n if(statementList.length > 0){\r\n var balance = statementList[0].BalanceForward\r\n statementList.forEach(s => {\r\n if(s.PaymentID > 0){\r\n balance = balance - s.Value\r\n }\r\n else if(s.PledgeID > 0){\r\n balance = balance + s.Value\r\n }\r\n })\r\n dispatch(statementsActions.setBalance(balance))\r\n }\r\n },[statementList, dispatch])\r\n\r\n useEffect(()=>{\r\n if(showPendingPayments){\r\n if(statementList.length > 0){\r\n var list = [...statementList].sort((a, b) => new Date(a.Date) - new Date(b.Date))\r\n setStatement(list)\r\n }\r\n }\r\n else{\r\n list = [...statementList].filter(s => !s.Status || s.Status !== 'Pending')\r\n list = list.sort((a, b) => new Date(a.Date) - new Date(b.Date))\r\n setStatement(list)\r\n }\r\n },[showPendingPayments, statementList])\r\n\r\n useEffect(()=>{\r\n if(statement.length > 0){\r\n var list = [...statement]\r\n var balance = list[0].BalanceForward\r\n list = list.map(s => {\r\n if(s.PaymentID > 0){\r\n balance = balance - s.Value\r\n }\r\n else if(s.PledgeID > 0){\r\n balance = balance + s.Value\r\n }\r\n return {viewDetailsHandler(s.PaymentID > 0 ? s.PaymentID : s.PledgeID, s.PaymentID > 0)}}/>\r\n })\r\n setStatementItems(list)\r\n setBalance(balance)\r\n }\r\n else{\r\n setStatementItems([])\r\n }\r\n },[statement])\r\n\r\n //#endregion\r\n\r\n //#region sort\r\n\r\n const changeAllArrowsToDown = () => {\r\n setValueArrow(SortAsce);\r\n setDateArrow(SortAsce);\r\n setTypeArrow(SortAsce);\r\n setDetailsArrow(SortAsce);\r\n setStudentArrow(SortAsce)\r\n };\r\n \r\n const switchArrowDirection = (state) => {\r\n if (state === SortAsce) {\r\n return SortDesc;\r\n }\r\n return SortAsce;\r\n };\r\n \r\n const sortByColumnHandler = (column) => {\r\n changeAllArrowsToDown();\r\n let newList = []\r\n statement.forEach( (s, index) => {\r\n newList[index] = {...s}\r\n })\r\n switch (column) {\r\n case \"value\":\r\n if(valueArrow === SortDesc){\r\n newList = newList.sort((a, b) => a.Value - b.Value)\r\n }\r\n else{\r\n newList = newList.sort((a, b) => b.Value - a.Value)\r\n }\r\n setValueArrow(switchArrowDirection(valueArrow));\r\n break;\r\n case \"date\":\r\n if(dateArrow === SortDesc){\r\n newList = newList.sort((a, b) => new Date(a.Date) - new Date(b.Date))\r\n }\r\n else{\r\n newList = newList.sort((a, b) => new Date(b.Date) - new Date(a.Date))\r\n }\r\n setDateArrow(switchArrowDirection(dateArrow));\r\n break;\r\n case \"type\":\r\n if(typeArrow === SortDesc){\r\n newList = newList.sort((a, b) => a.PaymentID - b.PaymentID)\r\n }\r\n else{\r\n newList = newList.sort((a, b) => b.PaymentID - a.PaymentID)\r\n }\r\n setTypeArrow(switchArrowDirection(typeArrow));\r\n break;\r\n case \"details\":\r\n if(detailsArrow === SortDesc){\r\n newList = newList.sort((a,b) => {\r\n const detailsA = a.PaymentID > 0 ? a.PaymentType : a.SchoolType\r\n const detailsB = b.PaymentID > 0 ? b.PaymentType : b.SchoolType\r\n return (detailsA > detailsB) ? 1 : ((detailsB > detailsA) ? -1 : 0)})\r\n }\r\n else{\r\n newList = newList.sort((a,b) => {\r\n const detailsA = a.PaymentID > 0 ? a.PaymentType : a.SchoolType\r\n const detailsB = b.PaymentID > 0 ? b.PaymentType : b.SchoolType\r\n return (detailsA < detailsB) ? 1 : ((detailsB < detailsA) ? -1 : 0)})\r\n }\r\n setDetailsArrow(switchArrowDirection(detailsArrow));\r\n break;\r\n case \"student\":\r\n if(studentArrow === SortDesc){\r\n newList = newList.sort((a,b) => a.StudentName > b.StudentName ? 1 : b.StudentName > a.StudentName ? -1 : 0)\r\n }\r\n else{\r\n newList = newList.sort((a,b) => a.StudentName < b.StudentName ? 1 : b.StudentName < a.StudentName ? -1 : 0)\r\n }\r\n setStudentArrow(switchArrowDirection(studentArrow));\r\n break;\r\n default:\r\n break;\r\n }\r\n setStatement(newList)\r\n }; \r\n\r\n //#endregion\r\n\r\n //#region event handlers\r\n\r\n const viewDetailsHandler = (id, isPayment) => {\r\n //set up selected payment/charge\r\n if(isPayment){\r\n dispatch(statementsActions.setSelectedPayment(id))\r\n navigate(`/${params.organization}/${params.school}/parents/statement/payment-details`)\r\n }\r\n else{\r\n dispatch(statementsActions.setSelectedPledge(id))\r\n navigate(`/${params.organization}/${params.school}/parents/statement/charge-details`)\r\n }\r\n }\r\n \r\n //#endregion\r\n\r\n return(\r\n
    \r\n setShowPendingPayments(prevState => !prevState)} checked={showPendingPayments} onBlur={()=>{}} className={classes['successful-payments']}/>\r\n {statementItems && statementItems.length > 0 && \r\n
    \r\n

    ValueArrow sortByColumnHandler('value')} />

    \r\n

    Running Balance

    \r\n

    DateArrow sortByColumnHandler('date')} />

    \r\n

    Payment/ ChargeArrow sortByColumnHandler('type')} />

    \r\n

    StudentArrow sortByColumnHandler('student')} />

    \r\n

    DetailsArrow sortByColumnHandler('details')} />

    \r\n
    }\r\n
    \r\n {statementList.length > 0 &&
    \r\n

    ${parseFloat(statementList[0].BalanceForward).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}

    \r\n

    Previous Balance

    \r\n
    }\r\n {statementItems}\r\n {statementList.length > 0 &&
    \r\n

    ${parseFloat(balance).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}

    \r\n

    Due Now

    \r\n
    }\r\n {(!statementItems || statementItems.length === 0) && !isLoading &&

    No Items found

    }\r\n
    \r\n {isLoading && }\r\n
    \r\n
    \r\n )\r\n})\r\n\r\nexport default StatementView","export default __webpack_public_path__ + \"static/media/printer.72898b93.svg\";","import { useEffect, Fragment,useRef } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useNavigate, useParams } from \"react-router-dom\"\r\nimport { useReactToPrint } from 'react-to-print';\r\n\r\nimport { fetchStatementsList } from \"../../../store/statements-actions\"\r\nimport MainHeader from \"../../layout/MainHeader\"\r\nimport ButtonL from \"../../UI/Buttons/Buttons/ButtonL\"\r\nimport classes from './Statement.module.css'\r\nimport StatementView from \"./StatementView\"\r\nimport Phone from '../../../images/Call.svg'\r\nimport Location from '../../../images/Location.svg'\r\nimport Message from '../../../images/Message.svg'\r\nimport ButtonLOut from \"../../UI/Buttons/Buttons-Outline/ButtonLOut\"\r\nimport printer from '../../../images/printer.svg'\r\n\r\n\r\nconst Statement = () => {\r\n const componentRef = useRef();\r\n const handlePrint = useReactToPrint({\r\n content: () => componentRef.current,\r\n });\r\n\r\n const navigate = useNavigate()\r\n const params = useParams()\r\n const dispatch = useDispatch()\r\n\r\n\r\n useEffect(()=>{\r\n dispatch(fetchStatementsList())\r\n },[dispatch])\r\n\r\n\r\n return (\r\n \r\n \r\n
    \r\n

    Statement for
    School Year {localStorage.getItem(\"SchoolYear\")}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {localStorage.getItem('sessionCompanyName')}

    \r\n {localStorage.getItem('SchoolAddress') &&

    {localStorage.getItem(\"SchoolAddress\")}

    }\r\n {localStorage.getItem('SchoolPhone') &&

    {localStorage.getItem(\"SchoolPhone\")}

    }\r\n {localStorage.getItem('SchoolEmail') && }\r\n
    \r\n
    \r\n Print Statement\r\n { navigate(`/${params.organization}/${params.school}/parents/statement/new-payment`)}}>Add Payment\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Statement","import { Fragment, useEffect } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { Outlet, useNavigate, useParams} from 'react-router-dom'\r\n\r\nimport Layout from '../../../components/layout/Layout'\r\nimport StatementView from '../../../components/ParentLogin/Statement/Statement'\r\n\r\nconst Statement = () => {\r\n const parentLoggedIn = useSelector((state) => state.auth.parentLoggedIn)\r\n const params = useParams()\r\n const navigate = useNavigate()\r\n\r\n useEffect(()=>{\r\n if(!parentLoggedIn){\r\n navigate(`/${params.organization}/${params.school}/parents/login`, { replace: true })\r\n }\r\n },[navigate, parentLoggedIn, params.organization, params.school])\r\n\r\n\r\n return (\r\n {parentLoggedIn ? \r\n \r\n \r\n \r\n : null}\r\n \r\n )\r\n}\r\n\r\nexport default Statement","\r\nimport Plus from '../../../../images/Plus-light small.svg'\r\nimport ButtonM from '../Buttons/ButtonM'\r\nimport classes from './AddButton.module.css'\r\n\r\n\r\nconst AddButton = (props) => {\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n\r\nexport default AddButton","import classes from './CircleProgressBar.module.css'\r\n\r\nconst CircleProgressBar = (props) => {\r\n return(\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    )}\r\n\r\nexport default CircleProgressBar","export default __webpack_public_path__ + \"static/media/Arrow - Down 2.734f5f91.svg\";","export default __webpack_public_path__ + \"static/media/Arrow - Up 2.402640e2.svg\";","\r\nimport classes from './DetailsItem.module.css'\r\nimport ArrowDown from '../../../images/Arrow - Down 2.svg'\r\nimport Arrowup from '../../../images/Arrow - Up 2.svg'\r\n\r\n\r\nconst DetailsItem = ({open, onClick, title, children, header, sticky}) => {\r\n\r\n return(\r\n
    \r\n
    \r\n
    \r\n \r\n

    {title}

    \r\n
    \r\n {header}\r\n
    \r\n {open &&
    {children}
    }\r\n
    \r\n )\r\n}\r\n\r\nexport default DetailsItem","export default __webpack_public_path__ + \"static/media/more_vert.64796747.svg\";","import { Fragment, useEffect, useRef, useState } from 'react'\r\n\r\nimport classes from './TasksList.module.css'\r\nimport CircleProgressBar from './CircleProgressBar'\r\nimport DetailsItem from './DetailsItem'\r\nimport more from '../../../images/more_vert.svg'\r\nimport useOutsideAlerter from '../../../hooks/use-outside-alerter'\r\n\r\nconst TasksList = (props) => {\r\n const actionRef = useRef()\r\n const {clickedOutside, resetState} = useOutsideAlerter(actionRef)\r\n\r\n \r\n const [menuActions, setMenuActions] = useState([])\r\n const [showActions, setShowActions] = useState()\r\n const [print, setPrint] = useState()\r\n\r\n useEffect(()=>{\r\n if(props.actions){\r\n let _actions = props.actions.split(',')\r\n if(_actions){\r\n let a = _actions.map((action, i) => {\r\n return

    actionHandler(e, action.trim())}>{action.replace(/([A-Z])/g, ' $1').trim()\r\n }

    \r\n })\r\n\r\n setMenuActions(a)\r\n } \r\n }\r\n else{\r\n setMenuActions(

    e.stopPropagation()}>No actions set up

    )\r\n }\r\n },[props.actions])\r\n\r\n useEffect(()=>{\r\n if(clickedOutside){\r\n switch(actionRef.current.id){\r\n case 'actions': \r\n setShowActions(false)\r\n break;\r\n default:\r\n break;\r\n }\r\n resetState()\r\n }\r\n },[clickedOutside])\r\n\r\n useEffect(()=>{\r\n if(!showActions && print){\r\n props.onPrint()\r\n setPrint(false)\r\n }\r\n },[showActions])\r\n\r\n const actionHandler = (e, action) => {\r\n e.stopPropagation();\r\n switch(action){\r\n case 'PrintDashboard':\r\n setShowActions(false)\r\n setPrint(true)\r\n break;\r\n default:\r\n break;\r\n\r\n }\r\n }\r\n\r\n return \r\n \r\n

    {props.completed}/{props.total} Completed

    \r\n \r\n
    \r\n {e.stopPropagation(); setShowActions(prevState => ! prevState);}} />\r\n {showActions &&
    \r\n {menuActions}\r\n
    }\r\n
    \r\n \r\n }>\r\n {props.children}\r\n
    \r\n
    \r\n}\r\n\r\nexport default TasksList","import { useEffect, useState } from 'react'\r\nimport classes from './TaskListTotals.module.css'\r\n\r\nconst TaskListTotals = (props) => {\r\n const [under1K, setUnder1K] = useState()\r\n const [over1K, setOver1K] = useState()\r\n const [over10K, setover10K] = useState()\r\n\r\n useEffect(()=>{\r\n if(props.balance && props.balance.length > 0){\r\n let tasks = props.balance.filter(b => b < 1000)\r\n if(tasks){\r\n setUnder1K({amount: tasks.length, percent: Math.round(tasks.length / props.balance.length * 100)})\r\n }\r\n tasks = props.balance.filter(b => b >= 1000 && b < 10000)\r\n if(tasks){\r\n setOver1K({amount: tasks.length, percent: Math.round(tasks.length / props.balance.length * 100)})\r\n }\r\n tasks = props.balance.filter(b => b >= 10000)\r\n if(tasks){\r\n setover10K({amount: tasks.length, percent: Math.round(tasks.length / props.balance.length * 100)})\r\n }\r\n }\r\n },[props.balance])\r\n\r\n return
    \r\n
    \r\n {props.totals.map(t => {\r\n return
    \r\n

    {t.name}

    \r\n

    {t.value}

    \r\n
    \r\n })}\r\n
    \r\n
    \r\n {under1K &&
    \r\n
    \r\n

    {under1K.amount}

    \r\n

    {'<'}$1k

    \r\n
    \r\n

    \r\n
    }\r\n {over1K &&
    \r\n
    \r\n

    {over1K.amount}

    \r\n

    {'>'}$1k

    \r\n
    \r\n

    \r\n
    }\r\n {over10K &&
    \r\n
    \r\n

    {over10K.amount}

    \r\n

    {'>'}$10k

    \r\n
    \r\n

    \r\n
    }\r\n
    \r\n
    \r\n}\r\n\r\nexport default TaskListTotals","import classes from './TaskList.module.css'\r\nimport { useState } from 'react'\r\nimport AddButton from '../../../UI/Buttons/AddButton'\r\nimport { useNavigate } from 'react-router-dom'\r\n\r\nconst TaskList = (props) => {\r\n const navigate = useNavigate()\r\n\r\n const addTaskHandler = () => {\r\n navigate(`new-task?dashboard=${props.name}`)\r\n }\r\n\r\n return
    \r\n {props.children}\r\n {!props.adminDashboard &&
    \r\n New Task\r\n
    }\r\n
    \r\n}\r\n\r\nexport default TaskList","export default __webpack_public_path__ + \"static/media/check - task completed.fea6d44a.svg\";","export default __webpack_public_path__ + \"static/media/check - task not completed.4896dad8.svg\";","export default __webpack_public_path__ + \"static/media/Notepad.1931babb.svg\";","export default __webpack_public_path__ + \"static/media/Calling.e1f4a2f4.svg\";","export default __webpack_public_path__ + \"static/media/Messages, Chat.ded84108.svg\";","export default __webpack_public_path__ + \"static/media/check-circle.f919c412.svg\";","export default __webpack_public_path__ + \"static/media/check-circle-g.70a3b9d5.svg\";","import classes from './Note.module.css'\r\nimport check from '../../../../images/check-circle.svg'\r\nimport checkG from '../../../../images/check-circle-g.svg'\r\nimport TextField from '../../../UI/Inputs/TextField'\r\nimport { useState } from 'react'\r\n\r\nconst Note = (props) => {\r\n const [checkSrc, setCheckSrc] = useState(check)\r\n\r\n const saveNoteHandler = () => {\r\n if(props.value && props.value !== ''){\r\n props.onSave()\r\n }\r\n }\r\n \r\n return (\r\n
    \r\n
    \r\n

    Notes

    \r\n setCheckSrc(checkG)} onMouseOut={() => setCheckSrc(check)} />\r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default Note","import { Fragment, useEffect, useState } from 'react'\r\nimport classes from './NumbersPopup.module.css'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport useHttp from '../../../../hooks/use-http'\r\nimport { uiActions } from '../../../../store/ui-slice'\r\nimport { fetchDashboards } from '../../../../store/hub-actions'\r\n\r\nconst NumbersPopup = (props) => {\r\n const {sendRequest: sendMessage, isLoading} = useHttp()\r\n const {sendRequest: saveCall } = useHttp()\r\n const dispatch = useDispatch()\r\n\r\n const dashboards = useSelector((state) => state.hub.dashboards)\r\n const loadedAllDashboards = useSelector((state) => state.hub.loadedAllDashboards)\r\n\r\n const [numbers, setNumbers] = useState([])\r\n const [showTemplates, setShowTemplates] = useState()\r\n const [templates, setTemplates] = useState([])\r\n const [showSendEdit, setShowSendEdit] = useState()\r\n\r\n useEffect(() => {\r\n let numbers = []\r\n let nums\r\n if(props.phoneMobile){\r\n nums =
    \r\n

    clickNumberHandler('PhoneMobile', props.phoneMobile)}>Mobile

    \r\n

    clickNumberHandler('PhoneMobile', props.phoneMobile)}>{props.phoneMobile}

    \r\n {showTemplates === 'PhoneMobile' &&
    {templates}
    }\r\n
    \r\n numbers = [...numbers, nums]\r\n }\r\n if(props.phoneSpouse){\r\n nums =
    \r\n

    clickNumberHandler('PhoneSpouse', props.phoneSpouse)}>Spouse Mobile

    \r\n

    clickNumberHandler('PhoneSpouse', props.phoneSpouse)}>{props.phoneSpouse}

    \r\n {showTemplates === 'PhoneSpouse' &&
    {templates}
    }\r\n
    \r\n numbers = [...numbers, nums]\r\n }\r\n if(props.email){\r\n nums =

    clickNumberHandler('Email', props.email)}>Email

    \r\n

    clickNumberHandler('Email', props.email)}>{props.email}

    \r\n {showTemplates === 'Email' &&
    {templates}
    }\r\n
    \r\n numbers = [...numbers, nums]\r\n }\r\n if(props.phoneHome){\r\n nums =
    \r\n

    clickNumberHandler('Home', props.phoneHome)}>Home

    \r\n

    clickNumberHandler('Home', props.phoneHome)} id={`${!props.message && 'Call'} ${props.dashboardSettingId} ${props.id} PhoneHome ${props.phoneHome.replace(/[^0-9]/g,\"\")}`}>{props.phoneHome}

    \r\n
    \r\n numbers = [...numbers, nums]\r\n }\r\n setNumbers(numbers) \r\n }, [props, showTemplates, templates])\r\n\r\n useEffect(()=>{\r\n if(dashboards.length > 0 && loadedAllDashboards){\r\n let dashboard = dashboards.find(d=> d.DashboardSettingID === props.dashboardSettingId)\r\n if(dashboard){\r\n const tempTemplates = [...dashboard.SmsTemplates, {TemplateID: 0, Name: 'New Template'}]\r\n let t = tempTemplates.map((template, i) => {\r\n return
    template.TemplateID > 0 ? selectTemplateHandler(template.TemplateID) : props.onClose()} id={template.TemplateID === 0 ? 'New-Template' : template.TemplateID}>\r\n

    {template.Name}

    \r\n {showSendEdit === template.TemplateID &&
    \r\n
    sendMessageHandler(template.TemplateID)}>

    Send

    \r\n

    Edit

    \r\n
    }\r\n
    \r\n })\r\n setTemplates(t)\r\n }\r\n }\r\n },[dashboards, showSendEdit, loadedAllDashboards])\r\n\r\n const clickNumberHandler = (type, number) => {\r\n if(props.message){\r\n if(type === 'PhoneMobile' || type === 'PhoneSpouse' || type === 'Email'){\r\n setShowTemplates(type)\r\n }\r\n }\r\n else if(window.location.href.indexOf(\"-app\") === -1){\r\n saveCall({url: `api/calledDonor?dashboardId=${props.dashboardSettingId}&id=${props.id}&reminderId=${props.reminderId || 0}&number=${number}`}, handleSaveCallResponse)\r\n const num = number.replace(/\\D/g, '')\r\n window.location.href = `tel:+1${num}`; \r\n }\r\n }\r\n\r\n const handleSaveCallResponse = (data) => {\r\n if(data === ''){\r\n dispatch(fetchDashboards(true))\r\n props.onChanged && props.onChanged()\r\n }\r\n props.onClose() \r\n }\r\n\r\n const selectTemplateHandler = (id) => {\r\n setShowSendEdit(id)\r\n }\r\n\r\n const sendMessageHandler = (templateId) => {\r\n sendMessage({url: `api/sendMessage?dashboardId=${props.dashboardSettingId}&id=${props.id}&contactType=${showTemplates}&templateId=${templateId}`}, handleMessageResponse)\r\n\r\n }\r\n\r\n const handleMessageResponse = (data) => {\r\n if(data && data !== ''){\r\n dispatch(uiActions.showSidePopup({status: 'error', header: 'Error sending message', message: data }))\r\n }\r\n else if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: 'Successfully sent message'}))\r\n }\r\n props.onClose()\r\n }\r\n \r\n\r\n return {numbers.length > 0 &&
    \r\n {numbers && numbers.map((n, i) => {\r\n return
    \r\n {n}\r\n
    \r\n })}\r\n
    }\r\n
    \r\n}\r\n\r\nexport default NumbersPopup","import { useEffect, useState } from \"react\"\r\nimport useHttp from \"../../../../hooks/use-http\";\r\nimport classes from './ChargeTypes.module.css'\r\n\r\nconst ChargeTypes = (props) => {\r\n const {sendRequest, isLoading} = useHttp()\r\n\r\n const [chargeTypes, setChargeTypes] = useState([])\r\n\r\n useEffect(()=>{\r\n fetchChargeTypes()\r\n },[])\r\n \r\n const fetchChargeTypes = () => {\r\n sendRequest({url:`api/chargeTypes?recurring=${props.recurring ? true : false}`}, handleResponse)\r\n } \r\n\r\n const handleResponse = (data) => {\r\n setChargeTypes(data)\r\n }\r\n\r\n return (\r\n
    \r\n

    Default Charge

    \r\n {chargeTypes.map(t => {\r\n return

    {e.stopPropagation(); props.onClose();}}>\r\n {t.Name} - {t.Amount}\r\n

    \r\n })}\r\n
    \r\n )\r\n\r\n}\r\n\r\nexport default ChargeTypes","import classes from './PopupList.module.css'\r\n\r\nconst PopupList = (props) => {\r\n\r\n return (\r\n
    {props.children}
    \r\n )\r\n}\r\n\r\nexport default PopupList","import classes from './PopupListItem.module.css'\r\n\r\nconst PopupListItem = (props) => {\r\n\r\n return (

    {props.children}

    )\r\n}\r\n\r\nexport default PopupListItem","import { useEffect, useState } from \"react\"\r\nimport useHttp from \"../../../../hooks/use-http\"\r\nimport PopupList from \"../../../UI/Hub/PopupList\"\r\nimport PopupListItem from \"../../../UI/Hub/PopupListItem\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { uiActions } from \"../../../../store/ui-slice\"\r\nimport { fetchDashboards } from \"../../../../store/hub-actions\"\r\nimport { hubActions } from \"../../../../store/hub-slice\"\r\n\r\n\r\nconst UsersListPopup = (props) => {\r\n const {sendRequest: getUsers} = useHttp()\r\n const {sendRequest: assignTask, isLoading: assignTaskLoading} = useHttp()\r\n const dispatch = useDispatch()\r\n\r\n const users = useSelector((state) => state.hub.users)\r\n\r\n\r\n useEffect(()=>{\r\n if(users.length === 0){\r\n fetchUsersList()\r\n }\r\n },[users])\r\n \r\n const fetchUsersList = () => {\r\n getUsers({url:'api/getUsers'}, handleGetUsersResponse)\r\n } \r\n\r\n const handleGetUsersResponse = (data) => {\r\n dispatch(hubActions.loadUsers(data))\r\n }\r\n\r\n const assignTaskHandler = (e, id) =>{\r\n e.stopPropagation(); \r\n assignTask({url:`api/assignTask?dashboardId=${props.dashboardId}&id=${props.id}&reminderId=${props.reminderId}&userId=${id}`}, (data) => handleAssignTaskResponse(data, id))\r\n }\r\n\r\n const handleAssignTaskResponse = (data, id) => {\r\n props.onClose();\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: 'Successfuly assigned task'}))\r\n //if assigned to a different user it should remove from list till the page reloads\r\n const userName = localStorage.getItem('userName')\r\n const user = users.find(u => u.UserID === id)\r\n if(user && userName && user.UserName !== userName){\r\n dispatch(hubActions.removeTaskFromList({dashboardId: props.dashboardId, ID: props.id}))\r\n }\r\n props.cancelco.abort()\r\n dispatch(fetchDashboards(true))\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: 'Error assigning task', message: data}))\r\n }\r\n\r\n }\r\n\r\n return (\r\n \r\n {users.map((u, i) => {\r\n return !assignTaskLoading && assignTaskHandler(e, u.UserID)} second={(i + 1) % 2 === 0}>\r\n {u.UserName}\r\n \r\n })}\r\n \r\n )\r\n}\r\n\r\nexport default UsersListPopup","import { Fragment, useEffect, useState } from 'react'\r\n\r\nimport classes from './MorePopup.module.css'\r\nimport arrow from '../../../../images/Arrow - Right 2.svg'\r\nimport { addDays } from '../../../../functions/Dates/dateFunctions'\r\nimport useHttp from '../../../../hooks/use-http'\r\nimport { converDateForBackendWithCurrentTime } from '../../../../functions/Dates/ConvertDateForC#'\r\nimport DateInput from '../../../UI/Inputs/DateInput'\r\nimport { useDispatch } from 'react-redux'\r\nimport { uiActions } from '../../../../store/ui-slice'\r\nimport { fetchDashboards } from '../../../../store/hub-actions'\r\nimport { fetchDonorsAddressesList, fetchDonorsContactsList, fetchSingleDonorNotForList } from '../../../../store/donors-actions'\r\nimport { fetchAllTendersLists } from '../../../../store/tenders-actions'\r\nimport { fetchPledgesForDonor, fetchRecurringPledgesForDonor } from '../../../../store/pledges-actions'\r\nimport { useNavigate } from 'react-router'\r\nimport ChargeTypes from './ChargeTypes'\r\nimport UsersListPopup from './UsersListPopup'\r\nimport { getCompleteMessageBody, getUpdateMessageBody } from '../../../../functions/getMessageBody'\r\n\r\nconst MorePopup = (props) => {\r\n const navigate = useNavigate()\r\n\r\n const [showSnooze, setShowSnooze] = useState()\r\n const [showCustomSnooze, setShowCustomSnooze] = useState()\r\n const [customDueDate, setCustomDueDate] = useState()\r\n const [moreActions, setMoreActions] = useState([])\r\n const [showChargeTypes, setShowChargeTypes] = useState()\r\n const [showUsersList, setShowUsersList] = useState()\r\n\r\n const {sendRequest: snoozeTask, isLoading: snoozeTaskLoading} = useHttp()\r\n const {sendRequest: noResponse, isLoading: noResponseLoading} = useHttp()\r\n const {sendRequest: completeTask, isLoading: completeTaskLoading} = useHttp()\r\n\r\n useEffect(()=>{\r\n if(props.actions){\r\n let actions = props.actions.split(',')\r\n if(actions){\r\n let a = actions.map((action, i) => {\r\n let actionDisplayName = action.replace(/([A-Z])/g, ' $1').trim()\r\n return
    actionHandler(action.trim())} id={`task-action ${props.dashboardSettingId} ${action.trim()} ${props.task.ID}`}>\r\n {actionDisplayName}\r\n {action.trim() === 'AddCharge' && showChargeTypes && showChargeTypes === 'charge' && }\r\n {action.trim() === 'AddRecurringCharge' && showChargeTypes && showChargeTypes === 'recCharge' && }\r\n {action.trim() === 'AssignTask' && showUsersList && }\r\n
    \r\n })\r\n setMoreActions(a)\r\n }\r\n }\r\n else if(props.details){\r\n setMoreActions([

    No actions set up

    ])\r\n }\r\n }, [props.actions, props.task.ID, showChargeTypes, showUsersList])\r\n const dispatch = useDispatch()\r\n\r\n const snoozeHandler = (days) => {\r\n if(!snoozeTaskLoading){\r\n let date = new Date()\r\n date = addDays(date, days)\r\n if(days === 1){\r\n date = converDateForBackendWithCurrentTime(date)\r\n }\r\n snooze(date)\r\n }\r\n }\r\n\r\n const snooze = (date) => {\r\n snoozeTask({url: `api/snoozeReminder?dashboardSettingId=${props.dashboardSettingId}&id=${props.task.ID}&reminderId=${props.task.ReminderID}&date=${date}`}, handleSnoozeResponse)\r\n }\r\n\r\n const toggleShowCustomSnoozehandler = () => {\r\n setShowCustomSnooze(prevState => !prevState)\r\n }\r\n\r\n const handleSnoozeResponse = (data) => {\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: 'Successfuly snoozed task'}))\r\n dispatch(fetchDashboards(true))\r\n props.onClose()\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: 'Error snoozing task', message: data}))\r\n }\r\n\r\n }\r\n\r\n const noResponseHandler = () => {\r\n if(!noResponseLoading){\r\n noResponse({url: `api/reminderNoResponse?dashboardSettingId=${props.dashboardSettingId}&id=${props.task.ID}&reminderId=${props.task.ReminderID}`}, handleNoResponseResponse)\r\n }\r\n }\r\n\r\n const handleNoResponseResponse = (data) => {\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: getUpdateMessageBody('task')}))\r\n dispatch(fetchDashboards(true))\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: getUpdateMessageBody('task', false), message: data}))\r\n }\r\n props.onClose()\r\n }\r\n\r\n const completeHandler = () => {\r\n if(!completeTaskLoading){\r\n completeTask({url: `api/completeTask?dashboardSettingId=${props.dashboardSettingId}&id=${props.task.ID}&reminderId=${props.task.ReminderID}`}, handleCompleteTaskResponse)\r\n }\r\n }\r\n\r\n const handleCompleteTaskResponse = (data) => {\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: getCompleteMessageBody('task')}))\r\n dispatch(fetchDashboards(true))\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: getCompleteMessageBody('task', false), message: data}))\r\n }\r\n props.onClose()\r\n }\r\n const addReminderHandler = () => {\r\n navigate(`new-task?dashboard=${props.dashboardSettingId}&id=${props.task.ID}`)\r\n }\r\n\r\n const actionHandler = (action) => {\r\n if(action === 'AssignTask'){ \r\n setShowUsersList(true)\r\n return;\r\n }\r\n if(window.location.href.indexOf(\"-app\") > -1){\r\n if(props.workWith && ['Parents', 'Students'].includes(props.workWith)){\r\n switch(action){\r\n case 'AddCharge':\r\n setShowChargeTypes('charge')\r\n return;\r\n case 'AddRecurringCharge':\r\n setShowChargeTypes('recCharge')\r\n return;\r\n default:\r\n props.onClose()\r\n return;\r\n }\r\n }\r\n else{\r\n props.onClose()\r\n return;\r\n }\r\n }\r\n props.onClose()\r\n //only if working with donorid it should get all this\r\n if(props.workWith === 'Donors'){\r\n dispatch(fetchSingleDonorNotForList(props.task.ID))\r\n dispatch(fetchDonorsAddressesList(props.task.ID))\r\n dispatch(fetchDonorsContactsList(props.task.ID))\r\n dispatch(fetchAllTendersLists(props.task.ID))\r\n dispatch(fetchPledgesForDonor(props.task.ID))\r\n dispatch(fetchRecurringPledgesForDonor(props.task.ID))\r\n switch(action){\r\n case 'AddPayment':\r\n navigate(`/paymentslist/new-payment?donorId=${props.task.ID}&hub=${props.dashboardSettingId}`)\r\n break;\r\n case 'AddPledge':\r\n navigate(`/pledges-list/new-pledge?donorId=${props.task.ID}&hub=${props.dashboardSettingId}`)\r\n break;\r\n case 'AddRecurringPayment':\r\n navigate(`/rec-payments-list/new-payment?donorId=${props.task.ID}&hub=${props.dashboardSettingId}`)\r\n break;\r\n case 'AddRecurringPledge':\r\n navigate(`/rec-pledges-list/new-pledge?donorId=${props.task.ID}&hub=${props.dashboardSettingId}`)\r\n break;\r\n default:\r\n break;\r\n }\r\n \r\n }\r\n\r\n }\r\n\r\n return (\r\n
    \r\n {!props.details &&

    {props.onOpenDetails(); props.onClose();}}>Notes and details

    \r\n

    Add Reminder

    \r\n
    setShowSnooze(true)}>Snooze \r\n {showSnooze &&
    \r\n

    snoozeHandler(1)}>24 hours

    \r\n

    snoozeHandler(2)}>2 days

    \r\n

    snoozeHandler(7)}>1 week

    \r\n

    custom

    \r\n {showCustomSnooze && snooze(v)} className={classes['custom-date']}/>}\r\n
    }
    \r\n

    No Response

    \r\n

    Complete

    \r\n
    }\r\n {moreActions}\r\n
    \r\n )\r\n}\r\n\r\nexport default MorePopup","import { useState, useRef, useEffect } from 'react'\r\n\r\nimport classes from './TaskActions.module.css'\r\nimport noteImg from '../../../../images/Notepad.svg'\r\nimport call from '../../../../images/Calling.svg'\r\nimport message from '../../../../images/Messages, Chat.svg'\r\nimport more from '../../../../images/more_vert.svg'\r\nimport Note from './Note'\r\nimport NumbersPopup from './NumbersPopup'\r\nimport MorePopup from './MorePopup'\r\nimport useOutsideAlerter from '../../../../hooks/use-outside-alerter'\r\nimport useHttp from '../../../../hooks/use-http'\r\nimport { uiActions } from '../../../../store/ui-slice'\r\nimport { useDispatch } from 'react-redux'\r\nimport { fetchDashboards } from '../../../../store/hub-actions'\r\nimport { hubActions } from '../../../../store/hub-slice'\r\n\r\n\r\n\r\nconst TaskActions = (props) => {\r\n\r\n const [showNote, setShowNote] = useState(false)\r\n const [showPhoneNumbers, setShowPhoneNumbers] = useState(false)\r\n const [showMessageNumbers, setShowMessasgeNumbers] = useState(false)\r\n const [showMore, setShowMore] = useState(false)\r\n const [note, setNote] = useState('')\r\n\r\n const actionRef = useRef()\r\n const dispatch = useDispatch()\r\n const {sendRequest: saveNote, isLoading: saveNoteLoading} = useHttp()\r\n\r\n const {clickedOutside, resetState} = useOutsideAlerter(actionRef)\r\n \r\n useEffect(()=>{\r\n if(clickedOutside){\r\n switch(actionRef.current.id){\r\n case 'note':\r\n setShowNote(false)\r\n break;\r\n case 'call':\r\n setShowPhoneNumbers(false)\r\n break;\r\n case 'message':\r\n setShowMessasgeNumbers(false)\r\n break;\r\n case 'more': \r\n setShowMore(false)\r\n break;\r\n default:\r\n break;\r\n }\r\n resetState()\r\n }\r\n },[clickedOutside])\r\n\r\n const saveTaskNote = () => {\r\n saveNote({ url: `api/saveNote?dashboardSettingId=${props.dashboardSettingId}&id=${props.task.ID}&reminderId=${props.task.ReminderID}¬e=${note}`, headers: { 'Accept': 'application/json', 'content-type': 'application/json' }}, handleNoteResponse)\r\n\r\n }\r\n\r\n const handleNoteResponse = (data) => {\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: 'Successfully saved reminder'}))\r\n dispatch(fetchDashboards(true))\r\n setNote('')\r\n setShowNote(false)\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: 'Error saving reminder', message: data}))\r\n }\r\n }\r\n return(\r\n
    \r\n
    \r\n setShowNote(prevState => ! prevState)}/>\r\n {showNote && setShowNote(false)} value={note} onChange={(v) => setNote(v)} onSave={saveTaskNote}/>}\r\n
    \r\n
    \r\n setShowPhoneNumbers(prevState => ! prevState)}/>\r\n {showPhoneNumbers && setShowPhoneNumbers(false)} id={props.task.ID} phoneMobile={props.task.PhoneMobile} phoneHome={props.task.PhoneHome} phoneSpouse={props.task.PhoneSpouse} dashboardSettingId={props.dashboardSettingId} reminderId={props.task.ReminderID}/>}\r\n
    \r\n
    \r\n setShowMessasgeNumbers(prevState => ! prevState)} />\r\n {showMessageNumbers && setShowMessasgeNumbers(false)} id={props.task.ID} phoneMobile={props.task.PhoneMobile} phoneSpouse={props.task.PhoneSpouse} email={props.task.Email} dashboardSettingId={props.dashboardSettingId}/>}\r\n
    \r\n
    \r\n setShowMore(prevState => ! prevState)} />\r\n {showMore && setShowMore(false)} task={props.task} dashboardSettingId={props.dashboardSettingId} actions={props.actions} onOpenDetails={props.onOpenDetails} workWith={props.workWith}/>}\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default TaskActions","import classes from './TaskListItem.module.css'\r\nimport completed from '../../../../images/check - task completed.svg'\r\nimport notCompleted from '../../../../images/check - task not completed.svg'\r\nimport TaskActions from '../TaskActions/TaskActions'\r\nimport { useEffect, useState } from 'react'\r\nimport { useNavigate } from 'react-router-dom'\r\nimport { useDispatch } from 'react-redux'\r\nimport { donorsActions } from '../../../../store/donors-slice'\r\nimport { fetchDonorsAddressesList, fetchDonorsContactsList, fetchSingleDonorNotForList } from '../../../../store/donors-actions'\r\nimport { fetchAllTendersLists } from '../../../../store/tenders-actions'\r\nconst TaskListItem = (props) => {\r\n const [balance, setBalance] = useState('')\r\n const navigate = useNavigate()\r\n const dispatch = useDispatch\r\n ()\r\n\r\n useEffect(() => {\r\n var amount = parseFloat(props.task.Balance).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })\r\n setBalance(amount)\r\n }, [props.task.Balance])\r\n\r\n const showDetailsHandler = () => {\r\n navigate(`task-details?setting=${props.dashboardSettingId}&id=${props.task.ID}`)\r\n }\r\n\r\n const clickIdHandler = (e) => {\r\n e.stopPropagation()\r\n if(window.location.href.indexOf(\"-app\") === -1 && props.settings.WorkWith && props.settings.WorkWith === 'Donors'){\r\n dispatch(donorsActions.setSelectedDonor(props.task.ID));\r\n dispatch(fetchSingleDonorNotForList(props.task.ID));\r\n dispatch(fetchDonorsAddressesList(props.task.ID));\r\n dispatch(fetchDonorsContactsList(props.task.ID));\r\n dispatch(fetchAllTendersLists(props.task.ID));\r\n navigate(\"/donors-list/donor-details?hub=1\");\r\n }\r\n }\r\n return
    \r\n
    \r\n \r\n

    {props.settings.RowFormatText || ''} {props.settings.RowFormatLastNameFirst && props.settings.RowFormatLastNameFirst.toLowerCase() === 'true' ? `${props.task.LastName} ${props.task.FirstName} ` : `${props.task.FirstName} ${props.task.LastName} `}\r\n \r\n {props.task.ID}

    \r\n
    \r\n {props.task.FieldsToDisplay.length > 0 && props.task.FieldsToDisplay.map((f, i) =>{\r\n return

    {f.Value}

    \r\n } )}\r\n
    \r\n {!props.adminDashboard && }\r\n
    \r\n
    \r\n}\r\n\r\nexport default TaskListItem\r\n","import { useEffect, useRef, useState } from \"react\"\r\nimport TasksList from \"../../../UI/Hub/TasksList\"\r\nimport TaskListTotals from \"../../../UI/Hub/TaskListTotals\"\r\nimport TaskList from \"./TaskList\"\r\nimport TaskListItem from \"./TaskListItem\"\r\nimport classes from './Dashboard.module.css'\r\nimport { toDecimalWithCommas } from \"../../../../functions/toDecimal\"\r\nimport arrow from '../../../../images/Arrow - Down small.svg'\r\nimport listClasses from './TaskListItem.module.css'\r\nimport { useReactToPrint } from \"react-to-print\"\r\nimport { useSelector } from \"react-redux\"\r\nimport Arrow from '../../../../images/Arrow - Up 2.svg'\r\n\r\n\r\n\r\nconst Dashboard = (props) => {\r\n const tasksRef = useRef();\r\n const handlePrint = useReactToPrint({\r\n content: () => tasksRef.current,\r\n });\r\n\r\n const loadedAll = useSelector((state) => state.hub.loadedAllDashboards)\r\n const loadedSettings = useSelector((state) => state.hub.loadedSettings)\r\n\r\n const [totals, setTotals] = useState([])\r\n const [opened, setOpened] = useState(true)\r\n const [amountDisplayed, setAmountDisplayed] = useState(0)\r\n const [showList, setShowList] = useState(false)\r\n\r\n\r\n \r\n useEffect(()=>{\r\n if(props.dashboard.Totals){\r\n let totals = Object.keys(props.dashboard.Totals).map((key, index) => {\r\n return {\r\n name: key,\r\n value: key === 'Balance' ? '$' + toDecimalWithCommas(props.dashboard.Tasks.reduce((a, b) => a + (b.Balance || 0), 0)) : key === 'Total Tasks' ? props.dashboard.Tasks.length : props.dashboard.Totals[key]\r\n }\r\n })\r\n setTotals(totals)\r\n }\r\n if(!props.dashboard.AdminDashboard && props.dashboard.Settings.ShowTasksByDefault && props.dashboard.Settings.ShowTasksByDefault === \"True\"){\r\n setShowList(true)\r\n }\r\n },[props.dashboard])\r\n\r\n \r\n useEffect(()=>{\r\n if(loadedSettings){\r\n if(!amountDisplayed){\r\n if(props.dashboard.Settings.NumberOfTasksToLoad && parseInt(props.dashboard.Settings.NumberOfTasksToLoad) > 0){\r\n if(props.dashboard.Tasks.length >= parseInt(props.dashboard.Settings.NumberOfTasksToLoad)){\r\n setAmountDisplayed(parseInt(props.dashboard.Settings.NumberOfTasksToLoad))\r\n }\r\n else{\r\n setAmountDisplayed(props.dashboard.Tasks.length)\r\n }\r\n }\r\n else{\r\n if(props.dashboard.Tasks.length >= 10){\r\n setAmountDisplayed(10)\r\n }\r\n else{\r\n setAmountDisplayed(props.dashboard.Tasks.length)\r\n }\r\n }\r\n }\r\n else{ //checks if amountDisplayed is greator than tasks.length after reloaded (snooze, complete etc.)\r\n setAmountDisplayed(prevState => prevState > props.dashboard.Tasks.length ? props.dashboard.Tasks.length :prevState)\r\n }\r\n }\r\n },[props.dashboard.Tasks.length, props.dashboard.Settings, loadedSettings, amountDisplayed])\r\n\r\n const showMoreHandler = () => {\r\n if(loadedAll > 0){\r\n const amountToLoad = props.dashboard.Settings.NumberOfTasksToLoad && parseInt(props.dashboard.Settings.NumberOfTasksToLoad) > 0 ? parseInt(props.dashboard.Settings.NumberOfTasksToLoad) : 10\r\n if((amountDisplayed) + amountToLoad > props.dashboard.Tasks.length){\r\n setAmountDisplayed(props.dashboard.Tasks.length)\r\n }\r\n else{\r\n setAmountDisplayed(prevState => prevState + amountToLoad)\r\n }\r\n }\r\n \r\n }\r\n\r\n const showAllHandler = () => {\r\n setAmountDisplayed(props.dashboard.Tasks.length)\r\n }\r\n \r\nreturn
    {loadedSettings && setOpened(prevState => !prevState)} \r\n total={loadedAll ? props.dashboard.NumberOfTasksForCompleted : 0}\r\n completed={loadedAll ? props.dashboard.CompletedTasks : 0}\r\n actions={props.dashboard.Settings.DashboardActions}\r\n dashboardSettingId={props.dashboard.DashboardSettingID}\r\n onPrint={handlePrint}>\r\n
    \r\n t.Balance)}/>\r\n {props.dashboard.Settings.ShowHeadersOnGrid && props.dashboard.Settings.ShowHeadersOnGrid === \"True\" &&
    \r\n
    \r\n {props.dashboard.Tasks.length > 0 && props.dashboard.Tasks[0].FieldsToDisplay.length > 0 && props.dashboard.Tasks[0].FieldsToDisplay.map((f, i) =>{\r\n return

    {f.FieldName && f.FieldName.replace(/([a-z])([A-Z])/g, '$1 $2')}

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

    setShowList(prevState => !prevState)}>View Tasks ({amountDisplayed})

    \r\n
    \r\n
    \r\n \r\n {showList &&
    \r\n {props.dashboard.Tasks.slice(0, amountDisplayed).map(t => {\r\n return \r\n })}\r\n
    }\r\n {showList && props.dashboard.Tasks.length > (amountDisplayed) && loadedAll > 0 &&
    \r\n

    Load more

    \r\n

    Load all

    \r\n
    }\r\n
    \r\n}\r\n
    \r\n}\r\n\r\nexport default Dashboard","import { Fragment, useEffect, useState } from \"react\"\r\n\r\nimport classes from './TaskListForm.module.css'\r\nimport AddButton from \"../../../UI/Buttons/AddButtons/AddButton\"\r\nimport { useNavigate } from \"react-router-dom\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { fetchDashboards, fetchSMSTemplates } from \"../../../../store/hub-actions\"\r\nimport LoadingSpinnerMiddle from \"../../../UI/LoadingSpinners/LoadingSpinnerMiddle\"\r\nimport Dashboard from \"./Dashboard\"\r\nimport { formatDateWithDayName } from \"../../../../functions/Dates/formatDate\"\r\n\r\nconst TaskListForm = () => {\r\n const [date, setDate] = useState(formatDateWithDayName(new Date()))\r\n const [calcelco, setCancelco] = useState()\r\n \r\n const dashboardsLoading = useSelector((state) => state.hub.dashboardsLoading)\r\n const dashboards = useSelector((state) => state.hub.dashboards)\r\n const adminDashboards = useSelector((state) => state.hub.adminDashboards)\r\n const loadedAll = useSelector((state) => state.hub.loadedAllDashboards)\r\n\r\n\r\n const navigate = useNavigate()\r\n const dispatch = useDispatch()\r\n\r\n useEffect(()=>{\r\n const controller = new AbortController()\r\n setCancelco(controller)\r\n dispatch(fetchDashboards(false, controller.signal))\r\n },[])\r\n\r\n const addTaskHandler = () => {\r\n navigate('new-task')\r\n }\r\n\r\n \r\n return (\r\n \r\n
    \r\n
    \r\n

    {date}

    \r\n Add Task\r\n
    \r\n {dashboards.length > 0 && dashboards.map(d => )}\r\n {adminDashboards.length > 0 &&

    Other Dashboards

    }\r\n {adminDashboards.length > 0 && adminDashboards.map(d => )}\r\n
    \r\n {dashboardsLoading &&
    }\r\n
    \r\n )\r\n}\r\n\r\nexport default TaskListForm","import { Outlet } from \"react-router-dom\"\r\nimport TaskListForm from \"../../components/Hub/Tasks/TasksList/TaskListForm\"\r\nimport Layout from \"../../components/layout/Layout\"\r\nimport MainHeader from \"../../components/layout/MainHeader\"\r\nimport { Fragment } from \"react\"\r\n\r\nconst Tasks = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Tasks","import { Fragment } from \"react\"\r\nimport TaskListForm from \"../../components/Hub/Tasks/TasksList/TaskListForm\"\r\nimport { Outlet } from \"react-router-dom\"\r\n\r\nconst TasksApplication = () => {\r\n return (\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n)}\r\n\r\nexport default TasksApplication","import { Fragment, useState, useRef, useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\n\r\nimport classes from './LoginApplication.module.css'\r\nimport { authActions } from '../../store/auth-slice';\r\nimport useResetState from '../../hooks/use-reset';\r\nimport LoadingSpinnerMiddle from '../UI/LoadingSpinners/LoadingSpinnerMiddle';\r\nimport SmallPopup from '../UI/MessageBoxs/SmallPopup';\r\nimport BackdropBlur from '../UI/Modals/BackdropBlur';\r\nimport { getTimeZone } from '../../functions/Dates/timeZone';\r\n\r\nconst LoginApplication = () => {\r\n\r\n const companyNameRef = useRef()\r\n const usernameRef = useRef()\r\n const passwordRef = useRef()\r\n\r\n //#region hooks\r\n const dispatch = useDispatch();\r\n const history = useNavigate();\r\n const { resetState } = useResetState()\r\n \r\n const url = useSelector((state) => state.auth.url)\r\n \r\n const [isLoading, setIsLoading] = useState()\r\n const [message, setMessage] = useState('')\r\n \r\n\r\n\r\n //#endregion\r\n \r\n //#region log in\r\n const loginHandler = (event) => {\r\n event.preventDefault()\r\n setMessage(null)\r\n \r\n if(companyNameRef.current.value.trim().length === 0){\r\n console.log('Company Name is Required!')\r\n return;\r\n }\r\n if(usernameRef.current.value.trim().length === 0){\r\n console.log('User Name is Required!')\r\n return;\r\n }\r\n if(passwordRef.current.value.trim().length === 0){\r\n console.log('Password is Required!')\r\n return;\r\n }\r\n const loginData = { 'companyname': companyNameRef.current.value, 'username': usernameRef.current.value, 'password': passwordRef.current.value, 'grant_type': 'password', 'timeZone': getTimeZone() }\r\n \r\n var formBody = [];\r\n for (var property in loginData) {\r\n var encodedKey = encodeURIComponent(property);\r\n var encodedValue = encodeURIComponent(loginData[property]);\r\n formBody.push(encodedKey + \"=\" + encodedValue);\r\n }\r\n formBody = formBody.join(\"&\");\r\n \r\n setIsLoading(true)\r\n try {\r\n login(formBody)\r\n }\r\n catch (error) {\r\n setMessage('error')\r\n setIsLoading(false)\r\n }\r\n \r\n }\r\n \r\n async function login(loginData) {\r\n //resetState()\r\n try {\r\n const response = await fetch(url + 'token', {\r\n method: 'POST',\r\n body: loginData,\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\r\n }\r\n })\r\n const data = await response.json()\r\n if (response.ok) {\r\n if (data.access_token) {\r\n if(data.role === 'user' || data.role === 'hubUser'){\r\n dispatch(authActions.login({ role: data.role, token: data.access_token, duration: data.expires_in, userName: usernameRef.current.value, addPermission: data.addPermission, \r\n updatePermission: data.updatePermission, deletePermission: data.deletePermission, \r\n hub: data.hub, allowChargeCreditCard: data.addPermission, companyName: companyNameRef.current.value, inTrial: data.inTrial, \r\n trialEndDate: data.trialEndDate, hasJiraCredentials: data.hasJiraCredentials }))\r\n if(data.role === 'hubUser' || (data.role === 'user' && data.hub === 'True')){\r\n history('/hub-app')\r\n }\r\n else{\r\n setMessage('Access to work hub is denied, please contact administrator')\r\n }\r\n }\r\n\r\n }\r\n }\r\n else {\r\n let errorMessage = 'Authentication failed!';\r\n if (data && data.error_description) {\r\n errorMessage = data.error_description;\r\n }\r\n setMessage(errorMessage);\r\n }\r\n \r\n } catch (error) {\r\n setMessage(error)\r\n }\r\n setIsLoading(false)\r\n\r\n } \r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!message &&
    }\r\n \r\n {message && \r\n

    {message}

    \r\n
    \r\n
    }\r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default LoginApplication","import Login from '../../components/Login/LoginApplication'\r\n\r\nconst LoginApplication = () => {\r\n\r\n return \r\n}\r\n\r\nexport default LoginApplication","import AddTask from \"../../components/Hub/Tasks/AddTask/AddTask\"\r\n\r\nconst NewTask = () => {\r\n\r\n return \r\n}\r\n\r\nexport default NewTask","export default __webpack_public_path__ + \"static/media/message-success-circle.41d3e784.svg\";","export default __webpack_public_path__ + \"static/media/message-error.540ea2c8.svg\";","import classes from './SidePopup.module.css';\r\nimport successImg from '../../../images/message-success-circle.svg';\r\nimport errorImg from '../../../images/message-error.svg';\r\n\r\nconst SidePopup = ({ status, header, message, onClose }) => {\r\n return (\r\n
    \r\n \r\n
    \r\n

    {header}

    \r\n

    {message}

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default SidePopup;\r\n","import { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { uiActions } from '../../../store/ui-slice';\r\nimport SidePopup from './SidePopup';\r\n\r\nconst SidePopupMessage = () => {\r\n const sidePopup = useSelector((state) => state.ui.sidePopup);\r\n const dispatch = useDispatch();\r\n\r\n const closePopup = useCallback(() => {\r\n dispatch(uiActions.showSidePopup(null));\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (sidePopup) {\r\n const timer = setTimeout(closePopup, 4500);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [sidePopup, closePopup]);\r\n\r\n if (!sidePopup) return null;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SidePopupMessage;\r\n","export default __webpack_public_path__ + \"static/media/right-datails.69b754ac.svg\";","export default __webpack_public_path__ + \"static/media/left - details.c769f1c9.svg\";","export default __webpack_public_path__ + \"static/media/Snooze.14739492.svg\";","export default __webpack_public_path__ + \"static/media/Message - w.a1cbfc7d.svg\";","export default __webpack_public_path__ + \"static/media/Calling - w.0e29b382.svg\";","import classes from './TaskActions.module.css'\r\nimport ButtonM from '../../../UI/Buttons/Buttons/ButtonM'\r\nimport ButtonMOut from '../../../UI/Buttons/Buttons-Outline/ButtonMOut'\r\nimport Snooze from '../../../../images/Snooze.svg'\r\nimport Message from '../../../../images/Message - w.svg'\r\nimport Calling from '../../../../images/Calling - w.svg'\r\nimport { useDispatch } from 'react-redux'\r\nimport { uiActions } from '../../../../store/ui-slice'\r\nimport { fetchDashboards } from '../../../../store/hub-actions'\r\nimport useHttp from '../../../../hooks/use-http'\r\nimport { useNavigate, useSearchParams } from 'react-router-dom'\r\nimport { useEffect, useRef, useState } from 'react'\r\nimport NumbersPopup from '../TaskActions/NumbersPopup'\r\nimport useOutsideAlerter from '../../../../hooks/use-outside-alerter'\r\nimport { addDays } from '../../../../functions/Dates/dateFunctions'\r\nimport DateInput from '../../../UI/Inputs/DateInput'\r\nimport { converDateForBackendWithCurrentTime } from '../../../../functions/Dates/ConvertDateForC#'\r\nimport more from '../../../../images/more_vert.svg'\r\nimport MorePopup from '../TaskActions/MorePopup'\r\n\r\nconst TaskActions = (props) => {\r\n const {sendRequest: completeTask, isLoading: completeTaskLoading} = useHttp()\r\n const {sendRequest: snoozeTask, isLoading: snoozeTaskLoading} = useHttp()\r\n const {sendRequest: noResponse, isLoading: noResponseLoading} = useHttp()\r\n\r\n\r\n const dispatch = useDispatch()\r\n const [searchParams] = useSearchParams()\r\n const actionRef = useRef()\r\n const {clickedOutside, resetState} = useOutsideAlerter(actionRef)\r\n const navigate = useNavigate()\r\n \r\n const [showPhoneNumbers, setShowPhoneNumbers] = useState()\r\n const [showMessageNumbers, setShowMessasgeNumbers] = useState()\r\n const [showSnooze, setShowSnooze] = useState()\r\n const [showCustomSnooze, setShowCustomSnooze] = useState()\r\n const [customDueDate, setCustomDueDate] = useState()\r\n const [showMore, setShowMore] = useState(false)\r\n\r\n\r\n useEffect(()=>{\r\n if(clickedOutside){\r\n switch(actionRef.current.id){\r\n case 'call':\r\n setShowPhoneNumbers(false)\r\n break;\r\n case 'message':\r\n setShowMessasgeNumbers(false)\r\n break;\r\n case 'snooze':\r\n setShowSnooze(false)\r\n break;\r\n case 'more': \r\n setShowMore(false)\r\n break;\r\n \r\n default:\r\n break;\r\n }\r\n resetState()\r\n }\r\n },[clickedOutside])\r\n\r\n\r\n\r\n const completeHandler = () => {\r\n if(!completeTaskLoading){\r\n completeTask({url: `api/completeTask?dashboardSettingId=${searchParams.get('setting')}&id=${searchParams.get('id')}&reminderId=${props.task.ReminderID}`}, handleCompleteTaskResponse)\r\n }\r\n }\r\n\r\n const handleCompleteTaskResponse = (data) => {\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: 'Successfuly completed task'}))\r\n dispatch(fetchDashboards(true))\r\n handelSnoozedAndCompleted()\r\n\r\n }\r\n }\r\n\r\n const handelSnoozedAndCompleted = () => {\r\n if(props.settings && props.settings.TaskCompletedOrSnoozed){\r\n switch(props.settings.TaskCompletedOrSnoozed){\r\n case 'Go to List':\r\n navigate('..')\r\n break;\r\n case 'Stay on Task':\r\n break;\r\n case 'Go to Next Task':\r\n props.onNavigate()\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n const snoozeHandler = (days) => {\r\n if(!snoozeTaskLoading){\r\n let date = new Date()\r\n date = addDays(date, days)\r\n snooze(date)\r\n }\r\n }\r\n\r\n const snooze = (date) => {\r\n date = converDateForBackendWithCurrentTime(date)\r\n snoozeTask({url: `api/snoozeReminder?dashboardSettingId=${searchParams.get('setting')}&id=${searchParams.get('id')}&reminderId=${props.task.ReminderID}&date=${date}`}, handleSnoozeResponse)\r\n }\r\n\r\n const toggleShowCustomSnoozehandler = () => {\r\n setShowCustomSnooze(prevState => !prevState)\r\n }\r\n\r\n const handleSnoozeResponse = (data) => {\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: 'Successfuly snoozed task'}))\r\n dispatch(fetchDashboards(true))\r\n handelSnoozedAndCompleted()\r\n }\r\n setShowSnooze(false)\r\n setShowCustomSnooze(false)\r\n\r\n }\r\n\r\n const noResponseHandler = () => {\r\n if(!noResponseLoading){\r\n noResponse({url: `api/reminderNoResponse?dashboardSettingId=${searchParams.get('setting')}&id=${searchParams.get('id')}&reminderId=${props.task.ReminderID}`}, handleNoResponseResponse)\r\n }\r\n }\r\n\r\n const handleNoResponseResponse = (data) => {\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: 'Successfuly updated task'}))\r\n dispatch(fetchDashboards(true))\r\n props.onChanged()\r\n }\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n setShowMessasgeNumbers(prevState => ! prevState)} className={classes.message}>Message\r\n {showMessageNumbers && setShowMessasgeNumbers(false)} id={props.task.ID} phoneMobile={props.task.PhoneMobile} phoneSpouse={props.task.PhoneSpouse} email={props.task.Email} dashboardSettingId={parseInt(searchParams.get('setting'))}/>}\r\n
    \r\n
    \r\n setShowPhoneNumbers(prevState => ! prevState)}>Call \r\n {showPhoneNumbers && setShowPhoneNumbers(false)} id={props.task.ID} phoneMobile={props.task.PhoneMobile} phoneHome={props.task.PhoneHome} phoneSpouse={props.task.PhoneSpouse} dashboardSettingId={parseInt(searchParams.get('setting'))} reminderId={props.task.ReminderID} onChanged={props.onChanged}/>}\r\n
    \r\n
    \r\n
    setShowMore(prevState => ! prevState)}>
    \r\n {showMore && setShowMore(false)} task={props.task} dashboardSettingId={props.dashboardSettingId} actions={props.actions} workWith={props.settings.WorkWith} details/>}\r\n
    \r\n
    \r\n
    \r\n No Response\r\n Mark As Complete\r\n
    \r\n setShowSnooze(prevState => !prevState)} loading={snoozeTaskLoading}>\r\n {showSnooze &&
    \r\n

    snoozeHandler(1)}>24 hours

    \r\n

    snoozeHandler(2)}>2 days

    \r\n

    snoozeHandler(7)}>1 week

    \r\n

    custom

    \r\n {showCustomSnooze && snooze(v)} className={classes['custom-date']}/>}\r\n
    }\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default TaskActions\r\n","import { toDecimalWithCommas } from \"./toDecimal\";\r\n\r\nconst formatFieldByFieldName = (fieldName, value) => {\r\n //we have the same function in C# - commonUtility - need to update there with any update here\r\n let val = value;\r\n if([\"amount\", \"value\", \"balance\" ].some(v => fieldName.toLowerCase().includes(v)) && !isNaN(value))\r\n {\r\n val = \"$\" + toDecimalWithCommas(value);\r\n }\r\n else if ([\"time\"].some(v => fieldName.toLowerCase().includes(v)))\r\n {\r\n const date = new Date(value);\r\n if(date !== 'Invalid Date' && !isNaN(date)){\r\n const yyyy = date.getFullYear();\r\n let mm = date.getMonth() + 1; // Months start at 0!\r\n let dd = date.getDate();\r\n let hh = date.getHours();\r\n let m = date.getMinutes();\r\n\r\n\r\n if (dd < 10) dd = '0' + dd;\r\n if (mm < 10) mm = '0' + mm;\r\n if (hh < 10) hh = '0' + hh;\r\n if (m < 10) m = '0' + m;\r\n\r\n val = mm + '/' + dd + '/' + yyyy + ' ' + hh + ':' + m;\r\n } \r\n }\r\n else if([\"date\"].some(v => fieldName.toLowerCase().includes(v)))\r\n {\r\n const date = new Date(value);\r\n if(date !== 'Invalid Date' && !isNaN(date)){\r\n const yyyy = date.getFullYear();\r\n let mm = date.getMonth() + 1; // Months start at 0!\r\n let dd = date.getDate();\r\n\r\n if (dd < 10) dd = '0' + dd;\r\n if (mm < 10) mm = '0' + mm;\r\n\r\n val = mm + '/' + dd + '/' + yyyy;\r\n }\r\n }\r\n \r\n\r\n\r\n return val;\r\n\r\n}\r\n\r\nexport default formatFieldByFieldName","import { useEffect, useState } from \"react\"\r\nimport classes from './TaskQueries.module.css'\r\nimport formatFieldByFieldName from \"../../../../functions/formatFieldByFieldName\"\r\n\r\nconst TaskQueries = (props) => {\r\n const [queries, setQueries] = useState([])\r\n const [selectedQuery, setSelectedQuery] = useState()\r\n const [sortConfig, setSortConfig] = useState({ key: null, direction: 'asc'}) // 'asc' for ascending, 'desc' for descending});\r\n\r\n useEffect(()=>{\r\n if(props.queries.length > 0){\r\n let q = [...props.queries]\r\n q.forEach(e => {\r\n try{\r\n e.Table = JSON.parse(e.Table)\r\n }\r\n catch{ }\r\n }); \r\n setQueries(q)\r\n if(q.length > 0){\r\n if(sessionStorage.getItem('selectedTaskQuery') && q.find(i => i.Caption === sessionStorage.getItem('selectedTaskQuery'))){\r\n setSelectedQuery(q[q.findIndex(i => i.Caption === sessionStorage.getItem('selectedTaskQuery'))])\r\n }\r\n else{\r\n setSelectedQuery(q[0])\r\n }\r\n }\r\n }\r\n },[props.queries])\r\n\r\n const changeSelectedQuery = (query) => {\r\n setSelectedQuery(query)\r\n setSortConfig({key: null, direction: 'asc'})\r\n sessionStorage.setItem('selectedTaskQuery', query.Caption)\r\n }\r\n const changeSortHandler = (key) => {\r\n let direction = 'asc';\r\n console.log(direction + key)\r\n\r\n // Check if the same column is clicked to toggle direction\r\n if (sortConfig.key === key) {\r\n direction = sortConfig.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n // Check if the property is numeric\r\n const isNumeric = !isNaN(parseFloat(selectedQuery.Table[0][key])) && typeof selectedQuery.Table[0][key] === 'number';\r\n \r\n // Sort the Table array based on the property\r\n const sortedTable = [...selectedQuery.Table].sort((a, b) => {\r\n if (isNumeric) {\r\n // If it's numeric, sort numerically\r\n return direction === 'asc' ? a[key] - b[key] : b[key] - a[key];\r\n } else {\r\n // If it's not numeric, sort lexicographically (string comparison)\r\n if ((a[key] || '') < (b[key] || '')) {\r\n return direction === 'asc' ? -1 : 1;\r\n }\r\n if ((a[key] || '') > (b[key] || '')) {\r\n return direction === 'asc' ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n });\r\n console.log(sortedTable)\r\n setSortConfig({ key, direction })\r\n setSelectedQuery(prevState => ({...prevState, Table: sortedTable}))\r\n }\r\n return (\r\n
    \r\n
    \r\n {selectedQuery && queries.map(q => {\r\n return

    changeSelectedQuery(q)}>{q.Caption}

    \r\n })}\r\n
    \r\n {selectedQuery && selectedQuery.Table.length > 0 &&
    \r\n {Object.entries(selectedQuery.Table[0]).map(([_key, value]) => {\r\n return

    changeSortHandler(_key)}>{_key}

    \r\n })}\r\n
    }\r\n
    \r\n {selectedQuery && selectedQuery.Table.map((r, i) => {\r\n return
    {Object.entries(r).map(([_key, value]) => {\r\n return
    \r\n

    {formatFieldByFieldName(_key, value ? value.toString() : '')}

    \r\n
    \r\n })}\r\n
    \r\n })}\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default TaskQueries","import { Fragment, useEffect, useState } from \"react\"\r\nimport BackdropBlur from \"../../../UI/Modals/BackdropBlur\"\r\nimport { useNavigate, useSearchParams } from \"react-router-dom\"\r\nimport useHttp from \"../../../../hooks/use-http\"\r\nimport classes from './TaskDetails.module.css'\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport TextField from \"../../../UI/Inputs/TextField\"\r\nimport DetailsItem from \"../../../UI/Hub/DetailsItem\"\r\nimport LoadingSpinner from \"../../../UI/LoadingSpinners/LoadingSpinner\"\r\nimport ArrowRight from '../../../../images/right-datails.svg'\r\nimport ArrowLeft from '../../../../images/left - details.svg'\r\nimport ModelTitleClose from \"../../../UI/Others/ModelTitleClose\"\r\nimport TaskActions from \"./TaskActions\"\r\nimport TaskQueries from \"./TaskQueries\"\r\nimport ButtonMOut from \"../../../UI/Buttons/Buttons-Outline/ButtonMOut\"\r\nimport { uiActions } from \"../../../../store/ui-slice\"\r\nimport { fetchDashboards } from \"../../../../store/hub-actions\"\r\nimport ChangesMessageBox from '../../../UI/MessageBoxs/ChangesMessageBox'\r\n\r\nconst TaskDetails = () => {\r\n const [searchParams, setSearchParams] = useSearchParams()\r\n const {sendRequest: getDetails, error, isLoading: getDetailsLoading} = useHttp()\r\n const {sendRequest:saveNote, isLoading:noteLoading } = useHttp()\r\n const navigate = useNavigate()\r\n const dispatch = useDispatch()\r\n\r\n const dashboards = useSelector((state) => state.hub.dashboards)\r\n const adminDashboards = useSelector((state) => state.hub.adminDashboards)\r\n\r\n\r\n const [selectedTask, setSelectedTask] = useState()\r\n const [selectedTaskDetails, setSelectedTaskDetails] = useState()\r\n const [detailsOpened, setDetailsOpened] = useState(true)\r\n const [note, setNote] = useState('')\r\n const [dashboardSettings, setDashboardSettings] = useState()\r\n const [showMessage, setShowMessage] = useState()\r\n const [adminDashboard, setAdminDashboard] = useState()\r\n\r\n useEffect(()=>{\r\n if(searchParams.get('setting') && searchParams.get('id')){\r\n getTaskDetails()\r\n }\r\n },[searchParams])\r\n\r\n const getTaskDetails = () => {\r\n getDetails({url: `api/taskDetails?dashboardSettingId=${searchParams.get('setting')}&id=${searchParams.get('id')}`}, handleResponse)\r\n }\r\n\r\n useEffect(()=>{\r\n if(error){\r\n dispatch(uiActions.showNotification({status: 'error', message: error}))\r\n navigate('../')\r\n }\r\n },[error, dispatch, navigate])\r\n\r\n useEffect(()=>{\r\n if(dashboards.length > 0){\r\n let dashboard = dashboards.find(d => d.DashboardSettingID === parseInt(searchParams.get('setting')))\r\n if(!dashboard && adminDashboards.length > 0){\r\n dashboard = adminDashboards.find(d => d.DashboardSettingID === parseInt(searchParams.get('setting')))\r\n }\r\n if(dashboard){\r\n setDashboardSettings(dashboard.Settings)\r\n }\r\n }\r\n },[dashboards, adminDashboards, searchParams])\r\n\r\n\r\n useEffect(()=>{\r\n if(dashboards.length > 0 && selectedTaskDetails){\r\n let dashboard = dashboards.find(d => d.DashboardSettingID === parseInt(searchParams.get('setting')))\r\n if(!dashboard && adminDashboards.length > 0){\r\n dashboard = adminDashboards.find(d => d.DashboardSettingID === parseInt(searchParams.get('setting')))\r\n setAdminDashboard(true)\r\n }\r\n if(dashboard){\r\n const task = dashboard.Tasks.find(t=> t.ID === parseInt(searchParams.get('id')))\r\n if(task){\r\n setSelectedTask(task)\r\n }\r\n }\r\n }\r\n },[selectedTaskDetails, dashboards, adminDashboards, searchParams])\r\n\r\n useEffect(()=>{\r\n if(note === '' && showMessage){\r\n setShowMessage(null)\r\n if(showMessage === 'close'){\r\n closeDetailHandler() \r\n }\r\n else {\r\n navigateTaskHandler(showMessage)\r\n } \r\n }\r\n },[note])\r\n \r\n const handleResponse = (data) => {\r\n if(data){\r\n if(!data.ID || data.ID === 0){\r\n navigate('..')\r\n }\r\n else{\r\n setSelectedTaskDetails(data)\r\n setNote('')\r\n }\r\n }\r\n }\r\n\r\n const navigateTaskHandler = (forward) => {\r\n if(note && note !== ''){\r\n setShowMessage(forward)\r\n return;\r\n }\r\n let dashboard = dashboards.find(d => d.DashboardSettingID === parseInt(searchParams.get('setting')))\r\n if(!dashboard && adminDashboards.length > 0){\r\n dashboard = adminDashboards.find(d => d.DashboardSettingID === parseInt(searchParams.get('setting')))\r\n }\r\n if(!dashboard){ return; }\r\n const taskIndex = dashboard.Tasks.findIndex(t => t.ID === parseInt(searchParams.get('id')))\r\n if(taskIndex=== undefined || (forward && dashboard.Tasks.length === taskIndex + 1) || (!forward && taskIndex === 0) ){ return; }\r\n const i = forward ? taskIndex + 1 : taskIndex - 1\r\n const id = dashboard.Tasks[i].ID;\r\n searchParams.set('id', id)\r\n setSearchParams(searchParams)\r\n }\r\n\r\n const closeDetailHandler = () => {\r\n if(note && note !== ''){\r\n setShowMessage('close')\r\n return;\r\n }\r\n navigate('..')\r\n }\r\n\r\n const changeNoteHandler = (value) => {\r\n setNote(value)\r\n }\r\n\r\n const saveNoteHandler = () => {\r\n saveNote({ url: `api/saveNote?dashboardSettingId=${searchParams.get('setting')}&id=${searchParams.get('id')}&reminderId=${selectedTask.ReminderID}¬e=${note}`, headers: { 'Accept': 'application/json', 'content-type': 'application/json' }}, handleNoteResponse)\r\n }\r\n\r\n const handleNoteResponse = (data) => {\r\n if(data === ''){\r\n setNote('')\r\n dispatch(uiActions.showSidePopup({status: 'success', header: 'Successfuly saved reminder'}))\r\n dispatch(fetchDashboards(true))\r\n getTaskDetails()\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: 'Error saving reminder'}))\r\n }\r\n \r\n }\r\n\r\n const closeMessgaeHandler = () => {\r\n setNote('')\r\n }\r\n\r\n return(\r\n \r\n \r\n
    \r\n \r\n
    \r\n {selectedTask && selectedTaskDetails && !getDetailsLoading &&
    \r\n

    {(dashboardSettings && dashboardSettings.RowFormatText) || ''} {dashboardSettings && dashboardSettings.RowFormatLastNameFirst && dashboardSettings.RowFormatLastNameFirst.toLowerCase() === 'true' ? `${selectedTask.LastName} ${selectedTask.FirstName}` : `${selectedTask.FirstName} ${selectedTask.LastName}`}

    \r\n {!adminDashboard && navigateTaskHandler(true)} dashboardSettingId={parseInt(searchParams.get('setting'))} actions={dashboardSettings.ActionsOnDropdown}/>}\r\n {!getDetailsLoading && !adminDashboard && \r\n {note && note !== '' &&
    Save
    }\r\n
    }\r\n setDetailsOpened(prevState => !prevState)}>\r\n
    \r\n
    \r\n {selectedTask.FieldsToDisplay.map(f => {\r\n return
    \r\n

    {f.FieldName}

    \r\n

    {f.Value}

    \r\n
    \r\n })}\r\n {Object.entries(selectedTaskDetails.TaskFields).map(([_key, value]) => {\r\n return
    \r\n

    {_key}

    \r\n

    {value}

    \r\n
    \r\n })}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n }\r\n {(!selectedTask || !selectedTaskDetails || getDetailsLoading) && }\r\n
    navigateTaskHandler(true)} className={classes.right}>
    \r\n
    navigateTaskHandler(false)} className={classes.left}>
    \r\n
    \r\n
    \r\n \r\n {showMessage && setShowMessage(false)}/>}\r\n \r\n )\r\n}\r\n\r\nexport default TaskDetails","import TaskDetails from \"../../components/Hub/Tasks/TaskDetails/TaskDetails\"\r\n\r\nconst TaskDetailsPage = () => {\r\n\r\n return \r\n}\r\n\r\nexport default TaskDetailsPage","import { Fragment, useCallback, useEffect, useState } from \"react\"\r\nimport ModalDetails from \"../../UI/Modals/ModalDetails\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useNavigate, useParams } from \"react-router-dom\"\r\nimport DetailsItem from \"../../UI/Others/DetailsItem\"\r\nimport useHttp from \"../../../hooks/use-http\"\r\nimport { hubActions } from \"../../../store/hub-slice\"\r\nimport CustomSelect from \"../../UI/Dropdowns/CustomSelect\"\r\nimport Checkbox from \"../../UI/Checkboxs/Checkbox\"\r\nimport DateInput from \"../../UI/Inputs/DateInput\"\r\nimport ChangesMessageBox from \"../../UI/MessageBoxs/ChangesMessageBox\"\r\nimport classes from './ReminderDetails.module.css'\r\nimport { formatDateWithTime } from \"../../../functions/Dates/formatDate\"\r\nimport TextField from \"../../UI/Inputs/TextField\"\r\nimport { uiActions } from \"../../../store/ui-slice\"\r\nimport { getUpdateMessageBody } from \"../../../functions/getMessageBody\"\r\nimport ShulsList from \"../../Payments/PaymentsDropdowns/ShulsList\"\r\nimport FixedRightBar from \"../../UI/FixedBottomBar/FixedRightBar\"\r\nimport SendReminder from \"../../Other/SendReminder\"\r\nimport { fetchRemindersList } from \"../../../store/reminders-actions\"\r\nimport ReminderNames from \"../ReminderNames\"\r\nimport ReminderTypes from \"../ReminderTypes\"\r\nimport DonorsInfo from \"../../Payments/Other/DonorsInfo\"\r\nimport { donorsActions } from \"../../../store/donors-slice\"\r\nimport { fetchDonorsAddressesList, fetchDonorsContactsList, fetchSingleDonorNotForList } from \"../../../store/donors-actions\"\r\nimport { fetchAllTendersLists } from \"../../../store/tenders-actions\"\r\n\r\nconst REMINDER_STATUSES = [{value: 0, name: 'Open'}, {value: 1, name: 'Complete'}, {value: 2, name: 'Canceled'}]\r\n\r\nconst ReminderDetails = () => {\r\n\r\n const donorReminders = useSelector((state) => state.donors.donorReminders)\r\n const reminders = useSelector((state) => state.reminders.reminders)\r\n const campaignsList = useSelector((state) => state.campaigns.campaigns)\r\n const { users: usersList } = useSelector(state => state.hub);\r\n\r\n\r\n const params = useParams()\r\n const {sendRequest: updateReminder, isLoading } = useHttp()\r\n const {sendRequest: getUsers } = useHttp()\r\n const dispatch = useDispatch()\r\n const navigate = useNavigate()\r\n\r\n const [reminder, setReminder] = useState()\r\n const [formChanged, setFormChanged] = useState()\r\n const [showMessage, setShowMessage] = useState()\r\n const [users, setUsers] = useState([])\r\n const [campaigns, setCampaigns] = useState([])\r\n const [openTab, setOpenTab] = useState('reminder-info')\r\n\r\n const fromRemindersList = window.location.href.includes('reminders-list') //this is when there are 2 way to get here - remindes list and donor details\r\n\r\n useEffect(()=>{\r\n if(reminder) return\r\n console.log('this ran')\r\n if(fromRemindersList){\r\n if(params.reminderId && reminders.length > 0){\r\n let r = reminders.find(reminder => reminder.ReminderID === parseInt(params.reminderId))\r\n if(r){\r\n setReminder(r)\r\n dispatch(fetchSingleDonorNotForList(r.ID)) \r\n }\r\n }\r\n }\r\n else{\r\n if(params.reminderId && donorReminders.length > 0){\r\n let r = donorReminders.find(reminder => reminder.ReminderID === parseInt(params.reminderId))\r\n if(r){\r\n setReminder(r)\r\n }\r\n }\r\n }\r\n\r\n },[donorReminders, params, reminders, dispatch, fromRemindersList])\r\n\r\n \r\n useEffect(()=>{\r\n let campaigns = campaignsList.map(campaign => {\r\n return {value: campaign.CampaignID, name: campaign.Name}\r\n })\r\n campaigns = [{ value: 0, name: '-'}, ...campaigns]\r\n setCampaigns(campaigns)\r\n },[campaignsList])\r\n \r\n const handleGetUsersResponse = useCallback((data) => {\r\n dispatch(hubActions.loadUsers(data))\r\n },[dispatch])\r\n \r\n const fetchUsersList = useCallback(() => {\r\n getUsers({url:'api/getUsers'}, handleGetUsersResponse)\r\n } ,[getUsers, handleGetUsersResponse])\r\n\r\n useEffect(()=>{\r\n if(usersList.length === 0){\r\n fetchUsersList()\r\n }\r\n else{\r\n let users = usersList.map(u => {\r\n return {value: u.UserID, name: u.UserName}\r\n })\r\n setUsers(users)\r\n }\r\n },[usersList, fetchUsersList])\r\n\r\n\r\n \r\n const showMessageHandler = () => {\r\n if(formChanged){\r\n setShowMessage(true)\r\n }\r\n else{\r\n closeDetailsHandler()\r\n }\r\n }\r\n\r\n const updateReminderHandler = () => {\r\n updateReminder({url: '/api/reminders', method: 'POST', body: reminder, headers: { 'Accept': 'application/json', 'content-type': 'application/json' }}, handleUpdateResponse)\r\n }\r\n\r\n const handleUpdateResponse = (data) => {\r\n if(data === ''){\r\n dispatch(uiActions.showSidePopup({status: 'success', header: getUpdateMessageBody('reminder')}))\r\n dispatch(fetchRemindersList())\r\n if(showMessage){\r\n closeDetailsHandler()\r\n }\r\n else{\r\n setFormChanged(false)\r\n }\r\n }\r\n else{\r\n dispatch(uiActions.showSidePopup({status: 'error', header: getUpdateMessageBody('reminder', false), message: data}))\r\n }\r\n }\r\n\r\n const closeDetailsHandler = () => {\r\n if(fromRemindersList){\r\n dispatch(donorsActions.resetDonorsInfo())\r\n }\r\n navigate(-1)\r\n }\r\n\r\n const changeShulHandler = (value) => {\r\n setReminder(prevState => ({...prevState, ShulID: value}))\r\n }\r\n\r\n const changeHandler = (field, value) => {\r\n setReminder(prevState => ({...prevState, [field]: value}))\r\n setFormChanged(true)\r\n }\r\n\r\n const handleTabClick = (tab) => {\r\n setOpenTab(openTab === tab ? null : tab);\r\n };\r\n\r\n const viewDonorsDetailsHandler = () => {\r\n dispatch(fetchDonorsAddressesList(reminder.ID))\r\n dispatch(fetchDonorsContactsList(reminder.ID))\r\n dispatch(fetchAllTendersLists(reminder.ID))\r\n navigate(`/donors-list/donor-details?reminderId=${reminder.ReminderID}`)\r\n\r\n }\r\n return (\r\n {reminder && \r\n \r\n handleTabClick('reminder-info')} open={openTab === 'reminder-info'} onClose={() => handleTabClick('reminder-info')} changed={formChanged} onUpdate={updateReminderHandler} loading={isLoading}>\r\n

    Donor ID: {reminder.ID}

    \r\n

    {formatDateWithTime(reminder.AddDate)}

    \r\n
    \r\n changeHandler('Name', value)} className={classes.name} name={reminder.Name}/>\r\n changeHandler('Type', value)} type={reminder.Type} />\r\n changeHandler('Date', value)}/>\r\n changeHandler('Description', value)}/>\r\n changeHandler('SendEmail', !reminder.SendEmail)}/>\r\n changeHandler('IsFinancial', !reminder.IsFinancial)}/>\r\n changeHandler('ForUser', id)} className='' selectedValue={reminder.ForUser}/>\r\n changeHandler('Status', id)} className='' selectedValue={reminder.Status}/>\r\n changeHandler('CampaignID', id)} className='' selectedValue={reminder.CampaignID}/>\r\n setFormChanged(true)} shulID={reminder.ShulID}/>\r\n
    \r\n
    \r\n handleTabClick('donor-info')} open={openTab === 'donor-info'} onClose={() => handleTabClick('donor-info')}>\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    }\r\n {showMessage && closeDetailsHandler(true)} onCancel={() => setShowMessage(false)} />}\r\n
    \r\n )\r\n}\r\n\r\nexport default ReminderDetails","import { Fragment } from 'react'\r\nimport RemindersDetails from '../../components/Reminders/ReminderDetails/ReminderDetails'\r\n\r\nconst ReminderDetails = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ReminderDetails","\r\nimport { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { fetchPaymentTypesList } from '../store/paymentTypes-actions';\r\nimport { fetchCampaignsList, fetchSubCampaignsList } from '../store/campaigns-actions'\r\nimport { fetchOrganizationsList } from '../store/organizations-actions'\r\nimport { fetchDonorsList } from '../store/donors-actions'\r\nimport { fetchPledgesList, fetchRecurringPledgesList } from '../store/pledges-actions';\r\nimport { fetchSolicitorsList } from '../store/solicitors-actions'\r\nimport { fetchAccountsList } from '../store/accounts-actions';\r\nimport { fetchShulsList } from '../store/shuls-actions';\r\nimport { fetchNeededSettings } from '../store/settings-actions';\r\nimport { fetchRecurringPaymentsList } from '../store/payments-actions';\r\nimport { fetchStudentsList } from '../store/students-actions';\r\nimport { fetchLocationsList } from '../store/locations-actions';\r\n\r\nconst useFetchData = () => {\r\n const dispatch = useDispatch();\r\n\r\n const campaigns = useSelector((state) => state.campaigns.campaigns)\r\n const subCampaigns = useSelector((state) => state.campaigns.subCampaigns)\r\n const organizations = useSelector((state) => state.organizations.organizations)\r\n const locations = useSelector((state) => state.locations.locations)\r\n const donors = useSelector((state) => state.donors.donors)\r\n const pledges = useSelector((state) => state.pledges.pledges)\r\n const recurringPayments = useSelector((state) => state.payments.recurringPayments)\r\n const recurringPledges = useSelector((state) => state.pledges.recurringPledges)\r\n const loadedPledges = useSelector((state) => state.pledges.loadedPledges)\r\n const loadedRecurringPayments = useSelector((state) => state.payments.loadedRecurringPayments)\r\n const loadedRecurringPledges = useSelector((state) => state.pledges.loadedRecurringPledges)\r\n const solicitors = useSelector((state) => state.solicitors.solicitors)\r\n const paymentTypes = useSelector((state) => state.paymentTypes.paymentTypes)\r\n const accounts = useSelector((state) => state.accounts.accounts)\r\n const shuls = useSelector((state) => state.shuls.shuls)\r\n const loggedIn = useSelector((state) => state.auth.isLoggedIn)\r\n const parentLoggedIn = useSelector((state) => state.auth.parentLoggedIn)\r\n const hubUserLoggedIn = useSelector((state) => state.auth.hubUserLoggedIn)\r\n const settingsLoaded = useSelector((state) => state.settings.settingsLoaded)\r\n const loadedStudents = useSelector((state) => state.students.loadedStudents)\r\n const loadedDonors = useSelector((state) => state.donors.loadedDonors)\r\n\r\n\r\n useEffect(() => {\r\n \r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (campaigns.length === 0 && (loggedIn || hubUserLoggedIn)) {\r\n dispatch(fetchCampaignsList())\r\n }\r\n }, [dispatch, campaigns.length, loggedIn, hubUserLoggedIn])\r\n useEffect(() => {\r\n if (subCampaigns.length === 0 && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchSubCampaignsList())\r\n }\r\n }, [dispatch, subCampaigns.length, loggedIn])\r\n useEffect(() => {\r\n if (organizations.length === 0 && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchOrganizationsList())\r\n }\r\n }, [dispatch, organizations.length, loggedIn])\r\n useEffect(() => {\r\n if (locations.length === 0 && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchLocationsList())\r\n }\r\n }, [dispatch, locations.length, loggedIn])\r\n useEffect(() => {\r\n if (donors.length === 0 && !loadedDonors && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchDonorsList(50))\r\n }\r\n }, [dispatch, donors.length, loggedIn, loadedDonors])\r\n useEffect(() => {\r\n if (pledges.length === 0 && !loadedPledges && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchPledgesList(50))\r\n }\r\n }, [dispatch, pledges.length, loggedIn, loadedPledges])\r\n useEffect(() => {\r\n if (recurringPayments.length === 0 && !loadedRecurringPayments && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchRecurringPaymentsList(50))\r\n }\r\n }, [dispatch, recurringPayments.length, loggedIn, loadedRecurringPayments])\r\n useEffect(() => {\r\n if (recurringPledges.length === 0 && !loadedRecurringPledges && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchRecurringPledgesList(50))\r\n }\r\n }, [dispatch, recurringPledges.length, loggedIn, loadedRecurringPledges])\r\n useEffect(() => {\r\n if (solicitors.length === 0 && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchSolicitorsList())\r\n }\r\n }, [dispatch, solicitors.length, loggedIn])\r\n useEffect(() => {\r\n if (paymentTypes.length === 0 && (loggedIn || parentLoggedIn) && ! window.location.href.includes('-app')) {\r\n dispatch(fetchPaymentTypesList())\r\n }\r\n }, [dispatch, paymentTypes.length, loggedIn, parentLoggedIn])\r\n useEffect(() => {\r\n if (accounts.length === 0 && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchAccountsList())\r\n }\r\n }, [dispatch, accounts.length, loggedIn])\r\n useEffect(() => {\r\n if (shuls.length === 0 && loggedIn && ! window.location.href.includes('-app')) {\r\n dispatch(fetchShulsList())\r\n }\r\n }, [dispatch, shuls.length, loggedIn])\r\n useEffect(()=>{\r\n if(!settingsLoaded && (loggedIn) && ! window.location.href.includes('-app')){\r\n dispatch(fetchNeededSettings())\r\n }\r\n },[dispatch, settingsLoaded, loggedIn])\r\n useEffect(()=>{\r\n if(parentLoggedIn && !loadedStudents && ! window.location.href.includes('-app')){\r\n dispatch(fetchStudentsList())\r\n }\r\n },[parentLoggedIn, loadedStudents, dispatch])\r\n useEffect(()=>{\r\n if(parentLoggedIn && !loadedStudents && ! window.location.href.includes('-app')){\r\n dispatch(fetchStudentsList())\r\n }\r\n },[parentLoggedIn, loadedStudents, dispatch])\r\n\r\n};\r\n\r\nexport default useFetchData;\r\n","import { campaignsActions } from './campaigns-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchCampaignsList = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(campaignsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/campaigns',{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch campaigns list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const campaignsData = await fetchData()\r\n dispatch(campaignsActions.loadCampaigns({ campaigns: campaignsData || [] }))\r\n } catch (error) {\r\n dispatch(uiActions.showNotification(error.message))\r\n }\r\n finally {\r\n dispatch(campaignsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\nexport const fetchSubCampaignsList = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(campaignsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/subcampaigns', {\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch sub campaigns list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const campaignsData = await fetchData()\r\n dispatch(campaignsActions.loadSubCampaigns({ subCampaigns: campaignsData || [] }))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(campaignsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\nexport const setCampaignIsLoading = (value) => {\r\n return (dispatch) => {\r\n dispatch(campaignsActions.setIsLoading(value))\r\n }\r\n}\r\n\r\n","import { organizationsActions } from './organizations-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchOrganizationsList = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(organizationsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/organizations',{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch organizations list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const organizationsData = await fetchData()\r\n dispatch(organizationsActions.loadOrganizations({ organizations: organizationsData || [] }))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(organizationsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\n","import { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\nimport { locationsActions } from './locations-slice';\r\n\r\nexport const fetchLocationsList = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(locationsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/locations',{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch locations list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const locationsData = await fetchData()\r\n dispatch(locationsActions.loadLocations({ locations: locationsData || [] }))\r\n\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(locationsActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\n","import { solicitorsActions } from './solicitors-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchSolicitorsList = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(solicitorsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/solicitors',{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch solicitors list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const solicitorsData = await fetchData()\r\n dispatch(solicitorsActions.loadSolicitors({ solicitors: solicitorsData || [] }))\r\n dispatch(solicitorsActions.setIsLoading(false))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const setSolicitorsIsLoading = (value) => {\r\n return (dispatch) => {\r\n dispatch(solicitorsActions.setIsLoading(value))\r\n }\r\n}\r\n\r\n","import { paymentTypesActions } from './paymentTypes-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchPaymentTypesList = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(paymentTypesActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/paymenttypes',{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch payment types list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const paymentTypesData = await fetchData()\r\n dispatch(paymentTypesActions.loadPaymentTypes({ paymentTypes: paymentTypesData || [] }))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(paymentTypesActions.setIsLoading(false))\r\n\r\n }\r\n };\r\n};\r\n\r\n\r\nexport const setPaymentTypesIsLoading = (value) => {\r\n return (dispatch) => {\r\n dispatch(paymentTypesActions.setIsLoading(value))\r\n }\r\n}\r\n\r\n\r\n\r\n","import { accountsActions } from './accounts-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchAccountsList = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(accountsActions.setIsLoading(true))\r\n const url = store.getState().auth.url\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const response = await fetch( url + 'api/accounts', {\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch accounts list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const accountsData = await fetchData()\r\n dispatch(accountsActions.loadAccounts({ accounts: accountsData || [] }))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n finally {\r\n dispatch(accountsActions.setIsLoading(false))\r\n }\r\n };\r\n};\r\n\r\nexport const setAccountIsLoading = (value) => {\r\n return (dispatch) => {\r\n dispatch(accountsActions.setIsLoading(value))\r\n }\r\n}\r\n\r\n","import { shulsActions } from './shuls-slice'\r\nimport { uiActions } from './ui-slice';\r\nimport store from './index'\r\nimport { authActions } from './auth-slice';\r\n\r\nexport const fetchShulsList = () => {\r\n return async (dispatch) => {\r\n const fetchData = async () => {\r\n dispatch(shulsActions.setIsLoading(true))\r\n var bearer = 'Bearer ' + localStorage.getItem('token');\r\n const url = store.getState().auth.url\r\n const response = await fetch(url + 'api/shuls',{\r\n headers:{\r\n 'Authorization': bearer,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n if(response.status === 401){ dispatch(authActions.logout()) }\r\n else{ throw new Error('Could not fetch shuls list.') }\r\n }\r\n const data = await response.json()\r\n return data;\r\n };\r\n\r\n try {\r\n const shulsData = await fetchData()\r\n dispatch(shulsActions.loadShuls({ shuls: shulsData || [] }))\r\n dispatch(shulsActions.setIsLoading(false))\r\n } catch (error) {\r\n dispatch(uiActions.showErrorMessage(error.message))\r\n }\r\n };\r\n};\r\n\r\nexport const setShulssIsLoading = (value) => {\r\n return (dispatch) => {\r\n dispatch(shulsActions.setIsLoading(value))\r\n }\r\n}\r\n\r\n","\r\nimport classes from './RemindersList.module.css'\r\nimport ListItem from '../../UI/Others/ListItem'\r\nimport { formatDate, formatDateWithTime } from '../../../functions/Dates/formatDate'\r\nimport { useNavigate } from 'react-router-dom'\r\nimport Badge from '../../UI/Others/Badge'\r\n\r\nconst getStatusName = (status) => {\r\n switch(status){\r\n case 0:\r\n return 'Open'\r\n case 1:\r\n return 'Complete'\r\n default:\r\n return 'Canceled'\r\n }\r\n}\r\n\r\nconst Reminder = (props) => {\r\n const navigate = useNavigate()\r\n\r\n const showReminderEditHandler = () => {\r\n navigate(`reminder-details/${props.ReminderID}`)\r\n }\r\n \r\n const formattedDate = formatDate(props.Date)\r\n\r\n const statusName = getStatusName(props.Status)\r\n return (\r\n \r\n

    {props.ReminderID}

    \r\n

    {props.ID}

    \r\n

    {props.FirstName} {props.LastName}

    \r\n

    {props.Name}

    \r\n

    {props.Type}

    \r\n

    {formattedDate}

    \r\n {statusName}\r\n

    View Details

    \r\n
    \r\n )\r\n\r\n}\r\n\r\nexport default Reminder","import { useState } from 'react'\r\n\r\nimport classes from './RemindersList.module.css'\r\nimport SortDesc from '../../../images/Sort - Desc.svg'\r\nimport SortAsce from '../../../images/Sort - Acse.svg'\r\nimport Reminder from './Reminder'\r\n\r\nconst RemindersList = ({reminders, onLoadMore, onSortList}) => {\r\n\r\n //#region hooks\r\n const [idArrow, setIdArrow] = useState(SortAsce)\r\n const [donorIdArrow, setDonorIdArrow] = useState(SortAsce)\r\n const [donorArrow, setDonorArrow] = useState(SortAsce)\r\n const [typeArrow, setTypeArrow] = useState(SortAsce)\r\n const [dateArrow, setDateArrow] = useState(SortAsce)\r\n const [nameArrow, setNameArrow] = useState(SortAsce)\r\n const [descriptionArrow, setDescriptionArrow] = useState(SortAsce)\r\n const [statusArrow, setStatusArrow] = useState(SortAsce)\r\n\r\n\r\n //#endregion\r\n\r\n //#region sort by column\r\n const changeAllArrowsToDown = () => {\r\n setIdArrow(SortAsce)\r\n setDonorIdArrow(SortAsce)\r\n setDonorArrow(SortAsce)\r\n setTypeArrow(SortAsce)\r\n setDateArrow(SortAsce)\r\n setNameArrow(SortAsce)\r\n setDescriptionArrow(SortAsce)\r\n setStatusArrow(SortAsce)\r\n }\r\n\r\n const switchArrowDirection = (state) => {\r\n if (state === SortAsce) {\r\n return SortDesc\r\n }\r\n return SortAsce\r\n }\r\n\r\n\r\n const sortByColumnHandler = (column) => {\r\n changeAllArrowsToDown()\r\n switch (column) {\r\n case 'reminderId':\r\n onSortList(11)\r\n setIdArrow(switchArrowDirection(idArrow))\r\n break;\r\n case 'donorId':\r\n onSortList(4)\r\n setDonorIdArrow(switchArrowDirection(donorIdArrow))\r\n break;\r\n case 'donor':\r\n onSortList(12)\r\n setDonorArrow(switchArrowDirection(donorArrow))\r\n break;\r\n case 'date':\r\n onSortList(7)\r\n setDateArrow(switchArrowDirection(dateArrow))\r\n break;\r\n case 'type':\r\n onSortList(8)\r\n setTypeArrow(switchArrowDirection(typeArrow))\r\n break;\r\n case 'name':\r\n onSortList(9)\r\n setNameArrow(switchArrowDirection(nameArrow))\r\n break;\r\n case 'description':\r\n onSortList(10)\r\n setDescriptionArrow(switchArrowDirection(descriptionArrow))\r\n break;\r\n case 'status':\r\n onSortList(0)\r\n setStatusArrow(switchArrowDirection(statusArrow))\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n //#endregion\r\n if(reminders.length > 0){\r\n return (
    \r\n
    \r\n

    Reminder IdArrow sortByColumnHandler('reminderId')} />

    \r\n

    Donor IdArrow sortByColumnHandler('donorId')} />

    \r\n

    Donor NameArrow sortByColumnHandler('donor')} />

    \r\n

    NameArrow sortByColumnHandler('name')} />

    \r\n

    TypeArrow sortByColumnHandler('type')} />

    \r\n

    DateArrow sortByColumnHandler('date')} />

    \r\n

    StatusArrow sortByColumnHandler('status')} />

    \r\n
    \r\n
    \r\n {reminders.map(reminder => )}\r\n {reminders[0].TotalReminders > reminders.length && }\r\n
    \r\n
    )\r\n }\r\n else{\r\n return null\r\n }\r\n}\r\n\r\nexport default RemindersList","import { useState, useEffect, useCallback } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nconst useFetchSortedList = (fetchAction, filter, initialOrderBy = 0, initialDesc = true) => {\r\n const dispatch = useDispatch();\r\n const [orderBy, setOrderBy] = useState(initialOrderBy);\r\n const [desc, setDesc] = useState(initialDesc);\r\n\r\n const fetchData = useCallback(\r\n (rows = 50, customOrderBy, customDesc) => {\r\n dispatch(fetchAction(rows, customOrderBy, customDesc, filter));\r\n },\r\n [dispatch, fetchAction, filter] // ✅ No dependency on orderBy/desc\r\n );\r\n\r\n const sortList = (column) => {\r\n const newDesc = orderBy === column ? !desc : true;\r\n setOrderBy(column);\r\n setDesc(newDesc);\r\n fetchData(50, column, newDesc); // ✅ Calls fetch only once\r\n };\r\n\r\n const loadMore = (currentRows) => {\r\n fetchData(currentRows + 50, orderBy, desc); // ✅ Uses latest orderBy & desc\r\n };\r\n\r\n // Reset sorting when filter changes and fetch data\r\n useEffect(() => {\r\n setOrderBy(initialOrderBy);\r\n setDesc(initialDesc);\r\n fetchData(50, initialOrderBy, initialDesc);\r\n }, [filter, fetchData, initialOrderBy, initialDesc]); // ✅ Runs only when filter changes\r\n\r\n return { orderBy, desc, sortList, loadMore };\r\n};\r\n\r\nexport default useFetchSortedList;\r\n","import { useState, useEffect } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nimport FilterByDonor from \"../PaymentsFilter/FilterByDonor\"\r\nimport { filtersActions } from \"../../../store/filters-slice\"\r\nimport FilterByCampaign from \"../PaymentsFilter/FilterByCampaign\"\r\nimport classes from '../PaymentsFilter/FilterPayments.module.css'\r\nimport FilterModal from \"../../UI/Modals/FilterModal\"\r\nimport Input from \"../../UI/Inputs/Input\"\r\nimport ReminderNames from \"../../Reminders/ReminderNames\"\r\nimport IdsInput from \"../../UI/Inputs/IdsInputs\"\r\nimport ReminderTypes from \"../../Reminders/ReminderTypes\"\r\nimport CustomSelect from \"../../UI/Dropdowns/CustomSelect\"\r\n\r\nconst REMINDER_STATUSES = [{value: -1, name: ''}, {value: 0, name: 'Open'}, {value: 1, name: 'Complete'}, {value: 2, name: 'Canceled'}]\r\n\r\nconst setUpListFilter = (name, ids) => {\r\n const params = new URLSearchParams();\r\n ids.forEach((id, index) => params.append(`${name}[${index}]`, id));\r\n return params.toString();\r\n};\r\n\r\n\r\nconst FilterReminders = (props) => {\r\n\r\n const dispatch = useDispatch()\r\n\r\n const filter = useSelector((state) => state.filters.remindersFilter)\r\n\r\n const [filters, setFilters] = useState(filter)\r\n const [dateRangeInvalid, setDateRangeInvalid] = useState()\r\n \r\n\r\n useEffect(() => {\r\n if(filter){\r\n setFilters(filter)\r\n }\r\n }, [filter])\r\n \r\n \r\n const changeDateFromHandler = (value) => {\r\n if (filters.DateTo) {\r\n if (new Date(value) > new Date(filters.DateTo)) {\r\n setDateRangeInvalid(true)\r\n }\r\n else {\r\n setDateRangeInvalid(false)\r\n }\r\n }\r\n\r\n setFilters(prevState => ({...prevState, DateFrom: value}))\r\n }\r\n const changeDateToHandler = (value) => {\r\n if (filters.DateFrom) {\r\n if (new Date(filters.DateFrom) > new Date(value)) {\r\n setDateRangeInvalid(true);\r\n } else {\r\n setDateRangeInvalid(false);\r\n }\r\n \r\n }\r\n setFilters(prevState => ({...prevState, DateTo: value}))\r\n }\r\n\r\n const searchFilterHandler = (event) => {\r\n if(event){\r\n event.preventDefault()\r\n }\r\n if (new Date(filters.DateFrom) > new Date(filters.DateTo)) {\r\n setDateRangeInvalid(true)\r\n return;\r\n }\r\n var filter = ''\r\n if (filters.DateFrom) {\r\n filter = filter + '&dateFrom=' + filters.DateFrom\r\n }\r\n if (filters.DateTo) {\r\n filter = filter + '&dateTo=' + filters.DateTo\r\n }\r\n if (filters.ReminderIds && filters.ReminderIds.length > 0) {\r\n const ids = filters.ReminderIds.split(',').map(item => parseInt(item.trim()));\r\n filter += setUpListFilter('reminderIds', ids)\r\n }\r\n if (filters.Donors && filters.Donors.length > 0) {\r\n let ids = filters.Donors.map(d => d.id)\r\n filter = setUpListFilter('donors', ids)\r\n }\r\n if (filters.Campaigns && filters.Campaigns.length > 0) {\r\n filter = filter + setUpListFilter('campaigns', filters.Campaigns)\r\n }\r\n if (filters.Name) {\r\n filter = filter + '&name=' + filters.Name\r\n }\r\n if (filters.Type) {\r\n filter = filter + '&type=' + filters.Type\r\n }\r\n if (filters.Description) {\r\n filter = filter + '&description=' + filters.Description\r\n }\r\n if(filters.Status > -1){\r\n filter = filter + '&status=' + filters.Status\r\n }\r\n console.log(filter)\r\n dispatch(filtersActions.setRemindersFilter(filters))\r\n dispatch(filtersActions.setRemindersFilterString(filter))\r\n props.onClose()\r\n }\r\n\r\n const clearFilterHandler = () => {\r\n dispatch(filtersActions.resetRemindersFilter())\r\n props.onClose()\r\n }\r\n\r\n \r\n return \r\n
    \r\n

    Date

    \r\n
    \r\n \r\n \r\n
    \r\n setFilters(prevState => ({...prevState, ReminderIds: value}))} className={classes.reminderids}/>\r\n setFilters(prevState => ({...prevState, Donors: value}))} initialIds={filters.Donors} />\r\n setFilters(prevState => ({...prevState, Name: value}))} name={filters.Name} className={classes.name}/>\r\n setFilters(prevState => ({...prevState, Type: value}))} type={filters.Type} className={classes.type}/>\r\n setFilters(prevState => ({...prevState, Description: value}))} className={classes.description}/>\r\n setFilters(prevState => ({...prevState, Campaigns: value}))} initialCampaignIds={filters.Campaigns} />\r\n setFilters(prevState => ({...prevState, Status: value}))} className={classes.status}/>\r\n \r\n \r\n
    \r\n}\r\nexport default FilterReminders","import { Fragment, useState } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport PageHeaders from \"../../layout/PageHeaders\";\r\nimport MainHeader from \"../../layout/MainHeader\";\r\nimport LoadingSpinner from \"../../UI/LoadingSpinners/LoadingSpinner\";\r\nimport { fetchRemindersList } from \"../../../store/reminders-actions\";\r\nimport RemindersList from \"./RemindersList\";\r\nimport useFetchSortedList from \"../../../hooks/use-fetch-sorted-list\";\r\nimport FilterReminders from \"../../Filters/RemindersFilter/FilterReminders\";\r\n\r\nconst COLUMNS = [\r\n { value: 1, name: \"PledgeID\" },\r\n { value: 2, name: \"DonorID\" },\r\n { value: 3, name: \"Donor\" },\r\n { value: 4, name: \"Amount\" },\r\n { value: 5, name: \"Paid\" },\r\n { value: 6, name: \"Balance\" },\r\n { value: 7, name: \"Date\" },\r\n { value: 8, name: \"Campaign\" },\r\n { value: 9, name: \"Sub Campaign\" },\r\n];\r\n\r\nconst RemindersForm = () => {\r\n const navigate = useNavigate()\r\n \r\n const filter = useSelector((state) => state.filters.remindersFilterString);\r\n const remindersList = useSelector((state) => state.reminders.reminders);\r\n const loadedReminders = useSelector((state) => state.reminders.loadedReminders);\r\n const isLoading = useSelector((state) => state.reminders.isLoading);\r\n \r\n const [showFilter, setShowFilter] = useState();\r\n const { orderBy, desc, sortList, loadMore } = useFetchSortedList(\r\n fetchRemindersList,\r\n filter\r\n );\r\n\r\n const addReminderHandler = () => {\r\n navigate('new-reminder');\r\n };\r\n\r\n const toggleFilterHandler = () => {\r\n setShowFilter((prevState) => !prevState);\r\n };\r\n\r\n const showMoreRowsHandler = () => {\r\n loadMore(remindersList.length);\r\n };\r\n\r\n const sortListHandler = (column) => {\r\n sortList(column);\r\n };\r\n\r\n return (\r\n \r\n \r\n {loadedReminders && (\r\n 0 ? remindersList[0].TotalReminders : 0}\r\n title=\"Reminder\"\r\n orderBy={orderBy}\r\n onChangeSort={sortListHandler}\r\n desc={desc}\r\n columns={COLUMNS}\r\n />\r\n )}\r\n {isLoading && }\r\n {showFilter && }\r\n \r\n {remindersList.length === 0 && loadedReminders && (\r\n

    No Reminders Found

    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default RemindersForm;\r\n","import { Fragment } from 'react'\r\nimport { Outlet } from 'react-router-dom'\r\n\r\nimport Layout from '../../components/layout/Layout'\r\nimport RemindersForm from '../../components/Reminders/RemindersList/RemindersForm'\r\n\r\n\r\nconst Reminders = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Reminders","import React, { useEffect, Suspense, useState } from 'react';\r\nimport { Route, Routes, Navigate, useParams } from 'react-router';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useIdleTimer } from 'react-idle-timer';\r\nimport Hotjar from '@hotjar/browser';\r\n\r\n\r\n\r\nimport Notification from './components/UI/MessageBoxs/Notification';\r\nimport LoadingSpinner from './components/UI/LoadingSpinners/LoadingSpinner';\r\nimport ErrorMessage from './components/UI/MessageBoxs/ErrorMessage';\r\nimport NewFeatures from './pages/NewFeatures/NewFeatures';\r\nimport SignUpPortalUser from './pages/Login/SignUpPortalUser';\r\nimport NewFeatureDetails from './pages/NewFeatures/NewFeatureDetails';\r\nimport AddNewFeature from './pages/NewFeatures/AddNewFeature';\r\nimport useResetState from './hooks/use-reset';\r\nimport PageNotFound from './pages/PageNotFound';\r\nimport Statement from './pages/ParentLogin/Statement/Statement'\r\nimport Tasks from './pages/Hub/Tasks';\r\nimport TasksApplication from './pages/Hub/TasksApplication';\r\nimport LoginApplication from './pages/Login/LoginApplication';\r\nimport NewTask from './pages/Hub/NewTask';\r\nimport SidePopupMessage from './components/UI/MessageBoxs/SidePopupMessage';\r\nimport { Fragment } from 'react';\r\nimport TaskDetailsPage from './pages/Hub/TaskDetailsPage';\r\nimport ReminderDetails from './pages/Reminders/ReminderDetails';\r\nimport useFetchData from './hooks/use-fetch-data';\r\nimport Reminders from './pages/Reminders/Reminders';\r\n\r\nconst Login = React.lazy(() => import('./pages/Login/Login'))\r\nconst Payments = React.lazy(() => import('./pages/Payments/Payments'))\r\nconst NewPayment = React.lazy(() => import('./pages/Payments/NewPayment'))\r\nconst PaymentDetail = React.lazy(() => import('./pages/Payments/PaymentDetail'))\r\nconst RecurringPayments = React.lazy(() => import('./pages/Payments/RecurringPayments/RecurringPayments'));\r\nconst RecurringPaymentDetail = React.lazy(() => import('./pages/Payments/RecurringPayments/RecurringPaymentDetail'))\r\nconst Pledges = React.lazy(() => import('./pages/Pledges/Pledges')) ;\r\nconst NewPledge = React.lazy(() => import('./pages/Pledges/NewPledge'))\r\nconst PledgeDetail = React.lazy(() => import('./pages/Pledges/PledgeDetail'))\r\nconst RecurringPledges = React.lazy(() => import('./pages/Pledges/RecurringPledges/RecurringPledges'))\r\nconst RecurringPledgeDetail = React.lazy(() => import('./pages/Pledges/RecurringPledges/RecurringPledgeDetail'))\r\nconst Donors = React.lazy(() => import('./pages/Donors/Donors'))\r\nconst NewDonor = React.lazy(() => import('./pages/Donors/NewDonor'))\r\nconst DonorDetail = React.lazy(() => import('./pages/Donors/DonorDetail'))\r\nconst DonorEdit = React.lazy(() => import('./pages/Donors/DonorEdit'))\r\nconst Settings = React.lazy(() => import('./pages/Settings'))\r\nconst PaymentLinkPage = React.lazy(() => import('./pages/Payments/PaymentLink'))\r\nconst SignUp = React.lazy(() => import('./pages/ParentLogin/Login/SignUp'))\r\nconst ParentLogin = React.lazy(() => import('./pages/ParentLogin/Login/ParentLogin'))\r\n//const Statement = React.lazy(() => import('./pages/ParentLogin/Statement/Statement'))\r\nconst ParentPaymentDetails = React.lazy(() => import('./pages/ParentLogin/PaymentDetails'))\r\nconst ParentChargeDetails = React.lazy(() => import('./pages/ParentLogin/ChargeDetails'))\r\nconst AddParentPayment = React.lazy(() => import('./pages/ParentLogin/AddPayment'))\r\nconst Registartion = React.lazy(() => import('./pages/ParentLogin/Registration/Registration'))\r\nconst Students = React.lazy(() => import('./pages/ParentLogin/Students/Students'))\r\nconst StudentDetails = React.lazy(() => import('./pages/ParentLogin/Students/StudentDetails'))\r\n\r\n\r\nconst App = () => {\r\n\r\n //#region hooks\r\n const { resetState } = useResetState()\r\n useFetchData()\r\n\r\n const notification = useSelector((state) => state.ui.notification)\r\n const errorMessage = useSelector((state) => state.ui.errorMessage)\r\n const loggedIn = useSelector((state) => state.auth.isLoggedIn)\r\n const portalUserLoggedIn = useSelector((state) => state.auth.portalUserLoggedIn)\r\n const hubUserLoggedIn = useSelector((state) => state.auth.hubUserLoggedIn)\r\n const allowHub = useSelector((state) => state.auth.hub)\r\n \r\n\r\n const [trialExpiration, setTrialExpiration] = useState(null)\r\n const [returnComponent, setReturnComponent] = useState()\r\n //#endregion\r\n\r\n\r\n useEffect(() => {\r\n if (localStorage.getItem('inTrial') && localStorage.getItem('inTrial') === 'True') {\r\n var now = new Date()\r\n var endDate = new Date(localStorage.getItem('trialEndDate'))\r\n const utc1 = Date.UTC(now.getFullYear(), now.getMonth(), now.getDate());\r\n const utc2 = Date.UTC(endDate.getFullYear(), endDate.getMonth(), endDate.getDate());\r\n\r\n var days = Math.floor((utc2 - utc1) / (1000 * 60 * 60 * 24));\r\n setTrialExpiration(days)\r\n }\r\n else {\r\n setTrialExpiration(null)\r\n }\r\n }, [loggedIn])\r\n\r\n useEffect(()=>{\r\n const siteId = 3737662;\r\n const hotjarVersion = 6;\r\n\r\n Hotjar.init(siteId, hotjarVersion);\r\n },[])\r\n\r\n\r\n\r\n //#endregion\r\n\r\n \r\n const handleOnIdle = () => {\r\n logoutFromAll()\r\n }\r\n\r\n const logoutFromAll = () => {\r\n resetState()\r\n }\r\n\r\n\r\n useIdleTimer({\r\n timeout: 1800000,\r\n onIdle: handleOnIdle,\r\n debounce: 500\r\n })\r\n\r\nuseEffect(()=>{\r\n const component = \r\n }/>\r\n } />\r\n : }>\r\n : } />\r\n : } />\r\n \r\n : }>\r\n : } />\r\n : }/>\r\n \r\n : }>\r\n : } />\r\n : } />\r\n \r\n : }>\r\n : } />\r\n : }/>\r\n \r\n : }>\r\n : } />\r\n : } />\r\n : } />\r\n : }/>\r\n \r\n : }>\r\n : }/>\r\n : } />\r\n \r\n : } />\r\n } />\r\n {/*payment link*/}\r\n }/>\r\n {/*portal user pages*/}\r\n }/>\r\n : }>\r\n : }/>\r\n : }/>\r\n \r\n {/*parent login pages*/}\r\n }/>\r\n }/>\r\n }>\r\n }/>\r\n }/>\r\n }/>\r\n \r\n }>\r\n }/>\r\n \r\n }/>\r\n : }>\r\n : } />\r\n : } />\r\n \r\n : }>\r\n : }/>\r\n : } />\r\n \r\n }/>\r\n \r\nsetReturnComponent(component)\r\n},[loggedIn, hubUserLoggedIn, portalUserLoggedIn, trialExpiration, errorMessage, notification, allowHub])\r\n \r\nreturn (\r\n \r\n \r\n {trialExpiration !== null &&

    {trialExpiration === 1 ? '1 day left on trial!' : trialExpiration === 0 ? 'Last day on trial!' : trialExpiration + ' days left on trial!'}
    Contact sales now to activate!

    }\r\n {errorMessage && }\r\n {notification && window.location.reload()} secondButton={notification.secondButton} onSecondButtonClick={notification.onSecondButtonClick} />}\r\n \r\n }>\r\n {returnComponent}\r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default App;\r\n","import ReactDOM from 'react-dom/client';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { Provider } from \"react-redux\";\r\n\r\nimport store from \"./store/index\";\r\n\r\n\r\nimport './index.css';\r\nimport App from './App';\r\n\r\nconst root = ReactDOM.createRoot(document.getElementById('root'));\r\nroot.render( \r\n \r\n\r\n \r\n );\r\n"],"sourceRoot":""}